diff options
| author | Jenna Fox <a@creativepony.com> | 2012-09-24 00:59:13 +1000 | 
|---|---|---|
| committer | Jenna Fox <a@creativepony.com> | 2012-09-24 00:59:13 +1000 | 
| commit | c2bee67e1e35dda3cd1aa9fabc755be39de4a83c (patch) | |
| tree | 11efff2c298d066dd5f02aa970d4552446ac382e | |
| parent | d9ed646bd2495c6ab8524a35bd984f5526ee65ec (diff) | |
| download | micronucleus-c2bee67e1e35dda3cd1aa9fabc755be39de4a83c.tar.gz micronucleus-c2bee67e1e35dda3cd1aa9fabc755be39de4a83c.tar.bz2 micronucleus-c2bee67e1e35dda3cd1aa9fabc755be39de4a83c.zip | |
Victory
| -rw-r--r-- | firmware/libs-device/osccal.c.lst | 20 | ||||
| -rwxr-xr-x | firmware/main.bin | bin | 8903 -> 8969 bytes | |||
| -rw-r--r-- | firmware/main.c | 46 | ||||
| -rw-r--r-- | firmware/main.c.lst | 1790 | ||||
| -rw-r--r-- | firmware/main.hex | 194 | ||||
| -rw-r--r-- | firmware/main.map | 70 | ||||
| -rw-r--r-- | firmware/main.o | bin | 5784 -> 5952 bytes | |||
| -rw-r--r-- | firmware/nyan-cat-dump.bin | bin | 0 -> 7646 bytes | |||
| -rw-r--r-- | firmware/upload.rb | 1 | ||||
| -rw-r--r-- | firmware/usbdrv/oddebug.c.lst | 16 | 
10 files changed, 1078 insertions, 1059 deletions
| diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst index ae4bb0c..32f898a 100644 --- a/firmware/libs-device/osccal.c.lst +++ b/firmware/libs-device/osccal.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 1     1               		.file	"osccal.c" @@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s 			page    55 0046 8C17      		cp r24,r28    56 0048 9D07      		cpc r25,r29    57 004a 04F4      		brge .L6 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s 			page 2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 2    58 004c 01B7      		in r16,81-32 @@ -85,18 +85,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s 			page    79 0070 FF90      		pop r15    80 0072 0895      		ret    81               		.size	calibrateOscillator, .-calibrateOscillator -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s 			page 3 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 3  DEFINED SYMBOLS                              *ABS*:00000000 osccal.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:7      *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:11     .text:00000000 calibrateOscillator +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:11     .text:00000000 calibrateOscillator  UNDEFINED SYMBOLS  usbMeasureFrameLength diff --git a/firmware/main.bin b/firmware/main.binBinary files differ index 39abe62..078f449 100755 --- a/firmware/main.bin +++ b/firmware/main.bin diff --git a/firmware/main.c b/firmware/main.c index b8a88ea..f94498f 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -121,6 +121,7 @@ static inline void eraseFlashPage(void) {  }  static void writeFlashPage(void) { +    didWriteSomething = 1;      cli();      boot_page_write(currentAddress - 2);      boot_spm_busy_wait(); // Wait until the memory is written. @@ -183,29 +184,6 @@ static void fillFlashWithVectors(void) {      writeFlashPage();  } - -static inline __attribute__((noreturn)) void leaveBootloader(void) { -    //DBG1(0x01, 0, 0); -    bootLoaderExit(); -    cli(); -    USB_INTR_ENABLE = 0; -    USB_INTR_CFG = 0;       /* also reset config bits */ -     -	// make sure remainder of flash is erased and write checksum and application reset vectors -	if (didWriteSomething) { -        while (currentAddress < BOOTLOADER_ADDRESS) { -            fillFlashWithVectors(); -        } -    } -     -    // clear magic word from bottom of stack before jumping to the app -    *(uint8_t*)(RAMEND) = 0x00; -    *(uint8_t*)(RAMEND-1) = 0x00; - -    // jump to application reset vector at end of flash -    asm volatile ("rjmp __vectors - 4"); -} -  /* ------------------------------------------------------------------------ */  static uchar usbFunctionSetup(uchar data[8]) { @@ -319,6 +297,28 @@ static inline void tiny85FlashWrites(void) {      }  } +static inline __attribute__((noreturn)) void leaveBootloader(void) { +    //DBG1(0x01, 0, 0); +    bootLoaderExit(); +    cli(); +    USB_INTR_ENABLE = 0; +    USB_INTR_CFG = 0;       /* also reset config bits */ + +    // make sure remainder of flash is erased and write checksum and application reset vectors +    if (didWriteSomething) { +        while (currentAddress < BOOTLOADER_ADDRESS) { +            fillFlashWithVectors(); +        } +    } + +    // clear magic word from bottom of stack before jumping to the app +    *(uint8_t*)(RAMEND) = 0x00; +    *(uint8_t*)(RAMEND-1) = 0x00; + +    // jump to application reset vector at end of flash +    asm volatile ("rjmp __vectors - 4"); +} +  int __attribute__((noreturn)) main(void) {      uint16_t idlePolls = 0; diff --git a/firmware/main.c.lst b/firmware/main.c.lst index 368e7c8..cb6b60c 100644 --- a/firmware/main.c.lst +++ b/firmware/main.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 1     1               		.file	"main.c" @@ -15,905 +15,923 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page    12               	/* frame size = 0 */    13               	/* stack size = 0 */    14               	.L__stack_usage = 0 -  15               	/* #APP */ -  16               	 ;  124 "main.c" 1 -  17 0000 F894      		cli -  18               	 ;  0 "" 2 -  19               	/* #NOAPP */ -  20 0002 E091 0000 		lds r30,currentAddress -  21 0006 F091 0000 		lds r31,currentAddress+1 -  22 000a 3297      		sbiw r30,2 -  23 000c 85E0      		ldi r24,lo8(5) -  24               	/* #APP */ -  25               	 ;  125 "main.c" 1 -  26 000e 8093 5700 		sts 87, r24 -  27 0012 E895      		spm -  28               		 -  29               	 ;  0 "" 2 -  30               	/* #NOAPP */ -  31               	.L2: -  32 0014 07B6      		in __tmp_reg__,87-32 -  33 0016 00FC      		sbrc __tmp_reg__,0 -  34 0018 00C0      		rjmp .L2 -  35               	/* #APP */ -  36               	 ;  127 "main.c" 1 -  37 001a 7894      		sei -  38               	 ;  0 "" 2 -  39               	/* epilogue start */ -  40               	/* #NOAPP */ -  41 001c 0895      		ret -  42               		.size	writeFlashPage, .-writeFlashPage -  43               		.type	writeWordToPageBuffer, @function -  44               	writeWordToPageBuffer: -  45               	/* prologue: function */ -  46               	/* frame size = 0 */ -  47               	/* stack size = 0 */ -  48               	.L__stack_usage = 0 -  49 001e 2091 0000 		lds r18,currentAddress -  50 0022 3091 0000 		lds r19,currentAddress+1 -  51 0026 2115      		cp r18,__zero_reg__ -  52 0028 3105      		cpc r19,__zero_reg__ -  53 002a 01F4      		brne .+2 -  54 002c 00C0      		rjmp .L4 -  55 002e 2430      		cpi r18,4 -  56 0030 3105      		cpc r19,__zero_reg__ -  57 0032 01F0      		breq .L9 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 2 - - -  58 0034 44E1      		ldi r20,hi8(5372) -  59 0036 2C3F      		cpi r18,lo8(5372) -  60 0038 3407      		cpc r19,r20 -  61 003a 01F4      		brne .L6 -  62 003c 8091 0000 		lds r24,vectorTemp -  63 0040 9091 0000 		lds r25,vectorTemp+1 -  64 0044 8E57      		subi r24,lo8(-(1410)) -  65 0046 9A4F      		sbci r25,hi8(-(1410)) -  66 0048 00C0      		rjmp .L7 -  67               	.L6: -  68 004a 44E1      		ldi r20,hi8(5374) -  69 004c 2E3F      		cpi r18,lo8(5374) -  70 004e 3407      		cpc r19,r20 -  71 0050 01F4      		brne .L7 -  72 0052 8091 0000 		lds r24,vectorTemp+2 -  73 0056 9091 0000 		lds r25,vectorTemp+2+1 -  74 005a 8D57      		subi r24,lo8(-(1411)) -  75 005c 9A4F      		sbci r25,hi8(-(1411)) -  76 005e 00C0      		rjmp .L7 -  77               	.L9: -  78 0060 8FE7      		ldi r24,lo8(-13697) -  79 0062 9AEC      		ldi r25,hi8(-13697) -  80               	.L7: -  81               	/* #APP */ -  82               	 ;  161 "main.c" 1 -  83 0064 F894      		cli -  84               	 ;  0 "" 2 -  85               	/* #NOAPP */ -  86 0066 E091 0000 		lds r30,currentAddress -  87 006a F091 0000 		lds r31,currentAddress+1 -  88 006e 21E0      		ldi r18,lo8(1) -  89               	/* #APP */ -  90               	 ;  162 "main.c" 1 -  91 0070 0C01      		movw  r0, r24 -  92 0072 2093 5700 		sts 87, r18 -  93 0076 E895      		spm -  94 0078 1124      		clr  r1 -  95               		 -  96               	 ;  0 "" 2 -  97               	 ;  163 "main.c" 1 -  98 007a 7894      		sei -  99               	 ;  0 "" 2 - 100               	/* #NOAPP */ - 101 007c 4091 0000 		lds r20,currentAddress - 102 0080 5091 0000 		lds r21,currentAddress+1 - 103 0084 FA01      		movw r30,r20 - 104               	/* #APP */ - 105               	 ;  168 "main.c" 1 - 106 0086 2591      		lpm r18, Z+ - 107 0088 3491      		lpm r19, Z - 108               		 - 109               	 ;  0 "" 2 - 110               	/* #NOAPP */ - 111 008a 2823      		and r18,r24 - 112 008c 3923      		and r19,r25 - 113 008e 2817      		cp r18,r24 - 114 0090 3907      		cpc r19,r25 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 3 - - - 115 0092 01F0      		breq .L8 - 116 0094 8091 0000 		lds r24,events - 117 0098 8160      		ori r24,lo8(1) - 118 009a 8093 0000 		sts events,r24 - 119               	.L8: - 120 009e 4E5F      		subi r20,lo8(-(2)) - 121 00a0 5F4F      		sbci r21,hi8(-(2)) - 122 00a2 5093 0000 		sts currentAddress+1,r21 - 123 00a6 4093 0000 		sts currentAddress,r20 - 124               	/* epilogue start */ - 125 00aa 0895      		ret - 126               	.L4: - 127 00ac 81E1      		ldi r24,lo8(17) - 128               	/* #APP */ - 129               	 ;  159 "main.c" 1 - 130 00ae 8093 5700 		sts 87, r24 - 131 00b2 E895      		spm - 132               		 - 133               	 ;  0 "" 2 - 134               	/* #NOAPP */ - 135 00b4 00C0      		rjmp .L9 - 136               		.size	writeWordToPageBuffer, .-writeWordToPageBuffer - 137               		.type	fillFlashWithVectors, @function - 138               	fillFlashWithVectors: - 139 00b6 CF93      		push r28 - 140 00b8 DF93      		push r29 - 141               	/* prologue: function */ - 142               	/* frame size = 0 */ - 143               	/* stack size = 2 */ - 144               	.L__stack_usage = 2 - 145 00ba C091 0000 		lds r28,currentAddress - 146 00be D091 0000 		lds r29,currentAddress+1 - 147 00c2 CF73      		andi r28,lo8(63) - 148 00c4 D070      		andi r29,hi8(63) - 149               	.L11: - 150 00c6 8FEF      		ldi r24,lo8(-1) - 151 00c8 9FEF      		ldi r25,hi8(-1) - 152 00ca 00D0      		rcall writeWordToPageBuffer - 153 00cc 2296      		adiw r28,2 - 154 00ce C034      		cpi r28,64 - 155 00d0 D105      		cpc r29,__zero_reg__ - 156 00d2 04F0      		brlt .L11 - 157 00d4 00D0      		rcall writeFlashPage - 158               	/* epilogue start */ - 159 00d6 DF91      		pop r29 - 160 00d8 CF91      		pop r28 - 161 00da 0895      		ret - 162               		.size	fillFlashWithVectors, .-fillFlashWithVectors - 163               		.section	.init3,"ax",@progbits - 164               	.global	PushMagicWord - 165               		.type	PushMagicWord, @function - 166               	PushMagicWord: - 167               	/* prologue: naked */ - 168               	/* frame size = 0 */ - 169               	/* stack size = 0 */ - 170               	.L__stack_usage = 0 - 171               	/* #APP */ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 4 - - - 172               	 ;  280 "main.c" 1 - 173 0000 00EB      		ldi r16, 0xB0 - 174               	 ;  0 "" 2 - 175               	 ;  281 "main.c" 1 - 176 0002 0F93      		push r16 - 177               	 ;  0 "" 2 - 178               	 ;  282 "main.c" 1 - 179 0004 07E0      		ldi r16, 0x07 - 180               	 ;  0 "" 2 - 181               	 ;  283 "main.c" 1 - 182 0006 0F93      		push r16 - 183               	 ;  0 "" 2 - 184               	/* epilogue start */ - 185               	/* #NOAPP */ - 186               		.size	PushMagicWord, .-PushMagicWord - 187               		.text - 188               	.global	main - 189               		.type	main, @function - 190               	main: - 191 00dc DF93      		push r29 - 192 00de CF93      		push r28 - 193 00e0 0F92      		push __tmp_reg__ - 194 00e2 CDB7      		in r28,__SP_L__ - 195 00e4 DEB7      		in r29,__SP_H__ - 196               	/* prologue: function */ - 197               	/* frame size = 1 */ - 198               	/* stack size = 3 */ - 199               	.L__stack_usage = 3 - 200 00e6 88E1      		ldi r24,lo8(24) - 201               	/* #APP */ - 202               	 ;  326 "main.c" 1 - 203 00e8 0FB6      		in __tmp_reg__, __SREG__ - 204 00ea F894      		cli - 205 00ec 81BD      		out 33, r24 - 206 00ee 11BC      		out 33, __zero_reg__ - 207 00f0 0FBE      		out __SREG__,__tmp_reg__ - 208               		 - 209               	 ;  0 "" 2 - 210               	/* #NOAPP */ - 211 00f2 E0E0      		ldi r30,lo8(0) - 212 00f4 F0E0      		ldi r31,hi8(0) - 213               	/* #APP */ - 214               	 ;  301 "main.c" 1 - 215 00f6 8591      		lpm r24, Z+ - 216 00f8 9491      		lpm r25, Z - 217               		 - 218               	 ;  0 "" 2 - 219               	/* #NOAPP */ - 220 00fa 2AEC      		ldi r18,hi8(-13697) - 221 00fc 8F37      		cpi r24,lo8(-13697) - 222 00fe 9207      		cpc r25,r18 - 223 0100 01F4      		brne .L14 - 224 0102 E4E0      		ldi r30,lo8(4) - 225 0104 F0E0      		ldi r31,hi8(4) - 226               	/* #APP */ - 227               	 ;  302 "main.c" 1 - 228 0106 8591      		lpm r24, Z+ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 5 - - - 229 0108 9491      		lpm r25, Z - 230               		 - 231               	 ;  0 "" 2 - 232               	/* #NOAPP */ - 233 010a 3AEC      		ldi r19,hi8(-13697) - 234 010c 8F37      		cpi r24,lo8(-13697) - 235 010e 9307      		cpc r25,r19 - 236 0110 01F0      		breq .L15 - 237               	.L14: - 238 0112 00D0      		rcall fillFlashWithVectors - 239               	.L15: - 240 0114 1092 0000 		sts currentAddress+1,__zero_reg__ - 241 0118 1092 0000 		sts currentAddress,__zero_reg__ - 242 011c 87B3      		in r24,55-32 - 243 011e 8360      		ori r24,lo8(3) - 244 0120 87BB      		out 55-32,r24 - 245 0122 C09A      		sbi 56-32,0 - 246 0124 C198      		cbi 56-32,1 - 247 0126 AC9A      		sbi 53-32,4 - 248 0128 8BB7      		in r24,91-32 - 249 012a 8062      		ori r24,lo8(32) - 250 012c 8BBF      		out 91-32,r24 - 251 012e BB9A      		sbi 55-32,3 - 252 0130 8FE4      		 ldi r24,lo8(1649999) - 253 0132 9DE2      	    ldi r25,hi8(1649999) - 254 0134 A9E1      	    ldi r26,hlo8(1649999) - 255 0136 8150      	    1:subi r24,1 - 256 0138 9040      	    sbci r25,0 - 257 013a A040      	    sbci r26,0 - 258 013c 01F4      	    brne 1b - 259 013e 00C0      		rjmp . - 260 0140 0000      		nop - 261 0142 BB98      		cbi 55-32,3 - 262               	/* #APP */ - 263               	 ;  294 "main.c" 1 - 264 0144 7894      		sei - 265               	 ;  0 "" 2 - 266               	/* #NOAPP */ - 267 0146 EE24      		clr r14 - 268 0148 FF24      		clr r15 - 269               	.L63: - 270 014a 2091 0000 		lds r18,usbRxLen - 271 014e 2350      		subi r18,lo8(-(-3)) - 272 0150 27FD      		sbrc r18,7 - 273 0152 00C0      		rjmp .L16 - 274 0154 8091 0000 		lds r24,usbInputBufOffset - 275 0158 ECE0      		ldi r30,lo8(12) - 276 015a F0E0      		ldi r31,hi8(12) - 277 015c E81B      		sub r30,r24 - 278 015e F109      		sbc r31,__zero_reg__ - 279 0160 E050      		subi r30,lo8(-(usbRxBuf)) - 280 0162 F040      		sbci r31,hi8(-(usbRxBuf)) - 281 0164 8091 0000 		lds r24,usbRxToken - 282 0168 8D32      		cpi r24,lo8(45) - 283 016a 01F0      		breq .+2 - 284 016c 00C0      		rjmp .L17 - 285 016e 2830      		cpi r18,lo8(8) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 6 - - - 286 0170 01F0      		breq .+2 - 287 0172 00C0      		rjmp .L18 - 288 0174 83EC      		ldi r24,lo8(-61) - 289 0176 8093 0000 		sts usbTxBuf,r24 - 290 017a 8AE5      		ldi r24,lo8(90) - 291 017c 8093 0000 		sts usbTxLen,r24 - 292 0180 1092 0000 		sts usbMsgFlags,__zero_reg__ - 293 0184 9081      		ld r25,Z - 294 0186 9076      		andi r25,lo8(96) - 295 0188 8181      		ldd r24,Z+1 - 296 018a 9923      		tst r25 - 297 018c 01F0      		breq .L19 - 298 018e 8823      		tst r24 - 299 0190 01F4      		brne .L20 - 300 0192 80E0      		ldi r24,lo8(replyBuffer.1756) - 301 0194 90E0      		ldi r25,hi8(replyBuffer.1756) - 302 0196 9093 0000 		sts usbMsgPtr+1,r25 - 303 019a 8093 0000 		sts usbMsgPtr,r24 - 304 019e 25E0      		ldi r18,lo8(5) - 305 01a0 00C0      		rjmp .L25 - 306               	.L20: - 307 01a2 8130      		cpi r24,lo8(1) - 308 01a4 01F4      		brne .L22 - 309 01a6 C098      		cbi 56-32,0 - 310 01a8 8281      		ldd r24,Z+2 - 311 01aa 8093 0000 		sts writeLength,r24 - 312 01ae 8481      		ldd r24,Z+4 - 313 01b0 9581      		ldd r25,Z+5 - 314 01b2 9093 0000 		sts currentAddress+1,r25 - 315 01b6 8093 0000 		sts currentAddress,r24 - 316 01ba 8081      		ld r24,Z - 317 01bc 87FD      		sbrc r24,7 - 318 01be 00C0      		rjmp .L23 - 319 01c0 2FEF      		ldi r18,lo8(-1) - 320 01c2 00C0      		rjmp .L24 - 321               	.L22: - 322 01c4 8091 0000 		lds r24,events - 323 01c8 8460      		ori r24,lo8(4) - 324 01ca 8093 0000 		sts events,r24 - 325 01ce 20E0      		ldi r18,lo8(0) - 326 01d0 00C0      		rjmp .L25 - 327               	.L19: - 328 01d2 9281      		ldd r25,Z+2 - 329 01d4 1092 0000 		sts usbTxBuf+9,__zero_reg__ - 330 01d8 8823      		tst r24 - 331 01da 01F4      		brne .L26 - 332 01dc 1092 0000 		sts usbTxBuf+10,__zero_reg__ - 333 01e0 80E0      		ldi r24,lo8(usbTxBuf+9) - 334 01e2 90E0      		ldi r25,hi8(usbTxBuf+9) - 335 01e4 22E0      		ldi r18,lo8(2) - 336 01e6 00C0      		rjmp .L27 - 337               	.L26: - 338 01e8 8530      		cpi r24,lo8(5) - 339 01ea 01F4      		brne .L28 - 340 01ec 9093 0000 		sts usbNewDeviceAddr,r25 - 341 01f0 00C0      		rjmp .L70 - 342               	.L28: -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 7 - - - 343 01f2 8630      		cpi r24,lo8(6) - 344 01f4 01F4      		brne .L29 - 345 01f6 8381      		ldd r24,Z+3 - 346 01f8 8130      		cpi r24,lo8(1) - 347 01fa 01F4      		brne .L30 - 348 01fc 80E0      		ldi r24,lo8(usbDescriptorDevice) - 349 01fe 90E0      		ldi r25,hi8(usbDescriptorDevice) - 350 0200 00C0      		rjmp .L69 - 351               	.L30: - 352 0202 8230      		cpi r24,lo8(2) - 353 0204 01F4      		brne .L32 - 354 0206 80E0      		ldi r24,lo8(usbDescriptorConfiguration) - 355 0208 90E0      		ldi r25,hi8(usbDescriptorConfiguration) - 356               	.L69: - 357 020a 9093 0000 		sts usbMsgPtr+1,r25 - 358 020e 8093 0000 		sts usbMsgPtr,r24 - 359 0212 22E1      		ldi r18,lo8(18) - 360 0214 00C0      		rjmp .L31 - 361               	.L32: - 362 0216 8330      		cpi r24,lo8(3) - 363 0218 01F4      		brne .L65 - 364 021a 9923      		tst r25 - 365 021c 01F4      		brne .L33 - 366 021e 80E0      		ldi r24,lo8(usbDescriptorString0) - 367 0220 90E0      		ldi r25,hi8(usbDescriptorString0) - 368 0222 9093 0000 		sts usbMsgPtr+1,r25 - 369 0226 8093 0000 		sts usbMsgPtr,r24 - 370 022a 24E0      		ldi r18,lo8(4) - 371 022c 00C0      		rjmp .L31 - 372               	.L33: - 373 022e 9130      		cpi r25,lo8(1) - 374 0230 01F4      		brne .L34 - 375 0232 80E0      		ldi r24,lo8(usbDescriptorStringVendor) - 376 0234 90E0      		ldi r25,hi8(usbDescriptorStringVendor) - 377 0236 9093 0000 		sts usbMsgPtr+1,r25 - 378 023a 8093 0000 		sts usbMsgPtr,r24 - 379 023e 22E2      		ldi r18,lo8(34) - 380 0240 00C0      		rjmp .L31 - 381               	.L34: - 382 0242 9230      		cpi r25,lo8(2) - 383 0244 01F4      		brne .L65 - 384 0246 80E0      		ldi r24,lo8(usbDescriptorStringDevice) - 385 0248 90E0      		ldi r25,hi8(usbDescriptorStringDevice) - 386 024a 9093 0000 		sts usbMsgPtr+1,r25 - 387 024e 8093 0000 		sts usbMsgPtr,r24 - 388 0252 2CE0      		ldi r18,lo8(12) - 389 0254 00C0      		rjmp .L31 - 390               	.L65: - 391 0256 20E0      		ldi r18,lo8(0) - 392               	.L31: - 393 0258 80E4      		ldi r24,lo8(64) - 394 025a 8093 0000 		sts usbMsgFlags,r24 - 395 025e 00C0      		rjmp .L25 - 396               	.L29: - 397 0260 8830      		cpi r24,lo8(8) - 398 0262 01F0      		breq .L66 - 399 0264 8930      		cpi r24,lo8(9) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 8 - - - 400 0266 01F4      		brne .L36 - 401 0268 9093 0000 		sts usbConfiguration,r25 - 402 026c 00C0      		rjmp .L70 - 403               	.L36: - 404 026e 8A30      		cpi r24,lo8(10) - 405 0270 01F0      		breq .L67 - 406               	.L70: - 407 0272 80E0      		ldi r24,lo8(usbTxBuf+9) - 408 0274 90E0      		ldi r25,hi8(usbTxBuf+9) - 409 0276 20E0      		ldi r18,lo8(0) - 410 0278 00C0      		rjmp .L27 - 411               	.L66: - 412 027a 80E0      		ldi r24,lo8(usbConfiguration) - 413 027c 90E0      		ldi r25,hi8(usbConfiguration) - 414 027e 00C0      		rjmp .L71 - 415               	.L67: - 416 0280 80E0      		ldi r24,lo8(usbTxBuf+9) - 417 0282 90E0      		ldi r25,hi8(usbTxBuf+9) - 418               	.L71: - 419 0284 21E0      		ldi r18,lo8(1) - 420               	.L27: - 421 0286 9093 0000 		sts usbMsgPtr+1,r25 - 422 028a 8093 0000 		sts usbMsgPtr,r24 - 423 028e 00C0      		rjmp .L25 - 424               	.L23: - 425 0290 2681      		ldd r18,Z+6 - 426               	.L24: - 427 0292 80E8      		ldi r24,lo8(-128) - 428 0294 8093 0000 		sts usbMsgFlags,r24 - 429 0298 00C0      		rjmp .L37 - 430               	.L25: - 431 029a 8781      		ldd r24,Z+7 - 432 029c 8823      		tst r24 - 433 029e 01F4      		brne .L37 - 434 02a0 8681      		ldd r24,Z+6 - 435 02a2 8217      		cp r24,r18 - 436 02a4 00F4      		brsh .L37 - 437 02a6 282F      		mov r18,r24 - 438               	.L37: - 439 02a8 2093 0000 		sts usbMsgLen,r18 - 440 02ac 00C0      		rjmp .L18 - 441               	.L17: - 442 02ae 8091 0000 		lds r24,usbMsgFlags - 443 02b2 87FF      		sbrs r24,7 - 444 02b4 00C0      		rjmp .L18 - 445 02b6 8091 0000 		lds r24,writeLength - 446 02ba 821B      		sub r24,r18 - 447 02bc 8093 0000 		sts writeLength,r24 - 448 02c0 8F01      		movw r16,r30 - 449               	.L42: - 450 02c2 8091 0000 		lds r24,currentAddress - 451 02c6 9091 0000 		lds r25,currentAddress+1 - 452 02ca 0097      		sbiw r24,0 - 453 02cc 01F4      		brne .L38 - 454 02ce D801      		movw r26,r16 - 455 02d0 8D91      		ld r24,X+ - 456 02d2 9C91      		ld r25,X -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 9 - - - 457 02d4 1197      		sbiw r26,1 - 458 02d6 9093 0000 		sts vectorTemp+1,r25 - 459 02da 8093 0000 		sts vectorTemp,r24 - 460 02de 00C0      		rjmp .L39 - 461               	.L38: - 462 02e0 8430      		cpi r24,4 - 463 02e2 9105      		cpc r25,__zero_reg__ - 464 02e4 01F4      		brne .L40 - 465 02e6 F801      		movw r30,r16 - 466 02e8 8081      		ld r24,Z - 467 02ea 9181      		ldd r25,Z+1 - 468 02ec 9093 0000 		sts vectorTemp+2+1,r25 - 469 02f0 8093 0000 		sts vectorTemp+2,r24 - 470 02f4 00C0      		rjmp .L39 - 471               	.L40: - 472 02f6 F4E1      		ldi r31,hi8(5370) - 473 02f8 8A3F      		cpi r24,lo8(5370) - 474 02fa 9F07      		cpc r25,r31 - 475 02fc 00F0      		brlo .L39 - 476 02fe 81E1      		ldi r24,lo8(17) - 477               	/* #APP */ - 478               	 ;  257 "main.c" 1 - 479 0300 8093 5700 		sts 87, r24 - 480 0304 E895      		spm - 481               		 - 482               	 ;  0 "" 2 - 483               	/* #NOAPP */ - 484 0306 00C0      		rjmp .L41 - 485               	.L39: - 486 0308 D801      		movw r26,r16 - 487 030a 8D91      		ld r24,X+ - 488 030c 9D91      		ld r25,X+ - 489 030e 8D01      		movw r16,r26 - 490 0310 2983      		std Y+1,r18 - 491 0312 00D0      		rcall writeWordToPageBuffer - 492 0314 2981      		ldd r18,Y+1 - 493 0316 2250      		subi r18,lo8(-(-2)) - 494 0318 01F4      		brne .L42 - 495               	.L41: - 496 031a 8091 0000 		lds r24,writeLength - 497 031e 8823      		tst r24 - 498 0320 01F4      		brne .L18 - 499 0322 8091 0000 		lds r24,events - 500 0326 8260      		ori r24,lo8(2) - 501 0328 8093 0000 		sts events,r24 - 502 032c 1092 0000 		sts usbMsgLen,__zero_reg__ - 503               	.L18: - 504 0330 1092 0000 		sts usbRxLen,__zero_reg__ - 505               	.L16: - 506 0334 8091 0000 		lds r24,usbTxLen - 507 0338 84FF      		sbrs r24,4 - 508 033a 00C0      		rjmp .L43 - 509 033c 8091 0000 		lds r24,usbMsgLen - 510 0340 8F3F      		cpi r24,lo8(-1) - 511 0342 01F4      		brne .+2 - 512 0344 00C0      		rjmp .L43 - 513 0346 082F      		mov r16,r24 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 10 - - - 514 0348 8930      		cpi r24,lo8(9) - 515 034a 00F0      		brlo .L44 - 516 034c 08E0      		ldi r16,lo8(8) - 517               	.L44: - 518 034e 801B      		sub r24,r16 - 519 0350 8093 0000 		sts usbMsgLen,r24 - 520 0354 8091 0000 		lds r24,usbTxBuf - 521 0358 98E8      		ldi r25,lo8(-120) - 522 035a 8927      		eor r24,r25 - 523 035c 8093 0000 		sts usbTxBuf,r24 - 524 0360 0023      		tst r16 - 525 0362 01F0      		breq .L45 - 526 0364 E091 0000 		lds r30,usbMsgPtr - 527 0368 F091 0000 		lds r31,usbMsgPtr+1 - 528 036c 9091 0000 		lds r25,usbMsgFlags - 529 0370 802F      		mov r24,r16 - 530 0372 8150      		subi r24,lo8(-(-1)) - 531 0374 96FF      		sbrs r25,6 - 532 0376 00C0      		rjmp .L46 - 533 0378 90E0      		ldi r25,lo8(0) - 534 037a 8050      		subi r24,lo8(-(usbTxBuf+2)) - 535 037c 9040      		sbci r25,hi8(-(usbTxBuf+2)) - 536 037e A0E0      		ldi r26,lo8(usbTxBuf+1) - 537 0380 B0E0      		ldi r27,hi8(usbTxBuf+1) - 538               	.L47: - 539               	/* #APP */ - 540               	 ;  504 "usbdrv/usbdrv.c" 1 - 541 0382 2491      		lpm r18, Z - 542               		 - 543               	 ;  0 "" 2 - 544               	/* #NOAPP */ - 545 0384 2D93      		st X+,r18 - 546 0386 3196      		adiw r30,1 - 547 0388 A817      		cp r26,r24 - 548 038a B907      		cpc r27,r25 - 549 038c 01F4      		brne .L47 - 550 038e 00C0      		rjmp .L48 - 551               	.L46: - 552 0390 9F01      		movw r18,r30 - 553 0392 90E0      		ldi r25,lo8(0) - 554 0394 8050      		subi r24,lo8(-(usbTxBuf+2)) - 555 0396 9040      		sbci r25,hi8(-(usbTxBuf+2)) - 556 0398 A0E0      		ldi r26,lo8(usbTxBuf+1) - 557 039a B0E0      		ldi r27,hi8(usbTxBuf+1) - 558               	.L49: - 559 039c F901      		movw r30,r18 - 560 039e 4191      		ld r20,Z+ - 561 03a0 9F01      		movw r18,r30 - 562 03a2 4D93      		st X+,r20 - 563 03a4 A817      		cp r26,r24 - 564 03a6 B907      		cpc r27,r25 - 565 03a8 01F4      		brne .L49 - 566               	.L48: - 567 03aa F093 0000 		sts usbMsgPtr+1,r31 - 568 03ae E093 0000 		sts usbMsgPtr,r30 - 569               	.L45: - 570 03b2 80E0      		ldi r24,lo8(usbTxBuf+1) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 11 - - - 571 03b4 90E0      		ldi r25,hi8(usbTxBuf+1) - 572 03b6 602F      		mov r22,r16 - 573 03b8 00D0      		rcall usbCrc16Append - 574 03ba 0C5F      		subi r16,lo8(-(4)) - 575 03bc 0C30      		cpi r16,lo8(12) - 576 03be 01F0      		breq .L50 - 577 03c0 8FEF      		ldi r24,lo8(-1) - 578 03c2 8093 0000 		sts usbMsgLen,r24 - 579               	.L50: - 580 03c6 0093 0000 		sts usbTxLen,r16 - 581               	.L43: - 582 03ca 84E1      		ldi r24,lo8(20) - 583               	.L52: - 584 03cc 96B3      		in r25,54-32 - 585 03ce 9871      		andi r25,lo8(24) - 586 03d0 01F4      		brne .L51 - 587 03d2 8150      		subi r24,lo8(-(-1)) - 588 03d4 01F4      		brne .L52 - 589 03d6 1092 0000 		sts usbNewDeviceAddr,__zero_reg__ - 590 03da 1092 0000 		sts usbDeviceAddr,__zero_reg__ - 591               	.L51: - 592 03de 01E0      		ldi r16,lo8(1) - 593 03e0 8111      		cpse r24,__zero_reg__ - 594 03e2 00E0      		ldi r16,lo8(0) - 595               	.L53: - 596 03e4 8091 0000 		lds r24,wasReset.1698 - 597 03e8 8017      		cp r24,r16 - 598 03ea 01F0      		breq .L54 - 599 03ec 0023      		tst r16 - 600 03ee 01F4      		brne .L55 - 601               	/* #APP */ - 602               	 ;  557 "usbdrv/usbdrv.c" 1 - 603 03f0 F894      		cli - 604               	 ;  0 "" 2 - 605               	/* #NOAPP */ - 606 03f2 00D0      		rcall calibrateOscillator - 607               	/* #APP */ - 608               	 ;  557 "usbdrv/usbdrv.c" 1 - 609 03f4 7894      		sei - 610               	 ;  0 "" 2 - 611               	/* #NOAPP */ - 612               	.L55: - 613 03f6 0093 0000 		sts wasReset.1698,r16 - 614               	.L54: - 615 03fa 8CE9      		 ldi r24,lo8(412) - 616 03fc 91E0      	    ldi r25,hi8(412) - 617 03fe 0197      	    1:sbiw r24,1 - 618 0400 01F4      	    brne 1b - 619 0402 0000      		nop - 620 0404 8091 0000 		lds r24,events - 621 0408 8823      		tst r24 - 622 040a 01F4      		brne .L68 - 623 040c 0894      		sec - 624 040e E11C      		adc r14,__zero_reg__ - 625 0410 F11C      		adc r15,__zero_reg__ - 626 0412 00C0      		rjmp .L56 - 627               	.L68: -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 12 - - - 628 0414 EE24      		clr r14 - 629 0416 FF24      		clr r15 - 630               	.L56: - 631 0418 80FF      		sbrs r24,0 - 632 041a 00C0      		rjmp .L57 - 633               	/* #APP */ - 634               	 ;  117 "main.c" 1 - 635 041c F894      		cli - 636               	 ;  0 "" 2 - 637               	/* #NOAPP */ - 638 041e E091 0000 		lds r30,currentAddress - 639 0422 F091 0000 		lds r31,currentAddress+1 - 640 0426 3297      		sbiw r30,2 - 641 0428 83E0      		ldi r24,lo8(3) - 642               	/* #APP */ - 643               	 ;  118 "main.c" 1 - 644 042a 8093 5700 		sts 87, r24 - 645 042e E895      		spm - 646               		 - 647               	 ;  0 "" 2 - 648               	/* #NOAPP */ - 649               	.L58: - 650 0430 07B6      		in __tmp_reg__,87-32 - 651 0432 00FC      		sbrc __tmp_reg__,0 - 652 0434 00C0      		rjmp .L58 - 653               	/* #APP */ - 654               	 ;  120 "main.c" 1 - 655 0436 7894      		sei - 656               	 ;  0 "" 2 - 657               	/* #NOAPP */ - 658               	.L57: - 659 0438 8091 0000 		lds r24,events - 660 043c 81FF      		sbrs r24,1 - 661 043e 00C0      		rjmp .L59 - 662 0440 A9E3      		 ldi r26,lo8(8249) - 663 0442 B0E2      	    ldi r27,hi8(8249) - 664 0444 1197      	    1:sbiw r26,1 - 665 0446 01F4      	    brne 1b - 666 0448 00C0      		rjmp . - 667 044a 0000      		nop - 668 044c 8091 0000 		lds r24,currentAddress - 669 0450 9091 0000 		lds r25,currentAddress+1 - 670 0454 8F73      		andi r24,lo8(63) - 671 0456 9070      		andi r25,hi8(63) - 672 0458 0097      		sbiw r24,0 - 673 045a 01F0      		breq .L60 - 674 045c 00D0      		rcall fillFlashWithVectors - 675 045e 00C0      		rjmp .L59 - 676               	.L60: - 677 0460 00D0      		rcall writeFlashPage - 678               	.L59: - 679 0462 8091 0000 		lds r24,events - 680 0466 82FD      		sbrc r24,2 - 681 0468 00C0      		rjmp .L61 - 682 046a B1E5      		ldi r27,lo8(-15535) - 683 046c EB16      		cp r14,r27 - 684 046e B3EC      		ldi r27,hi8(-15535) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 13 - - - 685 0470 FB06      		cpc r15,r27 - 686 0472 00F0      		brlo .L62 - 687               	.L61: - 688 0474 E1E2      		 ldi r30,lo8(-24287) - 689 0476 F1EA      	    ldi r31,hi8(-24287) - 690 0478 3197      	    1:sbiw r30,1 - 691 047a 01F4      	    brne 1b - 692 047c 00C0      		rjmp . - 693 047e 0000      		nop - 694               	/* #APP */ - 695               	 ;  190 "main.c" 1 - 696 0480 F894      		cli - 697               	 ;  0 "" 2 - 698               	/* #NOAPP */ - 699 0482 1BBE      		out 91-32,__zero_reg__ - 700 0484 15BA      		out 53-32,__zero_reg__ - 701 0486 1092 5F02 		sts 607,__zero_reg__ - 702 048a 1092 5E02 		sts 606,__zero_reg__ - 703               	/* #APP */ - 704               	 ;  206 "main.c" 1 - 705 048e 00C0      		rjmp __vectors - 4 - 706               	 ;  0 "" 2 - 707               	/* #NOAPP */ - 708               	.L62: - 709 0490 1092 0000 		sts events,__zero_reg__ - 710 0494 00C0      		rjmp .L63 - 711               		.size	main, .-main - 712               	.global	usbTxLen - 713               		.data - 714               		.type	usbTxLen, @object - 715               		.size	usbTxLen, 1 - 716               	usbTxLen: - 717 0000 5A        		.byte	90 - 718               	.global	usbDescriptorString0 - 719               		.section	.progmem.data,"a",@progbits - 720               		.type	usbDescriptorString0, @object - 721               		.size	usbDescriptorString0, 4 - 722               	usbDescriptorString0: - 723 0000 04        		.byte	4 - 724 0001 03        		.byte	3 - 725 0002 09        		.byte	9 - 726 0003 04        		.byte	4 - 727               	.global	usbDescriptorStringVendor - 728               		.type	usbDescriptorStringVendor, @object - 729               		.size	usbDescriptorStringVendor, 34 - 730               	usbDescriptorStringVendor: - 731 0004 2203      		.word	802 - 732 0006 6300      		.word	99 - 733 0008 7200      		.word	114 - 734 000a 6500      		.word	101 - 735 000c 6100      		.word	97 - 736 000e 7400      		.word	116 - 737 0010 6900      		.word	105 - 738 0012 7600      		.word	118 - 739 0014 6500      		.word	101 - 740 0016 7000      		.word	112 - 741 0018 6F00      		.word	111 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 14 - - - 742 001a 6E00      		.word	110 - 743 001c 7900      		.word	121 - 744 001e 2E00      		.word	46 - 745 0020 6300      		.word	99 - 746 0022 6F00      		.word	111 - 747 0024 6D00      		.word	109 - 748               	.global	usbDescriptorStringDevice - 749               		.type	usbDescriptorStringDevice, @object - 750               		.size	usbDescriptorStringDevice, 12 - 751               	usbDescriptorStringDevice: - 752 0026 0C03      		.word	780 - 753 0028 7500      		.word	117 - 754 002a 4200      		.word	66 - 755 002c 6F00      		.word	111 - 756 002e 6F00      		.word	111 - 757 0030 7400      		.word	116 - 758               	.global	usbDescriptorDevice - 759               		.type	usbDescriptorDevice, @object - 760               		.size	usbDescriptorDevice, 18 - 761               	usbDescriptorDevice: - 762 0032 12        		.byte	18 - 763 0033 01        		.byte	1 - 764 0034 10        		.byte	16 - 765 0035 01        		.byte	1 - 766 0036 FF        		.byte	-1 - 767 0037 00        		.byte	0 - 768 0038 00        		.byte	0 - 769 0039 08        		.byte	8 - 770 003a C0        		.byte	-64 - 771 003b 16        		.byte	22 - 772 003c DC        		.byte	-36 - 773 003d 05        		.byte	5 - 774 003e 01        		.byte	1 - 775 003f 00        		.byte	0 - 776 0040 01        		.byte	1 - 777 0041 02        		.byte	2 - 778 0042 00        		.byte	0 - 779 0043 01        		.byte	1 - 780               	.global	usbDescriptorConfiguration - 781               		.type	usbDescriptorConfiguration, @object - 782               		.size	usbDescriptorConfiguration, 18 - 783               	usbDescriptorConfiguration: - 784 0044 09        		.byte	9 - 785 0045 02        		.byte	2 - 786 0046 12        		.byte	18 - 787 0047 00        		.byte	0 - 788 0048 01        		.byte	1 - 789 0049 01        		.byte	1 - 790 004a 00        		.byte	0 - 791 004b 80        		.byte	-128 - 792 004c 32        		.byte	50 - 793 004d 09        		.byte	9 - 794 004e 04        		.byte	4 - 795 004f 00        		.byte	0 - 796 0050 00        		.byte	0 - 797 0051 00        		.byte	0 - 798 0052 00        		.byte	0 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 15 - - - 799 0053 00        		.byte	0 - 800 0054 00        		.byte	0 - 801 0055 00        		.byte	0 - 802               		.comm usbMsgPtr,2,1 - 803               		.comm usbRxToken,1,1 - 804               		.comm usbConfiguration,1,1 - 805               		.comm usbRxBuf,22,1 - 806               		.comm usbInputBufOffset,1,1 - 807               		.comm usbDeviceAddr,1,1 - 808               		.comm usbNewDeviceAddr,1,1 - 809               		.comm usbRxLen,1,1 - 810               		.comm usbCurrentTok,1,1 - 811               		.comm usbTxBuf,11,1 - 812               		.lcomm currentAddress,2 - 813               		.lcomm events,1 - 814               		.lcomm vectorTemp,4 - 815               		.data - 816               		.type	usbMsgLen, @object - 817               		.size	usbMsgLen, 1 - 818               	usbMsgLen: - 819 0001 FF        		.byte	-1 - 820               		.lcomm usbMsgFlags,1 - 821               		.lcomm writeLength,1 - 822               		.type	replyBuffer.1756, @object - 823               		.size	replyBuffer.1756, 5 - 824               	replyBuffer.1756: - 825 0002 01        		.byte	1 - 826 0003 14        		.byte	20 - 827 0004 FA        		.byte	-6 - 828 0005 40        		.byte	64 - 829 0006 14        		.byte	20 - 830               		.lcomm wasReset.1698,1 - 831               	.global __do_copy_data - 832               	.global __do_clear_bss -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s 			page 16 +  15 0000 81E0      		ldi r24,lo8(1) +  16 0002 8093 0000 		sts didWriteSomething,r24 +  17               	/* #APP */ +  18               	 ;  125 "main.c" 1 +  19 0006 F894      		cli +  20               	 ;  0 "" 2 +  21               	/* #NOAPP */ +  22 0008 E091 0000 		lds r30,currentAddress +  23 000c F091 0000 		lds r31,currentAddress+1 +  24 0010 3297      		sbiw r30,2 +  25 0012 85E0      		ldi r24,lo8(5) +  26               	/* #APP */ +  27               	 ;  126 "main.c" 1 +  28 0014 8093 5700 		sts 87, r24 +  29 0018 E895      		spm +  30               		 +  31               	 ;  0 "" 2 +  32               	/* #NOAPP */ +  33               	.L2: +  34 001a 07B6      		in __tmp_reg__,87-32 +  35 001c 00FC      		sbrc __tmp_reg__,0 +  36 001e 00C0      		rjmp .L2 +  37               	/* #APP */ +  38               	 ;  128 "main.c" 1 +  39 0020 7894      		sei +  40               	 ;  0 "" 2 +  41               	/* epilogue start */ +  42               	/* #NOAPP */ +  43 0022 0895      		ret +  44               		.size	writeFlashPage, .-writeFlashPage +  45               		.type	writeWordToPageBuffer, @function +  46               	writeWordToPageBuffer: +  47               	/* prologue: function */ +  48               	/* frame size = 0 */ +  49               	/* stack size = 0 */ +  50               	.L__stack_usage = 0 +  51 0024 2091 0000 		lds r18,currentAddress +  52 0028 3091 0000 		lds r19,currentAddress+1 +  53 002c 2115      		cp r18,__zero_reg__ +  54 002e 3105      		cpc r19,__zero_reg__ +  55 0030 01F4      		brne .+2 +  56 0032 00C0      		rjmp .L4 +  57 0034 2430      		cpi r18,4 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 2 + + +  58 0036 3105      		cpc r19,__zero_reg__ +  59 0038 01F0      		breq .L9 +  60 003a 44E1      		ldi r20,hi8(5372) +  61 003c 2C3F      		cpi r18,lo8(5372) +  62 003e 3407      		cpc r19,r20 +  63 0040 01F4      		brne .L6 +  64 0042 8091 0000 		lds r24,vectorTemp +  65 0046 9091 0000 		lds r25,vectorTemp+1 +  66 004a 8E57      		subi r24,lo8(-(1410)) +  67 004c 9A4F      		sbci r25,hi8(-(1410)) +  68 004e 00C0      		rjmp .L7 +  69               	.L6: +  70 0050 44E1      		ldi r20,hi8(5374) +  71 0052 2E3F      		cpi r18,lo8(5374) +  72 0054 3407      		cpc r19,r20 +  73 0056 01F4      		brne .L7 +  74 0058 8091 0000 		lds r24,vectorTemp+2 +  75 005c 9091 0000 		lds r25,vectorTemp+2+1 +  76 0060 8D57      		subi r24,lo8(-(1411)) +  77 0062 9A4F      		sbci r25,hi8(-(1411)) +  78 0064 00C0      		rjmp .L7 +  79               	.L9: +  80 0066 8FE7      		ldi r24,lo8(-13697) +  81 0068 9AEC      		ldi r25,hi8(-13697) +  82               	.L7: +  83               	/* #APP */ +  84               	 ;  162 "main.c" 1 +  85 006a F894      		cli +  86               	 ;  0 "" 2 +  87               	/* #NOAPP */ +  88 006c E091 0000 		lds r30,currentAddress +  89 0070 F091 0000 		lds r31,currentAddress+1 +  90 0074 21E0      		ldi r18,lo8(1) +  91               	/* #APP */ +  92               	 ;  163 "main.c" 1 +  93 0076 0C01      		movw  r0, r24 +  94 0078 2093 5700 		sts 87, r18 +  95 007c E895      		spm +  96 007e 1124      		clr  r1 +  97               		 +  98               	 ;  0 "" 2 +  99               	 ;  164 "main.c" 1 + 100 0080 7894      		sei + 101               	 ;  0 "" 2 + 102               	/* #NOAPP */ + 103 0082 4091 0000 		lds r20,currentAddress + 104 0086 5091 0000 		lds r21,currentAddress+1 + 105 008a FA01      		movw r30,r20 + 106               	/* #APP */ + 107               	 ;  169 "main.c" 1 + 108 008c 2591      		lpm r18, Z+ + 109 008e 3491      		lpm r19, Z + 110               		 + 111               	 ;  0 "" 2 + 112               	/* #NOAPP */ + 113 0090 2823      		and r18,r24 + 114 0092 3923      		and r19,r25 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 3 + + + 115 0094 2817      		cp r18,r24 + 116 0096 3907      		cpc r19,r25 + 117 0098 01F0      		breq .L8 + 118 009a 8091 0000 		lds r24,events + 119 009e 8160      		ori r24,lo8(1) + 120 00a0 8093 0000 		sts events,r24 + 121               	.L8: + 122 00a4 4E5F      		subi r20,lo8(-(2)) + 123 00a6 5F4F      		sbci r21,hi8(-(2)) + 124 00a8 5093 0000 		sts currentAddress+1,r21 + 125 00ac 4093 0000 		sts currentAddress,r20 + 126               	/* epilogue start */ + 127 00b0 0895      		ret + 128               	.L4: + 129 00b2 81E1      		ldi r24,lo8(17) + 130               	/* #APP */ + 131               	 ;  160 "main.c" 1 + 132 00b4 8093 5700 		sts 87, r24 + 133 00b8 E895      		spm + 134               		 + 135               	 ;  0 "" 2 + 136               	/* #NOAPP */ + 137 00ba 00C0      		rjmp .L9 + 138               		.size	writeWordToPageBuffer, .-writeWordToPageBuffer + 139               		.type	fillFlashWithVectors, @function + 140               	fillFlashWithVectors: + 141 00bc CF93      		push r28 + 142 00be DF93      		push r29 + 143               	/* prologue: function */ + 144               	/* frame size = 0 */ + 145               	/* stack size = 2 */ + 146               	.L__stack_usage = 2 + 147 00c0 C091 0000 		lds r28,currentAddress + 148 00c4 D091 0000 		lds r29,currentAddress+1 + 149 00c8 CF73      		andi r28,lo8(63) + 150 00ca D070      		andi r29,hi8(63) + 151               	.L11: + 152 00cc 8FEF      		ldi r24,lo8(-1) + 153 00ce 9FEF      		ldi r25,hi8(-1) + 154 00d0 00D0      		rcall writeWordToPageBuffer + 155 00d2 2296      		adiw r28,2 + 156 00d4 C034      		cpi r28,64 + 157 00d6 D105      		cpc r29,__zero_reg__ + 158 00d8 04F0      		brlt .L11 + 159 00da 00D0      		rcall writeFlashPage + 160               	/* epilogue start */ + 161 00dc DF91      		pop r29 + 162 00de CF91      		pop r28 + 163 00e0 0895      		ret + 164               		.size	fillFlashWithVectors, .-fillFlashWithVectors + 165               		.section	.init3,"ax",@progbits + 166               	.global	PushMagicWord + 167               		.type	PushMagicWord, @function + 168               	PushMagicWord: + 169               	/* prologue: naked */ + 170               	/* frame size = 0 */ + 171               	/* stack size = 0 */ +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 4 + + + 172               	.L__stack_usage = 0 + 173               	/* #APP */ + 174               	 ;  258 "main.c" 1 + 175 0000 00EB      		ldi r16, 0xB0 + 176               	 ;  0 "" 2 + 177               	 ;  259 "main.c" 1 + 178 0002 0F93      		push r16 + 179               	 ;  0 "" 2 + 180               	 ;  260 "main.c" 1 + 181 0004 07E0      		ldi r16, 0x07 + 182               	 ;  0 "" 2 + 183               	 ;  261 "main.c" 1 + 184 0006 0F93      		push r16 + 185               	 ;  0 "" 2 + 186               	/* epilogue start */ + 187               	/* #NOAPP */ + 188               		.size	PushMagicWord, .-PushMagicWord + 189               		.text + 190               	.global	main + 191               		.type	main, @function + 192               	main: + 193 00e2 DF93      		push r29 + 194 00e4 CF93      		push r28 + 195 00e6 0F92      		push __tmp_reg__ + 196 00e8 CDB7      		in r28,__SP_L__ + 197 00ea DEB7      		in r29,__SP_H__ + 198               	/* prologue: function */ + 199               	/* frame size = 1 */ + 200               	/* stack size = 3 */ + 201               	.L__stack_usage = 3 + 202 00ec 88E1      		ldi r24,lo8(24) + 203               	/* #APP */ + 204               	 ;  326 "main.c" 1 + 205 00ee 0FB6      		in __tmp_reg__, __SREG__ + 206 00f0 F894      		cli + 207 00f2 81BD      		out 33, r24 + 208 00f4 11BC      		out 33, __zero_reg__ + 209 00f6 0FBE      		out __SREG__,__tmp_reg__ + 210               		 + 211               	 ;  0 "" 2 + 212               	/* #NOAPP */ + 213 00f8 E0E0      		ldi r30,lo8(0) + 214 00fa F0E0      		ldi r31,hi8(0) + 215               	/* #APP */ + 216               	 ;  279 "main.c" 1 + 217 00fc 8591      		lpm r24, Z+ + 218 00fe 9491      		lpm r25, Z + 219               		 + 220               	 ;  0 "" 2 + 221               	/* #NOAPP */ + 222 0100 2AEC      		ldi r18,hi8(-13697) + 223 0102 8F37      		cpi r24,lo8(-13697) + 224 0104 9207      		cpc r25,r18 + 225 0106 01F4      		brne .L14 + 226 0108 E4E0      		ldi r30,lo8(4) + 227 010a F0E0      		ldi r31,hi8(4) + 228               	/* #APP */ +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 5 + + + 229               	 ;  280 "main.c" 1 + 230 010c 8591      		lpm r24, Z+ + 231 010e 9491      		lpm r25, Z + 232               		 + 233               	 ;  0 "" 2 + 234               	/* #NOAPP */ + 235 0110 3AEC      		ldi r19,hi8(-13697) + 236 0112 8F37      		cpi r24,lo8(-13697) + 237 0114 9307      		cpc r25,r19 + 238 0116 01F0      		breq .L15 + 239               	.L14: + 240 0118 00D0      		rcall fillFlashWithVectors + 241               	.L15: + 242 011a 1092 0000 		sts currentAddress+1,__zero_reg__ + 243 011e 1092 0000 		sts currentAddress,__zero_reg__ + 244 0122 87B3      		in r24,55-32 + 245 0124 8360      		ori r24,lo8(3) + 246 0126 87BB      		out 55-32,r24 + 247 0128 C09A      		sbi 56-32,0 + 248 012a C198      		cbi 56-32,1 + 249 012c AC9A      		sbi 53-32,4 + 250 012e 8BB7      		in r24,91-32 + 251 0130 8062      		ori r24,lo8(32) + 252 0132 8BBF      		out 91-32,r24 + 253 0134 BB9A      		sbi 55-32,3 + 254 0136 8FE4      		 ldi r24,lo8(1649999) + 255 0138 9DE2      	    ldi r25,hi8(1649999) + 256 013a A9E1      	    ldi r26,hlo8(1649999) + 257 013c 8150      	    1:subi r24,1 + 258 013e 9040      	    sbci r25,0 + 259 0140 A040      	    sbci r26,0 + 260 0142 01F4      	    brne 1b + 261 0144 00C0      		rjmp . + 262 0146 0000      		nop + 263 0148 BB98      		cbi 55-32,3 + 264               	/* #APP */ + 265               	 ;  272 "main.c" 1 + 266 014a 7894      		sei + 267               	 ;  0 "" 2 + 268               	/* #NOAPP */ + 269 014c EE24      		clr r14 + 270 014e FF24      		clr r15 + 271               	.L66: + 272 0150 2091 0000 		lds r18,usbRxLen + 273 0154 2350      		subi r18,lo8(-(-3)) + 274 0156 27FD      		sbrc r18,7 + 275 0158 00C0      		rjmp .L16 + 276 015a 8091 0000 		lds r24,usbInputBufOffset + 277 015e ECE0      		ldi r30,lo8(12) + 278 0160 F0E0      		ldi r31,hi8(12) + 279 0162 E81B      		sub r30,r24 + 280 0164 F109      		sbc r31,__zero_reg__ + 281 0166 E050      		subi r30,lo8(-(usbRxBuf)) + 282 0168 F040      		sbci r31,hi8(-(usbRxBuf)) + 283 016a 8091 0000 		lds r24,usbRxToken + 284 016e 8D32      		cpi r24,lo8(45) + 285 0170 01F0      		breq .+2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 6 + + + 286 0172 00C0      		rjmp .L17 + 287 0174 2830      		cpi r18,lo8(8) + 288 0176 01F0      		breq .+2 + 289 0178 00C0      		rjmp .L18 + 290 017a 83EC      		ldi r24,lo8(-61) + 291 017c 8093 0000 		sts usbTxBuf,r24 + 292 0180 8AE5      		ldi r24,lo8(90) + 293 0182 8093 0000 		sts usbTxLen,r24 + 294 0186 1092 0000 		sts usbMsgFlags,__zero_reg__ + 295 018a 9081      		ld r25,Z + 296 018c 9076      		andi r25,lo8(96) + 297 018e 8181      		ldd r24,Z+1 + 298 0190 9923      		tst r25 + 299 0192 01F0      		breq .L19 + 300 0194 8823      		tst r24 + 301 0196 01F4      		brne .L20 + 302 0198 80E0      		ldi r24,lo8(replyBuffer.1750) + 303 019a 90E0      		ldi r25,hi8(replyBuffer.1750) + 304 019c 9093 0000 		sts usbMsgPtr+1,r25 + 305 01a0 8093 0000 		sts usbMsgPtr,r24 + 306 01a4 25E0      		ldi r18,lo8(5) + 307 01a6 00C0      		rjmp .L25 + 308               	.L20: + 309 01a8 8130      		cpi r24,lo8(1) + 310 01aa 01F4      		brne .L22 + 311 01ac C098      		cbi 56-32,0 + 312 01ae 8281      		ldd r24,Z+2 + 313 01b0 8093 0000 		sts writeLength,r24 + 314 01b4 8481      		ldd r24,Z+4 + 315 01b6 9581      		ldd r25,Z+5 + 316 01b8 9093 0000 		sts currentAddress+1,r25 + 317 01bc 8093 0000 		sts currentAddress,r24 + 318 01c0 8081      		ld r24,Z + 319 01c2 87FD      		sbrc r24,7 + 320 01c4 00C0      		rjmp .L23 + 321 01c6 2FEF      		ldi r18,lo8(-1) + 322 01c8 00C0      		rjmp .L24 + 323               	.L22: + 324 01ca 8091 0000 		lds r24,events + 325 01ce 8460      		ori r24,lo8(4) + 326 01d0 8093 0000 		sts events,r24 + 327 01d4 20E0      		ldi r18,lo8(0) + 328 01d6 00C0      		rjmp .L25 + 329               	.L19: + 330 01d8 9281      		ldd r25,Z+2 + 331 01da 1092 0000 		sts usbTxBuf+9,__zero_reg__ + 332 01de 8823      		tst r24 + 333 01e0 01F4      		brne .L26 + 334 01e2 1092 0000 		sts usbTxBuf+10,__zero_reg__ + 335 01e6 80E0      		ldi r24,lo8(usbTxBuf+9) + 336 01e8 90E0      		ldi r25,hi8(usbTxBuf+9) + 337 01ea 22E0      		ldi r18,lo8(2) + 338 01ec 00C0      		rjmp .L27 + 339               	.L26: + 340 01ee 8530      		cpi r24,lo8(5) + 341 01f0 01F4      		brne .L28 + 342 01f2 9093 0000 		sts usbNewDeviceAddr,r25 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 7 + + + 343 01f6 00C0      		rjmp .L73 + 344               	.L28: + 345 01f8 8630      		cpi r24,lo8(6) + 346 01fa 01F4      		brne .L29 + 347 01fc 8381      		ldd r24,Z+3 + 348 01fe 8130      		cpi r24,lo8(1) + 349 0200 01F4      		brne .L30 + 350 0202 80E0      		ldi r24,lo8(usbDescriptorDevice) + 351 0204 90E0      		ldi r25,hi8(usbDescriptorDevice) + 352 0206 00C0      		rjmp .L72 + 353               	.L30: + 354 0208 8230      		cpi r24,lo8(2) + 355 020a 01F4      		brne .L32 + 356 020c 80E0      		ldi r24,lo8(usbDescriptorConfiguration) + 357 020e 90E0      		ldi r25,hi8(usbDescriptorConfiguration) + 358               	.L72: + 359 0210 9093 0000 		sts usbMsgPtr+1,r25 + 360 0214 8093 0000 		sts usbMsgPtr,r24 + 361 0218 22E1      		ldi r18,lo8(18) + 362 021a 00C0      		rjmp .L31 + 363               	.L32: + 364 021c 8330      		cpi r24,lo8(3) + 365 021e 01F4      		brne .L68 + 366 0220 9923      		tst r25 + 367 0222 01F4      		brne .L33 + 368 0224 80E0      		ldi r24,lo8(usbDescriptorString0) + 369 0226 90E0      		ldi r25,hi8(usbDescriptorString0) + 370 0228 9093 0000 		sts usbMsgPtr+1,r25 + 371 022c 8093 0000 		sts usbMsgPtr,r24 + 372 0230 24E0      		ldi r18,lo8(4) + 373 0232 00C0      		rjmp .L31 + 374               	.L33: + 375 0234 9130      		cpi r25,lo8(1) + 376 0236 01F4      		brne .L34 + 377 0238 80E0      		ldi r24,lo8(usbDescriptorStringVendor) + 378 023a 90E0      		ldi r25,hi8(usbDescriptorStringVendor) + 379 023c 9093 0000 		sts usbMsgPtr+1,r25 + 380 0240 8093 0000 		sts usbMsgPtr,r24 + 381 0244 22E2      		ldi r18,lo8(34) + 382 0246 00C0      		rjmp .L31 + 383               	.L34: + 384 0248 9230      		cpi r25,lo8(2) + 385 024a 01F4      		brne .L68 + 386 024c 80E0      		ldi r24,lo8(usbDescriptorStringDevice) + 387 024e 90E0      		ldi r25,hi8(usbDescriptorStringDevice) + 388 0250 9093 0000 		sts usbMsgPtr+1,r25 + 389 0254 8093 0000 		sts usbMsgPtr,r24 + 390 0258 2CE0      		ldi r18,lo8(12) + 391 025a 00C0      		rjmp .L31 + 392               	.L68: + 393 025c 20E0      		ldi r18,lo8(0) + 394               	.L31: + 395 025e 80E4      		ldi r24,lo8(64) + 396 0260 8093 0000 		sts usbMsgFlags,r24 + 397 0264 00C0      		rjmp .L25 + 398               	.L29: + 399 0266 8830      		cpi r24,lo8(8) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 8 + + + 400 0268 01F0      		breq .L69 + 401 026a 8930      		cpi r24,lo8(9) + 402 026c 01F4      		brne .L36 + 403 026e 9093 0000 		sts usbConfiguration,r25 + 404 0272 00C0      		rjmp .L73 + 405               	.L36: + 406 0274 8A30      		cpi r24,lo8(10) + 407 0276 01F0      		breq .L70 + 408               	.L73: + 409 0278 80E0      		ldi r24,lo8(usbTxBuf+9) + 410 027a 90E0      		ldi r25,hi8(usbTxBuf+9) + 411 027c 20E0      		ldi r18,lo8(0) + 412 027e 00C0      		rjmp .L27 + 413               	.L69: + 414 0280 80E0      		ldi r24,lo8(usbConfiguration) + 415 0282 90E0      		ldi r25,hi8(usbConfiguration) + 416 0284 00C0      		rjmp .L74 + 417               	.L70: + 418 0286 80E0      		ldi r24,lo8(usbTxBuf+9) + 419 0288 90E0      		ldi r25,hi8(usbTxBuf+9) + 420               	.L74: + 421 028a 21E0      		ldi r18,lo8(1) + 422               	.L27: + 423 028c 9093 0000 		sts usbMsgPtr+1,r25 + 424 0290 8093 0000 		sts usbMsgPtr,r24 + 425 0294 00C0      		rjmp .L25 + 426               	.L23: + 427 0296 2681      		ldd r18,Z+6 + 428               	.L24: + 429 0298 80E8      		ldi r24,lo8(-128) + 430 029a 8093 0000 		sts usbMsgFlags,r24 + 431 029e 00C0      		rjmp .L37 + 432               	.L25: + 433 02a0 8781      		ldd r24,Z+7 + 434 02a2 8823      		tst r24 + 435 02a4 01F4      		brne .L37 + 436 02a6 8681      		ldd r24,Z+6 + 437 02a8 8217      		cp r24,r18 + 438 02aa 00F4      		brsh .L37 + 439 02ac 282F      		mov r18,r24 + 440               	.L37: + 441 02ae 2093 0000 		sts usbMsgLen,r18 + 442 02b2 00C0      		rjmp .L18 + 443               	.L17: + 444 02b4 8091 0000 		lds r24,usbMsgFlags + 445 02b8 87FF      		sbrs r24,7 + 446 02ba 00C0      		rjmp .L18 + 447 02bc 8091 0000 		lds r24,writeLength + 448 02c0 821B      		sub r24,r18 + 449 02c2 8093 0000 		sts writeLength,r24 + 450 02c6 8F01      		movw r16,r30 + 451               	.L42: + 452 02c8 8091 0000 		lds r24,currentAddress + 453 02cc 9091 0000 		lds r25,currentAddress+1 + 454 02d0 0097      		sbiw r24,0 + 455 02d2 01F4      		brne .L38 + 456 02d4 D801      		movw r26,r16 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 9 + + + 457 02d6 8D91      		ld r24,X+ + 458 02d8 9C91      		ld r25,X + 459 02da 1197      		sbiw r26,1 + 460 02dc 9093 0000 		sts vectorTemp+1,r25 + 461 02e0 8093 0000 		sts vectorTemp,r24 + 462 02e4 00C0      		rjmp .L39 + 463               	.L38: + 464 02e6 8430      		cpi r24,4 + 465 02e8 9105      		cpc r25,__zero_reg__ + 466 02ea 01F4      		brne .L40 + 467 02ec F801      		movw r30,r16 + 468 02ee 8081      		ld r24,Z + 469 02f0 9181      		ldd r25,Z+1 + 470 02f2 9093 0000 		sts vectorTemp+2+1,r25 + 471 02f6 8093 0000 		sts vectorTemp+2,r24 + 472 02fa 00C0      		rjmp .L39 + 473               	.L40: + 474 02fc F4E1      		ldi r31,hi8(5370) + 475 02fe 8A3F      		cpi r24,lo8(5370) + 476 0300 9F07      		cpc r25,r31 + 477 0302 00F0      		brlo .L39 + 478 0304 81E1      		ldi r24,lo8(17) + 479               	/* #APP */ + 480               	 ;  235 "main.c" 1 + 481 0306 8093 5700 		sts 87, r24 + 482 030a E895      		spm + 483               		 + 484               	 ;  0 "" 2 + 485               	/* #NOAPP */ + 486 030c 00C0      		rjmp .L41 + 487               	.L39: + 488 030e D801      		movw r26,r16 + 489 0310 8D91      		ld r24,X+ + 490 0312 9D91      		ld r25,X+ + 491 0314 8D01      		movw r16,r26 + 492 0316 2983      		std Y+1,r18 + 493 0318 00D0      		rcall writeWordToPageBuffer + 494 031a 2981      		ldd r18,Y+1 + 495 031c 2250      		subi r18,lo8(-(-2)) + 496 031e 01F4      		brne .L42 + 497               	.L41: + 498 0320 8091 0000 		lds r24,writeLength + 499 0324 8823      		tst r24 + 500 0326 01F4      		brne .L18 + 501 0328 8091 0000 		lds r24,events + 502 032c 8260      		ori r24,lo8(2) + 503 032e 8093 0000 		sts events,r24 + 504 0332 1092 0000 		sts usbMsgLen,__zero_reg__ + 505               	.L18: + 506 0336 1092 0000 		sts usbRxLen,__zero_reg__ + 507               	.L16: + 508 033a 8091 0000 		lds r24,usbTxLen + 509 033e 84FF      		sbrs r24,4 + 510 0340 00C0      		rjmp .L43 + 511 0342 8091 0000 		lds r24,usbMsgLen + 512 0346 8F3F      		cpi r24,lo8(-1) + 513 0348 01F4      		brne .+2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 10 + + + 514 034a 00C0      		rjmp .L43 + 515 034c 082F      		mov r16,r24 + 516 034e 8930      		cpi r24,lo8(9) + 517 0350 00F0      		brlo .L44 + 518 0352 08E0      		ldi r16,lo8(8) + 519               	.L44: + 520 0354 801B      		sub r24,r16 + 521 0356 8093 0000 		sts usbMsgLen,r24 + 522 035a 8091 0000 		lds r24,usbTxBuf + 523 035e 98E8      		ldi r25,lo8(-120) + 524 0360 8927      		eor r24,r25 + 525 0362 8093 0000 		sts usbTxBuf,r24 + 526 0366 0023      		tst r16 + 527 0368 01F0      		breq .L45 + 528 036a E091 0000 		lds r30,usbMsgPtr + 529 036e F091 0000 		lds r31,usbMsgPtr+1 + 530 0372 9091 0000 		lds r25,usbMsgFlags + 531 0376 802F      		mov r24,r16 + 532 0378 8150      		subi r24,lo8(-(-1)) + 533 037a 96FF      		sbrs r25,6 + 534 037c 00C0      		rjmp .L46 + 535 037e 90E0      		ldi r25,lo8(0) + 536 0380 8050      		subi r24,lo8(-(usbTxBuf+2)) + 537 0382 9040      		sbci r25,hi8(-(usbTxBuf+2)) + 538 0384 A0E0      		ldi r26,lo8(usbTxBuf+1) + 539 0386 B0E0      		ldi r27,hi8(usbTxBuf+1) + 540               	.L47: + 541               	/* #APP */ + 542               	 ;  504 "usbdrv/usbdrv.c" 1 + 543 0388 2491      		lpm r18, Z + 544               		 + 545               	 ;  0 "" 2 + 546               	/* #NOAPP */ + 547 038a 2D93      		st X+,r18 + 548 038c 3196      		adiw r30,1 + 549 038e A817      		cp r26,r24 + 550 0390 B907      		cpc r27,r25 + 551 0392 01F4      		brne .L47 + 552 0394 00C0      		rjmp .L48 + 553               	.L46: + 554 0396 9F01      		movw r18,r30 + 555 0398 90E0      		ldi r25,lo8(0) + 556 039a 8050      		subi r24,lo8(-(usbTxBuf+2)) + 557 039c 9040      		sbci r25,hi8(-(usbTxBuf+2)) + 558 039e A0E0      		ldi r26,lo8(usbTxBuf+1) + 559 03a0 B0E0      		ldi r27,hi8(usbTxBuf+1) + 560               	.L49: + 561 03a2 F901      		movw r30,r18 + 562 03a4 4191      		ld r20,Z+ + 563 03a6 9F01      		movw r18,r30 + 564 03a8 4D93      		st X+,r20 + 565 03aa A817      		cp r26,r24 + 566 03ac B907      		cpc r27,r25 + 567 03ae 01F4      		brne .L49 + 568               	.L48: + 569 03b0 F093 0000 		sts usbMsgPtr+1,r31 + 570 03b4 E093 0000 		sts usbMsgPtr,r30 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 11 + + + 571               	.L45: + 572 03b8 80E0      		ldi r24,lo8(usbTxBuf+1) + 573 03ba 90E0      		ldi r25,hi8(usbTxBuf+1) + 574 03bc 602F      		mov r22,r16 + 575 03be 00D0      		rcall usbCrc16Append + 576 03c0 0C5F      		subi r16,lo8(-(4)) + 577 03c2 0C30      		cpi r16,lo8(12) + 578 03c4 01F0      		breq .L50 + 579 03c6 8FEF      		ldi r24,lo8(-1) + 580 03c8 8093 0000 		sts usbMsgLen,r24 + 581               	.L50: + 582 03cc 0093 0000 		sts usbTxLen,r16 + 583               	.L43: + 584 03d0 84E1      		ldi r24,lo8(20) + 585               	.L52: + 586 03d2 96B3      		in r25,54-32 + 587 03d4 9871      		andi r25,lo8(24) + 588 03d6 01F4      		brne .L51 + 589 03d8 8150      		subi r24,lo8(-(-1)) + 590 03da 01F4      		brne .L52 + 591 03dc 1092 0000 		sts usbNewDeviceAddr,__zero_reg__ + 592 03e0 1092 0000 		sts usbDeviceAddr,__zero_reg__ + 593               	.L51: + 594 03e4 01E0      		ldi r16,lo8(1) + 595 03e6 8111      		cpse r24,__zero_reg__ + 596 03e8 00E0      		ldi r16,lo8(0) + 597               	.L53: + 598 03ea 8091 0000 		lds r24,wasReset.1698 + 599 03ee 8017      		cp r24,r16 + 600 03f0 01F0      		breq .L54 + 601 03f2 0023      		tst r16 + 602 03f4 01F4      		brne .L55 + 603               	/* #APP */ + 604               	 ;  557 "usbdrv/usbdrv.c" 1 + 605 03f6 F894      		cli + 606               	 ;  0 "" 2 + 607               	/* #NOAPP */ + 608 03f8 00D0      		rcall calibrateOscillator + 609               	/* #APP */ + 610               	 ;  557 "usbdrv/usbdrv.c" 1 + 611 03fa 7894      		sei + 612               	 ;  0 "" 2 + 613               	/* #NOAPP */ + 614               	.L55: + 615 03fc 0093 0000 		sts wasReset.1698,r16 + 616               	.L54: + 617 0400 8CE9      		 ldi r24,lo8(412) + 618 0402 91E0      	    ldi r25,hi8(412) + 619 0404 0197      	    1:sbiw r24,1 + 620 0406 01F4      	    brne 1b + 621 0408 0000      		nop + 622 040a 8091 0000 		lds r24,events + 623 040e 8823      		tst r24 + 624 0410 01F4      		brne .L71 + 625 0412 0894      		sec + 626 0414 E11C      		adc r14,__zero_reg__ + 627 0416 F11C      		adc r15,__zero_reg__ +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 12 + + + 628 0418 00C0      		rjmp .L56 + 629               	.L71: + 630 041a EE24      		clr r14 + 631 041c FF24      		clr r15 + 632               	.L56: + 633 041e 80FF      		sbrs r24,0 + 634 0420 00C0      		rjmp .L57 + 635               	/* #APP */ + 636               	 ;  117 "main.c" 1 + 637 0422 F894      		cli + 638               	 ;  0 "" 2 + 639               	/* #NOAPP */ + 640 0424 E091 0000 		lds r30,currentAddress + 641 0428 F091 0000 		lds r31,currentAddress+1 + 642 042c 3297      		sbiw r30,2 + 643 042e 83E0      		ldi r24,lo8(3) + 644               	/* #APP */ + 645               	 ;  118 "main.c" 1 + 646 0430 8093 5700 		sts 87, r24 + 647 0434 E895      		spm + 648               		 + 649               	 ;  0 "" 2 + 650               	/* #NOAPP */ + 651               	.L58: + 652 0436 07B6      		in __tmp_reg__,87-32 + 653 0438 00FC      		sbrc __tmp_reg__,0 + 654 043a 00C0      		rjmp .L58 + 655               	/* #APP */ + 656               	 ;  120 "main.c" 1 + 657 043c 7894      		sei + 658               	 ;  0 "" 2 + 659               	/* #NOAPP */ + 660               	.L57: + 661 043e 8091 0000 		lds r24,events + 662 0442 81FF      		sbrs r24,1 + 663 0444 00C0      		rjmp .L59 + 664 0446 A9E3      		 ldi r26,lo8(8249) + 665 0448 B0E2      	    ldi r27,hi8(8249) + 666 044a 1197      	    1:sbiw r26,1 + 667 044c 01F4      	    brne 1b + 668 044e 00C0      		rjmp . + 669 0450 0000      		nop + 670 0452 8091 0000 		lds r24,currentAddress + 671 0456 9091 0000 		lds r25,currentAddress+1 + 672 045a 8F73      		andi r24,lo8(63) + 673 045c 9070      		andi r25,hi8(63) + 674 045e 0097      		sbiw r24,0 + 675 0460 01F0      		breq .L60 + 676 0462 00D0      		rcall fillFlashWithVectors + 677 0464 00C0      		rjmp .L59 + 678               	.L60: + 679 0466 00D0      		rcall writeFlashPage + 680               	.L59: + 681 0468 8091 0000 		lds r24,events + 682 046c 82FD      		sbrc r24,2 + 683 046e 00C0      		rjmp .L61 + 684 0470 B1E5      		ldi r27,lo8(-15535) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 13 + + + 685 0472 EB16      		cp r14,r27 + 686 0474 B3EC      		ldi r27,hi8(-15535) + 687 0476 FB06      		cpc r15,r27 + 688 0478 00F0      		brlo .L62 + 689               	.L61: + 690 047a E1E2      		 ldi r30,lo8(-24287) + 691 047c F1EA      	    ldi r31,hi8(-24287) + 692 047e 3197      	    1:sbiw r30,1 + 693 0480 01F4      	    brne 1b + 694 0482 00C0      		rjmp . + 695 0484 0000      		nop + 696               	/* #APP */ + 697               	 ;  303 "main.c" 1 + 698 0486 F894      		cli + 699               	 ;  0 "" 2 + 700               	/* #NOAPP */ + 701 0488 1BBE      		out 91-32,__zero_reg__ + 702 048a 15BA      		out 53-32,__zero_reg__ + 703 048c 8091 0000 		lds r24,didWriteSomething + 704 0490 8823      		tst r24 + 705 0492 01F4      		brne .L63 + 706 0494 00C0      		rjmp .L64 + 707               	.L65: + 708 0496 00D0      		rcall fillFlashWithVectors + 709               	.L63: + 710 0498 8091 0000 		lds r24,currentAddress + 711 049c 9091 0000 		lds r25,currentAddress+1 + 712 04a0 F5E1      		ldi r31,hi8(5376) + 713 04a2 8030      		cpi r24,lo8(5376) + 714 04a4 9F07      		cpc r25,r31 + 715 04a6 00F0      		brlo .L65 + 716               	.L64: + 717 04a8 1092 5F02 		sts 607,__zero_reg__ + 718 04ac 1092 5E02 		sts 606,__zero_reg__ + 719               	/* #APP */ + 720               	 ;  319 "main.c" 1 + 721 04b0 00C0      		rjmp __vectors - 4 + 722               	 ;  0 "" 2 + 723               	/* #NOAPP */ + 724               	.L62: + 725 04b2 1092 0000 		sts events,__zero_reg__ + 726 04b6 00C0      		rjmp .L66 + 727               		.size	main, .-main + 728               	.global	usbTxLen + 729               		.data + 730               		.type	usbTxLen, @object + 731               		.size	usbTxLen, 1 + 732               	usbTxLen: + 733 0000 5A        		.byte	90 + 734               	.global	usbDescriptorString0 + 735               		.section	.progmem.data,"a",@progbits + 736               		.type	usbDescriptorString0, @object + 737               		.size	usbDescriptorString0, 4 + 738               	usbDescriptorString0: + 739 0000 04        		.byte	4 + 740 0001 03        		.byte	3 + 741 0002 09        		.byte	9 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 14 + + + 742 0003 04        		.byte	4 + 743               	.global	usbDescriptorStringVendor + 744               		.type	usbDescriptorStringVendor, @object + 745               		.size	usbDescriptorStringVendor, 34 + 746               	usbDescriptorStringVendor: + 747 0004 2203      		.word	802 + 748 0006 6300      		.word	99 + 749 0008 7200      		.word	114 + 750 000a 6500      		.word	101 + 751 000c 6100      		.word	97 + 752 000e 7400      		.word	116 + 753 0010 6900      		.word	105 + 754 0012 7600      		.word	118 + 755 0014 6500      		.word	101 + 756 0016 7000      		.word	112 + 757 0018 6F00      		.word	111 + 758 001a 6E00      		.word	110 + 759 001c 7900      		.word	121 + 760 001e 2E00      		.word	46 + 761 0020 6300      		.word	99 + 762 0022 6F00      		.word	111 + 763 0024 6D00      		.word	109 + 764               	.global	usbDescriptorStringDevice + 765               		.type	usbDescriptorStringDevice, @object + 766               		.size	usbDescriptorStringDevice, 12 + 767               	usbDescriptorStringDevice: + 768 0026 0C03      		.word	780 + 769 0028 7500      		.word	117 + 770 002a 4200      		.word	66 + 771 002c 6F00      		.word	111 + 772 002e 6F00      		.word	111 + 773 0030 7400      		.word	116 + 774               	.global	usbDescriptorDevice + 775               		.type	usbDescriptorDevice, @object + 776               		.size	usbDescriptorDevice, 18 + 777               	usbDescriptorDevice: + 778 0032 12        		.byte	18 + 779 0033 01        		.byte	1 + 780 0034 10        		.byte	16 + 781 0035 01        		.byte	1 + 782 0036 FF        		.byte	-1 + 783 0037 00        		.byte	0 + 784 0038 00        		.byte	0 + 785 0039 08        		.byte	8 + 786 003a C0        		.byte	-64 + 787 003b 16        		.byte	22 + 788 003c DC        		.byte	-36 + 789 003d 05        		.byte	5 + 790 003e 01        		.byte	1 + 791 003f 00        		.byte	0 + 792 0040 01        		.byte	1 + 793 0041 02        		.byte	2 + 794 0042 00        		.byte	0 + 795 0043 01        		.byte	1 + 796               	.global	usbDescriptorConfiguration + 797               		.type	usbDescriptorConfiguration, @object + 798               		.size	usbDescriptorConfiguration, 18 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 15 + + + 799               	usbDescriptorConfiguration: + 800 0044 09        		.byte	9 + 801 0045 02        		.byte	2 + 802 0046 12        		.byte	18 + 803 0047 00        		.byte	0 + 804 0048 01        		.byte	1 + 805 0049 01        		.byte	1 + 806 004a 00        		.byte	0 + 807 004b 80        		.byte	-128 + 808 004c 32        		.byte	50 + 809 004d 09        		.byte	9 + 810 004e 04        		.byte	4 + 811 004f 00        		.byte	0 + 812 0050 00        		.byte	0 + 813 0051 00        		.byte	0 + 814 0052 00        		.byte	0 + 815 0053 00        		.byte	0 + 816 0054 00        		.byte	0 + 817 0055 00        		.byte	0 + 818               		.comm usbMsgPtr,2,1 + 819               		.comm usbRxToken,1,1 + 820               		.comm usbConfiguration,1,1 + 821               		.comm usbRxBuf,22,1 + 822               		.comm usbInputBufOffset,1,1 + 823               		.comm usbDeviceAddr,1,1 + 824               		.comm usbNewDeviceAddr,1,1 + 825               		.comm usbRxLen,1,1 + 826               		.comm usbCurrentTok,1,1 + 827               		.comm usbTxBuf,11,1 + 828               		.lcomm currentAddress,2 + 829               		.lcomm events,1 + 830               		.lcomm vectorTemp,4 + 831               		.lcomm didWriteSomething,1 + 832               		.data + 833               		.type	usbMsgLen, @object + 834               		.size	usbMsgLen, 1 + 835               	usbMsgLen: + 836 0001 FF        		.byte	-1 + 837               		.lcomm usbMsgFlags,1 + 838               		.lcomm writeLength,1 + 839               		.type	replyBuffer.1750, @object + 840               		.size	replyBuffer.1750, 5 + 841               	replyBuffer.1750: + 842 0002 01        		.byte	1 + 843 0003 14        		.byte	20 + 844 0004 FA        		.byte	-6 + 845 0005 40        		.byte	64 + 846 0006 14        		.byte	20 + 847               		.lcomm wasReset.1698,1 + 848               	.global __do_copy_data + 849               	.global __do_clear_bss +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 16  DEFINED SYMBOLS                              *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:7      *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:10     .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:10     .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:830    .bss:00000007 didWriteSomething                               .bss:00000000 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:44     .text:0000001e writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:813    .bss:00000003 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:812    .bss:00000002 events -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:138    .text:000000b6 fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:166    .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:190    .text:000000dc main +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:46     .text:00000024 writeWordToPageBuffer +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:829    .bss:00000003 vectorTemp +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:828    .bss:00000002 events +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:140    .text:000000bc fillFlashWithVectors +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:168    .init3:00000000 PushMagicWord +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:192    .text:000000e2 main                              *COM*:00000001 usbRxLen                              *COM*:00000001 usbInputBufOffset                              *COM*:00000016 usbRxBuf                              *COM*:00000001 usbRxToken                              *COM*:0000000b usbTxBuf -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:716    .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:814    .bss:00000007 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:824    .data:00000002 replyBuffer.1756 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:732    .data:00000000 usbTxLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:831    .bss:00000008 usbMsgFlags +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:841    .data:00000002 replyBuffer.1750                              *COM*:00000002 usbMsgPtr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:820    .bss:00000008 writeLength +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:837    .bss:00000009 writeLength                              *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:761    .progmem.data:00000032 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:783    .progmem.data:00000044 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:722    .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:730    .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:751    .progmem.data:00000026 usbDescriptorStringDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:777    .progmem.data:00000032 usbDescriptorDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:799    .progmem.data:00000044 usbDescriptorConfiguration +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:738    .progmem.data:00000000 usbDescriptorString0 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:746    .progmem.data:00000004 usbDescriptorStringVendor +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:767    .progmem.data:00000026 usbDescriptorStringDevice                              *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:818    .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:835    .data:00000001 usbMsgLen                              *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:821    .bss:00000009 wasReset.1698 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:838    .bss:0000000a wasReset.1698                              *COM*:00000001 usbCurrentTok  UNDEFINED SYMBOLS diff --git a/firmware/main.hex b/firmware/main.hex index 27ab57c..3902f18 100644 --- a/firmware/main.hex +++ b/firmware/main.hex @@ -6,10 +6,10 @@  :1015500012011001FF000008C016DC0501000102A5
  :10156000000109021200010100803209040000009C
  :101570000000000011241FBECFE5D2E0DEBFCDBFCA
 -:1015800000EB0F9307E00F9310E0A0E6B0E0E6ED6C
 +:1015800000EB0F9307E00F9310E0A0E6B0E0E8EF68
  :10159000FDE102C005900D92A836B107D9F710E021
 -:1015A000A8E6B0E001C01D92AC39B107E1F7FAD16D
 -:1015B00010C4A6CFA82FB92F80E090E041E050EAF8
 +:1015A000A8E6B0E001C01D92AD39B107E1F7FDD169
 +:1015B00021C4A6CFA82FB92F80E090E041E050EAE7
  :1015C000609530E009C02D9182279795879510F09E
  :1015D00084279527305EC8F36F5FA8F30895EADF8C
  :1015E0008D939D930895A6E088279927AA9569F081
 @@ -19,7 +19,7 @@  :1016200021F0CF91CFBFCF916ACFCC27C395B39B89
  :10163000E9F7B39B0BC0B39B09C0B39B07C0B39B37
  :1016400005C0B39B03C0B39B01C0D3C00F92DF930F
 -:10165000C0917F00DD27CA57DF4F012EB39B03C027
 +:10165000C0918000DD27C957DF4F012EB39B03C027
  :10166000DF910F90E6CF2F930F931F934F932FEFA0
  :101670004F6F06B303FB20F95F933F9350E03BE0CD
  :1016800065C016B30126502953FDC89556B30127EE
 @@ -42,104 +42,106 @@  :10179000102713FB24F90026502906B22F7939F2BD
  :1017A00070CF10E21ABF002717C03B503195C31B02
  :1017B000D04010E21ABF0881033CF9F00B34E9F085
 -:1017C00020917D001981110F1213EDCF093651F1CF
 -:1017D0000D3211F0013E39F7009384003F915F9183
 +:1017C00020917E001981110F1213EDCF093651F1CE
 +:1017D0000D3211F0013E39F7009385003F915F9182
  :1017E0004F911F910F912F91DF910F90CAB7C5FDB7
 -:1017F0001DCFCF91CFBFCF91189520918400222388
 -:1018000069F310918200112321F5343022F13093D5
 -:10181000820020937E0010917F003BE0311B3093CB
 -:101820007F0019C00091820001309CF40AE53091DC
 -:10183000600034FD11C000936000C2E7D0E010C02A
 +:1017F0001DCFCF91CFBFCF91189520918500222387
 +:1018000069F310918300112321F5343022F13093D4
 +:10181000830020937F00109180003BE0311B3093C8
 +:10182000800019C00091830001309CF40AE53091DA
 +:10183000600034FD11C000936000C3E7D0E010C029
  :10184000052710E000C021C0052710E0C89508BB9F
  :1018500014C03AE501C032ED032EC0E0D0E032E022
  :1018600017B31861C39A08B317BB58E120E84FEFCC
  :1018700020FF052708BB279517951C3F28F7000078
  :101880004552B0F720FF0527279508BB17951C3F49
 -:10189000B8F629913A9561F7077E10918300110FF0
 -:1018A00008BBC250D04011F010937D0010E21ABF67
 +:10189000B8F629913A9561F7077E10918400110FEF
 +:1018A00008BBC250D04011F010937E0010E21ABF66
  :1018B000086017B3177E402F477E54E05A95F1F722
 -:1018C00008BB17BB48BB8ACFF894E0916800F09141
 -:1018D0006900329785E080935700E89507B600FCD1
 -:1018E000FDCF78940895209168003091690021150A
 -:1018F000310509F43FC024303105B1F044E12C3FFB
 -:10190000340739F480916B0090916C008E579A4F98
 -:101910000DC044E12E3F340749F480916D00909151
 -:101920006E008D579A4F02C08FE79AECF894E091C1
 -:101930006800F091690021E00C0120935700E895C0
 -:10194000112478944091680050916900FA01259122
 -:101950003491282339232817390729F080916A0008
 -:10196000816080936A004E5F5F4F5093690040939F
 -:101970006800089581E180935700E895D5CFCF9313
 -:10198000DF93C0916800D0916900CF73D0708FEF62
 -:101990009FEFA9DF2296C034D105CCF395DFDF910C
 -:1019A000CF910895DF93CF930F92CDB7DEB788E143
 -:1019B0000FB6F89481BD11BC0FBEE0E0F0E0859158
 -:1019C00094912AEC8F37920741F4E4E0F0E085919E
 -:1019D00094913AEC8F37930709F0D1DF10926900A8
 -:1019E0001092680087B3836087BBC09AC198AC9A95
 -:1019F0008BB780628BBFBB9A8FE49DE2A9E18150D7
 -:101A00009040A040E1F700C00000BB987894EE241D
 -:101A1000FF2420918200235027FDF0C080917F0099
 -:101A2000ECE0F0E0E81BF109EA57FF4F80917E00FF
 -:101A30008D3209F0A0C0283009F0DEC083EC80931D
 -:101A400072008AE58093600010926F00908190761A
 -:101A50008181992311F1882341F482E690E09093EB
 -:101A600081008093800025E07CC0813079F4C098AB
 -:101A70008281809370008481958190936900809326
 -:101A80006800808187FD68C02FEF67C080916A0081
 -:101A9000846080936A0020E064C0928110927B0091
 -:101AA000882331F410927C008BE790E022E04FC055
 -:101AB000853019F49093830040C08630A9F5838166
 -:101AC000813019F480E595E104C0823041F482E66A
 -:101AD00095E1909381008093800022E121C08330C2
 -:101AE000F1F4992341F48EE195E190938100809384
 -:101AF000800024E015C0913041F482E295E190939A
 -:101B000081008093800022E20BC0923041F484E493
 -:101B100095E190938100809380002CE001C020E04B
 -:101B200080E480936F001DC0883059F0893019F42B
 -:101B30009093850002C08A3039F08BE790E020E076
 -:101B400006C085E890E002C08BE790E021E090932A
 -:101B500081008093800005C0268180E880936F001B
 -:101B600007C08781882321F48681821708F4282FF3
 -:101B70002093610041C080916F0087FF3DC080913C
 -:101B80007000821B809370008F018091680090919B
 -:101B90006900009749F4D8018D919C911197909319
 -:101BA0006C0080936B0014C08430910541F4F801FF
 -:101BB0008081918190936E0080936D0009C0F4E163
 -:101BC0008A3F9F0728F081E180935700E89509C07C
 -:101BD000D8018D919D918D01298385DE2981225027
 -:101BE000A1F680917000882339F480916A008260A8
 -:101BF00080936A00109261001092820080916000D0
 -:101C000084FF47C0809161008F3F09F442C0082FD4
 -:101C1000893008F008E0801B809361008091720099
 -:101C200098E8892780937200002339F1E0918000C1
 -:101C3000F091810090916F00802F815096FF0CC031
 -:101C400090E08C589F4FA3E7B0E024912D933196FC
 -:101C5000A817B907D1F70DC09F0190E08C589F4F8E
 -:101C6000A3E7B0E0F90141919F014D93A817B9078F
 -:101C7000C9F7F0938100E093800083E790E0602F44
 -:101C8000AEDC0C5F0C3019F08FEF80936100009395
 -:101C9000600084E196B3987131F48150D9F71092C5
 -:101CA000830010927D0001E0811100E080917100BD
 -:101CB000801739F0002319F4F89451D078940093E8
 -:101CC00071008CE991E00197F1F7000080916A00C2
 -:101CD000882321F40894E11CF11C02C0EE24FF24A7
 -:101CE00080FF0EC0F894E0916800F091690032978F
 -:101CF00083E080935700E89507B600FCFDCF789409
 -:101D000080916A0081FF11C0A9E3B0E21197F1F759
 -:101D100000C0000080916800909169008F739070FE
 -:101D2000009711F02CDE01C0CFDD80916A0082FDAA
 -:101D300005C0B1E5EB16B3ECFB0670F0E1E2F1EAA9
 -:101D40003197F1F700C00000F8941BBE15BA10924D
 -:101D50005F0210925E02D2CB10926A005ACEFF92BE
 -:101D60000F931F93CF93DF93C8E0D0E010E000E81B
 -:101D7000F12EF00EF1BE37DC29E0843392070CF42B
 -:101D80001F2D06952197A1F7212F215021BFEC018E
 -:101D9000012F10C028DC8453994097FF03C0909511
 -:101DA00081959F4F8C179D0714F401B7EC0181B703
 -:101DB0008F5F81BF21B730E0812F90E001968217BD
 -:101DC000930744F701BFDF91CF911F910F91FF90CF
 -:061DD0000895F894FFCF16
 -:081DD6005AFF0114FA40140049
 +:1018C00008BB17BB48BB8ACF81E080936F00F894B8
 +:1018D000E0916800F0916900329785E080935700AD
 +:1018E000E89507B600FCFDCF789408952091680034
 +:1018F000309169002115310509F43FC024303105CC
 +:10190000B1F044E12C3F340739F480916B009091A1
 +:101910006C008E579A4F0DC044E12E3F340749F4B6
 +:1019200080916D0090916E008D579A4F02C08FE7A5
 +:101930009AECF894E0916800F091690021E00C01C4
 +:1019400020935700E89511247894409168005091B5
 +:101950006900FA0125913491282339232817390782
 +:1019600029F080916A00816080936A004E5F5F4F2A
 +:101970005093690040936800089581E18093570077
 +:10198000E895D5CFCF93DF93C0916800D0916900DF
 +:10199000CF73D0708FEF9FEFA9DF2296C034D105AF
 +:1019A000CCF392DFDF91CF910895DF93CF930F9225
 +:1019B000CDB7DEB788E10FB6F89481BD11BC0FBE7C
 +:1019C000E0E0F0E0859194912AEC8F37920741F4A2
 +:1019D000E4E0F0E0859194913AEC8F37930709F0B9
 +:1019E000D1DF109269001092680087B3836087BBD3
 +:1019F000C09AC198AC9A8BB780628BBFBB9A8FE4B8
 +:101A00009DE2A9E181509040A040E1F700C00000B4
 +:101A1000BB987894EE24FF2420918300235027FD67
 +:101A2000F0C080918000ECE0F0E0E81BF109E9579C
 +:101A3000FF4F80917F008D3209F0A0C0283009F05F
 +:101A4000DEC083EC809373008AE58093600010927F
 +:101A50007000908190768181992311F1882341F45F
 +:101A600082E690E0909382008093810025E07CC024
 +:101A7000813079F4C098828180937100848195814E
 +:101A80009093690080936800808187FD68C02FEF84
 +:101A900067C080916A00846080936A0020E064C01F
 +:101AA000928110927C00882331F410927D008CE7A3
 +:101AB00090E022E04FC0853019F49093840040C03C
 +:101AC0008630A9F58381813019F480E595E104C061
 +:101AD000823041F482E695E1909382008093810008
 +:101AE00022E121C08330F1F4992341F48EE195E1A4
 +:101AF000909382008093810024E015C0913041F4DE
 +:101B000082E295E1909382008093810022E20BC0F3
 +:101B1000923041F484E495E19093820080938100B7
 +:101B20002CE001C020E080E4809370001DC088306C
 +:101B300059F0893019F49093860002C08A3039F048
 +:101B40008CE790E020E006C086E890E002C08CE7D9
 +:101B500090E021E0909382008093810005C026816F
 +:101B600080E88093700007C08781882321F48681F4
 +:101B7000821708F4282F2093610041C080917000E3
 +:101B800087FF3DC080917100821B809371008F019F
 +:101B90008091680090916900009749F4D8018D9177
 +:101BA0009C91119790936C0080936B0014C08430CB
 +:101BB000910541F4F8018081918190936E008093AA
 +:101BC0006D0009C0F4E18A3F9F0728F081E180930E
 +:101BD0005700E89509C0D8018D919D918D01298309
 +:101BE00085DE29812250A1F680917100882339F485
 +:101BF00080916A00826080936A0010926100109266
 +:101C000083008091600084FF47C0809161008F3F16
 +:101C100009F442C0082F893008F008E0801B809347
 +:101C200061008091730098E88927809373000023F6
 +:101C300039F1E0918100F091820090917000802F45
 +:101C4000815096FF0CC090E08B589F4FA4E7B0E006
 +:101C500024912D933196A817B907D1F70DC09F0194
 +:101C600090E08B589F4FA4E7B0E0F90141919F01AC
 +:101C70004D93A817B907C9F7F0938200E09381004C
 +:101C800084E790E0602FABDC0C5F0C3019F08FEF35
 +:101C9000809361000093600084E196B3987131F401
 +:101CA0008150D9F71092840010927E0001E08111DA
 +:101CB00000E080917200801739F0002319F4F89445
 +:101CC0005FD07894009372008CE991E00197F1F76E
 +:101CD000000080916A00882321F40894E11CF11C23
 +:101CE00002C0EE24FF2480FF0EC0F894E09168004B
 +:101CF000F0916900329783E080935700E89507B62A
 +:101D000000FCFDCF789480916A0081FF11C0A9E3A7
 +:101D1000B0E21197F1F700C0000080916800909147
 +:101D200069008F739070009711F02CDE01C0CCDD3C
 +:101D300080916A0082FD05C0B1E5EB16B3ECFB06AD
 +:101D4000E0F0E1E2F1EA3197F1F700C00000F89429
 +:101D50001BBE15BA80916F00882311F409C012DEF2
 +:101D60008091680090916900F5E180309F07B8F399
 +:101D700010925F0210925E02C1CB10926A004CCEAC
 +:101D8000FF920F931F93CF93DF93C8E0D0E010E052
 +:101D900000E8F12EF00EF1BE26DC29E08433920734
 +:101DA0000CF41F2D06952197A1F7212F215021BF5B
 +:101DB000EC01012F10C017DC8453994097FF03C03A
 +:101DC000909581959F4F8C179D0714F401B7EC01F6
 +:101DD00081B78F5F81BF21B730E0812F90E00196FE
 +:101DE0008217930744F701BFDF91CF911F910F91A5
 +:081DF000FF900895F894FFCF65
 +:081DF8005AFF0114FA40140027
  :0400000300001500E4
  :00000001FF
 diff --git a/firmware/main.map b/firmware/main.map index c5f2234..ef36b22 100644 --- a/firmware/main.map +++ b/firmware/main.map @@ -158,7 +158,7 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a  .rela.plt   *(.rela.plt) -.text           0x00001500      0x8d6 +.text           0x00001500      0x8f8   *(.vectors)   .vectors       0x00001500       0x1e /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o                  0x00001500                __vectors @@ -241,17 +241,17 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a                  0x000015de                usbCrc16Append                  0x000015e6                usbMeasureFrameLength                  0x0000160c                __vector_2 - .text          0x000018c8      0x496 main.o -                0x000019a4                main - .text          0x00001d5e       0x74 libs-device/osccal.o -                0x00001d5e                calibrateOscillator -                0x00001dd2                . = ALIGN (0x2) + .text          0x000018c8      0x4b8 main.o +                0x000019aa                main + .text          0x00001d80       0x74 libs-device/osccal.o +                0x00001d80                calibrateOscillator +                0x00001df4                . = ALIGN (0x2)   *(.text.*) -                0x00001dd2                . = ALIGN (0x2) +                0x00001df4                . = ALIGN (0x2)   *(.fini9) - .fini9         0x00001dd2        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) -                0x00001dd2                exit -                0x00001dd2                _exit + .fini9         0x00001df4        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) +                0x00001df4                exit +                0x00001df4                _exit   *(.fini9)   *(.fini8)   *(.fini8) @@ -270,11 +270,11 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a   *(.fini1)   *(.fini1)   *(.fini0) - .fini0         0x00001dd2        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) + .fini0         0x00001df4        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)   *(.fini0) -                0x00001dd6                _etext = . +                0x00001df8                _etext = . -.data           0x00800060        0x8 load address 0x00001dd6 +.data           0x00800060        0x8 load address 0x00001df8                  0x00800060                PROVIDE (__data_start, .)   *(.data)   .data          0x00800060        0x7 main.o @@ -288,33 +288,33 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a                  0x00800068                _edata = .                  0x00800068                PROVIDE (__data_end, .) -.bss            0x00800068       0x34 +.bss            0x00800068       0x35                  0x00800068                PROVIDE (__bss_start, .)   *(.bss) - .bss           0x00800068        0xa main.o + .bss           0x00800068        0xb main.o   *(.bss*)   *(COMMON) - COMMON         0x00800072       0x2a main.o -                0x00800072                usbTxBuf -                0x0080007d                usbDeviceAddr -                0x0080007e                usbRxToken -                0x0080007f                usbInputBufOffset -                0x00800080                usbMsgPtr -                0x00800082                usbRxLen -                0x00800083                usbNewDeviceAddr -                0x00800084                usbCurrentTok -                0x00800085                usbConfiguration -                0x00800086                usbRxBuf -                0x0080009c                PROVIDE (__bss_end, .) -                0x00001dd6                __data_load_start = LOADADDR (.data) -                0x00001dde                __data_load_end = (__data_load_start + SIZEOF (.data)) - -.noinit         0x0080009c        0x0 -                0x0080009c                PROVIDE (__noinit_start, .) + COMMON         0x00800073       0x2a main.o +                0x00800073                usbTxBuf +                0x0080007e                usbDeviceAddr +                0x0080007f                usbRxToken +                0x00800080                usbInputBufOffset +                0x00800081                usbMsgPtr +                0x00800083                usbRxLen +                0x00800084                usbNewDeviceAddr +                0x00800085                usbCurrentTok +                0x00800086                usbConfiguration +                0x00800087                usbRxBuf +                0x0080009d                PROVIDE (__bss_end, .) +                0x00001df8                __data_load_start = LOADADDR (.data) +                0x00001e00                __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit         0x0080009d        0x0 +                0x0080009d                PROVIDE (__noinit_start, .)   *(.noinit*) -                0x0080009c                PROVIDE (__noinit_end, .) -                0x0080009c                _end = . -                0x0080009c                PROVIDE (__heap_start, .) +                0x0080009d                PROVIDE (__noinit_end, .) +                0x0080009d                _end = . +                0x0080009d                PROVIDE (__heap_start, .)  .eeprom         0x00810000        0x0   *(.eeprom*) diff --git a/firmware/main.o b/firmware/main.oBinary files differ index 7a2f8d1..fe4f2d7 100644 --- a/firmware/main.o +++ b/firmware/main.o diff --git a/firmware/nyan-cat-dump.bin b/firmware/nyan-cat-dump.binBinary files differ new file mode 100644 index 0000000..123a7c6 --- /dev/null +++ b/firmware/nyan-cat-dump.bin diff --git a/firmware/upload.rb b/firmware/upload.rb index 171bdfa..7d7f0bc 100644 --- a/firmware/upload.rb +++ b/firmware/upload.rb @@ -109,7 +109,6 @@ thinklet.program = test_data  puts "That seems to have gone well! Telling thinklet to run program..." -sleep(0.5)  thinklet.finished # let thinklet know it can go do other things now if it likes  puts "All done!" diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst index 1bcf2d7..93b6f9b 100644 --- a/firmware/usbdrv/oddebug.c.lst +++ b/firmware/usbdrv/oddebug.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s 			page 1     1               		.file	"oddebug.c" @@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s 			page     5               	__CCP__ = 0x34     6               	__tmp_reg__ = 0     7               	__zero_reg__ = 1 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s 			page 2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s 			page 2  DEFINED SYMBOLS                              *ABS*:00000000 oddebug.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:7      *ABS*:00000001 __zero_reg__  NO UNDEFINED SYMBOLS | 
