summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ESS1995i2c/ESS1995i2c.cbp77
-rw-r--r--ESS1995i2c/ESS1995i2c.depend265
-rw-r--r--ESS1995i2c/ESS1995i2c.layout28
-rw-r--r--ESS1995i2c/adapticsBT.h4
-rwxr-xr-xESS1995i2c/bin/Release/ESS1995i2c.elfbin0 -> 54228 bytes
-rw-r--r--ESS1995i2c/bin/Release/ESS1995i2c.elf.eep.hex1
-rw-r--r--ESS1995i2c/bin/Release/ESS1995i2c.elf.hex1349
-rw-r--r--ESS1995i2c/bin/Release/ESS1995i2c.elf.lss10311
-rw-r--r--ESS1995i2c/bin/Release/ESS1995i2c.elf.map1679
-rwxr-xr-xESS1995i2c/burn2
-rw-r--r--ESS1995i2c/electic.h5
-rw-r--r--ESS1995i2c/main.cpp52
-rw-r--r--ESS1995i2c/obj/Release/adapticsBT.obin0 -> 1608 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/CDC.obin0 -> 621 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/HID.obin0 -> 621 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/HardwareSerial.obin0 -> 4252 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/IPAddress.obin0 -> 2276 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/Print.obin0 -> 4700 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/Stream.obin0 -> 3576 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/Tone.obin0 -> 4720 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/USBCore.obin0 -> 625 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/WInterrupts.obin0 -> 1352 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/WMath.obin0 -> 1364 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/WString.obin0 -> 11220 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/main.obin0 -> 916 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/new.obin0 -> 980 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/wiring.obin0 -> 1896 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_analog.obin0 -> 1536 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_digital.obin0 -> 2056 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_pulse.obin0 -> 1500 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_shift.obin0 -> 1300 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/Wire.obin0 -> 4612 bytes
-rw-r--r--ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/utility/twi.obin0 -> 5012 bytes
-rw-r--r--ESS1995i2c/obj/Release/main.obin0 -> 3948 bytes
-rw-r--r--ESS1995test_328p/ESS1995test_328p.cbp65
-rw-r--r--ESS1995test_328p/ESS1995test_328p.depend208
-rw-r--r--ESS1995test_328p/ESS1995test_328p.layout19
-rw-r--r--ESS1995test_328p/adapticsBT.h4
-rwxr-xr-xESS1995test_328p/bin/Release/ESS1995test_328p.elfbin0 -> 50839 bytes
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.eep.hex1
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex1263
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss9698
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map1584
-rw-r--r--ESS1995test_328p/electic.h2
-rw-r--r--ESS1995test_328p/main.cpp2
-rw-r--r--ESS1995test_328p/obj/Release/adapticsBT.obin0 -> 1608 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/CDC.obin0 -> 621 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/HID.obin0 -> 621 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/HardwareSerial.obin0 -> 4252 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/IPAddress.obin0 -> 2276 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/Print.obin0 -> 4700 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/Stream.obin0 -> 3576 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/Tone.obin0 -> 4720 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/USBCore.obin0 -> 625 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/WInterrupts.obin0 -> 1352 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/WMath.obin0 -> 1364 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/WString.obin0 -> 11220 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/new.obin0 -> 980 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring.obin0 -> 1896 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_analog.obin0 -> 1536 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_digital.obin0 -> 2056 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_pulse.obin0 -> 1500 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_shift.obin0 -> 1300 bytes
-rw-r--r--ESS1995test_328p/obj/Release/main.obin0 -> 4864 bytes
-rw-r--r--arduinoSrc1_0/Arduino.h214
-rw-r--r--arduinoSrc1_0/CDC.cpp175
-rw-r--r--arduinoSrc1_0/Client.h26
-rw-r--r--arduinoSrc1_0/HID.cpp446
-rw-r--r--arduinoSrc1_0/HardwareSerial.cpp424
-rw-r--r--arduinoSrc1_0/HardwareSerial.h80
-rw-r--r--arduinoSrc1_0/IPAddress.cpp56
-rw-r--r--arduinoSrc1_0/IPAddress.h76
-rw-r--r--arduinoSrc1_0/Platform.h23
-rw-r--r--arduinoSrc1_0/Print.cpp263
-rw-r--r--arduinoSrc1_0/Print.h78
-rw-r--r--arduinoSrc1_0/Printable.h40
-rw-r--r--arduinoSrc1_0/Server.h9
-rw-r--r--arduinoSrc1_0/Stream.cpp244
-rw-r--r--arduinoSrc1_0/Stream.h94
-rw-r--r--arduinoSrc1_0/Tone.cpp601
-rw-r--r--arduinoSrc1_0/USBAPI.h166
-rw-r--r--arduinoSrc1_0/USBCore.cpp660
-rw-r--r--arduinoSrc1_0/USBCore.h303
-rw-r--r--arduinoSrc1_0/USBDesc.h67
-rw-r--r--arduinoSrc1_0/Udp.h88
-rw-r--r--arduinoSrc1_0/WCharacter.h168
-rw-r--r--arduinoSrc1_0/WInterrupts.c248
-rw-r--r--arduinoSrc1_0/WMath.cpp60
-rw-r--r--arduinoSrc1_0/WString.cpp645
-rw-r--r--arduinoSrc1_0/WString.h205
-rw-r--r--arduinoSrc1_0/binary.h515
-rw-r--r--arduinoSrc1_0/main.cpp20
-rw-r--r--arduinoSrc1_0/new.cpp18
-rw-r--r--arduinoSrc1_0/new.h22
-rw-r--r--arduinoSrc1_0/wiring.c297
-rw-r--r--arduinoSrc1_0/wiring_analog.c272
-rw-r--r--arduinoSrc1_0/wiring_digital.c166
-rw-r--r--arduinoSrc1_0/wiring_private.h67
-rw-r--r--arduinoSrc1_0/wiring_pulse.c69
-rw-r--r--arduinoSrc1_0/wiring_shift.c55
-rw-r--r--arduino_libs_0022/ArduinoSerialManager.zip (renamed from arduino_libs/ArduinoSerialManager.zip)bin18962 -> 18962 bytes
-rwxr-xr-xarduino_libs_0022/ByteBuffer/.svn/all-wcprops (renamed from arduino_libs/ByteBuffer/.svn/all-wcprops)0
-rwxr-xr-xarduino_libs_0022/ByteBuffer/.svn/entries (renamed from arduino_libs/ByteBuffer/.svn/entries)0
-rwxr-xr-xarduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base (renamed from arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base)0
-rwxr-xr-xarduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base (renamed from arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base)0
-rwxr-xr-xarduino_libs_0022/ByteBuffer/ByteBuffer.cpp (renamed from arduino_libs/ByteBuffer/ByteBuffer.cpp)0
-rwxr-xr-xarduino_libs_0022/ByteBuffer/ByteBuffer.h (renamed from arduino_libs/ByteBuffer/ByteBuffer.h)0
-rw-r--r--arduino_libs_0022/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde (renamed from arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde)0
-rw-r--r--arduino_libs_0022/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde (renamed from arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde)0
-rw-r--r--arduino_libs_0022/NewSoftSerial/NewSoftSerial.cpp (renamed from arduino_libs/NewSoftSerial/NewSoftSerial.cpp)0
-rw-r--r--arduino_libs_0022/NewSoftSerial/NewSoftSerial.h (renamed from arduino_libs/NewSoftSerial/NewSoftSerial.h)0
-rw-r--r--arduino_libs_0022/NewSoftSerial/keywords.txt (renamed from arduino_libs/NewSoftSerial/keywords.txt)0
-rwxr-xr-xarduino_libs_0022/SerialManager/.DS_Store (renamed from arduino_libs/SerialManager/.DS_Store)bin6148 -> 6148 bytes
-rwxr-xr-xarduino_libs_0022/SerialManager/.svn/all-wcprops (renamed from arduino_libs/SerialManager/.svn/all-wcprops)0
-rwxr-xr-xarduino_libs_0022/SerialManager/.svn/entries (renamed from arduino_libs/SerialManager/.svn/entries)0
-rwxr-xr-xarduino_libs_0022/SerialManager/.svn/text-base/SerialManager.cpp.svn-base (renamed from arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base)0
-rwxr-xr-xarduino_libs_0022/SerialManager/.svn/text-base/SerialManager.h.svn-base (renamed from arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base)0
-rwxr-xr-xarduino_libs_0022/SerialManager/SerialManager.cpp (renamed from arduino_libs/SerialManager/SerialManager.cpp)0
-rwxr-xr-xarduino_libs_0022/SerialManager/SerialManager.h (renamed from arduino_libs/SerialManager/SerialManager.h)0
-rw-r--r--arduino_libs_0022/Wire/Wire.cpp261
-rw-r--r--arduino_libs_0022/Wire/Wire.h67
-rw-r--r--arduino_libs_0022/Wire/keywords.txt31
-rw-r--r--arduino_libs_0022/Wire/utility/twi.c476
-rw-r--r--arduino_libs_0022/Wire/utility/twi.h57
-rw-r--r--arduino_libs_0022/core0022_2560.a (renamed from arduino_libs/core0022_2560.a)bin172446 -> 172446 bytes
-rw-r--r--arduino_libs_0022/core0022_328p.a (renamed from arduino_libs/core0022_328p.a)bin66168 -> 66168 bytes
-rw-r--r--arduino_libs_1_0/I2C/I2C.cpp744
-rw-r--r--arduino_libs_1_0/I2C/I2C.h129
-rw-r--r--arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde70
-rw-r--r--arduino_libs_1_0/I2C/keywords.txt37
-rw-r--r--arduino_libs_1_0/I2C/notes.txt1
-rw-r--r--arduino_libs_1_0/Wire/Wire.cpp265
-rw-r--r--arduino_libs_1_0/Wire/Wire.h70
-rw-r--r--arduino_libs_1_0/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino87
-rw-r--r--arduino_libs_1_0/Wire/examples/digital_potentiometer/digital_potentiometer.ino39
-rw-r--r--arduino_libs_1_0/Wire/examples/master_reader/master_reader.ino32
-rw-r--r--arduino_libs_1_0/Wire/examples/master_writer/master_writer.ino31
-rw-r--r--arduino_libs_1_0/Wire/examples/slave_receiver/slave_receiver.ino38
-rw-r--r--arduino_libs_1_0/Wire/examples/slave_sender/slave_sender.ino32
-rw-r--r--arduino_libs_1_0/Wire/keywords.txt31
-rw-r--r--arduino_libs_1_0/Wire/utility/twi.c470
-rw-r--r--arduino_libs_1_0/Wire/utility/twi.h53
-rw-r--r--electicAndroid_001.tarbin0 -> 245760 bytes
-rw-r--r--electicAndroid_002.tarbin0 -> 215040 bytes
-rw-r--r--electicAndroid_003.tarbin0 -> 215040 bytes
-rwxr-xr-xelectic_streaming328p/bin/Debug/electic_streaming.elfbin0 -> 39422 bytes
-rw-r--r--electic_streaming328p/bin/Debug/electic_streaming.elf.eep.hex1
-rw-r--r--electic_streaming328p/bin/Debug/electic_streaming.elf.hex364
-rw-r--r--electic_streaming328p/bin/Debug/electic_streaming.elf.lss3033
-rw-r--r--electic_streaming328p/bin/Debug/electic_streaming.elf.map913
-rw-r--r--electic_streaming328p/electic_streaming328p.layout2
-rw-r--r--electic_streaming328p/obj/Debug/main.obin0 -> 11560 bytes
-rw-r--r--hardwarevariants_1_0/eightanaloginputs/pins_arduino.h27
-rw-r--r--hardwarevariants_1_0/leonardo/pins_arduino.h253
-rw-r--r--hardwarevariants_1_0/mega/pins_arduino.h363
-rw-r--r--hardwarevariants_1_0/micro/pins_arduino.h27
-rw-r--r--hardwarevariants_1_0/standard/pins_arduino.h218
157 files changed, 41545 insertions, 256 deletions
diff --git a/ESS1995i2c/ESS1995i2c.cbp b/ESS1995i2c/ESS1995i2c.cbp
index d7b61cd..111a439 100644
--- a/ESS1995i2c/ESS1995i2c.cbp
+++ b/ESS1995i2c/ESS1995i2c.cbp
@@ -30,10 +30,10 @@
<Add option="-Wall" />
<Add option="-mmcu=atmega328p" />
<Add option="-DF_CPU=8000000UL" />
- <Add directory="../arduinoSrc0022" />
- <Add directory="../arduino libs/NewSoftSerial" />
- <Add directory="../arduino_libs/Wire" />
- <Add directory="../arduino_libs/Wire/utility" />
+ <Add directory="../arduinoSrc1_0" />
+ <Add directory="../arduino_libs_1_0/Wire/utility" />
+ <Add directory="../arduino_libs_1_0/Wire" />
+ <Add directory="../hardwarevariants_1_0/standard" />
</Compiler>
<Linker>
<Add option="-mmcu=atmega328p" />
@@ -62,49 +62,60 @@
<Unit filename="main.cpp">
<Option virtualFolder="src/" />
</Unit>
- <Unit filename="../arduinoSrc0022/HardwareSerial.cpp" />
- <Unit filename="../arduinoSrc0022/HardwareSerial.h" />
- <Unit filename="../arduinoSrc0022/Print.cpp" />
- <Unit filename="../arduinoSrc0022/Print.h" />
- <Unit filename="../arduinoSrc0022/Stream.h" />
- <Unit filename="../arduinoSrc0022/Tone.cpp" />
- <Unit filename="../arduinoSrc0022/WCharacter.h" />
- <Unit filename="../arduinoSrc0022/WConstants.h" />
- <Unit filename="../arduinoSrc0022/WInterrupts.c">
+ <Unit filename="../arduinoSrc1_0/Arduino.h" />
+ <Unit filename="../arduinoSrc1_0/CDC.cpp" />
+ <Unit filename="../arduinoSrc1_0/Client.h" />
+ <Unit filename="../arduinoSrc1_0/HID.cpp" />
+ <Unit filename="../arduinoSrc1_0/HardwareSerial.cpp" />
+ <Unit filename="../arduinoSrc1_0/HardwareSerial.h" />
+ <Unit filename="../arduinoSrc1_0/IPAddress.cpp" />
+ <Unit filename="../arduinoSrc1_0/IPAddress.h" />
+ <Unit filename="../arduinoSrc1_0/Platform.h" />
+ <Unit filename="../arduinoSrc1_0/Print.cpp" />
+ <Unit filename="../arduinoSrc1_0/Print.h" />
+ <Unit filename="../arduinoSrc1_0/Printable.h" />
+ <Unit filename="../arduinoSrc1_0/Server.h" />
+ <Unit filename="../arduinoSrc1_0/Stream.cpp" />
+ <Unit filename="../arduinoSrc1_0/Stream.h" />
+ <Unit filename="../arduinoSrc1_0/Tone.cpp" />
+ <Unit filename="../arduinoSrc1_0/USBAPI.h" />
+ <Unit filename="../arduinoSrc1_0/USBCore.cpp" />
+ <Unit filename="../arduinoSrc1_0/USBCore.h" />
+ <Unit filename="../arduinoSrc1_0/USBDesc.h" />
+ <Unit filename="../arduinoSrc1_0/Udp.h" />
+ <Unit filename="../arduinoSrc1_0/WCharacter.h" />
+ <Unit filename="../arduinoSrc1_0/WInterrupts.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/WMath.cpp" />
- <Unit filename="../arduinoSrc0022/WProgram.h" />
- <Unit filename="../arduinoSrc0022/WString.cpp" />
- <Unit filename="../arduinoSrc0022/WString.h" />
- <Unit filename="../arduinoSrc0022/binary.h" />
- <Unit filename="../arduinoSrc0022/pins_arduino.c">
+ <Unit filename="../arduinoSrc1_0/WMath.cpp" />
+ <Unit filename="../arduinoSrc1_0/WString.cpp" />
+ <Unit filename="../arduinoSrc1_0/WString.h" />
+ <Unit filename="../arduinoSrc1_0/binary.h" />
+ <Unit filename="../arduinoSrc1_0/new.cpp" />
+ <Unit filename="../arduinoSrc1_0/new.h" />
+ <Unit filename="../arduinoSrc1_0/wiring.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/pins_arduino.h" />
- <Unit filename="../arduinoSrc0022/wiring.c">
+ <Unit filename="../arduinoSrc1_0/wiring_analog.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring.h" />
- <Unit filename="../arduinoSrc0022/wiring_analog.c">
+ <Unit filename="../arduinoSrc1_0/wiring_digital.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring_digital.c">
+ <Unit filename="../arduinoSrc1_0/wiring_private.h" />
+ <Unit filename="../arduinoSrc1_0/wiring_pulse.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring_private.h" />
- <Unit filename="../arduinoSrc0022/wiring_pulse.c">
+ <Unit filename="../arduinoSrc1_0/wiring_shift.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring_shift.c">
+ <Unit filename="../arduino_libs_1_0/Wire/Wire.cpp" />
+ <Unit filename="../arduino_libs_1_0/Wire/Wire.h" />
+ <Unit filename="../arduino_libs_1_0/Wire/utility/twi.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduino_libs/Wire/Wire.cpp" />
- <Unit filename="../arduino_libs/Wire/Wire.h" />
- <Unit filename="../arduino_libs/Wire/utility/twi.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="../arduino_libs/Wire/utility/twi.h" />
+ <Unit filename="../arduino_libs_1_0/Wire/utility/twi.h" />
+ <Unit filename="../hardwarevariants_1_0/standard/pins_arduino.h" />
<Extensions>
<code_completion />
<envvars />
diff --git a/ESS1995i2c/ESS1995i2c.depend b/ESS1995i2c/ESS1995i2c.depend
index ac4554b..71c1650 100644
--- a/ESS1995i2c/ESS1995i2c.depend
+++ b/ESS1995i2c/ESS1995i2c.depend
@@ -1,8 +1,11 @@
# depslib dependency file v1.0
-1322661310 source:/home/tim/workspace/electic_AVR/ESS1995test_328p/main.cpp
- "electic.h"
+1326469170 source:/home/tim/workspace/electic/ESS1995i2c/adapticsBT.cpp
+ "adapticsBT.h"
+
+1326904499 /home/tim/workspace/electic/ESS1995i2c/adapticsBT.h
+ <Arduino.h>
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WProgram.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WProgram.h
<stdlib.h>
<string.h>
<math.h>
@@ -12,252 +15,224 @@
"WString.h"
"HardwareSerial.h"
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/wiring.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/wiring.h
<avr/io.h>
<stdlib.h>
"binary.h"
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/binary.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/binary.h
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WCharacter.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WCharacter.h
<ctype.h>
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WString.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WString.h
<stdlib.h>
<string.h>
<ctype.h>
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/HardwareSerial.h
<inttypes.h>
"Stream.h"
"usb_api.h"
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Stream.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/Stream.h
<inttypes.h>
"Print.h"
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Print.h
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/Print.h
<inttypes.h>
<stdio.h>
"WString.h"
-1322661364 /home/tim/workspace/electic_AVR/ESS1995test_328p/electic.h
- <WProgram.h>
- "adapticsBT.h"
-
-1322574717 /home/tim/workspace/electic_AVR/ESS1995test_328p/adapticsBT.h
- <WProgram.h>
+1326473819 source:/home/tim/workspace/electic/ESS1995i2c/main.cpp
+ "electic.h"
-1322574642 source:/home/tim/workspace/electic_AVR/ESS1995test_328p/adapticsBT.cpp
+1326473161 /home/tim/workspace/electic/ESS1995i2c/electic.h
+ <Arduino.h>
"adapticsBT.h"
+ <Wire.h>
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.cpp
- <stdlib.h>
- <stdio.h>
- <string.h>
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Platform.h
<inttypes.h>
- "wiring.h"
- "wiring_private.h"
- "HardwareSerial.h"
-
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_private.h
- <avr/io.h>
+ <avr/pgmspace.h>
+ <avr/eeprom.h>
<avr/interrupt.h>
- <avr/delay.h>
- <stdio.h>
- <stdarg.h>
- "wiring.h"
+ <util/delay.h>
+ "Arduino.h"
+ "USBDesc.h"
+ "USBCore.h"
+ "USBAPI.h"
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/Print.cpp
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Arduino.h
<stdlib.h>
- <stdio.h>
<string.h>
<math.h>
- "wiring.h"
- "Print.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/Tone.cpp
- <avr/interrupt.h>
- <avr/pgmspace.h>
- "wiring.h"
- "pins_arduino.h"
-
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/pins_arduino.h
<avr/pgmspace.h>
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/WInterrupts.c
- <inttypes.h>
<avr/io.h>
<avr/interrupt.h>
- <avr/pgmspace.h>
- <stdio.h>
- "WConstants.h"
- "wiring_private.h"
-
-1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WConstants.h
- "wiring.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/WMath.cpp
- "stdlib.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/WString.cpp
- <stdlib.h>
- "WProgram.h"
- "WString.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/pins_arduino.c
- <avr/io.h>
- "wiring_private.h"
- "pins_arduino.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring.c
- "wiring_private.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_analog.c
- "wiring_private.h"
- "pins_arduino.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_digital.c
- "wiring_private.h"
- "pins_arduino.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_pulse.c
- "wiring_private.h"
- "pins_arduino.h"
-
-1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_shift.c
- "wiring_private.h"
-
-1322574642 source:/home/tim/workspace/electic/ESS1995i2c/adapticsBT.cpp
- "adapticsBT.h"
-
-1322574717 /home/tim/workspace/electic/ESS1995i2c/adapticsBT.h
- <WProgram.h>
-
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/WProgram.h
- <stdlib.h>
- <string.h>
- <math.h>
- <avr/interrupt.h>
- "wiring.h"
+ "binary.h"
"WCharacter.h"
"WString.h"
"HardwareSerial.h"
+ "pins_arduino.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/wiring.h
- <avr/io.h>
- <stdlib.h>
- "binary.h"
-
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/binary.h
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/binary.h
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/WCharacter.h
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/WCharacter.h
<ctype.h>
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/WString.h
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/WString.h
<stdlib.h>
<string.h>
<ctype.h>
+ <avr/pgmspace.h>
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/HardwareSerial.h
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/HardwareSerial.h
<inttypes.h>
"Stream.h"
- "usb_api.h"
+ "USBAPI.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/Stream.h
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Stream.h
<inttypes.h>
"Print.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/Print.h
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Print.h
<inttypes.h>
<stdio.h>
"WString.h"
+ "Printable.h"
-1326379728 source:/home/tim/workspace/electic/ESS1995i2c/main.cpp
- "electic.h"
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Printable.h
+ <new.h>
-1326379810 /home/tim/workspace/electic/ESS1995i2c/electic.h
- <WProgram.h>
- "adapticsBT.h"
- <Wire.h>
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/new.h
+ <stdlib.h>
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/USBAPI.h
+
+1322528191 /home/tim/workspace/electic/hardwarevariants_1_0/standard/pins_arduino.h
+ <avr/pgmspace.h>
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/USBDesc.h
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/USBCore.h
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/HardwareSerial.cpp
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/CDC.cpp
+ "Platform.h"
+ "USBAPI.h"
+ <avr/wdt.h>
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/HID.cpp
+ "Platform.h"
+ "USBAPI.h"
+ "USBDesc.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/HardwareSerial.cpp
<stdlib.h>
<stdio.h>
<string.h>
<inttypes.h>
- "wiring.h"
+ "Arduino.h"
"wiring_private.h"
"HardwareSerial.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/wiring_private.h
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/wiring_private.h
<avr/io.h>
<avr/interrupt.h>
- <avr/delay.h>
<stdio.h>
<stdarg.h>
- "wiring.h"
+ "Arduino.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/Print.cpp
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/IPAddress.cpp
+ <Arduino.h>
+ <IPAddress.h>
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/IPAddress.h
+ <Printable.h>
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/Print.cpp
<stdlib.h>
<stdio.h>
<string.h>
<math.h>
- "wiring.h"
+ "Arduino.h"
"Print.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/Tone.cpp
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/Stream.cpp
+ "Arduino.h"
+ "Stream.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/Tone.cpp
<avr/interrupt.h>
<avr/pgmspace.h>
- "wiring.h"
+ "Arduino.h"
"pins_arduino.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/pins_arduino.h
- <avr/pgmspace.h>
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/USBCore.cpp
+ "Platform.h"
+ "USBAPI.h"
+ "USBDesc.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/WInterrupts.c
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/WInterrupts.c
<inttypes.h>
<avr/io.h>
<avr/interrupt.h>
<avr/pgmspace.h>
<stdio.h>
- "WConstants.h"
"wiring_private.h"
-1319028644 /home/tim/workspace/electic/arduinoSrc0022/WConstants.h
- "wiring.h"
-
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/WMath.cpp
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/WMath.cpp
"stdlib.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/WString.cpp
- <stdlib.h>
- "WProgram.h"
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/WString.cpp
"WString.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/pins_arduino.c
- <avr/io.h>
- "wiring_private.h"
- "pins_arduino.h"
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/main.cpp
+ <Arduino.h>
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/new.cpp
+ <new.h>
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/wiring.c
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring.c
"wiring_private.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/wiring_analog.c
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_analog.c
"wiring_private.h"
"pins_arduino.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/wiring_digital.c
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_digital.c
"wiring_private.h"
"pins_arduino.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/wiring_pulse.c
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_pulse.c
"wiring_private.h"
"pins_arduino.h"
-1319029257 source:/home/tim/workspace/electic/arduinoSrc0022/wiring_shift.c
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_shift.c
"wiring_private.h"
-1293228745 /home/tim/workspace/electic/arduino_libs/Wire/Wire.h
+1322528191 source:/home/tim/workspace/electic/arduino_libs_1_0/Wire/Wire.cpp
+ <stdlib.h>
+ <string.h>
+ <inttypes.h>
+ "twi.h"
+ "Wire.h"
+
+1322528191 /home/tim/workspace/electic/arduino_libs_1_0/Wire/utility/twi.h
+ <inttypes.h>
+
+1322528191 /home/tim/workspace/electic/arduino_libs_1_0/Wire/Wire.h
<inttypes.h>
+ "Stream.h"
+
+1322528191 source:/home/tim/workspace/electic/arduino_libs_1_0/Wire/utility/twi.c
+ <math.h>
+ <stdlib.h>
+ <inttypes.h>
+ <avr/io.h>
+ <avr/interrupt.h>
+ <compat/twi.h>
+ "Arduino.h"
+ "pins_arduino.h"
+ "twi.h"
diff --git a/ESS1995i2c/ESS1995i2c.layout b/ESS1995i2c/ESS1995i2c.layout
index 73883f4..c1889b0 100644
--- a/ESS1995i2c/ESS1995i2c.layout
+++ b/ESS1995i2c/ESS1995i2c.layout
@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<ActiveTarget name="Release" />
- <File name="adapticsBT.cpp" open="0" top="0" tabpos="3">
- <Cursor position="1609" topLine="11" />
+ <File name="adapticsBT.h" open="1" top="0" tabpos="2">
+ <Cursor position="64" topLine="0" />
</File>
- <File name="electic.h" open="1" top="0" tabpos="2">
- <Cursor position="1320" topLine="0" />
+ <File name="burn" open="0" top="0" tabpos="0">
+ <Cursor position="88" topLine="0" />
</File>
- <File name="main.cpp" open="1" top="1" tabpos="1">
- <Cursor position="634" topLine="26" />
+ <File name="electic.h" open="1" top="0" tabpos="3">
+ <Cursor position="243" topLine="0" />
</File>
- <File name="../arduinoSrc0022/HardwareSerial.h" open="0" top="0" tabpos="0">
- <Cursor position="0" topLine="40" />
+ <File name="main.cpp" open="1" top="0" tabpos="1">
+ <Cursor position="381" topLine="13" />
</File>
- <File name="../arduinoSrc0022/Print.h" open="0" top="0" tabpos="0">
- <Cursor position="1919" topLine="0" />
+ <File name="../arduinoSrc1_0/Arduino.h" open="0" top="0" tabpos="4">
+ <Cursor position="5594" topLine="177" />
</File>
- <File name="../arduinoSrc0022/Tone.cpp" open="0" top="0" tabpos="0">
- <Cursor position="7050" topLine="229" />
+ <File name="../arduinoSrc1_0/Tone.cpp" open="0" top="0" tabpos="0">
+ <Cursor position="3319" topLine="89" />
</File>
- <File name="../arduino_libs/Wire/Wire.cpp" open="0" top="0" tabpos="0">
- <Cursor position="925" topLine="15" />
+ <File name="../arduino_libs_1_0/Wire/Wire.cpp" open="0" top="0" tabpos="5">
+ <Cursor position="1311" topLine="116" />
</File>
</CodeBlocks_layout_file>
diff --git a/ESS1995i2c/adapticsBT.h b/ESS1995i2c/adapticsBT.h
index 8cb87e3..1438e94 100644
--- a/ESS1995i2c/adapticsBT.h
+++ b/ESS1995i2c/adapticsBT.h
@@ -1,11 +1,11 @@
#ifndef ADAPTICSBT_H_INCLUDED
#define ADAPTICSBT_H_INCLUDED
-extern "C" void __cxa_pure_virtual(void); //for C++ defines
+//extern "C" void __cxa_pure_virtual(void); //for C++ defines
#define BTC 6
-#include <WProgram.h> //main Arduino header file
+#include <Arduino.h> //main Arduino header file
void setupBlueTooth();
void advertise();
diff --git a/ESS1995i2c/bin/Release/ESS1995i2c.elf b/ESS1995i2c/bin/Release/ESS1995i2c.elf
new file mode 100755
index 0000000..75cee45
--- /dev/null
+++ b/ESS1995i2c/bin/Release/ESS1995i2c.elf
Binary files differ
diff --git a/ESS1995i2c/bin/Release/ESS1995i2c.elf.eep.hex b/ESS1995i2c/bin/Release/ESS1995i2c.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/ESS1995i2c/bin/Release/ESS1995i2c.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/ESS1995i2c/bin/Release/ESS1995i2c.elf.hex b/ESS1995i2c/bin/Release/ESS1995i2c.elf.hex
new file mode 100644
index 0000000..2eb18e1
--- /dev/null
+++ b/ESS1995i2c/bin/Release/ESS1995i2c.elf.hex
@@ -0,0 +1,1349 @@
+:100000000C9465000C94E30D0C94100E0C948D0070
+:100010000C948D000C948D000C948D000C94570D55
+:100020000C948D000C948D000C948D000C948D001C
+:100030000C948D000C948D000C948D000C948D000C
+:100040000C94FA160C948D000C9404030C94350354
+:100050000C948D000C948D000C948D000C948D00EC
+:100060000C94551C0C948D00020000000024002705
+:10007000002A0000000000250028002B00000000DE
+:1000800000230026002900040404040404040402DC
+:100090000202020202030303030303010204081025
+:1000A00020408001020408102001020408102000F2
+:1000B0000000070002010000030406000000000029
+:1000C00000000000A10477056F1B11241FBECFEFB5
+:1000D000D8E0DEBFCDBF12E0A0E0B1E0E8E5F2E598
+:1000E00002C005900D92A03EB107D9F714E0A0EE32
+:1000F000B2E001C01D92A039B107E1F710E0CAECEF
+:10010000D0E004C02297FE010E945725C43CD107CD
+:10011000C9F70E94DC000C942A290C940000CF93AC
+:10012000DF9360ED77E080E090E00E948217C2E804
+:10013000D3E0CE0160E071E00E94170660ED77E049
+:1001400080E090E00E948217CE010E949C02DF9125
+:10015000CF910895CF93DF9386E060E00E949F18CF
+:10016000C2E8D3E0CE0140E056E960E070E00E94D2
+:10017000BB03CE016BE071E00E941706CE0169E17E
+:1001800071E00E941706CE0163E371E00E9417063A
+:10019000CE0161E471E00E941706CE016FE471E0C8
+:1001A0000E941706CE0160E671E00E9417060E94C9
+:1001B0008F00DF91CF9108957F928F929F92AF929F
+:1001C000BF92CF92DF92EF92FF920F931F93DF9334
+:1001D000CF93CDB7DEB727970FB6F894DEBF0FBE2B
+:1001E000CDBF0E94B31784E194E00E94161B85E006
+:1001F00061E00E949F1885E060E00E94C3180E94A1
+:10020000AA0082E060E00E949F1886E060E00E9401
+:100210009F188CE061E00E949F188DE061E00E94D1
+:100220009F188DE061E00E94C31885E061E00E94A4
+:10023000C3188091EB02879588278795E090EC02A0
+:10024000EE0CEE0CEE0CE82A8091ED02E82A80918B
+:10025000EF028295880F807E0091F002000F000F60
+:10026000000F082B8091EE02082B9091F1029795D8
+:10027000992797958091F5028295807F892B90919F
+:10028000F702892B9091F902990F990F990F982BEA
+:10029000A090F402AA0CA92A9091F20297959927AE
+:1002A00097958091F3028295880F880F807C892B27
+:1002B0009091F802892BC090F602CC0CCC0CC82A85
+:1002C00084E194E068EC70E00E94521B84E194E0C9
+:1002D0006E2D0E94D61A84E194E0602F0E94D61AF7
+:1002E00084E194E06A2D0E94D61A84E194E06C2D9A
+:1002F0000E94D61A84E194E00E94551B0AEF10E098
+:100300006E010894C11CD11CA4E0AA2EB12CAC0E25
+:10031000BD1EF2E08F2E912C8C0E9D1E77247394BF
+:1003200084E194E069EC70E00E94521B82E00E943C
+:10033000FB18009709F0A1C0E1EEEE2EE2E0FE2EE0
+:1003400084E194E00E944B1AF70181937F01FBEE58
+:10035000EF16F2E0FF06A1F784E194E00E94551B3E
+:100360008091E10289838091E30290E0A0E0B0E017
+:10037000BA2FA92F982F88272091E40230E040E07F
+:1003800050E0822B932BA42BB52B2091E20230E07E
+:1003900040E050E02770307040705070A901332762
+:1003A0002227822B932BA42BB52B8C839D83AE838A
+:1003B000BF838091E602829586958695837090E052
+:1003C0002091E50230E0220F331F220F331F822BD2
+:1003D000932B9B838A8313C082E893E00E947A0266
+:1003E000823029F0833031F0813049F406C00AEFC1
+:1003F00010E005C002E310E002C008EE13E082E85E
+:1004000093E00E944B021816190634F386E00E940E
+:10041000FB182091E002009751F1222311F4709211
+:10042000E00282E893E063E771E042E050E00E947E
+:10043000860582E893E062E771E041E050E00E94C7
+:10044000860582E893E0B60141E050E00E9486050F
+:1004500082E893E0B50144E050E00E94860582E81E
+:1004600093E0B40142E050E00E94860506C02223DA
+:1004700021F00E948F001092E002B80180E090E02D
+:100480000E9482178CE060E00E94C3188DE060E05B
+:100490000E94C31845CFFC0184859585FC01E05C72
+:1004A000FF4F208131818E5B9F4FFC0180819181C4
+:1004B000281B390B2F733070C9010895FC01848506
+:1004C0009585FC01E05CFF4F40815181FC01EE5BB2
+:1004D000FF4F208131814217530741F00190F08195
+:1004E000E02DE80FF91F208130E002C02FEF3FEF31
+:1004F000C9010895FC0184859585FC01E05CFF4FEE
+:1005000040815181FC01EE5BFF4F20813181421718
+:10051000530771F0A081B181A80FB91F2C91808180
+:10052000918101968F7390709183808330E002C037
+:100530002FEF3FEFC9010895DC011E968D919C912C
+:100540001F97FC01E05CFF4F8E5B9F4F4081518104
+:10055000DC012D913C91119742175307B9F708958B
+:100560001F93FC01162F26853785D901A05CBF4F4C
+:100570008D919C91019660E470E00E94BA24D901AB
+:10058000AE5BBF4F4D915C91119784179507D1F3E6
+:10059000D901A05CBF4F0D90BC91A02DA20FB31F3D
+:1005A0001C93A685B785A05CBF4F11969C938E9334
+:1005B000A689B7892C9181E090E0058C02C0880F54
+:1005C000991F0A94E2F7282B2C9381E090E01F9169
+:1005D0000895FB01E05CFF4F208131812F5F3F4F89
+:1005E0002F733070DB01AE5BBF4F4D915C91119763
+:1005F0002417350739F0A081B181A60FB71F8C935E
+:1006000031832083089508951F920F920FB60F92A1
+:1006100011242F933F934F935F936F937F938F9307
+:100620009F93AF93BF93EF93FF938091C6006AEFC0
+:1006300072E00E94E902FF91EF91BF91AF919F910B
+:100640008F917F916F915F914F913F912F910F907B
+:100650000FBE0F901F90189582E893E00E944B0206
+:10066000009711F00E94030308951F920F920FB696
+:100670000F9211242F933F935F936F937F938F93E8
+:100680009F93AF93BF93EF93FF9320917E0330919D
+:100690007F0380918003909181032817390731F4FB
+:1006A0008091C1008F7D8093C10016C0E0918003CE
+:1006B000F0918103E25CFC4F208180918003909156
+:1006C0008103019660E470E00E94BA249093810354
+:1006D000809380032093C600FF91EF91BF91AF916B
+:1006E0009F918F917F916F915F913F912F910F908B
+:1006F0000FBE0F901F9018958F92AF92BF92CF921E
+:10070000DF92EF92FF920F931F93DF93CF93CDB7BA
+:10071000DEB7FC011382128288EE93E0A0E0B0E025
+:1007200084839583A683B78389E791E0918380834F
+:100730007587648757874687318B208B138B028B95
+:10074000F58AE48AD78AC68AB18EA08E828E8E857B
+:10075000838F8F85848F8889858F8989868FCF91B4
+:10076000DF911F910F91FF90EF90DF90CF90BF909E
+:10077000AF908F9008959F92AF92BF92CF92DF92E9
+:10078000EF92FF920F931F93CF93DF93EC017A01C7
+:100790008B0199249394EC89FD8981E090E00E8C83
+:1007A00002C0880F991F0A94E2F7808360E874E81A
+:1007B0008EE190E0A80197010E94CD2421503040A5
+:1007C00040405040569547953795279590E4A92E7F
+:1007D00092E4B92E9FE0C92ED12C12C09924EC8945
+:1007E000FD891082C601B501A80197010E94CD24A0
+:1007F00021503040404050405695479537952795B9
+:1008000080E12030380710F0992041F7E889F98914
+:100810003083EA89FB892083EE89FF89408181E06A
+:1008200090E09C010A8C02C0220F331F0A94E2F769
+:10083000422B4083EE89FF8940819C010B8C02C0D2
+:10084000220F331F0A94E2F7422B4083EE89FF897F
+:1008500040819C010C8C02C0220F331F0A94E2F7E6
+:10086000422B4083EE89FF8920810D8C02C0880FC6
+:10087000991F0A94E2F7809582238083DF91CF91BC
+:100880001F910F91FF90EF90DF90CF90BF90AF90AE
+:100890009F900895CF93DF93FC0186859785DC01B7
+:1008A000A05CBF4F8E5B9F4F4D915C911197EC0107
+:1008B0002881398142175307B9F7A689B7894C9126
+:1008C00081E090E09C01028C02C0220F331F0A9449
+:1008D000E2F7209524232C93A689B7894C919C019B
+:1008E000038C02C0220F331F0A94E2F720952423C1
+:1008F0002C93A689B7894C919C01048C02C0220FCD
+:10090000331F0A94E2F7209524232C93A689B789F4
+:100910002C91058C02C0880F991F0A94E2F78095EC
+:1009200082238C9384859585FC01EE5BFF4F2081AB
+:100930003181805C9F4FFC0131832083DF91CF9117
+:100940000895109285031092840388EE93E0A0E04E
+:10095000B0E08093860390938703A0938803B093BD
+:100960008903E4E8F3E089E791E0929382938AEFC8
+:1009700092E0958784878EE393E09787868785EC5E
+:1009800090E0918B808B84EC90E0938B828B80EC59
+:1009900090E0958B848B81EC90E0978B868B86EC36
+:1009A00090E0918F808F84E0828F83E0838F87E057
+:1009B000848F85E0858F81E0868F08958F929F9246
+:1009C000AF92BF92CF92DF92EF92FF920F931F935D
+:1009D000CF93DF934C017B0182E0A82EB12CA80CB1
+:1009E000B91CC0E0D0E0CC24DD24F50161915F01A9
+:1009F000C7014AE050E00E943B078C01C7016EE24C
+:100A00000E941A06080F191FC00ED11E2196C3306E
+:100A1000D10559F7C701F40165814AE050E00E9411
+:100A20003B07C80ED91EC601DF91CF911F910F91D0
+:100A3000FF90EF90DF90CF90BF90AF909F908F90FE
+:100A40000895FC0189E991E09183808312821382E9
+:100A50001482158208950F93FC0189E991E0918336
+:100A6000808362834383248305830F910895FC016F
+:100A700089E991E091838083428353836483758302
+:100A80000895FC0189E991E091838083DB012D9138
+:100A90003D914D915C911397228333834483558319
+:100AA0000895CF93DF93FC01EB0188819981AA819E
+:100AB000BB8182839383A483B583CF01DF91CF91E0
+:100AC0000895FC01428353836483758308959B01D9
+:100AD000BC016E5F7F4FC90144E050E00E94ED27EA
+:100AE0009C0181E02115310509F080E0089589E934
+:100AF00091E09093A2038093A1031092A30310921C
+:100B0000A4031092A5031092A6030895CF92DF923A
+:100B1000EF92FF920F931F93CF93DF936C017B01B2
+:100B20008A01C0E0D0E00FC0D7016D917D01D601F0
+:100B3000ED91FC910190F081E02DC6010995C80F5F
+:100B4000D91F015010400115110571F7CE01DF9139
+:100B5000CF911F910F91FF90EF90DF90CF9008956C
+:100B6000DB010D900020E9F7AD0141505040461BDC
+:100B7000570BDC01ED91FC910280F381E02D09958A
+:100B80000895EF92FF920F931F93CF93DF937C0111
+:100B9000062F172FC0E0D0E0F8010F5F1F4F6491C0
+:100BA000662351F0F701A081B181ED91FC91C7015D
+:100BB0000995C80FD91FF0CFCE01DF91CF911F91BA
+:100BC0000F91FF90EF900895AF92BF92CF92DF9276
+:100BD000EF92FF920F931F93CF93DF937C016B01F2
+:100BE000C0E0D0E000E010E010C0D701ED91FC9132
+:100BF000A080B180C601BE010E94B613682FC70154
+:100C0000F5010995080F191F2196F6018481958138
+:100C1000C817D90750F3C801DF91CF911F910F91E9
+:100C2000FF90EF90DF90CF90BF90AF9008950E941B
+:100C3000B0050895DC01ED91FC910190F081E02D6B
+:100C4000099508959C01CB01DB01ED91FC91019088
+:100C5000F081E02DB901099508950F931F93CF936B
+:100C6000DF93EC016DE00E941A068C01CE016AE070
+:100C70000E941A06080F191FC801DF91CF911F911A
+:100C80000F9108950F931F93CF93DF93EC010E9470
+:100C9000C1058C01CE010E942D06080F191FC80145
+:100CA000DF91CF911F910F9108950F931F93CF93D1
+:100CB000DF93EC010E94E4058C01CE010E942D0619
+:100CC000080F191FC801DF91CF911F910F9108954F
+:100CD0000F931F93CF93DF93EC010E94B0058C011B
+:100CE000CE010E942D06080F191FC801DF91CF9178
+:100CF0001F910F9108950F931F93CF93DF93EC01F2
+:100D00000E941A068C01CE010E942D06080F191FA1
+:100D1000C801DF91CF911F910F9108950F931F93F9
+:100D2000CF93DF93EC010E9422068C01CE010E943A
+:100D30002D06080F191FC801DF91CF911F910F9148
+:100D400008958F929F92AF92BF92CF92DF92EF92CF
+:100D5000FF920F931F93DF93CF93CDB7DEB7A19789
+:100D60000FB6F894DEBF0FBECDBF6C01042FE52F88
+:100D7000CB01122F19A2223008F41AE021E2E22E50
+:100D8000F12CEC0EFD1E812E9924AA24BB2403C055
+:100D9000022FE32FCA01602F7E2FA50194010E942C
+:100DA000CD24129F802D1124081B0894E108F1081E
+:100DB0000A3014F4005D01C0095CF70100832115BD
+:100DC00031054105510521F7C601B7010E94B00563
+:100DD000A1960FB6F894DEBF0FBECDBFCF91DF91C5
+:100DE0001F910F91FF90EF90DF90CF90BF90AF9049
+:100DF0009F908F9008952115310549F4DC01ED9104
+:100E0000FC910190F081E02D642F099508950E94D6
+:100E1000A10608950F931F93CF93DF93EC010E94D7
+:100E2000FB068C01CE010E942D06080F191FC80178
+:100E3000DF91CF911F910F9108959A01AB0160E06E
+:100E400070E00E94FB0608950F931F93CF93DF93EA
+:100E5000EC019A01AB0160E070E00E94FB068C019E
+:100E6000CE010E942D06080F191FC801DF91CF91F6
+:100E70001F910F9108959A01462F50E060E070E0B5
+:100E80000E94FB0608950F931F93CF93DF93EC010D
+:100E90009A01462F50E060E070E00E94FB068C0152
+:100EA000CE010E942D06080F191FC801DF91CF91B6
+:100EB0001F910F910895CF92DF92EF92FF920F93BF
+:100EC0001F93CF93DF93EC017A018B01211531053C
+:100ED00041F4E881F9810190F081E02D642F0995BA
+:100EE0001AC02A303105A9F477FF12C06DE20E94C2
+:100EF0001A066C0144275527BA014E195F09600B89
+:100F0000710BCE012AE00E94A106C80ED91E04C0B2
+:100F10002AE00E94A1066C01C601DF91CF911F91CA
+:100F20000F91FF90EF90DF90CF9008950F931F9354
+:100F3000CF93DF93EC010E945B078C01CE010E94EE
+:100F40002D06080F191FC801DF91CF911F910F9136
+:100F500008959A01FB01AF01662757FD6095762F32
+:100F60000E945B0708950F931F93CF93DF93EC01CB
+:100F70009A01CB01AC01662757FD6095762FCE0113
+:100F80000E945B078C01CE010E942D06080F191FDD
+:100F9000C801DF91CF911F910F9108956F927F92B9
+:100FA0009F92AF92BF92CF92DF92EF92FF920F93F8
+:100FB0001F93CF93DF933C017A018B01C22ECB01AB
+:100FC000BA0120E030E0A9010E94572187FF0AC042
+:100FD000C3016DE20E941A06EC0117FB109517F988
+:100FE000109502C0C0E0D0E0DD2450E040E030E0E9
+:100FF0002FE311C0DA01F9016B2F742F8F2F922F7D
+:1010000020E030E040E251E40E947920562F472F43
+:10101000382F292FD394DC1468F3C801B701DA0103
+:10102000F9012B2F342F4F2F5E2F0E94211F5B01C0
+:10103000F82E992E7B2D0E94AB1D162FD72EE82E51
+:10104000092F0E9439229B01AC016A2D7B2D8F2D27
+:10105000992D0E944E1F962EA72EB82EF92EC30151
+:10106000412F5D2D6E2D702F2AE030E00E94FB068F
+:10107000C80FD91FCC20B9F1C30161EA71E00E9409
+:10108000B005C80FD91F2FC0692D7A2D8B2D9F2D2C
+:1010900020E030E040E251E40E947F1FD62EB72EC0
+:1010A000A82E992E0E94E7217B010027F7FC0095CE
+:1010B000102FC301B801A7012AE030E00E945B07AE
+:1010C000C80FD91FC801B7010E9487219B01AC013D
+:1010D0006D2D7B2D8A2D992D0E944E1F962EA72EA9
+:1010E000B82EF92ECA94CC2079F6CE01DF91CF919B
+:1010F0001F910F91FF90EF90DF90CF90BF90AF9036
+:101100009F907F906F9008950E94CE0708950F934F
+:101110001F93CF93DF93EC010E94CE078C01CE0189
+:101120000E942D06080F191FC801DF91CF911F9152
+:101130000F910895CF93DF93EC010E944E176887BB
+:1011400079878A879B87E881F9810680F781E02D7E
+:10115000CE0109959C0197FF15C00E944E17288566
+:1011600039854A855B85621B730B840B950B2C813B
+:101170003D814E815F81621773078407950718F3DD
+:101180002FEF3FEFC901DF91CF910895CF93DF9308
+:10119000EC010E944E17688779878A879B87E881D0
+:1011A000F9810084F185E02DCE0109959C0197FF1E
+:1011B00015C00E944E17288539854A855B85621BBC
+:1011C000730B840B950B2C813D814E815F816217DF
+:1011D00073078407950718F32FEF3FEFC901DF91DD
+:1011E000CF910895CF93DF93EC01CE010E94C60802
+:1011F0009C0197FD0FC08D32910561F0C0978A3038
+:10120000910540F0E881F9810680F781E02DCE015B
+:101210000995EBCFC901DF91CF910895FC0144837B
+:1012200055836683778308956F927F928F929F9202
+:10123000AF92BF92CF92DF92EF92FF920F931F93E4
+:10124000CF93DF933C016B014A0159017801FB0107
+:101250008081882391F1C0E0D0E000E010E026C05A
+:10126000F601E00FF11F2081332727FD309582170B
+:10127000930731F40F5F1F4F0815190518F01DC0B3
+:1012800000E010E0E114F10479F0F501EC0FFD1F2E
+:101290002081332727FD30958217930729F4219663
+:1012A000CE15DF0518F00BC0C0E0D0E0C3010E94EE
+:1012B0009A0818161906A4F202C081E001C080E065
+:1012C000DF91CF911F910F91FF90EF90DF90CF9022
+:1012D000BF90AF909F908F907F906F9008950F93E5
+:1012E0001F93CF93DF939A01FB0101900020E9F750
+:1012F0003197E61BF70BEA0109900020E9F78E0110
+:1013000001501040041B150BAF010E941409DF911E
+:10131000CF911F910F91089540E050E00E946F0916
+:1013200008950F931F9320E030E000E010E00E944A
+:1013300014091F910F9108959F92AF92BF92CF927F
+:10134000DF92EF92FF920F931F93CF93DF936C0185
+:10135000A62E0E94F208EC0197FD4EC0EE24FF2459
+:1013600087019924BB24A7FCB094CA15DB0531F191
+:10137000CD32D10509F1CE01C0978A309105F0F444
+:10138000C801B7012AE030E040E050E00E949B2411
+:101390007B018C01CE01AA2797FDA095BA2FE80EFC
+:1013A000F91E0A1F1B1F80ED9FEFAFEFBFEFE80E86
+:1013B000F91E0A1F1B1F02C099249394D601ED91B8
+:1013C000FC910680F781E02DC6010995C6010E94B7
+:1013D000C608EC01C0978A30910538F2CA15DB05C2
+:1013E00021F2992061F010950095F094E094E11CB1
+:1013F000F11C011D111D03C0EE24FF248701B7015C
+:10140000C801DF91CF911F910F91FF90EF90DF9076
+:10141000CF90BF90AF909F90089561E00E949C098B
+:1014200008956F927F928F929F92AF92BF92CF92C8
+:10143000DF92EF92FF920F931F93CF93DF93EC0114
+:10144000762E0E94F208D82E87FD7DC0BB24AA24E8
+:1014500090E8992E8FE3882EEE24FF248701CC2478
+:101460006624D714E1F18D2D8D32A1F18E32A9F1D0
+:1014700080538A30A0F5C801B7012AE030E040E08F
+:1014800050E00E949B247B018C018D2D992787FDC4
+:101490009095A92FB92FE80EF91E0A1F1B1F80ED8A
+:1014A0009FEFAFEFBFEFE80EF91E0A1F1B1FCC2006
+:1014B000B1F0A5019401652F7A2D832F982D2DEC85
+:1014C0003CEC4CEC5DE30E947F1FB62EA72E982EBD
+:1014D000892E05C06624639402C0CC24C394E8819D
+:1014E000F9810680F781E02DCE010995CE010E9499
+:1014F000C608D82E982F90539A3008F4B2CF8E3267
+:1015000009F4AFCF871509F4ACCF662041F01095F0
+:101510000095F094E094E11CF11C011D111DCC20FC
+:1015200069F0C801B7010E948721D501F4012B2F72
+:101530003A2D4F2F582D0E947F1F09C0C801B701B7
+:101540000E94872104C060E070E080E090E0DF91BD
+:10155000CF911F910F91FF90EF90DF90CF90BF90B0
+:10156000AF909F908F907F906F90089561E00E9460
+:10157000110A0895CF92DF92EF92FF920F931F937B
+:10158000CF93DF936C01EB017A0100E010E008C01B
+:10159000C6010E949A0897FD06C089930F5F1F4FEE
+:1015A0000E151F05A8F3C801DF91CF911F910F9170
+:1015B000FF90EF90DF90CF900895AF92BF92CF92BF
+:1015C000DF92EF92FF920F931F93CF93DF935C0113
+:1015D000EA01790121153105B1F000E010E0C62ED5
+:1015E000DD24C7FCD0940BC0C5010E949A0897FD6A
+:1015F0000CC08C159D0549F089930F5F1F4F0E1588
+:101600001F0590F302C000E010E0C801DF91CF9108
+:101610001F910F91FF90EF90DF90CF90BF90AF9010
+:1016200008952F923F924F925F926F927F928F9286
+:101630009F92AF92BF92DF92EF92FF920F931F9310
+:10164000DF93CF9300D000D0CDB7DEB71B01298345
+:101650003A834B835C839091AB01981721F09F3FB5
+:1016600009F0D8C104C0E8E6F0E0D4907DC08093D2
+:10167000AB01E8E6F0E0D4909D2D9F3F09F4CAC18C
+:10168000913031F1923009F449C0DD2009F06CC08D
+:1016900014BC15BC94B5926094BD95B5916095BD90
+:1016A000282F30E0F901E957FF4FE491F0E0EE0F09
+:1016B000FF1FED58FF4F459154914093AB0350935A
+:1016C000AC0325563F4FF90124912093AD034EC042
+:1016D0001092800010928100909181009860909308
+:1016E000810090918100916090938100282F30E0DB
+:1016F000F901E957FF4FE491F0E0EE0FFF1FED58BD
+:10170000FF4F459154914093B2035093B303255634
+:101710003F4FF90124912093B40328C01092B000E8
+:101720001092B1009091B00092609093B0009091AF
+:10173000B10091609093B100282F30E0F901E95792
+:10174000FF4FE491F0E0EE0FFF1FED58FF4F459182
+:1017500054914093B9035093BA0325563F4FF90172
+:1017600024912093BB0302C0D7FC54C161E00E94C6
+:101770009F18DD2021F0FD2DF23009F0C1C041019C
+:10178000AA24BB2460E079E08DE390E0A5019401F8
+:101790000E94CD2429013A0179018A010894E108C7
+:1017A000F108010911098FEFE816F104010511058F
+:1017B00009F008F498C060E271EA87E090E0A501C2
+:1017C00094010E94CD2479018A010894E108F1086E
+:1017D000010911099D2D9230C9F4AFEFEA16F10409
+:1017E0000105110509F008F485C068E478EE81E090
+:1017F00090E0A50194010E94CD2479018A0108940A
+:10180000E108F1080109110983E001C082E0BFEF9E
+:10181000EB16F1040105110509F008F465C064E256
+:1018200074EF80E090E0A50194010E94CD2479013D
+:101830008A010894E108F10801091109DD20E1F0AD
+:10184000ED2DE230D9F4FFEFEF16F104010511059B
+:1018500009F008F451C062E17AE780E090E0A50168
+:1018600094010E94CD2479018A010894E108F108CD
+:101870000109110985E003C083E001C084E09FEF06
+:10188000E916F1040105110579F170F169E07DE3D4
+:1018900080E090E0A50194010E94CD2479018A01A5
+:1018A0000894E108F10801091109DD2011F484E030
+:1018B00001C086E0AFEFEA16F10401051105A1F0C1
+:1018C00098F0830172019AE016950795F794E794D2
+:1018D0009A95D1F70894E108F10801091109DD2072
+:1018E00031F087E00AC081E0DD2011F006C085E01C
+:1018F00085BD3CC082E001C084E08093B10036C069
+:101900004101AA24BB2460E079E08DE390E0A501C9
+:1019100094010E94CD2479018A010894E108F1081C
+:1019200001091109B0E0EB16B0E0FB06B1E00B07CE
+:10193000B0E01B0788F064E274EF80E090E0A5015E
+:1019400094010E94CD2479018A010894E108F108EC
+:101950000109110993E001C091E0ED2DE13031F46E
+:1019600080918100887F892B8093810089819A8171
+:10197000AB81BC810097A105B10591F0B101660F63
+:10198000771F80E090E029813A814B815C810E9441
+:101990009B2428EE33E040E050E00E94CD2403C0B9
+:1019A0002FEF3FEFA9019D2D913099F0923019F161
+:1019B000DD2081F5E7BC2093A7033093A803409373
+:1019C000A9035093AA0380916E00826080936E00F9
+:1019D00021C0F0928900E09288002093AE033093FA
+:1019E000AF034093B0035093B10380916F008260C6
+:1019F00080936F000FC0E092B3002093B503309343
+:101A0000B6034093B7035093B8038091700082608F
+:101A1000809370000F900F900F900F90CF91DF91F7
+:101A20001F910F91FF90EF90DF90BF90AF909F902C
+:101A30008F907F906F905F904F903F902F90089580
+:101A4000813041F0813018F08230D1F409C0109219
+:101A50006E00089580916F008D7F80936F000895D0
+:101A6000809170008D7F8093700081E08093B00042
+:101A70008091B100887F84608093B1001092B300A0
+:101A800008951F93182F8091AB01811739F4E8E670
+:101A9000F0E084919FEF9093AB0101C08FEF0E9423
+:101AA000200D812F60E00E94C3181F9108951F929E
+:101AB0000F920FB60F9211242F933F934F935F9382
+:101AC0006F937F938F939F93AF93BF93EF93FF9306
+:101AD0008091B5039091B603A091B703B091B8037C
+:101AE0000097A105B10551F1E091B903F091BA0356
+:101AF00080819091BB03892780838091B503909169
+:101B0000B603A091B703B091B803181619061A06C8
+:101B10001B06C4F48091B5039091B603A091B7035E
+:101B2000B091B8030197A109B1098093B5039093CF
+:101B3000B603A093B703B093B80304C08091AB0180
+:101B40000E94410DFF91EF91BF91AF919F918F91B5
+:101B50007F916F915F914F913F912F910F900FBEA9
+:101B60000F901F9018958230E8F4E82FF0E0EE0F08
+:101B7000FF1FE454FC4F71836083813041F08091FA
+:101B800069008C7F842B80936900E89A0895809186
+:101B90006900440F551F440F551F837F842B80938A
+:101BA0006900E99A0895823068F4813011F0E8986C
+:101BB00001C0E998E82FF0E0EE0FFF1FE454FC4F5E
+:101BC0001182108208951F920F920FB60F92112466
+:101BD0002F933F934F935F936F937F938F939F9335
+:101BE000AF93BF93EF93FF938091BC039091BD039C
+:101BF000009729F0E091BC03F091BD030995FF9196
+:101C0000EF91BF91AF919F918F917F916F915F9174
+:101C10004F913F912F910F900FBE0F901F901895ED
+:101C20001F920F920FB60F9211242F933F934F9351
+:101C30005F936F937F938F939F93AF93BF93EF9334
+:101C4000FF938091BE039091BF03009729F0E0912C
+:101C5000BE03F091BF030995FF91EF91BF91AF9142
+:101C60009F918F917F916F915F914F913F912F91B4
+:101C70000F900FBE0F901F901895009729F0BC0190
+:101C800080E090E00E94DA260895EF92FF920F9391
+:101C90001F937B018C01611571058105910549F048
+:101CA0000E94D526A80197010E94EF249B01AC0158
+:101CB00003C020E030E0A901B901CA011F910F91D2
+:101CC000FF90EF900895EF92FF920F931F937B0187
+:101CD0008C01621773078407950764F4CA01B90180
+:101CE0006E197F09800B910B0E94450EE60EF71EC0
+:101CF000081F191FB701C8011F910F91FF90EF90A6
+:101D000008952F923F924F925F926F927F928F929F
+:101D10009F92AF92BF92CF92DF92EF92FF920F937A
+:101D20001F93DF93CF93CDB7DEB73B014C01190171
+:101D30002A016D897E898F89988D6A197B098C09A2
+:101D40009D09621A730A840A950AA40193010E94EC
+:101D50009B24E218F30804091509A80197010E94C1
+:101D6000EF242A0D3B1D4C1D5D1DB901CA01CF9109
+:101D7000DF911F910F91FF90EF90DF90CF90BF9078
+:101D8000AF909F908F907F906F905F904F903F901B
+:101D90002F900895089570E0382F20E0622B732B68
+:101DA000CB010895FC01808191810E94F525089561
+:101DB000CF93DF93EC0188819981009711F00E9405
+:101DC000F525198218821D821C821B821A82DF91DE
+:101DD000CF9108950F931F93CF93DF93EC018B0165
+:101DE0006F5F7F4F888199810E94E326009731F0D1
+:101DF000998388831B830A8381E001C080E0DF919F
+:101E0000CF911F910F910895CF93DF93EC018881BB
+:101E10009981009729F08A819B818617970778F42A
+:101E2000CE010E94EA0E882341F08C819D810097AB
+:101E300031F4E881F981108202C080E001C081E0C4
+:101E4000DF91CF910895EF92FF920F931F93CF935D
+:101E5000DF93EC017B018A01BA010E94040F882301
+:101E600021F4CE010E94D80E07C01D830C83888107
+:101E70009981B7010E942928CE01DF91CF911F914E
+:101E80000F91FF90EF900895CF93DF93FC011182A3
+:101E900010821382128215821482168261157105D6
+:101EA00059F0EB0109900020E9F7AE014150504094
+:101EB000461B570B0E94230FDF91CF910895EF929D
+:101EC000FF92CF93DF93EC01FB018617970761F038
+:101ED000608171816115710529F0448155810E94ED
+:101EE000230F02C00E94D80ECE01DF91CF91FF9048
+:101EF000EF900895FC0111821082138212821582E4
+:101F0000148216820E945F0F08950F931F938C0115
+:101F10006115710561F0DB010D900020E9F7AD015D
+:101F200041505040461B570B0E94230F02C00E9495
+:101F3000D80EC8011F910F910895EF92FF920F9351
+:101F40001F93DF93CF93CDB7DEB7A1970FB6F89469
+:101F5000DEBF0FBECDBF7C01CB01BA01F7011182FC
+:101F60001082138212821582148216828E010F5FF4
+:101F70001F4FA80130E00E94DC28C701B8010E9471
+:101F8000850FA1960FB6F894DEBF0FBECDBFCF91DF
+:101F9000DF911F910F91FF90EF900895EF92FF92C4
+:101FA0000F931F93DF93CF93CDB7DEB7A2970FB6F2
+:101FB000F894DEBF0FBECDBF7C01CB01BA01F701A3
+:101FC00011821082138212821582148216828E016F
+:101FD0000F5F1F4FA80130E00E949328C701B8018E
+:101FE0000E94850FA2960FB6F894DEBF0FBECDBF3C
+:101FF000CF91DF911F910F91FF90EF900895EF9295
+:10200000FF920F931F93DF93CF93CDB7DEB7619706
+:102010000FB6F894DEBF0FBECDBF7C01CB01F70138
+:1020200011821082138212821582148216828E010E
+:102030000F5F1F4FB80150E00E940129C701B8018E
+:102040000E94850F61960FB6F894DEBF0FBECDBF1C
+:10205000CF91DF911F910F91FF90EF900895EF9234
+:10206000FF920F931F93DF93CF93CDB7DEB76297A5
+:102070000FB6F894DEBF0FBECDBF7C01CB01F701D8
+:1020800011821082138212821582148216828E01AE
+:102090000F5F1F4FB80150E00E947228C701B801BE
+:1020A0000E94850F62960FB6F894DEBF0FBECDBFBB
+:1020B000CF91DF911F910F91FF90EF900895EF92D4
+:1020C000FF920F931F93DF93CF93CDB7DEB729977E
+:1020D0000FB6F894DEBF0FBECDBF7C01862FF7018F
+:1020E000118210821382128215821482168290E06D
+:1020F0008E010F5F1F4FB80150E00E940129C701F8
+:10210000B8010E94850F29960FB6F894DEBF0FBE66
+:10211000CDBFCF91DF911F910F91FF90EF90089568
+:10212000DF93CF9300D0CDB7DEB7FC0111821082D0
+:102130001382128215821482168269831A82BE016A
+:102140006F5F7F4F0E94850F0F900F90CF91DF91AF
+:102150000895EF92FF920F931F93CF93DF93EC01BB
+:102160007B010C811D8161157105B9F04115510587
+:1021700091F0040F151FB8010E94040F882369F025
+:10218000288139818C819D81820F931FB7010E9424
+:1021900029281D830C8381E001C080E0DF91CF916D
+:1021A0001F910F91FF90EF900895FB016081718165
+:1021B000448155810E94A91008956115710561F04F
+:1021C000DB010D900020E9F7AD0141505040461B66
+:1021D000570B0E94A910089580E00895DF93CF93D4
+:1021E00000D0CDB7DEB769831A82BE016F5F7F4F23
+:1021F00041E050E00E94A9100F900F90CF91DF9125
+:102200000895EF92FF920F931F93DF93CF9300D027
+:1022100000D0CDB7DEB77C01862F90E08E010F5F36
+:102220001F4FB8014AE050E00E947228F801019067
+:102230000020E9F7AF0141505040401B510BC7014E
+:10224000B8010E94A9100F900F900F900F90CF919E
+:10225000DF911F910F91FF90EF900895EF92FF9201
+:102260000F931F93DF93CF93CDB7DEB727970FB6AA
+:10227000F894DEBF0FBECDBF7C01CB018E010F5F96
+:102280001F4FB8014AE050E00E947228F801019007
+:102290000020E9F7AF0141505040401B510BC701EE
+:1022A000B8010E94A91027960FB6F894DEBF0FBEA2
+:1022B000CDBFCF91DF911F910F91FF90EF900895C7
+:1022C000EF92FF920F931F93DF93CF9300D000D034
+:1022D00000D0CDB7DEB77C01CB018E010F5F1F4F61
+:1022E000B8014AE050E00E940129F8010190002065
+:1022F000E9F7AF0141505040401B510BC701B801F5
+:102300000E94A91026960FB6F894DEBF0FBECDBF6F
+:10231000CF91DF911F910F91FF90EF900895EF9271
+:10232000FF920F931F93DF93CF93CDB7DEB72C9718
+:102330000FB6F894DEBF0FBECDBF7C01CB01BA0152
+:102340008E010F5F1F4FA8012AE030E00E94932802
+:10235000F80101900020E9F7AF0141505040401BC7
+:10236000510BC701B8010E94A9102C960FB6F89422
+:10237000DEBF0FBECDBFCF91DF911F910F91FF90B8
+:10238000EF900895EF92FF920F931F93DF93CF93F7
+:10239000CDB7DEB72B970FB6F894DEBF0FBECDBF1B
+:1023A0007C01CB01BA018E010F5F1F4FA8012AE00B
+:1023B00030E00E94DC28F80101900020E9F7AF012D
+:1023C00041505040401B510BC701B8010E94A91059
+:1023D0002B960FB6F894DEBF0FBECDBFCF91DF9125
+:1023E0001F910F91FF90EF9008950F931F938C0111
+:1023F000FB0160817181448155810E94A91088236D
+:1024000019F4C8010E94D80EC8011F910F910895B8
+:102410000F931F938C016115710569F0DB010D901D
+:102420000020E9F7AD0141505040461B570B0E9478
+:10243000A910882319F4C8010E94D80EC8011F9161
+:102440000F9108950F931F938C010E94EE10882323
+:1024500019F4C8010E94D80EC8011F910F91089568
+:102460000F931F938C010E940111882319F4C80156
+:102470000E94D80EC8011F910F9108950F931F93CA
+:102480008C010E942E11882319F4C8010E94D80ED5
+:10249000C8011F910F9108950F931F938C010E9403
+:1024A0006011882319F4C8010E94D80EC8011F9139
+:1024B0000F9108950F931F938C010E948F11882311
+:1024C00019F4C8010E94D80EC8011F910F910895F8
+:1024D0000F931F938C010E94C211882319F4C80125
+:1024E0000E94D80EC8011F910F910895CF93DF93DA
+:1024F000FC01DB0180819181009731F06D917C912D
+:10250000119761157105E9F4CD91DC911197209730
+:1025100069F014962D913C9115972115310531F0F4
+:10252000288130E0309521953F4F12C0009771F01F
+:10253000248135812115310549F0FC01208130E0ED
+:1025400007C00E942028282F392F02C020E030E049
+:10255000C901DF91CF910895FC0144815581FB01B0
+:10256000248135814217530729F40E94761221E015
+:10257000009709F020E0822F0895FC018481958165
+:10258000009741F46115710519F081E0FB0109C064
+:1025900081E008950190F081E02D6115710531F41D
+:1025A00081E09081992359F080E00895CF010E9445
+:1025B00020289C0181E02115310509F080E0089573
+:1025C0000E947612892F881F8827881F08950E94ED
+:1025D000761221E0181619060CF020E0822F0895DB
+:1025E0000E94761221E0181619060CF420E0822FC2
+:1025F00008950E947612892F8095881F8827881F4A
+:102600000895EF92FF920F931F93CF93DF93FC01F6
+:10261000DB018617970729F18481958114962D9106
+:102620003C91159782179307F1F40097D1F0008140
+:102630001181CD91DC9111970FC0992787FD90955D
+:102640000E94DD277C018991992787FD90950E9442
+:10265000DD27E816F90639F4F80181918F01882306
+:1026600061F781E001C080E0DF91CF911F910F9170
+:10267000FF90EF900895FC01DB01CA0114964D9183
+:102680005C91159724813581241B350B2817390758
+:10269000A0F0208131812115310579F06D917C9177
+:1026A00011976115710559F0820F931F0E94302810
+:1026B0009C0181E02115310519F080E0089580E04A
+:1026C0000895FC0144815581FB0124813581421725
+:1026D000530728F040E050E00E943B13089580E04B
+:1026E0000895FC01DB018481958114964D915C91E4
+:1026F000159784179507B0F0208131812115310598
+:1027000089F06D917C9111976115710569F0841BB9
+:10271000950B820F931F0E9420289C0181E02115B8
+:10272000310519F080E0089580E00895FC0184816E
+:1027300095816817790730F40190F081E02DE60F5C
+:10274000F71F40830895FC018481958168177907FC
+:1027500020F480819181009729F41092C00360ECED
+:1027600073E002C0680F791FCB010895FC018481DA
+:1027700095816817790748F480819181009739F035
+:10278000680F791FFB018081089580E0089580E043
+:1027900008950E94B61308950F931F93CF93DF936C
+:1027A000FC018B0141155105F1F061157105D9F05E
+:1027B000C481D5812C173D0718F0FB01108213C08E
+:1027C00041505040C21BD30B4C175D0708F4EA017F
+:1027D00060817181620F731FC801AE010E943E28A3
+:1027E000C00FD11F1882DF91CF911F910F910895D3
+:1027F000CF93DF93FC01CA0124813581421753072F
+:1028000078F4C081D181772767FD70958C0F9D1F6B
+:102810000E941528009721F09C012C1B3D0B02C043
+:102820002FEF3FEFC901DF91CF91089540E050E0D5
+:102830000E94F8130895CF93DF93FC01CA0124810D
+:1028400035814217530778F4C081D181FB01608143
+:1028500071818C0F9D1F0E945828009721F09C01C8
+:102860002C1B3D0B02C02FEF3FEFC901DF91CF9131
+:10287000089540E050E00E941B140895DF92EF920B
+:10288000FF920F931F93CF93DF93EC018C819D8177
+:1028900048175907F8F47A010894E11CF11CE88103
+:1028A000F981EE0DFF1DD0801082088119817727F4
+:1028B00067FD7095C8010E944D280E0D1F1DF8017F
+:1028C000D082009739F028813981AC01421B530B2B
+:1028D0009A0102C02FEF3FEFC901DF91CF911F9105
+:1028E0000F91FF90EF90DF900895FC014481558196
+:1028F000415050400E943E140895AF92BF92CF9233
+:10290000DF92EF92FF920F931F93CF93DF93FC011F
+:102910006B018A01DB0114962D913C9115972115CD
+:10292000310551F184819581009731F18217930728
+:1029300018F14817590718F08C0101501040E08039
+:10294000F180C701CFEFDFEF5701A00EB11E10C01D
+:10295000F601608171810E945828009779F09C01EE
+:102960002E193F090217130708F49E010196E90189
+:10297000A816B90668F702C0CFEFDFEFCE01DF91EE
+:10298000CF911F910F91FF90EF90DF90CF90BF906C
+:10299000AF900895FC0144815581FB01248135816C
+:1029A000421B530B0E947D140895AF92BF92CF92A9
+:1029B000DF92EF92FF920F931F93CF93DF93F82E46
+:1029C000E92E6B018A01E9012417350748F4342FF9
+:1029D000212F8E01C901A92EE5015E01B22EE5016C
+:1029E0008F2D9E2D6CEA71E00E94440FD601149643
+:1029F0008D919C91159780179107D8F08C179D07A2
+:102A000008F4EC01D601ED91FC911197EC0FFD1F3C
+:102A1000B08010826D917C91600F711F8F2D9E2D63
+:102A20000E94850FD601ED91FC911197EC0FFD1FCF
+:102A3000B0828F2D9E2DDF91CF911F910F91FF902E
+:102A4000EF90DF90CF90BF90AF900895CF93DF933A
+:102A5000EC01FB01248135810E94D514CE01DF9168
+:102A6000CF910895DC01ED91FC911197309729F4F5
+:102A70000895861709F44083319680818823C9F729
+:102A800008952F923F924F925F926F927F928F9212
+:102A90009F92AF92BF92CF92DF92EF92FF920F93ED
+:102AA0001F93CF93DF937C012B016A01DC01149605
+:102AB0006D907C9015976114710409F4D9C0FB01E5
+:102AC000848095808114910409F4D2C0DA011496AF
+:102AD000AD90BC901597A818B908FC010081118130
+:102AE000A114B104F1F413C0D6016C9111967C913C
+:102AF000119714964D915C911597CE010E94FA277B
+:102B0000D60114960D911C9115970C0F1D1FF20103
+:102B100060817181C8010E945828EC01009721F75B
+:102B2000A7C0B7FC02C0E30142C048012DC0E301C9
+:102B3000C01BD10BC401B801AE010E94FA27C80D19
+:102B4000D91DD6016C9111967C91119714964D91D7
+:102B50005C911597CE010E94FA27D60114968D90AC
+:102B60009C9015978C0E9D1EF20104811581060D17
+:102B7000171DD70114968D919C9115978A0D9B1D59
+:102B800015969C938E931497F20160817181C80110
+:102B90000E9458283C01009751F6C401B8010E94D8
+:102BA000292866C08C01080D191DCA0DDB1DD20134
+:102BB0006D917C91C8010E945828009799F7C6151D
+:102BC000D70509F455C0F701828193818C179D07C1
+:102BD00008F045C0C701BE010E94EA0E882309F42F
+:102BE00047C03DC0C701B201A9010E947D14EC019C
+:102BF00097FD3EC0D7016D917C911197F2018481C0
+:102C000095818C0F9D1F680F791F14964D915C91D3
+:102C10001597481B590BCB018A0D9B1D0E94032859
+:102C2000D70114968D919C9115978A0D9B1D159631
+:102C30009C938E931497ED91FC911197E80FF91FD7
+:102C400010822D913C912C0F3D1FF6016081718106
+:102C500044815581C9010E94FA279E0105C0D70110
+:102C600014962D913C9115972150304037FFBACFE3
+:102C7000DF91CF911F910F91FF90EF90DF90CF9058
+:102C8000BF90AF909F908F907F906F905F904F908C
+:102C90003F902F900895CF93DF93FC01C081D181A5
+:102CA000209739F409C0992787FD90950E94DD2768
+:102CB000899388818823B9F7DF91CF910895CF93C5
+:102CC000DF93FC01C081D181209739F409C0992795
+:102CD00087FD90950E94E527899388818823B9F71D
+:102CE000DF91CF910895AF92BF92CF92DF92EF9292
+:102CF000FF920F931F93CF93DF936C01DC01ED9054
+:102D0000FC901197E114F10409F443C01496AD90BE
+:102D1000BC901597A114B104E1F18701E801888105
+:102D20000F5F1F4F992787FD90950E94D527009729
+:102D3000A9F78501015010400E0D1F1DF80180817B
+:102D4000992787FD90950E94D527009731F00C17A1
+:102D50001D0718F001501040F1CF0F5F1F4F0C1BE3
+:102D60001D0BD60115961C930E931497EC16FD06B9
+:102D700028F4C701BE01A8010E94FA27D601ED91EF
+:102D8000FC91119714968D919C911597E80FF91F5E
+:102D90001082DF91CF911F910F91FF90EF90DF9004
+:102DA000CF90BF90AF900895FC01808191810097F2
+:102DB00029F00E94AE279B01AC0103C020E030E067
+:102DC000A901B901CA0108950E945B2508950E94D6
+:102DD000F525089521E030E0FC018081882311F081
+:102DE00020E030E0C901089521E0FC01208308952E
+:102DF000089508951F920F920FB60F9211242F93EA
+:102E00003F934F935F936F937F938F939F93AF9372
+:102E1000BF932091C5033091C6034091C7035091E1
+:102E2000C8037091C903DA01C9010296A11DB11D41
+:102E3000672F6A5F6D3730F06D57DA01C90103966D
+:102E4000A11DB11D6093C9038093C5039093C60370
+:102E5000A093C703B093C8038091C1039091C203AC
+:102E6000A091C303B091C4030196A11DB11D80932D
+:102E7000C1039093C203A093C303B093C403BF9153
+:102E8000AF919F918F917F916F915F914F913F9102
+:102E90002F910F900FBE0F901F9018958FB7F89439
+:102EA0002091C5033091C6034091C7035091C803D8
+:102EB0008FBFB901CA0108959FB7F8942091C1034B
+:102EC0003091C2034091C3035091C40386B5A89BBF
+:102ED00006C08F3F21F02F5F3F4F4F4F5F4F9FBF87
+:102EE000542F432F322F2227280F311D411D511DF2
+:102EF00083E0220F331F441F551F8A95D1F7B90174
+:102F0000CA010895EF92FF920F931F93CF93DF931F
+:102F10007B018C010E945C17EB010FC00E945C17C3
+:102F20006C1B7D0B83E0683E780738F00894E1085D
+:102F3000F10801091109C851DC4FE114F104010540
+:102F4000110561F7DF91CF911F910F91FF90EF90E5
+:102F50000895019739F0019729F0880F991F01977B
+:102F60000197F1F70895789484B5826084BD84B5A3
+:102F7000816084BD85B5826085BD85B5816085BD74
+:102F8000EEE6F0E0808181608083E1E8F0E010828D
+:102F9000808182608083808181608083E0E8F0E0CE
+:102FA000808181608083E1EBF0E0808184608083B8
+:102FB000E0EBF0E0808181608083EAE7F0E08081EF
+:102FC000846080838081826080838081816080834F
+:102FD0008081806880831092C10008958093AD0144
+:102FE00008958E3008F08E5087709091AD019295C3
+:102FF000990F990F907C982B90937C0080917A0088
+:10300000806480937A0080917A0086FDFCCF2091C5
+:10301000780030917900932F80E030E0282B392B15
+:10302000C90108951F93CF93DF93182FEB0161E03F
+:103030000E949F18209709F44AC0CF3FD10509F498
+:1030400049C0E12FF0E0E155FF4FE491E330C1F0DA
+:10305000E43028F4E13051F0E230B1F50CC0E63054
+:1030600019F1E73049F1E43079F514C084B580688E
+:1030700084BDC7BD33C084B5806284BDC8BD2EC0C9
+:1030800080918000806880938000D0938900C093F5
+:10309000880024C080918000806280938000D0935B
+:1030A0008B00C0938A001AC08091B0008068809322
+:1030B000B000C093B30012C08091B00080628093D2
+:1030C000B000C093B4000AC0C038D1051CF4812FF1
+:1030D00060E002C0812F61E00E94C318DF91CF91B0
+:1030E0001F910895833071F0843028F48130A1F06D
+:1030F000823021F514C08630B1F08730D1F08430B1
+:10310000E9F404C0809180008F7703C08091800033
+:103110008F7D80938000089584B58F7702C084B539
+:103120008F7D84BD08958091B0008F778093B0002B
+:1031300008958091B0008F7D8093B000089590E055
+:10314000FC01E556FF4F2491FC01E957FF4FE49144
+:10315000EE23C1F0F0E0EE0FFF1FE759FF4F85911E
+:103160009491DC01662341F49FB7F8948C912095EB
+:1031700082238C939FBF08959FB7F8948C91822BE4
+:103180008C939FBF08950F931F93DF93CF930F925C
+:10319000CDB7DEB7282F30E0F901E155FF4F84911C
+:1031A000F901E556FF4F149129573F4FF90104915A
+:1031B0000023D9F0882321F069830E947218698165
+:1031C000E02FF0E0EE0FFF1FED58FF4F8591949137
+:1031D000DC019FB7F894662321F48C91109581232C
+:1031E00002C08C91812B8C939FBF0F90CF91DF9168
+:1031F0001F910F9108950F931F93282F30E0F9012D
+:10320000E155FF4F8491F901E556FF4F049129578D
+:103210003F4FF9011491112391F0882311F00E947E
+:103220007218E12FF0E0EE0FFF1FE358FF4F85917A
+:103230009491DC018C91802321E030E011F420E0B6
+:1032400030E0C9011F910F9108958F929F92AF9224
+:10325000BF92CF92DF92EF92FF920F931F9390E075
+:10326000FC01E556FF4F949089579F4FFC01E49075
+:10327000662311F4882401C0892CCA01B90120E415
+:103280003FE140E050E00E949B2420E83EE340E024
+:1032900050E00E94CD2459016A0180E090E0DC01F9
+:1032A0006E2D70E0FB01EE0FFF1FE358FF4F2591DD
+:1032B000349109C08A159B05AC05BD0509F44DC0C4
+:1032C0000196A11DB11DF90140814921481591F3D5
+:1032D0000AC08A159B05AC05BD0509F43EC00196E0
+:1032E000A11DB11D07C0660F771F63587F4FFB01FB
+:1032F00025913491F90140814921481551F720E089
+:1033000030E0A901FB01659174910FC079018A0138
+:10331000E80EF91E0A1F1B1FEA14FB040C051D050D
+:10332000E1F02F5F3F4F4F4F5F4FFB01E081E921FD
+:10333000E81561F3CA01B90128E032E540E050E048
+:103340000E949B246058714C8F4F9F4F20E43FE1B7
+:1033500040E050E00E94CD2403C020E030E0A9010D
+:10336000B901CA011F910F91FF90EF90DF90CF90AC
+:10337000BF90AF909F908F900895CF92DF92EF9281
+:10338000FF920F931F93CF93DF93E82EF62EC42E58
+:10339000C7E0D0E0DD2407E010E08F2D61E00E945F
+:1033A000C318CC2071F48E2D0E94FB1898012C1BA1
+:1033B0003D0BAC0102C0440F551F2A95E2F79A015C
+:1033C0000AC08E2D0E94FB189C010C2E02C0220FF9
+:1033D000331F0A94E2F7D22A8F2D60E00E94C318AF
+:1033E00021975FEFCF3FD507C1F68D2DDF91CF91AC
+:1033F0001F910F91FF90EF90DF90CF900895BF92B3
+:10340000CF92DF92EF92FF920F931F93CF93DF93B0
+:10341000C82ED62EB42EC7E0D0E0022F10E087E0F1
+:10342000E82EF12CBB2059F497012C1B3D0BC80151
+:1034300002C0959587952A95E2F79C0107C09801EF
+:103440000C2E02C0359527950A94E2F7622F617021
+:103450008C2D0E94C3188D2D61E00E94C3188D2D04
+:1034600060E00E94C31821979FEFCF3FD907D1F6A4
+:10347000DF91CF911F910F91FF90EF90DF90CF9050
+:10348000BF9008952091EB0330E08091EA03281B60
+:103490003109C90108958091EA039091EB038917DE
+:1034A00050F4E82FF0E0E653FC4F208130E08F5FCE
+:1034B0008093EA0302C02FEF3FEFC9010895E09126
+:1034C000EA038091EB03E81730F4F0E0E653FC4F99
+:1034D000208130E002C02FEF3FEFC9010895089529
+:1034E000CF93DF939C01CB01E0911204F091130480
+:1034F0003097D9F05091EA034091EB035417A8F0AC
+:1035000060E009C0DA01A653BC4F420F531FEA0125
+:1035100048814C936F5F462F50E04817590794F34A
+:103520001092EA038093EB030995DF91CF91089500
+:10353000E0911004F0911104309729F010920D04DD
+:1035400010920E0409950895CF92DF92EF92FF92A8
+:103550000F931F93CF93DF936C01CB01EA0120916E
+:103560000F042223B1F0E62EF92E00E010E00DC08A
+:10357000D7016D917D01D601ED91FC910190F08113
+:10358000E02DC60109950F5F1F4F0C171D0780F333
+:1035900003C0642F0E94191CCE01DF91CF911F91AF
+:1035A0000F91FF90EF90DF90CF900895DF93CF932E
+:1035B0000F92CDB7DEB7698320910F042223D1F09B
+:1035C00020910E04203240F021E030E0FC013383F2
+:1035D000228320E030E015C080910D04E82FF0E058
+:1035E000E351FC4F998190838F5F80930D0480930A
+:1035F0000E0405C0CE01019661E00E94191C21E075
+:1036000030E0C9010F90CF91DF910895FC01138242
+:10361000128228EE33E040E050E024833583468375
+:10362000578382EB91E09183808308951092EA039F
+:103630001092EB0310920D0410920E040E94861B50
+:103640000895CF93DF93EC01862F0E949F1B88E99A
+:103650009AE10E94381C80E79AE10E94331CCE0157
+:103660000E94161BDF91CF9108950E94211B08959F
+:10367000862F413208F040E26AEC73E00E94A31BFF
+:103680001092EA038093EB0308950E94381B08957B
+:1036900081E080930F046093EC0310920D0410926C
+:1036A0000E0408950E94481B08958091EC036DEE6E
+:1036B00073E040910E0421E00E94D91B10920D048A
+:1036C00010920E0410920F040895709313046093E7
+:1036D00012040895709311046093100408951092D9
+:1036E00017041092160488EE93E0A0E0B0E08093F7
+:1036F000180490931904A0931A04B0931B0482EB4E
+:1037000091E090931504809314040895109244045A
+:1037100082E161E00E94C31883E161E00E94C31866
+:10372000E9EBF0E080818E7F808380818D7F8083D4
+:1037300080E28093B80085E48093BC000895880FF0
+:103740008093BA000895413288F5909144049923FA
+:10375000E1F791E0909344049FEF9093430410921B
+:103760002104942F915090932204880F81608093BC
+:10377000200485EE8093BC00809144048130E1F305
+:1037800080912104841710F440912104E3E2F4E0D5
+:10379000262F372FD901242F30E02E0F3F1F02C0D4
+:1037A00081918D93E217F307D9F701C040E0842F90
+:1037B00008954132B0F5909144049923E1F792E0E5
+:1037C000909344049FEF90934304109221044093FC
+:1037D0002204DB01E3E2F4E050E04E0F5F1F02C081
+:1037E0009D919193E417F507D9F790E0880F991F01
+:1037F0008093200485EE8093BC00222321F08091E9
+:1038000044048230E1F3809143048F3F61F0809162
+:103810004304803251F080914304803341F483E0CB
+:10382000089581E0089580E0089582E0089584E09D
+:1038300008956132A0F420914404243091F46093FF
+:103840006904DC01ECE6F4E070E06E0F7F1F02C05B
+:103850008D918193E617F707D9F780E0089581E00D
+:10386000089582E008959093670480936604089514
+:1038700090936B0480936A040895882311F085EC7B
+:1038800001C085E88093BC00089585ED8093BC005D
+:103890008091BC0084FDFCCF10924404089585EC17
+:1038A0008093BC001092440408951F920F920FB6AB
+:1038B0000F9211242F933F934F935F936F937F93B6
+:1038C0008F939F93AF93BF93EF93FF938091B90032
+:1038D00090E0887F90708036910509F4C2C08136EF
+:1038E0009105E4F58832910509F47EC0893291058D
+:1038F000C4F48031910509F472C08131910544F41A
+:10390000009709F413C18830910509F013C167C00D
+:103910008831910509F468C08032910509F00AC127
+:1039200078C08034910509F48AC0813491054CF443
+:103930008033910509F46FC08833910509F0FAC00E
+:103940006EC08035910509F46EC08835910509F483
+:103950007BC08834910509F0EDC0EAC08839910533
+:1039600009F4DAC089399105ECF48837910509F436
+:1039700078C0893791054CF48836910509F471C0F7
+:103980008037910509F0D6C06CC08838910509F4DC
+:10399000C3C08039910509F46AC08038910509F0E7
+:1039A000C9C065C0803B910509F48EC0813B91057B
+:1039B0004CF4803A910509F46CC0883A910509F0FD
+:1039C000B9C082C0803C910509F4AAC0883C910529
+:1039D00009F4A6C0883B910509F0ACC08AC080916B
+:1039E00020048093BB0013C0909121048091220495
+:1039F000981708F09DC080912104E82FF0E0ED5D5C
+:103A0000FB4F90819093BB008F5F8093210481E0F6
+:103A100084C080E201C080E38093430489C088E3CE
+:103A2000809343044EC0809121049091BB00E82F05
+:103A3000F0E0ED5DFB4F90838F5F809321049091C8
+:103A400021048091220465C0809121049091BB00E3
+:103A5000E82FF0E0ED5DFB4F90838F5F80932104B2
+:103A600067C083E08093440410924504D0CF8091D6
+:103A70004504803208F050C0809145049091BB000D
+:103A8000E82FF0E0EA5BFB4F90838F5F8093450463
+:103A9000BECF80914504803230F4E0914504F0E0DF
+:103AA000EA5BFB4F10820E94451C60914504E09147
+:103AB0006604F091670486E494E070E00995109242
+:103AC00045040E944F1C36C084E080934404109249
+:103AD000680410926904E0916A04F0916B040995FE
+:103AE00080916904882329F481E08093690410920D
+:103AF0006C0480916804E82FF0E0E459FB4F90815A
+:103B00009093BB008F5F80936804909168048091CC
+:103B10006904981708F47BCF80E00E943D1C0AC01E
+:103B200081E00E943D1C1092440404C010924304A2
+:103B30000E94451CFF91EF91BF91AF919F918F9192
+:103B40007F916F915F914F913F912F910F900FBE99
+:103B50000F901F901895EF92FF920F931F937B0188
+:103B60008C0120E030E040E05FE40E94272187FDE7
+:103B700011C0C801B70120E030E040E05FE40E94DE
+:103B80004E1F0E94E7219B01AC0120503040404075
+:103B9000504806C0C801B7010E94E7219B01AC0153
+:103BA000B901CA011F910F91FF90EF900895A0E015
+:103BB000B0E0EDEDFDE10C942225FC01EA018081ED
+:103BC000823008F438C1DB019C91923008F430C196
+:103BD000843059F4943009F02EC1918111968C9162
+:103BE0001197981709F021C126C1943009F420C11A
+:103BF0009230B1F4823009F01EC1CA01AF0128E051
+:103C0000DA010D90AD01DC010D92CD012150C1F71B
+:103C1000DB0111968C9111979181892389830AC1C7
+:103C2000823009F405C1C280D380DB0112966D9009
+:103C30007C90139724813581468157811496ED90AD
+:103C4000FD900D911C911797C601861997095C018B
+:103C500097FF04C0AA24BB24A81AB90AB0E2AB1685
+:103C6000B1040CF061C0181619066CF53701480153
+:103C70000A2C04C096948794779467940A94D2F798
+:103C800081E090E0A0E0B0E00A2C04C0880F991F0A
+:103C9000AA1FBB1F0A94D2F70197A109B1098E216F
+:103CA0009F21A023B123EE24FF248701E3940097F2
+:103CB000A105B10519F4EE24FF248701E628F728B1
+:103CC000082919293CC00097D1F1CA0CDB1C390125
+:103CD0004A010A2C04C096948794779467940A94B6
+:103CE000D2F781E090E0A0E0B0E00A2C04C0880F99
+:103CF000991FAA1FBB1F0A94D2F70197A109B10906
+:103D000082239323A423B52321E030E040E050E058
+:103D10000097A105B10519F420E030E0A90126299A
+:103D20003729482959290BC06C147D0424F4EE244A
+:103D3000FF24870104C0630120E030E0A9018181F4
+:103D4000FB019181891709F445C0882349F0D80106
+:103D5000C701821B930BA40BB50B9C01AD0104C0E2
+:103D60002E193F09400B510B57FD04C01982DB820D
+:103D7000CA820BC081E08983DB82CA82509540955C
+:103D8000309521953F4F4F4F5F4F2C833D834E839E
+:103D90005F830DC0880F991FAA1FBB1F8C839D8353
+:103DA000AE83BF838A819B8101979B838A838C81A9
+:103DB0009D81AE81BF819C01AD01215030404040CA
+:103DC00050402F3FEFEF3E07EFEF4E07EFE35E0768
+:103DD00008F30BC08983DB82CA822E0D3F1D401F72
+:103DE000511F2C833D834E835F8383E088832C8126
+:103DF0003D814E815F8157FF1DC0DA01C90181708D
+:103E00009070A070B0705695479537952795822B86
+:103E1000932BA42BB52B8C839D83AE83BF838A8188
+:103E20009B8101969B838A8305C0EEECF1E003C081
+:103E3000FB0101C0FE01CF01CDB7DEB7EEE00C946F
+:103E40003E25A0E2B0E0E7E2FFE10C942A25698379
+:103E50007A838B839C832D833E834F83588789E0AD
+:103E6000E82EF12CEC0EFD1ECE010196B7010E944A
+:103E7000D9238E010F5E1F4FCE010596B8010E9417
+:103E8000D923C701B801AE01475E5F4F0E94D71D1D
+:103E90000E940B23A096E6E00C944625A0E2B0E039
+:103EA000E4E5FFE10C942A2569837A838B839C8364
+:103EB0002D833E834F8358878E01075F1F4FCE01AE
+:103EC0000196B8010E94D92391E1E92EF12CEC0E64
+:103ED000FD1ECE010596B7010E94D9238A8991E083
+:103EE00089278A8BC801B701AE01475E5F4F0E94E8
+:103EF000D71D0E940B23A096E6E00C944625A0E275
+:103F0000B0E0E5E8FFE10C941E2569837A838B839A
+:103F10009C832D833E834F835887CE010196BE013B
+:103F2000675F7F4F0E94D923CE010596BE016F5E69
+:103F30007F4F0E94D9239985923078F08989823009
+:103F4000C0F0943019F4823041F4CBC0843019F4BD
+:103F5000923079F4C6C0923051F481E02A859A8972
+:103F6000291709F480E08A87CE010996BCC0823007
+:103F700051F481E02A859A89291709F480E08A8B17
+:103F8000CE014196B0C06D847E848F849888ED8880
+:103F9000FE880F89188DE0E2F0E080E090E0DC011F
+:103FA000AA24BB24650120E030E0A901B3016170BF
+:103FB000707061157105D1F02E0D3F1D401F511F0E
+:103FC00015012601280E391E4A1E5B1E81E090E075
+:103FD000A0E0B0E02E153F054007510718F080E043
+:103FE00090E0DC01820D931DA41DB51DAA0CBB1C25
+:103FF000CC1CDD1C17FF09C061E0262E312C412CA2
+:10400000512CA228B328C428D528319749F0EE0CAA
+:10401000FF1C001F111F9694879477946794C6CF56
+:104020006B897C89EB85FC856E0F7F1F6E5F7F4FF0
+:104030007C8F6B8F61E0EA857A89E71709F460E08D
+:104040006A8F6B8D7C8D10C0FC01E170F070309731
+:1040500029F056954795379527955068B695A795B9
+:10406000979587956F5F7F4FB7FDEECF0CC0880F98
+:10407000991FAA1FBB1F57FD8160220F331F441FCA
+:10408000551F615070408030E0E09E07E0E0AE07D1
+:10409000E0E4BE0760F36B8F7C8F6FE7E62EF12CB8
+:1040A000012D112DE822F9220A231B2360E4E616D4
+:1040B000F1040105110561F487FD0AC021153105E0
+:1040C0004105510529F0805C9F4FAF4FBF4F80786D
+:1040D0008D8F9E8FAF8FB8A383E0898FCE014996D5
+:1040E00002C08EEC91E00E940B23A096E2E10C94BA
+:1040F0003A25A8E1B0E0EFE7F0E20C9426256983C9
+:104100007A838B839C832D833E834F8358878E01D4
+:10411000075F1F4FCE010196B8010E94D92381E1AC
+:10412000E82EF12CEC0EFD1ECE010596B7010E9483
+:10413000D9239985923008F483C08989823008F4A4
+:104140007BC02A853A8923272A87943011F0923040
+:1041500021F4981709F06CC071C0843039F41D86C1
+:104160001E861F86188A1C861B866AC0823019F438
+:1041700084E0898765C08B859C852B893C89821B5F
+:10418000930B9C878B872D853E854F855889ED88BD
+:10419000FE880F89188D2E153F054007510738F40A
+:1041A000220F331F441F551F01979C878B876FE198
+:1041B00070E0A12CB12CC12CA0E4DA2E80E090E0BC
+:1041C000DC012E153F054007510740F08A299B2945
+:1041D000AC29BD292E193F09400B510BD694C79429
+:1041E000B794A794220F331F441F551F615070408E
+:1041F00041F76FE7E62EF12C012D112DE822F9226F
+:104200000A231B2360E4E616F1040105110561F49D
+:1042100087FD0AC0211531054105510529F0805C53
+:104220009F4FAF4FBF4F80788D879E87AF87B88BEA
+:104230008E01075F1F4F04C0870102C00EEC11E022
+:10424000C8010E940B236896EAE00C944225A8E17D
+:10425000B0E0EDE2F1E20C942A2569837A838B8346
+:104260009C832D833E834F8358878E01075F1F4FAA
+:10427000CE010196B8010E94D92381E1E82EF12CEC
+:10428000EC0EFD1ECE010596B7010E94D92389854B
+:10429000823040F08989823028F0C801B7010E943D
+:1042A000422401C08FEF6896E6E00C944625A8E111
+:1042B000B0E0EDE5F1E20C942A2569837A838B83E3
+:1042C0009C832D833E834F8358878E01075F1F4F4A
+:1042D000CE010196B8010E94D92381E1E82EF12C8C
+:1042E000EC0EFD1ECE010596B7010E94D9238985EB
+:1042F000823040F08989823028F0C801B7010E94DD
+:10430000422401C081E06896E6E00C944625A8E0CE
+:10431000B0E0EDE8F1E20C942A257B018C0183E00A
+:104320008983D801C7018827B7FD83959927AA27D4
+:10433000BB27282F8A83E114F1040105110519F424
+:1043400082E0898337C08EE190E09C838B832223B7
+:1043500089F080E0E81680E0F80680E0080780E851
+:10436000180769F110950095F094E094E11CF11C98
+:10437000011D111DED82FE820F831887C801B70150
+:104380000E94B1229C01215030401216130694F471
+:10439000022E04C0EE0CFF1C001F111F0A94D2F75E
+:1043A000ED82FE820F8318878EE190E0821B930BD3
+:1043B0009C838B83CE0101960E940B2304C060E096
+:1043C00070E080E09FEC2896E6E00C944625ACE097
+:1043D000B0E0EDEEF1E20C942E2569837A838B83B5
+:1043E0009C83CE010196BE016B5F7F4F0E94D92353
+:1043F0008D81823081F1823070F1843021F48E81A0
+:10440000882369F10AC02F81388537FD24C06E8169
+:104410002F3131053CF0662311F120E030E040E01F
+:1044200050E821C08EE190E0821B930B29853A85EC
+:104430004B855C8504C056954795379527958A9599
+:10444000D2F7662381F050954095309521953F4FE6
+:104450004F4F5F4F08C020E030E0A90104C02FEFAC
+:104460003FEF4FEF5FE7B901CA012C96E2E00C94F1
+:104470004A25A8E0B0E0EFE3F2E20C9428257B01A6
+:104480008C011A82611571058105910519F482E08C
+:1044900089835FC083E089838EE1C82ED12CDC82C2
+:1044A000CB82ED82FE820F831887C801B7010E947C
+:1044B000B122FC013197F7FF3AC0AA27BB27AE1BF8
+:1044C000BF0B21E030E040E050E00A2E04C0220F94
+:1044D000331F441F551F0A94D2F7215030404040EB
+:1044E00050402E213F214023512361E070E080E0C5
+:1044F00090E0211531054105510519F460E070E0A7
+:10450000CB0104C016950795F794E794AA95D2F7C6
+:10451000E62AF72A082B192BED82FE820F831887D3
+:104520008EE190E08E1B9F0B9C838B8312C0309793
+:1045300081F00E2E04C0EE0CFF1C001F111F0A9408
+:10454000D2F7ED82FE820F831887CE1ADF0ADC8253
+:10455000CB82CE0101960E940B232896E8E00C94B2
+:104560004425AF92BF92CF92DF92EF92FF920F93CA
+:104570001F937B018C0180E0E81680E0F80681E063
+:10458000080780E0180758F4EFEFEE16F104010574
+:10459000110509F090F480E090E0DC0117C0F0E034
+:1045A000EF16F0E0FF06F0E00F07F1E01F0750F410
+:1045B00080E190E0A0E0B0E009C088E090E0A0E0F9
+:1045C000B0E004C088E190E0A0E0B0E020E230E09C
+:1045D00040E050E0281B390B4A0B5B0B5701680188
+:1045E00004C0D694C794B794A7948A95D2F7D601FD
+:1045F000C5018A529E4FFC018081281B3109410967
+:104600005109C9011F910F91FF90EF90DF90CF905A
+:10461000BF90AF900895EF92FF920F931F93CF93A7
+:10462000DF93FC012481358146815781618180813E
+:10463000823020F44061EFEFF0E0A3C0843009F451
+:104640009BC0823009F492C0211531054105510506
+:1046500009F48FC00280F381E02D8FEFE238F80774
+:104660000CF05AC0C2E8DFEFCE1BDF0BCA31D10518
+:104670006CF579018A010C2E04C016950795F79404
+:10468000E7940A94D2F781E090E0A0E0B0E00C2E2D
+:1046900004C0880F991FAA1FBB1F0A94D2F7019765
+:1046A000A109B10982239323A423B52321E030E09B
+:1046B00040E050E00097A105B10519F420E030E09A
+:1046C000A9012E293F29402B512B03C020E030E0C7
+:1046D000A901DA01C9018F779070A070B0708034A1
+:1046E0009105A105B10539F427FF09C0205C3F4FB2
+:1046F0004F4F5F4F04C0215C3F4F4F4F5F4FE1E092
+:10470000F0E0203080E0380780E0480780E4580778
+:1047100028F5E0E0F0E022C0E038F1056CF5E15862
+:10472000FF4FDA01C9018F779070A070B0708034AC
+:104730009105A105B10539F427FF09C0205C3F4F61
+:104740004F4F5F4F04C0215C3F4F4F4F5F4F57FFAC
+:1047500005C05695479537952795319687E056952C
+:104760004795379527958A95D1F70BC0E0E0F0E0A3
+:1047700005C0E0E0F0E005C0EFEFF0E020E030E061
+:10478000A9018E2F879588278795942F9F77679506
+:1047900066276795E695E22EA92FA82BFE2FF62B0C
+:1047A000622F732F8A2F9F2FCDB7DEB7E6E00C94D0
+:1047B0004625DC01FB012C9111963C911197129634
+:1047C0008C911297482F4F7750E0982F991F992777
+:1047D000991F13966C911397862F880F892B90E061
+:1047E000661F6627661F6183009739F5211531051D
+:1047F0004105510511F482E029C082E89FEF9383BF
+:10480000828367E0220F331F441F551F6A95D1F73B
+:1048100083E0808309C0220F331F441F551F82810C
+:104820009381019793838283203080E0380780E072
+:10483000480780E4580778F320C08F3F910579F44A
+:10484000211531054105510519F484E0808308954F
+:1048500044FF03C081E0808310C010820EC08F57D8
+:1048600090409383828383E0808387E0220F331F0D
+:10487000441F551F8A95D1F750642483358346839E
+:1048800057830895FC01DB019081923008F449C000
+:104890008C91823008F445C0943051F461818430A9
+:1048A000B1F511962C91119730E0261B310941C0CA
+:1048B000843021F0923041F48230B1F111968C9124
+:1048C00011978823A1F12DC06181823001F11196E9
+:1048D0008C9111976817D9F42281338112968D91AA
+:1048E0009C9113978217930794F028173907BCF00F
+:1048F000248135814681578114968D919D910D902B
+:10490000BC91A02D82179307A407B50718F466235E
+:1049100041F00DC0281739074A075B0728F46623C2
+:1049200031F021E030E005C020E030E002C02FEFA0
+:104930003FEFC9010895629FD001739FF001829FEC
+:10494000E00DF11D649FE00DF11D929FF00D839F1E
+:10495000F00D749FF00D659FF00D9927729FB00DBB
+:10496000E11DF91F639FB00DE11DF91FBD01CF01CE
+:104970001124089597FB092E07260AD077FD04D04D
+:1049800049D006D000201AF4709561957F4F0895A4
+:10499000F6F7909581959F4F0895A1E21A2EAA1BD4
+:1049A000BB1BFD010DC0AA1FBB1FEE1FFF1FA217DF
+:1049B000B307E407F50720F0A21BB30BE40BF50BDC
+:1049C000661F771F881F991F1A9469F76095709565
+:1049D000809590959B01AC01BD01CF01089597FB97
+:1049E000092E05260ED057FD04D0D7DF0AD0001CB3
+:1049F00038F450954095309521953F4F4F4F5F4F7C
+:104A00000895F6F790958095709561957F4F8F4F3B
+:104A10009F4F0895AA1BBB1B51E107C0AA1FBB1FD4
+:104A2000A617B70710F0A61BB70B881F991F5A953A
+:104A3000A9F780959095BC01CD0108952F923F92E2
+:104A40004F925F926F927F928F929F92AF92BF929E
+:104A5000CF92DF92EF92FF920F931F93CF93DF934A
+:104A6000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEA7
+:104A7000CDBF09942A88398848885F846E847D84F4
+:104A80008C849B84AA84B984C884DF80EE80FD80F6
+:104A90000C811B81AA81B981CE0FD11D0FB6F8946C
+:104AA000DEBF0FBECDBFED010895EE0FFF1F0590D5
+:104AB000F491E02D0994CF93DF938230910510F4A7
+:104AC00082E090E0E0918E04F0918F0440E050E0AD
+:104AD00020E030E026C06081718168177907E0F03E
+:104AE0006817790781F4828193812115310531F0AE
+:104AF000D90113969C938E9312972BC090938F0499
+:104B000080938E0426C04115510519F0641775076E
+:104B100018F4AB01E901DF019F0172816381E72F86
+:104B2000F62F3097C1F64115510501F1481B590B7D
+:104B30004430510580F412968D919C9113972097E3
+:104B400019F09B838A8304C090938F0480938E0412
+:104B5000FD01329646C0FD01E40FF51F819391934C
+:104B60004250504011965C934E933BC020918C0470
+:104B700030918D042115310541F42091D8023091F6
+:104B8000D90230938D0420938C042091DA02309165
+:104B9000DB022115310541F42DB73EB74091D60215
+:104BA0005091D702241B350BE0918C04F0918D04B9
+:104BB000E217F307A0F42E1B3F0B2817390778F0F4
+:104BC000AC014E5F5F4F2417350748F04E0F5F1F53
+:104BD00050938D0440938C048193919302C0E0E044
+:104BE000F0E0CF01DF91CF910895CF93DF9300974D
+:104BF00009F491C0FC0132971382128260918E04F5
+:104C000070918F046115710581F420813181280F25
+:104C1000391F80918C0490918D048217930799F528
+:104C2000F0938D04E0938C0476C0DB0180E090E08B
+:104C300002C0CD01D901AE17BF0748F412962D91DD
+:104C40003C91139721153105A1F7CD0121C0B38304
+:104C5000A283EF01499159919E01240F351FA2179C
+:104C6000B30779F42D913C911197240F351F2E5FD6
+:104C70003F4F3183208312962D913C9113973383BC
+:104C80002283009729F4F0938F04E0938E0443C0AD
+:104C9000DC011396FC93EE9312974D915D91A40F56
+:104CA000B51FEA17FB0769F420813181240F351FF6
+:104CB0002E5F3F4FEC0139832883228133813B8370
+:104CC0002A83E0E0F0E002C0FB01BC01DB011296A8
+:104CD0008D919C9113970097B9F79B012E5F3F4FE1
+:104CE0008D919C911197820F931F40918C0450914C
+:104CF0008D044817590779F4309729F410928F04DE
+:104D000010928E0402C013821282225030403093DF
+:104D10008D0420938C04DF91CF910895A0E0B0E042
+:104D2000E4E9F6E20C942625EC01688179818A8118
+:104D30009B81611571058105910521F464E279ED8E
+:104D40008BE597E02DE133EF41E050E00E94EF2446
+:104D500079018A0127EA31E440E050E00E949B2477
+:104D60005B016C01C801B7012CEE34EF4FEF5FEF30
+:104D70000E949B249B01AC012A0D3B1D4C1D5D1D17
+:104D800057FF04C0215030404040504828833983A9
+:104D90004A835B835F77B901CA01CDB7DEB7EAE02A
+:104DA0000C9442250E948E2608958CED92E00E947C
+:104DB0008E2608956093DC027093DD028093DE02FC
+:104DC0009093DF020895A0E0B0E0E9EEF6E20C94E3
+:104DD00024258C01CB010115110529F40E945B25C6
+:104DE000082F192FB5C0D80112979801260F371F29
+:104DF0002A173B0708F4AAC0ED90FC901197E6161D
+:104E0000F706D0F045E0E416F10408F4A1C0A701CC
+:104E1000445050404617570708F49AC0A701425023
+:104E20005040461B570BF901419351936D937C936E
+:104E3000CF010E94F5258CC05B01AE18BF08480168
+:104E40008E0C9F1CE0918E04F0918F04CC24DD2405
+:104E5000C0E0D0E041C0E815F90599F560817181A5
+:104E6000AB014E5F5F4F4A155B0558F1AB014A1924
+:104E70005B09CC24DD246894C1F8C40ED51E828061
+:104E8000A380E5E0CE16D10448F0F9018282A38226
+:104E90005183408311969C938E9309C0C70102965B
+:104EA000860F971F11969C938E93E82DFA2D2097CD
+:104EB00019F0FB83EA834CC0F0938F04E0938E04D7
+:104EC00047C040815181C416D50608F46A01EF013C
+:104ED00052814381E52FF42F309709F0BCCF4091E8
+:104EE0008C0450918D0448155905E9F4C816D9066B
+:104EF000D0F44091DA025091DB024115510541F4A2
+:104F00004DB75EB76091D6027091D702461B570B22
+:104F100024173507D8F430938D0420938C04119610
+:104F20009C938E9315C00E945B25C82EE6016E01EE
+:104F3000D92EE601209751F08C2DB801A7010E94CF
+:104F4000FA27C8010E94F525860102C000E010E0A2
+:104F5000C801CDB7DEB7ECE00C9440251F93FC01EF
+:104F600099278827BC01E89411911032E9F3193090
+:104F700010F01E30C8F31B3251F01D3249F4689412
+:104F800006C00E94C728610F711D811D911D1191DE
+:104F900010531A30B0F33EF490958095709561955A
+:104FA0007F4F8F4F9F4F1F910895911140C18032C5
+:104FB00019F089508550D0F70895911108958154C2
+:104FC0008A5108F4805E855A08959111089581569A
+:104FD0008A5108F4805285580895FB01DC0104C011
+:104FE0008D910190801921F441505040C8F7881BE1
+:104FF000990B0895FB01DC0102C001900D92415014
+:105000005040D8F708956817790768F4FB01DC0170
+:10501000E40FF51FA40FB51F02C002900E9241507D
+:105020005040D8F708950C94FA27FC018191861717
+:1050300021F08823D9F7992708953197CF01089552
+:10504000FB01DC018D91019080190110D9F3990BBE
+:105050000895FB01DC0101900D920020E1F7089515
+:10506000FB01DC014150504030F08D9101908019DE
+:1050700019F40020B9F7881B990B0895FB01DC0196
+:105080004150504048F001900D920020C9F701C0F6
+:105090001D9241505040E0F70895FC0181E090E0FE
+:1050A0000190061609F4CF010020D1F70197089569
+:1050B000FB0151915523A9F0BF01DC014D9145172A
+:1050C0004111E1F759F4CD010190002049F04D91D3
+:1050D00040154111C9F3FB014111EFCF81E090E090
+:1050E00001970895FB019F01E8944230C4F04532D6
+:1050F000B4F44A3029F497FB1EF4909581959F4FA4
+:10510000642F77270E940A25805D8A330CF0895D21
+:105110008193CB010097A1F716F45DE251931082C1
+:10512000C9010C941A29FA01CF93FF93EF9322300F
+:1051300044F1253234F5C22FE894CA3049F497FB84
+:105140003EF490958095709561957F4F8F4F9F4F5E
+:105150002C2F332744275527FF93EF930E94CD240C
+:10516000EF91FF91605D6A330CF0695D6193B90165
+:10517000CA01605070408040904051F716F4CDE273
+:10518000C19310828F919F91CF910C941A29592F1E
+:10519000482F372F262F660F771F881F991F660FFE
+:1051A000771F881F991F620F731F841F951F660F3B
+:1051B000771F881F991F0895FA01CF93FF93EF93EC
+:1051C0002230CCF02532BCF4C22F2C2F33274427B9
+:1051D0005527FF93EF930E94CD24EF91FF91605DDF
+:1051E0006A330CF0695D6193B901CA016050704087
+:1051F0008040904051F710828F919F91CF910C94F5
+:105200001A29FB019F01423074F0453264F4642F87
+:1052100077270E940A25805D8A330CF0895D81938F
+:10522000CB010097A1F71082C9010C941A29992784
+:1052300088270895DC01FC01672F71917723E1F73E
+:10524000329704C07C916D9370836291AE17BF0753
+:08525000C8F30895F894FFCFA4
+:105258000D0A2B494E513D310D0A000D0A2B5354AE
+:10526800574D4F443D300D0A000D0A2B53544E4103
+:105278003D4164617074696373456C656374696307
+:105288000D0A000D0A2B53544F4155543D310D0A58
+:10529800000D0A2B53544155544F3D300D0A000D53
+:1052A8000A202B535450494E3D303030300D0A00FF
+:1052B8000D0A2B4C4F53535245434F4E4E3D300D24
+:1052C8000A0007F00000000000B00286054B027AD1
+:1052D800025E029C0200000000F9168605F916F924
+:1052E80016F916F91600000000DE0400000000F9A7
+:1052F800162E0000000000F9168605FF00010000C8
+:105308000000D61AA41A421A4B1A5F1A6F1A000024
+:105318000000F9168605F916F916F916F9160000AF
+:10532800000000000000000102020303030304045C
+:10533800040404040404050505050505050505051B
+:1053480005050505050506060606060606060606FB
+:1053580006060606060606060606060606060606E5
+:1053680006060606060607070707070707070707CB
+:1053780007070707070707070707070707070707B5
+:1053880007070707070707070707070707070707A5
+:105398000707070707070707070707070707070795
+:1053A800070707070707080808080808080808087B
+:1053B8000808080808080808080808080808080865
+:1053C8000808080808080808080808080808080855
+:1053D8000808080808080808080808080808080845
+:1053E8000808080808080808080808080808080835
+:1053F8000808080808080808080808080808080825
+:105408000808080808080808080808080808080814
+:105418000808080808080808080808080808080804
+:10542800080808080808200090040000010000008F
+:00000001FF
diff --git a/ESS1995i2c/bin/Release/ESS1995i2c.elf.lss b/ESS1995i2c/bin/Release/ESS1995i2c.elf.lss
new file mode 100644
index 0000000..66af8d8
--- /dev/null
+++ b/ESS1995i2c/bin/Release/ESS1995i2c.elf.lss
@@ -0,0 +1,10311 @@
+
+bin/Release/ESS1995i2c.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 000001e0 00800100 00005258 000052ec 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00005258 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 000001b0 008002e0 008002e0 000054cc 2**0
+ ALLOC
+ 3 .stab 00002928 00000000 00000000 000054cc 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00000d28 00000000 00000000 00007df4 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 65 00 jmp 0xca ; 0xca <__ctors_end>
+ 4: 0c 94 e3 0d jmp 0x1bc6 ; 0x1bc6 <__vector_1>
+ 8: 0c 94 10 0e jmp 0x1c20 ; 0x1c20 <__vector_2>
+ c: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 10: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 14: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 18: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 1c: 0c 94 57 0d jmp 0x1aae ; 0x1aae <__vector_7>
+ 20: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 24: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 28: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 2c: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 30: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 34: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 38: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 3c: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 40: 0c 94 fa 16 jmp 0x2df4 ; 0x2df4 <__vector_16>
+ 44: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 48: 0c 94 04 03 jmp 0x608 ; 0x608 <__vector_18>
+ 4c: 0c 94 35 03 jmp 0x66a ; 0x66a <__vector_19>
+ 50: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 54: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 58: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 5c: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+ 60: 0c 94 55 1c jmp 0x38aa ; 0x38aa <__vector_24>
+ 64: 0c 94 8d 00 jmp 0x11a ; 0x11a <__bad_interrupt>
+
+00000068 <_ZL21tone_pin_to_timer_PGM>:
+ 68: 02 .
+
+00000069 <port_to_mode_PGM>:
+ 69: 00 00 00 00 24 00 27 00 2a 00 ....$.'.*.
+
+00000073 <port_to_output_PGM>:
+ 73: 00 00 00 00 25 00 28 00 2b 00 ....%.(.+.
+
+0000007d <port_to_input_PGM>:
+ 7d: 00 00 00 00 23 00 26 00 29 00 ....#.&.).
+
+00000087 <digital_pin_to_port_PGM>:
+ 87: 04 04 04 04 04 04 04 04 02 02 02 02 02 02 03 03 ................
+ 97: 03 03 03 03 ....
+
+0000009b <digital_pin_to_bit_mask_PGM>:
+ 9b: 01 02 04 08 10 20 40 80 01 02 04 08 10 20 01 02 ..... @...... ..
+ ab: 04 08 10 20 ...
+
+000000af <digital_pin_to_timer_PGM>:
+ af: 00 00 00 07 00 02 01 00 00 03 04 06 00 00 00 00 ................
+ bf: 00 00 00 00 00 .....
+
+000000c4 <__ctors_start>:
+ c4: a1 04 cpc r10, r1
+ c6: 77 05 cpc r23, r7
+ c8: 6f 1b sub r22, r31
+
+000000ca <__ctors_end>:
+ ca: 11 24 eor r1, r1
+ cc: 1f be out 0x3f, r1 ; 63
+ ce: cf ef ldi r28, 0xFF ; 255
+ d0: d8 e0 ldi r29, 0x08 ; 8
+ d2: de bf out 0x3e, r29 ; 62
+ d4: cd bf out 0x3d, r28 ; 61
+
+000000d6 <__do_copy_data>:
+ d6: 12 e0 ldi r17, 0x02 ; 2
+ d8: a0 e0 ldi r26, 0x00 ; 0
+ da: b1 e0 ldi r27, 0x01 ; 1
+ dc: e8 e5 ldi r30, 0x58 ; 88
+ de: f2 e5 ldi r31, 0x52 ; 82
+ e0: 02 c0 rjmp .+4 ; 0xe6 <__do_copy_data+0x10>
+ e2: 05 90 lpm r0, Z+
+ e4: 0d 92 st X+, r0
+ e6: a0 3e cpi r26, 0xE0 ; 224
+ e8: b1 07 cpc r27, r17
+ ea: d9 f7 brne .-10 ; 0xe2 <__do_copy_data+0xc>
+
+000000ec <__do_clear_bss>:
+ ec: 14 e0 ldi r17, 0x04 ; 4
+ ee: a0 ee ldi r26, 0xE0 ; 224
+ f0: b2 e0 ldi r27, 0x02 ; 2
+ f2: 01 c0 rjmp .+2 ; 0xf6 <.do_clear_bss_start>
+
+000000f4 <.do_clear_bss_loop>:
+ f4: 1d 92 st X+, r1
+
+000000f6 <.do_clear_bss_start>:
+ f6: a0 39 cpi r26, 0x90 ; 144
+ f8: b1 07 cpc r27, r17
+ fa: e1 f7 brne .-8 ; 0xf4 <.do_clear_bss_loop>
+
+000000fc <__do_global_ctors>:
+ fc: 10 e0 ldi r17, 0x00 ; 0
+ fe: ca ec ldi r28, 0xCA ; 202
+ 100: d0 e0 ldi r29, 0x00 ; 0
+ 102: 04 c0 rjmp .+8 ; 0x10c <__do_global_ctors+0x10>
+ 104: 22 97 sbiw r28, 0x02 ; 2
+ 106: fe 01 movw r30, r28
+ 108: 0e 94 57 25 call 0x4aae ; 0x4aae <__tablejump__>
+ 10c: c4 3c cpi r28, 0xC4 ; 196
+ 10e: d1 07 cpc r29, r17
+ 110: c9 f7 brne .-14 ; 0x104 <__do_global_ctors+0x8>
+ 112: 0e 94 dc 00 call 0x1b8 ; 0x1b8 <main>
+ 116: 0c 94 2a 29 jmp 0x5254 ; 0x5254 <_exit>
+
+0000011a <__bad_interrupt>:
+ 11a: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+0000011e <_Z9advertisev>:
+ 11e: cf 93 push r28
+ 120: df 93 push r29
+ 122: 60 ed ldi r22, 0xD0 ; 208
+ 124: 77 e0 ldi r23, 0x07 ; 7
+ 126: 80 e0 ldi r24, 0x00 ; 0
+ 128: 90 e0 ldi r25, 0x00 ; 0
+ 12a: 0e 94 82 17 call 0x2f04 ; 0x2f04 <delay>
+ 12e: c2 e8 ldi r28, 0x82 ; 130
+ 130: d3 e0 ldi r29, 0x03 ; 3
+ 132: ce 01 movw r24, r28
+ 134: 60 e0 ldi r22, 0x00 ; 0
+ 136: 71 e0 ldi r23, 0x01 ; 1
+ 138: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 13c: 60 ed ldi r22, 0xD0 ; 208
+ 13e: 77 e0 ldi r23, 0x07 ; 7
+ 140: 80 e0 ldi r24, 0x00 ; 0
+ 142: 90 e0 ldi r25, 0x00 ; 0
+ 144: 0e 94 82 17 call 0x2f04 ; 0x2f04 <delay>
+ 148: ce 01 movw r24, r28
+ 14a: 0e 94 9c 02 call 0x538 ; 0x538 <_ZN14HardwareSerial5flushEv>
+ 14e: df 91 pop r29
+ 150: cf 91 pop r28
+ 152: 08 95 ret
+
+00000154 <_Z14setupBlueToothv>:
+ 154: cf 93 push r28
+ 156: df 93 push r29
+ 158: 86 e0 ldi r24, 0x06 ; 6
+ 15a: 60 e0 ldi r22, 0x00 ; 0
+ 15c: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 160: c2 e8 ldi r28, 0x82 ; 130
+ 162: d3 e0 ldi r29, 0x03 ; 3
+ 164: ce 01 movw r24, r28
+ 166: 40 e0 ldi r20, 0x00 ; 0
+ 168: 56 e9 ldi r21, 0x96 ; 150
+ 16a: 60 e0 ldi r22, 0x00 ; 0
+ 16c: 70 e0 ldi r23, 0x00 ; 0
+ 16e: 0e 94 bb 03 call 0x776 ; 0x776 <_ZN14HardwareSerial5beginEm>
+ 172: ce 01 movw r24, r28
+ 174: 6b e0 ldi r22, 0x0B ; 11
+ 176: 71 e0 ldi r23, 0x01 ; 1
+ 178: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 17c: ce 01 movw r24, r28
+ 17e: 69 e1 ldi r22, 0x19 ; 25
+ 180: 71 e0 ldi r23, 0x01 ; 1
+ 182: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 186: ce 01 movw r24, r28
+ 188: 63 e3 ldi r22, 0x33 ; 51
+ 18a: 71 e0 ldi r23, 0x01 ; 1
+ 18c: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 190: ce 01 movw r24, r28
+ 192: 61 e4 ldi r22, 0x41 ; 65
+ 194: 71 e0 ldi r23, 0x01 ; 1
+ 196: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 19a: ce 01 movw r24, r28
+ 19c: 6f e4 ldi r22, 0x4F ; 79
+ 19e: 71 e0 ldi r23, 0x01 ; 1
+ 1a0: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 1a4: ce 01 movw r24, r28
+ 1a6: 60 e6 ldi r22, 0x60 ; 96
+ 1a8: 71 e0 ldi r23, 0x01 ; 1
+ 1aa: 0e 94 17 06 call 0xc2e ; 0xc2e <_ZN5Print5printEPKc>
+ 1ae: 0e 94 8f 00 call 0x11e ; 0x11e <_Z9advertisev>
+ 1b2: df 91 pop r29
+ 1b4: cf 91 pop r28
+ 1b6: 08 95 ret
+
+000001b8 <main>:
+ 1b8: 7f 92 push r7
+ 1ba: 8f 92 push r8
+ 1bc: 9f 92 push r9
+ 1be: af 92 push r10
+ 1c0: bf 92 push r11
+ 1c2: cf 92 push r12
+ 1c4: df 92 push r13
+ 1c6: ef 92 push r14
+ 1c8: ff 92 push r15
+ 1ca: 0f 93 push r16
+ 1cc: 1f 93 push r17
+ 1ce: df 93 push r29
+ 1d0: cf 93 push r28
+ 1d2: cd b7 in r28, 0x3d ; 61
+ 1d4: de b7 in r29, 0x3e ; 62
+ 1d6: 27 97 sbiw r28, 0x07 ; 7
+ 1d8: 0f b6 in r0, 0x3f ; 63
+ 1da: f8 94 cli
+ 1dc: de bf out 0x3e, r29 ; 62
+ 1de: 0f be out 0x3f, r0 ; 63
+ 1e0: cd bf out 0x3d, r28 ; 61
+ 1e2: 0e 94 b3 17 call 0x2f66 ; 0x2f66 <init>
+ 1e6: 84 e1 ldi r24, 0x14 ; 20
+ 1e8: 94 e0 ldi r25, 0x04 ; 4
+ 1ea: 0e 94 16 1b call 0x362c ; 0x362c <_ZN7TwoWire5beginEv>
+ 1ee: 85 e0 ldi r24, 0x05 ; 5
+ 1f0: 61 e0 ldi r22, 0x01 ; 1
+ 1f2: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 1f6: 85 e0 ldi r24, 0x05 ; 5
+ 1f8: 60 e0 ldi r22, 0x00 ; 0
+ 1fa: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 1fe: 0e 94 aa 00 call 0x154 ; 0x154 <_Z14setupBlueToothv>
+ 202: 82 e0 ldi r24, 0x02 ; 2
+ 204: 60 e0 ldi r22, 0x00 ; 0
+ 206: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 20a: 86 e0 ldi r24, 0x06 ; 6
+ 20c: 60 e0 ldi r22, 0x00 ; 0
+ 20e: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 212: 8c e0 ldi r24, 0x0C ; 12
+ 214: 61 e0 ldi r22, 0x01 ; 1
+ 216: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 21a: 8d e0 ldi r24, 0x0D ; 13
+ 21c: 61 e0 ldi r22, 0x01 ; 1
+ 21e: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 222: 8d e0 ldi r24, 0x0D ; 13
+ 224: 61 e0 ldi r22, 0x01 ; 1
+ 226: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 22a: 85 e0 ldi r24, 0x05 ; 5
+ 22c: 61 e0 ldi r22, 0x01 ; 1
+ 22e: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 232: 80 91 eb 02 lds r24, 0x02EB
+ 236: 87 95 ror r24
+ 238: 88 27 eor r24, r24
+ 23a: 87 95 ror r24
+ 23c: e0 90 ec 02 lds r14, 0x02EC
+ 240: ee 0c add r14, r14
+ 242: ee 0c add r14, r14
+ 244: ee 0c add r14, r14
+ 246: e8 2a or r14, r24
+ 248: 80 91 ed 02 lds r24, 0x02ED
+ 24c: e8 2a or r14, r24
+ 24e: 80 91 ef 02 lds r24, 0x02EF
+ 252: 82 95 swap r24
+ 254: 88 0f add r24, r24
+ 256: 80 7e andi r24, 0xE0 ; 224
+ 258: 00 91 f0 02 lds r16, 0x02F0
+ 25c: 00 0f add r16, r16
+ 25e: 00 0f add r16, r16
+ 260: 00 0f add r16, r16
+ 262: 08 2b or r16, r24
+ 264: 80 91 ee 02 lds r24, 0x02EE
+ 268: 08 2b or r16, r24
+ 26a: 90 91 f1 02 lds r25, 0x02F1
+ 26e: 97 95 ror r25
+ 270: 99 27 eor r25, r25
+ 272: 97 95 ror r25
+ 274: 80 91 f5 02 lds r24, 0x02F5
+ 278: 82 95 swap r24
+ 27a: 80 7f andi r24, 0xF0 ; 240
+ 27c: 89 2b or r24, r25
+ 27e: 90 91 f7 02 lds r25, 0x02F7
+ 282: 89 2b or r24, r25
+ 284: 90 91 f9 02 lds r25, 0x02F9
+ 288: 99 0f add r25, r25
+ 28a: 99 0f add r25, r25
+ 28c: 99 0f add r25, r25
+ 28e: 98 2b or r25, r24
+ 290: a0 90 f4 02 lds r10, 0x02F4
+ 294: aa 0c add r10, r10
+ 296: a9 2a or r10, r25
+ 298: 90 91 f2 02 lds r25, 0x02F2
+ 29c: 97 95 ror r25
+ 29e: 99 27 eor r25, r25
+ 2a0: 97 95 ror r25
+ 2a2: 80 91 f3 02 lds r24, 0x02F3
+ 2a6: 82 95 swap r24
+ 2a8: 88 0f add r24, r24
+ 2aa: 88 0f add r24, r24
+ 2ac: 80 7c andi r24, 0xC0 ; 192
+ 2ae: 89 2b or r24, r25
+ 2b0: 90 91 f8 02 lds r25, 0x02F8
+ 2b4: 89 2b or r24, r25
+ 2b6: c0 90 f6 02 lds r12, 0x02F6
+ 2ba: cc 0c add r12, r12
+ 2bc: cc 0c add r12, r12
+ 2be: c8 2a or r12, r24
+ 2c0: 84 e1 ldi r24, 0x14 ; 20
+ 2c2: 94 e0 ldi r25, 0x04 ; 4
+ 2c4: 68 ec ldi r22, 0xC8 ; 200
+ 2c6: 70 e0 ldi r23, 0x00 ; 0
+ 2c8: 0e 94 52 1b call 0x36a4 ; 0x36a4 <_ZN7TwoWire17beginTransmissionEi>
+ 2cc: 84 e1 ldi r24, 0x14 ; 20
+ 2ce: 94 e0 ldi r25, 0x04 ; 4
+ 2d0: 6e 2d mov r22, r14
+ 2d2: 0e 94 d6 1a call 0x35ac ; 0x35ac <_ZN7TwoWire5writeEh>
+ 2d6: 84 e1 ldi r24, 0x14 ; 20
+ 2d8: 94 e0 ldi r25, 0x04 ; 4
+ 2da: 60 2f mov r22, r16
+ 2dc: 0e 94 d6 1a call 0x35ac ; 0x35ac <_ZN7TwoWire5writeEh>
+ 2e0: 84 e1 ldi r24, 0x14 ; 20
+ 2e2: 94 e0 ldi r25, 0x04 ; 4
+ 2e4: 6a 2d mov r22, r10
+ 2e6: 0e 94 d6 1a call 0x35ac ; 0x35ac <_ZN7TwoWire5writeEh>
+ 2ea: 84 e1 ldi r24, 0x14 ; 20
+ 2ec: 94 e0 ldi r25, 0x04 ; 4
+ 2ee: 6c 2d mov r22, r12
+ 2f0: 0e 94 d6 1a call 0x35ac ; 0x35ac <_ZN7TwoWire5writeEh>
+ 2f4: 84 e1 ldi r24, 0x14 ; 20
+ 2f6: 94 e0 ldi r25, 0x04 ; 4
+ 2f8: 0e 94 55 1b call 0x36aa ; 0x36aa <_ZN7TwoWire15endTransmissionEv>
+ 2fc: 0a ef ldi r16, 0xFA ; 250
+ 2fe: 10 e0 ldi r17, 0x00 ; 0
+ 300: 6e 01 movw r12, r28
+ 302: 08 94 sec
+ 304: c1 1c adc r12, r1
+ 306: d1 1c adc r13, r1
+ 308: a4 e0 ldi r26, 0x04 ; 4
+ 30a: aa 2e mov r10, r26
+ 30c: b1 2c mov r11, r1
+ 30e: ac 0e add r10, r28
+ 310: bd 1e adc r11, r29
+ 312: f2 e0 ldi r31, 0x02 ; 2
+ 314: 8f 2e mov r8, r31
+ 316: 91 2c mov r9, r1
+ 318: 8c 0e add r8, r28
+ 31a: 9d 1e adc r9, r29
+ 31c: 77 24 eor r7, r7
+ 31e: 73 94 inc r7
+ 320: 84 e1 ldi r24, 0x14 ; 20
+ 322: 94 e0 ldi r25, 0x04 ; 4
+ 324: 69 ec ldi r22, 0xC9 ; 201
+ 326: 70 e0 ldi r23, 0x00 ; 0
+ 328: 0e 94 52 1b call 0x36a4 ; 0x36a4 <_ZN7TwoWire17beginTransmissionEi>
+ 32c: 82 e0 ldi r24, 0x02 ; 2
+ 32e: 0e 94 fb 18 call 0x31f6 ; 0x31f6 <digitalRead>
+ 332: 00 97 sbiw r24, 0x00 ; 0
+ 334: 09 f0 breq .+2 ; 0x338 <main+0x180>
+ 336: a1 c0 rjmp .+322 ; 0x47a <main+0x2c2>
+ 338: e1 ee ldi r30, 0xE1 ; 225
+ 33a: ee 2e mov r14, r30
+ 33c: e2 e0 ldi r30, 0x02 ; 2
+ 33e: fe 2e mov r15, r30
+ 340: 84 e1 ldi r24, 0x14 ; 20
+ 342: 94 e0 ldi r25, 0x04 ; 4
+ 344: 0e 94 4b 1a call 0x3496 ; 0x3496 <_ZN7TwoWire4readEv>
+ 348: f7 01 movw r30, r14
+ 34a: 81 93 st Z+, r24
+ 34c: 7f 01 movw r14, r30
+ 34e: fb ee ldi r31, 0xEB ; 235
+ 350: ef 16 cp r14, r31
+ 352: f2 e0 ldi r31, 0x02 ; 2
+ 354: ff 06 cpc r15, r31
+ 356: a1 f7 brne .-24 ; 0x340 <main+0x188>
+ 358: 84 e1 ldi r24, 0x14 ; 20
+ 35a: 94 e0 ldi r25, 0x04 ; 4
+ 35c: 0e 94 55 1b call 0x36aa ; 0x36aa <_ZN7TwoWire15endTransmissionEv>
+ 360: 80 91 e1 02 lds r24, 0x02E1
+ 364: 89 83 std Y+1, r24 ; 0x01
+ 366: 80 91 e3 02 lds r24, 0x02E3
+ 36a: 90 e0 ldi r25, 0x00 ; 0
+ 36c: a0 e0 ldi r26, 0x00 ; 0
+ 36e: b0 e0 ldi r27, 0x00 ; 0
+ 370: ba 2f mov r27, r26
+ 372: a9 2f mov r26, r25
+ 374: 98 2f mov r25, r24
+ 376: 88 27 eor r24, r24
+ 378: 20 91 e4 02 lds r18, 0x02E4
+ 37c: 30 e0 ldi r19, 0x00 ; 0
+ 37e: 40 e0 ldi r20, 0x00 ; 0
+ 380: 50 e0 ldi r21, 0x00 ; 0
+ 382: 82 2b or r24, r18
+ 384: 93 2b or r25, r19
+ 386: a4 2b or r26, r20
+ 388: b5 2b or r27, r21
+ 38a: 20 91 e2 02 lds r18, 0x02E2
+ 38e: 30 e0 ldi r19, 0x00 ; 0
+ 390: 40 e0 ldi r20, 0x00 ; 0
+ 392: 50 e0 ldi r21, 0x00 ; 0
+ 394: 27 70 andi r18, 0x07 ; 7
+ 396: 30 70 andi r19, 0x00 ; 0
+ 398: 40 70 andi r20, 0x00 ; 0
+ 39a: 50 70 andi r21, 0x00 ; 0
+ 39c: a9 01 movw r20, r18
+ 39e: 33 27 eor r19, r19
+ 3a0: 22 27 eor r18, r18
+ 3a2: 82 2b or r24, r18
+ 3a4: 93 2b or r25, r19
+ 3a6: a4 2b or r26, r20
+ 3a8: b5 2b or r27, r21
+ 3aa: 8c 83 std Y+4, r24 ; 0x04
+ 3ac: 9d 83 std Y+5, r25 ; 0x05
+ 3ae: ae 83 std Y+6, r26 ; 0x06
+ 3b0: bf 83 std Y+7, r27 ; 0x07
+ 3b2: 80 91 e6 02 lds r24, 0x02E6
+ 3b6: 82 95 swap r24
+ 3b8: 86 95 lsr r24
+ 3ba: 86 95 lsr r24
+ 3bc: 83 70 andi r24, 0x03 ; 3
+ 3be: 90 e0 ldi r25, 0x00 ; 0
+ 3c0: 20 91 e5 02 lds r18, 0x02E5
+ 3c4: 30 e0 ldi r19, 0x00 ; 0
+ 3c6: 22 0f add r18, r18
+ 3c8: 33 1f adc r19, r19
+ 3ca: 22 0f add r18, r18
+ 3cc: 33 1f adc r19, r19
+ 3ce: 82 2b or r24, r18
+ 3d0: 93 2b or r25, r19
+ 3d2: 9b 83 std Y+3, r25 ; 0x03
+ 3d4: 8a 83 std Y+2, r24 ; 0x02
+ 3d6: 13 c0 rjmp .+38 ; 0x3fe <main+0x246>
+ 3d8: 82 e8 ldi r24, 0x82 ; 130
+ 3da: 93 e0 ldi r25, 0x03 ; 3
+ 3dc: 0e 94 7a 02 call 0x4f4 ; 0x4f4 <_ZN14HardwareSerial4readEv>
+ 3e0: 82 30 cpi r24, 0x02 ; 2
+ 3e2: 29 f0 breq .+10 ; 0x3ee <main+0x236>
+ 3e4: 83 30 cpi r24, 0x03 ; 3
+ 3e6: 31 f0 breq .+12 ; 0x3f4 <main+0x23c>
+ 3e8: 81 30 cpi r24, 0x01 ; 1
+ 3ea: 49 f4 brne .+18 ; 0x3fe <main+0x246>
+ 3ec: 06 c0 rjmp .+12 ; 0x3fa <main+0x242>
+ 3ee: 0a ef ldi r16, 0xFA ; 250
+ 3f0: 10 e0 ldi r17, 0x00 ; 0
+ 3f2: 05 c0 rjmp .+10 ; 0x3fe <main+0x246>
+ 3f4: 02 e3 ldi r16, 0x32 ; 50
+ 3f6: 10 e0 ldi r17, 0x00 ; 0
+ 3f8: 02 c0 rjmp .+4 ; 0x3fe <main+0x246>
+ 3fa: 08 ee ldi r16, 0xE8 ; 232
+ 3fc: 13 e0 ldi r17, 0x03 ; 3
+ 3fe: 82 e8 ldi r24, 0x82 ; 130
+ 400: 93 e0 ldi r25, 0x03 ; 3
+ 402: 0e 94 4b 02 call 0x496 ; 0x496 <_ZN14HardwareSerial9availableEv>
+ 406: 18 16 cp r1, r24
+ 408: 19 06 cpc r1, r25
+ 40a: 34 f3 brlt .-52 ; 0x3d8 <main+0x220>
+ 40c: 86 e0 ldi r24, 0x06 ; 6
+ 40e: 0e 94 fb 18 call 0x31f6 ; 0x31f6 <digitalRead>
+ 412: 20 91 e0 02 lds r18, 0x02E0
+ 416: 00 97 sbiw r24, 0x00 ; 0
+ 418: 51 f1 breq .+84 ; 0x46e <main+0x2b6>
+ 41a: 22 23 and r18, r18
+ 41c: 11 f4 brne .+4 ; 0x422 <main+0x26a>
+ 41e: 70 92 e0 02 sts 0x02E0, r7
+ 422: 82 e8 ldi r24, 0x82 ; 130
+ 424: 93 e0 ldi r25, 0x03 ; 3
+ 426: 63 e7 ldi r22, 0x73 ; 115
+ 428: 71 e0 ldi r23, 0x01 ; 1
+ 42a: 42 e0 ldi r20, 0x02 ; 2
+ 42c: 50 e0 ldi r21, 0x00 ; 0
+ 42e: 0e 94 86 05 call 0xb0c ; 0xb0c <_ZN5Print5writeEPKhj>
+ 432: 82 e8 ldi r24, 0x82 ; 130
+ 434: 93 e0 ldi r25, 0x03 ; 3
+ 436: 62 e7 ldi r22, 0x72 ; 114
+ 438: 71 e0 ldi r23, 0x01 ; 1
+ 43a: 41 e0 ldi r20, 0x01 ; 1
+ 43c: 50 e0 ldi r21, 0x00 ; 0
+ 43e: 0e 94 86 05 call 0xb0c ; 0xb0c <_ZN5Print5writeEPKhj>
+ 442: 82 e8 ldi r24, 0x82 ; 130
+ 444: 93 e0 ldi r25, 0x03 ; 3
+ 446: b6 01 movw r22, r12
+ 448: 41 e0 ldi r20, 0x01 ; 1
+ 44a: 50 e0 ldi r21, 0x00 ; 0
+ 44c: 0e 94 86 05 call 0xb0c ; 0xb0c <_ZN5Print5writeEPKhj>
+ 450: 82 e8 ldi r24, 0x82 ; 130
+ 452: 93 e0 ldi r25, 0x03 ; 3
+ 454: b5 01 movw r22, r10
+ 456: 44 e0 ldi r20, 0x04 ; 4
+ 458: 50 e0 ldi r21, 0x00 ; 0
+ 45a: 0e 94 86 05 call 0xb0c ; 0xb0c <_ZN5Print5writeEPKhj>
+ 45e: 82 e8 ldi r24, 0x82 ; 130
+ 460: 93 e0 ldi r25, 0x03 ; 3
+ 462: b4 01 movw r22, r8
+ 464: 42 e0 ldi r20, 0x02 ; 2
+ 466: 50 e0 ldi r21, 0x00 ; 0
+ 468: 0e 94 86 05 call 0xb0c ; 0xb0c <_ZN5Print5writeEPKhj>
+ 46c: 06 c0 rjmp .+12 ; 0x47a <main+0x2c2>
+ 46e: 22 23 and r18, r18
+ 470: 21 f0 breq .+8 ; 0x47a <main+0x2c2>
+ 472: 0e 94 8f 00 call 0x11e ; 0x11e <_Z9advertisev>
+ 476: 10 92 e0 02 sts 0x02E0, r1
+ 47a: b8 01 movw r22, r16
+ 47c: 80 e0 ldi r24, 0x00 ; 0
+ 47e: 90 e0 ldi r25, 0x00 ; 0
+ 480: 0e 94 82 17 call 0x2f04 ; 0x2f04 <delay>
+ 484: 8c e0 ldi r24, 0x0C ; 12
+ 486: 60 e0 ldi r22, 0x00 ; 0
+ 488: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 48c: 8d e0 ldi r24, 0x0D ; 13
+ 48e: 60 e0 ldi r22, 0x00 ; 0
+ 490: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 494: 45 cf rjmp .-374 ; 0x320 <main+0x168>
+
+00000496 <_ZN14HardwareSerial9availableEv>:
+ 496: fc 01 movw r30, r24
+ 498: 84 85 ldd r24, Z+12 ; 0x0c
+ 49a: 95 85 ldd r25, Z+13 ; 0x0d
+ 49c: fc 01 movw r30, r24
+ 49e: e0 5c subi r30, 0xC0 ; 192
+ 4a0: ff 4f sbci r31, 0xFF ; 255
+ 4a2: 20 81 ld r18, Z
+ 4a4: 31 81 ldd r19, Z+1 ; 0x01
+ 4a6: 8e 5b subi r24, 0xBE ; 190
+ 4a8: 9f 4f sbci r25, 0xFF ; 255
+ 4aa: fc 01 movw r30, r24
+ 4ac: 80 81 ld r24, Z
+ 4ae: 91 81 ldd r25, Z+1 ; 0x01
+ 4b0: 28 1b sub r18, r24
+ 4b2: 39 0b sbc r19, r25
+ 4b4: 2f 73 andi r18, 0x3F ; 63
+ 4b6: 30 70 andi r19, 0x00 ; 0
+ 4b8: c9 01 movw r24, r18
+ 4ba: 08 95 ret
+
+000004bc <_ZN14HardwareSerial4peekEv>:
+ 4bc: fc 01 movw r30, r24
+ 4be: 84 85 ldd r24, Z+12 ; 0x0c
+ 4c0: 95 85 ldd r25, Z+13 ; 0x0d
+ 4c2: fc 01 movw r30, r24
+ 4c4: e0 5c subi r30, 0xC0 ; 192
+ 4c6: ff 4f sbci r31, 0xFF ; 255
+ 4c8: 40 81 ld r20, Z
+ 4ca: 51 81 ldd r21, Z+1 ; 0x01
+ 4cc: fc 01 movw r30, r24
+ 4ce: ee 5b subi r30, 0xBE ; 190
+ 4d0: ff 4f sbci r31, 0xFF ; 255
+ 4d2: 20 81 ld r18, Z
+ 4d4: 31 81 ldd r19, Z+1 ; 0x01
+ 4d6: 42 17 cp r20, r18
+ 4d8: 53 07 cpc r21, r19
+ 4da: 41 f0 breq .+16 ; 0x4ec <_ZN14HardwareSerial4peekEv+0x30>
+ 4dc: 01 90 ld r0, Z+
+ 4de: f0 81 ld r31, Z
+ 4e0: e0 2d mov r30, r0
+ 4e2: e8 0f add r30, r24
+ 4e4: f9 1f adc r31, r25
+ 4e6: 20 81 ld r18, Z
+ 4e8: 30 e0 ldi r19, 0x00 ; 0
+ 4ea: 02 c0 rjmp .+4 ; 0x4f0 <_ZN14HardwareSerial4peekEv+0x34>
+ 4ec: 2f ef ldi r18, 0xFF ; 255
+ 4ee: 3f ef ldi r19, 0xFF ; 255
+ 4f0: c9 01 movw r24, r18
+ 4f2: 08 95 ret
+
+000004f4 <_ZN14HardwareSerial4readEv>:
+ 4f4: fc 01 movw r30, r24
+ 4f6: 84 85 ldd r24, Z+12 ; 0x0c
+ 4f8: 95 85 ldd r25, Z+13 ; 0x0d
+ 4fa: fc 01 movw r30, r24
+ 4fc: e0 5c subi r30, 0xC0 ; 192
+ 4fe: ff 4f sbci r31, 0xFF ; 255
+ 500: 40 81 ld r20, Z
+ 502: 51 81 ldd r21, Z+1 ; 0x01
+ 504: fc 01 movw r30, r24
+ 506: ee 5b subi r30, 0xBE ; 190
+ 508: ff 4f sbci r31, 0xFF ; 255
+ 50a: 20 81 ld r18, Z
+ 50c: 31 81 ldd r19, Z+1 ; 0x01
+ 50e: 42 17 cp r20, r18
+ 510: 53 07 cpc r21, r19
+ 512: 71 f0 breq .+28 ; 0x530 <_ZN14HardwareSerial4readEv+0x3c>
+ 514: a0 81 ld r26, Z
+ 516: b1 81 ldd r27, Z+1 ; 0x01
+ 518: a8 0f add r26, r24
+ 51a: b9 1f adc r27, r25
+ 51c: 2c 91 ld r18, X
+ 51e: 80 81 ld r24, Z
+ 520: 91 81 ldd r25, Z+1 ; 0x01
+ 522: 01 96 adiw r24, 0x01 ; 1
+ 524: 8f 73 andi r24, 0x3F ; 63
+ 526: 90 70 andi r25, 0x00 ; 0
+ 528: 91 83 std Z+1, r25 ; 0x01
+ 52a: 80 83 st Z, r24
+ 52c: 30 e0 ldi r19, 0x00 ; 0
+ 52e: 02 c0 rjmp .+4 ; 0x534 <_ZN14HardwareSerial4readEv+0x40>
+ 530: 2f ef ldi r18, 0xFF ; 255
+ 532: 3f ef ldi r19, 0xFF ; 255
+ 534: c9 01 movw r24, r18
+ 536: 08 95 ret
+
+00000538 <_ZN14HardwareSerial5flushEv>:
+ 538: dc 01 movw r26, r24
+ 53a: 1e 96 adiw r26, 0x0e ; 14
+ 53c: 8d 91 ld r24, X+
+ 53e: 9c 91 ld r25, X
+ 540: 1f 97 sbiw r26, 0x0f ; 15
+ 542: fc 01 movw r30, r24
+ 544: e0 5c subi r30, 0xC0 ; 192
+ 546: ff 4f sbci r31, 0xFF ; 255
+ 548: 8e 5b subi r24, 0xBE ; 190
+ 54a: 9f 4f sbci r25, 0xFF ; 255
+ 54c: 40 81 ld r20, Z
+ 54e: 51 81 ldd r21, Z+1 ; 0x01
+ 550: dc 01 movw r26, r24
+ 552: 2d 91 ld r18, X+
+ 554: 3c 91 ld r19, X
+ 556: 11 97 sbiw r26, 0x01 ; 1
+ 558: 42 17 cp r20, r18
+ 55a: 53 07 cpc r21, r19
+ 55c: b9 f7 brne .-18 ; 0x54c <_ZN14HardwareSerial5flushEv+0x14>
+ 55e: 08 95 ret
+
+00000560 <_ZN14HardwareSerial5writeEh>:
+ 560: 1f 93 push r17
+ 562: fc 01 movw r30, r24
+ 564: 16 2f mov r17, r22
+ 566: 26 85 ldd r18, Z+14 ; 0x0e
+ 568: 37 85 ldd r19, Z+15 ; 0x0f
+ 56a: d9 01 movw r26, r18
+ 56c: a0 5c subi r26, 0xC0 ; 192
+ 56e: bf 4f sbci r27, 0xFF ; 255
+ 570: 8d 91 ld r24, X+
+ 572: 9c 91 ld r25, X
+ 574: 01 96 adiw r24, 0x01 ; 1
+ 576: 60 e4 ldi r22, 0x40 ; 64
+ 578: 70 e0 ldi r23, 0x00 ; 0
+ 57a: 0e 94 ba 24 call 0x4974 ; 0x4974 <__divmodhi4>
+ 57e: d9 01 movw r26, r18
+ 580: ae 5b subi r26, 0xBE ; 190
+ 582: bf 4f sbci r27, 0xFF ; 255
+ 584: 4d 91 ld r20, X+
+ 586: 5c 91 ld r21, X
+ 588: 11 97 sbiw r26, 0x01 ; 1
+ 58a: 84 17 cp r24, r20
+ 58c: 95 07 cpc r25, r21
+ 58e: d1 f3 breq .-12 ; 0x584 <_ZN14HardwareSerial5writeEh+0x24>
+ 590: d9 01 movw r26, r18
+ 592: a0 5c subi r26, 0xC0 ; 192
+ 594: bf 4f sbci r27, 0xFF ; 255
+ 596: 0d 90 ld r0, X+
+ 598: bc 91 ld r27, X
+ 59a: a0 2d mov r26, r0
+ 59c: a2 0f add r26, r18
+ 59e: b3 1f adc r27, r19
+ 5a0: 1c 93 st X, r17
+ 5a2: a6 85 ldd r26, Z+14 ; 0x0e
+ 5a4: b7 85 ldd r27, Z+15 ; 0x0f
+ 5a6: a0 5c subi r26, 0xC0 ; 192
+ 5a8: bf 4f sbci r27, 0xFF ; 255
+ 5aa: 11 96 adiw r26, 0x01 ; 1
+ 5ac: 9c 93 st X, r25
+ 5ae: 8e 93 st -X, r24
+ 5b0: a6 89 ldd r26, Z+22 ; 0x16
+ 5b2: b7 89 ldd r27, Z+23 ; 0x17
+ 5b4: 2c 91 ld r18, X
+ 5b6: 81 e0 ldi r24, 0x01 ; 1
+ 5b8: 90 e0 ldi r25, 0x00 ; 0
+ 5ba: 05 8c ldd r0, Z+29 ; 0x1d
+ 5bc: 02 c0 rjmp .+4 ; 0x5c2 <_ZN14HardwareSerial5writeEh+0x62>
+ 5be: 88 0f add r24, r24
+ 5c0: 99 1f adc r25, r25
+ 5c2: 0a 94 dec r0
+ 5c4: e2 f7 brpl .-8 ; 0x5be <_ZN14HardwareSerial5writeEh+0x5e>
+ 5c6: 28 2b or r18, r24
+ 5c8: 2c 93 st X, r18
+ 5ca: 81 e0 ldi r24, 0x01 ; 1
+ 5cc: 90 e0 ldi r25, 0x00 ; 0
+ 5ce: 1f 91 pop r17
+ 5d0: 08 95 ret
+
+000005d2 <_Z10store_charhP11ring_buffer>:
+ 5d2: fb 01 movw r30, r22
+ 5d4: e0 5c subi r30, 0xC0 ; 192
+ 5d6: ff 4f sbci r31, 0xFF ; 255
+ 5d8: 20 81 ld r18, Z
+ 5da: 31 81 ldd r19, Z+1 ; 0x01
+ 5dc: 2f 5f subi r18, 0xFF ; 255
+ 5de: 3f 4f sbci r19, 0xFF ; 255
+ 5e0: 2f 73 andi r18, 0x3F ; 63
+ 5e2: 30 70 andi r19, 0x00 ; 0
+ 5e4: db 01 movw r26, r22
+ 5e6: ae 5b subi r26, 0xBE ; 190
+ 5e8: bf 4f sbci r27, 0xFF ; 255
+ 5ea: 4d 91 ld r20, X+
+ 5ec: 5c 91 ld r21, X
+ 5ee: 11 97 sbiw r26, 0x01 ; 1
+ 5f0: 24 17 cp r18, r20
+ 5f2: 35 07 cpc r19, r21
+ 5f4: 39 f0 breq .+14 ; 0x604 <_Z10store_charhP11ring_buffer+0x32>
+ 5f6: a0 81 ld r26, Z
+ 5f8: b1 81 ldd r27, Z+1 ; 0x01
+ 5fa: a6 0f add r26, r22
+ 5fc: b7 1f adc r27, r23
+ 5fe: 8c 93 st X, r24
+ 600: 31 83 std Z+1, r19 ; 0x01
+ 602: 20 83 st Z, r18
+ 604: 08 95 ret
+
+00000606 <_Z11serialEventv>:
+ 606: 08 95 ret
+
+00000608 <__vector_18>:
+ 608: 1f 92 push r1
+ 60a: 0f 92 push r0
+ 60c: 0f b6 in r0, 0x3f ; 63
+ 60e: 0f 92 push r0
+ 610: 11 24 eor r1, r1
+ 612: 2f 93 push r18
+ 614: 3f 93 push r19
+ 616: 4f 93 push r20
+ 618: 5f 93 push r21
+ 61a: 6f 93 push r22
+ 61c: 7f 93 push r23
+ 61e: 8f 93 push r24
+ 620: 9f 93 push r25
+ 622: af 93 push r26
+ 624: bf 93 push r27
+ 626: ef 93 push r30
+ 628: ff 93 push r31
+ 62a: 80 91 c6 00 lds r24, 0x00C6
+ 62e: 6a ef ldi r22, 0xFA ; 250
+ 630: 72 e0 ldi r23, 0x02 ; 2
+ 632: 0e 94 e9 02 call 0x5d2 ; 0x5d2 <_Z10store_charhP11ring_buffer>
+ 636: ff 91 pop r31
+ 638: ef 91 pop r30
+ 63a: bf 91 pop r27
+ 63c: af 91 pop r26
+ 63e: 9f 91 pop r25
+ 640: 8f 91 pop r24
+ 642: 7f 91 pop r23
+ 644: 6f 91 pop r22
+ 646: 5f 91 pop r21
+ 648: 4f 91 pop r20
+ 64a: 3f 91 pop r19
+ 64c: 2f 91 pop r18
+ 64e: 0f 90 pop r0
+ 650: 0f be out 0x3f, r0 ; 63
+ 652: 0f 90 pop r0
+ 654: 1f 90 pop r1
+ 656: 18 95 reti
+
+00000658 <_Z14serialEventRunv>:
+ 658: 82 e8 ldi r24, 0x82 ; 130
+ 65a: 93 e0 ldi r25, 0x03 ; 3
+ 65c: 0e 94 4b 02 call 0x496 ; 0x496 <_ZN14HardwareSerial9availableEv>
+ 660: 00 97 sbiw r24, 0x00 ; 0
+ 662: 11 f0 breq .+4 ; 0x668 <_Z14serialEventRunv+0x10>
+ 664: 0e 94 03 03 call 0x606 ; 0x606 <_Z11serialEventv>
+ 668: 08 95 ret
+
+0000066a <__vector_19>:
+ 66a: 1f 92 push r1
+ 66c: 0f 92 push r0
+ 66e: 0f b6 in r0, 0x3f ; 63
+ 670: 0f 92 push r0
+ 672: 11 24 eor r1, r1
+ 674: 2f 93 push r18
+ 676: 3f 93 push r19
+ 678: 5f 93 push r21
+ 67a: 6f 93 push r22
+ 67c: 7f 93 push r23
+ 67e: 8f 93 push r24
+ 680: 9f 93 push r25
+ 682: af 93 push r26
+ 684: bf 93 push r27
+ 686: ef 93 push r30
+ 688: ff 93 push r31
+ 68a: 20 91 7e 03 lds r18, 0x037E
+ 68e: 30 91 7f 03 lds r19, 0x037F
+ 692: 80 91 80 03 lds r24, 0x0380
+ 696: 90 91 81 03 lds r25, 0x0381
+ 69a: 28 17 cp r18, r24
+ 69c: 39 07 cpc r19, r25
+ 69e: 31 f4 brne .+12 ; 0x6ac <__vector_19+0x42>
+ 6a0: 80 91 c1 00 lds r24, 0x00C1
+ 6a4: 8f 7d andi r24, 0xDF ; 223
+ 6a6: 80 93 c1 00 sts 0x00C1, r24
+ 6aa: 16 c0 rjmp .+44 ; 0x6d8 <__vector_19+0x6e>
+ 6ac: e0 91 80 03 lds r30, 0x0380
+ 6b0: f0 91 81 03 lds r31, 0x0381
+ 6b4: e2 5c subi r30, 0xC2 ; 194
+ 6b6: fc 4f sbci r31, 0xFC ; 252
+ 6b8: 20 81 ld r18, Z
+ 6ba: 80 91 80 03 lds r24, 0x0380
+ 6be: 90 91 81 03 lds r25, 0x0381
+ 6c2: 01 96 adiw r24, 0x01 ; 1
+ 6c4: 60 e4 ldi r22, 0x40 ; 64
+ 6c6: 70 e0 ldi r23, 0x00 ; 0
+ 6c8: 0e 94 ba 24 call 0x4974 ; 0x4974 <__divmodhi4>
+ 6cc: 90 93 81 03 sts 0x0381, r25
+ 6d0: 80 93 80 03 sts 0x0380, r24
+ 6d4: 20 93 c6 00 sts 0x00C6, r18
+ 6d8: ff 91 pop r31
+ 6da: ef 91 pop r30
+ 6dc: bf 91 pop r27
+ 6de: af 91 pop r26
+ 6e0: 9f 91 pop r25
+ 6e2: 8f 91 pop r24
+ 6e4: 7f 91 pop r23
+ 6e6: 6f 91 pop r22
+ 6e8: 5f 91 pop r21
+ 6ea: 3f 91 pop r19
+ 6ec: 2f 91 pop r18
+ 6ee: 0f 90 pop r0
+ 6f0: 0f be out 0x3f, r0 ; 63
+ 6f2: 0f 90 pop r0
+ 6f4: 1f 90 pop r1
+ 6f6: 18 95 reti
+
+000006f8 <_ZN14HardwareSerialC1EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh>:
+ 6f8: 8f 92 push r8
+ 6fa: af 92 push r10
+ 6fc: bf 92 push r11
+ 6fe: cf 92 push r12
+ 700: df 92 push r13
+ 702: ef 92 push r14
+ 704: ff 92 push r15
+ 706: 0f 93 push r16
+ 708: 1f 93 push r17
+ 70a: df 93 push r29
+ 70c: cf 93 push r28
+ 70e: cd b7 in r28, 0x3d ; 61
+ 710: de b7 in r29, 0x3e ; 62
+ 712: fc 01 movw r30, r24
+ 714: 13 82 std Z+3, r1 ; 0x03
+ 716: 12 82 std Z+2, r1 ; 0x02
+ 718: 88 ee ldi r24, 0xE8 ; 232
+ 71a: 93 e0 ldi r25, 0x03 ; 3
+ 71c: a0 e0 ldi r26, 0x00 ; 0
+ 71e: b0 e0 ldi r27, 0x00 ; 0
+ 720: 84 83 std Z+4, r24 ; 0x04
+ 722: 95 83 std Z+5, r25 ; 0x05
+ 724: a6 83 std Z+6, r26 ; 0x06
+ 726: b7 83 std Z+7, r27 ; 0x07
+ 728: 89 e7 ldi r24, 0x79 ; 121
+ 72a: 91 e0 ldi r25, 0x01 ; 1
+ 72c: 91 83 std Z+1, r25 ; 0x01
+ 72e: 80 83 st Z, r24
+ 730: 75 87 std Z+13, r23 ; 0x0d
+ 732: 64 87 std Z+12, r22 ; 0x0c
+ 734: 57 87 std Z+15, r21 ; 0x0f
+ 736: 46 87 std Z+14, r20 ; 0x0e
+ 738: 31 8b std Z+17, r19 ; 0x11
+ 73a: 20 8b std Z+16, r18 ; 0x10
+ 73c: 13 8b std Z+19, r17 ; 0x13
+ 73e: 02 8b std Z+18, r16 ; 0x12
+ 740: f5 8a std Z+21, r15 ; 0x15
+ 742: e4 8a std Z+20, r14 ; 0x14
+ 744: d7 8a std Z+23, r13 ; 0x17
+ 746: c6 8a std Z+22, r12 ; 0x16
+ 748: b1 8e std Z+25, r11 ; 0x19
+ 74a: a0 8e std Z+24, r10 ; 0x18
+ 74c: 82 8e std Z+26, r8 ; 0x1a
+ 74e: 8e 85 ldd r24, Y+14 ; 0x0e
+ 750: 83 8f std Z+27, r24 ; 0x1b
+ 752: 8f 85 ldd r24, Y+15 ; 0x0f
+ 754: 84 8f std Z+28, r24 ; 0x1c
+ 756: 88 89 ldd r24, Y+16 ; 0x10
+ 758: 85 8f std Z+29, r24 ; 0x1d
+ 75a: 89 89 ldd r24, Y+17 ; 0x11
+ 75c: 86 8f std Z+30, r24 ; 0x1e
+ 75e: cf 91 pop r28
+ 760: df 91 pop r29
+ 762: 1f 91 pop r17
+ 764: 0f 91 pop r16
+ 766: ff 90 pop r15
+ 768: ef 90 pop r14
+ 76a: df 90 pop r13
+ 76c: cf 90 pop r12
+ 76e: bf 90 pop r11
+ 770: af 90 pop r10
+ 772: 8f 90 pop r8
+ 774: 08 95 ret
+
+00000776 <_ZN14HardwareSerial5beginEm>:
+ 776: 9f 92 push r9
+ 778: af 92 push r10
+ 77a: bf 92 push r11
+ 77c: cf 92 push r12
+ 77e: df 92 push r13
+ 780: ef 92 push r14
+ 782: ff 92 push r15
+ 784: 0f 93 push r16
+ 786: 1f 93 push r17
+ 788: cf 93 push r28
+ 78a: df 93 push r29
+ 78c: ec 01 movw r28, r24
+ 78e: 7a 01 movw r14, r20
+ 790: 8b 01 movw r16, r22
+ 792: 99 24 eor r9, r9
+ 794: 93 94 inc r9
+ 796: ec 89 ldd r30, Y+20 ; 0x14
+ 798: fd 89 ldd r31, Y+21 ; 0x15
+ 79a: 81 e0 ldi r24, 0x01 ; 1
+ 79c: 90 e0 ldi r25, 0x00 ; 0
+ 79e: 0e 8c ldd r0, Y+30 ; 0x1e
+ 7a0: 02 c0 rjmp .+4 ; 0x7a6 <_ZN14HardwareSerial5beginEm+0x30>
+ 7a2: 88 0f add r24, r24
+ 7a4: 99 1f adc r25, r25
+ 7a6: 0a 94 dec r0
+ 7a8: e2 f7 brpl .-8 ; 0x7a2 <_ZN14HardwareSerial5beginEm+0x2c>
+ 7aa: 80 83 st Z, r24
+ 7ac: 60 e8 ldi r22, 0x80 ; 128
+ 7ae: 74 e8 ldi r23, 0x84 ; 132
+ 7b0: 8e e1 ldi r24, 0x1E ; 30
+ 7b2: 90 e0 ldi r25, 0x00 ; 0
+ 7b4: a8 01 movw r20, r16
+ 7b6: 97 01 movw r18, r14
+ 7b8: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 7bc: 21 50 subi r18, 0x01 ; 1
+ 7be: 30 40 sbci r19, 0x00 ; 0
+ 7c0: 40 40 sbci r20, 0x00 ; 0
+ 7c2: 50 40 sbci r21, 0x00 ; 0
+ 7c4: 56 95 lsr r21
+ 7c6: 47 95 ror r20
+ 7c8: 37 95 ror r19
+ 7ca: 27 95 ror r18
+ 7cc: 90 e4 ldi r25, 0x40 ; 64
+ 7ce: a9 2e mov r10, r25
+ 7d0: 92 e4 ldi r25, 0x42 ; 66
+ 7d2: b9 2e mov r11, r25
+ 7d4: 9f e0 ldi r25, 0x0F ; 15
+ 7d6: c9 2e mov r12, r25
+ 7d8: d1 2c mov r13, r1
+ 7da: 12 c0 rjmp .+36 ; 0x800 <_ZN14HardwareSerial5beginEm+0x8a>
+ 7dc: 99 24 eor r9, r9
+ 7de: ec 89 ldd r30, Y+20 ; 0x14
+ 7e0: fd 89 ldd r31, Y+21 ; 0x15
+ 7e2: 10 82 st Z, r1
+ 7e4: c6 01 movw r24, r12
+ 7e6: b5 01 movw r22, r10
+ 7e8: a8 01 movw r20, r16
+ 7ea: 97 01 movw r18, r14
+ 7ec: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 7f0: 21 50 subi r18, 0x01 ; 1
+ 7f2: 30 40 sbci r19, 0x00 ; 0
+ 7f4: 40 40 sbci r20, 0x00 ; 0
+ 7f6: 50 40 sbci r21, 0x00 ; 0
+ 7f8: 56 95 lsr r21
+ 7fa: 47 95 ror r20
+ 7fc: 37 95 ror r19
+ 7fe: 27 95 ror r18
+ 800: 80 e1 ldi r24, 0x10 ; 16
+ 802: 20 30 cpi r18, 0x00 ; 0
+ 804: 38 07 cpc r19, r24
+ 806: 10 f0 brcs .+4 ; 0x80c <_ZN14HardwareSerial5beginEm+0x96>
+ 808: 99 20 and r9, r9
+ 80a: 41 f7 brne .-48 ; 0x7dc <_ZN14HardwareSerial5beginEm+0x66>
+ 80c: e8 89 ldd r30, Y+16 ; 0x10
+ 80e: f9 89 ldd r31, Y+17 ; 0x11
+ 810: 30 83 st Z, r19
+ 812: ea 89 ldd r30, Y+18 ; 0x12
+ 814: fb 89 ldd r31, Y+19 ; 0x13
+ 816: 20 83 st Z, r18
+ 818: ee 89 ldd r30, Y+22 ; 0x16
+ 81a: ff 89 ldd r31, Y+23 ; 0x17
+ 81c: 40 81 ld r20, Z
+ 81e: 81 e0 ldi r24, 0x01 ; 1
+ 820: 90 e0 ldi r25, 0x00 ; 0
+ 822: 9c 01 movw r18, r24
+ 824: 0a 8c ldd r0, Y+26 ; 0x1a
+ 826: 02 c0 rjmp .+4 ; 0x82c <_ZN14HardwareSerial5beginEm+0xb6>
+ 828: 22 0f add r18, r18
+ 82a: 33 1f adc r19, r19
+ 82c: 0a 94 dec r0
+ 82e: e2 f7 brpl .-8 ; 0x828 <_ZN14HardwareSerial5beginEm+0xb2>
+ 830: 42 2b or r20, r18
+ 832: 40 83 st Z, r20
+ 834: ee 89 ldd r30, Y+22 ; 0x16
+ 836: ff 89 ldd r31, Y+23 ; 0x17
+ 838: 40 81 ld r20, Z
+ 83a: 9c 01 movw r18, r24
+ 83c: 0b 8c ldd r0, Y+27 ; 0x1b
+ 83e: 02 c0 rjmp .+4 ; 0x844 <_ZN14HardwareSerial5beginEm+0xce>
+ 840: 22 0f add r18, r18
+ 842: 33 1f adc r19, r19
+ 844: 0a 94 dec r0
+ 846: e2 f7 brpl .-8 ; 0x840 <_ZN14HardwareSerial5beginEm+0xca>
+ 848: 42 2b or r20, r18
+ 84a: 40 83 st Z, r20
+ 84c: ee 89 ldd r30, Y+22 ; 0x16
+ 84e: ff 89 ldd r31, Y+23 ; 0x17
+ 850: 40 81 ld r20, Z
+ 852: 9c 01 movw r18, r24
+ 854: 0c 8c ldd r0, Y+28 ; 0x1c
+ 856: 02 c0 rjmp .+4 ; 0x85c <_ZN14HardwareSerial5beginEm+0xe6>
+ 858: 22 0f add r18, r18
+ 85a: 33 1f adc r19, r19
+ 85c: 0a 94 dec r0
+ 85e: e2 f7 brpl .-8 ; 0x858 <_ZN14HardwareSerial5beginEm+0xe2>
+ 860: 42 2b or r20, r18
+ 862: 40 83 st Z, r20
+ 864: ee 89 ldd r30, Y+22 ; 0x16
+ 866: ff 89 ldd r31, Y+23 ; 0x17
+ 868: 20 81 ld r18, Z
+ 86a: 0d 8c ldd r0, Y+29 ; 0x1d
+ 86c: 02 c0 rjmp .+4 ; 0x872 <_ZN14HardwareSerial5beginEm+0xfc>
+ 86e: 88 0f add r24, r24
+ 870: 99 1f adc r25, r25
+ 872: 0a 94 dec r0
+ 874: e2 f7 brpl .-8 ; 0x86e <_ZN14HardwareSerial5beginEm+0xf8>
+ 876: 80 95 com r24
+ 878: 82 23 and r24, r18
+ 87a: 80 83 st Z, r24
+ 87c: df 91 pop r29
+ 87e: cf 91 pop r28
+ 880: 1f 91 pop r17
+ 882: 0f 91 pop r16
+ 884: ff 90 pop r15
+ 886: ef 90 pop r14
+ 888: df 90 pop r13
+ 88a: cf 90 pop r12
+ 88c: bf 90 pop r11
+ 88e: af 90 pop r10
+ 890: 9f 90 pop r9
+ 892: 08 95 ret
+
+00000894 <_ZN14HardwareSerial3endEv>:
+ 894: cf 93 push r28
+ 896: df 93 push r29
+ 898: fc 01 movw r30, r24
+ 89a: 86 85 ldd r24, Z+14 ; 0x0e
+ 89c: 97 85 ldd r25, Z+15 ; 0x0f
+ 89e: dc 01 movw r26, r24
+ 8a0: a0 5c subi r26, 0xC0 ; 192
+ 8a2: bf 4f sbci r27, 0xFF ; 255
+ 8a4: 8e 5b subi r24, 0xBE ; 190
+ 8a6: 9f 4f sbci r25, 0xFF ; 255
+ 8a8: 4d 91 ld r20, X+
+ 8aa: 5c 91 ld r21, X
+ 8ac: 11 97 sbiw r26, 0x01 ; 1
+ 8ae: ec 01 movw r28, r24
+ 8b0: 28 81 ld r18, Y
+ 8b2: 39 81 ldd r19, Y+1 ; 0x01
+ 8b4: 42 17 cp r20, r18
+ 8b6: 53 07 cpc r21, r19
+ 8b8: b9 f7 brne .-18 ; 0x8a8 <_ZN14HardwareSerial3endEv+0x14>
+ 8ba: a6 89 ldd r26, Z+22 ; 0x16
+ 8bc: b7 89 ldd r27, Z+23 ; 0x17
+ 8be: 4c 91 ld r20, X
+ 8c0: 81 e0 ldi r24, 0x01 ; 1
+ 8c2: 90 e0 ldi r25, 0x00 ; 0
+ 8c4: 9c 01 movw r18, r24
+ 8c6: 02 8c ldd r0, Z+26 ; 0x1a
+ 8c8: 02 c0 rjmp .+4 ; 0x8ce <_ZN14HardwareSerial3endEv+0x3a>
+ 8ca: 22 0f add r18, r18
+ 8cc: 33 1f adc r19, r19
+ 8ce: 0a 94 dec r0
+ 8d0: e2 f7 brpl .-8 ; 0x8ca <_ZN14HardwareSerial3endEv+0x36>
+ 8d2: 20 95 com r18
+ 8d4: 24 23 and r18, r20
+ 8d6: 2c 93 st X, r18
+ 8d8: a6 89 ldd r26, Z+22 ; 0x16
+ 8da: b7 89 ldd r27, Z+23 ; 0x17
+ 8dc: 4c 91 ld r20, X
+ 8de: 9c 01 movw r18, r24
+ 8e0: 03 8c ldd r0, Z+27 ; 0x1b
+ 8e2: 02 c0 rjmp .+4 ; 0x8e8 <_ZN14HardwareSerial3endEv+0x54>
+ 8e4: 22 0f add r18, r18
+ 8e6: 33 1f adc r19, r19
+ 8e8: 0a 94 dec r0
+ 8ea: e2 f7 brpl .-8 ; 0x8e4 <_ZN14HardwareSerial3endEv+0x50>
+ 8ec: 20 95 com r18
+ 8ee: 24 23 and r18, r20
+ 8f0: 2c 93 st X, r18
+ 8f2: a6 89 ldd r26, Z+22 ; 0x16
+ 8f4: b7 89 ldd r27, Z+23 ; 0x17
+ 8f6: 4c 91 ld r20, X
+ 8f8: 9c 01 movw r18, r24
+ 8fa: 04 8c ldd r0, Z+28 ; 0x1c
+ 8fc: 02 c0 rjmp .+4 ; 0x902 <__stack+0x3>
+ 8fe: 22 0f add r18, r18
+ 900: 33 1f adc r19, r19
+ 902: 0a 94 dec r0
+ 904: e2 f7 brpl .-8 ; 0x8fe <_ZN14HardwareSerial3endEv+0x6a>
+ 906: 20 95 com r18
+ 908: 24 23 and r18, r20
+ 90a: 2c 93 st X, r18
+ 90c: a6 89 ldd r26, Z+22 ; 0x16
+ 90e: b7 89 ldd r27, Z+23 ; 0x17
+ 910: 2c 91 ld r18, X
+ 912: 05 8c ldd r0, Z+29 ; 0x1d
+ 914: 02 c0 rjmp .+4 ; 0x91a <__stack+0x1b>
+ 916: 88 0f add r24, r24
+ 918: 99 1f adc r25, r25
+ 91a: 0a 94 dec r0
+ 91c: e2 f7 brpl .-8 ; 0x916 <__stack+0x17>
+ 91e: 80 95 com r24
+ 920: 82 23 and r24, r18
+ 922: 8c 93 st X, r24
+ 924: 84 85 ldd r24, Z+12 ; 0x0c
+ 926: 95 85 ldd r25, Z+13 ; 0x0d
+ 928: fc 01 movw r30, r24
+ 92a: ee 5b subi r30, 0xBE ; 190
+ 92c: ff 4f sbci r31, 0xFF ; 255
+ 92e: 20 81 ld r18, Z
+ 930: 31 81 ldd r19, Z+1 ; 0x01
+ 932: 80 5c subi r24, 0xC0 ; 192
+ 934: 9f 4f sbci r25, 0xFF ; 255
+ 936: fc 01 movw r30, r24
+ 938: 31 83 std Z+1, r19 ; 0x01
+ 93a: 20 83 st Z, r18
+ 93c: df 91 pop r29
+ 93e: cf 91 pop r28
+ 940: 08 95 ret
+
+00000942 <_GLOBAL__I_rx_buffer>:
+ 942: 10 92 85 03 sts 0x0385, r1
+ 946: 10 92 84 03 sts 0x0384, r1
+ 94a: 88 ee ldi r24, 0xE8 ; 232
+ 94c: 93 e0 ldi r25, 0x03 ; 3
+ 94e: a0 e0 ldi r26, 0x00 ; 0
+ 950: b0 e0 ldi r27, 0x00 ; 0
+ 952: 80 93 86 03 sts 0x0386, r24
+ 956: 90 93 87 03 sts 0x0387, r25
+ 95a: a0 93 88 03 sts 0x0388, r26
+ 95e: b0 93 89 03 sts 0x0389, r27
+ 962: e4 e8 ldi r30, 0x84 ; 132
+ 964: f3 e0 ldi r31, 0x03 ; 3
+ 966: 89 e7 ldi r24, 0x79 ; 121
+ 968: 91 e0 ldi r25, 0x01 ; 1
+ 96a: 92 93 st -Z, r25
+ 96c: 82 93 st -Z, r24
+ 96e: 8a ef ldi r24, 0xFA ; 250
+ 970: 92 e0 ldi r25, 0x02 ; 2
+ 972: 95 87 std Z+13, r25 ; 0x0d
+ 974: 84 87 std Z+12, r24 ; 0x0c
+ 976: 8e e3 ldi r24, 0x3E ; 62
+ 978: 93 e0 ldi r25, 0x03 ; 3
+ 97a: 97 87 std Z+15, r25 ; 0x0f
+ 97c: 86 87 std Z+14, r24 ; 0x0e
+ 97e: 85 ec ldi r24, 0xC5 ; 197
+ 980: 90 e0 ldi r25, 0x00 ; 0
+ 982: 91 8b std Z+17, r25 ; 0x11
+ 984: 80 8b std Z+16, r24 ; 0x10
+ 986: 84 ec ldi r24, 0xC4 ; 196
+ 988: 90 e0 ldi r25, 0x00 ; 0
+ 98a: 93 8b std Z+19, r25 ; 0x13
+ 98c: 82 8b std Z+18, r24 ; 0x12
+ 98e: 80 ec ldi r24, 0xC0 ; 192
+ 990: 90 e0 ldi r25, 0x00 ; 0
+ 992: 95 8b std Z+21, r25 ; 0x15
+ 994: 84 8b std Z+20, r24 ; 0x14
+ 996: 81 ec ldi r24, 0xC1 ; 193
+ 998: 90 e0 ldi r25, 0x00 ; 0
+ 99a: 97 8b std Z+23, r25 ; 0x17
+ 99c: 86 8b std Z+22, r24 ; 0x16
+ 99e: 86 ec ldi r24, 0xC6 ; 198
+ 9a0: 90 e0 ldi r25, 0x00 ; 0
+ 9a2: 91 8f std Z+25, r25 ; 0x19
+ 9a4: 80 8f std Z+24, r24 ; 0x18
+ 9a6: 84 e0 ldi r24, 0x04 ; 4
+ 9a8: 82 8f std Z+26, r24 ; 0x1a
+ 9aa: 83 e0 ldi r24, 0x03 ; 3
+ 9ac: 83 8f std Z+27, r24 ; 0x1b
+ 9ae: 87 e0 ldi r24, 0x07 ; 7
+ 9b0: 84 8f std Z+28, r24 ; 0x1c
+ 9b2: 85 e0 ldi r24, 0x05 ; 5
+ 9b4: 85 8f std Z+29, r24 ; 0x1d
+ 9b6: 81 e0 ldi r24, 0x01 ; 1
+ 9b8: 86 8f std Z+30, r24 ; 0x1e
+ 9ba: 08 95 ret
+
+000009bc <_ZNK9IPAddress7printToER5Print>:
+ 9bc: 8f 92 push r8
+ 9be: 9f 92 push r9
+ 9c0: af 92 push r10
+ 9c2: bf 92 push r11
+ 9c4: cf 92 push r12
+ 9c6: df 92 push r13
+ 9c8: ef 92 push r14
+ 9ca: ff 92 push r15
+ 9cc: 0f 93 push r16
+ 9ce: 1f 93 push r17
+ 9d0: cf 93 push r28
+ 9d2: df 93 push r29
+ 9d4: 4c 01 movw r8, r24
+ 9d6: 7b 01 movw r14, r22
+ 9d8: 82 e0 ldi r24, 0x02 ; 2
+ 9da: a8 2e mov r10, r24
+ 9dc: b1 2c mov r11, r1
+ 9de: a8 0c add r10, r8
+ 9e0: b9 1c adc r11, r9
+ 9e2: c0 e0 ldi r28, 0x00 ; 0
+ 9e4: d0 e0 ldi r29, 0x00 ; 0
+ 9e6: cc 24 eor r12, r12
+ 9e8: dd 24 eor r13, r13
+ 9ea: f5 01 movw r30, r10
+ 9ec: 61 91 ld r22, Z+
+ 9ee: 5f 01 movw r10, r30
+ 9f0: c7 01 movw r24, r14
+ 9f2: 4a e0 ldi r20, 0x0A ; 10
+ 9f4: 50 e0 ldi r21, 0x00 ; 0
+ 9f6: 0e 94 3b 07 call 0xe76 ; 0xe76 <_ZN5Print5printEhi>
+ 9fa: 8c 01 movw r16, r24
+ 9fc: c7 01 movw r24, r14
+ 9fe: 6e e2 ldi r22, 0x2E ; 46
+ a00: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ a04: 08 0f add r16, r24
+ a06: 19 1f adc r17, r25
+ a08: c0 0e add r12, r16
+ a0a: d1 1e adc r13, r17
+ a0c: 21 96 adiw r28, 0x01 ; 1
+ a0e: c3 30 cpi r28, 0x03 ; 3
+ a10: d1 05 cpc r29, r1
+ a12: 59 f7 brne .-42 ; 0x9ea <_ZNK9IPAddress7printToER5Print+0x2e>
+ a14: c7 01 movw r24, r14
+ a16: f4 01 movw r30, r8
+ a18: 65 81 ldd r22, Z+5 ; 0x05
+ a1a: 4a e0 ldi r20, 0x0A ; 10
+ a1c: 50 e0 ldi r21, 0x00 ; 0
+ a1e: 0e 94 3b 07 call 0xe76 ; 0xe76 <_ZN5Print5printEhi>
+ a22: c8 0e add r12, r24
+ a24: d9 1e adc r13, r25
+ a26: c6 01 movw r24, r12
+ a28: df 91 pop r29
+ a2a: cf 91 pop r28
+ a2c: 1f 91 pop r17
+ a2e: 0f 91 pop r16
+ a30: ff 90 pop r15
+ a32: ef 90 pop r14
+ a34: df 90 pop r13
+ a36: cf 90 pop r12
+ a38: bf 90 pop r11
+ a3a: af 90 pop r10
+ a3c: 9f 90 pop r9
+ a3e: 8f 90 pop r8
+ a40: 08 95 ret
+
+00000a42 <_ZN9IPAddressC1Ev>:
+ a42: fc 01 movw r30, r24
+ a44: 89 e9 ldi r24, 0x99 ; 153
+ a46: 91 e0 ldi r25, 0x01 ; 1
+ a48: 91 83 std Z+1, r25 ; 0x01
+ a4a: 80 83 st Z, r24
+ a4c: 12 82 std Z+2, r1 ; 0x02
+ a4e: 13 82 std Z+3, r1 ; 0x03
+ a50: 14 82 std Z+4, r1 ; 0x04
+ a52: 15 82 std Z+5, r1 ; 0x05
+ a54: 08 95 ret
+
+00000a56 <_ZN9IPAddressC1Ehhhh>:
+ a56: 0f 93 push r16
+ a58: fc 01 movw r30, r24
+ a5a: 89 e9 ldi r24, 0x99 ; 153
+ a5c: 91 e0 ldi r25, 0x01 ; 1
+ a5e: 91 83 std Z+1, r25 ; 0x01
+ a60: 80 83 st Z, r24
+ a62: 62 83 std Z+2, r22 ; 0x02
+ a64: 43 83 std Z+3, r20 ; 0x03
+ a66: 24 83 std Z+4, r18 ; 0x04
+ a68: 05 83 std Z+5, r16 ; 0x05
+ a6a: 0f 91 pop r16
+ a6c: 08 95 ret
+
+00000a6e <_ZN9IPAddressC1Em>:
+ a6e: fc 01 movw r30, r24
+ a70: 89 e9 ldi r24, 0x99 ; 153
+ a72: 91 e0 ldi r25, 0x01 ; 1
+ a74: 91 83 std Z+1, r25 ; 0x01
+ a76: 80 83 st Z, r24
+ a78: 42 83 std Z+2, r20 ; 0x02
+ a7a: 53 83 std Z+3, r21 ; 0x03
+ a7c: 64 83 std Z+4, r22 ; 0x04
+ a7e: 75 83 std Z+5, r23 ; 0x05
+ a80: 08 95 ret
+
+00000a82 <_ZN9IPAddressC1EPKh>:
+ a82: fc 01 movw r30, r24
+ a84: 89 e9 ldi r24, 0x99 ; 153
+ a86: 91 e0 ldi r25, 0x01 ; 1
+ a88: 91 83 std Z+1, r25 ; 0x01
+ a8a: 80 83 st Z, r24
+ a8c: db 01 movw r26, r22
+ a8e: 2d 91 ld r18, X+
+ a90: 3d 91 ld r19, X+
+ a92: 4d 91 ld r20, X+
+ a94: 5c 91 ld r21, X
+ a96: 13 97 sbiw r26, 0x03 ; 3
+ a98: 22 83 std Z+2, r18 ; 0x02
+ a9a: 33 83 std Z+3, r19 ; 0x03
+ a9c: 44 83 std Z+4, r20 ; 0x04
+ a9e: 55 83 std Z+5, r21 ; 0x05
+ aa0: 08 95 ret
+
+00000aa2 <_ZN9IPAddressaSEPKh>:
+ aa2: cf 93 push r28
+ aa4: df 93 push r29
+ aa6: fc 01 movw r30, r24
+ aa8: eb 01 movw r28, r22
+ aaa: 88 81 ld r24, Y
+ aac: 99 81 ldd r25, Y+1 ; 0x01
+ aae: aa 81 ldd r26, Y+2 ; 0x02
+ ab0: bb 81 ldd r27, Y+3 ; 0x03
+ ab2: 82 83 std Z+2, r24 ; 0x02
+ ab4: 93 83 std Z+3, r25 ; 0x03
+ ab6: a4 83 std Z+4, r26 ; 0x04
+ ab8: b5 83 std Z+5, r27 ; 0x05
+ aba: cf 01 movw r24, r30
+ abc: df 91 pop r29
+ abe: cf 91 pop r28
+ ac0: 08 95 ret
+
+00000ac2 <_ZN9IPAddressaSEm>:
+ ac2: fc 01 movw r30, r24
+ ac4: 42 83 std Z+2, r20 ; 0x02
+ ac6: 53 83 std Z+3, r21 ; 0x03
+ ac8: 64 83 std Z+4, r22 ; 0x04
+ aca: 75 83 std Z+5, r23 ; 0x05
+ acc: 08 95 ret
+
+00000ace <_ZN9IPAddresseqEPKh>:
+ ace: 9b 01 movw r18, r22
+ ad0: bc 01 movw r22, r24
+ ad2: 6e 5f subi r22, 0xFE ; 254
+ ad4: 7f 4f sbci r23, 0xFF ; 255
+ ad6: c9 01 movw r24, r18
+ ad8: 44 e0 ldi r20, 0x04 ; 4
+ ada: 50 e0 ldi r21, 0x00 ; 0
+ adc: 0e 94 ed 27 call 0x4fda ; 0x4fda <memcmp>
+ ae0: 9c 01 movw r18, r24
+ ae2: 81 e0 ldi r24, 0x01 ; 1
+ ae4: 21 15 cp r18, r1
+ ae6: 31 05 cpc r19, r1
+ ae8: 09 f0 breq .+2 ; 0xaec <_ZN9IPAddresseqEPKh+0x1e>
+ aea: 80 e0 ldi r24, 0x00 ; 0
+ aec: 08 95 ret
+
+00000aee <_GLOBAL__I__ZN9IPAddressC2Ev>:
+ aee: 89 e9 ldi r24, 0x99 ; 153
+ af0: 91 e0 ldi r25, 0x01 ; 1
+ af2: 90 93 a2 03 sts 0x03A2, r25
+ af6: 80 93 a1 03 sts 0x03A1, r24
+ afa: 10 92 a3 03 sts 0x03A3, r1
+ afe: 10 92 a4 03 sts 0x03A4, r1
+ b02: 10 92 a5 03 sts 0x03A5, r1
+ b06: 10 92 a6 03 sts 0x03A6, r1
+ b0a: 08 95 ret
+
+00000b0c <_ZN5Print5writeEPKhj>:
+ b0c: cf 92 push r12
+ b0e: df 92 push r13
+ b10: ef 92 push r14
+ b12: ff 92 push r15
+ b14: 0f 93 push r16
+ b16: 1f 93 push r17
+ b18: cf 93 push r28
+ b1a: df 93 push r29
+ b1c: 6c 01 movw r12, r24
+ b1e: 7b 01 movw r14, r22
+ b20: 8a 01 movw r16, r20
+ b22: c0 e0 ldi r28, 0x00 ; 0
+ b24: d0 e0 ldi r29, 0x00 ; 0
+ b26: 0f c0 rjmp .+30 ; 0xb46 <_ZN5Print5writeEPKhj+0x3a>
+ b28: d7 01 movw r26, r14
+ b2a: 6d 91 ld r22, X+
+ b2c: 7d 01 movw r14, r26
+ b2e: d6 01 movw r26, r12
+ b30: ed 91 ld r30, X+
+ b32: fc 91 ld r31, X
+ b34: 01 90 ld r0, Z+
+ b36: f0 81 ld r31, Z
+ b38: e0 2d mov r30, r0
+ b3a: c6 01 movw r24, r12
+ b3c: 09 95 icall
+ b3e: c8 0f add r28, r24
+ b40: d9 1f adc r29, r25
+ b42: 01 50 subi r16, 0x01 ; 1
+ b44: 10 40 sbci r17, 0x00 ; 0
+ b46: 01 15 cp r16, r1
+ b48: 11 05 cpc r17, r1
+ b4a: 71 f7 brne .-36 ; 0xb28 <_ZN5Print5writeEPKhj+0x1c>
+ b4c: ce 01 movw r24, r28
+ b4e: df 91 pop r29
+ b50: cf 91 pop r28
+ b52: 1f 91 pop r17
+ b54: 0f 91 pop r16
+ b56: ff 90 pop r15
+ b58: ef 90 pop r14
+ b5a: df 90 pop r13
+ b5c: cf 90 pop r12
+ b5e: 08 95 ret
+
+00000b60 <_ZN5Print5writeEPKc>:
+ b60: db 01 movw r26, r22
+ b62: 0d 90 ld r0, X+
+ b64: 00 20 and r0, r0
+ b66: e9 f7 brne .-6 ; 0xb62 <_ZN5Print5writeEPKc+0x2>
+ b68: ad 01 movw r20, r26
+ b6a: 41 50 subi r20, 0x01 ; 1
+ b6c: 50 40 sbci r21, 0x00 ; 0
+ b6e: 46 1b sub r20, r22
+ b70: 57 0b sbc r21, r23
+ b72: dc 01 movw r26, r24
+ b74: ed 91 ld r30, X+
+ b76: fc 91 ld r31, X
+ b78: 02 80 ldd r0, Z+2 ; 0x02
+ b7a: f3 81 ldd r31, Z+3 ; 0x03
+ b7c: e0 2d mov r30, r0
+ b7e: 09 95 icall
+ b80: 08 95 ret
+
+00000b82 <_ZN5Print5printEPK19__FlashStringHelper>:
+ b82: ef 92 push r14
+ b84: ff 92 push r15
+ b86: 0f 93 push r16
+ b88: 1f 93 push r17
+ b8a: cf 93 push r28
+ b8c: df 93 push r29
+ b8e: 7c 01 movw r14, r24
+ b90: 06 2f mov r16, r22
+ b92: 17 2f mov r17, r23
+ b94: c0 e0 ldi r28, 0x00 ; 0
+ b96: d0 e0 ldi r29, 0x00 ; 0
+ b98: f8 01 movw r30, r16
+ b9a: 0f 5f subi r16, 0xFF ; 255
+ b9c: 1f 4f sbci r17, 0xFF ; 255
+ b9e: 64 91 lpm r22, Z+
+ ba0: 66 23 and r22, r22
+ ba2: 51 f0 breq .+20 ; 0xbb8 <_ZN5Print5printEPK19__FlashStringHelper+0x36>
+ ba4: f7 01 movw r30, r14
+ ba6: a0 81 ld r26, Z
+ ba8: b1 81 ldd r27, Z+1 ; 0x01
+ baa: ed 91 ld r30, X+
+ bac: fc 91 ld r31, X
+ bae: c7 01 movw r24, r14
+ bb0: 09 95 icall
+ bb2: c8 0f add r28, r24
+ bb4: d9 1f adc r29, r25
+ bb6: f0 cf rjmp .-32 ; 0xb98 <_ZN5Print5printEPK19__FlashStringHelper+0x16>
+ bb8: ce 01 movw r24, r28
+ bba: df 91 pop r29
+ bbc: cf 91 pop r28
+ bbe: 1f 91 pop r17
+ bc0: 0f 91 pop r16
+ bc2: ff 90 pop r15
+ bc4: ef 90 pop r14
+ bc6: 08 95 ret
+
+00000bc8 <_ZN5Print5printERK6String>:
+ bc8: af 92 push r10
+ bca: bf 92 push r11
+ bcc: cf 92 push r12
+ bce: df 92 push r13
+ bd0: ef 92 push r14
+ bd2: ff 92 push r15
+ bd4: 0f 93 push r16
+ bd6: 1f 93 push r17
+ bd8: cf 93 push r28
+ bda: df 93 push r29
+ bdc: 7c 01 movw r14, r24
+ bde: 6b 01 movw r12, r22
+ be0: c0 e0 ldi r28, 0x00 ; 0
+ be2: d0 e0 ldi r29, 0x00 ; 0
+ be4: 00 e0 ldi r16, 0x00 ; 0
+ be6: 10 e0 ldi r17, 0x00 ; 0
+ be8: 10 c0 rjmp .+32 ; 0xc0a <_ZN5Print5printERK6String+0x42>
+ bea: d7 01 movw r26, r14
+ bec: ed 91 ld r30, X+
+ bee: fc 91 ld r31, X
+ bf0: a0 80 ld r10, Z
+ bf2: b1 80 ldd r11, Z+1 ; 0x01
+ bf4: c6 01 movw r24, r12
+ bf6: be 01 movw r22, r28
+ bf8: 0e 94 b6 13 call 0x276c ; 0x276c <_ZNK6StringixEj>
+ bfc: 68 2f mov r22, r24
+ bfe: c7 01 movw r24, r14
+ c00: f5 01 movw r30, r10
+ c02: 09 95 icall
+ c04: 08 0f add r16, r24
+ c06: 19 1f adc r17, r25
+ c08: 21 96 adiw r28, 0x01 ; 1
+ c0a: f6 01 movw r30, r12
+ c0c: 84 81 ldd r24, Z+4 ; 0x04
+ c0e: 95 81 ldd r25, Z+5 ; 0x05
+ c10: c8 17 cp r28, r24
+ c12: d9 07 cpc r29, r25
+ c14: 50 f3 brcs .-44 ; 0xbea <_ZN5Print5printERK6String+0x22>
+ c16: c8 01 movw r24, r16
+ c18: df 91 pop r29
+ c1a: cf 91 pop r28
+ c1c: 1f 91 pop r17
+ c1e: 0f 91 pop r16
+ c20: ff 90 pop r15
+ c22: ef 90 pop r14
+ c24: df 90 pop r13
+ c26: cf 90 pop r12
+ c28: bf 90 pop r11
+ c2a: af 90 pop r10
+ c2c: 08 95 ret
+
+00000c2e <_ZN5Print5printEPKc>:
+ c2e: 0e 94 b0 05 call 0xb60 ; 0xb60 <_ZN5Print5writeEPKc>
+ c32: 08 95 ret
+
+00000c34 <_ZN5Print5printEc>:
+ c34: dc 01 movw r26, r24
+ c36: ed 91 ld r30, X+
+ c38: fc 91 ld r31, X
+ c3a: 01 90 ld r0, Z+
+ c3c: f0 81 ld r31, Z
+ c3e: e0 2d mov r30, r0
+ c40: 09 95 icall
+ c42: 08 95 ret
+
+00000c44 <_ZN5Print5printERK9Printable>:
+ c44: 9c 01 movw r18, r24
+ c46: cb 01 movw r24, r22
+ c48: db 01 movw r26, r22
+ c4a: ed 91 ld r30, X+
+ c4c: fc 91 ld r31, X
+ c4e: 01 90 ld r0, Z+
+ c50: f0 81 ld r31, Z
+ c52: e0 2d mov r30, r0
+ c54: b9 01 movw r22, r18
+ c56: 09 95 icall
+ c58: 08 95 ret
+
+00000c5a <_ZN5Print7printlnEv>:
+ c5a: 0f 93 push r16
+ c5c: 1f 93 push r17
+ c5e: cf 93 push r28
+ c60: df 93 push r29
+ c62: ec 01 movw r28, r24
+ c64: 6d e0 ldi r22, 0x0D ; 13
+ c66: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ c6a: 8c 01 movw r16, r24
+ c6c: ce 01 movw r24, r28
+ c6e: 6a e0 ldi r22, 0x0A ; 10
+ c70: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ c74: 08 0f add r16, r24
+ c76: 19 1f adc r17, r25
+ c78: c8 01 movw r24, r16
+ c7a: df 91 pop r29
+ c7c: cf 91 pop r28
+ c7e: 1f 91 pop r17
+ c80: 0f 91 pop r16
+ c82: 08 95 ret
+
+00000c84 <_ZN5Print7printlnEPK19__FlashStringHelper>:
+ c84: 0f 93 push r16
+ c86: 1f 93 push r17
+ c88: cf 93 push r28
+ c8a: df 93 push r29
+ c8c: ec 01 movw r28, r24
+ c8e: 0e 94 c1 05 call 0xb82 ; 0xb82 <_ZN5Print5printEPK19__FlashStringHelper>
+ c92: 8c 01 movw r16, r24
+ c94: ce 01 movw r24, r28
+ c96: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ c9a: 08 0f add r16, r24
+ c9c: 19 1f adc r17, r25
+ c9e: c8 01 movw r24, r16
+ ca0: df 91 pop r29
+ ca2: cf 91 pop r28
+ ca4: 1f 91 pop r17
+ ca6: 0f 91 pop r16
+ ca8: 08 95 ret
+
+00000caa <_ZN5Print7printlnERK6String>:
+ caa: 0f 93 push r16
+ cac: 1f 93 push r17
+ cae: cf 93 push r28
+ cb0: df 93 push r29
+ cb2: ec 01 movw r28, r24
+ cb4: 0e 94 e4 05 call 0xbc8 ; 0xbc8 <_ZN5Print5printERK6String>
+ cb8: 8c 01 movw r16, r24
+ cba: ce 01 movw r24, r28
+ cbc: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ cc0: 08 0f add r16, r24
+ cc2: 19 1f adc r17, r25
+ cc4: c8 01 movw r24, r16
+ cc6: df 91 pop r29
+ cc8: cf 91 pop r28
+ cca: 1f 91 pop r17
+ ccc: 0f 91 pop r16
+ cce: 08 95 ret
+
+00000cd0 <_ZN5Print7printlnEPKc>:
+ cd0: 0f 93 push r16
+ cd2: 1f 93 push r17
+ cd4: cf 93 push r28
+ cd6: df 93 push r29
+ cd8: ec 01 movw r28, r24
+ cda: 0e 94 b0 05 call 0xb60 ; 0xb60 <_ZN5Print5writeEPKc>
+ cde: 8c 01 movw r16, r24
+ ce0: ce 01 movw r24, r28
+ ce2: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ ce6: 08 0f add r16, r24
+ ce8: 19 1f adc r17, r25
+ cea: c8 01 movw r24, r16
+ cec: df 91 pop r29
+ cee: cf 91 pop r28
+ cf0: 1f 91 pop r17
+ cf2: 0f 91 pop r16
+ cf4: 08 95 ret
+
+00000cf6 <_ZN5Print7printlnEc>:
+ cf6: 0f 93 push r16
+ cf8: 1f 93 push r17
+ cfa: cf 93 push r28
+ cfc: df 93 push r29
+ cfe: ec 01 movw r28, r24
+ d00: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ d04: 8c 01 movw r16, r24
+ d06: ce 01 movw r24, r28
+ d08: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ d0c: 08 0f add r16, r24
+ d0e: 19 1f adc r17, r25
+ d10: c8 01 movw r24, r16
+ d12: df 91 pop r29
+ d14: cf 91 pop r28
+ d16: 1f 91 pop r17
+ d18: 0f 91 pop r16
+ d1a: 08 95 ret
+
+00000d1c <_ZN5Print7printlnERK9Printable>:
+ d1c: 0f 93 push r16
+ d1e: 1f 93 push r17
+ d20: cf 93 push r28
+ d22: df 93 push r29
+ d24: ec 01 movw r28, r24
+ d26: 0e 94 22 06 call 0xc44 ; 0xc44 <_ZN5Print5printERK9Printable>
+ d2a: 8c 01 movw r16, r24
+ d2c: ce 01 movw r24, r28
+ d2e: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ d32: 08 0f add r16, r24
+ d34: 19 1f adc r17, r25
+ d36: c8 01 movw r24, r16
+ d38: df 91 pop r29
+ d3a: cf 91 pop r28
+ d3c: 1f 91 pop r17
+ d3e: 0f 91 pop r16
+ d40: 08 95 ret
+
+00000d42 <_ZN5Print11printNumberEmh>:
+ d42: 8f 92 push r8
+ d44: 9f 92 push r9
+ d46: af 92 push r10
+ d48: bf 92 push r11
+ d4a: cf 92 push r12
+ d4c: df 92 push r13
+ d4e: ef 92 push r14
+ d50: ff 92 push r15
+ d52: 0f 93 push r16
+ d54: 1f 93 push r17
+ d56: df 93 push r29
+ d58: cf 93 push r28
+ d5a: cd b7 in r28, 0x3d ; 61
+ d5c: de b7 in r29, 0x3e ; 62
+ d5e: a1 97 sbiw r28, 0x21 ; 33
+ d60: 0f b6 in r0, 0x3f ; 63
+ d62: f8 94 cli
+ d64: de bf out 0x3e, r29 ; 62
+ d66: 0f be out 0x3f, r0 ; 63
+ d68: cd bf out 0x3d, r28 ; 61
+ d6a: 6c 01 movw r12, r24
+ d6c: 04 2f mov r16, r20
+ d6e: e5 2f mov r30, r21
+ d70: cb 01 movw r24, r22
+ d72: 12 2f mov r17, r18
+ d74: 19 a2 std Y+33, r1 ; 0x21
+ d76: 22 30 cpi r18, 0x02 ; 2
+ d78: 08 f4 brcc .+2 ; 0xd7c <_ZN5Print11printNumberEmh+0x3a>
+ d7a: 1a e0 ldi r17, 0x0A ; 10
+ d7c: 21 e2 ldi r18, 0x21 ; 33
+ d7e: e2 2e mov r14, r18
+ d80: f1 2c mov r15, r1
+ d82: ec 0e add r14, r28
+ d84: fd 1e adc r15, r29
+ d86: 81 2e mov r8, r17
+ d88: 99 24 eor r9, r9
+ d8a: aa 24 eor r10, r10
+ d8c: bb 24 eor r11, r11
+ d8e: 03 c0 rjmp .+6 ; 0xd96 <_ZN5Print11printNumberEmh+0x54>
+ d90: 02 2f mov r16, r18
+ d92: e3 2f mov r30, r19
+ d94: ca 01 movw r24, r20
+ d96: 60 2f mov r22, r16
+ d98: 7e 2f mov r23, r30
+ d9a: a5 01 movw r20, r10
+ d9c: 94 01 movw r18, r8
+ d9e: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ da2: 12 9f mul r17, r18
+ da4: 80 2d mov r24, r0
+ da6: 11 24 eor r1, r1
+ da8: 08 1b sub r16, r24
+ daa: 08 94 sec
+ dac: e1 08 sbc r14, r1
+ dae: f1 08 sbc r15, r1
+ db0: 0a 30 cpi r16, 0x0A ; 10
+ db2: 14 f4 brge .+4 ; 0xdb8 <_ZN5Print11printNumberEmh+0x76>
+ db4: 00 5d subi r16, 0xD0 ; 208
+ db6: 01 c0 rjmp .+2 ; 0xdba <_ZN5Print11printNumberEmh+0x78>
+ db8: 09 5c subi r16, 0xC9 ; 201
+ dba: f7 01 movw r30, r14
+ dbc: 00 83 st Z, r16
+ dbe: 21 15 cp r18, r1
+ dc0: 31 05 cpc r19, r1
+ dc2: 41 05 cpc r20, r1
+ dc4: 51 05 cpc r21, r1
+ dc6: 21 f7 brne .-56 ; 0xd90 <_ZN5Print11printNumberEmh+0x4e>
+ dc8: c6 01 movw r24, r12
+ dca: b7 01 movw r22, r14
+ dcc: 0e 94 b0 05 call 0xb60 ; 0xb60 <_ZN5Print5writeEPKc>
+ dd0: a1 96 adiw r28, 0x21 ; 33
+ dd2: 0f b6 in r0, 0x3f ; 63
+ dd4: f8 94 cli
+ dd6: de bf out 0x3e, r29 ; 62
+ dd8: 0f be out 0x3f, r0 ; 63
+ dda: cd bf out 0x3d, r28 ; 61
+ ddc: cf 91 pop r28
+ dde: df 91 pop r29
+ de0: 1f 91 pop r17
+ de2: 0f 91 pop r16
+ de4: ff 90 pop r15
+ de6: ef 90 pop r14
+ de8: df 90 pop r13
+ dea: cf 90 pop r12
+ dec: bf 90 pop r11
+ dee: af 90 pop r10
+ df0: 9f 90 pop r9
+ df2: 8f 90 pop r8
+ df4: 08 95 ret
+
+00000df6 <_ZN5Print5printEmi>:
+ df6: 21 15 cp r18, r1
+ df8: 31 05 cpc r19, r1
+ dfa: 49 f4 brne .+18 ; 0xe0e <_ZN5Print5printEmi+0x18>
+ dfc: dc 01 movw r26, r24
+ dfe: ed 91 ld r30, X+
+ e00: fc 91 ld r31, X
+ e02: 01 90 ld r0, Z+
+ e04: f0 81 ld r31, Z
+ e06: e0 2d mov r30, r0
+ e08: 64 2f mov r22, r20
+ e0a: 09 95 icall
+ e0c: 08 95 ret
+ e0e: 0e 94 a1 06 call 0xd42 ; 0xd42 <_ZN5Print11printNumberEmh>
+ e12: 08 95 ret
+
+00000e14 <_ZN5Print7printlnEmi>:
+ e14: 0f 93 push r16
+ e16: 1f 93 push r17
+ e18: cf 93 push r28
+ e1a: df 93 push r29
+ e1c: ec 01 movw r28, r24
+ e1e: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ e22: 8c 01 movw r16, r24
+ e24: ce 01 movw r24, r28
+ e26: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ e2a: 08 0f add r16, r24
+ e2c: 19 1f adc r17, r25
+ e2e: c8 01 movw r24, r16
+ e30: df 91 pop r29
+ e32: cf 91 pop r28
+ e34: 1f 91 pop r17
+ e36: 0f 91 pop r16
+ e38: 08 95 ret
+
+00000e3a <_ZN5Print5printEji>:
+ e3a: 9a 01 movw r18, r20
+ e3c: ab 01 movw r20, r22
+ e3e: 60 e0 ldi r22, 0x00 ; 0
+ e40: 70 e0 ldi r23, 0x00 ; 0
+ e42: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ e46: 08 95 ret
+
+00000e48 <_ZN5Print7printlnEji>:
+ e48: 0f 93 push r16
+ e4a: 1f 93 push r17
+ e4c: cf 93 push r28
+ e4e: df 93 push r29
+ e50: ec 01 movw r28, r24
+ e52: 9a 01 movw r18, r20
+ e54: ab 01 movw r20, r22
+ e56: 60 e0 ldi r22, 0x00 ; 0
+ e58: 70 e0 ldi r23, 0x00 ; 0
+ e5a: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ e5e: 8c 01 movw r16, r24
+ e60: ce 01 movw r24, r28
+ e62: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ e66: 08 0f add r16, r24
+ e68: 19 1f adc r17, r25
+ e6a: c8 01 movw r24, r16
+ e6c: df 91 pop r29
+ e6e: cf 91 pop r28
+ e70: 1f 91 pop r17
+ e72: 0f 91 pop r16
+ e74: 08 95 ret
+
+00000e76 <_ZN5Print5printEhi>:
+ e76: 9a 01 movw r18, r20
+ e78: 46 2f mov r20, r22
+ e7a: 50 e0 ldi r21, 0x00 ; 0
+ e7c: 60 e0 ldi r22, 0x00 ; 0
+ e7e: 70 e0 ldi r23, 0x00 ; 0
+ e80: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ e84: 08 95 ret
+
+00000e86 <_ZN5Print7printlnEhi>:
+ e86: 0f 93 push r16
+ e88: 1f 93 push r17
+ e8a: cf 93 push r28
+ e8c: df 93 push r29
+ e8e: ec 01 movw r28, r24
+ e90: 9a 01 movw r18, r20
+ e92: 46 2f mov r20, r22
+ e94: 50 e0 ldi r21, 0x00 ; 0
+ e96: 60 e0 ldi r22, 0x00 ; 0
+ e98: 70 e0 ldi r23, 0x00 ; 0
+ e9a: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ e9e: 8c 01 movw r16, r24
+ ea0: ce 01 movw r24, r28
+ ea2: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ ea6: 08 0f add r16, r24
+ ea8: 19 1f adc r17, r25
+ eaa: c8 01 movw r24, r16
+ eac: df 91 pop r29
+ eae: cf 91 pop r28
+ eb0: 1f 91 pop r17
+ eb2: 0f 91 pop r16
+ eb4: 08 95 ret
+
+00000eb6 <_ZN5Print5printEli>:
+ eb6: cf 92 push r12
+ eb8: df 92 push r13
+ eba: ef 92 push r14
+ ebc: ff 92 push r15
+ ebe: 0f 93 push r16
+ ec0: 1f 93 push r17
+ ec2: cf 93 push r28
+ ec4: df 93 push r29
+ ec6: ec 01 movw r28, r24
+ ec8: 7a 01 movw r14, r20
+ eca: 8b 01 movw r16, r22
+ ecc: 21 15 cp r18, r1
+ ece: 31 05 cpc r19, r1
+ ed0: 41 f4 brne .+16 ; 0xee2 <_ZN5Print5printEli+0x2c>
+ ed2: e8 81 ld r30, Y
+ ed4: f9 81 ldd r31, Y+1 ; 0x01
+ ed6: 01 90 ld r0, Z+
+ ed8: f0 81 ld r31, Z
+ eda: e0 2d mov r30, r0
+ edc: 64 2f mov r22, r20
+ ede: 09 95 icall
+ ee0: 1a c0 rjmp .+52 ; 0xf16 <_ZN5Print5printEli+0x60>
+ ee2: 2a 30 cpi r18, 0x0A ; 10
+ ee4: 31 05 cpc r19, r1
+ ee6: a9 f4 brne .+42 ; 0xf12 <_ZN5Print5printEli+0x5c>
+ ee8: 77 ff sbrs r23, 7
+ eea: 12 c0 rjmp .+36 ; 0xf10 <_ZN5Print5printEli+0x5a>
+ eec: 6d e2 ldi r22, 0x2D ; 45
+ eee: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ ef2: 6c 01 movw r12, r24
+ ef4: 44 27 eor r20, r20
+ ef6: 55 27 eor r21, r21
+ ef8: ba 01 movw r22, r20
+ efa: 4e 19 sub r20, r14
+ efc: 5f 09 sbc r21, r15
+ efe: 60 0b sbc r22, r16
+ f00: 71 0b sbc r23, r17
+ f02: ce 01 movw r24, r28
+ f04: 2a e0 ldi r18, 0x0A ; 10
+ f06: 0e 94 a1 06 call 0xd42 ; 0xd42 <_ZN5Print11printNumberEmh>
+ f0a: c8 0e add r12, r24
+ f0c: d9 1e adc r13, r25
+ f0e: 04 c0 rjmp .+8 ; 0xf18 <_ZN5Print5printEli+0x62>
+ f10: 2a e0 ldi r18, 0x0A ; 10
+ f12: 0e 94 a1 06 call 0xd42 ; 0xd42 <_ZN5Print11printNumberEmh>
+ f16: 6c 01 movw r12, r24
+ f18: c6 01 movw r24, r12
+ f1a: df 91 pop r29
+ f1c: cf 91 pop r28
+ f1e: 1f 91 pop r17
+ f20: 0f 91 pop r16
+ f22: ff 90 pop r15
+ f24: ef 90 pop r14
+ f26: df 90 pop r13
+ f28: cf 90 pop r12
+ f2a: 08 95 ret
+
+00000f2c <_ZN5Print7printlnEli>:
+ f2c: 0f 93 push r16
+ f2e: 1f 93 push r17
+ f30: cf 93 push r28
+ f32: df 93 push r29
+ f34: ec 01 movw r28, r24
+ f36: 0e 94 5b 07 call 0xeb6 ; 0xeb6 <_ZN5Print5printEli>
+ f3a: 8c 01 movw r16, r24
+ f3c: ce 01 movw r24, r28
+ f3e: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ f42: 08 0f add r16, r24
+ f44: 19 1f adc r17, r25
+ f46: c8 01 movw r24, r16
+ f48: df 91 pop r29
+ f4a: cf 91 pop r28
+ f4c: 1f 91 pop r17
+ f4e: 0f 91 pop r16
+ f50: 08 95 ret
+
+00000f52 <_ZN5Print5printEii>:
+ f52: 9a 01 movw r18, r20
+ f54: fb 01 movw r30, r22
+ f56: af 01 movw r20, r30
+ f58: 66 27 eor r22, r22
+ f5a: 57 fd sbrc r21, 7
+ f5c: 60 95 com r22
+ f5e: 76 2f mov r23, r22
+ f60: 0e 94 5b 07 call 0xeb6 ; 0xeb6 <_ZN5Print5printEli>
+ f64: 08 95 ret
+
+00000f66 <_ZN5Print7printlnEii>:
+ f66: 0f 93 push r16
+ f68: 1f 93 push r17
+ f6a: cf 93 push r28
+ f6c: df 93 push r29
+ f6e: ec 01 movw r28, r24
+ f70: 9a 01 movw r18, r20
+ f72: cb 01 movw r24, r22
+ f74: ac 01 movw r20, r24
+ f76: 66 27 eor r22, r22
+ f78: 57 fd sbrc r21, 7
+ f7a: 60 95 com r22
+ f7c: 76 2f mov r23, r22
+ f7e: ce 01 movw r24, r28
+ f80: 0e 94 5b 07 call 0xeb6 ; 0xeb6 <_ZN5Print5printEli>
+ f84: 8c 01 movw r16, r24
+ f86: ce 01 movw r24, r28
+ f88: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ f8c: 08 0f add r16, r24
+ f8e: 19 1f adc r17, r25
+ f90: c8 01 movw r24, r16
+ f92: df 91 pop r29
+ f94: cf 91 pop r28
+ f96: 1f 91 pop r17
+ f98: 0f 91 pop r16
+ f9a: 08 95 ret
+
+00000f9c <_ZN5Print10printFloatEdh>:
+ f9c: 6f 92 push r6
+ f9e: 7f 92 push r7
+ fa0: 9f 92 push r9
+ fa2: af 92 push r10
+ fa4: bf 92 push r11
+ fa6: cf 92 push r12
+ fa8: df 92 push r13
+ faa: ef 92 push r14
+ fac: ff 92 push r15
+ fae: 0f 93 push r16
+ fb0: 1f 93 push r17
+ fb2: cf 93 push r28
+ fb4: df 93 push r29
+ fb6: 3c 01 movw r6, r24
+ fb8: 7a 01 movw r14, r20
+ fba: 8b 01 movw r16, r22
+ fbc: c2 2e mov r12, r18
+ fbe: cb 01 movw r24, r22
+ fc0: ba 01 movw r22, r20
+ fc2: 20 e0 ldi r18, 0x00 ; 0
+ fc4: 30 e0 ldi r19, 0x00 ; 0
+ fc6: a9 01 movw r20, r18
+ fc8: 0e 94 57 21 call 0x42ae ; 0x42ae <__ltsf2>
+ fcc: 87 ff sbrs r24, 7
+ fce: 0a c0 rjmp .+20 ; 0xfe4 <_ZN5Print10printFloatEdh+0x48>
+ fd0: c3 01 movw r24, r6
+ fd2: 6d e2 ldi r22, 0x2D ; 45
+ fd4: 0e 94 1a 06 call 0xc34 ; 0xc34 <_ZN5Print5printEc>
+ fd8: ec 01 movw r28, r24
+ fda: 17 fb bst r17, 7
+ fdc: 10 95 com r17
+ fde: 17 f9 bld r17, 7
+ fe0: 10 95 com r17
+ fe2: 02 c0 rjmp .+4 ; 0xfe8 <_ZN5Print10printFloatEdh+0x4c>
+ fe4: c0 e0 ldi r28, 0x00 ; 0
+ fe6: d0 e0 ldi r29, 0x00 ; 0
+ fe8: dd 24 eor r13, r13
+ fea: 50 e0 ldi r21, 0x00 ; 0
+ fec: 40 e0 ldi r20, 0x00 ; 0
+ fee: 30 e0 ldi r19, 0x00 ; 0
+ ff0: 2f e3 ldi r18, 0x3F ; 63
+ ff2: 11 c0 rjmp .+34 ; 0x1016 <_ZN5Print10printFloatEdh+0x7a>
+ ff4: da 01 movw r26, r20
+ ff6: f9 01 movw r30, r18
+ ff8: 6b 2f mov r22, r27
+ ffa: 74 2f mov r23, r20
+ ffc: 8f 2f mov r24, r31
+ ffe: 92 2f mov r25, r18
+ 1000: 20 e0 ldi r18, 0x00 ; 0
+ 1002: 30 e0 ldi r19, 0x00 ; 0
+ 1004: 40 e2 ldi r20, 0x20 ; 32
+ 1006: 51 e4 ldi r21, 0x41 ; 65
+ 1008: 0e 94 79 20 call 0x40f2 ; 0x40f2 <__divsf3>
+ 100c: 56 2f mov r21, r22
+ 100e: 47 2f mov r20, r23
+ 1010: 38 2f mov r19, r24
+ 1012: 29 2f mov r18, r25
+ 1014: d3 94 inc r13
+ 1016: dc 14 cp r13, r12
+ 1018: 68 f3 brcs .-38 ; 0xff4 <_ZN5Print10printFloatEdh+0x58>
+ 101a: c8 01 movw r24, r16
+ 101c: b7 01 movw r22, r14
+ 101e: da 01 movw r26, r20
+ 1020: f9 01 movw r30, r18
+ 1022: 2b 2f mov r18, r27
+ 1024: 34 2f mov r19, r20
+ 1026: 4f 2f mov r20, r31
+ 1028: 5e 2f mov r21, r30
+ 102a: 0e 94 21 1f call 0x3e42 ; 0x3e42 <__addsf3>
+ 102e: 5b 01 movw r10, r22
+ 1030: f8 2e mov r15, r24
+ 1032: 99 2e mov r9, r25
+ 1034: 7b 2d mov r23, r11
+ 1036: 0e 94 ab 1d call 0x3b56 ; 0x3b56 <__fixunssfsi>
+ 103a: 16 2f mov r17, r22
+ 103c: d7 2e mov r13, r23
+ 103e: e8 2e mov r14, r24
+ 1040: 09 2f mov r16, r25
+ 1042: 0e 94 39 22 call 0x4472 ; 0x4472 <__floatunsisf>
+ 1046: 9b 01 movw r18, r22
+ 1048: ac 01 movw r20, r24
+ 104a: 6a 2d mov r22, r10
+ 104c: 7b 2d mov r23, r11
+ 104e: 8f 2d mov r24, r15
+ 1050: 99 2d mov r25, r9
+ 1052: 0e 94 4e 1f call 0x3e9c ; 0x3e9c <__subsf3>
+ 1056: 96 2e mov r9, r22
+ 1058: a7 2e mov r10, r23
+ 105a: b8 2e mov r11, r24
+ 105c: f9 2e mov r15, r25
+ 105e: c3 01 movw r24, r6
+ 1060: 41 2f mov r20, r17
+ 1062: 5d 2d mov r21, r13
+ 1064: 6e 2d mov r22, r14
+ 1066: 70 2f mov r23, r16
+ 1068: 2a e0 ldi r18, 0x0A ; 10
+ 106a: 30 e0 ldi r19, 0x00 ; 0
+ 106c: 0e 94 fb 06 call 0xdf6 ; 0xdf6 <_ZN5Print5printEmi>
+ 1070: c8 0f add r28, r24
+ 1072: d9 1f adc r29, r25
+ 1074: cc 20 and r12, r12
+ 1076: b9 f1 breq .+110 ; 0x10e6 <_ZN5Print10printFloatEdh+0x14a>
+ 1078: c3 01 movw r24, r6
+ 107a: 61 ea ldi r22, 0xA1 ; 161
+ 107c: 71 e0 ldi r23, 0x01 ; 1
+ 107e: 0e 94 b0 05 call 0xb60 ; 0xb60 <_ZN5Print5writeEPKc>
+ 1082: c8 0f add r28, r24
+ 1084: d9 1f adc r29, r25
+ 1086: 2f c0 rjmp .+94 ; 0x10e6 <_ZN5Print10printFloatEdh+0x14a>
+ 1088: 69 2d mov r22, r9
+ 108a: 7a 2d mov r23, r10
+ 108c: 8b 2d mov r24, r11
+ 108e: 9f 2d mov r25, r15
+ 1090: 20 e0 ldi r18, 0x00 ; 0
+ 1092: 30 e0 ldi r19, 0x00 ; 0
+ 1094: 40 e2 ldi r20, 0x20 ; 32
+ 1096: 51 e4 ldi r21, 0x41 ; 65
+ 1098: 0e 94 7f 1f call 0x3efe ; 0x3efe <__mulsf3>
+ 109c: d6 2e mov r13, r22
+ 109e: b7 2e mov r11, r23
+ 10a0: a8 2e mov r10, r24
+ 10a2: 99 2e mov r9, r25
+ 10a4: 0e 94 e7 21 call 0x43ce ; 0x43ce <__fixsfsi>
+ 10a8: 7b 01 movw r14, r22
+ 10aa: 00 27 eor r16, r16
+ 10ac: f7 fc sbrc r15, 7
+ 10ae: 00 95 com r16
+ 10b0: 10 2f mov r17, r16
+ 10b2: c3 01 movw r24, r6
+ 10b4: b8 01 movw r22, r16
+ 10b6: a7 01 movw r20, r14
+ 10b8: 2a e0 ldi r18, 0x0A ; 10
+ 10ba: 30 e0 ldi r19, 0x00 ; 0
+ 10bc: 0e 94 5b 07 call 0xeb6 ; 0xeb6 <_ZN5Print5printEli>
+ 10c0: c8 0f add r28, r24
+ 10c2: d9 1f adc r29, r25
+ 10c4: c8 01 movw r24, r16
+ 10c6: b7 01 movw r22, r14
+ 10c8: 0e 94 87 21 call 0x430e ; 0x430e <__floatsisf>
+ 10cc: 9b 01 movw r18, r22
+ 10ce: ac 01 movw r20, r24
+ 10d0: 6d 2d mov r22, r13
+ 10d2: 7b 2d mov r23, r11
+ 10d4: 8a 2d mov r24, r10
+ 10d6: 99 2d mov r25, r9
+ 10d8: 0e 94 4e 1f call 0x3e9c ; 0x3e9c <__subsf3>
+ 10dc: 96 2e mov r9, r22
+ 10de: a7 2e mov r10, r23
+ 10e0: b8 2e mov r11, r24
+ 10e2: f9 2e mov r15, r25
+ 10e4: ca 94 dec r12
+ 10e6: cc 20 and r12, r12
+ 10e8: 79 f6 brne .-98 ; 0x1088 <_ZN5Print10printFloatEdh+0xec>
+ 10ea: ce 01 movw r24, r28
+ 10ec: df 91 pop r29
+ 10ee: cf 91 pop r28
+ 10f0: 1f 91 pop r17
+ 10f2: 0f 91 pop r16
+ 10f4: ff 90 pop r15
+ 10f6: ef 90 pop r14
+ 10f8: df 90 pop r13
+ 10fa: cf 90 pop r12
+ 10fc: bf 90 pop r11
+ 10fe: af 90 pop r10
+ 1100: 9f 90 pop r9
+ 1102: 7f 90 pop r7
+ 1104: 6f 90 pop r6
+ 1106: 08 95 ret
+
+00001108 <_ZN5Print5printEdi>:
+ 1108: 0e 94 ce 07 call 0xf9c ; 0xf9c <_ZN5Print10printFloatEdh>
+ 110c: 08 95 ret
+
+0000110e <_ZN5Print7printlnEdi>:
+ 110e: 0f 93 push r16
+ 1110: 1f 93 push r17
+ 1112: cf 93 push r28
+ 1114: df 93 push r29
+ 1116: ec 01 movw r28, r24
+ 1118: 0e 94 ce 07 call 0xf9c ; 0xf9c <_ZN5Print10printFloatEdh>
+ 111c: 8c 01 movw r16, r24
+ 111e: ce 01 movw r24, r28
+ 1120: 0e 94 2d 06 call 0xc5a ; 0xc5a <_ZN5Print7printlnEv>
+ 1124: 08 0f add r16, r24
+ 1126: 19 1f adc r17, r25
+ 1128: c8 01 movw r24, r16
+ 112a: df 91 pop r29
+ 112c: cf 91 pop r28
+ 112e: 1f 91 pop r17
+ 1130: 0f 91 pop r16
+ 1132: 08 95 ret
+
+00001134 <_ZN6Stream9timedReadEv>:
+ 1134: cf 93 push r28
+ 1136: df 93 push r29
+ 1138: ec 01 movw r28, r24
+ 113a: 0e 94 4e 17 call 0x2e9c ; 0x2e9c <millis>
+ 113e: 68 87 std Y+8, r22 ; 0x08
+ 1140: 79 87 std Y+9, r23 ; 0x09
+ 1142: 8a 87 std Y+10, r24 ; 0x0a
+ 1144: 9b 87 std Y+11, r25 ; 0x0b
+ 1146: e8 81 ld r30, Y
+ 1148: f9 81 ldd r31, Y+1 ; 0x01
+ 114a: 06 80 ldd r0, Z+6 ; 0x06
+ 114c: f7 81 ldd r31, Z+7 ; 0x07
+ 114e: e0 2d mov r30, r0
+ 1150: ce 01 movw r24, r28
+ 1152: 09 95 icall
+ 1154: 9c 01 movw r18, r24
+ 1156: 97 ff sbrs r25, 7
+ 1158: 15 c0 rjmp .+42 ; 0x1184 <_ZN6Stream9timedReadEv+0x50>
+ 115a: 0e 94 4e 17 call 0x2e9c ; 0x2e9c <millis>
+ 115e: 28 85 ldd r18, Y+8 ; 0x08
+ 1160: 39 85 ldd r19, Y+9 ; 0x09
+ 1162: 4a 85 ldd r20, Y+10 ; 0x0a
+ 1164: 5b 85 ldd r21, Y+11 ; 0x0b
+ 1166: 62 1b sub r22, r18
+ 1168: 73 0b sbc r23, r19
+ 116a: 84 0b sbc r24, r20
+ 116c: 95 0b sbc r25, r21
+ 116e: 2c 81 ldd r18, Y+4 ; 0x04
+ 1170: 3d 81 ldd r19, Y+5 ; 0x05
+ 1172: 4e 81 ldd r20, Y+6 ; 0x06
+ 1174: 5f 81 ldd r21, Y+7 ; 0x07
+ 1176: 62 17 cp r22, r18
+ 1178: 73 07 cpc r23, r19
+ 117a: 84 07 cpc r24, r20
+ 117c: 95 07 cpc r25, r21
+ 117e: 18 f3 brcs .-58 ; 0x1146 <_ZN6Stream9timedReadEv+0x12>
+ 1180: 2f ef ldi r18, 0xFF ; 255
+ 1182: 3f ef ldi r19, 0xFF ; 255
+ 1184: c9 01 movw r24, r18
+ 1186: df 91 pop r29
+ 1188: cf 91 pop r28
+ 118a: 08 95 ret
+
+0000118c <_ZN6Stream9timedPeekEv>:
+ 118c: cf 93 push r28
+ 118e: df 93 push r29
+ 1190: ec 01 movw r28, r24
+ 1192: 0e 94 4e 17 call 0x2e9c ; 0x2e9c <millis>
+ 1196: 68 87 std Y+8, r22 ; 0x08
+ 1198: 79 87 std Y+9, r23 ; 0x09
+ 119a: 8a 87 std Y+10, r24 ; 0x0a
+ 119c: 9b 87 std Y+11, r25 ; 0x0b
+ 119e: e8 81 ld r30, Y
+ 11a0: f9 81 ldd r31, Y+1 ; 0x01
+ 11a2: 00 84 ldd r0, Z+8 ; 0x08
+ 11a4: f1 85 ldd r31, Z+9 ; 0x09
+ 11a6: e0 2d mov r30, r0
+ 11a8: ce 01 movw r24, r28
+ 11aa: 09 95 icall
+ 11ac: 9c 01 movw r18, r24
+ 11ae: 97 ff sbrs r25, 7
+ 11b0: 15 c0 rjmp .+42 ; 0x11dc <_ZN6Stream9timedPeekEv+0x50>
+ 11b2: 0e 94 4e 17 call 0x2e9c ; 0x2e9c <millis>
+ 11b6: 28 85 ldd r18, Y+8 ; 0x08
+ 11b8: 39 85 ldd r19, Y+9 ; 0x09
+ 11ba: 4a 85 ldd r20, Y+10 ; 0x0a
+ 11bc: 5b 85 ldd r21, Y+11 ; 0x0b
+ 11be: 62 1b sub r22, r18
+ 11c0: 73 0b sbc r23, r19
+ 11c2: 84 0b sbc r24, r20
+ 11c4: 95 0b sbc r25, r21
+ 11c6: 2c 81 ldd r18, Y+4 ; 0x04
+ 11c8: 3d 81 ldd r19, Y+5 ; 0x05
+ 11ca: 4e 81 ldd r20, Y+6 ; 0x06
+ 11cc: 5f 81 ldd r21, Y+7 ; 0x07
+ 11ce: 62 17 cp r22, r18
+ 11d0: 73 07 cpc r23, r19
+ 11d2: 84 07 cpc r24, r20
+ 11d4: 95 07 cpc r25, r21
+ 11d6: 18 f3 brcs .-58 ; 0x119e <_ZN6Stream9timedPeekEv+0x12>
+ 11d8: 2f ef ldi r18, 0xFF ; 255
+ 11da: 3f ef ldi r19, 0xFF ; 255
+ 11dc: c9 01 movw r24, r18
+ 11de: df 91 pop r29
+ 11e0: cf 91 pop r28
+ 11e2: 08 95 ret
+
+000011e4 <_ZN6Stream13peekNextDigitEv>:
+ 11e4: cf 93 push r28
+ 11e6: df 93 push r29
+ 11e8: ec 01 movw r28, r24
+ 11ea: ce 01 movw r24, r28
+ 11ec: 0e 94 c6 08 call 0x118c ; 0x118c <_ZN6Stream9timedPeekEv>
+ 11f0: 9c 01 movw r18, r24
+ 11f2: 97 fd sbrc r25, 7
+ 11f4: 0f c0 rjmp .+30 ; 0x1214 <_ZN6Stream13peekNextDigitEv+0x30>
+ 11f6: 8d 32 cpi r24, 0x2D ; 45
+ 11f8: 91 05 cpc r25, r1
+ 11fa: 61 f0 breq .+24 ; 0x1214 <_ZN6Stream13peekNextDigitEv+0x30>
+ 11fc: c0 97 sbiw r24, 0x30 ; 48
+ 11fe: 8a 30 cpi r24, 0x0A ; 10
+ 1200: 91 05 cpc r25, r1
+ 1202: 40 f0 brcs .+16 ; 0x1214 <_ZN6Stream13peekNextDigitEv+0x30>
+ 1204: e8 81 ld r30, Y
+ 1206: f9 81 ldd r31, Y+1 ; 0x01
+ 1208: 06 80 ldd r0, Z+6 ; 0x06
+ 120a: f7 81 ldd r31, Z+7 ; 0x07
+ 120c: e0 2d mov r30, r0
+ 120e: ce 01 movw r24, r28
+ 1210: 09 95 icall
+ 1212: eb cf rjmp .-42 ; 0x11ea <_ZN6Stream13peekNextDigitEv+0x6>
+ 1214: c9 01 movw r24, r18
+ 1216: df 91 pop r29
+ 1218: cf 91 pop r28
+ 121a: 08 95 ret
+
+0000121c <_ZN6Stream10setTimeoutEm>:
+ 121c: fc 01 movw r30, r24
+ 121e: 44 83 std Z+4, r20 ; 0x04
+ 1220: 55 83 std Z+5, r21 ; 0x05
+ 1222: 66 83 std Z+6, r22 ; 0x06
+ 1224: 77 83 std Z+7, r23 ; 0x07
+ 1226: 08 95 ret
+
+00001228 <_ZN6Stream9findUntilEPcjS0_j>:
+ 1228: 6f 92 push r6
+ 122a: 7f 92 push r7
+ 122c: 8f 92 push r8
+ 122e: 9f 92 push r9
+ 1230: af 92 push r10
+ 1232: bf 92 push r11
+ 1234: cf 92 push r12
+ 1236: df 92 push r13
+ 1238: ef 92 push r14
+ 123a: ff 92 push r15
+ 123c: 0f 93 push r16
+ 123e: 1f 93 push r17
+ 1240: cf 93 push r28
+ 1242: df 93 push r29
+ 1244: 3c 01 movw r6, r24
+ 1246: 6b 01 movw r12, r22
+ 1248: 4a 01 movw r8, r20
+ 124a: 59 01 movw r10, r18
+ 124c: 78 01 movw r14, r16
+ 124e: fb 01 movw r30, r22
+ 1250: 80 81 ld r24, Z
+ 1252: 88 23 and r24, r24
+ 1254: 91 f1 breq .+100 ; 0x12ba <_ZN6Stream9findUntilEPcjS0_j+0x92>
+ 1256: c0 e0 ldi r28, 0x00 ; 0
+ 1258: d0 e0 ldi r29, 0x00 ; 0
+ 125a: 00 e0 ldi r16, 0x00 ; 0
+ 125c: 10 e0 ldi r17, 0x00 ; 0
+ 125e: 26 c0 rjmp .+76 ; 0x12ac <_ZN6Stream9findUntilEPcjS0_j+0x84>
+ 1260: f6 01 movw r30, r12
+ 1262: e0 0f add r30, r16
+ 1264: f1 1f adc r31, r17
+ 1266: 20 81 ld r18, Z
+ 1268: 33 27 eor r19, r19
+ 126a: 27 fd sbrc r18, 7
+ 126c: 30 95 com r19
+ 126e: 82 17 cp r24, r18
+ 1270: 93 07 cpc r25, r19
+ 1272: 31 f4 brne .+12 ; 0x1280 <_ZN6Stream9findUntilEPcjS0_j+0x58>
+ 1274: 0f 5f subi r16, 0xFF ; 255
+ 1276: 1f 4f sbci r17, 0xFF ; 255
+ 1278: 08 15 cp r16, r8
+ 127a: 19 05 cpc r17, r9
+ 127c: 18 f0 brcs .+6 ; 0x1284 <_ZN6Stream9findUntilEPcjS0_j+0x5c>
+ 127e: 1d c0 rjmp .+58 ; 0x12ba <_ZN6Stream9findUntilEPcjS0_j+0x92>
+ 1280: 00 e0 ldi r16, 0x00 ; 0
+ 1282: 10 e0 ldi r17, 0x00 ; 0
+ 1284: e1 14 cp r14, r1
+ 1286: f1 04 cpc r15, r1
+ 1288: 79 f0 breq .+30 ; 0x12a8 <_ZN6Stream9findUntilEPcjS0_j+0x80>
+ 128a: f5 01 movw r30, r10
+ 128c: ec 0f add r30, r28
+ 128e: fd 1f adc r31, r29
+ 1290: 20 81 ld r18, Z
+ 1292: 33 27 eor r19, r19
+ 1294: 27 fd sbrc r18, 7
+ 1296: 30 95 com r19
+ 1298: 82 17 cp r24, r18
+ 129a: 93 07 cpc r25, r19
+ 129c: 29 f4 brne .+10 ; 0x12a8 <_ZN6Stream9findUntilEPcjS0_j+0x80>
+ 129e: 21 96 adiw r28, 0x01 ; 1
+ 12a0: ce 15 cp r28, r14
+ 12a2: df 05 cpc r29, r15
+ 12a4: 18 f0 brcs .+6 ; 0x12ac <_ZN6Stream9findUntilEPcjS0_j+0x84>
+ 12a6: 0b c0 rjmp .+22 ; 0x12be <_ZN6Stream9findUntilEPcjS0_j+0x96>
+ 12a8: c0 e0 ldi r28, 0x00 ; 0
+ 12aa: d0 e0 ldi r29, 0x00 ; 0
+ 12ac: c3 01 movw r24, r6
+ 12ae: 0e 94 9a 08 call 0x1134 ; 0x1134 <_ZN6Stream9timedReadEv>
+ 12b2: 18 16 cp r1, r24
+ 12b4: 19 06 cpc r1, r25
+ 12b6: a4 f2 brlt .-88 ; 0x1260 <_ZN6Stream9findUntilEPcjS0_j+0x38>
+ 12b8: 02 c0 rjmp .+4 ; 0x12be <_ZN6Stream9findUntilEPcjS0_j+0x96>
+ 12ba: 81 e0 ldi r24, 0x01 ; 1
+ 12bc: 01 c0 rjmp .+2 ; 0x12c0 <_ZN6Stream9findUntilEPcjS0_j+0x98>
+ 12be: 80 e0 ldi r24, 0x00 ; 0
+ 12c0: df 91 pop r29
+ 12c2: cf 91 pop r28
+ 12c4: 1f 91 pop r17
+ 12c6: 0f 91 pop r16
+ 12c8: ff 90 pop r15
+ 12ca: ef 90 pop r14
+ 12cc: df 90 pop r13
+ 12ce: cf 90 pop r12
+ 12d0: bf 90 pop r11
+ 12d2: af 90 pop r10
+ 12d4: 9f 90 pop r9
+ 12d6: 8f 90 pop r8
+ 12d8: 7f 90 pop r7
+ 12da: 6f 90 pop r6
+ 12dc: 08 95 ret
+
+000012de <_ZN6Stream9findUntilEPcS0_>:
+ 12de: 0f 93 push r16
+ 12e0: 1f 93 push r17
+ 12e2: cf 93 push r28
+ 12e4: df 93 push r29
+ 12e6: 9a 01 movw r18, r20
+ 12e8: fb 01 movw r30, r22
+ 12ea: 01 90 ld r0, Z+
+ 12ec: 00 20 and r0, r0
+ 12ee: e9 f7 brne .-6 ; 0x12ea <_ZN6Stream9findUntilEPcS0_+0xc>
+ 12f0: 31 97 sbiw r30, 0x01 ; 1
+ 12f2: e6 1b sub r30, r22
+ 12f4: f7 0b sbc r31, r23
+ 12f6: ea 01 movw r28, r20
+ 12f8: 09 90 ld r0, Y+
+ 12fa: 00 20 and r0, r0
+ 12fc: e9 f7 brne .-6 ; 0x12f8 <_ZN6Stream9findUntilEPcS0_+0x1a>
+ 12fe: 8e 01 movw r16, r28
+ 1300: 01 50 subi r16, 0x01 ; 1
+ 1302: 10 40 sbci r17, 0x00 ; 0
+ 1304: 04 1b sub r16, r20
+ 1306: 15 0b sbc r17, r21
+ 1308: af 01 movw r20, r30
+ 130a: 0e 94 14 09 call 0x1228 ; 0x1228 <_ZN6Stream9findUntilEPcjS0_j>
+ 130e: df 91 pop r29
+ 1310: cf 91 pop r28
+ 1312: 1f 91 pop r17
+ 1314: 0f 91 pop r16
+ 1316: 08 95 ret
+
+00001318 <_ZN6Stream4findEPc>:
+ 1318: 40 e0 ldi r20, 0x00 ; 0
+ 131a: 50 e0 ldi r21, 0x00 ; 0
+ 131c: 0e 94 6f 09 call 0x12de ; 0x12de <_ZN6Stream9findUntilEPcS0_>
+ 1320: 08 95 ret
+
+00001322 <_ZN6Stream4findEPcj>:
+ 1322: 0f 93 push r16
+ 1324: 1f 93 push r17
+ 1326: 20 e0 ldi r18, 0x00 ; 0
+ 1328: 30 e0 ldi r19, 0x00 ; 0
+ 132a: 00 e0 ldi r16, 0x00 ; 0
+ 132c: 10 e0 ldi r17, 0x00 ; 0
+ 132e: 0e 94 14 09 call 0x1228 ; 0x1228 <_ZN6Stream9findUntilEPcjS0_j>
+ 1332: 1f 91 pop r17
+ 1334: 0f 91 pop r16
+ 1336: 08 95 ret
+
+00001338 <_ZN6Stream8parseIntEc>:
+ 1338: 9f 92 push r9
+ 133a: af 92 push r10
+ 133c: bf 92 push r11
+ 133e: cf 92 push r12
+ 1340: df 92 push r13
+ 1342: ef 92 push r14
+ 1344: ff 92 push r15
+ 1346: 0f 93 push r16
+ 1348: 1f 93 push r17
+ 134a: cf 93 push r28
+ 134c: df 93 push r29
+ 134e: 6c 01 movw r12, r24
+ 1350: a6 2e mov r10, r22
+ 1352: 0e 94 f2 08 call 0x11e4 ; 0x11e4 <_ZN6Stream13peekNextDigitEv>
+ 1356: ec 01 movw r28, r24
+ 1358: 97 fd sbrc r25, 7
+ 135a: 4e c0 rjmp .+156 ; 0x13f8 <_ZN6Stream8parseIntEc+0xc0>
+ 135c: ee 24 eor r14, r14
+ 135e: ff 24 eor r15, r15
+ 1360: 87 01 movw r16, r14
+ 1362: 99 24 eor r9, r9
+ 1364: bb 24 eor r11, r11
+ 1366: a7 fc sbrc r10, 7
+ 1368: b0 94 com r11
+ 136a: ca 15 cp r28, r10
+ 136c: db 05 cpc r29, r11
+ 136e: 31 f1 breq .+76 ; 0x13bc <_ZN6Stream8parseIntEc+0x84>
+ 1370: cd 32 cpi r28, 0x2D ; 45
+ 1372: d1 05 cpc r29, r1
+ 1374: 09 f1 breq .+66 ; 0x13b8 <_ZN6Stream8parseIntEc+0x80>
+ 1376: ce 01 movw r24, r28
+ 1378: c0 97 sbiw r24, 0x30 ; 48
+ 137a: 8a 30 cpi r24, 0x0A ; 10
+ 137c: 91 05 cpc r25, r1
+ 137e: f0 f4 brcc .+60 ; 0x13bc <_ZN6Stream8parseIntEc+0x84>
+ 1380: c8 01 movw r24, r16
+ 1382: b7 01 movw r22, r14
+ 1384: 2a e0 ldi r18, 0x0A ; 10
+ 1386: 30 e0 ldi r19, 0x00 ; 0
+ 1388: 40 e0 ldi r20, 0x00 ; 0
+ 138a: 50 e0 ldi r21, 0x00 ; 0
+ 138c: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 1390: 7b 01 movw r14, r22
+ 1392: 8c 01 movw r16, r24
+ 1394: ce 01 movw r24, r28
+ 1396: aa 27 eor r26, r26
+ 1398: 97 fd sbrc r25, 7
+ 139a: a0 95 com r26
+ 139c: ba 2f mov r27, r26
+ 139e: e8 0e add r14, r24
+ 13a0: f9 1e adc r15, r25
+ 13a2: 0a 1f adc r16, r26
+ 13a4: 1b 1f adc r17, r27
+ 13a6: 80 ed ldi r24, 0xD0 ; 208
+ 13a8: 9f ef ldi r25, 0xFF ; 255
+ 13aa: af ef ldi r26, 0xFF ; 255
+ 13ac: bf ef ldi r27, 0xFF ; 255
+ 13ae: e8 0e add r14, r24
+ 13b0: f9 1e adc r15, r25
+ 13b2: 0a 1f adc r16, r26
+ 13b4: 1b 1f adc r17, r27
+ 13b6: 02 c0 rjmp .+4 ; 0x13bc <_ZN6Stream8parseIntEc+0x84>
+ 13b8: 99 24 eor r9, r9
+ 13ba: 93 94 inc r9
+ 13bc: d6 01 movw r26, r12
+ 13be: ed 91 ld r30, X+
+ 13c0: fc 91 ld r31, X
+ 13c2: 06 80 ldd r0, Z+6 ; 0x06
+ 13c4: f7 81 ldd r31, Z+7 ; 0x07
+ 13c6: e0 2d mov r30, r0
+ 13c8: c6 01 movw r24, r12
+ 13ca: 09 95 icall
+ 13cc: c6 01 movw r24, r12
+ 13ce: 0e 94 c6 08 call 0x118c ; 0x118c <_ZN6Stream9timedPeekEv>
+ 13d2: ec 01 movw r28, r24
+ 13d4: c0 97 sbiw r24, 0x30 ; 48
+ 13d6: 8a 30 cpi r24, 0x0A ; 10
+ 13d8: 91 05 cpc r25, r1
+ 13da: 38 f2 brcs .-114 ; 0x136a <_ZN6Stream8parseIntEc+0x32>
+ 13dc: ca 15 cp r28, r10
+ 13de: db 05 cpc r29, r11
+ 13e0: 21 f2 breq .-120 ; 0x136a <_ZN6Stream8parseIntEc+0x32>
+ 13e2: 99 20 and r9, r9
+ 13e4: 61 f0 breq .+24 ; 0x13fe <_ZN6Stream8parseIntEc+0xc6>
+ 13e6: 10 95 com r17
+ 13e8: 00 95 com r16
+ 13ea: f0 94 com r15
+ 13ec: e0 94 com r14
+ 13ee: e1 1c adc r14, r1
+ 13f0: f1 1c adc r15, r1
+ 13f2: 01 1d adc r16, r1
+ 13f4: 11 1d adc r17, r1
+ 13f6: 03 c0 rjmp .+6 ; 0x13fe <_ZN6Stream8parseIntEc+0xc6>
+ 13f8: ee 24 eor r14, r14
+ 13fa: ff 24 eor r15, r15
+ 13fc: 87 01 movw r16, r14
+ 13fe: b7 01 movw r22, r14
+ 1400: c8 01 movw r24, r16
+ 1402: df 91 pop r29
+ 1404: cf 91 pop r28
+ 1406: 1f 91 pop r17
+ 1408: 0f 91 pop r16
+ 140a: ff 90 pop r15
+ 140c: ef 90 pop r14
+ 140e: df 90 pop r13
+ 1410: cf 90 pop r12
+ 1412: bf 90 pop r11
+ 1414: af 90 pop r10
+ 1416: 9f 90 pop r9
+ 1418: 08 95 ret
+
+0000141a <_ZN6Stream8parseIntEv>:
+ 141a: 61 e0 ldi r22, 0x01 ; 1
+ 141c: 0e 94 9c 09 call 0x1338 ; 0x1338 <_ZN6Stream8parseIntEc>
+ 1420: 08 95 ret
+
+00001422 <_ZN6Stream10parseFloatEc>:
+ 1422: 6f 92 push r6
+ 1424: 7f 92 push r7
+ 1426: 8f 92 push r8
+ 1428: 9f 92 push r9
+ 142a: af 92 push r10
+ 142c: bf 92 push r11
+ 142e: cf 92 push r12
+ 1430: df 92 push r13
+ 1432: ef 92 push r14
+ 1434: ff 92 push r15
+ 1436: 0f 93 push r16
+ 1438: 1f 93 push r17
+ 143a: cf 93 push r28
+ 143c: df 93 push r29
+ 143e: ec 01 movw r28, r24
+ 1440: 76 2e mov r7, r22
+ 1442: 0e 94 f2 08 call 0x11e4 ; 0x11e4 <_ZN6Stream13peekNextDigitEv>
+ 1446: d8 2e mov r13, r24
+ 1448: 87 fd sbrc r24, 7
+ 144a: 7d c0 rjmp .+250 ; 0x1546 <_ZN6Stream10parseFloatEc+0x124>
+ 144c: bb 24 eor r11, r11
+ 144e: aa 24 eor r10, r10
+ 1450: 90 e8 ldi r25, 0x80 ; 128
+ 1452: 99 2e mov r9, r25
+ 1454: 8f e3 ldi r24, 0x3F ; 63
+ 1456: 88 2e mov r8, r24
+ 1458: ee 24 eor r14, r14
+ 145a: ff 24 eor r15, r15
+ 145c: 87 01 movw r16, r14
+ 145e: cc 24 eor r12, r12
+ 1460: 66 24 eor r6, r6
+ 1462: d7 14 cp r13, r7
+ 1464: e1 f1 breq .+120 ; 0x14de <_ZN6Stream10parseFloatEc+0xbc>
+ 1466: 8d 2d mov r24, r13
+ 1468: 8d 32 cpi r24, 0x2D ; 45
+ 146a: a1 f1 breq .+104 ; 0x14d4 <_ZN6Stream10parseFloatEc+0xb2>
+ 146c: 8e 32 cpi r24, 0x2E ; 46
+ 146e: a9 f1 breq .+106 ; 0x14da <_ZN6Stream10parseFloatEc+0xb8>
+ 1470: 80 53 subi r24, 0x30 ; 48
+ 1472: 8a 30 cpi r24, 0x0A ; 10
+ 1474: a0 f5 brcc .+104 ; 0x14de <_ZN6Stream10parseFloatEc+0xbc>
+ 1476: c8 01 movw r24, r16
+ 1478: b7 01 movw r22, r14
+ 147a: 2a e0 ldi r18, 0x0A ; 10
+ 147c: 30 e0 ldi r19, 0x00 ; 0
+ 147e: 40 e0 ldi r20, 0x00 ; 0
+ 1480: 50 e0 ldi r21, 0x00 ; 0
+ 1482: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 1486: 7b 01 movw r14, r22
+ 1488: 8c 01 movw r16, r24
+ 148a: 8d 2d mov r24, r13
+ 148c: 99 27 eor r25, r25
+ 148e: 87 fd sbrc r24, 7
+ 1490: 90 95 com r25
+ 1492: a9 2f mov r26, r25
+ 1494: b9 2f mov r27, r25
+ 1496: e8 0e add r14, r24
+ 1498: f9 1e adc r15, r25
+ 149a: 0a 1f adc r16, r26
+ 149c: 1b 1f adc r17, r27
+ 149e: 80 ed ldi r24, 0xD0 ; 208
+ 14a0: 9f ef ldi r25, 0xFF ; 255
+ 14a2: af ef ldi r26, 0xFF ; 255
+ 14a4: bf ef ldi r27, 0xFF ; 255
+ 14a6: e8 0e add r14, r24
+ 14a8: f9 1e adc r15, r25
+ 14aa: 0a 1f adc r16, r26
+ 14ac: 1b 1f adc r17, r27
+ 14ae: cc 20 and r12, r12
+ 14b0: b1 f0 breq .+44 ; 0x14de <_ZN6Stream10parseFloatEc+0xbc>
+ 14b2: a5 01 movw r20, r10
+ 14b4: 94 01 movw r18, r8
+ 14b6: 65 2f mov r22, r21
+ 14b8: 7a 2d mov r23, r10
+ 14ba: 83 2f mov r24, r19
+ 14bc: 98 2d mov r25, r8
+ 14be: 2d ec ldi r18, 0xCD ; 205
+ 14c0: 3c ec ldi r19, 0xCC ; 204
+ 14c2: 4c ec ldi r20, 0xCC ; 204
+ 14c4: 5d e3 ldi r21, 0x3D ; 61
+ 14c6: 0e 94 7f 1f call 0x3efe ; 0x3efe <__mulsf3>
+ 14ca: b6 2e mov r11, r22
+ 14cc: a7 2e mov r10, r23
+ 14ce: 98 2e mov r9, r24
+ 14d0: 89 2e mov r8, r25
+ 14d2: 05 c0 rjmp .+10 ; 0x14de <_ZN6Stream10parseFloatEc+0xbc>
+ 14d4: 66 24 eor r6, r6
+ 14d6: 63 94 inc r6
+ 14d8: 02 c0 rjmp .+4 ; 0x14de <_ZN6Stream10parseFloatEc+0xbc>
+ 14da: cc 24 eor r12, r12
+ 14dc: c3 94 inc r12
+ 14de: e8 81 ld r30, Y
+ 14e0: f9 81 ldd r31, Y+1 ; 0x01
+ 14e2: 06 80 ldd r0, Z+6 ; 0x06
+ 14e4: f7 81 ldd r31, Z+7 ; 0x07
+ 14e6: e0 2d mov r30, r0
+ 14e8: ce 01 movw r24, r28
+ 14ea: 09 95 icall
+ 14ec: ce 01 movw r24, r28
+ 14ee: 0e 94 c6 08 call 0x118c ; 0x118c <_ZN6Stream9timedPeekEv>
+ 14f2: d8 2e mov r13, r24
+ 14f4: 98 2f mov r25, r24
+ 14f6: 90 53 subi r25, 0x30 ; 48
+ 14f8: 9a 30 cpi r25, 0x0A ; 10
+ 14fa: 08 f4 brcc .+2 ; 0x14fe <_ZN6Stream10parseFloatEc+0xdc>
+ 14fc: b2 cf rjmp .-156 ; 0x1462 <_ZN6Stream10parseFloatEc+0x40>
+ 14fe: 8e 32 cpi r24, 0x2E ; 46
+ 1500: 09 f4 brne .+2 ; 0x1504 <_ZN6Stream10parseFloatEc+0xe2>
+ 1502: af cf rjmp .-162 ; 0x1462 <_ZN6Stream10parseFloatEc+0x40>
+ 1504: 87 15 cp r24, r7
+ 1506: 09 f4 brne .+2 ; 0x150a <_ZN6Stream10parseFloatEc+0xe8>
+ 1508: ac cf rjmp .-168 ; 0x1462 <_ZN6Stream10parseFloatEc+0x40>
+ 150a: 66 20 and r6, r6
+ 150c: 41 f0 breq .+16 ; 0x151e <_ZN6Stream10parseFloatEc+0xfc>
+ 150e: 10 95 com r17
+ 1510: 00 95 com r16
+ 1512: f0 94 com r15
+ 1514: e0 94 com r14
+ 1516: e1 1c adc r14, r1
+ 1518: f1 1c adc r15, r1
+ 151a: 01 1d adc r16, r1
+ 151c: 11 1d adc r17, r1
+ 151e: cc 20 and r12, r12
+ 1520: 69 f0 breq .+26 ; 0x153c <_ZN6Stream10parseFloatEc+0x11a>
+ 1522: c8 01 movw r24, r16
+ 1524: b7 01 movw r22, r14
+ 1526: 0e 94 87 21 call 0x430e ; 0x430e <__floatsisf>
+ 152a: d5 01 movw r26, r10
+ 152c: f4 01 movw r30, r8
+ 152e: 2b 2f mov r18, r27
+ 1530: 3a 2d mov r19, r10
+ 1532: 4f 2f mov r20, r31
+ 1534: 58 2d mov r21, r8
+ 1536: 0e 94 7f 1f call 0x3efe ; 0x3efe <__mulsf3>
+ 153a: 09 c0 rjmp .+18 ; 0x154e <_ZN6Stream10parseFloatEc+0x12c>
+ 153c: c8 01 movw r24, r16
+ 153e: b7 01 movw r22, r14
+ 1540: 0e 94 87 21 call 0x430e ; 0x430e <__floatsisf>
+ 1544: 04 c0 rjmp .+8 ; 0x154e <_ZN6Stream10parseFloatEc+0x12c>
+ 1546: 60 e0 ldi r22, 0x00 ; 0
+ 1548: 70 e0 ldi r23, 0x00 ; 0
+ 154a: 80 e0 ldi r24, 0x00 ; 0
+ 154c: 90 e0 ldi r25, 0x00 ; 0
+ 154e: df 91 pop r29
+ 1550: cf 91 pop r28
+ 1552: 1f 91 pop r17
+ 1554: 0f 91 pop r16
+ 1556: ff 90 pop r15
+ 1558: ef 90 pop r14
+ 155a: df 90 pop r13
+ 155c: cf 90 pop r12
+ 155e: bf 90 pop r11
+ 1560: af 90 pop r10
+ 1562: 9f 90 pop r9
+ 1564: 8f 90 pop r8
+ 1566: 7f 90 pop r7
+ 1568: 6f 90 pop r6
+ 156a: 08 95 ret
+
+0000156c <_ZN6Stream10parseFloatEv>:
+ 156c: 61 e0 ldi r22, 0x01 ; 1
+ 156e: 0e 94 11 0a call 0x1422 ; 0x1422 <_ZN6Stream10parseFloatEc>
+ 1572: 08 95 ret
+
+00001574 <_ZN6Stream9readBytesEPcj>:
+ 1574: cf 92 push r12
+ 1576: df 92 push r13
+ 1578: ef 92 push r14
+ 157a: ff 92 push r15
+ 157c: 0f 93 push r16
+ 157e: 1f 93 push r17
+ 1580: cf 93 push r28
+ 1582: df 93 push r29
+ 1584: 6c 01 movw r12, r24
+ 1586: eb 01 movw r28, r22
+ 1588: 7a 01 movw r14, r20
+ 158a: 00 e0 ldi r16, 0x00 ; 0
+ 158c: 10 e0 ldi r17, 0x00 ; 0
+ 158e: 08 c0 rjmp .+16 ; 0x15a0 <_ZN6Stream9readBytesEPcj+0x2c>
+ 1590: c6 01 movw r24, r12
+ 1592: 0e 94 9a 08 call 0x1134 ; 0x1134 <_ZN6Stream9timedReadEv>
+ 1596: 97 fd sbrc r25, 7
+ 1598: 06 c0 rjmp .+12 ; 0x15a6 <_ZN6Stream9readBytesEPcj+0x32>
+ 159a: 89 93 st Y+, r24
+ 159c: 0f 5f subi r16, 0xFF ; 255
+ 159e: 1f 4f sbci r17, 0xFF ; 255
+ 15a0: 0e 15 cp r16, r14
+ 15a2: 1f 05 cpc r17, r15
+ 15a4: a8 f3 brcs .-22 ; 0x1590 <_ZN6Stream9readBytesEPcj+0x1c>
+ 15a6: c8 01 movw r24, r16
+ 15a8: df 91 pop r29
+ 15aa: cf 91 pop r28
+ 15ac: 1f 91 pop r17
+ 15ae: 0f 91 pop r16
+ 15b0: ff 90 pop r15
+ 15b2: ef 90 pop r14
+ 15b4: df 90 pop r13
+ 15b6: cf 90 pop r12
+ 15b8: 08 95 ret
+
+000015ba <_ZN6Stream14readBytesUntilEcPcj>:
+ 15ba: af 92 push r10
+ 15bc: bf 92 push r11
+ 15be: cf 92 push r12
+ 15c0: df 92 push r13
+ 15c2: ef 92 push r14
+ 15c4: ff 92 push r15
+ 15c6: 0f 93 push r16
+ 15c8: 1f 93 push r17
+ 15ca: cf 93 push r28
+ 15cc: df 93 push r29
+ 15ce: 5c 01 movw r10, r24
+ 15d0: ea 01 movw r28, r20
+ 15d2: 79 01 movw r14, r18
+ 15d4: 21 15 cp r18, r1
+ 15d6: 31 05 cpc r19, r1
+ 15d8: b1 f0 breq .+44 ; 0x1606 <_ZN6Stream14readBytesUntilEcPcj+0x4c>
+ 15da: 00 e0 ldi r16, 0x00 ; 0
+ 15dc: 10 e0 ldi r17, 0x00 ; 0
+ 15de: c6 2e mov r12, r22
+ 15e0: dd 24 eor r13, r13
+ 15e2: c7 fc sbrc r12, 7
+ 15e4: d0 94 com r13
+ 15e6: 0b c0 rjmp .+22 ; 0x15fe <_ZN6Stream14readBytesUntilEcPcj+0x44>
+ 15e8: c5 01 movw r24, r10
+ 15ea: 0e 94 9a 08 call 0x1134 ; 0x1134 <_ZN6Stream9timedReadEv>
+ 15ee: 97 fd sbrc r25, 7
+ 15f0: 0c c0 rjmp .+24 ; 0x160a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 15f2: 8c 15 cp r24, r12
+ 15f4: 9d 05 cpc r25, r13
+ 15f6: 49 f0 breq .+18 ; 0x160a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 15f8: 89 93 st Y+, r24
+ 15fa: 0f 5f subi r16, 0xFF ; 255
+ 15fc: 1f 4f sbci r17, 0xFF ; 255
+ 15fe: 0e 15 cp r16, r14
+ 1600: 1f 05 cpc r17, r15
+ 1602: 90 f3 brcs .-28 ; 0x15e8 <_ZN6Stream14readBytesUntilEcPcj+0x2e>
+ 1604: 02 c0 rjmp .+4 ; 0x160a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 1606: 00 e0 ldi r16, 0x00 ; 0
+ 1608: 10 e0 ldi r17, 0x00 ; 0
+ 160a: c8 01 movw r24, r16
+ 160c: df 91 pop r29
+ 160e: cf 91 pop r28
+ 1610: 1f 91 pop r17
+ 1612: 0f 91 pop r16
+ 1614: ff 90 pop r15
+ 1616: ef 90 pop r14
+ 1618: df 90 pop r13
+ 161a: cf 90 pop r12
+ 161c: bf 90 pop r11
+ 161e: af 90 pop r10
+ 1620: 08 95 ret
+
+00001622 <_Z4tonehjm>:
+ 1622: 2f 92 push r2
+ 1624: 3f 92 push r3
+ 1626: 4f 92 push r4
+ 1628: 5f 92 push r5
+ 162a: 6f 92 push r6
+ 162c: 7f 92 push r7
+ 162e: 8f 92 push r8
+ 1630: 9f 92 push r9
+ 1632: af 92 push r10
+ 1634: bf 92 push r11
+ 1636: df 92 push r13
+ 1638: ef 92 push r14
+ 163a: ff 92 push r15
+ 163c: 0f 93 push r16
+ 163e: 1f 93 push r17
+ 1640: df 93 push r29
+ 1642: cf 93 push r28
+ 1644: 00 d0 rcall .+0 ; 0x1646 <_Z4tonehjm+0x24>
+ 1646: 00 d0 rcall .+0 ; 0x1648 <_Z4tonehjm+0x26>
+ 1648: cd b7 in r28, 0x3d ; 61
+ 164a: de b7 in r29, 0x3e ; 62
+ 164c: 1b 01 movw r2, r22
+ 164e: 29 83 std Y+1, r18 ; 0x01
+ 1650: 3a 83 std Y+2, r19 ; 0x02
+ 1652: 4b 83 std Y+3, r20 ; 0x03
+ 1654: 5c 83 std Y+4, r21 ; 0x04
+ 1656: 90 91 ab 01 lds r25, 0x01AB
+ 165a: 98 17 cp r25, r24
+ 165c: 21 f0 breq .+8 ; 0x1666 <_Z4tonehjm+0x44>
+ 165e: 9f 3f cpi r25, 0xFF ; 255
+ 1660: 09 f0 breq .+2 ; 0x1664 <_Z4tonehjm+0x42>
+ 1662: d8 c1 rjmp .+944 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 1664: 04 c0 rjmp .+8 ; 0x166e <_Z4tonehjm+0x4c>
+ 1666: e8 e6 ldi r30, 0x68 ; 104
+ 1668: f0 e0 ldi r31, 0x00 ; 0
+ 166a: d4 90 lpm r13, Z+
+ 166c: 7d c0 rjmp .+250 ; 0x1768 <_Z4tonehjm+0x146>
+ 166e: 80 93 ab 01 sts 0x01AB, r24
+ 1672: e8 e6 ldi r30, 0x68 ; 104
+ 1674: f0 e0 ldi r31, 0x00 ; 0
+ 1676: d4 90 lpm r13, Z+
+ 1678: 9d 2d mov r25, r13
+ 167a: 9f 3f cpi r25, 0xFF ; 255
+ 167c: 09 f4 brne .+2 ; 0x1680 <_Z4tonehjm+0x5e>
+ 167e: ca c1 rjmp .+916 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 1680: 91 30 cpi r25, 0x01 ; 1
+ 1682: 31 f1 breq .+76 ; 0x16d0 <_Z4tonehjm+0xae>
+ 1684: 92 30 cpi r25, 0x02 ; 2
+ 1686: 09 f4 brne .+2 ; 0x168a <_Z4tonehjm+0x68>
+ 1688: 49 c0 rjmp .+146 ; 0x171c <_Z4tonehjm+0xfa>
+ 168a: dd 20 and r13, r13
+ 168c: 09 f0 breq .+2 ; 0x1690 <_Z4tonehjm+0x6e>
+ 168e: 6c c0 rjmp .+216 ; 0x1768 <_Z4tonehjm+0x146>
+ 1690: 14 bc out 0x24, r1 ; 36
+ 1692: 15 bc out 0x25, r1 ; 37
+ 1694: 94 b5 in r25, 0x24 ; 36
+ 1696: 92 60 ori r25, 0x02 ; 2
+ 1698: 94 bd out 0x24, r25 ; 36
+ 169a: 95 b5 in r25, 0x25 ; 37
+ 169c: 91 60 ori r25, 0x01 ; 1
+ 169e: 95 bd out 0x25, r25 ; 37
+ 16a0: 28 2f mov r18, r24
+ 16a2: 30 e0 ldi r19, 0x00 ; 0
+ 16a4: f9 01 movw r30, r18
+ 16a6: e9 57 subi r30, 0x79 ; 121
+ 16a8: ff 4f sbci r31, 0xFF ; 255
+ 16aa: e4 91 lpm r30, Z+
+ 16ac: f0 e0 ldi r31, 0x00 ; 0
+ 16ae: ee 0f add r30, r30
+ 16b0: ff 1f adc r31, r31
+ 16b2: ed 58 subi r30, 0x8D ; 141
+ 16b4: ff 4f sbci r31, 0xFF ; 255
+ 16b6: 45 91 lpm r20, Z+
+ 16b8: 54 91 lpm r21, Z+
+ 16ba: 40 93 ab 03 sts 0x03AB, r20
+ 16be: 50 93 ac 03 sts 0x03AC, r21
+ 16c2: 25 56 subi r18, 0x65 ; 101
+ 16c4: 3f 4f sbci r19, 0xFF ; 255
+ 16c6: f9 01 movw r30, r18
+ 16c8: 24 91 lpm r18, Z+
+ 16ca: 20 93 ad 03 sts 0x03AD, r18
+ 16ce: 4e c0 rjmp .+156 ; 0x176c <_Z4tonehjm+0x14a>
+ 16d0: 10 92 80 00 sts 0x0080, r1
+ 16d4: 10 92 81 00 sts 0x0081, r1
+ 16d8: 90 91 81 00 lds r25, 0x0081
+ 16dc: 98 60 ori r25, 0x08 ; 8
+ 16de: 90 93 81 00 sts 0x0081, r25
+ 16e2: 90 91 81 00 lds r25, 0x0081
+ 16e6: 91 60 ori r25, 0x01 ; 1
+ 16e8: 90 93 81 00 sts 0x0081, r25
+ 16ec: 28 2f mov r18, r24
+ 16ee: 30 e0 ldi r19, 0x00 ; 0
+ 16f0: f9 01 movw r30, r18
+ 16f2: e9 57 subi r30, 0x79 ; 121
+ 16f4: ff 4f sbci r31, 0xFF ; 255
+ 16f6: e4 91 lpm r30, Z+
+ 16f8: f0 e0 ldi r31, 0x00 ; 0
+ 16fa: ee 0f add r30, r30
+ 16fc: ff 1f adc r31, r31
+ 16fe: ed 58 subi r30, 0x8D ; 141
+ 1700: ff 4f sbci r31, 0xFF ; 255
+ 1702: 45 91 lpm r20, Z+
+ 1704: 54 91 lpm r21, Z+
+ 1706: 40 93 b2 03 sts 0x03B2, r20
+ 170a: 50 93 b3 03 sts 0x03B3, r21
+ 170e: 25 56 subi r18, 0x65 ; 101
+ 1710: 3f 4f sbci r19, 0xFF ; 255
+ 1712: f9 01 movw r30, r18
+ 1714: 24 91 lpm r18, Z+
+ 1716: 20 93 b4 03 sts 0x03B4, r18
+ 171a: 28 c0 rjmp .+80 ; 0x176c <_Z4tonehjm+0x14a>
+ 171c: 10 92 b0 00 sts 0x00B0, r1
+ 1720: 10 92 b1 00 sts 0x00B1, r1
+ 1724: 90 91 b0 00 lds r25, 0x00B0
+ 1728: 92 60 ori r25, 0x02 ; 2
+ 172a: 90 93 b0 00 sts 0x00B0, r25
+ 172e: 90 91 b1 00 lds r25, 0x00B1
+ 1732: 91 60 ori r25, 0x01 ; 1
+ 1734: 90 93 b1 00 sts 0x00B1, r25
+ 1738: 28 2f mov r18, r24
+ 173a: 30 e0 ldi r19, 0x00 ; 0
+ 173c: f9 01 movw r30, r18
+ 173e: e9 57 subi r30, 0x79 ; 121
+ 1740: ff 4f sbci r31, 0xFF ; 255
+ 1742: e4 91 lpm r30, Z+
+ 1744: f0 e0 ldi r31, 0x00 ; 0
+ 1746: ee 0f add r30, r30
+ 1748: ff 1f adc r31, r31
+ 174a: ed 58 subi r30, 0x8D ; 141
+ 174c: ff 4f sbci r31, 0xFF ; 255
+ 174e: 45 91 lpm r20, Z+
+ 1750: 54 91 lpm r21, Z+
+ 1752: 40 93 b9 03 sts 0x03B9, r20
+ 1756: 50 93 ba 03 sts 0x03BA, r21
+ 175a: 25 56 subi r18, 0x65 ; 101
+ 175c: 3f 4f sbci r19, 0xFF ; 255
+ 175e: f9 01 movw r30, r18
+ 1760: 24 91 lpm r18, Z+
+ 1762: 20 93 bb 03 sts 0x03BB, r18
+ 1766: 02 c0 rjmp .+4 ; 0x176c <_Z4tonehjm+0x14a>
+ 1768: d7 fc sbrc r13, 7
+ 176a: 54 c1 rjmp .+680 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 176c: 61 e0 ldi r22, 0x01 ; 1
+ 176e: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 1772: dd 20 and r13, r13
+ 1774: 21 f0 breq .+8 ; 0x177e <_Z4tonehjm+0x15c>
+ 1776: fd 2d mov r31, r13
+ 1778: f2 30 cpi r31, 0x02 ; 2
+ 177a: 09 f0 breq .+2 ; 0x177e <_Z4tonehjm+0x15c>
+ 177c: c1 c0 rjmp .+386 ; 0x1900 <_Z4tonehjm+0x2de>
+ 177e: 41 01 movw r8, r2
+ 1780: aa 24 eor r10, r10
+ 1782: bb 24 eor r11, r11
+ 1784: 60 e0 ldi r22, 0x00 ; 0
+ 1786: 79 e0 ldi r23, 0x09 ; 9
+ 1788: 8d e3 ldi r24, 0x3D ; 61
+ 178a: 90 e0 ldi r25, 0x00 ; 0
+ 178c: a5 01 movw r20, r10
+ 178e: 94 01 movw r18, r8
+ 1790: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 1794: 29 01 movw r4, r18
+ 1796: 3a 01 movw r6, r20
+ 1798: 79 01 movw r14, r18
+ 179a: 8a 01 movw r16, r20
+ 179c: 08 94 sec
+ 179e: e1 08 sbc r14, r1
+ 17a0: f1 08 sbc r15, r1
+ 17a2: 01 09 sbc r16, r1
+ 17a4: 11 09 sbc r17, r1
+ 17a6: 8f ef ldi r24, 0xFF ; 255
+ 17a8: e8 16 cp r14, r24
+ 17aa: f1 04 cpc r15, r1
+ 17ac: 01 05 cpc r16, r1
+ 17ae: 11 05 cpc r17, r1
+ 17b0: 09 f0 breq .+2 ; 0x17b4 <_Z4tonehjm+0x192>
+ 17b2: 08 f4 brcc .+2 ; 0x17b6 <_Z4tonehjm+0x194>
+ 17b4: 98 c0 rjmp .+304 ; 0x18e6 <_Z4tonehjm+0x2c4>
+ 17b6: 60 e2 ldi r22, 0x20 ; 32
+ 17b8: 71 ea ldi r23, 0xA1 ; 161
+ 17ba: 87 e0 ldi r24, 0x07 ; 7
+ 17bc: 90 e0 ldi r25, 0x00 ; 0
+ 17be: a5 01 movw r20, r10
+ 17c0: 94 01 movw r18, r8
+ 17c2: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 17c6: 79 01 movw r14, r18
+ 17c8: 8a 01 movw r16, r20
+ 17ca: 08 94 sec
+ 17cc: e1 08 sbc r14, r1
+ 17ce: f1 08 sbc r15, r1
+ 17d0: 01 09 sbc r16, r1
+ 17d2: 11 09 sbc r17, r1
+ 17d4: 9d 2d mov r25, r13
+ 17d6: 92 30 cpi r25, 0x02 ; 2
+ 17d8: c9 f4 brne .+50 ; 0x180c <_Z4tonehjm+0x1ea>
+ 17da: af ef ldi r26, 0xFF ; 255
+ 17dc: ea 16 cp r14, r26
+ 17de: f1 04 cpc r15, r1
+ 17e0: 01 05 cpc r16, r1
+ 17e2: 11 05 cpc r17, r1
+ 17e4: 09 f0 breq .+2 ; 0x17e8 <_Z4tonehjm+0x1c6>
+ 17e6: 08 f4 brcc .+2 ; 0x17ea <_Z4tonehjm+0x1c8>
+ 17e8: 85 c0 rjmp .+266 ; 0x18f4 <_Z4tonehjm+0x2d2>
+ 17ea: 68 e4 ldi r22, 0x48 ; 72
+ 17ec: 78 ee ldi r23, 0xE8 ; 232
+ 17ee: 81 e0 ldi r24, 0x01 ; 1
+ 17f0: 90 e0 ldi r25, 0x00 ; 0
+ 17f2: a5 01 movw r20, r10
+ 17f4: 94 01 movw r18, r8
+ 17f6: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 17fa: 79 01 movw r14, r18
+ 17fc: 8a 01 movw r16, r20
+ 17fe: 08 94 sec
+ 1800: e1 08 sbc r14, r1
+ 1802: f1 08 sbc r15, r1
+ 1804: 01 09 sbc r16, r1
+ 1806: 11 09 sbc r17, r1
+ 1808: 83 e0 ldi r24, 0x03 ; 3
+ 180a: 01 c0 rjmp .+2 ; 0x180e <_Z4tonehjm+0x1ec>
+ 180c: 82 e0 ldi r24, 0x02 ; 2
+ 180e: bf ef ldi r27, 0xFF ; 255
+ 1810: eb 16 cp r14, r27
+ 1812: f1 04 cpc r15, r1
+ 1814: 01 05 cpc r16, r1
+ 1816: 11 05 cpc r17, r1
+ 1818: 09 f0 breq .+2 ; 0x181c <_Z4tonehjm+0x1fa>
+ 181a: 08 f4 brcc .+2 ; 0x181e <_Z4tonehjm+0x1fc>
+ 181c: 65 c0 rjmp .+202 ; 0x18e8 <_Z4tonehjm+0x2c6>
+ 181e: 64 e2 ldi r22, 0x24 ; 36
+ 1820: 74 ef ldi r23, 0xF4 ; 244
+ 1822: 80 e0 ldi r24, 0x00 ; 0
+ 1824: 90 e0 ldi r25, 0x00 ; 0
+ 1826: a5 01 movw r20, r10
+ 1828: 94 01 movw r18, r8
+ 182a: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 182e: 79 01 movw r14, r18
+ 1830: 8a 01 movw r16, r20
+ 1832: 08 94 sec
+ 1834: e1 08 sbc r14, r1
+ 1836: f1 08 sbc r15, r1
+ 1838: 01 09 sbc r16, r1
+ 183a: 11 09 sbc r17, r1
+ 183c: dd 20 and r13, r13
+ 183e: e1 f0 breq .+56 ; 0x1878 <_Z4tonehjm+0x256>
+ 1840: ed 2d mov r30, r13
+ 1842: e2 30 cpi r30, 0x02 ; 2
+ 1844: d9 f4 brne .+54 ; 0x187c <_Z4tonehjm+0x25a>
+ 1846: ff ef ldi r31, 0xFF ; 255
+ 1848: ef 16 cp r14, r31
+ 184a: f1 04 cpc r15, r1
+ 184c: 01 05 cpc r16, r1
+ 184e: 11 05 cpc r17, r1
+ 1850: 09 f0 breq .+2 ; 0x1854 <_Z4tonehjm+0x232>
+ 1852: 08 f4 brcc .+2 ; 0x1856 <_Z4tonehjm+0x234>
+ 1854: 51 c0 rjmp .+162 ; 0x18f8 <_Z4tonehjm+0x2d6>
+ 1856: 62 e1 ldi r22, 0x12 ; 18
+ 1858: 7a e7 ldi r23, 0x7A ; 122
+ 185a: 80 e0 ldi r24, 0x00 ; 0
+ 185c: 90 e0 ldi r25, 0x00 ; 0
+ 185e: a5 01 movw r20, r10
+ 1860: 94 01 movw r18, r8
+ 1862: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 1866: 79 01 movw r14, r18
+ 1868: 8a 01 movw r16, r20
+ 186a: 08 94 sec
+ 186c: e1 08 sbc r14, r1
+ 186e: f1 08 sbc r15, r1
+ 1870: 01 09 sbc r16, r1
+ 1872: 11 09 sbc r17, r1
+ 1874: 85 e0 ldi r24, 0x05 ; 5
+ 1876: 03 c0 rjmp .+6 ; 0x187e <_Z4tonehjm+0x25c>
+ 1878: 83 e0 ldi r24, 0x03 ; 3
+ 187a: 01 c0 rjmp .+2 ; 0x187e <_Z4tonehjm+0x25c>
+ 187c: 84 e0 ldi r24, 0x04 ; 4
+ 187e: 9f ef ldi r25, 0xFF ; 255
+ 1880: e9 16 cp r14, r25
+ 1882: f1 04 cpc r15, r1
+ 1884: 01 05 cpc r16, r1
+ 1886: 11 05 cpc r17, r1
+ 1888: 79 f1 breq .+94 ; 0x18e8 <_Z4tonehjm+0x2c6>
+ 188a: 70 f1 brcs .+92 ; 0x18e8 <_Z4tonehjm+0x2c6>
+ 188c: 69 e0 ldi r22, 0x09 ; 9
+ 188e: 7d e3 ldi r23, 0x3D ; 61
+ 1890: 80 e0 ldi r24, 0x00 ; 0
+ 1892: 90 e0 ldi r25, 0x00 ; 0
+ 1894: a5 01 movw r20, r10
+ 1896: 94 01 movw r18, r8
+ 1898: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 189c: 79 01 movw r14, r18
+ 189e: 8a 01 movw r16, r20
+ 18a0: 08 94 sec
+ 18a2: e1 08 sbc r14, r1
+ 18a4: f1 08 sbc r15, r1
+ 18a6: 01 09 sbc r16, r1
+ 18a8: 11 09 sbc r17, r1
+ 18aa: dd 20 and r13, r13
+ 18ac: 11 f4 brne .+4 ; 0x18b2 <_Z4tonehjm+0x290>
+ 18ae: 84 e0 ldi r24, 0x04 ; 4
+ 18b0: 01 c0 rjmp .+2 ; 0x18b4 <_Z4tonehjm+0x292>
+ 18b2: 86 e0 ldi r24, 0x06 ; 6
+ 18b4: af ef ldi r26, 0xFF ; 255
+ 18b6: ea 16 cp r14, r26
+ 18b8: f1 04 cpc r15, r1
+ 18ba: 01 05 cpc r16, r1
+ 18bc: 11 05 cpc r17, r1
+ 18be: a1 f0 breq .+40 ; 0x18e8 <_Z4tonehjm+0x2c6>
+ 18c0: 98 f0 brcs .+38 ; 0x18e8 <_Z4tonehjm+0x2c6>
+ 18c2: 83 01 movw r16, r6
+ 18c4: 72 01 movw r14, r4
+ 18c6: 9a e0 ldi r25, 0x0A ; 10
+ 18c8: 16 95 lsr r17
+ 18ca: 07 95 ror r16
+ 18cc: f7 94 ror r15
+ 18ce: e7 94 ror r14
+ 18d0: 9a 95 dec r25
+ 18d2: d1 f7 brne .-12 ; 0x18c8 <_Z4tonehjm+0x2a6>
+ 18d4: 08 94 sec
+ 18d6: e1 08 sbc r14, r1
+ 18d8: f1 08 sbc r15, r1
+ 18da: 01 09 sbc r16, r1
+ 18dc: 11 09 sbc r17, r1
+ 18de: dd 20 and r13, r13
+ 18e0: 31 f0 breq .+12 ; 0x18ee <_Z4tonehjm+0x2cc>
+ 18e2: 87 e0 ldi r24, 0x07 ; 7
+ 18e4: 0a c0 rjmp .+20 ; 0x18fa <_Z4tonehjm+0x2d8>
+ 18e6: 81 e0 ldi r24, 0x01 ; 1
+ 18e8: dd 20 and r13, r13
+ 18ea: 11 f0 breq .+4 ; 0x18f0 <_Z4tonehjm+0x2ce>
+ 18ec: 06 c0 rjmp .+12 ; 0x18fa <_Z4tonehjm+0x2d8>
+ 18ee: 85 e0 ldi r24, 0x05 ; 5
+ 18f0: 85 bd out 0x25, r24 ; 37
+ 18f2: 3c c0 rjmp .+120 ; 0x196c <_Z4tonehjm+0x34a>
+ 18f4: 82 e0 ldi r24, 0x02 ; 2
+ 18f6: 01 c0 rjmp .+2 ; 0x18fa <_Z4tonehjm+0x2d8>
+ 18f8: 84 e0 ldi r24, 0x04 ; 4
+ 18fa: 80 93 b1 00 sts 0x00B1, r24
+ 18fe: 36 c0 rjmp .+108 ; 0x196c <_Z4tonehjm+0x34a>
+ 1900: 41 01 movw r8, r2
+ 1902: aa 24 eor r10, r10
+ 1904: bb 24 eor r11, r11
+ 1906: 60 e0 ldi r22, 0x00 ; 0
+ 1908: 79 e0 ldi r23, 0x09 ; 9
+ 190a: 8d e3 ldi r24, 0x3D ; 61
+ 190c: 90 e0 ldi r25, 0x00 ; 0
+ 190e: a5 01 movw r20, r10
+ 1910: 94 01 movw r18, r8
+ 1912: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 1916: 79 01 movw r14, r18
+ 1918: 8a 01 movw r16, r20
+ 191a: 08 94 sec
+ 191c: e1 08 sbc r14, r1
+ 191e: f1 08 sbc r15, r1
+ 1920: 01 09 sbc r16, r1
+ 1922: 11 09 sbc r17, r1
+ 1924: b0 e0 ldi r27, 0x00 ; 0
+ 1926: eb 16 cp r14, r27
+ 1928: b0 e0 ldi r27, 0x00 ; 0
+ 192a: fb 06 cpc r15, r27
+ 192c: b1 e0 ldi r27, 0x01 ; 1
+ 192e: 0b 07 cpc r16, r27
+ 1930: b0 e0 ldi r27, 0x00 ; 0
+ 1932: 1b 07 cpc r17, r27
+ 1934: 88 f0 brcs .+34 ; 0x1958 <_Z4tonehjm+0x336>
+ 1936: 64 e2 ldi r22, 0x24 ; 36
+ 1938: 74 ef ldi r23, 0xF4 ; 244
+ 193a: 80 e0 ldi r24, 0x00 ; 0
+ 193c: 90 e0 ldi r25, 0x00 ; 0
+ 193e: a5 01 movw r20, r10
+ 1940: 94 01 movw r18, r8
+ 1942: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 1946: 79 01 movw r14, r18
+ 1948: 8a 01 movw r16, r20
+ 194a: 08 94 sec
+ 194c: e1 08 sbc r14, r1
+ 194e: f1 08 sbc r15, r1
+ 1950: 01 09 sbc r16, r1
+ 1952: 11 09 sbc r17, r1
+ 1954: 93 e0 ldi r25, 0x03 ; 3
+ 1956: 01 c0 rjmp .+2 ; 0x195a <_Z4tonehjm+0x338>
+ 1958: 91 e0 ldi r25, 0x01 ; 1
+ 195a: ed 2d mov r30, r13
+ 195c: e1 30 cpi r30, 0x01 ; 1
+ 195e: 31 f4 brne .+12 ; 0x196c <_Z4tonehjm+0x34a>
+ 1960: 80 91 81 00 lds r24, 0x0081
+ 1964: 88 7f andi r24, 0xF8 ; 248
+ 1966: 89 2b or r24, r25
+ 1968: 80 93 81 00 sts 0x0081, r24
+ 196c: 89 81 ldd r24, Y+1 ; 0x01
+ 196e: 9a 81 ldd r25, Y+2 ; 0x02
+ 1970: ab 81 ldd r26, Y+3 ; 0x03
+ 1972: bc 81 ldd r27, Y+4 ; 0x04
+ 1974: 00 97 sbiw r24, 0x00 ; 0
+ 1976: a1 05 cpc r26, r1
+ 1978: b1 05 cpc r27, r1
+ 197a: 91 f0 breq .+36 ; 0x19a0 <_Z4tonehjm+0x37e>
+ 197c: b1 01 movw r22, r2
+ 197e: 66 0f add r22, r22
+ 1980: 77 1f adc r23, r23
+ 1982: 80 e0 ldi r24, 0x00 ; 0
+ 1984: 90 e0 ldi r25, 0x00 ; 0
+ 1986: 29 81 ldd r18, Y+1 ; 0x01
+ 1988: 3a 81 ldd r19, Y+2 ; 0x02
+ 198a: 4b 81 ldd r20, Y+3 ; 0x03
+ 198c: 5c 81 ldd r21, Y+4 ; 0x04
+ 198e: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 1992: 28 ee ldi r18, 0xE8 ; 232
+ 1994: 33 e0 ldi r19, 0x03 ; 3
+ 1996: 40 e0 ldi r20, 0x00 ; 0
+ 1998: 50 e0 ldi r21, 0x00 ; 0
+ 199a: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 199e: 03 c0 rjmp .+6 ; 0x19a6 <_Z4tonehjm+0x384>
+ 19a0: 2f ef ldi r18, 0xFF ; 255
+ 19a2: 3f ef ldi r19, 0xFF ; 255
+ 19a4: a9 01 movw r20, r18
+ 19a6: 9d 2d mov r25, r13
+ 19a8: 91 30 cpi r25, 0x01 ; 1
+ 19aa: 99 f0 breq .+38 ; 0x19d2 <_Z4tonehjm+0x3b0>
+ 19ac: 92 30 cpi r25, 0x02 ; 2
+ 19ae: 19 f1 breq .+70 ; 0x19f6 <_Z4tonehjm+0x3d4>
+ 19b0: dd 20 and r13, r13
+ 19b2: 81 f5 brne .+96 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 19b4: e7 bc out 0x27, r14 ; 39
+ 19b6: 20 93 a7 03 sts 0x03A7, r18
+ 19ba: 30 93 a8 03 sts 0x03A8, r19
+ 19be: 40 93 a9 03 sts 0x03A9, r20
+ 19c2: 50 93 aa 03 sts 0x03AA, r21
+ 19c6: 80 91 6e 00 lds r24, 0x006E
+ 19ca: 82 60 ori r24, 0x02 ; 2
+ 19cc: 80 93 6e 00 sts 0x006E, r24
+ 19d0: 21 c0 rjmp .+66 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 19d2: f0 92 89 00 sts 0x0089, r15
+ 19d6: e0 92 88 00 sts 0x0088, r14
+ 19da: 20 93 ae 03 sts 0x03AE, r18
+ 19de: 30 93 af 03 sts 0x03AF, r19
+ 19e2: 40 93 b0 03 sts 0x03B0, r20
+ 19e6: 50 93 b1 03 sts 0x03B1, r21
+ 19ea: 80 91 6f 00 lds r24, 0x006F
+ 19ee: 82 60 ori r24, 0x02 ; 2
+ 19f0: 80 93 6f 00 sts 0x006F, r24
+ 19f4: 0f c0 rjmp .+30 ; 0x1a14 <_Z4tonehjm+0x3f2>
+ 19f6: e0 92 b3 00 sts 0x00B3, r14
+ 19fa: 20 93 b5 03 sts 0x03B5, r18
+ 19fe: 30 93 b6 03 sts 0x03B6, r19
+ 1a02: 40 93 b7 03 sts 0x03B7, r20
+ 1a06: 50 93 b8 03 sts 0x03B8, r21
+ 1a0a: 80 91 70 00 lds r24, 0x0070
+ 1a0e: 82 60 ori r24, 0x02 ; 2
+ 1a10: 80 93 70 00 sts 0x0070, r24
+ 1a14: 0f 90 pop r0
+ 1a16: 0f 90 pop r0
+ 1a18: 0f 90 pop r0
+ 1a1a: 0f 90 pop r0
+ 1a1c: cf 91 pop r28
+ 1a1e: df 91 pop r29
+ 1a20: 1f 91 pop r17
+ 1a22: 0f 91 pop r16
+ 1a24: ff 90 pop r15
+ 1a26: ef 90 pop r14
+ 1a28: df 90 pop r13
+ 1a2a: bf 90 pop r11
+ 1a2c: af 90 pop r10
+ 1a2e: 9f 90 pop r9
+ 1a30: 8f 90 pop r8
+ 1a32: 7f 90 pop r7
+ 1a34: 6f 90 pop r6
+ 1a36: 5f 90 pop r5
+ 1a38: 4f 90 pop r4
+ 1a3a: 3f 90 pop r3
+ 1a3c: 2f 90 pop r2
+ 1a3e: 08 95 ret
+
+00001a40 <_Z12disableTimerh>:
+ 1a40: 81 30 cpi r24, 0x01 ; 1
+ 1a42: 41 f0 breq .+16 ; 0x1a54 <_Z12disableTimerh+0x14>
+ 1a44: 81 30 cpi r24, 0x01 ; 1
+ 1a46: 18 f0 brcs .+6 ; 0x1a4e <_Z12disableTimerh+0xe>
+ 1a48: 82 30 cpi r24, 0x02 ; 2
+ 1a4a: d1 f4 brne .+52 ; 0x1a80 <_Z12disableTimerh+0x40>
+ 1a4c: 09 c0 rjmp .+18 ; 0x1a60 <_Z12disableTimerh+0x20>
+ 1a4e: 10 92 6e 00 sts 0x006E, r1
+ 1a52: 08 95 ret
+ 1a54: 80 91 6f 00 lds r24, 0x006F
+ 1a58: 8d 7f andi r24, 0xFD ; 253
+ 1a5a: 80 93 6f 00 sts 0x006F, r24
+ 1a5e: 08 95 ret
+ 1a60: 80 91 70 00 lds r24, 0x0070
+ 1a64: 8d 7f andi r24, 0xFD ; 253
+ 1a66: 80 93 70 00 sts 0x0070, r24
+ 1a6a: 81 e0 ldi r24, 0x01 ; 1
+ 1a6c: 80 93 b0 00 sts 0x00B0, r24
+ 1a70: 80 91 b1 00 lds r24, 0x00B1
+ 1a74: 88 7f andi r24, 0xF8 ; 248
+ 1a76: 84 60 ori r24, 0x04 ; 4
+ 1a78: 80 93 b1 00 sts 0x00B1, r24
+ 1a7c: 10 92 b3 00 sts 0x00B3, r1
+ 1a80: 08 95 ret
+
+00001a82 <_Z6noToneh>:
+ 1a82: 1f 93 push r17
+ 1a84: 18 2f mov r17, r24
+ 1a86: 80 91 ab 01 lds r24, 0x01AB
+ 1a8a: 81 17 cp r24, r17
+ 1a8c: 39 f4 brne .+14 ; 0x1a9c <_Z6noToneh+0x1a>
+ 1a8e: e8 e6 ldi r30, 0x68 ; 104
+ 1a90: f0 e0 ldi r31, 0x00 ; 0
+ 1a92: 84 91 lpm r24, Z+
+ 1a94: 9f ef ldi r25, 0xFF ; 255
+ 1a96: 90 93 ab 01 sts 0x01AB, r25
+ 1a9a: 01 c0 rjmp .+2 ; 0x1a9e <_Z6noToneh+0x1c>
+ 1a9c: 8f ef ldi r24, 0xFF ; 255
+ 1a9e: 0e 94 20 0d call 0x1a40 ; 0x1a40 <_Z12disableTimerh>
+ 1aa2: 81 2f mov r24, r17
+ 1aa4: 60 e0 ldi r22, 0x00 ; 0
+ 1aa6: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 1aaa: 1f 91 pop r17
+ 1aac: 08 95 ret
+
+00001aae <__vector_7>:
+ 1aae: 1f 92 push r1
+ 1ab0: 0f 92 push r0
+ 1ab2: 0f b6 in r0, 0x3f ; 63
+ 1ab4: 0f 92 push r0
+ 1ab6: 11 24 eor r1, r1
+ 1ab8: 2f 93 push r18
+ 1aba: 3f 93 push r19
+ 1abc: 4f 93 push r20
+ 1abe: 5f 93 push r21
+ 1ac0: 6f 93 push r22
+ 1ac2: 7f 93 push r23
+ 1ac4: 8f 93 push r24
+ 1ac6: 9f 93 push r25
+ 1ac8: af 93 push r26
+ 1aca: bf 93 push r27
+ 1acc: ef 93 push r30
+ 1ace: ff 93 push r31
+ 1ad0: 80 91 b5 03 lds r24, 0x03B5
+ 1ad4: 90 91 b6 03 lds r25, 0x03B6
+ 1ad8: a0 91 b7 03 lds r26, 0x03B7
+ 1adc: b0 91 b8 03 lds r27, 0x03B8
+ 1ae0: 00 97 sbiw r24, 0x00 ; 0
+ 1ae2: a1 05 cpc r26, r1
+ 1ae4: b1 05 cpc r27, r1
+ 1ae6: 51 f1 breq .+84 ; 0x1b3c <__vector_7+0x8e>
+ 1ae8: e0 91 b9 03 lds r30, 0x03B9
+ 1aec: f0 91 ba 03 lds r31, 0x03BA
+ 1af0: 80 81 ld r24, Z
+ 1af2: 90 91 bb 03 lds r25, 0x03BB
+ 1af6: 89 27 eor r24, r25
+ 1af8: 80 83 st Z, r24
+ 1afa: 80 91 b5 03 lds r24, 0x03B5
+ 1afe: 90 91 b6 03 lds r25, 0x03B6
+ 1b02: a0 91 b7 03 lds r26, 0x03B7
+ 1b06: b0 91 b8 03 lds r27, 0x03B8
+ 1b0a: 18 16 cp r1, r24
+ 1b0c: 19 06 cpc r1, r25
+ 1b0e: 1a 06 cpc r1, r26
+ 1b10: 1b 06 cpc r1, r27
+ 1b12: c4 f4 brge .+48 ; 0x1b44 <__vector_7+0x96>
+ 1b14: 80 91 b5 03 lds r24, 0x03B5
+ 1b18: 90 91 b6 03 lds r25, 0x03B6
+ 1b1c: a0 91 b7 03 lds r26, 0x03B7
+ 1b20: b0 91 b8 03 lds r27, 0x03B8
+ 1b24: 01 97 sbiw r24, 0x01 ; 1
+ 1b26: a1 09 sbc r26, r1
+ 1b28: b1 09 sbc r27, r1
+ 1b2a: 80 93 b5 03 sts 0x03B5, r24
+ 1b2e: 90 93 b6 03 sts 0x03B6, r25
+ 1b32: a0 93 b7 03 sts 0x03B7, r26
+ 1b36: b0 93 b8 03 sts 0x03B8, r27
+ 1b3a: 04 c0 rjmp .+8 ; 0x1b44 <__vector_7+0x96>
+ 1b3c: 80 91 ab 01 lds r24, 0x01AB
+ 1b40: 0e 94 41 0d call 0x1a82 ; 0x1a82 <_Z6noToneh>
+ 1b44: ff 91 pop r31
+ 1b46: ef 91 pop r30
+ 1b48: bf 91 pop r27
+ 1b4a: af 91 pop r26
+ 1b4c: 9f 91 pop r25
+ 1b4e: 8f 91 pop r24
+ 1b50: 7f 91 pop r23
+ 1b52: 6f 91 pop r22
+ 1b54: 5f 91 pop r21
+ 1b56: 4f 91 pop r20
+ 1b58: 3f 91 pop r19
+ 1b5a: 2f 91 pop r18
+ 1b5c: 0f 90 pop r0
+ 1b5e: 0f be out 0x3f, r0 ; 63
+ 1b60: 0f 90 pop r0
+ 1b62: 1f 90 pop r1
+ 1b64: 18 95 reti
+
+00001b66 <attachInterrupt>:
+ 1b66: 82 30 cpi r24, 0x02 ; 2
+ 1b68: e8 f4 brcc .+58 ; 0x1ba4 <attachInterrupt+0x3e>
+ 1b6a: e8 2f mov r30, r24
+ 1b6c: f0 e0 ldi r31, 0x00 ; 0
+ 1b6e: ee 0f add r30, r30
+ 1b70: ff 1f adc r31, r31
+ 1b72: e4 54 subi r30, 0x44 ; 68
+ 1b74: fc 4f sbci r31, 0xFC ; 252
+ 1b76: 71 83 std Z+1, r23 ; 0x01
+ 1b78: 60 83 st Z, r22
+ 1b7a: 81 30 cpi r24, 0x01 ; 1
+ 1b7c: 41 f0 breq .+16 ; 0x1b8e <attachInterrupt+0x28>
+ 1b7e: 80 91 69 00 lds r24, 0x0069
+ 1b82: 8c 7f andi r24, 0xFC ; 252
+ 1b84: 84 2b or r24, r20
+ 1b86: 80 93 69 00 sts 0x0069, r24
+ 1b8a: e8 9a sbi 0x1d, 0 ; 29
+ 1b8c: 08 95 ret
+ 1b8e: 80 91 69 00 lds r24, 0x0069
+ 1b92: 44 0f add r20, r20
+ 1b94: 55 1f adc r21, r21
+ 1b96: 44 0f add r20, r20
+ 1b98: 55 1f adc r21, r21
+ 1b9a: 83 7f andi r24, 0xF3 ; 243
+ 1b9c: 84 2b or r24, r20
+ 1b9e: 80 93 69 00 sts 0x0069, r24
+ 1ba2: e9 9a sbi 0x1d, 1 ; 29
+ 1ba4: 08 95 ret
+
+00001ba6 <detachInterrupt>:
+ 1ba6: 82 30 cpi r24, 0x02 ; 2
+ 1ba8: 68 f4 brcc .+26 ; 0x1bc4 <detachInterrupt+0x1e>
+ 1baa: 81 30 cpi r24, 0x01 ; 1
+ 1bac: 11 f0 breq .+4 ; 0x1bb2 <detachInterrupt+0xc>
+ 1bae: e8 98 cbi 0x1d, 0 ; 29
+ 1bb0: 01 c0 rjmp .+2 ; 0x1bb4 <detachInterrupt+0xe>
+ 1bb2: e9 98 cbi 0x1d, 1 ; 29
+ 1bb4: e8 2f mov r30, r24
+ 1bb6: f0 e0 ldi r31, 0x00 ; 0
+ 1bb8: ee 0f add r30, r30
+ 1bba: ff 1f adc r31, r31
+ 1bbc: e4 54 subi r30, 0x44 ; 68
+ 1bbe: fc 4f sbci r31, 0xFC ; 252
+ 1bc0: 11 82 std Z+1, r1 ; 0x01
+ 1bc2: 10 82 st Z, r1
+ 1bc4: 08 95 ret
+
+00001bc6 <__vector_1>:
+ 1bc6: 1f 92 push r1
+ 1bc8: 0f 92 push r0
+ 1bca: 0f b6 in r0, 0x3f ; 63
+ 1bcc: 0f 92 push r0
+ 1bce: 11 24 eor r1, r1
+ 1bd0: 2f 93 push r18
+ 1bd2: 3f 93 push r19
+ 1bd4: 4f 93 push r20
+ 1bd6: 5f 93 push r21
+ 1bd8: 6f 93 push r22
+ 1bda: 7f 93 push r23
+ 1bdc: 8f 93 push r24
+ 1bde: 9f 93 push r25
+ 1be0: af 93 push r26
+ 1be2: bf 93 push r27
+ 1be4: ef 93 push r30
+ 1be6: ff 93 push r31
+ 1be8: 80 91 bc 03 lds r24, 0x03BC
+ 1bec: 90 91 bd 03 lds r25, 0x03BD
+ 1bf0: 00 97 sbiw r24, 0x00 ; 0
+ 1bf2: 29 f0 breq .+10 ; 0x1bfe <__vector_1+0x38>
+ 1bf4: e0 91 bc 03 lds r30, 0x03BC
+ 1bf8: f0 91 bd 03 lds r31, 0x03BD
+ 1bfc: 09 95 icall
+ 1bfe: ff 91 pop r31
+ 1c00: ef 91 pop r30
+ 1c02: bf 91 pop r27
+ 1c04: af 91 pop r26
+ 1c06: 9f 91 pop r25
+ 1c08: 8f 91 pop r24
+ 1c0a: 7f 91 pop r23
+ 1c0c: 6f 91 pop r22
+ 1c0e: 5f 91 pop r21
+ 1c10: 4f 91 pop r20
+ 1c12: 3f 91 pop r19
+ 1c14: 2f 91 pop r18
+ 1c16: 0f 90 pop r0
+ 1c18: 0f be out 0x3f, r0 ; 63
+ 1c1a: 0f 90 pop r0
+ 1c1c: 1f 90 pop r1
+ 1c1e: 18 95 reti
+
+00001c20 <__vector_2>:
+ 1c20: 1f 92 push r1
+ 1c22: 0f 92 push r0
+ 1c24: 0f b6 in r0, 0x3f ; 63
+ 1c26: 0f 92 push r0
+ 1c28: 11 24 eor r1, r1
+ 1c2a: 2f 93 push r18
+ 1c2c: 3f 93 push r19
+ 1c2e: 4f 93 push r20
+ 1c30: 5f 93 push r21
+ 1c32: 6f 93 push r22
+ 1c34: 7f 93 push r23
+ 1c36: 8f 93 push r24
+ 1c38: 9f 93 push r25
+ 1c3a: af 93 push r26
+ 1c3c: bf 93 push r27
+ 1c3e: ef 93 push r30
+ 1c40: ff 93 push r31
+ 1c42: 80 91 be 03 lds r24, 0x03BE
+ 1c46: 90 91 bf 03 lds r25, 0x03BF
+ 1c4a: 00 97 sbiw r24, 0x00 ; 0
+ 1c4c: 29 f0 breq .+10 ; 0x1c58 <__vector_2+0x38>
+ 1c4e: e0 91 be 03 lds r30, 0x03BE
+ 1c52: f0 91 bf 03 lds r31, 0x03BF
+ 1c56: 09 95 icall
+ 1c58: ff 91 pop r31
+ 1c5a: ef 91 pop r30
+ 1c5c: bf 91 pop r27
+ 1c5e: af 91 pop r26
+ 1c60: 9f 91 pop r25
+ 1c62: 8f 91 pop r24
+ 1c64: 7f 91 pop r23
+ 1c66: 6f 91 pop r22
+ 1c68: 5f 91 pop r21
+ 1c6a: 4f 91 pop r20
+ 1c6c: 3f 91 pop r19
+ 1c6e: 2f 91 pop r18
+ 1c70: 0f 90 pop r0
+ 1c72: 0f be out 0x3f, r0 ; 63
+ 1c74: 0f 90 pop r0
+ 1c76: 1f 90 pop r1
+ 1c78: 18 95 reti
+
+00001c7a <_Z10randomSeedj>:
+ 1c7a: 00 97 sbiw r24, 0x00 ; 0
+ 1c7c: 29 f0 breq .+10 ; 0x1c88 <_Z10randomSeedj+0xe>
+ 1c7e: bc 01 movw r22, r24
+ 1c80: 80 e0 ldi r24, 0x00 ; 0
+ 1c82: 90 e0 ldi r25, 0x00 ; 0
+ 1c84: 0e 94 da 26 call 0x4db4 ; 0x4db4 <srandom>
+ 1c88: 08 95 ret
+
+00001c8a <_Z6randoml>:
+ 1c8a: ef 92 push r14
+ 1c8c: ff 92 push r15
+ 1c8e: 0f 93 push r16
+ 1c90: 1f 93 push r17
+ 1c92: 7b 01 movw r14, r22
+ 1c94: 8c 01 movw r16, r24
+ 1c96: 61 15 cp r22, r1
+ 1c98: 71 05 cpc r23, r1
+ 1c9a: 81 05 cpc r24, r1
+ 1c9c: 91 05 cpc r25, r1
+ 1c9e: 49 f0 breq .+18 ; 0x1cb2 <_Z6randoml+0x28>
+ 1ca0: 0e 94 d5 26 call 0x4daa ; 0x4daa <random>
+ 1ca4: a8 01 movw r20, r16
+ 1ca6: 97 01 movw r18, r14
+ 1ca8: 0e 94 ef 24 call 0x49de ; 0x49de <__divmodsi4>
+ 1cac: 9b 01 movw r18, r22
+ 1cae: ac 01 movw r20, r24
+ 1cb0: 03 c0 rjmp .+6 ; 0x1cb8 <_Z6randoml+0x2e>
+ 1cb2: 20 e0 ldi r18, 0x00 ; 0
+ 1cb4: 30 e0 ldi r19, 0x00 ; 0
+ 1cb6: a9 01 movw r20, r18
+ 1cb8: b9 01 movw r22, r18
+ 1cba: ca 01 movw r24, r20
+ 1cbc: 1f 91 pop r17
+ 1cbe: 0f 91 pop r16
+ 1cc0: ff 90 pop r15
+ 1cc2: ef 90 pop r14
+ 1cc4: 08 95 ret
+
+00001cc6 <_Z6randomll>:
+ 1cc6: ef 92 push r14
+ 1cc8: ff 92 push r15
+ 1cca: 0f 93 push r16
+ 1ccc: 1f 93 push r17
+ 1cce: 7b 01 movw r14, r22
+ 1cd0: 8c 01 movw r16, r24
+ 1cd2: 62 17 cp r22, r18
+ 1cd4: 73 07 cpc r23, r19
+ 1cd6: 84 07 cpc r24, r20
+ 1cd8: 95 07 cpc r25, r21
+ 1cda: 64 f4 brge .+24 ; 0x1cf4 <_Z6randomll+0x2e>
+ 1cdc: ca 01 movw r24, r20
+ 1cde: b9 01 movw r22, r18
+ 1ce0: 6e 19 sub r22, r14
+ 1ce2: 7f 09 sbc r23, r15
+ 1ce4: 80 0b sbc r24, r16
+ 1ce6: 91 0b sbc r25, r17
+ 1ce8: 0e 94 45 0e call 0x1c8a ; 0x1c8a <_Z6randoml>
+ 1cec: e6 0e add r14, r22
+ 1cee: f7 1e adc r15, r23
+ 1cf0: 08 1f adc r16, r24
+ 1cf2: 19 1f adc r17, r25
+ 1cf4: b7 01 movw r22, r14
+ 1cf6: c8 01 movw r24, r16
+ 1cf8: 1f 91 pop r17
+ 1cfa: 0f 91 pop r16
+ 1cfc: ff 90 pop r15
+ 1cfe: ef 90 pop r14
+ 1d00: 08 95 ret
+
+00001d02 <_Z3maplllll>:
+ 1d02: 2f 92 push r2
+ 1d04: 3f 92 push r3
+ 1d06: 4f 92 push r4
+ 1d08: 5f 92 push r5
+ 1d0a: 6f 92 push r6
+ 1d0c: 7f 92 push r7
+ 1d0e: 8f 92 push r8
+ 1d10: 9f 92 push r9
+ 1d12: af 92 push r10
+ 1d14: bf 92 push r11
+ 1d16: cf 92 push r12
+ 1d18: df 92 push r13
+ 1d1a: ef 92 push r14
+ 1d1c: ff 92 push r15
+ 1d1e: 0f 93 push r16
+ 1d20: 1f 93 push r17
+ 1d22: df 93 push r29
+ 1d24: cf 93 push r28
+ 1d26: cd b7 in r28, 0x3d ; 61
+ 1d28: de b7 in r29, 0x3e ; 62
+ 1d2a: 3b 01 movw r6, r22
+ 1d2c: 4c 01 movw r8, r24
+ 1d2e: 19 01 movw r2, r18
+ 1d30: 2a 01 movw r4, r20
+ 1d32: 6d 89 ldd r22, Y+21 ; 0x15
+ 1d34: 7e 89 ldd r23, Y+22 ; 0x16
+ 1d36: 8f 89 ldd r24, Y+23 ; 0x17
+ 1d38: 98 8d ldd r25, Y+24 ; 0x18
+ 1d3a: 6a 19 sub r22, r10
+ 1d3c: 7b 09 sbc r23, r11
+ 1d3e: 8c 09 sbc r24, r12
+ 1d40: 9d 09 sbc r25, r13
+ 1d42: 62 1a sub r6, r18
+ 1d44: 73 0a sbc r7, r19
+ 1d46: 84 0a sbc r8, r20
+ 1d48: 95 0a sbc r9, r21
+ 1d4a: a4 01 movw r20, r8
+ 1d4c: 93 01 movw r18, r6
+ 1d4e: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 1d52: e2 18 sub r14, r2
+ 1d54: f3 08 sbc r15, r3
+ 1d56: 04 09 sbc r16, r4
+ 1d58: 15 09 sbc r17, r5
+ 1d5a: a8 01 movw r20, r16
+ 1d5c: 97 01 movw r18, r14
+ 1d5e: 0e 94 ef 24 call 0x49de ; 0x49de <__divmodsi4>
+ 1d62: 2a 0d add r18, r10
+ 1d64: 3b 1d adc r19, r11
+ 1d66: 4c 1d adc r20, r12
+ 1d68: 5d 1d adc r21, r13
+ 1d6a: b9 01 movw r22, r18
+ 1d6c: ca 01 movw r24, r20
+ 1d6e: cf 91 pop r28
+ 1d70: df 91 pop r29
+ 1d72: 1f 91 pop r17
+ 1d74: 0f 91 pop r16
+ 1d76: ff 90 pop r15
+ 1d78: ef 90 pop r14
+ 1d7a: df 90 pop r13
+ 1d7c: cf 90 pop r12
+ 1d7e: bf 90 pop r11
+ 1d80: af 90 pop r10
+ 1d82: 9f 90 pop r9
+ 1d84: 8f 90 pop r8
+ 1d86: 7f 90 pop r7
+ 1d88: 6f 90 pop r6
+ 1d8a: 5f 90 pop r5
+ 1d8c: 4f 90 pop r4
+ 1d8e: 3f 90 pop r3
+ 1d90: 2f 90 pop r2
+ 1d92: 08 95 ret
+
+00001d94 <_Z8makeWordj>:
+ 1d94: 08 95 ret
+
+00001d96 <_Z8makeWordhh>:
+ 1d96: 70 e0 ldi r23, 0x00 ; 0
+ 1d98: 38 2f mov r19, r24
+ 1d9a: 20 e0 ldi r18, 0x00 ; 0
+ 1d9c: 62 2b or r22, r18
+ 1d9e: 73 2b or r23, r19
+ 1da0: cb 01 movw r24, r22
+ 1da2: 08 95 ret
+
+00001da4 <_ZN6StringD1Ev>:
+ 1da4: fc 01 movw r30, r24
+ 1da6: 80 81 ld r24, Z
+ 1da8: 91 81 ldd r25, Z+1 ; 0x01
+ 1daa: 0e 94 f5 25 call 0x4bea ; 0x4bea <free>
+ 1dae: 08 95 ret
+
+00001db0 <_ZN6String10invalidateEv>:
+ 1db0: cf 93 push r28
+ 1db2: df 93 push r29
+ 1db4: ec 01 movw r28, r24
+ 1db6: 88 81 ld r24, Y
+ 1db8: 99 81 ldd r25, Y+1 ; 0x01
+ 1dba: 00 97 sbiw r24, 0x00 ; 0
+ 1dbc: 11 f0 breq .+4 ; 0x1dc2 <_ZN6String10invalidateEv+0x12>
+ 1dbe: 0e 94 f5 25 call 0x4bea ; 0x4bea <free>
+ 1dc2: 19 82 std Y+1, r1 ; 0x01
+ 1dc4: 18 82 st Y, r1
+ 1dc6: 1d 82 std Y+5, r1 ; 0x05
+ 1dc8: 1c 82 std Y+4, r1 ; 0x04
+ 1dca: 1b 82 std Y+3, r1 ; 0x03
+ 1dcc: 1a 82 std Y+2, r1 ; 0x02
+ 1dce: df 91 pop r29
+ 1dd0: cf 91 pop r28
+ 1dd2: 08 95 ret
+
+00001dd4 <_ZN6String12changeBufferEj>:
+ 1dd4: 0f 93 push r16
+ 1dd6: 1f 93 push r17
+ 1dd8: cf 93 push r28
+ 1dda: df 93 push r29
+ 1ddc: ec 01 movw r28, r24
+ 1dde: 8b 01 movw r16, r22
+ 1de0: 6f 5f subi r22, 0xFF ; 255
+ 1de2: 7f 4f sbci r23, 0xFF ; 255
+ 1de4: 88 81 ld r24, Y
+ 1de6: 99 81 ldd r25, Y+1 ; 0x01
+ 1de8: 0e 94 e3 26 call 0x4dc6 ; 0x4dc6 <realloc>
+ 1dec: 00 97 sbiw r24, 0x00 ; 0
+ 1dee: 31 f0 breq .+12 ; 0x1dfc <_ZN6String12changeBufferEj+0x28>
+ 1df0: 99 83 std Y+1, r25 ; 0x01
+ 1df2: 88 83 st Y, r24
+ 1df4: 1b 83 std Y+3, r17 ; 0x03
+ 1df6: 0a 83 std Y+2, r16 ; 0x02
+ 1df8: 81 e0 ldi r24, 0x01 ; 1
+ 1dfa: 01 c0 rjmp .+2 ; 0x1dfe <_ZN6String12changeBufferEj+0x2a>
+ 1dfc: 80 e0 ldi r24, 0x00 ; 0
+ 1dfe: df 91 pop r29
+ 1e00: cf 91 pop r28
+ 1e02: 1f 91 pop r17
+ 1e04: 0f 91 pop r16
+ 1e06: 08 95 ret
+
+00001e08 <_ZN6String7reserveEj>:
+ 1e08: cf 93 push r28
+ 1e0a: df 93 push r29
+ 1e0c: ec 01 movw r28, r24
+ 1e0e: 88 81 ld r24, Y
+ 1e10: 99 81 ldd r25, Y+1 ; 0x01
+ 1e12: 00 97 sbiw r24, 0x00 ; 0
+ 1e14: 29 f0 breq .+10 ; 0x1e20 <_ZN6String7reserveEj+0x18>
+ 1e16: 8a 81 ldd r24, Y+2 ; 0x02
+ 1e18: 9b 81 ldd r25, Y+3 ; 0x03
+ 1e1a: 86 17 cp r24, r22
+ 1e1c: 97 07 cpc r25, r23
+ 1e1e: 78 f4 brcc .+30 ; 0x1e3e <_ZN6String7reserveEj+0x36>
+ 1e20: ce 01 movw r24, r28
+ 1e22: 0e 94 ea 0e call 0x1dd4 ; 0x1dd4 <_ZN6String12changeBufferEj>
+ 1e26: 88 23 and r24, r24
+ 1e28: 41 f0 breq .+16 ; 0x1e3a <_ZN6String7reserveEj+0x32>
+ 1e2a: 8c 81 ldd r24, Y+4 ; 0x04
+ 1e2c: 9d 81 ldd r25, Y+5 ; 0x05
+ 1e2e: 00 97 sbiw r24, 0x00 ; 0
+ 1e30: 31 f4 brne .+12 ; 0x1e3e <_ZN6String7reserveEj+0x36>
+ 1e32: e8 81 ld r30, Y
+ 1e34: f9 81 ldd r31, Y+1 ; 0x01
+ 1e36: 10 82 st Z, r1
+ 1e38: 02 c0 rjmp .+4 ; 0x1e3e <_ZN6String7reserveEj+0x36>
+ 1e3a: 80 e0 ldi r24, 0x00 ; 0
+ 1e3c: 01 c0 rjmp .+2 ; 0x1e40 <_ZN6String7reserveEj+0x38>
+ 1e3e: 81 e0 ldi r24, 0x01 ; 1
+ 1e40: df 91 pop r29
+ 1e42: cf 91 pop r28
+ 1e44: 08 95 ret
+
+00001e46 <_ZN6String4copyEPKcj>:
+ 1e46: ef 92 push r14
+ 1e48: ff 92 push r15
+ 1e4a: 0f 93 push r16
+ 1e4c: 1f 93 push r17
+ 1e4e: cf 93 push r28
+ 1e50: df 93 push r29
+ 1e52: ec 01 movw r28, r24
+ 1e54: 7b 01 movw r14, r22
+ 1e56: 8a 01 movw r16, r20
+ 1e58: ba 01 movw r22, r20
+ 1e5a: 0e 94 04 0f call 0x1e08 ; 0x1e08 <_ZN6String7reserveEj>
+ 1e5e: 88 23 and r24, r24
+ 1e60: 21 f4 brne .+8 ; 0x1e6a <_ZN6String4copyEPKcj+0x24>
+ 1e62: ce 01 movw r24, r28
+ 1e64: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 1e68: 07 c0 rjmp .+14 ; 0x1e78 <_ZN6String4copyEPKcj+0x32>
+ 1e6a: 1d 83 std Y+5, r17 ; 0x05
+ 1e6c: 0c 83 std Y+4, r16 ; 0x04
+ 1e6e: 88 81 ld r24, Y
+ 1e70: 99 81 ldd r25, Y+1 ; 0x01
+ 1e72: b7 01 movw r22, r14
+ 1e74: 0e 94 29 28 call 0x5052 ; 0x5052 <strcpy>
+ 1e78: ce 01 movw r24, r28
+ 1e7a: df 91 pop r29
+ 1e7c: cf 91 pop r28
+ 1e7e: 1f 91 pop r17
+ 1e80: 0f 91 pop r16
+ 1e82: ff 90 pop r15
+ 1e84: ef 90 pop r14
+ 1e86: 08 95 ret
+
+00001e88 <_ZN6StringC1EPKc>:
+ 1e88: cf 93 push r28
+ 1e8a: df 93 push r29
+ 1e8c: fc 01 movw r30, r24
+ 1e8e: 11 82 std Z+1, r1 ; 0x01
+ 1e90: 10 82 st Z, r1
+ 1e92: 13 82 std Z+3, r1 ; 0x03
+ 1e94: 12 82 std Z+2, r1 ; 0x02
+ 1e96: 15 82 std Z+5, r1 ; 0x05
+ 1e98: 14 82 std Z+4, r1 ; 0x04
+ 1e9a: 16 82 std Z+6, r1 ; 0x06
+ 1e9c: 61 15 cp r22, r1
+ 1e9e: 71 05 cpc r23, r1
+ 1ea0: 59 f0 breq .+22 ; 0x1eb8 <_ZN6StringC1EPKc+0x30>
+ 1ea2: eb 01 movw r28, r22
+ 1ea4: 09 90 ld r0, Y+
+ 1ea6: 00 20 and r0, r0
+ 1ea8: e9 f7 brne .-6 ; 0x1ea4 <_ZN6StringC1EPKc+0x1c>
+ 1eaa: ae 01 movw r20, r28
+ 1eac: 41 50 subi r20, 0x01 ; 1
+ 1eae: 50 40 sbci r21, 0x00 ; 0
+ 1eb0: 46 1b sub r20, r22
+ 1eb2: 57 0b sbc r21, r23
+ 1eb4: 0e 94 23 0f call 0x1e46 ; 0x1e46 <_ZN6String4copyEPKcj>
+ 1eb8: df 91 pop r29
+ 1eba: cf 91 pop r28
+ 1ebc: 08 95 ret
+
+00001ebe <_ZN6StringaSERKS_>:
+ 1ebe: ef 92 push r14
+ 1ec0: ff 92 push r15
+ 1ec2: cf 93 push r28
+ 1ec4: df 93 push r29
+ 1ec6: ec 01 movw r28, r24
+ 1ec8: fb 01 movw r30, r22
+ 1eca: 86 17 cp r24, r22
+ 1ecc: 97 07 cpc r25, r23
+ 1ece: 61 f0 breq .+24 ; 0x1ee8 <_ZN6StringaSERKS_+0x2a>
+ 1ed0: 60 81 ld r22, Z
+ 1ed2: 71 81 ldd r23, Z+1 ; 0x01
+ 1ed4: 61 15 cp r22, r1
+ 1ed6: 71 05 cpc r23, r1
+ 1ed8: 29 f0 breq .+10 ; 0x1ee4 <_ZN6StringaSERKS_+0x26>
+ 1eda: 44 81 ldd r20, Z+4 ; 0x04
+ 1edc: 55 81 ldd r21, Z+5 ; 0x05
+ 1ede: 0e 94 23 0f call 0x1e46 ; 0x1e46 <_ZN6String4copyEPKcj>
+ 1ee2: 02 c0 rjmp .+4 ; 0x1ee8 <_ZN6StringaSERKS_+0x2a>
+ 1ee4: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 1ee8: ce 01 movw r24, r28
+ 1eea: df 91 pop r29
+ 1eec: cf 91 pop r28
+ 1eee: ff 90 pop r15
+ 1ef0: ef 90 pop r14
+ 1ef2: 08 95 ret
+
+00001ef4 <_ZN6StringC1ERKS_>:
+ 1ef4: fc 01 movw r30, r24
+ 1ef6: 11 82 std Z+1, r1 ; 0x01
+ 1ef8: 10 82 st Z, r1
+ 1efa: 13 82 std Z+3, r1 ; 0x03
+ 1efc: 12 82 std Z+2, r1 ; 0x02
+ 1efe: 15 82 std Z+5, r1 ; 0x05
+ 1f00: 14 82 std Z+4, r1 ; 0x04
+ 1f02: 16 82 std Z+6, r1 ; 0x06
+ 1f04: 0e 94 5f 0f call 0x1ebe ; 0x1ebe <_ZN6StringaSERKS_>
+ 1f08: 08 95 ret
+
+00001f0a <_ZN6StringaSEPKc>:
+ 1f0a: 0f 93 push r16
+ 1f0c: 1f 93 push r17
+ 1f0e: 8c 01 movw r16, r24
+ 1f10: 61 15 cp r22, r1
+ 1f12: 71 05 cpc r23, r1
+ 1f14: 61 f0 breq .+24 ; 0x1f2e <_ZN6StringaSEPKc+0x24>
+ 1f16: db 01 movw r26, r22
+ 1f18: 0d 90 ld r0, X+
+ 1f1a: 00 20 and r0, r0
+ 1f1c: e9 f7 brne .-6 ; 0x1f18 <_ZN6StringaSEPKc+0xe>
+ 1f1e: ad 01 movw r20, r26
+ 1f20: 41 50 subi r20, 0x01 ; 1
+ 1f22: 50 40 sbci r21, 0x00 ; 0
+ 1f24: 46 1b sub r20, r22
+ 1f26: 57 0b sbc r21, r23
+ 1f28: 0e 94 23 0f call 0x1e46 ; 0x1e46 <_ZN6String4copyEPKcj>
+ 1f2c: 02 c0 rjmp .+4 ; 0x1f32 <_ZN6StringaSEPKc+0x28>
+ 1f2e: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 1f32: c8 01 movw r24, r16
+ 1f34: 1f 91 pop r17
+ 1f36: 0f 91 pop r16
+ 1f38: 08 95 ret
+
+00001f3a <_ZN6StringC1Emh>:
+ 1f3a: ef 92 push r14
+ 1f3c: ff 92 push r15
+ 1f3e: 0f 93 push r16
+ 1f40: 1f 93 push r17
+ 1f42: df 93 push r29
+ 1f44: cf 93 push r28
+ 1f46: cd b7 in r28, 0x3d ; 61
+ 1f48: de b7 in r29, 0x3e ; 62
+ 1f4a: a1 97 sbiw r28, 0x21 ; 33
+ 1f4c: 0f b6 in r0, 0x3f ; 63
+ 1f4e: f8 94 cli
+ 1f50: de bf out 0x3e, r29 ; 62
+ 1f52: 0f be out 0x3f, r0 ; 63
+ 1f54: cd bf out 0x3d, r28 ; 61
+ 1f56: 7c 01 movw r14, r24
+ 1f58: cb 01 movw r24, r22
+ 1f5a: ba 01 movw r22, r20
+ 1f5c: f7 01 movw r30, r14
+ 1f5e: 11 82 std Z+1, r1 ; 0x01
+ 1f60: 10 82 st Z, r1
+ 1f62: 13 82 std Z+3, r1 ; 0x03
+ 1f64: 12 82 std Z+2, r1 ; 0x02
+ 1f66: 15 82 std Z+5, r1 ; 0x05
+ 1f68: 14 82 std Z+4, r1 ; 0x04
+ 1f6a: 16 82 std Z+6, r1 ; 0x06
+ 1f6c: 8e 01 movw r16, r28
+ 1f6e: 0f 5f subi r16, 0xFF ; 255
+ 1f70: 1f 4f sbci r17, 0xFF ; 255
+ 1f72: a8 01 movw r20, r16
+ 1f74: 30 e0 ldi r19, 0x00 ; 0
+ 1f76: 0e 94 dc 28 call 0x51b8 ; 0x51b8 <ultoa>
+ 1f7a: c7 01 movw r24, r14
+ 1f7c: b8 01 movw r22, r16
+ 1f7e: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 1f82: a1 96 adiw r28, 0x21 ; 33
+ 1f84: 0f b6 in r0, 0x3f ; 63
+ 1f86: f8 94 cli
+ 1f88: de bf out 0x3e, r29 ; 62
+ 1f8a: 0f be out 0x3f, r0 ; 63
+ 1f8c: cd bf out 0x3d, r28 ; 61
+ 1f8e: cf 91 pop r28
+ 1f90: df 91 pop r29
+ 1f92: 1f 91 pop r17
+ 1f94: 0f 91 pop r16
+ 1f96: ff 90 pop r15
+ 1f98: ef 90 pop r14
+ 1f9a: 08 95 ret
+
+00001f9c <_ZN6StringC1Elh>:
+ 1f9c: ef 92 push r14
+ 1f9e: ff 92 push r15
+ 1fa0: 0f 93 push r16
+ 1fa2: 1f 93 push r17
+ 1fa4: df 93 push r29
+ 1fa6: cf 93 push r28
+ 1fa8: cd b7 in r28, 0x3d ; 61
+ 1faa: de b7 in r29, 0x3e ; 62
+ 1fac: a2 97 sbiw r28, 0x22 ; 34
+ 1fae: 0f b6 in r0, 0x3f ; 63
+ 1fb0: f8 94 cli
+ 1fb2: de bf out 0x3e, r29 ; 62
+ 1fb4: 0f be out 0x3f, r0 ; 63
+ 1fb6: cd bf out 0x3d, r28 ; 61
+ 1fb8: 7c 01 movw r14, r24
+ 1fba: cb 01 movw r24, r22
+ 1fbc: ba 01 movw r22, r20
+ 1fbe: f7 01 movw r30, r14
+ 1fc0: 11 82 std Z+1, r1 ; 0x01
+ 1fc2: 10 82 st Z, r1
+ 1fc4: 13 82 std Z+3, r1 ; 0x03
+ 1fc6: 12 82 std Z+2, r1 ; 0x02
+ 1fc8: 15 82 std Z+5, r1 ; 0x05
+ 1fca: 14 82 std Z+4, r1 ; 0x04
+ 1fcc: 16 82 std Z+6, r1 ; 0x06
+ 1fce: 8e 01 movw r16, r28
+ 1fd0: 0f 5f subi r16, 0xFF ; 255
+ 1fd2: 1f 4f sbci r17, 0xFF ; 255
+ 1fd4: a8 01 movw r20, r16
+ 1fd6: 30 e0 ldi r19, 0x00 ; 0
+ 1fd8: 0e 94 93 28 call 0x5126 ; 0x5126 <ltoa>
+ 1fdc: c7 01 movw r24, r14
+ 1fde: b8 01 movw r22, r16
+ 1fe0: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 1fe4: a2 96 adiw r28, 0x22 ; 34
+ 1fe6: 0f b6 in r0, 0x3f ; 63
+ 1fe8: f8 94 cli
+ 1fea: de bf out 0x3e, r29 ; 62
+ 1fec: 0f be out 0x3f, r0 ; 63
+ 1fee: cd bf out 0x3d, r28 ; 61
+ 1ff0: cf 91 pop r28
+ 1ff2: df 91 pop r29
+ 1ff4: 1f 91 pop r17
+ 1ff6: 0f 91 pop r16
+ 1ff8: ff 90 pop r15
+ 1ffa: ef 90 pop r14
+ 1ffc: 08 95 ret
+
+00001ffe <_ZN6StringC1Ejh>:
+ 1ffe: ef 92 push r14
+ 2000: ff 92 push r15
+ 2002: 0f 93 push r16
+ 2004: 1f 93 push r17
+ 2006: df 93 push r29
+ 2008: cf 93 push r28
+ 200a: cd b7 in r28, 0x3d ; 61
+ 200c: de b7 in r29, 0x3e ; 62
+ 200e: 61 97 sbiw r28, 0x11 ; 17
+ 2010: 0f b6 in r0, 0x3f ; 63
+ 2012: f8 94 cli
+ 2014: de bf out 0x3e, r29 ; 62
+ 2016: 0f be out 0x3f, r0 ; 63
+ 2018: cd bf out 0x3d, r28 ; 61
+ 201a: 7c 01 movw r14, r24
+ 201c: cb 01 movw r24, r22
+ 201e: f7 01 movw r30, r14
+ 2020: 11 82 std Z+1, r1 ; 0x01
+ 2022: 10 82 st Z, r1
+ 2024: 13 82 std Z+3, r1 ; 0x03
+ 2026: 12 82 std Z+2, r1 ; 0x02
+ 2028: 15 82 std Z+5, r1 ; 0x05
+ 202a: 14 82 std Z+4, r1 ; 0x04
+ 202c: 16 82 std Z+6, r1 ; 0x06
+ 202e: 8e 01 movw r16, r28
+ 2030: 0f 5f subi r16, 0xFF ; 255
+ 2032: 1f 4f sbci r17, 0xFF ; 255
+ 2034: b8 01 movw r22, r16
+ 2036: 50 e0 ldi r21, 0x00 ; 0
+ 2038: 0e 94 01 29 call 0x5202 ; 0x5202 <utoa>
+ 203c: c7 01 movw r24, r14
+ 203e: b8 01 movw r22, r16
+ 2040: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 2044: 61 96 adiw r28, 0x11 ; 17
+ 2046: 0f b6 in r0, 0x3f ; 63
+ 2048: f8 94 cli
+ 204a: de bf out 0x3e, r29 ; 62
+ 204c: 0f be out 0x3f, r0 ; 63
+ 204e: cd bf out 0x3d, r28 ; 61
+ 2050: cf 91 pop r28
+ 2052: df 91 pop r29
+ 2054: 1f 91 pop r17
+ 2056: 0f 91 pop r16
+ 2058: ff 90 pop r15
+ 205a: ef 90 pop r14
+ 205c: 08 95 ret
+
+0000205e <_ZN6StringC1Eih>:
+ 205e: ef 92 push r14
+ 2060: ff 92 push r15
+ 2062: 0f 93 push r16
+ 2064: 1f 93 push r17
+ 2066: df 93 push r29
+ 2068: cf 93 push r28
+ 206a: cd b7 in r28, 0x3d ; 61
+ 206c: de b7 in r29, 0x3e ; 62
+ 206e: 62 97 sbiw r28, 0x12 ; 18
+ 2070: 0f b6 in r0, 0x3f ; 63
+ 2072: f8 94 cli
+ 2074: de bf out 0x3e, r29 ; 62
+ 2076: 0f be out 0x3f, r0 ; 63
+ 2078: cd bf out 0x3d, r28 ; 61
+ 207a: 7c 01 movw r14, r24
+ 207c: cb 01 movw r24, r22
+ 207e: f7 01 movw r30, r14
+ 2080: 11 82 std Z+1, r1 ; 0x01
+ 2082: 10 82 st Z, r1
+ 2084: 13 82 std Z+3, r1 ; 0x03
+ 2086: 12 82 std Z+2, r1 ; 0x02
+ 2088: 15 82 std Z+5, r1 ; 0x05
+ 208a: 14 82 std Z+4, r1 ; 0x04
+ 208c: 16 82 std Z+6, r1 ; 0x06
+ 208e: 8e 01 movw r16, r28
+ 2090: 0f 5f subi r16, 0xFF ; 255
+ 2092: 1f 4f sbci r17, 0xFF ; 255
+ 2094: b8 01 movw r22, r16
+ 2096: 50 e0 ldi r21, 0x00 ; 0
+ 2098: 0e 94 72 28 call 0x50e4 ; 0x50e4 <itoa>
+ 209c: c7 01 movw r24, r14
+ 209e: b8 01 movw r22, r16
+ 20a0: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 20a4: 62 96 adiw r28, 0x12 ; 18
+ 20a6: 0f b6 in r0, 0x3f ; 63
+ 20a8: f8 94 cli
+ 20aa: de bf out 0x3e, r29 ; 62
+ 20ac: 0f be out 0x3f, r0 ; 63
+ 20ae: cd bf out 0x3d, r28 ; 61
+ 20b0: cf 91 pop r28
+ 20b2: df 91 pop r29
+ 20b4: 1f 91 pop r17
+ 20b6: 0f 91 pop r16
+ 20b8: ff 90 pop r15
+ 20ba: ef 90 pop r14
+ 20bc: 08 95 ret
+
+000020be <_ZN6StringC1Ehh>:
+ 20be: ef 92 push r14
+ 20c0: ff 92 push r15
+ 20c2: 0f 93 push r16
+ 20c4: 1f 93 push r17
+ 20c6: df 93 push r29
+ 20c8: cf 93 push r28
+ 20ca: cd b7 in r28, 0x3d ; 61
+ 20cc: de b7 in r29, 0x3e ; 62
+ 20ce: 29 97 sbiw r28, 0x09 ; 9
+ 20d0: 0f b6 in r0, 0x3f ; 63
+ 20d2: f8 94 cli
+ 20d4: de bf out 0x3e, r29 ; 62
+ 20d6: 0f be out 0x3f, r0 ; 63
+ 20d8: cd bf out 0x3d, r28 ; 61
+ 20da: 7c 01 movw r14, r24
+ 20dc: 86 2f mov r24, r22
+ 20de: f7 01 movw r30, r14
+ 20e0: 11 82 std Z+1, r1 ; 0x01
+ 20e2: 10 82 st Z, r1
+ 20e4: 13 82 std Z+3, r1 ; 0x03
+ 20e6: 12 82 std Z+2, r1 ; 0x02
+ 20e8: 15 82 std Z+5, r1 ; 0x05
+ 20ea: 14 82 std Z+4, r1 ; 0x04
+ 20ec: 16 82 std Z+6, r1 ; 0x06
+ 20ee: 90 e0 ldi r25, 0x00 ; 0
+ 20f0: 8e 01 movw r16, r28
+ 20f2: 0f 5f subi r16, 0xFF ; 255
+ 20f4: 1f 4f sbci r17, 0xFF ; 255
+ 20f6: b8 01 movw r22, r16
+ 20f8: 50 e0 ldi r21, 0x00 ; 0
+ 20fa: 0e 94 01 29 call 0x5202 ; 0x5202 <utoa>
+ 20fe: c7 01 movw r24, r14
+ 2100: b8 01 movw r22, r16
+ 2102: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 2106: 29 96 adiw r28, 0x09 ; 9
+ 2108: 0f b6 in r0, 0x3f ; 63
+ 210a: f8 94 cli
+ 210c: de bf out 0x3e, r29 ; 62
+ 210e: 0f be out 0x3f, r0 ; 63
+ 2110: cd bf out 0x3d, r28 ; 61
+ 2112: cf 91 pop r28
+ 2114: df 91 pop r29
+ 2116: 1f 91 pop r17
+ 2118: 0f 91 pop r16
+ 211a: ff 90 pop r15
+ 211c: ef 90 pop r14
+ 211e: 08 95 ret
+
+00002120 <_ZN6StringC1Ec>:
+ 2120: df 93 push r29
+ 2122: cf 93 push r28
+ 2124: 00 d0 rcall .+0 ; 0x2126 <_ZN6StringC1Ec+0x6>
+ 2126: cd b7 in r28, 0x3d ; 61
+ 2128: de b7 in r29, 0x3e ; 62
+ 212a: fc 01 movw r30, r24
+ 212c: 11 82 std Z+1, r1 ; 0x01
+ 212e: 10 82 st Z, r1
+ 2130: 13 82 std Z+3, r1 ; 0x03
+ 2132: 12 82 std Z+2, r1 ; 0x02
+ 2134: 15 82 std Z+5, r1 ; 0x05
+ 2136: 14 82 std Z+4, r1 ; 0x04
+ 2138: 16 82 std Z+6, r1 ; 0x06
+ 213a: 69 83 std Y+1, r22 ; 0x01
+ 213c: 1a 82 std Y+2, r1 ; 0x02
+ 213e: be 01 movw r22, r28
+ 2140: 6f 5f subi r22, 0xFF ; 255
+ 2142: 7f 4f sbci r23, 0xFF ; 255
+ 2144: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 2148: 0f 90 pop r0
+ 214a: 0f 90 pop r0
+ 214c: cf 91 pop r28
+ 214e: df 91 pop r29
+ 2150: 08 95 ret
+
+00002152 <_ZN6String6concatEPKcj>:
+ 2152: ef 92 push r14
+ 2154: ff 92 push r15
+ 2156: 0f 93 push r16
+ 2158: 1f 93 push r17
+ 215a: cf 93 push r28
+ 215c: df 93 push r29
+ 215e: ec 01 movw r28, r24
+ 2160: 7b 01 movw r14, r22
+ 2162: 0c 81 ldd r16, Y+4 ; 0x04
+ 2164: 1d 81 ldd r17, Y+5 ; 0x05
+ 2166: 61 15 cp r22, r1
+ 2168: 71 05 cpc r23, r1
+ 216a: b9 f0 breq .+46 ; 0x219a <_ZN6String6concatEPKcj+0x48>
+ 216c: 41 15 cp r20, r1
+ 216e: 51 05 cpc r21, r1
+ 2170: 91 f0 breq .+36 ; 0x2196 <_ZN6String6concatEPKcj+0x44>
+ 2172: 04 0f add r16, r20
+ 2174: 15 1f adc r17, r21
+ 2176: b8 01 movw r22, r16
+ 2178: 0e 94 04 0f call 0x1e08 ; 0x1e08 <_ZN6String7reserveEj>
+ 217c: 88 23 and r24, r24
+ 217e: 69 f0 breq .+26 ; 0x219a <_ZN6String6concatEPKcj+0x48>
+ 2180: 28 81 ld r18, Y
+ 2182: 39 81 ldd r19, Y+1 ; 0x01
+ 2184: 8c 81 ldd r24, Y+4 ; 0x04
+ 2186: 9d 81 ldd r25, Y+5 ; 0x05
+ 2188: 82 0f add r24, r18
+ 218a: 93 1f adc r25, r19
+ 218c: b7 01 movw r22, r14
+ 218e: 0e 94 29 28 call 0x5052 ; 0x5052 <strcpy>
+ 2192: 1d 83 std Y+5, r17 ; 0x05
+ 2194: 0c 83 std Y+4, r16 ; 0x04
+ 2196: 81 e0 ldi r24, 0x01 ; 1
+ 2198: 01 c0 rjmp .+2 ; 0x219c <_ZN6String6concatEPKcj+0x4a>
+ 219a: 80 e0 ldi r24, 0x00 ; 0
+ 219c: df 91 pop r29
+ 219e: cf 91 pop r28
+ 21a0: 1f 91 pop r17
+ 21a2: 0f 91 pop r16
+ 21a4: ff 90 pop r15
+ 21a6: ef 90 pop r14
+ 21a8: 08 95 ret
+
+000021aa <_ZN6String6concatERKS_>:
+ 21aa: fb 01 movw r30, r22
+ 21ac: 60 81 ld r22, Z
+ 21ae: 71 81 ldd r23, Z+1 ; 0x01
+ 21b0: 44 81 ldd r20, Z+4 ; 0x04
+ 21b2: 55 81 ldd r21, Z+5 ; 0x05
+ 21b4: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 21b8: 08 95 ret
+
+000021ba <_ZN6String6concatEPKc>:
+ 21ba: 61 15 cp r22, r1
+ 21bc: 71 05 cpc r23, r1
+ 21be: 61 f0 breq .+24 ; 0x21d8 <_ZN6String6concatEPKc+0x1e>
+ 21c0: db 01 movw r26, r22
+ 21c2: 0d 90 ld r0, X+
+ 21c4: 00 20 and r0, r0
+ 21c6: e9 f7 brne .-6 ; 0x21c2 <_ZN6String6concatEPKc+0x8>
+ 21c8: ad 01 movw r20, r26
+ 21ca: 41 50 subi r20, 0x01 ; 1
+ 21cc: 50 40 sbci r21, 0x00 ; 0
+ 21ce: 46 1b sub r20, r22
+ 21d0: 57 0b sbc r21, r23
+ 21d2: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 21d6: 08 95 ret
+ 21d8: 80 e0 ldi r24, 0x00 ; 0
+ 21da: 08 95 ret
+
+000021dc <_ZN6String6concatEc>:
+ 21dc: df 93 push r29
+ 21de: cf 93 push r28
+ 21e0: 00 d0 rcall .+0 ; 0x21e2 <_ZN6String6concatEc+0x6>
+ 21e2: cd b7 in r28, 0x3d ; 61
+ 21e4: de b7 in r29, 0x3e ; 62
+ 21e6: 69 83 std Y+1, r22 ; 0x01
+ 21e8: 1a 82 std Y+2, r1 ; 0x02
+ 21ea: be 01 movw r22, r28
+ 21ec: 6f 5f subi r22, 0xFF ; 255
+ 21ee: 7f 4f sbci r23, 0xFF ; 255
+ 21f0: 41 e0 ldi r20, 0x01 ; 1
+ 21f2: 50 e0 ldi r21, 0x00 ; 0
+ 21f4: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 21f8: 0f 90 pop r0
+ 21fa: 0f 90 pop r0
+ 21fc: cf 91 pop r28
+ 21fe: df 91 pop r29
+ 2200: 08 95 ret
+
+00002202 <_ZN6String6concatEh>:
+ 2202: ef 92 push r14
+ 2204: ff 92 push r15
+ 2206: 0f 93 push r16
+ 2208: 1f 93 push r17
+ 220a: df 93 push r29
+ 220c: cf 93 push r28
+ 220e: 00 d0 rcall .+0 ; 0x2210 <_ZN6String6concatEh+0xe>
+ 2210: 00 d0 rcall .+0 ; 0x2212 <_ZN6String6concatEh+0x10>
+ 2212: cd b7 in r28, 0x3d ; 61
+ 2214: de b7 in r29, 0x3e ; 62
+ 2216: 7c 01 movw r14, r24
+ 2218: 86 2f mov r24, r22
+ 221a: 90 e0 ldi r25, 0x00 ; 0
+ 221c: 8e 01 movw r16, r28
+ 221e: 0f 5f subi r16, 0xFF ; 255
+ 2220: 1f 4f sbci r17, 0xFF ; 255
+ 2222: b8 01 movw r22, r16
+ 2224: 4a e0 ldi r20, 0x0A ; 10
+ 2226: 50 e0 ldi r21, 0x00 ; 0
+ 2228: 0e 94 72 28 call 0x50e4 ; 0x50e4 <itoa>
+ 222c: f8 01 movw r30, r16
+ 222e: 01 90 ld r0, Z+
+ 2230: 00 20 and r0, r0
+ 2232: e9 f7 brne .-6 ; 0x222e <_ZN6String6concatEh+0x2c>
+ 2234: af 01 movw r20, r30
+ 2236: 41 50 subi r20, 0x01 ; 1
+ 2238: 50 40 sbci r21, 0x00 ; 0
+ 223a: 40 1b sub r20, r16
+ 223c: 51 0b sbc r21, r17
+ 223e: c7 01 movw r24, r14
+ 2240: b8 01 movw r22, r16
+ 2242: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 2246: 0f 90 pop r0
+ 2248: 0f 90 pop r0
+ 224a: 0f 90 pop r0
+ 224c: 0f 90 pop r0
+ 224e: cf 91 pop r28
+ 2250: df 91 pop r29
+ 2252: 1f 91 pop r17
+ 2254: 0f 91 pop r16
+ 2256: ff 90 pop r15
+ 2258: ef 90 pop r14
+ 225a: 08 95 ret
+
+0000225c <_ZN6String6concatEi>:
+ 225c: ef 92 push r14
+ 225e: ff 92 push r15
+ 2260: 0f 93 push r16
+ 2262: 1f 93 push r17
+ 2264: df 93 push r29
+ 2266: cf 93 push r28
+ 2268: cd b7 in r28, 0x3d ; 61
+ 226a: de b7 in r29, 0x3e ; 62
+ 226c: 27 97 sbiw r28, 0x07 ; 7
+ 226e: 0f b6 in r0, 0x3f ; 63
+ 2270: f8 94 cli
+ 2272: de bf out 0x3e, r29 ; 62
+ 2274: 0f be out 0x3f, r0 ; 63
+ 2276: cd bf out 0x3d, r28 ; 61
+ 2278: 7c 01 movw r14, r24
+ 227a: cb 01 movw r24, r22
+ 227c: 8e 01 movw r16, r28
+ 227e: 0f 5f subi r16, 0xFF ; 255
+ 2280: 1f 4f sbci r17, 0xFF ; 255
+ 2282: b8 01 movw r22, r16
+ 2284: 4a e0 ldi r20, 0x0A ; 10
+ 2286: 50 e0 ldi r21, 0x00 ; 0
+ 2288: 0e 94 72 28 call 0x50e4 ; 0x50e4 <itoa>
+ 228c: f8 01 movw r30, r16
+ 228e: 01 90 ld r0, Z+
+ 2290: 00 20 and r0, r0
+ 2292: e9 f7 brne .-6 ; 0x228e <_ZN6String6concatEi+0x32>
+ 2294: af 01 movw r20, r30
+ 2296: 41 50 subi r20, 0x01 ; 1
+ 2298: 50 40 sbci r21, 0x00 ; 0
+ 229a: 40 1b sub r20, r16
+ 229c: 51 0b sbc r21, r17
+ 229e: c7 01 movw r24, r14
+ 22a0: b8 01 movw r22, r16
+ 22a2: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 22a6: 27 96 adiw r28, 0x07 ; 7
+ 22a8: 0f b6 in r0, 0x3f ; 63
+ 22aa: f8 94 cli
+ 22ac: de bf out 0x3e, r29 ; 62
+ 22ae: 0f be out 0x3f, r0 ; 63
+ 22b0: cd bf out 0x3d, r28 ; 61
+ 22b2: cf 91 pop r28
+ 22b4: df 91 pop r29
+ 22b6: 1f 91 pop r17
+ 22b8: 0f 91 pop r16
+ 22ba: ff 90 pop r15
+ 22bc: ef 90 pop r14
+ 22be: 08 95 ret
+
+000022c0 <_ZN6String6concatEj>:
+ 22c0: ef 92 push r14
+ 22c2: ff 92 push r15
+ 22c4: 0f 93 push r16
+ 22c6: 1f 93 push r17
+ 22c8: df 93 push r29
+ 22ca: cf 93 push r28
+ 22cc: 00 d0 rcall .+0 ; 0x22ce <_ZN6String6concatEj+0xe>
+ 22ce: 00 d0 rcall .+0 ; 0x22d0 <_ZN6String6concatEj+0x10>
+ 22d0: 00 d0 rcall .+0 ; 0x22d2 <_ZN6String6concatEj+0x12>
+ 22d2: cd b7 in r28, 0x3d ; 61
+ 22d4: de b7 in r29, 0x3e ; 62
+ 22d6: 7c 01 movw r14, r24
+ 22d8: cb 01 movw r24, r22
+ 22da: 8e 01 movw r16, r28
+ 22dc: 0f 5f subi r16, 0xFF ; 255
+ 22de: 1f 4f sbci r17, 0xFF ; 255
+ 22e0: b8 01 movw r22, r16
+ 22e2: 4a e0 ldi r20, 0x0A ; 10
+ 22e4: 50 e0 ldi r21, 0x00 ; 0
+ 22e6: 0e 94 01 29 call 0x5202 ; 0x5202 <utoa>
+ 22ea: f8 01 movw r30, r16
+ 22ec: 01 90 ld r0, Z+
+ 22ee: 00 20 and r0, r0
+ 22f0: e9 f7 brne .-6 ; 0x22ec <_ZN6String6concatEj+0x2c>
+ 22f2: af 01 movw r20, r30
+ 22f4: 41 50 subi r20, 0x01 ; 1
+ 22f6: 50 40 sbci r21, 0x00 ; 0
+ 22f8: 40 1b sub r20, r16
+ 22fa: 51 0b sbc r21, r17
+ 22fc: c7 01 movw r24, r14
+ 22fe: b8 01 movw r22, r16
+ 2300: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 2304: 26 96 adiw r28, 0x06 ; 6
+ 2306: 0f b6 in r0, 0x3f ; 63
+ 2308: f8 94 cli
+ 230a: de bf out 0x3e, r29 ; 62
+ 230c: 0f be out 0x3f, r0 ; 63
+ 230e: cd bf out 0x3d, r28 ; 61
+ 2310: cf 91 pop r28
+ 2312: df 91 pop r29
+ 2314: 1f 91 pop r17
+ 2316: 0f 91 pop r16
+ 2318: ff 90 pop r15
+ 231a: ef 90 pop r14
+ 231c: 08 95 ret
+
+0000231e <_ZN6String6concatEl>:
+ 231e: ef 92 push r14
+ 2320: ff 92 push r15
+ 2322: 0f 93 push r16
+ 2324: 1f 93 push r17
+ 2326: df 93 push r29
+ 2328: cf 93 push r28
+ 232a: cd b7 in r28, 0x3d ; 61
+ 232c: de b7 in r29, 0x3e ; 62
+ 232e: 2c 97 sbiw r28, 0x0c ; 12
+ 2330: 0f b6 in r0, 0x3f ; 63
+ 2332: f8 94 cli
+ 2334: de bf out 0x3e, r29 ; 62
+ 2336: 0f be out 0x3f, r0 ; 63
+ 2338: cd bf out 0x3d, r28 ; 61
+ 233a: 7c 01 movw r14, r24
+ 233c: cb 01 movw r24, r22
+ 233e: ba 01 movw r22, r20
+ 2340: 8e 01 movw r16, r28
+ 2342: 0f 5f subi r16, 0xFF ; 255
+ 2344: 1f 4f sbci r17, 0xFF ; 255
+ 2346: a8 01 movw r20, r16
+ 2348: 2a e0 ldi r18, 0x0A ; 10
+ 234a: 30 e0 ldi r19, 0x00 ; 0
+ 234c: 0e 94 93 28 call 0x5126 ; 0x5126 <ltoa>
+ 2350: f8 01 movw r30, r16
+ 2352: 01 90 ld r0, Z+
+ 2354: 00 20 and r0, r0
+ 2356: e9 f7 brne .-6 ; 0x2352 <_ZN6String6concatEl+0x34>
+ 2358: af 01 movw r20, r30
+ 235a: 41 50 subi r20, 0x01 ; 1
+ 235c: 50 40 sbci r21, 0x00 ; 0
+ 235e: 40 1b sub r20, r16
+ 2360: 51 0b sbc r21, r17
+ 2362: c7 01 movw r24, r14
+ 2364: b8 01 movw r22, r16
+ 2366: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 236a: 2c 96 adiw r28, 0x0c ; 12
+ 236c: 0f b6 in r0, 0x3f ; 63
+ 236e: f8 94 cli
+ 2370: de bf out 0x3e, r29 ; 62
+ 2372: 0f be out 0x3f, r0 ; 63
+ 2374: cd bf out 0x3d, r28 ; 61
+ 2376: cf 91 pop r28
+ 2378: df 91 pop r29
+ 237a: 1f 91 pop r17
+ 237c: 0f 91 pop r16
+ 237e: ff 90 pop r15
+ 2380: ef 90 pop r14
+ 2382: 08 95 ret
+
+00002384 <_ZN6String6concatEm>:
+ 2384: ef 92 push r14
+ 2386: ff 92 push r15
+ 2388: 0f 93 push r16
+ 238a: 1f 93 push r17
+ 238c: df 93 push r29
+ 238e: cf 93 push r28
+ 2390: cd b7 in r28, 0x3d ; 61
+ 2392: de b7 in r29, 0x3e ; 62
+ 2394: 2b 97 sbiw r28, 0x0b ; 11
+ 2396: 0f b6 in r0, 0x3f ; 63
+ 2398: f8 94 cli
+ 239a: de bf out 0x3e, r29 ; 62
+ 239c: 0f be out 0x3f, r0 ; 63
+ 239e: cd bf out 0x3d, r28 ; 61
+ 23a0: 7c 01 movw r14, r24
+ 23a2: cb 01 movw r24, r22
+ 23a4: ba 01 movw r22, r20
+ 23a6: 8e 01 movw r16, r28
+ 23a8: 0f 5f subi r16, 0xFF ; 255
+ 23aa: 1f 4f sbci r17, 0xFF ; 255
+ 23ac: a8 01 movw r20, r16
+ 23ae: 2a e0 ldi r18, 0x0A ; 10
+ 23b0: 30 e0 ldi r19, 0x00 ; 0
+ 23b2: 0e 94 dc 28 call 0x51b8 ; 0x51b8 <ultoa>
+ 23b6: f8 01 movw r30, r16
+ 23b8: 01 90 ld r0, Z+
+ 23ba: 00 20 and r0, r0
+ 23bc: e9 f7 brne .-6 ; 0x23b8 <_ZN6String6concatEm+0x34>
+ 23be: af 01 movw r20, r30
+ 23c0: 41 50 subi r20, 0x01 ; 1
+ 23c2: 50 40 sbci r21, 0x00 ; 0
+ 23c4: 40 1b sub r20, r16
+ 23c6: 51 0b sbc r21, r17
+ 23c8: c7 01 movw r24, r14
+ 23ca: b8 01 movw r22, r16
+ 23cc: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 23d0: 2b 96 adiw r28, 0x0b ; 11
+ 23d2: 0f b6 in r0, 0x3f ; 63
+ 23d4: f8 94 cli
+ 23d6: de bf out 0x3e, r29 ; 62
+ 23d8: 0f be out 0x3f, r0 ; 63
+ 23da: cd bf out 0x3d, r28 ; 61
+ 23dc: cf 91 pop r28
+ 23de: df 91 pop r29
+ 23e0: 1f 91 pop r17
+ 23e2: 0f 91 pop r16
+ 23e4: ff 90 pop r15
+ 23e6: ef 90 pop r14
+ 23e8: 08 95 ret
+
+000023ea <_ZplRK15StringSumHelperRK6String>:
+ 23ea: 0f 93 push r16
+ 23ec: 1f 93 push r17
+ 23ee: 8c 01 movw r16, r24
+ 23f0: fb 01 movw r30, r22
+ 23f2: 60 81 ld r22, Z
+ 23f4: 71 81 ldd r23, Z+1 ; 0x01
+ 23f6: 44 81 ldd r20, Z+4 ; 0x04
+ 23f8: 55 81 ldd r21, Z+5 ; 0x05
+ 23fa: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 23fe: 88 23 and r24, r24
+ 2400: 19 f4 brne .+6 ; 0x2408 <_ZplRK15StringSumHelperRK6String+0x1e>
+ 2402: c8 01 movw r24, r16
+ 2404: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 2408: c8 01 movw r24, r16
+ 240a: 1f 91 pop r17
+ 240c: 0f 91 pop r16
+ 240e: 08 95 ret
+
+00002410 <_ZplRK15StringSumHelperPKc>:
+ 2410: 0f 93 push r16
+ 2412: 1f 93 push r17
+ 2414: 8c 01 movw r16, r24
+ 2416: 61 15 cp r22, r1
+ 2418: 71 05 cpc r23, r1
+ 241a: 69 f0 breq .+26 ; 0x2436 <_ZplRK15StringSumHelperPKc+0x26>
+ 241c: db 01 movw r26, r22
+ 241e: 0d 90 ld r0, X+
+ 2420: 00 20 and r0, r0
+ 2422: e9 f7 brne .-6 ; 0x241e <_ZplRK15StringSumHelperPKc+0xe>
+ 2424: ad 01 movw r20, r26
+ 2426: 41 50 subi r20, 0x01 ; 1
+ 2428: 50 40 sbci r21, 0x00 ; 0
+ 242a: 46 1b sub r20, r22
+ 242c: 57 0b sbc r21, r23
+ 242e: 0e 94 a9 10 call 0x2152 ; 0x2152 <_ZN6String6concatEPKcj>
+ 2432: 88 23 and r24, r24
+ 2434: 19 f4 brne .+6 ; 0x243c <_ZplRK15StringSumHelperPKc+0x2c>
+ 2436: c8 01 movw r24, r16
+ 2438: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 243c: c8 01 movw r24, r16
+ 243e: 1f 91 pop r17
+ 2440: 0f 91 pop r16
+ 2442: 08 95 ret
+
+00002444 <_ZplRK15StringSumHelperc>:
+ 2444: 0f 93 push r16
+ 2446: 1f 93 push r17
+ 2448: 8c 01 movw r16, r24
+ 244a: 0e 94 ee 10 call 0x21dc ; 0x21dc <_ZN6String6concatEc>
+ 244e: 88 23 and r24, r24
+ 2450: 19 f4 brne .+6 ; 0x2458 <_ZplRK15StringSumHelperc+0x14>
+ 2452: c8 01 movw r24, r16
+ 2454: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 2458: c8 01 movw r24, r16
+ 245a: 1f 91 pop r17
+ 245c: 0f 91 pop r16
+ 245e: 08 95 ret
+
+00002460 <_ZplRK15StringSumHelperh>:
+ 2460: 0f 93 push r16
+ 2462: 1f 93 push r17
+ 2464: 8c 01 movw r16, r24
+ 2466: 0e 94 01 11 call 0x2202 ; 0x2202 <_ZN6String6concatEh>
+ 246a: 88 23 and r24, r24
+ 246c: 19 f4 brne .+6 ; 0x2474 <_ZplRK15StringSumHelperh+0x14>
+ 246e: c8 01 movw r24, r16
+ 2470: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 2474: c8 01 movw r24, r16
+ 2476: 1f 91 pop r17
+ 2478: 0f 91 pop r16
+ 247a: 08 95 ret
+
+0000247c <_ZplRK15StringSumHelperi>:
+ 247c: 0f 93 push r16
+ 247e: 1f 93 push r17
+ 2480: 8c 01 movw r16, r24
+ 2482: 0e 94 2e 11 call 0x225c ; 0x225c <_ZN6String6concatEi>
+ 2486: 88 23 and r24, r24
+ 2488: 19 f4 brne .+6 ; 0x2490 <_ZplRK15StringSumHelperi+0x14>
+ 248a: c8 01 movw r24, r16
+ 248c: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 2490: c8 01 movw r24, r16
+ 2492: 1f 91 pop r17
+ 2494: 0f 91 pop r16
+ 2496: 08 95 ret
+
+00002498 <_ZplRK15StringSumHelperj>:
+ 2498: 0f 93 push r16
+ 249a: 1f 93 push r17
+ 249c: 8c 01 movw r16, r24
+ 249e: 0e 94 60 11 call 0x22c0 ; 0x22c0 <_ZN6String6concatEj>
+ 24a2: 88 23 and r24, r24
+ 24a4: 19 f4 brne .+6 ; 0x24ac <_ZplRK15StringSumHelperj+0x14>
+ 24a6: c8 01 movw r24, r16
+ 24a8: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 24ac: c8 01 movw r24, r16
+ 24ae: 1f 91 pop r17
+ 24b0: 0f 91 pop r16
+ 24b2: 08 95 ret
+
+000024b4 <_ZplRK15StringSumHelperl>:
+ 24b4: 0f 93 push r16
+ 24b6: 1f 93 push r17
+ 24b8: 8c 01 movw r16, r24
+ 24ba: 0e 94 8f 11 call 0x231e ; 0x231e <_ZN6String6concatEl>
+ 24be: 88 23 and r24, r24
+ 24c0: 19 f4 brne .+6 ; 0x24c8 <_ZplRK15StringSumHelperl+0x14>
+ 24c2: c8 01 movw r24, r16
+ 24c4: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 24c8: c8 01 movw r24, r16
+ 24ca: 1f 91 pop r17
+ 24cc: 0f 91 pop r16
+ 24ce: 08 95 ret
+
+000024d0 <_ZplRK15StringSumHelperm>:
+ 24d0: 0f 93 push r16
+ 24d2: 1f 93 push r17
+ 24d4: 8c 01 movw r16, r24
+ 24d6: 0e 94 c2 11 call 0x2384 ; 0x2384 <_ZN6String6concatEm>
+ 24da: 88 23 and r24, r24
+ 24dc: 19 f4 brne .+6 ; 0x24e4 <_ZplRK15StringSumHelperm+0x14>
+ 24de: c8 01 movw r24, r16
+ 24e0: 0e 94 d8 0e call 0x1db0 ; 0x1db0 <_ZN6String10invalidateEv>
+ 24e4: c8 01 movw r24, r16
+ 24e6: 1f 91 pop r17
+ 24e8: 0f 91 pop r16
+ 24ea: 08 95 ret
+
+000024ec <_ZNK6String9compareToERKS_>:
+ 24ec: cf 93 push r28
+ 24ee: df 93 push r29
+ 24f0: fc 01 movw r30, r24
+ 24f2: db 01 movw r26, r22
+ 24f4: 80 81 ld r24, Z
+ 24f6: 91 81 ldd r25, Z+1 ; 0x01
+ 24f8: 00 97 sbiw r24, 0x00 ; 0
+ 24fa: 31 f0 breq .+12 ; 0x2508 <_ZNK6String9compareToERKS_+0x1c>
+ 24fc: 6d 91 ld r22, X+
+ 24fe: 7c 91 ld r23, X
+ 2500: 11 97 sbiw r26, 0x01 ; 1
+ 2502: 61 15 cp r22, r1
+ 2504: 71 05 cpc r23, r1
+ 2506: e9 f4 brne .+58 ; 0x2542 <_ZNK6String9compareToERKS_+0x56>
+ 2508: cd 91 ld r28, X+
+ 250a: dc 91 ld r29, X
+ 250c: 11 97 sbiw r26, 0x01 ; 1
+ 250e: 20 97 sbiw r28, 0x00 ; 0
+ 2510: 69 f0 breq .+26 ; 0x252c <_ZNK6String9compareToERKS_+0x40>
+ 2512: 14 96 adiw r26, 0x04 ; 4
+ 2514: 2d 91 ld r18, X+
+ 2516: 3c 91 ld r19, X
+ 2518: 15 97 sbiw r26, 0x05 ; 5
+ 251a: 21 15 cp r18, r1
+ 251c: 31 05 cpc r19, r1
+ 251e: 31 f0 breq .+12 ; 0x252c <_ZNK6String9compareToERKS_+0x40>
+ 2520: 28 81 ld r18, Y
+ 2522: 30 e0 ldi r19, 0x00 ; 0
+ 2524: 30 95 com r19
+ 2526: 21 95 neg r18
+ 2528: 3f 4f sbci r19, 0xFF ; 255
+ 252a: 12 c0 rjmp .+36 ; 0x2550 <_ZNK6String9compareToERKS_+0x64>
+ 252c: 00 97 sbiw r24, 0x00 ; 0
+ 252e: 71 f0 breq .+28 ; 0x254c <_ZNK6String9compareToERKS_+0x60>
+ 2530: 24 81 ldd r18, Z+4 ; 0x04
+ 2532: 35 81 ldd r19, Z+5 ; 0x05
+ 2534: 21 15 cp r18, r1
+ 2536: 31 05 cpc r19, r1
+ 2538: 49 f0 breq .+18 ; 0x254c <_ZNK6String9compareToERKS_+0x60>
+ 253a: fc 01 movw r30, r24
+ 253c: 20 81 ld r18, Z
+ 253e: 30 e0 ldi r19, 0x00 ; 0
+ 2540: 07 c0 rjmp .+14 ; 0x2550 <_ZNK6String9compareToERKS_+0x64>
+ 2542: 0e 94 20 28 call 0x5040 ; 0x5040 <strcmp>
+ 2546: 28 2f mov r18, r24
+ 2548: 39 2f mov r19, r25
+ 254a: 02 c0 rjmp .+4 ; 0x2550 <_ZNK6String9compareToERKS_+0x64>
+ 254c: 20 e0 ldi r18, 0x00 ; 0
+ 254e: 30 e0 ldi r19, 0x00 ; 0
+ 2550: c9 01 movw r24, r18
+ 2552: df 91 pop r29
+ 2554: cf 91 pop r28
+ 2556: 08 95 ret
+
+00002558 <_ZNK6String6equalsERKS_>:
+ 2558: fc 01 movw r30, r24
+ 255a: 44 81 ldd r20, Z+4 ; 0x04
+ 255c: 55 81 ldd r21, Z+5 ; 0x05
+ 255e: fb 01 movw r30, r22
+ 2560: 24 81 ldd r18, Z+4 ; 0x04
+ 2562: 35 81 ldd r19, Z+5 ; 0x05
+ 2564: 42 17 cp r20, r18
+ 2566: 53 07 cpc r21, r19
+ 2568: 29 f4 brne .+10 ; 0x2574 <_ZNK6String6equalsERKS_+0x1c>
+ 256a: 0e 94 76 12 call 0x24ec ; 0x24ec <_ZNK6String9compareToERKS_>
+ 256e: 21 e0 ldi r18, 0x01 ; 1
+ 2570: 00 97 sbiw r24, 0x00 ; 0
+ 2572: 09 f0 breq .+2 ; 0x2576 <_ZNK6String6equalsERKS_+0x1e>
+ 2574: 20 e0 ldi r18, 0x00 ; 0
+ 2576: 82 2f mov r24, r18
+ 2578: 08 95 ret
+
+0000257a <_ZNK6String6equalsEPKc>:
+ 257a: fc 01 movw r30, r24
+ 257c: 84 81 ldd r24, Z+4 ; 0x04
+ 257e: 95 81 ldd r25, Z+5 ; 0x05
+ 2580: 00 97 sbiw r24, 0x00 ; 0
+ 2582: 41 f4 brne .+16 ; 0x2594 <_ZNK6String6equalsEPKc+0x1a>
+ 2584: 61 15 cp r22, r1
+ 2586: 71 05 cpc r23, r1
+ 2588: 19 f0 breq .+6 ; 0x2590 <_ZNK6String6equalsEPKc+0x16>
+ 258a: 81 e0 ldi r24, 0x01 ; 1
+ 258c: fb 01 movw r30, r22
+ 258e: 09 c0 rjmp .+18 ; 0x25a2 <_ZNK6String6equalsEPKc+0x28>
+ 2590: 81 e0 ldi r24, 0x01 ; 1
+ 2592: 08 95 ret
+ 2594: 01 90 ld r0, Z+
+ 2596: f0 81 ld r31, Z
+ 2598: e0 2d mov r30, r0
+ 259a: 61 15 cp r22, r1
+ 259c: 71 05 cpc r23, r1
+ 259e: 31 f4 brne .+12 ; 0x25ac <_ZNK6String6equalsEPKc+0x32>
+ 25a0: 81 e0 ldi r24, 0x01 ; 1
+ 25a2: 90 81 ld r25, Z
+ 25a4: 99 23 and r25, r25
+ 25a6: 59 f0 breq .+22 ; 0x25be <_ZNK6String6equalsEPKc+0x44>
+ 25a8: 80 e0 ldi r24, 0x00 ; 0
+ 25aa: 08 95 ret
+ 25ac: cf 01 movw r24, r30
+ 25ae: 0e 94 20 28 call 0x5040 ; 0x5040 <strcmp>
+ 25b2: 9c 01 movw r18, r24
+ 25b4: 81 e0 ldi r24, 0x01 ; 1
+ 25b6: 21 15 cp r18, r1
+ 25b8: 31 05 cpc r19, r1
+ 25ba: 09 f0 breq .+2 ; 0x25be <_ZNK6String6equalsEPKc+0x44>
+ 25bc: 80 e0 ldi r24, 0x00 ; 0
+ 25be: 08 95 ret
+
+000025c0 <_ZNK6StringltERKS_>:
+ 25c0: 0e 94 76 12 call 0x24ec ; 0x24ec <_ZNK6String9compareToERKS_>
+ 25c4: 89 2f mov r24, r25
+ 25c6: 88 1f adc r24, r24
+ 25c8: 88 27 eor r24, r24
+ 25ca: 88 1f adc r24, r24
+ 25cc: 08 95 ret
+
+000025ce <_ZNK6StringgtERKS_>:
+ 25ce: 0e 94 76 12 call 0x24ec ; 0x24ec <_ZNK6String9compareToERKS_>
+ 25d2: 21 e0 ldi r18, 0x01 ; 1
+ 25d4: 18 16 cp r1, r24
+ 25d6: 19 06 cpc r1, r25
+ 25d8: 0c f0 brlt .+2 ; 0x25dc <_ZNK6StringgtERKS_+0xe>
+ 25da: 20 e0 ldi r18, 0x00 ; 0
+ 25dc: 82 2f mov r24, r18
+ 25de: 08 95 ret
+
+000025e0 <_ZNK6StringleERKS_>:
+ 25e0: 0e 94 76 12 call 0x24ec ; 0x24ec <_ZNK6String9compareToERKS_>
+ 25e4: 21 e0 ldi r18, 0x01 ; 1
+ 25e6: 18 16 cp r1, r24
+ 25e8: 19 06 cpc r1, r25
+ 25ea: 0c f4 brge .+2 ; 0x25ee <_ZNK6StringleERKS_+0xe>
+ 25ec: 20 e0 ldi r18, 0x00 ; 0
+ 25ee: 82 2f mov r24, r18
+ 25f0: 08 95 ret
+
+000025f2 <_ZNK6StringgeERKS_>:
+ 25f2: 0e 94 76 12 call 0x24ec ; 0x24ec <_ZNK6String9compareToERKS_>
+ 25f6: 89 2f mov r24, r25
+ 25f8: 80 95 com r24
+ 25fa: 88 1f adc r24, r24
+ 25fc: 88 27 eor r24, r24
+ 25fe: 88 1f adc r24, r24
+ 2600: 08 95 ret
+
+00002602 <_ZNK6String16equalsIgnoreCaseERKS_>:
+ 2602: ef 92 push r14
+ 2604: ff 92 push r15
+ 2606: 0f 93 push r16
+ 2608: 1f 93 push r17
+ 260a: cf 93 push r28
+ 260c: df 93 push r29
+ 260e: fc 01 movw r30, r24
+ 2610: db 01 movw r26, r22
+ 2612: 86 17 cp r24, r22
+ 2614: 97 07 cpc r25, r23
+ 2616: 29 f1 breq .+74 ; 0x2662 <_ZNK6String16equalsIgnoreCaseERKS_+0x60>
+ 2618: 84 81 ldd r24, Z+4 ; 0x04
+ 261a: 95 81 ldd r25, Z+5 ; 0x05
+ 261c: 14 96 adiw r26, 0x04 ; 4
+ 261e: 2d 91 ld r18, X+
+ 2620: 3c 91 ld r19, X
+ 2622: 15 97 sbiw r26, 0x05 ; 5
+ 2624: 82 17 cp r24, r18
+ 2626: 93 07 cpc r25, r19
+ 2628: f1 f4 brne .+60 ; 0x2666 <_ZNK6String16equalsIgnoreCaseERKS_+0x64>
+ 262a: 00 97 sbiw r24, 0x00 ; 0
+ 262c: d1 f0 breq .+52 ; 0x2662 <_ZNK6String16equalsIgnoreCaseERKS_+0x60>
+ 262e: 00 81 ld r16, Z
+ 2630: 11 81 ldd r17, Z+1 ; 0x01
+ 2632: cd 91 ld r28, X+
+ 2634: dc 91 ld r29, X
+ 2636: 11 97 sbiw r26, 0x01 ; 1
+ 2638: 0f c0 rjmp .+30 ; 0x2658 <_ZNK6String16equalsIgnoreCaseERKS_+0x56>
+ 263a: 99 27 eor r25, r25
+ 263c: 87 fd sbrc r24, 7
+ 263e: 90 95 com r25
+ 2640: 0e 94 dd 27 call 0x4fba ; 0x4fba <tolower>
+ 2644: 7c 01 movw r14, r24
+ 2646: 89 91 ld r24, Y+
+ 2648: 99 27 eor r25, r25
+ 264a: 87 fd sbrc r24, 7
+ 264c: 90 95 com r25
+ 264e: 0e 94 dd 27 call 0x4fba ; 0x4fba <tolower>
+ 2652: e8 16 cp r14, r24
+ 2654: f9 06 cpc r15, r25
+ 2656: 39 f4 brne .+14 ; 0x2666 <_ZNK6String16equalsIgnoreCaseERKS_+0x64>
+ 2658: f8 01 movw r30, r16
+ 265a: 81 91 ld r24, Z+
+ 265c: 8f 01 movw r16, r30
+ 265e: 88 23 and r24, r24
+ 2660: 61 f7 brne .-40 ; 0x263a <_ZNK6String16equalsIgnoreCaseERKS_+0x38>
+ 2662: 81 e0 ldi r24, 0x01 ; 1
+ 2664: 01 c0 rjmp .+2 ; 0x2668 <_ZNK6String16equalsIgnoreCaseERKS_+0x66>
+ 2666: 80 e0 ldi r24, 0x00 ; 0
+ 2668: df 91 pop r29
+ 266a: cf 91 pop r28
+ 266c: 1f 91 pop r17
+ 266e: 0f 91 pop r16
+ 2670: ff 90 pop r15
+ 2672: ef 90 pop r14
+ 2674: 08 95 ret
+
+00002676 <_ZNK6String10startsWithERKS_j>:
+ 2676: fc 01 movw r30, r24
+ 2678: db 01 movw r26, r22
+ 267a: ca 01 movw r24, r20
+ 267c: 14 96 adiw r26, 0x04 ; 4
+ 267e: 4d 91 ld r20, X+
+ 2680: 5c 91 ld r21, X
+ 2682: 15 97 sbiw r26, 0x05 ; 5
+ 2684: 24 81 ldd r18, Z+4 ; 0x04
+ 2686: 35 81 ldd r19, Z+5 ; 0x05
+ 2688: 24 1b sub r18, r20
+ 268a: 35 0b sbc r19, r21
+ 268c: 28 17 cp r18, r24
+ 268e: 39 07 cpc r19, r25
+ 2690: a0 f0 brcs .+40 ; 0x26ba <_ZNK6String10startsWithERKS_j+0x44>
+ 2692: 20 81 ld r18, Z
+ 2694: 31 81 ldd r19, Z+1 ; 0x01
+ 2696: 21 15 cp r18, r1
+ 2698: 31 05 cpc r19, r1
+ 269a: 79 f0 breq .+30 ; 0x26ba <_ZNK6String10startsWithERKS_j+0x44>
+ 269c: 6d 91 ld r22, X+
+ 269e: 7c 91 ld r23, X
+ 26a0: 11 97 sbiw r26, 0x01 ; 1
+ 26a2: 61 15 cp r22, r1
+ 26a4: 71 05 cpc r23, r1
+ 26a6: 59 f0 breq .+22 ; 0x26be <_ZNK6String10startsWithERKS_j+0x48>
+ 26a8: 82 0f add r24, r18
+ 26aa: 93 1f adc r25, r19
+ 26ac: 0e 94 30 28 call 0x5060 ; 0x5060 <strncmp>
+ 26b0: 9c 01 movw r18, r24
+ 26b2: 81 e0 ldi r24, 0x01 ; 1
+ 26b4: 21 15 cp r18, r1
+ 26b6: 31 05 cpc r19, r1
+ 26b8: 19 f0 breq .+6 ; 0x26c0 <_ZNK6String10startsWithERKS_j+0x4a>
+ 26ba: 80 e0 ldi r24, 0x00 ; 0
+ 26bc: 08 95 ret
+ 26be: 80 e0 ldi r24, 0x00 ; 0
+ 26c0: 08 95 ret
+
+000026c2 <_ZNK6String10startsWithERKS_>:
+ 26c2: fc 01 movw r30, r24
+ 26c4: 44 81 ldd r20, Z+4 ; 0x04
+ 26c6: 55 81 ldd r21, Z+5 ; 0x05
+ 26c8: fb 01 movw r30, r22
+ 26ca: 24 81 ldd r18, Z+4 ; 0x04
+ 26cc: 35 81 ldd r19, Z+5 ; 0x05
+ 26ce: 42 17 cp r20, r18
+ 26d0: 53 07 cpc r21, r19
+ 26d2: 28 f0 brcs .+10 ; 0x26de <_ZNK6String10startsWithERKS_+0x1c>
+ 26d4: 40 e0 ldi r20, 0x00 ; 0
+ 26d6: 50 e0 ldi r21, 0x00 ; 0
+ 26d8: 0e 94 3b 13 call 0x2676 ; 0x2676 <_ZNK6String10startsWithERKS_j>
+ 26dc: 08 95 ret
+ 26de: 80 e0 ldi r24, 0x00 ; 0
+ 26e0: 08 95 ret
+
+000026e2 <_ZNK6String8endsWithERKS_>:
+ 26e2: fc 01 movw r30, r24
+ 26e4: db 01 movw r26, r22
+ 26e6: 84 81 ldd r24, Z+4 ; 0x04
+ 26e8: 95 81 ldd r25, Z+5 ; 0x05
+ 26ea: 14 96 adiw r26, 0x04 ; 4
+ 26ec: 4d 91 ld r20, X+
+ 26ee: 5c 91 ld r21, X
+ 26f0: 15 97 sbiw r26, 0x05 ; 5
+ 26f2: 84 17 cp r24, r20
+ 26f4: 95 07 cpc r25, r21
+ 26f6: b0 f0 brcs .+44 ; 0x2724 <_ZNK6String8endsWithERKS_+0x42>
+ 26f8: 20 81 ld r18, Z
+ 26fa: 31 81 ldd r19, Z+1 ; 0x01
+ 26fc: 21 15 cp r18, r1
+ 26fe: 31 05 cpc r19, r1
+ 2700: 89 f0 breq .+34 ; 0x2724 <_ZNK6String8endsWithERKS_+0x42>
+ 2702: 6d 91 ld r22, X+
+ 2704: 7c 91 ld r23, X
+ 2706: 11 97 sbiw r26, 0x01 ; 1
+ 2708: 61 15 cp r22, r1
+ 270a: 71 05 cpc r23, r1
+ 270c: 69 f0 breq .+26 ; 0x2728 <_ZNK6String8endsWithERKS_+0x46>
+ 270e: 84 1b sub r24, r20
+ 2710: 95 0b sbc r25, r21
+ 2712: 82 0f add r24, r18
+ 2714: 93 1f adc r25, r19
+ 2716: 0e 94 20 28 call 0x5040 ; 0x5040 <strcmp>
+ 271a: 9c 01 movw r18, r24
+ 271c: 81 e0 ldi r24, 0x01 ; 1
+ 271e: 21 15 cp r18, r1
+ 2720: 31 05 cpc r19, r1
+ 2722: 19 f0 breq .+6 ; 0x272a <_ZNK6String8endsWithERKS_+0x48>
+ 2724: 80 e0 ldi r24, 0x00 ; 0
+ 2726: 08 95 ret
+ 2728: 80 e0 ldi r24, 0x00 ; 0
+ 272a: 08 95 ret
+
+0000272c <_ZN6String9setCharAtEjc>:
+ 272c: fc 01 movw r30, r24
+ 272e: 84 81 ldd r24, Z+4 ; 0x04
+ 2730: 95 81 ldd r25, Z+5 ; 0x05
+ 2732: 68 17 cp r22, r24
+ 2734: 79 07 cpc r23, r25
+ 2736: 30 f4 brcc .+12 ; 0x2744 <_ZN6String9setCharAtEjc+0x18>
+ 2738: 01 90 ld r0, Z+
+ 273a: f0 81 ld r31, Z
+ 273c: e0 2d mov r30, r0
+ 273e: e6 0f add r30, r22
+ 2740: f7 1f adc r31, r23
+ 2742: 40 83 st Z, r20
+ 2744: 08 95 ret
+
+00002746 <_ZN6StringixEj>:
+ 2746: fc 01 movw r30, r24
+ 2748: 84 81 ldd r24, Z+4 ; 0x04
+ 274a: 95 81 ldd r25, Z+5 ; 0x05
+ 274c: 68 17 cp r22, r24
+ 274e: 79 07 cpc r23, r25
+ 2750: 20 f4 brcc .+8 ; 0x275a <_ZN6StringixEj+0x14>
+ 2752: 80 81 ld r24, Z
+ 2754: 91 81 ldd r25, Z+1 ; 0x01
+ 2756: 00 97 sbiw r24, 0x00 ; 0
+ 2758: 29 f4 brne .+10 ; 0x2764 <_ZN6StringixEj+0x1e>
+ 275a: 10 92 c0 03 sts 0x03C0, r1
+ 275e: 60 ec ldi r22, 0xC0 ; 192
+ 2760: 73 e0 ldi r23, 0x03 ; 3
+ 2762: 02 c0 rjmp .+4 ; 0x2768 <_ZN6StringixEj+0x22>
+ 2764: 68 0f add r22, r24
+ 2766: 79 1f adc r23, r25
+ 2768: cb 01 movw r24, r22
+ 276a: 08 95 ret
+
+0000276c <_ZNK6StringixEj>:
+ 276c: fc 01 movw r30, r24
+ 276e: 84 81 ldd r24, Z+4 ; 0x04
+ 2770: 95 81 ldd r25, Z+5 ; 0x05
+ 2772: 68 17 cp r22, r24
+ 2774: 79 07 cpc r23, r25
+ 2776: 48 f4 brcc .+18 ; 0x278a <_ZNK6StringixEj+0x1e>
+ 2778: 80 81 ld r24, Z
+ 277a: 91 81 ldd r25, Z+1 ; 0x01
+ 277c: 00 97 sbiw r24, 0x00 ; 0
+ 277e: 39 f0 breq .+14 ; 0x278e <_ZNK6StringixEj+0x22>
+ 2780: 68 0f add r22, r24
+ 2782: 79 1f adc r23, r25
+ 2784: fb 01 movw r30, r22
+ 2786: 80 81 ld r24, Z
+ 2788: 08 95 ret
+ 278a: 80 e0 ldi r24, 0x00 ; 0
+ 278c: 08 95 ret
+ 278e: 80 e0 ldi r24, 0x00 ; 0
+ 2790: 08 95 ret
+
+00002792 <_ZNK6String6charAtEj>:
+ 2792: 0e 94 b6 13 call 0x276c ; 0x276c <_ZNK6StringixEj>
+ 2796: 08 95 ret
+
+00002798 <_ZNK6String8getBytesEPhjj>:
+ 2798: 0f 93 push r16
+ 279a: 1f 93 push r17
+ 279c: cf 93 push r28
+ 279e: df 93 push r29
+ 27a0: fc 01 movw r30, r24
+ 27a2: 8b 01 movw r16, r22
+ 27a4: 41 15 cp r20, r1
+ 27a6: 51 05 cpc r21, r1
+ 27a8: f1 f0 breq .+60 ; 0x27e6 <_ZNK6String8getBytesEPhjj+0x4e>
+ 27aa: 61 15 cp r22, r1
+ 27ac: 71 05 cpc r23, r1
+ 27ae: d9 f0 breq .+54 ; 0x27e6 <_ZNK6String8getBytesEPhjj+0x4e>
+ 27b0: c4 81 ldd r28, Z+4 ; 0x04
+ 27b2: d5 81 ldd r29, Z+5 ; 0x05
+ 27b4: 2c 17 cp r18, r28
+ 27b6: 3d 07 cpc r19, r29
+ 27b8: 18 f0 brcs .+6 ; 0x27c0 <_ZNK6String8getBytesEPhjj+0x28>
+ 27ba: fb 01 movw r30, r22
+ 27bc: 10 82 st Z, r1
+ 27be: 13 c0 rjmp .+38 ; 0x27e6 <_ZNK6String8getBytesEPhjj+0x4e>
+ 27c0: 41 50 subi r20, 0x01 ; 1
+ 27c2: 50 40 sbci r21, 0x00 ; 0
+ 27c4: c2 1b sub r28, r18
+ 27c6: d3 0b sbc r29, r19
+ 27c8: 4c 17 cp r20, r28
+ 27ca: 5d 07 cpc r21, r29
+ 27cc: 08 f4 brcc .+2 ; 0x27d0 <_ZNK6String8getBytesEPhjj+0x38>
+ 27ce: ea 01 movw r28, r20
+ 27d0: 60 81 ld r22, Z
+ 27d2: 71 81 ldd r23, Z+1 ; 0x01
+ 27d4: 62 0f add r22, r18
+ 27d6: 73 1f adc r23, r19
+ 27d8: c8 01 movw r24, r16
+ 27da: ae 01 movw r20, r28
+ 27dc: 0e 94 3e 28 call 0x507c ; 0x507c <strncpy>
+ 27e0: c0 0f add r28, r16
+ 27e2: d1 1f adc r29, r17
+ 27e4: 18 82 st Y, r1
+ 27e6: df 91 pop r29
+ 27e8: cf 91 pop r28
+ 27ea: 1f 91 pop r17
+ 27ec: 0f 91 pop r16
+ 27ee: 08 95 ret
+
+000027f0 <_ZNK6String7indexOfEcj>:
+ 27f0: cf 93 push r28
+ 27f2: df 93 push r29
+ 27f4: fc 01 movw r30, r24
+ 27f6: ca 01 movw r24, r20
+ 27f8: 24 81 ldd r18, Z+4 ; 0x04
+ 27fa: 35 81 ldd r19, Z+5 ; 0x05
+ 27fc: 42 17 cp r20, r18
+ 27fe: 53 07 cpc r21, r19
+ 2800: 78 f4 brcc .+30 ; 0x2820 <_ZNK6String7indexOfEcj+0x30>
+ 2802: c0 81 ld r28, Z
+ 2804: d1 81 ldd r29, Z+1 ; 0x01
+ 2806: 77 27 eor r23, r23
+ 2808: 67 fd sbrc r22, 7
+ 280a: 70 95 com r23
+ 280c: 8c 0f add r24, r28
+ 280e: 9d 1f adc r25, r29
+ 2810: 0e 94 15 28 call 0x502a ; 0x502a <strchr>
+ 2814: 00 97 sbiw r24, 0x00 ; 0
+ 2816: 21 f0 breq .+8 ; 0x2820 <_ZNK6String7indexOfEcj+0x30>
+ 2818: 9c 01 movw r18, r24
+ 281a: 2c 1b sub r18, r28
+ 281c: 3d 0b sbc r19, r29
+ 281e: 02 c0 rjmp .+4 ; 0x2824 <_ZNK6String7indexOfEcj+0x34>
+ 2820: 2f ef ldi r18, 0xFF ; 255
+ 2822: 3f ef ldi r19, 0xFF ; 255
+ 2824: c9 01 movw r24, r18
+ 2826: df 91 pop r29
+ 2828: cf 91 pop r28
+ 282a: 08 95 ret
+
+0000282c <_ZNK6String7indexOfEc>:
+ 282c: 40 e0 ldi r20, 0x00 ; 0
+ 282e: 50 e0 ldi r21, 0x00 ; 0
+ 2830: 0e 94 f8 13 call 0x27f0 ; 0x27f0 <_ZNK6String7indexOfEcj>
+ 2834: 08 95 ret
+
+00002836 <_ZNK6String7indexOfERKS_j>:
+ 2836: cf 93 push r28
+ 2838: df 93 push r29
+ 283a: fc 01 movw r30, r24
+ 283c: ca 01 movw r24, r20
+ 283e: 24 81 ldd r18, Z+4 ; 0x04
+ 2840: 35 81 ldd r19, Z+5 ; 0x05
+ 2842: 42 17 cp r20, r18
+ 2844: 53 07 cpc r21, r19
+ 2846: 78 f4 brcc .+30 ; 0x2866 <_ZNK6String7indexOfERKS_j+0x30>
+ 2848: c0 81 ld r28, Z
+ 284a: d1 81 ldd r29, Z+1 ; 0x01
+ 284c: fb 01 movw r30, r22
+ 284e: 60 81 ld r22, Z
+ 2850: 71 81 ldd r23, Z+1 ; 0x01
+ 2852: 8c 0f add r24, r28
+ 2854: 9d 1f adc r25, r29
+ 2856: 0e 94 58 28 call 0x50b0 ; 0x50b0 <strstr>
+ 285a: 00 97 sbiw r24, 0x00 ; 0
+ 285c: 21 f0 breq .+8 ; 0x2866 <_ZNK6String7indexOfERKS_j+0x30>
+ 285e: 9c 01 movw r18, r24
+ 2860: 2c 1b sub r18, r28
+ 2862: 3d 0b sbc r19, r29
+ 2864: 02 c0 rjmp .+4 ; 0x286a <_ZNK6String7indexOfERKS_j+0x34>
+ 2866: 2f ef ldi r18, 0xFF ; 255
+ 2868: 3f ef ldi r19, 0xFF ; 255
+ 286a: c9 01 movw r24, r18
+ 286c: df 91 pop r29
+ 286e: cf 91 pop r28
+ 2870: 08 95 ret
+
+00002872 <_ZNK6String7indexOfERKS_>:
+ 2872: 40 e0 ldi r20, 0x00 ; 0
+ 2874: 50 e0 ldi r21, 0x00 ; 0
+ 2876: 0e 94 1b 14 call 0x2836 ; 0x2836 <_ZNK6String7indexOfERKS_j>
+ 287a: 08 95 ret
+
+0000287c <_ZNK6String11lastIndexOfEcj>:
+ 287c: df 92 push r13
+ 287e: ef 92 push r14
+ 2880: ff 92 push r15
+ 2882: 0f 93 push r16
+ 2884: 1f 93 push r17
+ 2886: cf 93 push r28
+ 2888: df 93 push r29
+ 288a: ec 01 movw r28, r24
+ 288c: 8c 81 ldd r24, Y+4 ; 0x04
+ 288e: 9d 81 ldd r25, Y+5 ; 0x05
+ 2890: 48 17 cp r20, r24
+ 2892: 59 07 cpc r21, r25
+ 2894: f8 f4 brcc .+62 ; 0x28d4 <_ZNK6String11lastIndexOfEcj+0x58>
+ 2896: 7a 01 movw r14, r20
+ 2898: 08 94 sec
+ 289a: e1 1c adc r14, r1
+ 289c: f1 1c adc r15, r1
+ 289e: e8 81 ld r30, Y
+ 28a0: f9 81 ldd r31, Y+1 ; 0x01
+ 28a2: ee 0d add r30, r14
+ 28a4: ff 1d adc r31, r15
+ 28a6: d0 80 ld r13, Z
+ 28a8: 10 82 st Z, r1
+ 28aa: 08 81 ld r16, Y
+ 28ac: 19 81 ldd r17, Y+1 ; 0x01
+ 28ae: 77 27 eor r23, r23
+ 28b0: 67 fd sbrc r22, 7
+ 28b2: 70 95 com r23
+ 28b4: c8 01 movw r24, r16
+ 28b6: 0e 94 4d 28 call 0x509a ; 0x509a <strrchr>
+ 28ba: 0e 0d add r16, r14
+ 28bc: 1f 1d adc r17, r15
+ 28be: f8 01 movw r30, r16
+ 28c0: d0 82 st Z, r13
+ 28c2: 00 97 sbiw r24, 0x00 ; 0
+ 28c4: 39 f0 breq .+14 ; 0x28d4 <_ZNK6String11lastIndexOfEcj+0x58>
+ 28c6: 28 81 ld r18, Y
+ 28c8: 39 81 ldd r19, Y+1 ; 0x01
+ 28ca: ac 01 movw r20, r24
+ 28cc: 42 1b sub r20, r18
+ 28ce: 53 0b sbc r21, r19
+ 28d0: 9a 01 movw r18, r20
+ 28d2: 02 c0 rjmp .+4 ; 0x28d8 <_ZNK6String11lastIndexOfEcj+0x5c>
+ 28d4: 2f ef ldi r18, 0xFF ; 255
+ 28d6: 3f ef ldi r19, 0xFF ; 255
+ 28d8: c9 01 movw r24, r18
+ 28da: df 91 pop r29
+ 28dc: cf 91 pop r28
+ 28de: 1f 91 pop r17
+ 28e0: 0f 91 pop r16
+ 28e2: ff 90 pop r15
+ 28e4: ef 90 pop r14
+ 28e6: df 90 pop r13
+ 28e8: 08 95 ret
+
+000028ea <_ZNK6String11lastIndexOfEc>:
+ 28ea: fc 01 movw r30, r24
+ 28ec: 44 81 ldd r20, Z+4 ; 0x04
+ 28ee: 55 81 ldd r21, Z+5 ; 0x05
+ 28f0: 41 50 subi r20, 0x01 ; 1
+ 28f2: 50 40 sbci r21, 0x00 ; 0
+ 28f4: 0e 94 3e 14 call 0x287c ; 0x287c <_ZNK6String11lastIndexOfEcj>
+ 28f8: 08 95 ret
+
+000028fa <_ZNK6String11lastIndexOfERKS_j>:
+ 28fa: af 92 push r10
+ 28fc: bf 92 push r11
+ 28fe: cf 92 push r12
+ 2900: df 92 push r13
+ 2902: ef 92 push r14
+ 2904: ff 92 push r15
+ 2906: 0f 93 push r16
+ 2908: 1f 93 push r17
+ 290a: cf 93 push r28
+ 290c: df 93 push r29
+ 290e: fc 01 movw r30, r24
+ 2910: 6b 01 movw r12, r22
+ 2912: 8a 01 movw r16, r20
+ 2914: db 01 movw r26, r22
+ 2916: 14 96 adiw r26, 0x04 ; 4
+ 2918: 2d 91 ld r18, X+
+ 291a: 3c 91 ld r19, X
+ 291c: 15 97 sbiw r26, 0x05 ; 5
+ 291e: 21 15 cp r18, r1
+ 2920: 31 05 cpc r19, r1
+ 2922: 51 f1 breq .+84 ; 0x2978 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 2924: 84 81 ldd r24, Z+4 ; 0x04
+ 2926: 95 81 ldd r25, Z+5 ; 0x05
+ 2928: 00 97 sbiw r24, 0x00 ; 0
+ 292a: 31 f1 breq .+76 ; 0x2978 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 292c: 82 17 cp r24, r18
+ 292e: 93 07 cpc r25, r19
+ 2930: 18 f1 brcs .+70 ; 0x2978 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 2932: 48 17 cp r20, r24
+ 2934: 59 07 cpc r21, r25
+ 2936: 18 f0 brcs .+6 ; 0x293e <_ZNK6String11lastIndexOfERKS_j+0x44>
+ 2938: 8c 01 movw r16, r24
+ 293a: 01 50 subi r16, 0x01 ; 1
+ 293c: 10 40 sbci r17, 0x00 ; 0
+ 293e: e0 80 ld r14, Z
+ 2940: f1 80 ldd r15, Z+1 ; 0x01
+ 2942: c7 01 movw r24, r14
+ 2944: cf ef ldi r28, 0xFF ; 255
+ 2946: df ef ldi r29, 0xFF ; 255
+ 2948: 57 01 movw r10, r14
+ 294a: a0 0e add r10, r16
+ 294c: b1 1e adc r11, r17
+ 294e: 10 c0 rjmp .+32 ; 0x2970 <_ZNK6String11lastIndexOfERKS_j+0x76>
+ 2950: f6 01 movw r30, r12
+ 2952: 60 81 ld r22, Z
+ 2954: 71 81 ldd r23, Z+1 ; 0x01
+ 2956: 0e 94 58 28 call 0x50b0 ; 0x50b0 <strstr>
+ 295a: 00 97 sbiw r24, 0x00 ; 0
+ 295c: 79 f0 breq .+30 ; 0x297c <_ZNK6String11lastIndexOfERKS_j+0x82>
+ 295e: 9c 01 movw r18, r24
+ 2960: 2e 19 sub r18, r14
+ 2962: 3f 09 sbc r19, r15
+ 2964: 02 17 cp r16, r18
+ 2966: 13 07 cpc r17, r19
+ 2968: 08 f4 brcc .+2 ; 0x296c <_ZNK6String11lastIndexOfERKS_j+0x72>
+ 296a: 9e 01 movw r18, r28
+ 296c: 01 96 adiw r24, 0x01 ; 1
+ 296e: e9 01 movw r28, r18
+ 2970: a8 16 cp r10, r24
+ 2972: b9 06 cpc r11, r25
+ 2974: 68 f7 brcc .-38 ; 0x2950 <_ZNK6String11lastIndexOfERKS_j+0x56>
+ 2976: 02 c0 rjmp .+4 ; 0x297c <_ZNK6String11lastIndexOfERKS_j+0x82>
+ 2978: cf ef ldi r28, 0xFF ; 255
+ 297a: df ef ldi r29, 0xFF ; 255
+ 297c: ce 01 movw r24, r28
+ 297e: df 91 pop r29
+ 2980: cf 91 pop r28
+ 2982: 1f 91 pop r17
+ 2984: 0f 91 pop r16
+ 2986: ff 90 pop r15
+ 2988: ef 90 pop r14
+ 298a: df 90 pop r13
+ 298c: cf 90 pop r12
+ 298e: bf 90 pop r11
+ 2990: af 90 pop r10
+ 2992: 08 95 ret
+
+00002994 <_ZNK6String11lastIndexOfERKS_>:
+ 2994: fc 01 movw r30, r24
+ 2996: 44 81 ldd r20, Z+4 ; 0x04
+ 2998: 55 81 ldd r21, Z+5 ; 0x05
+ 299a: fb 01 movw r30, r22
+ 299c: 24 81 ldd r18, Z+4 ; 0x04
+ 299e: 35 81 ldd r19, Z+5 ; 0x05
+ 29a0: 42 1b sub r20, r18
+ 29a2: 53 0b sbc r21, r19
+ 29a4: 0e 94 7d 14 call 0x28fa ; 0x28fa <_ZNK6String11lastIndexOfERKS_j>
+ 29a8: 08 95 ret
+
+000029aa <_ZNK6String9substringEjj>:
+ 29aa: af 92 push r10
+ 29ac: bf 92 push r11
+ 29ae: cf 92 push r12
+ 29b0: df 92 push r13
+ 29b2: ef 92 push r14
+ 29b4: ff 92 push r15
+ 29b6: 0f 93 push r16
+ 29b8: 1f 93 push r17
+ 29ba: cf 93 push r28
+ 29bc: df 93 push r29
+ 29be: f8 2e mov r15, r24
+ 29c0: e9 2e mov r14, r25
+ 29c2: 6b 01 movw r12, r22
+ 29c4: 8a 01 movw r16, r20
+ 29c6: e9 01 movw r28, r18
+ 29c8: 24 17 cp r18, r20
+ 29ca: 35 07 cpc r19, r21
+ 29cc: 48 f4 brcc .+18 ; 0x29e0 <_ZNK6String9substringEjj+0x36>
+ 29ce: 34 2f mov r19, r20
+ 29d0: 21 2f mov r18, r17
+ 29d2: 8e 01 movw r16, r28
+ 29d4: c9 01 movw r24, r18
+ 29d6: a9 2e mov r10, r25
+ 29d8: e5 01 movw r28, r10
+ 29da: 5e 01 movw r10, r28
+ 29dc: b2 2e mov r11, r18
+ 29de: e5 01 movw r28, r10
+ 29e0: 8f 2d mov r24, r15
+ 29e2: 9e 2d mov r25, r14
+ 29e4: 6c ea ldi r22, 0xAC ; 172
+ 29e6: 71 e0 ldi r23, 0x01 ; 1
+ 29e8: 0e 94 44 0f call 0x1e88 ; 0x1e88 <_ZN6StringC1EPKc>
+ 29ec: d6 01 movw r26, r12
+ 29ee: 14 96 adiw r26, 0x04 ; 4
+ 29f0: 8d 91 ld r24, X+
+ 29f2: 9c 91 ld r25, X
+ 29f4: 15 97 sbiw r26, 0x05 ; 5
+ 29f6: 80 17 cp r24, r16
+ 29f8: 91 07 cpc r25, r17
+ 29fa: d8 f0 brcs .+54 ; 0x2a32 <_ZNK6String9substringEjj+0x88>
+ 29fc: 8c 17 cp r24, r28
+ 29fe: 9d 07 cpc r25, r29
+ 2a00: 08 f4 brcc .+2 ; 0x2a04 <_ZNK6String9substringEjj+0x5a>
+ 2a02: ec 01 movw r28, r24
+ 2a04: d6 01 movw r26, r12
+ 2a06: ed 91 ld r30, X+
+ 2a08: fc 91 ld r31, X
+ 2a0a: 11 97 sbiw r26, 0x01 ; 1
+ 2a0c: ec 0f add r30, r28
+ 2a0e: fd 1f adc r31, r29
+ 2a10: b0 80 ld r11, Z
+ 2a12: 10 82 st Z, r1
+ 2a14: 6d 91 ld r22, X+
+ 2a16: 7c 91 ld r23, X
+ 2a18: 60 0f add r22, r16
+ 2a1a: 71 1f adc r23, r17
+ 2a1c: 8f 2d mov r24, r15
+ 2a1e: 9e 2d mov r25, r14
+ 2a20: 0e 94 85 0f call 0x1f0a ; 0x1f0a <_ZN6StringaSEPKc>
+ 2a24: d6 01 movw r26, r12
+ 2a26: ed 91 ld r30, X+
+ 2a28: fc 91 ld r31, X
+ 2a2a: 11 97 sbiw r26, 0x01 ; 1
+ 2a2c: ec 0f add r30, r28
+ 2a2e: fd 1f adc r31, r29
+ 2a30: b0 82 st Z, r11
+ 2a32: 8f 2d mov r24, r15
+ 2a34: 9e 2d mov r25, r14
+ 2a36: df 91 pop r29
+ 2a38: cf 91 pop r28
+ 2a3a: 1f 91 pop r17
+ 2a3c: 0f 91 pop r16
+ 2a3e: ff 90 pop r15
+ 2a40: ef 90 pop r14
+ 2a42: df 90 pop r13
+ 2a44: cf 90 pop r12
+ 2a46: bf 90 pop r11
+ 2a48: af 90 pop r10
+ 2a4a: 08 95 ret
+
+00002a4c <_ZNK6String9substringEj>:
+ 2a4c: cf 93 push r28
+ 2a4e: df 93 push r29
+ 2a50: ec 01 movw r28, r24
+ 2a52: fb 01 movw r30, r22
+ 2a54: 24 81 ldd r18, Z+4 ; 0x04
+ 2a56: 35 81 ldd r19, Z+5 ; 0x05
+ 2a58: 0e 94 d5 14 call 0x29aa ; 0x29aa <_ZNK6String9substringEjj>
+ 2a5c: ce 01 movw r24, r28
+ 2a5e: df 91 pop r29
+ 2a60: cf 91 pop r28
+ 2a62: 08 95 ret
+
+00002a64 <_ZN6String7replaceEcc>:
+ 2a64: dc 01 movw r26, r24
+ 2a66: ed 91 ld r30, X+
+ 2a68: fc 91 ld r31, X
+ 2a6a: 11 97 sbiw r26, 0x01 ; 1
+ 2a6c: 30 97 sbiw r30, 0x00 ; 0
+ 2a6e: 29 f4 brne .+10 ; 0x2a7a <_ZN6String7replaceEcc+0x16>
+ 2a70: 08 95 ret
+ 2a72: 86 17 cp r24, r22
+ 2a74: 09 f4 brne .+2 ; 0x2a78 <_ZN6String7replaceEcc+0x14>
+ 2a76: 40 83 st Z, r20
+ 2a78: 31 96 adiw r30, 0x01 ; 1
+ 2a7a: 80 81 ld r24, Z
+ 2a7c: 88 23 and r24, r24
+ 2a7e: c9 f7 brne .-14 ; 0x2a72 <_ZN6String7replaceEcc+0xe>
+ 2a80: 08 95 ret
+
+00002a82 <_ZN6String7replaceERKS_S1_>:
+ 2a82: 2f 92 push r2
+ 2a84: 3f 92 push r3
+ 2a86: 4f 92 push r4
+ 2a88: 5f 92 push r5
+ 2a8a: 6f 92 push r6
+ 2a8c: 7f 92 push r7
+ 2a8e: 8f 92 push r8
+ 2a90: 9f 92 push r9
+ 2a92: af 92 push r10
+ 2a94: bf 92 push r11
+ 2a96: cf 92 push r12
+ 2a98: df 92 push r13
+ 2a9a: ef 92 push r14
+ 2a9c: ff 92 push r15
+ 2a9e: 0f 93 push r16
+ 2aa0: 1f 93 push r17
+ 2aa2: cf 93 push r28
+ 2aa4: df 93 push r29
+ 2aa6: 7c 01 movw r14, r24
+ 2aa8: 2b 01 movw r4, r22
+ 2aaa: 6a 01 movw r12, r20
+ 2aac: dc 01 movw r26, r24
+ 2aae: 14 96 adiw r26, 0x04 ; 4
+ 2ab0: 6d 90 ld r6, X+
+ 2ab2: 7c 90 ld r7, X
+ 2ab4: 15 97 sbiw r26, 0x05 ; 5
+ 2ab6: 61 14 cp r6, r1
+ 2ab8: 71 04 cpc r7, r1
+ 2aba: 09 f4 brne .+2 ; 0x2abe <_ZN6String7replaceERKS_S1_+0x3c>
+ 2abc: d9 c0 rjmp .+434 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2abe: fb 01 movw r30, r22
+ 2ac0: 84 80 ldd r8, Z+4 ; 0x04
+ 2ac2: 95 80 ldd r9, Z+5 ; 0x05
+ 2ac4: 81 14 cp r8, r1
+ 2ac6: 91 04 cpc r9, r1
+ 2ac8: 09 f4 brne .+2 ; 0x2acc <_ZN6String7replaceERKS_S1_+0x4a>
+ 2aca: d2 c0 rjmp .+420 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2acc: da 01 movw r26, r20
+ 2ace: 14 96 adiw r26, 0x04 ; 4
+ 2ad0: ad 90 ld r10, X+
+ 2ad2: bc 90 ld r11, X
+ 2ad4: 15 97 sbiw r26, 0x05 ; 5
+ 2ad6: a8 18 sub r10, r8
+ 2ad8: b9 08 sbc r11, r9
+ 2ada: fc 01 movw r30, r24
+ 2adc: 00 81 ld r16, Z
+ 2ade: 11 81 ldd r17, Z+1 ; 0x01
+ 2ae0: a1 14 cp r10, r1
+ 2ae2: b1 04 cpc r11, r1
+ 2ae4: f1 f4 brne .+60 ; 0x2b22 <_ZN6String7replaceERKS_S1_+0xa0>
+ 2ae6: 13 c0 rjmp .+38 ; 0x2b0e <_ZN6String7replaceERKS_S1_+0x8c>
+ 2ae8: d6 01 movw r26, r12
+ 2aea: 6c 91 ld r22, X
+ 2aec: 11 96 adiw r26, 0x01 ; 1
+ 2aee: 7c 91 ld r23, X
+ 2af0: 11 97 sbiw r26, 0x01 ; 1
+ 2af2: 14 96 adiw r26, 0x04 ; 4
+ 2af4: 4d 91 ld r20, X+
+ 2af6: 5c 91 ld r21, X
+ 2af8: 15 97 sbiw r26, 0x05 ; 5
+ 2afa: ce 01 movw r24, r28
+ 2afc: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 2b00: d6 01 movw r26, r12
+ 2b02: 14 96 adiw r26, 0x04 ; 4
+ 2b04: 0d 91 ld r16, X+
+ 2b06: 1c 91 ld r17, X
+ 2b08: 15 97 sbiw r26, 0x05 ; 5
+ 2b0a: 0c 0f add r16, r28
+ 2b0c: 1d 1f adc r17, r29
+ 2b0e: f2 01 movw r30, r4
+ 2b10: 60 81 ld r22, Z
+ 2b12: 71 81 ldd r23, Z+1 ; 0x01
+ 2b14: c8 01 movw r24, r16
+ 2b16: 0e 94 58 28 call 0x50b0 ; 0x50b0 <strstr>
+ 2b1a: ec 01 movw r28, r24
+ 2b1c: 00 97 sbiw r24, 0x00 ; 0
+ 2b1e: 21 f7 brne .-56 ; 0x2ae8 <_ZN6String7replaceERKS_S1_+0x66>
+ 2b20: a7 c0 rjmp .+334 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2b22: b7 fc sbrc r11, 7
+ 2b24: 02 c0 rjmp .+4 ; 0x2b2a <_ZN6String7replaceERKS_S1_+0xa8>
+ 2b26: e3 01 movw r28, r6
+ 2b28: 42 c0 rjmp .+132 ; 0x2bae <_ZN6String7replaceERKS_S1_+0x12c>
+ 2b2a: 48 01 movw r8, r16
+ 2b2c: 2d c0 rjmp .+90 ; 0x2b88 <_ZN6String7replaceERKS_S1_+0x106>
+ 2b2e: e3 01 movw r28, r6
+ 2b30: c0 1b sub r28, r16
+ 2b32: d1 0b sbc r29, r17
+ 2b34: c4 01 movw r24, r8
+ 2b36: b8 01 movw r22, r16
+ 2b38: ae 01 movw r20, r28
+ 2b3a: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 2b3e: c8 0d add r28, r8
+ 2b40: d9 1d adc r29, r9
+ 2b42: d6 01 movw r26, r12
+ 2b44: 6c 91 ld r22, X
+ 2b46: 11 96 adiw r26, 0x01 ; 1
+ 2b48: 7c 91 ld r23, X
+ 2b4a: 11 97 sbiw r26, 0x01 ; 1
+ 2b4c: 14 96 adiw r26, 0x04 ; 4
+ 2b4e: 4d 91 ld r20, X+
+ 2b50: 5c 91 ld r21, X
+ 2b52: 15 97 sbiw r26, 0x05 ; 5
+ 2b54: ce 01 movw r24, r28
+ 2b56: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 2b5a: d6 01 movw r26, r12
+ 2b5c: 14 96 adiw r26, 0x04 ; 4
+ 2b5e: 8d 90 ld r8, X+
+ 2b60: 9c 90 ld r9, X
+ 2b62: 15 97 sbiw r26, 0x05 ; 5
+ 2b64: 8c 0e add r8, r28
+ 2b66: 9d 1e adc r9, r29
+ 2b68: f2 01 movw r30, r4
+ 2b6a: 04 81 ldd r16, Z+4 ; 0x04
+ 2b6c: 15 81 ldd r17, Z+5 ; 0x05
+ 2b6e: 06 0d add r16, r6
+ 2b70: 17 1d adc r17, r7
+ 2b72: d7 01 movw r26, r14
+ 2b74: 14 96 adiw r26, 0x04 ; 4
+ 2b76: 8d 91 ld r24, X+
+ 2b78: 9c 91 ld r25, X
+ 2b7a: 15 97 sbiw r26, 0x05 ; 5
+ 2b7c: 8a 0d add r24, r10
+ 2b7e: 9b 1d adc r25, r11
+ 2b80: 15 96 adiw r26, 0x05 ; 5
+ 2b82: 9c 93 st X, r25
+ 2b84: 8e 93 st -X, r24
+ 2b86: 14 97 sbiw r26, 0x04 ; 4
+ 2b88: f2 01 movw r30, r4
+ 2b8a: 60 81 ld r22, Z
+ 2b8c: 71 81 ldd r23, Z+1 ; 0x01
+ 2b8e: c8 01 movw r24, r16
+ 2b90: 0e 94 58 28 call 0x50b0 ; 0x50b0 <strstr>
+ 2b94: 3c 01 movw r6, r24
+ 2b96: 00 97 sbiw r24, 0x00 ; 0
+ 2b98: 51 f6 brne .-108 ; 0x2b2e <_ZN6String7replaceERKS_S1_+0xac>
+ 2b9a: c4 01 movw r24, r8
+ 2b9c: b8 01 movw r22, r16
+ 2b9e: 0e 94 29 28 call 0x5052 ; 0x5052 <strcpy>
+ 2ba2: 66 c0 rjmp .+204 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2ba4: 8c 01 movw r16, r24
+ 2ba6: 08 0d add r16, r8
+ 2ba8: 19 1d adc r17, r9
+ 2baa: ca 0d add r28, r10
+ 2bac: db 1d adc r29, r11
+ 2bae: d2 01 movw r26, r4
+ 2bb0: 6d 91 ld r22, X+
+ 2bb2: 7c 91 ld r23, X
+ 2bb4: c8 01 movw r24, r16
+ 2bb6: 0e 94 58 28 call 0x50b0 ; 0x50b0 <strstr>
+ 2bba: 00 97 sbiw r24, 0x00 ; 0
+ 2bbc: 99 f7 brne .-26 ; 0x2ba4 <_ZN6String7replaceERKS_S1_+0x122>
+ 2bbe: c6 15 cp r28, r6
+ 2bc0: d7 05 cpc r29, r7
+ 2bc2: 09 f4 brne .+2 ; 0x2bc6 <_ZN6String7replaceERKS_S1_+0x144>
+ 2bc4: 55 c0 rjmp .+170 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2bc6: f7 01 movw r30, r14
+ 2bc8: 82 81 ldd r24, Z+2 ; 0x02
+ 2bca: 93 81 ldd r25, Z+3 ; 0x03
+ 2bcc: 8c 17 cp r24, r28
+ 2bce: 9d 07 cpc r25, r29
+ 2bd0: 08 f0 brcs .+2 ; 0x2bd4 <_ZN6String7replaceERKS_S1_+0x152>
+ 2bd2: 45 c0 rjmp .+138 ; 0x2c5e <_ZN6String7replaceERKS_S1_+0x1dc>
+ 2bd4: c7 01 movw r24, r14
+ 2bd6: be 01 movw r22, r28
+ 2bd8: 0e 94 ea 0e call 0x1dd4 ; 0x1dd4 <_ZN6String12changeBufferEj>
+ 2bdc: 88 23 and r24, r24
+ 2bde: 09 f4 brne .+2 ; 0x2be2 <_ZN6String7replaceERKS_S1_+0x160>
+ 2be0: 47 c0 rjmp .+142 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2be2: 3d c0 rjmp .+122 ; 0x2c5e <_ZN6String7replaceERKS_S1_+0x1dc>
+ 2be4: c7 01 movw r24, r14
+ 2be6: b2 01 movw r22, r4
+ 2be8: a9 01 movw r20, r18
+ 2bea: 0e 94 7d 14 call 0x28fa ; 0x28fa <_ZNK6String11lastIndexOfERKS_j>
+ 2bee: ec 01 movw r28, r24
+ 2bf0: 97 fd sbrc r25, 7
+ 2bf2: 3e c0 rjmp .+124 ; 0x2c70 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2bf4: d7 01 movw r26, r14
+ 2bf6: 6d 91 ld r22, X+
+ 2bf8: 7c 91 ld r23, X
+ 2bfa: 11 97 sbiw r26, 0x01 ; 1
+ 2bfc: f2 01 movw r30, r4
+ 2bfe: 84 81 ldd r24, Z+4 ; 0x04
+ 2c00: 95 81 ldd r25, Z+5 ; 0x05
+ 2c02: 8c 0f add r24, r28
+ 2c04: 9d 1f adc r25, r29
+ 2c06: 68 0f add r22, r24
+ 2c08: 79 1f adc r23, r25
+ 2c0a: 14 96 adiw r26, 0x04 ; 4
+ 2c0c: 4d 91 ld r20, X+
+ 2c0e: 5c 91 ld r21, X
+ 2c10: 15 97 sbiw r26, 0x05 ; 5
+ 2c12: 48 1b sub r20, r24
+ 2c14: 59 0b sbc r21, r25
+ 2c16: cb 01 movw r24, r22
+ 2c18: 8a 0d add r24, r10
+ 2c1a: 9b 1d adc r25, r11
+ 2c1c: 0e 94 03 28 call 0x5006 ; 0x5006 <memmove>
+ 2c20: d7 01 movw r26, r14
+ 2c22: 14 96 adiw r26, 0x04 ; 4
+ 2c24: 8d 91 ld r24, X+
+ 2c26: 9c 91 ld r25, X
+ 2c28: 15 97 sbiw r26, 0x05 ; 5
+ 2c2a: 8a 0d add r24, r10
+ 2c2c: 9b 1d adc r25, r11
+ 2c2e: 15 96 adiw r26, 0x05 ; 5
+ 2c30: 9c 93 st X, r25
+ 2c32: 8e 93 st -X, r24
+ 2c34: 14 97 sbiw r26, 0x04 ; 4
+ 2c36: ed 91 ld r30, X+
+ 2c38: fc 91 ld r31, X
+ 2c3a: 11 97 sbiw r26, 0x01 ; 1
+ 2c3c: e8 0f add r30, r24
+ 2c3e: f9 1f adc r31, r25
+ 2c40: 10 82 st Z, r1
+ 2c42: 2d 91 ld r18, X+
+ 2c44: 3c 91 ld r19, X
+ 2c46: 2c 0f add r18, r28
+ 2c48: 3d 1f adc r19, r29
+ 2c4a: f6 01 movw r30, r12
+ 2c4c: 60 81 ld r22, Z
+ 2c4e: 71 81 ldd r23, Z+1 ; 0x01
+ 2c50: 44 81 ldd r20, Z+4 ; 0x04
+ 2c52: 55 81 ldd r21, Z+5 ; 0x05
+ 2c54: c9 01 movw r24, r18
+ 2c56: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 2c5a: 9e 01 movw r18, r28
+ 2c5c: 05 c0 rjmp .+10 ; 0x2c68 <_ZN6String7replaceERKS_S1_+0x1e6>
+ 2c5e: d7 01 movw r26, r14
+ 2c60: 14 96 adiw r26, 0x04 ; 4
+ 2c62: 2d 91 ld r18, X+
+ 2c64: 3c 91 ld r19, X
+ 2c66: 15 97 sbiw r26, 0x05 ; 5
+ 2c68: 21 50 subi r18, 0x01 ; 1
+ 2c6a: 30 40 sbci r19, 0x00 ; 0
+ 2c6c: 37 ff sbrs r19, 7
+ 2c6e: ba cf rjmp .-140 ; 0x2be4 <_ZN6String7replaceERKS_S1_+0x162>
+ 2c70: df 91 pop r29
+ 2c72: cf 91 pop r28
+ 2c74: 1f 91 pop r17
+ 2c76: 0f 91 pop r16
+ 2c78: ff 90 pop r15
+ 2c7a: ef 90 pop r14
+ 2c7c: df 90 pop r13
+ 2c7e: cf 90 pop r12
+ 2c80: bf 90 pop r11
+ 2c82: af 90 pop r10
+ 2c84: 9f 90 pop r9
+ 2c86: 8f 90 pop r8
+ 2c88: 7f 90 pop r7
+ 2c8a: 6f 90 pop r6
+ 2c8c: 5f 90 pop r5
+ 2c8e: 4f 90 pop r4
+ 2c90: 3f 90 pop r3
+ 2c92: 2f 90 pop r2
+ 2c94: 08 95 ret
+
+00002c96 <_ZN6String11toLowerCaseEv>:
+ 2c96: cf 93 push r28
+ 2c98: df 93 push r29
+ 2c9a: fc 01 movw r30, r24
+ 2c9c: c0 81 ld r28, Z
+ 2c9e: d1 81 ldd r29, Z+1 ; 0x01
+ 2ca0: 20 97 sbiw r28, 0x00 ; 0
+ 2ca2: 39 f4 brne .+14 ; 0x2cb2 <_ZN6String11toLowerCaseEv+0x1c>
+ 2ca4: 09 c0 rjmp .+18 ; 0x2cb8 <_ZN6String11toLowerCaseEv+0x22>
+ 2ca6: 99 27 eor r25, r25
+ 2ca8: 87 fd sbrc r24, 7
+ 2caa: 90 95 com r25
+ 2cac: 0e 94 dd 27 call 0x4fba ; 0x4fba <tolower>
+ 2cb0: 89 93 st Y+, r24
+ 2cb2: 88 81 ld r24, Y
+ 2cb4: 88 23 and r24, r24
+ 2cb6: b9 f7 brne .-18 ; 0x2ca6 <_ZN6String11toLowerCaseEv+0x10>
+ 2cb8: df 91 pop r29
+ 2cba: cf 91 pop r28
+ 2cbc: 08 95 ret
+
+00002cbe <_ZN6String11toUpperCaseEv>:
+ 2cbe: cf 93 push r28
+ 2cc0: df 93 push r29
+ 2cc2: fc 01 movw r30, r24
+ 2cc4: c0 81 ld r28, Z
+ 2cc6: d1 81 ldd r29, Z+1 ; 0x01
+ 2cc8: 20 97 sbiw r28, 0x00 ; 0
+ 2cca: 39 f4 brne .+14 ; 0x2cda <_ZN6String11toUpperCaseEv+0x1c>
+ 2ccc: 09 c0 rjmp .+18 ; 0x2ce0 <_ZN6String11toUpperCaseEv+0x22>
+ 2cce: 99 27 eor r25, r25
+ 2cd0: 87 fd sbrc r24, 7
+ 2cd2: 90 95 com r25
+ 2cd4: 0e 94 e5 27 call 0x4fca ; 0x4fca <toupper>
+ 2cd8: 89 93 st Y+, r24
+ 2cda: 88 81 ld r24, Y
+ 2cdc: 88 23 and r24, r24
+ 2cde: b9 f7 brne .-18 ; 0x2cce <_ZN6String11toUpperCaseEv+0x10>
+ 2ce0: df 91 pop r29
+ 2ce2: cf 91 pop r28
+ 2ce4: 08 95 ret
+
+00002ce6 <_ZN6String4trimEv>:
+ 2ce6: af 92 push r10
+ 2ce8: bf 92 push r11
+ 2cea: cf 92 push r12
+ 2cec: df 92 push r13
+ 2cee: ef 92 push r14
+ 2cf0: ff 92 push r15
+ 2cf2: 0f 93 push r16
+ 2cf4: 1f 93 push r17
+ 2cf6: cf 93 push r28
+ 2cf8: df 93 push r29
+ 2cfa: 6c 01 movw r12, r24
+ 2cfc: dc 01 movw r26, r24
+ 2cfe: ed 90 ld r14, X+
+ 2d00: fc 90 ld r15, X
+ 2d02: 11 97 sbiw r26, 0x01 ; 1
+ 2d04: e1 14 cp r14, r1
+ 2d06: f1 04 cpc r15, r1
+ 2d08: 09 f4 brne .+2 ; 0x2d0c <_ZN6String4trimEv+0x26>
+ 2d0a: 43 c0 rjmp .+134 ; 0x2d92 <_ZN6String4trimEv+0xac>
+ 2d0c: 14 96 adiw r26, 0x04 ; 4
+ 2d0e: ad 90 ld r10, X+
+ 2d10: bc 90 ld r11, X
+ 2d12: 15 97 sbiw r26, 0x05 ; 5
+ 2d14: a1 14 cp r10, r1
+ 2d16: b1 04 cpc r11, r1
+ 2d18: e1 f1 breq .+120 ; 0x2d92 <_ZN6String4trimEv+0xac>
+ 2d1a: 87 01 movw r16, r14
+ 2d1c: e8 01 movw r28, r16
+ 2d1e: 88 81 ld r24, Y
+ 2d20: 0f 5f subi r16, 0xFF ; 255
+ 2d22: 1f 4f sbci r17, 0xFF ; 255
+ 2d24: 99 27 eor r25, r25
+ 2d26: 87 fd sbrc r24, 7
+ 2d28: 90 95 com r25
+ 2d2a: 0e 94 d5 27 call 0x4faa ; 0x4faa <isspace>
+ 2d2e: 00 97 sbiw r24, 0x00 ; 0
+ 2d30: a9 f7 brne .-22 ; 0x2d1c <_ZN6String4trimEv+0x36>
+ 2d32: 85 01 movw r16, r10
+ 2d34: 01 50 subi r16, 0x01 ; 1
+ 2d36: 10 40 sbci r17, 0x00 ; 0
+ 2d38: 0e 0d add r16, r14
+ 2d3a: 1f 1d adc r17, r15
+ 2d3c: f8 01 movw r30, r16
+ 2d3e: 80 81 ld r24, Z
+ 2d40: 99 27 eor r25, r25
+ 2d42: 87 fd sbrc r24, 7
+ 2d44: 90 95 com r25
+ 2d46: 0e 94 d5 27 call 0x4faa ; 0x4faa <isspace>
+ 2d4a: 00 97 sbiw r24, 0x00 ; 0
+ 2d4c: 31 f0 breq .+12 ; 0x2d5a <_ZN6String4trimEv+0x74>
+ 2d4e: 0c 17 cp r16, r28
+ 2d50: 1d 07 cpc r17, r29
+ 2d52: 18 f0 brcs .+6 ; 0x2d5a <_ZN6String4trimEv+0x74>
+ 2d54: 01 50 subi r16, 0x01 ; 1
+ 2d56: 10 40 sbci r17, 0x00 ; 0
+ 2d58: f1 cf rjmp .-30 ; 0x2d3c <_ZN6String4trimEv+0x56>
+ 2d5a: 0f 5f subi r16, 0xFF ; 255
+ 2d5c: 1f 4f sbci r17, 0xFF ; 255
+ 2d5e: 0c 1b sub r16, r28
+ 2d60: 1d 0b sbc r17, r29
+ 2d62: d6 01 movw r26, r12
+ 2d64: 15 96 adiw r26, 0x05 ; 5
+ 2d66: 1c 93 st X, r17
+ 2d68: 0e 93 st -X, r16
+ 2d6a: 14 97 sbiw r26, 0x04 ; 4
+ 2d6c: ec 16 cp r14, r28
+ 2d6e: fd 06 cpc r15, r29
+ 2d70: 28 f4 brcc .+10 ; 0x2d7c <_ZN6String4trimEv+0x96>
+ 2d72: c7 01 movw r24, r14
+ 2d74: be 01 movw r22, r28
+ 2d76: a8 01 movw r20, r16
+ 2d78: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 2d7c: d6 01 movw r26, r12
+ 2d7e: ed 91 ld r30, X+
+ 2d80: fc 91 ld r31, X
+ 2d82: 11 97 sbiw r26, 0x01 ; 1
+ 2d84: 14 96 adiw r26, 0x04 ; 4
+ 2d86: 8d 91 ld r24, X+
+ 2d88: 9c 91 ld r25, X
+ 2d8a: 15 97 sbiw r26, 0x05 ; 5
+ 2d8c: e8 0f add r30, r24
+ 2d8e: f9 1f adc r31, r25
+ 2d90: 10 82 st Z, r1
+ 2d92: df 91 pop r29
+ 2d94: cf 91 pop r28
+ 2d96: 1f 91 pop r17
+ 2d98: 0f 91 pop r16
+ 2d9a: ff 90 pop r15
+ 2d9c: ef 90 pop r14
+ 2d9e: df 90 pop r13
+ 2da0: cf 90 pop r12
+ 2da2: bf 90 pop r11
+ 2da4: af 90 pop r10
+ 2da6: 08 95 ret
+
+00002da8 <_ZNK6String5toIntEv>:
+ 2da8: fc 01 movw r30, r24
+ 2daa: 80 81 ld r24, Z
+ 2dac: 91 81 ldd r25, Z+1 ; 0x01
+ 2dae: 00 97 sbiw r24, 0x00 ; 0
+ 2db0: 29 f0 breq .+10 ; 0x2dbc <_ZNK6String5toIntEv+0x14>
+ 2db2: 0e 94 ae 27 call 0x4f5c ; 0x4f5c <atol>
+ 2db6: 9b 01 movw r18, r22
+ 2db8: ac 01 movw r20, r24
+ 2dba: 03 c0 rjmp .+6 ; 0x2dc2 <_ZNK6String5toIntEv+0x1a>
+ 2dbc: 20 e0 ldi r18, 0x00 ; 0
+ 2dbe: 30 e0 ldi r19, 0x00 ; 0
+ 2dc0: a9 01 movw r20, r18
+ 2dc2: b9 01 movw r22, r18
+ 2dc4: ca 01 movw r24, r20
+ 2dc6: 08 95 ret
+
+00002dc8 <_Znwj>:
+ 2dc8: 0e 94 5b 25 call 0x4ab6 ; 0x4ab6 <malloc>
+ 2dcc: 08 95 ret
+
+00002dce <_ZdlPv>:
+ 2dce: 0e 94 f5 25 call 0x4bea ; 0x4bea <free>
+ 2dd2: 08 95 ret
+
+00002dd4 <__cxa_guard_acquire>:
+ 2dd4: 21 e0 ldi r18, 0x01 ; 1
+ 2dd6: 30 e0 ldi r19, 0x00 ; 0
+ 2dd8: fc 01 movw r30, r24
+ 2dda: 80 81 ld r24, Z
+ 2ddc: 88 23 and r24, r24
+ 2dde: 11 f0 breq .+4 ; 0x2de4 <__cxa_guard_acquire+0x10>
+ 2de0: 20 e0 ldi r18, 0x00 ; 0
+ 2de2: 30 e0 ldi r19, 0x00 ; 0
+ 2de4: c9 01 movw r24, r18
+ 2de6: 08 95 ret
+
+00002de8 <__cxa_guard_release>:
+ 2de8: 21 e0 ldi r18, 0x01 ; 1
+ 2dea: fc 01 movw r30, r24
+ 2dec: 20 83 st Z, r18
+ 2dee: 08 95 ret
+
+00002df0 <__cxa_guard_abort>:
+ 2df0: 08 95 ret
+
+00002df2 <__cxa_pure_virtual>:
+ 2df2: 08 95 ret
+
+00002df4 <__vector_16>:
+ 2df4: 1f 92 push r1
+ 2df6: 0f 92 push r0
+ 2df8: 0f b6 in r0, 0x3f ; 63
+ 2dfa: 0f 92 push r0
+ 2dfc: 11 24 eor r1, r1
+ 2dfe: 2f 93 push r18
+ 2e00: 3f 93 push r19
+ 2e02: 4f 93 push r20
+ 2e04: 5f 93 push r21
+ 2e06: 6f 93 push r22
+ 2e08: 7f 93 push r23
+ 2e0a: 8f 93 push r24
+ 2e0c: 9f 93 push r25
+ 2e0e: af 93 push r26
+ 2e10: bf 93 push r27
+ 2e12: 20 91 c5 03 lds r18, 0x03C5
+ 2e16: 30 91 c6 03 lds r19, 0x03C6
+ 2e1a: 40 91 c7 03 lds r20, 0x03C7
+ 2e1e: 50 91 c8 03 lds r21, 0x03C8
+ 2e22: 70 91 c9 03 lds r23, 0x03C9
+ 2e26: da 01 movw r26, r20
+ 2e28: c9 01 movw r24, r18
+ 2e2a: 02 96 adiw r24, 0x02 ; 2
+ 2e2c: a1 1d adc r26, r1
+ 2e2e: b1 1d adc r27, r1
+ 2e30: 67 2f mov r22, r23
+ 2e32: 6a 5f subi r22, 0xFA ; 250
+ 2e34: 6d 37 cpi r22, 0x7D ; 125
+ 2e36: 30 f0 brcs .+12 ; 0x2e44 <__vector_16+0x50>
+ 2e38: 6d 57 subi r22, 0x7D ; 125
+ 2e3a: da 01 movw r26, r20
+ 2e3c: c9 01 movw r24, r18
+ 2e3e: 03 96 adiw r24, 0x03 ; 3
+ 2e40: a1 1d adc r26, r1
+ 2e42: b1 1d adc r27, r1
+ 2e44: 60 93 c9 03 sts 0x03C9, r22
+ 2e48: 80 93 c5 03 sts 0x03C5, r24
+ 2e4c: 90 93 c6 03 sts 0x03C6, r25
+ 2e50: a0 93 c7 03 sts 0x03C7, r26
+ 2e54: b0 93 c8 03 sts 0x03C8, r27
+ 2e58: 80 91 c1 03 lds r24, 0x03C1
+ 2e5c: 90 91 c2 03 lds r25, 0x03C2
+ 2e60: a0 91 c3 03 lds r26, 0x03C3
+ 2e64: b0 91 c4 03 lds r27, 0x03C4
+ 2e68: 01 96 adiw r24, 0x01 ; 1
+ 2e6a: a1 1d adc r26, r1
+ 2e6c: b1 1d adc r27, r1
+ 2e6e: 80 93 c1 03 sts 0x03C1, r24
+ 2e72: 90 93 c2 03 sts 0x03C2, r25
+ 2e76: a0 93 c3 03 sts 0x03C3, r26
+ 2e7a: b0 93 c4 03 sts 0x03C4, r27
+ 2e7e: bf 91 pop r27
+ 2e80: af 91 pop r26
+ 2e82: 9f 91 pop r25
+ 2e84: 8f 91 pop r24
+ 2e86: 7f 91 pop r23
+ 2e88: 6f 91 pop r22
+ 2e8a: 5f 91 pop r21
+ 2e8c: 4f 91 pop r20
+ 2e8e: 3f 91 pop r19
+ 2e90: 2f 91 pop r18
+ 2e92: 0f 90 pop r0
+ 2e94: 0f be out 0x3f, r0 ; 63
+ 2e96: 0f 90 pop r0
+ 2e98: 1f 90 pop r1
+ 2e9a: 18 95 reti
+
+00002e9c <millis>:
+ 2e9c: 8f b7 in r24, 0x3f ; 63
+ 2e9e: f8 94 cli
+ 2ea0: 20 91 c5 03 lds r18, 0x03C5
+ 2ea4: 30 91 c6 03 lds r19, 0x03C6
+ 2ea8: 40 91 c7 03 lds r20, 0x03C7
+ 2eac: 50 91 c8 03 lds r21, 0x03C8
+ 2eb0: 8f bf out 0x3f, r24 ; 63
+ 2eb2: b9 01 movw r22, r18
+ 2eb4: ca 01 movw r24, r20
+ 2eb6: 08 95 ret
+
+00002eb8 <micros>:
+ 2eb8: 9f b7 in r25, 0x3f ; 63
+ 2eba: f8 94 cli
+ 2ebc: 20 91 c1 03 lds r18, 0x03C1
+ 2ec0: 30 91 c2 03 lds r19, 0x03C2
+ 2ec4: 40 91 c3 03 lds r20, 0x03C3
+ 2ec8: 50 91 c4 03 lds r21, 0x03C4
+ 2ecc: 86 b5 in r24, 0x26 ; 38
+ 2ece: a8 9b sbis 0x15, 0 ; 21
+ 2ed0: 06 c0 rjmp .+12 ; 0x2ede <micros+0x26>
+ 2ed2: 8f 3f cpi r24, 0xFF ; 255
+ 2ed4: 21 f0 breq .+8 ; 0x2ede <micros+0x26>
+ 2ed6: 2f 5f subi r18, 0xFF ; 255
+ 2ed8: 3f 4f sbci r19, 0xFF ; 255
+ 2eda: 4f 4f sbci r20, 0xFF ; 255
+ 2edc: 5f 4f sbci r21, 0xFF ; 255
+ 2ede: 9f bf out 0x3f, r25 ; 63
+ 2ee0: 54 2f mov r21, r20
+ 2ee2: 43 2f mov r20, r19
+ 2ee4: 32 2f mov r19, r18
+ 2ee6: 22 27 eor r18, r18
+ 2ee8: 28 0f add r18, r24
+ 2eea: 31 1d adc r19, r1
+ 2eec: 41 1d adc r20, r1
+ 2eee: 51 1d adc r21, r1
+ 2ef0: 83 e0 ldi r24, 0x03 ; 3
+ 2ef2: 22 0f add r18, r18
+ 2ef4: 33 1f adc r19, r19
+ 2ef6: 44 1f adc r20, r20
+ 2ef8: 55 1f adc r21, r21
+ 2efa: 8a 95 dec r24
+ 2efc: d1 f7 brne .-12 ; 0x2ef2 <micros+0x3a>
+ 2efe: b9 01 movw r22, r18
+ 2f00: ca 01 movw r24, r20
+ 2f02: 08 95 ret
+
+00002f04 <delay>:
+ 2f04: ef 92 push r14
+ 2f06: ff 92 push r15
+ 2f08: 0f 93 push r16
+ 2f0a: 1f 93 push r17
+ 2f0c: cf 93 push r28
+ 2f0e: df 93 push r29
+ 2f10: 7b 01 movw r14, r22
+ 2f12: 8c 01 movw r16, r24
+ 2f14: 0e 94 5c 17 call 0x2eb8 ; 0x2eb8 <micros>
+ 2f18: eb 01 movw r28, r22
+ 2f1a: 0f c0 rjmp .+30 ; 0x2f3a <delay+0x36>
+ 2f1c: 0e 94 5c 17 call 0x2eb8 ; 0x2eb8 <micros>
+ 2f20: 6c 1b sub r22, r28
+ 2f22: 7d 0b sbc r23, r29
+ 2f24: 83 e0 ldi r24, 0x03 ; 3
+ 2f26: 68 3e cpi r22, 0xE8 ; 232
+ 2f28: 78 07 cpc r23, r24
+ 2f2a: 38 f0 brcs .+14 ; 0x2f3a <delay+0x36>
+ 2f2c: 08 94 sec
+ 2f2e: e1 08 sbc r14, r1
+ 2f30: f1 08 sbc r15, r1
+ 2f32: 01 09 sbc r16, r1
+ 2f34: 11 09 sbc r17, r1
+ 2f36: c8 51 subi r28, 0x18 ; 24
+ 2f38: dc 4f sbci r29, 0xFC ; 252
+ 2f3a: e1 14 cp r14, r1
+ 2f3c: f1 04 cpc r15, r1
+ 2f3e: 01 05 cpc r16, r1
+ 2f40: 11 05 cpc r17, r1
+ 2f42: 61 f7 brne .-40 ; 0x2f1c <delay+0x18>
+ 2f44: df 91 pop r29
+ 2f46: cf 91 pop r28
+ 2f48: 1f 91 pop r17
+ 2f4a: 0f 91 pop r16
+ 2f4c: ff 90 pop r15
+ 2f4e: ef 90 pop r14
+ 2f50: 08 95 ret
+
+00002f52 <delayMicroseconds>:
+ 2f52: 01 97 sbiw r24, 0x01 ; 1
+ 2f54: 39 f0 breq .+14 ; 0x2f64 <delayMicroseconds+0x12>
+ 2f56: 01 97 sbiw r24, 0x01 ; 1
+ 2f58: 29 f0 breq .+10 ; 0x2f64 <delayMicroseconds+0x12>
+ 2f5a: 88 0f add r24, r24
+ 2f5c: 99 1f adc r25, r25
+ 2f5e: 01 97 sbiw r24, 0x01 ; 1
+ 2f60: 01 97 sbiw r24, 0x01 ; 1
+ 2f62: f1 f7 brne .-4 ; 0x2f60 <delayMicroseconds+0xe>
+ 2f64: 08 95 ret
+
+00002f66 <init>:
+ 2f66: 78 94 sei
+ 2f68: 84 b5 in r24, 0x24 ; 36
+ 2f6a: 82 60 ori r24, 0x02 ; 2
+ 2f6c: 84 bd out 0x24, r24 ; 36
+ 2f6e: 84 b5 in r24, 0x24 ; 36
+ 2f70: 81 60 ori r24, 0x01 ; 1
+ 2f72: 84 bd out 0x24, r24 ; 36
+ 2f74: 85 b5 in r24, 0x25 ; 37
+ 2f76: 82 60 ori r24, 0x02 ; 2
+ 2f78: 85 bd out 0x25, r24 ; 37
+ 2f7a: 85 b5 in r24, 0x25 ; 37
+ 2f7c: 81 60 ori r24, 0x01 ; 1
+ 2f7e: 85 bd out 0x25, r24 ; 37
+ 2f80: ee e6 ldi r30, 0x6E ; 110
+ 2f82: f0 e0 ldi r31, 0x00 ; 0
+ 2f84: 80 81 ld r24, Z
+ 2f86: 81 60 ori r24, 0x01 ; 1
+ 2f88: 80 83 st Z, r24
+ 2f8a: e1 e8 ldi r30, 0x81 ; 129
+ 2f8c: f0 e0 ldi r31, 0x00 ; 0
+ 2f8e: 10 82 st Z, r1
+ 2f90: 80 81 ld r24, Z
+ 2f92: 82 60 ori r24, 0x02 ; 2
+ 2f94: 80 83 st Z, r24
+ 2f96: 80 81 ld r24, Z
+ 2f98: 81 60 ori r24, 0x01 ; 1
+ 2f9a: 80 83 st Z, r24
+ 2f9c: e0 e8 ldi r30, 0x80 ; 128
+ 2f9e: f0 e0 ldi r31, 0x00 ; 0
+ 2fa0: 80 81 ld r24, Z
+ 2fa2: 81 60 ori r24, 0x01 ; 1
+ 2fa4: 80 83 st Z, r24
+ 2fa6: e1 eb ldi r30, 0xB1 ; 177
+ 2fa8: f0 e0 ldi r31, 0x00 ; 0
+ 2faa: 80 81 ld r24, Z
+ 2fac: 84 60 ori r24, 0x04 ; 4
+ 2fae: 80 83 st Z, r24
+ 2fb0: e0 eb ldi r30, 0xB0 ; 176
+ 2fb2: f0 e0 ldi r31, 0x00 ; 0
+ 2fb4: 80 81 ld r24, Z
+ 2fb6: 81 60 ori r24, 0x01 ; 1
+ 2fb8: 80 83 st Z, r24
+ 2fba: ea e7 ldi r30, 0x7A ; 122
+ 2fbc: f0 e0 ldi r31, 0x00 ; 0
+ 2fbe: 80 81 ld r24, Z
+ 2fc0: 84 60 ori r24, 0x04 ; 4
+ 2fc2: 80 83 st Z, r24
+ 2fc4: 80 81 ld r24, Z
+ 2fc6: 82 60 ori r24, 0x02 ; 2
+ 2fc8: 80 83 st Z, r24
+ 2fca: 80 81 ld r24, Z
+ 2fcc: 81 60 ori r24, 0x01 ; 1
+ 2fce: 80 83 st Z, r24
+ 2fd0: 80 81 ld r24, Z
+ 2fd2: 80 68 ori r24, 0x80 ; 128
+ 2fd4: 80 83 st Z, r24
+ 2fd6: 10 92 c1 00 sts 0x00C1, r1
+ 2fda: 08 95 ret
+
+00002fdc <analogReference>:
+ 2fdc: 80 93 ad 01 sts 0x01AD, r24
+ 2fe0: 08 95 ret
+
+00002fe2 <analogRead>:
+ 2fe2: 8e 30 cpi r24, 0x0E ; 14
+ 2fe4: 08 f0 brcs .+2 ; 0x2fe8 <analogRead+0x6>
+ 2fe6: 8e 50 subi r24, 0x0E ; 14
+ 2fe8: 87 70 andi r24, 0x07 ; 7
+ 2fea: 90 91 ad 01 lds r25, 0x01AD
+ 2fee: 92 95 swap r25
+ 2ff0: 99 0f add r25, r25
+ 2ff2: 99 0f add r25, r25
+ 2ff4: 90 7c andi r25, 0xC0 ; 192
+ 2ff6: 98 2b or r25, r24
+ 2ff8: 90 93 7c 00 sts 0x007C, r25
+ 2ffc: 80 91 7a 00 lds r24, 0x007A
+ 3000: 80 64 ori r24, 0x40 ; 64
+ 3002: 80 93 7a 00 sts 0x007A, r24
+ 3006: 80 91 7a 00 lds r24, 0x007A
+ 300a: 86 fd sbrc r24, 6
+ 300c: fc cf rjmp .-8 ; 0x3006 <analogRead+0x24>
+ 300e: 20 91 78 00 lds r18, 0x0078
+ 3012: 30 91 79 00 lds r19, 0x0079
+ 3016: 93 2f mov r25, r19
+ 3018: 80 e0 ldi r24, 0x00 ; 0
+ 301a: 30 e0 ldi r19, 0x00 ; 0
+ 301c: 28 2b or r18, r24
+ 301e: 39 2b or r19, r25
+ 3020: c9 01 movw r24, r18
+ 3022: 08 95 ret
+
+00003024 <analogWrite>:
+ 3024: 1f 93 push r17
+ 3026: cf 93 push r28
+ 3028: df 93 push r29
+ 302a: 18 2f mov r17, r24
+ 302c: eb 01 movw r28, r22
+ 302e: 61 e0 ldi r22, 0x01 ; 1
+ 3030: 0e 94 9f 18 call 0x313e ; 0x313e <pinMode>
+ 3034: 20 97 sbiw r28, 0x00 ; 0
+ 3036: 09 f4 brne .+2 ; 0x303a <analogWrite+0x16>
+ 3038: 4a c0 rjmp .+148 ; 0x30ce <analogWrite+0xaa>
+ 303a: cf 3f cpi r28, 0xFF ; 255
+ 303c: d1 05 cpc r29, r1
+ 303e: 09 f4 brne .+2 ; 0x3042 <analogWrite+0x1e>
+ 3040: 49 c0 rjmp .+146 ; 0x30d4 <analogWrite+0xb0>
+ 3042: e1 2f mov r30, r17
+ 3044: f0 e0 ldi r31, 0x00 ; 0
+ 3046: e1 55 subi r30, 0x51 ; 81
+ 3048: ff 4f sbci r31, 0xFF ; 255
+ 304a: e4 91 lpm r30, Z+
+ 304c: e3 30 cpi r30, 0x03 ; 3
+ 304e: c1 f0 breq .+48 ; 0x3080 <analogWrite+0x5c>
+ 3050: e4 30 cpi r30, 0x04 ; 4
+ 3052: 28 f4 brcc .+10 ; 0x305e <analogWrite+0x3a>
+ 3054: e1 30 cpi r30, 0x01 ; 1
+ 3056: 51 f0 breq .+20 ; 0x306c <analogWrite+0x48>
+ 3058: e2 30 cpi r30, 0x02 ; 2
+ 305a: b1 f5 brne .+108 ; 0x30c8 <analogWrite+0xa4>
+ 305c: 0c c0 rjmp .+24 ; 0x3076 <analogWrite+0x52>
+ 305e: e6 30 cpi r30, 0x06 ; 6
+ 3060: 19 f1 breq .+70 ; 0x30a8 <analogWrite+0x84>
+ 3062: e7 30 cpi r30, 0x07 ; 7
+ 3064: 49 f1 breq .+82 ; 0x30b8 <analogWrite+0x94>
+ 3066: e4 30 cpi r30, 0x04 ; 4
+ 3068: 79 f5 brne .+94 ; 0x30c8 <analogWrite+0xa4>
+ 306a: 14 c0 rjmp .+40 ; 0x3094 <analogWrite+0x70>
+ 306c: 84 b5 in r24, 0x24 ; 36
+ 306e: 80 68 ori r24, 0x80 ; 128
+ 3070: 84 bd out 0x24, r24 ; 36
+ 3072: c7 bd out 0x27, r28 ; 39
+ 3074: 33 c0 rjmp .+102 ; 0x30dc <analogWrite+0xb8>
+ 3076: 84 b5 in r24, 0x24 ; 36
+ 3078: 80 62 ori r24, 0x20 ; 32
+ 307a: 84 bd out 0x24, r24 ; 36
+ 307c: c8 bd out 0x28, r28 ; 40
+ 307e: 2e c0 rjmp .+92 ; 0x30dc <analogWrite+0xb8>
+ 3080: 80 91 80 00 lds r24, 0x0080
+ 3084: 80 68 ori r24, 0x80 ; 128
+ 3086: 80 93 80 00 sts 0x0080, r24
+ 308a: d0 93 89 00 sts 0x0089, r29
+ 308e: c0 93 88 00 sts 0x0088, r28
+ 3092: 24 c0 rjmp .+72 ; 0x30dc <analogWrite+0xb8>
+ 3094: 80 91 80 00 lds r24, 0x0080
+ 3098: 80 62 ori r24, 0x20 ; 32
+ 309a: 80 93 80 00 sts 0x0080, r24
+ 309e: d0 93 8b 00 sts 0x008B, r29
+ 30a2: c0 93 8a 00 sts 0x008A, r28
+ 30a6: 1a c0 rjmp .+52 ; 0x30dc <analogWrite+0xb8>
+ 30a8: 80 91 b0 00 lds r24, 0x00B0
+ 30ac: 80 68 ori r24, 0x80 ; 128
+ 30ae: 80 93 b0 00 sts 0x00B0, r24
+ 30b2: c0 93 b3 00 sts 0x00B3, r28
+ 30b6: 12 c0 rjmp .+36 ; 0x30dc <analogWrite+0xb8>
+ 30b8: 80 91 b0 00 lds r24, 0x00B0
+ 30bc: 80 62 ori r24, 0x20 ; 32
+ 30be: 80 93 b0 00 sts 0x00B0, r24
+ 30c2: c0 93 b4 00 sts 0x00B4, r28
+ 30c6: 0a c0 rjmp .+20 ; 0x30dc <analogWrite+0xb8>
+ 30c8: c0 38 cpi r28, 0x80 ; 128
+ 30ca: d1 05 cpc r29, r1
+ 30cc: 1c f4 brge .+6 ; 0x30d4 <analogWrite+0xb0>
+ 30ce: 81 2f mov r24, r17
+ 30d0: 60 e0 ldi r22, 0x00 ; 0
+ 30d2: 02 c0 rjmp .+4 ; 0x30d8 <analogWrite+0xb4>
+ 30d4: 81 2f mov r24, r17
+ 30d6: 61 e0 ldi r22, 0x01 ; 1
+ 30d8: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 30dc: df 91 pop r29
+ 30de: cf 91 pop r28
+ 30e0: 1f 91 pop r17
+ 30e2: 08 95 ret
+
+000030e4 <turnOffPWM>:
+ 30e4: 83 30 cpi r24, 0x03 ; 3
+ 30e6: 71 f0 breq .+28 ; 0x3104 <turnOffPWM+0x20>
+ 30e8: 84 30 cpi r24, 0x04 ; 4
+ 30ea: 28 f4 brcc .+10 ; 0x30f6 <turnOffPWM+0x12>
+ 30ec: 81 30 cpi r24, 0x01 ; 1
+ 30ee: a1 f0 breq .+40 ; 0x3118 <turnOffPWM+0x34>
+ 30f0: 82 30 cpi r24, 0x02 ; 2
+ 30f2: 21 f5 brne .+72 ; 0x313c <turnOffPWM+0x58>
+ 30f4: 14 c0 rjmp .+40 ; 0x311e <turnOffPWM+0x3a>
+ 30f6: 86 30 cpi r24, 0x06 ; 6
+ 30f8: b1 f0 breq .+44 ; 0x3126 <turnOffPWM+0x42>
+ 30fa: 87 30 cpi r24, 0x07 ; 7
+ 30fc: d1 f0 breq .+52 ; 0x3132 <turnOffPWM+0x4e>
+ 30fe: 84 30 cpi r24, 0x04 ; 4
+ 3100: e9 f4 brne .+58 ; 0x313c <turnOffPWM+0x58>
+ 3102: 04 c0 rjmp .+8 ; 0x310c <turnOffPWM+0x28>
+ 3104: 80 91 80 00 lds r24, 0x0080
+ 3108: 8f 77 andi r24, 0x7F ; 127
+ 310a: 03 c0 rjmp .+6 ; 0x3112 <turnOffPWM+0x2e>
+ 310c: 80 91 80 00 lds r24, 0x0080
+ 3110: 8f 7d andi r24, 0xDF ; 223
+ 3112: 80 93 80 00 sts 0x0080, r24
+ 3116: 08 95 ret
+ 3118: 84 b5 in r24, 0x24 ; 36
+ 311a: 8f 77 andi r24, 0x7F ; 127
+ 311c: 02 c0 rjmp .+4 ; 0x3122 <turnOffPWM+0x3e>
+ 311e: 84 b5 in r24, 0x24 ; 36
+ 3120: 8f 7d andi r24, 0xDF ; 223
+ 3122: 84 bd out 0x24, r24 ; 36
+ 3124: 08 95 ret
+ 3126: 80 91 b0 00 lds r24, 0x00B0
+ 312a: 8f 77 andi r24, 0x7F ; 127
+ 312c: 80 93 b0 00 sts 0x00B0, r24
+ 3130: 08 95 ret
+ 3132: 80 91 b0 00 lds r24, 0x00B0
+ 3136: 8f 7d andi r24, 0xDF ; 223
+ 3138: 80 93 b0 00 sts 0x00B0, r24
+ 313c: 08 95 ret
+
+0000313e <pinMode>:
+ 313e: 90 e0 ldi r25, 0x00 ; 0
+ 3140: fc 01 movw r30, r24
+ 3142: e5 56 subi r30, 0x65 ; 101
+ 3144: ff 4f sbci r31, 0xFF ; 255
+ 3146: 24 91 lpm r18, Z+
+ 3148: fc 01 movw r30, r24
+ 314a: e9 57 subi r30, 0x79 ; 121
+ 314c: ff 4f sbci r31, 0xFF ; 255
+ 314e: e4 91 lpm r30, Z+
+ 3150: ee 23 and r30, r30
+ 3152: c1 f0 breq .+48 ; 0x3184 <pinMode+0x46>
+ 3154: f0 e0 ldi r31, 0x00 ; 0
+ 3156: ee 0f add r30, r30
+ 3158: ff 1f adc r31, r31
+ 315a: e7 59 subi r30, 0x97 ; 151
+ 315c: ff 4f sbci r31, 0xFF ; 255
+ 315e: 85 91 lpm r24, Z+
+ 3160: 94 91 lpm r25, Z+
+ 3162: dc 01 movw r26, r24
+ 3164: 66 23 and r22, r22
+ 3166: 41 f4 brne .+16 ; 0x3178 <pinMode+0x3a>
+ 3168: 9f b7 in r25, 0x3f ; 63
+ 316a: f8 94 cli
+ 316c: 8c 91 ld r24, X
+ 316e: 20 95 com r18
+ 3170: 82 23 and r24, r18
+ 3172: 8c 93 st X, r24
+ 3174: 9f bf out 0x3f, r25 ; 63
+ 3176: 08 95 ret
+ 3178: 9f b7 in r25, 0x3f ; 63
+ 317a: f8 94 cli
+ 317c: 8c 91 ld r24, X
+ 317e: 82 2b or r24, r18
+ 3180: 8c 93 st X, r24
+ 3182: 9f bf out 0x3f, r25 ; 63
+ 3184: 08 95 ret
+
+00003186 <digitalWrite>:
+ 3186: 0f 93 push r16
+ 3188: 1f 93 push r17
+ 318a: df 93 push r29
+ 318c: cf 93 push r28
+ 318e: 0f 92 push r0
+ 3190: cd b7 in r28, 0x3d ; 61
+ 3192: de b7 in r29, 0x3e ; 62
+ 3194: 28 2f mov r18, r24
+ 3196: 30 e0 ldi r19, 0x00 ; 0
+ 3198: f9 01 movw r30, r18
+ 319a: e1 55 subi r30, 0x51 ; 81
+ 319c: ff 4f sbci r31, 0xFF ; 255
+ 319e: 84 91 lpm r24, Z+
+ 31a0: f9 01 movw r30, r18
+ 31a2: e5 56 subi r30, 0x65 ; 101
+ 31a4: ff 4f sbci r31, 0xFF ; 255
+ 31a6: 14 91 lpm r17, Z+
+ 31a8: 29 57 subi r18, 0x79 ; 121
+ 31aa: 3f 4f sbci r19, 0xFF ; 255
+ 31ac: f9 01 movw r30, r18
+ 31ae: 04 91 lpm r16, Z+
+ 31b0: 00 23 and r16, r16
+ 31b2: d9 f0 breq .+54 ; 0x31ea <digitalWrite+0x64>
+ 31b4: 88 23 and r24, r24
+ 31b6: 21 f0 breq .+8 ; 0x31c0 <digitalWrite+0x3a>
+ 31b8: 69 83 std Y+1, r22 ; 0x01
+ 31ba: 0e 94 72 18 call 0x30e4 ; 0x30e4 <turnOffPWM>
+ 31be: 69 81 ldd r22, Y+1 ; 0x01
+ 31c0: e0 2f mov r30, r16
+ 31c2: f0 e0 ldi r31, 0x00 ; 0
+ 31c4: ee 0f add r30, r30
+ 31c6: ff 1f adc r31, r31
+ 31c8: ed 58 subi r30, 0x8D ; 141
+ 31ca: ff 4f sbci r31, 0xFF ; 255
+ 31cc: 85 91 lpm r24, Z+
+ 31ce: 94 91 lpm r25, Z+
+ 31d0: dc 01 movw r26, r24
+ 31d2: 9f b7 in r25, 0x3f ; 63
+ 31d4: f8 94 cli
+ 31d6: 66 23 and r22, r22
+ 31d8: 21 f4 brne .+8 ; 0x31e2 <digitalWrite+0x5c>
+ 31da: 8c 91 ld r24, X
+ 31dc: 10 95 com r17
+ 31de: 81 23 and r24, r17
+ 31e0: 02 c0 rjmp .+4 ; 0x31e6 <digitalWrite+0x60>
+ 31e2: 8c 91 ld r24, X
+ 31e4: 81 2b or r24, r17
+ 31e6: 8c 93 st X, r24
+ 31e8: 9f bf out 0x3f, r25 ; 63
+ 31ea: 0f 90 pop r0
+ 31ec: cf 91 pop r28
+ 31ee: df 91 pop r29
+ 31f0: 1f 91 pop r17
+ 31f2: 0f 91 pop r16
+ 31f4: 08 95 ret
+
+000031f6 <digitalRead>:
+ 31f6: 0f 93 push r16
+ 31f8: 1f 93 push r17
+ 31fa: 28 2f mov r18, r24
+ 31fc: 30 e0 ldi r19, 0x00 ; 0
+ 31fe: f9 01 movw r30, r18
+ 3200: e1 55 subi r30, 0x51 ; 81
+ 3202: ff 4f sbci r31, 0xFF ; 255
+ 3204: 84 91 lpm r24, Z+
+ 3206: f9 01 movw r30, r18
+ 3208: e5 56 subi r30, 0x65 ; 101
+ 320a: ff 4f sbci r31, 0xFF ; 255
+ 320c: 04 91 lpm r16, Z+
+ 320e: 29 57 subi r18, 0x79 ; 121
+ 3210: 3f 4f sbci r19, 0xFF ; 255
+ 3212: f9 01 movw r30, r18
+ 3214: 14 91 lpm r17, Z+
+ 3216: 11 23 and r17, r17
+ 3218: 91 f0 breq .+36 ; 0x323e <digitalRead+0x48>
+ 321a: 88 23 and r24, r24
+ 321c: 11 f0 breq .+4 ; 0x3222 <digitalRead+0x2c>
+ 321e: 0e 94 72 18 call 0x30e4 ; 0x30e4 <turnOffPWM>
+ 3222: e1 2f mov r30, r17
+ 3224: f0 e0 ldi r31, 0x00 ; 0
+ 3226: ee 0f add r30, r30
+ 3228: ff 1f adc r31, r31
+ 322a: e3 58 subi r30, 0x83 ; 131
+ 322c: ff 4f sbci r31, 0xFF ; 255
+ 322e: 85 91 lpm r24, Z+
+ 3230: 94 91 lpm r25, Z+
+ 3232: dc 01 movw r26, r24
+ 3234: 8c 91 ld r24, X
+ 3236: 80 23 and r24, r16
+ 3238: 21 e0 ldi r18, 0x01 ; 1
+ 323a: 30 e0 ldi r19, 0x00 ; 0
+ 323c: 11 f4 brne .+4 ; 0x3242 <digitalRead+0x4c>
+ 323e: 20 e0 ldi r18, 0x00 ; 0
+ 3240: 30 e0 ldi r19, 0x00 ; 0
+ 3242: c9 01 movw r24, r18
+ 3244: 1f 91 pop r17
+ 3246: 0f 91 pop r16
+ 3248: 08 95 ret
+
+0000324a <pulseIn>:
+ 324a: 8f 92 push r8
+ 324c: 9f 92 push r9
+ 324e: af 92 push r10
+ 3250: bf 92 push r11
+ 3252: cf 92 push r12
+ 3254: df 92 push r13
+ 3256: ef 92 push r14
+ 3258: ff 92 push r15
+ 325a: 0f 93 push r16
+ 325c: 1f 93 push r17
+ 325e: 90 e0 ldi r25, 0x00 ; 0
+ 3260: fc 01 movw r30, r24
+ 3262: e5 56 subi r30, 0x65 ; 101
+ 3264: ff 4f sbci r31, 0xFF ; 255
+ 3266: 94 90 lpm r9, Z+
+ 3268: 89 57 subi r24, 0x79 ; 121
+ 326a: 9f 4f sbci r25, 0xFF ; 255
+ 326c: fc 01 movw r30, r24
+ 326e: e4 90 lpm r14, Z+
+ 3270: 66 23 and r22, r22
+ 3272: 11 f4 brne .+4 ; 0x3278 <pulseIn+0x2e>
+ 3274: 88 24 eor r8, r8
+ 3276: 01 c0 rjmp .+2 ; 0x327a <pulseIn+0x30>
+ 3278: 89 2c mov r8, r9
+ 327a: ca 01 movw r24, r20
+ 327c: b9 01 movw r22, r18
+ 327e: 20 e4 ldi r18, 0x40 ; 64
+ 3280: 3f e1 ldi r19, 0x1F ; 31
+ 3282: 40 e0 ldi r20, 0x00 ; 0
+ 3284: 50 e0 ldi r21, 0x00 ; 0
+ 3286: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 328a: 20 e8 ldi r18, 0x80 ; 128
+ 328c: 3e e3 ldi r19, 0x3E ; 62
+ 328e: 40 e0 ldi r20, 0x00 ; 0
+ 3290: 50 e0 ldi r21, 0x00 ; 0
+ 3292: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 3296: 59 01 movw r10, r18
+ 3298: 6a 01 movw r12, r20
+ 329a: 80 e0 ldi r24, 0x00 ; 0
+ 329c: 90 e0 ldi r25, 0x00 ; 0
+ 329e: dc 01 movw r26, r24
+ 32a0: 6e 2d mov r22, r14
+ 32a2: 70 e0 ldi r23, 0x00 ; 0
+ 32a4: fb 01 movw r30, r22
+ 32a6: ee 0f add r30, r30
+ 32a8: ff 1f adc r31, r31
+ 32aa: e3 58 subi r30, 0x83 ; 131
+ 32ac: ff 4f sbci r31, 0xFF ; 255
+ 32ae: 25 91 lpm r18, Z+
+ 32b0: 34 91 lpm r19, Z+
+ 32b2: 09 c0 rjmp .+18 ; 0x32c6 <pulseIn+0x7c>
+ 32b4: 8a 15 cp r24, r10
+ 32b6: 9b 05 cpc r25, r11
+ 32b8: ac 05 cpc r26, r12
+ 32ba: bd 05 cpc r27, r13
+ 32bc: 09 f4 brne .+2 ; 0x32c0 <pulseIn+0x76>
+ 32be: 4d c0 rjmp .+154 ; 0x335a <pulseIn+0x110>
+ 32c0: 01 96 adiw r24, 0x01 ; 1
+ 32c2: a1 1d adc r26, r1
+ 32c4: b1 1d adc r27, r1
+ 32c6: f9 01 movw r30, r18
+ 32c8: 40 81 ld r20, Z
+ 32ca: 49 21 and r20, r9
+ 32cc: 48 15 cp r20, r8
+ 32ce: 91 f3 breq .-28 ; 0x32b4 <pulseIn+0x6a>
+ 32d0: 0a c0 rjmp .+20 ; 0x32e6 <pulseIn+0x9c>
+ 32d2: 8a 15 cp r24, r10
+ 32d4: 9b 05 cpc r25, r11
+ 32d6: ac 05 cpc r26, r12
+ 32d8: bd 05 cpc r27, r13
+ 32da: 09 f4 brne .+2 ; 0x32de <pulseIn+0x94>
+ 32dc: 3e c0 rjmp .+124 ; 0x335a <pulseIn+0x110>
+ 32de: 01 96 adiw r24, 0x01 ; 1
+ 32e0: a1 1d adc r26, r1
+ 32e2: b1 1d adc r27, r1
+ 32e4: 07 c0 rjmp .+14 ; 0x32f4 <pulseIn+0xaa>
+ 32e6: 66 0f add r22, r22
+ 32e8: 77 1f adc r23, r23
+ 32ea: 63 58 subi r22, 0x83 ; 131
+ 32ec: 7f 4f sbci r23, 0xFF ; 255
+ 32ee: fb 01 movw r30, r22
+ 32f0: 25 91 lpm r18, Z+
+ 32f2: 34 91 lpm r19, Z+
+ 32f4: f9 01 movw r30, r18
+ 32f6: 40 81 ld r20, Z
+ 32f8: 49 21 and r20, r9
+ 32fa: 48 15 cp r20, r8
+ 32fc: 51 f7 brne .-44 ; 0x32d2 <pulseIn+0x88>
+ 32fe: 20 e0 ldi r18, 0x00 ; 0
+ 3300: 30 e0 ldi r19, 0x00 ; 0
+ 3302: a9 01 movw r20, r18
+ 3304: fb 01 movw r30, r22
+ 3306: 65 91 lpm r22, Z+
+ 3308: 74 91 lpm r23, Z+
+ 330a: 0f c0 rjmp .+30 ; 0x332a <pulseIn+0xe0>
+ 330c: 79 01 movw r14, r18
+ 330e: 8a 01 movw r16, r20
+ 3310: e8 0e add r14, r24
+ 3312: f9 1e adc r15, r25
+ 3314: 0a 1f adc r16, r26
+ 3316: 1b 1f adc r17, r27
+ 3318: ea 14 cp r14, r10
+ 331a: fb 04 cpc r15, r11
+ 331c: 0c 05 cpc r16, r12
+ 331e: 1d 05 cpc r17, r13
+ 3320: e1 f0 breq .+56 ; 0x335a <pulseIn+0x110>
+ 3322: 2f 5f subi r18, 0xFF ; 255
+ 3324: 3f 4f sbci r19, 0xFF ; 255
+ 3326: 4f 4f sbci r20, 0xFF ; 255
+ 3328: 5f 4f sbci r21, 0xFF ; 255
+ 332a: fb 01 movw r30, r22
+ 332c: e0 81 ld r30, Z
+ 332e: e9 21 and r30, r9
+ 3330: e8 15 cp r30, r8
+ 3332: 61 f3 breq .-40 ; 0x330c <pulseIn+0xc2>
+ 3334: ca 01 movw r24, r20
+ 3336: b9 01 movw r22, r18
+ 3338: 28 e0 ldi r18, 0x08 ; 8
+ 333a: 32 e5 ldi r19, 0x52 ; 82
+ 333c: 40 e0 ldi r20, 0x00 ; 0
+ 333e: 50 e0 ldi r21, 0x00 ; 0
+ 3340: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 3344: 60 58 subi r22, 0x80 ; 128
+ 3346: 71 4c sbci r23, 0xC1 ; 193
+ 3348: 8f 4f sbci r24, 0xFF ; 255
+ 334a: 9f 4f sbci r25, 0xFF ; 255
+ 334c: 20 e4 ldi r18, 0x40 ; 64
+ 334e: 3f e1 ldi r19, 0x1F ; 31
+ 3350: 40 e0 ldi r20, 0x00 ; 0
+ 3352: 50 e0 ldi r21, 0x00 ; 0
+ 3354: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 3358: 03 c0 rjmp .+6 ; 0x3360 <pulseIn+0x116>
+ 335a: 20 e0 ldi r18, 0x00 ; 0
+ 335c: 30 e0 ldi r19, 0x00 ; 0
+ 335e: a9 01 movw r20, r18
+ 3360: b9 01 movw r22, r18
+ 3362: ca 01 movw r24, r20
+ 3364: 1f 91 pop r17
+ 3366: 0f 91 pop r16
+ 3368: ff 90 pop r15
+ 336a: ef 90 pop r14
+ 336c: df 90 pop r13
+ 336e: cf 90 pop r12
+ 3370: bf 90 pop r11
+ 3372: af 90 pop r10
+ 3374: 9f 90 pop r9
+ 3376: 8f 90 pop r8
+ 3378: 08 95 ret
+
+0000337a <shiftIn>:
+ 337a: cf 92 push r12
+ 337c: df 92 push r13
+ 337e: ef 92 push r14
+ 3380: ff 92 push r15
+ 3382: 0f 93 push r16
+ 3384: 1f 93 push r17
+ 3386: cf 93 push r28
+ 3388: df 93 push r29
+ 338a: e8 2e mov r14, r24
+ 338c: f6 2e mov r15, r22
+ 338e: c4 2e mov r12, r20
+ 3390: c7 e0 ldi r28, 0x07 ; 7
+ 3392: d0 e0 ldi r29, 0x00 ; 0
+ 3394: dd 24 eor r13, r13
+ 3396: 07 e0 ldi r16, 0x07 ; 7
+ 3398: 10 e0 ldi r17, 0x00 ; 0
+ 339a: 8f 2d mov r24, r15
+ 339c: 61 e0 ldi r22, 0x01 ; 1
+ 339e: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 33a2: cc 20 and r12, r12
+ 33a4: 71 f4 brne .+28 ; 0x33c2 <shiftIn+0x48>
+ 33a6: 8e 2d mov r24, r14
+ 33a8: 0e 94 fb 18 call 0x31f6 ; 0x31f6 <digitalRead>
+ 33ac: 98 01 movw r18, r16
+ 33ae: 2c 1b sub r18, r28
+ 33b0: 3d 0b sbc r19, r29
+ 33b2: ac 01 movw r20, r24
+ 33b4: 02 c0 rjmp .+4 ; 0x33ba <shiftIn+0x40>
+ 33b6: 44 0f add r20, r20
+ 33b8: 55 1f adc r21, r21
+ 33ba: 2a 95 dec r18
+ 33bc: e2 f7 brpl .-8 ; 0x33b6 <shiftIn+0x3c>
+ 33be: 9a 01 movw r18, r20
+ 33c0: 0a c0 rjmp .+20 ; 0x33d6 <shiftIn+0x5c>
+ 33c2: 8e 2d mov r24, r14
+ 33c4: 0e 94 fb 18 call 0x31f6 ; 0x31f6 <digitalRead>
+ 33c8: 9c 01 movw r18, r24
+ 33ca: 0c 2e mov r0, r28
+ 33cc: 02 c0 rjmp .+4 ; 0x33d2 <shiftIn+0x58>
+ 33ce: 22 0f add r18, r18
+ 33d0: 33 1f adc r19, r19
+ 33d2: 0a 94 dec r0
+ 33d4: e2 f7 brpl .-8 ; 0x33ce <shiftIn+0x54>
+ 33d6: d2 2a or r13, r18
+ 33d8: 8f 2d mov r24, r15
+ 33da: 60 e0 ldi r22, 0x00 ; 0
+ 33dc: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 33e0: 21 97 sbiw r28, 0x01 ; 1
+ 33e2: 5f ef ldi r21, 0xFF ; 255
+ 33e4: cf 3f cpi r28, 0xFF ; 255
+ 33e6: d5 07 cpc r29, r21
+ 33e8: c1 f6 brne .-80 ; 0x339a <shiftIn+0x20>
+ 33ea: 8d 2d mov r24, r13
+ 33ec: df 91 pop r29
+ 33ee: cf 91 pop r28
+ 33f0: 1f 91 pop r17
+ 33f2: 0f 91 pop r16
+ 33f4: ff 90 pop r15
+ 33f6: ef 90 pop r14
+ 33f8: df 90 pop r13
+ 33fa: cf 90 pop r12
+ 33fc: 08 95 ret
+
+000033fe <shiftOut>:
+ 33fe: bf 92 push r11
+ 3400: cf 92 push r12
+ 3402: df 92 push r13
+ 3404: ef 92 push r14
+ 3406: ff 92 push r15
+ 3408: 0f 93 push r16
+ 340a: 1f 93 push r17
+ 340c: cf 93 push r28
+ 340e: df 93 push r29
+ 3410: c8 2e mov r12, r24
+ 3412: d6 2e mov r13, r22
+ 3414: b4 2e mov r11, r20
+ 3416: c7 e0 ldi r28, 0x07 ; 7
+ 3418: d0 e0 ldi r29, 0x00 ; 0
+ 341a: 02 2f mov r16, r18
+ 341c: 10 e0 ldi r17, 0x00 ; 0
+ 341e: 87 e0 ldi r24, 0x07 ; 7
+ 3420: e8 2e mov r14, r24
+ 3422: f1 2c mov r15, r1
+ 3424: bb 20 and r11, r11
+ 3426: 59 f4 brne .+22 ; 0x343e <shiftOut+0x40>
+ 3428: 97 01 movw r18, r14
+ 342a: 2c 1b sub r18, r28
+ 342c: 3d 0b sbc r19, r29
+ 342e: c8 01 movw r24, r16
+ 3430: 02 c0 rjmp .+4 ; 0x3436 <shiftOut+0x38>
+ 3432: 95 95 asr r25
+ 3434: 87 95 ror r24
+ 3436: 2a 95 dec r18
+ 3438: e2 f7 brpl .-8 ; 0x3432 <shiftOut+0x34>
+ 343a: 9c 01 movw r18, r24
+ 343c: 07 c0 rjmp .+14 ; 0x344c <shiftOut+0x4e>
+ 343e: 98 01 movw r18, r16
+ 3440: 0c 2e mov r0, r28
+ 3442: 02 c0 rjmp .+4 ; 0x3448 <shiftOut+0x4a>
+ 3444: 35 95 asr r19
+ 3446: 27 95 ror r18
+ 3448: 0a 94 dec r0
+ 344a: e2 f7 brpl .-8 ; 0x3444 <shiftOut+0x46>
+ 344c: 62 2f mov r22, r18
+ 344e: 61 70 andi r22, 0x01 ; 1
+ 3450: 8c 2d mov r24, r12
+ 3452: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 3456: 8d 2d mov r24, r13
+ 3458: 61 e0 ldi r22, 0x01 ; 1
+ 345a: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 345e: 8d 2d mov r24, r13
+ 3460: 60 e0 ldi r22, 0x00 ; 0
+ 3462: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 3466: 21 97 sbiw r28, 0x01 ; 1
+ 3468: 9f ef ldi r25, 0xFF ; 255
+ 346a: cf 3f cpi r28, 0xFF ; 255
+ 346c: d9 07 cpc r29, r25
+ 346e: d1 f6 brne .-76 ; 0x3424 <shiftOut+0x26>
+ 3470: df 91 pop r29
+ 3472: cf 91 pop r28
+ 3474: 1f 91 pop r17
+ 3476: 0f 91 pop r16
+ 3478: ff 90 pop r15
+ 347a: ef 90 pop r14
+ 347c: df 90 pop r13
+ 347e: cf 90 pop r12
+ 3480: bf 90 pop r11
+ 3482: 08 95 ret
+
+00003484 <_ZN7TwoWire9availableEv>:
+ 3484: 20 91 eb 03 lds r18, 0x03EB
+ 3488: 30 e0 ldi r19, 0x00 ; 0
+ 348a: 80 91 ea 03 lds r24, 0x03EA
+ 348e: 28 1b sub r18, r24
+ 3490: 31 09 sbc r19, r1
+ 3492: c9 01 movw r24, r18
+ 3494: 08 95 ret
+
+00003496 <_ZN7TwoWire4readEv>:
+ 3496: 80 91 ea 03 lds r24, 0x03EA
+ 349a: 90 91 eb 03 lds r25, 0x03EB
+ 349e: 89 17 cp r24, r25
+ 34a0: 50 f4 brcc .+20 ; 0x34b6 <_ZN7TwoWire4readEv+0x20>
+ 34a2: e8 2f mov r30, r24
+ 34a4: f0 e0 ldi r31, 0x00 ; 0
+ 34a6: e6 53 subi r30, 0x36 ; 54
+ 34a8: fc 4f sbci r31, 0xFC ; 252
+ 34aa: 20 81 ld r18, Z
+ 34ac: 30 e0 ldi r19, 0x00 ; 0
+ 34ae: 8f 5f subi r24, 0xFF ; 255
+ 34b0: 80 93 ea 03 sts 0x03EA, r24
+ 34b4: 02 c0 rjmp .+4 ; 0x34ba <_ZN7TwoWire4readEv+0x24>
+ 34b6: 2f ef ldi r18, 0xFF ; 255
+ 34b8: 3f ef ldi r19, 0xFF ; 255
+ 34ba: c9 01 movw r24, r18
+ 34bc: 08 95 ret
+
+000034be <_ZN7TwoWire4peekEv>:
+ 34be: e0 91 ea 03 lds r30, 0x03EA
+ 34c2: 80 91 eb 03 lds r24, 0x03EB
+ 34c6: e8 17 cp r30, r24
+ 34c8: 30 f4 brcc .+12 ; 0x34d6 <_ZN7TwoWire4peekEv+0x18>
+ 34ca: f0 e0 ldi r31, 0x00 ; 0
+ 34cc: e6 53 subi r30, 0x36 ; 54
+ 34ce: fc 4f sbci r31, 0xFC ; 252
+ 34d0: 20 81 ld r18, Z
+ 34d2: 30 e0 ldi r19, 0x00 ; 0
+ 34d4: 02 c0 rjmp .+4 ; 0x34da <_ZN7TwoWire4peekEv+0x1c>
+ 34d6: 2f ef ldi r18, 0xFF ; 255
+ 34d8: 3f ef ldi r19, 0xFF ; 255
+ 34da: c9 01 movw r24, r18
+ 34dc: 08 95 ret
+
+000034de <_ZN7TwoWire5flushEv>:
+ 34de: 08 95 ret
+
+000034e0 <_ZN7TwoWire16onReceiveServiceEPhi>:
+ 34e0: cf 93 push r28
+ 34e2: df 93 push r29
+ 34e4: 9c 01 movw r18, r24
+ 34e6: cb 01 movw r24, r22
+ 34e8: e0 91 12 04 lds r30, 0x0412
+ 34ec: f0 91 13 04 lds r31, 0x0413
+ 34f0: 30 97 sbiw r30, 0x00 ; 0
+ 34f2: d9 f0 breq .+54 ; 0x352a <_ZN7TwoWire16onReceiveServiceEPhi+0x4a>
+ 34f4: 50 91 ea 03 lds r21, 0x03EA
+ 34f8: 40 91 eb 03 lds r20, 0x03EB
+ 34fc: 54 17 cp r21, r20
+ 34fe: a8 f0 brcs .+42 ; 0x352a <_ZN7TwoWire16onReceiveServiceEPhi+0x4a>
+ 3500: 60 e0 ldi r22, 0x00 ; 0
+ 3502: 09 c0 rjmp .+18 ; 0x3516 <_ZN7TwoWire16onReceiveServiceEPhi+0x36>
+ 3504: da 01 movw r26, r20
+ 3506: a6 53 subi r26, 0x36 ; 54
+ 3508: bc 4f sbci r27, 0xFC ; 252
+ 350a: 42 0f add r20, r18
+ 350c: 53 1f adc r21, r19
+ 350e: ea 01 movw r28, r20
+ 3510: 48 81 ld r20, Y
+ 3512: 4c 93 st X, r20
+ 3514: 6f 5f subi r22, 0xFF ; 255
+ 3516: 46 2f mov r20, r22
+ 3518: 50 e0 ldi r21, 0x00 ; 0
+ 351a: 48 17 cp r20, r24
+ 351c: 59 07 cpc r21, r25
+ 351e: 94 f3 brlt .-28 ; 0x3504 <_ZN7TwoWire16onReceiveServiceEPhi+0x24>
+ 3520: 10 92 ea 03 sts 0x03EA, r1
+ 3524: 80 93 eb 03 sts 0x03EB, r24
+ 3528: 09 95 icall
+ 352a: df 91 pop r29
+ 352c: cf 91 pop r28
+ 352e: 08 95 ret
+
+00003530 <_ZN7TwoWire16onRequestServiceEv>:
+ 3530: e0 91 10 04 lds r30, 0x0410
+ 3534: f0 91 11 04 lds r31, 0x0411
+ 3538: 30 97 sbiw r30, 0x00 ; 0
+ 353a: 29 f0 breq .+10 ; 0x3546 <_ZN7TwoWire16onRequestServiceEv+0x16>
+ 353c: 10 92 0d 04 sts 0x040D, r1
+ 3540: 10 92 0e 04 sts 0x040E, r1
+ 3544: 09 95 icall
+ 3546: 08 95 ret
+
+00003548 <_ZN7TwoWire5writeEPKhj>:
+ 3548: cf 92 push r12
+ 354a: df 92 push r13
+ 354c: ef 92 push r14
+ 354e: ff 92 push r15
+ 3550: 0f 93 push r16
+ 3552: 1f 93 push r17
+ 3554: cf 93 push r28
+ 3556: df 93 push r29
+ 3558: 6c 01 movw r12, r24
+ 355a: cb 01 movw r24, r22
+ 355c: ea 01 movw r28, r20
+ 355e: 20 91 0f 04 lds r18, 0x040F
+ 3562: 22 23 and r18, r18
+ 3564: b1 f0 breq .+44 ; 0x3592 <_ZN7TwoWire5writeEPKhj+0x4a>
+ 3566: e6 2e mov r14, r22
+ 3568: f9 2e mov r15, r25
+ 356a: 00 e0 ldi r16, 0x00 ; 0
+ 356c: 10 e0 ldi r17, 0x00 ; 0
+ 356e: 0d c0 rjmp .+26 ; 0x358a <_ZN7TwoWire5writeEPKhj+0x42>
+ 3570: d7 01 movw r26, r14
+ 3572: 6d 91 ld r22, X+
+ 3574: 7d 01 movw r14, r26
+ 3576: d6 01 movw r26, r12
+ 3578: ed 91 ld r30, X+
+ 357a: fc 91 ld r31, X
+ 357c: 01 90 ld r0, Z+
+ 357e: f0 81 ld r31, Z
+ 3580: e0 2d mov r30, r0
+ 3582: c6 01 movw r24, r12
+ 3584: 09 95 icall
+ 3586: 0f 5f subi r16, 0xFF ; 255
+ 3588: 1f 4f sbci r17, 0xFF ; 255
+ 358a: 0c 17 cp r16, r28
+ 358c: 1d 07 cpc r17, r29
+ 358e: 80 f3 brcs .-32 ; 0x3570 <_ZN7TwoWire5writeEPKhj+0x28>
+ 3590: 03 c0 rjmp .+6 ; 0x3598 <_ZN7TwoWire5writeEPKhj+0x50>
+ 3592: 64 2f mov r22, r20
+ 3594: 0e 94 19 1c call 0x3832 ; 0x3832 <twi_transmit>
+ 3598: ce 01 movw r24, r28
+ 359a: df 91 pop r29
+ 359c: cf 91 pop r28
+ 359e: 1f 91 pop r17
+ 35a0: 0f 91 pop r16
+ 35a2: ff 90 pop r15
+ 35a4: ef 90 pop r14
+ 35a6: df 90 pop r13
+ 35a8: cf 90 pop r12
+ 35aa: 08 95 ret
+
+000035ac <_ZN7TwoWire5writeEh>:
+ 35ac: df 93 push r29
+ 35ae: cf 93 push r28
+ 35b0: 0f 92 push r0
+ 35b2: cd b7 in r28, 0x3d ; 61
+ 35b4: de b7 in r29, 0x3e ; 62
+ 35b6: 69 83 std Y+1, r22 ; 0x01
+ 35b8: 20 91 0f 04 lds r18, 0x040F
+ 35bc: 22 23 and r18, r18
+ 35be: d1 f0 breq .+52 ; 0x35f4 <_ZN7TwoWire5writeEh+0x48>
+ 35c0: 20 91 0e 04 lds r18, 0x040E
+ 35c4: 20 32 cpi r18, 0x20 ; 32
+ 35c6: 40 f0 brcs .+16 ; 0x35d8 <_ZN7TwoWire5writeEh+0x2c>
+ 35c8: 21 e0 ldi r18, 0x01 ; 1
+ 35ca: 30 e0 ldi r19, 0x00 ; 0
+ 35cc: fc 01 movw r30, r24
+ 35ce: 33 83 std Z+3, r19 ; 0x03
+ 35d0: 22 83 std Z+2, r18 ; 0x02
+ 35d2: 20 e0 ldi r18, 0x00 ; 0
+ 35d4: 30 e0 ldi r19, 0x00 ; 0
+ 35d6: 15 c0 rjmp .+42 ; 0x3602 <_ZN7TwoWire5writeEh+0x56>
+ 35d8: 80 91 0d 04 lds r24, 0x040D
+ 35dc: e8 2f mov r30, r24
+ 35de: f0 e0 ldi r31, 0x00 ; 0
+ 35e0: e3 51 subi r30, 0x13 ; 19
+ 35e2: fc 4f sbci r31, 0xFC ; 252
+ 35e4: 99 81 ldd r25, Y+1 ; 0x01
+ 35e6: 90 83 st Z, r25
+ 35e8: 8f 5f subi r24, 0xFF ; 255
+ 35ea: 80 93 0d 04 sts 0x040D, r24
+ 35ee: 80 93 0e 04 sts 0x040E, r24
+ 35f2: 05 c0 rjmp .+10 ; 0x35fe <_ZN7TwoWire5writeEh+0x52>
+ 35f4: ce 01 movw r24, r28
+ 35f6: 01 96 adiw r24, 0x01 ; 1
+ 35f8: 61 e0 ldi r22, 0x01 ; 1
+ 35fa: 0e 94 19 1c call 0x3832 ; 0x3832 <twi_transmit>
+ 35fe: 21 e0 ldi r18, 0x01 ; 1
+ 3600: 30 e0 ldi r19, 0x00 ; 0
+ 3602: c9 01 movw r24, r18
+ 3604: 0f 90 pop r0
+ 3606: cf 91 pop r28
+ 3608: df 91 pop r29
+ 360a: 08 95 ret
+
+0000360c <_ZN7TwoWireC1Ev>:
+ 360c: fc 01 movw r30, r24
+ 360e: 13 82 std Z+3, r1 ; 0x03
+ 3610: 12 82 std Z+2, r1 ; 0x02
+ 3612: 28 ee ldi r18, 0xE8 ; 232
+ 3614: 33 e0 ldi r19, 0x03 ; 3
+ 3616: 40 e0 ldi r20, 0x00 ; 0
+ 3618: 50 e0 ldi r21, 0x00 ; 0
+ 361a: 24 83 std Z+4, r18 ; 0x04
+ 361c: 35 83 std Z+5, r19 ; 0x05
+ 361e: 46 83 std Z+6, r20 ; 0x06
+ 3620: 57 83 std Z+7, r21 ; 0x07
+ 3622: 82 eb ldi r24, 0xB2 ; 178
+ 3624: 91 e0 ldi r25, 0x01 ; 1
+ 3626: 91 83 std Z+1, r25 ; 0x01
+ 3628: 80 83 st Z, r24
+ 362a: 08 95 ret
+
+0000362c <_ZN7TwoWire5beginEv>:
+ 362c: 10 92 ea 03 sts 0x03EA, r1
+ 3630: 10 92 eb 03 sts 0x03EB, r1
+ 3634: 10 92 0d 04 sts 0x040D, r1
+ 3638: 10 92 0e 04 sts 0x040E, r1
+ 363c: 0e 94 86 1b call 0x370c ; 0x370c <twi_init>
+ 3640: 08 95 ret
+
+00003642 <_ZN7TwoWire5beginEh>:
+ 3642: cf 93 push r28
+ 3644: df 93 push r29
+ 3646: ec 01 movw r28, r24
+ 3648: 86 2f mov r24, r22
+ 364a: 0e 94 9f 1b call 0x373e ; 0x373e <twi_setAddress>
+ 364e: 88 e9 ldi r24, 0x98 ; 152
+ 3650: 9a e1 ldi r25, 0x1A ; 26
+ 3652: 0e 94 38 1c call 0x3870 ; 0x3870 <twi_attachSlaveTxEvent>
+ 3656: 80 e7 ldi r24, 0x70 ; 112
+ 3658: 9a e1 ldi r25, 0x1A ; 26
+ 365a: 0e 94 33 1c call 0x3866 ; 0x3866 <twi_attachSlaveRxEvent>
+ 365e: ce 01 movw r24, r28
+ 3660: 0e 94 16 1b call 0x362c ; 0x362c <_ZN7TwoWire5beginEv>
+ 3664: df 91 pop r29
+ 3666: cf 91 pop r28
+ 3668: 08 95 ret
+
+0000366a <_ZN7TwoWire5beginEi>:
+ 366a: 0e 94 21 1b call 0x3642 ; 0x3642 <_ZN7TwoWire5beginEh>
+ 366e: 08 95 ret
+
+00003670 <_ZN7TwoWire11requestFromEhh>:
+ 3670: 86 2f mov r24, r22
+ 3672: 41 32 cpi r20, 0x21 ; 33
+ 3674: 08 f0 brcs .+2 ; 0x3678 <_ZN7TwoWire11requestFromEhh+0x8>
+ 3676: 40 e2 ldi r20, 0x20 ; 32
+ 3678: 6a ec ldi r22, 0xCA ; 202
+ 367a: 73 e0 ldi r23, 0x03 ; 3
+ 367c: 0e 94 a3 1b call 0x3746 ; 0x3746 <twi_readFrom>
+ 3680: 10 92 ea 03 sts 0x03EA, r1
+ 3684: 80 93 eb 03 sts 0x03EB, r24
+ 3688: 08 95 ret
+
+0000368a <_ZN7TwoWire11requestFromEii>:
+ 368a: 0e 94 38 1b call 0x3670 ; 0x3670 <_ZN7TwoWire11requestFromEhh>
+ 368e: 08 95 ret
+
+00003690 <_ZN7TwoWire17beginTransmissionEh>:
+ 3690: 81 e0 ldi r24, 0x01 ; 1
+ 3692: 80 93 0f 04 sts 0x040F, r24
+ 3696: 60 93 ec 03 sts 0x03EC, r22
+ 369a: 10 92 0d 04 sts 0x040D, r1
+ 369e: 10 92 0e 04 sts 0x040E, r1
+ 36a2: 08 95 ret
+
+000036a4 <_ZN7TwoWire17beginTransmissionEi>:
+ 36a4: 0e 94 48 1b call 0x3690 ; 0x3690 <_ZN7TwoWire17beginTransmissionEh>
+ 36a8: 08 95 ret
+
+000036aa <_ZN7TwoWire15endTransmissionEv>:
+ 36aa: 80 91 ec 03 lds r24, 0x03EC
+ 36ae: 6d ee ldi r22, 0xED ; 237
+ 36b0: 73 e0 ldi r23, 0x03 ; 3
+ 36b2: 40 91 0e 04 lds r20, 0x040E
+ 36b6: 21 e0 ldi r18, 0x01 ; 1
+ 36b8: 0e 94 d9 1b call 0x37b2 ; 0x37b2 <twi_writeTo>
+ 36bc: 10 92 0d 04 sts 0x040D, r1
+ 36c0: 10 92 0e 04 sts 0x040E, r1
+ 36c4: 10 92 0f 04 sts 0x040F, r1
+ 36c8: 08 95 ret
+
+000036ca <_ZN7TwoWire9onReceiveEPFviE>:
+ 36ca: 70 93 13 04 sts 0x0413, r23
+ 36ce: 60 93 12 04 sts 0x0412, r22
+ 36d2: 08 95 ret
+
+000036d4 <_ZN7TwoWire9onRequestEPFvvE>:
+ 36d4: 70 93 11 04 sts 0x0411, r23
+ 36d8: 60 93 10 04 sts 0x0410, r22
+ 36dc: 08 95 ret
+
+000036de <_GLOBAL__I__ZN7TwoWire8rxBufferE>:
+ 36de: 10 92 17 04 sts 0x0417, r1
+ 36e2: 10 92 16 04 sts 0x0416, r1
+ 36e6: 88 ee ldi r24, 0xE8 ; 232
+ 36e8: 93 e0 ldi r25, 0x03 ; 3
+ 36ea: a0 e0 ldi r26, 0x00 ; 0
+ 36ec: b0 e0 ldi r27, 0x00 ; 0
+ 36ee: 80 93 18 04 sts 0x0418, r24
+ 36f2: 90 93 19 04 sts 0x0419, r25
+ 36f6: a0 93 1a 04 sts 0x041A, r26
+ 36fa: b0 93 1b 04 sts 0x041B, r27
+ 36fe: 82 eb ldi r24, 0xB2 ; 178
+ 3700: 91 e0 ldi r25, 0x01 ; 1
+ 3702: 90 93 15 04 sts 0x0415, r25
+ 3706: 80 93 14 04 sts 0x0414, r24
+ 370a: 08 95 ret
+
+0000370c <twi_init>:
+ 370c: 10 92 44 04 sts 0x0444, r1
+ 3710: 82 e1 ldi r24, 0x12 ; 18
+ 3712: 61 e0 ldi r22, 0x01 ; 1
+ 3714: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 3718: 83 e1 ldi r24, 0x13 ; 19
+ 371a: 61 e0 ldi r22, 0x01 ; 1
+ 371c: 0e 94 c3 18 call 0x3186 ; 0x3186 <digitalWrite>
+ 3720: e9 eb ldi r30, 0xB9 ; 185
+ 3722: f0 e0 ldi r31, 0x00 ; 0
+ 3724: 80 81 ld r24, Z
+ 3726: 8e 7f andi r24, 0xFE ; 254
+ 3728: 80 83 st Z, r24
+ 372a: 80 81 ld r24, Z
+ 372c: 8d 7f andi r24, 0xFD ; 253
+ 372e: 80 83 st Z, r24
+ 3730: 80 e2 ldi r24, 0x20 ; 32
+ 3732: 80 93 b8 00 sts 0x00B8, r24
+ 3736: 85 e4 ldi r24, 0x45 ; 69
+ 3738: 80 93 bc 00 sts 0x00BC, r24
+ 373c: 08 95 ret
+
+0000373e <twi_setAddress>:
+ 373e: 88 0f add r24, r24
+ 3740: 80 93 ba 00 sts 0x00BA, r24
+ 3744: 08 95 ret
+
+00003746 <twi_readFrom>:
+ 3746: 41 32 cpi r20, 0x21 ; 33
+ 3748: 88 f5 brcc .+98 ; 0x37ac <twi_readFrom+0x66>
+ 374a: 90 91 44 04 lds r25, 0x0444
+ 374e: 99 23 and r25, r25
+ 3750: e1 f7 brne .-8 ; 0x374a <twi_readFrom+0x4>
+ 3752: 91 e0 ldi r25, 0x01 ; 1
+ 3754: 90 93 44 04 sts 0x0444, r25
+ 3758: 9f ef ldi r25, 0xFF ; 255
+ 375a: 90 93 43 04 sts 0x0443, r25
+ 375e: 10 92 21 04 sts 0x0421, r1
+ 3762: 94 2f mov r25, r20
+ 3764: 91 50 subi r25, 0x01 ; 1
+ 3766: 90 93 22 04 sts 0x0422, r25
+ 376a: 88 0f add r24, r24
+ 376c: 81 60 ori r24, 0x01 ; 1
+ 376e: 80 93 20 04 sts 0x0420, r24
+ 3772: 85 ee ldi r24, 0xE5 ; 229
+ 3774: 80 93 bc 00 sts 0x00BC, r24
+ 3778: 80 91 44 04 lds r24, 0x0444
+ 377c: 81 30 cpi r24, 0x01 ; 1
+ 377e: e1 f3 breq .-8 ; 0x3778 <twi_readFrom+0x32>
+ 3780: 80 91 21 04 lds r24, 0x0421
+ 3784: 84 17 cp r24, r20
+ 3786: 10 f4 brcc .+4 ; 0x378c <twi_readFrom+0x46>
+ 3788: 40 91 21 04 lds r20, 0x0421
+ 378c: e3 e2 ldi r30, 0x23 ; 35
+ 378e: f4 e0 ldi r31, 0x04 ; 4
+ 3790: 26 2f mov r18, r22
+ 3792: 37 2f mov r19, r23
+ 3794: d9 01 movw r26, r18
+ 3796: 24 2f mov r18, r20
+ 3798: 30 e0 ldi r19, 0x00 ; 0
+ 379a: 2e 0f add r18, r30
+ 379c: 3f 1f adc r19, r31
+ 379e: 02 c0 rjmp .+4 ; 0x37a4 <twi_readFrom+0x5e>
+ 37a0: 81 91 ld r24, Z+
+ 37a2: 8d 93 st X+, r24
+ 37a4: e2 17 cp r30, r18
+ 37a6: f3 07 cpc r31, r19
+ 37a8: d9 f7 brne .-10 ; 0x37a0 <twi_readFrom+0x5a>
+ 37aa: 01 c0 rjmp .+2 ; 0x37ae <twi_readFrom+0x68>
+ 37ac: 40 e0 ldi r20, 0x00 ; 0
+ 37ae: 84 2f mov r24, r20
+ 37b0: 08 95 ret
+
+000037b2 <twi_writeTo>:
+ 37b2: 41 32 cpi r20, 0x21 ; 33
+ 37b4: b0 f5 brcc .+108 ; 0x3822 <twi_writeTo+0x70>
+ 37b6: 90 91 44 04 lds r25, 0x0444
+ 37ba: 99 23 and r25, r25
+ 37bc: e1 f7 brne .-8 ; 0x37b6 <twi_writeTo+0x4>
+ 37be: 92 e0 ldi r25, 0x02 ; 2
+ 37c0: 90 93 44 04 sts 0x0444, r25
+ 37c4: 9f ef ldi r25, 0xFF ; 255
+ 37c6: 90 93 43 04 sts 0x0443, r25
+ 37ca: 10 92 21 04 sts 0x0421, r1
+ 37ce: 40 93 22 04 sts 0x0422, r20
+ 37d2: db 01 movw r26, r22
+ 37d4: e3 e2 ldi r30, 0x23 ; 35
+ 37d6: f4 e0 ldi r31, 0x04 ; 4
+ 37d8: 50 e0 ldi r21, 0x00 ; 0
+ 37da: 4e 0f add r20, r30
+ 37dc: 5f 1f adc r21, r31
+ 37de: 02 c0 rjmp .+4 ; 0x37e4 <twi_writeTo+0x32>
+ 37e0: 9d 91 ld r25, X+
+ 37e2: 91 93 st Z+, r25
+ 37e4: e4 17 cp r30, r20
+ 37e6: f5 07 cpc r31, r21
+ 37e8: d9 f7 brne .-10 ; 0x37e0 <twi_writeTo+0x2e>
+ 37ea: 90 e0 ldi r25, 0x00 ; 0
+ 37ec: 88 0f add r24, r24
+ 37ee: 99 1f adc r25, r25
+ 37f0: 80 93 20 04 sts 0x0420, r24
+ 37f4: 85 ee ldi r24, 0xE5 ; 229
+ 37f6: 80 93 bc 00 sts 0x00BC, r24
+ 37fa: 22 23 and r18, r18
+ 37fc: 21 f0 breq .+8 ; 0x3806 <twi_writeTo+0x54>
+ 37fe: 80 91 44 04 lds r24, 0x0444
+ 3802: 82 30 cpi r24, 0x02 ; 2
+ 3804: e1 f3 breq .-8 ; 0x37fe <twi_writeTo+0x4c>
+ 3806: 80 91 43 04 lds r24, 0x0443
+ 380a: 8f 3f cpi r24, 0xFF ; 255
+ 380c: 61 f0 breq .+24 ; 0x3826 <twi_writeTo+0x74>
+ 380e: 80 91 43 04 lds r24, 0x0443
+ 3812: 80 32 cpi r24, 0x20 ; 32
+ 3814: 51 f0 breq .+20 ; 0x382a <twi_writeTo+0x78>
+ 3816: 80 91 43 04 lds r24, 0x0443
+ 381a: 80 33 cpi r24, 0x30 ; 48
+ 381c: 41 f4 brne .+16 ; 0x382e <twi_writeTo+0x7c>
+ 381e: 83 e0 ldi r24, 0x03 ; 3
+ 3820: 08 95 ret
+ 3822: 81 e0 ldi r24, 0x01 ; 1
+ 3824: 08 95 ret
+ 3826: 80 e0 ldi r24, 0x00 ; 0
+ 3828: 08 95 ret
+ 382a: 82 e0 ldi r24, 0x02 ; 2
+ 382c: 08 95 ret
+ 382e: 84 e0 ldi r24, 0x04 ; 4
+ 3830: 08 95 ret
+
+00003832 <twi_transmit>:
+ 3832: 61 32 cpi r22, 0x21 ; 33
+ 3834: a0 f4 brcc .+40 ; 0x385e <twi_transmit+0x2c>
+ 3836: 20 91 44 04 lds r18, 0x0444
+ 383a: 24 30 cpi r18, 0x04 ; 4
+ 383c: 91 f4 brne .+36 ; 0x3862 <twi_transmit+0x30>
+ 383e: 60 93 69 04 sts 0x0469, r22
+ 3842: dc 01 movw r26, r24
+ 3844: ec e6 ldi r30, 0x6C ; 108
+ 3846: f4 e0 ldi r31, 0x04 ; 4
+ 3848: 70 e0 ldi r23, 0x00 ; 0
+ 384a: 6e 0f add r22, r30
+ 384c: 7f 1f adc r23, r31
+ 384e: 02 c0 rjmp .+4 ; 0x3854 <twi_transmit+0x22>
+ 3850: 8d 91 ld r24, X+
+ 3852: 81 93 st Z+, r24
+ 3854: e6 17 cp r30, r22
+ 3856: f7 07 cpc r31, r23
+ 3858: d9 f7 brne .-10 ; 0x3850 <twi_transmit+0x1e>
+ 385a: 80 e0 ldi r24, 0x00 ; 0
+ 385c: 08 95 ret
+ 385e: 81 e0 ldi r24, 0x01 ; 1
+ 3860: 08 95 ret
+ 3862: 82 e0 ldi r24, 0x02 ; 2
+ 3864: 08 95 ret
+
+00003866 <twi_attachSlaveRxEvent>:
+ 3866: 90 93 67 04 sts 0x0467, r25
+ 386a: 80 93 66 04 sts 0x0466, r24
+ 386e: 08 95 ret
+
+00003870 <twi_attachSlaveTxEvent>:
+ 3870: 90 93 6b 04 sts 0x046B, r25
+ 3874: 80 93 6a 04 sts 0x046A, r24
+ 3878: 08 95 ret
+
+0000387a <twi_reply>:
+ 387a: 88 23 and r24, r24
+ 387c: 11 f0 breq .+4 ; 0x3882 <twi_reply+0x8>
+ 387e: 85 ec ldi r24, 0xC5 ; 197
+ 3880: 01 c0 rjmp .+2 ; 0x3884 <twi_reply+0xa>
+ 3882: 85 e8 ldi r24, 0x85 ; 133
+ 3884: 80 93 bc 00 sts 0x00BC, r24
+ 3888: 08 95 ret
+
+0000388a <twi_stop>:
+ 388a: 85 ed ldi r24, 0xD5 ; 213
+ 388c: 80 93 bc 00 sts 0x00BC, r24
+ 3890: 80 91 bc 00 lds r24, 0x00BC
+ 3894: 84 fd sbrc r24, 4
+ 3896: fc cf rjmp .-8 ; 0x3890 <twi_stop+0x6>
+ 3898: 10 92 44 04 sts 0x0444, r1
+ 389c: 08 95 ret
+
+0000389e <twi_releaseBus>:
+ 389e: 85 ec ldi r24, 0xC5 ; 197
+ 38a0: 80 93 bc 00 sts 0x00BC, r24
+ 38a4: 10 92 44 04 sts 0x0444, r1
+ 38a8: 08 95 ret
+
+000038aa <__vector_24>:
+ 38aa: 1f 92 push r1
+ 38ac: 0f 92 push r0
+ 38ae: 0f b6 in r0, 0x3f ; 63
+ 38b0: 0f 92 push r0
+ 38b2: 11 24 eor r1, r1
+ 38b4: 2f 93 push r18
+ 38b6: 3f 93 push r19
+ 38b8: 4f 93 push r20
+ 38ba: 5f 93 push r21
+ 38bc: 6f 93 push r22
+ 38be: 7f 93 push r23
+ 38c0: 8f 93 push r24
+ 38c2: 9f 93 push r25
+ 38c4: af 93 push r26
+ 38c6: bf 93 push r27
+ 38c8: ef 93 push r30
+ 38ca: ff 93 push r31
+ 38cc: 80 91 b9 00 lds r24, 0x00B9
+ 38d0: 90 e0 ldi r25, 0x00 ; 0
+ 38d2: 88 7f andi r24, 0xF8 ; 248
+ 38d4: 90 70 andi r25, 0x00 ; 0
+ 38d6: 80 36 cpi r24, 0x60 ; 96
+ 38d8: 91 05 cpc r25, r1
+ 38da: 09 f4 brne .+2 ; 0x38de <__vector_24+0x34>
+ 38dc: c2 c0 rjmp .+388 ; 0x3a62 <__vector_24+0x1b8>
+ 38de: 81 36 cpi r24, 0x61 ; 97
+ 38e0: 91 05 cpc r25, r1
+ 38e2: e4 f5 brge .+120 ; 0x395c <__vector_24+0xb2>
+ 38e4: 88 32 cpi r24, 0x28 ; 40
+ 38e6: 91 05 cpc r25, r1
+ 38e8: 09 f4 brne .+2 ; 0x38ec <__vector_24+0x42>
+ 38ea: 7e c0 rjmp .+252 ; 0x39e8 <__vector_24+0x13e>
+ 38ec: 89 32 cpi r24, 0x29 ; 41
+ 38ee: 91 05 cpc r25, r1
+ 38f0: c4 f4 brge .+48 ; 0x3922 <__vector_24+0x78>
+ 38f2: 80 31 cpi r24, 0x10 ; 16
+ 38f4: 91 05 cpc r25, r1
+ 38f6: 09 f4 brne .+2 ; 0x38fa <__vector_24+0x50>
+ 38f8: 72 c0 rjmp .+228 ; 0x39de <__vector_24+0x134>
+ 38fa: 81 31 cpi r24, 0x11 ; 17
+ 38fc: 91 05 cpc r25, r1
+ 38fe: 44 f4 brge .+16 ; 0x3910 <__vector_24+0x66>
+ 3900: 00 97 sbiw r24, 0x00 ; 0
+ 3902: 09 f4 brne .+2 ; 0x3906 <__vector_24+0x5c>
+ 3904: 13 c1 rjmp .+550 ; 0x3b2c <__vector_24+0x282>
+ 3906: 88 30 cpi r24, 0x08 ; 8
+ 3908: 91 05 cpc r25, r1
+ 390a: 09 f0 breq .+2 ; 0x390e <__vector_24+0x64>
+ 390c: 13 c1 rjmp .+550 ; 0x3b34 <__vector_24+0x28a>
+ 390e: 67 c0 rjmp .+206 ; 0x39de <__vector_24+0x134>
+ 3910: 88 31 cpi r24, 0x18 ; 24
+ 3912: 91 05 cpc r25, r1
+ 3914: 09 f4 brne .+2 ; 0x3918 <__vector_24+0x6e>
+ 3916: 68 c0 rjmp .+208 ; 0x39e8 <__vector_24+0x13e>
+ 3918: 80 32 cpi r24, 0x20 ; 32
+ 391a: 91 05 cpc r25, r1
+ 391c: 09 f0 breq .+2 ; 0x3920 <__vector_24+0x76>
+ 391e: 0a c1 rjmp .+532 ; 0x3b34 <__vector_24+0x28a>
+ 3920: 78 c0 rjmp .+240 ; 0x3a12 <__vector_24+0x168>
+ 3922: 80 34 cpi r24, 0x40 ; 64
+ 3924: 91 05 cpc r25, r1
+ 3926: 09 f4 brne .+2 ; 0x392a <__vector_24+0x80>
+ 3928: 8a c0 rjmp .+276 ; 0x3a3e <__vector_24+0x194>
+ 392a: 81 34 cpi r24, 0x41 ; 65
+ 392c: 91 05 cpc r25, r1
+ 392e: 4c f4 brge .+18 ; 0x3942 <__vector_24+0x98>
+ 3930: 80 33 cpi r24, 0x30 ; 48
+ 3932: 91 05 cpc r25, r1
+ 3934: 09 f4 brne .+2 ; 0x3938 <__vector_24+0x8e>
+ 3936: 6f c0 rjmp .+222 ; 0x3a16 <__vector_24+0x16c>
+ 3938: 88 33 cpi r24, 0x38 ; 56
+ 393a: 91 05 cpc r25, r1
+ 393c: 09 f0 breq .+2 ; 0x3940 <__vector_24+0x96>
+ 393e: fa c0 rjmp .+500 ; 0x3b34 <__vector_24+0x28a>
+ 3940: 6e c0 rjmp .+220 ; 0x3a1e <__vector_24+0x174>
+ 3942: 80 35 cpi r24, 0x50 ; 80
+ 3944: 91 05 cpc r25, r1
+ 3946: 09 f4 brne .+2 ; 0x394a <__vector_24+0xa0>
+ 3948: 6e c0 rjmp .+220 ; 0x3a26 <__vector_24+0x17c>
+ 394a: 88 35 cpi r24, 0x58 ; 88
+ 394c: 91 05 cpc r25, r1
+ 394e: 09 f4 brne .+2 ; 0x3952 <__vector_24+0xa8>
+ 3950: 7b c0 rjmp .+246 ; 0x3a48 <__vector_24+0x19e>
+ 3952: 88 34 cpi r24, 0x48 ; 72
+ 3954: 91 05 cpc r25, r1
+ 3956: 09 f0 breq .+2 ; 0x395a <__vector_24+0xb0>
+ 3958: ed c0 rjmp .+474 ; 0x3b34 <__vector_24+0x28a>
+ 395a: ea c0 rjmp .+468 ; 0x3b30 <__vector_24+0x286>
+ 395c: 88 39 cpi r24, 0x98 ; 152
+ 395e: 91 05 cpc r25, r1
+ 3960: 09 f4 brne .+2 ; 0x3964 <__vector_24+0xba>
+ 3962: da c0 rjmp .+436 ; 0x3b18 <__vector_24+0x26e>
+ 3964: 89 39 cpi r24, 0x99 ; 153
+ 3966: 91 05 cpc r25, r1
+ 3968: ec f4 brge .+58 ; 0x39a4 <__vector_24+0xfa>
+ 396a: 88 37 cpi r24, 0x78 ; 120
+ 396c: 91 05 cpc r25, r1
+ 396e: 09 f4 brne .+2 ; 0x3972 <__vector_24+0xc8>
+ 3970: 78 c0 rjmp .+240 ; 0x3a62 <__vector_24+0x1b8>
+ 3972: 89 37 cpi r24, 0x79 ; 121
+ 3974: 91 05 cpc r25, r1
+ 3976: 4c f4 brge .+18 ; 0x398a <__vector_24+0xe0>
+ 3978: 88 36 cpi r24, 0x68 ; 104
+ 397a: 91 05 cpc r25, r1
+ 397c: 09 f4 brne .+2 ; 0x3980 <__vector_24+0xd6>
+ 397e: 71 c0 rjmp .+226 ; 0x3a62 <__vector_24+0x1b8>
+ 3980: 80 37 cpi r24, 0x70 ; 112
+ 3982: 91 05 cpc r25, r1
+ 3984: 09 f0 breq .+2 ; 0x3988 <__vector_24+0xde>
+ 3986: d6 c0 rjmp .+428 ; 0x3b34 <__vector_24+0x28a>
+ 3988: 6c c0 rjmp .+216 ; 0x3a62 <__vector_24+0x1b8>
+ 398a: 88 38 cpi r24, 0x88 ; 136
+ 398c: 91 05 cpc r25, r1
+ 398e: 09 f4 brne .+2 ; 0x3992 <__vector_24+0xe8>
+ 3990: c3 c0 rjmp .+390 ; 0x3b18 <__vector_24+0x26e>
+ 3992: 80 39 cpi r24, 0x90 ; 144
+ 3994: 91 05 cpc r25, r1
+ 3996: 09 f4 brne .+2 ; 0x399a <__vector_24+0xf0>
+ 3998: 6a c0 rjmp .+212 ; 0x3a6e <__vector_24+0x1c4>
+ 399a: 80 38 cpi r24, 0x80 ; 128
+ 399c: 91 05 cpc r25, r1
+ 399e: 09 f0 breq .+2 ; 0x39a2 <__vector_24+0xf8>
+ 39a0: c9 c0 rjmp .+402 ; 0x3b34 <__vector_24+0x28a>
+ 39a2: 65 c0 rjmp .+202 ; 0x3a6e <__vector_24+0x1c4>
+ 39a4: 80 3b cpi r24, 0xB0 ; 176
+ 39a6: 91 05 cpc r25, r1
+ 39a8: 09 f4 brne .+2 ; 0x39ac <__vector_24+0x102>
+ 39aa: 8e c0 rjmp .+284 ; 0x3ac8 <__vector_24+0x21e>
+ 39ac: 81 3b cpi r24, 0xB1 ; 177
+ 39ae: 91 05 cpc r25, r1
+ 39b0: 4c f4 brge .+18 ; 0x39c4 <__vector_24+0x11a>
+ 39b2: 80 3a cpi r24, 0xA0 ; 160
+ 39b4: 91 05 cpc r25, r1
+ 39b6: 09 f4 brne .+2 ; 0x39ba <__vector_24+0x110>
+ 39b8: 6c c0 rjmp .+216 ; 0x3a92 <__vector_24+0x1e8>
+ 39ba: 88 3a cpi r24, 0xA8 ; 168
+ 39bc: 91 05 cpc r25, r1
+ 39be: 09 f0 breq .+2 ; 0x39c2 <__vector_24+0x118>
+ 39c0: b9 c0 rjmp .+370 ; 0x3b34 <__vector_24+0x28a>
+ 39c2: 82 c0 rjmp .+260 ; 0x3ac8 <__vector_24+0x21e>
+ 39c4: 80 3c cpi r24, 0xC0 ; 192
+ 39c6: 91 05 cpc r25, r1
+ 39c8: 09 f4 brne .+2 ; 0x39cc <__vector_24+0x122>
+ 39ca: aa c0 rjmp .+340 ; 0x3b20 <__vector_24+0x276>
+ 39cc: 88 3c cpi r24, 0xC8 ; 200
+ 39ce: 91 05 cpc r25, r1
+ 39d0: 09 f4 brne .+2 ; 0x39d4 <__vector_24+0x12a>
+ 39d2: a6 c0 rjmp .+332 ; 0x3b20 <__vector_24+0x276>
+ 39d4: 88 3b cpi r24, 0xB8 ; 184
+ 39d6: 91 05 cpc r25, r1
+ 39d8: 09 f0 breq .+2 ; 0x39dc <__vector_24+0x132>
+ 39da: ac c0 rjmp .+344 ; 0x3b34 <__vector_24+0x28a>
+ 39dc: 8a c0 rjmp .+276 ; 0x3af2 <__vector_24+0x248>
+ 39de: 80 91 20 04 lds r24, 0x0420
+ 39e2: 80 93 bb 00 sts 0x00BB, r24
+ 39e6: 13 c0 rjmp .+38 ; 0x3a0e <__vector_24+0x164>
+ 39e8: 90 91 21 04 lds r25, 0x0421
+ 39ec: 80 91 22 04 lds r24, 0x0422
+ 39f0: 98 17 cp r25, r24
+ 39f2: 08 f0 brcs .+2 ; 0x39f6 <__vector_24+0x14c>
+ 39f4: 9d c0 rjmp .+314 ; 0x3b30 <__vector_24+0x286>
+ 39f6: 80 91 21 04 lds r24, 0x0421
+ 39fa: e8 2f mov r30, r24
+ 39fc: f0 e0 ldi r31, 0x00 ; 0
+ 39fe: ed 5d subi r30, 0xDD ; 221
+ 3a00: fb 4f sbci r31, 0xFB ; 251
+ 3a02: 90 81 ld r25, Z
+ 3a04: 90 93 bb 00 sts 0x00BB, r25
+ 3a08: 8f 5f subi r24, 0xFF ; 255
+ 3a0a: 80 93 21 04 sts 0x0421, r24
+ 3a0e: 81 e0 ldi r24, 0x01 ; 1
+ 3a10: 84 c0 rjmp .+264 ; 0x3b1a <__vector_24+0x270>
+ 3a12: 80 e2 ldi r24, 0x20 ; 32
+ 3a14: 01 c0 rjmp .+2 ; 0x3a18 <__vector_24+0x16e>
+ 3a16: 80 e3 ldi r24, 0x30 ; 48
+ 3a18: 80 93 43 04 sts 0x0443, r24
+ 3a1c: 89 c0 rjmp .+274 ; 0x3b30 <__vector_24+0x286>
+ 3a1e: 88 e3 ldi r24, 0x38 ; 56
+ 3a20: 80 93 43 04 sts 0x0443, r24
+ 3a24: 4e c0 rjmp .+156 ; 0x3ac2 <__vector_24+0x218>
+ 3a26: 80 91 21 04 lds r24, 0x0421
+ 3a2a: 90 91 bb 00 lds r25, 0x00BB
+ 3a2e: e8 2f mov r30, r24
+ 3a30: f0 e0 ldi r31, 0x00 ; 0
+ 3a32: ed 5d subi r30, 0xDD ; 221
+ 3a34: fb 4f sbci r31, 0xFB ; 251
+ 3a36: 90 83 st Z, r25
+ 3a38: 8f 5f subi r24, 0xFF ; 255
+ 3a3a: 80 93 21 04 sts 0x0421, r24
+ 3a3e: 90 91 21 04 lds r25, 0x0421
+ 3a42: 80 91 22 04 lds r24, 0x0422
+ 3a46: 65 c0 rjmp .+202 ; 0x3b12 <__vector_24+0x268>
+ 3a48: 80 91 21 04 lds r24, 0x0421
+ 3a4c: 90 91 bb 00 lds r25, 0x00BB
+ 3a50: e8 2f mov r30, r24
+ 3a52: f0 e0 ldi r31, 0x00 ; 0
+ 3a54: ed 5d subi r30, 0xDD ; 221
+ 3a56: fb 4f sbci r31, 0xFB ; 251
+ 3a58: 90 83 st Z, r25
+ 3a5a: 8f 5f subi r24, 0xFF ; 255
+ 3a5c: 80 93 21 04 sts 0x0421, r24
+ 3a60: 67 c0 rjmp .+206 ; 0x3b30 <__vector_24+0x286>
+ 3a62: 83 e0 ldi r24, 0x03 ; 3
+ 3a64: 80 93 44 04 sts 0x0444, r24
+ 3a68: 10 92 45 04 sts 0x0445, r1
+ 3a6c: d0 cf rjmp .-96 ; 0x3a0e <__vector_24+0x164>
+ 3a6e: 80 91 45 04 lds r24, 0x0445
+ 3a72: 80 32 cpi r24, 0x20 ; 32
+ 3a74: 08 f0 brcs .+2 ; 0x3a78 <__vector_24+0x1ce>
+ 3a76: 50 c0 rjmp .+160 ; 0x3b18 <__vector_24+0x26e>
+ 3a78: 80 91 45 04 lds r24, 0x0445
+ 3a7c: 90 91 bb 00 lds r25, 0x00BB
+ 3a80: e8 2f mov r30, r24
+ 3a82: f0 e0 ldi r31, 0x00 ; 0
+ 3a84: ea 5b subi r30, 0xBA ; 186
+ 3a86: fb 4f sbci r31, 0xFB ; 251
+ 3a88: 90 83 st Z, r25
+ 3a8a: 8f 5f subi r24, 0xFF ; 255
+ 3a8c: 80 93 45 04 sts 0x0445, r24
+ 3a90: be cf rjmp .-132 ; 0x3a0e <__vector_24+0x164>
+ 3a92: 80 91 45 04 lds r24, 0x0445
+ 3a96: 80 32 cpi r24, 0x20 ; 32
+ 3a98: 30 f4 brcc .+12 ; 0x3aa6 <__vector_24+0x1fc>
+ 3a9a: e0 91 45 04 lds r30, 0x0445
+ 3a9e: f0 e0 ldi r31, 0x00 ; 0
+ 3aa0: ea 5b subi r30, 0xBA ; 186
+ 3aa2: fb 4f sbci r31, 0xFB ; 251
+ 3aa4: 10 82 st Z, r1
+ 3aa6: 0e 94 45 1c call 0x388a ; 0x388a <twi_stop>
+ 3aaa: 60 91 45 04 lds r22, 0x0445
+ 3aae: e0 91 66 04 lds r30, 0x0466
+ 3ab2: f0 91 67 04 lds r31, 0x0467
+ 3ab6: 86 e4 ldi r24, 0x46 ; 70
+ 3ab8: 94 e0 ldi r25, 0x04 ; 4
+ 3aba: 70 e0 ldi r23, 0x00 ; 0
+ 3abc: 09 95 icall
+ 3abe: 10 92 45 04 sts 0x0445, r1
+ 3ac2: 0e 94 4f 1c call 0x389e ; 0x389e <twi_releaseBus>
+ 3ac6: 36 c0 rjmp .+108 ; 0x3b34 <__vector_24+0x28a>
+ 3ac8: 84 e0 ldi r24, 0x04 ; 4
+ 3aca: 80 93 44 04 sts 0x0444, r24
+ 3ace: 10 92 68 04 sts 0x0468, r1
+ 3ad2: 10 92 69 04 sts 0x0469, r1
+ 3ad6: e0 91 6a 04 lds r30, 0x046A
+ 3ada: f0 91 6b 04 lds r31, 0x046B
+ 3ade: 09 95 icall
+ 3ae0: 80 91 69 04 lds r24, 0x0469
+ 3ae4: 88 23 and r24, r24
+ 3ae6: 29 f4 brne .+10 ; 0x3af2 <__vector_24+0x248>
+ 3ae8: 81 e0 ldi r24, 0x01 ; 1
+ 3aea: 80 93 69 04 sts 0x0469, r24
+ 3aee: 10 92 6c 04 sts 0x046C, r1
+ 3af2: 80 91 68 04 lds r24, 0x0468
+ 3af6: e8 2f mov r30, r24
+ 3af8: f0 e0 ldi r31, 0x00 ; 0
+ 3afa: e4 59 subi r30, 0x94 ; 148
+ 3afc: fb 4f sbci r31, 0xFB ; 251
+ 3afe: 90 81 ld r25, Z
+ 3b00: 90 93 bb 00 sts 0x00BB, r25
+ 3b04: 8f 5f subi r24, 0xFF ; 255
+ 3b06: 80 93 68 04 sts 0x0468, r24
+ 3b0a: 90 91 68 04 lds r25, 0x0468
+ 3b0e: 80 91 69 04 lds r24, 0x0469
+ 3b12: 98 17 cp r25, r24
+ 3b14: 08 f4 brcc .+2 ; 0x3b18 <__vector_24+0x26e>
+ 3b16: 7b cf rjmp .-266 ; 0x3a0e <__vector_24+0x164>
+ 3b18: 80 e0 ldi r24, 0x00 ; 0
+ 3b1a: 0e 94 3d 1c call 0x387a ; 0x387a <twi_reply>
+ 3b1e: 0a c0 rjmp .+20 ; 0x3b34 <__vector_24+0x28a>
+ 3b20: 81 e0 ldi r24, 0x01 ; 1
+ 3b22: 0e 94 3d 1c call 0x387a ; 0x387a <twi_reply>
+ 3b26: 10 92 44 04 sts 0x0444, r1
+ 3b2a: 04 c0 rjmp .+8 ; 0x3b34 <__vector_24+0x28a>
+ 3b2c: 10 92 43 04 sts 0x0443, r1
+ 3b30: 0e 94 45 1c call 0x388a ; 0x388a <twi_stop>
+ 3b34: ff 91 pop r31
+ 3b36: ef 91 pop r30
+ 3b38: bf 91 pop r27
+ 3b3a: af 91 pop r26
+ 3b3c: 9f 91 pop r25
+ 3b3e: 8f 91 pop r24
+ 3b40: 7f 91 pop r23
+ 3b42: 6f 91 pop r22
+ 3b44: 5f 91 pop r21
+ 3b46: 4f 91 pop r20
+ 3b48: 3f 91 pop r19
+ 3b4a: 2f 91 pop r18
+ 3b4c: 0f 90 pop r0
+ 3b4e: 0f be out 0x3f, r0 ; 63
+ 3b50: 0f 90 pop r0
+ 3b52: 1f 90 pop r1
+ 3b54: 18 95 reti
+
+00003b56 <__fixunssfsi>:
+ 3b56: ef 92 push r14
+ 3b58: ff 92 push r15
+ 3b5a: 0f 93 push r16
+ 3b5c: 1f 93 push r17
+ 3b5e: 7b 01 movw r14, r22
+ 3b60: 8c 01 movw r16, r24
+ 3b62: 20 e0 ldi r18, 0x00 ; 0
+ 3b64: 30 e0 ldi r19, 0x00 ; 0
+ 3b66: 40 e0 ldi r20, 0x00 ; 0
+ 3b68: 5f e4 ldi r21, 0x4F ; 79
+ 3b6a: 0e 94 27 21 call 0x424e ; 0x424e <__gesf2>
+ 3b6e: 87 fd sbrc r24, 7
+ 3b70: 11 c0 rjmp .+34 ; 0x3b94 <__fixunssfsi+0x3e>
+ 3b72: c8 01 movw r24, r16
+ 3b74: b7 01 movw r22, r14
+ 3b76: 20 e0 ldi r18, 0x00 ; 0
+ 3b78: 30 e0 ldi r19, 0x00 ; 0
+ 3b7a: 40 e0 ldi r20, 0x00 ; 0
+ 3b7c: 5f e4 ldi r21, 0x4F ; 79
+ 3b7e: 0e 94 4e 1f call 0x3e9c ; 0x3e9c <__subsf3>
+ 3b82: 0e 94 e7 21 call 0x43ce ; 0x43ce <__fixsfsi>
+ 3b86: 9b 01 movw r18, r22
+ 3b88: ac 01 movw r20, r24
+ 3b8a: 20 50 subi r18, 0x00 ; 0
+ 3b8c: 30 40 sbci r19, 0x00 ; 0
+ 3b8e: 40 40 sbci r20, 0x00 ; 0
+ 3b90: 50 48 sbci r21, 0x80 ; 128
+ 3b92: 06 c0 rjmp .+12 ; 0x3ba0 <__fixunssfsi+0x4a>
+ 3b94: c8 01 movw r24, r16
+ 3b96: b7 01 movw r22, r14
+ 3b98: 0e 94 e7 21 call 0x43ce ; 0x43ce <__fixsfsi>
+ 3b9c: 9b 01 movw r18, r22
+ 3b9e: ac 01 movw r20, r24
+ 3ba0: b9 01 movw r22, r18
+ 3ba2: ca 01 movw r24, r20
+ 3ba4: 1f 91 pop r17
+ 3ba6: 0f 91 pop r16
+ 3ba8: ff 90 pop r15
+ 3baa: ef 90 pop r14
+ 3bac: 08 95 ret
+
+00003bae <_fpadd_parts>:
+ 3bae: a0 e0 ldi r26, 0x00 ; 0
+ 3bb0: b0 e0 ldi r27, 0x00 ; 0
+ 3bb2: ed ed ldi r30, 0xDD ; 221
+ 3bb4: fd e1 ldi r31, 0x1D ; 29
+ 3bb6: 0c 94 22 25 jmp 0x4a44 ; 0x4a44 <__prologue_saves__+0x8>
+ 3bba: fc 01 movw r30, r24
+ 3bbc: ea 01 movw r28, r20
+ 3bbe: 80 81 ld r24, Z
+ 3bc0: 82 30 cpi r24, 0x02 ; 2
+ 3bc2: 08 f4 brcc .+2 ; 0x3bc6 <_fpadd_parts+0x18>
+ 3bc4: 38 c1 rjmp .+624 ; 0x3e36 <_fpadd_parts+0x288>
+ 3bc6: db 01 movw r26, r22
+ 3bc8: 9c 91 ld r25, X
+ 3bca: 92 30 cpi r25, 0x02 ; 2
+ 3bcc: 08 f4 brcc .+2 ; 0x3bd0 <_fpadd_parts+0x22>
+ 3bce: 30 c1 rjmp .+608 ; 0x3e30 <_fpadd_parts+0x282>
+ 3bd0: 84 30 cpi r24, 0x04 ; 4
+ 3bd2: 59 f4 brne .+22 ; 0x3bea <_fpadd_parts+0x3c>
+ 3bd4: 94 30 cpi r25, 0x04 ; 4
+ 3bd6: 09 f0 breq .+2 ; 0x3bda <_fpadd_parts+0x2c>
+ 3bd8: 2e c1 rjmp .+604 ; 0x3e36 <_fpadd_parts+0x288>
+ 3bda: 91 81 ldd r25, Z+1 ; 0x01
+ 3bdc: 11 96 adiw r26, 0x01 ; 1
+ 3bde: 8c 91 ld r24, X
+ 3be0: 11 97 sbiw r26, 0x01 ; 1
+ 3be2: 98 17 cp r25, r24
+ 3be4: 09 f0 breq .+2 ; 0x3be8 <_fpadd_parts+0x3a>
+ 3be6: 21 c1 rjmp .+578 ; 0x3e2a <_fpadd_parts+0x27c>
+ 3be8: 26 c1 rjmp .+588 ; 0x3e36 <_fpadd_parts+0x288>
+ 3bea: 94 30 cpi r25, 0x04 ; 4
+ 3bec: 09 f4 brne .+2 ; 0x3bf0 <_fpadd_parts+0x42>
+ 3bee: 20 c1 rjmp .+576 ; 0x3e30 <_fpadd_parts+0x282>
+ 3bf0: 92 30 cpi r25, 0x02 ; 2
+ 3bf2: b1 f4 brne .+44 ; 0x3c20 <_fpadd_parts+0x72>
+ 3bf4: 82 30 cpi r24, 0x02 ; 2
+ 3bf6: 09 f0 breq .+2 ; 0x3bfa <_fpadd_parts+0x4c>
+ 3bf8: 1e c1 rjmp .+572 ; 0x3e36 <_fpadd_parts+0x288>
+ 3bfa: ca 01 movw r24, r20
+ 3bfc: af 01 movw r20, r30
+ 3bfe: 28 e0 ldi r18, 0x08 ; 8
+ 3c00: da 01 movw r26, r20
+ 3c02: 0d 90 ld r0, X+
+ 3c04: ad 01 movw r20, r26
+ 3c06: dc 01 movw r26, r24
+ 3c08: 0d 92 st X+, r0
+ 3c0a: cd 01 movw r24, r26
+ 3c0c: 21 50 subi r18, 0x01 ; 1
+ 3c0e: c1 f7 brne .-16 ; 0x3c00 <_fpadd_parts+0x52>
+ 3c10: db 01 movw r26, r22
+ 3c12: 11 96 adiw r26, 0x01 ; 1
+ 3c14: 8c 91 ld r24, X
+ 3c16: 11 97 sbiw r26, 0x01 ; 1
+ 3c18: 91 81 ldd r25, Z+1 ; 0x01
+ 3c1a: 89 23 and r24, r25
+ 3c1c: 89 83 std Y+1, r24 ; 0x01
+ 3c1e: 0a c1 rjmp .+532 ; 0x3e34 <_fpadd_parts+0x286>
+ 3c20: 82 30 cpi r24, 0x02 ; 2
+ 3c22: 09 f4 brne .+2 ; 0x3c26 <_fpadd_parts+0x78>
+ 3c24: 05 c1 rjmp .+522 ; 0x3e30 <_fpadd_parts+0x282>
+ 3c26: c2 80 ldd r12, Z+2 ; 0x02
+ 3c28: d3 80 ldd r13, Z+3 ; 0x03
+ 3c2a: db 01 movw r26, r22
+ 3c2c: 12 96 adiw r26, 0x02 ; 2
+ 3c2e: 6d 90 ld r6, X+
+ 3c30: 7c 90 ld r7, X
+ 3c32: 13 97 sbiw r26, 0x03 ; 3
+ 3c34: 24 81 ldd r18, Z+4 ; 0x04
+ 3c36: 35 81 ldd r19, Z+5 ; 0x05
+ 3c38: 46 81 ldd r20, Z+6 ; 0x06
+ 3c3a: 57 81 ldd r21, Z+7 ; 0x07
+ 3c3c: 14 96 adiw r26, 0x04 ; 4
+ 3c3e: ed 90 ld r14, X+
+ 3c40: fd 90 ld r15, X+
+ 3c42: 0d 91 ld r16, X+
+ 3c44: 1c 91 ld r17, X
+ 3c46: 17 97 sbiw r26, 0x07 ; 7
+ 3c48: c6 01 movw r24, r12
+ 3c4a: 86 19 sub r24, r6
+ 3c4c: 97 09 sbc r25, r7
+ 3c4e: 5c 01 movw r10, r24
+ 3c50: 97 ff sbrs r25, 7
+ 3c52: 04 c0 rjmp .+8 ; 0x3c5c <_fpadd_parts+0xae>
+ 3c54: aa 24 eor r10, r10
+ 3c56: bb 24 eor r11, r11
+ 3c58: a8 1a sub r10, r24
+ 3c5a: b9 0a sbc r11, r25
+ 3c5c: b0 e2 ldi r27, 0x20 ; 32
+ 3c5e: ab 16 cp r10, r27
+ 3c60: b1 04 cpc r11, r1
+ 3c62: 0c f0 brlt .+2 ; 0x3c66 <_fpadd_parts+0xb8>
+ 3c64: 61 c0 rjmp .+194 ; 0x3d28 <_fpadd_parts+0x17a>
+ 3c66: 18 16 cp r1, r24
+ 3c68: 19 06 cpc r1, r25
+ 3c6a: 6c f5 brge .+90 ; 0x3cc6 <_fpadd_parts+0x118>
+ 3c6c: 37 01 movw r6, r14
+ 3c6e: 48 01 movw r8, r16
+ 3c70: 0a 2c mov r0, r10
+ 3c72: 04 c0 rjmp .+8 ; 0x3c7c <_fpadd_parts+0xce>
+ 3c74: 96 94 lsr r9
+ 3c76: 87 94 ror r8
+ 3c78: 77 94 ror r7
+ 3c7a: 67 94 ror r6
+ 3c7c: 0a 94 dec r0
+ 3c7e: d2 f7 brpl .-12 ; 0x3c74 <_fpadd_parts+0xc6>
+ 3c80: 81 e0 ldi r24, 0x01 ; 1
+ 3c82: 90 e0 ldi r25, 0x00 ; 0
+ 3c84: a0 e0 ldi r26, 0x00 ; 0
+ 3c86: b0 e0 ldi r27, 0x00 ; 0
+ 3c88: 0a 2c mov r0, r10
+ 3c8a: 04 c0 rjmp .+8 ; 0x3c94 <_fpadd_parts+0xe6>
+ 3c8c: 88 0f add r24, r24
+ 3c8e: 99 1f adc r25, r25
+ 3c90: aa 1f adc r26, r26
+ 3c92: bb 1f adc r27, r27
+ 3c94: 0a 94 dec r0
+ 3c96: d2 f7 brpl .-12 ; 0x3c8c <_fpadd_parts+0xde>
+ 3c98: 01 97 sbiw r24, 0x01 ; 1
+ 3c9a: a1 09 sbc r26, r1
+ 3c9c: b1 09 sbc r27, r1
+ 3c9e: 8e 21 and r24, r14
+ 3ca0: 9f 21 and r25, r15
+ 3ca2: a0 23 and r26, r16
+ 3ca4: b1 23 and r27, r17
+ 3ca6: ee 24 eor r14, r14
+ 3ca8: ff 24 eor r15, r15
+ 3caa: 87 01 movw r16, r14
+ 3cac: e3 94 inc r14
+ 3cae: 00 97 sbiw r24, 0x00 ; 0
+ 3cb0: a1 05 cpc r26, r1
+ 3cb2: b1 05 cpc r27, r1
+ 3cb4: 19 f4 brne .+6 ; 0x3cbc <_fpadd_parts+0x10e>
+ 3cb6: ee 24 eor r14, r14
+ 3cb8: ff 24 eor r15, r15
+ 3cba: 87 01 movw r16, r14
+ 3cbc: e6 28 or r14, r6
+ 3cbe: f7 28 or r15, r7
+ 3cc0: 08 29 or r16, r8
+ 3cc2: 19 29 or r17, r9
+ 3cc4: 3c c0 rjmp .+120 ; 0x3d3e <_fpadd_parts+0x190>
+ 3cc6: 00 97 sbiw r24, 0x00 ; 0
+ 3cc8: d1 f1 breq .+116 ; 0x3d3e <_fpadd_parts+0x190>
+ 3cca: ca 0c add r12, r10
+ 3ccc: db 1c adc r13, r11
+ 3cce: 39 01 movw r6, r18
+ 3cd0: 4a 01 movw r8, r20
+ 3cd2: 0a 2c mov r0, r10
+ 3cd4: 04 c0 rjmp .+8 ; 0x3cde <_fpadd_parts+0x130>
+ 3cd6: 96 94 lsr r9
+ 3cd8: 87 94 ror r8
+ 3cda: 77 94 ror r7
+ 3cdc: 67 94 ror r6
+ 3cde: 0a 94 dec r0
+ 3ce0: d2 f7 brpl .-12 ; 0x3cd6 <_fpadd_parts+0x128>
+ 3ce2: 81 e0 ldi r24, 0x01 ; 1
+ 3ce4: 90 e0 ldi r25, 0x00 ; 0
+ 3ce6: a0 e0 ldi r26, 0x00 ; 0
+ 3ce8: b0 e0 ldi r27, 0x00 ; 0
+ 3cea: 0a 2c mov r0, r10
+ 3cec: 04 c0 rjmp .+8 ; 0x3cf6 <_fpadd_parts+0x148>
+ 3cee: 88 0f add r24, r24
+ 3cf0: 99 1f adc r25, r25
+ 3cf2: aa 1f adc r26, r26
+ 3cf4: bb 1f adc r27, r27
+ 3cf6: 0a 94 dec r0
+ 3cf8: d2 f7 brpl .-12 ; 0x3cee <_fpadd_parts+0x140>
+ 3cfa: 01 97 sbiw r24, 0x01 ; 1
+ 3cfc: a1 09 sbc r26, r1
+ 3cfe: b1 09 sbc r27, r1
+ 3d00: 82 23 and r24, r18
+ 3d02: 93 23 and r25, r19
+ 3d04: a4 23 and r26, r20
+ 3d06: b5 23 and r27, r21
+ 3d08: 21 e0 ldi r18, 0x01 ; 1
+ 3d0a: 30 e0 ldi r19, 0x00 ; 0
+ 3d0c: 40 e0 ldi r20, 0x00 ; 0
+ 3d0e: 50 e0 ldi r21, 0x00 ; 0
+ 3d10: 00 97 sbiw r24, 0x00 ; 0
+ 3d12: a1 05 cpc r26, r1
+ 3d14: b1 05 cpc r27, r1
+ 3d16: 19 f4 brne .+6 ; 0x3d1e <_fpadd_parts+0x170>
+ 3d18: 20 e0 ldi r18, 0x00 ; 0
+ 3d1a: 30 e0 ldi r19, 0x00 ; 0
+ 3d1c: a9 01 movw r20, r18
+ 3d1e: 26 29 or r18, r6
+ 3d20: 37 29 or r19, r7
+ 3d22: 48 29 or r20, r8
+ 3d24: 59 29 or r21, r9
+ 3d26: 0b c0 rjmp .+22 ; 0x3d3e <_fpadd_parts+0x190>
+ 3d28: 6c 14 cp r6, r12
+ 3d2a: 7d 04 cpc r7, r13
+ 3d2c: 24 f4 brge .+8 ; 0x3d36 <_fpadd_parts+0x188>
+ 3d2e: ee 24 eor r14, r14
+ 3d30: ff 24 eor r15, r15
+ 3d32: 87 01 movw r16, r14
+ 3d34: 04 c0 rjmp .+8 ; 0x3d3e <_fpadd_parts+0x190>
+ 3d36: 63 01 movw r12, r6
+ 3d38: 20 e0 ldi r18, 0x00 ; 0
+ 3d3a: 30 e0 ldi r19, 0x00 ; 0
+ 3d3c: a9 01 movw r20, r18
+ 3d3e: 81 81 ldd r24, Z+1 ; 0x01
+ 3d40: fb 01 movw r30, r22
+ 3d42: 91 81 ldd r25, Z+1 ; 0x01
+ 3d44: 89 17 cp r24, r25
+ 3d46: 09 f4 brne .+2 ; 0x3d4a <_fpadd_parts+0x19c>
+ 3d48: 45 c0 rjmp .+138 ; 0x3dd4 <_fpadd_parts+0x226>
+ 3d4a: 88 23 and r24, r24
+ 3d4c: 49 f0 breq .+18 ; 0x3d60 <_fpadd_parts+0x1b2>
+ 3d4e: d8 01 movw r26, r16
+ 3d50: c7 01 movw r24, r14
+ 3d52: 82 1b sub r24, r18
+ 3d54: 93 0b sbc r25, r19
+ 3d56: a4 0b sbc r26, r20
+ 3d58: b5 0b sbc r27, r21
+ 3d5a: 9c 01 movw r18, r24
+ 3d5c: ad 01 movw r20, r26
+ 3d5e: 04 c0 rjmp .+8 ; 0x3d68 <_fpadd_parts+0x1ba>
+ 3d60: 2e 19 sub r18, r14
+ 3d62: 3f 09 sbc r19, r15
+ 3d64: 40 0b sbc r20, r16
+ 3d66: 51 0b sbc r21, r17
+ 3d68: 57 fd sbrc r21, 7
+ 3d6a: 04 c0 rjmp .+8 ; 0x3d74 <_fpadd_parts+0x1c6>
+ 3d6c: 19 82 std Y+1, r1 ; 0x01
+ 3d6e: db 82 std Y+3, r13 ; 0x03
+ 3d70: ca 82 std Y+2, r12 ; 0x02
+ 3d72: 0b c0 rjmp .+22 ; 0x3d8a <_fpadd_parts+0x1dc>
+ 3d74: 81 e0 ldi r24, 0x01 ; 1
+ 3d76: 89 83 std Y+1, r24 ; 0x01
+ 3d78: db 82 std Y+3, r13 ; 0x03
+ 3d7a: ca 82 std Y+2, r12 ; 0x02
+ 3d7c: 50 95 com r21
+ 3d7e: 40 95 com r20
+ 3d80: 30 95 com r19
+ 3d82: 21 95 neg r18
+ 3d84: 3f 4f sbci r19, 0xFF ; 255
+ 3d86: 4f 4f sbci r20, 0xFF ; 255
+ 3d88: 5f 4f sbci r21, 0xFF ; 255
+ 3d8a: 2c 83 std Y+4, r18 ; 0x04
+ 3d8c: 3d 83 std Y+5, r19 ; 0x05
+ 3d8e: 4e 83 std Y+6, r20 ; 0x06
+ 3d90: 5f 83 std Y+7, r21 ; 0x07
+ 3d92: 0d c0 rjmp .+26 ; 0x3dae <_fpadd_parts+0x200>
+ 3d94: 88 0f add r24, r24
+ 3d96: 99 1f adc r25, r25
+ 3d98: aa 1f adc r26, r26
+ 3d9a: bb 1f adc r27, r27
+ 3d9c: 8c 83 std Y+4, r24 ; 0x04
+ 3d9e: 9d 83 std Y+5, r25 ; 0x05
+ 3da0: ae 83 std Y+6, r26 ; 0x06
+ 3da2: bf 83 std Y+7, r27 ; 0x07
+ 3da4: 8a 81 ldd r24, Y+2 ; 0x02
+ 3da6: 9b 81 ldd r25, Y+3 ; 0x03
+ 3da8: 01 97 sbiw r24, 0x01 ; 1
+ 3daa: 9b 83 std Y+3, r25 ; 0x03
+ 3dac: 8a 83 std Y+2, r24 ; 0x02
+ 3dae: 8c 81 ldd r24, Y+4 ; 0x04
+ 3db0: 9d 81 ldd r25, Y+5 ; 0x05
+ 3db2: ae 81 ldd r26, Y+6 ; 0x06
+ 3db4: bf 81 ldd r27, Y+7 ; 0x07
+ 3db6: 9c 01 movw r18, r24
+ 3db8: ad 01 movw r20, r26
+ 3dba: 21 50 subi r18, 0x01 ; 1
+ 3dbc: 30 40 sbci r19, 0x00 ; 0
+ 3dbe: 40 40 sbci r20, 0x00 ; 0
+ 3dc0: 50 40 sbci r21, 0x00 ; 0
+ 3dc2: 2f 3f cpi r18, 0xFF ; 255
+ 3dc4: ef ef ldi r30, 0xFF ; 255
+ 3dc6: 3e 07 cpc r19, r30
+ 3dc8: ef ef ldi r30, 0xFF ; 255
+ 3dca: 4e 07 cpc r20, r30
+ 3dcc: ef e3 ldi r30, 0x3F ; 63
+ 3dce: 5e 07 cpc r21, r30
+ 3dd0: 08 f3 brcs .-62 ; 0x3d94 <_fpadd_parts+0x1e6>
+ 3dd2: 0b c0 rjmp .+22 ; 0x3dea <_fpadd_parts+0x23c>
+ 3dd4: 89 83 std Y+1, r24 ; 0x01
+ 3dd6: db 82 std Y+3, r13 ; 0x03
+ 3dd8: ca 82 std Y+2, r12 ; 0x02
+ 3dda: 2e 0d add r18, r14
+ 3ddc: 3f 1d adc r19, r15
+ 3dde: 40 1f adc r20, r16
+ 3de0: 51 1f adc r21, r17
+ 3de2: 2c 83 std Y+4, r18 ; 0x04
+ 3de4: 3d 83 std Y+5, r19 ; 0x05
+ 3de6: 4e 83 std Y+6, r20 ; 0x06
+ 3de8: 5f 83 std Y+7, r21 ; 0x07
+ 3dea: 83 e0 ldi r24, 0x03 ; 3
+ 3dec: 88 83 st Y, r24
+ 3dee: 2c 81 ldd r18, Y+4 ; 0x04
+ 3df0: 3d 81 ldd r19, Y+5 ; 0x05
+ 3df2: 4e 81 ldd r20, Y+6 ; 0x06
+ 3df4: 5f 81 ldd r21, Y+7 ; 0x07
+ 3df6: 57 ff sbrs r21, 7
+ 3df8: 1d c0 rjmp .+58 ; 0x3e34 <_fpadd_parts+0x286>
+ 3dfa: da 01 movw r26, r20
+ 3dfc: c9 01 movw r24, r18
+ 3dfe: 81 70 andi r24, 0x01 ; 1
+ 3e00: 90 70 andi r25, 0x00 ; 0
+ 3e02: a0 70 andi r26, 0x00 ; 0
+ 3e04: b0 70 andi r27, 0x00 ; 0
+ 3e06: 56 95 lsr r21
+ 3e08: 47 95 ror r20
+ 3e0a: 37 95 ror r19
+ 3e0c: 27 95 ror r18
+ 3e0e: 82 2b or r24, r18
+ 3e10: 93 2b or r25, r19
+ 3e12: a4 2b or r26, r20
+ 3e14: b5 2b or r27, r21
+ 3e16: 8c 83 std Y+4, r24 ; 0x04
+ 3e18: 9d 83 std Y+5, r25 ; 0x05
+ 3e1a: ae 83 std Y+6, r26 ; 0x06
+ 3e1c: bf 83 std Y+7, r27 ; 0x07
+ 3e1e: 8a 81 ldd r24, Y+2 ; 0x02
+ 3e20: 9b 81 ldd r25, Y+3 ; 0x03
+ 3e22: 01 96 adiw r24, 0x01 ; 1
+ 3e24: 9b 83 std Y+3, r25 ; 0x03
+ 3e26: 8a 83 std Y+2, r24 ; 0x02
+ 3e28: 05 c0 rjmp .+10 ; 0x3e34 <_fpadd_parts+0x286>
+ 3e2a: ee ec ldi r30, 0xCE ; 206
+ 3e2c: f1 e0 ldi r31, 0x01 ; 1
+ 3e2e: 03 c0 rjmp .+6 ; 0x3e36 <_fpadd_parts+0x288>
+ 3e30: fb 01 movw r30, r22
+ 3e32: 01 c0 rjmp .+2 ; 0x3e36 <_fpadd_parts+0x288>
+ 3e34: fe 01 movw r30, r28
+ 3e36: cf 01 movw r24, r30
+ 3e38: cd b7 in r28, 0x3d ; 61
+ 3e3a: de b7 in r29, 0x3e ; 62
+ 3e3c: ee e0 ldi r30, 0x0E ; 14
+ 3e3e: 0c 94 3e 25 jmp 0x4a7c ; 0x4a7c <__epilogue_restores__+0x8>
+
+00003e42 <__addsf3>:
+ 3e42: a0 e2 ldi r26, 0x20 ; 32
+ 3e44: b0 e0 ldi r27, 0x00 ; 0
+ 3e46: e7 e2 ldi r30, 0x27 ; 39
+ 3e48: ff e1 ldi r31, 0x1F ; 31
+ 3e4a: 0c 94 2a 25 jmp 0x4a54 ; 0x4a54 <__prologue_saves__+0x18>
+ 3e4e: 69 83 std Y+1, r22 ; 0x01
+ 3e50: 7a 83 std Y+2, r23 ; 0x02
+ 3e52: 8b 83 std Y+3, r24 ; 0x03
+ 3e54: 9c 83 std Y+4, r25 ; 0x04
+ 3e56: 2d 83 std Y+5, r18 ; 0x05
+ 3e58: 3e 83 std Y+6, r19 ; 0x06
+ 3e5a: 4f 83 std Y+7, r20 ; 0x07
+ 3e5c: 58 87 std Y+8, r21 ; 0x08
+ 3e5e: 89 e0 ldi r24, 0x09 ; 9
+ 3e60: e8 2e mov r14, r24
+ 3e62: f1 2c mov r15, r1
+ 3e64: ec 0e add r14, r28
+ 3e66: fd 1e adc r15, r29
+ 3e68: ce 01 movw r24, r28
+ 3e6a: 01 96 adiw r24, 0x01 ; 1
+ 3e6c: b7 01 movw r22, r14
+ 3e6e: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3e72: 8e 01 movw r16, r28
+ 3e74: 0f 5e subi r16, 0xEF ; 239
+ 3e76: 1f 4f sbci r17, 0xFF ; 255
+ 3e78: ce 01 movw r24, r28
+ 3e7a: 05 96 adiw r24, 0x05 ; 5
+ 3e7c: b8 01 movw r22, r16
+ 3e7e: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3e82: c7 01 movw r24, r14
+ 3e84: b8 01 movw r22, r16
+ 3e86: ae 01 movw r20, r28
+ 3e88: 47 5e subi r20, 0xE7 ; 231
+ 3e8a: 5f 4f sbci r21, 0xFF ; 255
+ 3e8c: 0e 94 d7 1d call 0x3bae ; 0x3bae <_fpadd_parts>
+ 3e90: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 3e94: a0 96 adiw r28, 0x20 ; 32
+ 3e96: e6 e0 ldi r30, 0x06 ; 6
+ 3e98: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+00003e9c <__subsf3>:
+ 3e9c: a0 e2 ldi r26, 0x20 ; 32
+ 3e9e: b0 e0 ldi r27, 0x00 ; 0
+ 3ea0: e4 e5 ldi r30, 0x54 ; 84
+ 3ea2: ff e1 ldi r31, 0x1F ; 31
+ 3ea4: 0c 94 2a 25 jmp 0x4a54 ; 0x4a54 <__prologue_saves__+0x18>
+ 3ea8: 69 83 std Y+1, r22 ; 0x01
+ 3eaa: 7a 83 std Y+2, r23 ; 0x02
+ 3eac: 8b 83 std Y+3, r24 ; 0x03
+ 3eae: 9c 83 std Y+4, r25 ; 0x04
+ 3eb0: 2d 83 std Y+5, r18 ; 0x05
+ 3eb2: 3e 83 std Y+6, r19 ; 0x06
+ 3eb4: 4f 83 std Y+7, r20 ; 0x07
+ 3eb6: 58 87 std Y+8, r21 ; 0x08
+ 3eb8: 8e 01 movw r16, r28
+ 3eba: 07 5f subi r16, 0xF7 ; 247
+ 3ebc: 1f 4f sbci r17, 0xFF ; 255
+ 3ebe: ce 01 movw r24, r28
+ 3ec0: 01 96 adiw r24, 0x01 ; 1
+ 3ec2: b8 01 movw r22, r16
+ 3ec4: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3ec8: 91 e1 ldi r25, 0x11 ; 17
+ 3eca: e9 2e mov r14, r25
+ 3ecc: f1 2c mov r15, r1
+ 3ece: ec 0e add r14, r28
+ 3ed0: fd 1e adc r15, r29
+ 3ed2: ce 01 movw r24, r28
+ 3ed4: 05 96 adiw r24, 0x05 ; 5
+ 3ed6: b7 01 movw r22, r14
+ 3ed8: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3edc: 8a 89 ldd r24, Y+18 ; 0x12
+ 3ede: 91 e0 ldi r25, 0x01 ; 1
+ 3ee0: 89 27 eor r24, r25
+ 3ee2: 8a 8b std Y+18, r24 ; 0x12
+ 3ee4: c8 01 movw r24, r16
+ 3ee6: b7 01 movw r22, r14
+ 3ee8: ae 01 movw r20, r28
+ 3eea: 47 5e subi r20, 0xE7 ; 231
+ 3eec: 5f 4f sbci r21, 0xFF ; 255
+ 3eee: 0e 94 d7 1d call 0x3bae ; 0x3bae <_fpadd_parts>
+ 3ef2: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 3ef6: a0 96 adiw r28, 0x20 ; 32
+ 3ef8: e6 e0 ldi r30, 0x06 ; 6
+ 3efa: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+00003efe <__mulsf3>:
+ 3efe: a0 e2 ldi r26, 0x20 ; 32
+ 3f00: b0 e0 ldi r27, 0x00 ; 0
+ 3f02: e5 e8 ldi r30, 0x85 ; 133
+ 3f04: ff e1 ldi r31, 0x1F ; 31
+ 3f06: 0c 94 1e 25 jmp 0x4a3c ; 0x4a3c <__prologue_saves__>
+ 3f0a: 69 83 std Y+1, r22 ; 0x01
+ 3f0c: 7a 83 std Y+2, r23 ; 0x02
+ 3f0e: 8b 83 std Y+3, r24 ; 0x03
+ 3f10: 9c 83 std Y+4, r25 ; 0x04
+ 3f12: 2d 83 std Y+5, r18 ; 0x05
+ 3f14: 3e 83 std Y+6, r19 ; 0x06
+ 3f16: 4f 83 std Y+7, r20 ; 0x07
+ 3f18: 58 87 std Y+8, r21 ; 0x08
+ 3f1a: ce 01 movw r24, r28
+ 3f1c: 01 96 adiw r24, 0x01 ; 1
+ 3f1e: be 01 movw r22, r28
+ 3f20: 67 5f subi r22, 0xF7 ; 247
+ 3f22: 7f 4f sbci r23, 0xFF ; 255
+ 3f24: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3f28: ce 01 movw r24, r28
+ 3f2a: 05 96 adiw r24, 0x05 ; 5
+ 3f2c: be 01 movw r22, r28
+ 3f2e: 6f 5e subi r22, 0xEF ; 239
+ 3f30: 7f 4f sbci r23, 0xFF ; 255
+ 3f32: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 3f36: 99 85 ldd r25, Y+9 ; 0x09
+ 3f38: 92 30 cpi r25, 0x02 ; 2
+ 3f3a: 78 f0 brcs .+30 ; 0x3f5a <__mulsf3+0x5c>
+ 3f3c: 89 89 ldd r24, Y+17 ; 0x11
+ 3f3e: 82 30 cpi r24, 0x02 ; 2
+ 3f40: c0 f0 brcs .+48 ; 0x3f72 <__mulsf3+0x74>
+ 3f42: 94 30 cpi r25, 0x04 ; 4
+ 3f44: 19 f4 brne .+6 ; 0x3f4c <__mulsf3+0x4e>
+ 3f46: 82 30 cpi r24, 0x02 ; 2
+ 3f48: 41 f4 brne .+16 ; 0x3f5a <__mulsf3+0x5c>
+ 3f4a: cb c0 rjmp .+406 ; 0x40e2 <__mulsf3+0x1e4>
+ 3f4c: 84 30 cpi r24, 0x04 ; 4
+ 3f4e: 19 f4 brne .+6 ; 0x3f56 <__mulsf3+0x58>
+ 3f50: 92 30 cpi r25, 0x02 ; 2
+ 3f52: 79 f4 brne .+30 ; 0x3f72 <__mulsf3+0x74>
+ 3f54: c6 c0 rjmp .+396 ; 0x40e2 <__mulsf3+0x1e4>
+ 3f56: 92 30 cpi r25, 0x02 ; 2
+ 3f58: 51 f4 brne .+20 ; 0x3f6e <__mulsf3+0x70>
+ 3f5a: 81 e0 ldi r24, 0x01 ; 1
+ 3f5c: 2a 85 ldd r18, Y+10 ; 0x0a
+ 3f5e: 9a 89 ldd r25, Y+18 ; 0x12
+ 3f60: 29 17 cp r18, r25
+ 3f62: 09 f4 brne .+2 ; 0x3f66 <__mulsf3+0x68>
+ 3f64: 80 e0 ldi r24, 0x00 ; 0
+ 3f66: 8a 87 std Y+10, r24 ; 0x0a
+ 3f68: ce 01 movw r24, r28
+ 3f6a: 09 96 adiw r24, 0x09 ; 9
+ 3f6c: bc c0 rjmp .+376 ; 0x40e6 <__mulsf3+0x1e8>
+ 3f6e: 82 30 cpi r24, 0x02 ; 2
+ 3f70: 51 f4 brne .+20 ; 0x3f86 <__mulsf3+0x88>
+ 3f72: 81 e0 ldi r24, 0x01 ; 1
+ 3f74: 2a 85 ldd r18, Y+10 ; 0x0a
+ 3f76: 9a 89 ldd r25, Y+18 ; 0x12
+ 3f78: 29 17 cp r18, r25
+ 3f7a: 09 f4 brne .+2 ; 0x3f7e <__mulsf3+0x80>
+ 3f7c: 80 e0 ldi r24, 0x00 ; 0
+ 3f7e: 8a 8b std Y+18, r24 ; 0x12
+ 3f80: ce 01 movw r24, r28
+ 3f82: 41 96 adiw r24, 0x11 ; 17
+ 3f84: b0 c0 rjmp .+352 ; 0x40e6 <__mulsf3+0x1e8>
+ 3f86: 6d 84 ldd r6, Y+13 ; 0x0d
+ 3f88: 7e 84 ldd r7, Y+14 ; 0x0e
+ 3f8a: 8f 84 ldd r8, Y+15 ; 0x0f
+ 3f8c: 98 88 ldd r9, Y+16 ; 0x10
+ 3f8e: ed 88 ldd r14, Y+21 ; 0x15
+ 3f90: fe 88 ldd r15, Y+22 ; 0x16
+ 3f92: 0f 89 ldd r16, Y+23 ; 0x17
+ 3f94: 18 8d ldd r17, Y+24 ; 0x18
+ 3f96: e0 e2 ldi r30, 0x20 ; 32
+ 3f98: f0 e0 ldi r31, 0x00 ; 0
+ 3f9a: 80 e0 ldi r24, 0x00 ; 0
+ 3f9c: 90 e0 ldi r25, 0x00 ; 0
+ 3f9e: dc 01 movw r26, r24
+ 3fa0: aa 24 eor r10, r10
+ 3fa2: bb 24 eor r11, r11
+ 3fa4: 65 01 movw r12, r10
+ 3fa6: 20 e0 ldi r18, 0x00 ; 0
+ 3fa8: 30 e0 ldi r19, 0x00 ; 0
+ 3faa: a9 01 movw r20, r18
+ 3fac: b3 01 movw r22, r6
+ 3fae: 61 70 andi r22, 0x01 ; 1
+ 3fb0: 70 70 andi r23, 0x00 ; 0
+ 3fb2: 61 15 cp r22, r1
+ 3fb4: 71 05 cpc r23, r1
+ 3fb6: d1 f0 breq .+52 ; 0x3fec <__mulsf3+0xee>
+ 3fb8: 2e 0d add r18, r14
+ 3fba: 3f 1d adc r19, r15
+ 3fbc: 40 1f adc r20, r16
+ 3fbe: 51 1f adc r21, r17
+ 3fc0: 15 01 movw r2, r10
+ 3fc2: 26 01 movw r4, r12
+ 3fc4: 28 0e add r2, r24
+ 3fc6: 39 1e adc r3, r25
+ 3fc8: 4a 1e adc r4, r26
+ 3fca: 5b 1e adc r5, r27
+ 3fcc: 81 e0 ldi r24, 0x01 ; 1
+ 3fce: 90 e0 ldi r25, 0x00 ; 0
+ 3fd0: a0 e0 ldi r26, 0x00 ; 0
+ 3fd2: b0 e0 ldi r27, 0x00 ; 0
+ 3fd4: 2e 15 cp r18, r14
+ 3fd6: 3f 05 cpc r19, r15
+ 3fd8: 40 07 cpc r20, r16
+ 3fda: 51 07 cpc r21, r17
+ 3fdc: 18 f0 brcs .+6 ; 0x3fe4 <__mulsf3+0xe6>
+ 3fde: 80 e0 ldi r24, 0x00 ; 0
+ 3fe0: 90 e0 ldi r25, 0x00 ; 0
+ 3fe2: dc 01 movw r26, r24
+ 3fe4: 82 0d add r24, r2
+ 3fe6: 93 1d adc r25, r3
+ 3fe8: a4 1d adc r26, r4
+ 3fea: b5 1d adc r27, r5
+ 3fec: aa 0c add r10, r10
+ 3fee: bb 1c adc r11, r11
+ 3ff0: cc 1c adc r12, r12
+ 3ff2: dd 1c adc r13, r13
+ 3ff4: 17 ff sbrs r17, 7
+ 3ff6: 09 c0 rjmp .+18 ; 0x400a <__mulsf3+0x10c>
+ 3ff8: 61 e0 ldi r22, 0x01 ; 1
+ 3ffa: 26 2e mov r2, r22
+ 3ffc: 31 2c mov r3, r1
+ 3ffe: 41 2c mov r4, r1
+ 4000: 51 2c mov r5, r1
+ 4002: a2 28 or r10, r2
+ 4004: b3 28 or r11, r3
+ 4006: c4 28 or r12, r4
+ 4008: d5 28 or r13, r5
+ 400a: 31 97 sbiw r30, 0x01 ; 1
+ 400c: 49 f0 breq .+18 ; 0x4020 <__mulsf3+0x122>
+ 400e: ee 0c add r14, r14
+ 4010: ff 1c adc r15, r15
+ 4012: 00 1f adc r16, r16
+ 4014: 11 1f adc r17, r17
+ 4016: 96 94 lsr r9
+ 4018: 87 94 ror r8
+ 401a: 77 94 ror r7
+ 401c: 67 94 ror r6
+ 401e: c6 cf rjmp .-116 ; 0x3fac <__mulsf3+0xae>
+ 4020: 6b 89 ldd r22, Y+19 ; 0x13
+ 4022: 7c 89 ldd r23, Y+20 ; 0x14
+ 4024: eb 85 ldd r30, Y+11 ; 0x0b
+ 4026: fc 85 ldd r31, Y+12 ; 0x0c
+ 4028: 6e 0f add r22, r30
+ 402a: 7f 1f adc r23, r31
+ 402c: 6e 5f subi r22, 0xFE ; 254
+ 402e: 7f 4f sbci r23, 0xFF ; 255
+ 4030: 7c 8f std Y+28, r23 ; 0x1c
+ 4032: 6b 8f std Y+27, r22 ; 0x1b
+ 4034: 61 e0 ldi r22, 0x01 ; 1
+ 4036: ea 85 ldd r30, Y+10 ; 0x0a
+ 4038: 7a 89 ldd r23, Y+18 ; 0x12
+ 403a: e7 17 cp r30, r23
+ 403c: 09 f4 brne .+2 ; 0x4040 <__mulsf3+0x142>
+ 403e: 60 e0 ldi r22, 0x00 ; 0
+ 4040: 6a 8f std Y+26, r22 ; 0x1a
+ 4042: 6b 8d ldd r22, Y+27 ; 0x1b
+ 4044: 7c 8d ldd r23, Y+28 ; 0x1c
+ 4046: 10 c0 rjmp .+32 ; 0x4068 <__mulsf3+0x16a>
+ 4048: fc 01 movw r30, r24
+ 404a: e1 70 andi r30, 0x01 ; 1
+ 404c: f0 70 andi r31, 0x00 ; 0
+ 404e: 30 97 sbiw r30, 0x00 ; 0
+ 4050: 29 f0 breq .+10 ; 0x405c <__mulsf3+0x15e>
+ 4052: 56 95 lsr r21
+ 4054: 47 95 ror r20
+ 4056: 37 95 ror r19
+ 4058: 27 95 ror r18
+ 405a: 50 68 ori r21, 0x80 ; 128
+ 405c: b6 95 lsr r27
+ 405e: a7 95 ror r26
+ 4060: 97 95 ror r25
+ 4062: 87 95 ror r24
+ 4064: 6f 5f subi r22, 0xFF ; 255
+ 4066: 7f 4f sbci r23, 0xFF ; 255
+ 4068: b7 fd sbrc r27, 7
+ 406a: ee cf rjmp .-36 ; 0x4048 <__mulsf3+0x14a>
+ 406c: 0c c0 rjmp .+24 ; 0x4086 <__mulsf3+0x188>
+ 406e: 88 0f add r24, r24
+ 4070: 99 1f adc r25, r25
+ 4072: aa 1f adc r26, r26
+ 4074: bb 1f adc r27, r27
+ 4076: 57 fd sbrc r21, 7
+ 4078: 81 60 ori r24, 0x01 ; 1
+ 407a: 22 0f add r18, r18
+ 407c: 33 1f adc r19, r19
+ 407e: 44 1f adc r20, r20
+ 4080: 55 1f adc r21, r21
+ 4082: 61 50 subi r22, 0x01 ; 1
+ 4084: 70 40 sbci r23, 0x00 ; 0
+ 4086: 80 30 cpi r24, 0x00 ; 0
+ 4088: e0 e0 ldi r30, 0x00 ; 0
+ 408a: 9e 07 cpc r25, r30
+ 408c: e0 e0 ldi r30, 0x00 ; 0
+ 408e: ae 07 cpc r26, r30
+ 4090: e0 e4 ldi r30, 0x40 ; 64
+ 4092: be 07 cpc r27, r30
+ 4094: 60 f3 brcs .-40 ; 0x406e <__mulsf3+0x170>
+ 4096: 6b 8f std Y+27, r22 ; 0x1b
+ 4098: 7c 8f std Y+28, r23 ; 0x1c
+ 409a: 6f e7 ldi r22, 0x7F ; 127
+ 409c: e6 2e mov r14, r22
+ 409e: f1 2c mov r15, r1
+ 40a0: 01 2d mov r16, r1
+ 40a2: 11 2d mov r17, r1
+ 40a4: e8 22 and r14, r24
+ 40a6: f9 22 and r15, r25
+ 40a8: 0a 23 and r16, r26
+ 40aa: 1b 23 and r17, r27
+ 40ac: 60 e4 ldi r22, 0x40 ; 64
+ 40ae: e6 16 cp r14, r22
+ 40b0: f1 04 cpc r15, r1
+ 40b2: 01 05 cpc r16, r1
+ 40b4: 11 05 cpc r17, r1
+ 40b6: 61 f4 brne .+24 ; 0x40d0 <__mulsf3+0x1d2>
+ 40b8: 87 fd sbrc r24, 7
+ 40ba: 0a c0 rjmp .+20 ; 0x40d0 <__mulsf3+0x1d2>
+ 40bc: 21 15 cp r18, r1
+ 40be: 31 05 cpc r19, r1
+ 40c0: 41 05 cpc r20, r1
+ 40c2: 51 05 cpc r21, r1
+ 40c4: 29 f0 breq .+10 ; 0x40d0 <__mulsf3+0x1d2>
+ 40c6: 80 5c subi r24, 0xC0 ; 192
+ 40c8: 9f 4f sbci r25, 0xFF ; 255
+ 40ca: af 4f sbci r26, 0xFF ; 255
+ 40cc: bf 4f sbci r27, 0xFF ; 255
+ 40ce: 80 78 andi r24, 0x80 ; 128
+ 40d0: 8d 8f std Y+29, r24 ; 0x1d
+ 40d2: 9e 8f std Y+30, r25 ; 0x1e
+ 40d4: af 8f std Y+31, r26 ; 0x1f
+ 40d6: b8 a3 std Y+32, r27 ; 0x20
+ 40d8: 83 e0 ldi r24, 0x03 ; 3
+ 40da: 89 8f std Y+25, r24 ; 0x19
+ 40dc: ce 01 movw r24, r28
+ 40de: 49 96 adiw r24, 0x19 ; 25
+ 40e0: 02 c0 rjmp .+4 ; 0x40e6 <__mulsf3+0x1e8>
+ 40e2: 8e ec ldi r24, 0xCE ; 206
+ 40e4: 91 e0 ldi r25, 0x01 ; 1
+ 40e6: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 40ea: a0 96 adiw r28, 0x20 ; 32
+ 40ec: e2 e1 ldi r30, 0x12 ; 18
+ 40ee: 0c 94 3a 25 jmp 0x4a74 ; 0x4a74 <__epilogue_restores__>
+
+000040f2 <__divsf3>:
+ 40f2: a8 e1 ldi r26, 0x18 ; 24
+ 40f4: b0 e0 ldi r27, 0x00 ; 0
+ 40f6: ef e7 ldi r30, 0x7F ; 127
+ 40f8: f0 e2 ldi r31, 0x20 ; 32
+ 40fa: 0c 94 26 25 jmp 0x4a4c ; 0x4a4c <__prologue_saves__+0x10>
+ 40fe: 69 83 std Y+1, r22 ; 0x01
+ 4100: 7a 83 std Y+2, r23 ; 0x02
+ 4102: 8b 83 std Y+3, r24 ; 0x03
+ 4104: 9c 83 std Y+4, r25 ; 0x04
+ 4106: 2d 83 std Y+5, r18 ; 0x05
+ 4108: 3e 83 std Y+6, r19 ; 0x06
+ 410a: 4f 83 std Y+7, r20 ; 0x07
+ 410c: 58 87 std Y+8, r21 ; 0x08
+ 410e: 8e 01 movw r16, r28
+ 4110: 07 5f subi r16, 0xF7 ; 247
+ 4112: 1f 4f sbci r17, 0xFF ; 255
+ 4114: ce 01 movw r24, r28
+ 4116: 01 96 adiw r24, 0x01 ; 1
+ 4118: b8 01 movw r22, r16
+ 411a: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 411e: 81 e1 ldi r24, 0x11 ; 17
+ 4120: e8 2e mov r14, r24
+ 4122: f1 2c mov r15, r1
+ 4124: ec 0e add r14, r28
+ 4126: fd 1e adc r15, r29
+ 4128: ce 01 movw r24, r28
+ 412a: 05 96 adiw r24, 0x05 ; 5
+ 412c: b7 01 movw r22, r14
+ 412e: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 4132: 99 85 ldd r25, Y+9 ; 0x09
+ 4134: 92 30 cpi r25, 0x02 ; 2
+ 4136: 08 f4 brcc .+2 ; 0x413a <__divsf3+0x48>
+ 4138: 83 c0 rjmp .+262 ; 0x4240 <__divsf3+0x14e>
+ 413a: 89 89 ldd r24, Y+17 ; 0x11
+ 413c: 82 30 cpi r24, 0x02 ; 2
+ 413e: 08 f4 brcc .+2 ; 0x4142 <__divsf3+0x50>
+ 4140: 7b c0 rjmp .+246 ; 0x4238 <__divsf3+0x146>
+ 4142: 2a 85 ldd r18, Y+10 ; 0x0a
+ 4144: 3a 89 ldd r19, Y+18 ; 0x12
+ 4146: 23 27 eor r18, r19
+ 4148: 2a 87 std Y+10, r18 ; 0x0a
+ 414a: 94 30 cpi r25, 0x04 ; 4
+ 414c: 11 f0 breq .+4 ; 0x4152 <__divsf3+0x60>
+ 414e: 92 30 cpi r25, 0x02 ; 2
+ 4150: 21 f4 brne .+8 ; 0x415a <__divsf3+0x68>
+ 4152: 98 17 cp r25, r24
+ 4154: 09 f0 breq .+2 ; 0x4158 <__divsf3+0x66>
+ 4156: 6c c0 rjmp .+216 ; 0x4230 <__divsf3+0x13e>
+ 4158: 71 c0 rjmp .+226 ; 0x423c <__divsf3+0x14a>
+ 415a: 84 30 cpi r24, 0x04 ; 4
+ 415c: 39 f4 brne .+14 ; 0x416c <__divsf3+0x7a>
+ 415e: 1d 86 std Y+13, r1 ; 0x0d
+ 4160: 1e 86 std Y+14, r1 ; 0x0e
+ 4162: 1f 86 std Y+15, r1 ; 0x0f
+ 4164: 18 8a std Y+16, r1 ; 0x10
+ 4166: 1c 86 std Y+12, r1 ; 0x0c
+ 4168: 1b 86 std Y+11, r1 ; 0x0b
+ 416a: 6a c0 rjmp .+212 ; 0x4240 <__divsf3+0x14e>
+ 416c: 82 30 cpi r24, 0x02 ; 2
+ 416e: 19 f4 brne .+6 ; 0x4176 <__divsf3+0x84>
+ 4170: 84 e0 ldi r24, 0x04 ; 4
+ 4172: 89 87 std Y+9, r24 ; 0x09
+ 4174: 65 c0 rjmp .+202 ; 0x4240 <__divsf3+0x14e>
+ 4176: 8b 85 ldd r24, Y+11 ; 0x0b
+ 4178: 9c 85 ldd r25, Y+12 ; 0x0c
+ 417a: 2b 89 ldd r18, Y+19 ; 0x13
+ 417c: 3c 89 ldd r19, Y+20 ; 0x14
+ 417e: 82 1b sub r24, r18
+ 4180: 93 0b sbc r25, r19
+ 4182: 9c 87 std Y+12, r25 ; 0x0c
+ 4184: 8b 87 std Y+11, r24 ; 0x0b
+ 4186: 2d 85 ldd r18, Y+13 ; 0x0d
+ 4188: 3e 85 ldd r19, Y+14 ; 0x0e
+ 418a: 4f 85 ldd r20, Y+15 ; 0x0f
+ 418c: 58 89 ldd r21, Y+16 ; 0x10
+ 418e: ed 88 ldd r14, Y+21 ; 0x15
+ 4190: fe 88 ldd r15, Y+22 ; 0x16
+ 4192: 0f 89 ldd r16, Y+23 ; 0x17
+ 4194: 18 8d ldd r17, Y+24 ; 0x18
+ 4196: 2e 15 cp r18, r14
+ 4198: 3f 05 cpc r19, r15
+ 419a: 40 07 cpc r20, r16
+ 419c: 51 07 cpc r21, r17
+ 419e: 38 f4 brcc .+14 ; 0x41ae <__divsf3+0xbc>
+ 41a0: 22 0f add r18, r18
+ 41a2: 33 1f adc r19, r19
+ 41a4: 44 1f adc r20, r20
+ 41a6: 55 1f adc r21, r21
+ 41a8: 01 97 sbiw r24, 0x01 ; 1
+ 41aa: 9c 87 std Y+12, r25 ; 0x0c
+ 41ac: 8b 87 std Y+11, r24 ; 0x0b
+ 41ae: 6f e1 ldi r22, 0x1F ; 31
+ 41b0: 70 e0 ldi r23, 0x00 ; 0
+ 41b2: a1 2c mov r10, r1
+ 41b4: b1 2c mov r11, r1
+ 41b6: c1 2c mov r12, r1
+ 41b8: a0 e4 ldi r26, 0x40 ; 64
+ 41ba: da 2e mov r13, r26
+ 41bc: 80 e0 ldi r24, 0x00 ; 0
+ 41be: 90 e0 ldi r25, 0x00 ; 0
+ 41c0: dc 01 movw r26, r24
+ 41c2: 2e 15 cp r18, r14
+ 41c4: 3f 05 cpc r19, r15
+ 41c6: 40 07 cpc r20, r16
+ 41c8: 51 07 cpc r21, r17
+ 41ca: 40 f0 brcs .+16 ; 0x41dc <__divsf3+0xea>
+ 41cc: 8a 29 or r24, r10
+ 41ce: 9b 29 or r25, r11
+ 41d0: ac 29 or r26, r12
+ 41d2: bd 29 or r27, r13
+ 41d4: 2e 19 sub r18, r14
+ 41d6: 3f 09 sbc r19, r15
+ 41d8: 40 0b sbc r20, r16
+ 41da: 51 0b sbc r21, r17
+ 41dc: d6 94 lsr r13
+ 41de: c7 94 ror r12
+ 41e0: b7 94 ror r11
+ 41e2: a7 94 ror r10
+ 41e4: 22 0f add r18, r18
+ 41e6: 33 1f adc r19, r19
+ 41e8: 44 1f adc r20, r20
+ 41ea: 55 1f adc r21, r21
+ 41ec: 61 50 subi r22, 0x01 ; 1
+ 41ee: 70 40 sbci r23, 0x00 ; 0
+ 41f0: 41 f7 brne .-48 ; 0x41c2 <__divsf3+0xd0>
+ 41f2: 6f e7 ldi r22, 0x7F ; 127
+ 41f4: e6 2e mov r14, r22
+ 41f6: f1 2c mov r15, r1
+ 41f8: 01 2d mov r16, r1
+ 41fa: 11 2d mov r17, r1
+ 41fc: e8 22 and r14, r24
+ 41fe: f9 22 and r15, r25
+ 4200: 0a 23 and r16, r26
+ 4202: 1b 23 and r17, r27
+ 4204: 60 e4 ldi r22, 0x40 ; 64
+ 4206: e6 16 cp r14, r22
+ 4208: f1 04 cpc r15, r1
+ 420a: 01 05 cpc r16, r1
+ 420c: 11 05 cpc r17, r1
+ 420e: 61 f4 brne .+24 ; 0x4228 <__divsf3+0x136>
+ 4210: 87 fd sbrc r24, 7
+ 4212: 0a c0 rjmp .+20 ; 0x4228 <__divsf3+0x136>
+ 4214: 21 15 cp r18, r1
+ 4216: 31 05 cpc r19, r1
+ 4218: 41 05 cpc r20, r1
+ 421a: 51 05 cpc r21, r1
+ 421c: 29 f0 breq .+10 ; 0x4228 <__divsf3+0x136>
+ 421e: 80 5c subi r24, 0xC0 ; 192
+ 4220: 9f 4f sbci r25, 0xFF ; 255
+ 4222: af 4f sbci r26, 0xFF ; 255
+ 4224: bf 4f sbci r27, 0xFF ; 255
+ 4226: 80 78 andi r24, 0x80 ; 128
+ 4228: 8d 87 std Y+13, r24 ; 0x0d
+ 422a: 9e 87 std Y+14, r25 ; 0x0e
+ 422c: af 87 std Y+15, r26 ; 0x0f
+ 422e: b8 8b std Y+16, r27 ; 0x10
+ 4230: 8e 01 movw r16, r28
+ 4232: 07 5f subi r16, 0xF7 ; 247
+ 4234: 1f 4f sbci r17, 0xFF ; 255
+ 4236: 04 c0 rjmp .+8 ; 0x4240 <__divsf3+0x14e>
+ 4238: 87 01 movw r16, r14
+ 423a: 02 c0 rjmp .+4 ; 0x4240 <__divsf3+0x14e>
+ 423c: 0e ec ldi r16, 0xCE ; 206
+ 423e: 11 e0 ldi r17, 0x01 ; 1
+ 4240: c8 01 movw r24, r16
+ 4242: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 4246: 68 96 adiw r28, 0x18 ; 24
+ 4248: ea e0 ldi r30, 0x0A ; 10
+ 424a: 0c 94 42 25 jmp 0x4a84 ; 0x4a84 <__epilogue_restores__+0x10>
+
+0000424e <__gesf2>:
+ 424e: a8 e1 ldi r26, 0x18 ; 24
+ 4250: b0 e0 ldi r27, 0x00 ; 0
+ 4252: ed e2 ldi r30, 0x2D ; 45
+ 4254: f1 e2 ldi r31, 0x21 ; 33
+ 4256: 0c 94 2a 25 jmp 0x4a54 ; 0x4a54 <__prologue_saves__+0x18>
+ 425a: 69 83 std Y+1, r22 ; 0x01
+ 425c: 7a 83 std Y+2, r23 ; 0x02
+ 425e: 8b 83 std Y+3, r24 ; 0x03
+ 4260: 9c 83 std Y+4, r25 ; 0x04
+ 4262: 2d 83 std Y+5, r18 ; 0x05
+ 4264: 3e 83 std Y+6, r19 ; 0x06
+ 4266: 4f 83 std Y+7, r20 ; 0x07
+ 4268: 58 87 std Y+8, r21 ; 0x08
+ 426a: 8e 01 movw r16, r28
+ 426c: 07 5f subi r16, 0xF7 ; 247
+ 426e: 1f 4f sbci r17, 0xFF ; 255
+ 4270: ce 01 movw r24, r28
+ 4272: 01 96 adiw r24, 0x01 ; 1
+ 4274: b8 01 movw r22, r16
+ 4276: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 427a: 81 e1 ldi r24, 0x11 ; 17
+ 427c: e8 2e mov r14, r24
+ 427e: f1 2c mov r15, r1
+ 4280: ec 0e add r14, r28
+ 4282: fd 1e adc r15, r29
+ 4284: ce 01 movw r24, r28
+ 4286: 05 96 adiw r24, 0x05 ; 5
+ 4288: b7 01 movw r22, r14
+ 428a: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 428e: 89 85 ldd r24, Y+9 ; 0x09
+ 4290: 82 30 cpi r24, 0x02 ; 2
+ 4292: 40 f0 brcs .+16 ; 0x42a4 <__gesf2+0x56>
+ 4294: 89 89 ldd r24, Y+17 ; 0x11
+ 4296: 82 30 cpi r24, 0x02 ; 2
+ 4298: 28 f0 brcs .+10 ; 0x42a4 <__gesf2+0x56>
+ 429a: c8 01 movw r24, r16
+ 429c: b7 01 movw r22, r14
+ 429e: 0e 94 42 24 call 0x4884 ; 0x4884 <__fpcmp_parts_f>
+ 42a2: 01 c0 rjmp .+2 ; 0x42a6 <__gesf2+0x58>
+ 42a4: 8f ef ldi r24, 0xFF ; 255
+ 42a6: 68 96 adiw r28, 0x18 ; 24
+ 42a8: e6 e0 ldi r30, 0x06 ; 6
+ 42aa: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+000042ae <__ltsf2>:
+ 42ae: a8 e1 ldi r26, 0x18 ; 24
+ 42b0: b0 e0 ldi r27, 0x00 ; 0
+ 42b2: ed e5 ldi r30, 0x5D ; 93
+ 42b4: f1 e2 ldi r31, 0x21 ; 33
+ 42b6: 0c 94 2a 25 jmp 0x4a54 ; 0x4a54 <__prologue_saves__+0x18>
+ 42ba: 69 83 std Y+1, r22 ; 0x01
+ 42bc: 7a 83 std Y+2, r23 ; 0x02
+ 42be: 8b 83 std Y+3, r24 ; 0x03
+ 42c0: 9c 83 std Y+4, r25 ; 0x04
+ 42c2: 2d 83 std Y+5, r18 ; 0x05
+ 42c4: 3e 83 std Y+6, r19 ; 0x06
+ 42c6: 4f 83 std Y+7, r20 ; 0x07
+ 42c8: 58 87 std Y+8, r21 ; 0x08
+ 42ca: 8e 01 movw r16, r28
+ 42cc: 07 5f subi r16, 0xF7 ; 247
+ 42ce: 1f 4f sbci r17, 0xFF ; 255
+ 42d0: ce 01 movw r24, r28
+ 42d2: 01 96 adiw r24, 0x01 ; 1
+ 42d4: b8 01 movw r22, r16
+ 42d6: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 42da: 81 e1 ldi r24, 0x11 ; 17
+ 42dc: e8 2e mov r14, r24
+ 42de: f1 2c mov r15, r1
+ 42e0: ec 0e add r14, r28
+ 42e2: fd 1e adc r15, r29
+ 42e4: ce 01 movw r24, r28
+ 42e6: 05 96 adiw r24, 0x05 ; 5
+ 42e8: b7 01 movw r22, r14
+ 42ea: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 42ee: 89 85 ldd r24, Y+9 ; 0x09
+ 42f0: 82 30 cpi r24, 0x02 ; 2
+ 42f2: 40 f0 brcs .+16 ; 0x4304 <__ltsf2+0x56>
+ 42f4: 89 89 ldd r24, Y+17 ; 0x11
+ 42f6: 82 30 cpi r24, 0x02 ; 2
+ 42f8: 28 f0 brcs .+10 ; 0x4304 <__ltsf2+0x56>
+ 42fa: c8 01 movw r24, r16
+ 42fc: b7 01 movw r22, r14
+ 42fe: 0e 94 42 24 call 0x4884 ; 0x4884 <__fpcmp_parts_f>
+ 4302: 01 c0 rjmp .+2 ; 0x4306 <__ltsf2+0x58>
+ 4304: 81 e0 ldi r24, 0x01 ; 1
+ 4306: 68 96 adiw r28, 0x18 ; 24
+ 4308: e6 e0 ldi r30, 0x06 ; 6
+ 430a: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+0000430e <__floatsisf>:
+ 430e: a8 e0 ldi r26, 0x08 ; 8
+ 4310: b0 e0 ldi r27, 0x00 ; 0
+ 4312: ed e8 ldi r30, 0x8D ; 141
+ 4314: f1 e2 ldi r31, 0x21 ; 33
+ 4316: 0c 94 2a 25 jmp 0x4a54 ; 0x4a54 <__prologue_saves__+0x18>
+ 431a: 7b 01 movw r14, r22
+ 431c: 8c 01 movw r16, r24
+ 431e: 83 e0 ldi r24, 0x03 ; 3
+ 4320: 89 83 std Y+1, r24 ; 0x01
+ 4322: d8 01 movw r26, r16
+ 4324: c7 01 movw r24, r14
+ 4326: 88 27 eor r24, r24
+ 4328: b7 fd sbrc r27, 7
+ 432a: 83 95 inc r24
+ 432c: 99 27 eor r25, r25
+ 432e: aa 27 eor r26, r26
+ 4330: bb 27 eor r27, r27
+ 4332: 28 2f mov r18, r24
+ 4334: 8a 83 std Y+2, r24 ; 0x02
+ 4336: e1 14 cp r14, r1
+ 4338: f1 04 cpc r15, r1
+ 433a: 01 05 cpc r16, r1
+ 433c: 11 05 cpc r17, r1
+ 433e: 19 f4 brne .+6 ; 0x4346 <__floatsisf+0x38>
+ 4340: 82 e0 ldi r24, 0x02 ; 2
+ 4342: 89 83 std Y+1, r24 ; 0x01
+ 4344: 37 c0 rjmp .+110 ; 0x43b4 <__floatsisf+0xa6>
+ 4346: 8e e1 ldi r24, 0x1E ; 30
+ 4348: 90 e0 ldi r25, 0x00 ; 0
+ 434a: 9c 83 std Y+4, r25 ; 0x04
+ 434c: 8b 83 std Y+3, r24 ; 0x03
+ 434e: 22 23 and r18, r18
+ 4350: 89 f0 breq .+34 ; 0x4374 <__floatsisf+0x66>
+ 4352: 80 e0 ldi r24, 0x00 ; 0
+ 4354: e8 16 cp r14, r24
+ 4356: 80 e0 ldi r24, 0x00 ; 0
+ 4358: f8 06 cpc r15, r24
+ 435a: 80 e0 ldi r24, 0x00 ; 0
+ 435c: 08 07 cpc r16, r24
+ 435e: 80 e8 ldi r24, 0x80 ; 128
+ 4360: 18 07 cpc r17, r24
+ 4362: 69 f1 breq .+90 ; 0x43be <__floatsisf+0xb0>
+ 4364: 10 95 com r17
+ 4366: 00 95 com r16
+ 4368: f0 94 com r15
+ 436a: e0 94 com r14
+ 436c: e1 1c adc r14, r1
+ 436e: f1 1c adc r15, r1
+ 4370: 01 1d adc r16, r1
+ 4372: 11 1d adc r17, r1
+ 4374: ed 82 std Y+5, r14 ; 0x05
+ 4376: fe 82 std Y+6, r15 ; 0x06
+ 4378: 0f 83 std Y+7, r16 ; 0x07
+ 437a: 18 87 std Y+8, r17 ; 0x08
+ 437c: c8 01 movw r24, r16
+ 437e: b7 01 movw r22, r14
+ 4380: 0e 94 b1 22 call 0x4562 ; 0x4562 <__clzsi2>
+ 4384: 9c 01 movw r18, r24
+ 4386: 21 50 subi r18, 0x01 ; 1
+ 4388: 30 40 sbci r19, 0x00 ; 0
+ 438a: 12 16 cp r1, r18
+ 438c: 13 06 cpc r1, r19
+ 438e: 94 f4 brge .+36 ; 0x43b4 <__floatsisf+0xa6>
+ 4390: 02 2e mov r0, r18
+ 4392: 04 c0 rjmp .+8 ; 0x439c <__floatsisf+0x8e>
+ 4394: ee 0c add r14, r14
+ 4396: ff 1c adc r15, r15
+ 4398: 00 1f adc r16, r16
+ 439a: 11 1f adc r17, r17
+ 439c: 0a 94 dec r0
+ 439e: d2 f7 brpl .-12 ; 0x4394 <__floatsisf+0x86>
+ 43a0: ed 82 std Y+5, r14 ; 0x05
+ 43a2: fe 82 std Y+6, r15 ; 0x06
+ 43a4: 0f 83 std Y+7, r16 ; 0x07
+ 43a6: 18 87 std Y+8, r17 ; 0x08
+ 43a8: 8e e1 ldi r24, 0x1E ; 30
+ 43aa: 90 e0 ldi r25, 0x00 ; 0
+ 43ac: 82 1b sub r24, r18
+ 43ae: 93 0b sbc r25, r19
+ 43b0: 9c 83 std Y+4, r25 ; 0x04
+ 43b2: 8b 83 std Y+3, r24 ; 0x03
+ 43b4: ce 01 movw r24, r28
+ 43b6: 01 96 adiw r24, 0x01 ; 1
+ 43b8: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 43bc: 04 c0 rjmp .+8 ; 0x43c6 <__floatsisf+0xb8>
+ 43be: 60 e0 ldi r22, 0x00 ; 0
+ 43c0: 70 e0 ldi r23, 0x00 ; 0
+ 43c2: 80 e0 ldi r24, 0x00 ; 0
+ 43c4: 9f ec ldi r25, 0xCF ; 207
+ 43c6: 28 96 adiw r28, 0x08 ; 8
+ 43c8: e6 e0 ldi r30, 0x06 ; 6
+ 43ca: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+000043ce <__fixsfsi>:
+ 43ce: ac e0 ldi r26, 0x0C ; 12
+ 43d0: b0 e0 ldi r27, 0x00 ; 0
+ 43d2: ed ee ldi r30, 0xED ; 237
+ 43d4: f1 e2 ldi r31, 0x21 ; 33
+ 43d6: 0c 94 2e 25 jmp 0x4a5c ; 0x4a5c <__prologue_saves__+0x20>
+ 43da: 69 83 std Y+1, r22 ; 0x01
+ 43dc: 7a 83 std Y+2, r23 ; 0x02
+ 43de: 8b 83 std Y+3, r24 ; 0x03
+ 43e0: 9c 83 std Y+4, r25 ; 0x04
+ 43e2: ce 01 movw r24, r28
+ 43e4: 01 96 adiw r24, 0x01 ; 1
+ 43e6: be 01 movw r22, r28
+ 43e8: 6b 5f subi r22, 0xFB ; 251
+ 43ea: 7f 4f sbci r23, 0xFF ; 255
+ 43ec: 0e 94 d9 23 call 0x47b2 ; 0x47b2 <__unpack_f>
+ 43f0: 8d 81 ldd r24, Y+5 ; 0x05
+ 43f2: 82 30 cpi r24, 0x02 ; 2
+ 43f4: 81 f1 breq .+96 ; 0x4456 <__fixsfsi+0x88>
+ 43f6: 82 30 cpi r24, 0x02 ; 2
+ 43f8: 70 f1 brcs .+92 ; 0x4456 <__fixsfsi+0x88>
+ 43fa: 84 30 cpi r24, 0x04 ; 4
+ 43fc: 21 f4 brne .+8 ; 0x4406 <__fixsfsi+0x38>
+ 43fe: 8e 81 ldd r24, Y+6 ; 0x06
+ 4400: 88 23 and r24, r24
+ 4402: 69 f1 breq .+90 ; 0x445e <__fixsfsi+0x90>
+ 4404: 0a c0 rjmp .+20 ; 0x441a <__fixsfsi+0x4c>
+ 4406: 2f 81 ldd r18, Y+7 ; 0x07
+ 4408: 38 85 ldd r19, Y+8 ; 0x08
+ 440a: 37 fd sbrc r19, 7
+ 440c: 24 c0 rjmp .+72 ; 0x4456 <__fixsfsi+0x88>
+ 440e: 6e 81 ldd r22, Y+6 ; 0x06
+ 4410: 2f 31 cpi r18, 0x1F ; 31
+ 4412: 31 05 cpc r19, r1
+ 4414: 3c f0 brlt .+14 ; 0x4424 <__fixsfsi+0x56>
+ 4416: 66 23 and r22, r22
+ 4418: 11 f1 breq .+68 ; 0x445e <__fixsfsi+0x90>
+ 441a: 20 e0 ldi r18, 0x00 ; 0
+ 441c: 30 e0 ldi r19, 0x00 ; 0
+ 441e: 40 e0 ldi r20, 0x00 ; 0
+ 4420: 50 e8 ldi r21, 0x80 ; 128
+ 4422: 21 c0 rjmp .+66 ; 0x4466 <__fixsfsi+0x98>
+ 4424: 8e e1 ldi r24, 0x1E ; 30
+ 4426: 90 e0 ldi r25, 0x00 ; 0
+ 4428: 82 1b sub r24, r18
+ 442a: 93 0b sbc r25, r19
+ 442c: 29 85 ldd r18, Y+9 ; 0x09
+ 442e: 3a 85 ldd r19, Y+10 ; 0x0a
+ 4430: 4b 85 ldd r20, Y+11 ; 0x0b
+ 4432: 5c 85 ldd r21, Y+12 ; 0x0c
+ 4434: 04 c0 rjmp .+8 ; 0x443e <__fixsfsi+0x70>
+ 4436: 56 95 lsr r21
+ 4438: 47 95 ror r20
+ 443a: 37 95 ror r19
+ 443c: 27 95 ror r18
+ 443e: 8a 95 dec r24
+ 4440: d2 f7 brpl .-12 ; 0x4436 <__fixsfsi+0x68>
+ 4442: 66 23 and r22, r22
+ 4444: 81 f0 breq .+32 ; 0x4466 <__fixsfsi+0x98>
+ 4446: 50 95 com r21
+ 4448: 40 95 com r20
+ 444a: 30 95 com r19
+ 444c: 21 95 neg r18
+ 444e: 3f 4f sbci r19, 0xFF ; 255
+ 4450: 4f 4f sbci r20, 0xFF ; 255
+ 4452: 5f 4f sbci r21, 0xFF ; 255
+ 4454: 08 c0 rjmp .+16 ; 0x4466 <__fixsfsi+0x98>
+ 4456: 20 e0 ldi r18, 0x00 ; 0
+ 4458: 30 e0 ldi r19, 0x00 ; 0
+ 445a: a9 01 movw r20, r18
+ 445c: 04 c0 rjmp .+8 ; 0x4466 <__fixsfsi+0x98>
+ 445e: 2f ef ldi r18, 0xFF ; 255
+ 4460: 3f ef ldi r19, 0xFF ; 255
+ 4462: 4f ef ldi r20, 0xFF ; 255
+ 4464: 5f e7 ldi r21, 0x7F ; 127
+ 4466: b9 01 movw r22, r18
+ 4468: ca 01 movw r24, r20
+ 446a: 2c 96 adiw r28, 0x0c ; 12
+ 446c: e2 e0 ldi r30, 0x02 ; 2
+ 446e: 0c 94 4a 25 jmp 0x4a94 ; 0x4a94 <__epilogue_restores__+0x20>
+
+00004472 <__floatunsisf>:
+ 4472: a8 e0 ldi r26, 0x08 ; 8
+ 4474: b0 e0 ldi r27, 0x00 ; 0
+ 4476: ef e3 ldi r30, 0x3F ; 63
+ 4478: f2 e2 ldi r31, 0x22 ; 34
+ 447a: 0c 94 28 25 jmp 0x4a50 ; 0x4a50 <__prologue_saves__+0x14>
+ 447e: 7b 01 movw r14, r22
+ 4480: 8c 01 movw r16, r24
+ 4482: 1a 82 std Y+2, r1 ; 0x02
+ 4484: 61 15 cp r22, r1
+ 4486: 71 05 cpc r23, r1
+ 4488: 81 05 cpc r24, r1
+ 448a: 91 05 cpc r25, r1
+ 448c: 19 f4 brne .+6 ; 0x4494 <__floatunsisf+0x22>
+ 448e: 82 e0 ldi r24, 0x02 ; 2
+ 4490: 89 83 std Y+1, r24 ; 0x01
+ 4492: 5f c0 rjmp .+190 ; 0x4552 <__floatunsisf+0xe0>
+ 4494: 83 e0 ldi r24, 0x03 ; 3
+ 4496: 89 83 std Y+1, r24 ; 0x01
+ 4498: 8e e1 ldi r24, 0x1E ; 30
+ 449a: c8 2e mov r12, r24
+ 449c: d1 2c mov r13, r1
+ 449e: dc 82 std Y+4, r13 ; 0x04
+ 44a0: cb 82 std Y+3, r12 ; 0x03
+ 44a2: ed 82 std Y+5, r14 ; 0x05
+ 44a4: fe 82 std Y+6, r15 ; 0x06
+ 44a6: 0f 83 std Y+7, r16 ; 0x07
+ 44a8: 18 87 std Y+8, r17 ; 0x08
+ 44aa: c8 01 movw r24, r16
+ 44ac: b7 01 movw r22, r14
+ 44ae: 0e 94 b1 22 call 0x4562 ; 0x4562 <__clzsi2>
+ 44b2: fc 01 movw r30, r24
+ 44b4: 31 97 sbiw r30, 0x01 ; 1
+ 44b6: f7 ff sbrs r31, 7
+ 44b8: 3a c0 rjmp .+116 ; 0x452e <__floatunsisf+0xbc>
+ 44ba: aa 27 eor r26, r26
+ 44bc: bb 27 eor r27, r27
+ 44be: ae 1b sub r26, r30
+ 44c0: bf 0b sbc r27, r31
+ 44c2: 21 e0 ldi r18, 0x01 ; 1
+ 44c4: 30 e0 ldi r19, 0x00 ; 0
+ 44c6: 40 e0 ldi r20, 0x00 ; 0
+ 44c8: 50 e0 ldi r21, 0x00 ; 0
+ 44ca: 0a 2e mov r0, r26
+ 44cc: 04 c0 rjmp .+8 ; 0x44d6 <__floatunsisf+0x64>
+ 44ce: 22 0f add r18, r18
+ 44d0: 33 1f adc r19, r19
+ 44d2: 44 1f adc r20, r20
+ 44d4: 55 1f adc r21, r21
+ 44d6: 0a 94 dec r0
+ 44d8: d2 f7 brpl .-12 ; 0x44ce <__floatunsisf+0x5c>
+ 44da: 21 50 subi r18, 0x01 ; 1
+ 44dc: 30 40 sbci r19, 0x00 ; 0
+ 44de: 40 40 sbci r20, 0x00 ; 0
+ 44e0: 50 40 sbci r21, 0x00 ; 0
+ 44e2: 2e 21 and r18, r14
+ 44e4: 3f 21 and r19, r15
+ 44e6: 40 23 and r20, r16
+ 44e8: 51 23 and r21, r17
+ 44ea: 61 e0 ldi r22, 0x01 ; 1
+ 44ec: 70 e0 ldi r23, 0x00 ; 0
+ 44ee: 80 e0 ldi r24, 0x00 ; 0
+ 44f0: 90 e0 ldi r25, 0x00 ; 0
+ 44f2: 21 15 cp r18, r1
+ 44f4: 31 05 cpc r19, r1
+ 44f6: 41 05 cpc r20, r1
+ 44f8: 51 05 cpc r21, r1
+ 44fa: 19 f4 brne .+6 ; 0x4502 <__floatunsisf+0x90>
+ 44fc: 60 e0 ldi r22, 0x00 ; 0
+ 44fe: 70 e0 ldi r23, 0x00 ; 0
+ 4500: cb 01 movw r24, r22
+ 4502: 04 c0 rjmp .+8 ; 0x450c <__floatunsisf+0x9a>
+ 4504: 16 95 lsr r17
+ 4506: 07 95 ror r16
+ 4508: f7 94 ror r15
+ 450a: e7 94 ror r14
+ 450c: aa 95 dec r26
+ 450e: d2 f7 brpl .-12 ; 0x4504 <__floatunsisf+0x92>
+ 4510: e6 2a or r14, r22
+ 4512: f7 2a or r15, r23
+ 4514: 08 2b or r16, r24
+ 4516: 19 2b or r17, r25
+ 4518: ed 82 std Y+5, r14 ; 0x05
+ 451a: fe 82 std Y+6, r15 ; 0x06
+ 451c: 0f 83 std Y+7, r16 ; 0x07
+ 451e: 18 87 std Y+8, r17 ; 0x08
+ 4520: 8e e1 ldi r24, 0x1E ; 30
+ 4522: 90 e0 ldi r25, 0x00 ; 0
+ 4524: 8e 1b sub r24, r30
+ 4526: 9f 0b sbc r25, r31
+ 4528: 9c 83 std Y+4, r25 ; 0x04
+ 452a: 8b 83 std Y+3, r24 ; 0x03
+ 452c: 12 c0 rjmp .+36 ; 0x4552 <__floatunsisf+0xe0>
+ 452e: 30 97 sbiw r30, 0x00 ; 0
+ 4530: 81 f0 breq .+32 ; 0x4552 <__floatunsisf+0xe0>
+ 4532: 0e 2e mov r0, r30
+ 4534: 04 c0 rjmp .+8 ; 0x453e <__floatunsisf+0xcc>
+ 4536: ee 0c add r14, r14
+ 4538: ff 1c adc r15, r15
+ 453a: 00 1f adc r16, r16
+ 453c: 11 1f adc r17, r17
+ 453e: 0a 94 dec r0
+ 4540: d2 f7 brpl .-12 ; 0x4536 <__floatunsisf+0xc4>
+ 4542: ed 82 std Y+5, r14 ; 0x05
+ 4544: fe 82 std Y+6, r15 ; 0x06
+ 4546: 0f 83 std Y+7, r16 ; 0x07
+ 4548: 18 87 std Y+8, r17 ; 0x08
+ 454a: ce 1a sub r12, r30
+ 454c: df 0a sbc r13, r31
+ 454e: dc 82 std Y+4, r13 ; 0x04
+ 4550: cb 82 std Y+3, r12 ; 0x03
+ 4552: ce 01 movw r24, r28
+ 4554: 01 96 adiw r24, 0x01 ; 1
+ 4556: 0e 94 0b 23 call 0x4616 ; 0x4616 <__pack_f>
+ 455a: 28 96 adiw r28, 0x08 ; 8
+ 455c: e8 e0 ldi r30, 0x08 ; 8
+ 455e: 0c 94 44 25 jmp 0x4a88 ; 0x4a88 <__epilogue_restores__+0x14>
+
+00004562 <__clzsi2>:
+ 4562: af 92 push r10
+ 4564: bf 92 push r11
+ 4566: cf 92 push r12
+ 4568: df 92 push r13
+ 456a: ef 92 push r14
+ 456c: ff 92 push r15
+ 456e: 0f 93 push r16
+ 4570: 1f 93 push r17
+ 4572: 7b 01 movw r14, r22
+ 4574: 8c 01 movw r16, r24
+ 4576: 80 e0 ldi r24, 0x00 ; 0
+ 4578: e8 16 cp r14, r24
+ 457a: 80 e0 ldi r24, 0x00 ; 0
+ 457c: f8 06 cpc r15, r24
+ 457e: 81 e0 ldi r24, 0x01 ; 1
+ 4580: 08 07 cpc r16, r24
+ 4582: 80 e0 ldi r24, 0x00 ; 0
+ 4584: 18 07 cpc r17, r24
+ 4586: 58 f4 brcc .+22 ; 0x459e <__clzsi2+0x3c>
+ 4588: ef ef ldi r30, 0xFF ; 255
+ 458a: ee 16 cp r14, r30
+ 458c: f1 04 cpc r15, r1
+ 458e: 01 05 cpc r16, r1
+ 4590: 11 05 cpc r17, r1
+ 4592: 09 f0 breq .+2 ; 0x4596 <__clzsi2+0x34>
+ 4594: 90 f4 brcc .+36 ; 0x45ba <__clzsi2+0x58>
+ 4596: 80 e0 ldi r24, 0x00 ; 0
+ 4598: 90 e0 ldi r25, 0x00 ; 0
+ 459a: dc 01 movw r26, r24
+ 459c: 17 c0 rjmp .+46 ; 0x45cc <__clzsi2+0x6a>
+ 459e: f0 e0 ldi r31, 0x00 ; 0
+ 45a0: ef 16 cp r14, r31
+ 45a2: f0 e0 ldi r31, 0x00 ; 0
+ 45a4: ff 06 cpc r15, r31
+ 45a6: f0 e0 ldi r31, 0x00 ; 0
+ 45a8: 0f 07 cpc r16, r31
+ 45aa: f1 e0 ldi r31, 0x01 ; 1
+ 45ac: 1f 07 cpc r17, r31
+ 45ae: 50 f4 brcc .+20 ; 0x45c4 <__clzsi2+0x62>
+ 45b0: 80 e1 ldi r24, 0x10 ; 16
+ 45b2: 90 e0 ldi r25, 0x00 ; 0
+ 45b4: a0 e0 ldi r26, 0x00 ; 0
+ 45b6: b0 e0 ldi r27, 0x00 ; 0
+ 45b8: 09 c0 rjmp .+18 ; 0x45cc <__clzsi2+0x6a>
+ 45ba: 88 e0 ldi r24, 0x08 ; 8
+ 45bc: 90 e0 ldi r25, 0x00 ; 0
+ 45be: a0 e0 ldi r26, 0x00 ; 0
+ 45c0: b0 e0 ldi r27, 0x00 ; 0
+ 45c2: 04 c0 rjmp .+8 ; 0x45cc <__clzsi2+0x6a>
+ 45c4: 88 e1 ldi r24, 0x18 ; 24
+ 45c6: 90 e0 ldi r25, 0x00 ; 0
+ 45c8: a0 e0 ldi r26, 0x00 ; 0
+ 45ca: b0 e0 ldi r27, 0x00 ; 0
+ 45cc: 20 e2 ldi r18, 0x20 ; 32
+ 45ce: 30 e0 ldi r19, 0x00 ; 0
+ 45d0: 40 e0 ldi r20, 0x00 ; 0
+ 45d2: 50 e0 ldi r21, 0x00 ; 0
+ 45d4: 28 1b sub r18, r24
+ 45d6: 39 0b sbc r19, r25
+ 45d8: 4a 0b sbc r20, r26
+ 45da: 5b 0b sbc r21, r27
+ 45dc: 57 01 movw r10, r14
+ 45de: 68 01 movw r12, r16
+ 45e0: 04 c0 rjmp .+8 ; 0x45ea <__clzsi2+0x88>
+ 45e2: d6 94 lsr r13
+ 45e4: c7 94 ror r12
+ 45e6: b7 94 ror r11
+ 45e8: a7 94 ror r10
+ 45ea: 8a 95 dec r24
+ 45ec: d2 f7 brpl .-12 ; 0x45e2 <__clzsi2+0x80>
+ 45ee: d6 01 movw r26, r12
+ 45f0: c5 01 movw r24, r10
+ 45f2: 8a 52 subi r24, 0x2A ; 42
+ 45f4: 9e 4f sbci r25, 0xFE ; 254
+ 45f6: fc 01 movw r30, r24
+ 45f8: 80 81 ld r24, Z
+ 45fa: 28 1b sub r18, r24
+ 45fc: 31 09 sbc r19, r1
+ 45fe: 41 09 sbc r20, r1
+ 4600: 51 09 sbc r21, r1
+ 4602: c9 01 movw r24, r18
+ 4604: 1f 91 pop r17
+ 4606: 0f 91 pop r16
+ 4608: ff 90 pop r15
+ 460a: ef 90 pop r14
+ 460c: df 90 pop r13
+ 460e: cf 90 pop r12
+ 4610: bf 90 pop r11
+ 4612: af 90 pop r10
+ 4614: 08 95 ret
+
+00004616 <__pack_f>:
+ 4616: ef 92 push r14
+ 4618: ff 92 push r15
+ 461a: 0f 93 push r16
+ 461c: 1f 93 push r17
+ 461e: cf 93 push r28
+ 4620: df 93 push r29
+ 4622: fc 01 movw r30, r24
+ 4624: 24 81 ldd r18, Z+4 ; 0x04
+ 4626: 35 81 ldd r19, Z+5 ; 0x05
+ 4628: 46 81 ldd r20, Z+6 ; 0x06
+ 462a: 57 81 ldd r21, Z+7 ; 0x07
+ 462c: 61 81 ldd r22, Z+1 ; 0x01
+ 462e: 80 81 ld r24, Z
+ 4630: 82 30 cpi r24, 0x02 ; 2
+ 4632: 20 f4 brcc .+8 ; 0x463c <__pack_f+0x26>
+ 4634: 40 61 ori r20, 0x10 ; 16
+ 4636: ef ef ldi r30, 0xFF ; 255
+ 4638: f0 e0 ldi r31, 0x00 ; 0
+ 463a: a3 c0 rjmp .+326 ; 0x4782 <__pack_f+0x16c>
+ 463c: 84 30 cpi r24, 0x04 ; 4
+ 463e: 09 f4 brne .+2 ; 0x4642 <__pack_f+0x2c>
+ 4640: 9b c0 rjmp .+310 ; 0x4778 <__pack_f+0x162>
+ 4642: 82 30 cpi r24, 0x02 ; 2
+ 4644: 09 f4 brne .+2 ; 0x4648 <__pack_f+0x32>
+ 4646: 92 c0 rjmp .+292 ; 0x476c <__pack_f+0x156>
+ 4648: 21 15 cp r18, r1
+ 464a: 31 05 cpc r19, r1
+ 464c: 41 05 cpc r20, r1
+ 464e: 51 05 cpc r21, r1
+ 4650: 09 f4 brne .+2 ; 0x4654 <__pack_f+0x3e>
+ 4652: 8f c0 rjmp .+286 ; 0x4772 <__pack_f+0x15c>
+ 4654: 02 80 ldd r0, Z+2 ; 0x02
+ 4656: f3 81 ldd r31, Z+3 ; 0x03
+ 4658: e0 2d mov r30, r0
+ 465a: 8f ef ldi r24, 0xFF ; 255
+ 465c: e2 38 cpi r30, 0x82 ; 130
+ 465e: f8 07 cpc r31, r24
+ 4660: 0c f0 brlt .+2 ; 0x4664 <__pack_f+0x4e>
+ 4662: 5a c0 rjmp .+180 ; 0x4718 <__pack_f+0x102>
+ 4664: c2 e8 ldi r28, 0x82 ; 130
+ 4666: df ef ldi r29, 0xFF ; 255
+ 4668: ce 1b sub r28, r30
+ 466a: df 0b sbc r29, r31
+ 466c: ca 31 cpi r28, 0x1A ; 26
+ 466e: d1 05 cpc r29, r1
+ 4670: 6c f5 brge .+90 ; 0x46cc <__pack_f+0xb6>
+ 4672: 79 01 movw r14, r18
+ 4674: 8a 01 movw r16, r20
+ 4676: 0c 2e mov r0, r28
+ 4678: 04 c0 rjmp .+8 ; 0x4682 <__pack_f+0x6c>
+ 467a: 16 95 lsr r17
+ 467c: 07 95 ror r16
+ 467e: f7 94 ror r15
+ 4680: e7 94 ror r14
+ 4682: 0a 94 dec r0
+ 4684: d2 f7 brpl .-12 ; 0x467a <__pack_f+0x64>
+ 4686: 81 e0 ldi r24, 0x01 ; 1
+ 4688: 90 e0 ldi r25, 0x00 ; 0
+ 468a: a0 e0 ldi r26, 0x00 ; 0
+ 468c: b0 e0 ldi r27, 0x00 ; 0
+ 468e: 0c 2e mov r0, r28
+ 4690: 04 c0 rjmp .+8 ; 0x469a <__pack_f+0x84>
+ 4692: 88 0f add r24, r24
+ 4694: 99 1f adc r25, r25
+ 4696: aa 1f adc r26, r26
+ 4698: bb 1f adc r27, r27
+ 469a: 0a 94 dec r0
+ 469c: d2 f7 brpl .-12 ; 0x4692 <__pack_f+0x7c>
+ 469e: 01 97 sbiw r24, 0x01 ; 1
+ 46a0: a1 09 sbc r26, r1
+ 46a2: b1 09 sbc r27, r1
+ 46a4: 82 23 and r24, r18
+ 46a6: 93 23 and r25, r19
+ 46a8: a4 23 and r26, r20
+ 46aa: b5 23 and r27, r21
+ 46ac: 21 e0 ldi r18, 0x01 ; 1
+ 46ae: 30 e0 ldi r19, 0x00 ; 0
+ 46b0: 40 e0 ldi r20, 0x00 ; 0
+ 46b2: 50 e0 ldi r21, 0x00 ; 0
+ 46b4: 00 97 sbiw r24, 0x00 ; 0
+ 46b6: a1 05 cpc r26, r1
+ 46b8: b1 05 cpc r27, r1
+ 46ba: 19 f4 brne .+6 ; 0x46c2 <__pack_f+0xac>
+ 46bc: 20 e0 ldi r18, 0x00 ; 0
+ 46be: 30 e0 ldi r19, 0x00 ; 0
+ 46c0: a9 01 movw r20, r18
+ 46c2: 2e 29 or r18, r14
+ 46c4: 3f 29 or r19, r15
+ 46c6: 40 2b or r20, r16
+ 46c8: 51 2b or r21, r17
+ 46ca: 03 c0 rjmp .+6 ; 0x46d2 <__pack_f+0xbc>
+ 46cc: 20 e0 ldi r18, 0x00 ; 0
+ 46ce: 30 e0 ldi r19, 0x00 ; 0
+ 46d0: a9 01 movw r20, r18
+ 46d2: da 01 movw r26, r20
+ 46d4: c9 01 movw r24, r18
+ 46d6: 8f 77 andi r24, 0x7F ; 127
+ 46d8: 90 70 andi r25, 0x00 ; 0
+ 46da: a0 70 andi r26, 0x00 ; 0
+ 46dc: b0 70 andi r27, 0x00 ; 0
+ 46de: 80 34 cpi r24, 0x40 ; 64
+ 46e0: 91 05 cpc r25, r1
+ 46e2: a1 05 cpc r26, r1
+ 46e4: b1 05 cpc r27, r1
+ 46e6: 39 f4 brne .+14 ; 0x46f6 <__pack_f+0xe0>
+ 46e8: 27 ff sbrs r18, 7
+ 46ea: 09 c0 rjmp .+18 ; 0x46fe <__pack_f+0xe8>
+ 46ec: 20 5c subi r18, 0xC0 ; 192
+ 46ee: 3f 4f sbci r19, 0xFF ; 255
+ 46f0: 4f 4f sbci r20, 0xFF ; 255
+ 46f2: 5f 4f sbci r21, 0xFF ; 255
+ 46f4: 04 c0 rjmp .+8 ; 0x46fe <__pack_f+0xe8>
+ 46f6: 21 5c subi r18, 0xC1 ; 193
+ 46f8: 3f 4f sbci r19, 0xFF ; 255
+ 46fa: 4f 4f sbci r20, 0xFF ; 255
+ 46fc: 5f 4f sbci r21, 0xFF ; 255
+ 46fe: e1 e0 ldi r30, 0x01 ; 1
+ 4700: f0 e0 ldi r31, 0x00 ; 0
+ 4702: 20 30 cpi r18, 0x00 ; 0
+ 4704: 80 e0 ldi r24, 0x00 ; 0
+ 4706: 38 07 cpc r19, r24
+ 4708: 80 e0 ldi r24, 0x00 ; 0
+ 470a: 48 07 cpc r20, r24
+ 470c: 80 e4 ldi r24, 0x40 ; 64
+ 470e: 58 07 cpc r21, r24
+ 4710: 28 f5 brcc .+74 ; 0x475c <__pack_f+0x146>
+ 4712: e0 e0 ldi r30, 0x00 ; 0
+ 4714: f0 e0 ldi r31, 0x00 ; 0
+ 4716: 22 c0 rjmp .+68 ; 0x475c <__pack_f+0x146>
+ 4718: e0 38 cpi r30, 0x80 ; 128
+ 471a: f1 05 cpc r31, r1
+ 471c: 6c f5 brge .+90 ; 0x4778 <__pack_f+0x162>
+ 471e: e1 58 subi r30, 0x81 ; 129
+ 4720: ff 4f sbci r31, 0xFF ; 255
+ 4722: da 01 movw r26, r20
+ 4724: c9 01 movw r24, r18
+ 4726: 8f 77 andi r24, 0x7F ; 127
+ 4728: 90 70 andi r25, 0x00 ; 0
+ 472a: a0 70 andi r26, 0x00 ; 0
+ 472c: b0 70 andi r27, 0x00 ; 0
+ 472e: 80 34 cpi r24, 0x40 ; 64
+ 4730: 91 05 cpc r25, r1
+ 4732: a1 05 cpc r26, r1
+ 4734: b1 05 cpc r27, r1
+ 4736: 39 f4 brne .+14 ; 0x4746 <__pack_f+0x130>
+ 4738: 27 ff sbrs r18, 7
+ 473a: 09 c0 rjmp .+18 ; 0x474e <__pack_f+0x138>
+ 473c: 20 5c subi r18, 0xC0 ; 192
+ 473e: 3f 4f sbci r19, 0xFF ; 255
+ 4740: 4f 4f sbci r20, 0xFF ; 255
+ 4742: 5f 4f sbci r21, 0xFF ; 255
+ 4744: 04 c0 rjmp .+8 ; 0x474e <__pack_f+0x138>
+ 4746: 21 5c subi r18, 0xC1 ; 193
+ 4748: 3f 4f sbci r19, 0xFF ; 255
+ 474a: 4f 4f sbci r20, 0xFF ; 255
+ 474c: 5f 4f sbci r21, 0xFF ; 255
+ 474e: 57 ff sbrs r21, 7
+ 4750: 05 c0 rjmp .+10 ; 0x475c <__pack_f+0x146>
+ 4752: 56 95 lsr r21
+ 4754: 47 95 ror r20
+ 4756: 37 95 ror r19
+ 4758: 27 95 ror r18
+ 475a: 31 96 adiw r30, 0x01 ; 1
+ 475c: 87 e0 ldi r24, 0x07 ; 7
+ 475e: 56 95 lsr r21
+ 4760: 47 95 ror r20
+ 4762: 37 95 ror r19
+ 4764: 27 95 ror r18
+ 4766: 8a 95 dec r24
+ 4768: d1 f7 brne .-12 ; 0x475e <__pack_f+0x148>
+ 476a: 0b c0 rjmp .+22 ; 0x4782 <__pack_f+0x16c>
+ 476c: e0 e0 ldi r30, 0x00 ; 0
+ 476e: f0 e0 ldi r31, 0x00 ; 0
+ 4770: 05 c0 rjmp .+10 ; 0x477c <__pack_f+0x166>
+ 4772: e0 e0 ldi r30, 0x00 ; 0
+ 4774: f0 e0 ldi r31, 0x00 ; 0
+ 4776: 05 c0 rjmp .+10 ; 0x4782 <__pack_f+0x16c>
+ 4778: ef ef ldi r30, 0xFF ; 255
+ 477a: f0 e0 ldi r31, 0x00 ; 0
+ 477c: 20 e0 ldi r18, 0x00 ; 0
+ 477e: 30 e0 ldi r19, 0x00 ; 0
+ 4780: a9 01 movw r20, r18
+ 4782: 8e 2f mov r24, r30
+ 4784: 87 95 ror r24
+ 4786: 88 27 eor r24, r24
+ 4788: 87 95 ror r24
+ 478a: 94 2f mov r25, r20
+ 478c: 9f 77 andi r25, 0x7F ; 127
+ 478e: 67 95 ror r22
+ 4790: 66 27 eor r22, r22
+ 4792: 67 95 ror r22
+ 4794: e6 95 lsr r30
+ 4796: e2 2e mov r14, r18
+ 4798: a9 2f mov r26, r25
+ 479a: a8 2b or r26, r24
+ 479c: fe 2f mov r31, r30
+ 479e: f6 2b or r31, r22
+ 47a0: 62 2f mov r22, r18
+ 47a2: 73 2f mov r23, r19
+ 47a4: 8a 2f mov r24, r26
+ 47a6: 9f 2f mov r25, r31
+ 47a8: cd b7 in r28, 0x3d ; 61
+ 47aa: de b7 in r29, 0x3e ; 62
+ 47ac: e6 e0 ldi r30, 0x06 ; 6
+ 47ae: 0c 94 46 25 jmp 0x4a8c ; 0x4a8c <__epilogue_restores__+0x18>
+
+000047b2 <__unpack_f>:
+ 47b2: dc 01 movw r26, r24
+ 47b4: fb 01 movw r30, r22
+ 47b6: 2c 91 ld r18, X
+ 47b8: 11 96 adiw r26, 0x01 ; 1
+ 47ba: 3c 91 ld r19, X
+ 47bc: 11 97 sbiw r26, 0x01 ; 1
+ 47be: 12 96 adiw r26, 0x02 ; 2
+ 47c0: 8c 91 ld r24, X
+ 47c2: 12 97 sbiw r26, 0x02 ; 2
+ 47c4: 48 2f mov r20, r24
+ 47c6: 4f 77 andi r20, 0x7F ; 127
+ 47c8: 50 e0 ldi r21, 0x00 ; 0
+ 47ca: 98 2f mov r25, r24
+ 47cc: 99 1f adc r25, r25
+ 47ce: 99 27 eor r25, r25
+ 47d0: 99 1f adc r25, r25
+ 47d2: 13 96 adiw r26, 0x03 ; 3
+ 47d4: 6c 91 ld r22, X
+ 47d6: 13 97 sbiw r26, 0x03 ; 3
+ 47d8: 86 2f mov r24, r22
+ 47da: 88 0f add r24, r24
+ 47dc: 89 2b or r24, r25
+ 47de: 90 e0 ldi r25, 0x00 ; 0
+ 47e0: 66 1f adc r22, r22
+ 47e2: 66 27 eor r22, r22
+ 47e4: 66 1f adc r22, r22
+ 47e6: 61 83 std Z+1, r22 ; 0x01
+ 47e8: 00 97 sbiw r24, 0x00 ; 0
+ 47ea: 39 f5 brne .+78 ; 0x483a <__unpack_f+0x88>
+ 47ec: 21 15 cp r18, r1
+ 47ee: 31 05 cpc r19, r1
+ 47f0: 41 05 cpc r20, r1
+ 47f2: 51 05 cpc r21, r1
+ 47f4: 11 f4 brne .+4 ; 0x47fa <__unpack_f+0x48>
+ 47f6: 82 e0 ldi r24, 0x02 ; 2
+ 47f8: 29 c0 rjmp .+82 ; 0x484c <__unpack_f+0x9a>
+ 47fa: 82 e8 ldi r24, 0x82 ; 130
+ 47fc: 9f ef ldi r25, 0xFF ; 255
+ 47fe: 93 83 std Z+3, r25 ; 0x03
+ 4800: 82 83 std Z+2, r24 ; 0x02
+ 4802: 67 e0 ldi r22, 0x07 ; 7
+ 4804: 22 0f add r18, r18
+ 4806: 33 1f adc r19, r19
+ 4808: 44 1f adc r20, r20
+ 480a: 55 1f adc r21, r21
+ 480c: 6a 95 dec r22
+ 480e: d1 f7 brne .-12 ; 0x4804 <__unpack_f+0x52>
+ 4810: 83 e0 ldi r24, 0x03 ; 3
+ 4812: 80 83 st Z, r24
+ 4814: 09 c0 rjmp .+18 ; 0x4828 <__unpack_f+0x76>
+ 4816: 22 0f add r18, r18
+ 4818: 33 1f adc r19, r19
+ 481a: 44 1f adc r20, r20
+ 481c: 55 1f adc r21, r21
+ 481e: 82 81 ldd r24, Z+2 ; 0x02
+ 4820: 93 81 ldd r25, Z+3 ; 0x03
+ 4822: 01 97 sbiw r24, 0x01 ; 1
+ 4824: 93 83 std Z+3, r25 ; 0x03
+ 4826: 82 83 std Z+2, r24 ; 0x02
+ 4828: 20 30 cpi r18, 0x00 ; 0
+ 482a: 80 e0 ldi r24, 0x00 ; 0
+ 482c: 38 07 cpc r19, r24
+ 482e: 80 e0 ldi r24, 0x00 ; 0
+ 4830: 48 07 cpc r20, r24
+ 4832: 80 e4 ldi r24, 0x40 ; 64
+ 4834: 58 07 cpc r21, r24
+ 4836: 78 f3 brcs .-34 ; 0x4816 <__unpack_f+0x64>
+ 4838: 20 c0 rjmp .+64 ; 0x487a <__unpack_f+0xc8>
+ 483a: 8f 3f cpi r24, 0xFF ; 255
+ 483c: 91 05 cpc r25, r1
+ 483e: 79 f4 brne .+30 ; 0x485e <__unpack_f+0xac>
+ 4840: 21 15 cp r18, r1
+ 4842: 31 05 cpc r19, r1
+ 4844: 41 05 cpc r20, r1
+ 4846: 51 05 cpc r21, r1
+ 4848: 19 f4 brne .+6 ; 0x4850 <__unpack_f+0x9e>
+ 484a: 84 e0 ldi r24, 0x04 ; 4
+ 484c: 80 83 st Z, r24
+ 484e: 08 95 ret
+ 4850: 44 ff sbrs r20, 4
+ 4852: 03 c0 rjmp .+6 ; 0x485a <__unpack_f+0xa8>
+ 4854: 81 e0 ldi r24, 0x01 ; 1
+ 4856: 80 83 st Z, r24
+ 4858: 10 c0 rjmp .+32 ; 0x487a <__unpack_f+0xc8>
+ 485a: 10 82 st Z, r1
+ 485c: 0e c0 rjmp .+28 ; 0x487a <__unpack_f+0xc8>
+ 485e: 8f 57 subi r24, 0x7F ; 127
+ 4860: 90 40 sbci r25, 0x00 ; 0
+ 4862: 93 83 std Z+3, r25 ; 0x03
+ 4864: 82 83 std Z+2, r24 ; 0x02
+ 4866: 83 e0 ldi r24, 0x03 ; 3
+ 4868: 80 83 st Z, r24
+ 486a: 87 e0 ldi r24, 0x07 ; 7
+ 486c: 22 0f add r18, r18
+ 486e: 33 1f adc r19, r19
+ 4870: 44 1f adc r20, r20
+ 4872: 55 1f adc r21, r21
+ 4874: 8a 95 dec r24
+ 4876: d1 f7 brne .-12 ; 0x486c <__unpack_f+0xba>
+ 4878: 50 64 ori r21, 0x40 ; 64
+ 487a: 24 83 std Z+4, r18 ; 0x04
+ 487c: 35 83 std Z+5, r19 ; 0x05
+ 487e: 46 83 std Z+6, r20 ; 0x06
+ 4880: 57 83 std Z+7, r21 ; 0x07
+ 4882: 08 95 ret
+
+00004884 <__fpcmp_parts_f>:
+ 4884: fc 01 movw r30, r24
+ 4886: db 01 movw r26, r22
+ 4888: 90 81 ld r25, Z
+ 488a: 92 30 cpi r25, 0x02 ; 2
+ 488c: 08 f4 brcc .+2 ; 0x4890 <__fpcmp_parts_f+0xc>
+ 488e: 49 c0 rjmp .+146 ; 0x4922 <__fpcmp_parts_f+0x9e>
+ 4890: 8c 91 ld r24, X
+ 4892: 82 30 cpi r24, 0x02 ; 2
+ 4894: 08 f4 brcc .+2 ; 0x4898 <__fpcmp_parts_f+0x14>
+ 4896: 45 c0 rjmp .+138 ; 0x4922 <__fpcmp_parts_f+0x9e>
+ 4898: 94 30 cpi r25, 0x04 ; 4
+ 489a: 51 f4 brne .+20 ; 0x48b0 <__fpcmp_parts_f+0x2c>
+ 489c: 61 81 ldd r22, Z+1 ; 0x01
+ 489e: 84 30 cpi r24, 0x04 ; 4
+ 48a0: b1 f5 brne .+108 ; 0x490e <__fpcmp_parts_f+0x8a>
+ 48a2: 11 96 adiw r26, 0x01 ; 1
+ 48a4: 2c 91 ld r18, X
+ 48a6: 11 97 sbiw r26, 0x01 ; 1
+ 48a8: 30 e0 ldi r19, 0x00 ; 0
+ 48aa: 26 1b sub r18, r22
+ 48ac: 31 09 sbc r19, r1
+ 48ae: 41 c0 rjmp .+130 ; 0x4932 <__fpcmp_parts_f+0xae>
+ 48b0: 84 30 cpi r24, 0x04 ; 4
+ 48b2: 21 f0 breq .+8 ; 0x48bc <__fpcmp_parts_f+0x38>
+ 48b4: 92 30 cpi r25, 0x02 ; 2
+ 48b6: 41 f4 brne .+16 ; 0x48c8 <__fpcmp_parts_f+0x44>
+ 48b8: 82 30 cpi r24, 0x02 ; 2
+ 48ba: b1 f1 breq .+108 ; 0x4928 <__fpcmp_parts_f+0xa4>
+ 48bc: 11 96 adiw r26, 0x01 ; 1
+ 48be: 8c 91 ld r24, X
+ 48c0: 11 97 sbiw r26, 0x01 ; 1
+ 48c2: 88 23 and r24, r24
+ 48c4: a1 f1 breq .+104 ; 0x492e <__fpcmp_parts_f+0xaa>
+ 48c6: 2d c0 rjmp .+90 ; 0x4922 <__fpcmp_parts_f+0x9e>
+ 48c8: 61 81 ldd r22, Z+1 ; 0x01
+ 48ca: 82 30 cpi r24, 0x02 ; 2
+ 48cc: 01 f1 breq .+64 ; 0x490e <__fpcmp_parts_f+0x8a>
+ 48ce: 11 96 adiw r26, 0x01 ; 1
+ 48d0: 8c 91 ld r24, X
+ 48d2: 11 97 sbiw r26, 0x01 ; 1
+ 48d4: 68 17 cp r22, r24
+ 48d6: d9 f4 brne .+54 ; 0x490e <__fpcmp_parts_f+0x8a>
+ 48d8: 22 81 ldd r18, Z+2 ; 0x02
+ 48da: 33 81 ldd r19, Z+3 ; 0x03
+ 48dc: 12 96 adiw r26, 0x02 ; 2
+ 48de: 8d 91 ld r24, X+
+ 48e0: 9c 91 ld r25, X
+ 48e2: 13 97 sbiw r26, 0x03 ; 3
+ 48e4: 82 17 cp r24, r18
+ 48e6: 93 07 cpc r25, r19
+ 48e8: 94 f0 brlt .+36 ; 0x490e <__fpcmp_parts_f+0x8a>
+ 48ea: 28 17 cp r18, r24
+ 48ec: 39 07 cpc r19, r25
+ 48ee: bc f0 brlt .+46 ; 0x491e <__fpcmp_parts_f+0x9a>
+ 48f0: 24 81 ldd r18, Z+4 ; 0x04
+ 48f2: 35 81 ldd r19, Z+5 ; 0x05
+ 48f4: 46 81 ldd r20, Z+6 ; 0x06
+ 48f6: 57 81 ldd r21, Z+7 ; 0x07
+ 48f8: 14 96 adiw r26, 0x04 ; 4
+ 48fa: 8d 91 ld r24, X+
+ 48fc: 9d 91 ld r25, X+
+ 48fe: 0d 90 ld r0, X+
+ 4900: bc 91 ld r27, X
+ 4902: a0 2d mov r26, r0
+ 4904: 82 17 cp r24, r18
+ 4906: 93 07 cpc r25, r19
+ 4908: a4 07 cpc r26, r20
+ 490a: b5 07 cpc r27, r21
+ 490c: 18 f4 brcc .+6 ; 0x4914 <__fpcmp_parts_f+0x90>
+ 490e: 66 23 and r22, r22
+ 4910: 41 f0 breq .+16 ; 0x4922 <__fpcmp_parts_f+0x9e>
+ 4912: 0d c0 rjmp .+26 ; 0x492e <__fpcmp_parts_f+0xaa>
+ 4914: 28 17 cp r18, r24
+ 4916: 39 07 cpc r19, r25
+ 4918: 4a 07 cpc r20, r26
+ 491a: 5b 07 cpc r21, r27
+ 491c: 28 f4 brcc .+10 ; 0x4928 <__fpcmp_parts_f+0xa4>
+ 491e: 66 23 and r22, r22
+ 4920: 31 f0 breq .+12 ; 0x492e <__fpcmp_parts_f+0xaa>
+ 4922: 21 e0 ldi r18, 0x01 ; 1
+ 4924: 30 e0 ldi r19, 0x00 ; 0
+ 4926: 05 c0 rjmp .+10 ; 0x4932 <__fpcmp_parts_f+0xae>
+ 4928: 20 e0 ldi r18, 0x00 ; 0
+ 492a: 30 e0 ldi r19, 0x00 ; 0
+ 492c: 02 c0 rjmp .+4 ; 0x4932 <__fpcmp_parts_f+0xae>
+ 492e: 2f ef ldi r18, 0xFF ; 255
+ 4930: 3f ef ldi r19, 0xFF ; 255
+ 4932: c9 01 movw r24, r18
+ 4934: 08 95 ret
+
+00004936 <__mulsi3>:
+ 4936: 62 9f mul r22, r18
+ 4938: d0 01 movw r26, r0
+ 493a: 73 9f mul r23, r19
+ 493c: f0 01 movw r30, r0
+ 493e: 82 9f mul r24, r18
+ 4940: e0 0d add r30, r0
+ 4942: f1 1d adc r31, r1
+ 4944: 64 9f mul r22, r20
+ 4946: e0 0d add r30, r0
+ 4948: f1 1d adc r31, r1
+ 494a: 92 9f mul r25, r18
+ 494c: f0 0d add r31, r0
+ 494e: 83 9f mul r24, r19
+ 4950: f0 0d add r31, r0
+ 4952: 74 9f mul r23, r20
+ 4954: f0 0d add r31, r0
+ 4956: 65 9f mul r22, r21
+ 4958: f0 0d add r31, r0
+ 495a: 99 27 eor r25, r25
+ 495c: 72 9f mul r23, r18
+ 495e: b0 0d add r27, r0
+ 4960: e1 1d adc r30, r1
+ 4962: f9 1f adc r31, r25
+ 4964: 63 9f mul r22, r19
+ 4966: b0 0d add r27, r0
+ 4968: e1 1d adc r30, r1
+ 496a: f9 1f adc r31, r25
+ 496c: bd 01 movw r22, r26
+ 496e: cf 01 movw r24, r30
+ 4970: 11 24 eor r1, r1
+ 4972: 08 95 ret
+
+00004974 <__divmodhi4>:
+ 4974: 97 fb bst r25, 7
+ 4976: 09 2e mov r0, r25
+ 4978: 07 26 eor r0, r23
+ 497a: 0a d0 rcall .+20 ; 0x4990 <__divmodhi4_neg1>
+ 497c: 77 fd sbrc r23, 7
+ 497e: 04 d0 rcall .+8 ; 0x4988 <__divmodhi4_neg2>
+ 4980: 49 d0 rcall .+146 ; 0x4a14 <__udivmodhi4>
+ 4982: 06 d0 rcall .+12 ; 0x4990 <__divmodhi4_neg1>
+ 4984: 00 20 and r0, r0
+ 4986: 1a f4 brpl .+6 ; 0x498e <__divmodhi4_exit>
+
+00004988 <__divmodhi4_neg2>:
+ 4988: 70 95 com r23
+ 498a: 61 95 neg r22
+ 498c: 7f 4f sbci r23, 0xFF ; 255
+
+0000498e <__divmodhi4_exit>:
+ 498e: 08 95 ret
+
+00004990 <__divmodhi4_neg1>:
+ 4990: f6 f7 brtc .-4 ; 0x498e <__divmodhi4_exit>
+ 4992: 90 95 com r25
+ 4994: 81 95 neg r24
+ 4996: 9f 4f sbci r25, 0xFF ; 255
+ 4998: 08 95 ret
+
+0000499a <__udivmodsi4>:
+ 499a: a1 e2 ldi r26, 0x21 ; 33
+ 499c: 1a 2e mov r1, r26
+ 499e: aa 1b sub r26, r26
+ 49a0: bb 1b sub r27, r27
+ 49a2: fd 01 movw r30, r26
+ 49a4: 0d c0 rjmp .+26 ; 0x49c0 <__udivmodsi4_ep>
+
+000049a6 <__udivmodsi4_loop>:
+ 49a6: aa 1f adc r26, r26
+ 49a8: bb 1f adc r27, r27
+ 49aa: ee 1f adc r30, r30
+ 49ac: ff 1f adc r31, r31
+ 49ae: a2 17 cp r26, r18
+ 49b0: b3 07 cpc r27, r19
+ 49b2: e4 07 cpc r30, r20
+ 49b4: f5 07 cpc r31, r21
+ 49b6: 20 f0 brcs .+8 ; 0x49c0 <__udivmodsi4_ep>
+ 49b8: a2 1b sub r26, r18
+ 49ba: b3 0b sbc r27, r19
+ 49bc: e4 0b sbc r30, r20
+ 49be: f5 0b sbc r31, r21
+
+000049c0 <__udivmodsi4_ep>:
+ 49c0: 66 1f adc r22, r22
+ 49c2: 77 1f adc r23, r23
+ 49c4: 88 1f adc r24, r24
+ 49c6: 99 1f adc r25, r25
+ 49c8: 1a 94 dec r1
+ 49ca: 69 f7 brne .-38 ; 0x49a6 <__udivmodsi4_loop>
+ 49cc: 60 95 com r22
+ 49ce: 70 95 com r23
+ 49d0: 80 95 com r24
+ 49d2: 90 95 com r25
+ 49d4: 9b 01 movw r18, r22
+ 49d6: ac 01 movw r20, r24
+ 49d8: bd 01 movw r22, r26
+ 49da: cf 01 movw r24, r30
+ 49dc: 08 95 ret
+
+000049de <__divmodsi4>:
+ 49de: 97 fb bst r25, 7
+ 49e0: 09 2e mov r0, r25
+ 49e2: 05 26 eor r0, r21
+ 49e4: 0e d0 rcall .+28 ; 0x4a02 <__divmodsi4_neg1>
+ 49e6: 57 fd sbrc r21, 7
+ 49e8: 04 d0 rcall .+8 ; 0x49f2 <__divmodsi4_neg2>
+ 49ea: d7 df rcall .-82 ; 0x499a <__udivmodsi4>
+ 49ec: 0a d0 rcall .+20 ; 0x4a02 <__divmodsi4_neg1>
+ 49ee: 00 1c adc r0, r0
+ 49f0: 38 f4 brcc .+14 ; 0x4a00 <__divmodsi4_exit>
+
+000049f2 <__divmodsi4_neg2>:
+ 49f2: 50 95 com r21
+ 49f4: 40 95 com r20
+ 49f6: 30 95 com r19
+ 49f8: 21 95 neg r18
+ 49fa: 3f 4f sbci r19, 0xFF ; 255
+ 49fc: 4f 4f sbci r20, 0xFF ; 255
+ 49fe: 5f 4f sbci r21, 0xFF ; 255
+
+00004a00 <__divmodsi4_exit>:
+ 4a00: 08 95 ret
+
+00004a02 <__divmodsi4_neg1>:
+ 4a02: f6 f7 brtc .-4 ; 0x4a00 <__divmodsi4_exit>
+ 4a04: 90 95 com r25
+ 4a06: 80 95 com r24
+ 4a08: 70 95 com r23
+ 4a0a: 61 95 neg r22
+ 4a0c: 7f 4f sbci r23, 0xFF ; 255
+ 4a0e: 8f 4f sbci r24, 0xFF ; 255
+ 4a10: 9f 4f sbci r25, 0xFF ; 255
+ 4a12: 08 95 ret
+
+00004a14 <__udivmodhi4>:
+ 4a14: aa 1b sub r26, r26
+ 4a16: bb 1b sub r27, r27
+ 4a18: 51 e1 ldi r21, 0x11 ; 17
+ 4a1a: 07 c0 rjmp .+14 ; 0x4a2a <__udivmodhi4_ep>
+
+00004a1c <__udivmodhi4_loop>:
+ 4a1c: aa 1f adc r26, r26
+ 4a1e: bb 1f adc r27, r27
+ 4a20: a6 17 cp r26, r22
+ 4a22: b7 07 cpc r27, r23
+ 4a24: 10 f0 brcs .+4 ; 0x4a2a <__udivmodhi4_ep>
+ 4a26: a6 1b sub r26, r22
+ 4a28: b7 0b sbc r27, r23
+
+00004a2a <__udivmodhi4_ep>:
+ 4a2a: 88 1f adc r24, r24
+ 4a2c: 99 1f adc r25, r25
+ 4a2e: 5a 95 dec r21
+ 4a30: a9 f7 brne .-22 ; 0x4a1c <__udivmodhi4_loop>
+ 4a32: 80 95 com r24
+ 4a34: 90 95 com r25
+ 4a36: bc 01 movw r22, r24
+ 4a38: cd 01 movw r24, r26
+ 4a3a: 08 95 ret
+
+00004a3c <__prologue_saves__>:
+ 4a3c: 2f 92 push r2
+ 4a3e: 3f 92 push r3
+ 4a40: 4f 92 push r4
+ 4a42: 5f 92 push r5
+ 4a44: 6f 92 push r6
+ 4a46: 7f 92 push r7
+ 4a48: 8f 92 push r8
+ 4a4a: 9f 92 push r9
+ 4a4c: af 92 push r10
+ 4a4e: bf 92 push r11
+ 4a50: cf 92 push r12
+ 4a52: df 92 push r13
+ 4a54: ef 92 push r14
+ 4a56: ff 92 push r15
+ 4a58: 0f 93 push r16
+ 4a5a: 1f 93 push r17
+ 4a5c: cf 93 push r28
+ 4a5e: df 93 push r29
+ 4a60: cd b7 in r28, 0x3d ; 61
+ 4a62: de b7 in r29, 0x3e ; 62
+ 4a64: ca 1b sub r28, r26
+ 4a66: db 0b sbc r29, r27
+ 4a68: 0f b6 in r0, 0x3f ; 63
+ 4a6a: f8 94 cli
+ 4a6c: de bf out 0x3e, r29 ; 62
+ 4a6e: 0f be out 0x3f, r0 ; 63
+ 4a70: cd bf out 0x3d, r28 ; 61
+ 4a72: 09 94 ijmp
+
+00004a74 <__epilogue_restores__>:
+ 4a74: 2a 88 ldd r2, Y+18 ; 0x12
+ 4a76: 39 88 ldd r3, Y+17 ; 0x11
+ 4a78: 48 88 ldd r4, Y+16 ; 0x10
+ 4a7a: 5f 84 ldd r5, Y+15 ; 0x0f
+ 4a7c: 6e 84 ldd r6, Y+14 ; 0x0e
+ 4a7e: 7d 84 ldd r7, Y+13 ; 0x0d
+ 4a80: 8c 84 ldd r8, Y+12 ; 0x0c
+ 4a82: 9b 84 ldd r9, Y+11 ; 0x0b
+ 4a84: aa 84 ldd r10, Y+10 ; 0x0a
+ 4a86: b9 84 ldd r11, Y+9 ; 0x09
+ 4a88: c8 84 ldd r12, Y+8 ; 0x08
+ 4a8a: df 80 ldd r13, Y+7 ; 0x07
+ 4a8c: ee 80 ldd r14, Y+6 ; 0x06
+ 4a8e: fd 80 ldd r15, Y+5 ; 0x05
+ 4a90: 0c 81 ldd r16, Y+4 ; 0x04
+ 4a92: 1b 81 ldd r17, Y+3 ; 0x03
+ 4a94: aa 81 ldd r26, Y+2 ; 0x02
+ 4a96: b9 81 ldd r27, Y+1 ; 0x01
+ 4a98: ce 0f add r28, r30
+ 4a9a: d1 1d adc r29, r1
+ 4a9c: 0f b6 in r0, 0x3f ; 63
+ 4a9e: f8 94 cli
+ 4aa0: de bf out 0x3e, r29 ; 62
+ 4aa2: 0f be out 0x3f, r0 ; 63
+ 4aa4: cd bf out 0x3d, r28 ; 61
+ 4aa6: ed 01 movw r28, r26
+ 4aa8: 08 95 ret
+
+00004aaa <__tablejump2__>:
+ 4aaa: ee 0f add r30, r30
+ 4aac: ff 1f adc r31, r31
+
+00004aae <__tablejump__>:
+ 4aae: 05 90 lpm r0, Z+
+ 4ab0: f4 91 lpm r31, Z+
+ 4ab2: e0 2d mov r30, r0
+ 4ab4: 09 94 ijmp
+
+00004ab6 <malloc>:
+ 4ab6: cf 93 push r28
+ 4ab8: df 93 push r29
+ 4aba: 82 30 cpi r24, 0x02 ; 2
+ 4abc: 91 05 cpc r25, r1
+ 4abe: 10 f4 brcc .+4 ; 0x4ac4 <malloc+0xe>
+ 4ac0: 82 e0 ldi r24, 0x02 ; 2
+ 4ac2: 90 e0 ldi r25, 0x00 ; 0
+ 4ac4: e0 91 8e 04 lds r30, 0x048E
+ 4ac8: f0 91 8f 04 lds r31, 0x048F
+ 4acc: 40 e0 ldi r20, 0x00 ; 0
+ 4ace: 50 e0 ldi r21, 0x00 ; 0
+ 4ad0: 20 e0 ldi r18, 0x00 ; 0
+ 4ad2: 30 e0 ldi r19, 0x00 ; 0
+ 4ad4: 26 c0 rjmp .+76 ; 0x4b22 <malloc+0x6c>
+ 4ad6: 60 81 ld r22, Z
+ 4ad8: 71 81 ldd r23, Z+1 ; 0x01
+ 4ada: 68 17 cp r22, r24
+ 4adc: 79 07 cpc r23, r25
+ 4ade: e0 f0 brcs .+56 ; 0x4b18 <malloc+0x62>
+ 4ae0: 68 17 cp r22, r24
+ 4ae2: 79 07 cpc r23, r25
+ 4ae4: 81 f4 brne .+32 ; 0x4b06 <malloc+0x50>
+ 4ae6: 82 81 ldd r24, Z+2 ; 0x02
+ 4ae8: 93 81 ldd r25, Z+3 ; 0x03
+ 4aea: 21 15 cp r18, r1
+ 4aec: 31 05 cpc r19, r1
+ 4aee: 31 f0 breq .+12 ; 0x4afc <malloc+0x46>
+ 4af0: d9 01 movw r26, r18
+ 4af2: 13 96 adiw r26, 0x03 ; 3
+ 4af4: 9c 93 st X, r25
+ 4af6: 8e 93 st -X, r24
+ 4af8: 12 97 sbiw r26, 0x02 ; 2
+ 4afa: 2b c0 rjmp .+86 ; 0x4b52 <malloc+0x9c>
+ 4afc: 90 93 8f 04 sts 0x048F, r25
+ 4b00: 80 93 8e 04 sts 0x048E, r24
+ 4b04: 26 c0 rjmp .+76 ; 0x4b52 <malloc+0x9c>
+ 4b06: 41 15 cp r20, r1
+ 4b08: 51 05 cpc r21, r1
+ 4b0a: 19 f0 breq .+6 ; 0x4b12 <malloc+0x5c>
+ 4b0c: 64 17 cp r22, r20
+ 4b0e: 75 07 cpc r23, r21
+ 4b10: 18 f4 brcc .+6 ; 0x4b18 <malloc+0x62>
+ 4b12: ab 01 movw r20, r22
+ 4b14: e9 01 movw r28, r18
+ 4b16: df 01 movw r26, r30
+ 4b18: 9f 01 movw r18, r30
+ 4b1a: 72 81 ldd r23, Z+2 ; 0x02
+ 4b1c: 63 81 ldd r22, Z+3 ; 0x03
+ 4b1e: e7 2f mov r30, r23
+ 4b20: f6 2f mov r31, r22
+ 4b22: 30 97 sbiw r30, 0x00 ; 0
+ 4b24: c1 f6 brne .-80 ; 0x4ad6 <malloc+0x20>
+ 4b26: 41 15 cp r20, r1
+ 4b28: 51 05 cpc r21, r1
+ 4b2a: 01 f1 breq .+64 ; 0x4b6c <malloc+0xb6>
+ 4b2c: 48 1b sub r20, r24
+ 4b2e: 59 0b sbc r21, r25
+ 4b30: 44 30 cpi r20, 0x04 ; 4
+ 4b32: 51 05 cpc r21, r1
+ 4b34: 80 f4 brcc .+32 ; 0x4b56 <malloc+0xa0>
+ 4b36: 12 96 adiw r26, 0x02 ; 2
+ 4b38: 8d 91 ld r24, X+
+ 4b3a: 9c 91 ld r25, X
+ 4b3c: 13 97 sbiw r26, 0x03 ; 3
+ 4b3e: 20 97 sbiw r28, 0x00 ; 0
+ 4b40: 19 f0 breq .+6 ; 0x4b48 <malloc+0x92>
+ 4b42: 9b 83 std Y+3, r25 ; 0x03
+ 4b44: 8a 83 std Y+2, r24 ; 0x02
+ 4b46: 04 c0 rjmp .+8 ; 0x4b50 <malloc+0x9a>
+ 4b48: 90 93 8f 04 sts 0x048F, r25
+ 4b4c: 80 93 8e 04 sts 0x048E, r24
+ 4b50: fd 01 movw r30, r26
+ 4b52: 32 96 adiw r30, 0x02 ; 2
+ 4b54: 46 c0 rjmp .+140 ; 0x4be2 <malloc+0x12c>
+ 4b56: fd 01 movw r30, r26
+ 4b58: e4 0f add r30, r20
+ 4b5a: f5 1f adc r31, r21
+ 4b5c: 81 93 st Z+, r24
+ 4b5e: 91 93 st Z+, r25
+ 4b60: 42 50 subi r20, 0x02 ; 2
+ 4b62: 50 40 sbci r21, 0x00 ; 0
+ 4b64: 11 96 adiw r26, 0x01 ; 1
+ 4b66: 5c 93 st X, r21
+ 4b68: 4e 93 st -X, r20
+ 4b6a: 3b c0 rjmp .+118 ; 0x4be2 <malloc+0x12c>
+ 4b6c: 20 91 8c 04 lds r18, 0x048C
+ 4b70: 30 91 8d 04 lds r19, 0x048D
+ 4b74: 21 15 cp r18, r1
+ 4b76: 31 05 cpc r19, r1
+ 4b78: 41 f4 brne .+16 ; 0x4b8a <malloc+0xd4>
+ 4b7a: 20 91 d8 02 lds r18, 0x02D8
+ 4b7e: 30 91 d9 02 lds r19, 0x02D9
+ 4b82: 30 93 8d 04 sts 0x048D, r19
+ 4b86: 20 93 8c 04 sts 0x048C, r18
+ 4b8a: 20 91 da 02 lds r18, 0x02DA
+ 4b8e: 30 91 db 02 lds r19, 0x02DB
+ 4b92: 21 15 cp r18, r1
+ 4b94: 31 05 cpc r19, r1
+ 4b96: 41 f4 brne .+16 ; 0x4ba8 <malloc+0xf2>
+ 4b98: 2d b7 in r18, 0x3d ; 61
+ 4b9a: 3e b7 in r19, 0x3e ; 62
+ 4b9c: 40 91 d6 02 lds r20, 0x02D6
+ 4ba0: 50 91 d7 02 lds r21, 0x02D7
+ 4ba4: 24 1b sub r18, r20
+ 4ba6: 35 0b sbc r19, r21
+ 4ba8: e0 91 8c 04 lds r30, 0x048C
+ 4bac: f0 91 8d 04 lds r31, 0x048D
+ 4bb0: e2 17 cp r30, r18
+ 4bb2: f3 07 cpc r31, r19
+ 4bb4: a0 f4 brcc .+40 ; 0x4bde <malloc+0x128>
+ 4bb6: 2e 1b sub r18, r30
+ 4bb8: 3f 0b sbc r19, r31
+ 4bba: 28 17 cp r18, r24
+ 4bbc: 39 07 cpc r19, r25
+ 4bbe: 78 f0 brcs .+30 ; 0x4bde <malloc+0x128>
+ 4bc0: ac 01 movw r20, r24
+ 4bc2: 4e 5f subi r20, 0xFE ; 254
+ 4bc4: 5f 4f sbci r21, 0xFF ; 255
+ 4bc6: 24 17 cp r18, r20
+ 4bc8: 35 07 cpc r19, r21
+ 4bca: 48 f0 brcs .+18 ; 0x4bde <malloc+0x128>
+ 4bcc: 4e 0f add r20, r30
+ 4bce: 5f 1f adc r21, r31
+ 4bd0: 50 93 8d 04 sts 0x048D, r21
+ 4bd4: 40 93 8c 04 sts 0x048C, r20
+ 4bd8: 81 93 st Z+, r24
+ 4bda: 91 93 st Z+, r25
+ 4bdc: 02 c0 rjmp .+4 ; 0x4be2 <malloc+0x12c>
+ 4bde: e0 e0 ldi r30, 0x00 ; 0
+ 4be0: f0 e0 ldi r31, 0x00 ; 0
+ 4be2: cf 01 movw r24, r30
+ 4be4: df 91 pop r29
+ 4be6: cf 91 pop r28
+ 4be8: 08 95 ret
+
+00004bea <free>:
+ 4bea: cf 93 push r28
+ 4bec: df 93 push r29
+ 4bee: 00 97 sbiw r24, 0x00 ; 0
+ 4bf0: 09 f4 brne .+2 ; 0x4bf4 <free+0xa>
+ 4bf2: 91 c0 rjmp .+290 ; 0x4d16 <free+0x12c>
+ 4bf4: fc 01 movw r30, r24
+ 4bf6: 32 97 sbiw r30, 0x02 ; 2
+ 4bf8: 13 82 std Z+3, r1 ; 0x03
+ 4bfa: 12 82 std Z+2, r1 ; 0x02
+ 4bfc: 60 91 8e 04 lds r22, 0x048E
+ 4c00: 70 91 8f 04 lds r23, 0x048F
+ 4c04: 61 15 cp r22, r1
+ 4c06: 71 05 cpc r23, r1
+ 4c08: 81 f4 brne .+32 ; 0x4c2a <free+0x40>
+ 4c0a: 20 81 ld r18, Z
+ 4c0c: 31 81 ldd r19, Z+1 ; 0x01
+ 4c0e: 28 0f add r18, r24
+ 4c10: 39 1f adc r19, r25
+ 4c12: 80 91 8c 04 lds r24, 0x048C
+ 4c16: 90 91 8d 04 lds r25, 0x048D
+ 4c1a: 82 17 cp r24, r18
+ 4c1c: 93 07 cpc r25, r19
+ 4c1e: 99 f5 brne .+102 ; 0x4c86 <free+0x9c>
+ 4c20: f0 93 8d 04 sts 0x048D, r31
+ 4c24: e0 93 8c 04 sts 0x048C, r30
+ 4c28: 76 c0 rjmp .+236 ; 0x4d16 <free+0x12c>
+ 4c2a: db 01 movw r26, r22
+ 4c2c: 80 e0 ldi r24, 0x00 ; 0
+ 4c2e: 90 e0 ldi r25, 0x00 ; 0
+ 4c30: 02 c0 rjmp .+4 ; 0x4c36 <free+0x4c>
+ 4c32: cd 01 movw r24, r26
+ 4c34: d9 01 movw r26, r18
+ 4c36: ae 17 cp r26, r30
+ 4c38: bf 07 cpc r27, r31
+ 4c3a: 48 f4 brcc .+18 ; 0x4c4e <free+0x64>
+ 4c3c: 12 96 adiw r26, 0x02 ; 2
+ 4c3e: 2d 91 ld r18, X+
+ 4c40: 3c 91 ld r19, X
+ 4c42: 13 97 sbiw r26, 0x03 ; 3
+ 4c44: 21 15 cp r18, r1
+ 4c46: 31 05 cpc r19, r1
+ 4c48: a1 f7 brne .-24 ; 0x4c32 <free+0x48>
+ 4c4a: cd 01 movw r24, r26
+ 4c4c: 21 c0 rjmp .+66 ; 0x4c90 <free+0xa6>
+ 4c4e: b3 83 std Z+3, r27 ; 0x03
+ 4c50: a2 83 std Z+2, r26 ; 0x02
+ 4c52: ef 01 movw r28, r30
+ 4c54: 49 91 ld r20, Y+
+ 4c56: 59 91 ld r21, Y+
+ 4c58: 9e 01 movw r18, r28
+ 4c5a: 24 0f add r18, r20
+ 4c5c: 35 1f adc r19, r21
+ 4c5e: a2 17 cp r26, r18
+ 4c60: b3 07 cpc r27, r19
+ 4c62: 79 f4 brne .+30 ; 0x4c82 <free+0x98>
+ 4c64: 2d 91 ld r18, X+
+ 4c66: 3c 91 ld r19, X
+ 4c68: 11 97 sbiw r26, 0x01 ; 1
+ 4c6a: 24 0f add r18, r20
+ 4c6c: 35 1f adc r19, r21
+ 4c6e: 2e 5f subi r18, 0xFE ; 254
+ 4c70: 3f 4f sbci r19, 0xFF ; 255
+ 4c72: 31 83 std Z+1, r19 ; 0x01
+ 4c74: 20 83 st Z, r18
+ 4c76: 12 96 adiw r26, 0x02 ; 2
+ 4c78: 2d 91 ld r18, X+
+ 4c7a: 3c 91 ld r19, X
+ 4c7c: 13 97 sbiw r26, 0x03 ; 3
+ 4c7e: 33 83 std Z+3, r19 ; 0x03
+ 4c80: 22 83 std Z+2, r18 ; 0x02
+ 4c82: 00 97 sbiw r24, 0x00 ; 0
+ 4c84: 29 f4 brne .+10 ; 0x4c90 <free+0xa6>
+ 4c86: f0 93 8f 04 sts 0x048F, r31
+ 4c8a: e0 93 8e 04 sts 0x048E, r30
+ 4c8e: 43 c0 rjmp .+134 ; 0x4d16 <free+0x12c>
+ 4c90: dc 01 movw r26, r24
+ 4c92: 13 96 adiw r26, 0x03 ; 3
+ 4c94: fc 93 st X, r31
+ 4c96: ee 93 st -X, r30
+ 4c98: 12 97 sbiw r26, 0x02 ; 2
+ 4c9a: 4d 91 ld r20, X+
+ 4c9c: 5d 91 ld r21, X+
+ 4c9e: a4 0f add r26, r20
+ 4ca0: b5 1f adc r27, r21
+ 4ca2: ea 17 cp r30, r26
+ 4ca4: fb 07 cpc r31, r27
+ 4ca6: 69 f4 brne .+26 ; 0x4cc2 <free+0xd8>
+ 4ca8: 20 81 ld r18, Z
+ 4caa: 31 81 ldd r19, Z+1 ; 0x01
+ 4cac: 24 0f add r18, r20
+ 4cae: 35 1f adc r19, r21
+ 4cb0: 2e 5f subi r18, 0xFE ; 254
+ 4cb2: 3f 4f sbci r19, 0xFF ; 255
+ 4cb4: ec 01 movw r28, r24
+ 4cb6: 39 83 std Y+1, r19 ; 0x01
+ 4cb8: 28 83 st Y, r18
+ 4cba: 22 81 ldd r18, Z+2 ; 0x02
+ 4cbc: 33 81 ldd r19, Z+3 ; 0x03
+ 4cbe: 3b 83 std Y+3, r19 ; 0x03
+ 4cc0: 2a 83 std Y+2, r18 ; 0x02
+ 4cc2: e0 e0 ldi r30, 0x00 ; 0
+ 4cc4: f0 e0 ldi r31, 0x00 ; 0
+ 4cc6: 02 c0 rjmp .+4 ; 0x4ccc <free+0xe2>
+ 4cc8: fb 01 movw r30, r22
+ 4cca: bc 01 movw r22, r24
+ 4ccc: db 01 movw r26, r22
+ 4cce: 12 96 adiw r26, 0x02 ; 2
+ 4cd0: 8d 91 ld r24, X+
+ 4cd2: 9c 91 ld r25, X
+ 4cd4: 13 97 sbiw r26, 0x03 ; 3
+ 4cd6: 00 97 sbiw r24, 0x00 ; 0
+ 4cd8: b9 f7 brne .-18 ; 0x4cc8 <free+0xde>
+ 4cda: 9b 01 movw r18, r22
+ 4cdc: 2e 5f subi r18, 0xFE ; 254
+ 4cde: 3f 4f sbci r19, 0xFF ; 255
+ 4ce0: 8d 91 ld r24, X+
+ 4ce2: 9c 91 ld r25, X
+ 4ce4: 11 97 sbiw r26, 0x01 ; 1
+ 4ce6: 82 0f add r24, r18
+ 4ce8: 93 1f adc r25, r19
+ 4cea: 40 91 8c 04 lds r20, 0x048C
+ 4cee: 50 91 8d 04 lds r21, 0x048D
+ 4cf2: 48 17 cp r20, r24
+ 4cf4: 59 07 cpc r21, r25
+ 4cf6: 79 f4 brne .+30 ; 0x4d16 <free+0x12c>
+ 4cf8: 30 97 sbiw r30, 0x00 ; 0
+ 4cfa: 29 f4 brne .+10 ; 0x4d06 <free+0x11c>
+ 4cfc: 10 92 8f 04 sts 0x048F, r1
+ 4d00: 10 92 8e 04 sts 0x048E, r1
+ 4d04: 02 c0 rjmp .+4 ; 0x4d0a <free+0x120>
+ 4d06: 13 82 std Z+3, r1 ; 0x03
+ 4d08: 12 82 std Z+2, r1 ; 0x02
+ 4d0a: 22 50 subi r18, 0x02 ; 2
+ 4d0c: 30 40 sbci r19, 0x00 ; 0
+ 4d0e: 30 93 8d 04 sts 0x048D, r19
+ 4d12: 20 93 8c 04 sts 0x048C, r18
+ 4d16: df 91 pop r29
+ 4d18: cf 91 pop r28
+ 4d1a: 08 95 ret
+
+00004d1c <do_random>:
+ 4d1c: a0 e0 ldi r26, 0x00 ; 0
+ 4d1e: b0 e0 ldi r27, 0x00 ; 0
+ 4d20: e4 e9 ldi r30, 0x94 ; 148
+ 4d22: f6 e2 ldi r31, 0x26 ; 38
+ 4d24: 0c 94 26 25 jmp 0x4a4c ; 0x4a4c <__prologue_saves__+0x10>
+ 4d28: ec 01 movw r28, r24
+ 4d2a: 68 81 ld r22, Y
+ 4d2c: 79 81 ldd r23, Y+1 ; 0x01
+ 4d2e: 8a 81 ldd r24, Y+2 ; 0x02
+ 4d30: 9b 81 ldd r25, Y+3 ; 0x03
+ 4d32: 61 15 cp r22, r1
+ 4d34: 71 05 cpc r23, r1
+ 4d36: 81 05 cpc r24, r1
+ 4d38: 91 05 cpc r25, r1
+ 4d3a: 21 f4 brne .+8 ; 0x4d44 <do_random+0x28>
+ 4d3c: 64 e2 ldi r22, 0x24 ; 36
+ 4d3e: 79 ed ldi r23, 0xD9 ; 217
+ 4d40: 8b e5 ldi r24, 0x5B ; 91
+ 4d42: 97 e0 ldi r25, 0x07 ; 7
+ 4d44: 2d e1 ldi r18, 0x1D ; 29
+ 4d46: 33 ef ldi r19, 0xF3 ; 243
+ 4d48: 41 e0 ldi r20, 0x01 ; 1
+ 4d4a: 50 e0 ldi r21, 0x00 ; 0
+ 4d4c: 0e 94 ef 24 call 0x49de ; 0x49de <__divmodsi4>
+ 4d50: 79 01 movw r14, r18
+ 4d52: 8a 01 movw r16, r20
+ 4d54: 27 ea ldi r18, 0xA7 ; 167
+ 4d56: 31 e4 ldi r19, 0x41 ; 65
+ 4d58: 40 e0 ldi r20, 0x00 ; 0
+ 4d5a: 50 e0 ldi r21, 0x00 ; 0
+ 4d5c: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 4d60: 5b 01 movw r10, r22
+ 4d62: 6c 01 movw r12, r24
+ 4d64: c8 01 movw r24, r16
+ 4d66: b7 01 movw r22, r14
+ 4d68: 2c ee ldi r18, 0xEC ; 236
+ 4d6a: 34 ef ldi r19, 0xF4 ; 244
+ 4d6c: 4f ef ldi r20, 0xFF ; 255
+ 4d6e: 5f ef ldi r21, 0xFF ; 255
+ 4d70: 0e 94 9b 24 call 0x4936 ; 0x4936 <__mulsi3>
+ 4d74: 9b 01 movw r18, r22
+ 4d76: ac 01 movw r20, r24
+ 4d78: 2a 0d add r18, r10
+ 4d7a: 3b 1d adc r19, r11
+ 4d7c: 4c 1d adc r20, r12
+ 4d7e: 5d 1d adc r21, r13
+ 4d80: 57 ff sbrs r21, 7
+ 4d82: 04 c0 rjmp .+8 ; 0x4d8c <do_random+0x70>
+ 4d84: 21 50 subi r18, 0x01 ; 1
+ 4d86: 30 40 sbci r19, 0x00 ; 0
+ 4d88: 40 40 sbci r20, 0x00 ; 0
+ 4d8a: 50 48 sbci r21, 0x80 ; 128
+ 4d8c: 28 83 st Y, r18
+ 4d8e: 39 83 std Y+1, r19 ; 0x01
+ 4d90: 4a 83 std Y+2, r20 ; 0x02
+ 4d92: 5b 83 std Y+3, r21 ; 0x03
+ 4d94: 5f 77 andi r21, 0x7F ; 127
+ 4d96: b9 01 movw r22, r18
+ 4d98: ca 01 movw r24, r20
+ 4d9a: cd b7 in r28, 0x3d ; 61
+ 4d9c: de b7 in r29, 0x3e ; 62
+ 4d9e: ea e0 ldi r30, 0x0A ; 10
+ 4da0: 0c 94 42 25 jmp 0x4a84 ; 0x4a84 <__epilogue_restores__+0x10>
+
+00004da4 <random_r>:
+ 4da4: 0e 94 8e 26 call 0x4d1c ; 0x4d1c <do_random>
+ 4da8: 08 95 ret
+
+00004daa <random>:
+ 4daa: 8c ed ldi r24, 0xDC ; 220
+ 4dac: 92 e0 ldi r25, 0x02 ; 2
+ 4dae: 0e 94 8e 26 call 0x4d1c ; 0x4d1c <do_random>
+ 4db2: 08 95 ret
+
+00004db4 <srandom>:
+ 4db4: 60 93 dc 02 sts 0x02DC, r22
+ 4db8: 70 93 dd 02 sts 0x02DD, r23
+ 4dbc: 80 93 de 02 sts 0x02DE, r24
+ 4dc0: 90 93 df 02 sts 0x02DF, r25
+ 4dc4: 08 95 ret
+
+00004dc6 <realloc>:
+ 4dc6: a0 e0 ldi r26, 0x00 ; 0
+ 4dc8: b0 e0 ldi r27, 0x00 ; 0
+ 4dca: e9 ee ldi r30, 0xE9 ; 233
+ 4dcc: f6 e2 ldi r31, 0x26 ; 38
+ 4dce: 0c 94 24 25 jmp 0x4a48 ; 0x4a48 <__prologue_saves__+0xc>
+ 4dd2: 8c 01 movw r16, r24
+ 4dd4: cb 01 movw r24, r22
+ 4dd6: 01 15 cp r16, r1
+ 4dd8: 11 05 cpc r17, r1
+ 4dda: 29 f4 brne .+10 ; 0x4de6 <realloc+0x20>
+ 4ddc: 0e 94 5b 25 call 0x4ab6 ; 0x4ab6 <malloc>
+ 4de0: 08 2f mov r16, r24
+ 4de2: 19 2f mov r17, r25
+ 4de4: b5 c0 rjmp .+362 ; 0x4f50 <realloc+0x18a>
+ 4de6: d8 01 movw r26, r16
+ 4de8: 12 97 sbiw r26, 0x02 ; 2
+ 4dea: 98 01 movw r18, r16
+ 4dec: 26 0f add r18, r22
+ 4dee: 37 1f adc r19, r23
+ 4df0: 2a 17 cp r18, r26
+ 4df2: 3b 07 cpc r19, r27
+ 4df4: 08 f4 brcc .+2 ; 0x4df8 <realloc+0x32>
+ 4df6: aa c0 rjmp .+340 ; 0x4f4c <realloc+0x186>
+ 4df8: ed 90 ld r14, X+
+ 4dfa: fc 90 ld r15, X
+ 4dfc: 11 97 sbiw r26, 0x01 ; 1
+ 4dfe: e6 16 cp r14, r22
+ 4e00: f7 06 cpc r15, r23
+ 4e02: d0 f0 brcs .+52 ; 0x4e38 <realloc+0x72>
+ 4e04: 45 e0 ldi r20, 0x05 ; 5
+ 4e06: e4 16 cp r14, r20
+ 4e08: f1 04 cpc r15, r1
+ 4e0a: 08 f4 brcc .+2 ; 0x4e0e <realloc+0x48>
+ 4e0c: a1 c0 rjmp .+322 ; 0x4f50 <realloc+0x18a>
+ 4e0e: a7 01 movw r20, r14
+ 4e10: 44 50 subi r20, 0x04 ; 4
+ 4e12: 50 40 sbci r21, 0x00 ; 0
+ 4e14: 46 17 cp r20, r22
+ 4e16: 57 07 cpc r21, r23
+ 4e18: 08 f4 brcc .+2 ; 0x4e1c <realloc+0x56>
+ 4e1a: 9a c0 rjmp .+308 ; 0x4f50 <realloc+0x18a>
+ 4e1c: a7 01 movw r20, r14
+ 4e1e: 42 50 subi r20, 0x02 ; 2
+ 4e20: 50 40 sbci r21, 0x00 ; 0
+ 4e22: 46 1b sub r20, r22
+ 4e24: 57 0b sbc r21, r23
+ 4e26: f9 01 movw r30, r18
+ 4e28: 41 93 st Z+, r20
+ 4e2a: 51 93 st Z+, r21
+ 4e2c: 6d 93 st X+, r22
+ 4e2e: 7c 93 st X, r23
+ 4e30: cf 01 movw r24, r30
+ 4e32: 0e 94 f5 25 call 0x4bea ; 0x4bea <free>
+ 4e36: 8c c0 rjmp .+280 ; 0x4f50 <realloc+0x18a>
+ 4e38: 5b 01 movw r10, r22
+ 4e3a: ae 18 sub r10, r14
+ 4e3c: bf 08 sbc r11, r15
+ 4e3e: 48 01 movw r8, r16
+ 4e40: 8e 0c add r8, r14
+ 4e42: 9f 1c adc r9, r15
+ 4e44: e0 91 8e 04 lds r30, 0x048E
+ 4e48: f0 91 8f 04 lds r31, 0x048F
+ 4e4c: cc 24 eor r12, r12
+ 4e4e: dd 24 eor r13, r13
+ 4e50: c0 e0 ldi r28, 0x00 ; 0
+ 4e52: d0 e0 ldi r29, 0x00 ; 0
+ 4e54: 41 c0 rjmp .+130 ; 0x4ed8 <realloc+0x112>
+ 4e56: e8 15 cp r30, r8
+ 4e58: f9 05 cpc r31, r9
+ 4e5a: 99 f5 brne .+102 ; 0x4ec2 <realloc+0xfc>
+ 4e5c: 60 81 ld r22, Z
+ 4e5e: 71 81 ldd r23, Z+1 ; 0x01
+ 4e60: ab 01 movw r20, r22
+ 4e62: 4e 5f subi r20, 0xFE ; 254
+ 4e64: 5f 4f sbci r21, 0xFF ; 255
+ 4e66: 4a 15 cp r20, r10
+ 4e68: 5b 05 cpc r21, r11
+ 4e6a: 58 f1 brcs .+86 ; 0x4ec2 <realloc+0xfc>
+ 4e6c: ab 01 movw r20, r22
+ 4e6e: 4a 19 sub r20, r10
+ 4e70: 5b 09 sbc r21, r11
+ 4e72: cc 24 eor r12, r12
+ 4e74: dd 24 eor r13, r13
+ 4e76: 68 94 set
+ 4e78: c1 f8 bld r12, 1
+ 4e7a: c4 0e add r12, r20
+ 4e7c: d5 1e adc r13, r21
+ 4e7e: 82 80 ldd r8, Z+2 ; 0x02
+ 4e80: a3 80 ldd r10, Z+3 ; 0x03
+ 4e82: e5 e0 ldi r30, 0x05 ; 5
+ 4e84: ce 16 cp r12, r30
+ 4e86: d1 04 cpc r13, r1
+ 4e88: 48 f0 brcs .+18 ; 0x4e9c <realloc+0xd6>
+ 4e8a: f9 01 movw r30, r18
+ 4e8c: 82 82 std Z+2, r8 ; 0x02
+ 4e8e: a3 82 std Z+3, r10 ; 0x03
+ 4e90: 51 83 std Z+1, r21 ; 0x01
+ 4e92: 40 83 st Z, r20
+ 4e94: 11 96 adiw r26, 0x01 ; 1
+ 4e96: 9c 93 st X, r25
+ 4e98: 8e 93 st -X, r24
+ 4e9a: 09 c0 rjmp .+18 ; 0x4eae <realloc+0xe8>
+ 4e9c: c7 01 movw r24, r14
+ 4e9e: 02 96 adiw r24, 0x02 ; 2
+ 4ea0: 86 0f add r24, r22
+ 4ea2: 97 1f adc r25, r23
+ 4ea4: 11 96 adiw r26, 0x01 ; 1
+ 4ea6: 9c 93 st X, r25
+ 4ea8: 8e 93 st -X, r24
+ 4eaa: e8 2d mov r30, r8
+ 4eac: fa 2d mov r31, r10
+ 4eae: 20 97 sbiw r28, 0x00 ; 0
+ 4eb0: 19 f0 breq .+6 ; 0x4eb8 <realloc+0xf2>
+ 4eb2: fb 83 std Y+3, r31 ; 0x03
+ 4eb4: ea 83 std Y+2, r30 ; 0x02
+ 4eb6: 4c c0 rjmp .+152 ; 0x4f50 <realloc+0x18a>
+ 4eb8: f0 93 8f 04 sts 0x048F, r31
+ 4ebc: e0 93 8e 04 sts 0x048E, r30
+ 4ec0: 47 c0 rjmp .+142 ; 0x4f50 <realloc+0x18a>
+ 4ec2: 40 81 ld r20, Z
+ 4ec4: 51 81 ldd r21, Z+1 ; 0x01
+ 4ec6: c4 16 cp r12, r20
+ 4ec8: d5 06 cpc r13, r21
+ 4eca: 08 f4 brcc .+2 ; 0x4ece <realloc+0x108>
+ 4ecc: 6a 01 movw r12, r20
+ 4ece: ef 01 movw r28, r30
+ 4ed0: 52 81 ldd r21, Z+2 ; 0x02
+ 4ed2: 43 81 ldd r20, Z+3 ; 0x03
+ 4ed4: e5 2f mov r30, r21
+ 4ed6: f4 2f mov r31, r20
+ 4ed8: 30 97 sbiw r30, 0x00 ; 0
+ 4eda: 09 f0 breq .+2 ; 0x4ede <realloc+0x118>
+ 4edc: bc cf rjmp .-136 ; 0x4e56 <realloc+0x90>
+ 4ede: 40 91 8c 04 lds r20, 0x048C
+ 4ee2: 50 91 8d 04 lds r21, 0x048D
+ 4ee6: 48 15 cp r20, r8
+ 4ee8: 59 05 cpc r21, r9
+ 4eea: e9 f4 brne .+58 ; 0x4f26 <realloc+0x160>
+ 4eec: c8 16 cp r12, r24
+ 4eee: d9 06 cpc r13, r25
+ 4ef0: d0 f4 brcc .+52 ; 0x4f26 <realloc+0x160>
+ 4ef2: 40 91 da 02 lds r20, 0x02DA
+ 4ef6: 50 91 db 02 lds r21, 0x02DB
+ 4efa: 41 15 cp r20, r1
+ 4efc: 51 05 cpc r21, r1
+ 4efe: 41 f4 brne .+16 ; 0x4f10 <realloc+0x14a>
+ 4f00: 4d b7 in r20, 0x3d ; 61
+ 4f02: 5e b7 in r21, 0x3e ; 62
+ 4f04: 60 91 d6 02 lds r22, 0x02D6
+ 4f08: 70 91 d7 02 lds r23, 0x02D7
+ 4f0c: 46 1b sub r20, r22
+ 4f0e: 57 0b sbc r21, r23
+ 4f10: 24 17 cp r18, r20
+ 4f12: 35 07 cpc r19, r21
+ 4f14: d8 f4 brcc .+54 ; 0x4f4c <realloc+0x186>
+ 4f16: 30 93 8d 04 sts 0x048D, r19
+ 4f1a: 20 93 8c 04 sts 0x048C, r18
+ 4f1e: 11 96 adiw r26, 0x01 ; 1
+ 4f20: 9c 93 st X, r25
+ 4f22: 8e 93 st -X, r24
+ 4f24: 15 c0 rjmp .+42 ; 0x4f50 <realloc+0x18a>
+ 4f26: 0e 94 5b 25 call 0x4ab6 ; 0x4ab6 <malloc>
+ 4f2a: c8 2e mov r12, r24
+ 4f2c: e6 01 movw r28, r12
+ 4f2e: 6e 01 movw r12, r28
+ 4f30: d9 2e mov r13, r25
+ 4f32: e6 01 movw r28, r12
+ 4f34: 20 97 sbiw r28, 0x00 ; 0
+ 4f36: 51 f0 breq .+20 ; 0x4f4c <realloc+0x186>
+ 4f38: 8c 2d mov r24, r12
+ 4f3a: b8 01 movw r22, r16
+ 4f3c: a7 01 movw r20, r14
+ 4f3e: 0e 94 fa 27 call 0x4ff4 ; 0x4ff4 <memcpy>
+ 4f42: c8 01 movw r24, r16
+ 4f44: 0e 94 f5 25 call 0x4bea ; 0x4bea <free>
+ 4f48: 86 01 movw r16, r12
+ 4f4a: 02 c0 rjmp .+4 ; 0x4f50 <realloc+0x18a>
+ 4f4c: 00 e0 ldi r16, 0x00 ; 0
+ 4f4e: 10 e0 ldi r17, 0x00 ; 0
+ 4f50: c8 01 movw r24, r16
+ 4f52: cd b7 in r28, 0x3d ; 61
+ 4f54: de b7 in r29, 0x3e ; 62
+ 4f56: ec e0 ldi r30, 0x0C ; 12
+ 4f58: 0c 94 40 25 jmp 0x4a80 ; 0x4a80 <__epilogue_restores__+0xc>
+
+00004f5c <atol>:
+ 4f5c: 1f 93 push r17
+ 4f5e: fc 01 movw r30, r24
+ 4f60: 99 27 eor r25, r25
+ 4f62: 88 27 eor r24, r24
+ 4f64: bc 01 movw r22, r24
+ 4f66: e8 94 clt
+ 4f68: 11 91 ld r17, Z+
+ 4f6a: 10 32 cpi r17, 0x20 ; 32
+ 4f6c: e9 f3 breq .-6 ; 0x4f68 <atol+0xc>
+ 4f6e: 19 30 cpi r17, 0x09 ; 9
+ 4f70: 10 f0 brcs .+4 ; 0x4f76 <atol+0x1a>
+ 4f72: 1e 30 cpi r17, 0x0E ; 14
+ 4f74: c8 f3 brcs .-14 ; 0x4f68 <atol+0xc>
+ 4f76: 1b 32 cpi r17, 0x2B ; 43
+ 4f78: 51 f0 breq .+20 ; 0x4f8e <atol+0x32>
+ 4f7a: 1d 32 cpi r17, 0x2D ; 45
+ 4f7c: 49 f4 brne .+18 ; 0x4f90 <atol+0x34>
+ 4f7e: 68 94 set
+ 4f80: 06 c0 rjmp .+12 ; 0x4f8e <atol+0x32>
+ 4f82: 0e 94 c7 28 call 0x518e ; 0x518e <__mulsi_const_10>
+ 4f86: 61 0f add r22, r17
+ 4f88: 71 1d adc r23, r1
+ 4f8a: 81 1d adc r24, r1
+ 4f8c: 91 1d adc r25, r1
+ 4f8e: 11 91 ld r17, Z+
+ 4f90: 10 53 subi r17, 0x30 ; 48
+ 4f92: 1a 30 cpi r17, 0x0A ; 10
+ 4f94: b0 f3 brcs .-20 ; 0x4f82 <atol+0x26>
+ 4f96: 3e f4 brtc .+14 ; 0x4fa6 <atol+0x4a>
+ 4f98: 90 95 com r25
+ 4f9a: 80 95 com r24
+ 4f9c: 70 95 com r23
+ 4f9e: 61 95 neg r22
+ 4fa0: 7f 4f sbci r23, 0xFF ; 255
+ 4fa2: 8f 4f sbci r24, 0xFF ; 255
+ 4fa4: 9f 4f sbci r25, 0xFF ; 255
+ 4fa6: 1f 91 pop r17
+ 4fa8: 08 95 ret
+
+00004faa <isspace>:
+ 4faa: 91 11 cpse r25, r1
+ 4fac: 40 c1 rjmp .+640 ; 0x522e <__ctype_isfalse>
+ 4fae: 80 32 cpi r24, 0x20 ; 32
+ 4fb0: 19 f0 breq .+6 ; 0x4fb8 <isspace+0xe>
+ 4fb2: 89 50 subi r24, 0x09 ; 9
+ 4fb4: 85 50 subi r24, 0x05 ; 5
+ 4fb6: d0 f7 brcc .-12 ; 0x4fac <isspace+0x2>
+ 4fb8: 08 95 ret
+
+00004fba <tolower>:
+ 4fba: 91 11 cpse r25, r1
+ 4fbc: 08 95 ret
+ 4fbe: 81 54 subi r24, 0x41 ; 65
+ 4fc0: 8a 51 subi r24, 0x1A ; 26
+ 4fc2: 08 f4 brcc .+2 ; 0x4fc6 <tolower+0xc>
+ 4fc4: 80 5e subi r24, 0xE0 ; 224
+ 4fc6: 85 5a subi r24, 0xA5 ; 165
+ 4fc8: 08 95 ret
+
+00004fca <toupper>:
+ 4fca: 91 11 cpse r25, r1
+ 4fcc: 08 95 ret
+ 4fce: 81 56 subi r24, 0x61 ; 97
+ 4fd0: 8a 51 subi r24, 0x1A ; 26
+ 4fd2: 08 f4 brcc .+2 ; 0x4fd6 <toupper+0xc>
+ 4fd4: 80 52 subi r24, 0x20 ; 32
+ 4fd6: 85 58 subi r24, 0x85 ; 133
+ 4fd8: 08 95 ret
+
+00004fda <memcmp>:
+ 4fda: fb 01 movw r30, r22
+ 4fdc: dc 01 movw r26, r24
+ 4fde: 04 c0 rjmp .+8 ; 0x4fe8 <memcmp+0xe>
+ 4fe0: 8d 91 ld r24, X+
+ 4fe2: 01 90 ld r0, Z+
+ 4fe4: 80 19 sub r24, r0
+ 4fe6: 21 f4 brne .+8 ; 0x4ff0 <memcmp+0x16>
+ 4fe8: 41 50 subi r20, 0x01 ; 1
+ 4fea: 50 40 sbci r21, 0x00 ; 0
+ 4fec: c8 f7 brcc .-14 ; 0x4fe0 <memcmp+0x6>
+ 4fee: 88 1b sub r24, r24
+ 4ff0: 99 0b sbc r25, r25
+ 4ff2: 08 95 ret
+
+00004ff4 <memcpy>:
+ 4ff4: fb 01 movw r30, r22
+ 4ff6: dc 01 movw r26, r24
+ 4ff8: 02 c0 rjmp .+4 ; 0x4ffe <memcpy+0xa>
+ 4ffa: 01 90 ld r0, Z+
+ 4ffc: 0d 92 st X+, r0
+ 4ffe: 41 50 subi r20, 0x01 ; 1
+ 5000: 50 40 sbci r21, 0x00 ; 0
+ 5002: d8 f7 brcc .-10 ; 0x4ffa <memcpy+0x6>
+ 5004: 08 95 ret
+
+00005006 <memmove>:
+ 5006: 68 17 cp r22, r24
+ 5008: 79 07 cpc r23, r25
+ 500a: 68 f4 brcc .+26 ; 0x5026 <memmove+0x20>
+ 500c: fb 01 movw r30, r22
+ 500e: dc 01 movw r26, r24
+ 5010: e4 0f add r30, r20
+ 5012: f5 1f adc r31, r21
+ 5014: a4 0f add r26, r20
+ 5016: b5 1f adc r27, r21
+ 5018: 02 c0 rjmp .+4 ; 0x501e <memmove+0x18>
+ 501a: 02 90 ld r0, -Z
+ 501c: 0e 92 st -X, r0
+ 501e: 41 50 subi r20, 0x01 ; 1
+ 5020: 50 40 sbci r21, 0x00 ; 0
+ 5022: d8 f7 brcc .-10 ; 0x501a <memmove+0x14>
+ 5024: 08 95 ret
+ 5026: 0c 94 fa 27 jmp 0x4ff4 ; 0x4ff4 <memcpy>
+
+0000502a <strchr>:
+ 502a: fc 01 movw r30, r24
+ 502c: 81 91 ld r24, Z+
+ 502e: 86 17 cp r24, r22
+ 5030: 21 f0 breq .+8 ; 0x503a <strchr+0x10>
+ 5032: 88 23 and r24, r24
+ 5034: d9 f7 brne .-10 ; 0x502c <strchr+0x2>
+ 5036: 99 27 eor r25, r25
+ 5038: 08 95 ret
+ 503a: 31 97 sbiw r30, 0x01 ; 1
+ 503c: cf 01 movw r24, r30
+ 503e: 08 95 ret
+
+00005040 <strcmp>:
+ 5040: fb 01 movw r30, r22
+ 5042: dc 01 movw r26, r24
+ 5044: 8d 91 ld r24, X+
+ 5046: 01 90 ld r0, Z+
+ 5048: 80 19 sub r24, r0
+ 504a: 01 10 cpse r0, r1
+ 504c: d9 f3 breq .-10 ; 0x5044 <strcmp+0x4>
+ 504e: 99 0b sbc r25, r25
+ 5050: 08 95 ret
+
+00005052 <strcpy>:
+ 5052: fb 01 movw r30, r22
+ 5054: dc 01 movw r26, r24
+ 5056: 01 90 ld r0, Z+
+ 5058: 0d 92 st X+, r0
+ 505a: 00 20 and r0, r0
+ 505c: e1 f7 brne .-8 ; 0x5056 <strcpy+0x4>
+ 505e: 08 95 ret
+
+00005060 <strncmp>:
+ 5060: fb 01 movw r30, r22
+ 5062: dc 01 movw r26, r24
+ 5064: 41 50 subi r20, 0x01 ; 1
+ 5066: 50 40 sbci r21, 0x00 ; 0
+ 5068: 30 f0 brcs .+12 ; 0x5076 <strncmp+0x16>
+ 506a: 8d 91 ld r24, X+
+ 506c: 01 90 ld r0, Z+
+ 506e: 80 19 sub r24, r0
+ 5070: 19 f4 brne .+6 ; 0x5078 <strncmp+0x18>
+ 5072: 00 20 and r0, r0
+ 5074: b9 f7 brne .-18 ; 0x5064 <strncmp+0x4>
+ 5076: 88 1b sub r24, r24
+ 5078: 99 0b sbc r25, r25
+ 507a: 08 95 ret
+
+0000507c <strncpy>:
+ 507c: fb 01 movw r30, r22
+ 507e: dc 01 movw r26, r24
+ 5080: 41 50 subi r20, 0x01 ; 1
+ 5082: 50 40 sbci r21, 0x00 ; 0
+ 5084: 48 f0 brcs .+18 ; 0x5098 <strncpy+0x1c>
+ 5086: 01 90 ld r0, Z+
+ 5088: 0d 92 st X+, r0
+ 508a: 00 20 and r0, r0
+ 508c: c9 f7 brne .-14 ; 0x5080 <strncpy+0x4>
+ 508e: 01 c0 rjmp .+2 ; 0x5092 <strncpy+0x16>
+ 5090: 1d 92 st X+, r1
+ 5092: 41 50 subi r20, 0x01 ; 1
+ 5094: 50 40 sbci r21, 0x00 ; 0
+ 5096: e0 f7 brcc .-8 ; 0x5090 <strncpy+0x14>
+ 5098: 08 95 ret
+
+0000509a <strrchr>:
+ 509a: fc 01 movw r30, r24
+ 509c: 81 e0 ldi r24, 0x01 ; 1
+ 509e: 90 e0 ldi r25, 0x00 ; 0
+ 50a0: 01 90 ld r0, Z+
+ 50a2: 06 16 cp r0, r22
+ 50a4: 09 f4 brne .+2 ; 0x50a8 <strrchr+0xe>
+ 50a6: cf 01 movw r24, r30
+ 50a8: 00 20 and r0, r0
+ 50aa: d1 f7 brne .-12 ; 0x50a0 <strrchr+0x6>
+ 50ac: 01 97 sbiw r24, 0x01 ; 1
+ 50ae: 08 95 ret
+
+000050b0 <strstr>:
+ 50b0: fb 01 movw r30, r22
+ 50b2: 51 91 ld r21, Z+
+ 50b4: 55 23 and r21, r21
+ 50b6: a9 f0 breq .+42 ; 0x50e2 <strstr+0x32>
+ 50b8: bf 01 movw r22, r30
+ 50ba: dc 01 movw r26, r24
+ 50bc: 4d 91 ld r20, X+
+ 50be: 45 17 cp r20, r21
+ 50c0: 41 11 cpse r20, r1
+ 50c2: e1 f7 brne .-8 ; 0x50bc <strstr+0xc>
+ 50c4: 59 f4 brne .+22 ; 0x50dc <strstr+0x2c>
+ 50c6: cd 01 movw r24, r26
+ 50c8: 01 90 ld r0, Z+
+ 50ca: 00 20 and r0, r0
+ 50cc: 49 f0 breq .+18 ; 0x50e0 <strstr+0x30>
+ 50ce: 4d 91 ld r20, X+
+ 50d0: 40 15 cp r20, r0
+ 50d2: 41 11 cpse r20, r1
+ 50d4: c9 f3 breq .-14 ; 0x50c8 <strstr+0x18>
+ 50d6: fb 01 movw r30, r22
+ 50d8: 41 11 cpse r20, r1
+ 50da: ef cf rjmp .-34 ; 0x50ba <strstr+0xa>
+ 50dc: 81 e0 ldi r24, 0x01 ; 1
+ 50de: 90 e0 ldi r25, 0x00 ; 0
+ 50e0: 01 97 sbiw r24, 0x01 ; 1
+ 50e2: 08 95 ret
+
+000050e4 <itoa>:
+ 50e4: fb 01 movw r30, r22
+ 50e6: 9f 01 movw r18, r30
+ 50e8: e8 94 clt
+ 50ea: 42 30 cpi r20, 0x02 ; 2
+ 50ec: c4 f0 brlt .+48 ; 0x511e <itoa+0x3a>
+ 50ee: 45 32 cpi r20, 0x25 ; 37
+ 50f0: b4 f4 brge .+44 ; 0x511e <itoa+0x3a>
+ 50f2: 4a 30 cpi r20, 0x0A ; 10
+ 50f4: 29 f4 brne .+10 ; 0x5100 <itoa+0x1c>
+ 50f6: 97 fb bst r25, 7
+ 50f8: 1e f4 brtc .+6 ; 0x5100 <itoa+0x1c>
+ 50fa: 90 95 com r25
+ 50fc: 81 95 neg r24
+ 50fe: 9f 4f sbci r25, 0xFF ; 255
+ 5100: 64 2f mov r22, r20
+ 5102: 77 27 eor r23, r23
+ 5104: 0e 94 0a 25 call 0x4a14 ; 0x4a14 <__udivmodhi4>
+ 5108: 80 5d subi r24, 0xD0 ; 208
+ 510a: 8a 33 cpi r24, 0x3A ; 58
+ 510c: 0c f0 brlt .+2 ; 0x5110 <itoa+0x2c>
+ 510e: 89 5d subi r24, 0xD9 ; 217
+ 5110: 81 93 st Z+, r24
+ 5112: cb 01 movw r24, r22
+ 5114: 00 97 sbiw r24, 0x00 ; 0
+ 5116: a1 f7 brne .-24 ; 0x5100 <itoa+0x1c>
+ 5118: 16 f4 brtc .+4 ; 0x511e <itoa+0x3a>
+ 511a: 5d e2 ldi r21, 0x2D ; 45
+ 511c: 51 93 st Z+, r21
+ 511e: 10 82 st Z, r1
+ 5120: c9 01 movw r24, r18
+ 5122: 0c 94 1a 29 jmp 0x5234 ; 0x5234 <strrev>
+
+00005126 <ltoa>:
+ 5126: fa 01 movw r30, r20
+ 5128: cf 93 push r28
+ 512a: ff 93 push r31
+ 512c: ef 93 push r30
+ 512e: 22 30 cpi r18, 0x02 ; 2
+ 5130: 44 f1 brlt .+80 ; 0x5182 <ltoa+0x5c>
+ 5132: 25 32 cpi r18, 0x25 ; 37
+ 5134: 34 f5 brge .+76 ; 0x5182 <ltoa+0x5c>
+ 5136: c2 2f mov r28, r18
+ 5138: e8 94 clt
+ 513a: ca 30 cpi r28, 0x0A ; 10
+ 513c: 49 f4 brne .+18 ; 0x5150 <ltoa+0x2a>
+ 513e: 97 fb bst r25, 7
+ 5140: 3e f4 brtc .+14 ; 0x5150 <ltoa+0x2a>
+ 5142: 90 95 com r25
+ 5144: 80 95 com r24
+ 5146: 70 95 com r23
+ 5148: 61 95 neg r22
+ 514a: 7f 4f sbci r23, 0xFF ; 255
+ 514c: 8f 4f sbci r24, 0xFF ; 255
+ 514e: 9f 4f sbci r25, 0xFF ; 255
+ 5150: 2c 2f mov r18, r28
+ 5152: 33 27 eor r19, r19
+ 5154: 44 27 eor r20, r20
+ 5156: 55 27 eor r21, r21
+ 5158: ff 93 push r31
+ 515a: ef 93 push r30
+ 515c: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 5160: ef 91 pop r30
+ 5162: ff 91 pop r31
+ 5164: 60 5d subi r22, 0xD0 ; 208
+ 5166: 6a 33 cpi r22, 0x3A ; 58
+ 5168: 0c f0 brlt .+2 ; 0x516c <ltoa+0x46>
+ 516a: 69 5d subi r22, 0xD9 ; 217
+ 516c: 61 93 st Z+, r22
+ 516e: b9 01 movw r22, r18
+ 5170: ca 01 movw r24, r20
+ 5172: 60 50 subi r22, 0x00 ; 0
+ 5174: 70 40 sbci r23, 0x00 ; 0
+ 5176: 80 40 sbci r24, 0x00 ; 0
+ 5178: 90 40 sbci r25, 0x00 ; 0
+ 517a: 51 f7 brne .-44 ; 0x5150 <ltoa+0x2a>
+ 517c: 16 f4 brtc .+4 ; 0x5182 <ltoa+0x5c>
+ 517e: cd e2 ldi r28, 0x2D ; 45
+ 5180: c1 93 st Z+, r28
+ 5182: 10 82 st Z, r1
+ 5184: 8f 91 pop r24
+ 5186: 9f 91 pop r25
+ 5188: cf 91 pop r28
+ 518a: 0c 94 1a 29 jmp 0x5234 ; 0x5234 <strrev>
+
+0000518e <__mulsi_const_10>:
+ 518e: 59 2f mov r21, r25
+ 5190: 48 2f mov r20, r24
+ 5192: 37 2f mov r19, r23
+ 5194: 26 2f mov r18, r22
+ 5196: 66 0f add r22, r22
+ 5198: 77 1f adc r23, r23
+ 519a: 88 1f adc r24, r24
+ 519c: 99 1f adc r25, r25
+ 519e: 66 0f add r22, r22
+ 51a0: 77 1f adc r23, r23
+ 51a2: 88 1f adc r24, r24
+ 51a4: 99 1f adc r25, r25
+ 51a6: 62 0f add r22, r18
+ 51a8: 73 1f adc r23, r19
+ 51aa: 84 1f adc r24, r20
+ 51ac: 95 1f adc r25, r21
+ 51ae: 66 0f add r22, r22
+ 51b0: 77 1f adc r23, r23
+ 51b2: 88 1f adc r24, r24
+ 51b4: 99 1f adc r25, r25
+ 51b6: 08 95 ret
+
+000051b8 <ultoa>:
+ 51b8: fa 01 movw r30, r20
+ 51ba: cf 93 push r28
+ 51bc: ff 93 push r31
+ 51be: ef 93 push r30
+ 51c0: 22 30 cpi r18, 0x02 ; 2
+ 51c2: cc f0 brlt .+50 ; 0x51f6 <ultoa+0x3e>
+ 51c4: 25 32 cpi r18, 0x25 ; 37
+ 51c6: bc f4 brge .+46 ; 0x51f6 <ultoa+0x3e>
+ 51c8: c2 2f mov r28, r18
+ 51ca: 2c 2f mov r18, r28
+ 51cc: 33 27 eor r19, r19
+ 51ce: 44 27 eor r20, r20
+ 51d0: 55 27 eor r21, r21
+ 51d2: ff 93 push r31
+ 51d4: ef 93 push r30
+ 51d6: 0e 94 cd 24 call 0x499a ; 0x499a <__udivmodsi4>
+ 51da: ef 91 pop r30
+ 51dc: ff 91 pop r31
+ 51de: 60 5d subi r22, 0xD0 ; 208
+ 51e0: 6a 33 cpi r22, 0x3A ; 58
+ 51e2: 0c f0 brlt .+2 ; 0x51e6 <ultoa+0x2e>
+ 51e4: 69 5d subi r22, 0xD9 ; 217
+ 51e6: 61 93 st Z+, r22
+ 51e8: b9 01 movw r22, r18
+ 51ea: ca 01 movw r24, r20
+ 51ec: 60 50 subi r22, 0x00 ; 0
+ 51ee: 70 40 sbci r23, 0x00 ; 0
+ 51f0: 80 40 sbci r24, 0x00 ; 0
+ 51f2: 90 40 sbci r25, 0x00 ; 0
+ 51f4: 51 f7 brne .-44 ; 0x51ca <ultoa+0x12>
+ 51f6: 10 82 st Z, r1
+ 51f8: 8f 91 pop r24
+ 51fa: 9f 91 pop r25
+ 51fc: cf 91 pop r28
+ 51fe: 0c 94 1a 29 jmp 0x5234 ; 0x5234 <strrev>
+
+00005202 <utoa>:
+ 5202: fb 01 movw r30, r22
+ 5204: 9f 01 movw r18, r30
+ 5206: 42 30 cpi r20, 0x02 ; 2
+ 5208: 74 f0 brlt .+28 ; 0x5226 <utoa+0x24>
+ 520a: 45 32 cpi r20, 0x25 ; 37
+ 520c: 64 f4 brge .+24 ; 0x5226 <utoa+0x24>
+ 520e: 64 2f mov r22, r20
+ 5210: 77 27 eor r23, r23
+ 5212: 0e 94 0a 25 call 0x4a14 ; 0x4a14 <__udivmodhi4>
+ 5216: 80 5d subi r24, 0xD0 ; 208
+ 5218: 8a 33 cpi r24, 0x3A ; 58
+ 521a: 0c f0 brlt .+2 ; 0x521e <utoa+0x1c>
+ 521c: 89 5d subi r24, 0xD9 ; 217
+ 521e: 81 93 st Z+, r24
+ 5220: cb 01 movw r24, r22
+ 5222: 00 97 sbiw r24, 0x00 ; 0
+ 5224: a1 f7 brne .-24 ; 0x520e <utoa+0xc>
+ 5226: 10 82 st Z, r1
+ 5228: c9 01 movw r24, r18
+ 522a: 0c 94 1a 29 jmp 0x5234 ; 0x5234 <strrev>
+
+0000522e <__ctype_isfalse>:
+ 522e: 99 27 eor r25, r25
+ 5230: 88 27 eor r24, r24
+
+00005232 <__ctype_istrue>:
+ 5232: 08 95 ret
+
+00005234 <strrev>:
+ 5234: dc 01 movw r26, r24
+ 5236: fc 01 movw r30, r24
+ 5238: 67 2f mov r22, r23
+ 523a: 71 91 ld r23, Z+
+ 523c: 77 23 and r23, r23
+ 523e: e1 f7 brne .-8 ; 0x5238 <strrev+0x4>
+ 5240: 32 97 sbiw r30, 0x02 ; 2
+ 5242: 04 c0 rjmp .+8 ; 0x524c <strrev+0x18>
+ 5244: 7c 91 ld r23, X
+ 5246: 6d 93 st X+, r22
+ 5248: 70 83 st Z, r23
+ 524a: 62 91 ld r22, -Z
+ 524c: ae 17 cp r26, r30
+ 524e: bf 07 cpc r27, r31
+ 5250: c8 f3 brcs .-14 ; 0x5244 <strrev+0x10>
+ 5252: 08 95 ret
+
+00005254 <_exit>:
+ 5254: f8 94 cli
+
+00005256 <__stop_program>:
+ 5256: ff cf rjmp .-2 ; 0x5256 <__stop_program>
diff --git a/ESS1995i2c/bin/Release/ESS1995i2c.elf.map b/ESS1995i2c/bin/Release/ESS1995i2c.elf.map
new file mode 100644
index 0000000..ed79f00
--- /dev/null
+++ b/ESS1995i2c/bin/Release/ESS1995i2c.elf.map
@@ -0,0 +1,1679 @@
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ obj/Release/arduinoSrc1_0/Stream.o (__mulsi3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__divmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__udivmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc1_0/WMath.o (__divmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ obj/Release/adapticsBT.o (__do_copy_data)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ obj/Release/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__do_global_ctors)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o (__fixunssfsi)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__addsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__mulsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__divsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o) (__gesf2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__ltsf2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__floatsisf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/arduinoSrc1_0/Print.o (__fixsfsi)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__floatunsisf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o) (__clzsi2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o) (__fpcmp_parts_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o) (__clz_tab)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduinoSrc1_0/new.o (malloc)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o (random)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o (realloc)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc1_0/WString.o (atol)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc1_0/WString.o (isspace)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc1_0/WString.o (tolower)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc1_0/WString.o (toupper)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ obj/Release/arduinoSrc1_0/IPAddress.o (memcmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (memcpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ obj/Release/arduinoSrc1_0/WString.o (memmove)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strchr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc1_0/WString.o (strcmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (strcpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc1_0/WString.o (strncmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (strncpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strrchr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strstr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (itoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (ltoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o) (__mulsi_const_10)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (ultoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (utoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o) (__ctype_isfalse)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o) (strrev)
+
+Allocating common symbols
+Common symbol size file
+
+__brkval 0x2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__flp 0x2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+fuse 0x00820000 0x00000400 rw !x
+lock 0x00830000 0x00000400 rw !x
+signature 0x00840000 0x00000400 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/adapticsBT.o
+LOAD obj/Release/main.o
+LOAD obj/Release/arduinoSrc1_0/CDC.o
+LOAD obj/Release/arduinoSrc1_0/HID.o
+LOAD obj/Release/arduinoSrc1_0/HardwareSerial.o
+LOAD obj/Release/arduinoSrc1_0/IPAddress.o
+LOAD obj/Release/arduinoSrc1_0/Print.o
+LOAD obj/Release/arduinoSrc1_0/Stream.o
+LOAD obj/Release/arduinoSrc1_0/Tone.o
+LOAD obj/Release/arduinoSrc1_0/USBCore.o
+LOAD obj/Release/arduinoSrc1_0/WInterrupts.o
+LOAD obj/Release/arduinoSrc1_0/WMath.o
+LOAD obj/Release/arduinoSrc1_0/WString.o
+LOAD obj/Release/arduinoSrc1_0/new.o
+LOAD obj/Release/arduinoSrc1_0/wiring.o
+LOAD obj/Release/arduinoSrc1_0/wiring_analog.o
+LOAD obj/Release/arduinoSrc1_0/wiring_digital.o
+LOAD obj/Release/arduinoSrc1_0/wiring_pulse.o
+LOAD obj/Release/arduinoSrc1_0/wiring_shift.o
+LOAD obj/Release/arduino_libs_1_0/Wire/Wire.o
+LOAD obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x5258
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x1 obj/Release/arduinoSrc1_0/Tone.o
+ .progmem.data 0x00000069 0x5a obj/Release/arduinoSrc1_0/wiring_digital.o
+ 0x00000069 port_to_mode_PGM
+ 0x00000073 port_to_output_PGM
+ 0x0000007d port_to_input_PGM
+ 0x00000087 digital_pin_to_port_PGM
+ 0x0000009b digital_pin_to_bit_mask_PGM
+ 0x000000af digital_pin_to_timer_PGM
+ 0x000000c4 . = ALIGN (0x2)
+ *fill* 0x000000c3 0x1 00
+ 0x000000c4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000c4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000c4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000c4 __ctors_start = .
+ *(.ctors)
+ .ctors 0x000000c4 0x2 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ .ctors 0x000000c6 0x2 obj/Release/arduinoSrc1_0/IPAddress.o
+ .ctors 0x000000c8 0x2 obj/Release/arduino_libs_1_0/Wire/Wire.o
+ 0x000000ca __ctors_end = .
+ 0x000000ca __dtors_start = .
+ *(.dtors)
+ 0x000000ca __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000ca 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x000000ca __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000ca 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000d6 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ 0x000000d6 __do_copy_data
+ .init4 0x000000ec 0x10 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ 0x000000ec __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000fc 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ 0x000000fc __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000112 0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x0000011a 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x0000011a __vector_22
+ 0x0000011a __vector_12
+ 0x0000011a __bad_interrupt
+ 0x0000011a __vector_6
+ 0x0000011a __vector_3
+ 0x0000011a __vector_23
+ 0x0000011a __vector_25
+ 0x0000011a __vector_11
+ 0x0000011a __vector_13
+ 0x0000011a __vector_17
+ 0x0000011a __vector_5
+ 0x0000011a __vector_4
+ 0x0000011a __vector_9
+ 0x0000011a __vector_21
+ 0x0000011a __vector_15
+ 0x0000011a __vector_8
+ 0x0000011a __vector_14
+ 0x0000011a __vector_10
+ 0x0000011a __vector_20
+ .text 0x0000011e 0x9a obj/Release/adapticsBT.o
+ 0x0000011e _Z9advertisev
+ 0x00000154 _Z14setupBlueToothv
+ .text 0x000001b8 0x2de obj/Release/main.o
+ 0x000001b8 main
+ .text 0x00000496 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .text 0x00000496 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .text 0x00000496 0x526 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x00000496 _ZN14HardwareSerial9availableEv
+ 0x000004bc _ZN14HardwareSerial4peekEv
+ 0x000004f4 _ZN14HardwareSerial4readEv
+ 0x00000538 _ZN14HardwareSerial5flushEv
+ 0x00000560 _ZN14HardwareSerial5writeEh
+ 0x000005d2 _Z10store_charhP11ring_buffer
+ 0x00000606 _Z11serialEventv
+ 0x00000608 __vector_18
+ 0x00000658 _Z14serialEventRunv
+ 0x0000066a __vector_19
+ 0x000006f8 _ZN14HardwareSerialC2EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh
+ 0x000006f8 _ZN14HardwareSerialC1EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh
+ 0x00000776 _ZN14HardwareSerial5beginEm
+ 0x00000894 _ZN14HardwareSerial3endEv
+ .text 0x000009bc 0x150 obj/Release/arduinoSrc1_0/IPAddress.o
+ 0x000009bc _ZNK9IPAddress7printToER5Print
+ 0x00000a42 _ZN9IPAddressC2Ev
+ 0x00000a42 _ZN9IPAddressC1Ev
+ 0x00000a56 _ZN9IPAddressC1Ehhhh
+ 0x00000a56 _ZN9IPAddressC2Ehhhh
+ 0x00000a6e _ZN9IPAddressC2Em
+ 0x00000a6e _ZN9IPAddressC1Em
+ 0x00000a82 _ZN9IPAddressC1EPKh
+ 0x00000a82 _ZN9IPAddressC2EPKh
+ 0x00000aa2 _ZN9IPAddressaSEPKh
+ 0x00000ac2 _ZN9IPAddressaSEm
+ 0x00000ace _ZN9IPAddresseqEPKh
+ .text 0x00000b0c 0x628 obj/Release/arduinoSrc1_0/Print.o
+ 0x00000b0c _ZN5Print5writeEPKhj
+ 0x00000b60 _ZN5Print5writeEPKc
+ 0x00000b82 _ZN5Print5printEPK19__FlashStringHelper
+ 0x00000bc8 _ZN5Print5printERK6String
+ 0x00000c2e _ZN5Print5printEPKc
+ 0x00000c34 _ZN5Print5printEc
+ 0x00000c44 _ZN5Print5printERK9Printable
+ 0x00000c5a _ZN5Print7printlnEv
+ 0x00000c84 _ZN5Print7printlnEPK19__FlashStringHelper
+ 0x00000caa _ZN5Print7printlnERK6String
+ 0x00000cd0 _ZN5Print7printlnEPKc
+ 0x00000cf6 _ZN5Print7printlnEc
+ 0x00000d1c _ZN5Print7printlnERK9Printable
+ 0x00000d42 _ZN5Print11printNumberEmh
+ 0x00000df6 _ZN5Print5printEmi
+ 0x00000e14 _ZN5Print7printlnEmi
+ 0x00000e3a _ZN5Print5printEji
+ 0x00000e48 _ZN5Print7printlnEji
+ 0x00000e76 _ZN5Print5printEhi
+ 0x00000e86 _ZN5Print7printlnEhi
+ 0x00000eb6 _ZN5Print5printEli
+ 0x00000f2c _ZN5Print7printlnEli
+ 0x00000f52 _ZN5Print5printEii
+ 0x00000f66 _ZN5Print7printlnEii
+ 0x00000f9c _ZN5Print10printFloatEdh
+ 0x00001108 _ZN5Print5printEdi
+ 0x0000110e _ZN5Print7printlnEdi
+ .text 0x00001134 0x4ee obj/Release/arduinoSrc1_0/Stream.o
+ 0x00001134 _ZN6Stream9timedReadEv
+ 0x0000118c _ZN6Stream9timedPeekEv
+ 0x000011e4 _ZN6Stream13peekNextDigitEv
+ 0x0000121c _ZN6Stream10setTimeoutEm
+ 0x00001228 _ZN6Stream9findUntilEPcjS0_j
+ 0x000012de _ZN6Stream9findUntilEPcS0_
+ 0x00001318 _ZN6Stream4findEPc
+ 0x00001322 _ZN6Stream4findEPcj
+ 0x00001338 _ZN6Stream8parseIntEc
+ 0x0000141a _ZN6Stream8parseIntEv
+ 0x00001422 _ZN6Stream10parseFloatEc
+ 0x0000156c _ZN6Stream10parseFloatEv
+ 0x00001574 _ZN6Stream9readBytesEPcj
+ 0x000015ba _ZN6Stream14readBytesUntilEcPcj
+ .text 0x00001622 0x544 obj/Release/arduinoSrc1_0/Tone.o
+ 0x00001622 _Z4tonehjm
+ 0x00001a40 _Z12disableTimerh
+ 0x00001a82 _Z6noToneh
+ 0x00001aae __vector_7
+ .text 0x00001b66 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .text 0x00001b66 0x114 obj/Release/arduinoSrc1_0/WInterrupts.o
+ 0x00001b66 attachInterrupt
+ 0x00001ba6 detachInterrupt
+ 0x00001bc6 __vector_1
+ 0x00001c20 __vector_2
+ .text 0x00001c7a 0x12a obj/Release/arduinoSrc1_0/WMath.o
+ 0x00001c7a _Z10randomSeedj
+ 0x00001c8a _Z6randoml
+ 0x00001cc6 _Z6randomll
+ 0x00001d02 _Z3maplllll
+ 0x00001d94 _Z8makeWordj
+ 0x00001d96 _Z8makeWordhh
+ .text 0x00001da4 0x1024 obj/Release/arduinoSrc1_0/WString.o
+ 0x00001da4 _ZN6StringD1Ev
+ 0x00001da4 _ZN6StringD2Ev
+ 0x00001db0 _ZN6String10invalidateEv
+ 0x00001dd4 _ZN6String12changeBufferEj
+ 0x00001e08 _ZN6String7reserveEj
+ 0x00001e46 _ZN6String4copyEPKcj
+ 0x00001e88 _ZN6StringC1EPKc
+ 0x00001e88 _ZN6StringC2EPKc
+ 0x00001ebe _ZN6StringaSERKS_
+ 0x00001ef4 _ZN6StringC1ERKS_
+ 0x00001ef4 _ZN6StringC2ERKS_
+ 0x00001f0a _ZN6StringaSEPKc
+ 0x00001f3a _ZN6StringC2Emh
+ 0x00001f3a _ZN6StringC1Emh
+ 0x00001f9c _ZN6StringC1Elh
+ 0x00001f9c _ZN6StringC2Elh
+ 0x00001ffe _ZN6StringC2Ejh
+ 0x00001ffe _ZN6StringC1Ejh
+ 0x0000205e _ZN6StringC1Eih
+ 0x0000205e _ZN6StringC2Eih
+ 0x000020be _ZN6StringC1Ehh
+ 0x000020be _ZN6StringC2Ehh
+ 0x00002120 _ZN6StringC2Ec
+ 0x00002120 _ZN6StringC1Ec
+ 0x00002152 _ZN6String6concatEPKcj
+ 0x000021aa _ZN6String6concatERKS_
+ 0x000021ba _ZN6String6concatEPKc
+ 0x000021dc _ZN6String6concatEc
+ 0x00002202 _ZN6String6concatEh
+ 0x0000225c _ZN6String6concatEi
+ 0x000022c0 _ZN6String6concatEj
+ 0x0000231e _ZN6String6concatEl
+ 0x00002384 _ZN6String6concatEm
+ 0x000023ea _ZplRK15StringSumHelperRK6String
+ 0x00002410 _ZplRK15StringSumHelperPKc
+ 0x00002444 _ZplRK15StringSumHelperc
+ 0x00002460 _ZplRK15StringSumHelperh
+ 0x0000247c _ZplRK15StringSumHelperi
+ 0x00002498 _ZplRK15StringSumHelperj
+ 0x000024b4 _ZplRK15StringSumHelperl
+ 0x000024d0 _ZplRK15StringSumHelperm
+ 0x000024ec _ZNK6String9compareToERKS_
+ 0x00002558 _ZNK6String6equalsERKS_
+ 0x0000257a _ZNK6String6equalsEPKc
+ 0x000025c0 _ZNK6StringltERKS_
+ 0x000025ce _ZNK6StringgtERKS_
+ 0x000025e0 _ZNK6StringleERKS_
+ 0x000025f2 _ZNK6StringgeERKS_
+ 0x00002602 _ZNK6String16equalsIgnoreCaseERKS_
+ 0x00002676 _ZNK6String10startsWithERKS_j
+ 0x000026c2 _ZNK6String10startsWithERKS_
+ 0x000026e2 _ZNK6String8endsWithERKS_
+ 0x0000272c _ZN6String9setCharAtEjc
+ 0x00002746 _ZN6StringixEj
+ 0x0000276c _ZNK6StringixEj
+ 0x00002792 _ZNK6String6charAtEj
+ 0x00002798 _ZNK6String8getBytesEPhjj
+ 0x000027f0 _ZNK6String7indexOfEcj
+ 0x0000282c _ZNK6String7indexOfEc
+ 0x00002836 _ZNK6String7indexOfERKS_j
+ 0x00002872 _ZNK6String7indexOfERKS_
+ 0x0000287c _ZNK6String11lastIndexOfEcj
+ 0x000028ea _ZNK6String11lastIndexOfEc
+ 0x000028fa _ZNK6String11lastIndexOfERKS_j
+ 0x00002994 _ZNK6String11lastIndexOfERKS_
+ 0x000029aa _ZNK6String9substringEjj
+ 0x00002a4c _ZNK6String9substringEj
+ 0x00002a64 _ZN6String7replaceEcc
+ 0x00002a82 _ZN6String7replaceERKS_S1_
+ 0x00002c96 _ZN6String11toLowerCaseEv
+ 0x00002cbe _ZN6String11toUpperCaseEv
+ 0x00002ce6 _ZN6String4trimEv
+ 0x00002da8 _ZNK6String5toIntEv
+ .text 0x00002dc8 0x2c obj/Release/arduinoSrc1_0/new.o
+ 0x00002dc8 _Znwj
+ 0x00002dce _ZdlPv
+ 0x00002dd4 __cxa_guard_acquire
+ 0x00002de8 __cxa_guard_release
+ 0x00002df0 __cxa_guard_abort
+ 0x00002df2 __cxa_pure_virtual
+ .text 0x00002df4 0x1e8 obj/Release/arduinoSrc1_0/wiring.o
+ 0x00002df4 __vector_16
+ 0x00002e9c millis
+ 0x00002eb8 micros
+ 0x00002f04 delay
+ 0x00002f52 delayMicroseconds
+ 0x00002f66 init
+ .text 0x00002fdc 0x108 obj/Release/arduinoSrc1_0/wiring_analog.o
+ 0x00002fdc analogReference
+ 0x00002fe2 analogRead
+ 0x00003024 analogWrite
+ .text 0x000030e4 0x166 obj/Release/arduinoSrc1_0/wiring_digital.o
+ 0x0000313e pinMode
+ 0x00003186 digitalWrite
+ 0x000031f6 digitalRead
+ .text 0x0000324a 0x130 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ 0x0000324a pulseIn
+ .text 0x0000337a 0x10a obj/Release/arduinoSrc1_0/wiring_shift.o
+ 0x0000337a shiftIn
+ 0x000033fe shiftOut
+ .text 0x00003484 0x288 obj/Release/arduino_libs_1_0/Wire/Wire.o
+ 0x00003484 _ZN7TwoWire9availableEv
+ 0x00003496 _ZN7TwoWire4readEv
+ 0x000034be _ZN7TwoWire4peekEv
+ 0x000034de _ZN7TwoWire5flushEv
+ 0x000034e0 _ZN7TwoWire16onReceiveServiceEPhi
+ 0x00003530 _ZN7TwoWire16onRequestServiceEv
+ 0x00003548 _ZN7TwoWire5writeEPKhj
+ 0x000035ac _ZN7TwoWire5writeEh
+ 0x0000360c _ZN7TwoWireC2Ev
+ 0x0000360c _ZN7TwoWireC1Ev
+ 0x0000362c _ZN7TwoWire5beginEv
+ 0x00003642 _ZN7TwoWire5beginEh
+ 0x0000366a _ZN7TwoWire5beginEi
+ 0x00003670 _ZN7TwoWire11requestFromEhh
+ 0x0000368a _ZN7TwoWire11requestFromEii
+ 0x00003690 _ZN7TwoWire17beginTransmissionEh
+ 0x000036a4 _ZN7TwoWire17beginTransmissionEi
+ 0x000036aa _ZN7TwoWire15endTransmissionEv
+ 0x000036ca _ZN7TwoWire9onReceiveEPFviE
+ 0x000036d4 _ZN7TwoWire9onRequestEPFvvE
+ .text 0x0000370c 0x44a obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ 0x0000370c twi_init
+ 0x0000373e twi_setAddress
+ 0x00003746 twi_readFrom
+ 0x000037b2 twi_writeTo
+ 0x00003832 twi_transmit
+ 0x00003866 twi_attachSlaveRxEvent
+ 0x00003870 twi_attachSlaveTxEvent
+ 0x0000387a twi_reply
+ 0x0000388a twi_stop
+ 0x0000389e twi_releaseBus
+ 0x000038aa __vector_24
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00003b56 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text 0x00003b56 0x58 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ 0x00003b56 __fixunssfsi
+ .text 0x00003bae 0x350 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ 0x00003e42 __addsf3
+ 0x00003e9c __subsf3
+ .text 0x00003efe 0x1f4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ 0x00003efe __mulsf3
+ .text 0x000040f2 0x15c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ 0x000040f2 __divsf3
+ .text 0x0000424e 0x60 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ 0x0000424e __gesf2
+ .text 0x000042ae 0x60 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ 0x000042ae __ltsf2
+ .text 0x0000430e 0xc0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ 0x0000430e __floatsisf
+ .text 0x000043ce 0xa4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ 0x000043ce __fixsfsi
+ .text 0x00004472 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00004472 0xf0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ 0x00004472 __floatunsisf
+ .text 0x00004562 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00004562 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .text 0x00004562 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .text 0x00004562 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .text 0x00004562 0xb4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ 0x00004562 __clzsi2
+ .text 0x00004616 0x19c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ 0x00004616 __pack_f
+ .text 0x000047b2 0xd2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ 0x000047b2 __unpack_f
+ .text 0x00004884 0xb2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ 0x00004884 __fpcmp_parts_f
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .text 0x00004936 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x00004936 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00004936 0x3e /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ 0x00004936 __mulsi3
+ .text.libgcc 0x00004974 0x26 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ 0x00004974 __divmodhi4
+ 0x00004974 _div
+ .text.libgcc 0x0000499a 0x44 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000499a __udivmodsi4
+ .text.libgcc 0x000049de 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ 0x000049de __divmodsi4
+ .text.libgcc 0x00004a14 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00004a14 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00004a14 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x00004a14 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x00004a14 0x28 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00004a14 __udivmodhi4
+ .text.libgcc 0x00004a3c 0x38 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ 0x00004a3c __prologue_saves__
+ .text.libgcc 0x00004a74 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ 0x00004a74 __epilogue_restores__
+ .text.libgcc 0x00004aaa 0xc /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ 0x00004aaa __tablejump2__
+ 0x00004aae __tablejump__
+ .text.avr-libc
+ 0x00004ab6 0x266 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00004ab6 malloc
+ 0x00004bea free
+ .text.avr-libc
+ 0x00004d1c 0xaa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ 0x00004da4 random_r
+ 0x00004daa random
+ 0x00004db4 srandom
+ .text.avr-libc
+ 0x00004dc6 0x196 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x00004dc6 realloc
+ .text.avr-libc
+ 0x00004f5c 0x4e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x00004f5c atol
+ .text.avr-libc
+ 0x00004faa 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0x00004faa isspace
+ .text.avr-libc
+ 0x00004fba 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0x00004fba tolower
+ .text.avr-libc
+ 0x00004fca 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0x00004fca toupper
+ .text.avr-libc
+ 0x00004fda 0x1a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ 0x00004fda memcmp
+ .text.avr-libc
+ 0x00004ff4 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x00004ff4 memcpy
+ .text.avr-libc
+ 0x00005006 0x24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ 0x00005006 memmove
+ .text.avr-libc
+ 0x0000502a 0x16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0x0000502a strchr
+ .text.avr-libc
+ 0x00005040 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x00005040 strcmp
+ .text.avr-libc
+ 0x00005052 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x00005052 strcpy
+ .text.avr-libc
+ 0x00005060 0x1c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0x00005060 strncmp
+ .text.avr-libc
+ 0x0000507c 0x1e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x0000507c strncpy
+ .text.avr-libc
+ 0x0000509a 0x16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0x0000509a strrchr
+ .text.avr-libc
+ 0x000050b0 0x34 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x000050b0 strstr
+ .text.avr-libc
+ 0x000050e4 0x42 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x000050e4 itoa
+ .text.avr-libc
+ 0x00005126 0x68 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x00005126 ltoa
+ .text.avr-libc
+ 0x0000518e 0x2a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x0000518e __mulsi_const_10
+ .text.avr-libc
+ 0x000051b8 0x4a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x000051b8 ultoa
+ .text.avr-libc
+ 0x00005202 0x2c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ 0x00005202 utoa
+ .text.avr-libc
+ 0x0000522e 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x0000522e __ctype_isfalse
+ 0x00005232 __ctype_istrue
+ .text.avr-libc
+ 0x00005234 0x20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x00005234 strrev
+ 0x00005254 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00005254 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ 0x00005254 exit
+ 0x00005254 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00005254 0x4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00005258 _etext = .
+
+.data 0x00800100 0x1e0 load address 0x00005258
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x72 obj/Release/adapticsBT.o
+ .data 0x00800172 0x3 obj/Release/main.o
+ 0x00800172 packetSize
+ .data 0x00800175 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .data 0x00800175 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .data 0x00800175 0x20 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x00800175 _ZTV14HardwareSerial
+ 0x00800185 _ZTV6Stream
+ .data 0x00800195 0xc obj/Release/arduinoSrc1_0/IPAddress.o
+ 0x00800195 _ZTV9IPAddress
+ 0x0080019b _ZTV9Printable
+ .data 0x008001a1 0xa obj/Release/arduinoSrc1_0/Print.o
+ 0x008001a3 _ZTV5Print
+ .data 0x008001ab 0x0 obj/Release/arduinoSrc1_0/Stream.o
+ .data 0x008001ab 0x1 obj/Release/arduinoSrc1_0/Tone.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/WInterrupts.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/WMath.o
+ .data 0x008001ac 0x1 obj/Release/arduinoSrc1_0/WString.o
+ .data 0x008001ad 0x0 obj/Release/arduinoSrc1_0/new.o
+ .data 0x008001ad 0x0 obj/Release/arduinoSrc1_0/wiring.o
+ .data 0x008001ad 0x1 obj/Release/arduinoSrc1_0/wiring_analog.o
+ 0x008001ad analog_reference
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_digital.o
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_shift.o
+ .data 0x008001ae 0x20 obj/Release/arduino_libs_1_0/Wire/Wire.o
+ 0x008001ae _ZTV7TwoWire
+ .data 0x008001ce 0x0 obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ .data 0x008001ce 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x008001ce 0x8 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ 0x008001ce __thenan_sf
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x008001d6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .data 0x008001d6 0x100 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ 0x008001d6 __clz_tab
+ .data 0x008002d6 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002d6 __malloc_margin
+ 0x008002d8 __malloc_heap_start
+ 0x008002da __malloc_heap_end
+ .data 0x008002dc 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .data 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x008002e0 . = ALIGN (0x2)
+ 0x008002e0 _edata = .
+ 0x008002e0 PROVIDE (__data_end, .)
+
+.bss 0x008002e0 0x1b0
+ 0x008002e0 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x008002e0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x008002e0 0x0 obj/Release/adapticsBT.o
+ .bss 0x008002e0 0x1a obj/Release/main.o
+ 0x008002e0 connected
+ 0x008002e1 data
+ 0x008002eb CB_SHBP
+ 0x008002ec CB_function
+ 0x008002ed CB_VARCrange
+ 0x008002ee CB_FREQrange
+ 0x008002ef CB_BUZfreq
+ 0x008002f0 CB_ADCrate
+ 0x008002f1 CB_ACmode
+ 0x008002f2 CB_PEAKmode
+ 0x008002f3 CB_PCALmode
+ 0x008002f4 CB_LPFbw
+ 0x008002f5 CB_EXTdiode
+ 0x008002f6 CB_OPconf
+ 0x008002f7 CB_FREQinprest
+ 0x008002f8 CB_ADPext
+ 0x008002f9 CB_DCfs
+ .bss 0x008002fa 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .bss 0x008002fa 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .bss 0x008002fa 0xa7 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x008002fa rx_buffer
+ 0x0080033e tx_buffer
+ 0x00800382 Serial
+ .bss 0x008003a1 0x6 obj/Release/arduinoSrc1_0/IPAddress.o
+ .bss 0x008003a7 0x0 obj/Release/arduinoSrc1_0/Print.o
+ .bss 0x008003a7 0x0 obj/Release/arduinoSrc1_0/Stream.o
+ .bss 0x008003a7 0x15 obj/Release/arduinoSrc1_0/Tone.o
+ 0x008003a7 timer0_toggle_count
+ 0x008003ab timer0_pin_port
+ 0x008003ad timer0_pin_mask
+ 0x008003ae timer1_toggle_count
+ 0x008003b2 timer1_pin_port
+ 0x008003b4 timer1_pin_mask
+ 0x008003b5 timer2_toggle_count
+ 0x008003b9 timer2_pin_port
+ 0x008003bb timer2_pin_mask
+ .bss 0x008003bc 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .bss 0x008003bc 0x4 obj/Release/arduinoSrc1_0/WInterrupts.o
+ .bss 0x008003c0 0x0 obj/Release/arduinoSrc1_0/WMath.o
+ .bss 0x008003c0 0x1 obj/Release/arduinoSrc1_0/WString.o
+ .bss 0x008003c1 0x0 obj/Release/arduinoSrc1_0/new.o
+ .bss 0x008003c1 0x9 obj/Release/arduinoSrc1_0/wiring.o
+ 0x008003c1 timer0_overflow_count
+ 0x008003c5 timer0_millis
+ .bss 0x008003ca 0x0 obj/Release/arduinoSrc1_0/wiring_analog.o
+ .bss 0x008003ca 0x0 obj/Release/arduinoSrc1_0/wiring_digital.o
+ .bss 0x008003ca 0x0 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ .bss 0x008003ca 0x0 obj/Release/arduinoSrc1_0/wiring_shift.o
+ .bss 0x008003ca 0x56 obj/Release/arduino_libs_1_0/Wire/Wire.o
+ 0x008003ca _ZN7TwoWire8rxBufferE
+ 0x008003ea _ZN7TwoWire13rxBufferIndexE
+ 0x008003eb _ZN7TwoWire14rxBufferLengthE
+ 0x008003ec _ZN7TwoWire9txAddressE
+ 0x008003ed _ZN7TwoWire8txBufferE
+ 0x0080040d _ZN7TwoWire13txBufferIndexE
+ 0x0080040e _ZN7TwoWire14txBufferLengthE
+ 0x0080040f _ZN7TwoWire12transmittingE
+ 0x00800410 _ZN7TwoWire14user_onRequestE
+ 0x00800412 _ZN7TwoWire14user_onReceiveE
+ 0x00800414 Wire
+ .bss 0x00800420 0x6c obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .bss 0x0080048c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x0080048c 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x0080048c __brkval
+ 0x0080048e __flp
+ 0x00800490 PROVIDE (__bss_end, .)
+ 0x00005258 __data_load_start = LOADADDR (.data)
+ 0x00005438 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800490 0x0
+ 0x00800490 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800490 PROVIDE (__noinit_end, .)
+ 0x00800490 _end = .
+ 0x00800490 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x2928
+ *(.stab)
+ .stab 0x00000000 0x6cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006cc 0x750 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x75c (size before relaxing)
+ .stab 0x00000e1c 0x2d0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ 0x330 (size before relaxing)
+ .stab 0x000010ec 0x3cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x5c4 (size before relaxing)
+ .stab 0x000014b8 0x1e0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x1ec (size before relaxing)
+ .stab 0x00001698 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001734 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000017d0 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0xa8 (size before relaxing)
+ .stab 0x0000186c 0xb4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ 0xc0 (size before relaxing)
+ .stab 0x00001920 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x90 (size before relaxing)
+ .stab 0x000019a4 0xe4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00001a88 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001b24 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001ba8 0x6c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x78 (size before relaxing)
+ .stab 0x00001c14 0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0xcc (size before relaxing)
+ .stab 0x00001cd4 0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0xd8 (size before relaxing)
+ .stab 0x00001da0 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001e3c 0x150 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x15c (size before relaxing)
+ .stab 0x00001f8c 0x1b0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x1bc (size before relaxing)
+ .stab 0x0000213c 0x294 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x2a0 (size before relaxing)
+ .stab 0x000023d0 0x114 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x120 (size before relaxing)
+ .stab 0x000024e4 0x1e0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x1ec (size before relaxing)
+ .stab 0x000026c4 0x12c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ 0x138 (size before relaxing)
+ .stab 0x000027f0 0x60 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x6c (size before relaxing)
+ .stab 0x00002850 0xd8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0xe4 (size before relaxing)
+
+.stabstr 0x00000000 0xd28
+ *(.stabstr)
+ .stabstr 0x00000000 0xd28 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Release/ESS1995i2c.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+CB_ACmode obj/Release/main.o
+CB_ADCrate obj/Release/main.o
+CB_ADPext obj/Release/main.o
+CB_BUZfreq obj/Release/main.o
+CB_DCfs obj/Release/main.o
+CB_EXTdiode obj/Release/main.o
+CB_FREQinprest obj/Release/main.o
+CB_FREQrange obj/Release/main.o
+CB_LPFbw obj/Release/main.o
+CB_OPconf obj/Release/main.o
+CB_PCALmode obj/Release/main.o
+CB_PEAKmode obj/Release/main.o
+CB_SHBP obj/Release/main.o
+CB_VARCrange obj/Release/main.o
+CB_function obj/Release/main.o
+HardwareSerial::HardwareSerial(ring_buffer*, ring_buffer*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::HardwareSerial(ring_buffer*, ring_buffer*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::available() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::begin(unsigned long) obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::end() obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::flush() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::peek() obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::read() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::write(unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+IPAddress::IPAddress() obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress() obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator=(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator=(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator==(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::printTo(Print&) const obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(Printable const&) obj/Release/arduinoSrc1_0/Print.o
+Print::print(String const&) obj/Release/arduinoSrc1_0/Print.o
+Print::print(__FlashStringHelper const*) obj/Release/arduinoSrc1_0/Print.o
+Print::print(char const*) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/adapticsBT.o
+Print::print(char) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(double, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(unsigned char, int) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(unsigned int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(unsigned long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::printFloat(double, unsigned char) obj/Release/arduinoSrc1_0/Print.o
+Print::printNumber(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/Print.o
+Print::println() obj/Release/arduinoSrc1_0/Print.o
+Print::println(Printable const&) obj/Release/arduinoSrc1_0/Print.o
+Print::println(String const&) obj/Release/arduinoSrc1_0/Print.o
+Print::println(__FlashStringHelper const*) obj/Release/arduinoSrc1_0/Print.o
+Print::println(char const*) obj/Release/arduinoSrc1_0/Print.o
+Print::println(char) obj/Release/arduinoSrc1_0/Print.o
+Print::println(double, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned char, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::write(char const*) obj/Release/arduinoSrc1_0/Print.o
+Print::write(unsigned char const*, unsigned int) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+Serial obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+Stream::find(char*) obj/Release/arduinoSrc1_0/Stream.o
+Stream::find(char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::findUntil(char*, char*) obj/Release/arduinoSrc1_0/Stream.o
+Stream::findUntil(char*, unsigned int, char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseFloat() obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseFloat(char) obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseInt() obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseInt(char) obj/Release/arduinoSrc1_0/Stream.o
+Stream::peekNextDigit() obj/Release/arduinoSrc1_0/Stream.o
+Stream::readBytes(char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::readBytesUntil(char, char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::setTimeout(unsigned long) obj/Release/arduinoSrc1_0/Stream.o
+Stream::timedPeek() obj/Release/arduinoSrc1_0/Stream.o
+Stream::timedRead() obj/Release/arduinoSrc1_0/Stream.o
+String::String(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::String(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::String(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::String(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::String(char) obj/Release/arduinoSrc1_0/WString.o
+String::String(char) obj/Release/arduinoSrc1_0/WString.o
+String::String(int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::changeBuffer(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::charAt(unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::compareTo(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::concat(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char const*, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char) obj/Release/arduinoSrc1_0/WString.o
+String::concat(int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(long) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned long) obj/Release/arduinoSrc1_0/WString.o
+String::copy(char const*, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::endsWith(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::equals(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::equals(char const*) const obj/Release/arduinoSrc1_0/WString.o
+String::equalsIgnoreCase(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::getBytes(unsigned char*, unsigned int, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(char) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(char, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::invalidate() obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(char) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(char, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::operator<(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator<=(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator=(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::operator=(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::operator>(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator>=(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator[](unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::operator[](unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/Print.o
+String::replace(String const&, String const&) obj/Release/arduinoSrc1_0/WString.o
+String::replace(char, char) obj/Release/arduinoSrc1_0/WString.o
+String::reserve(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::setCharAt(unsigned int, char) obj/Release/arduinoSrc1_0/WString.o
+String::startsWith(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::startsWith(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::substring(unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::substring(unsigned int, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::toInt() const obj/Release/arduinoSrc1_0/WString.o
+String::toLowerCase() obj/Release/arduinoSrc1_0/WString.o
+String::toUpperCase() obj/Release/arduinoSrc1_0/WString.o
+String::trim() obj/Release/arduinoSrc1_0/WString.o
+String::~String() obj/Release/arduinoSrc1_0/WString.o
+String::~String() obj/Release/arduinoSrc1_0/WString.o
+TwoWire::TwoWire() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::TwoWire() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::available() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::begin() obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+TwoWire::begin(int) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::begin(unsigned char) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::beginTransmission(int) obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+TwoWire::beginTransmission(unsigned char) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::endTransmission() obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+TwoWire::flush() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::onReceive(void (*)(int)) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::onReceiveService(unsigned char*, int) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::onRequest(void (*)()) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::onRequestService() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::peek() obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::read() obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+TwoWire::requestFrom(int, int) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::requestFrom(unsigned char, unsigned char) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::rxBuffer obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::rxBufferIndex obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::rxBufferLength obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::transmitting obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::txAddress obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::txBuffer obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::txBufferIndex obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::txBufferLength obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::user_onReceive obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::user_onRequest obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::write(unsigned char const*, unsigned int) obj/Release/arduino_libs_1_0/Wire/Wire.o
+TwoWire::write(unsigned char) obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+Wire obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/main.o
+__addsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__bad_interrupt /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__brkval /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__bss_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__clz_tab /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+__clzsi2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+__ctors_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__ctype_isfalse /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+__ctype_istrue /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+__cxa_guard_abort obj/Release/arduinoSrc1_0/new.o
+__cxa_guard_acquire obj/Release/arduinoSrc1_0/new.o
+__cxa_guard_release obj/Release/arduinoSrc1_0/new.o
+__cxa_pure_virtual obj/Release/arduinoSrc1_0/new.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__data_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__divmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+__divsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__do_clear_bss /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/WInterrupts.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+__do_copy_data /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+__do_global_ctors /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__epilogue_restores__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__fixunssfsi /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__floatsisf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc1_0/Stream.o
+ obj/Release/arduinoSrc1_0/Print.o
+__floatunsisf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__flp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__fpcmp_parts_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+__gesf2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+__heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__heap_start /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__init /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__ltsf2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__malloc_heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+__malloc_heap_start /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__malloc_margin /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+__mulsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc1_0/Stream.o
+ obj/Release/arduinoSrc1_0/Print.o
+__mulsi3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/WMath.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Stream.o
+__mulsi_const_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+__pack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__tablejump2__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__unpack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 obj/Release/arduinoSrc1_0/WInterrupts.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_16 obj/Release/arduinoSrc1_0/wiring.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_18 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_19 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_2 obj/Release/arduinoSrc1_0/WInterrupts.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_24 obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_7 obj/Release/arduinoSrc1_0/Tone.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+advertise() obj/Release/adapticsBT.o
+ obj/Release/main.o
+analogRead obj/Release/arduinoSrc1_0/wiring_analog.o
+analogReference obj/Release/arduinoSrc1_0/wiring_analog.o
+analogWrite obj/Release/arduinoSrc1_0/wiring_analog.o
+analog_reference obj/Release/arduinoSrc1_0/wiring_analog.o
+atol /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc1_0/WString.o
+attachInterrupt obj/Release/arduinoSrc1_0/WInterrupts.o
+connected obj/Release/main.o
+data obj/Release/main.o
+delay obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+delayMicroseconds obj/Release/arduinoSrc1_0/wiring.o
+detachInterrupt obj/Release/arduinoSrc1_0/WInterrupts.o
+digitalRead obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_shift.o
+ obj/Release/main.o
+digitalWrite obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduinoSrc1_0/wiring_shift.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/main.o
+digital_pin_to_bit_mask_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+digital_pin_to_port_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+digital_pin_to_timer_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+disableTimer(unsigned char) obj/Release/arduinoSrc1_0/Tone.o
+exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+free /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/new.o
+ obj/Release/arduinoSrc1_0/WString.o
+init obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/main.o
+isspace /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc1_0/WString.o
+itoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+ltoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+makeWord(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WMath.o
+makeWord(unsigned int) obj/Release/arduinoSrc1_0/WMath.o
+malloc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/new.o
+map(long, long, long, long, long) obj/Release/arduinoSrc1_0/WMath.o
+memcmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ obj/Release/arduinoSrc1_0/IPAddress.o
+memcpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o
+memmove /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ obj/Release/arduinoSrc1_0/WString.o
+micros obj/Release/arduinoSrc1_0/wiring.o
+millis obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/arduinoSrc1_0/Stream.o
+noTone(unsigned char) obj/Release/arduinoSrc1_0/Tone.o
+operator delete(void*) obj/Release/arduinoSrc1_0/new.o
+operator new(unsigned int) obj/Release/arduinoSrc1_0/new.o
+operator+(StringSumHelper const&, String const&) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, char const*) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, char) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, int) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, long) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned long) obj/Release/arduinoSrc1_0/WString.o
+packetSize obj/Release/main.o
+pinMode obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+port_to_input_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+port_to_mode_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+port_to_output_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/Tone.o
+pulseIn obj/Release/arduinoSrc1_0/wiring_pulse.o
+random /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+random(long) obj/Release/arduinoSrc1_0/WMath.o
+random(long, long) obj/Release/arduinoSrc1_0/WMath.o
+randomSeed(unsigned int) obj/Release/arduinoSrc1_0/WMath.o
+random_r /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+realloc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o
+rx_buffer obj/Release/arduinoSrc1_0/HardwareSerial.o
+serialEvent() obj/Release/arduinoSrc1_0/HardwareSerial.o
+serialEventRun() obj/Release/arduinoSrc1_0/HardwareSerial.o
+setupBlueTooth() obj/Release/adapticsBT.o
+ obj/Release/main.o
+shiftIn obj/Release/arduinoSrc1_0/wiring_shift.o
+shiftOut obj/Release/arduinoSrc1_0/wiring_shift.o
+srandom /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+store_char(unsigned char, ring_buffer*) obj/Release/arduinoSrc1_0/HardwareSerial.o
+strchr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strcmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strcpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strncmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strncpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strrchr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strrev /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+strstr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+timer0_millis obj/Release/arduinoSrc1_0/wiring.o
+timer0_overflow_count obj/Release/arduinoSrc1_0/wiring.o
+timer0_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer0_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer0_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+timer1_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer1_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer1_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+timer2_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer2_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer2_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+tolower /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc1_0/WString.o
+tone(unsigned char, unsigned int, unsigned long) obj/Release/arduinoSrc1_0/Tone.o
+toupper /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc1_0/WString.o
+twi_attachSlaveRxEvent obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_attachSlaveTxEvent obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_init obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_readFrom obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_releaseBus obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+twi_reply obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+twi_setAddress obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_stop obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+twi_transmit obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+twi_writeTo obj/Release/arduino_libs_1_0/Wire/utility/twi.o
+ obj/Release/arduino_libs_1_0/Wire/Wire.o
+tx_buffer obj/Release/arduinoSrc1_0/HardwareSerial.o
+ultoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+utoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+vtable for HardwareSerial obj/Release/arduinoSrc1_0/HardwareSerial.o
+vtable for IPAddress obj/Release/arduinoSrc1_0/IPAddress.o
+vtable for Print obj/Release/arduinoSrc1_0/Print.o
+vtable for Printable obj/Release/arduinoSrc1_0/IPAddress.o
+vtable for Stream obj/Release/arduinoSrc1_0/HardwareSerial.o
+vtable for TwoWire obj/Release/arduino_libs_1_0/Wire/Wire.o
diff --git a/ESS1995i2c/burn b/ESS1995i2c/burn
index 04ef732..7039706 100755
--- a/ESS1995i2c/burn
+++ b/ESS1995i2c/burn
@@ -1 +1 @@
-avrdude -p m328p -c avrispmkII -P usb -b 1000000 -F -u -U flash:w:bin/Release/ESS1995test_328p.elf.hex
+avrdude -p m328p -c avrispmkII -P usb -b 1000000 -F -u -U flash:w:bin/Release/ESS1995i2c.elf.hex
diff --git a/ESS1995i2c/electic.h b/ESS1995i2c/electic.h
index bf31728..405c46c 100644
--- a/ESS1995i2c/electic.h
+++ b/ESS1995i2c/electic.h
@@ -14,7 +14,10 @@
*/
-#include <WProgram.h> //main Arduino header file
+
+#include <Arduino.h>
+
+
#include "adapticsBT.h"
#include <Wire.h>
diff --git a/ESS1995i2c/main.cpp b/ESS1995i2c/main.cpp
index efb8e65..1d02052 100644
--- a/ESS1995i2c/main.cpp
+++ b/ESS1995i2c/main.cpp
@@ -8,21 +8,21 @@
i2c library seems to require a 'register address' - -ESS1995 doesn't need this?
it certainly doesn't define a register in control byte 1 of write message
+
+ 130112 - updated for arduino 1.0 - compiles but doesn't work - but it is Friday 13th
*/
+
#include "electic.h"
-extern "C" void __cxa_pure_virtual()
-{
- cli();
- for (;;);
-}
int main(){
init(); //-- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+
Wire.begin();
+ //Wire.pullup
pinMode(CS,OUTPUT);
@@ -30,34 +30,45 @@ int main(){
setupBlueTooth();
-/*
+
pinMode(DATA_NEW,INPUT);
- pinMode(SCLK,OUTPUT);
+ // pinMode(SCLK,OUTPUT);
+
pinMode(BTC,INPUT);
pinMode(OUTPUT1, OUTPUT);
pinMode(OUTPUT2, OUTPUT);
+
digitalWrite(OUTPUT2,HIGH);
-*/
+
digitalWrite(CS,HIGH); //select DMM
- uint8_t WB1,WB2,WB3,WB4;
-/*
+ //uint8_t WB1,WB2,WB3,WB4;
+
+
+
+
+
uint8_t WB1 = (CB_SHBP << 7) | (CB_function << 3) | (CB_VARCrange);
uint8_t WB2 = (CB_BUZfreq << 5) | (CB_ADCrate << 3) | (CB_FREQrange);
uint8_t WB3 = (CB_ACmode << 7) | (CB_EXTdiode << 4) | (CB_DCfs << 3) | (CB_LPFbw << 1) | (CB_FREQinprest);
uint8_t WB4 = (CB_PEAKmode << 7) | (CB_PCALmode << 6) | (CB_OPconf << 2) | (CB_ADPext);
-*/
+
+
+
+
Wire.beginTransmission(WRITE_ID);
- Wire.send(WB1);
- Wire.send(WB2);
- Wire.send(WB3);
- Wire.send(WB4);
+ Wire.write(WB1);
+ Wire.write(WB2);
+ Wire.write(WB3);
+ Wire.write(WB4);
//default reads
Wire.endTransmission();
+
+
uint16_t delayMillis=250;
//send 1st write to initiate readings - not necessary - what is default mode?
@@ -108,16 +119,18 @@ writeDMM();
//writeDMM();
while(1) {
- if (digitalRead(DATA_NEW)==HIGH){ //DMM is ready to send data
+ //if (digitalRead(DATA_NEW)==HIGH){ //DMM is ready to send data
Wire.beginTransmission(READ_ID);
if (digitalRead(DATA_NEW)==LOW){ //ID confirmed
for (int i=0;i<10;i++) {
- data[i] = Wire.receive();
+ data[i] = Wire.read();
}
Wire.endTransmission();
//parse data
DB_STATUS=data[0];
+
+
/*
DB_ASIGN=data[0]>>7;
DB_BSIGN=(data[0]>>6) & 0b01;
@@ -131,6 +144,8 @@ writeDMM();
DB_STA=((data[1]>>3) & 0b10)|((data[0]>>1) & 0b01);
DB_F_FIN=(data[1]>>3) & 0b01;
*/
+
+
DB_D0=(((uint32_t)( data[1] & 0b111))<<16)|(((uint32_t)data[2])<<8)|data[3];
DB_D1=(((uint16_t)data[4])<<2)|((data[5] & 0b11000000)>>6);
DB_D2=(((uint32_t)( data[5] & 0b111111))<<13)|(((uint32_t) data[6] )<<5)|(((uint32_t)( data[7] & 0b11111000))>>3);
@@ -173,13 +188,14 @@ writeDMM();
}
}
}
- }
+ //}
delay(delayMillis);
digitalWrite(OUTPUT1,LOW);
digitalWrite(OUTPUT2,LOW);
//delay(delayMillis);
}
+
}
diff --git a/ESS1995i2c/obj/Release/adapticsBT.o b/ESS1995i2c/obj/Release/adapticsBT.o
new file mode 100644
index 0000000..3af99a1
--- /dev/null
+++ b/ESS1995i2c/obj/Release/adapticsBT.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/CDC.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/CDC.o
new file mode 100644
index 0000000..982717d
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/CDC.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/HID.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/HID.o
new file mode 100644
index 0000000..8f80213
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/HID.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/HardwareSerial.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/HardwareSerial.o
new file mode 100644
index 0000000..d21ffd0
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/HardwareSerial.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/IPAddress.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/IPAddress.o
new file mode 100644
index 0000000..1f5d4b0
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/IPAddress.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/Print.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/Print.o
new file mode 100644
index 0000000..d4a6ed2
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/Print.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/Stream.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/Stream.o
new file mode 100644
index 0000000..ccbdb47
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/Stream.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/Tone.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/Tone.o
new file mode 100644
index 0000000..ee4ec93
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/Tone.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/USBCore.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/USBCore.o
new file mode 100644
index 0000000..58809be
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/USBCore.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/WInterrupts.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/WInterrupts.o
new file mode 100644
index 0000000..106d971
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/WInterrupts.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/WMath.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/WMath.o
new file mode 100644
index 0000000..3de47b2
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/WMath.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/WString.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/WString.o
new file mode 100644
index 0000000..9a4a73b
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/WString.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/main.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/main.o
new file mode 100644
index 0000000..772d9f8
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/main.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/new.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/new.o
new file mode 100644
index 0000000..fdeab58
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/new.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring.o
new file mode 100644
index 0000000..8b01327
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_analog.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_analog.o
new file mode 100644
index 0000000..3057391
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_analog.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_digital.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_digital.o
new file mode 100644
index 0000000..77cb9a1
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_digital.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_pulse.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_pulse.o
new file mode 100644
index 0000000..6f918b7
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_pulse.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_shift.o b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_shift.o
new file mode 100644
index 0000000..6cdc3ac
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduinoSrc1_0/wiring_shift.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/Wire.o b/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/Wire.o
new file mode 100644
index 0000000..e9c277c
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/Wire.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/utility/twi.o b/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/utility/twi.o
new file mode 100644
index 0000000..c69b882
--- /dev/null
+++ b/ESS1995i2c/obj/Release/arduino_libs_1_0/Wire/utility/twi.o
Binary files differ
diff --git a/ESS1995i2c/obj/Release/main.o b/ESS1995i2c/obj/Release/main.o
new file mode 100644
index 0000000..e715f74
--- /dev/null
+++ b/ESS1995i2c/obj/Release/main.o
Binary files differ
diff --git a/ESS1995test_328p/ESS1995test_328p.cbp b/ESS1995test_328p/ESS1995test_328p.cbp
index e559c31..204e947 100644
--- a/ESS1995test_328p/ESS1995test_328p.cbp
+++ b/ESS1995test_328p/ESS1995test_328p.cbp
@@ -30,8 +30,8 @@
<Add option="-Wall" />
<Add option="-mmcu=atmega328p" />
<Add option="-DF_CPU=8000000UL" />
- <Add directory="../arduinoSrc0022" />
- <Add directory="../arduino libs/NewSoftSerial" />
+ <Add directory="../arduinoSrc1_0" />
+ <Add directory="../hardwarevariants_1_0/standard" />
</Compiler>
<Linker>
<Add option="-mmcu=atmega328p" />
@@ -60,43 +60,54 @@
<Unit filename="main.cpp">
<Option virtualFolder="src/" />
</Unit>
- <Unit filename="../arduinoSrc0022/HardwareSerial.cpp" />
- <Unit filename="../arduinoSrc0022/HardwareSerial.h" />
- <Unit filename="../arduinoSrc0022/Print.cpp" />
- <Unit filename="../arduinoSrc0022/Print.h" />
- <Unit filename="../arduinoSrc0022/Stream.h" />
- <Unit filename="../arduinoSrc0022/Tone.cpp" />
- <Unit filename="../arduinoSrc0022/WCharacter.h" />
- <Unit filename="../arduinoSrc0022/WConstants.h" />
- <Unit filename="../arduinoSrc0022/WInterrupts.c">
+ <Unit filename="../arduinoSrc1_0/Arduino.h" />
+ <Unit filename="../arduinoSrc1_0/CDC.cpp" />
+ <Unit filename="../arduinoSrc1_0/Client.h" />
+ <Unit filename="../arduinoSrc1_0/HID.cpp" />
+ <Unit filename="../arduinoSrc1_0/HardwareSerial.cpp" />
+ <Unit filename="../arduinoSrc1_0/HardwareSerial.h" />
+ <Unit filename="../arduinoSrc1_0/IPAddress.cpp" />
+ <Unit filename="../arduinoSrc1_0/IPAddress.h" />
+ <Unit filename="../arduinoSrc1_0/Platform.h" />
+ <Unit filename="../arduinoSrc1_0/Print.cpp" />
+ <Unit filename="../arduinoSrc1_0/Print.h" />
+ <Unit filename="../arduinoSrc1_0/Printable.h" />
+ <Unit filename="../arduinoSrc1_0/Server.h" />
+ <Unit filename="../arduinoSrc1_0/Stream.cpp" />
+ <Unit filename="../arduinoSrc1_0/Stream.h" />
+ <Unit filename="../arduinoSrc1_0/Tone.cpp" />
+ <Unit filename="../arduinoSrc1_0/USBAPI.h" />
+ <Unit filename="../arduinoSrc1_0/USBCore.cpp" />
+ <Unit filename="../arduinoSrc1_0/USBCore.h" />
+ <Unit filename="../arduinoSrc1_0/USBDesc.h" />
+ <Unit filename="../arduinoSrc1_0/Udp.h" />
+ <Unit filename="../arduinoSrc1_0/WCharacter.h" />
+ <Unit filename="../arduinoSrc1_0/WInterrupts.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/WMath.cpp" />
- <Unit filename="../arduinoSrc0022/WProgram.h" />
- <Unit filename="../arduinoSrc0022/WString.cpp" />
- <Unit filename="../arduinoSrc0022/WString.h" />
- <Unit filename="../arduinoSrc0022/binary.h" />
- <Unit filename="../arduinoSrc0022/pins_arduino.c">
+ <Unit filename="../arduinoSrc1_0/WMath.cpp" />
+ <Unit filename="../arduinoSrc1_0/WString.cpp" />
+ <Unit filename="../arduinoSrc1_0/WString.h" />
+ <Unit filename="../arduinoSrc1_0/binary.h" />
+ <Unit filename="../arduinoSrc1_0/new.cpp" />
+ <Unit filename="../arduinoSrc1_0/new.h" />
+ <Unit filename="../arduinoSrc1_0/wiring.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/pins_arduino.h" />
- <Unit filename="../arduinoSrc0022/wiring.c">
+ <Unit filename="../arduinoSrc1_0/wiring_analog.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring.h" />
- <Unit filename="../arduinoSrc0022/wiring_analog.c">
+ <Unit filename="../arduinoSrc1_0/wiring_digital.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring_digital.c">
+ <Unit filename="../arduinoSrc1_0/wiring_private.h" />
+ <Unit filename="../arduinoSrc1_0/wiring_pulse.c">
<Option compilerVar="CC" />
</Unit>
- <Unit filename="../arduinoSrc0022/wiring_private.h" />
- <Unit filename="../arduinoSrc0022/wiring_pulse.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="../arduinoSrc0022/wiring_shift.c">
+ <Unit filename="../arduinoSrc1_0/wiring_shift.c">
<Option compilerVar="CC" />
</Unit>
+ <Unit filename="../hardwarevariants_1_0/standard/pins_arduino.h" />
<Extensions>
<code_completion />
<envvars />
diff --git a/ESS1995test_328p/ESS1995test_328p.depend b/ESS1995test_328p/ESS1995test_328p.depend
index 52f4c69..ed2ca82 100644
--- a/ESS1995test_328p/ESS1995test_328p.depend
+++ b/ESS1995test_328p/ESS1995test_328p.depend
@@ -128,3 +128,211 @@
1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_shift.c
"wiring_private.h"
+1322574642 source:/home/tim/workspace/electic/ESS1995test_328p/adapticsBT.cpp
+ "adapticsBT.h"
+
+1326896982 /home/tim/workspace/electic/ESS1995test_328p/adapticsBT.h
+ <Arduino.h>
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WProgram.h
+ <stdlib.h>
+ <string.h>
+ <math.h>
+ <avr/interrupt.h>
+ "wiring.h"
+ "WCharacter.h"
+ "WString.h"
+ "HardwareSerial.h"
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/wiring.h
+ <avr/io.h>
+ <stdlib.h>
+ "binary.h"
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/binary.h
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WCharacter.h
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/WString.h
+ <stdlib.h>
+ <string.h>
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/HardwareSerial.h
+ <inttypes.h>
+ "Stream.h"
+ "usb_api.h"
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/Stream.h
+ <inttypes.h>
+ "Print.h"
+
+1319028644 /home/tim/workspace/electic/arduinoSrc0022/Print.h
+ <inttypes.h>
+ <stdio.h>
+ "WString.h"
+
+1322661310 source:/home/tim/workspace/electic/ESS1995test_328p/main.cpp
+ "electic.h"
+
+1326896819 /home/tim/workspace/electic/ESS1995test_328p/electic.h
+ <Arduino.h>
+ "adapticsBT.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Arduino.h
+ <stdlib.h>
+ <string.h>
+ <math.h>
+ <avr/pgmspace.h>
+ <avr/io.h>
+ <avr/interrupt.h>
+ "binary.h"
+ "WCharacter.h"
+ "WString.h"
+ "HardwareSerial.h"
+ "pins_arduino.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/binary.h
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/WCharacter.h
+ <ctype.h>
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/WString.h
+ <stdlib.h>
+ <string.h>
+ <ctype.h>
+ <avr/pgmspace.h>
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/HardwareSerial.h
+ <inttypes.h>
+ "Stream.h"
+ "USBAPI.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Stream.h
+ <inttypes.h>
+ "Print.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Print.h
+ <inttypes.h>
+ <stdio.h>
+ "WString.h"
+ "Printable.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Printable.h
+ <new.h>
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/new.h
+ <stdlib.h>
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/USBAPI.h
+
+1322528191 /home/tim/workspace/electic/hardwarevariants_1_0/standard/pins_arduino.h
+ <avr/pgmspace.h>
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/CDC.cpp
+ "Platform.h"
+ "USBAPI.h"
+ <avr/wdt.h>
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/Platform.h
+ <inttypes.h>
+ <avr/pgmspace.h>
+ <avr/eeprom.h>
+ <avr/interrupt.h>
+ <util/delay.h>
+ "Arduino.h"
+ "USBDesc.h"
+ "USBCore.h"
+ "USBAPI.h"
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/USBDesc.h
+
+1322528192 /home/tim/workspace/electic/arduinoSrc1_0/USBCore.h
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/HID.cpp
+ "Platform.h"
+ "USBAPI.h"
+ "USBDesc.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/HardwareSerial.cpp
+ <stdlib.h>
+ <stdio.h>
+ <string.h>
+ <inttypes.h>
+ "Arduino.h"
+ "wiring_private.h"
+ "HardwareSerial.h"
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/wiring_private.h
+ <avr/io.h>
+ <avr/interrupt.h>
+ <stdio.h>
+ <stdarg.h>
+ "Arduino.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/IPAddress.cpp
+ <Arduino.h>
+ <IPAddress.h>
+
+1322528191 /home/tim/workspace/electic/arduinoSrc1_0/IPAddress.h
+ <Printable.h>
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/Print.cpp
+ <stdlib.h>
+ <stdio.h>
+ <string.h>
+ <math.h>
+ "Arduino.h"
+ "Print.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/Stream.cpp
+ "Arduino.h"
+ "Stream.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/Tone.cpp
+ <avr/interrupt.h>
+ <avr/pgmspace.h>
+ "Arduino.h"
+ "pins_arduino.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/USBCore.cpp
+ "Platform.h"
+ "USBAPI.h"
+ "USBDesc.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/WInterrupts.c
+ <inttypes.h>
+ <avr/io.h>
+ <avr/interrupt.h>
+ <avr/pgmspace.h>
+ <stdio.h>
+ "wiring_private.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/WMath.cpp
+ "stdlib.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/WString.cpp
+ "WString.h"
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/new.cpp
+ <new.h>
+
+1322528192 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring.c
+ "wiring_private.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_analog.c
+ "wiring_private.h"
+ "pins_arduino.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_digital.c
+ "wiring_private.h"
+ "pins_arduino.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_pulse.c
+ "wiring_private.h"
+ "pins_arduino.h"
+
+1322528191 source:/home/tim/workspace/electic/arduinoSrc1_0/wiring_shift.c
+ "wiring_private.h"
+
diff --git a/ESS1995test_328p/ESS1995test_328p.layout b/ESS1995test_328p/ESS1995test_328p.layout
index eef63ab..5b79951 100644
--- a/ESS1995test_328p/ESS1995test_328p.layout
+++ b/ESS1995test_328p/ESS1995test_328p.layout
@@ -2,21 +2,18 @@
<CodeBlocks_layout_file>
<ActiveTarget name="Release" />
<File name="adapticsBT.cpp" open="1" top="0" tabpos="3">
- <Cursor position="1609" topLine="11" />
+ <Cursor position="1609" topLine="14" />
+ </File>
+ <File name="adapticsBT.h" open="0" top="0" tabpos="0">
+ <Cursor position="64" topLine="0" />
</File>
<File name="electic.h" open="1" top="0" tabpos="2">
- <Cursor position="864" topLine="0" />
+ <Cursor position="241" topLine="0" />
</File>
<File name="main.cpp" open="1" top="1" tabpos="1">
- <Cursor position="1415" topLine="0" />
- </File>
- <File name="../arduinoSrc0022/HardwareSerial.h" open="0" top="0" tabpos="0">
- <Cursor position="0" topLine="40" />
- </File>
- <File name="../arduinoSrc0022/Print.h" open="0" top="0" tabpos="0">
- <Cursor position="1919" topLine="0" />
+ <Cursor position="153" topLine="9" />
</File>
- <File name="../arduinoSrc0022/Tone.cpp" open="0" top="0" tabpos="0">
- <Cursor position="7050" topLine="229" />
+ <File name="../arduinoSrc1_0/Arduino.h" open="1" top="0" tabpos="4">
+ <Cursor position="5594" topLine="177" />
</File>
</CodeBlocks_layout_file>
diff --git a/ESS1995test_328p/adapticsBT.h b/ESS1995test_328p/adapticsBT.h
index 8cb87e3..1438e94 100644
--- a/ESS1995test_328p/adapticsBT.h
+++ b/ESS1995test_328p/adapticsBT.h
@@ -1,11 +1,11 @@
#ifndef ADAPTICSBT_H_INCLUDED
#define ADAPTICSBT_H_INCLUDED
-extern "C" void __cxa_pure_virtual(void); //for C++ defines
+//extern "C" void __cxa_pure_virtual(void); //for C++ defines
#define BTC 6
-#include <WProgram.h> //main Arduino header file
+#include <Arduino.h> //main Arduino header file
void setupBlueTooth();
void advertise();
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf
new file mode 100755
index 0000000..79c4e2b
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf
Binary files differ
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.eep.hex b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex
new file mode 100644
index 0000000..8e9335b
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex
@@ -0,0 +1,1263 @@
+:100000000C9464000C94AB0E0C94D80E0C948C00E1
+:100010000C948C000C948C000C948C000C941F0E8F
+:100020000C948C000C948C000C948C000C948C0020
+:100030000C948C000C948C000C948C000C948C0010
+:100040000C94C2170C948C000C94CC030C94FD03FC
+:100050000C948C000C948C000C948C000C948C00F0
+:100060000C948C000C948C000200000000240027EB
+:10007000002A0000000000250028002B00000000DE
+:1000800000230026002900040404040404040402DC
+:100090000202020202030303030303010204081025
+:1000A00020408001020408102001020408102000F2
+:1000B0000000070002010000030406000000000029
+:1000C0000000000069053F0611241FBECFEFD8E0F5
+:1000D000DEBFCDBF12E0A0E0B1E0E6E1FDE402C08A
+:1000E00005900D92A03CB107D9F713E0A0ECB2E067
+:1000F00001C01D92AE3AB107E1F710E0C8ECD0E0C4
+:1001000004C02297FE010E94B622C43CD107C9F761
+:100110000E94EF010C9489260C940000CF93DF938A
+:1001200060ED77E080E090E00E944A18C2E6D3E0FC
+:10013000CE0160E071E00E94DF0660ED77E080E0D4
+:1001400090E00E944A18CE010E946403DF91CF9193
+:100150000895CF93DF9386E060E00E946719C2E6BE
+:10016000D3E0CE0140E056E960E070E00E948304F5
+:10017000CE016BE071E00E94DF06CE0169E171E023
+:100180000E94DF06CE0163E371E00E94DF06CE012C
+:1001900061E471E00E94DF06CE016FE471E00E942D
+:1001A000DF06CE0160E671E00E94DF060E948E004D
+:1001B000DF91CF91089584E061E00E94671983E0A8
+:1001C00061E00E948B19089584E060E00E94671945
+:1001D00083E061E00E948B1908958AE090E00E941C
+:1001E000711883E061E00E948B1984E190E00E9425
+:1001F000711883E060E00E948B198AE090E00E9411
+:10020000711808958AE090E00E94711883E060E020
+:100210000E948B1984E190E00E94711883E061E0F4
+:100220000E948B198AE090E00E94711808951F9334
+:10023000CF93DF9317E0C82FD0E0BE01012E02C09C
+:10024000759567950A94E2F7617084E00E948B19B6
+:100250000E94ED00115088F784E061E00E948B1944
+:100260000E94ED00DF91CF911F91089584E060E03E
+:100270000E948B198AE090E00E94711883E061E08F
+:100280000E948B198AE090E00E94711884E061E07E
+:100290000E948B19089584E061E00E948B1983E02D
+:1002A00061E00E948B198AE090E00E94711884E05E
+:1002B00060E00E948B198AE090E00E94711883E050
+:1002C00060E00E948B198AE090E00E947118089506
+:1002D0000F931F938AE090E00E94711817E000E0EE
+:1002E00084E00E94C319682F282F30E0012E02C03D
+:1002F000220F331F0A94E2F7022B8CE00E948B1925
+:100300000E940201115060F70E940201802F1F918C
+:100310000F910895EF92FF920F931F938091CB025C
+:100320008795882787950091CC02000F000F000F5A
+:10033000082B8091CD02082B8091CF028295880FE7
+:10034000807E1091D002110F110F110F182B809188
+:10035000CE02182B9091D10297959927979580916D
+:10036000D5028295807F892B9091D702892B90911D
+:10037000D902990F990F990F982BE090D402EE0CA7
+:10038000E92A9091D2029795992797958091D30267
+:100390008295880F880F807C892B9091D802892BB9
+:1003A000F090D602FF0CFF0CF82A0E94DB000E949E
+:1003B0004B0188EC0E941701802F0E941701812FAA
+:1003C0000E9417018E2D0E9417018F2D0E94170188
+:1003D0000E9436011F910F91FF90EF9008958F9228
+:1003E0009F92AF92BF92CF92DF92EF92FF920F93C4
+:1003F0001F93DF93CF93CDB7DEB727970FB6F8944F
+:10040000DEBF0FBECDBF0E947B1885E061E00E9479
+:10041000671985E060E00E948B190E94A90082E0C4
+:1004200060E00E94671983E061E00E94671986E03E
+:1004300060E00E9467198CE061E00E9467198DE01E
+:1004400061E00E9467198DE061E00E948B1985E0F0
+:1004500061E00E948B196AEF70E080E090E00E94FA
+:100460004A180E948A010AEF10E07E010894E11CFC
+:10047000F11CA4E0AA2EB12CAC0EBD1EF2E08F2E12
+:10048000912C8C0E9D1E82E00E94C3198130910533
+:1004900009F0BBC08CE061E00E948B198DE060E048
+:1004A0000E948B190E94DB000E944B0189EC0E9484
+:1004B000170182E00E94C319009709F0A6C08DE0E1
+:1004C00061E00E948B190E94E400E1ECCE2EE2E094
+:1004D000DE2E0E946801F60181936F01FBECCF16BE
+:1004E000F2E0DF06B1F70E94DB000E943601809146
+:1004F000C10289838091C30290E0A0E0B0E0BA2FEE
+:10050000A92F982F88272091C40230E040E050E0C6
+:10051000822B932BA42BB52B2091C20230E040E01C
+:1005200050E02770307040705070A90133272227A7
+:10053000822B932BA42BB52B8C839D83AE83BF83FF
+:100540008091C602829586958695837090E0209171
+:10055000C50230E0220F331F220F331F822B932B53
+:100560009B838A8313C082E693E00E944203823019
+:1005700029F0833031F0813049F406C00AEF10E0F1
+:1005800005C002E310E002C008EE13E082E693E04B
+:100590000E9413031816190634F386E00E94C3194B
+:1005A0002091C002009759F1222319F481E0809331
+:1005B000C00282E693E063E771E042E050E00E940F
+:1005C0004E0682E693E062E771E041E050E00E946F
+:1005D0004E0682E693E0B70141E050E00E944E06ED
+:1005E00082E693E0B50144E050E00E944E0682E6C8
+:1005F00093E0B40142E050E00E944E0606C0222380
+:1006000021F00E948E001092C002B80180E090E0BC
+:100610000E944A188CE060E00E948B198DE060E037
+:100620000E948B1930CFFC0184859585FC01E05C2C
+:10063000FF4F208131818E5B9F4FFC018081918132
+:10064000281B390B2F733070C9010895FC01848574
+:100650009585FC01E05CFF4F40815181FC01EE5B20
+:10066000FF4F208131814217530741F00190F08103
+:10067000E02DE80FF91F208130E002C02FEF3FEF9F
+:10068000C9010895FC0184859585FC01E05CFF4F5C
+:1006900040815181FC01EE5BFF4F20813181421787
+:1006A000530771F0A081B181A80FB91F2C918081EF
+:1006B000918101968F7390709183808330E002C0A6
+:1006C0002FEF3FEFC9010895DC011E968D919C919B
+:1006D0001F97FC01E05CFF4F8E5B9F4F4081518173
+:1006E000DC012D913C91119742175307B9F70895FA
+:1006F0001F93FC01162F26853785D901A05CBF4FBB
+:100700008D919C91019660E470E00E941922D901BC
+:10071000AE5BBF4F4D915C91119784179507D1F354
+:10072000D901A05CBF4F0D90BC91A02DA20FB31FAB
+:100730001C93A685B785A05CBF4F11969C938E93A2
+:10074000A689B7892C9181E090E0058C02C0880FC2
+:10075000991F0A94E2F7282B2C9381E090E01F91D7
+:100760000895FB01E05CFF4F208131812F5F3F4FF7
+:100770002F733070DB01AE5BBF4F4D915C911197D1
+:100780002417350739F0A081B181A60FB71F8C93CC
+:1007900031832083089508951F920F920FB60F9210
+:1007A00011242F933F934F935F936F937F938F9376
+:1007B0009F93AF93BF93EF93FF938091C6006AED31
+:1007C00072E00E94B103FF91EF91BF91AF919F91B1
+:1007D0008F917F916F915F914F913F912F910F90EA
+:1007E0000FBE0F901F90189582E693E00E941303AE
+:1007F000009711F00E94CB0308951F920F920FB63D
+:100800000F9211242F933F935F936F937F938F9356
+:100810009F93AF93BF93EF93FF9320915E0330912B
+:100820005F0380916003909161032817390731F4C9
+:100830008091C1008F7D8093C10016C0E09160035C
+:10084000F0916103E25EFC4F208180916003909102
+:100850006103019660E470E00E94192290936103A5
+:10086000809360032093C600FF91EF91BF91AF91F9
+:100870009F918F917F916F915F913F912F910F90F9
+:100880000FBE0F901F9018958F92AF92BF92CF928C
+:10089000DF92EF92FF920F931F93DF93CF93CDB729
+:1008A000DEB7FC011382128288EE93E0A0E0B0E094
+:1008B00084839583A683B78389E791E091838083BE
+:1008C0007587648757874687318B208B138B028B04
+:1008D000F58AE48AD78AC68AB18EA08E828E8E85EA
+:1008E000838F8F85848F8889858F8989868FCF9123
+:1008F000DF911F910F91FF90EF90DF90CF90BF900D
+:10090000AF908F9008959F92AF92BF92CF92DF9257
+:10091000EF92FF920F931F93CF93DF93EC017A0135
+:100920008B0199249394EC89FD8981E090E00E8CF1
+:1009300002C0880F991F0A94E2F7808360E874E888
+:100940008EE190E0A80197010E942C2221503040B6
+:1009500040405040569547953795279590E4A92EED
+:1009600092E4B92E9FE0C92ED12C12C09924EC89B3
+:10097000FD891082C601B501A80197010E942C22B1
+:100980002150304040405040569547953795279527
+:1009900080E12030380710F0992041F7E889F98983
+:1009A0003083EA89FB892083EE89FF89408181E0D9
+:1009B00090E09C010A8C02C0220F331F0A94E2F7D8
+:1009C000422B4083EE89FF8940819C010B8C02C041
+:1009D000220F331F0A94E2F7422B4083EE89FF89EE
+:1009E00040819C010C8C02C0220F331F0A94E2F755
+:1009F000422B4083EE89FF8920810D8C02C0880F35
+:100A0000991F0A94E2F7809582238083DF91CF912A
+:100A10001F910F91FF90EF90DF90CF90BF90AF901C
+:100A20009F900895CF93DF93FC0186859785DC0125
+:100A3000A05CBF4F8E5B9F4F4D915C911197EC0175
+:100A40002881398142175307B9F7A689B7894C9194
+:100A500081E090E09C01028C02C0220F331F0A94B7
+:100A6000E2F7209524232C93A689B7894C919C0109
+:100A7000038C02C0220F331F0A94E2F7209524232F
+:100A80002C93A689B7894C919C01048C02C0220F3B
+:100A9000331F0A94E2F7209524232C93A689B78963
+:100AA0002C91058C02C0880F991F0A94E2F780955B
+:100AB00082238C9384859585FC01EE5BFF4F20811A
+:100AC0003181805C9F4FFC0131832083DF91CF9186
+:100AD0000895109265031092640388EE93E0A0E0FD
+:100AE000B0E08093660390936703A0936803B0938C
+:100AF0006903E4E6F3E089E791E0929382938AED5B
+:100B000092E0958784878EE193E09787868785ECCE
+:100B100090E0918B808B84EC90E0938B828B80ECC7
+:100B200090E0958B848B81EC90E0978B868B86ECA4
+:100B300090E0918F808F84E0828F83E0838F87E0C5
+:100B4000848F85E0858F81E0868F08958F929F92B4
+:100B5000AF92BF92CF92DF92EF92FF920F931F93CB
+:100B6000CF93DF934C017B0182E0A82EB12CA80C1F
+:100B7000B91CC0E0D0E0CC24DD24F50161915F0117
+:100B8000C7014AE050E00E9403088C01C7016EE2F1
+:100B90000E94E206080F191FC00ED11E2196C33015
+:100BA000D10559F7C701F40165814AE050E00E9480
+:100BB0000308C80ED91EC601DF91CF911F910F9176
+:100BC000FF90EF90DF90CF90BF90AF909F908F906D
+:100BD0000895FC0189E991E0918380831282138258
+:100BE0001482158208950F93FC0189E991E09183A5
+:100BF000808362834383248305830F910895FC01DE
+:100C000089E991E091838083428353836483758370
+:100C10000895FC0189E991E091838083DB012D91A6
+:100C20003D914D915C911397228333834483558387
+:100C30000895CF93DF93FC01EB0188819981AA810C
+:100C4000BB8182839383A483B583CF01DF91CF914E
+:100C50000895FC01428353836483758308959B0147
+:100C6000BC016E5F7F4FC90144E050E00E944C25FB
+:100C70009C0181E02115310509F080E0089589E9A2
+:100C800091E09093820380938103109283031092EA
+:100C9000840310928503109286030895CF92DF9209
+:100CA000EF92FF920F931F93CF93DF936C017B0121
+:100CB0008A01C0E0D0E00FC0D7016D917D01D6015F
+:100CC000ED91FC910190F081E02DC6010995C80FCE
+:100CD000D91F015010400115110571F7CE01DF91A8
+:100CE000CF911F910F91FF90EF90DF90CF900895DB
+:100CF000DB010D900020E9F7AD0141505040461B4B
+:100D0000570BDC01ED91FC910280F381E02D0995F8
+:100D10000895EF92FF920F931F93CF93DF937C017F
+:100D2000062F172FC0E0D0E0F8010F5F1F4F64912E
+:100D3000662351F0F701A081B181ED91FC91C701CB
+:100D40000995C80FD91FF0CFCE01DF91CF911F9128
+:100D50000F91FF90EF900895AF92BF92CF92DF92E4
+:100D6000EF92FF920F931F93CF93DF937C016B0160
+:100D7000C0E0D0E000E010E010C0D701ED91FC91A0
+:100D8000A080B180C601BE010E947E14682FC701F9
+:100D9000F5010995080F191F2196F60184819581A7
+:100DA000C817D90750F3C801DF91CF911F910F9158
+:100DB000FF90EF90DF90CF90BF90AF9008950E948A
+:100DC00078060895DC01ED91FC910190F081E02D11
+:100DD000099508959C01CB01DB01ED91FC910190F7
+:100DE000F081E02DB901099508950F931F93CF93DA
+:100DF000DF93EC016DE00E94E2068C01CE016AE017
+:100E00000E94E206080F191FC801DF91CF911F91C0
+:100E10000F9108950F931F93CF93DF93EC010E94DE
+:100E200089068C01CE010E94F506080F191FC80122
+:100E3000DF91CF911F910F9108950F931F93CF933F
+:100E4000DF93EC010E94AC068C01CE010E94F506F6
+:100E5000080F191FC801DF91CF911F910F910895BD
+:100E60000F931F93CF93DF93EC010E9478068C01C0
+:100E7000CE010E94F506080F191FC801DF91CF911E
+:100E80001F910F9108950F931F93CF93DF93EC0160
+:100E90000E94E2068C01CE010E94F506080F191F80
+:100EA000C801DF91CF911F910F9108950F931F9368
+:100EB000CF93DF93EC010E94EA068C01CE010E94E1
+:100EC000F506080F191FC801DF91CF911F910F91EF
+:100ED00008958F929F92AF92BF92CF92DF92EF923E
+:100EE000FF920F931F93DF93CF93CDB7DEB7A197F8
+:100EF0000FB6F894DEBF0FBECDBF6C01042FE52FF7
+:100F0000CB01122F19A2223008F41AE021E2E22EBE
+:100F1000F12CEC0EFD1E812E9924AA24BB2403C0C3
+:100F2000022FE32FCA01602F7E2FA50194010E949A
+:100F30002C22129F802D1124081B0894E108F1082F
+:100F40000A3014F4005D01C0095CF701008321152B
+:100F500031054105510521F7C601B7010E94780608
+:100F6000A1960FB6F894DEBF0FBECDBFCF91DF9133
+:100F70001F910F91FF90EF90DF90CF90BF90AF90B7
+:100F80009F908F9008952115310549F4DC01ED9172
+:100F9000FC910190F081E02D642F099508950E9445
+:100FA000690708950F931F93CF93DF93EC010E947D
+:100FB000C3078C01CE010E94F506080F191FC80156
+:100FC000DF91CF911F910F9108959A01AB0160E0DD
+:100FD00070E00E94C30708950F931F93CF93DF9390
+:100FE000EC019A01AB0160E070E00E94C3078C0144
+:100FF000CE010E94F506080F191FC801DF91CF919D
+:101000001F910F9108959A01462F50E060E070E023
+:101010000E94C30708950F931F93CF93DF93EC01B2
+:101020009A01462F50E060E070E00E94C3078C01F7
+:10103000CE010E94F506080F191FC801DF91CF915C
+:101040001F910F910895CF92DF92EF92FF920F932D
+:101050001F93CF93DF93EC017A018B0121153105AA
+:1010600041F4E881F9810190F081E02D642F099528
+:101070001AC02A303105A9F477FF12C06DE20E9430
+:10108000E2066C0144275527BA014E195F09600B2F
+:10109000710BCE012AE00E946907C80ED91E04C058
+:1010A0002AE00E9469076C01C601DF91CF911F9170
+:1010B0000F91FF90EF90DF90CF9008950F931F93C3
+:1010C000CF93DF93EC010E9423088C01CE010E9494
+:1010D000F506080F191FC801DF91CF911F910F91DD
+:1010E00008959A01FB01AF01662757FD6095762FA1
+:1010F0000E94230808950F931F93CF93DF93EC0171
+:101100009A01CB01AC01662757FD6095762FCE0181
+:101110000E9423088C01CE010E94F506080F191FBA
+:10112000C801DF91CF911F910F9108956F927F9227
+:101130009F92AF92BF92CF92DF92EF92FF920F9366
+:101140001F93CF93DF933C017A018B01C22ECB0119
+:10115000BA0120E030E0A9010E94B61E87FF0AC054
+:10116000C3016DE20E94E206EC0117FB109517F92E
+:10117000109502C0C0E0D0E0DD2450E040E030E057
+:101180002FE311C0DA01F9016B2F742F8F2F922FEB
+:1011900020E030E040E251E40E94D81D562F472F56
+:1011A000382F292FD394DC1468F3C801B701DA0172
+:1011B000F9012B2F342F4F2F5E2F0E94801C5B01D3
+:1011C000F82E992E7B2D0E940A1B162FD72EE82E63
+:1011D000092F0E94981F9B01AC016A2D7B2D8F2D3A
+:1011E000992D0E94AD1C962EA72EB82EF92EC30164
+:1011F000412F5D2D6E2D702F2AE030E00E94C30735
+:10120000C80FD91FCC20B9F1C30161EA71E00E9477
+:101210007806C80FD91F2FC0692D7A2D8B2D9F2DD1
+:1012200020E030E040E251E40E94DE1CD62EB72ED2
+:10123000A82E992E0E94461F7B010027F7FC0095DF
+:10124000102FC301B801A7012AE030E00E94230853
+:10125000C80FD91FC801B7010E94E61E9B01AC014F
+:101260006D2D7B2D8A2D992D0E94AD1C962EA72EBB
+:10127000B82EF92ECA94CC2079F6CE01DF91CF9109
+:101280001F910F91FF90EF90DF90CF90BF90AF90A4
+:101290009F907F906F9008950E94960808950F93F5
+:1012A0001F93CF93DF93EC010E9496088C01CE012F
+:1012B0000E94F506080F191FC801DF91CF911F91F9
+:1012C0000F910895CF93DF93EC010E941618688761
+:1012D00079878A879B87E881F9810680F781E02DED
+:1012E000CE0109959C0197FF15C00E94161828850C
+:1012F00039854A855B85621B730B840B950B2C81AA
+:101300003D814E815F81621773078407950718F34B
+:101310002FEF3FEFC901DF91CF910895CF93DF9376
+:10132000EC010E941618688779878A879B87E88175
+:10133000F9810084F185E02DCE0109959C0197FF8C
+:1013400015C00E941618288539854A855B85621B61
+:10135000730B840B950B2C813D814E815F8162174D
+:1013600073078407950718F32FEF3FEFC901DF914B
+:10137000CF910895CF93DF93EC01CE010E948E09A7
+:101380009C0197FD0FC08D32910561F0C0978A30A6
+:10139000910540F0E881F9810680F781E02DCE01CA
+:1013A0000995EBCFC901DF91CF910895FC014483EA
+:1013B00055836683778308956F927F928F929F9271
+:1013C000AF92BF92CF92DF92EF92FF920F931F9353
+:1013D000CF93DF933C016B014A0159017801FB0176
+:1013E0008081882391F1C0E0D0E000E010E026C0C9
+:1013F000F601E00FF11F2081332727FD309582177A
+:10140000930731F40F5F1F4F0815190518F01DC021
+:1014100000E010E0E114F10479F0F501EC0FFD1F9C
+:101420002081332727FD30958217930729F42196D1
+:10143000CE15DF0518F00BC0C0E0D0E0C3010E945C
+:10144000620918161906A4F202C081E001C080E00A
+:10145000DF91CF911F910F91FF90EF90DF90CF9090
+:10146000BF90AF909F908F907F906F9008950F9353
+:101470001F93CF93DF939A01FB0101900020E9F7BE
+:101480003197E61BF70BEA0109900020E9F78E017E
+:1014900001501040041B150BAF010E94DC09DF91C5
+:1014A000CF911F910F91089540E050E00E94370ABC
+:1014B00008950F931F9320E030E000E010E00E94B9
+:1014C000DC091F910F9108959F92AF92BF92CF9226
+:1014D000DF92EF92FF920F931F93CF93DF936C01F4
+:1014E000A62E0E94BA09EC0197FD4EC0EE24FF24FF
+:1014F00087019924BB24A7FCB094CA15DB0531F100
+:10150000CD32D10509F1CE01C0978A309105F0F4B2
+:10151000C801B7012AE030E040E050E00E94FA2123
+:101520007B018C01CE01AA2797FDA095BA2FE80E6A
+:10153000F91E0A1F1B1F80ED9FEFAFEFBFEFE80EF4
+:10154000F91E0A1F1B1F02C099249394D601ED9126
+:10155000FC910680F781E02DC6010995C6010E9425
+:101560008E09EC01C0978A30910538F2CA15DB0567
+:1015700021F2992061F010950095F094E094E11C1F
+:10158000F11C011D111D03C0EE24FF248701B701CA
+:10159000C801DF91CF911F910F91FF90EF90DF90E5
+:1015A000CF90BF90AF909F90089561E00E94640A31
+:1015B00008956F927F928F929F92AF92BF92CF9237
+:1015C000DF92EF92FF920F931F93CF93DF93EC0183
+:1015D000762E0E94BA09D82E87FD7DC0BB24AA248E
+:1015E00090E8992E8FE3882EEE24FF248701CC24E7
+:1015F0006624D714E1F18D2D8D32A1F18E32A9F13F
+:1016000080538A30A0F5C801B7012AE030E040E0FD
+:1016100050E00E94FA217B018C018D2D992787FDD6
+:101620009095A92FB92FE80EF91E0A1F1B1F80EDF8
+:101630009FEFAFEFBFEFE80EF91E0A1F1B1FCC2074
+:10164000B1F0A5019401652F7A2D832F982D2DECF3
+:101650003CEC4CEC5DE30E94DE1CB62EA72E982ECF
+:10166000892E05C06624639402C0CC24C394E8810B
+:10167000F9810680F781E02DCE010995CE010E9407
+:101680008E09D82E982F90539A3008F4B2CF8E320C
+:1016900009F4AFCF871509F4ACCF662041F010955F
+:1016A0000095F094E094E11CF11C011D111DCC206B
+:1016B00069F0C801B7010E94E61ED501F4012B2F85
+:1016C0003A2D4F2F582D0E94DE1C09C0C801B701CA
+:1016D0000E94E61E04C060E070E080E090E0DF91D0
+:1016E000CF911F910F91FF90EF90DF90CF90BF901F
+:1016F000AF909F908F907F906F90089561E00E94CF
+:10170000D90A0895CF92DF92EF92FF920F931F9321
+:10171000CF93DF936C01EB017A0100E010E008C089
+:10172000C6010E94620997FD06C089930F5F1F4F93
+:101730000E151F05A8F3C801DF91CF911F910F91DE
+:10174000FF90EF90DF90CF900895AF92BF92CF922D
+:10175000DF92EF92FF920F931F93CF93DF935C0181
+:10176000EA01790121153105B1F000E010E0C62E43
+:10177000DD24C7FCD0940BC0C5010E94620997FD0F
+:101780000CC08C159D0549F089930F5F1F4F0E15F6
+:101790001F0590F302C000E010E0C801DF91CF9177
+:1017A0001F910F91FF90EF90DF90CF90BF90AF907F
+:1017B00008952F923F924F925F926F927F928F92F5
+:1017C0009F92AF92BF92DF92EF92FF920F931F937F
+:1017D000DF93CF9300D000D0CDB7DEB71B012983B4
+:1017E0003A834B835C839091AB01981721F09F3F24
+:1017F00009F0D8C104C0E8E6F0E0D4907DC0809341
+:10180000AB01E8E6F0E0D4909D2D9F3F09F4CAC1FA
+:10181000913031F1923009F449C0DD2009F06CC0FB
+:1018200014BC15BC94B5926094BD95B5916095BDFE
+:10183000282F30E0F901E957FF4FE491F0E0EE0F77
+:10184000FF1FED58FF4F4591549140938B035093E8
+:101850008C0325563F4FF901249120938D034EC0F0
+:101860001092800010928100909181009860909376
+:10187000810090918100916090938100282F30E049
+:10188000F901E957FF4FE491F0E0EE0FFF1FED582B
+:10189000FF4F4591549140939203509393032556E3
+:1018A0003F4FF90124912093940328C01092B00077
+:1018B0001092B1009091B00092609093B00090911E
+:1018C000B10091609093B100282F30E0F901E95701
+:1018D000FF4FE491F0E0EE0FFF1FED58FF4F4591F1
+:1018E00054914093990350939A0325563F4FF90121
+:1018F000249120939B0302C0D7FC54C161E00E9455
+:101900006719DD2021F0FD2DF23009F0C1C0410141
+:10191000AA24BB2460E079E08DE390E0A501940166
+:101920000E942C2229013A0179018A010894E108D8
+:10193000F108010911098FEFE816F10401051105FD
+:1019400009F008F498C060E271EA87E090E0A50130
+:1019500094010E942C2279018A010894E108F1087F
+:10196000010911099D2D9230C9F4AFEFEA16F10477
+:101970000105110509F008F485C068E478EE81E0FE
+:1019800090E0A50194010E942C2279018A0108941B
+:10199000E108F1080109110983E001C082E0BFEF0D
+:1019A000EB16F1040105110509F008F465C064E2C5
+:1019B00074EF80E090E0A50194010E942C2279014F
+:1019C0008A010894E108F10801091109DD20E1F01C
+:1019D000ED2DE230D9F4FFEFEF16F104010511050A
+:1019E00009F008F451C062E17AE780E090E0A501D7
+:1019F00094010E942C2279018A010894E108F108DF
+:101A00000109110985E003C083E001C084E09FEF74
+:101A1000E916F1040105110579F170F169E07DE342
+:101A200080E090E0A50194010E942C2279018A01B6
+:101A30000894E108F10801091109DD2011F484E09E
+:101A400001C086E0AFEFEA16F10401051105A1F02F
+:101A500098F0830172019AE016950795F794E79440
+:101A60009A95D1F70894E108F10801091109DD20E0
+:101A700031F087E00AC081E0DD2011F006C085E08A
+:101A800085BD3CC082E001C084E08093B10036C0D7
+:101A90004101AA24BB2460E079E08DE390E0A50138
+:101AA00094010E942C2279018A010894E108F1082E
+:101AB00001091109B0E0EB16B0E0FB06B1E00B073D
+:101AC000B0E01B0788F064E274EF80E090E0A501CD
+:101AD00094010E942C2279018A010894E108F108FE
+:101AE0000109110993E001C091E0ED2DE13031F4DD
+:101AF00080918100887F892B8093810089819A81E0
+:101B0000AB81BC810097A105B10591F0B101660FD1
+:101B1000771F80E090E029813A814B815C810E94AF
+:101B2000FA2128EE33E040E050E00E942C2203C06E
+:101B30002FEF3FEFA9019D2D913099F0923019F1CF
+:101B4000DD2081F5E7BC2093870330938803409321
+:101B5000890350938A0380916E00826080936E00A7
+:101B600021C0F0928900E092880020938E03309388
+:101B70008F03409390035093910380916F00826094
+:101B800080936F000FC0E092B300209395033093D1
+:101B9000960340939703509398038091700082605E
+:101BA000809370000F900F900F900F90CF91DF9166
+:101BB0001F910F91FF90EF90DF90BF90AF909F909B
+:101BC0008F907F906F905F904F903F902F900895EF
+:101BD000813041F0813018F08230D1F409C0109288
+:101BE0006E00089580916F008D7F80936F0008953F
+:101BF000809170008D7F8093700081E08093B000B1
+:101C00008091B100887F84608093B1001092B3000E
+:101C100008951F93182F8091AB01811739F4E8E6DE
+:101C2000F0E084919FEF9093AB0101C08FEF0E9491
+:101C3000E80D812F60E00E948B191F9108951F927B
+:101C40000F920FB60F9211242F933F934F935F93F0
+:101C50006F937F938F939F93AF93BF93EF93FF9374
+:101C60008091950390919603A0919703B09198036A
+:101C70000097A105B10551F1E0919903F0919A0304
+:101C8000808190919B038927808380919503909117
+:101C90009603A0919703B0919803181619061A0697
+:101CA0001B06C4F48091950390919603A09197032D
+:101CB000B09198030197A109B1098093950390937E
+:101CC0009603A0939703B093980304C08091AB014F
+:101CD0000E94090EFF91EF91BF91AF919F918F915B
+:101CE0007F916F915F914F913F912F910F900FBE18
+:101CF0000F901F9018958230E8F4E82FF0E0EE0F77
+:101D0000FF1FE456FC4F71836083813041F0809166
+:101D100069008C7F842B80936900E89A08958091F4
+:101D20006900440F551F440F551F837F842B8093F8
+:101D30006900E99A0895823068F4813011F0E898DA
+:101D400001C0E998E82FF0E0EE0FFF1FE456FC4FCA
+:101D50001182108208951F920F920FB60F921124D4
+:101D60002F933F934F935F936F937F938F939F93A3
+:101D7000AF93BF93EF93FF9380919C0390919D034A
+:101D8000009729F0E0919C03F0919D030995FF9144
+:101D9000EF91BF91AF919F918F917F916F915F91E3
+:101DA0004F913F912F910F900FBE0F901F9018955C
+:101DB0001F920F920FB60F9211242F933F934F93C0
+:101DC0005F936F937F938F939F93AF93BF93EF93A3
+:101DD000FF9380919E0390919F03009729F0E091DB
+:101DE0009E03F0919F030995FF91EF91BF91AF91F1
+:101DF0009F918F917F916F915F914F913F912F9123
+:101E00000F900FBE0F901F901895009729F0BC01FE
+:101E100080E090E00E9439240895EF92FF920F93A2
+:101E20001F937B018C01611571058105910549F0B6
+:101E30000E943424A80197010E944E229B01AC010C
+:101E400003C020E030E0A901B901CA011F910F9140
+:101E5000FF90EF900895EF92FF920F931F937B01F5
+:101E60008C01621773078407950764F4CA01B901EE
+:101E70006E197F09800B910B0E940D0FE60EF71E65
+:101E8000081F191FB701C8011F910F91FF90EF9014
+:101E900008952F923F924F925F926F927F928F920E
+:101EA0009F92AF92BF92CF92DF92EF92FF920F93E9
+:101EB0001F93DF93CF93CDB7DEB73B014C011901E0
+:101EC0002A016D897E898F89988D6A197B098C0911
+:101ED0009D09621A730A840A950AA40193010E945B
+:101EE000FA21E218F30804091509A80197010E94D4
+:101EF0004E222A0D3B1D4C1D5D1DB901CA01CF911B
+:101F0000DF911F910F91FF90EF90DF90CF90BF90E6
+:101F1000AF909F908F907F906F905F904F903F9089
+:101F20002F900895089570E0382F20E0622B732BD6
+:101F3000CB010895FC01808191810E945423089572
+:101F4000CF93DF93EC0188819981009711F00E9473
+:101F50005423198218821D821C821B821A82DF91EF
+:101F6000CF9108950F931F93CF93DF93EC018B01D3
+:101F70006F5F7F4F888199810E944224009731F0E2
+:101F8000998388831B830A8381E001C080E0DF910D
+:101F9000CF911F910F910895CF93DF93EC0188812A
+:101FA0009981009729F08A819B818617970778F499
+:101FB000CE010E94B20F882341F08C819D81009751
+:101FC00031F4E881F981108202C080E001C081E033
+:101FD000DF91CF910895EF92FF920F931F93CF93CC
+:101FE000DF93EC017B018A01BA010E94CC0F8823A8
+:101FF00021F4CE010E94A00F07C01D830C838881AD
+:102000009981B7010E948825CE01DF91CF911F9160
+:102010000F91FF90EF900895CF93DF93FC01118211
+:102020001082138212821582148216826115710544
+:1020300059F0EB0109900020E9F7AE014150504002
+:10204000461B570B0E94EB0FDF91CF910895EF9243
+:10205000FF92CF93DF93EC01FB018617970761F0A6
+:10206000608171816115710529F0448155810E945B
+:10207000EB0F02C00E94A00FCE01DF91CF91FF9025
+:10208000EF900895FC011182108213821282158252
+:10209000148216820E94271008950F931F938C01BB
+:1020A0006115710561F0DB010D900020E9F7AD01CC
+:1020B00041505040461B570B0E94EB0F02C00E943C
+:1020C000A00FC8011F910F910895EF92FF920F93F7
+:1020D0001F93DF93CF93CDB7DEB7A1970FB6F894D8
+:1020E000DEBF0FBECDBF7C01CB01BA01F70111826B
+:1020F0001082138212821582148216828E010F5F63
+:102100001F4FA80130E00E943B26C701B8010E9482
+:102110004D10A1960FB6F894DEBF0FBECDBFCF9184
+:10212000DF911F910F91FF90EF900895EF92FF9232
+:102130000F931F93DF93CF93CDB7DEB7A2970FB660
+:10214000F894DEBF0FBECDBF7C01CB01BA01F70111
+:1021500011821082138212821582148216828E01DD
+:102160000F5F1F4FA80130E00E94F225C701B801A0
+:102170000E944D10A2960FB6F894DEBF0FBECDBFE1
+:10218000CF91DF911F910F91FF90EF900895EF9203
+:10219000FF920F931F93DF93CF93CDB7DEB7619775
+:1021A0000FB6F894DEBF0FBECDBF7C01CB01F701A7
+:1021B00011821082138212821582148216828E017D
+:1021C0000F5F1F4FB80150E00E946026C701B801A1
+:1021D0000E944D1061960FB6F894DEBF0FBECDBFC2
+:1021E000CF91DF911F910F91FF90EF900895EF92A3
+:1021F000FF920F931F93DF93CF93CDB7DEB7629714
+:102200000FB6F894DEBF0FBECDBF7C01CB01F70146
+:1022100011821082138212821582148216828E011C
+:102220000F5F1F4FB80150E00E94D125C701B801D0
+:102230000E944D1062960FB6F894DEBF0FBECDBF60
+:10224000CF91DF911F910F91FF90EF900895EF9242
+:10225000FF920F931F93DF93CF93CDB7DEB72997EC
+:102260000FB6F894DEBF0FBECDBF7C01862FF701FD
+:10227000118210821382128215821482168290E0DB
+:102280008E010F5F1F4FB80150E00E946026C7010A
+:10229000B8010E944D1029960FB6F894DEBF0FBE0C
+:1022A000CDBFCF91DF911F910F91FF90EF900895D7
+:1022B000DF93CF9300D0CDB7DEB7FC01118210823F
+:1022C0001382128215821482168269831A82BE01D9
+:1022D0006F5F7F4F0E944D100F900F90CF91DF9155
+:1022E0000895EF92FF920F931F93CF93DF93EC012A
+:1022F0007B010C811D8161157105B9F041155105F6
+:1023000091F0040F151FB8010E94CC0F882369F0CB
+:10231000288139818C819D81820F931FB7010E9492
+:1023200088251D830C8381E001C080E0DF91CF917F
+:102330001F910F91FF90EF900895FB0160817181D3
+:10234000448155810E94711108956115710561F0F4
+:10235000DB010D900020E9F7AD0141505040461BD4
+:10236000570B0E947111089580E00895DF93CF9379
+:1023700000D0CDB7DEB769831A82BE016F5F7F4F91
+:1023800041E050E00E9471110F900F90CF91DF91CA
+:102390000895EF92FF920F931F93DF93CF9300D096
+:1023A00000D0CDB7DEB77C01862F90E08E010F5FA5
+:1023B0001F4FB8014AE050E00E94D125F80101907A
+:1023C0000020E9F7AF0141505040401B510BC701BD
+:1023D000B8010E9471110F900F900F900F90CF9144
+:1023E000DF911F910F91FF90EF900895EF92FF9270
+:1023F0000F931F93DF93CF93CDB7DEB727970FB619
+:10240000F894DEBF0FBECDBF7C01CB018E010F5F04
+:102410001F4FB8014AE050E00E94D125F801019019
+:102420000020E9F7AF0141505040401B510BC7015C
+:10243000B8010E94711127960FB6F894DEBF0FBE47
+:10244000CDBFCF91DF911F910F91FF90EF90089535
+:10245000EF92FF920F931F93DF93CF9300D000D0A2
+:1024600000D0CDB7DEB77C01CB018E010F5F1F4FCF
+:10247000B8014AE050E00E946026F8010190002077
+:10248000E9F7AF0141505040401B510BC701B80163
+:102490000E94711126960FB6F894DEBF0FBECDBF15
+:1024A000CF91DF911F910F91FF90EF900895EF92E0
+:1024B000FF920F931F93DF93CF93CDB7DEB72C9787
+:1024C0000FB6F894DEBF0FBECDBF7C01CB01BA01C1
+:1024D0008E010F5F1F4FA8012AE030E00E94F22515
+:1024E000F80101900020E9F7AF0141505040401B36
+:1024F000510BC701B8010E9471112C960FB6F894C8
+:10250000DEBF0FBECDBFCF91DF911F910F91FF9026
+:10251000EF900895EF92FF920F931F93DF93CF9365
+:10252000CDB7DEB72B970FB6F894DEBF0FBECDBF89
+:102530007C01CB01BA018E010F5F1F4FA8012AE079
+:1025400030E00E943B26F80101900020E9F7AF013E
+:1025500041505040401B510BC701B8010E947111FE
+:102560002B960FB6F894DEBF0FBECDBFCF91DF9193
+:102570001F910F91FF90EF9008950F931F938C017F
+:10258000FB0160817181448155810E947111882312
+:1025900019F4C8010E94A00FC8011F910F9108955E
+:1025A0000F931F938C016115710569F0DB010D908C
+:1025B0000020E9F7AD0141505040461B570B0E94E7
+:1025C0007111882319F4C8010E94A00FC8011F913E
+:1025D0000F9108950F931F938C010E94B6118823C9
+:1025E00019F4C8010E94A00FC8011F910F9108950E
+:1025F0000F931F938C010E94C911882319F4C801FD
+:102600000E94A00FC8011F910F9108950F931F936F
+:102610008C010E94F611882319F4C8010E94A00FB2
+:10262000C8011F910F9108950F931F938C010E9471
+:102630002812882319F4C8010E94A00FC8011F9115
+:102640000F9108950F931F938C010E9457128823B6
+:1026500019F4C8010E94A00FC8011F910F9108959D
+:102660000F931F938C010E948A12882319F4C801CA
+:102670000E94A00FC8011F910F910895CF93DF937F
+:10268000FC01DB0180819181009731F06D917C919B
+:10269000119761157105E9F4CD91DC91119720979F
+:1026A00069F014962D913C9115972115310531F063
+:1026B000288130E0309521953F4F12C0009771F08E
+:1026C000248135812115310549F0FC01208130E05C
+:1026D00007C00E947F25282F392F02C020E030E05C
+:1026E000C901DF91CF910895FC0144815581FB011F
+:1026F000248135814217530729F40E943E1321E0BB
+:10270000009709F020E0822F0895FC0184819581D3
+:10271000009741F46115710519F081E0FB0109C0D2
+:1027200081E008950190F081E02D6115710531F48B
+:1027300081E09081992359F080E00895CF010E94B3
+:102740007F259C0181E02115310509F080E0089585
+:102750000E943E13892F881F8827881F08950E9492
+:102760003E1321E0181619060CF020E0822F089580
+:102770000E943E1321E0181619060CF420E0822F67
+:1027800008950E943E13892F8095881F8827881FEF
+:102790000895EF92FF920F931F93CF93DF93FC0165
+:1027A000DB018617970729F18481958114962D9175
+:1027B0003C91159782179307F1F40097D1F00081AF
+:1027C0001181CD91DC9111970FC0992787FD9095CC
+:1027D0000E943C257C018991992787FD90950E9454
+:1027E0003C25E816F90639F4F80181918F01882318
+:1027F00061F781E001C080E0DF91CF911F910F91DF
+:10280000FF90EF900895FC01DB01CA0114964D91F1
+:102810005C91159724813581241B350B28173907C6
+:10282000A0F0208131812115310579F06D917C91E5
+:1028300011976115710559F0820F931F0E948F2522
+:102840009C0181E02115310519F080E0089580E0B8
+:102850000895FC0144815581FB0124813581421793
+:10286000530728F040E050E00E940314089580E0F0
+:102870000895FC01DB018481958114964D915C9152
+:10288000159784179507B0F0208131812115310506
+:1028900089F06D917C9111976115710569F0841B28
+:1028A000950B820F931F0E947F259C0181E02115CB
+:1028B000310519F080E0089580E00895FC018481DD
+:1028C00095816817790730F40190F081E02DE60FCB
+:1028D000F71F40830895FC0184819581681779076B
+:1028E00020F480819181009729F41092A00360EA7E
+:1028F00073E002C0680F791FCB010895FC01848149
+:1029000095816817790748F480819181009739F0A3
+:10291000680F791FFB018081089580E0089580E0B1
+:1029200008950E947E1408950F931F93CF93DF9311
+:10293000FC018B0141155105F1F061157105D9F0CC
+:10294000C481D5812C173D0718F0FB01108213C0FC
+:1029500041505040C21BD30B4C175D0708F4EA01ED
+:1029600060817181620F731FC801AE010E949D25B5
+:10297000C00FD11F1882DF91CF911F910F91089541
+:10298000CF93DF93FC01CA0124813581421753079D
+:1029900078F4C081D181772767FD70958C0F9D1FDA
+:1029A0000E947425009721F09C012C1B3D0B02C056
+:1029B0002FEF3FEFC901DF91CF91089540E050E044
+:1029C0000E94C0140895CF93DF93FC01CA012481B3
+:1029D00035814217530778F4C081D181FB016081B2
+:1029E00071818C0F9D1F0E94B725009721F09C01DB
+:1029F0002C1B3D0B02C02FEF3FEFC901DF91CF91A0
+:102A0000089540E050E00E94E3140895DF92EF92B1
+:102A1000FF920F931F93CF93DF93EC018C819D81E5
+:102A200048175907F8F47A010894E11CF11CE88171
+:102A3000F981EE0DFF1DD080108208811981772762
+:102A400067FD7095C8010E94AC250E0D1F1DF80191
+:102A5000D082009739F028813981AC01421B530B99
+:102A60009A0102C02FEF3FEFC901DF91CF911F9173
+:102A70000F91FF90EF90DF900895FC014481558104
+:102A8000415050400E9406150895AF92BF92CF92D8
+:102A9000DF92EF92FF920F931F93CF93DF93FC018E
+:102AA0006B018A01DB0114962D913C91159721153C
+:102AB000310551F184819581009731F18217930797
+:102AC00018F14817590718F08C0101501040E080A8
+:102AD000F180C701CFEFDFEF5701A00EB11E10C08C
+:102AE000F601608171810E94B725009779F09C0101
+:102AF0002E193F090217130708F49E010196E901F8
+:102B0000A816B90668F702C0CFEFDFEFCE01DF915C
+:102B1000CF911F910F91FF90EF90DF90CF90BF90DA
+:102B2000AF900895FC0144815581FB0124813581DA
+:102B3000421B530B0E9445150895AF92BF92CF924E
+:102B4000DF92EF92FF920F931F93CF93DF93F82EB4
+:102B5000E92E6B018A01E9012417350748F4342F67
+:102B6000212F8E01C901A92EE5015E01B22EE501DA
+:102B70008F2D9E2D6CEA71E00E940C10D6011496E8
+:102B80008D919C91159780179107D8F08C179D0710
+:102B900008F4EC01D601ED91FC911197EC0FFD1FAB
+:102BA000B08010826D917C91600F711F8F2D9E2DD2
+:102BB0000E944D10D601ED91FC911197EC0FFD1F75
+:102BC000B0828F2D9E2DDF91CF911F910F91FF909D
+:102BD000EF90DF90CF90BF90AF900895CF93DF93A9
+:102BE000EC01FB01248135810E949D15CE01DF910E
+:102BF000CF910895DC01ED91FC911197309729F464
+:102C00000895861709F44083319680818823C9F797
+:102C100008952F923F924F925F926F927F928F9280
+:102C20009F92AF92BF92CF92DF92EF92FF920F935B
+:102C30001F93CF93DF937C012B016A01DC01149673
+:102C40006D907C9015976114710409F4D9C0FB0153
+:102C5000848095808114910409F4D2C0DA0114961D
+:102C6000AD90BC901597A818B908FC01008111819E
+:102C7000A114B104F1F413C0D6016C9111967C91AA
+:102C8000119714964D915C911597CE010E9459258C
+:102C9000D60114960D911C9115970C0F1D1FF20172
+:102CA00060817181C8010E94B725EC01009721F76E
+:102CB000A7C0B7FC02C0E30142C048012DC0E30138
+:102CC000C01BD10BC401B801AE010E945925C80D2B
+:102CD000D91DD6016C9111967C91119714964D9146
+:102CE0005C911597CE010E945925D60114968D90BE
+:102CF0009C9015978C0E9D1EF20104811581060D86
+:102D0000171DD70114968D919C9115978A0D9B1DC7
+:102D100015969C938E931497F20160817181C8017E
+:102D20000E94B7253C01009751F6C401B8010E94EA
+:102D3000882566C08C01080D191DCA0DDB1DD20146
+:102D40006D917C91C8010E94B725009799F7C6152F
+:102D5000D70509F455C0F701828193818C179D072F
+:102D600008F045C0C701BE010E94B20F882309F4D4
+:102D700047C03DC0C701B201A9010E944515EC0141
+:102D800097FD3EC0D7016D917C911197F20184812E
+:102D900095818C0F9D1F680F791F14964D915C9142
+:102DA0001597481B590BCB018A0D9B1D0E9462256C
+:102DB000D70114968D919C9115978A0D9B1D1596A0
+:102DC0009C938E931497ED91FC911197E80FF91F46
+:102DD00010822D913C912C0F3D1FF6016081718175
+:102DE00044815581C9010E9459259E0105C0D70122
+:102DF00014962D913C9115972150304037FFBACF52
+:102E0000DF91CF911F910F91FF90EF90DF90CF90C6
+:102E1000BF90AF909F908F907F906F905F904F90FA
+:102E20003F902F900895CF93DF93FC01C081D18113
+:102E3000209739F409C0992787FD90950E943C2579
+:102E4000899388818823B9F7DF91CF910895CF9333
+:102E5000DF93FC01C081D181209739F409C0992703
+:102E600087FD90950E944425899388818823B9F72E
+:102E7000DF91CF910895AF92BF92CF92DF92EF9200
+:102E8000FF920F931F93CF93DF936C01DC01ED90C2
+:102E9000FC901197E114F10409F443C01496AD902D
+:102EA000BC901597A114B104E1F18701E801888174
+:102EB0000F5F1F4F992787FD90950E94342500973B
+:102EC000A9F78501015010400E0D1F1DF8018081EA
+:102ED000992787FD90950E943425009731F00C17B3
+:102EE0001D0718F001501040F1CF0F5F1F4F0C1B52
+:102EF0001D0BD60115961C930E931497EC16FD0628
+:102F000028F4C701BE01A8010E945925D601ED9100
+:102F1000FC91119714968D919C911597E80FF91FCC
+:102F20001082DF91CF911F910F91FF90EF90DF9072
+:102F3000CF90BF90AF900895FC0180819181009760
+:102F400029F00E940D259B01AC0103C020E030E078
+:102F5000A901B901CA0108950E94BA2208950E94E8
+:102F60005423089521E030E0FC018081882311F092
+:102F700020E030E0C901089521E0FC01208308959C
+:102F8000089508951F920F920FB60F9211242F9358
+:102F90003F934F935F936F937F938F939F93AF93E1
+:102FA000BF932091A5033091A6034091A7035091B0
+:102FB000A8037091A903DA01C9010296A11DB11DF0
+:102FC000672F6A5F6D3730F06D57DA01C9010396DC
+:102FD000A11DB11D6093A9038093A5039093A6033F
+:102FE000A093A703B093A8038091A1039091A2039B
+:102FF000A091A303B091A4030196A11DB11D8093DC
+:10300000A1039093A203A093A303B093A403BF9141
+:10301000AF919F918F917F916F915F914F913F9170
+:103020002F910F900FBE0F901F9018958FB7F894A7
+:103030002091A5033091A6034091A7035091A803C6
+:103040008FBFB901CA0108959FB7F8942091A103D9
+:103050003091A2034091A3035091A40386B5A89B8D
+:1030600006C08F3F21F02F5F3F4F4F4F5F4F9FBFF5
+:10307000542F432F322F2227280F311D411D511D60
+:1030800083E0220F331F441F551F8A95D1F7B901E2
+:10309000CA010895EF92FF920F931F93CF93DF938E
+:1030A0007B018C010E942418EB010FC00E942418A0
+:1030B0006C1B7D0B83E0683E780738F00894E108CC
+:1030C000F10801091109C851DC4FE114F1040105AF
+:1030D000110561F7DF91CF911F910F91FF90EF9054
+:1030E0000895019739F0019729F0880F991F0197EA
+:1030F0000197F1F70895789484B5826084BD84B512
+:10310000816084BD85B5826085BD85B5816085BDE2
+:10311000EEE6F0E0808181608083E1E8F0E01082FB
+:10312000808182608083808181608083E0E8F0E03C
+:10313000808181608083E1EBF0E080818460808326
+:10314000E0EBF0E0808181608083EAE7F0E080815D
+:1031500084608083808182608083808181608083BD
+:103160008081806880831092C10008958093AD01B2
+:1031700008958E3008F08E5087709091AD01929531
+:10318000990F990F907C982B90937C0080917A00F6
+:10319000806480937A0080917A0086FDFCCF209134
+:1031A000780030917900932F80E030E0282B392B84
+:1031B000C90108951F93CF93DF93182FEB0161E0AE
+:1031C0000E946719209709F44AC0CF3FD10509F43E
+:1031D00049C0E12FF0E0E155FF4FE491E330C1F049
+:1031E000E43028F4E13051F0E230B1F50CC0E630C3
+:1031F00019F1E73049F1E43079F514C084B58068FD
+:1032000084BDC7BD33C084B5806284BDC8BD2EC037
+:1032100080918000806880938000D0938900C09363
+:10322000880024C080918000806280938000D093C9
+:103230008B00C0938A001AC08091B0008068809390
+:10324000B000C093B30012C08091B0008062809340
+:10325000B000C093B4000AC0C038D1051CF4812F5F
+:1032600060E002C0812F61E00E948B19DF91CF9155
+:103270001F910895833071F0843028F48130A1F0DB
+:10328000823021F514C08630B1F08730D1F084301F
+:10329000E9F404C0809180008F7703C080918000A2
+:1032A0008F7D80938000089584B58F7702C084B5A8
+:1032B0008F7D84BD08958091B0008F778093B0009A
+:1032C00008958091B0008F7D8093B000089590E0C4
+:1032D000FC01E556FF4F2491FC01E957FF4FE491B3
+:1032E000EE23C1F0F0E0EE0FFF1FE759FF4F85918D
+:1032F0009491DC01662341F49FB7F8948C9120955A
+:1033000082238C939FBF08959FB7F8948C91822B52
+:103310008C939FBF08950F931F93DF93CF930F92CA
+:10332000CDB7DEB7282F30E0F901E155FF4F84918A
+:10333000F901E556FF4F149129573F4FF9010491C8
+:103340000023D9F0882321F069830E943A1969810A
+:10335000E02FF0E0EE0FFF1FED58FF4F85919491A5
+:10336000DC019FB7F894662321F48C91109581239A
+:1033700002C08C91812B8C939FBF0F90CF91DF91D6
+:103380001F910F9108950F931F93282F30E0F9019B
+:10339000E155FF4F8491F901E556FF4F04912957FC
+:1033A0003F4FF9011491112391F0882311F00E94ED
+:1033B0003A19E12FF0E0EE0FFF1FE358FF4F859120
+:1033C0009491DC018C91802321E030E011F420E025
+:1033D00030E0C9011F910F9108958F929F92AF9293
+:1033E000BF92CF92DF92EF92FF920F931F9390E0E4
+:1033F000FC01E556FF4F949089579F4FFC01E490E4
+:10340000662311F4882401C0892CCA01B90120E483
+:103410003FE140E050E00E94FA2120E83EE340E036
+:1034200050E00E942C2259016A0180E090E0DC010A
+:103430006E2D70E0FB01EE0FFF1FE358FF4F25914B
+:10344000349109C08A159B05AC05BD0509F44DC032
+:103450000196A11DB11DF90140814921481591F343
+:103460000AC08A159B05AC05BD0509F43EC001964E
+:10347000A11DB11D07C0660F771F63587F4FFB0169
+:1034800025913491F90140814921481551F720E0F7
+:1034900030E0A901FB01659174910FC079018A01A7
+:1034A000E80EF91E0A1F1B1FEA14FB040C051D057C
+:1034B000E1F02F5F3F4F4F4F5F4FFB01E081E9216C
+:1034C000E81561F3CA01B90128E032E540E050E0B7
+:1034D0000E94FA216058714C8F4F9F4F20E43FE1CA
+:1034E00040E050E00E942C2203C020E030E0A9011F
+:1034F000B901CA011F910F91FF90EF90DF90CF901B
+:10350000BF90AF909F908F900895CF92DF92EF92EF
+:10351000FF920F931F93CF93DF93E82EF62EC42EC6
+:10352000C7E0D0E0DD2407E010E08F2D61E00E94CD
+:103530008B19CC2071F48E2D0E94C31998012C1B7D
+:103540003D0BAC0102C0440F551F2A95E2F79A01CA
+:103550000AC08E2D0E94C3199C010C2E02C0220F9E
+:10356000331F0A94E2F7D22A8F2D60E00E948B1954
+:1035700021975FEFCF3FD507C1F68D2DDF91CF911A
+:103580001F910F91FF90EF90DF90CF900895BF9221
+:10359000CF92DF92EF92FF920F931F93CF93DF931F
+:1035A000C82ED62EB42EC7E0D0E0022F10E087E060
+:1035B000E82EF12CBB2059F497012C1B3D0BC801C0
+:1035C00002C0959587952A95E2F79C0107C098015E
+:1035D0000C2E02C0359527950A94E2F7622F617090
+:1035E0008C2D0E948B198D2D61E00E948B198D2DE1
+:1035F00060E00E948B1921979FEFCF3FD907D1F64A
+:10360000DF91CF911F910F91FF90EF90DF90CF90BE
+:10361000BF900895EF92FF920F931F937B018C014F
+:1036200020E030E040E05FE40E94861E87FD11C08C
+:10363000C801B70120E030E040E05FE40E94AD1C2B
+:103640000E94461F9B01AC01205030404040504832
+:1036500006C0C801B7010E94461F9B01AC01B90119
+:10366000CA011F910F91FF90EF900895A0E0B0E084
+:10367000ECE3FBE10C948122FC01EA0180818230C1
+:1036800008F438C1DB019C91923008F430C18430D9
+:1036900059F4943009F02EC1918111968C911197B3
+:1036A000981709F021C126C1943009F420C1923045
+:1036B000B1F4823009F01EC1CA01AF0128E0DA017D
+:1036C0000D90AD01DC010D92CD012150C1F7DB0160
+:1036D00011968C9111979181892389830AC1823037
+:1036E00009F405C1C280D380DB0112966D907C90F5
+:1036F000139724813581468157811496ED90FD9072
+:103700000D911C911797C601861997095C0197FFC7
+:1037100004C0AA24BB24A81AB90AB0E2AB16B104AB
+:103720000CF061C0181619066CF5370148010A2C17
+:1037300004C096948794779467940A94D2F781E0B2
+:1037400090E0A0E0B0E00A2C04C0880F991FAA1FE7
+:10375000BB1F0A94D2F70197A109B1098E219F21BD
+:10376000A023B123EE24FF248701E3940097A10551
+:10377000B10519F4EE24FF248701E628F72808296B
+:1037800019293CC00097D1F1CA0CDB1C39014A0150
+:103790000A2C04C096948794779467940A94D2F77D
+:1037A00081E090E0A0E0B0E00A2C04C0880F991FEF
+:1037B000AA1FBB1F0A94D2F70197A109B10982235E
+:1037C0009323A423B52321E030E040E050E00097AC
+:1037D000A105B10519F420E030E0A9012629372917
+:1037E000482959290BC06C147D0424F4EE24FF24CD
+:1037F000870104C0630120E030E0A9018181FB0161
+:103800009181891709F445C0882349F0D801C7017F
+:10381000821B930BA40BB50B9C01AD0104C02E19A8
+:103820003F09400B510B57FD04C01982DB82CA824D
+:103830000BC081E08983DB82CA8250954095309528
+:1038400021953F4F4F4F5F4F2C833D834E835F83C6
+:103850000DC0880F991FAA1FBB1F8C839D83AE8349
+:10386000BF838A819B8101979B838A838C819D8101
+:10387000AE81BF819C01AD0121503040404050409D
+:103880002F3FEFEF3E07EFEF4E07EFE35E0708F342
+:103890000BC08983DB82CA822E0D3F1D401F511F42
+:1038A0002C833D834E835F8383E088832C813D811D
+:1038B0004E815F8157FF1DC0DA01C9018170907090
+:1038C000A070B0705695479537952795822B932B0E
+:1038D000A42BB52B8C839D83AE83BF838A819B8170
+:1038E00001969B838A8305C0EEEAF1E003C0FB01E9
+:1038F00001C0FE01CF01CDB7DEB7EEE00C949D22F2
+:10390000A0E2B0E0E6E8FCE10C94892269837A83C6
+:103910008B839C832D833E834F83588789E0E82ED9
+:10392000F12CEC0EFD1ECE010196B7010E9438214C
+:103930008E010F5E1F4FCE010596B8010E943821FF
+:10394000C701B801AE01475E5F4F0E94361B0E945F
+:103950006A20A096E6E00C94A522A0E2B0E0E3EB9A
+:10396000FCE10C94892269837A838B839C832D8369
+:103970003E834F8358878E01075F1F4FCE0101960C
+:10398000B8010E94382191E1E92EF12CEC0EFD1EC8
+:10399000CE010596B7010E9438218A8991E08927D6
+:1039A0008A8BC801B701AE01475E5F4F0E94361B8C
+:1039B0000E946A20A096E6E00C94A522A0E2B0E066
+:1039C000E4EEFCE10C947D2269837A838B839C83F3
+:1039D0002D833E834F835887CE010196BE01675FDA
+:1039E0007F4F0E943821CE010596BE016F5E7F4F4A
+:1039F0000E9438219985923078F089898230C0F010
+:103A0000943019F4823041F4CBC0843019F49230F0
+:103A100079F4C6C0923051F481E02A859A89291739
+:103A200009F480E08A87CE010996BCC0823051F447
+:103A300081E02A859A89291709F480E08A8BCE01D2
+:103A40004196B0C06D847E848F849888ED88FE880E
+:103A50000F89188DE0E2F0E080E090E0DC01AA241C
+:103A6000BB24650120E030E0A901B30161707070F2
+:103A700061157105D1F02E0D3F1D401F511F15011D
+:103A80002601280E391E4A1E5B1E81E090E0A0E050
+:103A9000B0E02E153F054007510718F080E090E098
+:103AA000DC01820D931DA41DB51DAA0CBB1CCC1CF2
+:103AB000DD1C17FF09C061E0262E312C412C512C52
+:103AC000A228B328C428D528319749F0EE0CFF1C52
+:103AD000001F111F9694879477946794C6CF6B89C3
+:103AE0007C89EB85FC856E0F7F1F6E5F7F4F7C8F1F
+:103AF0006B8F61E0EA857A89E71709F460E06A8FE5
+:103B00006B8D7C8D10C0FC01E170F070309729F056
+:103B100056954795379527955068B695A7959795EB
+:103B200087956F5F7F4FB7FDEECF0CC0880F991F51
+:103B3000AA1FBB1F57FD8160220F331F441F551F53
+:103B4000615070408030E0E09E07E0E0AE07E0E4C6
+:103B5000BE0760F36B8F7C8F6FE7E62EF12C012D93
+:103B6000112DE822F9220A231B2360E4E616F10452
+:103B70000105110561F487FD0AC0211531054105D4
+:103B8000510529F0805C9F4FAF4FBF4F80788D8FDC
+:103B90009E8FAF8FB8A383E0898FCE01499602C074
+:103BA0008EEA91E00E946A20A096E2E10C949922AC
+:103BB000A8E1B0E0EEEDFDE10C94852269837A8303
+:103BC0008B839C832D833E834F8358878E01075FB1
+:103BD0001F4FCE010196B8010E94382181E1E82EE5
+:103BE000F12CEC0EFD1ECE010596B7010E94382186
+:103BF0009985923008F483C08989823008F47BC0AB
+:103C00002A853A8923272A87943011F0923021F4AB
+:103C1000981709F06CC071C0843039F41D861E8677
+:103C20001F86188A1C861B866AC0823019F484E0BD
+:103C3000898765C08B859C852B893C89821B930B6A
+:103C40009C878B872D853E854F855889ED88FE881A
+:103C50000F89188D2E153F054007510738F4220FA4
+:103C6000331F441F551F01979C878B876FE170E0BE
+:103C7000A12CB12CC12CA0E4DA2E80E090E0DC0174
+:103C80002E153F054007510740F08A299B29AC2992
+:103C9000BD292E193F09400B510BD694C794B794F8
+:103CA000A794220F331F441F551F6150704041F7E6
+:103CB0006FE7E62EF12C012D112DE822F9220A23BF
+:103CC0001B2360E4E616F1040105110561F487FD8C
+:103CD0000AC0211531054105510529F0805C9F4F2F
+:103CE000AF4FBF4F80788D879E87AF87B88B8E018F
+:103CF000075F1F4F04C0870102C00EEA11E0C80130
+:103D00000E946A206896EAE00C94A122A8E1B0E043
+:103D1000ECE8FEE10C94892269837A838B839C838F
+:103D20002D833E834F8358878E01075F1F4FCE013F
+:103D30000196B8010E94382181E1E82EF12CEC0EA9
+:103D4000FD1ECE010596B7010E943821898582307B
+:103D500040F08989823028F0C801B7010E94A12172
+:103D600001C08FEF6896E6E00C94A522A8E1B0E0D0
+:103D7000ECEBFEE10C94892269837A838B839C832C
+:103D80002D833E834F8358878E01075F1F4FCE01DF
+:103D90000196B8010E94382181E1E82EF12CEC0E49
+:103DA000FD1ECE010596B7010E943821898582301B
+:103DB00040F08989823028F0C801B7010E94A12112
+:103DC00001C081E06896E6E00C94A522A8E0B0E08E
+:103DD000ECEEFEE10C9489227B018C0183E0898367
+:103DE000D801C7018827B7FD83959927AA27BB2744
+:103DF000282F8A83E114F1040105110519F482E0EA
+:103E0000898337C08EE190E09C838B83222389F0E5
+:103E100080E0E81680E0F80680E0080780E81807F0
+:103E200069F110950095F094E094E11CF11C011DDE
+:103E3000111DED82FE820F831887C801B7010E9411
+:103E400010209C01215030401216130694F4022ECB
+:103E500004C0EE0CFF1C001F111F0A94D2F7ED8264
+:103E6000FE820F8318878EE190E0821B930B9C8368
+:103E70008B83CE0101960E946A2004C060E070E04E
+:103E800080E09FEC2896E6E00C94A522ACE0B0E040
+:103E9000ECE4FFE10C948D2269837A838B839C830D
+:103EA000CE010196BE016B5F7F4F0E9438218D814C
+:103EB000823081F1823070F1843021F48E81882348
+:103EC00069F10AC02F81388537FD24C06E812F31FA
+:103ED00031053CF0662311F120E030E040E050E88D
+:103EE00021C08EE190E0821B930B29853A854B859A
+:103EF0005C8504C056954795379527958A95D2F7E6
+:103F0000662381F050954095309521953F4F4F4F56
+:103F10005F4F08C020E030E0A90104C02FEF3FEF61
+:103F20004FEF5FE7B901CA012C96E2E00C94A92299
+:103F3000A8E0B0E0EEE9FFE10C9487227B018C0160
+:103F40001A82611571058105910519F482E0898352
+:103F50005FC083E089838EE1C82ED12CDC82CB82C6
+:103F6000ED82FE820F831887C801B7010E941020DE
+:103F7000FC013197F7FF3AC0AA27BB27AE1BBF0B46
+:103F800021E030E040E050E00A2E04C0220F331F51
+:103F9000441F551F0A94D2F72150304040405040F2
+:103FA0002E213F214023512361E070E080E090E02A
+:103FB000211531054105510519F460E070E0CB0190
+:103FC00004C016950795F794E794AA95D2F7E62AC8
+:103FD000F72A082B192BED82FE820F8318878EE1BA
+:103FE00090E08E1B9F0B9C838B8312C0309781F0D7
+:103FF0000E2E04C0EE0CFF1C001F111F0A94D2F7F6
+:10400000ED82FE820F831887CE1ADF0ADC82CB8214
+:10401000CE0101960E946A202896E8E00C94A32223
+:10402000AF92BF92CF92DF92EF92FF920F931F93C6
+:104030007B018C0180E0E81680E0F80681E008074B
+:1040400080E0180758F4EFEFEE16F10401051105B2
+:1040500009F090F480E090E0DC0117C0F0E0EF168A
+:10406000F0E0FF06F0E00F07F1E01F0750F480E1F9
+:1040700090E0A0E0B0E009C088E090E0A0E0B0E00F
+:1040800004C088E190E0A0E0B0E020E230E040E051
+:1040900050E0281B390B4A0B5B0B5701680104C029
+:1040A000D694C794B794A7948A95D2F7D601C50140
+:1040B0008A549E4FFC018081281B31094109510916
+:1040C000C9011F910F91FF90EF90DF90CF90BF90AB
+:1040D000AF900895EF92FF920F931F93CF93DF93CA
+:1040E000FC01248135814681578161818081823044
+:1040F00020F44061EFEFF0E0A3C0843009F49BC0EE
+:10410000823009F492C0211531054105510509F4A9
+:104110008FC00280F381E02D8FEFE238F8070CF0BA
+:104120005AC0C2E8DFEFCE1BDF0BCA31D1056CF5F8
+:1041300079018A010C2E04C016950795F794E7942F
+:104140000A94D2F781E090E0A0E0B0E00C2E04C029
+:10415000880F991FAA1FBB1F0A94D2F70197A109C4
+:10416000B10982239323A423B52321E030E040E06A
+:1041700050E00097A105B10519F420E030E0A90155
+:104180002E293F29402B512B03C020E030E0A9010C
+:10419000DA01C9018F779070A070B07080349105FA
+:1041A000A105B10539F427FF09C0205C3F4F4F4FEF
+:1041B0005F4F04C0215C3F4F4F4F5F4FE1E0F0E0A5
+:1041C000203080E0380780E0480780E4580728F571
+:1041D000E0E0F0E022C0E038F1056CF5E158FF4F77
+:1041E000DA01C9018F779070A070B07080349105AA
+:1041F000A105B10539F427FF09C0205C3F4F4F4F9F
+:104200005F4F04C0215C3F4F4F4F5F4F57FF05C0CA
+:104210005695479537952795319687E0569547955A
+:10422000379527958A95D1F70BC0E0E0F0E005C0FF
+:10423000E0E0F0E005C0EFEFF0E020E030E0A901C1
+:104240008E2F879588278795942F9F776795662768
+:104250006795E695E22EA92FA82BFE2FF62B622F4D
+:10426000732F8A2F9F2FCDB7DEB7E6E00C94A522DF
+:10427000DC01FB012C9111963C91119712968C91C7
+:104280001297482F4F7750E0982F991F9927991F21
+:1042900013966C911397862F880F892B90E0661FD9
+:1042A0006627661F6183009739F5211531054105A1
+:1042B000510511F482E029C082E89FEF9383828345
+:1042C00067E0220F331F441F551F6A95D1F783E023
+:1042D000808309C0220F331F441F551F82819381A1
+:1042E000019793838283203080E0380780E048077D
+:1042F00080E4580778F320C08F3F910579F42115A9
+:1043000031054105510519F484E08083089544FF87
+:1043100003C081E0808310C010820EC08F57904090
+:104320009383828383E0808387E0220F331F441FBF
+:10433000551F8A95D1F7506424833583468357836C
+:104340000895FC01DB019081923008F449C08C9102
+:10435000823008F445C0943051F461818430B1F565
+:1043600011962C91119730E0261B310941C0843001
+:1043700021F0923041F48230B1F111968C91119775
+:104380008823A1F12DC06181823001F111968C91B9
+:1043900011976817D9F42281338112968D919C91DF
+:1043A00013978217930794F028173907BCF02481DC
+:1043B00035814681578114968D919D910D90BC91C8
+:1043C000A02D82179307A407B50718F4662341F0C0
+:1043D0000DC0281739074A075B0728F4662331F018
+:1043E00021E030E005C020E030E002C02FEF3FEFD9
+:1043F000C9010895629FD001739FF001829FE00D73
+:10440000F11D649FE00DF11D929FF00D839FF00D53
+:10441000749FF00D659FF00D9927729FB00DE11DFF
+:10442000F91F639FB00DE11DF91FBD01CF011124DC
+:10443000089597FB092E07260AD077FD04D049D0AE
+:1044400006D000201AF4709561957F4F0895F6F715
+:10445000909581959F4F0895A1E21A2EAA1BBB1B30
+:10446000FD010DC0AA1FBB1FEE1FFF1FA217B30740
+:10447000E407F50720F0A21BB30BE40BF50B661F56
+:10448000771F881F991F1A9469F76095709580951A
+:1044900090959B01AC01BD01CF01089597FB092EBA
+:1044A00005260ED057FD04D0D7DF0AD0001C38F403
+:1044B00050954095309521953F4F4F4F5F4F089550
+:1044C000F6F790958095709561957F4F8F4F9F4F30
+:1044D0000895AA1BBB1B51E107C0AA1FBB1FA6174B
+:1044E000B70710F0A61BB70B881F991F5A95A9F79D
+:1044F00080959095BC01CD0108952F923F924F92E7
+:104500005F926F927F928F929F92AF92BF92CF9263
+:10451000DF92EF92FF920F931F93CF93DF93CDB76C
+:10452000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFE4
+:1045300009942A88398848885F846E847D848C84B5
+:104540009B84AA84B984C884DF80EE80FD800C81BE
+:104550001B81AA81B981CE0FD11D0FB6F894DEBFA1
+:104560000FBECDBFED010895EE0FFF1F0590F49132
+:10457000E02D0994CF93DF938230910510F482E00F
+:1045800090E0E091AC03F091AD0340E050E020E01A
+:1045900030E026C06081718168177907E0F0681704
+:1045A000790781F4828193812115310531F0D90198
+:1045B00013969C938E9312972BC09093AD03809388
+:1045C000AC0326C04115510519F06417750718F49E
+:1045D000AB01E901DF019F0172816381E72FF62FB3
+:1045E0003097C1F64115510501F1481B590B443074
+:1045F000510580F412968D919C911397209719F094
+:104600009B838A8304C09093AD038093AC03FD0128
+:10461000329646C0FD01E40FF51F819391934250FD
+:10462000504011965C934E933BC02091AA03309169
+:10463000AB032115310541F42091B8023091B90244
+:104640003093AB032093AA032091BA023091BB02AE
+:104650002115310541F42DB73EB74091B602509176
+:10466000B702241B350BE091AA03F091AB03E217CC
+:10467000F307A0F42E1B3F0B2817390778F0AC0185
+:104680004E5F5F4F2417350748F04E0F5F1F509362
+:10469000AB034093AA038193919302C0E0E0F0E062
+:1046A000CF01DF91CF910895CF93DF93009709F465
+:1046B00091C0FC013297138212826091AC03709119
+:1046C000AD036115710581F420813181280F391FF7
+:1046D0008091AA039091AB038217930799F5F09309
+:1046E000AB03E093AA0376C0DB0180E090E002C058
+:1046F000CD01D901AE17BF0748F412962D913C9118
+:10470000139721153105A1F7CD0121C0B383A283F1
+:10471000EF01499159919E01240F351FA217B3074C
+:1047200079F42D913C911197240F351F2E5F3F4F47
+:104730003183208312962D913C91139733832283EA
+:10474000009729F4F093AD03E093AC0343C0DC0180
+:104750001396FC93EE9312974D915D91A40FB51FA4
+:10476000EA17FB0769F420813181240F351F2E5F82
+:104770003F4FEC0139832883228133813B832A8395
+:10478000E0E0F0E002C0FB01BC01DB0112968D917C
+:104790009C9113970097B9F79B012E5F3F4F8D9126
+:1047A0009C911197820F931F4091AA035091AB03E4
+:1047B0004817590779F4309729F41092AD031092F5
+:1047C000AC0302C013821282225030403093AB03FC
+:1047D0002093AA03DF91CF910895A0E0B0E0E3EF2A
+:1047E000F3E20C948522EC01688179818A819B81B6
+:1047F000611571058105910521F464E279ED8BE580
+:1048000097E02DE133EF41E050E00E944E22790124
+:104810008A0127EA31E440E050E00E94FA215B017E
+:104820006C01C801B7012CEE34EF4FEF5FEF0E942F
+:10483000FA219B01AC012A0D3B1D4C1D5D1D57FF4C
+:1048400004C02150304040405048288339834A8377
+:104850005B835F77B901CA01CDB7DEB7EAE00C949C
+:10486000A1220E94ED2308958CEB92E00E94ED239B
+:1048700008956093BC027093BD028093BE02909332
+:10488000BF020895A0E0B0E0E8E4F4E20C948322D3
+:104890008C01CB010115110529F40E94BA22082FC1
+:1048A000192FB5C0D80112979801260F371F2A1764
+:1048B0003B0708F4AAC0ED90FC901197E616F706A6
+:1048C000D0F045E0E416F10408F4A1C0A70144507B
+:1048D00050404617570708F49AC0A701425050406D
+:1048E000461B570BF901419351936D937C93CF0174
+:1048F0000E9454238CC05B01AE18BF0848018E0C87
+:104900009F1CE091AC03F091AD03CC24DD24C0E00A
+:10491000D0E041C0E815F90599F560817181AB01DE
+:104920004E5F5F4F4A155B0558F1AB014A195B09B1
+:10493000CC24DD246894C1F8C40ED51E8280A380E7
+:10494000E5E0CE16D10448F0F9018282A3825183BA
+:10495000408311969C938E9309C0C7010296860FDF
+:10496000971F11969C938E93E82DFA2D209719F09E
+:10497000FB83EA834CC0F093AD03E093AC0347C0E4
+:1049800040815181C416D50608F46A01EF015281B5
+:104990004381E52FF42F309709F0BCCF4091AA0353
+:1049A0005091AB0348155905E9F4C816D906D0F45F
+:1049B0004091BA025091BB024115510541F44DB7E7
+:1049C0005EB76091B6027091B702461B570B241771
+:1049D0003507D8F43093AB032093AA0311969C9328
+:1049E0008E9315C00E94BA22C82EE6016E01D92E00
+:1049F000E601209751F08C2DB801A7010E9459259E
+:104A0000C8010E945423860102C000E010E0C801E2
+:104A1000CDB7DEB7ECE00C949F221F93FC019927E1
+:104A20008827BC01E89411911032E9F3193010F095
+:104A30001E30C8F31B3251F01D3249F4689406C091
+:104A40000E942626610F711D811D911D1191105329
+:104A50001A30B0F33EF490958095709561957F4F34
+:104A60008F4F9F4F1F910895911140C1803219F0CF
+:104A700089508550D0F708959111089581548A5135
+:104A800008F4805E855A08959111089581568A51DF
+:104A900008F4805285580895FB01DC0104C08D9113
+:104AA0000190801921F441505040C8F7881B990BA0
+:104AB0000895FB01DC0102C001900D92415050406D
+:104AC000D8F708956817790768F4FB01DC01E40F53
+:104AD000F51FA40FB51F02C002900E924150504026
+:104AE000D8F708950C945925FC018191861721F07F
+:104AF0008823D9F7992708953197CF010895FB01AD
+:104B0000DC018D91019080190110D9F3990B089562
+:104B1000FB01DC0101900D920020E1F70895FB01FB
+:104B2000DC014150504030F08D910190801919F412
+:104B30000020B9F7881B990B0895FB01DC01415057
+:104B4000504048F001900D920020C9F701C01D921D
+:104B500041505040E0F70895FC0181E090E0019061
+:104B6000061609F4CF010020D1F701970895FB0143
+:104B700051915523A9F0BF01DC014D914517411119
+:104B8000E1F759F4CD010190002049F04D91401515
+:104B90004111C9F3FB014111EFCF81E090E0019792
+:104BA0000895FB019F01E8944230C4F04532B4F40B
+:104BB0004A3029F497FB1EF4909581959F4F642FFE
+:104BC00077270E946922805D8A330CF0895D81938A
+:104BD000CB010097A1F716F45DE251931082C90151
+:104BE0000C947926FA01CF93FF93EF93223044F18E
+:104BF000253234F5C22FE894CA3049F497FB3EF4CD
+:104C000090958095709561957F4F8F4F9F4F2C2F7A
+:104C1000332744275527FF93EF930E942C22EF91CF
+:104C2000FF91605D6A330CF0695D6193B901CA015F
+:104C3000605070408040904051F716F4CDE2C1932F
+:104C400010828F919F91CF910C947926592F482FE4
+:104C5000372F262F660F771F881F991F660F771F24
+:104C6000881F991F620F731F841F951F660F771F80
+:104C7000881F991F0895FA01CF93FF93EF93223075
+:104C8000CCF02532BCF4C22F2C2F332744275527D4
+:104C9000FF93EF930E942C22EF91FF91605D6A33A6
+:104CA0000CF0695D6193B901CA01605070408040A9
+:104CB000904051F710828F919F91CF910C9479265B
+:104CC000FB019F01423074F0453264F4642F772772
+:104CD0000E946922805D8A330CF0895D8193CB014B
+:104CE0000097A1F71082C9010C947926992788278B
+:104CF0000895DC01FC01672F71917723E1F732976A
+:104D000004C07C916D9370836291AE17BF07C8F3A6
+:064D10000895F894FFCFA6
+:104D16000D0A2B494E513D310D0A000D0A2B5354F5
+:104D2600574D4F443D300D0A000D0A2B53544E414A
+:104D36003D4164617074696373456C65637469634E
+:104D46000D0A000D0A2B53544F4155543D310D0A9F
+:104D5600000D0A2B53544155544F3D300D0A000D9A
+:104D66000A202B535450494E3D303030300D0A0046
+:104D76000D0A2B4C4F53535245434F4E4E3D300D6B
+:104D86000A0007F0000000000078034E06130342F5
+:104D9600032603640300000000C1174E06C117C1B5
+:104DA60017C117C11700000000A60500000000C1CA
+:104DB600172E0000000000C1174E06FF000100007C
+:104DC60000000000000000010202030303030404C4
+:104DD6000404040404040505050505050505050583
+:104DE6000505050505050606060606060606060663
+:104DF600060606060606060606060606060606064D
+:104E06000606060606060707070707070707070732
+:104E1600070707070707070707070707070707071C
+:104E2600070707070707070707070707070707070C
+:104E360007070707070707070707070707070707FC
+:104E460007070707070708080808080808080808E2
+:104E560008080808080808080808080808080808CC
+:104E660008080808080808080808080808080808BC
+:104E760008080808080808080808080808080808AC
+:104E8600080808080808080808080808080808089C
+:104E9600080808080808080808080808080808088C
+:104EA600080808080808080808080808080808087C
+:104EB600080808080808080808080808080808086C
+:104EC6000808080808082000AE03000001000000DA
+:00000001FF
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss
new file mode 100644
index 0000000..542aa8a
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss
@@ -0,0 +1,9698 @@
+
+bin/Release/ESS1995test_328p.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 000001c0 00800100 00004d16 00004daa 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00004d16 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 000000ee 008002c0 008002c0 00004f6a 2**0
+ ALLOC
+ 3 .stab 00002928 00000000 00000000 00004f6c 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00000d28 00000000 00000000 00007894 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 64 00 jmp 0xc8 ; 0xc8 <__ctors_end>
+ 4: 0c 94 ab 0e jmp 0x1d56 ; 0x1d56 <__vector_1>
+ 8: 0c 94 d8 0e jmp 0x1db0 ; 0x1db0 <__vector_2>
+ c: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 10: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 14: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 18: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 1c: 0c 94 1f 0e jmp 0x1c3e ; 0x1c3e <__vector_7>
+ 20: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 24: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 28: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 2c: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 30: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 34: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 38: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 3c: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 40: 0c 94 c2 17 jmp 0x2f84 ; 0x2f84 <__vector_16>
+ 44: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 48: 0c 94 cc 03 jmp 0x798 ; 0x798 <__vector_18>
+ 4c: 0c 94 fd 03 jmp 0x7fa ; 0x7fa <__vector_19>
+ 50: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 54: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 58: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 5c: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 60: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+ 64: 0c 94 8c 00 jmp 0x118 ; 0x118 <__bad_interrupt>
+
+00000068 <_ZL21tone_pin_to_timer_PGM>:
+ 68: 02 .
+
+00000069 <port_to_mode_PGM>:
+ 69: 00 00 00 00 24 00 27 00 2a 00 ....$.'.*.
+
+00000073 <port_to_output_PGM>:
+ 73: 00 00 00 00 25 00 28 00 2b 00 ....%.(.+.
+
+0000007d <port_to_input_PGM>:
+ 7d: 00 00 00 00 23 00 26 00 29 00 ....#.&.).
+
+00000087 <digital_pin_to_port_PGM>:
+ 87: 04 04 04 04 04 04 04 04 02 02 02 02 02 02 03 03 ................
+ 97: 03 03 03 03 ....
+
+0000009b <digital_pin_to_bit_mask_PGM>:
+ 9b: 01 02 04 08 10 20 40 80 01 02 04 08 10 20 01 02 ..... @...... ..
+ ab: 04 08 10 20 ...
+
+000000af <digital_pin_to_timer_PGM>:
+ af: 00 00 00 07 00 02 01 00 00 03 04 06 00 00 00 00 ................
+ bf: 00 00 00 00 00 .....
+
+000000c4 <__ctors_start>:
+ c4: 69 05 cpc r22, r9
+ c6: 3f 06 cpc r3, r31
+
+000000c8 <__ctors_end>:
+ c8: 11 24 eor r1, r1
+ ca: 1f be out 0x3f, r1 ; 63
+ cc: cf ef ldi r28, 0xFF ; 255
+ ce: d8 e0 ldi r29, 0x08 ; 8
+ d0: de bf out 0x3e, r29 ; 62
+ d2: cd bf out 0x3d, r28 ; 61
+
+000000d4 <__do_copy_data>:
+ d4: 12 e0 ldi r17, 0x02 ; 2
+ d6: a0 e0 ldi r26, 0x00 ; 0
+ d8: b1 e0 ldi r27, 0x01 ; 1
+ da: e6 e1 ldi r30, 0x16 ; 22
+ dc: fd e4 ldi r31, 0x4D ; 77
+ de: 02 c0 rjmp .+4 ; 0xe4 <__do_copy_data+0x10>
+ e0: 05 90 lpm r0, Z+
+ e2: 0d 92 st X+, r0
+ e4: a0 3c cpi r26, 0xC0 ; 192
+ e6: b1 07 cpc r27, r17
+ e8: d9 f7 brne .-10 ; 0xe0 <__do_copy_data+0xc>
+
+000000ea <__do_clear_bss>:
+ ea: 13 e0 ldi r17, 0x03 ; 3
+ ec: a0 ec ldi r26, 0xC0 ; 192
+ ee: b2 e0 ldi r27, 0x02 ; 2
+ f0: 01 c0 rjmp .+2 ; 0xf4 <.do_clear_bss_start>
+
+000000f2 <.do_clear_bss_loop>:
+ f2: 1d 92 st X+, r1
+
+000000f4 <.do_clear_bss_start>:
+ f4: ae 3a cpi r26, 0xAE ; 174
+ f6: b1 07 cpc r27, r17
+ f8: e1 f7 brne .-8 ; 0xf2 <.do_clear_bss_loop>
+
+000000fa <__do_global_ctors>:
+ fa: 10 e0 ldi r17, 0x00 ; 0
+ fc: c8 ec ldi r28, 0xC8 ; 200
+ fe: d0 e0 ldi r29, 0x00 ; 0
+ 100: 04 c0 rjmp .+8 ; 0x10a <__do_global_ctors+0x10>
+ 102: 22 97 sbiw r28, 0x02 ; 2
+ 104: fe 01 movw r30, r28
+ 106: 0e 94 b6 22 call 0x456c ; 0x456c <__tablejump__>
+ 10a: c4 3c cpi r28, 0xC4 ; 196
+ 10c: d1 07 cpc r29, r17
+ 10e: c9 f7 brne .-14 ; 0x102 <__do_global_ctors+0x8>
+ 110: 0e 94 ef 01 call 0x3de ; 0x3de <main>
+ 114: 0c 94 89 26 jmp 0x4d12 ; 0x4d12 <_exit>
+
+00000118 <__bad_interrupt>:
+ 118: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+0000011c <_Z9advertisev>:
+ 11c: cf 93 push r28
+ 11e: df 93 push r29
+ 120: 60 ed ldi r22, 0xD0 ; 208
+ 122: 77 e0 ldi r23, 0x07 ; 7
+ 124: 80 e0 ldi r24, 0x00 ; 0
+ 126: 90 e0 ldi r25, 0x00 ; 0
+ 128: 0e 94 4a 18 call 0x3094 ; 0x3094 <delay>
+ 12c: c2 e6 ldi r28, 0x62 ; 98
+ 12e: d3 e0 ldi r29, 0x03 ; 3
+ 130: ce 01 movw r24, r28
+ 132: 60 e0 ldi r22, 0x00 ; 0
+ 134: 71 e0 ldi r23, 0x01 ; 1
+ 136: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 13a: 60 ed ldi r22, 0xD0 ; 208
+ 13c: 77 e0 ldi r23, 0x07 ; 7
+ 13e: 80 e0 ldi r24, 0x00 ; 0
+ 140: 90 e0 ldi r25, 0x00 ; 0
+ 142: 0e 94 4a 18 call 0x3094 ; 0x3094 <delay>
+ 146: ce 01 movw r24, r28
+ 148: 0e 94 64 03 call 0x6c8 ; 0x6c8 <_ZN14HardwareSerial5flushEv>
+ 14c: df 91 pop r29
+ 14e: cf 91 pop r28
+ 150: 08 95 ret
+
+00000152 <_Z14setupBlueToothv>:
+ 152: cf 93 push r28
+ 154: df 93 push r29
+ 156: 86 e0 ldi r24, 0x06 ; 6
+ 158: 60 e0 ldi r22, 0x00 ; 0
+ 15a: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 15e: c2 e6 ldi r28, 0x62 ; 98
+ 160: d3 e0 ldi r29, 0x03 ; 3
+ 162: ce 01 movw r24, r28
+ 164: 40 e0 ldi r20, 0x00 ; 0
+ 166: 56 e9 ldi r21, 0x96 ; 150
+ 168: 60 e0 ldi r22, 0x00 ; 0
+ 16a: 70 e0 ldi r23, 0x00 ; 0
+ 16c: 0e 94 83 04 call 0x906 ; 0x906 <_ZN14HardwareSerial5beginEm>
+ 170: ce 01 movw r24, r28
+ 172: 6b e0 ldi r22, 0x0B ; 11
+ 174: 71 e0 ldi r23, 0x01 ; 1
+ 176: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 17a: ce 01 movw r24, r28
+ 17c: 69 e1 ldi r22, 0x19 ; 25
+ 17e: 71 e0 ldi r23, 0x01 ; 1
+ 180: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 184: ce 01 movw r24, r28
+ 186: 63 e3 ldi r22, 0x33 ; 51
+ 188: 71 e0 ldi r23, 0x01 ; 1
+ 18a: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 18e: ce 01 movw r24, r28
+ 190: 61 e4 ldi r22, 0x41 ; 65
+ 192: 71 e0 ldi r23, 0x01 ; 1
+ 194: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 198: ce 01 movw r24, r28
+ 19a: 6f e4 ldi r22, 0x4F ; 79
+ 19c: 71 e0 ldi r23, 0x01 ; 1
+ 19e: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 1a2: ce 01 movw r24, r28
+ 1a4: 60 e6 ldi r22, 0x60 ; 96
+ 1a6: 71 e0 ldi r23, 0x01 ; 1
+ 1a8: 0e 94 df 06 call 0xdbe ; 0xdbe <_ZN5Print5printEPKc>
+ 1ac: 0e 94 8e 00 call 0x11c ; 0x11c <_Z9advertisev>
+ 1b0: df 91 pop r29
+ 1b2: cf 91 pop r28
+ 1b4: 08 95 ret
+
+000001b6 <_Z10startWritev>:
+ 1b6: 84 e0 ldi r24, 0x04 ; 4
+ 1b8: 61 e0 ldi r22, 0x01 ; 1
+ 1ba: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 1be: 83 e0 ldi r24, 0x03 ; 3
+ 1c0: 61 e0 ldi r22, 0x01 ; 1
+ 1c2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 1c6: 08 95 ret
+
+000001c8 <_Z9startReadv>:
+ 1c8: 84 e0 ldi r24, 0x04 ; 4
+ 1ca: 60 e0 ldi r22, 0x00 ; 0
+ 1cc: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 1d0: 83 e0 ldi r24, 0x03 ; 3
+ 1d2: 61 e0 ldi r22, 0x01 ; 1
+ 1d4: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 1d8: 08 95 ret
+
+000001da <_Z11SCLKcycle_Wv>:
+ 1da: 8a e0 ldi r24, 0x0A ; 10
+ 1dc: 90 e0 ldi r25, 0x00 ; 0
+ 1de: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 1e2: 83 e0 ldi r24, 0x03 ; 3
+ 1e4: 61 e0 ldi r22, 0x01 ; 1
+ 1e6: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 1ea: 84 e1 ldi r24, 0x14 ; 20
+ 1ec: 90 e0 ldi r25, 0x00 ; 0
+ 1ee: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 1f2: 83 e0 ldi r24, 0x03 ; 3
+ 1f4: 60 e0 ldi r22, 0x00 ; 0
+ 1f6: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 1fa: 8a e0 ldi r24, 0x0A ; 10
+ 1fc: 90 e0 ldi r25, 0x00 ; 0
+ 1fe: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 202: 08 95 ret
+
+00000204 <_Z11SCLKcycle_Rv>:
+ 204: 8a e0 ldi r24, 0x0A ; 10
+ 206: 90 e0 ldi r25, 0x00 ; 0
+ 208: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 20c: 83 e0 ldi r24, 0x03 ; 3
+ 20e: 60 e0 ldi r22, 0x00 ; 0
+ 210: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 214: 84 e1 ldi r24, 0x14 ; 20
+ 216: 90 e0 ldi r25, 0x00 ; 0
+ 218: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 21c: 83 e0 ldi r24, 0x03 ; 3
+ 21e: 61 e0 ldi r22, 0x01 ; 1
+ 220: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 224: 8a e0 ldi r24, 0x0A ; 10
+ 226: 90 e0 ldi r25, 0x00 ; 0
+ 228: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 22c: 08 95 ret
+
+0000022e <_Z9writeByteh>:
+ 22e: 1f 93 push r17
+ 230: cf 93 push r28
+ 232: df 93 push r29
+ 234: 17 e0 ldi r17, 0x07 ; 7
+ 236: c8 2f mov r28, r24
+ 238: d0 e0 ldi r29, 0x00 ; 0
+ 23a: be 01 movw r22, r28
+ 23c: 01 2e mov r0, r17
+ 23e: 02 c0 rjmp .+4 ; 0x244 <_Z9writeByteh+0x16>
+ 240: 75 95 asr r23
+ 242: 67 95 ror r22
+ 244: 0a 94 dec r0
+ 246: e2 f7 brpl .-8 ; 0x240 <_Z9writeByteh+0x12>
+ 248: 61 70 andi r22, 0x01 ; 1
+ 24a: 84 e0 ldi r24, 0x04 ; 4
+ 24c: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 250: 0e 94 ed 00 call 0x1da ; 0x1da <_Z11SCLKcycle_Wv>
+ 254: 11 50 subi r17, 0x01 ; 1
+ 256: 88 f7 brcc .-30 ; 0x23a <_Z9writeByteh+0xc>
+ 258: 84 e0 ldi r24, 0x04 ; 4
+ 25a: 61 e0 ldi r22, 0x01 ; 1
+ 25c: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 260: 0e 94 ed 00 call 0x1da ; 0x1da <_Z11SCLKcycle_Wv>
+ 264: df 91 pop r29
+ 266: cf 91 pop r28
+ 268: 1f 91 pop r17
+ 26a: 08 95 ret
+
+0000026c <_Z12writeStopBitv>:
+ 26c: 84 e0 ldi r24, 0x04 ; 4
+ 26e: 60 e0 ldi r22, 0x00 ; 0
+ 270: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 274: 8a e0 ldi r24, 0x0A ; 10
+ 276: 90 e0 ldi r25, 0x00 ; 0
+ 278: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 27c: 83 e0 ldi r24, 0x03 ; 3
+ 27e: 61 e0 ldi r22, 0x01 ; 1
+ 280: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 284: 8a e0 ldi r24, 0x0A ; 10
+ 286: 90 e0 ldi r25, 0x00 ; 0
+ 288: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 28c: 84 e0 ldi r24, 0x04 ; 4
+ 28e: 61 e0 ldi r22, 0x01 ; 1
+ 290: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 294: 08 95 ret
+
+00000296 <_Z13writeStartBitv>:
+ 296: 84 e0 ldi r24, 0x04 ; 4
+ 298: 61 e0 ldi r22, 0x01 ; 1
+ 29a: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 29e: 83 e0 ldi r24, 0x03 ; 3
+ 2a0: 61 e0 ldi r22, 0x01 ; 1
+ 2a2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 2a6: 8a e0 ldi r24, 0x0A ; 10
+ 2a8: 90 e0 ldi r25, 0x00 ; 0
+ 2aa: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 2ae: 84 e0 ldi r24, 0x04 ; 4
+ 2b0: 60 e0 ldi r22, 0x00 ; 0
+ 2b2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 2b6: 8a e0 ldi r24, 0x0A ; 10
+ 2b8: 90 e0 ldi r25, 0x00 ; 0
+ 2ba: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 2be: 83 e0 ldi r24, 0x03 ; 3
+ 2c0: 60 e0 ldi r22, 0x00 ; 0
+ 2c2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 2c6: 8a e0 ldi r24, 0x0A ; 10
+ 2c8: 90 e0 ldi r25, 0x00 ; 0
+ 2ca: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 2ce: 08 95 ret
+
+000002d0 <_Z8readBytev>:
+ 2d0: 0f 93 push r16
+ 2d2: 1f 93 push r17
+ 2d4: 8a e0 ldi r24, 0x0A ; 10
+ 2d6: 90 e0 ldi r25, 0x00 ; 0
+ 2d8: 0e 94 71 18 call 0x30e2 ; 0x30e2 <delayMicroseconds>
+ 2dc: 17 e0 ldi r17, 0x07 ; 7
+ 2de: 00 e0 ldi r16, 0x00 ; 0
+ 2e0: 84 e0 ldi r24, 0x04 ; 4
+ 2e2: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 2e6: 68 2f mov r22, r24
+ 2e8: 28 2f mov r18, r24
+ 2ea: 30 e0 ldi r19, 0x00 ; 0
+ 2ec: 01 2e mov r0, r17
+ 2ee: 02 c0 rjmp .+4 ; 0x2f4 <_Z8readBytev+0x24>
+ 2f0: 22 0f add r18, r18
+ 2f2: 33 1f adc r19, r19
+ 2f4: 0a 94 dec r0
+ 2f6: e2 f7 brpl .-8 ; 0x2f0 <_Z8readBytev+0x20>
+ 2f8: 02 2b or r16, r18
+ 2fa: 8c e0 ldi r24, 0x0C ; 12
+ 2fc: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 300: 0e 94 02 01 call 0x204 ; 0x204 <_Z11SCLKcycle_Rv>
+ 304: 11 50 subi r17, 0x01 ; 1
+ 306: 60 f7 brcc .-40 ; 0x2e0 <_Z8readBytev+0x10>
+ 308: 0e 94 02 01 call 0x204 ; 0x204 <_Z11SCLKcycle_Rv>
+ 30c: 80 2f mov r24, r16
+ 30e: 1f 91 pop r17
+ 310: 0f 91 pop r16
+ 312: 08 95 ret
+
+00000314 <_Z8writeDMMv>:
+ 314: ef 92 push r14
+ 316: ff 92 push r15
+ 318: 0f 93 push r16
+ 31a: 1f 93 push r17
+ 31c: 80 91 cb 02 lds r24, 0x02CB
+ 320: 87 95 ror r24
+ 322: 88 27 eor r24, r24
+ 324: 87 95 ror r24
+ 326: 00 91 cc 02 lds r16, 0x02CC
+ 32a: 00 0f add r16, r16
+ 32c: 00 0f add r16, r16
+ 32e: 00 0f add r16, r16
+ 330: 08 2b or r16, r24
+ 332: 80 91 cd 02 lds r24, 0x02CD
+ 336: 08 2b or r16, r24
+ 338: 80 91 cf 02 lds r24, 0x02CF
+ 33c: 82 95 swap r24
+ 33e: 88 0f add r24, r24
+ 340: 80 7e andi r24, 0xE0 ; 224
+ 342: 10 91 d0 02 lds r17, 0x02D0
+ 346: 11 0f add r17, r17
+ 348: 11 0f add r17, r17
+ 34a: 11 0f add r17, r17
+ 34c: 18 2b or r17, r24
+ 34e: 80 91 ce 02 lds r24, 0x02CE
+ 352: 18 2b or r17, r24
+ 354: 90 91 d1 02 lds r25, 0x02D1
+ 358: 97 95 ror r25
+ 35a: 99 27 eor r25, r25
+ 35c: 97 95 ror r25
+ 35e: 80 91 d5 02 lds r24, 0x02D5
+ 362: 82 95 swap r24
+ 364: 80 7f andi r24, 0xF0 ; 240
+ 366: 89 2b or r24, r25
+ 368: 90 91 d7 02 lds r25, 0x02D7
+ 36c: 89 2b or r24, r25
+ 36e: 90 91 d9 02 lds r25, 0x02D9
+ 372: 99 0f add r25, r25
+ 374: 99 0f add r25, r25
+ 376: 99 0f add r25, r25
+ 378: 98 2b or r25, r24
+ 37a: e0 90 d4 02 lds r14, 0x02D4
+ 37e: ee 0c add r14, r14
+ 380: e9 2a or r14, r25
+ 382: 90 91 d2 02 lds r25, 0x02D2
+ 386: 97 95 ror r25
+ 388: 99 27 eor r25, r25
+ 38a: 97 95 ror r25
+ 38c: 80 91 d3 02 lds r24, 0x02D3
+ 390: 82 95 swap r24
+ 392: 88 0f add r24, r24
+ 394: 88 0f add r24, r24
+ 396: 80 7c andi r24, 0xC0 ; 192
+ 398: 89 2b or r24, r25
+ 39a: 90 91 d8 02 lds r25, 0x02D8
+ 39e: 89 2b or r24, r25
+ 3a0: f0 90 d6 02 lds r15, 0x02D6
+ 3a4: ff 0c add r15, r15
+ 3a6: ff 0c add r15, r15
+ 3a8: f8 2a or r15, r24
+ 3aa: 0e 94 db 00 call 0x1b6 ; 0x1b6 <_Z10startWritev>
+ 3ae: 0e 94 4b 01 call 0x296 ; 0x296 <_Z13writeStartBitv>
+ 3b2: 88 ec ldi r24, 0xC8 ; 200
+ 3b4: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 3b8: 80 2f mov r24, r16
+ 3ba: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 3be: 81 2f mov r24, r17
+ 3c0: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 3c4: 8e 2d mov r24, r14
+ 3c6: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 3ca: 8f 2d mov r24, r15
+ 3cc: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 3d0: 0e 94 36 01 call 0x26c ; 0x26c <_Z12writeStopBitv>
+ 3d4: 1f 91 pop r17
+ 3d6: 0f 91 pop r16
+ 3d8: ff 90 pop r15
+ 3da: ef 90 pop r14
+ 3dc: 08 95 ret
+
+000003de <main>:
+ 3de: 8f 92 push r8
+ 3e0: 9f 92 push r9
+ 3e2: af 92 push r10
+ 3e4: bf 92 push r11
+ 3e6: cf 92 push r12
+ 3e8: df 92 push r13
+ 3ea: ef 92 push r14
+ 3ec: ff 92 push r15
+ 3ee: 0f 93 push r16
+ 3f0: 1f 93 push r17
+ 3f2: df 93 push r29
+ 3f4: cf 93 push r28
+ 3f6: cd b7 in r28, 0x3d ; 61
+ 3f8: de b7 in r29, 0x3e ; 62
+ 3fa: 27 97 sbiw r28, 0x07 ; 7
+ 3fc: 0f b6 in r0, 0x3f ; 63
+ 3fe: f8 94 cli
+ 400: de bf out 0x3e, r29 ; 62
+ 402: 0f be out 0x3f, r0 ; 63
+ 404: cd bf out 0x3d, r28 ; 61
+ 406: 0e 94 7b 18 call 0x30f6 ; 0x30f6 <init>
+ 40a: 85 e0 ldi r24, 0x05 ; 5
+ 40c: 61 e0 ldi r22, 0x01 ; 1
+ 40e: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 412: 85 e0 ldi r24, 0x05 ; 5
+ 414: 60 e0 ldi r22, 0x00 ; 0
+ 416: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 41a: 0e 94 a9 00 call 0x152 ; 0x152 <_Z14setupBlueToothv>
+ 41e: 82 e0 ldi r24, 0x02 ; 2
+ 420: 60 e0 ldi r22, 0x00 ; 0
+ 422: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 426: 83 e0 ldi r24, 0x03 ; 3
+ 428: 61 e0 ldi r22, 0x01 ; 1
+ 42a: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 42e: 86 e0 ldi r24, 0x06 ; 6
+ 430: 60 e0 ldi r22, 0x00 ; 0
+ 432: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 436: 8c e0 ldi r24, 0x0C ; 12
+ 438: 61 e0 ldi r22, 0x01 ; 1
+ 43a: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 43e: 8d e0 ldi r24, 0x0D ; 13
+ 440: 61 e0 ldi r22, 0x01 ; 1
+ 442: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 446: 8d e0 ldi r24, 0x0D ; 13
+ 448: 61 e0 ldi r22, 0x01 ; 1
+ 44a: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 44e: 85 e0 ldi r24, 0x05 ; 5
+ 450: 61 e0 ldi r22, 0x01 ; 1
+ 452: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 456: 6a ef ldi r22, 0xFA ; 250
+ 458: 70 e0 ldi r23, 0x00 ; 0
+ 45a: 80 e0 ldi r24, 0x00 ; 0
+ 45c: 90 e0 ldi r25, 0x00 ; 0
+ 45e: 0e 94 4a 18 call 0x3094 ; 0x3094 <delay>
+ 462: 0e 94 8a 01 call 0x314 ; 0x314 <_Z8writeDMMv>
+ 466: 0a ef ldi r16, 0xFA ; 250
+ 468: 10 e0 ldi r17, 0x00 ; 0
+ 46a: 7e 01 movw r14, r28
+ 46c: 08 94 sec
+ 46e: e1 1c adc r14, r1
+ 470: f1 1c adc r15, r1
+ 472: a4 e0 ldi r26, 0x04 ; 4
+ 474: aa 2e mov r10, r26
+ 476: b1 2c mov r11, r1
+ 478: ac 0e add r10, r28
+ 47a: bd 1e adc r11, r29
+ 47c: f2 e0 ldi r31, 0x02 ; 2
+ 47e: 8f 2e mov r8, r31
+ 480: 91 2c mov r9, r1
+ 482: 8c 0e add r8, r28
+ 484: 9d 1e adc r9, r29
+ 486: 82 e0 ldi r24, 0x02 ; 2
+ 488: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 48c: 81 30 cpi r24, 0x01 ; 1
+ 48e: 91 05 cpc r25, r1
+ 490: 09 f0 breq .+2 ; 0x494 <main+0xb6>
+ 492: bb c0 rjmp .+374 ; 0x60a <main+0x22c>
+ 494: 8c e0 ldi r24, 0x0C ; 12
+ 496: 61 e0 ldi r22, 0x01 ; 1
+ 498: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 49c: 8d e0 ldi r24, 0x0D ; 13
+ 49e: 60 e0 ldi r22, 0x00 ; 0
+ 4a0: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 4a4: 0e 94 db 00 call 0x1b6 ; 0x1b6 <_Z10startWritev>
+ 4a8: 0e 94 4b 01 call 0x296 ; 0x296 <_Z13writeStartBitv>
+ 4ac: 89 ec ldi r24, 0xC9 ; 201
+ 4ae: 0e 94 17 01 call 0x22e ; 0x22e <_Z9writeByteh>
+ 4b2: 82 e0 ldi r24, 0x02 ; 2
+ 4b4: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 4b8: 00 97 sbiw r24, 0x00 ; 0
+ 4ba: 09 f0 breq .+2 ; 0x4be <main+0xe0>
+ 4bc: a6 c0 rjmp .+332 ; 0x60a <main+0x22c>
+ 4be: 8d e0 ldi r24, 0x0D ; 13
+ 4c0: 61 e0 ldi r22, 0x01 ; 1
+ 4c2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 4c6: 0e 94 e4 00 call 0x1c8 ; 0x1c8 <_Z9startReadv>
+ 4ca: e1 ec ldi r30, 0xC1 ; 193
+ 4cc: ce 2e mov r12, r30
+ 4ce: e2 e0 ldi r30, 0x02 ; 2
+ 4d0: de 2e mov r13, r30
+ 4d2: 0e 94 68 01 call 0x2d0 ; 0x2d0 <_Z8readBytev>
+ 4d6: f6 01 movw r30, r12
+ 4d8: 81 93 st Z+, r24
+ 4da: 6f 01 movw r12, r30
+ 4dc: fb ec ldi r31, 0xCB ; 203
+ 4de: cf 16 cp r12, r31
+ 4e0: f2 e0 ldi r31, 0x02 ; 2
+ 4e2: df 06 cpc r13, r31
+ 4e4: b1 f7 brne .-20 ; 0x4d2 <main+0xf4>
+ 4e6: 0e 94 db 00 call 0x1b6 ; 0x1b6 <_Z10startWritev>
+ 4ea: 0e 94 36 01 call 0x26c ; 0x26c <_Z12writeStopBitv>
+ 4ee: 80 91 c1 02 lds r24, 0x02C1
+ 4f2: 89 83 std Y+1, r24 ; 0x01
+ 4f4: 80 91 c3 02 lds r24, 0x02C3
+ 4f8: 90 e0 ldi r25, 0x00 ; 0
+ 4fa: a0 e0 ldi r26, 0x00 ; 0
+ 4fc: b0 e0 ldi r27, 0x00 ; 0
+ 4fe: ba 2f mov r27, r26
+ 500: a9 2f mov r26, r25
+ 502: 98 2f mov r25, r24
+ 504: 88 27 eor r24, r24
+ 506: 20 91 c4 02 lds r18, 0x02C4
+ 50a: 30 e0 ldi r19, 0x00 ; 0
+ 50c: 40 e0 ldi r20, 0x00 ; 0
+ 50e: 50 e0 ldi r21, 0x00 ; 0
+ 510: 82 2b or r24, r18
+ 512: 93 2b or r25, r19
+ 514: a4 2b or r26, r20
+ 516: b5 2b or r27, r21
+ 518: 20 91 c2 02 lds r18, 0x02C2
+ 51c: 30 e0 ldi r19, 0x00 ; 0
+ 51e: 40 e0 ldi r20, 0x00 ; 0
+ 520: 50 e0 ldi r21, 0x00 ; 0
+ 522: 27 70 andi r18, 0x07 ; 7
+ 524: 30 70 andi r19, 0x00 ; 0
+ 526: 40 70 andi r20, 0x00 ; 0
+ 528: 50 70 andi r21, 0x00 ; 0
+ 52a: a9 01 movw r20, r18
+ 52c: 33 27 eor r19, r19
+ 52e: 22 27 eor r18, r18
+ 530: 82 2b or r24, r18
+ 532: 93 2b or r25, r19
+ 534: a4 2b or r26, r20
+ 536: b5 2b or r27, r21
+ 538: 8c 83 std Y+4, r24 ; 0x04
+ 53a: 9d 83 std Y+5, r25 ; 0x05
+ 53c: ae 83 std Y+6, r26 ; 0x06
+ 53e: bf 83 std Y+7, r27 ; 0x07
+ 540: 80 91 c6 02 lds r24, 0x02C6
+ 544: 82 95 swap r24
+ 546: 86 95 lsr r24
+ 548: 86 95 lsr r24
+ 54a: 83 70 andi r24, 0x03 ; 3
+ 54c: 90 e0 ldi r25, 0x00 ; 0
+ 54e: 20 91 c5 02 lds r18, 0x02C5
+ 552: 30 e0 ldi r19, 0x00 ; 0
+ 554: 22 0f add r18, r18
+ 556: 33 1f adc r19, r19
+ 558: 22 0f add r18, r18
+ 55a: 33 1f adc r19, r19
+ 55c: 82 2b or r24, r18
+ 55e: 93 2b or r25, r19
+ 560: 9b 83 std Y+3, r25 ; 0x03
+ 562: 8a 83 std Y+2, r24 ; 0x02
+ 564: 13 c0 rjmp .+38 ; 0x58c <main+0x1ae>
+ 566: 82 e6 ldi r24, 0x62 ; 98
+ 568: 93 e0 ldi r25, 0x03 ; 3
+ 56a: 0e 94 42 03 call 0x684 ; 0x684 <_ZN14HardwareSerial4readEv>
+ 56e: 82 30 cpi r24, 0x02 ; 2
+ 570: 29 f0 breq .+10 ; 0x57c <main+0x19e>
+ 572: 83 30 cpi r24, 0x03 ; 3
+ 574: 31 f0 breq .+12 ; 0x582 <main+0x1a4>
+ 576: 81 30 cpi r24, 0x01 ; 1
+ 578: 49 f4 brne .+18 ; 0x58c <main+0x1ae>
+ 57a: 06 c0 rjmp .+12 ; 0x588 <main+0x1aa>
+ 57c: 0a ef ldi r16, 0xFA ; 250
+ 57e: 10 e0 ldi r17, 0x00 ; 0
+ 580: 05 c0 rjmp .+10 ; 0x58c <main+0x1ae>
+ 582: 02 e3 ldi r16, 0x32 ; 50
+ 584: 10 e0 ldi r17, 0x00 ; 0
+ 586: 02 c0 rjmp .+4 ; 0x58c <main+0x1ae>
+ 588: 08 ee ldi r16, 0xE8 ; 232
+ 58a: 13 e0 ldi r17, 0x03 ; 3
+ 58c: 82 e6 ldi r24, 0x62 ; 98
+ 58e: 93 e0 ldi r25, 0x03 ; 3
+ 590: 0e 94 13 03 call 0x626 ; 0x626 <_ZN14HardwareSerial9availableEv>
+ 594: 18 16 cp r1, r24
+ 596: 19 06 cpc r1, r25
+ 598: 34 f3 brlt .-52 ; 0x566 <main+0x188>
+ 59a: 86 e0 ldi r24, 0x06 ; 6
+ 59c: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 5a0: 20 91 c0 02 lds r18, 0x02C0
+ 5a4: 00 97 sbiw r24, 0x00 ; 0
+ 5a6: 59 f1 breq .+86 ; 0x5fe <main+0x220>
+ 5a8: 22 23 and r18, r18
+ 5aa: 19 f4 brne .+6 ; 0x5b2 <main+0x1d4>
+ 5ac: 81 e0 ldi r24, 0x01 ; 1
+ 5ae: 80 93 c0 02 sts 0x02C0, r24
+ 5b2: 82 e6 ldi r24, 0x62 ; 98
+ 5b4: 93 e0 ldi r25, 0x03 ; 3
+ 5b6: 63 e7 ldi r22, 0x73 ; 115
+ 5b8: 71 e0 ldi r23, 0x01 ; 1
+ 5ba: 42 e0 ldi r20, 0x02 ; 2
+ 5bc: 50 e0 ldi r21, 0x00 ; 0
+ 5be: 0e 94 4e 06 call 0xc9c ; 0xc9c <_ZN5Print5writeEPKhj>
+ 5c2: 82 e6 ldi r24, 0x62 ; 98
+ 5c4: 93 e0 ldi r25, 0x03 ; 3
+ 5c6: 62 e7 ldi r22, 0x72 ; 114
+ 5c8: 71 e0 ldi r23, 0x01 ; 1
+ 5ca: 41 e0 ldi r20, 0x01 ; 1
+ 5cc: 50 e0 ldi r21, 0x00 ; 0
+ 5ce: 0e 94 4e 06 call 0xc9c ; 0xc9c <_ZN5Print5writeEPKhj>
+ 5d2: 82 e6 ldi r24, 0x62 ; 98
+ 5d4: 93 e0 ldi r25, 0x03 ; 3
+ 5d6: b7 01 movw r22, r14
+ 5d8: 41 e0 ldi r20, 0x01 ; 1
+ 5da: 50 e0 ldi r21, 0x00 ; 0
+ 5dc: 0e 94 4e 06 call 0xc9c ; 0xc9c <_ZN5Print5writeEPKhj>
+ 5e0: 82 e6 ldi r24, 0x62 ; 98
+ 5e2: 93 e0 ldi r25, 0x03 ; 3
+ 5e4: b5 01 movw r22, r10
+ 5e6: 44 e0 ldi r20, 0x04 ; 4
+ 5e8: 50 e0 ldi r21, 0x00 ; 0
+ 5ea: 0e 94 4e 06 call 0xc9c ; 0xc9c <_ZN5Print5writeEPKhj>
+ 5ee: 82 e6 ldi r24, 0x62 ; 98
+ 5f0: 93 e0 ldi r25, 0x03 ; 3
+ 5f2: b4 01 movw r22, r8
+ 5f4: 42 e0 ldi r20, 0x02 ; 2
+ 5f6: 50 e0 ldi r21, 0x00 ; 0
+ 5f8: 0e 94 4e 06 call 0xc9c ; 0xc9c <_ZN5Print5writeEPKhj>
+ 5fc: 06 c0 rjmp .+12 ; 0x60a <main+0x22c>
+ 5fe: 22 23 and r18, r18
+ 600: 21 f0 breq .+8 ; 0x60a <main+0x22c>
+ 602: 0e 94 8e 00 call 0x11c ; 0x11c <_Z9advertisev>
+ 606: 10 92 c0 02 sts 0x02C0, r1
+ 60a: b8 01 movw r22, r16
+ 60c: 80 e0 ldi r24, 0x00 ; 0
+ 60e: 90 e0 ldi r25, 0x00 ; 0
+ 610: 0e 94 4a 18 call 0x3094 ; 0x3094 <delay>
+ 614: 8c e0 ldi r24, 0x0C ; 12
+ 616: 60 e0 ldi r22, 0x00 ; 0
+ 618: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 61c: 8d e0 ldi r24, 0x0D ; 13
+ 61e: 60 e0 ldi r22, 0x00 ; 0
+ 620: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 624: 30 cf rjmp .-416 ; 0x486 <main+0xa8>
+
+00000626 <_ZN14HardwareSerial9availableEv>:
+ 626: fc 01 movw r30, r24
+ 628: 84 85 ldd r24, Z+12 ; 0x0c
+ 62a: 95 85 ldd r25, Z+13 ; 0x0d
+ 62c: fc 01 movw r30, r24
+ 62e: e0 5c subi r30, 0xC0 ; 192
+ 630: ff 4f sbci r31, 0xFF ; 255
+ 632: 20 81 ld r18, Z
+ 634: 31 81 ldd r19, Z+1 ; 0x01
+ 636: 8e 5b subi r24, 0xBE ; 190
+ 638: 9f 4f sbci r25, 0xFF ; 255
+ 63a: fc 01 movw r30, r24
+ 63c: 80 81 ld r24, Z
+ 63e: 91 81 ldd r25, Z+1 ; 0x01
+ 640: 28 1b sub r18, r24
+ 642: 39 0b sbc r19, r25
+ 644: 2f 73 andi r18, 0x3F ; 63
+ 646: 30 70 andi r19, 0x00 ; 0
+ 648: c9 01 movw r24, r18
+ 64a: 08 95 ret
+
+0000064c <_ZN14HardwareSerial4peekEv>:
+ 64c: fc 01 movw r30, r24
+ 64e: 84 85 ldd r24, Z+12 ; 0x0c
+ 650: 95 85 ldd r25, Z+13 ; 0x0d
+ 652: fc 01 movw r30, r24
+ 654: e0 5c subi r30, 0xC0 ; 192
+ 656: ff 4f sbci r31, 0xFF ; 255
+ 658: 40 81 ld r20, Z
+ 65a: 51 81 ldd r21, Z+1 ; 0x01
+ 65c: fc 01 movw r30, r24
+ 65e: ee 5b subi r30, 0xBE ; 190
+ 660: ff 4f sbci r31, 0xFF ; 255
+ 662: 20 81 ld r18, Z
+ 664: 31 81 ldd r19, Z+1 ; 0x01
+ 666: 42 17 cp r20, r18
+ 668: 53 07 cpc r21, r19
+ 66a: 41 f0 breq .+16 ; 0x67c <_ZN14HardwareSerial4peekEv+0x30>
+ 66c: 01 90 ld r0, Z+
+ 66e: f0 81 ld r31, Z
+ 670: e0 2d mov r30, r0
+ 672: e8 0f add r30, r24
+ 674: f9 1f adc r31, r25
+ 676: 20 81 ld r18, Z
+ 678: 30 e0 ldi r19, 0x00 ; 0
+ 67a: 02 c0 rjmp .+4 ; 0x680 <_ZN14HardwareSerial4peekEv+0x34>
+ 67c: 2f ef ldi r18, 0xFF ; 255
+ 67e: 3f ef ldi r19, 0xFF ; 255
+ 680: c9 01 movw r24, r18
+ 682: 08 95 ret
+
+00000684 <_ZN14HardwareSerial4readEv>:
+ 684: fc 01 movw r30, r24
+ 686: 84 85 ldd r24, Z+12 ; 0x0c
+ 688: 95 85 ldd r25, Z+13 ; 0x0d
+ 68a: fc 01 movw r30, r24
+ 68c: e0 5c subi r30, 0xC0 ; 192
+ 68e: ff 4f sbci r31, 0xFF ; 255
+ 690: 40 81 ld r20, Z
+ 692: 51 81 ldd r21, Z+1 ; 0x01
+ 694: fc 01 movw r30, r24
+ 696: ee 5b subi r30, 0xBE ; 190
+ 698: ff 4f sbci r31, 0xFF ; 255
+ 69a: 20 81 ld r18, Z
+ 69c: 31 81 ldd r19, Z+1 ; 0x01
+ 69e: 42 17 cp r20, r18
+ 6a0: 53 07 cpc r21, r19
+ 6a2: 71 f0 breq .+28 ; 0x6c0 <_ZN14HardwareSerial4readEv+0x3c>
+ 6a4: a0 81 ld r26, Z
+ 6a6: b1 81 ldd r27, Z+1 ; 0x01
+ 6a8: a8 0f add r26, r24
+ 6aa: b9 1f adc r27, r25
+ 6ac: 2c 91 ld r18, X
+ 6ae: 80 81 ld r24, Z
+ 6b0: 91 81 ldd r25, Z+1 ; 0x01
+ 6b2: 01 96 adiw r24, 0x01 ; 1
+ 6b4: 8f 73 andi r24, 0x3F ; 63
+ 6b6: 90 70 andi r25, 0x00 ; 0
+ 6b8: 91 83 std Z+1, r25 ; 0x01
+ 6ba: 80 83 st Z, r24
+ 6bc: 30 e0 ldi r19, 0x00 ; 0
+ 6be: 02 c0 rjmp .+4 ; 0x6c4 <_ZN14HardwareSerial4readEv+0x40>
+ 6c0: 2f ef ldi r18, 0xFF ; 255
+ 6c2: 3f ef ldi r19, 0xFF ; 255
+ 6c4: c9 01 movw r24, r18
+ 6c6: 08 95 ret
+
+000006c8 <_ZN14HardwareSerial5flushEv>:
+ 6c8: dc 01 movw r26, r24
+ 6ca: 1e 96 adiw r26, 0x0e ; 14
+ 6cc: 8d 91 ld r24, X+
+ 6ce: 9c 91 ld r25, X
+ 6d0: 1f 97 sbiw r26, 0x0f ; 15
+ 6d2: fc 01 movw r30, r24
+ 6d4: e0 5c subi r30, 0xC0 ; 192
+ 6d6: ff 4f sbci r31, 0xFF ; 255
+ 6d8: 8e 5b subi r24, 0xBE ; 190
+ 6da: 9f 4f sbci r25, 0xFF ; 255
+ 6dc: 40 81 ld r20, Z
+ 6de: 51 81 ldd r21, Z+1 ; 0x01
+ 6e0: dc 01 movw r26, r24
+ 6e2: 2d 91 ld r18, X+
+ 6e4: 3c 91 ld r19, X
+ 6e6: 11 97 sbiw r26, 0x01 ; 1
+ 6e8: 42 17 cp r20, r18
+ 6ea: 53 07 cpc r21, r19
+ 6ec: b9 f7 brne .-18 ; 0x6dc <_ZN14HardwareSerial5flushEv+0x14>
+ 6ee: 08 95 ret
+
+000006f0 <_ZN14HardwareSerial5writeEh>:
+ 6f0: 1f 93 push r17
+ 6f2: fc 01 movw r30, r24
+ 6f4: 16 2f mov r17, r22
+ 6f6: 26 85 ldd r18, Z+14 ; 0x0e
+ 6f8: 37 85 ldd r19, Z+15 ; 0x0f
+ 6fa: d9 01 movw r26, r18
+ 6fc: a0 5c subi r26, 0xC0 ; 192
+ 6fe: bf 4f sbci r27, 0xFF ; 255
+ 700: 8d 91 ld r24, X+
+ 702: 9c 91 ld r25, X
+ 704: 01 96 adiw r24, 0x01 ; 1
+ 706: 60 e4 ldi r22, 0x40 ; 64
+ 708: 70 e0 ldi r23, 0x00 ; 0
+ 70a: 0e 94 19 22 call 0x4432 ; 0x4432 <__divmodhi4>
+ 70e: d9 01 movw r26, r18
+ 710: ae 5b subi r26, 0xBE ; 190
+ 712: bf 4f sbci r27, 0xFF ; 255
+ 714: 4d 91 ld r20, X+
+ 716: 5c 91 ld r21, X
+ 718: 11 97 sbiw r26, 0x01 ; 1
+ 71a: 84 17 cp r24, r20
+ 71c: 95 07 cpc r25, r21
+ 71e: d1 f3 breq .-12 ; 0x714 <_ZN14HardwareSerial5writeEh+0x24>
+ 720: d9 01 movw r26, r18
+ 722: a0 5c subi r26, 0xC0 ; 192
+ 724: bf 4f sbci r27, 0xFF ; 255
+ 726: 0d 90 ld r0, X+
+ 728: bc 91 ld r27, X
+ 72a: a0 2d mov r26, r0
+ 72c: a2 0f add r26, r18
+ 72e: b3 1f adc r27, r19
+ 730: 1c 93 st X, r17
+ 732: a6 85 ldd r26, Z+14 ; 0x0e
+ 734: b7 85 ldd r27, Z+15 ; 0x0f
+ 736: a0 5c subi r26, 0xC0 ; 192
+ 738: bf 4f sbci r27, 0xFF ; 255
+ 73a: 11 96 adiw r26, 0x01 ; 1
+ 73c: 9c 93 st X, r25
+ 73e: 8e 93 st -X, r24
+ 740: a6 89 ldd r26, Z+22 ; 0x16
+ 742: b7 89 ldd r27, Z+23 ; 0x17
+ 744: 2c 91 ld r18, X
+ 746: 81 e0 ldi r24, 0x01 ; 1
+ 748: 90 e0 ldi r25, 0x00 ; 0
+ 74a: 05 8c ldd r0, Z+29 ; 0x1d
+ 74c: 02 c0 rjmp .+4 ; 0x752 <_ZN14HardwareSerial5writeEh+0x62>
+ 74e: 88 0f add r24, r24
+ 750: 99 1f adc r25, r25
+ 752: 0a 94 dec r0
+ 754: e2 f7 brpl .-8 ; 0x74e <_ZN14HardwareSerial5writeEh+0x5e>
+ 756: 28 2b or r18, r24
+ 758: 2c 93 st X, r18
+ 75a: 81 e0 ldi r24, 0x01 ; 1
+ 75c: 90 e0 ldi r25, 0x00 ; 0
+ 75e: 1f 91 pop r17
+ 760: 08 95 ret
+
+00000762 <_Z10store_charhP11ring_buffer>:
+ 762: fb 01 movw r30, r22
+ 764: e0 5c subi r30, 0xC0 ; 192
+ 766: ff 4f sbci r31, 0xFF ; 255
+ 768: 20 81 ld r18, Z
+ 76a: 31 81 ldd r19, Z+1 ; 0x01
+ 76c: 2f 5f subi r18, 0xFF ; 255
+ 76e: 3f 4f sbci r19, 0xFF ; 255
+ 770: 2f 73 andi r18, 0x3F ; 63
+ 772: 30 70 andi r19, 0x00 ; 0
+ 774: db 01 movw r26, r22
+ 776: ae 5b subi r26, 0xBE ; 190
+ 778: bf 4f sbci r27, 0xFF ; 255
+ 77a: 4d 91 ld r20, X+
+ 77c: 5c 91 ld r21, X
+ 77e: 11 97 sbiw r26, 0x01 ; 1
+ 780: 24 17 cp r18, r20
+ 782: 35 07 cpc r19, r21
+ 784: 39 f0 breq .+14 ; 0x794 <_Z10store_charhP11ring_buffer+0x32>
+ 786: a0 81 ld r26, Z
+ 788: b1 81 ldd r27, Z+1 ; 0x01
+ 78a: a6 0f add r26, r22
+ 78c: b7 1f adc r27, r23
+ 78e: 8c 93 st X, r24
+ 790: 31 83 std Z+1, r19 ; 0x01
+ 792: 20 83 st Z, r18
+ 794: 08 95 ret
+
+00000796 <_Z11serialEventv>:
+ 796: 08 95 ret
+
+00000798 <__vector_18>:
+ 798: 1f 92 push r1
+ 79a: 0f 92 push r0
+ 79c: 0f b6 in r0, 0x3f ; 63
+ 79e: 0f 92 push r0
+ 7a0: 11 24 eor r1, r1
+ 7a2: 2f 93 push r18
+ 7a4: 3f 93 push r19
+ 7a6: 4f 93 push r20
+ 7a8: 5f 93 push r21
+ 7aa: 6f 93 push r22
+ 7ac: 7f 93 push r23
+ 7ae: 8f 93 push r24
+ 7b0: 9f 93 push r25
+ 7b2: af 93 push r26
+ 7b4: bf 93 push r27
+ 7b6: ef 93 push r30
+ 7b8: ff 93 push r31
+ 7ba: 80 91 c6 00 lds r24, 0x00C6
+ 7be: 6a ed ldi r22, 0xDA ; 218
+ 7c0: 72 e0 ldi r23, 0x02 ; 2
+ 7c2: 0e 94 b1 03 call 0x762 ; 0x762 <_Z10store_charhP11ring_buffer>
+ 7c6: ff 91 pop r31
+ 7c8: ef 91 pop r30
+ 7ca: bf 91 pop r27
+ 7cc: af 91 pop r26
+ 7ce: 9f 91 pop r25
+ 7d0: 8f 91 pop r24
+ 7d2: 7f 91 pop r23
+ 7d4: 6f 91 pop r22
+ 7d6: 5f 91 pop r21
+ 7d8: 4f 91 pop r20
+ 7da: 3f 91 pop r19
+ 7dc: 2f 91 pop r18
+ 7de: 0f 90 pop r0
+ 7e0: 0f be out 0x3f, r0 ; 63
+ 7e2: 0f 90 pop r0
+ 7e4: 1f 90 pop r1
+ 7e6: 18 95 reti
+
+000007e8 <_Z14serialEventRunv>:
+ 7e8: 82 e6 ldi r24, 0x62 ; 98
+ 7ea: 93 e0 ldi r25, 0x03 ; 3
+ 7ec: 0e 94 13 03 call 0x626 ; 0x626 <_ZN14HardwareSerial9availableEv>
+ 7f0: 00 97 sbiw r24, 0x00 ; 0
+ 7f2: 11 f0 breq .+4 ; 0x7f8 <_Z14serialEventRunv+0x10>
+ 7f4: 0e 94 cb 03 call 0x796 ; 0x796 <_Z11serialEventv>
+ 7f8: 08 95 ret
+
+000007fa <__vector_19>:
+ 7fa: 1f 92 push r1
+ 7fc: 0f 92 push r0
+ 7fe: 0f b6 in r0, 0x3f ; 63
+ 800: 0f 92 push r0
+ 802: 11 24 eor r1, r1
+ 804: 2f 93 push r18
+ 806: 3f 93 push r19
+ 808: 5f 93 push r21
+ 80a: 6f 93 push r22
+ 80c: 7f 93 push r23
+ 80e: 8f 93 push r24
+ 810: 9f 93 push r25
+ 812: af 93 push r26
+ 814: bf 93 push r27
+ 816: ef 93 push r30
+ 818: ff 93 push r31
+ 81a: 20 91 5e 03 lds r18, 0x035E
+ 81e: 30 91 5f 03 lds r19, 0x035F
+ 822: 80 91 60 03 lds r24, 0x0360
+ 826: 90 91 61 03 lds r25, 0x0361
+ 82a: 28 17 cp r18, r24
+ 82c: 39 07 cpc r19, r25
+ 82e: 31 f4 brne .+12 ; 0x83c <__vector_19+0x42>
+ 830: 80 91 c1 00 lds r24, 0x00C1
+ 834: 8f 7d andi r24, 0xDF ; 223
+ 836: 80 93 c1 00 sts 0x00C1, r24
+ 83a: 16 c0 rjmp .+44 ; 0x868 <__vector_19+0x6e>
+ 83c: e0 91 60 03 lds r30, 0x0360
+ 840: f0 91 61 03 lds r31, 0x0361
+ 844: e2 5e subi r30, 0xE2 ; 226
+ 846: fc 4f sbci r31, 0xFC ; 252
+ 848: 20 81 ld r18, Z
+ 84a: 80 91 60 03 lds r24, 0x0360
+ 84e: 90 91 61 03 lds r25, 0x0361
+ 852: 01 96 adiw r24, 0x01 ; 1
+ 854: 60 e4 ldi r22, 0x40 ; 64
+ 856: 70 e0 ldi r23, 0x00 ; 0
+ 858: 0e 94 19 22 call 0x4432 ; 0x4432 <__divmodhi4>
+ 85c: 90 93 61 03 sts 0x0361, r25
+ 860: 80 93 60 03 sts 0x0360, r24
+ 864: 20 93 c6 00 sts 0x00C6, r18
+ 868: ff 91 pop r31
+ 86a: ef 91 pop r30
+ 86c: bf 91 pop r27
+ 86e: af 91 pop r26
+ 870: 9f 91 pop r25
+ 872: 8f 91 pop r24
+ 874: 7f 91 pop r23
+ 876: 6f 91 pop r22
+ 878: 5f 91 pop r21
+ 87a: 3f 91 pop r19
+ 87c: 2f 91 pop r18
+ 87e: 0f 90 pop r0
+ 880: 0f be out 0x3f, r0 ; 63
+ 882: 0f 90 pop r0
+ 884: 1f 90 pop r1
+ 886: 18 95 reti
+
+00000888 <_ZN14HardwareSerialC1EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh>:
+ 888: 8f 92 push r8
+ 88a: af 92 push r10
+ 88c: bf 92 push r11
+ 88e: cf 92 push r12
+ 890: df 92 push r13
+ 892: ef 92 push r14
+ 894: ff 92 push r15
+ 896: 0f 93 push r16
+ 898: 1f 93 push r17
+ 89a: df 93 push r29
+ 89c: cf 93 push r28
+ 89e: cd b7 in r28, 0x3d ; 61
+ 8a0: de b7 in r29, 0x3e ; 62
+ 8a2: fc 01 movw r30, r24
+ 8a4: 13 82 std Z+3, r1 ; 0x03
+ 8a6: 12 82 std Z+2, r1 ; 0x02
+ 8a8: 88 ee ldi r24, 0xE8 ; 232
+ 8aa: 93 e0 ldi r25, 0x03 ; 3
+ 8ac: a0 e0 ldi r26, 0x00 ; 0
+ 8ae: b0 e0 ldi r27, 0x00 ; 0
+ 8b0: 84 83 std Z+4, r24 ; 0x04
+ 8b2: 95 83 std Z+5, r25 ; 0x05
+ 8b4: a6 83 std Z+6, r26 ; 0x06
+ 8b6: b7 83 std Z+7, r27 ; 0x07
+ 8b8: 89 e7 ldi r24, 0x79 ; 121
+ 8ba: 91 e0 ldi r25, 0x01 ; 1
+ 8bc: 91 83 std Z+1, r25 ; 0x01
+ 8be: 80 83 st Z, r24
+ 8c0: 75 87 std Z+13, r23 ; 0x0d
+ 8c2: 64 87 std Z+12, r22 ; 0x0c
+ 8c4: 57 87 std Z+15, r21 ; 0x0f
+ 8c6: 46 87 std Z+14, r20 ; 0x0e
+ 8c8: 31 8b std Z+17, r19 ; 0x11
+ 8ca: 20 8b std Z+16, r18 ; 0x10
+ 8cc: 13 8b std Z+19, r17 ; 0x13
+ 8ce: 02 8b std Z+18, r16 ; 0x12
+ 8d0: f5 8a std Z+21, r15 ; 0x15
+ 8d2: e4 8a std Z+20, r14 ; 0x14
+ 8d4: d7 8a std Z+23, r13 ; 0x17
+ 8d6: c6 8a std Z+22, r12 ; 0x16
+ 8d8: b1 8e std Z+25, r11 ; 0x19
+ 8da: a0 8e std Z+24, r10 ; 0x18
+ 8dc: 82 8e std Z+26, r8 ; 0x1a
+ 8de: 8e 85 ldd r24, Y+14 ; 0x0e
+ 8e0: 83 8f std Z+27, r24 ; 0x1b
+ 8e2: 8f 85 ldd r24, Y+15 ; 0x0f
+ 8e4: 84 8f std Z+28, r24 ; 0x1c
+ 8e6: 88 89 ldd r24, Y+16 ; 0x10
+ 8e8: 85 8f std Z+29, r24 ; 0x1d
+ 8ea: 89 89 ldd r24, Y+17 ; 0x11
+ 8ec: 86 8f std Z+30, r24 ; 0x1e
+ 8ee: cf 91 pop r28
+ 8f0: df 91 pop r29
+ 8f2: 1f 91 pop r17
+ 8f4: 0f 91 pop r16
+ 8f6: ff 90 pop r15
+ 8f8: ef 90 pop r14
+ 8fa: df 90 pop r13
+ 8fc: cf 90 pop r12
+ 8fe: bf 90 pop r11
+ 900: af 90 pop r10
+ 902: 8f 90 pop r8
+ 904: 08 95 ret
+
+00000906 <_ZN14HardwareSerial5beginEm>:
+ 906: 9f 92 push r9
+ 908: af 92 push r10
+ 90a: bf 92 push r11
+ 90c: cf 92 push r12
+ 90e: df 92 push r13
+ 910: ef 92 push r14
+ 912: ff 92 push r15
+ 914: 0f 93 push r16
+ 916: 1f 93 push r17
+ 918: cf 93 push r28
+ 91a: df 93 push r29
+ 91c: ec 01 movw r28, r24
+ 91e: 7a 01 movw r14, r20
+ 920: 8b 01 movw r16, r22
+ 922: 99 24 eor r9, r9
+ 924: 93 94 inc r9
+ 926: ec 89 ldd r30, Y+20 ; 0x14
+ 928: fd 89 ldd r31, Y+21 ; 0x15
+ 92a: 81 e0 ldi r24, 0x01 ; 1
+ 92c: 90 e0 ldi r25, 0x00 ; 0
+ 92e: 0e 8c ldd r0, Y+30 ; 0x1e
+ 930: 02 c0 rjmp .+4 ; 0x936 <_ZN14HardwareSerial5beginEm+0x30>
+ 932: 88 0f add r24, r24
+ 934: 99 1f adc r25, r25
+ 936: 0a 94 dec r0
+ 938: e2 f7 brpl .-8 ; 0x932 <_ZN14HardwareSerial5beginEm+0x2c>
+ 93a: 80 83 st Z, r24
+ 93c: 60 e8 ldi r22, 0x80 ; 128
+ 93e: 74 e8 ldi r23, 0x84 ; 132
+ 940: 8e e1 ldi r24, 0x1E ; 30
+ 942: 90 e0 ldi r25, 0x00 ; 0
+ 944: a8 01 movw r20, r16
+ 946: 97 01 movw r18, r14
+ 948: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 94c: 21 50 subi r18, 0x01 ; 1
+ 94e: 30 40 sbci r19, 0x00 ; 0
+ 950: 40 40 sbci r20, 0x00 ; 0
+ 952: 50 40 sbci r21, 0x00 ; 0
+ 954: 56 95 lsr r21
+ 956: 47 95 ror r20
+ 958: 37 95 ror r19
+ 95a: 27 95 ror r18
+ 95c: 90 e4 ldi r25, 0x40 ; 64
+ 95e: a9 2e mov r10, r25
+ 960: 92 e4 ldi r25, 0x42 ; 66
+ 962: b9 2e mov r11, r25
+ 964: 9f e0 ldi r25, 0x0F ; 15
+ 966: c9 2e mov r12, r25
+ 968: d1 2c mov r13, r1
+ 96a: 12 c0 rjmp .+36 ; 0x990 <_ZN14HardwareSerial5beginEm+0x8a>
+ 96c: 99 24 eor r9, r9
+ 96e: ec 89 ldd r30, Y+20 ; 0x14
+ 970: fd 89 ldd r31, Y+21 ; 0x15
+ 972: 10 82 st Z, r1
+ 974: c6 01 movw r24, r12
+ 976: b5 01 movw r22, r10
+ 978: a8 01 movw r20, r16
+ 97a: 97 01 movw r18, r14
+ 97c: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 980: 21 50 subi r18, 0x01 ; 1
+ 982: 30 40 sbci r19, 0x00 ; 0
+ 984: 40 40 sbci r20, 0x00 ; 0
+ 986: 50 40 sbci r21, 0x00 ; 0
+ 988: 56 95 lsr r21
+ 98a: 47 95 ror r20
+ 98c: 37 95 ror r19
+ 98e: 27 95 ror r18
+ 990: 80 e1 ldi r24, 0x10 ; 16
+ 992: 20 30 cpi r18, 0x00 ; 0
+ 994: 38 07 cpc r19, r24
+ 996: 10 f0 brcs .+4 ; 0x99c <_ZN14HardwareSerial5beginEm+0x96>
+ 998: 99 20 and r9, r9
+ 99a: 41 f7 brne .-48 ; 0x96c <_ZN14HardwareSerial5beginEm+0x66>
+ 99c: e8 89 ldd r30, Y+16 ; 0x10
+ 99e: f9 89 ldd r31, Y+17 ; 0x11
+ 9a0: 30 83 st Z, r19
+ 9a2: ea 89 ldd r30, Y+18 ; 0x12
+ 9a4: fb 89 ldd r31, Y+19 ; 0x13
+ 9a6: 20 83 st Z, r18
+ 9a8: ee 89 ldd r30, Y+22 ; 0x16
+ 9aa: ff 89 ldd r31, Y+23 ; 0x17
+ 9ac: 40 81 ld r20, Z
+ 9ae: 81 e0 ldi r24, 0x01 ; 1
+ 9b0: 90 e0 ldi r25, 0x00 ; 0
+ 9b2: 9c 01 movw r18, r24
+ 9b4: 0a 8c ldd r0, Y+26 ; 0x1a
+ 9b6: 02 c0 rjmp .+4 ; 0x9bc <_ZN14HardwareSerial5beginEm+0xb6>
+ 9b8: 22 0f add r18, r18
+ 9ba: 33 1f adc r19, r19
+ 9bc: 0a 94 dec r0
+ 9be: e2 f7 brpl .-8 ; 0x9b8 <_ZN14HardwareSerial5beginEm+0xb2>
+ 9c0: 42 2b or r20, r18
+ 9c2: 40 83 st Z, r20
+ 9c4: ee 89 ldd r30, Y+22 ; 0x16
+ 9c6: ff 89 ldd r31, Y+23 ; 0x17
+ 9c8: 40 81 ld r20, Z
+ 9ca: 9c 01 movw r18, r24
+ 9cc: 0b 8c ldd r0, Y+27 ; 0x1b
+ 9ce: 02 c0 rjmp .+4 ; 0x9d4 <_ZN14HardwareSerial5beginEm+0xce>
+ 9d0: 22 0f add r18, r18
+ 9d2: 33 1f adc r19, r19
+ 9d4: 0a 94 dec r0
+ 9d6: e2 f7 brpl .-8 ; 0x9d0 <_ZN14HardwareSerial5beginEm+0xca>
+ 9d8: 42 2b or r20, r18
+ 9da: 40 83 st Z, r20
+ 9dc: ee 89 ldd r30, Y+22 ; 0x16
+ 9de: ff 89 ldd r31, Y+23 ; 0x17
+ 9e0: 40 81 ld r20, Z
+ 9e2: 9c 01 movw r18, r24
+ 9e4: 0c 8c ldd r0, Y+28 ; 0x1c
+ 9e6: 02 c0 rjmp .+4 ; 0x9ec <_ZN14HardwareSerial5beginEm+0xe6>
+ 9e8: 22 0f add r18, r18
+ 9ea: 33 1f adc r19, r19
+ 9ec: 0a 94 dec r0
+ 9ee: e2 f7 brpl .-8 ; 0x9e8 <_ZN14HardwareSerial5beginEm+0xe2>
+ 9f0: 42 2b or r20, r18
+ 9f2: 40 83 st Z, r20
+ 9f4: ee 89 ldd r30, Y+22 ; 0x16
+ 9f6: ff 89 ldd r31, Y+23 ; 0x17
+ 9f8: 20 81 ld r18, Z
+ 9fa: 0d 8c ldd r0, Y+29 ; 0x1d
+ 9fc: 02 c0 rjmp .+4 ; 0xa02 <_ZN14HardwareSerial5beginEm+0xfc>
+ 9fe: 88 0f add r24, r24
+ a00: 99 1f adc r25, r25
+ a02: 0a 94 dec r0
+ a04: e2 f7 brpl .-8 ; 0x9fe <_ZN14HardwareSerial5beginEm+0xf8>
+ a06: 80 95 com r24
+ a08: 82 23 and r24, r18
+ a0a: 80 83 st Z, r24
+ a0c: df 91 pop r29
+ a0e: cf 91 pop r28
+ a10: 1f 91 pop r17
+ a12: 0f 91 pop r16
+ a14: ff 90 pop r15
+ a16: ef 90 pop r14
+ a18: df 90 pop r13
+ a1a: cf 90 pop r12
+ a1c: bf 90 pop r11
+ a1e: af 90 pop r10
+ a20: 9f 90 pop r9
+ a22: 08 95 ret
+
+00000a24 <_ZN14HardwareSerial3endEv>:
+ a24: cf 93 push r28
+ a26: df 93 push r29
+ a28: fc 01 movw r30, r24
+ a2a: 86 85 ldd r24, Z+14 ; 0x0e
+ a2c: 97 85 ldd r25, Z+15 ; 0x0f
+ a2e: dc 01 movw r26, r24
+ a30: a0 5c subi r26, 0xC0 ; 192
+ a32: bf 4f sbci r27, 0xFF ; 255
+ a34: 8e 5b subi r24, 0xBE ; 190
+ a36: 9f 4f sbci r25, 0xFF ; 255
+ a38: 4d 91 ld r20, X+
+ a3a: 5c 91 ld r21, X
+ a3c: 11 97 sbiw r26, 0x01 ; 1
+ a3e: ec 01 movw r28, r24
+ a40: 28 81 ld r18, Y
+ a42: 39 81 ldd r19, Y+1 ; 0x01
+ a44: 42 17 cp r20, r18
+ a46: 53 07 cpc r21, r19
+ a48: b9 f7 brne .-18 ; 0xa38 <_ZN14HardwareSerial3endEv+0x14>
+ a4a: a6 89 ldd r26, Z+22 ; 0x16
+ a4c: b7 89 ldd r27, Z+23 ; 0x17
+ a4e: 4c 91 ld r20, X
+ a50: 81 e0 ldi r24, 0x01 ; 1
+ a52: 90 e0 ldi r25, 0x00 ; 0
+ a54: 9c 01 movw r18, r24
+ a56: 02 8c ldd r0, Z+26 ; 0x1a
+ a58: 02 c0 rjmp .+4 ; 0xa5e <_ZN14HardwareSerial3endEv+0x3a>
+ a5a: 22 0f add r18, r18
+ a5c: 33 1f adc r19, r19
+ a5e: 0a 94 dec r0
+ a60: e2 f7 brpl .-8 ; 0xa5a <_ZN14HardwareSerial3endEv+0x36>
+ a62: 20 95 com r18
+ a64: 24 23 and r18, r20
+ a66: 2c 93 st X, r18
+ a68: a6 89 ldd r26, Z+22 ; 0x16
+ a6a: b7 89 ldd r27, Z+23 ; 0x17
+ a6c: 4c 91 ld r20, X
+ a6e: 9c 01 movw r18, r24
+ a70: 03 8c ldd r0, Z+27 ; 0x1b
+ a72: 02 c0 rjmp .+4 ; 0xa78 <_ZN14HardwareSerial3endEv+0x54>
+ a74: 22 0f add r18, r18
+ a76: 33 1f adc r19, r19
+ a78: 0a 94 dec r0
+ a7a: e2 f7 brpl .-8 ; 0xa74 <_ZN14HardwareSerial3endEv+0x50>
+ a7c: 20 95 com r18
+ a7e: 24 23 and r18, r20
+ a80: 2c 93 st X, r18
+ a82: a6 89 ldd r26, Z+22 ; 0x16
+ a84: b7 89 ldd r27, Z+23 ; 0x17
+ a86: 4c 91 ld r20, X
+ a88: 9c 01 movw r18, r24
+ a8a: 04 8c ldd r0, Z+28 ; 0x1c
+ a8c: 02 c0 rjmp .+4 ; 0xa92 <_ZN14HardwareSerial3endEv+0x6e>
+ a8e: 22 0f add r18, r18
+ a90: 33 1f adc r19, r19
+ a92: 0a 94 dec r0
+ a94: e2 f7 brpl .-8 ; 0xa8e <_ZN14HardwareSerial3endEv+0x6a>
+ a96: 20 95 com r18
+ a98: 24 23 and r18, r20
+ a9a: 2c 93 st X, r18
+ a9c: a6 89 ldd r26, Z+22 ; 0x16
+ a9e: b7 89 ldd r27, Z+23 ; 0x17
+ aa0: 2c 91 ld r18, X
+ aa2: 05 8c ldd r0, Z+29 ; 0x1d
+ aa4: 02 c0 rjmp .+4 ; 0xaaa <_ZN14HardwareSerial3endEv+0x86>
+ aa6: 88 0f add r24, r24
+ aa8: 99 1f adc r25, r25
+ aaa: 0a 94 dec r0
+ aac: e2 f7 brpl .-8 ; 0xaa6 <_ZN14HardwareSerial3endEv+0x82>
+ aae: 80 95 com r24
+ ab0: 82 23 and r24, r18
+ ab2: 8c 93 st X, r24
+ ab4: 84 85 ldd r24, Z+12 ; 0x0c
+ ab6: 95 85 ldd r25, Z+13 ; 0x0d
+ ab8: fc 01 movw r30, r24
+ aba: ee 5b subi r30, 0xBE ; 190
+ abc: ff 4f sbci r31, 0xFF ; 255
+ abe: 20 81 ld r18, Z
+ ac0: 31 81 ldd r19, Z+1 ; 0x01
+ ac2: 80 5c subi r24, 0xC0 ; 192
+ ac4: 9f 4f sbci r25, 0xFF ; 255
+ ac6: fc 01 movw r30, r24
+ ac8: 31 83 std Z+1, r19 ; 0x01
+ aca: 20 83 st Z, r18
+ acc: df 91 pop r29
+ ace: cf 91 pop r28
+ ad0: 08 95 ret
+
+00000ad2 <_GLOBAL__I_rx_buffer>:
+ ad2: 10 92 65 03 sts 0x0365, r1
+ ad6: 10 92 64 03 sts 0x0364, r1
+ ada: 88 ee ldi r24, 0xE8 ; 232
+ adc: 93 e0 ldi r25, 0x03 ; 3
+ ade: a0 e0 ldi r26, 0x00 ; 0
+ ae0: b0 e0 ldi r27, 0x00 ; 0
+ ae2: 80 93 66 03 sts 0x0366, r24
+ ae6: 90 93 67 03 sts 0x0367, r25
+ aea: a0 93 68 03 sts 0x0368, r26
+ aee: b0 93 69 03 sts 0x0369, r27
+ af2: e4 e6 ldi r30, 0x64 ; 100
+ af4: f3 e0 ldi r31, 0x03 ; 3
+ af6: 89 e7 ldi r24, 0x79 ; 121
+ af8: 91 e0 ldi r25, 0x01 ; 1
+ afa: 92 93 st -Z, r25
+ afc: 82 93 st -Z, r24
+ afe: 8a ed ldi r24, 0xDA ; 218
+ b00: 92 e0 ldi r25, 0x02 ; 2
+ b02: 95 87 std Z+13, r25 ; 0x0d
+ b04: 84 87 std Z+12, r24 ; 0x0c
+ b06: 8e e1 ldi r24, 0x1E ; 30
+ b08: 93 e0 ldi r25, 0x03 ; 3
+ b0a: 97 87 std Z+15, r25 ; 0x0f
+ b0c: 86 87 std Z+14, r24 ; 0x0e
+ b0e: 85 ec ldi r24, 0xC5 ; 197
+ b10: 90 e0 ldi r25, 0x00 ; 0
+ b12: 91 8b std Z+17, r25 ; 0x11
+ b14: 80 8b std Z+16, r24 ; 0x10
+ b16: 84 ec ldi r24, 0xC4 ; 196
+ b18: 90 e0 ldi r25, 0x00 ; 0
+ b1a: 93 8b std Z+19, r25 ; 0x13
+ b1c: 82 8b std Z+18, r24 ; 0x12
+ b1e: 80 ec ldi r24, 0xC0 ; 192
+ b20: 90 e0 ldi r25, 0x00 ; 0
+ b22: 95 8b std Z+21, r25 ; 0x15
+ b24: 84 8b std Z+20, r24 ; 0x14
+ b26: 81 ec ldi r24, 0xC1 ; 193
+ b28: 90 e0 ldi r25, 0x00 ; 0
+ b2a: 97 8b std Z+23, r25 ; 0x17
+ b2c: 86 8b std Z+22, r24 ; 0x16
+ b2e: 86 ec ldi r24, 0xC6 ; 198
+ b30: 90 e0 ldi r25, 0x00 ; 0
+ b32: 91 8f std Z+25, r25 ; 0x19
+ b34: 80 8f std Z+24, r24 ; 0x18
+ b36: 84 e0 ldi r24, 0x04 ; 4
+ b38: 82 8f std Z+26, r24 ; 0x1a
+ b3a: 83 e0 ldi r24, 0x03 ; 3
+ b3c: 83 8f std Z+27, r24 ; 0x1b
+ b3e: 87 e0 ldi r24, 0x07 ; 7
+ b40: 84 8f std Z+28, r24 ; 0x1c
+ b42: 85 e0 ldi r24, 0x05 ; 5
+ b44: 85 8f std Z+29, r24 ; 0x1d
+ b46: 81 e0 ldi r24, 0x01 ; 1
+ b48: 86 8f std Z+30, r24 ; 0x1e
+ b4a: 08 95 ret
+
+00000b4c <_ZNK9IPAddress7printToER5Print>:
+ b4c: 8f 92 push r8
+ b4e: 9f 92 push r9
+ b50: af 92 push r10
+ b52: bf 92 push r11
+ b54: cf 92 push r12
+ b56: df 92 push r13
+ b58: ef 92 push r14
+ b5a: ff 92 push r15
+ b5c: 0f 93 push r16
+ b5e: 1f 93 push r17
+ b60: cf 93 push r28
+ b62: df 93 push r29
+ b64: 4c 01 movw r8, r24
+ b66: 7b 01 movw r14, r22
+ b68: 82 e0 ldi r24, 0x02 ; 2
+ b6a: a8 2e mov r10, r24
+ b6c: b1 2c mov r11, r1
+ b6e: a8 0c add r10, r8
+ b70: b9 1c adc r11, r9
+ b72: c0 e0 ldi r28, 0x00 ; 0
+ b74: d0 e0 ldi r29, 0x00 ; 0
+ b76: cc 24 eor r12, r12
+ b78: dd 24 eor r13, r13
+ b7a: f5 01 movw r30, r10
+ b7c: 61 91 ld r22, Z+
+ b7e: 5f 01 movw r10, r30
+ b80: c7 01 movw r24, r14
+ b82: 4a e0 ldi r20, 0x0A ; 10
+ b84: 50 e0 ldi r21, 0x00 ; 0
+ b86: 0e 94 03 08 call 0x1006 ; 0x1006 <_ZN5Print5printEhi>
+ b8a: 8c 01 movw r16, r24
+ b8c: c7 01 movw r24, r14
+ b8e: 6e e2 ldi r22, 0x2E ; 46
+ b90: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ b94: 08 0f add r16, r24
+ b96: 19 1f adc r17, r25
+ b98: c0 0e add r12, r16
+ b9a: d1 1e adc r13, r17
+ b9c: 21 96 adiw r28, 0x01 ; 1
+ b9e: c3 30 cpi r28, 0x03 ; 3
+ ba0: d1 05 cpc r29, r1
+ ba2: 59 f7 brne .-42 ; 0xb7a <_ZNK9IPAddress7printToER5Print+0x2e>
+ ba4: c7 01 movw r24, r14
+ ba6: f4 01 movw r30, r8
+ ba8: 65 81 ldd r22, Z+5 ; 0x05
+ baa: 4a e0 ldi r20, 0x0A ; 10
+ bac: 50 e0 ldi r21, 0x00 ; 0
+ bae: 0e 94 03 08 call 0x1006 ; 0x1006 <_ZN5Print5printEhi>
+ bb2: c8 0e add r12, r24
+ bb4: d9 1e adc r13, r25
+ bb6: c6 01 movw r24, r12
+ bb8: df 91 pop r29
+ bba: cf 91 pop r28
+ bbc: 1f 91 pop r17
+ bbe: 0f 91 pop r16
+ bc0: ff 90 pop r15
+ bc2: ef 90 pop r14
+ bc4: df 90 pop r13
+ bc6: cf 90 pop r12
+ bc8: bf 90 pop r11
+ bca: af 90 pop r10
+ bcc: 9f 90 pop r9
+ bce: 8f 90 pop r8
+ bd0: 08 95 ret
+
+00000bd2 <_ZN9IPAddressC1Ev>:
+ bd2: fc 01 movw r30, r24
+ bd4: 89 e9 ldi r24, 0x99 ; 153
+ bd6: 91 e0 ldi r25, 0x01 ; 1
+ bd8: 91 83 std Z+1, r25 ; 0x01
+ bda: 80 83 st Z, r24
+ bdc: 12 82 std Z+2, r1 ; 0x02
+ bde: 13 82 std Z+3, r1 ; 0x03
+ be0: 14 82 std Z+4, r1 ; 0x04
+ be2: 15 82 std Z+5, r1 ; 0x05
+ be4: 08 95 ret
+
+00000be6 <_ZN9IPAddressC1Ehhhh>:
+ be6: 0f 93 push r16
+ be8: fc 01 movw r30, r24
+ bea: 89 e9 ldi r24, 0x99 ; 153
+ bec: 91 e0 ldi r25, 0x01 ; 1
+ bee: 91 83 std Z+1, r25 ; 0x01
+ bf0: 80 83 st Z, r24
+ bf2: 62 83 std Z+2, r22 ; 0x02
+ bf4: 43 83 std Z+3, r20 ; 0x03
+ bf6: 24 83 std Z+4, r18 ; 0x04
+ bf8: 05 83 std Z+5, r16 ; 0x05
+ bfa: 0f 91 pop r16
+ bfc: 08 95 ret
+
+00000bfe <_ZN9IPAddressC1Em>:
+ bfe: fc 01 movw r30, r24
+ c00: 89 e9 ldi r24, 0x99 ; 153
+ c02: 91 e0 ldi r25, 0x01 ; 1
+ c04: 91 83 std Z+1, r25 ; 0x01
+ c06: 80 83 st Z, r24
+ c08: 42 83 std Z+2, r20 ; 0x02
+ c0a: 53 83 std Z+3, r21 ; 0x03
+ c0c: 64 83 std Z+4, r22 ; 0x04
+ c0e: 75 83 std Z+5, r23 ; 0x05
+ c10: 08 95 ret
+
+00000c12 <_ZN9IPAddressC1EPKh>:
+ c12: fc 01 movw r30, r24
+ c14: 89 e9 ldi r24, 0x99 ; 153
+ c16: 91 e0 ldi r25, 0x01 ; 1
+ c18: 91 83 std Z+1, r25 ; 0x01
+ c1a: 80 83 st Z, r24
+ c1c: db 01 movw r26, r22
+ c1e: 2d 91 ld r18, X+
+ c20: 3d 91 ld r19, X+
+ c22: 4d 91 ld r20, X+
+ c24: 5c 91 ld r21, X
+ c26: 13 97 sbiw r26, 0x03 ; 3
+ c28: 22 83 std Z+2, r18 ; 0x02
+ c2a: 33 83 std Z+3, r19 ; 0x03
+ c2c: 44 83 std Z+4, r20 ; 0x04
+ c2e: 55 83 std Z+5, r21 ; 0x05
+ c30: 08 95 ret
+
+00000c32 <_ZN9IPAddressaSEPKh>:
+ c32: cf 93 push r28
+ c34: df 93 push r29
+ c36: fc 01 movw r30, r24
+ c38: eb 01 movw r28, r22
+ c3a: 88 81 ld r24, Y
+ c3c: 99 81 ldd r25, Y+1 ; 0x01
+ c3e: aa 81 ldd r26, Y+2 ; 0x02
+ c40: bb 81 ldd r27, Y+3 ; 0x03
+ c42: 82 83 std Z+2, r24 ; 0x02
+ c44: 93 83 std Z+3, r25 ; 0x03
+ c46: a4 83 std Z+4, r26 ; 0x04
+ c48: b5 83 std Z+5, r27 ; 0x05
+ c4a: cf 01 movw r24, r30
+ c4c: df 91 pop r29
+ c4e: cf 91 pop r28
+ c50: 08 95 ret
+
+00000c52 <_ZN9IPAddressaSEm>:
+ c52: fc 01 movw r30, r24
+ c54: 42 83 std Z+2, r20 ; 0x02
+ c56: 53 83 std Z+3, r21 ; 0x03
+ c58: 64 83 std Z+4, r22 ; 0x04
+ c5a: 75 83 std Z+5, r23 ; 0x05
+ c5c: 08 95 ret
+
+00000c5e <_ZN9IPAddresseqEPKh>:
+ c5e: 9b 01 movw r18, r22
+ c60: bc 01 movw r22, r24
+ c62: 6e 5f subi r22, 0xFE ; 254
+ c64: 7f 4f sbci r23, 0xFF ; 255
+ c66: c9 01 movw r24, r18
+ c68: 44 e0 ldi r20, 0x04 ; 4
+ c6a: 50 e0 ldi r21, 0x00 ; 0
+ c6c: 0e 94 4c 25 call 0x4a98 ; 0x4a98 <memcmp>
+ c70: 9c 01 movw r18, r24
+ c72: 81 e0 ldi r24, 0x01 ; 1
+ c74: 21 15 cp r18, r1
+ c76: 31 05 cpc r19, r1
+ c78: 09 f0 breq .+2 ; 0xc7c <_ZN9IPAddresseqEPKh+0x1e>
+ c7a: 80 e0 ldi r24, 0x00 ; 0
+ c7c: 08 95 ret
+
+00000c7e <_GLOBAL__I__ZN9IPAddressC2Ev>:
+ c7e: 89 e9 ldi r24, 0x99 ; 153
+ c80: 91 e0 ldi r25, 0x01 ; 1
+ c82: 90 93 82 03 sts 0x0382, r25
+ c86: 80 93 81 03 sts 0x0381, r24
+ c8a: 10 92 83 03 sts 0x0383, r1
+ c8e: 10 92 84 03 sts 0x0384, r1
+ c92: 10 92 85 03 sts 0x0385, r1
+ c96: 10 92 86 03 sts 0x0386, r1
+ c9a: 08 95 ret
+
+00000c9c <_ZN5Print5writeEPKhj>:
+ c9c: cf 92 push r12
+ c9e: df 92 push r13
+ ca0: ef 92 push r14
+ ca2: ff 92 push r15
+ ca4: 0f 93 push r16
+ ca6: 1f 93 push r17
+ ca8: cf 93 push r28
+ caa: df 93 push r29
+ cac: 6c 01 movw r12, r24
+ cae: 7b 01 movw r14, r22
+ cb0: 8a 01 movw r16, r20
+ cb2: c0 e0 ldi r28, 0x00 ; 0
+ cb4: d0 e0 ldi r29, 0x00 ; 0
+ cb6: 0f c0 rjmp .+30 ; 0xcd6 <_ZN5Print5writeEPKhj+0x3a>
+ cb8: d7 01 movw r26, r14
+ cba: 6d 91 ld r22, X+
+ cbc: 7d 01 movw r14, r26
+ cbe: d6 01 movw r26, r12
+ cc0: ed 91 ld r30, X+
+ cc2: fc 91 ld r31, X
+ cc4: 01 90 ld r0, Z+
+ cc6: f0 81 ld r31, Z
+ cc8: e0 2d mov r30, r0
+ cca: c6 01 movw r24, r12
+ ccc: 09 95 icall
+ cce: c8 0f add r28, r24
+ cd0: d9 1f adc r29, r25
+ cd2: 01 50 subi r16, 0x01 ; 1
+ cd4: 10 40 sbci r17, 0x00 ; 0
+ cd6: 01 15 cp r16, r1
+ cd8: 11 05 cpc r17, r1
+ cda: 71 f7 brne .-36 ; 0xcb8 <_ZN5Print5writeEPKhj+0x1c>
+ cdc: ce 01 movw r24, r28
+ cde: df 91 pop r29
+ ce0: cf 91 pop r28
+ ce2: 1f 91 pop r17
+ ce4: 0f 91 pop r16
+ ce6: ff 90 pop r15
+ ce8: ef 90 pop r14
+ cea: df 90 pop r13
+ cec: cf 90 pop r12
+ cee: 08 95 ret
+
+00000cf0 <_ZN5Print5writeEPKc>:
+ cf0: db 01 movw r26, r22
+ cf2: 0d 90 ld r0, X+
+ cf4: 00 20 and r0, r0
+ cf6: e9 f7 brne .-6 ; 0xcf2 <_ZN5Print5writeEPKc+0x2>
+ cf8: ad 01 movw r20, r26
+ cfa: 41 50 subi r20, 0x01 ; 1
+ cfc: 50 40 sbci r21, 0x00 ; 0
+ cfe: 46 1b sub r20, r22
+ d00: 57 0b sbc r21, r23
+ d02: dc 01 movw r26, r24
+ d04: ed 91 ld r30, X+
+ d06: fc 91 ld r31, X
+ d08: 02 80 ldd r0, Z+2 ; 0x02
+ d0a: f3 81 ldd r31, Z+3 ; 0x03
+ d0c: e0 2d mov r30, r0
+ d0e: 09 95 icall
+ d10: 08 95 ret
+
+00000d12 <_ZN5Print5printEPK19__FlashStringHelper>:
+ d12: ef 92 push r14
+ d14: ff 92 push r15
+ d16: 0f 93 push r16
+ d18: 1f 93 push r17
+ d1a: cf 93 push r28
+ d1c: df 93 push r29
+ d1e: 7c 01 movw r14, r24
+ d20: 06 2f mov r16, r22
+ d22: 17 2f mov r17, r23
+ d24: c0 e0 ldi r28, 0x00 ; 0
+ d26: d0 e0 ldi r29, 0x00 ; 0
+ d28: f8 01 movw r30, r16
+ d2a: 0f 5f subi r16, 0xFF ; 255
+ d2c: 1f 4f sbci r17, 0xFF ; 255
+ d2e: 64 91 lpm r22, Z+
+ d30: 66 23 and r22, r22
+ d32: 51 f0 breq .+20 ; 0xd48 <_ZN5Print5printEPK19__FlashStringHelper+0x36>
+ d34: f7 01 movw r30, r14
+ d36: a0 81 ld r26, Z
+ d38: b1 81 ldd r27, Z+1 ; 0x01
+ d3a: ed 91 ld r30, X+
+ d3c: fc 91 ld r31, X
+ d3e: c7 01 movw r24, r14
+ d40: 09 95 icall
+ d42: c8 0f add r28, r24
+ d44: d9 1f adc r29, r25
+ d46: f0 cf rjmp .-32 ; 0xd28 <_ZN5Print5printEPK19__FlashStringHelper+0x16>
+ d48: ce 01 movw r24, r28
+ d4a: df 91 pop r29
+ d4c: cf 91 pop r28
+ d4e: 1f 91 pop r17
+ d50: 0f 91 pop r16
+ d52: ff 90 pop r15
+ d54: ef 90 pop r14
+ d56: 08 95 ret
+
+00000d58 <_ZN5Print5printERK6String>:
+ d58: af 92 push r10
+ d5a: bf 92 push r11
+ d5c: cf 92 push r12
+ d5e: df 92 push r13
+ d60: ef 92 push r14
+ d62: ff 92 push r15
+ d64: 0f 93 push r16
+ d66: 1f 93 push r17
+ d68: cf 93 push r28
+ d6a: df 93 push r29
+ d6c: 7c 01 movw r14, r24
+ d6e: 6b 01 movw r12, r22
+ d70: c0 e0 ldi r28, 0x00 ; 0
+ d72: d0 e0 ldi r29, 0x00 ; 0
+ d74: 00 e0 ldi r16, 0x00 ; 0
+ d76: 10 e0 ldi r17, 0x00 ; 0
+ d78: 10 c0 rjmp .+32 ; 0xd9a <_ZN5Print5printERK6String+0x42>
+ d7a: d7 01 movw r26, r14
+ d7c: ed 91 ld r30, X+
+ d7e: fc 91 ld r31, X
+ d80: a0 80 ld r10, Z
+ d82: b1 80 ldd r11, Z+1 ; 0x01
+ d84: c6 01 movw r24, r12
+ d86: be 01 movw r22, r28
+ d88: 0e 94 7e 14 call 0x28fc ; 0x28fc <_ZNK6StringixEj>
+ d8c: 68 2f mov r22, r24
+ d8e: c7 01 movw r24, r14
+ d90: f5 01 movw r30, r10
+ d92: 09 95 icall
+ d94: 08 0f add r16, r24
+ d96: 19 1f adc r17, r25
+ d98: 21 96 adiw r28, 0x01 ; 1
+ d9a: f6 01 movw r30, r12
+ d9c: 84 81 ldd r24, Z+4 ; 0x04
+ d9e: 95 81 ldd r25, Z+5 ; 0x05
+ da0: c8 17 cp r28, r24
+ da2: d9 07 cpc r29, r25
+ da4: 50 f3 brcs .-44 ; 0xd7a <_ZN5Print5printERK6String+0x22>
+ da6: c8 01 movw r24, r16
+ da8: df 91 pop r29
+ daa: cf 91 pop r28
+ dac: 1f 91 pop r17
+ dae: 0f 91 pop r16
+ db0: ff 90 pop r15
+ db2: ef 90 pop r14
+ db4: df 90 pop r13
+ db6: cf 90 pop r12
+ db8: bf 90 pop r11
+ dba: af 90 pop r10
+ dbc: 08 95 ret
+
+00000dbe <_ZN5Print5printEPKc>:
+ dbe: 0e 94 78 06 call 0xcf0 ; 0xcf0 <_ZN5Print5writeEPKc>
+ dc2: 08 95 ret
+
+00000dc4 <_ZN5Print5printEc>:
+ dc4: dc 01 movw r26, r24
+ dc6: ed 91 ld r30, X+
+ dc8: fc 91 ld r31, X
+ dca: 01 90 ld r0, Z+
+ dcc: f0 81 ld r31, Z
+ dce: e0 2d mov r30, r0
+ dd0: 09 95 icall
+ dd2: 08 95 ret
+
+00000dd4 <_ZN5Print5printERK9Printable>:
+ dd4: 9c 01 movw r18, r24
+ dd6: cb 01 movw r24, r22
+ dd8: db 01 movw r26, r22
+ dda: ed 91 ld r30, X+
+ ddc: fc 91 ld r31, X
+ dde: 01 90 ld r0, Z+
+ de0: f0 81 ld r31, Z
+ de2: e0 2d mov r30, r0
+ de4: b9 01 movw r22, r18
+ de6: 09 95 icall
+ de8: 08 95 ret
+
+00000dea <_ZN5Print7printlnEv>:
+ dea: 0f 93 push r16
+ dec: 1f 93 push r17
+ dee: cf 93 push r28
+ df0: df 93 push r29
+ df2: ec 01 movw r28, r24
+ df4: 6d e0 ldi r22, 0x0D ; 13
+ df6: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ dfa: 8c 01 movw r16, r24
+ dfc: ce 01 movw r24, r28
+ dfe: 6a e0 ldi r22, 0x0A ; 10
+ e00: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ e04: 08 0f add r16, r24
+ e06: 19 1f adc r17, r25
+ e08: c8 01 movw r24, r16
+ e0a: df 91 pop r29
+ e0c: cf 91 pop r28
+ e0e: 1f 91 pop r17
+ e10: 0f 91 pop r16
+ e12: 08 95 ret
+
+00000e14 <_ZN5Print7printlnEPK19__FlashStringHelper>:
+ e14: 0f 93 push r16
+ e16: 1f 93 push r17
+ e18: cf 93 push r28
+ e1a: df 93 push r29
+ e1c: ec 01 movw r28, r24
+ e1e: 0e 94 89 06 call 0xd12 ; 0xd12 <_ZN5Print5printEPK19__FlashStringHelper>
+ e22: 8c 01 movw r16, r24
+ e24: ce 01 movw r24, r28
+ e26: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ e2a: 08 0f add r16, r24
+ e2c: 19 1f adc r17, r25
+ e2e: c8 01 movw r24, r16
+ e30: df 91 pop r29
+ e32: cf 91 pop r28
+ e34: 1f 91 pop r17
+ e36: 0f 91 pop r16
+ e38: 08 95 ret
+
+00000e3a <_ZN5Print7printlnERK6String>:
+ e3a: 0f 93 push r16
+ e3c: 1f 93 push r17
+ e3e: cf 93 push r28
+ e40: df 93 push r29
+ e42: ec 01 movw r28, r24
+ e44: 0e 94 ac 06 call 0xd58 ; 0xd58 <_ZN5Print5printERK6String>
+ e48: 8c 01 movw r16, r24
+ e4a: ce 01 movw r24, r28
+ e4c: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ e50: 08 0f add r16, r24
+ e52: 19 1f adc r17, r25
+ e54: c8 01 movw r24, r16
+ e56: df 91 pop r29
+ e58: cf 91 pop r28
+ e5a: 1f 91 pop r17
+ e5c: 0f 91 pop r16
+ e5e: 08 95 ret
+
+00000e60 <_ZN5Print7printlnEPKc>:
+ e60: 0f 93 push r16
+ e62: 1f 93 push r17
+ e64: cf 93 push r28
+ e66: df 93 push r29
+ e68: ec 01 movw r28, r24
+ e6a: 0e 94 78 06 call 0xcf0 ; 0xcf0 <_ZN5Print5writeEPKc>
+ e6e: 8c 01 movw r16, r24
+ e70: ce 01 movw r24, r28
+ e72: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ e76: 08 0f add r16, r24
+ e78: 19 1f adc r17, r25
+ e7a: c8 01 movw r24, r16
+ e7c: df 91 pop r29
+ e7e: cf 91 pop r28
+ e80: 1f 91 pop r17
+ e82: 0f 91 pop r16
+ e84: 08 95 ret
+
+00000e86 <_ZN5Print7printlnEc>:
+ e86: 0f 93 push r16
+ e88: 1f 93 push r17
+ e8a: cf 93 push r28
+ e8c: df 93 push r29
+ e8e: ec 01 movw r28, r24
+ e90: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ e94: 8c 01 movw r16, r24
+ e96: ce 01 movw r24, r28
+ e98: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ e9c: 08 0f add r16, r24
+ e9e: 19 1f adc r17, r25
+ ea0: c8 01 movw r24, r16
+ ea2: df 91 pop r29
+ ea4: cf 91 pop r28
+ ea6: 1f 91 pop r17
+ ea8: 0f 91 pop r16
+ eaa: 08 95 ret
+
+00000eac <_ZN5Print7printlnERK9Printable>:
+ eac: 0f 93 push r16
+ eae: 1f 93 push r17
+ eb0: cf 93 push r28
+ eb2: df 93 push r29
+ eb4: ec 01 movw r28, r24
+ eb6: 0e 94 ea 06 call 0xdd4 ; 0xdd4 <_ZN5Print5printERK9Printable>
+ eba: 8c 01 movw r16, r24
+ ebc: ce 01 movw r24, r28
+ ebe: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ ec2: 08 0f add r16, r24
+ ec4: 19 1f adc r17, r25
+ ec6: c8 01 movw r24, r16
+ ec8: df 91 pop r29
+ eca: cf 91 pop r28
+ ecc: 1f 91 pop r17
+ ece: 0f 91 pop r16
+ ed0: 08 95 ret
+
+00000ed2 <_ZN5Print11printNumberEmh>:
+ ed2: 8f 92 push r8
+ ed4: 9f 92 push r9
+ ed6: af 92 push r10
+ ed8: bf 92 push r11
+ eda: cf 92 push r12
+ edc: df 92 push r13
+ ede: ef 92 push r14
+ ee0: ff 92 push r15
+ ee2: 0f 93 push r16
+ ee4: 1f 93 push r17
+ ee6: df 93 push r29
+ ee8: cf 93 push r28
+ eea: cd b7 in r28, 0x3d ; 61
+ eec: de b7 in r29, 0x3e ; 62
+ eee: a1 97 sbiw r28, 0x21 ; 33
+ ef0: 0f b6 in r0, 0x3f ; 63
+ ef2: f8 94 cli
+ ef4: de bf out 0x3e, r29 ; 62
+ ef6: 0f be out 0x3f, r0 ; 63
+ ef8: cd bf out 0x3d, r28 ; 61
+ efa: 6c 01 movw r12, r24
+ efc: 04 2f mov r16, r20
+ efe: e5 2f mov r30, r21
+ f00: cb 01 movw r24, r22
+ f02: 12 2f mov r17, r18
+ f04: 19 a2 std Y+33, r1 ; 0x21
+ f06: 22 30 cpi r18, 0x02 ; 2
+ f08: 08 f4 brcc .+2 ; 0xf0c <_ZN5Print11printNumberEmh+0x3a>
+ f0a: 1a e0 ldi r17, 0x0A ; 10
+ f0c: 21 e2 ldi r18, 0x21 ; 33
+ f0e: e2 2e mov r14, r18
+ f10: f1 2c mov r15, r1
+ f12: ec 0e add r14, r28
+ f14: fd 1e adc r15, r29
+ f16: 81 2e mov r8, r17
+ f18: 99 24 eor r9, r9
+ f1a: aa 24 eor r10, r10
+ f1c: bb 24 eor r11, r11
+ f1e: 03 c0 rjmp .+6 ; 0xf26 <_ZN5Print11printNumberEmh+0x54>
+ f20: 02 2f mov r16, r18
+ f22: e3 2f mov r30, r19
+ f24: ca 01 movw r24, r20
+ f26: 60 2f mov r22, r16
+ f28: 7e 2f mov r23, r30
+ f2a: a5 01 movw r20, r10
+ f2c: 94 01 movw r18, r8
+ f2e: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ f32: 12 9f mul r17, r18
+ f34: 80 2d mov r24, r0
+ f36: 11 24 eor r1, r1
+ f38: 08 1b sub r16, r24
+ f3a: 08 94 sec
+ f3c: e1 08 sbc r14, r1
+ f3e: f1 08 sbc r15, r1
+ f40: 0a 30 cpi r16, 0x0A ; 10
+ f42: 14 f4 brge .+4 ; 0xf48 <_ZN5Print11printNumberEmh+0x76>
+ f44: 00 5d subi r16, 0xD0 ; 208
+ f46: 01 c0 rjmp .+2 ; 0xf4a <_ZN5Print11printNumberEmh+0x78>
+ f48: 09 5c subi r16, 0xC9 ; 201
+ f4a: f7 01 movw r30, r14
+ f4c: 00 83 st Z, r16
+ f4e: 21 15 cp r18, r1
+ f50: 31 05 cpc r19, r1
+ f52: 41 05 cpc r20, r1
+ f54: 51 05 cpc r21, r1
+ f56: 21 f7 brne .-56 ; 0xf20 <_ZN5Print11printNumberEmh+0x4e>
+ f58: c6 01 movw r24, r12
+ f5a: b7 01 movw r22, r14
+ f5c: 0e 94 78 06 call 0xcf0 ; 0xcf0 <_ZN5Print5writeEPKc>
+ f60: a1 96 adiw r28, 0x21 ; 33
+ f62: 0f b6 in r0, 0x3f ; 63
+ f64: f8 94 cli
+ f66: de bf out 0x3e, r29 ; 62
+ f68: 0f be out 0x3f, r0 ; 63
+ f6a: cd bf out 0x3d, r28 ; 61
+ f6c: cf 91 pop r28
+ f6e: df 91 pop r29
+ f70: 1f 91 pop r17
+ f72: 0f 91 pop r16
+ f74: ff 90 pop r15
+ f76: ef 90 pop r14
+ f78: df 90 pop r13
+ f7a: cf 90 pop r12
+ f7c: bf 90 pop r11
+ f7e: af 90 pop r10
+ f80: 9f 90 pop r9
+ f82: 8f 90 pop r8
+ f84: 08 95 ret
+
+00000f86 <_ZN5Print5printEmi>:
+ f86: 21 15 cp r18, r1
+ f88: 31 05 cpc r19, r1
+ f8a: 49 f4 brne .+18 ; 0xf9e <_ZN5Print5printEmi+0x18>
+ f8c: dc 01 movw r26, r24
+ f8e: ed 91 ld r30, X+
+ f90: fc 91 ld r31, X
+ f92: 01 90 ld r0, Z+
+ f94: f0 81 ld r31, Z
+ f96: e0 2d mov r30, r0
+ f98: 64 2f mov r22, r20
+ f9a: 09 95 icall
+ f9c: 08 95 ret
+ f9e: 0e 94 69 07 call 0xed2 ; 0xed2 <_ZN5Print11printNumberEmh>
+ fa2: 08 95 ret
+
+00000fa4 <_ZN5Print7printlnEmi>:
+ fa4: 0f 93 push r16
+ fa6: 1f 93 push r17
+ fa8: cf 93 push r28
+ faa: df 93 push r29
+ fac: ec 01 movw r28, r24
+ fae: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ fb2: 8c 01 movw r16, r24
+ fb4: ce 01 movw r24, r28
+ fb6: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ fba: 08 0f add r16, r24
+ fbc: 19 1f adc r17, r25
+ fbe: c8 01 movw r24, r16
+ fc0: df 91 pop r29
+ fc2: cf 91 pop r28
+ fc4: 1f 91 pop r17
+ fc6: 0f 91 pop r16
+ fc8: 08 95 ret
+
+00000fca <_ZN5Print5printEji>:
+ fca: 9a 01 movw r18, r20
+ fcc: ab 01 movw r20, r22
+ fce: 60 e0 ldi r22, 0x00 ; 0
+ fd0: 70 e0 ldi r23, 0x00 ; 0
+ fd2: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ fd6: 08 95 ret
+
+00000fd8 <_ZN5Print7printlnEji>:
+ fd8: 0f 93 push r16
+ fda: 1f 93 push r17
+ fdc: cf 93 push r28
+ fde: df 93 push r29
+ fe0: ec 01 movw r28, r24
+ fe2: 9a 01 movw r18, r20
+ fe4: ab 01 movw r20, r22
+ fe6: 60 e0 ldi r22, 0x00 ; 0
+ fe8: 70 e0 ldi r23, 0x00 ; 0
+ fea: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ fee: 8c 01 movw r16, r24
+ ff0: ce 01 movw r24, r28
+ ff2: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ ff6: 08 0f add r16, r24
+ ff8: 19 1f adc r17, r25
+ ffa: c8 01 movw r24, r16
+ ffc: df 91 pop r29
+ ffe: cf 91 pop r28
+ 1000: 1f 91 pop r17
+ 1002: 0f 91 pop r16
+ 1004: 08 95 ret
+
+00001006 <_ZN5Print5printEhi>:
+ 1006: 9a 01 movw r18, r20
+ 1008: 46 2f mov r20, r22
+ 100a: 50 e0 ldi r21, 0x00 ; 0
+ 100c: 60 e0 ldi r22, 0x00 ; 0
+ 100e: 70 e0 ldi r23, 0x00 ; 0
+ 1010: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ 1014: 08 95 ret
+
+00001016 <_ZN5Print7printlnEhi>:
+ 1016: 0f 93 push r16
+ 1018: 1f 93 push r17
+ 101a: cf 93 push r28
+ 101c: df 93 push r29
+ 101e: ec 01 movw r28, r24
+ 1020: 9a 01 movw r18, r20
+ 1022: 46 2f mov r20, r22
+ 1024: 50 e0 ldi r21, 0x00 ; 0
+ 1026: 60 e0 ldi r22, 0x00 ; 0
+ 1028: 70 e0 ldi r23, 0x00 ; 0
+ 102a: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ 102e: 8c 01 movw r16, r24
+ 1030: ce 01 movw r24, r28
+ 1032: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ 1036: 08 0f add r16, r24
+ 1038: 19 1f adc r17, r25
+ 103a: c8 01 movw r24, r16
+ 103c: df 91 pop r29
+ 103e: cf 91 pop r28
+ 1040: 1f 91 pop r17
+ 1042: 0f 91 pop r16
+ 1044: 08 95 ret
+
+00001046 <_ZN5Print5printEli>:
+ 1046: cf 92 push r12
+ 1048: df 92 push r13
+ 104a: ef 92 push r14
+ 104c: ff 92 push r15
+ 104e: 0f 93 push r16
+ 1050: 1f 93 push r17
+ 1052: cf 93 push r28
+ 1054: df 93 push r29
+ 1056: ec 01 movw r28, r24
+ 1058: 7a 01 movw r14, r20
+ 105a: 8b 01 movw r16, r22
+ 105c: 21 15 cp r18, r1
+ 105e: 31 05 cpc r19, r1
+ 1060: 41 f4 brne .+16 ; 0x1072 <_ZN5Print5printEli+0x2c>
+ 1062: e8 81 ld r30, Y
+ 1064: f9 81 ldd r31, Y+1 ; 0x01
+ 1066: 01 90 ld r0, Z+
+ 1068: f0 81 ld r31, Z
+ 106a: e0 2d mov r30, r0
+ 106c: 64 2f mov r22, r20
+ 106e: 09 95 icall
+ 1070: 1a c0 rjmp .+52 ; 0x10a6 <_ZN5Print5printEli+0x60>
+ 1072: 2a 30 cpi r18, 0x0A ; 10
+ 1074: 31 05 cpc r19, r1
+ 1076: a9 f4 brne .+42 ; 0x10a2 <_ZN5Print5printEli+0x5c>
+ 1078: 77 ff sbrs r23, 7
+ 107a: 12 c0 rjmp .+36 ; 0x10a0 <_ZN5Print5printEli+0x5a>
+ 107c: 6d e2 ldi r22, 0x2D ; 45
+ 107e: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ 1082: 6c 01 movw r12, r24
+ 1084: 44 27 eor r20, r20
+ 1086: 55 27 eor r21, r21
+ 1088: ba 01 movw r22, r20
+ 108a: 4e 19 sub r20, r14
+ 108c: 5f 09 sbc r21, r15
+ 108e: 60 0b sbc r22, r16
+ 1090: 71 0b sbc r23, r17
+ 1092: ce 01 movw r24, r28
+ 1094: 2a e0 ldi r18, 0x0A ; 10
+ 1096: 0e 94 69 07 call 0xed2 ; 0xed2 <_ZN5Print11printNumberEmh>
+ 109a: c8 0e add r12, r24
+ 109c: d9 1e adc r13, r25
+ 109e: 04 c0 rjmp .+8 ; 0x10a8 <_ZN5Print5printEli+0x62>
+ 10a0: 2a e0 ldi r18, 0x0A ; 10
+ 10a2: 0e 94 69 07 call 0xed2 ; 0xed2 <_ZN5Print11printNumberEmh>
+ 10a6: 6c 01 movw r12, r24
+ 10a8: c6 01 movw r24, r12
+ 10aa: df 91 pop r29
+ 10ac: cf 91 pop r28
+ 10ae: 1f 91 pop r17
+ 10b0: 0f 91 pop r16
+ 10b2: ff 90 pop r15
+ 10b4: ef 90 pop r14
+ 10b6: df 90 pop r13
+ 10b8: cf 90 pop r12
+ 10ba: 08 95 ret
+
+000010bc <_ZN5Print7printlnEli>:
+ 10bc: 0f 93 push r16
+ 10be: 1f 93 push r17
+ 10c0: cf 93 push r28
+ 10c2: df 93 push r29
+ 10c4: ec 01 movw r28, r24
+ 10c6: 0e 94 23 08 call 0x1046 ; 0x1046 <_ZN5Print5printEli>
+ 10ca: 8c 01 movw r16, r24
+ 10cc: ce 01 movw r24, r28
+ 10ce: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ 10d2: 08 0f add r16, r24
+ 10d4: 19 1f adc r17, r25
+ 10d6: c8 01 movw r24, r16
+ 10d8: df 91 pop r29
+ 10da: cf 91 pop r28
+ 10dc: 1f 91 pop r17
+ 10de: 0f 91 pop r16
+ 10e0: 08 95 ret
+
+000010e2 <_ZN5Print5printEii>:
+ 10e2: 9a 01 movw r18, r20
+ 10e4: fb 01 movw r30, r22
+ 10e6: af 01 movw r20, r30
+ 10e8: 66 27 eor r22, r22
+ 10ea: 57 fd sbrc r21, 7
+ 10ec: 60 95 com r22
+ 10ee: 76 2f mov r23, r22
+ 10f0: 0e 94 23 08 call 0x1046 ; 0x1046 <_ZN5Print5printEli>
+ 10f4: 08 95 ret
+
+000010f6 <_ZN5Print7printlnEii>:
+ 10f6: 0f 93 push r16
+ 10f8: 1f 93 push r17
+ 10fa: cf 93 push r28
+ 10fc: df 93 push r29
+ 10fe: ec 01 movw r28, r24
+ 1100: 9a 01 movw r18, r20
+ 1102: cb 01 movw r24, r22
+ 1104: ac 01 movw r20, r24
+ 1106: 66 27 eor r22, r22
+ 1108: 57 fd sbrc r21, 7
+ 110a: 60 95 com r22
+ 110c: 76 2f mov r23, r22
+ 110e: ce 01 movw r24, r28
+ 1110: 0e 94 23 08 call 0x1046 ; 0x1046 <_ZN5Print5printEli>
+ 1114: 8c 01 movw r16, r24
+ 1116: ce 01 movw r24, r28
+ 1118: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ 111c: 08 0f add r16, r24
+ 111e: 19 1f adc r17, r25
+ 1120: c8 01 movw r24, r16
+ 1122: df 91 pop r29
+ 1124: cf 91 pop r28
+ 1126: 1f 91 pop r17
+ 1128: 0f 91 pop r16
+ 112a: 08 95 ret
+
+0000112c <_ZN5Print10printFloatEdh>:
+ 112c: 6f 92 push r6
+ 112e: 7f 92 push r7
+ 1130: 9f 92 push r9
+ 1132: af 92 push r10
+ 1134: bf 92 push r11
+ 1136: cf 92 push r12
+ 1138: df 92 push r13
+ 113a: ef 92 push r14
+ 113c: ff 92 push r15
+ 113e: 0f 93 push r16
+ 1140: 1f 93 push r17
+ 1142: cf 93 push r28
+ 1144: df 93 push r29
+ 1146: 3c 01 movw r6, r24
+ 1148: 7a 01 movw r14, r20
+ 114a: 8b 01 movw r16, r22
+ 114c: c2 2e mov r12, r18
+ 114e: cb 01 movw r24, r22
+ 1150: ba 01 movw r22, r20
+ 1152: 20 e0 ldi r18, 0x00 ; 0
+ 1154: 30 e0 ldi r19, 0x00 ; 0
+ 1156: a9 01 movw r20, r18
+ 1158: 0e 94 b6 1e call 0x3d6c ; 0x3d6c <__ltsf2>
+ 115c: 87 ff sbrs r24, 7
+ 115e: 0a c0 rjmp .+20 ; 0x1174 <_ZN5Print10printFloatEdh+0x48>
+ 1160: c3 01 movw r24, r6
+ 1162: 6d e2 ldi r22, 0x2D ; 45
+ 1164: 0e 94 e2 06 call 0xdc4 ; 0xdc4 <_ZN5Print5printEc>
+ 1168: ec 01 movw r28, r24
+ 116a: 17 fb bst r17, 7
+ 116c: 10 95 com r17
+ 116e: 17 f9 bld r17, 7
+ 1170: 10 95 com r17
+ 1172: 02 c0 rjmp .+4 ; 0x1178 <_ZN5Print10printFloatEdh+0x4c>
+ 1174: c0 e0 ldi r28, 0x00 ; 0
+ 1176: d0 e0 ldi r29, 0x00 ; 0
+ 1178: dd 24 eor r13, r13
+ 117a: 50 e0 ldi r21, 0x00 ; 0
+ 117c: 40 e0 ldi r20, 0x00 ; 0
+ 117e: 30 e0 ldi r19, 0x00 ; 0
+ 1180: 2f e3 ldi r18, 0x3F ; 63
+ 1182: 11 c0 rjmp .+34 ; 0x11a6 <_ZN5Print10printFloatEdh+0x7a>
+ 1184: da 01 movw r26, r20
+ 1186: f9 01 movw r30, r18
+ 1188: 6b 2f mov r22, r27
+ 118a: 74 2f mov r23, r20
+ 118c: 8f 2f mov r24, r31
+ 118e: 92 2f mov r25, r18
+ 1190: 20 e0 ldi r18, 0x00 ; 0
+ 1192: 30 e0 ldi r19, 0x00 ; 0
+ 1194: 40 e2 ldi r20, 0x20 ; 32
+ 1196: 51 e4 ldi r21, 0x41 ; 65
+ 1198: 0e 94 d8 1d call 0x3bb0 ; 0x3bb0 <__divsf3>
+ 119c: 56 2f mov r21, r22
+ 119e: 47 2f mov r20, r23
+ 11a0: 38 2f mov r19, r24
+ 11a2: 29 2f mov r18, r25
+ 11a4: d3 94 inc r13
+ 11a6: dc 14 cp r13, r12
+ 11a8: 68 f3 brcs .-38 ; 0x1184 <_ZN5Print10printFloatEdh+0x58>
+ 11aa: c8 01 movw r24, r16
+ 11ac: b7 01 movw r22, r14
+ 11ae: da 01 movw r26, r20
+ 11b0: f9 01 movw r30, r18
+ 11b2: 2b 2f mov r18, r27
+ 11b4: 34 2f mov r19, r20
+ 11b6: 4f 2f mov r20, r31
+ 11b8: 5e 2f mov r21, r30
+ 11ba: 0e 94 80 1c call 0x3900 ; 0x3900 <__addsf3>
+ 11be: 5b 01 movw r10, r22
+ 11c0: f8 2e mov r15, r24
+ 11c2: 99 2e mov r9, r25
+ 11c4: 7b 2d mov r23, r11
+ 11c6: 0e 94 0a 1b call 0x3614 ; 0x3614 <__fixunssfsi>
+ 11ca: 16 2f mov r17, r22
+ 11cc: d7 2e mov r13, r23
+ 11ce: e8 2e mov r14, r24
+ 11d0: 09 2f mov r16, r25
+ 11d2: 0e 94 98 1f call 0x3f30 ; 0x3f30 <__floatunsisf>
+ 11d6: 9b 01 movw r18, r22
+ 11d8: ac 01 movw r20, r24
+ 11da: 6a 2d mov r22, r10
+ 11dc: 7b 2d mov r23, r11
+ 11de: 8f 2d mov r24, r15
+ 11e0: 99 2d mov r25, r9
+ 11e2: 0e 94 ad 1c call 0x395a ; 0x395a <__subsf3>
+ 11e6: 96 2e mov r9, r22
+ 11e8: a7 2e mov r10, r23
+ 11ea: b8 2e mov r11, r24
+ 11ec: f9 2e mov r15, r25
+ 11ee: c3 01 movw r24, r6
+ 11f0: 41 2f mov r20, r17
+ 11f2: 5d 2d mov r21, r13
+ 11f4: 6e 2d mov r22, r14
+ 11f6: 70 2f mov r23, r16
+ 11f8: 2a e0 ldi r18, 0x0A ; 10
+ 11fa: 30 e0 ldi r19, 0x00 ; 0
+ 11fc: 0e 94 c3 07 call 0xf86 ; 0xf86 <_ZN5Print5printEmi>
+ 1200: c8 0f add r28, r24
+ 1202: d9 1f adc r29, r25
+ 1204: cc 20 and r12, r12
+ 1206: b9 f1 breq .+110 ; 0x1276 <_ZN5Print10printFloatEdh+0x14a>
+ 1208: c3 01 movw r24, r6
+ 120a: 61 ea ldi r22, 0xA1 ; 161
+ 120c: 71 e0 ldi r23, 0x01 ; 1
+ 120e: 0e 94 78 06 call 0xcf0 ; 0xcf0 <_ZN5Print5writeEPKc>
+ 1212: c8 0f add r28, r24
+ 1214: d9 1f adc r29, r25
+ 1216: 2f c0 rjmp .+94 ; 0x1276 <_ZN5Print10printFloatEdh+0x14a>
+ 1218: 69 2d mov r22, r9
+ 121a: 7a 2d mov r23, r10
+ 121c: 8b 2d mov r24, r11
+ 121e: 9f 2d mov r25, r15
+ 1220: 20 e0 ldi r18, 0x00 ; 0
+ 1222: 30 e0 ldi r19, 0x00 ; 0
+ 1224: 40 e2 ldi r20, 0x20 ; 32
+ 1226: 51 e4 ldi r21, 0x41 ; 65
+ 1228: 0e 94 de 1c call 0x39bc ; 0x39bc <__mulsf3>
+ 122c: d6 2e mov r13, r22
+ 122e: b7 2e mov r11, r23
+ 1230: a8 2e mov r10, r24
+ 1232: 99 2e mov r9, r25
+ 1234: 0e 94 46 1f call 0x3e8c ; 0x3e8c <__fixsfsi>
+ 1238: 7b 01 movw r14, r22
+ 123a: 00 27 eor r16, r16
+ 123c: f7 fc sbrc r15, 7
+ 123e: 00 95 com r16
+ 1240: 10 2f mov r17, r16
+ 1242: c3 01 movw r24, r6
+ 1244: b8 01 movw r22, r16
+ 1246: a7 01 movw r20, r14
+ 1248: 2a e0 ldi r18, 0x0A ; 10
+ 124a: 30 e0 ldi r19, 0x00 ; 0
+ 124c: 0e 94 23 08 call 0x1046 ; 0x1046 <_ZN5Print5printEli>
+ 1250: c8 0f add r28, r24
+ 1252: d9 1f adc r29, r25
+ 1254: c8 01 movw r24, r16
+ 1256: b7 01 movw r22, r14
+ 1258: 0e 94 e6 1e call 0x3dcc ; 0x3dcc <__floatsisf>
+ 125c: 9b 01 movw r18, r22
+ 125e: ac 01 movw r20, r24
+ 1260: 6d 2d mov r22, r13
+ 1262: 7b 2d mov r23, r11
+ 1264: 8a 2d mov r24, r10
+ 1266: 99 2d mov r25, r9
+ 1268: 0e 94 ad 1c call 0x395a ; 0x395a <__subsf3>
+ 126c: 96 2e mov r9, r22
+ 126e: a7 2e mov r10, r23
+ 1270: b8 2e mov r11, r24
+ 1272: f9 2e mov r15, r25
+ 1274: ca 94 dec r12
+ 1276: cc 20 and r12, r12
+ 1278: 79 f6 brne .-98 ; 0x1218 <_ZN5Print10printFloatEdh+0xec>
+ 127a: ce 01 movw r24, r28
+ 127c: df 91 pop r29
+ 127e: cf 91 pop r28
+ 1280: 1f 91 pop r17
+ 1282: 0f 91 pop r16
+ 1284: ff 90 pop r15
+ 1286: ef 90 pop r14
+ 1288: df 90 pop r13
+ 128a: cf 90 pop r12
+ 128c: bf 90 pop r11
+ 128e: af 90 pop r10
+ 1290: 9f 90 pop r9
+ 1292: 7f 90 pop r7
+ 1294: 6f 90 pop r6
+ 1296: 08 95 ret
+
+00001298 <_ZN5Print5printEdi>:
+ 1298: 0e 94 96 08 call 0x112c ; 0x112c <_ZN5Print10printFloatEdh>
+ 129c: 08 95 ret
+
+0000129e <_ZN5Print7printlnEdi>:
+ 129e: 0f 93 push r16
+ 12a0: 1f 93 push r17
+ 12a2: cf 93 push r28
+ 12a4: df 93 push r29
+ 12a6: ec 01 movw r28, r24
+ 12a8: 0e 94 96 08 call 0x112c ; 0x112c <_ZN5Print10printFloatEdh>
+ 12ac: 8c 01 movw r16, r24
+ 12ae: ce 01 movw r24, r28
+ 12b0: 0e 94 f5 06 call 0xdea ; 0xdea <_ZN5Print7printlnEv>
+ 12b4: 08 0f add r16, r24
+ 12b6: 19 1f adc r17, r25
+ 12b8: c8 01 movw r24, r16
+ 12ba: df 91 pop r29
+ 12bc: cf 91 pop r28
+ 12be: 1f 91 pop r17
+ 12c0: 0f 91 pop r16
+ 12c2: 08 95 ret
+
+000012c4 <_ZN6Stream9timedReadEv>:
+ 12c4: cf 93 push r28
+ 12c6: df 93 push r29
+ 12c8: ec 01 movw r28, r24
+ 12ca: 0e 94 16 18 call 0x302c ; 0x302c <millis>
+ 12ce: 68 87 std Y+8, r22 ; 0x08
+ 12d0: 79 87 std Y+9, r23 ; 0x09
+ 12d2: 8a 87 std Y+10, r24 ; 0x0a
+ 12d4: 9b 87 std Y+11, r25 ; 0x0b
+ 12d6: e8 81 ld r30, Y
+ 12d8: f9 81 ldd r31, Y+1 ; 0x01
+ 12da: 06 80 ldd r0, Z+6 ; 0x06
+ 12dc: f7 81 ldd r31, Z+7 ; 0x07
+ 12de: e0 2d mov r30, r0
+ 12e0: ce 01 movw r24, r28
+ 12e2: 09 95 icall
+ 12e4: 9c 01 movw r18, r24
+ 12e6: 97 ff sbrs r25, 7
+ 12e8: 15 c0 rjmp .+42 ; 0x1314 <_ZN6Stream9timedReadEv+0x50>
+ 12ea: 0e 94 16 18 call 0x302c ; 0x302c <millis>
+ 12ee: 28 85 ldd r18, Y+8 ; 0x08
+ 12f0: 39 85 ldd r19, Y+9 ; 0x09
+ 12f2: 4a 85 ldd r20, Y+10 ; 0x0a
+ 12f4: 5b 85 ldd r21, Y+11 ; 0x0b
+ 12f6: 62 1b sub r22, r18
+ 12f8: 73 0b sbc r23, r19
+ 12fa: 84 0b sbc r24, r20
+ 12fc: 95 0b sbc r25, r21
+ 12fe: 2c 81 ldd r18, Y+4 ; 0x04
+ 1300: 3d 81 ldd r19, Y+5 ; 0x05
+ 1302: 4e 81 ldd r20, Y+6 ; 0x06
+ 1304: 5f 81 ldd r21, Y+7 ; 0x07
+ 1306: 62 17 cp r22, r18
+ 1308: 73 07 cpc r23, r19
+ 130a: 84 07 cpc r24, r20
+ 130c: 95 07 cpc r25, r21
+ 130e: 18 f3 brcs .-58 ; 0x12d6 <_ZN6Stream9timedReadEv+0x12>
+ 1310: 2f ef ldi r18, 0xFF ; 255
+ 1312: 3f ef ldi r19, 0xFF ; 255
+ 1314: c9 01 movw r24, r18
+ 1316: df 91 pop r29
+ 1318: cf 91 pop r28
+ 131a: 08 95 ret
+
+0000131c <_ZN6Stream9timedPeekEv>:
+ 131c: cf 93 push r28
+ 131e: df 93 push r29
+ 1320: ec 01 movw r28, r24
+ 1322: 0e 94 16 18 call 0x302c ; 0x302c <millis>
+ 1326: 68 87 std Y+8, r22 ; 0x08
+ 1328: 79 87 std Y+9, r23 ; 0x09
+ 132a: 8a 87 std Y+10, r24 ; 0x0a
+ 132c: 9b 87 std Y+11, r25 ; 0x0b
+ 132e: e8 81 ld r30, Y
+ 1330: f9 81 ldd r31, Y+1 ; 0x01
+ 1332: 00 84 ldd r0, Z+8 ; 0x08
+ 1334: f1 85 ldd r31, Z+9 ; 0x09
+ 1336: e0 2d mov r30, r0
+ 1338: ce 01 movw r24, r28
+ 133a: 09 95 icall
+ 133c: 9c 01 movw r18, r24
+ 133e: 97 ff sbrs r25, 7
+ 1340: 15 c0 rjmp .+42 ; 0x136c <_ZN6Stream9timedPeekEv+0x50>
+ 1342: 0e 94 16 18 call 0x302c ; 0x302c <millis>
+ 1346: 28 85 ldd r18, Y+8 ; 0x08
+ 1348: 39 85 ldd r19, Y+9 ; 0x09
+ 134a: 4a 85 ldd r20, Y+10 ; 0x0a
+ 134c: 5b 85 ldd r21, Y+11 ; 0x0b
+ 134e: 62 1b sub r22, r18
+ 1350: 73 0b sbc r23, r19
+ 1352: 84 0b sbc r24, r20
+ 1354: 95 0b sbc r25, r21
+ 1356: 2c 81 ldd r18, Y+4 ; 0x04
+ 1358: 3d 81 ldd r19, Y+5 ; 0x05
+ 135a: 4e 81 ldd r20, Y+6 ; 0x06
+ 135c: 5f 81 ldd r21, Y+7 ; 0x07
+ 135e: 62 17 cp r22, r18
+ 1360: 73 07 cpc r23, r19
+ 1362: 84 07 cpc r24, r20
+ 1364: 95 07 cpc r25, r21
+ 1366: 18 f3 brcs .-58 ; 0x132e <_ZN6Stream9timedPeekEv+0x12>
+ 1368: 2f ef ldi r18, 0xFF ; 255
+ 136a: 3f ef ldi r19, 0xFF ; 255
+ 136c: c9 01 movw r24, r18
+ 136e: df 91 pop r29
+ 1370: cf 91 pop r28
+ 1372: 08 95 ret
+
+00001374 <_ZN6Stream13peekNextDigitEv>:
+ 1374: cf 93 push r28
+ 1376: df 93 push r29
+ 1378: ec 01 movw r28, r24
+ 137a: ce 01 movw r24, r28
+ 137c: 0e 94 8e 09 call 0x131c ; 0x131c <_ZN6Stream9timedPeekEv>
+ 1380: 9c 01 movw r18, r24
+ 1382: 97 fd sbrc r25, 7
+ 1384: 0f c0 rjmp .+30 ; 0x13a4 <_ZN6Stream13peekNextDigitEv+0x30>
+ 1386: 8d 32 cpi r24, 0x2D ; 45
+ 1388: 91 05 cpc r25, r1
+ 138a: 61 f0 breq .+24 ; 0x13a4 <_ZN6Stream13peekNextDigitEv+0x30>
+ 138c: c0 97 sbiw r24, 0x30 ; 48
+ 138e: 8a 30 cpi r24, 0x0A ; 10
+ 1390: 91 05 cpc r25, r1
+ 1392: 40 f0 brcs .+16 ; 0x13a4 <_ZN6Stream13peekNextDigitEv+0x30>
+ 1394: e8 81 ld r30, Y
+ 1396: f9 81 ldd r31, Y+1 ; 0x01
+ 1398: 06 80 ldd r0, Z+6 ; 0x06
+ 139a: f7 81 ldd r31, Z+7 ; 0x07
+ 139c: e0 2d mov r30, r0
+ 139e: ce 01 movw r24, r28
+ 13a0: 09 95 icall
+ 13a2: eb cf rjmp .-42 ; 0x137a <_ZN6Stream13peekNextDigitEv+0x6>
+ 13a4: c9 01 movw r24, r18
+ 13a6: df 91 pop r29
+ 13a8: cf 91 pop r28
+ 13aa: 08 95 ret
+
+000013ac <_ZN6Stream10setTimeoutEm>:
+ 13ac: fc 01 movw r30, r24
+ 13ae: 44 83 std Z+4, r20 ; 0x04
+ 13b0: 55 83 std Z+5, r21 ; 0x05
+ 13b2: 66 83 std Z+6, r22 ; 0x06
+ 13b4: 77 83 std Z+7, r23 ; 0x07
+ 13b6: 08 95 ret
+
+000013b8 <_ZN6Stream9findUntilEPcjS0_j>:
+ 13b8: 6f 92 push r6
+ 13ba: 7f 92 push r7
+ 13bc: 8f 92 push r8
+ 13be: 9f 92 push r9
+ 13c0: af 92 push r10
+ 13c2: bf 92 push r11
+ 13c4: cf 92 push r12
+ 13c6: df 92 push r13
+ 13c8: ef 92 push r14
+ 13ca: ff 92 push r15
+ 13cc: 0f 93 push r16
+ 13ce: 1f 93 push r17
+ 13d0: cf 93 push r28
+ 13d2: df 93 push r29
+ 13d4: 3c 01 movw r6, r24
+ 13d6: 6b 01 movw r12, r22
+ 13d8: 4a 01 movw r8, r20
+ 13da: 59 01 movw r10, r18
+ 13dc: 78 01 movw r14, r16
+ 13de: fb 01 movw r30, r22
+ 13e0: 80 81 ld r24, Z
+ 13e2: 88 23 and r24, r24
+ 13e4: 91 f1 breq .+100 ; 0x144a <_ZN6Stream9findUntilEPcjS0_j+0x92>
+ 13e6: c0 e0 ldi r28, 0x00 ; 0
+ 13e8: d0 e0 ldi r29, 0x00 ; 0
+ 13ea: 00 e0 ldi r16, 0x00 ; 0
+ 13ec: 10 e0 ldi r17, 0x00 ; 0
+ 13ee: 26 c0 rjmp .+76 ; 0x143c <_ZN6Stream9findUntilEPcjS0_j+0x84>
+ 13f0: f6 01 movw r30, r12
+ 13f2: e0 0f add r30, r16
+ 13f4: f1 1f adc r31, r17
+ 13f6: 20 81 ld r18, Z
+ 13f8: 33 27 eor r19, r19
+ 13fa: 27 fd sbrc r18, 7
+ 13fc: 30 95 com r19
+ 13fe: 82 17 cp r24, r18
+ 1400: 93 07 cpc r25, r19
+ 1402: 31 f4 brne .+12 ; 0x1410 <_ZN6Stream9findUntilEPcjS0_j+0x58>
+ 1404: 0f 5f subi r16, 0xFF ; 255
+ 1406: 1f 4f sbci r17, 0xFF ; 255
+ 1408: 08 15 cp r16, r8
+ 140a: 19 05 cpc r17, r9
+ 140c: 18 f0 brcs .+6 ; 0x1414 <_ZN6Stream9findUntilEPcjS0_j+0x5c>
+ 140e: 1d c0 rjmp .+58 ; 0x144a <_ZN6Stream9findUntilEPcjS0_j+0x92>
+ 1410: 00 e0 ldi r16, 0x00 ; 0
+ 1412: 10 e0 ldi r17, 0x00 ; 0
+ 1414: e1 14 cp r14, r1
+ 1416: f1 04 cpc r15, r1
+ 1418: 79 f0 breq .+30 ; 0x1438 <_ZN6Stream9findUntilEPcjS0_j+0x80>
+ 141a: f5 01 movw r30, r10
+ 141c: ec 0f add r30, r28
+ 141e: fd 1f adc r31, r29
+ 1420: 20 81 ld r18, Z
+ 1422: 33 27 eor r19, r19
+ 1424: 27 fd sbrc r18, 7
+ 1426: 30 95 com r19
+ 1428: 82 17 cp r24, r18
+ 142a: 93 07 cpc r25, r19
+ 142c: 29 f4 brne .+10 ; 0x1438 <_ZN6Stream9findUntilEPcjS0_j+0x80>
+ 142e: 21 96 adiw r28, 0x01 ; 1
+ 1430: ce 15 cp r28, r14
+ 1432: df 05 cpc r29, r15
+ 1434: 18 f0 brcs .+6 ; 0x143c <_ZN6Stream9findUntilEPcjS0_j+0x84>
+ 1436: 0b c0 rjmp .+22 ; 0x144e <_ZN6Stream9findUntilEPcjS0_j+0x96>
+ 1438: c0 e0 ldi r28, 0x00 ; 0
+ 143a: d0 e0 ldi r29, 0x00 ; 0
+ 143c: c3 01 movw r24, r6
+ 143e: 0e 94 62 09 call 0x12c4 ; 0x12c4 <_ZN6Stream9timedReadEv>
+ 1442: 18 16 cp r1, r24
+ 1444: 19 06 cpc r1, r25
+ 1446: a4 f2 brlt .-88 ; 0x13f0 <_ZN6Stream9findUntilEPcjS0_j+0x38>
+ 1448: 02 c0 rjmp .+4 ; 0x144e <_ZN6Stream9findUntilEPcjS0_j+0x96>
+ 144a: 81 e0 ldi r24, 0x01 ; 1
+ 144c: 01 c0 rjmp .+2 ; 0x1450 <_ZN6Stream9findUntilEPcjS0_j+0x98>
+ 144e: 80 e0 ldi r24, 0x00 ; 0
+ 1450: df 91 pop r29
+ 1452: cf 91 pop r28
+ 1454: 1f 91 pop r17
+ 1456: 0f 91 pop r16
+ 1458: ff 90 pop r15
+ 145a: ef 90 pop r14
+ 145c: df 90 pop r13
+ 145e: cf 90 pop r12
+ 1460: bf 90 pop r11
+ 1462: af 90 pop r10
+ 1464: 9f 90 pop r9
+ 1466: 8f 90 pop r8
+ 1468: 7f 90 pop r7
+ 146a: 6f 90 pop r6
+ 146c: 08 95 ret
+
+0000146e <_ZN6Stream9findUntilEPcS0_>:
+ 146e: 0f 93 push r16
+ 1470: 1f 93 push r17
+ 1472: cf 93 push r28
+ 1474: df 93 push r29
+ 1476: 9a 01 movw r18, r20
+ 1478: fb 01 movw r30, r22
+ 147a: 01 90 ld r0, Z+
+ 147c: 00 20 and r0, r0
+ 147e: e9 f7 brne .-6 ; 0x147a <_ZN6Stream9findUntilEPcS0_+0xc>
+ 1480: 31 97 sbiw r30, 0x01 ; 1
+ 1482: e6 1b sub r30, r22
+ 1484: f7 0b sbc r31, r23
+ 1486: ea 01 movw r28, r20
+ 1488: 09 90 ld r0, Y+
+ 148a: 00 20 and r0, r0
+ 148c: e9 f7 brne .-6 ; 0x1488 <_ZN6Stream9findUntilEPcS0_+0x1a>
+ 148e: 8e 01 movw r16, r28
+ 1490: 01 50 subi r16, 0x01 ; 1
+ 1492: 10 40 sbci r17, 0x00 ; 0
+ 1494: 04 1b sub r16, r20
+ 1496: 15 0b sbc r17, r21
+ 1498: af 01 movw r20, r30
+ 149a: 0e 94 dc 09 call 0x13b8 ; 0x13b8 <_ZN6Stream9findUntilEPcjS0_j>
+ 149e: df 91 pop r29
+ 14a0: cf 91 pop r28
+ 14a2: 1f 91 pop r17
+ 14a4: 0f 91 pop r16
+ 14a6: 08 95 ret
+
+000014a8 <_ZN6Stream4findEPc>:
+ 14a8: 40 e0 ldi r20, 0x00 ; 0
+ 14aa: 50 e0 ldi r21, 0x00 ; 0
+ 14ac: 0e 94 37 0a call 0x146e ; 0x146e <_ZN6Stream9findUntilEPcS0_>
+ 14b0: 08 95 ret
+
+000014b2 <_ZN6Stream4findEPcj>:
+ 14b2: 0f 93 push r16
+ 14b4: 1f 93 push r17
+ 14b6: 20 e0 ldi r18, 0x00 ; 0
+ 14b8: 30 e0 ldi r19, 0x00 ; 0
+ 14ba: 00 e0 ldi r16, 0x00 ; 0
+ 14bc: 10 e0 ldi r17, 0x00 ; 0
+ 14be: 0e 94 dc 09 call 0x13b8 ; 0x13b8 <_ZN6Stream9findUntilEPcjS0_j>
+ 14c2: 1f 91 pop r17
+ 14c4: 0f 91 pop r16
+ 14c6: 08 95 ret
+
+000014c8 <_ZN6Stream8parseIntEc>:
+ 14c8: 9f 92 push r9
+ 14ca: af 92 push r10
+ 14cc: bf 92 push r11
+ 14ce: cf 92 push r12
+ 14d0: df 92 push r13
+ 14d2: ef 92 push r14
+ 14d4: ff 92 push r15
+ 14d6: 0f 93 push r16
+ 14d8: 1f 93 push r17
+ 14da: cf 93 push r28
+ 14dc: df 93 push r29
+ 14de: 6c 01 movw r12, r24
+ 14e0: a6 2e mov r10, r22
+ 14e2: 0e 94 ba 09 call 0x1374 ; 0x1374 <_ZN6Stream13peekNextDigitEv>
+ 14e6: ec 01 movw r28, r24
+ 14e8: 97 fd sbrc r25, 7
+ 14ea: 4e c0 rjmp .+156 ; 0x1588 <_ZN6Stream8parseIntEc+0xc0>
+ 14ec: ee 24 eor r14, r14
+ 14ee: ff 24 eor r15, r15
+ 14f0: 87 01 movw r16, r14
+ 14f2: 99 24 eor r9, r9
+ 14f4: bb 24 eor r11, r11
+ 14f6: a7 fc sbrc r10, 7
+ 14f8: b0 94 com r11
+ 14fa: ca 15 cp r28, r10
+ 14fc: db 05 cpc r29, r11
+ 14fe: 31 f1 breq .+76 ; 0x154c <_ZN6Stream8parseIntEc+0x84>
+ 1500: cd 32 cpi r28, 0x2D ; 45
+ 1502: d1 05 cpc r29, r1
+ 1504: 09 f1 breq .+66 ; 0x1548 <_ZN6Stream8parseIntEc+0x80>
+ 1506: ce 01 movw r24, r28
+ 1508: c0 97 sbiw r24, 0x30 ; 48
+ 150a: 8a 30 cpi r24, 0x0A ; 10
+ 150c: 91 05 cpc r25, r1
+ 150e: f0 f4 brcc .+60 ; 0x154c <_ZN6Stream8parseIntEc+0x84>
+ 1510: c8 01 movw r24, r16
+ 1512: b7 01 movw r22, r14
+ 1514: 2a e0 ldi r18, 0x0A ; 10
+ 1516: 30 e0 ldi r19, 0x00 ; 0
+ 1518: 40 e0 ldi r20, 0x00 ; 0
+ 151a: 50 e0 ldi r21, 0x00 ; 0
+ 151c: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 1520: 7b 01 movw r14, r22
+ 1522: 8c 01 movw r16, r24
+ 1524: ce 01 movw r24, r28
+ 1526: aa 27 eor r26, r26
+ 1528: 97 fd sbrc r25, 7
+ 152a: a0 95 com r26
+ 152c: ba 2f mov r27, r26
+ 152e: e8 0e add r14, r24
+ 1530: f9 1e adc r15, r25
+ 1532: 0a 1f adc r16, r26
+ 1534: 1b 1f adc r17, r27
+ 1536: 80 ed ldi r24, 0xD0 ; 208
+ 1538: 9f ef ldi r25, 0xFF ; 255
+ 153a: af ef ldi r26, 0xFF ; 255
+ 153c: bf ef ldi r27, 0xFF ; 255
+ 153e: e8 0e add r14, r24
+ 1540: f9 1e adc r15, r25
+ 1542: 0a 1f adc r16, r26
+ 1544: 1b 1f adc r17, r27
+ 1546: 02 c0 rjmp .+4 ; 0x154c <_ZN6Stream8parseIntEc+0x84>
+ 1548: 99 24 eor r9, r9
+ 154a: 93 94 inc r9
+ 154c: d6 01 movw r26, r12
+ 154e: ed 91 ld r30, X+
+ 1550: fc 91 ld r31, X
+ 1552: 06 80 ldd r0, Z+6 ; 0x06
+ 1554: f7 81 ldd r31, Z+7 ; 0x07
+ 1556: e0 2d mov r30, r0
+ 1558: c6 01 movw r24, r12
+ 155a: 09 95 icall
+ 155c: c6 01 movw r24, r12
+ 155e: 0e 94 8e 09 call 0x131c ; 0x131c <_ZN6Stream9timedPeekEv>
+ 1562: ec 01 movw r28, r24
+ 1564: c0 97 sbiw r24, 0x30 ; 48
+ 1566: 8a 30 cpi r24, 0x0A ; 10
+ 1568: 91 05 cpc r25, r1
+ 156a: 38 f2 brcs .-114 ; 0x14fa <_ZN6Stream8parseIntEc+0x32>
+ 156c: ca 15 cp r28, r10
+ 156e: db 05 cpc r29, r11
+ 1570: 21 f2 breq .-120 ; 0x14fa <_ZN6Stream8parseIntEc+0x32>
+ 1572: 99 20 and r9, r9
+ 1574: 61 f0 breq .+24 ; 0x158e <_ZN6Stream8parseIntEc+0xc6>
+ 1576: 10 95 com r17
+ 1578: 00 95 com r16
+ 157a: f0 94 com r15
+ 157c: e0 94 com r14
+ 157e: e1 1c adc r14, r1
+ 1580: f1 1c adc r15, r1
+ 1582: 01 1d adc r16, r1
+ 1584: 11 1d adc r17, r1
+ 1586: 03 c0 rjmp .+6 ; 0x158e <_ZN6Stream8parseIntEc+0xc6>
+ 1588: ee 24 eor r14, r14
+ 158a: ff 24 eor r15, r15
+ 158c: 87 01 movw r16, r14
+ 158e: b7 01 movw r22, r14
+ 1590: c8 01 movw r24, r16
+ 1592: df 91 pop r29
+ 1594: cf 91 pop r28
+ 1596: 1f 91 pop r17
+ 1598: 0f 91 pop r16
+ 159a: ff 90 pop r15
+ 159c: ef 90 pop r14
+ 159e: df 90 pop r13
+ 15a0: cf 90 pop r12
+ 15a2: bf 90 pop r11
+ 15a4: af 90 pop r10
+ 15a6: 9f 90 pop r9
+ 15a8: 08 95 ret
+
+000015aa <_ZN6Stream8parseIntEv>:
+ 15aa: 61 e0 ldi r22, 0x01 ; 1
+ 15ac: 0e 94 64 0a call 0x14c8 ; 0x14c8 <_ZN6Stream8parseIntEc>
+ 15b0: 08 95 ret
+
+000015b2 <_ZN6Stream10parseFloatEc>:
+ 15b2: 6f 92 push r6
+ 15b4: 7f 92 push r7
+ 15b6: 8f 92 push r8
+ 15b8: 9f 92 push r9
+ 15ba: af 92 push r10
+ 15bc: bf 92 push r11
+ 15be: cf 92 push r12
+ 15c0: df 92 push r13
+ 15c2: ef 92 push r14
+ 15c4: ff 92 push r15
+ 15c6: 0f 93 push r16
+ 15c8: 1f 93 push r17
+ 15ca: cf 93 push r28
+ 15cc: df 93 push r29
+ 15ce: ec 01 movw r28, r24
+ 15d0: 76 2e mov r7, r22
+ 15d2: 0e 94 ba 09 call 0x1374 ; 0x1374 <_ZN6Stream13peekNextDigitEv>
+ 15d6: d8 2e mov r13, r24
+ 15d8: 87 fd sbrc r24, 7
+ 15da: 7d c0 rjmp .+250 ; 0x16d6 <_ZN6Stream10parseFloatEc+0x124>
+ 15dc: bb 24 eor r11, r11
+ 15de: aa 24 eor r10, r10
+ 15e0: 90 e8 ldi r25, 0x80 ; 128
+ 15e2: 99 2e mov r9, r25
+ 15e4: 8f e3 ldi r24, 0x3F ; 63
+ 15e6: 88 2e mov r8, r24
+ 15e8: ee 24 eor r14, r14
+ 15ea: ff 24 eor r15, r15
+ 15ec: 87 01 movw r16, r14
+ 15ee: cc 24 eor r12, r12
+ 15f0: 66 24 eor r6, r6
+ 15f2: d7 14 cp r13, r7
+ 15f4: e1 f1 breq .+120 ; 0x166e <_ZN6Stream10parseFloatEc+0xbc>
+ 15f6: 8d 2d mov r24, r13
+ 15f8: 8d 32 cpi r24, 0x2D ; 45
+ 15fa: a1 f1 breq .+104 ; 0x1664 <_ZN6Stream10parseFloatEc+0xb2>
+ 15fc: 8e 32 cpi r24, 0x2E ; 46
+ 15fe: a9 f1 breq .+106 ; 0x166a <_ZN6Stream10parseFloatEc+0xb8>
+ 1600: 80 53 subi r24, 0x30 ; 48
+ 1602: 8a 30 cpi r24, 0x0A ; 10
+ 1604: a0 f5 brcc .+104 ; 0x166e <_ZN6Stream10parseFloatEc+0xbc>
+ 1606: c8 01 movw r24, r16
+ 1608: b7 01 movw r22, r14
+ 160a: 2a e0 ldi r18, 0x0A ; 10
+ 160c: 30 e0 ldi r19, 0x00 ; 0
+ 160e: 40 e0 ldi r20, 0x00 ; 0
+ 1610: 50 e0 ldi r21, 0x00 ; 0
+ 1612: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 1616: 7b 01 movw r14, r22
+ 1618: 8c 01 movw r16, r24
+ 161a: 8d 2d mov r24, r13
+ 161c: 99 27 eor r25, r25
+ 161e: 87 fd sbrc r24, 7
+ 1620: 90 95 com r25
+ 1622: a9 2f mov r26, r25
+ 1624: b9 2f mov r27, r25
+ 1626: e8 0e add r14, r24
+ 1628: f9 1e adc r15, r25
+ 162a: 0a 1f adc r16, r26
+ 162c: 1b 1f adc r17, r27
+ 162e: 80 ed ldi r24, 0xD0 ; 208
+ 1630: 9f ef ldi r25, 0xFF ; 255
+ 1632: af ef ldi r26, 0xFF ; 255
+ 1634: bf ef ldi r27, 0xFF ; 255
+ 1636: e8 0e add r14, r24
+ 1638: f9 1e adc r15, r25
+ 163a: 0a 1f adc r16, r26
+ 163c: 1b 1f adc r17, r27
+ 163e: cc 20 and r12, r12
+ 1640: b1 f0 breq .+44 ; 0x166e <_ZN6Stream10parseFloatEc+0xbc>
+ 1642: a5 01 movw r20, r10
+ 1644: 94 01 movw r18, r8
+ 1646: 65 2f mov r22, r21
+ 1648: 7a 2d mov r23, r10
+ 164a: 83 2f mov r24, r19
+ 164c: 98 2d mov r25, r8
+ 164e: 2d ec ldi r18, 0xCD ; 205
+ 1650: 3c ec ldi r19, 0xCC ; 204
+ 1652: 4c ec ldi r20, 0xCC ; 204
+ 1654: 5d e3 ldi r21, 0x3D ; 61
+ 1656: 0e 94 de 1c call 0x39bc ; 0x39bc <__mulsf3>
+ 165a: b6 2e mov r11, r22
+ 165c: a7 2e mov r10, r23
+ 165e: 98 2e mov r9, r24
+ 1660: 89 2e mov r8, r25
+ 1662: 05 c0 rjmp .+10 ; 0x166e <_ZN6Stream10parseFloatEc+0xbc>
+ 1664: 66 24 eor r6, r6
+ 1666: 63 94 inc r6
+ 1668: 02 c0 rjmp .+4 ; 0x166e <_ZN6Stream10parseFloatEc+0xbc>
+ 166a: cc 24 eor r12, r12
+ 166c: c3 94 inc r12
+ 166e: e8 81 ld r30, Y
+ 1670: f9 81 ldd r31, Y+1 ; 0x01
+ 1672: 06 80 ldd r0, Z+6 ; 0x06
+ 1674: f7 81 ldd r31, Z+7 ; 0x07
+ 1676: e0 2d mov r30, r0
+ 1678: ce 01 movw r24, r28
+ 167a: 09 95 icall
+ 167c: ce 01 movw r24, r28
+ 167e: 0e 94 8e 09 call 0x131c ; 0x131c <_ZN6Stream9timedPeekEv>
+ 1682: d8 2e mov r13, r24
+ 1684: 98 2f mov r25, r24
+ 1686: 90 53 subi r25, 0x30 ; 48
+ 1688: 9a 30 cpi r25, 0x0A ; 10
+ 168a: 08 f4 brcc .+2 ; 0x168e <_ZN6Stream10parseFloatEc+0xdc>
+ 168c: b2 cf rjmp .-156 ; 0x15f2 <_ZN6Stream10parseFloatEc+0x40>
+ 168e: 8e 32 cpi r24, 0x2E ; 46
+ 1690: 09 f4 brne .+2 ; 0x1694 <_ZN6Stream10parseFloatEc+0xe2>
+ 1692: af cf rjmp .-162 ; 0x15f2 <_ZN6Stream10parseFloatEc+0x40>
+ 1694: 87 15 cp r24, r7
+ 1696: 09 f4 brne .+2 ; 0x169a <_ZN6Stream10parseFloatEc+0xe8>
+ 1698: ac cf rjmp .-168 ; 0x15f2 <_ZN6Stream10parseFloatEc+0x40>
+ 169a: 66 20 and r6, r6
+ 169c: 41 f0 breq .+16 ; 0x16ae <_ZN6Stream10parseFloatEc+0xfc>
+ 169e: 10 95 com r17
+ 16a0: 00 95 com r16
+ 16a2: f0 94 com r15
+ 16a4: e0 94 com r14
+ 16a6: e1 1c adc r14, r1
+ 16a8: f1 1c adc r15, r1
+ 16aa: 01 1d adc r16, r1
+ 16ac: 11 1d adc r17, r1
+ 16ae: cc 20 and r12, r12
+ 16b0: 69 f0 breq .+26 ; 0x16cc <_ZN6Stream10parseFloatEc+0x11a>
+ 16b2: c8 01 movw r24, r16
+ 16b4: b7 01 movw r22, r14
+ 16b6: 0e 94 e6 1e call 0x3dcc ; 0x3dcc <__floatsisf>
+ 16ba: d5 01 movw r26, r10
+ 16bc: f4 01 movw r30, r8
+ 16be: 2b 2f mov r18, r27
+ 16c0: 3a 2d mov r19, r10
+ 16c2: 4f 2f mov r20, r31
+ 16c4: 58 2d mov r21, r8
+ 16c6: 0e 94 de 1c call 0x39bc ; 0x39bc <__mulsf3>
+ 16ca: 09 c0 rjmp .+18 ; 0x16de <_ZN6Stream10parseFloatEc+0x12c>
+ 16cc: c8 01 movw r24, r16
+ 16ce: b7 01 movw r22, r14
+ 16d0: 0e 94 e6 1e call 0x3dcc ; 0x3dcc <__floatsisf>
+ 16d4: 04 c0 rjmp .+8 ; 0x16de <_ZN6Stream10parseFloatEc+0x12c>
+ 16d6: 60 e0 ldi r22, 0x00 ; 0
+ 16d8: 70 e0 ldi r23, 0x00 ; 0
+ 16da: 80 e0 ldi r24, 0x00 ; 0
+ 16dc: 90 e0 ldi r25, 0x00 ; 0
+ 16de: df 91 pop r29
+ 16e0: cf 91 pop r28
+ 16e2: 1f 91 pop r17
+ 16e4: 0f 91 pop r16
+ 16e6: ff 90 pop r15
+ 16e8: ef 90 pop r14
+ 16ea: df 90 pop r13
+ 16ec: cf 90 pop r12
+ 16ee: bf 90 pop r11
+ 16f0: af 90 pop r10
+ 16f2: 9f 90 pop r9
+ 16f4: 8f 90 pop r8
+ 16f6: 7f 90 pop r7
+ 16f8: 6f 90 pop r6
+ 16fa: 08 95 ret
+
+000016fc <_ZN6Stream10parseFloatEv>:
+ 16fc: 61 e0 ldi r22, 0x01 ; 1
+ 16fe: 0e 94 d9 0a call 0x15b2 ; 0x15b2 <_ZN6Stream10parseFloatEc>
+ 1702: 08 95 ret
+
+00001704 <_ZN6Stream9readBytesEPcj>:
+ 1704: cf 92 push r12
+ 1706: df 92 push r13
+ 1708: ef 92 push r14
+ 170a: ff 92 push r15
+ 170c: 0f 93 push r16
+ 170e: 1f 93 push r17
+ 1710: cf 93 push r28
+ 1712: df 93 push r29
+ 1714: 6c 01 movw r12, r24
+ 1716: eb 01 movw r28, r22
+ 1718: 7a 01 movw r14, r20
+ 171a: 00 e0 ldi r16, 0x00 ; 0
+ 171c: 10 e0 ldi r17, 0x00 ; 0
+ 171e: 08 c0 rjmp .+16 ; 0x1730 <_ZN6Stream9readBytesEPcj+0x2c>
+ 1720: c6 01 movw r24, r12
+ 1722: 0e 94 62 09 call 0x12c4 ; 0x12c4 <_ZN6Stream9timedReadEv>
+ 1726: 97 fd sbrc r25, 7
+ 1728: 06 c0 rjmp .+12 ; 0x1736 <_ZN6Stream9readBytesEPcj+0x32>
+ 172a: 89 93 st Y+, r24
+ 172c: 0f 5f subi r16, 0xFF ; 255
+ 172e: 1f 4f sbci r17, 0xFF ; 255
+ 1730: 0e 15 cp r16, r14
+ 1732: 1f 05 cpc r17, r15
+ 1734: a8 f3 brcs .-22 ; 0x1720 <_ZN6Stream9readBytesEPcj+0x1c>
+ 1736: c8 01 movw r24, r16
+ 1738: df 91 pop r29
+ 173a: cf 91 pop r28
+ 173c: 1f 91 pop r17
+ 173e: 0f 91 pop r16
+ 1740: ff 90 pop r15
+ 1742: ef 90 pop r14
+ 1744: df 90 pop r13
+ 1746: cf 90 pop r12
+ 1748: 08 95 ret
+
+0000174a <_ZN6Stream14readBytesUntilEcPcj>:
+ 174a: af 92 push r10
+ 174c: bf 92 push r11
+ 174e: cf 92 push r12
+ 1750: df 92 push r13
+ 1752: ef 92 push r14
+ 1754: ff 92 push r15
+ 1756: 0f 93 push r16
+ 1758: 1f 93 push r17
+ 175a: cf 93 push r28
+ 175c: df 93 push r29
+ 175e: 5c 01 movw r10, r24
+ 1760: ea 01 movw r28, r20
+ 1762: 79 01 movw r14, r18
+ 1764: 21 15 cp r18, r1
+ 1766: 31 05 cpc r19, r1
+ 1768: b1 f0 breq .+44 ; 0x1796 <_ZN6Stream14readBytesUntilEcPcj+0x4c>
+ 176a: 00 e0 ldi r16, 0x00 ; 0
+ 176c: 10 e0 ldi r17, 0x00 ; 0
+ 176e: c6 2e mov r12, r22
+ 1770: dd 24 eor r13, r13
+ 1772: c7 fc sbrc r12, 7
+ 1774: d0 94 com r13
+ 1776: 0b c0 rjmp .+22 ; 0x178e <_ZN6Stream14readBytesUntilEcPcj+0x44>
+ 1778: c5 01 movw r24, r10
+ 177a: 0e 94 62 09 call 0x12c4 ; 0x12c4 <_ZN6Stream9timedReadEv>
+ 177e: 97 fd sbrc r25, 7
+ 1780: 0c c0 rjmp .+24 ; 0x179a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 1782: 8c 15 cp r24, r12
+ 1784: 9d 05 cpc r25, r13
+ 1786: 49 f0 breq .+18 ; 0x179a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 1788: 89 93 st Y+, r24
+ 178a: 0f 5f subi r16, 0xFF ; 255
+ 178c: 1f 4f sbci r17, 0xFF ; 255
+ 178e: 0e 15 cp r16, r14
+ 1790: 1f 05 cpc r17, r15
+ 1792: 90 f3 brcs .-28 ; 0x1778 <_ZN6Stream14readBytesUntilEcPcj+0x2e>
+ 1794: 02 c0 rjmp .+4 ; 0x179a <_ZN6Stream14readBytesUntilEcPcj+0x50>
+ 1796: 00 e0 ldi r16, 0x00 ; 0
+ 1798: 10 e0 ldi r17, 0x00 ; 0
+ 179a: c8 01 movw r24, r16
+ 179c: df 91 pop r29
+ 179e: cf 91 pop r28
+ 17a0: 1f 91 pop r17
+ 17a2: 0f 91 pop r16
+ 17a4: ff 90 pop r15
+ 17a6: ef 90 pop r14
+ 17a8: df 90 pop r13
+ 17aa: cf 90 pop r12
+ 17ac: bf 90 pop r11
+ 17ae: af 90 pop r10
+ 17b0: 08 95 ret
+
+000017b2 <_Z4tonehjm>:
+ 17b2: 2f 92 push r2
+ 17b4: 3f 92 push r3
+ 17b6: 4f 92 push r4
+ 17b8: 5f 92 push r5
+ 17ba: 6f 92 push r6
+ 17bc: 7f 92 push r7
+ 17be: 8f 92 push r8
+ 17c0: 9f 92 push r9
+ 17c2: af 92 push r10
+ 17c4: bf 92 push r11
+ 17c6: df 92 push r13
+ 17c8: ef 92 push r14
+ 17ca: ff 92 push r15
+ 17cc: 0f 93 push r16
+ 17ce: 1f 93 push r17
+ 17d0: df 93 push r29
+ 17d2: cf 93 push r28
+ 17d4: 00 d0 rcall .+0 ; 0x17d6 <_Z4tonehjm+0x24>
+ 17d6: 00 d0 rcall .+0 ; 0x17d8 <_Z4tonehjm+0x26>
+ 17d8: cd b7 in r28, 0x3d ; 61
+ 17da: de b7 in r29, 0x3e ; 62
+ 17dc: 1b 01 movw r2, r22
+ 17de: 29 83 std Y+1, r18 ; 0x01
+ 17e0: 3a 83 std Y+2, r19 ; 0x02
+ 17e2: 4b 83 std Y+3, r20 ; 0x03
+ 17e4: 5c 83 std Y+4, r21 ; 0x04
+ 17e6: 90 91 ab 01 lds r25, 0x01AB
+ 17ea: 98 17 cp r25, r24
+ 17ec: 21 f0 breq .+8 ; 0x17f6 <_Z4tonehjm+0x44>
+ 17ee: 9f 3f cpi r25, 0xFF ; 255
+ 17f0: 09 f0 breq .+2 ; 0x17f4 <_Z4tonehjm+0x42>
+ 17f2: d8 c1 rjmp .+944 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 17f4: 04 c0 rjmp .+8 ; 0x17fe <_Z4tonehjm+0x4c>
+ 17f6: e8 e6 ldi r30, 0x68 ; 104
+ 17f8: f0 e0 ldi r31, 0x00 ; 0
+ 17fa: d4 90 lpm r13, Z+
+ 17fc: 7d c0 rjmp .+250 ; 0x18f8 <_Z4tonehjm+0x146>
+ 17fe: 80 93 ab 01 sts 0x01AB, r24
+ 1802: e8 e6 ldi r30, 0x68 ; 104
+ 1804: f0 e0 ldi r31, 0x00 ; 0
+ 1806: d4 90 lpm r13, Z+
+ 1808: 9d 2d mov r25, r13
+ 180a: 9f 3f cpi r25, 0xFF ; 255
+ 180c: 09 f4 brne .+2 ; 0x1810 <_Z4tonehjm+0x5e>
+ 180e: ca c1 rjmp .+916 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 1810: 91 30 cpi r25, 0x01 ; 1
+ 1812: 31 f1 breq .+76 ; 0x1860 <_Z4tonehjm+0xae>
+ 1814: 92 30 cpi r25, 0x02 ; 2
+ 1816: 09 f4 brne .+2 ; 0x181a <_Z4tonehjm+0x68>
+ 1818: 49 c0 rjmp .+146 ; 0x18ac <_Z4tonehjm+0xfa>
+ 181a: dd 20 and r13, r13
+ 181c: 09 f0 breq .+2 ; 0x1820 <_Z4tonehjm+0x6e>
+ 181e: 6c c0 rjmp .+216 ; 0x18f8 <_Z4tonehjm+0x146>
+ 1820: 14 bc out 0x24, r1 ; 36
+ 1822: 15 bc out 0x25, r1 ; 37
+ 1824: 94 b5 in r25, 0x24 ; 36
+ 1826: 92 60 ori r25, 0x02 ; 2
+ 1828: 94 bd out 0x24, r25 ; 36
+ 182a: 95 b5 in r25, 0x25 ; 37
+ 182c: 91 60 ori r25, 0x01 ; 1
+ 182e: 95 bd out 0x25, r25 ; 37
+ 1830: 28 2f mov r18, r24
+ 1832: 30 e0 ldi r19, 0x00 ; 0
+ 1834: f9 01 movw r30, r18
+ 1836: e9 57 subi r30, 0x79 ; 121
+ 1838: ff 4f sbci r31, 0xFF ; 255
+ 183a: e4 91 lpm r30, Z+
+ 183c: f0 e0 ldi r31, 0x00 ; 0
+ 183e: ee 0f add r30, r30
+ 1840: ff 1f adc r31, r31
+ 1842: ed 58 subi r30, 0x8D ; 141
+ 1844: ff 4f sbci r31, 0xFF ; 255
+ 1846: 45 91 lpm r20, Z+
+ 1848: 54 91 lpm r21, Z+
+ 184a: 40 93 8b 03 sts 0x038B, r20
+ 184e: 50 93 8c 03 sts 0x038C, r21
+ 1852: 25 56 subi r18, 0x65 ; 101
+ 1854: 3f 4f sbci r19, 0xFF ; 255
+ 1856: f9 01 movw r30, r18
+ 1858: 24 91 lpm r18, Z+
+ 185a: 20 93 8d 03 sts 0x038D, r18
+ 185e: 4e c0 rjmp .+156 ; 0x18fc <_Z4tonehjm+0x14a>
+ 1860: 10 92 80 00 sts 0x0080, r1
+ 1864: 10 92 81 00 sts 0x0081, r1
+ 1868: 90 91 81 00 lds r25, 0x0081
+ 186c: 98 60 ori r25, 0x08 ; 8
+ 186e: 90 93 81 00 sts 0x0081, r25
+ 1872: 90 91 81 00 lds r25, 0x0081
+ 1876: 91 60 ori r25, 0x01 ; 1
+ 1878: 90 93 81 00 sts 0x0081, r25
+ 187c: 28 2f mov r18, r24
+ 187e: 30 e0 ldi r19, 0x00 ; 0
+ 1880: f9 01 movw r30, r18
+ 1882: e9 57 subi r30, 0x79 ; 121
+ 1884: ff 4f sbci r31, 0xFF ; 255
+ 1886: e4 91 lpm r30, Z+
+ 1888: f0 e0 ldi r31, 0x00 ; 0
+ 188a: ee 0f add r30, r30
+ 188c: ff 1f adc r31, r31
+ 188e: ed 58 subi r30, 0x8D ; 141
+ 1890: ff 4f sbci r31, 0xFF ; 255
+ 1892: 45 91 lpm r20, Z+
+ 1894: 54 91 lpm r21, Z+
+ 1896: 40 93 92 03 sts 0x0392, r20
+ 189a: 50 93 93 03 sts 0x0393, r21
+ 189e: 25 56 subi r18, 0x65 ; 101
+ 18a0: 3f 4f sbci r19, 0xFF ; 255
+ 18a2: f9 01 movw r30, r18
+ 18a4: 24 91 lpm r18, Z+
+ 18a6: 20 93 94 03 sts 0x0394, r18
+ 18aa: 28 c0 rjmp .+80 ; 0x18fc <_Z4tonehjm+0x14a>
+ 18ac: 10 92 b0 00 sts 0x00B0, r1
+ 18b0: 10 92 b1 00 sts 0x00B1, r1
+ 18b4: 90 91 b0 00 lds r25, 0x00B0
+ 18b8: 92 60 ori r25, 0x02 ; 2
+ 18ba: 90 93 b0 00 sts 0x00B0, r25
+ 18be: 90 91 b1 00 lds r25, 0x00B1
+ 18c2: 91 60 ori r25, 0x01 ; 1
+ 18c4: 90 93 b1 00 sts 0x00B1, r25
+ 18c8: 28 2f mov r18, r24
+ 18ca: 30 e0 ldi r19, 0x00 ; 0
+ 18cc: f9 01 movw r30, r18
+ 18ce: e9 57 subi r30, 0x79 ; 121
+ 18d0: ff 4f sbci r31, 0xFF ; 255
+ 18d2: e4 91 lpm r30, Z+
+ 18d4: f0 e0 ldi r31, 0x00 ; 0
+ 18d6: ee 0f add r30, r30
+ 18d8: ff 1f adc r31, r31
+ 18da: ed 58 subi r30, 0x8D ; 141
+ 18dc: ff 4f sbci r31, 0xFF ; 255
+ 18de: 45 91 lpm r20, Z+
+ 18e0: 54 91 lpm r21, Z+
+ 18e2: 40 93 99 03 sts 0x0399, r20
+ 18e6: 50 93 9a 03 sts 0x039A, r21
+ 18ea: 25 56 subi r18, 0x65 ; 101
+ 18ec: 3f 4f sbci r19, 0xFF ; 255
+ 18ee: f9 01 movw r30, r18
+ 18f0: 24 91 lpm r18, Z+
+ 18f2: 20 93 9b 03 sts 0x039B, r18
+ 18f6: 02 c0 rjmp .+4 ; 0x18fc <_Z4tonehjm+0x14a>
+ 18f8: d7 fc sbrc r13, 7
+ 18fa: 54 c1 rjmp .+680 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 18fc: 61 e0 ldi r22, 0x01 ; 1
+ 18fe: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 1902: dd 20 and r13, r13
+ 1904: 21 f0 breq .+8 ; 0x190e <_Z4tonehjm+0x15c>
+ 1906: fd 2d mov r31, r13
+ 1908: f2 30 cpi r31, 0x02 ; 2
+ 190a: 09 f0 breq .+2 ; 0x190e <_Z4tonehjm+0x15c>
+ 190c: c1 c0 rjmp .+386 ; 0x1a90 <_Z4tonehjm+0x2de>
+ 190e: 41 01 movw r8, r2
+ 1910: aa 24 eor r10, r10
+ 1912: bb 24 eor r11, r11
+ 1914: 60 e0 ldi r22, 0x00 ; 0
+ 1916: 79 e0 ldi r23, 0x09 ; 9
+ 1918: 8d e3 ldi r24, 0x3D ; 61
+ 191a: 90 e0 ldi r25, 0x00 ; 0
+ 191c: a5 01 movw r20, r10
+ 191e: 94 01 movw r18, r8
+ 1920: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1924: 29 01 movw r4, r18
+ 1926: 3a 01 movw r6, r20
+ 1928: 79 01 movw r14, r18
+ 192a: 8a 01 movw r16, r20
+ 192c: 08 94 sec
+ 192e: e1 08 sbc r14, r1
+ 1930: f1 08 sbc r15, r1
+ 1932: 01 09 sbc r16, r1
+ 1934: 11 09 sbc r17, r1
+ 1936: 8f ef ldi r24, 0xFF ; 255
+ 1938: e8 16 cp r14, r24
+ 193a: f1 04 cpc r15, r1
+ 193c: 01 05 cpc r16, r1
+ 193e: 11 05 cpc r17, r1
+ 1940: 09 f0 breq .+2 ; 0x1944 <_Z4tonehjm+0x192>
+ 1942: 08 f4 brcc .+2 ; 0x1946 <_Z4tonehjm+0x194>
+ 1944: 98 c0 rjmp .+304 ; 0x1a76 <_Z4tonehjm+0x2c4>
+ 1946: 60 e2 ldi r22, 0x20 ; 32
+ 1948: 71 ea ldi r23, 0xA1 ; 161
+ 194a: 87 e0 ldi r24, 0x07 ; 7
+ 194c: 90 e0 ldi r25, 0x00 ; 0
+ 194e: a5 01 movw r20, r10
+ 1950: 94 01 movw r18, r8
+ 1952: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1956: 79 01 movw r14, r18
+ 1958: 8a 01 movw r16, r20
+ 195a: 08 94 sec
+ 195c: e1 08 sbc r14, r1
+ 195e: f1 08 sbc r15, r1
+ 1960: 01 09 sbc r16, r1
+ 1962: 11 09 sbc r17, r1
+ 1964: 9d 2d mov r25, r13
+ 1966: 92 30 cpi r25, 0x02 ; 2
+ 1968: c9 f4 brne .+50 ; 0x199c <_Z4tonehjm+0x1ea>
+ 196a: af ef ldi r26, 0xFF ; 255
+ 196c: ea 16 cp r14, r26
+ 196e: f1 04 cpc r15, r1
+ 1970: 01 05 cpc r16, r1
+ 1972: 11 05 cpc r17, r1
+ 1974: 09 f0 breq .+2 ; 0x1978 <_Z4tonehjm+0x1c6>
+ 1976: 08 f4 brcc .+2 ; 0x197a <_Z4tonehjm+0x1c8>
+ 1978: 85 c0 rjmp .+266 ; 0x1a84 <_Z4tonehjm+0x2d2>
+ 197a: 68 e4 ldi r22, 0x48 ; 72
+ 197c: 78 ee ldi r23, 0xE8 ; 232
+ 197e: 81 e0 ldi r24, 0x01 ; 1
+ 1980: 90 e0 ldi r25, 0x00 ; 0
+ 1982: a5 01 movw r20, r10
+ 1984: 94 01 movw r18, r8
+ 1986: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 198a: 79 01 movw r14, r18
+ 198c: 8a 01 movw r16, r20
+ 198e: 08 94 sec
+ 1990: e1 08 sbc r14, r1
+ 1992: f1 08 sbc r15, r1
+ 1994: 01 09 sbc r16, r1
+ 1996: 11 09 sbc r17, r1
+ 1998: 83 e0 ldi r24, 0x03 ; 3
+ 199a: 01 c0 rjmp .+2 ; 0x199e <_Z4tonehjm+0x1ec>
+ 199c: 82 e0 ldi r24, 0x02 ; 2
+ 199e: bf ef ldi r27, 0xFF ; 255
+ 19a0: eb 16 cp r14, r27
+ 19a2: f1 04 cpc r15, r1
+ 19a4: 01 05 cpc r16, r1
+ 19a6: 11 05 cpc r17, r1
+ 19a8: 09 f0 breq .+2 ; 0x19ac <_Z4tonehjm+0x1fa>
+ 19aa: 08 f4 brcc .+2 ; 0x19ae <_Z4tonehjm+0x1fc>
+ 19ac: 65 c0 rjmp .+202 ; 0x1a78 <_Z4tonehjm+0x2c6>
+ 19ae: 64 e2 ldi r22, 0x24 ; 36
+ 19b0: 74 ef ldi r23, 0xF4 ; 244
+ 19b2: 80 e0 ldi r24, 0x00 ; 0
+ 19b4: 90 e0 ldi r25, 0x00 ; 0
+ 19b6: a5 01 movw r20, r10
+ 19b8: 94 01 movw r18, r8
+ 19ba: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 19be: 79 01 movw r14, r18
+ 19c0: 8a 01 movw r16, r20
+ 19c2: 08 94 sec
+ 19c4: e1 08 sbc r14, r1
+ 19c6: f1 08 sbc r15, r1
+ 19c8: 01 09 sbc r16, r1
+ 19ca: 11 09 sbc r17, r1
+ 19cc: dd 20 and r13, r13
+ 19ce: e1 f0 breq .+56 ; 0x1a08 <_Z4tonehjm+0x256>
+ 19d0: ed 2d mov r30, r13
+ 19d2: e2 30 cpi r30, 0x02 ; 2
+ 19d4: d9 f4 brne .+54 ; 0x1a0c <_Z4tonehjm+0x25a>
+ 19d6: ff ef ldi r31, 0xFF ; 255
+ 19d8: ef 16 cp r14, r31
+ 19da: f1 04 cpc r15, r1
+ 19dc: 01 05 cpc r16, r1
+ 19de: 11 05 cpc r17, r1
+ 19e0: 09 f0 breq .+2 ; 0x19e4 <_Z4tonehjm+0x232>
+ 19e2: 08 f4 brcc .+2 ; 0x19e6 <_Z4tonehjm+0x234>
+ 19e4: 51 c0 rjmp .+162 ; 0x1a88 <_Z4tonehjm+0x2d6>
+ 19e6: 62 e1 ldi r22, 0x12 ; 18
+ 19e8: 7a e7 ldi r23, 0x7A ; 122
+ 19ea: 80 e0 ldi r24, 0x00 ; 0
+ 19ec: 90 e0 ldi r25, 0x00 ; 0
+ 19ee: a5 01 movw r20, r10
+ 19f0: 94 01 movw r18, r8
+ 19f2: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 19f6: 79 01 movw r14, r18
+ 19f8: 8a 01 movw r16, r20
+ 19fa: 08 94 sec
+ 19fc: e1 08 sbc r14, r1
+ 19fe: f1 08 sbc r15, r1
+ 1a00: 01 09 sbc r16, r1
+ 1a02: 11 09 sbc r17, r1
+ 1a04: 85 e0 ldi r24, 0x05 ; 5
+ 1a06: 03 c0 rjmp .+6 ; 0x1a0e <_Z4tonehjm+0x25c>
+ 1a08: 83 e0 ldi r24, 0x03 ; 3
+ 1a0a: 01 c0 rjmp .+2 ; 0x1a0e <_Z4tonehjm+0x25c>
+ 1a0c: 84 e0 ldi r24, 0x04 ; 4
+ 1a0e: 9f ef ldi r25, 0xFF ; 255
+ 1a10: e9 16 cp r14, r25
+ 1a12: f1 04 cpc r15, r1
+ 1a14: 01 05 cpc r16, r1
+ 1a16: 11 05 cpc r17, r1
+ 1a18: 79 f1 breq .+94 ; 0x1a78 <_Z4tonehjm+0x2c6>
+ 1a1a: 70 f1 brcs .+92 ; 0x1a78 <_Z4tonehjm+0x2c6>
+ 1a1c: 69 e0 ldi r22, 0x09 ; 9
+ 1a1e: 7d e3 ldi r23, 0x3D ; 61
+ 1a20: 80 e0 ldi r24, 0x00 ; 0
+ 1a22: 90 e0 ldi r25, 0x00 ; 0
+ 1a24: a5 01 movw r20, r10
+ 1a26: 94 01 movw r18, r8
+ 1a28: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1a2c: 79 01 movw r14, r18
+ 1a2e: 8a 01 movw r16, r20
+ 1a30: 08 94 sec
+ 1a32: e1 08 sbc r14, r1
+ 1a34: f1 08 sbc r15, r1
+ 1a36: 01 09 sbc r16, r1
+ 1a38: 11 09 sbc r17, r1
+ 1a3a: dd 20 and r13, r13
+ 1a3c: 11 f4 brne .+4 ; 0x1a42 <_Z4tonehjm+0x290>
+ 1a3e: 84 e0 ldi r24, 0x04 ; 4
+ 1a40: 01 c0 rjmp .+2 ; 0x1a44 <_Z4tonehjm+0x292>
+ 1a42: 86 e0 ldi r24, 0x06 ; 6
+ 1a44: af ef ldi r26, 0xFF ; 255
+ 1a46: ea 16 cp r14, r26
+ 1a48: f1 04 cpc r15, r1
+ 1a4a: 01 05 cpc r16, r1
+ 1a4c: 11 05 cpc r17, r1
+ 1a4e: a1 f0 breq .+40 ; 0x1a78 <_Z4tonehjm+0x2c6>
+ 1a50: 98 f0 brcs .+38 ; 0x1a78 <_Z4tonehjm+0x2c6>
+ 1a52: 83 01 movw r16, r6
+ 1a54: 72 01 movw r14, r4
+ 1a56: 9a e0 ldi r25, 0x0A ; 10
+ 1a58: 16 95 lsr r17
+ 1a5a: 07 95 ror r16
+ 1a5c: f7 94 ror r15
+ 1a5e: e7 94 ror r14
+ 1a60: 9a 95 dec r25
+ 1a62: d1 f7 brne .-12 ; 0x1a58 <_Z4tonehjm+0x2a6>
+ 1a64: 08 94 sec
+ 1a66: e1 08 sbc r14, r1
+ 1a68: f1 08 sbc r15, r1
+ 1a6a: 01 09 sbc r16, r1
+ 1a6c: 11 09 sbc r17, r1
+ 1a6e: dd 20 and r13, r13
+ 1a70: 31 f0 breq .+12 ; 0x1a7e <_Z4tonehjm+0x2cc>
+ 1a72: 87 e0 ldi r24, 0x07 ; 7
+ 1a74: 0a c0 rjmp .+20 ; 0x1a8a <_Z4tonehjm+0x2d8>
+ 1a76: 81 e0 ldi r24, 0x01 ; 1
+ 1a78: dd 20 and r13, r13
+ 1a7a: 11 f0 breq .+4 ; 0x1a80 <_Z4tonehjm+0x2ce>
+ 1a7c: 06 c0 rjmp .+12 ; 0x1a8a <_Z4tonehjm+0x2d8>
+ 1a7e: 85 e0 ldi r24, 0x05 ; 5
+ 1a80: 85 bd out 0x25, r24 ; 37
+ 1a82: 3c c0 rjmp .+120 ; 0x1afc <_Z4tonehjm+0x34a>
+ 1a84: 82 e0 ldi r24, 0x02 ; 2
+ 1a86: 01 c0 rjmp .+2 ; 0x1a8a <_Z4tonehjm+0x2d8>
+ 1a88: 84 e0 ldi r24, 0x04 ; 4
+ 1a8a: 80 93 b1 00 sts 0x00B1, r24
+ 1a8e: 36 c0 rjmp .+108 ; 0x1afc <_Z4tonehjm+0x34a>
+ 1a90: 41 01 movw r8, r2
+ 1a92: aa 24 eor r10, r10
+ 1a94: bb 24 eor r11, r11
+ 1a96: 60 e0 ldi r22, 0x00 ; 0
+ 1a98: 79 e0 ldi r23, 0x09 ; 9
+ 1a9a: 8d e3 ldi r24, 0x3D ; 61
+ 1a9c: 90 e0 ldi r25, 0x00 ; 0
+ 1a9e: a5 01 movw r20, r10
+ 1aa0: 94 01 movw r18, r8
+ 1aa2: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1aa6: 79 01 movw r14, r18
+ 1aa8: 8a 01 movw r16, r20
+ 1aaa: 08 94 sec
+ 1aac: e1 08 sbc r14, r1
+ 1aae: f1 08 sbc r15, r1
+ 1ab0: 01 09 sbc r16, r1
+ 1ab2: 11 09 sbc r17, r1
+ 1ab4: b0 e0 ldi r27, 0x00 ; 0
+ 1ab6: eb 16 cp r14, r27
+ 1ab8: b0 e0 ldi r27, 0x00 ; 0
+ 1aba: fb 06 cpc r15, r27
+ 1abc: b1 e0 ldi r27, 0x01 ; 1
+ 1abe: 0b 07 cpc r16, r27
+ 1ac0: b0 e0 ldi r27, 0x00 ; 0
+ 1ac2: 1b 07 cpc r17, r27
+ 1ac4: 88 f0 brcs .+34 ; 0x1ae8 <_Z4tonehjm+0x336>
+ 1ac6: 64 e2 ldi r22, 0x24 ; 36
+ 1ac8: 74 ef ldi r23, 0xF4 ; 244
+ 1aca: 80 e0 ldi r24, 0x00 ; 0
+ 1acc: 90 e0 ldi r25, 0x00 ; 0
+ 1ace: a5 01 movw r20, r10
+ 1ad0: 94 01 movw r18, r8
+ 1ad2: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1ad6: 79 01 movw r14, r18
+ 1ad8: 8a 01 movw r16, r20
+ 1ada: 08 94 sec
+ 1adc: e1 08 sbc r14, r1
+ 1ade: f1 08 sbc r15, r1
+ 1ae0: 01 09 sbc r16, r1
+ 1ae2: 11 09 sbc r17, r1
+ 1ae4: 93 e0 ldi r25, 0x03 ; 3
+ 1ae6: 01 c0 rjmp .+2 ; 0x1aea <_Z4tonehjm+0x338>
+ 1ae8: 91 e0 ldi r25, 0x01 ; 1
+ 1aea: ed 2d mov r30, r13
+ 1aec: e1 30 cpi r30, 0x01 ; 1
+ 1aee: 31 f4 brne .+12 ; 0x1afc <_Z4tonehjm+0x34a>
+ 1af0: 80 91 81 00 lds r24, 0x0081
+ 1af4: 88 7f andi r24, 0xF8 ; 248
+ 1af6: 89 2b or r24, r25
+ 1af8: 80 93 81 00 sts 0x0081, r24
+ 1afc: 89 81 ldd r24, Y+1 ; 0x01
+ 1afe: 9a 81 ldd r25, Y+2 ; 0x02
+ 1b00: ab 81 ldd r26, Y+3 ; 0x03
+ 1b02: bc 81 ldd r27, Y+4 ; 0x04
+ 1b04: 00 97 sbiw r24, 0x00 ; 0
+ 1b06: a1 05 cpc r26, r1
+ 1b08: b1 05 cpc r27, r1
+ 1b0a: 91 f0 breq .+36 ; 0x1b30 <_Z4tonehjm+0x37e>
+ 1b0c: b1 01 movw r22, r2
+ 1b0e: 66 0f add r22, r22
+ 1b10: 77 1f adc r23, r23
+ 1b12: 80 e0 ldi r24, 0x00 ; 0
+ 1b14: 90 e0 ldi r25, 0x00 ; 0
+ 1b16: 29 81 ldd r18, Y+1 ; 0x01
+ 1b18: 3a 81 ldd r19, Y+2 ; 0x02
+ 1b1a: 4b 81 ldd r20, Y+3 ; 0x03
+ 1b1c: 5c 81 ldd r21, Y+4 ; 0x04
+ 1b1e: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 1b22: 28 ee ldi r18, 0xE8 ; 232
+ 1b24: 33 e0 ldi r19, 0x03 ; 3
+ 1b26: 40 e0 ldi r20, 0x00 ; 0
+ 1b28: 50 e0 ldi r21, 0x00 ; 0
+ 1b2a: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 1b2e: 03 c0 rjmp .+6 ; 0x1b36 <_Z4tonehjm+0x384>
+ 1b30: 2f ef ldi r18, 0xFF ; 255
+ 1b32: 3f ef ldi r19, 0xFF ; 255
+ 1b34: a9 01 movw r20, r18
+ 1b36: 9d 2d mov r25, r13
+ 1b38: 91 30 cpi r25, 0x01 ; 1
+ 1b3a: 99 f0 breq .+38 ; 0x1b62 <_Z4tonehjm+0x3b0>
+ 1b3c: 92 30 cpi r25, 0x02 ; 2
+ 1b3e: 19 f1 breq .+70 ; 0x1b86 <_Z4tonehjm+0x3d4>
+ 1b40: dd 20 and r13, r13
+ 1b42: 81 f5 brne .+96 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 1b44: e7 bc out 0x27, r14 ; 39
+ 1b46: 20 93 87 03 sts 0x0387, r18
+ 1b4a: 30 93 88 03 sts 0x0388, r19
+ 1b4e: 40 93 89 03 sts 0x0389, r20
+ 1b52: 50 93 8a 03 sts 0x038A, r21
+ 1b56: 80 91 6e 00 lds r24, 0x006E
+ 1b5a: 82 60 ori r24, 0x02 ; 2
+ 1b5c: 80 93 6e 00 sts 0x006E, r24
+ 1b60: 21 c0 rjmp .+66 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 1b62: f0 92 89 00 sts 0x0089, r15
+ 1b66: e0 92 88 00 sts 0x0088, r14
+ 1b6a: 20 93 8e 03 sts 0x038E, r18
+ 1b6e: 30 93 8f 03 sts 0x038F, r19
+ 1b72: 40 93 90 03 sts 0x0390, r20
+ 1b76: 50 93 91 03 sts 0x0391, r21
+ 1b7a: 80 91 6f 00 lds r24, 0x006F
+ 1b7e: 82 60 ori r24, 0x02 ; 2
+ 1b80: 80 93 6f 00 sts 0x006F, r24
+ 1b84: 0f c0 rjmp .+30 ; 0x1ba4 <_Z4tonehjm+0x3f2>
+ 1b86: e0 92 b3 00 sts 0x00B3, r14
+ 1b8a: 20 93 95 03 sts 0x0395, r18
+ 1b8e: 30 93 96 03 sts 0x0396, r19
+ 1b92: 40 93 97 03 sts 0x0397, r20
+ 1b96: 50 93 98 03 sts 0x0398, r21
+ 1b9a: 80 91 70 00 lds r24, 0x0070
+ 1b9e: 82 60 ori r24, 0x02 ; 2
+ 1ba0: 80 93 70 00 sts 0x0070, r24
+ 1ba4: 0f 90 pop r0
+ 1ba6: 0f 90 pop r0
+ 1ba8: 0f 90 pop r0
+ 1baa: 0f 90 pop r0
+ 1bac: cf 91 pop r28
+ 1bae: df 91 pop r29
+ 1bb0: 1f 91 pop r17
+ 1bb2: 0f 91 pop r16
+ 1bb4: ff 90 pop r15
+ 1bb6: ef 90 pop r14
+ 1bb8: df 90 pop r13
+ 1bba: bf 90 pop r11
+ 1bbc: af 90 pop r10
+ 1bbe: 9f 90 pop r9
+ 1bc0: 8f 90 pop r8
+ 1bc2: 7f 90 pop r7
+ 1bc4: 6f 90 pop r6
+ 1bc6: 5f 90 pop r5
+ 1bc8: 4f 90 pop r4
+ 1bca: 3f 90 pop r3
+ 1bcc: 2f 90 pop r2
+ 1bce: 08 95 ret
+
+00001bd0 <_Z12disableTimerh>:
+ 1bd0: 81 30 cpi r24, 0x01 ; 1
+ 1bd2: 41 f0 breq .+16 ; 0x1be4 <_Z12disableTimerh+0x14>
+ 1bd4: 81 30 cpi r24, 0x01 ; 1
+ 1bd6: 18 f0 brcs .+6 ; 0x1bde <_Z12disableTimerh+0xe>
+ 1bd8: 82 30 cpi r24, 0x02 ; 2
+ 1bda: d1 f4 brne .+52 ; 0x1c10 <_Z12disableTimerh+0x40>
+ 1bdc: 09 c0 rjmp .+18 ; 0x1bf0 <_Z12disableTimerh+0x20>
+ 1bde: 10 92 6e 00 sts 0x006E, r1
+ 1be2: 08 95 ret
+ 1be4: 80 91 6f 00 lds r24, 0x006F
+ 1be8: 8d 7f andi r24, 0xFD ; 253
+ 1bea: 80 93 6f 00 sts 0x006F, r24
+ 1bee: 08 95 ret
+ 1bf0: 80 91 70 00 lds r24, 0x0070
+ 1bf4: 8d 7f andi r24, 0xFD ; 253
+ 1bf6: 80 93 70 00 sts 0x0070, r24
+ 1bfa: 81 e0 ldi r24, 0x01 ; 1
+ 1bfc: 80 93 b0 00 sts 0x00B0, r24
+ 1c00: 80 91 b1 00 lds r24, 0x00B1
+ 1c04: 88 7f andi r24, 0xF8 ; 248
+ 1c06: 84 60 ori r24, 0x04 ; 4
+ 1c08: 80 93 b1 00 sts 0x00B1, r24
+ 1c0c: 10 92 b3 00 sts 0x00B3, r1
+ 1c10: 08 95 ret
+
+00001c12 <_Z6noToneh>:
+ 1c12: 1f 93 push r17
+ 1c14: 18 2f mov r17, r24
+ 1c16: 80 91 ab 01 lds r24, 0x01AB
+ 1c1a: 81 17 cp r24, r17
+ 1c1c: 39 f4 brne .+14 ; 0x1c2c <_Z6noToneh+0x1a>
+ 1c1e: e8 e6 ldi r30, 0x68 ; 104
+ 1c20: f0 e0 ldi r31, 0x00 ; 0
+ 1c22: 84 91 lpm r24, Z+
+ 1c24: 9f ef ldi r25, 0xFF ; 255
+ 1c26: 90 93 ab 01 sts 0x01AB, r25
+ 1c2a: 01 c0 rjmp .+2 ; 0x1c2e <_Z6noToneh+0x1c>
+ 1c2c: 8f ef ldi r24, 0xFF ; 255
+ 1c2e: 0e 94 e8 0d call 0x1bd0 ; 0x1bd0 <_Z12disableTimerh>
+ 1c32: 81 2f mov r24, r17
+ 1c34: 60 e0 ldi r22, 0x00 ; 0
+ 1c36: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 1c3a: 1f 91 pop r17
+ 1c3c: 08 95 ret
+
+00001c3e <__vector_7>:
+ 1c3e: 1f 92 push r1
+ 1c40: 0f 92 push r0
+ 1c42: 0f b6 in r0, 0x3f ; 63
+ 1c44: 0f 92 push r0
+ 1c46: 11 24 eor r1, r1
+ 1c48: 2f 93 push r18
+ 1c4a: 3f 93 push r19
+ 1c4c: 4f 93 push r20
+ 1c4e: 5f 93 push r21
+ 1c50: 6f 93 push r22
+ 1c52: 7f 93 push r23
+ 1c54: 8f 93 push r24
+ 1c56: 9f 93 push r25
+ 1c58: af 93 push r26
+ 1c5a: bf 93 push r27
+ 1c5c: ef 93 push r30
+ 1c5e: ff 93 push r31
+ 1c60: 80 91 95 03 lds r24, 0x0395
+ 1c64: 90 91 96 03 lds r25, 0x0396
+ 1c68: a0 91 97 03 lds r26, 0x0397
+ 1c6c: b0 91 98 03 lds r27, 0x0398
+ 1c70: 00 97 sbiw r24, 0x00 ; 0
+ 1c72: a1 05 cpc r26, r1
+ 1c74: b1 05 cpc r27, r1
+ 1c76: 51 f1 breq .+84 ; 0x1ccc <__vector_7+0x8e>
+ 1c78: e0 91 99 03 lds r30, 0x0399
+ 1c7c: f0 91 9a 03 lds r31, 0x039A
+ 1c80: 80 81 ld r24, Z
+ 1c82: 90 91 9b 03 lds r25, 0x039B
+ 1c86: 89 27 eor r24, r25
+ 1c88: 80 83 st Z, r24
+ 1c8a: 80 91 95 03 lds r24, 0x0395
+ 1c8e: 90 91 96 03 lds r25, 0x0396
+ 1c92: a0 91 97 03 lds r26, 0x0397
+ 1c96: b0 91 98 03 lds r27, 0x0398
+ 1c9a: 18 16 cp r1, r24
+ 1c9c: 19 06 cpc r1, r25
+ 1c9e: 1a 06 cpc r1, r26
+ 1ca0: 1b 06 cpc r1, r27
+ 1ca2: c4 f4 brge .+48 ; 0x1cd4 <__vector_7+0x96>
+ 1ca4: 80 91 95 03 lds r24, 0x0395
+ 1ca8: 90 91 96 03 lds r25, 0x0396
+ 1cac: a0 91 97 03 lds r26, 0x0397
+ 1cb0: b0 91 98 03 lds r27, 0x0398
+ 1cb4: 01 97 sbiw r24, 0x01 ; 1
+ 1cb6: a1 09 sbc r26, r1
+ 1cb8: b1 09 sbc r27, r1
+ 1cba: 80 93 95 03 sts 0x0395, r24
+ 1cbe: 90 93 96 03 sts 0x0396, r25
+ 1cc2: a0 93 97 03 sts 0x0397, r26
+ 1cc6: b0 93 98 03 sts 0x0398, r27
+ 1cca: 04 c0 rjmp .+8 ; 0x1cd4 <__vector_7+0x96>
+ 1ccc: 80 91 ab 01 lds r24, 0x01AB
+ 1cd0: 0e 94 09 0e call 0x1c12 ; 0x1c12 <_Z6noToneh>
+ 1cd4: ff 91 pop r31
+ 1cd6: ef 91 pop r30
+ 1cd8: bf 91 pop r27
+ 1cda: af 91 pop r26
+ 1cdc: 9f 91 pop r25
+ 1cde: 8f 91 pop r24
+ 1ce0: 7f 91 pop r23
+ 1ce2: 6f 91 pop r22
+ 1ce4: 5f 91 pop r21
+ 1ce6: 4f 91 pop r20
+ 1ce8: 3f 91 pop r19
+ 1cea: 2f 91 pop r18
+ 1cec: 0f 90 pop r0
+ 1cee: 0f be out 0x3f, r0 ; 63
+ 1cf0: 0f 90 pop r0
+ 1cf2: 1f 90 pop r1
+ 1cf4: 18 95 reti
+
+00001cf6 <attachInterrupt>:
+ 1cf6: 82 30 cpi r24, 0x02 ; 2
+ 1cf8: e8 f4 brcc .+58 ; 0x1d34 <attachInterrupt+0x3e>
+ 1cfa: e8 2f mov r30, r24
+ 1cfc: f0 e0 ldi r31, 0x00 ; 0
+ 1cfe: ee 0f add r30, r30
+ 1d00: ff 1f adc r31, r31
+ 1d02: e4 56 subi r30, 0x64 ; 100
+ 1d04: fc 4f sbci r31, 0xFC ; 252
+ 1d06: 71 83 std Z+1, r23 ; 0x01
+ 1d08: 60 83 st Z, r22
+ 1d0a: 81 30 cpi r24, 0x01 ; 1
+ 1d0c: 41 f0 breq .+16 ; 0x1d1e <attachInterrupt+0x28>
+ 1d0e: 80 91 69 00 lds r24, 0x0069
+ 1d12: 8c 7f andi r24, 0xFC ; 252
+ 1d14: 84 2b or r24, r20
+ 1d16: 80 93 69 00 sts 0x0069, r24
+ 1d1a: e8 9a sbi 0x1d, 0 ; 29
+ 1d1c: 08 95 ret
+ 1d1e: 80 91 69 00 lds r24, 0x0069
+ 1d22: 44 0f add r20, r20
+ 1d24: 55 1f adc r21, r21
+ 1d26: 44 0f add r20, r20
+ 1d28: 55 1f adc r21, r21
+ 1d2a: 83 7f andi r24, 0xF3 ; 243
+ 1d2c: 84 2b or r24, r20
+ 1d2e: 80 93 69 00 sts 0x0069, r24
+ 1d32: e9 9a sbi 0x1d, 1 ; 29
+ 1d34: 08 95 ret
+
+00001d36 <detachInterrupt>:
+ 1d36: 82 30 cpi r24, 0x02 ; 2
+ 1d38: 68 f4 brcc .+26 ; 0x1d54 <detachInterrupt+0x1e>
+ 1d3a: 81 30 cpi r24, 0x01 ; 1
+ 1d3c: 11 f0 breq .+4 ; 0x1d42 <detachInterrupt+0xc>
+ 1d3e: e8 98 cbi 0x1d, 0 ; 29
+ 1d40: 01 c0 rjmp .+2 ; 0x1d44 <detachInterrupt+0xe>
+ 1d42: e9 98 cbi 0x1d, 1 ; 29
+ 1d44: e8 2f mov r30, r24
+ 1d46: f0 e0 ldi r31, 0x00 ; 0
+ 1d48: ee 0f add r30, r30
+ 1d4a: ff 1f adc r31, r31
+ 1d4c: e4 56 subi r30, 0x64 ; 100
+ 1d4e: fc 4f sbci r31, 0xFC ; 252
+ 1d50: 11 82 std Z+1, r1 ; 0x01
+ 1d52: 10 82 st Z, r1
+ 1d54: 08 95 ret
+
+00001d56 <__vector_1>:
+ 1d56: 1f 92 push r1
+ 1d58: 0f 92 push r0
+ 1d5a: 0f b6 in r0, 0x3f ; 63
+ 1d5c: 0f 92 push r0
+ 1d5e: 11 24 eor r1, r1
+ 1d60: 2f 93 push r18
+ 1d62: 3f 93 push r19
+ 1d64: 4f 93 push r20
+ 1d66: 5f 93 push r21
+ 1d68: 6f 93 push r22
+ 1d6a: 7f 93 push r23
+ 1d6c: 8f 93 push r24
+ 1d6e: 9f 93 push r25
+ 1d70: af 93 push r26
+ 1d72: bf 93 push r27
+ 1d74: ef 93 push r30
+ 1d76: ff 93 push r31
+ 1d78: 80 91 9c 03 lds r24, 0x039C
+ 1d7c: 90 91 9d 03 lds r25, 0x039D
+ 1d80: 00 97 sbiw r24, 0x00 ; 0
+ 1d82: 29 f0 breq .+10 ; 0x1d8e <__vector_1+0x38>
+ 1d84: e0 91 9c 03 lds r30, 0x039C
+ 1d88: f0 91 9d 03 lds r31, 0x039D
+ 1d8c: 09 95 icall
+ 1d8e: ff 91 pop r31
+ 1d90: ef 91 pop r30
+ 1d92: bf 91 pop r27
+ 1d94: af 91 pop r26
+ 1d96: 9f 91 pop r25
+ 1d98: 8f 91 pop r24
+ 1d9a: 7f 91 pop r23
+ 1d9c: 6f 91 pop r22
+ 1d9e: 5f 91 pop r21
+ 1da0: 4f 91 pop r20
+ 1da2: 3f 91 pop r19
+ 1da4: 2f 91 pop r18
+ 1da6: 0f 90 pop r0
+ 1da8: 0f be out 0x3f, r0 ; 63
+ 1daa: 0f 90 pop r0
+ 1dac: 1f 90 pop r1
+ 1dae: 18 95 reti
+
+00001db0 <__vector_2>:
+ 1db0: 1f 92 push r1
+ 1db2: 0f 92 push r0
+ 1db4: 0f b6 in r0, 0x3f ; 63
+ 1db6: 0f 92 push r0
+ 1db8: 11 24 eor r1, r1
+ 1dba: 2f 93 push r18
+ 1dbc: 3f 93 push r19
+ 1dbe: 4f 93 push r20
+ 1dc0: 5f 93 push r21
+ 1dc2: 6f 93 push r22
+ 1dc4: 7f 93 push r23
+ 1dc6: 8f 93 push r24
+ 1dc8: 9f 93 push r25
+ 1dca: af 93 push r26
+ 1dcc: bf 93 push r27
+ 1dce: ef 93 push r30
+ 1dd0: ff 93 push r31
+ 1dd2: 80 91 9e 03 lds r24, 0x039E
+ 1dd6: 90 91 9f 03 lds r25, 0x039F
+ 1dda: 00 97 sbiw r24, 0x00 ; 0
+ 1ddc: 29 f0 breq .+10 ; 0x1de8 <__vector_2+0x38>
+ 1dde: e0 91 9e 03 lds r30, 0x039E
+ 1de2: f0 91 9f 03 lds r31, 0x039F
+ 1de6: 09 95 icall
+ 1de8: ff 91 pop r31
+ 1dea: ef 91 pop r30
+ 1dec: bf 91 pop r27
+ 1dee: af 91 pop r26
+ 1df0: 9f 91 pop r25
+ 1df2: 8f 91 pop r24
+ 1df4: 7f 91 pop r23
+ 1df6: 6f 91 pop r22
+ 1df8: 5f 91 pop r21
+ 1dfa: 4f 91 pop r20
+ 1dfc: 3f 91 pop r19
+ 1dfe: 2f 91 pop r18
+ 1e00: 0f 90 pop r0
+ 1e02: 0f be out 0x3f, r0 ; 63
+ 1e04: 0f 90 pop r0
+ 1e06: 1f 90 pop r1
+ 1e08: 18 95 reti
+
+00001e0a <_Z10randomSeedj>:
+ 1e0a: 00 97 sbiw r24, 0x00 ; 0
+ 1e0c: 29 f0 breq .+10 ; 0x1e18 <_Z10randomSeedj+0xe>
+ 1e0e: bc 01 movw r22, r24
+ 1e10: 80 e0 ldi r24, 0x00 ; 0
+ 1e12: 90 e0 ldi r25, 0x00 ; 0
+ 1e14: 0e 94 39 24 call 0x4872 ; 0x4872 <srandom>
+ 1e18: 08 95 ret
+
+00001e1a <_Z6randoml>:
+ 1e1a: ef 92 push r14
+ 1e1c: ff 92 push r15
+ 1e1e: 0f 93 push r16
+ 1e20: 1f 93 push r17
+ 1e22: 7b 01 movw r14, r22
+ 1e24: 8c 01 movw r16, r24
+ 1e26: 61 15 cp r22, r1
+ 1e28: 71 05 cpc r23, r1
+ 1e2a: 81 05 cpc r24, r1
+ 1e2c: 91 05 cpc r25, r1
+ 1e2e: 49 f0 breq .+18 ; 0x1e42 <_Z6randoml+0x28>
+ 1e30: 0e 94 34 24 call 0x4868 ; 0x4868 <random>
+ 1e34: a8 01 movw r20, r16
+ 1e36: 97 01 movw r18, r14
+ 1e38: 0e 94 4e 22 call 0x449c ; 0x449c <__divmodsi4>
+ 1e3c: 9b 01 movw r18, r22
+ 1e3e: ac 01 movw r20, r24
+ 1e40: 03 c0 rjmp .+6 ; 0x1e48 <_Z6randoml+0x2e>
+ 1e42: 20 e0 ldi r18, 0x00 ; 0
+ 1e44: 30 e0 ldi r19, 0x00 ; 0
+ 1e46: a9 01 movw r20, r18
+ 1e48: b9 01 movw r22, r18
+ 1e4a: ca 01 movw r24, r20
+ 1e4c: 1f 91 pop r17
+ 1e4e: 0f 91 pop r16
+ 1e50: ff 90 pop r15
+ 1e52: ef 90 pop r14
+ 1e54: 08 95 ret
+
+00001e56 <_Z6randomll>:
+ 1e56: ef 92 push r14
+ 1e58: ff 92 push r15
+ 1e5a: 0f 93 push r16
+ 1e5c: 1f 93 push r17
+ 1e5e: 7b 01 movw r14, r22
+ 1e60: 8c 01 movw r16, r24
+ 1e62: 62 17 cp r22, r18
+ 1e64: 73 07 cpc r23, r19
+ 1e66: 84 07 cpc r24, r20
+ 1e68: 95 07 cpc r25, r21
+ 1e6a: 64 f4 brge .+24 ; 0x1e84 <_Z6randomll+0x2e>
+ 1e6c: ca 01 movw r24, r20
+ 1e6e: b9 01 movw r22, r18
+ 1e70: 6e 19 sub r22, r14
+ 1e72: 7f 09 sbc r23, r15
+ 1e74: 80 0b sbc r24, r16
+ 1e76: 91 0b sbc r25, r17
+ 1e78: 0e 94 0d 0f call 0x1e1a ; 0x1e1a <_Z6randoml>
+ 1e7c: e6 0e add r14, r22
+ 1e7e: f7 1e adc r15, r23
+ 1e80: 08 1f adc r16, r24
+ 1e82: 19 1f adc r17, r25
+ 1e84: b7 01 movw r22, r14
+ 1e86: c8 01 movw r24, r16
+ 1e88: 1f 91 pop r17
+ 1e8a: 0f 91 pop r16
+ 1e8c: ff 90 pop r15
+ 1e8e: ef 90 pop r14
+ 1e90: 08 95 ret
+
+00001e92 <_Z3maplllll>:
+ 1e92: 2f 92 push r2
+ 1e94: 3f 92 push r3
+ 1e96: 4f 92 push r4
+ 1e98: 5f 92 push r5
+ 1e9a: 6f 92 push r6
+ 1e9c: 7f 92 push r7
+ 1e9e: 8f 92 push r8
+ 1ea0: 9f 92 push r9
+ 1ea2: af 92 push r10
+ 1ea4: bf 92 push r11
+ 1ea6: cf 92 push r12
+ 1ea8: df 92 push r13
+ 1eaa: ef 92 push r14
+ 1eac: ff 92 push r15
+ 1eae: 0f 93 push r16
+ 1eb0: 1f 93 push r17
+ 1eb2: df 93 push r29
+ 1eb4: cf 93 push r28
+ 1eb6: cd b7 in r28, 0x3d ; 61
+ 1eb8: de b7 in r29, 0x3e ; 62
+ 1eba: 3b 01 movw r6, r22
+ 1ebc: 4c 01 movw r8, r24
+ 1ebe: 19 01 movw r2, r18
+ 1ec0: 2a 01 movw r4, r20
+ 1ec2: 6d 89 ldd r22, Y+21 ; 0x15
+ 1ec4: 7e 89 ldd r23, Y+22 ; 0x16
+ 1ec6: 8f 89 ldd r24, Y+23 ; 0x17
+ 1ec8: 98 8d ldd r25, Y+24 ; 0x18
+ 1eca: 6a 19 sub r22, r10
+ 1ecc: 7b 09 sbc r23, r11
+ 1ece: 8c 09 sbc r24, r12
+ 1ed0: 9d 09 sbc r25, r13
+ 1ed2: 62 1a sub r6, r18
+ 1ed4: 73 0a sbc r7, r19
+ 1ed6: 84 0a sbc r8, r20
+ 1ed8: 95 0a sbc r9, r21
+ 1eda: a4 01 movw r20, r8
+ 1edc: 93 01 movw r18, r6
+ 1ede: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 1ee2: e2 18 sub r14, r2
+ 1ee4: f3 08 sbc r15, r3
+ 1ee6: 04 09 sbc r16, r4
+ 1ee8: 15 09 sbc r17, r5
+ 1eea: a8 01 movw r20, r16
+ 1eec: 97 01 movw r18, r14
+ 1eee: 0e 94 4e 22 call 0x449c ; 0x449c <__divmodsi4>
+ 1ef2: 2a 0d add r18, r10
+ 1ef4: 3b 1d adc r19, r11
+ 1ef6: 4c 1d adc r20, r12
+ 1ef8: 5d 1d adc r21, r13
+ 1efa: b9 01 movw r22, r18
+ 1efc: ca 01 movw r24, r20
+ 1efe: cf 91 pop r28
+ 1f00: df 91 pop r29
+ 1f02: 1f 91 pop r17
+ 1f04: 0f 91 pop r16
+ 1f06: ff 90 pop r15
+ 1f08: ef 90 pop r14
+ 1f0a: df 90 pop r13
+ 1f0c: cf 90 pop r12
+ 1f0e: bf 90 pop r11
+ 1f10: af 90 pop r10
+ 1f12: 9f 90 pop r9
+ 1f14: 8f 90 pop r8
+ 1f16: 7f 90 pop r7
+ 1f18: 6f 90 pop r6
+ 1f1a: 5f 90 pop r5
+ 1f1c: 4f 90 pop r4
+ 1f1e: 3f 90 pop r3
+ 1f20: 2f 90 pop r2
+ 1f22: 08 95 ret
+
+00001f24 <_Z8makeWordj>:
+ 1f24: 08 95 ret
+
+00001f26 <_Z8makeWordhh>:
+ 1f26: 70 e0 ldi r23, 0x00 ; 0
+ 1f28: 38 2f mov r19, r24
+ 1f2a: 20 e0 ldi r18, 0x00 ; 0
+ 1f2c: 62 2b or r22, r18
+ 1f2e: 73 2b or r23, r19
+ 1f30: cb 01 movw r24, r22
+ 1f32: 08 95 ret
+
+00001f34 <_ZN6StringD1Ev>:
+ 1f34: fc 01 movw r30, r24
+ 1f36: 80 81 ld r24, Z
+ 1f38: 91 81 ldd r25, Z+1 ; 0x01
+ 1f3a: 0e 94 54 23 call 0x46a8 ; 0x46a8 <free>
+ 1f3e: 08 95 ret
+
+00001f40 <_ZN6String10invalidateEv>:
+ 1f40: cf 93 push r28
+ 1f42: df 93 push r29
+ 1f44: ec 01 movw r28, r24
+ 1f46: 88 81 ld r24, Y
+ 1f48: 99 81 ldd r25, Y+1 ; 0x01
+ 1f4a: 00 97 sbiw r24, 0x00 ; 0
+ 1f4c: 11 f0 breq .+4 ; 0x1f52 <_ZN6String10invalidateEv+0x12>
+ 1f4e: 0e 94 54 23 call 0x46a8 ; 0x46a8 <free>
+ 1f52: 19 82 std Y+1, r1 ; 0x01
+ 1f54: 18 82 st Y, r1
+ 1f56: 1d 82 std Y+5, r1 ; 0x05
+ 1f58: 1c 82 std Y+4, r1 ; 0x04
+ 1f5a: 1b 82 std Y+3, r1 ; 0x03
+ 1f5c: 1a 82 std Y+2, r1 ; 0x02
+ 1f5e: df 91 pop r29
+ 1f60: cf 91 pop r28
+ 1f62: 08 95 ret
+
+00001f64 <_ZN6String12changeBufferEj>:
+ 1f64: 0f 93 push r16
+ 1f66: 1f 93 push r17
+ 1f68: cf 93 push r28
+ 1f6a: df 93 push r29
+ 1f6c: ec 01 movw r28, r24
+ 1f6e: 8b 01 movw r16, r22
+ 1f70: 6f 5f subi r22, 0xFF ; 255
+ 1f72: 7f 4f sbci r23, 0xFF ; 255
+ 1f74: 88 81 ld r24, Y
+ 1f76: 99 81 ldd r25, Y+1 ; 0x01
+ 1f78: 0e 94 42 24 call 0x4884 ; 0x4884 <realloc>
+ 1f7c: 00 97 sbiw r24, 0x00 ; 0
+ 1f7e: 31 f0 breq .+12 ; 0x1f8c <_ZN6String12changeBufferEj+0x28>
+ 1f80: 99 83 std Y+1, r25 ; 0x01
+ 1f82: 88 83 st Y, r24
+ 1f84: 1b 83 std Y+3, r17 ; 0x03
+ 1f86: 0a 83 std Y+2, r16 ; 0x02
+ 1f88: 81 e0 ldi r24, 0x01 ; 1
+ 1f8a: 01 c0 rjmp .+2 ; 0x1f8e <_ZN6String12changeBufferEj+0x2a>
+ 1f8c: 80 e0 ldi r24, 0x00 ; 0
+ 1f8e: df 91 pop r29
+ 1f90: cf 91 pop r28
+ 1f92: 1f 91 pop r17
+ 1f94: 0f 91 pop r16
+ 1f96: 08 95 ret
+
+00001f98 <_ZN6String7reserveEj>:
+ 1f98: cf 93 push r28
+ 1f9a: df 93 push r29
+ 1f9c: ec 01 movw r28, r24
+ 1f9e: 88 81 ld r24, Y
+ 1fa0: 99 81 ldd r25, Y+1 ; 0x01
+ 1fa2: 00 97 sbiw r24, 0x00 ; 0
+ 1fa4: 29 f0 breq .+10 ; 0x1fb0 <_ZN6String7reserveEj+0x18>
+ 1fa6: 8a 81 ldd r24, Y+2 ; 0x02
+ 1fa8: 9b 81 ldd r25, Y+3 ; 0x03
+ 1faa: 86 17 cp r24, r22
+ 1fac: 97 07 cpc r25, r23
+ 1fae: 78 f4 brcc .+30 ; 0x1fce <_ZN6String7reserveEj+0x36>
+ 1fb0: ce 01 movw r24, r28
+ 1fb2: 0e 94 b2 0f call 0x1f64 ; 0x1f64 <_ZN6String12changeBufferEj>
+ 1fb6: 88 23 and r24, r24
+ 1fb8: 41 f0 breq .+16 ; 0x1fca <_ZN6String7reserveEj+0x32>
+ 1fba: 8c 81 ldd r24, Y+4 ; 0x04
+ 1fbc: 9d 81 ldd r25, Y+5 ; 0x05
+ 1fbe: 00 97 sbiw r24, 0x00 ; 0
+ 1fc0: 31 f4 brne .+12 ; 0x1fce <_ZN6String7reserveEj+0x36>
+ 1fc2: e8 81 ld r30, Y
+ 1fc4: f9 81 ldd r31, Y+1 ; 0x01
+ 1fc6: 10 82 st Z, r1
+ 1fc8: 02 c0 rjmp .+4 ; 0x1fce <_ZN6String7reserveEj+0x36>
+ 1fca: 80 e0 ldi r24, 0x00 ; 0
+ 1fcc: 01 c0 rjmp .+2 ; 0x1fd0 <_ZN6String7reserveEj+0x38>
+ 1fce: 81 e0 ldi r24, 0x01 ; 1
+ 1fd0: df 91 pop r29
+ 1fd2: cf 91 pop r28
+ 1fd4: 08 95 ret
+
+00001fd6 <_ZN6String4copyEPKcj>:
+ 1fd6: ef 92 push r14
+ 1fd8: ff 92 push r15
+ 1fda: 0f 93 push r16
+ 1fdc: 1f 93 push r17
+ 1fde: cf 93 push r28
+ 1fe0: df 93 push r29
+ 1fe2: ec 01 movw r28, r24
+ 1fe4: 7b 01 movw r14, r22
+ 1fe6: 8a 01 movw r16, r20
+ 1fe8: ba 01 movw r22, r20
+ 1fea: 0e 94 cc 0f call 0x1f98 ; 0x1f98 <_ZN6String7reserveEj>
+ 1fee: 88 23 and r24, r24
+ 1ff0: 21 f4 brne .+8 ; 0x1ffa <_ZN6String4copyEPKcj+0x24>
+ 1ff2: ce 01 movw r24, r28
+ 1ff4: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 1ff8: 07 c0 rjmp .+14 ; 0x2008 <_ZN6String4copyEPKcj+0x32>
+ 1ffa: 1d 83 std Y+5, r17 ; 0x05
+ 1ffc: 0c 83 std Y+4, r16 ; 0x04
+ 1ffe: 88 81 ld r24, Y
+ 2000: 99 81 ldd r25, Y+1 ; 0x01
+ 2002: b7 01 movw r22, r14
+ 2004: 0e 94 88 25 call 0x4b10 ; 0x4b10 <strcpy>
+ 2008: ce 01 movw r24, r28
+ 200a: df 91 pop r29
+ 200c: cf 91 pop r28
+ 200e: 1f 91 pop r17
+ 2010: 0f 91 pop r16
+ 2012: ff 90 pop r15
+ 2014: ef 90 pop r14
+ 2016: 08 95 ret
+
+00002018 <_ZN6StringC1EPKc>:
+ 2018: cf 93 push r28
+ 201a: df 93 push r29
+ 201c: fc 01 movw r30, r24
+ 201e: 11 82 std Z+1, r1 ; 0x01
+ 2020: 10 82 st Z, r1
+ 2022: 13 82 std Z+3, r1 ; 0x03
+ 2024: 12 82 std Z+2, r1 ; 0x02
+ 2026: 15 82 std Z+5, r1 ; 0x05
+ 2028: 14 82 std Z+4, r1 ; 0x04
+ 202a: 16 82 std Z+6, r1 ; 0x06
+ 202c: 61 15 cp r22, r1
+ 202e: 71 05 cpc r23, r1
+ 2030: 59 f0 breq .+22 ; 0x2048 <_ZN6StringC1EPKc+0x30>
+ 2032: eb 01 movw r28, r22
+ 2034: 09 90 ld r0, Y+
+ 2036: 00 20 and r0, r0
+ 2038: e9 f7 brne .-6 ; 0x2034 <_ZN6StringC1EPKc+0x1c>
+ 203a: ae 01 movw r20, r28
+ 203c: 41 50 subi r20, 0x01 ; 1
+ 203e: 50 40 sbci r21, 0x00 ; 0
+ 2040: 46 1b sub r20, r22
+ 2042: 57 0b sbc r21, r23
+ 2044: 0e 94 eb 0f call 0x1fd6 ; 0x1fd6 <_ZN6String4copyEPKcj>
+ 2048: df 91 pop r29
+ 204a: cf 91 pop r28
+ 204c: 08 95 ret
+
+0000204e <_ZN6StringaSERKS_>:
+ 204e: ef 92 push r14
+ 2050: ff 92 push r15
+ 2052: cf 93 push r28
+ 2054: df 93 push r29
+ 2056: ec 01 movw r28, r24
+ 2058: fb 01 movw r30, r22
+ 205a: 86 17 cp r24, r22
+ 205c: 97 07 cpc r25, r23
+ 205e: 61 f0 breq .+24 ; 0x2078 <_ZN6StringaSERKS_+0x2a>
+ 2060: 60 81 ld r22, Z
+ 2062: 71 81 ldd r23, Z+1 ; 0x01
+ 2064: 61 15 cp r22, r1
+ 2066: 71 05 cpc r23, r1
+ 2068: 29 f0 breq .+10 ; 0x2074 <_ZN6StringaSERKS_+0x26>
+ 206a: 44 81 ldd r20, Z+4 ; 0x04
+ 206c: 55 81 ldd r21, Z+5 ; 0x05
+ 206e: 0e 94 eb 0f call 0x1fd6 ; 0x1fd6 <_ZN6String4copyEPKcj>
+ 2072: 02 c0 rjmp .+4 ; 0x2078 <_ZN6StringaSERKS_+0x2a>
+ 2074: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2078: ce 01 movw r24, r28
+ 207a: df 91 pop r29
+ 207c: cf 91 pop r28
+ 207e: ff 90 pop r15
+ 2080: ef 90 pop r14
+ 2082: 08 95 ret
+
+00002084 <_ZN6StringC1ERKS_>:
+ 2084: fc 01 movw r30, r24
+ 2086: 11 82 std Z+1, r1 ; 0x01
+ 2088: 10 82 st Z, r1
+ 208a: 13 82 std Z+3, r1 ; 0x03
+ 208c: 12 82 std Z+2, r1 ; 0x02
+ 208e: 15 82 std Z+5, r1 ; 0x05
+ 2090: 14 82 std Z+4, r1 ; 0x04
+ 2092: 16 82 std Z+6, r1 ; 0x06
+ 2094: 0e 94 27 10 call 0x204e ; 0x204e <_ZN6StringaSERKS_>
+ 2098: 08 95 ret
+
+0000209a <_ZN6StringaSEPKc>:
+ 209a: 0f 93 push r16
+ 209c: 1f 93 push r17
+ 209e: 8c 01 movw r16, r24
+ 20a0: 61 15 cp r22, r1
+ 20a2: 71 05 cpc r23, r1
+ 20a4: 61 f0 breq .+24 ; 0x20be <_ZN6StringaSEPKc+0x24>
+ 20a6: db 01 movw r26, r22
+ 20a8: 0d 90 ld r0, X+
+ 20aa: 00 20 and r0, r0
+ 20ac: e9 f7 brne .-6 ; 0x20a8 <_ZN6StringaSEPKc+0xe>
+ 20ae: ad 01 movw r20, r26
+ 20b0: 41 50 subi r20, 0x01 ; 1
+ 20b2: 50 40 sbci r21, 0x00 ; 0
+ 20b4: 46 1b sub r20, r22
+ 20b6: 57 0b sbc r21, r23
+ 20b8: 0e 94 eb 0f call 0x1fd6 ; 0x1fd6 <_ZN6String4copyEPKcj>
+ 20bc: 02 c0 rjmp .+4 ; 0x20c2 <_ZN6StringaSEPKc+0x28>
+ 20be: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 20c2: c8 01 movw r24, r16
+ 20c4: 1f 91 pop r17
+ 20c6: 0f 91 pop r16
+ 20c8: 08 95 ret
+
+000020ca <_ZN6StringC1Emh>:
+ 20ca: ef 92 push r14
+ 20cc: ff 92 push r15
+ 20ce: 0f 93 push r16
+ 20d0: 1f 93 push r17
+ 20d2: df 93 push r29
+ 20d4: cf 93 push r28
+ 20d6: cd b7 in r28, 0x3d ; 61
+ 20d8: de b7 in r29, 0x3e ; 62
+ 20da: a1 97 sbiw r28, 0x21 ; 33
+ 20dc: 0f b6 in r0, 0x3f ; 63
+ 20de: f8 94 cli
+ 20e0: de bf out 0x3e, r29 ; 62
+ 20e2: 0f be out 0x3f, r0 ; 63
+ 20e4: cd bf out 0x3d, r28 ; 61
+ 20e6: 7c 01 movw r14, r24
+ 20e8: cb 01 movw r24, r22
+ 20ea: ba 01 movw r22, r20
+ 20ec: f7 01 movw r30, r14
+ 20ee: 11 82 std Z+1, r1 ; 0x01
+ 20f0: 10 82 st Z, r1
+ 20f2: 13 82 std Z+3, r1 ; 0x03
+ 20f4: 12 82 std Z+2, r1 ; 0x02
+ 20f6: 15 82 std Z+5, r1 ; 0x05
+ 20f8: 14 82 std Z+4, r1 ; 0x04
+ 20fa: 16 82 std Z+6, r1 ; 0x06
+ 20fc: 8e 01 movw r16, r28
+ 20fe: 0f 5f subi r16, 0xFF ; 255
+ 2100: 1f 4f sbci r17, 0xFF ; 255
+ 2102: a8 01 movw r20, r16
+ 2104: 30 e0 ldi r19, 0x00 ; 0
+ 2106: 0e 94 3b 26 call 0x4c76 ; 0x4c76 <ultoa>
+ 210a: c7 01 movw r24, r14
+ 210c: b8 01 movw r22, r16
+ 210e: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 2112: a1 96 adiw r28, 0x21 ; 33
+ 2114: 0f b6 in r0, 0x3f ; 63
+ 2116: f8 94 cli
+ 2118: de bf out 0x3e, r29 ; 62
+ 211a: 0f be out 0x3f, r0 ; 63
+ 211c: cd bf out 0x3d, r28 ; 61
+ 211e: cf 91 pop r28
+ 2120: df 91 pop r29
+ 2122: 1f 91 pop r17
+ 2124: 0f 91 pop r16
+ 2126: ff 90 pop r15
+ 2128: ef 90 pop r14
+ 212a: 08 95 ret
+
+0000212c <_ZN6StringC1Elh>:
+ 212c: ef 92 push r14
+ 212e: ff 92 push r15
+ 2130: 0f 93 push r16
+ 2132: 1f 93 push r17
+ 2134: df 93 push r29
+ 2136: cf 93 push r28
+ 2138: cd b7 in r28, 0x3d ; 61
+ 213a: de b7 in r29, 0x3e ; 62
+ 213c: a2 97 sbiw r28, 0x22 ; 34
+ 213e: 0f b6 in r0, 0x3f ; 63
+ 2140: f8 94 cli
+ 2142: de bf out 0x3e, r29 ; 62
+ 2144: 0f be out 0x3f, r0 ; 63
+ 2146: cd bf out 0x3d, r28 ; 61
+ 2148: 7c 01 movw r14, r24
+ 214a: cb 01 movw r24, r22
+ 214c: ba 01 movw r22, r20
+ 214e: f7 01 movw r30, r14
+ 2150: 11 82 std Z+1, r1 ; 0x01
+ 2152: 10 82 st Z, r1
+ 2154: 13 82 std Z+3, r1 ; 0x03
+ 2156: 12 82 std Z+2, r1 ; 0x02
+ 2158: 15 82 std Z+5, r1 ; 0x05
+ 215a: 14 82 std Z+4, r1 ; 0x04
+ 215c: 16 82 std Z+6, r1 ; 0x06
+ 215e: 8e 01 movw r16, r28
+ 2160: 0f 5f subi r16, 0xFF ; 255
+ 2162: 1f 4f sbci r17, 0xFF ; 255
+ 2164: a8 01 movw r20, r16
+ 2166: 30 e0 ldi r19, 0x00 ; 0
+ 2168: 0e 94 f2 25 call 0x4be4 ; 0x4be4 <ltoa>
+ 216c: c7 01 movw r24, r14
+ 216e: b8 01 movw r22, r16
+ 2170: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 2174: a2 96 adiw r28, 0x22 ; 34
+ 2176: 0f b6 in r0, 0x3f ; 63
+ 2178: f8 94 cli
+ 217a: de bf out 0x3e, r29 ; 62
+ 217c: 0f be out 0x3f, r0 ; 63
+ 217e: cd bf out 0x3d, r28 ; 61
+ 2180: cf 91 pop r28
+ 2182: df 91 pop r29
+ 2184: 1f 91 pop r17
+ 2186: 0f 91 pop r16
+ 2188: ff 90 pop r15
+ 218a: ef 90 pop r14
+ 218c: 08 95 ret
+
+0000218e <_ZN6StringC1Ejh>:
+ 218e: ef 92 push r14
+ 2190: ff 92 push r15
+ 2192: 0f 93 push r16
+ 2194: 1f 93 push r17
+ 2196: df 93 push r29
+ 2198: cf 93 push r28
+ 219a: cd b7 in r28, 0x3d ; 61
+ 219c: de b7 in r29, 0x3e ; 62
+ 219e: 61 97 sbiw r28, 0x11 ; 17
+ 21a0: 0f b6 in r0, 0x3f ; 63
+ 21a2: f8 94 cli
+ 21a4: de bf out 0x3e, r29 ; 62
+ 21a6: 0f be out 0x3f, r0 ; 63
+ 21a8: cd bf out 0x3d, r28 ; 61
+ 21aa: 7c 01 movw r14, r24
+ 21ac: cb 01 movw r24, r22
+ 21ae: f7 01 movw r30, r14
+ 21b0: 11 82 std Z+1, r1 ; 0x01
+ 21b2: 10 82 st Z, r1
+ 21b4: 13 82 std Z+3, r1 ; 0x03
+ 21b6: 12 82 std Z+2, r1 ; 0x02
+ 21b8: 15 82 std Z+5, r1 ; 0x05
+ 21ba: 14 82 std Z+4, r1 ; 0x04
+ 21bc: 16 82 std Z+6, r1 ; 0x06
+ 21be: 8e 01 movw r16, r28
+ 21c0: 0f 5f subi r16, 0xFF ; 255
+ 21c2: 1f 4f sbci r17, 0xFF ; 255
+ 21c4: b8 01 movw r22, r16
+ 21c6: 50 e0 ldi r21, 0x00 ; 0
+ 21c8: 0e 94 60 26 call 0x4cc0 ; 0x4cc0 <utoa>
+ 21cc: c7 01 movw r24, r14
+ 21ce: b8 01 movw r22, r16
+ 21d0: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 21d4: 61 96 adiw r28, 0x11 ; 17
+ 21d6: 0f b6 in r0, 0x3f ; 63
+ 21d8: f8 94 cli
+ 21da: de bf out 0x3e, r29 ; 62
+ 21dc: 0f be out 0x3f, r0 ; 63
+ 21de: cd bf out 0x3d, r28 ; 61
+ 21e0: cf 91 pop r28
+ 21e2: df 91 pop r29
+ 21e4: 1f 91 pop r17
+ 21e6: 0f 91 pop r16
+ 21e8: ff 90 pop r15
+ 21ea: ef 90 pop r14
+ 21ec: 08 95 ret
+
+000021ee <_ZN6StringC1Eih>:
+ 21ee: ef 92 push r14
+ 21f0: ff 92 push r15
+ 21f2: 0f 93 push r16
+ 21f4: 1f 93 push r17
+ 21f6: df 93 push r29
+ 21f8: cf 93 push r28
+ 21fa: cd b7 in r28, 0x3d ; 61
+ 21fc: de b7 in r29, 0x3e ; 62
+ 21fe: 62 97 sbiw r28, 0x12 ; 18
+ 2200: 0f b6 in r0, 0x3f ; 63
+ 2202: f8 94 cli
+ 2204: de bf out 0x3e, r29 ; 62
+ 2206: 0f be out 0x3f, r0 ; 63
+ 2208: cd bf out 0x3d, r28 ; 61
+ 220a: 7c 01 movw r14, r24
+ 220c: cb 01 movw r24, r22
+ 220e: f7 01 movw r30, r14
+ 2210: 11 82 std Z+1, r1 ; 0x01
+ 2212: 10 82 st Z, r1
+ 2214: 13 82 std Z+3, r1 ; 0x03
+ 2216: 12 82 std Z+2, r1 ; 0x02
+ 2218: 15 82 std Z+5, r1 ; 0x05
+ 221a: 14 82 std Z+4, r1 ; 0x04
+ 221c: 16 82 std Z+6, r1 ; 0x06
+ 221e: 8e 01 movw r16, r28
+ 2220: 0f 5f subi r16, 0xFF ; 255
+ 2222: 1f 4f sbci r17, 0xFF ; 255
+ 2224: b8 01 movw r22, r16
+ 2226: 50 e0 ldi r21, 0x00 ; 0
+ 2228: 0e 94 d1 25 call 0x4ba2 ; 0x4ba2 <itoa>
+ 222c: c7 01 movw r24, r14
+ 222e: b8 01 movw r22, r16
+ 2230: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 2234: 62 96 adiw r28, 0x12 ; 18
+ 2236: 0f b6 in r0, 0x3f ; 63
+ 2238: f8 94 cli
+ 223a: de bf out 0x3e, r29 ; 62
+ 223c: 0f be out 0x3f, r0 ; 63
+ 223e: cd bf out 0x3d, r28 ; 61
+ 2240: cf 91 pop r28
+ 2242: df 91 pop r29
+ 2244: 1f 91 pop r17
+ 2246: 0f 91 pop r16
+ 2248: ff 90 pop r15
+ 224a: ef 90 pop r14
+ 224c: 08 95 ret
+
+0000224e <_ZN6StringC1Ehh>:
+ 224e: ef 92 push r14
+ 2250: ff 92 push r15
+ 2252: 0f 93 push r16
+ 2254: 1f 93 push r17
+ 2256: df 93 push r29
+ 2258: cf 93 push r28
+ 225a: cd b7 in r28, 0x3d ; 61
+ 225c: de b7 in r29, 0x3e ; 62
+ 225e: 29 97 sbiw r28, 0x09 ; 9
+ 2260: 0f b6 in r0, 0x3f ; 63
+ 2262: f8 94 cli
+ 2264: de bf out 0x3e, r29 ; 62
+ 2266: 0f be out 0x3f, r0 ; 63
+ 2268: cd bf out 0x3d, r28 ; 61
+ 226a: 7c 01 movw r14, r24
+ 226c: 86 2f mov r24, r22
+ 226e: f7 01 movw r30, r14
+ 2270: 11 82 std Z+1, r1 ; 0x01
+ 2272: 10 82 st Z, r1
+ 2274: 13 82 std Z+3, r1 ; 0x03
+ 2276: 12 82 std Z+2, r1 ; 0x02
+ 2278: 15 82 std Z+5, r1 ; 0x05
+ 227a: 14 82 std Z+4, r1 ; 0x04
+ 227c: 16 82 std Z+6, r1 ; 0x06
+ 227e: 90 e0 ldi r25, 0x00 ; 0
+ 2280: 8e 01 movw r16, r28
+ 2282: 0f 5f subi r16, 0xFF ; 255
+ 2284: 1f 4f sbci r17, 0xFF ; 255
+ 2286: b8 01 movw r22, r16
+ 2288: 50 e0 ldi r21, 0x00 ; 0
+ 228a: 0e 94 60 26 call 0x4cc0 ; 0x4cc0 <utoa>
+ 228e: c7 01 movw r24, r14
+ 2290: b8 01 movw r22, r16
+ 2292: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 2296: 29 96 adiw r28, 0x09 ; 9
+ 2298: 0f b6 in r0, 0x3f ; 63
+ 229a: f8 94 cli
+ 229c: de bf out 0x3e, r29 ; 62
+ 229e: 0f be out 0x3f, r0 ; 63
+ 22a0: cd bf out 0x3d, r28 ; 61
+ 22a2: cf 91 pop r28
+ 22a4: df 91 pop r29
+ 22a6: 1f 91 pop r17
+ 22a8: 0f 91 pop r16
+ 22aa: ff 90 pop r15
+ 22ac: ef 90 pop r14
+ 22ae: 08 95 ret
+
+000022b0 <_ZN6StringC1Ec>:
+ 22b0: df 93 push r29
+ 22b2: cf 93 push r28
+ 22b4: 00 d0 rcall .+0 ; 0x22b6 <_ZN6StringC1Ec+0x6>
+ 22b6: cd b7 in r28, 0x3d ; 61
+ 22b8: de b7 in r29, 0x3e ; 62
+ 22ba: fc 01 movw r30, r24
+ 22bc: 11 82 std Z+1, r1 ; 0x01
+ 22be: 10 82 st Z, r1
+ 22c0: 13 82 std Z+3, r1 ; 0x03
+ 22c2: 12 82 std Z+2, r1 ; 0x02
+ 22c4: 15 82 std Z+5, r1 ; 0x05
+ 22c6: 14 82 std Z+4, r1 ; 0x04
+ 22c8: 16 82 std Z+6, r1 ; 0x06
+ 22ca: 69 83 std Y+1, r22 ; 0x01
+ 22cc: 1a 82 std Y+2, r1 ; 0x02
+ 22ce: be 01 movw r22, r28
+ 22d0: 6f 5f subi r22, 0xFF ; 255
+ 22d2: 7f 4f sbci r23, 0xFF ; 255
+ 22d4: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 22d8: 0f 90 pop r0
+ 22da: 0f 90 pop r0
+ 22dc: cf 91 pop r28
+ 22de: df 91 pop r29
+ 22e0: 08 95 ret
+
+000022e2 <_ZN6String6concatEPKcj>:
+ 22e2: ef 92 push r14
+ 22e4: ff 92 push r15
+ 22e6: 0f 93 push r16
+ 22e8: 1f 93 push r17
+ 22ea: cf 93 push r28
+ 22ec: df 93 push r29
+ 22ee: ec 01 movw r28, r24
+ 22f0: 7b 01 movw r14, r22
+ 22f2: 0c 81 ldd r16, Y+4 ; 0x04
+ 22f4: 1d 81 ldd r17, Y+5 ; 0x05
+ 22f6: 61 15 cp r22, r1
+ 22f8: 71 05 cpc r23, r1
+ 22fa: b9 f0 breq .+46 ; 0x232a <_ZN6String6concatEPKcj+0x48>
+ 22fc: 41 15 cp r20, r1
+ 22fe: 51 05 cpc r21, r1
+ 2300: 91 f0 breq .+36 ; 0x2326 <_ZN6String6concatEPKcj+0x44>
+ 2302: 04 0f add r16, r20
+ 2304: 15 1f adc r17, r21
+ 2306: b8 01 movw r22, r16
+ 2308: 0e 94 cc 0f call 0x1f98 ; 0x1f98 <_ZN6String7reserveEj>
+ 230c: 88 23 and r24, r24
+ 230e: 69 f0 breq .+26 ; 0x232a <_ZN6String6concatEPKcj+0x48>
+ 2310: 28 81 ld r18, Y
+ 2312: 39 81 ldd r19, Y+1 ; 0x01
+ 2314: 8c 81 ldd r24, Y+4 ; 0x04
+ 2316: 9d 81 ldd r25, Y+5 ; 0x05
+ 2318: 82 0f add r24, r18
+ 231a: 93 1f adc r25, r19
+ 231c: b7 01 movw r22, r14
+ 231e: 0e 94 88 25 call 0x4b10 ; 0x4b10 <strcpy>
+ 2322: 1d 83 std Y+5, r17 ; 0x05
+ 2324: 0c 83 std Y+4, r16 ; 0x04
+ 2326: 81 e0 ldi r24, 0x01 ; 1
+ 2328: 01 c0 rjmp .+2 ; 0x232c <_ZN6String6concatEPKcj+0x4a>
+ 232a: 80 e0 ldi r24, 0x00 ; 0
+ 232c: df 91 pop r29
+ 232e: cf 91 pop r28
+ 2330: 1f 91 pop r17
+ 2332: 0f 91 pop r16
+ 2334: ff 90 pop r15
+ 2336: ef 90 pop r14
+ 2338: 08 95 ret
+
+0000233a <_ZN6String6concatERKS_>:
+ 233a: fb 01 movw r30, r22
+ 233c: 60 81 ld r22, Z
+ 233e: 71 81 ldd r23, Z+1 ; 0x01
+ 2340: 44 81 ldd r20, Z+4 ; 0x04
+ 2342: 55 81 ldd r21, Z+5 ; 0x05
+ 2344: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2348: 08 95 ret
+
+0000234a <_ZN6String6concatEPKc>:
+ 234a: 61 15 cp r22, r1
+ 234c: 71 05 cpc r23, r1
+ 234e: 61 f0 breq .+24 ; 0x2368 <_ZN6String6concatEPKc+0x1e>
+ 2350: db 01 movw r26, r22
+ 2352: 0d 90 ld r0, X+
+ 2354: 00 20 and r0, r0
+ 2356: e9 f7 brne .-6 ; 0x2352 <_ZN6String6concatEPKc+0x8>
+ 2358: ad 01 movw r20, r26
+ 235a: 41 50 subi r20, 0x01 ; 1
+ 235c: 50 40 sbci r21, 0x00 ; 0
+ 235e: 46 1b sub r20, r22
+ 2360: 57 0b sbc r21, r23
+ 2362: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2366: 08 95 ret
+ 2368: 80 e0 ldi r24, 0x00 ; 0
+ 236a: 08 95 ret
+
+0000236c <_ZN6String6concatEc>:
+ 236c: df 93 push r29
+ 236e: cf 93 push r28
+ 2370: 00 d0 rcall .+0 ; 0x2372 <_ZN6String6concatEc+0x6>
+ 2372: cd b7 in r28, 0x3d ; 61
+ 2374: de b7 in r29, 0x3e ; 62
+ 2376: 69 83 std Y+1, r22 ; 0x01
+ 2378: 1a 82 std Y+2, r1 ; 0x02
+ 237a: be 01 movw r22, r28
+ 237c: 6f 5f subi r22, 0xFF ; 255
+ 237e: 7f 4f sbci r23, 0xFF ; 255
+ 2380: 41 e0 ldi r20, 0x01 ; 1
+ 2382: 50 e0 ldi r21, 0x00 ; 0
+ 2384: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2388: 0f 90 pop r0
+ 238a: 0f 90 pop r0
+ 238c: cf 91 pop r28
+ 238e: df 91 pop r29
+ 2390: 08 95 ret
+
+00002392 <_ZN6String6concatEh>:
+ 2392: ef 92 push r14
+ 2394: ff 92 push r15
+ 2396: 0f 93 push r16
+ 2398: 1f 93 push r17
+ 239a: df 93 push r29
+ 239c: cf 93 push r28
+ 239e: 00 d0 rcall .+0 ; 0x23a0 <_ZN6String6concatEh+0xe>
+ 23a0: 00 d0 rcall .+0 ; 0x23a2 <_ZN6String6concatEh+0x10>
+ 23a2: cd b7 in r28, 0x3d ; 61
+ 23a4: de b7 in r29, 0x3e ; 62
+ 23a6: 7c 01 movw r14, r24
+ 23a8: 86 2f mov r24, r22
+ 23aa: 90 e0 ldi r25, 0x00 ; 0
+ 23ac: 8e 01 movw r16, r28
+ 23ae: 0f 5f subi r16, 0xFF ; 255
+ 23b0: 1f 4f sbci r17, 0xFF ; 255
+ 23b2: b8 01 movw r22, r16
+ 23b4: 4a e0 ldi r20, 0x0A ; 10
+ 23b6: 50 e0 ldi r21, 0x00 ; 0
+ 23b8: 0e 94 d1 25 call 0x4ba2 ; 0x4ba2 <itoa>
+ 23bc: f8 01 movw r30, r16
+ 23be: 01 90 ld r0, Z+
+ 23c0: 00 20 and r0, r0
+ 23c2: e9 f7 brne .-6 ; 0x23be <_ZN6String6concatEh+0x2c>
+ 23c4: af 01 movw r20, r30
+ 23c6: 41 50 subi r20, 0x01 ; 1
+ 23c8: 50 40 sbci r21, 0x00 ; 0
+ 23ca: 40 1b sub r20, r16
+ 23cc: 51 0b sbc r21, r17
+ 23ce: c7 01 movw r24, r14
+ 23d0: b8 01 movw r22, r16
+ 23d2: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 23d6: 0f 90 pop r0
+ 23d8: 0f 90 pop r0
+ 23da: 0f 90 pop r0
+ 23dc: 0f 90 pop r0
+ 23de: cf 91 pop r28
+ 23e0: df 91 pop r29
+ 23e2: 1f 91 pop r17
+ 23e4: 0f 91 pop r16
+ 23e6: ff 90 pop r15
+ 23e8: ef 90 pop r14
+ 23ea: 08 95 ret
+
+000023ec <_ZN6String6concatEi>:
+ 23ec: ef 92 push r14
+ 23ee: ff 92 push r15
+ 23f0: 0f 93 push r16
+ 23f2: 1f 93 push r17
+ 23f4: df 93 push r29
+ 23f6: cf 93 push r28
+ 23f8: cd b7 in r28, 0x3d ; 61
+ 23fa: de b7 in r29, 0x3e ; 62
+ 23fc: 27 97 sbiw r28, 0x07 ; 7
+ 23fe: 0f b6 in r0, 0x3f ; 63
+ 2400: f8 94 cli
+ 2402: de bf out 0x3e, r29 ; 62
+ 2404: 0f be out 0x3f, r0 ; 63
+ 2406: cd bf out 0x3d, r28 ; 61
+ 2408: 7c 01 movw r14, r24
+ 240a: cb 01 movw r24, r22
+ 240c: 8e 01 movw r16, r28
+ 240e: 0f 5f subi r16, 0xFF ; 255
+ 2410: 1f 4f sbci r17, 0xFF ; 255
+ 2412: b8 01 movw r22, r16
+ 2414: 4a e0 ldi r20, 0x0A ; 10
+ 2416: 50 e0 ldi r21, 0x00 ; 0
+ 2418: 0e 94 d1 25 call 0x4ba2 ; 0x4ba2 <itoa>
+ 241c: f8 01 movw r30, r16
+ 241e: 01 90 ld r0, Z+
+ 2420: 00 20 and r0, r0
+ 2422: e9 f7 brne .-6 ; 0x241e <_ZN6String6concatEi+0x32>
+ 2424: af 01 movw r20, r30
+ 2426: 41 50 subi r20, 0x01 ; 1
+ 2428: 50 40 sbci r21, 0x00 ; 0
+ 242a: 40 1b sub r20, r16
+ 242c: 51 0b sbc r21, r17
+ 242e: c7 01 movw r24, r14
+ 2430: b8 01 movw r22, r16
+ 2432: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2436: 27 96 adiw r28, 0x07 ; 7
+ 2438: 0f b6 in r0, 0x3f ; 63
+ 243a: f8 94 cli
+ 243c: de bf out 0x3e, r29 ; 62
+ 243e: 0f be out 0x3f, r0 ; 63
+ 2440: cd bf out 0x3d, r28 ; 61
+ 2442: cf 91 pop r28
+ 2444: df 91 pop r29
+ 2446: 1f 91 pop r17
+ 2448: 0f 91 pop r16
+ 244a: ff 90 pop r15
+ 244c: ef 90 pop r14
+ 244e: 08 95 ret
+
+00002450 <_ZN6String6concatEj>:
+ 2450: ef 92 push r14
+ 2452: ff 92 push r15
+ 2454: 0f 93 push r16
+ 2456: 1f 93 push r17
+ 2458: df 93 push r29
+ 245a: cf 93 push r28
+ 245c: 00 d0 rcall .+0 ; 0x245e <_ZN6String6concatEj+0xe>
+ 245e: 00 d0 rcall .+0 ; 0x2460 <_ZN6String6concatEj+0x10>
+ 2460: 00 d0 rcall .+0 ; 0x2462 <_ZN6String6concatEj+0x12>
+ 2462: cd b7 in r28, 0x3d ; 61
+ 2464: de b7 in r29, 0x3e ; 62
+ 2466: 7c 01 movw r14, r24
+ 2468: cb 01 movw r24, r22
+ 246a: 8e 01 movw r16, r28
+ 246c: 0f 5f subi r16, 0xFF ; 255
+ 246e: 1f 4f sbci r17, 0xFF ; 255
+ 2470: b8 01 movw r22, r16
+ 2472: 4a e0 ldi r20, 0x0A ; 10
+ 2474: 50 e0 ldi r21, 0x00 ; 0
+ 2476: 0e 94 60 26 call 0x4cc0 ; 0x4cc0 <utoa>
+ 247a: f8 01 movw r30, r16
+ 247c: 01 90 ld r0, Z+
+ 247e: 00 20 and r0, r0
+ 2480: e9 f7 brne .-6 ; 0x247c <_ZN6String6concatEj+0x2c>
+ 2482: af 01 movw r20, r30
+ 2484: 41 50 subi r20, 0x01 ; 1
+ 2486: 50 40 sbci r21, 0x00 ; 0
+ 2488: 40 1b sub r20, r16
+ 248a: 51 0b sbc r21, r17
+ 248c: c7 01 movw r24, r14
+ 248e: b8 01 movw r22, r16
+ 2490: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2494: 26 96 adiw r28, 0x06 ; 6
+ 2496: 0f b6 in r0, 0x3f ; 63
+ 2498: f8 94 cli
+ 249a: de bf out 0x3e, r29 ; 62
+ 249c: 0f be out 0x3f, r0 ; 63
+ 249e: cd bf out 0x3d, r28 ; 61
+ 24a0: cf 91 pop r28
+ 24a2: df 91 pop r29
+ 24a4: 1f 91 pop r17
+ 24a6: 0f 91 pop r16
+ 24a8: ff 90 pop r15
+ 24aa: ef 90 pop r14
+ 24ac: 08 95 ret
+
+000024ae <_ZN6String6concatEl>:
+ 24ae: ef 92 push r14
+ 24b0: ff 92 push r15
+ 24b2: 0f 93 push r16
+ 24b4: 1f 93 push r17
+ 24b6: df 93 push r29
+ 24b8: cf 93 push r28
+ 24ba: cd b7 in r28, 0x3d ; 61
+ 24bc: de b7 in r29, 0x3e ; 62
+ 24be: 2c 97 sbiw r28, 0x0c ; 12
+ 24c0: 0f b6 in r0, 0x3f ; 63
+ 24c2: f8 94 cli
+ 24c4: de bf out 0x3e, r29 ; 62
+ 24c6: 0f be out 0x3f, r0 ; 63
+ 24c8: cd bf out 0x3d, r28 ; 61
+ 24ca: 7c 01 movw r14, r24
+ 24cc: cb 01 movw r24, r22
+ 24ce: ba 01 movw r22, r20
+ 24d0: 8e 01 movw r16, r28
+ 24d2: 0f 5f subi r16, 0xFF ; 255
+ 24d4: 1f 4f sbci r17, 0xFF ; 255
+ 24d6: a8 01 movw r20, r16
+ 24d8: 2a e0 ldi r18, 0x0A ; 10
+ 24da: 30 e0 ldi r19, 0x00 ; 0
+ 24dc: 0e 94 f2 25 call 0x4be4 ; 0x4be4 <ltoa>
+ 24e0: f8 01 movw r30, r16
+ 24e2: 01 90 ld r0, Z+
+ 24e4: 00 20 and r0, r0
+ 24e6: e9 f7 brne .-6 ; 0x24e2 <_ZN6String6concatEl+0x34>
+ 24e8: af 01 movw r20, r30
+ 24ea: 41 50 subi r20, 0x01 ; 1
+ 24ec: 50 40 sbci r21, 0x00 ; 0
+ 24ee: 40 1b sub r20, r16
+ 24f0: 51 0b sbc r21, r17
+ 24f2: c7 01 movw r24, r14
+ 24f4: b8 01 movw r22, r16
+ 24f6: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 24fa: 2c 96 adiw r28, 0x0c ; 12
+ 24fc: 0f b6 in r0, 0x3f ; 63
+ 24fe: f8 94 cli
+ 2500: de bf out 0x3e, r29 ; 62
+ 2502: 0f be out 0x3f, r0 ; 63
+ 2504: cd bf out 0x3d, r28 ; 61
+ 2506: cf 91 pop r28
+ 2508: df 91 pop r29
+ 250a: 1f 91 pop r17
+ 250c: 0f 91 pop r16
+ 250e: ff 90 pop r15
+ 2510: ef 90 pop r14
+ 2512: 08 95 ret
+
+00002514 <_ZN6String6concatEm>:
+ 2514: ef 92 push r14
+ 2516: ff 92 push r15
+ 2518: 0f 93 push r16
+ 251a: 1f 93 push r17
+ 251c: df 93 push r29
+ 251e: cf 93 push r28
+ 2520: cd b7 in r28, 0x3d ; 61
+ 2522: de b7 in r29, 0x3e ; 62
+ 2524: 2b 97 sbiw r28, 0x0b ; 11
+ 2526: 0f b6 in r0, 0x3f ; 63
+ 2528: f8 94 cli
+ 252a: de bf out 0x3e, r29 ; 62
+ 252c: 0f be out 0x3f, r0 ; 63
+ 252e: cd bf out 0x3d, r28 ; 61
+ 2530: 7c 01 movw r14, r24
+ 2532: cb 01 movw r24, r22
+ 2534: ba 01 movw r22, r20
+ 2536: 8e 01 movw r16, r28
+ 2538: 0f 5f subi r16, 0xFF ; 255
+ 253a: 1f 4f sbci r17, 0xFF ; 255
+ 253c: a8 01 movw r20, r16
+ 253e: 2a e0 ldi r18, 0x0A ; 10
+ 2540: 30 e0 ldi r19, 0x00 ; 0
+ 2542: 0e 94 3b 26 call 0x4c76 ; 0x4c76 <ultoa>
+ 2546: f8 01 movw r30, r16
+ 2548: 01 90 ld r0, Z+
+ 254a: 00 20 and r0, r0
+ 254c: e9 f7 brne .-6 ; 0x2548 <_ZN6String6concatEm+0x34>
+ 254e: af 01 movw r20, r30
+ 2550: 41 50 subi r20, 0x01 ; 1
+ 2552: 50 40 sbci r21, 0x00 ; 0
+ 2554: 40 1b sub r20, r16
+ 2556: 51 0b sbc r21, r17
+ 2558: c7 01 movw r24, r14
+ 255a: b8 01 movw r22, r16
+ 255c: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 2560: 2b 96 adiw r28, 0x0b ; 11
+ 2562: 0f b6 in r0, 0x3f ; 63
+ 2564: f8 94 cli
+ 2566: de bf out 0x3e, r29 ; 62
+ 2568: 0f be out 0x3f, r0 ; 63
+ 256a: cd bf out 0x3d, r28 ; 61
+ 256c: cf 91 pop r28
+ 256e: df 91 pop r29
+ 2570: 1f 91 pop r17
+ 2572: 0f 91 pop r16
+ 2574: ff 90 pop r15
+ 2576: ef 90 pop r14
+ 2578: 08 95 ret
+
+0000257a <_ZplRK15StringSumHelperRK6String>:
+ 257a: 0f 93 push r16
+ 257c: 1f 93 push r17
+ 257e: 8c 01 movw r16, r24
+ 2580: fb 01 movw r30, r22
+ 2582: 60 81 ld r22, Z
+ 2584: 71 81 ldd r23, Z+1 ; 0x01
+ 2586: 44 81 ldd r20, Z+4 ; 0x04
+ 2588: 55 81 ldd r21, Z+5 ; 0x05
+ 258a: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 258e: 88 23 and r24, r24
+ 2590: 19 f4 brne .+6 ; 0x2598 <_ZplRK15StringSumHelperRK6String+0x1e>
+ 2592: c8 01 movw r24, r16
+ 2594: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2598: c8 01 movw r24, r16
+ 259a: 1f 91 pop r17
+ 259c: 0f 91 pop r16
+ 259e: 08 95 ret
+
+000025a0 <_ZplRK15StringSumHelperPKc>:
+ 25a0: 0f 93 push r16
+ 25a2: 1f 93 push r17
+ 25a4: 8c 01 movw r16, r24
+ 25a6: 61 15 cp r22, r1
+ 25a8: 71 05 cpc r23, r1
+ 25aa: 69 f0 breq .+26 ; 0x25c6 <_ZplRK15StringSumHelperPKc+0x26>
+ 25ac: db 01 movw r26, r22
+ 25ae: 0d 90 ld r0, X+
+ 25b0: 00 20 and r0, r0
+ 25b2: e9 f7 brne .-6 ; 0x25ae <_ZplRK15StringSumHelperPKc+0xe>
+ 25b4: ad 01 movw r20, r26
+ 25b6: 41 50 subi r20, 0x01 ; 1
+ 25b8: 50 40 sbci r21, 0x00 ; 0
+ 25ba: 46 1b sub r20, r22
+ 25bc: 57 0b sbc r21, r23
+ 25be: 0e 94 71 11 call 0x22e2 ; 0x22e2 <_ZN6String6concatEPKcj>
+ 25c2: 88 23 and r24, r24
+ 25c4: 19 f4 brne .+6 ; 0x25cc <_ZplRK15StringSumHelperPKc+0x2c>
+ 25c6: c8 01 movw r24, r16
+ 25c8: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 25cc: c8 01 movw r24, r16
+ 25ce: 1f 91 pop r17
+ 25d0: 0f 91 pop r16
+ 25d2: 08 95 ret
+
+000025d4 <_ZplRK15StringSumHelperc>:
+ 25d4: 0f 93 push r16
+ 25d6: 1f 93 push r17
+ 25d8: 8c 01 movw r16, r24
+ 25da: 0e 94 b6 11 call 0x236c ; 0x236c <_ZN6String6concatEc>
+ 25de: 88 23 and r24, r24
+ 25e0: 19 f4 brne .+6 ; 0x25e8 <_ZplRK15StringSumHelperc+0x14>
+ 25e2: c8 01 movw r24, r16
+ 25e4: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 25e8: c8 01 movw r24, r16
+ 25ea: 1f 91 pop r17
+ 25ec: 0f 91 pop r16
+ 25ee: 08 95 ret
+
+000025f0 <_ZplRK15StringSumHelperh>:
+ 25f0: 0f 93 push r16
+ 25f2: 1f 93 push r17
+ 25f4: 8c 01 movw r16, r24
+ 25f6: 0e 94 c9 11 call 0x2392 ; 0x2392 <_ZN6String6concatEh>
+ 25fa: 88 23 and r24, r24
+ 25fc: 19 f4 brne .+6 ; 0x2604 <_ZplRK15StringSumHelperh+0x14>
+ 25fe: c8 01 movw r24, r16
+ 2600: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2604: c8 01 movw r24, r16
+ 2606: 1f 91 pop r17
+ 2608: 0f 91 pop r16
+ 260a: 08 95 ret
+
+0000260c <_ZplRK15StringSumHelperi>:
+ 260c: 0f 93 push r16
+ 260e: 1f 93 push r17
+ 2610: 8c 01 movw r16, r24
+ 2612: 0e 94 f6 11 call 0x23ec ; 0x23ec <_ZN6String6concatEi>
+ 2616: 88 23 and r24, r24
+ 2618: 19 f4 brne .+6 ; 0x2620 <_ZplRK15StringSumHelperi+0x14>
+ 261a: c8 01 movw r24, r16
+ 261c: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2620: c8 01 movw r24, r16
+ 2622: 1f 91 pop r17
+ 2624: 0f 91 pop r16
+ 2626: 08 95 ret
+
+00002628 <_ZplRK15StringSumHelperj>:
+ 2628: 0f 93 push r16
+ 262a: 1f 93 push r17
+ 262c: 8c 01 movw r16, r24
+ 262e: 0e 94 28 12 call 0x2450 ; 0x2450 <_ZN6String6concatEj>
+ 2632: 88 23 and r24, r24
+ 2634: 19 f4 brne .+6 ; 0x263c <_ZplRK15StringSumHelperj+0x14>
+ 2636: c8 01 movw r24, r16
+ 2638: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 263c: c8 01 movw r24, r16
+ 263e: 1f 91 pop r17
+ 2640: 0f 91 pop r16
+ 2642: 08 95 ret
+
+00002644 <_ZplRK15StringSumHelperl>:
+ 2644: 0f 93 push r16
+ 2646: 1f 93 push r17
+ 2648: 8c 01 movw r16, r24
+ 264a: 0e 94 57 12 call 0x24ae ; 0x24ae <_ZN6String6concatEl>
+ 264e: 88 23 and r24, r24
+ 2650: 19 f4 brne .+6 ; 0x2658 <_ZplRK15StringSumHelperl+0x14>
+ 2652: c8 01 movw r24, r16
+ 2654: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2658: c8 01 movw r24, r16
+ 265a: 1f 91 pop r17
+ 265c: 0f 91 pop r16
+ 265e: 08 95 ret
+
+00002660 <_ZplRK15StringSumHelperm>:
+ 2660: 0f 93 push r16
+ 2662: 1f 93 push r17
+ 2664: 8c 01 movw r16, r24
+ 2666: 0e 94 8a 12 call 0x2514 ; 0x2514 <_ZN6String6concatEm>
+ 266a: 88 23 and r24, r24
+ 266c: 19 f4 brne .+6 ; 0x2674 <_ZplRK15StringSumHelperm+0x14>
+ 266e: c8 01 movw r24, r16
+ 2670: 0e 94 a0 0f call 0x1f40 ; 0x1f40 <_ZN6String10invalidateEv>
+ 2674: c8 01 movw r24, r16
+ 2676: 1f 91 pop r17
+ 2678: 0f 91 pop r16
+ 267a: 08 95 ret
+
+0000267c <_ZNK6String9compareToERKS_>:
+ 267c: cf 93 push r28
+ 267e: df 93 push r29
+ 2680: fc 01 movw r30, r24
+ 2682: db 01 movw r26, r22
+ 2684: 80 81 ld r24, Z
+ 2686: 91 81 ldd r25, Z+1 ; 0x01
+ 2688: 00 97 sbiw r24, 0x00 ; 0
+ 268a: 31 f0 breq .+12 ; 0x2698 <_ZNK6String9compareToERKS_+0x1c>
+ 268c: 6d 91 ld r22, X+
+ 268e: 7c 91 ld r23, X
+ 2690: 11 97 sbiw r26, 0x01 ; 1
+ 2692: 61 15 cp r22, r1
+ 2694: 71 05 cpc r23, r1
+ 2696: e9 f4 brne .+58 ; 0x26d2 <_ZNK6String9compareToERKS_+0x56>
+ 2698: cd 91 ld r28, X+
+ 269a: dc 91 ld r29, X
+ 269c: 11 97 sbiw r26, 0x01 ; 1
+ 269e: 20 97 sbiw r28, 0x00 ; 0
+ 26a0: 69 f0 breq .+26 ; 0x26bc <_ZNK6String9compareToERKS_+0x40>
+ 26a2: 14 96 adiw r26, 0x04 ; 4
+ 26a4: 2d 91 ld r18, X+
+ 26a6: 3c 91 ld r19, X
+ 26a8: 15 97 sbiw r26, 0x05 ; 5
+ 26aa: 21 15 cp r18, r1
+ 26ac: 31 05 cpc r19, r1
+ 26ae: 31 f0 breq .+12 ; 0x26bc <_ZNK6String9compareToERKS_+0x40>
+ 26b0: 28 81 ld r18, Y
+ 26b2: 30 e0 ldi r19, 0x00 ; 0
+ 26b4: 30 95 com r19
+ 26b6: 21 95 neg r18
+ 26b8: 3f 4f sbci r19, 0xFF ; 255
+ 26ba: 12 c0 rjmp .+36 ; 0x26e0 <_ZNK6String9compareToERKS_+0x64>
+ 26bc: 00 97 sbiw r24, 0x00 ; 0
+ 26be: 71 f0 breq .+28 ; 0x26dc <_ZNK6String9compareToERKS_+0x60>
+ 26c0: 24 81 ldd r18, Z+4 ; 0x04
+ 26c2: 35 81 ldd r19, Z+5 ; 0x05
+ 26c4: 21 15 cp r18, r1
+ 26c6: 31 05 cpc r19, r1
+ 26c8: 49 f0 breq .+18 ; 0x26dc <_ZNK6String9compareToERKS_+0x60>
+ 26ca: fc 01 movw r30, r24
+ 26cc: 20 81 ld r18, Z
+ 26ce: 30 e0 ldi r19, 0x00 ; 0
+ 26d0: 07 c0 rjmp .+14 ; 0x26e0 <_ZNK6String9compareToERKS_+0x64>
+ 26d2: 0e 94 7f 25 call 0x4afe ; 0x4afe <strcmp>
+ 26d6: 28 2f mov r18, r24
+ 26d8: 39 2f mov r19, r25
+ 26da: 02 c0 rjmp .+4 ; 0x26e0 <_ZNK6String9compareToERKS_+0x64>
+ 26dc: 20 e0 ldi r18, 0x00 ; 0
+ 26de: 30 e0 ldi r19, 0x00 ; 0
+ 26e0: c9 01 movw r24, r18
+ 26e2: df 91 pop r29
+ 26e4: cf 91 pop r28
+ 26e6: 08 95 ret
+
+000026e8 <_ZNK6String6equalsERKS_>:
+ 26e8: fc 01 movw r30, r24
+ 26ea: 44 81 ldd r20, Z+4 ; 0x04
+ 26ec: 55 81 ldd r21, Z+5 ; 0x05
+ 26ee: fb 01 movw r30, r22
+ 26f0: 24 81 ldd r18, Z+4 ; 0x04
+ 26f2: 35 81 ldd r19, Z+5 ; 0x05
+ 26f4: 42 17 cp r20, r18
+ 26f6: 53 07 cpc r21, r19
+ 26f8: 29 f4 brne .+10 ; 0x2704 <_ZNK6String6equalsERKS_+0x1c>
+ 26fa: 0e 94 3e 13 call 0x267c ; 0x267c <_ZNK6String9compareToERKS_>
+ 26fe: 21 e0 ldi r18, 0x01 ; 1
+ 2700: 00 97 sbiw r24, 0x00 ; 0
+ 2702: 09 f0 breq .+2 ; 0x2706 <_ZNK6String6equalsERKS_+0x1e>
+ 2704: 20 e0 ldi r18, 0x00 ; 0
+ 2706: 82 2f mov r24, r18
+ 2708: 08 95 ret
+
+0000270a <_ZNK6String6equalsEPKc>:
+ 270a: fc 01 movw r30, r24
+ 270c: 84 81 ldd r24, Z+4 ; 0x04
+ 270e: 95 81 ldd r25, Z+5 ; 0x05
+ 2710: 00 97 sbiw r24, 0x00 ; 0
+ 2712: 41 f4 brne .+16 ; 0x2724 <_ZNK6String6equalsEPKc+0x1a>
+ 2714: 61 15 cp r22, r1
+ 2716: 71 05 cpc r23, r1
+ 2718: 19 f0 breq .+6 ; 0x2720 <_ZNK6String6equalsEPKc+0x16>
+ 271a: 81 e0 ldi r24, 0x01 ; 1
+ 271c: fb 01 movw r30, r22
+ 271e: 09 c0 rjmp .+18 ; 0x2732 <_ZNK6String6equalsEPKc+0x28>
+ 2720: 81 e0 ldi r24, 0x01 ; 1
+ 2722: 08 95 ret
+ 2724: 01 90 ld r0, Z+
+ 2726: f0 81 ld r31, Z
+ 2728: e0 2d mov r30, r0
+ 272a: 61 15 cp r22, r1
+ 272c: 71 05 cpc r23, r1
+ 272e: 31 f4 brne .+12 ; 0x273c <_ZNK6String6equalsEPKc+0x32>
+ 2730: 81 e0 ldi r24, 0x01 ; 1
+ 2732: 90 81 ld r25, Z
+ 2734: 99 23 and r25, r25
+ 2736: 59 f0 breq .+22 ; 0x274e <_ZNK6String6equalsEPKc+0x44>
+ 2738: 80 e0 ldi r24, 0x00 ; 0
+ 273a: 08 95 ret
+ 273c: cf 01 movw r24, r30
+ 273e: 0e 94 7f 25 call 0x4afe ; 0x4afe <strcmp>
+ 2742: 9c 01 movw r18, r24
+ 2744: 81 e0 ldi r24, 0x01 ; 1
+ 2746: 21 15 cp r18, r1
+ 2748: 31 05 cpc r19, r1
+ 274a: 09 f0 breq .+2 ; 0x274e <_ZNK6String6equalsEPKc+0x44>
+ 274c: 80 e0 ldi r24, 0x00 ; 0
+ 274e: 08 95 ret
+
+00002750 <_ZNK6StringltERKS_>:
+ 2750: 0e 94 3e 13 call 0x267c ; 0x267c <_ZNK6String9compareToERKS_>
+ 2754: 89 2f mov r24, r25
+ 2756: 88 1f adc r24, r24
+ 2758: 88 27 eor r24, r24
+ 275a: 88 1f adc r24, r24
+ 275c: 08 95 ret
+
+0000275e <_ZNK6StringgtERKS_>:
+ 275e: 0e 94 3e 13 call 0x267c ; 0x267c <_ZNK6String9compareToERKS_>
+ 2762: 21 e0 ldi r18, 0x01 ; 1
+ 2764: 18 16 cp r1, r24
+ 2766: 19 06 cpc r1, r25
+ 2768: 0c f0 brlt .+2 ; 0x276c <_ZNK6StringgtERKS_+0xe>
+ 276a: 20 e0 ldi r18, 0x00 ; 0
+ 276c: 82 2f mov r24, r18
+ 276e: 08 95 ret
+
+00002770 <_ZNK6StringleERKS_>:
+ 2770: 0e 94 3e 13 call 0x267c ; 0x267c <_ZNK6String9compareToERKS_>
+ 2774: 21 e0 ldi r18, 0x01 ; 1
+ 2776: 18 16 cp r1, r24
+ 2778: 19 06 cpc r1, r25
+ 277a: 0c f4 brge .+2 ; 0x277e <_ZNK6StringleERKS_+0xe>
+ 277c: 20 e0 ldi r18, 0x00 ; 0
+ 277e: 82 2f mov r24, r18
+ 2780: 08 95 ret
+
+00002782 <_ZNK6StringgeERKS_>:
+ 2782: 0e 94 3e 13 call 0x267c ; 0x267c <_ZNK6String9compareToERKS_>
+ 2786: 89 2f mov r24, r25
+ 2788: 80 95 com r24
+ 278a: 88 1f adc r24, r24
+ 278c: 88 27 eor r24, r24
+ 278e: 88 1f adc r24, r24
+ 2790: 08 95 ret
+
+00002792 <_ZNK6String16equalsIgnoreCaseERKS_>:
+ 2792: ef 92 push r14
+ 2794: ff 92 push r15
+ 2796: 0f 93 push r16
+ 2798: 1f 93 push r17
+ 279a: cf 93 push r28
+ 279c: df 93 push r29
+ 279e: fc 01 movw r30, r24
+ 27a0: db 01 movw r26, r22
+ 27a2: 86 17 cp r24, r22
+ 27a4: 97 07 cpc r25, r23
+ 27a6: 29 f1 breq .+74 ; 0x27f2 <_ZNK6String16equalsIgnoreCaseERKS_+0x60>
+ 27a8: 84 81 ldd r24, Z+4 ; 0x04
+ 27aa: 95 81 ldd r25, Z+5 ; 0x05
+ 27ac: 14 96 adiw r26, 0x04 ; 4
+ 27ae: 2d 91 ld r18, X+
+ 27b0: 3c 91 ld r19, X
+ 27b2: 15 97 sbiw r26, 0x05 ; 5
+ 27b4: 82 17 cp r24, r18
+ 27b6: 93 07 cpc r25, r19
+ 27b8: f1 f4 brne .+60 ; 0x27f6 <_ZNK6String16equalsIgnoreCaseERKS_+0x64>
+ 27ba: 00 97 sbiw r24, 0x00 ; 0
+ 27bc: d1 f0 breq .+52 ; 0x27f2 <_ZNK6String16equalsIgnoreCaseERKS_+0x60>
+ 27be: 00 81 ld r16, Z
+ 27c0: 11 81 ldd r17, Z+1 ; 0x01
+ 27c2: cd 91 ld r28, X+
+ 27c4: dc 91 ld r29, X
+ 27c6: 11 97 sbiw r26, 0x01 ; 1
+ 27c8: 0f c0 rjmp .+30 ; 0x27e8 <_ZNK6String16equalsIgnoreCaseERKS_+0x56>
+ 27ca: 99 27 eor r25, r25
+ 27cc: 87 fd sbrc r24, 7
+ 27ce: 90 95 com r25
+ 27d0: 0e 94 3c 25 call 0x4a78 ; 0x4a78 <tolower>
+ 27d4: 7c 01 movw r14, r24
+ 27d6: 89 91 ld r24, Y+
+ 27d8: 99 27 eor r25, r25
+ 27da: 87 fd sbrc r24, 7
+ 27dc: 90 95 com r25
+ 27de: 0e 94 3c 25 call 0x4a78 ; 0x4a78 <tolower>
+ 27e2: e8 16 cp r14, r24
+ 27e4: f9 06 cpc r15, r25
+ 27e6: 39 f4 brne .+14 ; 0x27f6 <_ZNK6String16equalsIgnoreCaseERKS_+0x64>
+ 27e8: f8 01 movw r30, r16
+ 27ea: 81 91 ld r24, Z+
+ 27ec: 8f 01 movw r16, r30
+ 27ee: 88 23 and r24, r24
+ 27f0: 61 f7 brne .-40 ; 0x27ca <_ZNK6String16equalsIgnoreCaseERKS_+0x38>
+ 27f2: 81 e0 ldi r24, 0x01 ; 1
+ 27f4: 01 c0 rjmp .+2 ; 0x27f8 <_ZNK6String16equalsIgnoreCaseERKS_+0x66>
+ 27f6: 80 e0 ldi r24, 0x00 ; 0
+ 27f8: df 91 pop r29
+ 27fa: cf 91 pop r28
+ 27fc: 1f 91 pop r17
+ 27fe: 0f 91 pop r16
+ 2800: ff 90 pop r15
+ 2802: ef 90 pop r14
+ 2804: 08 95 ret
+
+00002806 <_ZNK6String10startsWithERKS_j>:
+ 2806: fc 01 movw r30, r24
+ 2808: db 01 movw r26, r22
+ 280a: ca 01 movw r24, r20
+ 280c: 14 96 adiw r26, 0x04 ; 4
+ 280e: 4d 91 ld r20, X+
+ 2810: 5c 91 ld r21, X
+ 2812: 15 97 sbiw r26, 0x05 ; 5
+ 2814: 24 81 ldd r18, Z+4 ; 0x04
+ 2816: 35 81 ldd r19, Z+5 ; 0x05
+ 2818: 24 1b sub r18, r20
+ 281a: 35 0b sbc r19, r21
+ 281c: 28 17 cp r18, r24
+ 281e: 39 07 cpc r19, r25
+ 2820: a0 f0 brcs .+40 ; 0x284a <_ZNK6String10startsWithERKS_j+0x44>
+ 2822: 20 81 ld r18, Z
+ 2824: 31 81 ldd r19, Z+1 ; 0x01
+ 2826: 21 15 cp r18, r1
+ 2828: 31 05 cpc r19, r1
+ 282a: 79 f0 breq .+30 ; 0x284a <_ZNK6String10startsWithERKS_j+0x44>
+ 282c: 6d 91 ld r22, X+
+ 282e: 7c 91 ld r23, X
+ 2830: 11 97 sbiw r26, 0x01 ; 1
+ 2832: 61 15 cp r22, r1
+ 2834: 71 05 cpc r23, r1
+ 2836: 59 f0 breq .+22 ; 0x284e <_ZNK6String10startsWithERKS_j+0x48>
+ 2838: 82 0f add r24, r18
+ 283a: 93 1f adc r25, r19
+ 283c: 0e 94 8f 25 call 0x4b1e ; 0x4b1e <strncmp>
+ 2840: 9c 01 movw r18, r24
+ 2842: 81 e0 ldi r24, 0x01 ; 1
+ 2844: 21 15 cp r18, r1
+ 2846: 31 05 cpc r19, r1
+ 2848: 19 f0 breq .+6 ; 0x2850 <_ZNK6String10startsWithERKS_j+0x4a>
+ 284a: 80 e0 ldi r24, 0x00 ; 0
+ 284c: 08 95 ret
+ 284e: 80 e0 ldi r24, 0x00 ; 0
+ 2850: 08 95 ret
+
+00002852 <_ZNK6String10startsWithERKS_>:
+ 2852: fc 01 movw r30, r24
+ 2854: 44 81 ldd r20, Z+4 ; 0x04
+ 2856: 55 81 ldd r21, Z+5 ; 0x05
+ 2858: fb 01 movw r30, r22
+ 285a: 24 81 ldd r18, Z+4 ; 0x04
+ 285c: 35 81 ldd r19, Z+5 ; 0x05
+ 285e: 42 17 cp r20, r18
+ 2860: 53 07 cpc r21, r19
+ 2862: 28 f0 brcs .+10 ; 0x286e <_ZNK6String10startsWithERKS_+0x1c>
+ 2864: 40 e0 ldi r20, 0x00 ; 0
+ 2866: 50 e0 ldi r21, 0x00 ; 0
+ 2868: 0e 94 03 14 call 0x2806 ; 0x2806 <_ZNK6String10startsWithERKS_j>
+ 286c: 08 95 ret
+ 286e: 80 e0 ldi r24, 0x00 ; 0
+ 2870: 08 95 ret
+
+00002872 <_ZNK6String8endsWithERKS_>:
+ 2872: fc 01 movw r30, r24
+ 2874: db 01 movw r26, r22
+ 2876: 84 81 ldd r24, Z+4 ; 0x04
+ 2878: 95 81 ldd r25, Z+5 ; 0x05
+ 287a: 14 96 adiw r26, 0x04 ; 4
+ 287c: 4d 91 ld r20, X+
+ 287e: 5c 91 ld r21, X
+ 2880: 15 97 sbiw r26, 0x05 ; 5
+ 2882: 84 17 cp r24, r20
+ 2884: 95 07 cpc r25, r21
+ 2886: b0 f0 brcs .+44 ; 0x28b4 <_ZNK6String8endsWithERKS_+0x42>
+ 2888: 20 81 ld r18, Z
+ 288a: 31 81 ldd r19, Z+1 ; 0x01
+ 288c: 21 15 cp r18, r1
+ 288e: 31 05 cpc r19, r1
+ 2890: 89 f0 breq .+34 ; 0x28b4 <_ZNK6String8endsWithERKS_+0x42>
+ 2892: 6d 91 ld r22, X+
+ 2894: 7c 91 ld r23, X
+ 2896: 11 97 sbiw r26, 0x01 ; 1
+ 2898: 61 15 cp r22, r1
+ 289a: 71 05 cpc r23, r1
+ 289c: 69 f0 breq .+26 ; 0x28b8 <_ZNK6String8endsWithERKS_+0x46>
+ 289e: 84 1b sub r24, r20
+ 28a0: 95 0b sbc r25, r21
+ 28a2: 82 0f add r24, r18
+ 28a4: 93 1f adc r25, r19
+ 28a6: 0e 94 7f 25 call 0x4afe ; 0x4afe <strcmp>
+ 28aa: 9c 01 movw r18, r24
+ 28ac: 81 e0 ldi r24, 0x01 ; 1
+ 28ae: 21 15 cp r18, r1
+ 28b0: 31 05 cpc r19, r1
+ 28b2: 19 f0 breq .+6 ; 0x28ba <_ZNK6String8endsWithERKS_+0x48>
+ 28b4: 80 e0 ldi r24, 0x00 ; 0
+ 28b6: 08 95 ret
+ 28b8: 80 e0 ldi r24, 0x00 ; 0
+ 28ba: 08 95 ret
+
+000028bc <_ZN6String9setCharAtEjc>:
+ 28bc: fc 01 movw r30, r24
+ 28be: 84 81 ldd r24, Z+4 ; 0x04
+ 28c0: 95 81 ldd r25, Z+5 ; 0x05
+ 28c2: 68 17 cp r22, r24
+ 28c4: 79 07 cpc r23, r25
+ 28c6: 30 f4 brcc .+12 ; 0x28d4 <_ZN6String9setCharAtEjc+0x18>
+ 28c8: 01 90 ld r0, Z+
+ 28ca: f0 81 ld r31, Z
+ 28cc: e0 2d mov r30, r0
+ 28ce: e6 0f add r30, r22
+ 28d0: f7 1f adc r31, r23
+ 28d2: 40 83 st Z, r20
+ 28d4: 08 95 ret
+
+000028d6 <_ZN6StringixEj>:
+ 28d6: fc 01 movw r30, r24
+ 28d8: 84 81 ldd r24, Z+4 ; 0x04
+ 28da: 95 81 ldd r25, Z+5 ; 0x05
+ 28dc: 68 17 cp r22, r24
+ 28de: 79 07 cpc r23, r25
+ 28e0: 20 f4 brcc .+8 ; 0x28ea <_ZN6StringixEj+0x14>
+ 28e2: 80 81 ld r24, Z
+ 28e4: 91 81 ldd r25, Z+1 ; 0x01
+ 28e6: 00 97 sbiw r24, 0x00 ; 0
+ 28e8: 29 f4 brne .+10 ; 0x28f4 <_ZN6StringixEj+0x1e>
+ 28ea: 10 92 a0 03 sts 0x03A0, r1
+ 28ee: 60 ea ldi r22, 0xA0 ; 160
+ 28f0: 73 e0 ldi r23, 0x03 ; 3
+ 28f2: 02 c0 rjmp .+4 ; 0x28f8 <_ZN6StringixEj+0x22>
+ 28f4: 68 0f add r22, r24
+ 28f6: 79 1f adc r23, r25
+ 28f8: cb 01 movw r24, r22
+ 28fa: 08 95 ret
+
+000028fc <_ZNK6StringixEj>:
+ 28fc: fc 01 movw r30, r24
+ 28fe: 84 81 ldd r24, Z+4 ; 0x04
+ 2900: 95 81 ldd r25, Z+5 ; 0x05
+ 2902: 68 17 cp r22, r24
+ 2904: 79 07 cpc r23, r25
+ 2906: 48 f4 brcc .+18 ; 0x291a <_ZNK6StringixEj+0x1e>
+ 2908: 80 81 ld r24, Z
+ 290a: 91 81 ldd r25, Z+1 ; 0x01
+ 290c: 00 97 sbiw r24, 0x00 ; 0
+ 290e: 39 f0 breq .+14 ; 0x291e <_ZNK6StringixEj+0x22>
+ 2910: 68 0f add r22, r24
+ 2912: 79 1f adc r23, r25
+ 2914: fb 01 movw r30, r22
+ 2916: 80 81 ld r24, Z
+ 2918: 08 95 ret
+ 291a: 80 e0 ldi r24, 0x00 ; 0
+ 291c: 08 95 ret
+ 291e: 80 e0 ldi r24, 0x00 ; 0
+ 2920: 08 95 ret
+
+00002922 <_ZNK6String6charAtEj>:
+ 2922: 0e 94 7e 14 call 0x28fc ; 0x28fc <_ZNK6StringixEj>
+ 2926: 08 95 ret
+
+00002928 <_ZNK6String8getBytesEPhjj>:
+ 2928: 0f 93 push r16
+ 292a: 1f 93 push r17
+ 292c: cf 93 push r28
+ 292e: df 93 push r29
+ 2930: fc 01 movw r30, r24
+ 2932: 8b 01 movw r16, r22
+ 2934: 41 15 cp r20, r1
+ 2936: 51 05 cpc r21, r1
+ 2938: f1 f0 breq .+60 ; 0x2976 <_ZNK6String8getBytesEPhjj+0x4e>
+ 293a: 61 15 cp r22, r1
+ 293c: 71 05 cpc r23, r1
+ 293e: d9 f0 breq .+54 ; 0x2976 <_ZNK6String8getBytesEPhjj+0x4e>
+ 2940: c4 81 ldd r28, Z+4 ; 0x04
+ 2942: d5 81 ldd r29, Z+5 ; 0x05
+ 2944: 2c 17 cp r18, r28
+ 2946: 3d 07 cpc r19, r29
+ 2948: 18 f0 brcs .+6 ; 0x2950 <_ZNK6String8getBytesEPhjj+0x28>
+ 294a: fb 01 movw r30, r22
+ 294c: 10 82 st Z, r1
+ 294e: 13 c0 rjmp .+38 ; 0x2976 <_ZNK6String8getBytesEPhjj+0x4e>
+ 2950: 41 50 subi r20, 0x01 ; 1
+ 2952: 50 40 sbci r21, 0x00 ; 0
+ 2954: c2 1b sub r28, r18
+ 2956: d3 0b sbc r29, r19
+ 2958: 4c 17 cp r20, r28
+ 295a: 5d 07 cpc r21, r29
+ 295c: 08 f4 brcc .+2 ; 0x2960 <_ZNK6String8getBytesEPhjj+0x38>
+ 295e: ea 01 movw r28, r20
+ 2960: 60 81 ld r22, Z
+ 2962: 71 81 ldd r23, Z+1 ; 0x01
+ 2964: 62 0f add r22, r18
+ 2966: 73 1f adc r23, r19
+ 2968: c8 01 movw r24, r16
+ 296a: ae 01 movw r20, r28
+ 296c: 0e 94 9d 25 call 0x4b3a ; 0x4b3a <strncpy>
+ 2970: c0 0f add r28, r16
+ 2972: d1 1f adc r29, r17
+ 2974: 18 82 st Y, r1
+ 2976: df 91 pop r29
+ 2978: cf 91 pop r28
+ 297a: 1f 91 pop r17
+ 297c: 0f 91 pop r16
+ 297e: 08 95 ret
+
+00002980 <_ZNK6String7indexOfEcj>:
+ 2980: cf 93 push r28
+ 2982: df 93 push r29
+ 2984: fc 01 movw r30, r24
+ 2986: ca 01 movw r24, r20
+ 2988: 24 81 ldd r18, Z+4 ; 0x04
+ 298a: 35 81 ldd r19, Z+5 ; 0x05
+ 298c: 42 17 cp r20, r18
+ 298e: 53 07 cpc r21, r19
+ 2990: 78 f4 brcc .+30 ; 0x29b0 <_ZNK6String7indexOfEcj+0x30>
+ 2992: c0 81 ld r28, Z
+ 2994: d1 81 ldd r29, Z+1 ; 0x01
+ 2996: 77 27 eor r23, r23
+ 2998: 67 fd sbrc r22, 7
+ 299a: 70 95 com r23
+ 299c: 8c 0f add r24, r28
+ 299e: 9d 1f adc r25, r29
+ 29a0: 0e 94 74 25 call 0x4ae8 ; 0x4ae8 <strchr>
+ 29a4: 00 97 sbiw r24, 0x00 ; 0
+ 29a6: 21 f0 breq .+8 ; 0x29b0 <_ZNK6String7indexOfEcj+0x30>
+ 29a8: 9c 01 movw r18, r24
+ 29aa: 2c 1b sub r18, r28
+ 29ac: 3d 0b sbc r19, r29
+ 29ae: 02 c0 rjmp .+4 ; 0x29b4 <_ZNK6String7indexOfEcj+0x34>
+ 29b0: 2f ef ldi r18, 0xFF ; 255
+ 29b2: 3f ef ldi r19, 0xFF ; 255
+ 29b4: c9 01 movw r24, r18
+ 29b6: df 91 pop r29
+ 29b8: cf 91 pop r28
+ 29ba: 08 95 ret
+
+000029bc <_ZNK6String7indexOfEc>:
+ 29bc: 40 e0 ldi r20, 0x00 ; 0
+ 29be: 50 e0 ldi r21, 0x00 ; 0
+ 29c0: 0e 94 c0 14 call 0x2980 ; 0x2980 <_ZNK6String7indexOfEcj>
+ 29c4: 08 95 ret
+
+000029c6 <_ZNK6String7indexOfERKS_j>:
+ 29c6: cf 93 push r28
+ 29c8: df 93 push r29
+ 29ca: fc 01 movw r30, r24
+ 29cc: ca 01 movw r24, r20
+ 29ce: 24 81 ldd r18, Z+4 ; 0x04
+ 29d0: 35 81 ldd r19, Z+5 ; 0x05
+ 29d2: 42 17 cp r20, r18
+ 29d4: 53 07 cpc r21, r19
+ 29d6: 78 f4 brcc .+30 ; 0x29f6 <_ZNK6String7indexOfERKS_j+0x30>
+ 29d8: c0 81 ld r28, Z
+ 29da: d1 81 ldd r29, Z+1 ; 0x01
+ 29dc: fb 01 movw r30, r22
+ 29de: 60 81 ld r22, Z
+ 29e0: 71 81 ldd r23, Z+1 ; 0x01
+ 29e2: 8c 0f add r24, r28
+ 29e4: 9d 1f adc r25, r29
+ 29e6: 0e 94 b7 25 call 0x4b6e ; 0x4b6e <strstr>
+ 29ea: 00 97 sbiw r24, 0x00 ; 0
+ 29ec: 21 f0 breq .+8 ; 0x29f6 <_ZNK6String7indexOfERKS_j+0x30>
+ 29ee: 9c 01 movw r18, r24
+ 29f0: 2c 1b sub r18, r28
+ 29f2: 3d 0b sbc r19, r29
+ 29f4: 02 c0 rjmp .+4 ; 0x29fa <_ZNK6String7indexOfERKS_j+0x34>
+ 29f6: 2f ef ldi r18, 0xFF ; 255
+ 29f8: 3f ef ldi r19, 0xFF ; 255
+ 29fa: c9 01 movw r24, r18
+ 29fc: df 91 pop r29
+ 29fe: cf 91 pop r28
+ 2a00: 08 95 ret
+
+00002a02 <_ZNK6String7indexOfERKS_>:
+ 2a02: 40 e0 ldi r20, 0x00 ; 0
+ 2a04: 50 e0 ldi r21, 0x00 ; 0
+ 2a06: 0e 94 e3 14 call 0x29c6 ; 0x29c6 <_ZNK6String7indexOfERKS_j>
+ 2a0a: 08 95 ret
+
+00002a0c <_ZNK6String11lastIndexOfEcj>:
+ 2a0c: df 92 push r13
+ 2a0e: ef 92 push r14
+ 2a10: ff 92 push r15
+ 2a12: 0f 93 push r16
+ 2a14: 1f 93 push r17
+ 2a16: cf 93 push r28
+ 2a18: df 93 push r29
+ 2a1a: ec 01 movw r28, r24
+ 2a1c: 8c 81 ldd r24, Y+4 ; 0x04
+ 2a1e: 9d 81 ldd r25, Y+5 ; 0x05
+ 2a20: 48 17 cp r20, r24
+ 2a22: 59 07 cpc r21, r25
+ 2a24: f8 f4 brcc .+62 ; 0x2a64 <_ZNK6String11lastIndexOfEcj+0x58>
+ 2a26: 7a 01 movw r14, r20
+ 2a28: 08 94 sec
+ 2a2a: e1 1c adc r14, r1
+ 2a2c: f1 1c adc r15, r1
+ 2a2e: e8 81 ld r30, Y
+ 2a30: f9 81 ldd r31, Y+1 ; 0x01
+ 2a32: ee 0d add r30, r14
+ 2a34: ff 1d adc r31, r15
+ 2a36: d0 80 ld r13, Z
+ 2a38: 10 82 st Z, r1
+ 2a3a: 08 81 ld r16, Y
+ 2a3c: 19 81 ldd r17, Y+1 ; 0x01
+ 2a3e: 77 27 eor r23, r23
+ 2a40: 67 fd sbrc r22, 7
+ 2a42: 70 95 com r23
+ 2a44: c8 01 movw r24, r16
+ 2a46: 0e 94 ac 25 call 0x4b58 ; 0x4b58 <strrchr>
+ 2a4a: 0e 0d add r16, r14
+ 2a4c: 1f 1d adc r17, r15
+ 2a4e: f8 01 movw r30, r16
+ 2a50: d0 82 st Z, r13
+ 2a52: 00 97 sbiw r24, 0x00 ; 0
+ 2a54: 39 f0 breq .+14 ; 0x2a64 <_ZNK6String11lastIndexOfEcj+0x58>
+ 2a56: 28 81 ld r18, Y
+ 2a58: 39 81 ldd r19, Y+1 ; 0x01
+ 2a5a: ac 01 movw r20, r24
+ 2a5c: 42 1b sub r20, r18
+ 2a5e: 53 0b sbc r21, r19
+ 2a60: 9a 01 movw r18, r20
+ 2a62: 02 c0 rjmp .+4 ; 0x2a68 <_ZNK6String11lastIndexOfEcj+0x5c>
+ 2a64: 2f ef ldi r18, 0xFF ; 255
+ 2a66: 3f ef ldi r19, 0xFF ; 255
+ 2a68: c9 01 movw r24, r18
+ 2a6a: df 91 pop r29
+ 2a6c: cf 91 pop r28
+ 2a6e: 1f 91 pop r17
+ 2a70: 0f 91 pop r16
+ 2a72: ff 90 pop r15
+ 2a74: ef 90 pop r14
+ 2a76: df 90 pop r13
+ 2a78: 08 95 ret
+
+00002a7a <_ZNK6String11lastIndexOfEc>:
+ 2a7a: fc 01 movw r30, r24
+ 2a7c: 44 81 ldd r20, Z+4 ; 0x04
+ 2a7e: 55 81 ldd r21, Z+5 ; 0x05
+ 2a80: 41 50 subi r20, 0x01 ; 1
+ 2a82: 50 40 sbci r21, 0x00 ; 0
+ 2a84: 0e 94 06 15 call 0x2a0c ; 0x2a0c <_ZNK6String11lastIndexOfEcj>
+ 2a88: 08 95 ret
+
+00002a8a <_ZNK6String11lastIndexOfERKS_j>:
+ 2a8a: af 92 push r10
+ 2a8c: bf 92 push r11
+ 2a8e: cf 92 push r12
+ 2a90: df 92 push r13
+ 2a92: ef 92 push r14
+ 2a94: ff 92 push r15
+ 2a96: 0f 93 push r16
+ 2a98: 1f 93 push r17
+ 2a9a: cf 93 push r28
+ 2a9c: df 93 push r29
+ 2a9e: fc 01 movw r30, r24
+ 2aa0: 6b 01 movw r12, r22
+ 2aa2: 8a 01 movw r16, r20
+ 2aa4: db 01 movw r26, r22
+ 2aa6: 14 96 adiw r26, 0x04 ; 4
+ 2aa8: 2d 91 ld r18, X+
+ 2aaa: 3c 91 ld r19, X
+ 2aac: 15 97 sbiw r26, 0x05 ; 5
+ 2aae: 21 15 cp r18, r1
+ 2ab0: 31 05 cpc r19, r1
+ 2ab2: 51 f1 breq .+84 ; 0x2b08 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 2ab4: 84 81 ldd r24, Z+4 ; 0x04
+ 2ab6: 95 81 ldd r25, Z+5 ; 0x05
+ 2ab8: 00 97 sbiw r24, 0x00 ; 0
+ 2aba: 31 f1 breq .+76 ; 0x2b08 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 2abc: 82 17 cp r24, r18
+ 2abe: 93 07 cpc r25, r19
+ 2ac0: 18 f1 brcs .+70 ; 0x2b08 <_ZNK6String11lastIndexOfERKS_j+0x7e>
+ 2ac2: 48 17 cp r20, r24
+ 2ac4: 59 07 cpc r21, r25
+ 2ac6: 18 f0 brcs .+6 ; 0x2ace <_ZNK6String11lastIndexOfERKS_j+0x44>
+ 2ac8: 8c 01 movw r16, r24
+ 2aca: 01 50 subi r16, 0x01 ; 1
+ 2acc: 10 40 sbci r17, 0x00 ; 0
+ 2ace: e0 80 ld r14, Z
+ 2ad0: f1 80 ldd r15, Z+1 ; 0x01
+ 2ad2: c7 01 movw r24, r14
+ 2ad4: cf ef ldi r28, 0xFF ; 255
+ 2ad6: df ef ldi r29, 0xFF ; 255
+ 2ad8: 57 01 movw r10, r14
+ 2ada: a0 0e add r10, r16
+ 2adc: b1 1e adc r11, r17
+ 2ade: 10 c0 rjmp .+32 ; 0x2b00 <_ZNK6String11lastIndexOfERKS_j+0x76>
+ 2ae0: f6 01 movw r30, r12
+ 2ae2: 60 81 ld r22, Z
+ 2ae4: 71 81 ldd r23, Z+1 ; 0x01
+ 2ae6: 0e 94 b7 25 call 0x4b6e ; 0x4b6e <strstr>
+ 2aea: 00 97 sbiw r24, 0x00 ; 0
+ 2aec: 79 f0 breq .+30 ; 0x2b0c <_ZNK6String11lastIndexOfERKS_j+0x82>
+ 2aee: 9c 01 movw r18, r24
+ 2af0: 2e 19 sub r18, r14
+ 2af2: 3f 09 sbc r19, r15
+ 2af4: 02 17 cp r16, r18
+ 2af6: 13 07 cpc r17, r19
+ 2af8: 08 f4 brcc .+2 ; 0x2afc <_ZNK6String11lastIndexOfERKS_j+0x72>
+ 2afa: 9e 01 movw r18, r28
+ 2afc: 01 96 adiw r24, 0x01 ; 1
+ 2afe: e9 01 movw r28, r18
+ 2b00: a8 16 cp r10, r24
+ 2b02: b9 06 cpc r11, r25
+ 2b04: 68 f7 brcc .-38 ; 0x2ae0 <_ZNK6String11lastIndexOfERKS_j+0x56>
+ 2b06: 02 c0 rjmp .+4 ; 0x2b0c <_ZNK6String11lastIndexOfERKS_j+0x82>
+ 2b08: cf ef ldi r28, 0xFF ; 255
+ 2b0a: df ef ldi r29, 0xFF ; 255
+ 2b0c: ce 01 movw r24, r28
+ 2b0e: df 91 pop r29
+ 2b10: cf 91 pop r28
+ 2b12: 1f 91 pop r17
+ 2b14: 0f 91 pop r16
+ 2b16: ff 90 pop r15
+ 2b18: ef 90 pop r14
+ 2b1a: df 90 pop r13
+ 2b1c: cf 90 pop r12
+ 2b1e: bf 90 pop r11
+ 2b20: af 90 pop r10
+ 2b22: 08 95 ret
+
+00002b24 <_ZNK6String11lastIndexOfERKS_>:
+ 2b24: fc 01 movw r30, r24
+ 2b26: 44 81 ldd r20, Z+4 ; 0x04
+ 2b28: 55 81 ldd r21, Z+5 ; 0x05
+ 2b2a: fb 01 movw r30, r22
+ 2b2c: 24 81 ldd r18, Z+4 ; 0x04
+ 2b2e: 35 81 ldd r19, Z+5 ; 0x05
+ 2b30: 42 1b sub r20, r18
+ 2b32: 53 0b sbc r21, r19
+ 2b34: 0e 94 45 15 call 0x2a8a ; 0x2a8a <_ZNK6String11lastIndexOfERKS_j>
+ 2b38: 08 95 ret
+
+00002b3a <_ZNK6String9substringEjj>:
+ 2b3a: af 92 push r10
+ 2b3c: bf 92 push r11
+ 2b3e: cf 92 push r12
+ 2b40: df 92 push r13
+ 2b42: ef 92 push r14
+ 2b44: ff 92 push r15
+ 2b46: 0f 93 push r16
+ 2b48: 1f 93 push r17
+ 2b4a: cf 93 push r28
+ 2b4c: df 93 push r29
+ 2b4e: f8 2e mov r15, r24
+ 2b50: e9 2e mov r14, r25
+ 2b52: 6b 01 movw r12, r22
+ 2b54: 8a 01 movw r16, r20
+ 2b56: e9 01 movw r28, r18
+ 2b58: 24 17 cp r18, r20
+ 2b5a: 35 07 cpc r19, r21
+ 2b5c: 48 f4 brcc .+18 ; 0x2b70 <_ZNK6String9substringEjj+0x36>
+ 2b5e: 34 2f mov r19, r20
+ 2b60: 21 2f mov r18, r17
+ 2b62: 8e 01 movw r16, r28
+ 2b64: c9 01 movw r24, r18
+ 2b66: a9 2e mov r10, r25
+ 2b68: e5 01 movw r28, r10
+ 2b6a: 5e 01 movw r10, r28
+ 2b6c: b2 2e mov r11, r18
+ 2b6e: e5 01 movw r28, r10
+ 2b70: 8f 2d mov r24, r15
+ 2b72: 9e 2d mov r25, r14
+ 2b74: 6c ea ldi r22, 0xAC ; 172
+ 2b76: 71 e0 ldi r23, 0x01 ; 1
+ 2b78: 0e 94 0c 10 call 0x2018 ; 0x2018 <_ZN6StringC1EPKc>
+ 2b7c: d6 01 movw r26, r12
+ 2b7e: 14 96 adiw r26, 0x04 ; 4
+ 2b80: 8d 91 ld r24, X+
+ 2b82: 9c 91 ld r25, X
+ 2b84: 15 97 sbiw r26, 0x05 ; 5
+ 2b86: 80 17 cp r24, r16
+ 2b88: 91 07 cpc r25, r17
+ 2b8a: d8 f0 brcs .+54 ; 0x2bc2 <_ZNK6String9substringEjj+0x88>
+ 2b8c: 8c 17 cp r24, r28
+ 2b8e: 9d 07 cpc r25, r29
+ 2b90: 08 f4 brcc .+2 ; 0x2b94 <_ZNK6String9substringEjj+0x5a>
+ 2b92: ec 01 movw r28, r24
+ 2b94: d6 01 movw r26, r12
+ 2b96: ed 91 ld r30, X+
+ 2b98: fc 91 ld r31, X
+ 2b9a: 11 97 sbiw r26, 0x01 ; 1
+ 2b9c: ec 0f add r30, r28
+ 2b9e: fd 1f adc r31, r29
+ 2ba0: b0 80 ld r11, Z
+ 2ba2: 10 82 st Z, r1
+ 2ba4: 6d 91 ld r22, X+
+ 2ba6: 7c 91 ld r23, X
+ 2ba8: 60 0f add r22, r16
+ 2baa: 71 1f adc r23, r17
+ 2bac: 8f 2d mov r24, r15
+ 2bae: 9e 2d mov r25, r14
+ 2bb0: 0e 94 4d 10 call 0x209a ; 0x209a <_ZN6StringaSEPKc>
+ 2bb4: d6 01 movw r26, r12
+ 2bb6: ed 91 ld r30, X+
+ 2bb8: fc 91 ld r31, X
+ 2bba: 11 97 sbiw r26, 0x01 ; 1
+ 2bbc: ec 0f add r30, r28
+ 2bbe: fd 1f adc r31, r29
+ 2bc0: b0 82 st Z, r11
+ 2bc2: 8f 2d mov r24, r15
+ 2bc4: 9e 2d mov r25, r14
+ 2bc6: df 91 pop r29
+ 2bc8: cf 91 pop r28
+ 2bca: 1f 91 pop r17
+ 2bcc: 0f 91 pop r16
+ 2bce: ff 90 pop r15
+ 2bd0: ef 90 pop r14
+ 2bd2: df 90 pop r13
+ 2bd4: cf 90 pop r12
+ 2bd6: bf 90 pop r11
+ 2bd8: af 90 pop r10
+ 2bda: 08 95 ret
+
+00002bdc <_ZNK6String9substringEj>:
+ 2bdc: cf 93 push r28
+ 2bde: df 93 push r29
+ 2be0: ec 01 movw r28, r24
+ 2be2: fb 01 movw r30, r22
+ 2be4: 24 81 ldd r18, Z+4 ; 0x04
+ 2be6: 35 81 ldd r19, Z+5 ; 0x05
+ 2be8: 0e 94 9d 15 call 0x2b3a ; 0x2b3a <_ZNK6String9substringEjj>
+ 2bec: ce 01 movw r24, r28
+ 2bee: df 91 pop r29
+ 2bf0: cf 91 pop r28
+ 2bf2: 08 95 ret
+
+00002bf4 <_ZN6String7replaceEcc>:
+ 2bf4: dc 01 movw r26, r24
+ 2bf6: ed 91 ld r30, X+
+ 2bf8: fc 91 ld r31, X
+ 2bfa: 11 97 sbiw r26, 0x01 ; 1
+ 2bfc: 30 97 sbiw r30, 0x00 ; 0
+ 2bfe: 29 f4 brne .+10 ; 0x2c0a <_ZN6String7replaceEcc+0x16>
+ 2c00: 08 95 ret
+ 2c02: 86 17 cp r24, r22
+ 2c04: 09 f4 brne .+2 ; 0x2c08 <_ZN6String7replaceEcc+0x14>
+ 2c06: 40 83 st Z, r20
+ 2c08: 31 96 adiw r30, 0x01 ; 1
+ 2c0a: 80 81 ld r24, Z
+ 2c0c: 88 23 and r24, r24
+ 2c0e: c9 f7 brne .-14 ; 0x2c02 <_ZN6String7replaceEcc+0xe>
+ 2c10: 08 95 ret
+
+00002c12 <_ZN6String7replaceERKS_S1_>:
+ 2c12: 2f 92 push r2
+ 2c14: 3f 92 push r3
+ 2c16: 4f 92 push r4
+ 2c18: 5f 92 push r5
+ 2c1a: 6f 92 push r6
+ 2c1c: 7f 92 push r7
+ 2c1e: 8f 92 push r8
+ 2c20: 9f 92 push r9
+ 2c22: af 92 push r10
+ 2c24: bf 92 push r11
+ 2c26: cf 92 push r12
+ 2c28: df 92 push r13
+ 2c2a: ef 92 push r14
+ 2c2c: ff 92 push r15
+ 2c2e: 0f 93 push r16
+ 2c30: 1f 93 push r17
+ 2c32: cf 93 push r28
+ 2c34: df 93 push r29
+ 2c36: 7c 01 movw r14, r24
+ 2c38: 2b 01 movw r4, r22
+ 2c3a: 6a 01 movw r12, r20
+ 2c3c: dc 01 movw r26, r24
+ 2c3e: 14 96 adiw r26, 0x04 ; 4
+ 2c40: 6d 90 ld r6, X+
+ 2c42: 7c 90 ld r7, X
+ 2c44: 15 97 sbiw r26, 0x05 ; 5
+ 2c46: 61 14 cp r6, r1
+ 2c48: 71 04 cpc r7, r1
+ 2c4a: 09 f4 brne .+2 ; 0x2c4e <_ZN6String7replaceERKS_S1_+0x3c>
+ 2c4c: d9 c0 rjmp .+434 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2c4e: fb 01 movw r30, r22
+ 2c50: 84 80 ldd r8, Z+4 ; 0x04
+ 2c52: 95 80 ldd r9, Z+5 ; 0x05
+ 2c54: 81 14 cp r8, r1
+ 2c56: 91 04 cpc r9, r1
+ 2c58: 09 f4 brne .+2 ; 0x2c5c <_ZN6String7replaceERKS_S1_+0x4a>
+ 2c5a: d2 c0 rjmp .+420 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2c5c: da 01 movw r26, r20
+ 2c5e: 14 96 adiw r26, 0x04 ; 4
+ 2c60: ad 90 ld r10, X+
+ 2c62: bc 90 ld r11, X
+ 2c64: 15 97 sbiw r26, 0x05 ; 5
+ 2c66: a8 18 sub r10, r8
+ 2c68: b9 08 sbc r11, r9
+ 2c6a: fc 01 movw r30, r24
+ 2c6c: 00 81 ld r16, Z
+ 2c6e: 11 81 ldd r17, Z+1 ; 0x01
+ 2c70: a1 14 cp r10, r1
+ 2c72: b1 04 cpc r11, r1
+ 2c74: f1 f4 brne .+60 ; 0x2cb2 <_ZN6String7replaceERKS_S1_+0xa0>
+ 2c76: 13 c0 rjmp .+38 ; 0x2c9e <_ZN6String7replaceERKS_S1_+0x8c>
+ 2c78: d6 01 movw r26, r12
+ 2c7a: 6c 91 ld r22, X
+ 2c7c: 11 96 adiw r26, 0x01 ; 1
+ 2c7e: 7c 91 ld r23, X
+ 2c80: 11 97 sbiw r26, 0x01 ; 1
+ 2c82: 14 96 adiw r26, 0x04 ; 4
+ 2c84: 4d 91 ld r20, X+
+ 2c86: 5c 91 ld r21, X
+ 2c88: 15 97 sbiw r26, 0x05 ; 5
+ 2c8a: ce 01 movw r24, r28
+ 2c8c: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 2c90: d6 01 movw r26, r12
+ 2c92: 14 96 adiw r26, 0x04 ; 4
+ 2c94: 0d 91 ld r16, X+
+ 2c96: 1c 91 ld r17, X
+ 2c98: 15 97 sbiw r26, 0x05 ; 5
+ 2c9a: 0c 0f add r16, r28
+ 2c9c: 1d 1f adc r17, r29
+ 2c9e: f2 01 movw r30, r4
+ 2ca0: 60 81 ld r22, Z
+ 2ca2: 71 81 ldd r23, Z+1 ; 0x01
+ 2ca4: c8 01 movw r24, r16
+ 2ca6: 0e 94 b7 25 call 0x4b6e ; 0x4b6e <strstr>
+ 2caa: ec 01 movw r28, r24
+ 2cac: 00 97 sbiw r24, 0x00 ; 0
+ 2cae: 21 f7 brne .-56 ; 0x2c78 <_ZN6String7replaceERKS_S1_+0x66>
+ 2cb0: a7 c0 rjmp .+334 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2cb2: b7 fc sbrc r11, 7
+ 2cb4: 02 c0 rjmp .+4 ; 0x2cba <_ZN6String7replaceERKS_S1_+0xa8>
+ 2cb6: e3 01 movw r28, r6
+ 2cb8: 42 c0 rjmp .+132 ; 0x2d3e <_ZN6String7replaceERKS_S1_+0x12c>
+ 2cba: 48 01 movw r8, r16
+ 2cbc: 2d c0 rjmp .+90 ; 0x2d18 <_ZN6String7replaceERKS_S1_+0x106>
+ 2cbe: e3 01 movw r28, r6
+ 2cc0: c0 1b sub r28, r16
+ 2cc2: d1 0b sbc r29, r17
+ 2cc4: c4 01 movw r24, r8
+ 2cc6: b8 01 movw r22, r16
+ 2cc8: ae 01 movw r20, r28
+ 2cca: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 2cce: c8 0d add r28, r8
+ 2cd0: d9 1d adc r29, r9
+ 2cd2: d6 01 movw r26, r12
+ 2cd4: 6c 91 ld r22, X
+ 2cd6: 11 96 adiw r26, 0x01 ; 1
+ 2cd8: 7c 91 ld r23, X
+ 2cda: 11 97 sbiw r26, 0x01 ; 1
+ 2cdc: 14 96 adiw r26, 0x04 ; 4
+ 2cde: 4d 91 ld r20, X+
+ 2ce0: 5c 91 ld r21, X
+ 2ce2: 15 97 sbiw r26, 0x05 ; 5
+ 2ce4: ce 01 movw r24, r28
+ 2ce6: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 2cea: d6 01 movw r26, r12
+ 2cec: 14 96 adiw r26, 0x04 ; 4
+ 2cee: 8d 90 ld r8, X+
+ 2cf0: 9c 90 ld r9, X
+ 2cf2: 15 97 sbiw r26, 0x05 ; 5
+ 2cf4: 8c 0e add r8, r28
+ 2cf6: 9d 1e adc r9, r29
+ 2cf8: f2 01 movw r30, r4
+ 2cfa: 04 81 ldd r16, Z+4 ; 0x04
+ 2cfc: 15 81 ldd r17, Z+5 ; 0x05
+ 2cfe: 06 0d add r16, r6
+ 2d00: 17 1d adc r17, r7
+ 2d02: d7 01 movw r26, r14
+ 2d04: 14 96 adiw r26, 0x04 ; 4
+ 2d06: 8d 91 ld r24, X+
+ 2d08: 9c 91 ld r25, X
+ 2d0a: 15 97 sbiw r26, 0x05 ; 5
+ 2d0c: 8a 0d add r24, r10
+ 2d0e: 9b 1d adc r25, r11
+ 2d10: 15 96 adiw r26, 0x05 ; 5
+ 2d12: 9c 93 st X, r25
+ 2d14: 8e 93 st -X, r24
+ 2d16: 14 97 sbiw r26, 0x04 ; 4
+ 2d18: f2 01 movw r30, r4
+ 2d1a: 60 81 ld r22, Z
+ 2d1c: 71 81 ldd r23, Z+1 ; 0x01
+ 2d1e: c8 01 movw r24, r16
+ 2d20: 0e 94 b7 25 call 0x4b6e ; 0x4b6e <strstr>
+ 2d24: 3c 01 movw r6, r24
+ 2d26: 00 97 sbiw r24, 0x00 ; 0
+ 2d28: 51 f6 brne .-108 ; 0x2cbe <_ZN6String7replaceERKS_S1_+0xac>
+ 2d2a: c4 01 movw r24, r8
+ 2d2c: b8 01 movw r22, r16
+ 2d2e: 0e 94 88 25 call 0x4b10 ; 0x4b10 <strcpy>
+ 2d32: 66 c0 rjmp .+204 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2d34: 8c 01 movw r16, r24
+ 2d36: 08 0d add r16, r8
+ 2d38: 19 1d adc r17, r9
+ 2d3a: ca 0d add r28, r10
+ 2d3c: db 1d adc r29, r11
+ 2d3e: d2 01 movw r26, r4
+ 2d40: 6d 91 ld r22, X+
+ 2d42: 7c 91 ld r23, X
+ 2d44: c8 01 movw r24, r16
+ 2d46: 0e 94 b7 25 call 0x4b6e ; 0x4b6e <strstr>
+ 2d4a: 00 97 sbiw r24, 0x00 ; 0
+ 2d4c: 99 f7 brne .-26 ; 0x2d34 <_ZN6String7replaceERKS_S1_+0x122>
+ 2d4e: c6 15 cp r28, r6
+ 2d50: d7 05 cpc r29, r7
+ 2d52: 09 f4 brne .+2 ; 0x2d56 <_ZN6String7replaceERKS_S1_+0x144>
+ 2d54: 55 c0 rjmp .+170 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2d56: f7 01 movw r30, r14
+ 2d58: 82 81 ldd r24, Z+2 ; 0x02
+ 2d5a: 93 81 ldd r25, Z+3 ; 0x03
+ 2d5c: 8c 17 cp r24, r28
+ 2d5e: 9d 07 cpc r25, r29
+ 2d60: 08 f0 brcs .+2 ; 0x2d64 <_ZN6String7replaceERKS_S1_+0x152>
+ 2d62: 45 c0 rjmp .+138 ; 0x2dee <_ZN6String7replaceERKS_S1_+0x1dc>
+ 2d64: c7 01 movw r24, r14
+ 2d66: be 01 movw r22, r28
+ 2d68: 0e 94 b2 0f call 0x1f64 ; 0x1f64 <_ZN6String12changeBufferEj>
+ 2d6c: 88 23 and r24, r24
+ 2d6e: 09 f4 brne .+2 ; 0x2d72 <_ZN6String7replaceERKS_S1_+0x160>
+ 2d70: 47 c0 rjmp .+142 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2d72: 3d c0 rjmp .+122 ; 0x2dee <_ZN6String7replaceERKS_S1_+0x1dc>
+ 2d74: c7 01 movw r24, r14
+ 2d76: b2 01 movw r22, r4
+ 2d78: a9 01 movw r20, r18
+ 2d7a: 0e 94 45 15 call 0x2a8a ; 0x2a8a <_ZNK6String11lastIndexOfERKS_j>
+ 2d7e: ec 01 movw r28, r24
+ 2d80: 97 fd sbrc r25, 7
+ 2d82: 3e c0 rjmp .+124 ; 0x2e00 <_ZN6String7replaceERKS_S1_+0x1ee>
+ 2d84: d7 01 movw r26, r14
+ 2d86: 6d 91 ld r22, X+
+ 2d88: 7c 91 ld r23, X
+ 2d8a: 11 97 sbiw r26, 0x01 ; 1
+ 2d8c: f2 01 movw r30, r4
+ 2d8e: 84 81 ldd r24, Z+4 ; 0x04
+ 2d90: 95 81 ldd r25, Z+5 ; 0x05
+ 2d92: 8c 0f add r24, r28
+ 2d94: 9d 1f adc r25, r29
+ 2d96: 68 0f add r22, r24
+ 2d98: 79 1f adc r23, r25
+ 2d9a: 14 96 adiw r26, 0x04 ; 4
+ 2d9c: 4d 91 ld r20, X+
+ 2d9e: 5c 91 ld r21, X
+ 2da0: 15 97 sbiw r26, 0x05 ; 5
+ 2da2: 48 1b sub r20, r24
+ 2da4: 59 0b sbc r21, r25
+ 2da6: cb 01 movw r24, r22
+ 2da8: 8a 0d add r24, r10
+ 2daa: 9b 1d adc r25, r11
+ 2dac: 0e 94 62 25 call 0x4ac4 ; 0x4ac4 <memmove>
+ 2db0: d7 01 movw r26, r14
+ 2db2: 14 96 adiw r26, 0x04 ; 4
+ 2db4: 8d 91 ld r24, X+
+ 2db6: 9c 91 ld r25, X
+ 2db8: 15 97 sbiw r26, 0x05 ; 5
+ 2dba: 8a 0d add r24, r10
+ 2dbc: 9b 1d adc r25, r11
+ 2dbe: 15 96 adiw r26, 0x05 ; 5
+ 2dc0: 9c 93 st X, r25
+ 2dc2: 8e 93 st -X, r24
+ 2dc4: 14 97 sbiw r26, 0x04 ; 4
+ 2dc6: ed 91 ld r30, X+
+ 2dc8: fc 91 ld r31, X
+ 2dca: 11 97 sbiw r26, 0x01 ; 1
+ 2dcc: e8 0f add r30, r24
+ 2dce: f9 1f adc r31, r25
+ 2dd0: 10 82 st Z, r1
+ 2dd2: 2d 91 ld r18, X+
+ 2dd4: 3c 91 ld r19, X
+ 2dd6: 2c 0f add r18, r28
+ 2dd8: 3d 1f adc r19, r29
+ 2dda: f6 01 movw r30, r12
+ 2ddc: 60 81 ld r22, Z
+ 2dde: 71 81 ldd r23, Z+1 ; 0x01
+ 2de0: 44 81 ldd r20, Z+4 ; 0x04
+ 2de2: 55 81 ldd r21, Z+5 ; 0x05
+ 2de4: c9 01 movw r24, r18
+ 2de6: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 2dea: 9e 01 movw r18, r28
+ 2dec: 05 c0 rjmp .+10 ; 0x2df8 <_ZN6String7replaceERKS_S1_+0x1e6>
+ 2dee: d7 01 movw r26, r14
+ 2df0: 14 96 adiw r26, 0x04 ; 4
+ 2df2: 2d 91 ld r18, X+
+ 2df4: 3c 91 ld r19, X
+ 2df6: 15 97 sbiw r26, 0x05 ; 5
+ 2df8: 21 50 subi r18, 0x01 ; 1
+ 2dfa: 30 40 sbci r19, 0x00 ; 0
+ 2dfc: 37 ff sbrs r19, 7
+ 2dfe: ba cf rjmp .-140 ; 0x2d74 <_ZN6String7replaceERKS_S1_+0x162>
+ 2e00: df 91 pop r29
+ 2e02: cf 91 pop r28
+ 2e04: 1f 91 pop r17
+ 2e06: 0f 91 pop r16
+ 2e08: ff 90 pop r15
+ 2e0a: ef 90 pop r14
+ 2e0c: df 90 pop r13
+ 2e0e: cf 90 pop r12
+ 2e10: bf 90 pop r11
+ 2e12: af 90 pop r10
+ 2e14: 9f 90 pop r9
+ 2e16: 8f 90 pop r8
+ 2e18: 7f 90 pop r7
+ 2e1a: 6f 90 pop r6
+ 2e1c: 5f 90 pop r5
+ 2e1e: 4f 90 pop r4
+ 2e20: 3f 90 pop r3
+ 2e22: 2f 90 pop r2
+ 2e24: 08 95 ret
+
+00002e26 <_ZN6String11toLowerCaseEv>:
+ 2e26: cf 93 push r28
+ 2e28: df 93 push r29
+ 2e2a: fc 01 movw r30, r24
+ 2e2c: c0 81 ld r28, Z
+ 2e2e: d1 81 ldd r29, Z+1 ; 0x01
+ 2e30: 20 97 sbiw r28, 0x00 ; 0
+ 2e32: 39 f4 brne .+14 ; 0x2e42 <_ZN6String11toLowerCaseEv+0x1c>
+ 2e34: 09 c0 rjmp .+18 ; 0x2e48 <_ZN6String11toLowerCaseEv+0x22>
+ 2e36: 99 27 eor r25, r25
+ 2e38: 87 fd sbrc r24, 7
+ 2e3a: 90 95 com r25
+ 2e3c: 0e 94 3c 25 call 0x4a78 ; 0x4a78 <tolower>
+ 2e40: 89 93 st Y+, r24
+ 2e42: 88 81 ld r24, Y
+ 2e44: 88 23 and r24, r24
+ 2e46: b9 f7 brne .-18 ; 0x2e36 <_ZN6String11toLowerCaseEv+0x10>
+ 2e48: df 91 pop r29
+ 2e4a: cf 91 pop r28
+ 2e4c: 08 95 ret
+
+00002e4e <_ZN6String11toUpperCaseEv>:
+ 2e4e: cf 93 push r28
+ 2e50: df 93 push r29
+ 2e52: fc 01 movw r30, r24
+ 2e54: c0 81 ld r28, Z
+ 2e56: d1 81 ldd r29, Z+1 ; 0x01
+ 2e58: 20 97 sbiw r28, 0x00 ; 0
+ 2e5a: 39 f4 brne .+14 ; 0x2e6a <_ZN6String11toUpperCaseEv+0x1c>
+ 2e5c: 09 c0 rjmp .+18 ; 0x2e70 <_ZN6String11toUpperCaseEv+0x22>
+ 2e5e: 99 27 eor r25, r25
+ 2e60: 87 fd sbrc r24, 7
+ 2e62: 90 95 com r25
+ 2e64: 0e 94 44 25 call 0x4a88 ; 0x4a88 <toupper>
+ 2e68: 89 93 st Y+, r24
+ 2e6a: 88 81 ld r24, Y
+ 2e6c: 88 23 and r24, r24
+ 2e6e: b9 f7 brne .-18 ; 0x2e5e <_ZN6String11toUpperCaseEv+0x10>
+ 2e70: df 91 pop r29
+ 2e72: cf 91 pop r28
+ 2e74: 08 95 ret
+
+00002e76 <_ZN6String4trimEv>:
+ 2e76: af 92 push r10
+ 2e78: bf 92 push r11
+ 2e7a: cf 92 push r12
+ 2e7c: df 92 push r13
+ 2e7e: ef 92 push r14
+ 2e80: ff 92 push r15
+ 2e82: 0f 93 push r16
+ 2e84: 1f 93 push r17
+ 2e86: cf 93 push r28
+ 2e88: df 93 push r29
+ 2e8a: 6c 01 movw r12, r24
+ 2e8c: dc 01 movw r26, r24
+ 2e8e: ed 90 ld r14, X+
+ 2e90: fc 90 ld r15, X
+ 2e92: 11 97 sbiw r26, 0x01 ; 1
+ 2e94: e1 14 cp r14, r1
+ 2e96: f1 04 cpc r15, r1
+ 2e98: 09 f4 brne .+2 ; 0x2e9c <_ZN6String4trimEv+0x26>
+ 2e9a: 43 c0 rjmp .+134 ; 0x2f22 <_ZN6String4trimEv+0xac>
+ 2e9c: 14 96 adiw r26, 0x04 ; 4
+ 2e9e: ad 90 ld r10, X+
+ 2ea0: bc 90 ld r11, X
+ 2ea2: 15 97 sbiw r26, 0x05 ; 5
+ 2ea4: a1 14 cp r10, r1
+ 2ea6: b1 04 cpc r11, r1
+ 2ea8: e1 f1 breq .+120 ; 0x2f22 <_ZN6String4trimEv+0xac>
+ 2eaa: 87 01 movw r16, r14
+ 2eac: e8 01 movw r28, r16
+ 2eae: 88 81 ld r24, Y
+ 2eb0: 0f 5f subi r16, 0xFF ; 255
+ 2eb2: 1f 4f sbci r17, 0xFF ; 255
+ 2eb4: 99 27 eor r25, r25
+ 2eb6: 87 fd sbrc r24, 7
+ 2eb8: 90 95 com r25
+ 2eba: 0e 94 34 25 call 0x4a68 ; 0x4a68 <isspace>
+ 2ebe: 00 97 sbiw r24, 0x00 ; 0
+ 2ec0: a9 f7 brne .-22 ; 0x2eac <_ZN6String4trimEv+0x36>
+ 2ec2: 85 01 movw r16, r10
+ 2ec4: 01 50 subi r16, 0x01 ; 1
+ 2ec6: 10 40 sbci r17, 0x00 ; 0
+ 2ec8: 0e 0d add r16, r14
+ 2eca: 1f 1d adc r17, r15
+ 2ecc: f8 01 movw r30, r16
+ 2ece: 80 81 ld r24, Z
+ 2ed0: 99 27 eor r25, r25
+ 2ed2: 87 fd sbrc r24, 7
+ 2ed4: 90 95 com r25
+ 2ed6: 0e 94 34 25 call 0x4a68 ; 0x4a68 <isspace>
+ 2eda: 00 97 sbiw r24, 0x00 ; 0
+ 2edc: 31 f0 breq .+12 ; 0x2eea <_ZN6String4trimEv+0x74>
+ 2ede: 0c 17 cp r16, r28
+ 2ee0: 1d 07 cpc r17, r29
+ 2ee2: 18 f0 brcs .+6 ; 0x2eea <_ZN6String4trimEv+0x74>
+ 2ee4: 01 50 subi r16, 0x01 ; 1
+ 2ee6: 10 40 sbci r17, 0x00 ; 0
+ 2ee8: f1 cf rjmp .-30 ; 0x2ecc <_ZN6String4trimEv+0x56>
+ 2eea: 0f 5f subi r16, 0xFF ; 255
+ 2eec: 1f 4f sbci r17, 0xFF ; 255
+ 2eee: 0c 1b sub r16, r28
+ 2ef0: 1d 0b sbc r17, r29
+ 2ef2: d6 01 movw r26, r12
+ 2ef4: 15 96 adiw r26, 0x05 ; 5
+ 2ef6: 1c 93 st X, r17
+ 2ef8: 0e 93 st -X, r16
+ 2efa: 14 97 sbiw r26, 0x04 ; 4
+ 2efc: ec 16 cp r14, r28
+ 2efe: fd 06 cpc r15, r29
+ 2f00: 28 f4 brcc .+10 ; 0x2f0c <_ZN6String4trimEv+0x96>
+ 2f02: c7 01 movw r24, r14
+ 2f04: be 01 movw r22, r28
+ 2f06: a8 01 movw r20, r16
+ 2f08: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 2f0c: d6 01 movw r26, r12
+ 2f0e: ed 91 ld r30, X+
+ 2f10: fc 91 ld r31, X
+ 2f12: 11 97 sbiw r26, 0x01 ; 1
+ 2f14: 14 96 adiw r26, 0x04 ; 4
+ 2f16: 8d 91 ld r24, X+
+ 2f18: 9c 91 ld r25, X
+ 2f1a: 15 97 sbiw r26, 0x05 ; 5
+ 2f1c: e8 0f add r30, r24
+ 2f1e: f9 1f adc r31, r25
+ 2f20: 10 82 st Z, r1
+ 2f22: df 91 pop r29
+ 2f24: cf 91 pop r28
+ 2f26: 1f 91 pop r17
+ 2f28: 0f 91 pop r16
+ 2f2a: ff 90 pop r15
+ 2f2c: ef 90 pop r14
+ 2f2e: df 90 pop r13
+ 2f30: cf 90 pop r12
+ 2f32: bf 90 pop r11
+ 2f34: af 90 pop r10
+ 2f36: 08 95 ret
+
+00002f38 <_ZNK6String5toIntEv>:
+ 2f38: fc 01 movw r30, r24
+ 2f3a: 80 81 ld r24, Z
+ 2f3c: 91 81 ldd r25, Z+1 ; 0x01
+ 2f3e: 00 97 sbiw r24, 0x00 ; 0
+ 2f40: 29 f0 breq .+10 ; 0x2f4c <_ZNK6String5toIntEv+0x14>
+ 2f42: 0e 94 0d 25 call 0x4a1a ; 0x4a1a <atol>
+ 2f46: 9b 01 movw r18, r22
+ 2f48: ac 01 movw r20, r24
+ 2f4a: 03 c0 rjmp .+6 ; 0x2f52 <_ZNK6String5toIntEv+0x1a>
+ 2f4c: 20 e0 ldi r18, 0x00 ; 0
+ 2f4e: 30 e0 ldi r19, 0x00 ; 0
+ 2f50: a9 01 movw r20, r18
+ 2f52: b9 01 movw r22, r18
+ 2f54: ca 01 movw r24, r20
+ 2f56: 08 95 ret
+
+00002f58 <_Znwj>:
+ 2f58: 0e 94 ba 22 call 0x4574 ; 0x4574 <malloc>
+ 2f5c: 08 95 ret
+
+00002f5e <_ZdlPv>:
+ 2f5e: 0e 94 54 23 call 0x46a8 ; 0x46a8 <free>
+ 2f62: 08 95 ret
+
+00002f64 <__cxa_guard_acquire>:
+ 2f64: 21 e0 ldi r18, 0x01 ; 1
+ 2f66: 30 e0 ldi r19, 0x00 ; 0
+ 2f68: fc 01 movw r30, r24
+ 2f6a: 80 81 ld r24, Z
+ 2f6c: 88 23 and r24, r24
+ 2f6e: 11 f0 breq .+4 ; 0x2f74 <__cxa_guard_acquire+0x10>
+ 2f70: 20 e0 ldi r18, 0x00 ; 0
+ 2f72: 30 e0 ldi r19, 0x00 ; 0
+ 2f74: c9 01 movw r24, r18
+ 2f76: 08 95 ret
+
+00002f78 <__cxa_guard_release>:
+ 2f78: 21 e0 ldi r18, 0x01 ; 1
+ 2f7a: fc 01 movw r30, r24
+ 2f7c: 20 83 st Z, r18
+ 2f7e: 08 95 ret
+
+00002f80 <__cxa_guard_abort>:
+ 2f80: 08 95 ret
+
+00002f82 <__cxa_pure_virtual>:
+ 2f82: 08 95 ret
+
+00002f84 <__vector_16>:
+ 2f84: 1f 92 push r1
+ 2f86: 0f 92 push r0
+ 2f88: 0f b6 in r0, 0x3f ; 63
+ 2f8a: 0f 92 push r0
+ 2f8c: 11 24 eor r1, r1
+ 2f8e: 2f 93 push r18
+ 2f90: 3f 93 push r19
+ 2f92: 4f 93 push r20
+ 2f94: 5f 93 push r21
+ 2f96: 6f 93 push r22
+ 2f98: 7f 93 push r23
+ 2f9a: 8f 93 push r24
+ 2f9c: 9f 93 push r25
+ 2f9e: af 93 push r26
+ 2fa0: bf 93 push r27
+ 2fa2: 20 91 a5 03 lds r18, 0x03A5
+ 2fa6: 30 91 a6 03 lds r19, 0x03A6
+ 2faa: 40 91 a7 03 lds r20, 0x03A7
+ 2fae: 50 91 a8 03 lds r21, 0x03A8
+ 2fb2: 70 91 a9 03 lds r23, 0x03A9
+ 2fb6: da 01 movw r26, r20
+ 2fb8: c9 01 movw r24, r18
+ 2fba: 02 96 adiw r24, 0x02 ; 2
+ 2fbc: a1 1d adc r26, r1
+ 2fbe: b1 1d adc r27, r1
+ 2fc0: 67 2f mov r22, r23
+ 2fc2: 6a 5f subi r22, 0xFA ; 250
+ 2fc4: 6d 37 cpi r22, 0x7D ; 125
+ 2fc6: 30 f0 brcs .+12 ; 0x2fd4 <__vector_16+0x50>
+ 2fc8: 6d 57 subi r22, 0x7D ; 125
+ 2fca: da 01 movw r26, r20
+ 2fcc: c9 01 movw r24, r18
+ 2fce: 03 96 adiw r24, 0x03 ; 3
+ 2fd0: a1 1d adc r26, r1
+ 2fd2: b1 1d adc r27, r1
+ 2fd4: 60 93 a9 03 sts 0x03A9, r22
+ 2fd8: 80 93 a5 03 sts 0x03A5, r24
+ 2fdc: 90 93 a6 03 sts 0x03A6, r25
+ 2fe0: a0 93 a7 03 sts 0x03A7, r26
+ 2fe4: b0 93 a8 03 sts 0x03A8, r27
+ 2fe8: 80 91 a1 03 lds r24, 0x03A1
+ 2fec: 90 91 a2 03 lds r25, 0x03A2
+ 2ff0: a0 91 a3 03 lds r26, 0x03A3
+ 2ff4: b0 91 a4 03 lds r27, 0x03A4
+ 2ff8: 01 96 adiw r24, 0x01 ; 1
+ 2ffa: a1 1d adc r26, r1
+ 2ffc: b1 1d adc r27, r1
+ 2ffe: 80 93 a1 03 sts 0x03A1, r24
+ 3002: 90 93 a2 03 sts 0x03A2, r25
+ 3006: a0 93 a3 03 sts 0x03A3, r26
+ 300a: b0 93 a4 03 sts 0x03A4, r27
+ 300e: bf 91 pop r27
+ 3010: af 91 pop r26
+ 3012: 9f 91 pop r25
+ 3014: 8f 91 pop r24
+ 3016: 7f 91 pop r23
+ 3018: 6f 91 pop r22
+ 301a: 5f 91 pop r21
+ 301c: 4f 91 pop r20
+ 301e: 3f 91 pop r19
+ 3020: 2f 91 pop r18
+ 3022: 0f 90 pop r0
+ 3024: 0f be out 0x3f, r0 ; 63
+ 3026: 0f 90 pop r0
+ 3028: 1f 90 pop r1
+ 302a: 18 95 reti
+
+0000302c <millis>:
+ 302c: 8f b7 in r24, 0x3f ; 63
+ 302e: f8 94 cli
+ 3030: 20 91 a5 03 lds r18, 0x03A5
+ 3034: 30 91 a6 03 lds r19, 0x03A6
+ 3038: 40 91 a7 03 lds r20, 0x03A7
+ 303c: 50 91 a8 03 lds r21, 0x03A8
+ 3040: 8f bf out 0x3f, r24 ; 63
+ 3042: b9 01 movw r22, r18
+ 3044: ca 01 movw r24, r20
+ 3046: 08 95 ret
+
+00003048 <micros>:
+ 3048: 9f b7 in r25, 0x3f ; 63
+ 304a: f8 94 cli
+ 304c: 20 91 a1 03 lds r18, 0x03A1
+ 3050: 30 91 a2 03 lds r19, 0x03A2
+ 3054: 40 91 a3 03 lds r20, 0x03A3
+ 3058: 50 91 a4 03 lds r21, 0x03A4
+ 305c: 86 b5 in r24, 0x26 ; 38
+ 305e: a8 9b sbis 0x15, 0 ; 21
+ 3060: 06 c0 rjmp .+12 ; 0x306e <micros+0x26>
+ 3062: 8f 3f cpi r24, 0xFF ; 255
+ 3064: 21 f0 breq .+8 ; 0x306e <micros+0x26>
+ 3066: 2f 5f subi r18, 0xFF ; 255
+ 3068: 3f 4f sbci r19, 0xFF ; 255
+ 306a: 4f 4f sbci r20, 0xFF ; 255
+ 306c: 5f 4f sbci r21, 0xFF ; 255
+ 306e: 9f bf out 0x3f, r25 ; 63
+ 3070: 54 2f mov r21, r20
+ 3072: 43 2f mov r20, r19
+ 3074: 32 2f mov r19, r18
+ 3076: 22 27 eor r18, r18
+ 3078: 28 0f add r18, r24
+ 307a: 31 1d adc r19, r1
+ 307c: 41 1d adc r20, r1
+ 307e: 51 1d adc r21, r1
+ 3080: 83 e0 ldi r24, 0x03 ; 3
+ 3082: 22 0f add r18, r18
+ 3084: 33 1f adc r19, r19
+ 3086: 44 1f adc r20, r20
+ 3088: 55 1f adc r21, r21
+ 308a: 8a 95 dec r24
+ 308c: d1 f7 brne .-12 ; 0x3082 <micros+0x3a>
+ 308e: b9 01 movw r22, r18
+ 3090: ca 01 movw r24, r20
+ 3092: 08 95 ret
+
+00003094 <delay>:
+ 3094: ef 92 push r14
+ 3096: ff 92 push r15
+ 3098: 0f 93 push r16
+ 309a: 1f 93 push r17
+ 309c: cf 93 push r28
+ 309e: df 93 push r29
+ 30a0: 7b 01 movw r14, r22
+ 30a2: 8c 01 movw r16, r24
+ 30a4: 0e 94 24 18 call 0x3048 ; 0x3048 <micros>
+ 30a8: eb 01 movw r28, r22
+ 30aa: 0f c0 rjmp .+30 ; 0x30ca <delay+0x36>
+ 30ac: 0e 94 24 18 call 0x3048 ; 0x3048 <micros>
+ 30b0: 6c 1b sub r22, r28
+ 30b2: 7d 0b sbc r23, r29
+ 30b4: 83 e0 ldi r24, 0x03 ; 3
+ 30b6: 68 3e cpi r22, 0xE8 ; 232
+ 30b8: 78 07 cpc r23, r24
+ 30ba: 38 f0 brcs .+14 ; 0x30ca <delay+0x36>
+ 30bc: 08 94 sec
+ 30be: e1 08 sbc r14, r1
+ 30c0: f1 08 sbc r15, r1
+ 30c2: 01 09 sbc r16, r1
+ 30c4: 11 09 sbc r17, r1
+ 30c6: c8 51 subi r28, 0x18 ; 24
+ 30c8: dc 4f sbci r29, 0xFC ; 252
+ 30ca: e1 14 cp r14, r1
+ 30cc: f1 04 cpc r15, r1
+ 30ce: 01 05 cpc r16, r1
+ 30d0: 11 05 cpc r17, r1
+ 30d2: 61 f7 brne .-40 ; 0x30ac <delay+0x18>
+ 30d4: df 91 pop r29
+ 30d6: cf 91 pop r28
+ 30d8: 1f 91 pop r17
+ 30da: 0f 91 pop r16
+ 30dc: ff 90 pop r15
+ 30de: ef 90 pop r14
+ 30e0: 08 95 ret
+
+000030e2 <delayMicroseconds>:
+ 30e2: 01 97 sbiw r24, 0x01 ; 1
+ 30e4: 39 f0 breq .+14 ; 0x30f4 <delayMicroseconds+0x12>
+ 30e6: 01 97 sbiw r24, 0x01 ; 1
+ 30e8: 29 f0 breq .+10 ; 0x30f4 <delayMicroseconds+0x12>
+ 30ea: 88 0f add r24, r24
+ 30ec: 99 1f adc r25, r25
+ 30ee: 01 97 sbiw r24, 0x01 ; 1
+ 30f0: 01 97 sbiw r24, 0x01 ; 1
+ 30f2: f1 f7 brne .-4 ; 0x30f0 <delayMicroseconds+0xe>
+ 30f4: 08 95 ret
+
+000030f6 <init>:
+ 30f6: 78 94 sei
+ 30f8: 84 b5 in r24, 0x24 ; 36
+ 30fa: 82 60 ori r24, 0x02 ; 2
+ 30fc: 84 bd out 0x24, r24 ; 36
+ 30fe: 84 b5 in r24, 0x24 ; 36
+ 3100: 81 60 ori r24, 0x01 ; 1
+ 3102: 84 bd out 0x24, r24 ; 36
+ 3104: 85 b5 in r24, 0x25 ; 37
+ 3106: 82 60 ori r24, 0x02 ; 2
+ 3108: 85 bd out 0x25, r24 ; 37
+ 310a: 85 b5 in r24, 0x25 ; 37
+ 310c: 81 60 ori r24, 0x01 ; 1
+ 310e: 85 bd out 0x25, r24 ; 37
+ 3110: ee e6 ldi r30, 0x6E ; 110
+ 3112: f0 e0 ldi r31, 0x00 ; 0
+ 3114: 80 81 ld r24, Z
+ 3116: 81 60 ori r24, 0x01 ; 1
+ 3118: 80 83 st Z, r24
+ 311a: e1 e8 ldi r30, 0x81 ; 129
+ 311c: f0 e0 ldi r31, 0x00 ; 0
+ 311e: 10 82 st Z, r1
+ 3120: 80 81 ld r24, Z
+ 3122: 82 60 ori r24, 0x02 ; 2
+ 3124: 80 83 st Z, r24
+ 3126: 80 81 ld r24, Z
+ 3128: 81 60 ori r24, 0x01 ; 1
+ 312a: 80 83 st Z, r24
+ 312c: e0 e8 ldi r30, 0x80 ; 128
+ 312e: f0 e0 ldi r31, 0x00 ; 0
+ 3130: 80 81 ld r24, Z
+ 3132: 81 60 ori r24, 0x01 ; 1
+ 3134: 80 83 st Z, r24
+ 3136: e1 eb ldi r30, 0xB1 ; 177
+ 3138: f0 e0 ldi r31, 0x00 ; 0
+ 313a: 80 81 ld r24, Z
+ 313c: 84 60 ori r24, 0x04 ; 4
+ 313e: 80 83 st Z, r24
+ 3140: e0 eb ldi r30, 0xB0 ; 176
+ 3142: f0 e0 ldi r31, 0x00 ; 0
+ 3144: 80 81 ld r24, Z
+ 3146: 81 60 ori r24, 0x01 ; 1
+ 3148: 80 83 st Z, r24
+ 314a: ea e7 ldi r30, 0x7A ; 122
+ 314c: f0 e0 ldi r31, 0x00 ; 0
+ 314e: 80 81 ld r24, Z
+ 3150: 84 60 ori r24, 0x04 ; 4
+ 3152: 80 83 st Z, r24
+ 3154: 80 81 ld r24, Z
+ 3156: 82 60 ori r24, 0x02 ; 2
+ 3158: 80 83 st Z, r24
+ 315a: 80 81 ld r24, Z
+ 315c: 81 60 ori r24, 0x01 ; 1
+ 315e: 80 83 st Z, r24
+ 3160: 80 81 ld r24, Z
+ 3162: 80 68 ori r24, 0x80 ; 128
+ 3164: 80 83 st Z, r24
+ 3166: 10 92 c1 00 sts 0x00C1, r1
+ 316a: 08 95 ret
+
+0000316c <analogReference>:
+ 316c: 80 93 ad 01 sts 0x01AD, r24
+ 3170: 08 95 ret
+
+00003172 <analogRead>:
+ 3172: 8e 30 cpi r24, 0x0E ; 14
+ 3174: 08 f0 brcs .+2 ; 0x3178 <analogRead+0x6>
+ 3176: 8e 50 subi r24, 0x0E ; 14
+ 3178: 87 70 andi r24, 0x07 ; 7
+ 317a: 90 91 ad 01 lds r25, 0x01AD
+ 317e: 92 95 swap r25
+ 3180: 99 0f add r25, r25
+ 3182: 99 0f add r25, r25
+ 3184: 90 7c andi r25, 0xC0 ; 192
+ 3186: 98 2b or r25, r24
+ 3188: 90 93 7c 00 sts 0x007C, r25
+ 318c: 80 91 7a 00 lds r24, 0x007A
+ 3190: 80 64 ori r24, 0x40 ; 64
+ 3192: 80 93 7a 00 sts 0x007A, r24
+ 3196: 80 91 7a 00 lds r24, 0x007A
+ 319a: 86 fd sbrc r24, 6
+ 319c: fc cf rjmp .-8 ; 0x3196 <analogRead+0x24>
+ 319e: 20 91 78 00 lds r18, 0x0078
+ 31a2: 30 91 79 00 lds r19, 0x0079
+ 31a6: 93 2f mov r25, r19
+ 31a8: 80 e0 ldi r24, 0x00 ; 0
+ 31aa: 30 e0 ldi r19, 0x00 ; 0
+ 31ac: 28 2b or r18, r24
+ 31ae: 39 2b or r19, r25
+ 31b0: c9 01 movw r24, r18
+ 31b2: 08 95 ret
+
+000031b4 <analogWrite>:
+ 31b4: 1f 93 push r17
+ 31b6: cf 93 push r28
+ 31b8: df 93 push r29
+ 31ba: 18 2f mov r17, r24
+ 31bc: eb 01 movw r28, r22
+ 31be: 61 e0 ldi r22, 0x01 ; 1
+ 31c0: 0e 94 67 19 call 0x32ce ; 0x32ce <pinMode>
+ 31c4: 20 97 sbiw r28, 0x00 ; 0
+ 31c6: 09 f4 brne .+2 ; 0x31ca <analogWrite+0x16>
+ 31c8: 4a c0 rjmp .+148 ; 0x325e <analogWrite+0xaa>
+ 31ca: cf 3f cpi r28, 0xFF ; 255
+ 31cc: d1 05 cpc r29, r1
+ 31ce: 09 f4 brne .+2 ; 0x31d2 <analogWrite+0x1e>
+ 31d0: 49 c0 rjmp .+146 ; 0x3264 <analogWrite+0xb0>
+ 31d2: e1 2f mov r30, r17
+ 31d4: f0 e0 ldi r31, 0x00 ; 0
+ 31d6: e1 55 subi r30, 0x51 ; 81
+ 31d8: ff 4f sbci r31, 0xFF ; 255
+ 31da: e4 91 lpm r30, Z+
+ 31dc: e3 30 cpi r30, 0x03 ; 3
+ 31de: c1 f0 breq .+48 ; 0x3210 <analogWrite+0x5c>
+ 31e0: e4 30 cpi r30, 0x04 ; 4
+ 31e2: 28 f4 brcc .+10 ; 0x31ee <analogWrite+0x3a>
+ 31e4: e1 30 cpi r30, 0x01 ; 1
+ 31e6: 51 f0 breq .+20 ; 0x31fc <analogWrite+0x48>
+ 31e8: e2 30 cpi r30, 0x02 ; 2
+ 31ea: b1 f5 brne .+108 ; 0x3258 <analogWrite+0xa4>
+ 31ec: 0c c0 rjmp .+24 ; 0x3206 <analogWrite+0x52>
+ 31ee: e6 30 cpi r30, 0x06 ; 6
+ 31f0: 19 f1 breq .+70 ; 0x3238 <analogWrite+0x84>
+ 31f2: e7 30 cpi r30, 0x07 ; 7
+ 31f4: 49 f1 breq .+82 ; 0x3248 <analogWrite+0x94>
+ 31f6: e4 30 cpi r30, 0x04 ; 4
+ 31f8: 79 f5 brne .+94 ; 0x3258 <analogWrite+0xa4>
+ 31fa: 14 c0 rjmp .+40 ; 0x3224 <analogWrite+0x70>
+ 31fc: 84 b5 in r24, 0x24 ; 36
+ 31fe: 80 68 ori r24, 0x80 ; 128
+ 3200: 84 bd out 0x24, r24 ; 36
+ 3202: c7 bd out 0x27, r28 ; 39
+ 3204: 33 c0 rjmp .+102 ; 0x326c <analogWrite+0xb8>
+ 3206: 84 b5 in r24, 0x24 ; 36
+ 3208: 80 62 ori r24, 0x20 ; 32
+ 320a: 84 bd out 0x24, r24 ; 36
+ 320c: c8 bd out 0x28, r28 ; 40
+ 320e: 2e c0 rjmp .+92 ; 0x326c <analogWrite+0xb8>
+ 3210: 80 91 80 00 lds r24, 0x0080
+ 3214: 80 68 ori r24, 0x80 ; 128
+ 3216: 80 93 80 00 sts 0x0080, r24
+ 321a: d0 93 89 00 sts 0x0089, r29
+ 321e: c0 93 88 00 sts 0x0088, r28
+ 3222: 24 c0 rjmp .+72 ; 0x326c <analogWrite+0xb8>
+ 3224: 80 91 80 00 lds r24, 0x0080
+ 3228: 80 62 ori r24, 0x20 ; 32
+ 322a: 80 93 80 00 sts 0x0080, r24
+ 322e: d0 93 8b 00 sts 0x008B, r29
+ 3232: c0 93 8a 00 sts 0x008A, r28
+ 3236: 1a c0 rjmp .+52 ; 0x326c <analogWrite+0xb8>
+ 3238: 80 91 b0 00 lds r24, 0x00B0
+ 323c: 80 68 ori r24, 0x80 ; 128
+ 323e: 80 93 b0 00 sts 0x00B0, r24
+ 3242: c0 93 b3 00 sts 0x00B3, r28
+ 3246: 12 c0 rjmp .+36 ; 0x326c <analogWrite+0xb8>
+ 3248: 80 91 b0 00 lds r24, 0x00B0
+ 324c: 80 62 ori r24, 0x20 ; 32
+ 324e: 80 93 b0 00 sts 0x00B0, r24
+ 3252: c0 93 b4 00 sts 0x00B4, r28
+ 3256: 0a c0 rjmp .+20 ; 0x326c <analogWrite+0xb8>
+ 3258: c0 38 cpi r28, 0x80 ; 128
+ 325a: d1 05 cpc r29, r1
+ 325c: 1c f4 brge .+6 ; 0x3264 <analogWrite+0xb0>
+ 325e: 81 2f mov r24, r17
+ 3260: 60 e0 ldi r22, 0x00 ; 0
+ 3262: 02 c0 rjmp .+4 ; 0x3268 <analogWrite+0xb4>
+ 3264: 81 2f mov r24, r17
+ 3266: 61 e0 ldi r22, 0x01 ; 1
+ 3268: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 326c: df 91 pop r29
+ 326e: cf 91 pop r28
+ 3270: 1f 91 pop r17
+ 3272: 08 95 ret
+
+00003274 <turnOffPWM>:
+ 3274: 83 30 cpi r24, 0x03 ; 3
+ 3276: 71 f0 breq .+28 ; 0x3294 <turnOffPWM+0x20>
+ 3278: 84 30 cpi r24, 0x04 ; 4
+ 327a: 28 f4 brcc .+10 ; 0x3286 <turnOffPWM+0x12>
+ 327c: 81 30 cpi r24, 0x01 ; 1
+ 327e: a1 f0 breq .+40 ; 0x32a8 <turnOffPWM+0x34>
+ 3280: 82 30 cpi r24, 0x02 ; 2
+ 3282: 21 f5 brne .+72 ; 0x32cc <turnOffPWM+0x58>
+ 3284: 14 c0 rjmp .+40 ; 0x32ae <turnOffPWM+0x3a>
+ 3286: 86 30 cpi r24, 0x06 ; 6
+ 3288: b1 f0 breq .+44 ; 0x32b6 <turnOffPWM+0x42>
+ 328a: 87 30 cpi r24, 0x07 ; 7
+ 328c: d1 f0 breq .+52 ; 0x32c2 <turnOffPWM+0x4e>
+ 328e: 84 30 cpi r24, 0x04 ; 4
+ 3290: e9 f4 brne .+58 ; 0x32cc <turnOffPWM+0x58>
+ 3292: 04 c0 rjmp .+8 ; 0x329c <turnOffPWM+0x28>
+ 3294: 80 91 80 00 lds r24, 0x0080
+ 3298: 8f 77 andi r24, 0x7F ; 127
+ 329a: 03 c0 rjmp .+6 ; 0x32a2 <turnOffPWM+0x2e>
+ 329c: 80 91 80 00 lds r24, 0x0080
+ 32a0: 8f 7d andi r24, 0xDF ; 223
+ 32a2: 80 93 80 00 sts 0x0080, r24
+ 32a6: 08 95 ret
+ 32a8: 84 b5 in r24, 0x24 ; 36
+ 32aa: 8f 77 andi r24, 0x7F ; 127
+ 32ac: 02 c0 rjmp .+4 ; 0x32b2 <turnOffPWM+0x3e>
+ 32ae: 84 b5 in r24, 0x24 ; 36
+ 32b0: 8f 7d andi r24, 0xDF ; 223
+ 32b2: 84 bd out 0x24, r24 ; 36
+ 32b4: 08 95 ret
+ 32b6: 80 91 b0 00 lds r24, 0x00B0
+ 32ba: 8f 77 andi r24, 0x7F ; 127
+ 32bc: 80 93 b0 00 sts 0x00B0, r24
+ 32c0: 08 95 ret
+ 32c2: 80 91 b0 00 lds r24, 0x00B0
+ 32c6: 8f 7d andi r24, 0xDF ; 223
+ 32c8: 80 93 b0 00 sts 0x00B0, r24
+ 32cc: 08 95 ret
+
+000032ce <pinMode>:
+ 32ce: 90 e0 ldi r25, 0x00 ; 0
+ 32d0: fc 01 movw r30, r24
+ 32d2: e5 56 subi r30, 0x65 ; 101
+ 32d4: ff 4f sbci r31, 0xFF ; 255
+ 32d6: 24 91 lpm r18, Z+
+ 32d8: fc 01 movw r30, r24
+ 32da: e9 57 subi r30, 0x79 ; 121
+ 32dc: ff 4f sbci r31, 0xFF ; 255
+ 32de: e4 91 lpm r30, Z+
+ 32e0: ee 23 and r30, r30
+ 32e2: c1 f0 breq .+48 ; 0x3314 <pinMode+0x46>
+ 32e4: f0 e0 ldi r31, 0x00 ; 0
+ 32e6: ee 0f add r30, r30
+ 32e8: ff 1f adc r31, r31
+ 32ea: e7 59 subi r30, 0x97 ; 151
+ 32ec: ff 4f sbci r31, 0xFF ; 255
+ 32ee: 85 91 lpm r24, Z+
+ 32f0: 94 91 lpm r25, Z+
+ 32f2: dc 01 movw r26, r24
+ 32f4: 66 23 and r22, r22
+ 32f6: 41 f4 brne .+16 ; 0x3308 <pinMode+0x3a>
+ 32f8: 9f b7 in r25, 0x3f ; 63
+ 32fa: f8 94 cli
+ 32fc: 8c 91 ld r24, X
+ 32fe: 20 95 com r18
+ 3300: 82 23 and r24, r18
+ 3302: 8c 93 st X, r24
+ 3304: 9f bf out 0x3f, r25 ; 63
+ 3306: 08 95 ret
+ 3308: 9f b7 in r25, 0x3f ; 63
+ 330a: f8 94 cli
+ 330c: 8c 91 ld r24, X
+ 330e: 82 2b or r24, r18
+ 3310: 8c 93 st X, r24
+ 3312: 9f bf out 0x3f, r25 ; 63
+ 3314: 08 95 ret
+
+00003316 <digitalWrite>:
+ 3316: 0f 93 push r16
+ 3318: 1f 93 push r17
+ 331a: df 93 push r29
+ 331c: cf 93 push r28
+ 331e: 0f 92 push r0
+ 3320: cd b7 in r28, 0x3d ; 61
+ 3322: de b7 in r29, 0x3e ; 62
+ 3324: 28 2f mov r18, r24
+ 3326: 30 e0 ldi r19, 0x00 ; 0
+ 3328: f9 01 movw r30, r18
+ 332a: e1 55 subi r30, 0x51 ; 81
+ 332c: ff 4f sbci r31, 0xFF ; 255
+ 332e: 84 91 lpm r24, Z+
+ 3330: f9 01 movw r30, r18
+ 3332: e5 56 subi r30, 0x65 ; 101
+ 3334: ff 4f sbci r31, 0xFF ; 255
+ 3336: 14 91 lpm r17, Z+
+ 3338: 29 57 subi r18, 0x79 ; 121
+ 333a: 3f 4f sbci r19, 0xFF ; 255
+ 333c: f9 01 movw r30, r18
+ 333e: 04 91 lpm r16, Z+
+ 3340: 00 23 and r16, r16
+ 3342: d9 f0 breq .+54 ; 0x337a <digitalWrite+0x64>
+ 3344: 88 23 and r24, r24
+ 3346: 21 f0 breq .+8 ; 0x3350 <digitalWrite+0x3a>
+ 3348: 69 83 std Y+1, r22 ; 0x01
+ 334a: 0e 94 3a 19 call 0x3274 ; 0x3274 <turnOffPWM>
+ 334e: 69 81 ldd r22, Y+1 ; 0x01
+ 3350: e0 2f mov r30, r16
+ 3352: f0 e0 ldi r31, 0x00 ; 0
+ 3354: ee 0f add r30, r30
+ 3356: ff 1f adc r31, r31
+ 3358: ed 58 subi r30, 0x8D ; 141
+ 335a: ff 4f sbci r31, 0xFF ; 255
+ 335c: 85 91 lpm r24, Z+
+ 335e: 94 91 lpm r25, Z+
+ 3360: dc 01 movw r26, r24
+ 3362: 9f b7 in r25, 0x3f ; 63
+ 3364: f8 94 cli
+ 3366: 66 23 and r22, r22
+ 3368: 21 f4 brne .+8 ; 0x3372 <digitalWrite+0x5c>
+ 336a: 8c 91 ld r24, X
+ 336c: 10 95 com r17
+ 336e: 81 23 and r24, r17
+ 3370: 02 c0 rjmp .+4 ; 0x3376 <digitalWrite+0x60>
+ 3372: 8c 91 ld r24, X
+ 3374: 81 2b or r24, r17
+ 3376: 8c 93 st X, r24
+ 3378: 9f bf out 0x3f, r25 ; 63
+ 337a: 0f 90 pop r0
+ 337c: cf 91 pop r28
+ 337e: df 91 pop r29
+ 3380: 1f 91 pop r17
+ 3382: 0f 91 pop r16
+ 3384: 08 95 ret
+
+00003386 <digitalRead>:
+ 3386: 0f 93 push r16
+ 3388: 1f 93 push r17
+ 338a: 28 2f mov r18, r24
+ 338c: 30 e0 ldi r19, 0x00 ; 0
+ 338e: f9 01 movw r30, r18
+ 3390: e1 55 subi r30, 0x51 ; 81
+ 3392: ff 4f sbci r31, 0xFF ; 255
+ 3394: 84 91 lpm r24, Z+
+ 3396: f9 01 movw r30, r18
+ 3398: e5 56 subi r30, 0x65 ; 101
+ 339a: ff 4f sbci r31, 0xFF ; 255
+ 339c: 04 91 lpm r16, Z+
+ 339e: 29 57 subi r18, 0x79 ; 121
+ 33a0: 3f 4f sbci r19, 0xFF ; 255
+ 33a2: f9 01 movw r30, r18
+ 33a4: 14 91 lpm r17, Z+
+ 33a6: 11 23 and r17, r17
+ 33a8: 91 f0 breq .+36 ; 0x33ce <digitalRead+0x48>
+ 33aa: 88 23 and r24, r24
+ 33ac: 11 f0 breq .+4 ; 0x33b2 <digitalRead+0x2c>
+ 33ae: 0e 94 3a 19 call 0x3274 ; 0x3274 <turnOffPWM>
+ 33b2: e1 2f mov r30, r17
+ 33b4: f0 e0 ldi r31, 0x00 ; 0
+ 33b6: ee 0f add r30, r30
+ 33b8: ff 1f adc r31, r31
+ 33ba: e3 58 subi r30, 0x83 ; 131
+ 33bc: ff 4f sbci r31, 0xFF ; 255
+ 33be: 85 91 lpm r24, Z+
+ 33c0: 94 91 lpm r25, Z+
+ 33c2: dc 01 movw r26, r24
+ 33c4: 8c 91 ld r24, X
+ 33c6: 80 23 and r24, r16
+ 33c8: 21 e0 ldi r18, 0x01 ; 1
+ 33ca: 30 e0 ldi r19, 0x00 ; 0
+ 33cc: 11 f4 brne .+4 ; 0x33d2 <digitalRead+0x4c>
+ 33ce: 20 e0 ldi r18, 0x00 ; 0
+ 33d0: 30 e0 ldi r19, 0x00 ; 0
+ 33d2: c9 01 movw r24, r18
+ 33d4: 1f 91 pop r17
+ 33d6: 0f 91 pop r16
+ 33d8: 08 95 ret
+
+000033da <pulseIn>:
+ 33da: 8f 92 push r8
+ 33dc: 9f 92 push r9
+ 33de: af 92 push r10
+ 33e0: bf 92 push r11
+ 33e2: cf 92 push r12
+ 33e4: df 92 push r13
+ 33e6: ef 92 push r14
+ 33e8: ff 92 push r15
+ 33ea: 0f 93 push r16
+ 33ec: 1f 93 push r17
+ 33ee: 90 e0 ldi r25, 0x00 ; 0
+ 33f0: fc 01 movw r30, r24
+ 33f2: e5 56 subi r30, 0x65 ; 101
+ 33f4: ff 4f sbci r31, 0xFF ; 255
+ 33f6: 94 90 lpm r9, Z+
+ 33f8: 89 57 subi r24, 0x79 ; 121
+ 33fa: 9f 4f sbci r25, 0xFF ; 255
+ 33fc: fc 01 movw r30, r24
+ 33fe: e4 90 lpm r14, Z+
+ 3400: 66 23 and r22, r22
+ 3402: 11 f4 brne .+4 ; 0x3408 <pulseIn+0x2e>
+ 3404: 88 24 eor r8, r8
+ 3406: 01 c0 rjmp .+2 ; 0x340a <pulseIn+0x30>
+ 3408: 89 2c mov r8, r9
+ 340a: ca 01 movw r24, r20
+ 340c: b9 01 movw r22, r18
+ 340e: 20 e4 ldi r18, 0x40 ; 64
+ 3410: 3f e1 ldi r19, 0x1F ; 31
+ 3412: 40 e0 ldi r20, 0x00 ; 0
+ 3414: 50 e0 ldi r21, 0x00 ; 0
+ 3416: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 341a: 20 e8 ldi r18, 0x80 ; 128
+ 341c: 3e e3 ldi r19, 0x3E ; 62
+ 341e: 40 e0 ldi r20, 0x00 ; 0
+ 3420: 50 e0 ldi r21, 0x00 ; 0
+ 3422: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 3426: 59 01 movw r10, r18
+ 3428: 6a 01 movw r12, r20
+ 342a: 80 e0 ldi r24, 0x00 ; 0
+ 342c: 90 e0 ldi r25, 0x00 ; 0
+ 342e: dc 01 movw r26, r24
+ 3430: 6e 2d mov r22, r14
+ 3432: 70 e0 ldi r23, 0x00 ; 0
+ 3434: fb 01 movw r30, r22
+ 3436: ee 0f add r30, r30
+ 3438: ff 1f adc r31, r31
+ 343a: e3 58 subi r30, 0x83 ; 131
+ 343c: ff 4f sbci r31, 0xFF ; 255
+ 343e: 25 91 lpm r18, Z+
+ 3440: 34 91 lpm r19, Z+
+ 3442: 09 c0 rjmp .+18 ; 0x3456 <pulseIn+0x7c>
+ 3444: 8a 15 cp r24, r10
+ 3446: 9b 05 cpc r25, r11
+ 3448: ac 05 cpc r26, r12
+ 344a: bd 05 cpc r27, r13
+ 344c: 09 f4 brne .+2 ; 0x3450 <pulseIn+0x76>
+ 344e: 4d c0 rjmp .+154 ; 0x34ea <pulseIn+0x110>
+ 3450: 01 96 adiw r24, 0x01 ; 1
+ 3452: a1 1d adc r26, r1
+ 3454: b1 1d adc r27, r1
+ 3456: f9 01 movw r30, r18
+ 3458: 40 81 ld r20, Z
+ 345a: 49 21 and r20, r9
+ 345c: 48 15 cp r20, r8
+ 345e: 91 f3 breq .-28 ; 0x3444 <pulseIn+0x6a>
+ 3460: 0a c0 rjmp .+20 ; 0x3476 <pulseIn+0x9c>
+ 3462: 8a 15 cp r24, r10
+ 3464: 9b 05 cpc r25, r11
+ 3466: ac 05 cpc r26, r12
+ 3468: bd 05 cpc r27, r13
+ 346a: 09 f4 brne .+2 ; 0x346e <pulseIn+0x94>
+ 346c: 3e c0 rjmp .+124 ; 0x34ea <pulseIn+0x110>
+ 346e: 01 96 adiw r24, 0x01 ; 1
+ 3470: a1 1d adc r26, r1
+ 3472: b1 1d adc r27, r1
+ 3474: 07 c0 rjmp .+14 ; 0x3484 <pulseIn+0xaa>
+ 3476: 66 0f add r22, r22
+ 3478: 77 1f adc r23, r23
+ 347a: 63 58 subi r22, 0x83 ; 131
+ 347c: 7f 4f sbci r23, 0xFF ; 255
+ 347e: fb 01 movw r30, r22
+ 3480: 25 91 lpm r18, Z+
+ 3482: 34 91 lpm r19, Z+
+ 3484: f9 01 movw r30, r18
+ 3486: 40 81 ld r20, Z
+ 3488: 49 21 and r20, r9
+ 348a: 48 15 cp r20, r8
+ 348c: 51 f7 brne .-44 ; 0x3462 <pulseIn+0x88>
+ 348e: 20 e0 ldi r18, 0x00 ; 0
+ 3490: 30 e0 ldi r19, 0x00 ; 0
+ 3492: a9 01 movw r20, r18
+ 3494: fb 01 movw r30, r22
+ 3496: 65 91 lpm r22, Z+
+ 3498: 74 91 lpm r23, Z+
+ 349a: 0f c0 rjmp .+30 ; 0x34ba <pulseIn+0xe0>
+ 349c: 79 01 movw r14, r18
+ 349e: 8a 01 movw r16, r20
+ 34a0: e8 0e add r14, r24
+ 34a2: f9 1e adc r15, r25
+ 34a4: 0a 1f adc r16, r26
+ 34a6: 1b 1f adc r17, r27
+ 34a8: ea 14 cp r14, r10
+ 34aa: fb 04 cpc r15, r11
+ 34ac: 0c 05 cpc r16, r12
+ 34ae: 1d 05 cpc r17, r13
+ 34b0: e1 f0 breq .+56 ; 0x34ea <pulseIn+0x110>
+ 34b2: 2f 5f subi r18, 0xFF ; 255
+ 34b4: 3f 4f sbci r19, 0xFF ; 255
+ 34b6: 4f 4f sbci r20, 0xFF ; 255
+ 34b8: 5f 4f sbci r21, 0xFF ; 255
+ 34ba: fb 01 movw r30, r22
+ 34bc: e0 81 ld r30, Z
+ 34be: e9 21 and r30, r9
+ 34c0: e8 15 cp r30, r8
+ 34c2: 61 f3 breq .-40 ; 0x349c <pulseIn+0xc2>
+ 34c4: ca 01 movw r24, r20
+ 34c6: b9 01 movw r22, r18
+ 34c8: 28 e0 ldi r18, 0x08 ; 8
+ 34ca: 32 e5 ldi r19, 0x52 ; 82
+ 34cc: 40 e0 ldi r20, 0x00 ; 0
+ 34ce: 50 e0 ldi r21, 0x00 ; 0
+ 34d0: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 34d4: 60 58 subi r22, 0x80 ; 128
+ 34d6: 71 4c sbci r23, 0xC1 ; 193
+ 34d8: 8f 4f sbci r24, 0xFF ; 255
+ 34da: 9f 4f sbci r25, 0xFF ; 255
+ 34dc: 20 e4 ldi r18, 0x40 ; 64
+ 34de: 3f e1 ldi r19, 0x1F ; 31
+ 34e0: 40 e0 ldi r20, 0x00 ; 0
+ 34e2: 50 e0 ldi r21, 0x00 ; 0
+ 34e4: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 34e8: 03 c0 rjmp .+6 ; 0x34f0 <pulseIn+0x116>
+ 34ea: 20 e0 ldi r18, 0x00 ; 0
+ 34ec: 30 e0 ldi r19, 0x00 ; 0
+ 34ee: a9 01 movw r20, r18
+ 34f0: b9 01 movw r22, r18
+ 34f2: ca 01 movw r24, r20
+ 34f4: 1f 91 pop r17
+ 34f6: 0f 91 pop r16
+ 34f8: ff 90 pop r15
+ 34fa: ef 90 pop r14
+ 34fc: df 90 pop r13
+ 34fe: cf 90 pop r12
+ 3500: bf 90 pop r11
+ 3502: af 90 pop r10
+ 3504: 9f 90 pop r9
+ 3506: 8f 90 pop r8
+ 3508: 08 95 ret
+
+0000350a <shiftIn>:
+ 350a: cf 92 push r12
+ 350c: df 92 push r13
+ 350e: ef 92 push r14
+ 3510: ff 92 push r15
+ 3512: 0f 93 push r16
+ 3514: 1f 93 push r17
+ 3516: cf 93 push r28
+ 3518: df 93 push r29
+ 351a: e8 2e mov r14, r24
+ 351c: f6 2e mov r15, r22
+ 351e: c4 2e mov r12, r20
+ 3520: c7 e0 ldi r28, 0x07 ; 7
+ 3522: d0 e0 ldi r29, 0x00 ; 0
+ 3524: dd 24 eor r13, r13
+ 3526: 07 e0 ldi r16, 0x07 ; 7
+ 3528: 10 e0 ldi r17, 0x00 ; 0
+ 352a: 8f 2d mov r24, r15
+ 352c: 61 e0 ldi r22, 0x01 ; 1
+ 352e: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 3532: cc 20 and r12, r12
+ 3534: 71 f4 brne .+28 ; 0x3552 <shiftIn+0x48>
+ 3536: 8e 2d mov r24, r14
+ 3538: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 353c: 98 01 movw r18, r16
+ 353e: 2c 1b sub r18, r28
+ 3540: 3d 0b sbc r19, r29
+ 3542: ac 01 movw r20, r24
+ 3544: 02 c0 rjmp .+4 ; 0x354a <shiftIn+0x40>
+ 3546: 44 0f add r20, r20
+ 3548: 55 1f adc r21, r21
+ 354a: 2a 95 dec r18
+ 354c: e2 f7 brpl .-8 ; 0x3546 <shiftIn+0x3c>
+ 354e: 9a 01 movw r18, r20
+ 3550: 0a c0 rjmp .+20 ; 0x3566 <shiftIn+0x5c>
+ 3552: 8e 2d mov r24, r14
+ 3554: 0e 94 c3 19 call 0x3386 ; 0x3386 <digitalRead>
+ 3558: 9c 01 movw r18, r24
+ 355a: 0c 2e mov r0, r28
+ 355c: 02 c0 rjmp .+4 ; 0x3562 <shiftIn+0x58>
+ 355e: 22 0f add r18, r18
+ 3560: 33 1f adc r19, r19
+ 3562: 0a 94 dec r0
+ 3564: e2 f7 brpl .-8 ; 0x355e <shiftIn+0x54>
+ 3566: d2 2a or r13, r18
+ 3568: 8f 2d mov r24, r15
+ 356a: 60 e0 ldi r22, 0x00 ; 0
+ 356c: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 3570: 21 97 sbiw r28, 0x01 ; 1
+ 3572: 5f ef ldi r21, 0xFF ; 255
+ 3574: cf 3f cpi r28, 0xFF ; 255
+ 3576: d5 07 cpc r29, r21
+ 3578: c1 f6 brne .-80 ; 0x352a <shiftIn+0x20>
+ 357a: 8d 2d mov r24, r13
+ 357c: df 91 pop r29
+ 357e: cf 91 pop r28
+ 3580: 1f 91 pop r17
+ 3582: 0f 91 pop r16
+ 3584: ff 90 pop r15
+ 3586: ef 90 pop r14
+ 3588: df 90 pop r13
+ 358a: cf 90 pop r12
+ 358c: 08 95 ret
+
+0000358e <shiftOut>:
+ 358e: bf 92 push r11
+ 3590: cf 92 push r12
+ 3592: df 92 push r13
+ 3594: ef 92 push r14
+ 3596: ff 92 push r15
+ 3598: 0f 93 push r16
+ 359a: 1f 93 push r17
+ 359c: cf 93 push r28
+ 359e: df 93 push r29
+ 35a0: c8 2e mov r12, r24
+ 35a2: d6 2e mov r13, r22
+ 35a4: b4 2e mov r11, r20
+ 35a6: c7 e0 ldi r28, 0x07 ; 7
+ 35a8: d0 e0 ldi r29, 0x00 ; 0
+ 35aa: 02 2f mov r16, r18
+ 35ac: 10 e0 ldi r17, 0x00 ; 0
+ 35ae: 87 e0 ldi r24, 0x07 ; 7
+ 35b0: e8 2e mov r14, r24
+ 35b2: f1 2c mov r15, r1
+ 35b4: bb 20 and r11, r11
+ 35b6: 59 f4 brne .+22 ; 0x35ce <shiftOut+0x40>
+ 35b8: 97 01 movw r18, r14
+ 35ba: 2c 1b sub r18, r28
+ 35bc: 3d 0b sbc r19, r29
+ 35be: c8 01 movw r24, r16
+ 35c0: 02 c0 rjmp .+4 ; 0x35c6 <shiftOut+0x38>
+ 35c2: 95 95 asr r25
+ 35c4: 87 95 ror r24
+ 35c6: 2a 95 dec r18
+ 35c8: e2 f7 brpl .-8 ; 0x35c2 <shiftOut+0x34>
+ 35ca: 9c 01 movw r18, r24
+ 35cc: 07 c0 rjmp .+14 ; 0x35dc <shiftOut+0x4e>
+ 35ce: 98 01 movw r18, r16
+ 35d0: 0c 2e mov r0, r28
+ 35d2: 02 c0 rjmp .+4 ; 0x35d8 <shiftOut+0x4a>
+ 35d4: 35 95 asr r19
+ 35d6: 27 95 ror r18
+ 35d8: 0a 94 dec r0
+ 35da: e2 f7 brpl .-8 ; 0x35d4 <shiftOut+0x46>
+ 35dc: 62 2f mov r22, r18
+ 35de: 61 70 andi r22, 0x01 ; 1
+ 35e0: 8c 2d mov r24, r12
+ 35e2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 35e6: 8d 2d mov r24, r13
+ 35e8: 61 e0 ldi r22, 0x01 ; 1
+ 35ea: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 35ee: 8d 2d mov r24, r13
+ 35f0: 60 e0 ldi r22, 0x00 ; 0
+ 35f2: 0e 94 8b 19 call 0x3316 ; 0x3316 <digitalWrite>
+ 35f6: 21 97 sbiw r28, 0x01 ; 1
+ 35f8: 9f ef ldi r25, 0xFF ; 255
+ 35fa: cf 3f cpi r28, 0xFF ; 255
+ 35fc: d9 07 cpc r29, r25
+ 35fe: d1 f6 brne .-76 ; 0x35b4 <shiftOut+0x26>
+ 3600: df 91 pop r29
+ 3602: cf 91 pop r28
+ 3604: 1f 91 pop r17
+ 3606: 0f 91 pop r16
+ 3608: ff 90 pop r15
+ 360a: ef 90 pop r14
+ 360c: df 90 pop r13
+ 360e: cf 90 pop r12
+ 3610: bf 90 pop r11
+ 3612: 08 95 ret
+
+00003614 <__fixunssfsi>:
+ 3614: ef 92 push r14
+ 3616: ff 92 push r15
+ 3618: 0f 93 push r16
+ 361a: 1f 93 push r17
+ 361c: 7b 01 movw r14, r22
+ 361e: 8c 01 movw r16, r24
+ 3620: 20 e0 ldi r18, 0x00 ; 0
+ 3622: 30 e0 ldi r19, 0x00 ; 0
+ 3624: 40 e0 ldi r20, 0x00 ; 0
+ 3626: 5f e4 ldi r21, 0x4F ; 79
+ 3628: 0e 94 86 1e call 0x3d0c ; 0x3d0c <__gesf2>
+ 362c: 87 fd sbrc r24, 7
+ 362e: 11 c0 rjmp .+34 ; 0x3652 <__fixunssfsi+0x3e>
+ 3630: c8 01 movw r24, r16
+ 3632: b7 01 movw r22, r14
+ 3634: 20 e0 ldi r18, 0x00 ; 0
+ 3636: 30 e0 ldi r19, 0x00 ; 0
+ 3638: 40 e0 ldi r20, 0x00 ; 0
+ 363a: 5f e4 ldi r21, 0x4F ; 79
+ 363c: 0e 94 ad 1c call 0x395a ; 0x395a <__subsf3>
+ 3640: 0e 94 46 1f call 0x3e8c ; 0x3e8c <__fixsfsi>
+ 3644: 9b 01 movw r18, r22
+ 3646: ac 01 movw r20, r24
+ 3648: 20 50 subi r18, 0x00 ; 0
+ 364a: 30 40 sbci r19, 0x00 ; 0
+ 364c: 40 40 sbci r20, 0x00 ; 0
+ 364e: 50 48 sbci r21, 0x80 ; 128
+ 3650: 06 c0 rjmp .+12 ; 0x365e <__fixunssfsi+0x4a>
+ 3652: c8 01 movw r24, r16
+ 3654: b7 01 movw r22, r14
+ 3656: 0e 94 46 1f call 0x3e8c ; 0x3e8c <__fixsfsi>
+ 365a: 9b 01 movw r18, r22
+ 365c: ac 01 movw r20, r24
+ 365e: b9 01 movw r22, r18
+ 3660: ca 01 movw r24, r20
+ 3662: 1f 91 pop r17
+ 3664: 0f 91 pop r16
+ 3666: ff 90 pop r15
+ 3668: ef 90 pop r14
+ 366a: 08 95 ret
+
+0000366c <_fpadd_parts>:
+ 366c: a0 e0 ldi r26, 0x00 ; 0
+ 366e: b0 e0 ldi r27, 0x00 ; 0
+ 3670: ec e3 ldi r30, 0x3C ; 60
+ 3672: fb e1 ldi r31, 0x1B ; 27
+ 3674: 0c 94 81 22 jmp 0x4502 ; 0x4502 <__prologue_saves__+0x8>
+ 3678: fc 01 movw r30, r24
+ 367a: ea 01 movw r28, r20
+ 367c: 80 81 ld r24, Z
+ 367e: 82 30 cpi r24, 0x02 ; 2
+ 3680: 08 f4 brcc .+2 ; 0x3684 <_fpadd_parts+0x18>
+ 3682: 38 c1 rjmp .+624 ; 0x38f4 <_fpadd_parts+0x288>
+ 3684: db 01 movw r26, r22
+ 3686: 9c 91 ld r25, X
+ 3688: 92 30 cpi r25, 0x02 ; 2
+ 368a: 08 f4 brcc .+2 ; 0x368e <_fpadd_parts+0x22>
+ 368c: 30 c1 rjmp .+608 ; 0x38ee <_fpadd_parts+0x282>
+ 368e: 84 30 cpi r24, 0x04 ; 4
+ 3690: 59 f4 brne .+22 ; 0x36a8 <_fpadd_parts+0x3c>
+ 3692: 94 30 cpi r25, 0x04 ; 4
+ 3694: 09 f0 breq .+2 ; 0x3698 <_fpadd_parts+0x2c>
+ 3696: 2e c1 rjmp .+604 ; 0x38f4 <_fpadd_parts+0x288>
+ 3698: 91 81 ldd r25, Z+1 ; 0x01
+ 369a: 11 96 adiw r26, 0x01 ; 1
+ 369c: 8c 91 ld r24, X
+ 369e: 11 97 sbiw r26, 0x01 ; 1
+ 36a0: 98 17 cp r25, r24
+ 36a2: 09 f0 breq .+2 ; 0x36a6 <_fpadd_parts+0x3a>
+ 36a4: 21 c1 rjmp .+578 ; 0x38e8 <_fpadd_parts+0x27c>
+ 36a6: 26 c1 rjmp .+588 ; 0x38f4 <_fpadd_parts+0x288>
+ 36a8: 94 30 cpi r25, 0x04 ; 4
+ 36aa: 09 f4 brne .+2 ; 0x36ae <_fpadd_parts+0x42>
+ 36ac: 20 c1 rjmp .+576 ; 0x38ee <_fpadd_parts+0x282>
+ 36ae: 92 30 cpi r25, 0x02 ; 2
+ 36b0: b1 f4 brne .+44 ; 0x36de <_fpadd_parts+0x72>
+ 36b2: 82 30 cpi r24, 0x02 ; 2
+ 36b4: 09 f0 breq .+2 ; 0x36b8 <_fpadd_parts+0x4c>
+ 36b6: 1e c1 rjmp .+572 ; 0x38f4 <_fpadd_parts+0x288>
+ 36b8: ca 01 movw r24, r20
+ 36ba: af 01 movw r20, r30
+ 36bc: 28 e0 ldi r18, 0x08 ; 8
+ 36be: da 01 movw r26, r20
+ 36c0: 0d 90 ld r0, X+
+ 36c2: ad 01 movw r20, r26
+ 36c4: dc 01 movw r26, r24
+ 36c6: 0d 92 st X+, r0
+ 36c8: cd 01 movw r24, r26
+ 36ca: 21 50 subi r18, 0x01 ; 1
+ 36cc: c1 f7 brne .-16 ; 0x36be <_fpadd_parts+0x52>
+ 36ce: db 01 movw r26, r22
+ 36d0: 11 96 adiw r26, 0x01 ; 1
+ 36d2: 8c 91 ld r24, X
+ 36d4: 11 97 sbiw r26, 0x01 ; 1
+ 36d6: 91 81 ldd r25, Z+1 ; 0x01
+ 36d8: 89 23 and r24, r25
+ 36da: 89 83 std Y+1, r24 ; 0x01
+ 36dc: 0a c1 rjmp .+532 ; 0x38f2 <_fpadd_parts+0x286>
+ 36de: 82 30 cpi r24, 0x02 ; 2
+ 36e0: 09 f4 brne .+2 ; 0x36e4 <_fpadd_parts+0x78>
+ 36e2: 05 c1 rjmp .+522 ; 0x38ee <_fpadd_parts+0x282>
+ 36e4: c2 80 ldd r12, Z+2 ; 0x02
+ 36e6: d3 80 ldd r13, Z+3 ; 0x03
+ 36e8: db 01 movw r26, r22
+ 36ea: 12 96 adiw r26, 0x02 ; 2
+ 36ec: 6d 90 ld r6, X+
+ 36ee: 7c 90 ld r7, X
+ 36f0: 13 97 sbiw r26, 0x03 ; 3
+ 36f2: 24 81 ldd r18, Z+4 ; 0x04
+ 36f4: 35 81 ldd r19, Z+5 ; 0x05
+ 36f6: 46 81 ldd r20, Z+6 ; 0x06
+ 36f8: 57 81 ldd r21, Z+7 ; 0x07
+ 36fa: 14 96 adiw r26, 0x04 ; 4
+ 36fc: ed 90 ld r14, X+
+ 36fe: fd 90 ld r15, X+
+ 3700: 0d 91 ld r16, X+
+ 3702: 1c 91 ld r17, X
+ 3704: 17 97 sbiw r26, 0x07 ; 7
+ 3706: c6 01 movw r24, r12
+ 3708: 86 19 sub r24, r6
+ 370a: 97 09 sbc r25, r7
+ 370c: 5c 01 movw r10, r24
+ 370e: 97 ff sbrs r25, 7
+ 3710: 04 c0 rjmp .+8 ; 0x371a <_fpadd_parts+0xae>
+ 3712: aa 24 eor r10, r10
+ 3714: bb 24 eor r11, r11
+ 3716: a8 1a sub r10, r24
+ 3718: b9 0a sbc r11, r25
+ 371a: b0 e2 ldi r27, 0x20 ; 32
+ 371c: ab 16 cp r10, r27
+ 371e: b1 04 cpc r11, r1
+ 3720: 0c f0 brlt .+2 ; 0x3724 <_fpadd_parts+0xb8>
+ 3722: 61 c0 rjmp .+194 ; 0x37e6 <_fpadd_parts+0x17a>
+ 3724: 18 16 cp r1, r24
+ 3726: 19 06 cpc r1, r25
+ 3728: 6c f5 brge .+90 ; 0x3784 <_fpadd_parts+0x118>
+ 372a: 37 01 movw r6, r14
+ 372c: 48 01 movw r8, r16
+ 372e: 0a 2c mov r0, r10
+ 3730: 04 c0 rjmp .+8 ; 0x373a <_fpadd_parts+0xce>
+ 3732: 96 94 lsr r9
+ 3734: 87 94 ror r8
+ 3736: 77 94 ror r7
+ 3738: 67 94 ror r6
+ 373a: 0a 94 dec r0
+ 373c: d2 f7 brpl .-12 ; 0x3732 <_fpadd_parts+0xc6>
+ 373e: 81 e0 ldi r24, 0x01 ; 1
+ 3740: 90 e0 ldi r25, 0x00 ; 0
+ 3742: a0 e0 ldi r26, 0x00 ; 0
+ 3744: b0 e0 ldi r27, 0x00 ; 0
+ 3746: 0a 2c mov r0, r10
+ 3748: 04 c0 rjmp .+8 ; 0x3752 <_fpadd_parts+0xe6>
+ 374a: 88 0f add r24, r24
+ 374c: 99 1f adc r25, r25
+ 374e: aa 1f adc r26, r26
+ 3750: bb 1f adc r27, r27
+ 3752: 0a 94 dec r0
+ 3754: d2 f7 brpl .-12 ; 0x374a <_fpadd_parts+0xde>
+ 3756: 01 97 sbiw r24, 0x01 ; 1
+ 3758: a1 09 sbc r26, r1
+ 375a: b1 09 sbc r27, r1
+ 375c: 8e 21 and r24, r14
+ 375e: 9f 21 and r25, r15
+ 3760: a0 23 and r26, r16
+ 3762: b1 23 and r27, r17
+ 3764: ee 24 eor r14, r14
+ 3766: ff 24 eor r15, r15
+ 3768: 87 01 movw r16, r14
+ 376a: e3 94 inc r14
+ 376c: 00 97 sbiw r24, 0x00 ; 0
+ 376e: a1 05 cpc r26, r1
+ 3770: b1 05 cpc r27, r1
+ 3772: 19 f4 brne .+6 ; 0x377a <_fpadd_parts+0x10e>
+ 3774: ee 24 eor r14, r14
+ 3776: ff 24 eor r15, r15
+ 3778: 87 01 movw r16, r14
+ 377a: e6 28 or r14, r6
+ 377c: f7 28 or r15, r7
+ 377e: 08 29 or r16, r8
+ 3780: 19 29 or r17, r9
+ 3782: 3c c0 rjmp .+120 ; 0x37fc <_fpadd_parts+0x190>
+ 3784: 00 97 sbiw r24, 0x00 ; 0
+ 3786: d1 f1 breq .+116 ; 0x37fc <_fpadd_parts+0x190>
+ 3788: ca 0c add r12, r10
+ 378a: db 1c adc r13, r11
+ 378c: 39 01 movw r6, r18
+ 378e: 4a 01 movw r8, r20
+ 3790: 0a 2c mov r0, r10
+ 3792: 04 c0 rjmp .+8 ; 0x379c <_fpadd_parts+0x130>
+ 3794: 96 94 lsr r9
+ 3796: 87 94 ror r8
+ 3798: 77 94 ror r7
+ 379a: 67 94 ror r6
+ 379c: 0a 94 dec r0
+ 379e: d2 f7 brpl .-12 ; 0x3794 <_fpadd_parts+0x128>
+ 37a0: 81 e0 ldi r24, 0x01 ; 1
+ 37a2: 90 e0 ldi r25, 0x00 ; 0
+ 37a4: a0 e0 ldi r26, 0x00 ; 0
+ 37a6: b0 e0 ldi r27, 0x00 ; 0
+ 37a8: 0a 2c mov r0, r10
+ 37aa: 04 c0 rjmp .+8 ; 0x37b4 <_fpadd_parts+0x148>
+ 37ac: 88 0f add r24, r24
+ 37ae: 99 1f adc r25, r25
+ 37b0: aa 1f adc r26, r26
+ 37b2: bb 1f adc r27, r27
+ 37b4: 0a 94 dec r0
+ 37b6: d2 f7 brpl .-12 ; 0x37ac <_fpadd_parts+0x140>
+ 37b8: 01 97 sbiw r24, 0x01 ; 1
+ 37ba: a1 09 sbc r26, r1
+ 37bc: b1 09 sbc r27, r1
+ 37be: 82 23 and r24, r18
+ 37c0: 93 23 and r25, r19
+ 37c2: a4 23 and r26, r20
+ 37c4: b5 23 and r27, r21
+ 37c6: 21 e0 ldi r18, 0x01 ; 1
+ 37c8: 30 e0 ldi r19, 0x00 ; 0
+ 37ca: 40 e0 ldi r20, 0x00 ; 0
+ 37cc: 50 e0 ldi r21, 0x00 ; 0
+ 37ce: 00 97 sbiw r24, 0x00 ; 0
+ 37d0: a1 05 cpc r26, r1
+ 37d2: b1 05 cpc r27, r1
+ 37d4: 19 f4 brne .+6 ; 0x37dc <_fpadd_parts+0x170>
+ 37d6: 20 e0 ldi r18, 0x00 ; 0
+ 37d8: 30 e0 ldi r19, 0x00 ; 0
+ 37da: a9 01 movw r20, r18
+ 37dc: 26 29 or r18, r6
+ 37de: 37 29 or r19, r7
+ 37e0: 48 29 or r20, r8
+ 37e2: 59 29 or r21, r9
+ 37e4: 0b c0 rjmp .+22 ; 0x37fc <_fpadd_parts+0x190>
+ 37e6: 6c 14 cp r6, r12
+ 37e8: 7d 04 cpc r7, r13
+ 37ea: 24 f4 brge .+8 ; 0x37f4 <_fpadd_parts+0x188>
+ 37ec: ee 24 eor r14, r14
+ 37ee: ff 24 eor r15, r15
+ 37f0: 87 01 movw r16, r14
+ 37f2: 04 c0 rjmp .+8 ; 0x37fc <_fpadd_parts+0x190>
+ 37f4: 63 01 movw r12, r6
+ 37f6: 20 e0 ldi r18, 0x00 ; 0
+ 37f8: 30 e0 ldi r19, 0x00 ; 0
+ 37fa: a9 01 movw r20, r18
+ 37fc: 81 81 ldd r24, Z+1 ; 0x01
+ 37fe: fb 01 movw r30, r22
+ 3800: 91 81 ldd r25, Z+1 ; 0x01
+ 3802: 89 17 cp r24, r25
+ 3804: 09 f4 brne .+2 ; 0x3808 <_fpadd_parts+0x19c>
+ 3806: 45 c0 rjmp .+138 ; 0x3892 <_fpadd_parts+0x226>
+ 3808: 88 23 and r24, r24
+ 380a: 49 f0 breq .+18 ; 0x381e <_fpadd_parts+0x1b2>
+ 380c: d8 01 movw r26, r16
+ 380e: c7 01 movw r24, r14
+ 3810: 82 1b sub r24, r18
+ 3812: 93 0b sbc r25, r19
+ 3814: a4 0b sbc r26, r20
+ 3816: b5 0b sbc r27, r21
+ 3818: 9c 01 movw r18, r24
+ 381a: ad 01 movw r20, r26
+ 381c: 04 c0 rjmp .+8 ; 0x3826 <_fpadd_parts+0x1ba>
+ 381e: 2e 19 sub r18, r14
+ 3820: 3f 09 sbc r19, r15
+ 3822: 40 0b sbc r20, r16
+ 3824: 51 0b sbc r21, r17
+ 3826: 57 fd sbrc r21, 7
+ 3828: 04 c0 rjmp .+8 ; 0x3832 <_fpadd_parts+0x1c6>
+ 382a: 19 82 std Y+1, r1 ; 0x01
+ 382c: db 82 std Y+3, r13 ; 0x03
+ 382e: ca 82 std Y+2, r12 ; 0x02
+ 3830: 0b c0 rjmp .+22 ; 0x3848 <_fpadd_parts+0x1dc>
+ 3832: 81 e0 ldi r24, 0x01 ; 1
+ 3834: 89 83 std Y+1, r24 ; 0x01
+ 3836: db 82 std Y+3, r13 ; 0x03
+ 3838: ca 82 std Y+2, r12 ; 0x02
+ 383a: 50 95 com r21
+ 383c: 40 95 com r20
+ 383e: 30 95 com r19
+ 3840: 21 95 neg r18
+ 3842: 3f 4f sbci r19, 0xFF ; 255
+ 3844: 4f 4f sbci r20, 0xFF ; 255
+ 3846: 5f 4f sbci r21, 0xFF ; 255
+ 3848: 2c 83 std Y+4, r18 ; 0x04
+ 384a: 3d 83 std Y+5, r19 ; 0x05
+ 384c: 4e 83 std Y+6, r20 ; 0x06
+ 384e: 5f 83 std Y+7, r21 ; 0x07
+ 3850: 0d c0 rjmp .+26 ; 0x386c <_fpadd_parts+0x200>
+ 3852: 88 0f add r24, r24
+ 3854: 99 1f adc r25, r25
+ 3856: aa 1f adc r26, r26
+ 3858: bb 1f adc r27, r27
+ 385a: 8c 83 std Y+4, r24 ; 0x04
+ 385c: 9d 83 std Y+5, r25 ; 0x05
+ 385e: ae 83 std Y+6, r26 ; 0x06
+ 3860: bf 83 std Y+7, r27 ; 0x07
+ 3862: 8a 81 ldd r24, Y+2 ; 0x02
+ 3864: 9b 81 ldd r25, Y+3 ; 0x03
+ 3866: 01 97 sbiw r24, 0x01 ; 1
+ 3868: 9b 83 std Y+3, r25 ; 0x03
+ 386a: 8a 83 std Y+2, r24 ; 0x02
+ 386c: 8c 81 ldd r24, Y+4 ; 0x04
+ 386e: 9d 81 ldd r25, Y+5 ; 0x05
+ 3870: ae 81 ldd r26, Y+6 ; 0x06
+ 3872: bf 81 ldd r27, Y+7 ; 0x07
+ 3874: 9c 01 movw r18, r24
+ 3876: ad 01 movw r20, r26
+ 3878: 21 50 subi r18, 0x01 ; 1
+ 387a: 30 40 sbci r19, 0x00 ; 0
+ 387c: 40 40 sbci r20, 0x00 ; 0
+ 387e: 50 40 sbci r21, 0x00 ; 0
+ 3880: 2f 3f cpi r18, 0xFF ; 255
+ 3882: ef ef ldi r30, 0xFF ; 255
+ 3884: 3e 07 cpc r19, r30
+ 3886: ef ef ldi r30, 0xFF ; 255
+ 3888: 4e 07 cpc r20, r30
+ 388a: ef e3 ldi r30, 0x3F ; 63
+ 388c: 5e 07 cpc r21, r30
+ 388e: 08 f3 brcs .-62 ; 0x3852 <_fpadd_parts+0x1e6>
+ 3890: 0b c0 rjmp .+22 ; 0x38a8 <_fpadd_parts+0x23c>
+ 3892: 89 83 std Y+1, r24 ; 0x01
+ 3894: db 82 std Y+3, r13 ; 0x03
+ 3896: ca 82 std Y+2, r12 ; 0x02
+ 3898: 2e 0d add r18, r14
+ 389a: 3f 1d adc r19, r15
+ 389c: 40 1f adc r20, r16
+ 389e: 51 1f adc r21, r17
+ 38a0: 2c 83 std Y+4, r18 ; 0x04
+ 38a2: 3d 83 std Y+5, r19 ; 0x05
+ 38a4: 4e 83 std Y+6, r20 ; 0x06
+ 38a6: 5f 83 std Y+7, r21 ; 0x07
+ 38a8: 83 e0 ldi r24, 0x03 ; 3
+ 38aa: 88 83 st Y, r24
+ 38ac: 2c 81 ldd r18, Y+4 ; 0x04
+ 38ae: 3d 81 ldd r19, Y+5 ; 0x05
+ 38b0: 4e 81 ldd r20, Y+6 ; 0x06
+ 38b2: 5f 81 ldd r21, Y+7 ; 0x07
+ 38b4: 57 ff sbrs r21, 7
+ 38b6: 1d c0 rjmp .+58 ; 0x38f2 <_fpadd_parts+0x286>
+ 38b8: da 01 movw r26, r20
+ 38ba: c9 01 movw r24, r18
+ 38bc: 81 70 andi r24, 0x01 ; 1
+ 38be: 90 70 andi r25, 0x00 ; 0
+ 38c0: a0 70 andi r26, 0x00 ; 0
+ 38c2: b0 70 andi r27, 0x00 ; 0
+ 38c4: 56 95 lsr r21
+ 38c6: 47 95 ror r20
+ 38c8: 37 95 ror r19
+ 38ca: 27 95 ror r18
+ 38cc: 82 2b or r24, r18
+ 38ce: 93 2b or r25, r19
+ 38d0: a4 2b or r26, r20
+ 38d2: b5 2b or r27, r21
+ 38d4: 8c 83 std Y+4, r24 ; 0x04
+ 38d6: 9d 83 std Y+5, r25 ; 0x05
+ 38d8: ae 83 std Y+6, r26 ; 0x06
+ 38da: bf 83 std Y+7, r27 ; 0x07
+ 38dc: 8a 81 ldd r24, Y+2 ; 0x02
+ 38de: 9b 81 ldd r25, Y+3 ; 0x03
+ 38e0: 01 96 adiw r24, 0x01 ; 1
+ 38e2: 9b 83 std Y+3, r25 ; 0x03
+ 38e4: 8a 83 std Y+2, r24 ; 0x02
+ 38e6: 05 c0 rjmp .+10 ; 0x38f2 <_fpadd_parts+0x286>
+ 38e8: ee ea ldi r30, 0xAE ; 174
+ 38ea: f1 e0 ldi r31, 0x01 ; 1
+ 38ec: 03 c0 rjmp .+6 ; 0x38f4 <_fpadd_parts+0x288>
+ 38ee: fb 01 movw r30, r22
+ 38f0: 01 c0 rjmp .+2 ; 0x38f4 <_fpadd_parts+0x288>
+ 38f2: fe 01 movw r30, r28
+ 38f4: cf 01 movw r24, r30
+ 38f6: cd b7 in r28, 0x3d ; 61
+ 38f8: de b7 in r29, 0x3e ; 62
+ 38fa: ee e0 ldi r30, 0x0E ; 14
+ 38fc: 0c 94 9d 22 jmp 0x453a ; 0x453a <__epilogue_restores__+0x8>
+
+00003900 <__addsf3>:
+ 3900: a0 e2 ldi r26, 0x20 ; 32
+ 3902: b0 e0 ldi r27, 0x00 ; 0
+ 3904: e6 e8 ldi r30, 0x86 ; 134
+ 3906: fc e1 ldi r31, 0x1C ; 28
+ 3908: 0c 94 89 22 jmp 0x4512 ; 0x4512 <__prologue_saves__+0x18>
+ 390c: 69 83 std Y+1, r22 ; 0x01
+ 390e: 7a 83 std Y+2, r23 ; 0x02
+ 3910: 8b 83 std Y+3, r24 ; 0x03
+ 3912: 9c 83 std Y+4, r25 ; 0x04
+ 3914: 2d 83 std Y+5, r18 ; 0x05
+ 3916: 3e 83 std Y+6, r19 ; 0x06
+ 3918: 4f 83 std Y+7, r20 ; 0x07
+ 391a: 58 87 std Y+8, r21 ; 0x08
+ 391c: 89 e0 ldi r24, 0x09 ; 9
+ 391e: e8 2e mov r14, r24
+ 3920: f1 2c mov r15, r1
+ 3922: ec 0e add r14, r28
+ 3924: fd 1e adc r15, r29
+ 3926: ce 01 movw r24, r28
+ 3928: 01 96 adiw r24, 0x01 ; 1
+ 392a: b7 01 movw r22, r14
+ 392c: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3930: 8e 01 movw r16, r28
+ 3932: 0f 5e subi r16, 0xEF ; 239
+ 3934: 1f 4f sbci r17, 0xFF ; 255
+ 3936: ce 01 movw r24, r28
+ 3938: 05 96 adiw r24, 0x05 ; 5
+ 393a: b8 01 movw r22, r16
+ 393c: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3940: c7 01 movw r24, r14
+ 3942: b8 01 movw r22, r16
+ 3944: ae 01 movw r20, r28
+ 3946: 47 5e subi r20, 0xE7 ; 231
+ 3948: 5f 4f sbci r21, 0xFF ; 255
+ 394a: 0e 94 36 1b call 0x366c ; 0x366c <_fpadd_parts>
+ 394e: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 3952: a0 96 adiw r28, 0x20 ; 32
+ 3954: e6 e0 ldi r30, 0x06 ; 6
+ 3956: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+0000395a <__subsf3>:
+ 395a: a0 e2 ldi r26, 0x20 ; 32
+ 395c: b0 e0 ldi r27, 0x00 ; 0
+ 395e: e3 eb ldi r30, 0xB3 ; 179
+ 3960: fc e1 ldi r31, 0x1C ; 28
+ 3962: 0c 94 89 22 jmp 0x4512 ; 0x4512 <__prologue_saves__+0x18>
+ 3966: 69 83 std Y+1, r22 ; 0x01
+ 3968: 7a 83 std Y+2, r23 ; 0x02
+ 396a: 8b 83 std Y+3, r24 ; 0x03
+ 396c: 9c 83 std Y+4, r25 ; 0x04
+ 396e: 2d 83 std Y+5, r18 ; 0x05
+ 3970: 3e 83 std Y+6, r19 ; 0x06
+ 3972: 4f 83 std Y+7, r20 ; 0x07
+ 3974: 58 87 std Y+8, r21 ; 0x08
+ 3976: 8e 01 movw r16, r28
+ 3978: 07 5f subi r16, 0xF7 ; 247
+ 397a: 1f 4f sbci r17, 0xFF ; 255
+ 397c: ce 01 movw r24, r28
+ 397e: 01 96 adiw r24, 0x01 ; 1
+ 3980: b8 01 movw r22, r16
+ 3982: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3986: 91 e1 ldi r25, 0x11 ; 17
+ 3988: e9 2e mov r14, r25
+ 398a: f1 2c mov r15, r1
+ 398c: ec 0e add r14, r28
+ 398e: fd 1e adc r15, r29
+ 3990: ce 01 movw r24, r28
+ 3992: 05 96 adiw r24, 0x05 ; 5
+ 3994: b7 01 movw r22, r14
+ 3996: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 399a: 8a 89 ldd r24, Y+18 ; 0x12
+ 399c: 91 e0 ldi r25, 0x01 ; 1
+ 399e: 89 27 eor r24, r25
+ 39a0: 8a 8b std Y+18, r24 ; 0x12
+ 39a2: c8 01 movw r24, r16
+ 39a4: b7 01 movw r22, r14
+ 39a6: ae 01 movw r20, r28
+ 39a8: 47 5e subi r20, 0xE7 ; 231
+ 39aa: 5f 4f sbci r21, 0xFF ; 255
+ 39ac: 0e 94 36 1b call 0x366c ; 0x366c <_fpadd_parts>
+ 39b0: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 39b4: a0 96 adiw r28, 0x20 ; 32
+ 39b6: e6 e0 ldi r30, 0x06 ; 6
+ 39b8: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+000039bc <__mulsf3>:
+ 39bc: a0 e2 ldi r26, 0x20 ; 32
+ 39be: b0 e0 ldi r27, 0x00 ; 0
+ 39c0: e4 ee ldi r30, 0xE4 ; 228
+ 39c2: fc e1 ldi r31, 0x1C ; 28
+ 39c4: 0c 94 7d 22 jmp 0x44fa ; 0x44fa <__prologue_saves__>
+ 39c8: 69 83 std Y+1, r22 ; 0x01
+ 39ca: 7a 83 std Y+2, r23 ; 0x02
+ 39cc: 8b 83 std Y+3, r24 ; 0x03
+ 39ce: 9c 83 std Y+4, r25 ; 0x04
+ 39d0: 2d 83 std Y+5, r18 ; 0x05
+ 39d2: 3e 83 std Y+6, r19 ; 0x06
+ 39d4: 4f 83 std Y+7, r20 ; 0x07
+ 39d6: 58 87 std Y+8, r21 ; 0x08
+ 39d8: ce 01 movw r24, r28
+ 39da: 01 96 adiw r24, 0x01 ; 1
+ 39dc: be 01 movw r22, r28
+ 39de: 67 5f subi r22, 0xF7 ; 247
+ 39e0: 7f 4f sbci r23, 0xFF ; 255
+ 39e2: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 39e6: ce 01 movw r24, r28
+ 39e8: 05 96 adiw r24, 0x05 ; 5
+ 39ea: be 01 movw r22, r28
+ 39ec: 6f 5e subi r22, 0xEF ; 239
+ 39ee: 7f 4f sbci r23, 0xFF ; 255
+ 39f0: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 39f4: 99 85 ldd r25, Y+9 ; 0x09
+ 39f6: 92 30 cpi r25, 0x02 ; 2
+ 39f8: 78 f0 brcs .+30 ; 0x3a18 <__mulsf3+0x5c>
+ 39fa: 89 89 ldd r24, Y+17 ; 0x11
+ 39fc: 82 30 cpi r24, 0x02 ; 2
+ 39fe: c0 f0 brcs .+48 ; 0x3a30 <__mulsf3+0x74>
+ 3a00: 94 30 cpi r25, 0x04 ; 4
+ 3a02: 19 f4 brne .+6 ; 0x3a0a <__mulsf3+0x4e>
+ 3a04: 82 30 cpi r24, 0x02 ; 2
+ 3a06: 41 f4 brne .+16 ; 0x3a18 <__mulsf3+0x5c>
+ 3a08: cb c0 rjmp .+406 ; 0x3ba0 <__mulsf3+0x1e4>
+ 3a0a: 84 30 cpi r24, 0x04 ; 4
+ 3a0c: 19 f4 brne .+6 ; 0x3a14 <__mulsf3+0x58>
+ 3a0e: 92 30 cpi r25, 0x02 ; 2
+ 3a10: 79 f4 brne .+30 ; 0x3a30 <__mulsf3+0x74>
+ 3a12: c6 c0 rjmp .+396 ; 0x3ba0 <__mulsf3+0x1e4>
+ 3a14: 92 30 cpi r25, 0x02 ; 2
+ 3a16: 51 f4 brne .+20 ; 0x3a2c <__mulsf3+0x70>
+ 3a18: 81 e0 ldi r24, 0x01 ; 1
+ 3a1a: 2a 85 ldd r18, Y+10 ; 0x0a
+ 3a1c: 9a 89 ldd r25, Y+18 ; 0x12
+ 3a1e: 29 17 cp r18, r25
+ 3a20: 09 f4 brne .+2 ; 0x3a24 <__mulsf3+0x68>
+ 3a22: 80 e0 ldi r24, 0x00 ; 0
+ 3a24: 8a 87 std Y+10, r24 ; 0x0a
+ 3a26: ce 01 movw r24, r28
+ 3a28: 09 96 adiw r24, 0x09 ; 9
+ 3a2a: bc c0 rjmp .+376 ; 0x3ba4 <__mulsf3+0x1e8>
+ 3a2c: 82 30 cpi r24, 0x02 ; 2
+ 3a2e: 51 f4 brne .+20 ; 0x3a44 <__mulsf3+0x88>
+ 3a30: 81 e0 ldi r24, 0x01 ; 1
+ 3a32: 2a 85 ldd r18, Y+10 ; 0x0a
+ 3a34: 9a 89 ldd r25, Y+18 ; 0x12
+ 3a36: 29 17 cp r18, r25
+ 3a38: 09 f4 brne .+2 ; 0x3a3c <__mulsf3+0x80>
+ 3a3a: 80 e0 ldi r24, 0x00 ; 0
+ 3a3c: 8a 8b std Y+18, r24 ; 0x12
+ 3a3e: ce 01 movw r24, r28
+ 3a40: 41 96 adiw r24, 0x11 ; 17
+ 3a42: b0 c0 rjmp .+352 ; 0x3ba4 <__mulsf3+0x1e8>
+ 3a44: 6d 84 ldd r6, Y+13 ; 0x0d
+ 3a46: 7e 84 ldd r7, Y+14 ; 0x0e
+ 3a48: 8f 84 ldd r8, Y+15 ; 0x0f
+ 3a4a: 98 88 ldd r9, Y+16 ; 0x10
+ 3a4c: ed 88 ldd r14, Y+21 ; 0x15
+ 3a4e: fe 88 ldd r15, Y+22 ; 0x16
+ 3a50: 0f 89 ldd r16, Y+23 ; 0x17
+ 3a52: 18 8d ldd r17, Y+24 ; 0x18
+ 3a54: e0 e2 ldi r30, 0x20 ; 32
+ 3a56: f0 e0 ldi r31, 0x00 ; 0
+ 3a58: 80 e0 ldi r24, 0x00 ; 0
+ 3a5a: 90 e0 ldi r25, 0x00 ; 0
+ 3a5c: dc 01 movw r26, r24
+ 3a5e: aa 24 eor r10, r10
+ 3a60: bb 24 eor r11, r11
+ 3a62: 65 01 movw r12, r10
+ 3a64: 20 e0 ldi r18, 0x00 ; 0
+ 3a66: 30 e0 ldi r19, 0x00 ; 0
+ 3a68: a9 01 movw r20, r18
+ 3a6a: b3 01 movw r22, r6
+ 3a6c: 61 70 andi r22, 0x01 ; 1
+ 3a6e: 70 70 andi r23, 0x00 ; 0
+ 3a70: 61 15 cp r22, r1
+ 3a72: 71 05 cpc r23, r1
+ 3a74: d1 f0 breq .+52 ; 0x3aaa <__mulsf3+0xee>
+ 3a76: 2e 0d add r18, r14
+ 3a78: 3f 1d adc r19, r15
+ 3a7a: 40 1f adc r20, r16
+ 3a7c: 51 1f adc r21, r17
+ 3a7e: 15 01 movw r2, r10
+ 3a80: 26 01 movw r4, r12
+ 3a82: 28 0e add r2, r24
+ 3a84: 39 1e adc r3, r25
+ 3a86: 4a 1e adc r4, r26
+ 3a88: 5b 1e adc r5, r27
+ 3a8a: 81 e0 ldi r24, 0x01 ; 1
+ 3a8c: 90 e0 ldi r25, 0x00 ; 0
+ 3a8e: a0 e0 ldi r26, 0x00 ; 0
+ 3a90: b0 e0 ldi r27, 0x00 ; 0
+ 3a92: 2e 15 cp r18, r14
+ 3a94: 3f 05 cpc r19, r15
+ 3a96: 40 07 cpc r20, r16
+ 3a98: 51 07 cpc r21, r17
+ 3a9a: 18 f0 brcs .+6 ; 0x3aa2 <__mulsf3+0xe6>
+ 3a9c: 80 e0 ldi r24, 0x00 ; 0
+ 3a9e: 90 e0 ldi r25, 0x00 ; 0
+ 3aa0: dc 01 movw r26, r24
+ 3aa2: 82 0d add r24, r2
+ 3aa4: 93 1d adc r25, r3
+ 3aa6: a4 1d adc r26, r4
+ 3aa8: b5 1d adc r27, r5
+ 3aaa: aa 0c add r10, r10
+ 3aac: bb 1c adc r11, r11
+ 3aae: cc 1c adc r12, r12
+ 3ab0: dd 1c adc r13, r13
+ 3ab2: 17 ff sbrs r17, 7
+ 3ab4: 09 c0 rjmp .+18 ; 0x3ac8 <__mulsf3+0x10c>
+ 3ab6: 61 e0 ldi r22, 0x01 ; 1
+ 3ab8: 26 2e mov r2, r22
+ 3aba: 31 2c mov r3, r1
+ 3abc: 41 2c mov r4, r1
+ 3abe: 51 2c mov r5, r1
+ 3ac0: a2 28 or r10, r2
+ 3ac2: b3 28 or r11, r3
+ 3ac4: c4 28 or r12, r4
+ 3ac6: d5 28 or r13, r5
+ 3ac8: 31 97 sbiw r30, 0x01 ; 1
+ 3aca: 49 f0 breq .+18 ; 0x3ade <__mulsf3+0x122>
+ 3acc: ee 0c add r14, r14
+ 3ace: ff 1c adc r15, r15
+ 3ad0: 00 1f adc r16, r16
+ 3ad2: 11 1f adc r17, r17
+ 3ad4: 96 94 lsr r9
+ 3ad6: 87 94 ror r8
+ 3ad8: 77 94 ror r7
+ 3ada: 67 94 ror r6
+ 3adc: c6 cf rjmp .-116 ; 0x3a6a <__mulsf3+0xae>
+ 3ade: 6b 89 ldd r22, Y+19 ; 0x13
+ 3ae0: 7c 89 ldd r23, Y+20 ; 0x14
+ 3ae2: eb 85 ldd r30, Y+11 ; 0x0b
+ 3ae4: fc 85 ldd r31, Y+12 ; 0x0c
+ 3ae6: 6e 0f add r22, r30
+ 3ae8: 7f 1f adc r23, r31
+ 3aea: 6e 5f subi r22, 0xFE ; 254
+ 3aec: 7f 4f sbci r23, 0xFF ; 255
+ 3aee: 7c 8f std Y+28, r23 ; 0x1c
+ 3af0: 6b 8f std Y+27, r22 ; 0x1b
+ 3af2: 61 e0 ldi r22, 0x01 ; 1
+ 3af4: ea 85 ldd r30, Y+10 ; 0x0a
+ 3af6: 7a 89 ldd r23, Y+18 ; 0x12
+ 3af8: e7 17 cp r30, r23
+ 3afa: 09 f4 brne .+2 ; 0x3afe <__mulsf3+0x142>
+ 3afc: 60 e0 ldi r22, 0x00 ; 0
+ 3afe: 6a 8f std Y+26, r22 ; 0x1a
+ 3b00: 6b 8d ldd r22, Y+27 ; 0x1b
+ 3b02: 7c 8d ldd r23, Y+28 ; 0x1c
+ 3b04: 10 c0 rjmp .+32 ; 0x3b26 <__mulsf3+0x16a>
+ 3b06: fc 01 movw r30, r24
+ 3b08: e1 70 andi r30, 0x01 ; 1
+ 3b0a: f0 70 andi r31, 0x00 ; 0
+ 3b0c: 30 97 sbiw r30, 0x00 ; 0
+ 3b0e: 29 f0 breq .+10 ; 0x3b1a <__mulsf3+0x15e>
+ 3b10: 56 95 lsr r21
+ 3b12: 47 95 ror r20
+ 3b14: 37 95 ror r19
+ 3b16: 27 95 ror r18
+ 3b18: 50 68 ori r21, 0x80 ; 128
+ 3b1a: b6 95 lsr r27
+ 3b1c: a7 95 ror r26
+ 3b1e: 97 95 ror r25
+ 3b20: 87 95 ror r24
+ 3b22: 6f 5f subi r22, 0xFF ; 255
+ 3b24: 7f 4f sbci r23, 0xFF ; 255
+ 3b26: b7 fd sbrc r27, 7
+ 3b28: ee cf rjmp .-36 ; 0x3b06 <__mulsf3+0x14a>
+ 3b2a: 0c c0 rjmp .+24 ; 0x3b44 <__mulsf3+0x188>
+ 3b2c: 88 0f add r24, r24
+ 3b2e: 99 1f adc r25, r25
+ 3b30: aa 1f adc r26, r26
+ 3b32: bb 1f adc r27, r27
+ 3b34: 57 fd sbrc r21, 7
+ 3b36: 81 60 ori r24, 0x01 ; 1
+ 3b38: 22 0f add r18, r18
+ 3b3a: 33 1f adc r19, r19
+ 3b3c: 44 1f adc r20, r20
+ 3b3e: 55 1f adc r21, r21
+ 3b40: 61 50 subi r22, 0x01 ; 1
+ 3b42: 70 40 sbci r23, 0x00 ; 0
+ 3b44: 80 30 cpi r24, 0x00 ; 0
+ 3b46: e0 e0 ldi r30, 0x00 ; 0
+ 3b48: 9e 07 cpc r25, r30
+ 3b4a: e0 e0 ldi r30, 0x00 ; 0
+ 3b4c: ae 07 cpc r26, r30
+ 3b4e: e0 e4 ldi r30, 0x40 ; 64
+ 3b50: be 07 cpc r27, r30
+ 3b52: 60 f3 brcs .-40 ; 0x3b2c <__mulsf3+0x170>
+ 3b54: 6b 8f std Y+27, r22 ; 0x1b
+ 3b56: 7c 8f std Y+28, r23 ; 0x1c
+ 3b58: 6f e7 ldi r22, 0x7F ; 127
+ 3b5a: e6 2e mov r14, r22
+ 3b5c: f1 2c mov r15, r1
+ 3b5e: 01 2d mov r16, r1
+ 3b60: 11 2d mov r17, r1
+ 3b62: e8 22 and r14, r24
+ 3b64: f9 22 and r15, r25
+ 3b66: 0a 23 and r16, r26
+ 3b68: 1b 23 and r17, r27
+ 3b6a: 60 e4 ldi r22, 0x40 ; 64
+ 3b6c: e6 16 cp r14, r22
+ 3b6e: f1 04 cpc r15, r1
+ 3b70: 01 05 cpc r16, r1
+ 3b72: 11 05 cpc r17, r1
+ 3b74: 61 f4 brne .+24 ; 0x3b8e <__mulsf3+0x1d2>
+ 3b76: 87 fd sbrc r24, 7
+ 3b78: 0a c0 rjmp .+20 ; 0x3b8e <__mulsf3+0x1d2>
+ 3b7a: 21 15 cp r18, r1
+ 3b7c: 31 05 cpc r19, r1
+ 3b7e: 41 05 cpc r20, r1
+ 3b80: 51 05 cpc r21, r1
+ 3b82: 29 f0 breq .+10 ; 0x3b8e <__mulsf3+0x1d2>
+ 3b84: 80 5c subi r24, 0xC0 ; 192
+ 3b86: 9f 4f sbci r25, 0xFF ; 255
+ 3b88: af 4f sbci r26, 0xFF ; 255
+ 3b8a: bf 4f sbci r27, 0xFF ; 255
+ 3b8c: 80 78 andi r24, 0x80 ; 128
+ 3b8e: 8d 8f std Y+29, r24 ; 0x1d
+ 3b90: 9e 8f std Y+30, r25 ; 0x1e
+ 3b92: af 8f std Y+31, r26 ; 0x1f
+ 3b94: b8 a3 std Y+32, r27 ; 0x20
+ 3b96: 83 e0 ldi r24, 0x03 ; 3
+ 3b98: 89 8f std Y+25, r24 ; 0x19
+ 3b9a: ce 01 movw r24, r28
+ 3b9c: 49 96 adiw r24, 0x19 ; 25
+ 3b9e: 02 c0 rjmp .+4 ; 0x3ba4 <__mulsf3+0x1e8>
+ 3ba0: 8e ea ldi r24, 0xAE ; 174
+ 3ba2: 91 e0 ldi r25, 0x01 ; 1
+ 3ba4: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 3ba8: a0 96 adiw r28, 0x20 ; 32
+ 3baa: e2 e1 ldi r30, 0x12 ; 18
+ 3bac: 0c 94 99 22 jmp 0x4532 ; 0x4532 <__epilogue_restores__>
+
+00003bb0 <__divsf3>:
+ 3bb0: a8 e1 ldi r26, 0x18 ; 24
+ 3bb2: b0 e0 ldi r27, 0x00 ; 0
+ 3bb4: ee ed ldi r30, 0xDE ; 222
+ 3bb6: fd e1 ldi r31, 0x1D ; 29
+ 3bb8: 0c 94 85 22 jmp 0x450a ; 0x450a <__prologue_saves__+0x10>
+ 3bbc: 69 83 std Y+1, r22 ; 0x01
+ 3bbe: 7a 83 std Y+2, r23 ; 0x02
+ 3bc0: 8b 83 std Y+3, r24 ; 0x03
+ 3bc2: 9c 83 std Y+4, r25 ; 0x04
+ 3bc4: 2d 83 std Y+5, r18 ; 0x05
+ 3bc6: 3e 83 std Y+6, r19 ; 0x06
+ 3bc8: 4f 83 std Y+7, r20 ; 0x07
+ 3bca: 58 87 std Y+8, r21 ; 0x08
+ 3bcc: 8e 01 movw r16, r28
+ 3bce: 07 5f subi r16, 0xF7 ; 247
+ 3bd0: 1f 4f sbci r17, 0xFF ; 255
+ 3bd2: ce 01 movw r24, r28
+ 3bd4: 01 96 adiw r24, 0x01 ; 1
+ 3bd6: b8 01 movw r22, r16
+ 3bd8: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3bdc: 81 e1 ldi r24, 0x11 ; 17
+ 3bde: e8 2e mov r14, r24
+ 3be0: f1 2c mov r15, r1
+ 3be2: ec 0e add r14, r28
+ 3be4: fd 1e adc r15, r29
+ 3be6: ce 01 movw r24, r28
+ 3be8: 05 96 adiw r24, 0x05 ; 5
+ 3bea: b7 01 movw r22, r14
+ 3bec: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3bf0: 99 85 ldd r25, Y+9 ; 0x09
+ 3bf2: 92 30 cpi r25, 0x02 ; 2
+ 3bf4: 08 f4 brcc .+2 ; 0x3bf8 <__divsf3+0x48>
+ 3bf6: 83 c0 rjmp .+262 ; 0x3cfe <__divsf3+0x14e>
+ 3bf8: 89 89 ldd r24, Y+17 ; 0x11
+ 3bfa: 82 30 cpi r24, 0x02 ; 2
+ 3bfc: 08 f4 brcc .+2 ; 0x3c00 <__divsf3+0x50>
+ 3bfe: 7b c0 rjmp .+246 ; 0x3cf6 <__divsf3+0x146>
+ 3c00: 2a 85 ldd r18, Y+10 ; 0x0a
+ 3c02: 3a 89 ldd r19, Y+18 ; 0x12
+ 3c04: 23 27 eor r18, r19
+ 3c06: 2a 87 std Y+10, r18 ; 0x0a
+ 3c08: 94 30 cpi r25, 0x04 ; 4
+ 3c0a: 11 f0 breq .+4 ; 0x3c10 <__divsf3+0x60>
+ 3c0c: 92 30 cpi r25, 0x02 ; 2
+ 3c0e: 21 f4 brne .+8 ; 0x3c18 <__divsf3+0x68>
+ 3c10: 98 17 cp r25, r24
+ 3c12: 09 f0 breq .+2 ; 0x3c16 <__divsf3+0x66>
+ 3c14: 6c c0 rjmp .+216 ; 0x3cee <__divsf3+0x13e>
+ 3c16: 71 c0 rjmp .+226 ; 0x3cfa <__divsf3+0x14a>
+ 3c18: 84 30 cpi r24, 0x04 ; 4
+ 3c1a: 39 f4 brne .+14 ; 0x3c2a <__divsf3+0x7a>
+ 3c1c: 1d 86 std Y+13, r1 ; 0x0d
+ 3c1e: 1e 86 std Y+14, r1 ; 0x0e
+ 3c20: 1f 86 std Y+15, r1 ; 0x0f
+ 3c22: 18 8a std Y+16, r1 ; 0x10
+ 3c24: 1c 86 std Y+12, r1 ; 0x0c
+ 3c26: 1b 86 std Y+11, r1 ; 0x0b
+ 3c28: 6a c0 rjmp .+212 ; 0x3cfe <__divsf3+0x14e>
+ 3c2a: 82 30 cpi r24, 0x02 ; 2
+ 3c2c: 19 f4 brne .+6 ; 0x3c34 <__divsf3+0x84>
+ 3c2e: 84 e0 ldi r24, 0x04 ; 4
+ 3c30: 89 87 std Y+9, r24 ; 0x09
+ 3c32: 65 c0 rjmp .+202 ; 0x3cfe <__divsf3+0x14e>
+ 3c34: 8b 85 ldd r24, Y+11 ; 0x0b
+ 3c36: 9c 85 ldd r25, Y+12 ; 0x0c
+ 3c38: 2b 89 ldd r18, Y+19 ; 0x13
+ 3c3a: 3c 89 ldd r19, Y+20 ; 0x14
+ 3c3c: 82 1b sub r24, r18
+ 3c3e: 93 0b sbc r25, r19
+ 3c40: 9c 87 std Y+12, r25 ; 0x0c
+ 3c42: 8b 87 std Y+11, r24 ; 0x0b
+ 3c44: 2d 85 ldd r18, Y+13 ; 0x0d
+ 3c46: 3e 85 ldd r19, Y+14 ; 0x0e
+ 3c48: 4f 85 ldd r20, Y+15 ; 0x0f
+ 3c4a: 58 89 ldd r21, Y+16 ; 0x10
+ 3c4c: ed 88 ldd r14, Y+21 ; 0x15
+ 3c4e: fe 88 ldd r15, Y+22 ; 0x16
+ 3c50: 0f 89 ldd r16, Y+23 ; 0x17
+ 3c52: 18 8d ldd r17, Y+24 ; 0x18
+ 3c54: 2e 15 cp r18, r14
+ 3c56: 3f 05 cpc r19, r15
+ 3c58: 40 07 cpc r20, r16
+ 3c5a: 51 07 cpc r21, r17
+ 3c5c: 38 f4 brcc .+14 ; 0x3c6c <__divsf3+0xbc>
+ 3c5e: 22 0f add r18, r18
+ 3c60: 33 1f adc r19, r19
+ 3c62: 44 1f adc r20, r20
+ 3c64: 55 1f adc r21, r21
+ 3c66: 01 97 sbiw r24, 0x01 ; 1
+ 3c68: 9c 87 std Y+12, r25 ; 0x0c
+ 3c6a: 8b 87 std Y+11, r24 ; 0x0b
+ 3c6c: 6f e1 ldi r22, 0x1F ; 31
+ 3c6e: 70 e0 ldi r23, 0x00 ; 0
+ 3c70: a1 2c mov r10, r1
+ 3c72: b1 2c mov r11, r1
+ 3c74: c1 2c mov r12, r1
+ 3c76: a0 e4 ldi r26, 0x40 ; 64
+ 3c78: da 2e mov r13, r26
+ 3c7a: 80 e0 ldi r24, 0x00 ; 0
+ 3c7c: 90 e0 ldi r25, 0x00 ; 0
+ 3c7e: dc 01 movw r26, r24
+ 3c80: 2e 15 cp r18, r14
+ 3c82: 3f 05 cpc r19, r15
+ 3c84: 40 07 cpc r20, r16
+ 3c86: 51 07 cpc r21, r17
+ 3c88: 40 f0 brcs .+16 ; 0x3c9a <__divsf3+0xea>
+ 3c8a: 8a 29 or r24, r10
+ 3c8c: 9b 29 or r25, r11
+ 3c8e: ac 29 or r26, r12
+ 3c90: bd 29 or r27, r13
+ 3c92: 2e 19 sub r18, r14
+ 3c94: 3f 09 sbc r19, r15
+ 3c96: 40 0b sbc r20, r16
+ 3c98: 51 0b sbc r21, r17
+ 3c9a: d6 94 lsr r13
+ 3c9c: c7 94 ror r12
+ 3c9e: b7 94 ror r11
+ 3ca0: a7 94 ror r10
+ 3ca2: 22 0f add r18, r18
+ 3ca4: 33 1f adc r19, r19
+ 3ca6: 44 1f adc r20, r20
+ 3ca8: 55 1f adc r21, r21
+ 3caa: 61 50 subi r22, 0x01 ; 1
+ 3cac: 70 40 sbci r23, 0x00 ; 0
+ 3cae: 41 f7 brne .-48 ; 0x3c80 <__divsf3+0xd0>
+ 3cb0: 6f e7 ldi r22, 0x7F ; 127
+ 3cb2: e6 2e mov r14, r22
+ 3cb4: f1 2c mov r15, r1
+ 3cb6: 01 2d mov r16, r1
+ 3cb8: 11 2d mov r17, r1
+ 3cba: e8 22 and r14, r24
+ 3cbc: f9 22 and r15, r25
+ 3cbe: 0a 23 and r16, r26
+ 3cc0: 1b 23 and r17, r27
+ 3cc2: 60 e4 ldi r22, 0x40 ; 64
+ 3cc4: e6 16 cp r14, r22
+ 3cc6: f1 04 cpc r15, r1
+ 3cc8: 01 05 cpc r16, r1
+ 3cca: 11 05 cpc r17, r1
+ 3ccc: 61 f4 brne .+24 ; 0x3ce6 <__divsf3+0x136>
+ 3cce: 87 fd sbrc r24, 7
+ 3cd0: 0a c0 rjmp .+20 ; 0x3ce6 <__divsf3+0x136>
+ 3cd2: 21 15 cp r18, r1
+ 3cd4: 31 05 cpc r19, r1
+ 3cd6: 41 05 cpc r20, r1
+ 3cd8: 51 05 cpc r21, r1
+ 3cda: 29 f0 breq .+10 ; 0x3ce6 <__divsf3+0x136>
+ 3cdc: 80 5c subi r24, 0xC0 ; 192
+ 3cde: 9f 4f sbci r25, 0xFF ; 255
+ 3ce0: af 4f sbci r26, 0xFF ; 255
+ 3ce2: bf 4f sbci r27, 0xFF ; 255
+ 3ce4: 80 78 andi r24, 0x80 ; 128
+ 3ce6: 8d 87 std Y+13, r24 ; 0x0d
+ 3ce8: 9e 87 std Y+14, r25 ; 0x0e
+ 3cea: af 87 std Y+15, r26 ; 0x0f
+ 3cec: b8 8b std Y+16, r27 ; 0x10
+ 3cee: 8e 01 movw r16, r28
+ 3cf0: 07 5f subi r16, 0xF7 ; 247
+ 3cf2: 1f 4f sbci r17, 0xFF ; 255
+ 3cf4: 04 c0 rjmp .+8 ; 0x3cfe <__divsf3+0x14e>
+ 3cf6: 87 01 movw r16, r14
+ 3cf8: 02 c0 rjmp .+4 ; 0x3cfe <__divsf3+0x14e>
+ 3cfa: 0e ea ldi r16, 0xAE ; 174
+ 3cfc: 11 e0 ldi r17, 0x01 ; 1
+ 3cfe: c8 01 movw r24, r16
+ 3d00: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 3d04: 68 96 adiw r28, 0x18 ; 24
+ 3d06: ea e0 ldi r30, 0x0A ; 10
+ 3d08: 0c 94 a1 22 jmp 0x4542 ; 0x4542 <__epilogue_restores__+0x10>
+
+00003d0c <__gesf2>:
+ 3d0c: a8 e1 ldi r26, 0x18 ; 24
+ 3d0e: b0 e0 ldi r27, 0x00 ; 0
+ 3d10: ec e8 ldi r30, 0x8C ; 140
+ 3d12: fe e1 ldi r31, 0x1E ; 30
+ 3d14: 0c 94 89 22 jmp 0x4512 ; 0x4512 <__prologue_saves__+0x18>
+ 3d18: 69 83 std Y+1, r22 ; 0x01
+ 3d1a: 7a 83 std Y+2, r23 ; 0x02
+ 3d1c: 8b 83 std Y+3, r24 ; 0x03
+ 3d1e: 9c 83 std Y+4, r25 ; 0x04
+ 3d20: 2d 83 std Y+5, r18 ; 0x05
+ 3d22: 3e 83 std Y+6, r19 ; 0x06
+ 3d24: 4f 83 std Y+7, r20 ; 0x07
+ 3d26: 58 87 std Y+8, r21 ; 0x08
+ 3d28: 8e 01 movw r16, r28
+ 3d2a: 07 5f subi r16, 0xF7 ; 247
+ 3d2c: 1f 4f sbci r17, 0xFF ; 255
+ 3d2e: ce 01 movw r24, r28
+ 3d30: 01 96 adiw r24, 0x01 ; 1
+ 3d32: b8 01 movw r22, r16
+ 3d34: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3d38: 81 e1 ldi r24, 0x11 ; 17
+ 3d3a: e8 2e mov r14, r24
+ 3d3c: f1 2c mov r15, r1
+ 3d3e: ec 0e add r14, r28
+ 3d40: fd 1e adc r15, r29
+ 3d42: ce 01 movw r24, r28
+ 3d44: 05 96 adiw r24, 0x05 ; 5
+ 3d46: b7 01 movw r22, r14
+ 3d48: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3d4c: 89 85 ldd r24, Y+9 ; 0x09
+ 3d4e: 82 30 cpi r24, 0x02 ; 2
+ 3d50: 40 f0 brcs .+16 ; 0x3d62 <__gesf2+0x56>
+ 3d52: 89 89 ldd r24, Y+17 ; 0x11
+ 3d54: 82 30 cpi r24, 0x02 ; 2
+ 3d56: 28 f0 brcs .+10 ; 0x3d62 <__gesf2+0x56>
+ 3d58: c8 01 movw r24, r16
+ 3d5a: b7 01 movw r22, r14
+ 3d5c: 0e 94 a1 21 call 0x4342 ; 0x4342 <__fpcmp_parts_f>
+ 3d60: 01 c0 rjmp .+2 ; 0x3d64 <__gesf2+0x58>
+ 3d62: 8f ef ldi r24, 0xFF ; 255
+ 3d64: 68 96 adiw r28, 0x18 ; 24
+ 3d66: e6 e0 ldi r30, 0x06 ; 6
+ 3d68: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+00003d6c <__ltsf2>:
+ 3d6c: a8 e1 ldi r26, 0x18 ; 24
+ 3d6e: b0 e0 ldi r27, 0x00 ; 0
+ 3d70: ec eb ldi r30, 0xBC ; 188
+ 3d72: fe e1 ldi r31, 0x1E ; 30
+ 3d74: 0c 94 89 22 jmp 0x4512 ; 0x4512 <__prologue_saves__+0x18>
+ 3d78: 69 83 std Y+1, r22 ; 0x01
+ 3d7a: 7a 83 std Y+2, r23 ; 0x02
+ 3d7c: 8b 83 std Y+3, r24 ; 0x03
+ 3d7e: 9c 83 std Y+4, r25 ; 0x04
+ 3d80: 2d 83 std Y+5, r18 ; 0x05
+ 3d82: 3e 83 std Y+6, r19 ; 0x06
+ 3d84: 4f 83 std Y+7, r20 ; 0x07
+ 3d86: 58 87 std Y+8, r21 ; 0x08
+ 3d88: 8e 01 movw r16, r28
+ 3d8a: 07 5f subi r16, 0xF7 ; 247
+ 3d8c: 1f 4f sbci r17, 0xFF ; 255
+ 3d8e: ce 01 movw r24, r28
+ 3d90: 01 96 adiw r24, 0x01 ; 1
+ 3d92: b8 01 movw r22, r16
+ 3d94: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3d98: 81 e1 ldi r24, 0x11 ; 17
+ 3d9a: e8 2e mov r14, r24
+ 3d9c: f1 2c mov r15, r1
+ 3d9e: ec 0e add r14, r28
+ 3da0: fd 1e adc r15, r29
+ 3da2: ce 01 movw r24, r28
+ 3da4: 05 96 adiw r24, 0x05 ; 5
+ 3da6: b7 01 movw r22, r14
+ 3da8: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3dac: 89 85 ldd r24, Y+9 ; 0x09
+ 3dae: 82 30 cpi r24, 0x02 ; 2
+ 3db0: 40 f0 brcs .+16 ; 0x3dc2 <__ltsf2+0x56>
+ 3db2: 89 89 ldd r24, Y+17 ; 0x11
+ 3db4: 82 30 cpi r24, 0x02 ; 2
+ 3db6: 28 f0 brcs .+10 ; 0x3dc2 <__ltsf2+0x56>
+ 3db8: c8 01 movw r24, r16
+ 3dba: b7 01 movw r22, r14
+ 3dbc: 0e 94 a1 21 call 0x4342 ; 0x4342 <__fpcmp_parts_f>
+ 3dc0: 01 c0 rjmp .+2 ; 0x3dc4 <__ltsf2+0x58>
+ 3dc2: 81 e0 ldi r24, 0x01 ; 1
+ 3dc4: 68 96 adiw r28, 0x18 ; 24
+ 3dc6: e6 e0 ldi r30, 0x06 ; 6
+ 3dc8: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+00003dcc <__floatsisf>:
+ 3dcc: a8 e0 ldi r26, 0x08 ; 8
+ 3dce: b0 e0 ldi r27, 0x00 ; 0
+ 3dd0: ec ee ldi r30, 0xEC ; 236
+ 3dd2: fe e1 ldi r31, 0x1E ; 30
+ 3dd4: 0c 94 89 22 jmp 0x4512 ; 0x4512 <__prologue_saves__+0x18>
+ 3dd8: 7b 01 movw r14, r22
+ 3dda: 8c 01 movw r16, r24
+ 3ddc: 83 e0 ldi r24, 0x03 ; 3
+ 3dde: 89 83 std Y+1, r24 ; 0x01
+ 3de0: d8 01 movw r26, r16
+ 3de2: c7 01 movw r24, r14
+ 3de4: 88 27 eor r24, r24
+ 3de6: b7 fd sbrc r27, 7
+ 3de8: 83 95 inc r24
+ 3dea: 99 27 eor r25, r25
+ 3dec: aa 27 eor r26, r26
+ 3dee: bb 27 eor r27, r27
+ 3df0: 28 2f mov r18, r24
+ 3df2: 8a 83 std Y+2, r24 ; 0x02
+ 3df4: e1 14 cp r14, r1
+ 3df6: f1 04 cpc r15, r1
+ 3df8: 01 05 cpc r16, r1
+ 3dfa: 11 05 cpc r17, r1
+ 3dfc: 19 f4 brne .+6 ; 0x3e04 <__floatsisf+0x38>
+ 3dfe: 82 e0 ldi r24, 0x02 ; 2
+ 3e00: 89 83 std Y+1, r24 ; 0x01
+ 3e02: 37 c0 rjmp .+110 ; 0x3e72 <__floatsisf+0xa6>
+ 3e04: 8e e1 ldi r24, 0x1E ; 30
+ 3e06: 90 e0 ldi r25, 0x00 ; 0
+ 3e08: 9c 83 std Y+4, r25 ; 0x04
+ 3e0a: 8b 83 std Y+3, r24 ; 0x03
+ 3e0c: 22 23 and r18, r18
+ 3e0e: 89 f0 breq .+34 ; 0x3e32 <__floatsisf+0x66>
+ 3e10: 80 e0 ldi r24, 0x00 ; 0
+ 3e12: e8 16 cp r14, r24
+ 3e14: 80 e0 ldi r24, 0x00 ; 0
+ 3e16: f8 06 cpc r15, r24
+ 3e18: 80 e0 ldi r24, 0x00 ; 0
+ 3e1a: 08 07 cpc r16, r24
+ 3e1c: 80 e8 ldi r24, 0x80 ; 128
+ 3e1e: 18 07 cpc r17, r24
+ 3e20: 69 f1 breq .+90 ; 0x3e7c <__floatsisf+0xb0>
+ 3e22: 10 95 com r17
+ 3e24: 00 95 com r16
+ 3e26: f0 94 com r15
+ 3e28: e0 94 com r14
+ 3e2a: e1 1c adc r14, r1
+ 3e2c: f1 1c adc r15, r1
+ 3e2e: 01 1d adc r16, r1
+ 3e30: 11 1d adc r17, r1
+ 3e32: ed 82 std Y+5, r14 ; 0x05
+ 3e34: fe 82 std Y+6, r15 ; 0x06
+ 3e36: 0f 83 std Y+7, r16 ; 0x07
+ 3e38: 18 87 std Y+8, r17 ; 0x08
+ 3e3a: c8 01 movw r24, r16
+ 3e3c: b7 01 movw r22, r14
+ 3e3e: 0e 94 10 20 call 0x4020 ; 0x4020 <__clzsi2>
+ 3e42: 9c 01 movw r18, r24
+ 3e44: 21 50 subi r18, 0x01 ; 1
+ 3e46: 30 40 sbci r19, 0x00 ; 0
+ 3e48: 12 16 cp r1, r18
+ 3e4a: 13 06 cpc r1, r19
+ 3e4c: 94 f4 brge .+36 ; 0x3e72 <__floatsisf+0xa6>
+ 3e4e: 02 2e mov r0, r18
+ 3e50: 04 c0 rjmp .+8 ; 0x3e5a <__floatsisf+0x8e>
+ 3e52: ee 0c add r14, r14
+ 3e54: ff 1c adc r15, r15
+ 3e56: 00 1f adc r16, r16
+ 3e58: 11 1f adc r17, r17
+ 3e5a: 0a 94 dec r0
+ 3e5c: d2 f7 brpl .-12 ; 0x3e52 <__floatsisf+0x86>
+ 3e5e: ed 82 std Y+5, r14 ; 0x05
+ 3e60: fe 82 std Y+6, r15 ; 0x06
+ 3e62: 0f 83 std Y+7, r16 ; 0x07
+ 3e64: 18 87 std Y+8, r17 ; 0x08
+ 3e66: 8e e1 ldi r24, 0x1E ; 30
+ 3e68: 90 e0 ldi r25, 0x00 ; 0
+ 3e6a: 82 1b sub r24, r18
+ 3e6c: 93 0b sbc r25, r19
+ 3e6e: 9c 83 std Y+4, r25 ; 0x04
+ 3e70: 8b 83 std Y+3, r24 ; 0x03
+ 3e72: ce 01 movw r24, r28
+ 3e74: 01 96 adiw r24, 0x01 ; 1
+ 3e76: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 3e7a: 04 c0 rjmp .+8 ; 0x3e84 <__floatsisf+0xb8>
+ 3e7c: 60 e0 ldi r22, 0x00 ; 0
+ 3e7e: 70 e0 ldi r23, 0x00 ; 0
+ 3e80: 80 e0 ldi r24, 0x00 ; 0
+ 3e82: 9f ec ldi r25, 0xCF ; 207
+ 3e84: 28 96 adiw r28, 0x08 ; 8
+ 3e86: e6 e0 ldi r30, 0x06 ; 6
+ 3e88: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+00003e8c <__fixsfsi>:
+ 3e8c: ac e0 ldi r26, 0x0C ; 12
+ 3e8e: b0 e0 ldi r27, 0x00 ; 0
+ 3e90: ec e4 ldi r30, 0x4C ; 76
+ 3e92: ff e1 ldi r31, 0x1F ; 31
+ 3e94: 0c 94 8d 22 jmp 0x451a ; 0x451a <__prologue_saves__+0x20>
+ 3e98: 69 83 std Y+1, r22 ; 0x01
+ 3e9a: 7a 83 std Y+2, r23 ; 0x02
+ 3e9c: 8b 83 std Y+3, r24 ; 0x03
+ 3e9e: 9c 83 std Y+4, r25 ; 0x04
+ 3ea0: ce 01 movw r24, r28
+ 3ea2: 01 96 adiw r24, 0x01 ; 1
+ 3ea4: be 01 movw r22, r28
+ 3ea6: 6b 5f subi r22, 0xFB ; 251
+ 3ea8: 7f 4f sbci r23, 0xFF ; 255
+ 3eaa: 0e 94 38 21 call 0x4270 ; 0x4270 <__unpack_f>
+ 3eae: 8d 81 ldd r24, Y+5 ; 0x05
+ 3eb0: 82 30 cpi r24, 0x02 ; 2
+ 3eb2: 81 f1 breq .+96 ; 0x3f14 <__fixsfsi+0x88>
+ 3eb4: 82 30 cpi r24, 0x02 ; 2
+ 3eb6: 70 f1 brcs .+92 ; 0x3f14 <__fixsfsi+0x88>
+ 3eb8: 84 30 cpi r24, 0x04 ; 4
+ 3eba: 21 f4 brne .+8 ; 0x3ec4 <__fixsfsi+0x38>
+ 3ebc: 8e 81 ldd r24, Y+6 ; 0x06
+ 3ebe: 88 23 and r24, r24
+ 3ec0: 69 f1 breq .+90 ; 0x3f1c <__fixsfsi+0x90>
+ 3ec2: 0a c0 rjmp .+20 ; 0x3ed8 <__fixsfsi+0x4c>
+ 3ec4: 2f 81 ldd r18, Y+7 ; 0x07
+ 3ec6: 38 85 ldd r19, Y+8 ; 0x08
+ 3ec8: 37 fd sbrc r19, 7
+ 3eca: 24 c0 rjmp .+72 ; 0x3f14 <__fixsfsi+0x88>
+ 3ecc: 6e 81 ldd r22, Y+6 ; 0x06
+ 3ece: 2f 31 cpi r18, 0x1F ; 31
+ 3ed0: 31 05 cpc r19, r1
+ 3ed2: 3c f0 brlt .+14 ; 0x3ee2 <__fixsfsi+0x56>
+ 3ed4: 66 23 and r22, r22
+ 3ed6: 11 f1 breq .+68 ; 0x3f1c <__fixsfsi+0x90>
+ 3ed8: 20 e0 ldi r18, 0x00 ; 0
+ 3eda: 30 e0 ldi r19, 0x00 ; 0
+ 3edc: 40 e0 ldi r20, 0x00 ; 0
+ 3ede: 50 e8 ldi r21, 0x80 ; 128
+ 3ee0: 21 c0 rjmp .+66 ; 0x3f24 <__fixsfsi+0x98>
+ 3ee2: 8e e1 ldi r24, 0x1E ; 30
+ 3ee4: 90 e0 ldi r25, 0x00 ; 0
+ 3ee6: 82 1b sub r24, r18
+ 3ee8: 93 0b sbc r25, r19
+ 3eea: 29 85 ldd r18, Y+9 ; 0x09
+ 3eec: 3a 85 ldd r19, Y+10 ; 0x0a
+ 3eee: 4b 85 ldd r20, Y+11 ; 0x0b
+ 3ef0: 5c 85 ldd r21, Y+12 ; 0x0c
+ 3ef2: 04 c0 rjmp .+8 ; 0x3efc <__fixsfsi+0x70>
+ 3ef4: 56 95 lsr r21
+ 3ef6: 47 95 ror r20
+ 3ef8: 37 95 ror r19
+ 3efa: 27 95 ror r18
+ 3efc: 8a 95 dec r24
+ 3efe: d2 f7 brpl .-12 ; 0x3ef4 <__fixsfsi+0x68>
+ 3f00: 66 23 and r22, r22
+ 3f02: 81 f0 breq .+32 ; 0x3f24 <__fixsfsi+0x98>
+ 3f04: 50 95 com r21
+ 3f06: 40 95 com r20
+ 3f08: 30 95 com r19
+ 3f0a: 21 95 neg r18
+ 3f0c: 3f 4f sbci r19, 0xFF ; 255
+ 3f0e: 4f 4f sbci r20, 0xFF ; 255
+ 3f10: 5f 4f sbci r21, 0xFF ; 255
+ 3f12: 08 c0 rjmp .+16 ; 0x3f24 <__fixsfsi+0x98>
+ 3f14: 20 e0 ldi r18, 0x00 ; 0
+ 3f16: 30 e0 ldi r19, 0x00 ; 0
+ 3f18: a9 01 movw r20, r18
+ 3f1a: 04 c0 rjmp .+8 ; 0x3f24 <__fixsfsi+0x98>
+ 3f1c: 2f ef ldi r18, 0xFF ; 255
+ 3f1e: 3f ef ldi r19, 0xFF ; 255
+ 3f20: 4f ef ldi r20, 0xFF ; 255
+ 3f22: 5f e7 ldi r21, 0x7F ; 127
+ 3f24: b9 01 movw r22, r18
+ 3f26: ca 01 movw r24, r20
+ 3f28: 2c 96 adiw r28, 0x0c ; 12
+ 3f2a: e2 e0 ldi r30, 0x02 ; 2
+ 3f2c: 0c 94 a9 22 jmp 0x4552 ; 0x4552 <__epilogue_restores__+0x20>
+
+00003f30 <__floatunsisf>:
+ 3f30: a8 e0 ldi r26, 0x08 ; 8
+ 3f32: b0 e0 ldi r27, 0x00 ; 0
+ 3f34: ee e9 ldi r30, 0x9E ; 158
+ 3f36: ff e1 ldi r31, 0x1F ; 31
+ 3f38: 0c 94 87 22 jmp 0x450e ; 0x450e <__prologue_saves__+0x14>
+ 3f3c: 7b 01 movw r14, r22
+ 3f3e: 8c 01 movw r16, r24
+ 3f40: 1a 82 std Y+2, r1 ; 0x02
+ 3f42: 61 15 cp r22, r1
+ 3f44: 71 05 cpc r23, r1
+ 3f46: 81 05 cpc r24, r1
+ 3f48: 91 05 cpc r25, r1
+ 3f4a: 19 f4 brne .+6 ; 0x3f52 <__floatunsisf+0x22>
+ 3f4c: 82 e0 ldi r24, 0x02 ; 2
+ 3f4e: 89 83 std Y+1, r24 ; 0x01
+ 3f50: 5f c0 rjmp .+190 ; 0x4010 <__floatunsisf+0xe0>
+ 3f52: 83 e0 ldi r24, 0x03 ; 3
+ 3f54: 89 83 std Y+1, r24 ; 0x01
+ 3f56: 8e e1 ldi r24, 0x1E ; 30
+ 3f58: c8 2e mov r12, r24
+ 3f5a: d1 2c mov r13, r1
+ 3f5c: dc 82 std Y+4, r13 ; 0x04
+ 3f5e: cb 82 std Y+3, r12 ; 0x03
+ 3f60: ed 82 std Y+5, r14 ; 0x05
+ 3f62: fe 82 std Y+6, r15 ; 0x06
+ 3f64: 0f 83 std Y+7, r16 ; 0x07
+ 3f66: 18 87 std Y+8, r17 ; 0x08
+ 3f68: c8 01 movw r24, r16
+ 3f6a: b7 01 movw r22, r14
+ 3f6c: 0e 94 10 20 call 0x4020 ; 0x4020 <__clzsi2>
+ 3f70: fc 01 movw r30, r24
+ 3f72: 31 97 sbiw r30, 0x01 ; 1
+ 3f74: f7 ff sbrs r31, 7
+ 3f76: 3a c0 rjmp .+116 ; 0x3fec <__floatunsisf+0xbc>
+ 3f78: aa 27 eor r26, r26
+ 3f7a: bb 27 eor r27, r27
+ 3f7c: ae 1b sub r26, r30
+ 3f7e: bf 0b sbc r27, r31
+ 3f80: 21 e0 ldi r18, 0x01 ; 1
+ 3f82: 30 e0 ldi r19, 0x00 ; 0
+ 3f84: 40 e0 ldi r20, 0x00 ; 0
+ 3f86: 50 e0 ldi r21, 0x00 ; 0
+ 3f88: 0a 2e mov r0, r26
+ 3f8a: 04 c0 rjmp .+8 ; 0x3f94 <__floatunsisf+0x64>
+ 3f8c: 22 0f add r18, r18
+ 3f8e: 33 1f adc r19, r19
+ 3f90: 44 1f adc r20, r20
+ 3f92: 55 1f adc r21, r21
+ 3f94: 0a 94 dec r0
+ 3f96: d2 f7 brpl .-12 ; 0x3f8c <__floatunsisf+0x5c>
+ 3f98: 21 50 subi r18, 0x01 ; 1
+ 3f9a: 30 40 sbci r19, 0x00 ; 0
+ 3f9c: 40 40 sbci r20, 0x00 ; 0
+ 3f9e: 50 40 sbci r21, 0x00 ; 0
+ 3fa0: 2e 21 and r18, r14
+ 3fa2: 3f 21 and r19, r15
+ 3fa4: 40 23 and r20, r16
+ 3fa6: 51 23 and r21, r17
+ 3fa8: 61 e0 ldi r22, 0x01 ; 1
+ 3faa: 70 e0 ldi r23, 0x00 ; 0
+ 3fac: 80 e0 ldi r24, 0x00 ; 0
+ 3fae: 90 e0 ldi r25, 0x00 ; 0
+ 3fb0: 21 15 cp r18, r1
+ 3fb2: 31 05 cpc r19, r1
+ 3fb4: 41 05 cpc r20, r1
+ 3fb6: 51 05 cpc r21, r1
+ 3fb8: 19 f4 brne .+6 ; 0x3fc0 <__floatunsisf+0x90>
+ 3fba: 60 e0 ldi r22, 0x00 ; 0
+ 3fbc: 70 e0 ldi r23, 0x00 ; 0
+ 3fbe: cb 01 movw r24, r22
+ 3fc0: 04 c0 rjmp .+8 ; 0x3fca <__floatunsisf+0x9a>
+ 3fc2: 16 95 lsr r17
+ 3fc4: 07 95 ror r16
+ 3fc6: f7 94 ror r15
+ 3fc8: e7 94 ror r14
+ 3fca: aa 95 dec r26
+ 3fcc: d2 f7 brpl .-12 ; 0x3fc2 <__floatunsisf+0x92>
+ 3fce: e6 2a or r14, r22
+ 3fd0: f7 2a or r15, r23
+ 3fd2: 08 2b or r16, r24
+ 3fd4: 19 2b or r17, r25
+ 3fd6: ed 82 std Y+5, r14 ; 0x05
+ 3fd8: fe 82 std Y+6, r15 ; 0x06
+ 3fda: 0f 83 std Y+7, r16 ; 0x07
+ 3fdc: 18 87 std Y+8, r17 ; 0x08
+ 3fde: 8e e1 ldi r24, 0x1E ; 30
+ 3fe0: 90 e0 ldi r25, 0x00 ; 0
+ 3fe2: 8e 1b sub r24, r30
+ 3fe4: 9f 0b sbc r25, r31
+ 3fe6: 9c 83 std Y+4, r25 ; 0x04
+ 3fe8: 8b 83 std Y+3, r24 ; 0x03
+ 3fea: 12 c0 rjmp .+36 ; 0x4010 <__floatunsisf+0xe0>
+ 3fec: 30 97 sbiw r30, 0x00 ; 0
+ 3fee: 81 f0 breq .+32 ; 0x4010 <__floatunsisf+0xe0>
+ 3ff0: 0e 2e mov r0, r30
+ 3ff2: 04 c0 rjmp .+8 ; 0x3ffc <__floatunsisf+0xcc>
+ 3ff4: ee 0c add r14, r14
+ 3ff6: ff 1c adc r15, r15
+ 3ff8: 00 1f adc r16, r16
+ 3ffa: 11 1f adc r17, r17
+ 3ffc: 0a 94 dec r0
+ 3ffe: d2 f7 brpl .-12 ; 0x3ff4 <__floatunsisf+0xc4>
+ 4000: ed 82 std Y+5, r14 ; 0x05
+ 4002: fe 82 std Y+6, r15 ; 0x06
+ 4004: 0f 83 std Y+7, r16 ; 0x07
+ 4006: 18 87 std Y+8, r17 ; 0x08
+ 4008: ce 1a sub r12, r30
+ 400a: df 0a sbc r13, r31
+ 400c: dc 82 std Y+4, r13 ; 0x04
+ 400e: cb 82 std Y+3, r12 ; 0x03
+ 4010: ce 01 movw r24, r28
+ 4012: 01 96 adiw r24, 0x01 ; 1
+ 4014: 0e 94 6a 20 call 0x40d4 ; 0x40d4 <__pack_f>
+ 4018: 28 96 adiw r28, 0x08 ; 8
+ 401a: e8 e0 ldi r30, 0x08 ; 8
+ 401c: 0c 94 a3 22 jmp 0x4546 ; 0x4546 <__epilogue_restores__+0x14>
+
+00004020 <__clzsi2>:
+ 4020: af 92 push r10
+ 4022: bf 92 push r11
+ 4024: cf 92 push r12
+ 4026: df 92 push r13
+ 4028: ef 92 push r14
+ 402a: ff 92 push r15
+ 402c: 0f 93 push r16
+ 402e: 1f 93 push r17
+ 4030: 7b 01 movw r14, r22
+ 4032: 8c 01 movw r16, r24
+ 4034: 80 e0 ldi r24, 0x00 ; 0
+ 4036: e8 16 cp r14, r24
+ 4038: 80 e0 ldi r24, 0x00 ; 0
+ 403a: f8 06 cpc r15, r24
+ 403c: 81 e0 ldi r24, 0x01 ; 1
+ 403e: 08 07 cpc r16, r24
+ 4040: 80 e0 ldi r24, 0x00 ; 0
+ 4042: 18 07 cpc r17, r24
+ 4044: 58 f4 brcc .+22 ; 0x405c <__clzsi2+0x3c>
+ 4046: ef ef ldi r30, 0xFF ; 255
+ 4048: ee 16 cp r14, r30
+ 404a: f1 04 cpc r15, r1
+ 404c: 01 05 cpc r16, r1
+ 404e: 11 05 cpc r17, r1
+ 4050: 09 f0 breq .+2 ; 0x4054 <__clzsi2+0x34>
+ 4052: 90 f4 brcc .+36 ; 0x4078 <__clzsi2+0x58>
+ 4054: 80 e0 ldi r24, 0x00 ; 0
+ 4056: 90 e0 ldi r25, 0x00 ; 0
+ 4058: dc 01 movw r26, r24
+ 405a: 17 c0 rjmp .+46 ; 0x408a <__clzsi2+0x6a>
+ 405c: f0 e0 ldi r31, 0x00 ; 0
+ 405e: ef 16 cp r14, r31
+ 4060: f0 e0 ldi r31, 0x00 ; 0
+ 4062: ff 06 cpc r15, r31
+ 4064: f0 e0 ldi r31, 0x00 ; 0
+ 4066: 0f 07 cpc r16, r31
+ 4068: f1 e0 ldi r31, 0x01 ; 1
+ 406a: 1f 07 cpc r17, r31
+ 406c: 50 f4 brcc .+20 ; 0x4082 <__clzsi2+0x62>
+ 406e: 80 e1 ldi r24, 0x10 ; 16
+ 4070: 90 e0 ldi r25, 0x00 ; 0
+ 4072: a0 e0 ldi r26, 0x00 ; 0
+ 4074: b0 e0 ldi r27, 0x00 ; 0
+ 4076: 09 c0 rjmp .+18 ; 0x408a <__clzsi2+0x6a>
+ 4078: 88 e0 ldi r24, 0x08 ; 8
+ 407a: 90 e0 ldi r25, 0x00 ; 0
+ 407c: a0 e0 ldi r26, 0x00 ; 0
+ 407e: b0 e0 ldi r27, 0x00 ; 0
+ 4080: 04 c0 rjmp .+8 ; 0x408a <__clzsi2+0x6a>
+ 4082: 88 e1 ldi r24, 0x18 ; 24
+ 4084: 90 e0 ldi r25, 0x00 ; 0
+ 4086: a0 e0 ldi r26, 0x00 ; 0
+ 4088: b0 e0 ldi r27, 0x00 ; 0
+ 408a: 20 e2 ldi r18, 0x20 ; 32
+ 408c: 30 e0 ldi r19, 0x00 ; 0
+ 408e: 40 e0 ldi r20, 0x00 ; 0
+ 4090: 50 e0 ldi r21, 0x00 ; 0
+ 4092: 28 1b sub r18, r24
+ 4094: 39 0b sbc r19, r25
+ 4096: 4a 0b sbc r20, r26
+ 4098: 5b 0b sbc r21, r27
+ 409a: 57 01 movw r10, r14
+ 409c: 68 01 movw r12, r16
+ 409e: 04 c0 rjmp .+8 ; 0x40a8 <__clzsi2+0x88>
+ 40a0: d6 94 lsr r13
+ 40a2: c7 94 ror r12
+ 40a4: b7 94 ror r11
+ 40a6: a7 94 ror r10
+ 40a8: 8a 95 dec r24
+ 40aa: d2 f7 brpl .-12 ; 0x40a0 <__clzsi2+0x80>
+ 40ac: d6 01 movw r26, r12
+ 40ae: c5 01 movw r24, r10
+ 40b0: 8a 54 subi r24, 0x4A ; 74
+ 40b2: 9e 4f sbci r25, 0xFE ; 254
+ 40b4: fc 01 movw r30, r24
+ 40b6: 80 81 ld r24, Z
+ 40b8: 28 1b sub r18, r24
+ 40ba: 31 09 sbc r19, r1
+ 40bc: 41 09 sbc r20, r1
+ 40be: 51 09 sbc r21, r1
+ 40c0: c9 01 movw r24, r18
+ 40c2: 1f 91 pop r17
+ 40c4: 0f 91 pop r16
+ 40c6: ff 90 pop r15
+ 40c8: ef 90 pop r14
+ 40ca: df 90 pop r13
+ 40cc: cf 90 pop r12
+ 40ce: bf 90 pop r11
+ 40d0: af 90 pop r10
+ 40d2: 08 95 ret
+
+000040d4 <__pack_f>:
+ 40d4: ef 92 push r14
+ 40d6: ff 92 push r15
+ 40d8: 0f 93 push r16
+ 40da: 1f 93 push r17
+ 40dc: cf 93 push r28
+ 40de: df 93 push r29
+ 40e0: fc 01 movw r30, r24
+ 40e2: 24 81 ldd r18, Z+4 ; 0x04
+ 40e4: 35 81 ldd r19, Z+5 ; 0x05
+ 40e6: 46 81 ldd r20, Z+6 ; 0x06
+ 40e8: 57 81 ldd r21, Z+7 ; 0x07
+ 40ea: 61 81 ldd r22, Z+1 ; 0x01
+ 40ec: 80 81 ld r24, Z
+ 40ee: 82 30 cpi r24, 0x02 ; 2
+ 40f0: 20 f4 brcc .+8 ; 0x40fa <__pack_f+0x26>
+ 40f2: 40 61 ori r20, 0x10 ; 16
+ 40f4: ef ef ldi r30, 0xFF ; 255
+ 40f6: f0 e0 ldi r31, 0x00 ; 0
+ 40f8: a3 c0 rjmp .+326 ; 0x4240 <__pack_f+0x16c>
+ 40fa: 84 30 cpi r24, 0x04 ; 4
+ 40fc: 09 f4 brne .+2 ; 0x4100 <__pack_f+0x2c>
+ 40fe: 9b c0 rjmp .+310 ; 0x4236 <__pack_f+0x162>
+ 4100: 82 30 cpi r24, 0x02 ; 2
+ 4102: 09 f4 brne .+2 ; 0x4106 <__pack_f+0x32>
+ 4104: 92 c0 rjmp .+292 ; 0x422a <__pack_f+0x156>
+ 4106: 21 15 cp r18, r1
+ 4108: 31 05 cpc r19, r1
+ 410a: 41 05 cpc r20, r1
+ 410c: 51 05 cpc r21, r1
+ 410e: 09 f4 brne .+2 ; 0x4112 <__pack_f+0x3e>
+ 4110: 8f c0 rjmp .+286 ; 0x4230 <__pack_f+0x15c>
+ 4112: 02 80 ldd r0, Z+2 ; 0x02
+ 4114: f3 81 ldd r31, Z+3 ; 0x03
+ 4116: e0 2d mov r30, r0
+ 4118: 8f ef ldi r24, 0xFF ; 255
+ 411a: e2 38 cpi r30, 0x82 ; 130
+ 411c: f8 07 cpc r31, r24
+ 411e: 0c f0 brlt .+2 ; 0x4122 <__pack_f+0x4e>
+ 4120: 5a c0 rjmp .+180 ; 0x41d6 <__pack_f+0x102>
+ 4122: c2 e8 ldi r28, 0x82 ; 130
+ 4124: df ef ldi r29, 0xFF ; 255
+ 4126: ce 1b sub r28, r30
+ 4128: df 0b sbc r29, r31
+ 412a: ca 31 cpi r28, 0x1A ; 26
+ 412c: d1 05 cpc r29, r1
+ 412e: 6c f5 brge .+90 ; 0x418a <__pack_f+0xb6>
+ 4130: 79 01 movw r14, r18
+ 4132: 8a 01 movw r16, r20
+ 4134: 0c 2e mov r0, r28
+ 4136: 04 c0 rjmp .+8 ; 0x4140 <__pack_f+0x6c>
+ 4138: 16 95 lsr r17
+ 413a: 07 95 ror r16
+ 413c: f7 94 ror r15
+ 413e: e7 94 ror r14
+ 4140: 0a 94 dec r0
+ 4142: d2 f7 brpl .-12 ; 0x4138 <__pack_f+0x64>
+ 4144: 81 e0 ldi r24, 0x01 ; 1
+ 4146: 90 e0 ldi r25, 0x00 ; 0
+ 4148: a0 e0 ldi r26, 0x00 ; 0
+ 414a: b0 e0 ldi r27, 0x00 ; 0
+ 414c: 0c 2e mov r0, r28
+ 414e: 04 c0 rjmp .+8 ; 0x4158 <__pack_f+0x84>
+ 4150: 88 0f add r24, r24
+ 4152: 99 1f adc r25, r25
+ 4154: aa 1f adc r26, r26
+ 4156: bb 1f adc r27, r27
+ 4158: 0a 94 dec r0
+ 415a: d2 f7 brpl .-12 ; 0x4150 <__pack_f+0x7c>
+ 415c: 01 97 sbiw r24, 0x01 ; 1
+ 415e: a1 09 sbc r26, r1
+ 4160: b1 09 sbc r27, r1
+ 4162: 82 23 and r24, r18
+ 4164: 93 23 and r25, r19
+ 4166: a4 23 and r26, r20
+ 4168: b5 23 and r27, r21
+ 416a: 21 e0 ldi r18, 0x01 ; 1
+ 416c: 30 e0 ldi r19, 0x00 ; 0
+ 416e: 40 e0 ldi r20, 0x00 ; 0
+ 4170: 50 e0 ldi r21, 0x00 ; 0
+ 4172: 00 97 sbiw r24, 0x00 ; 0
+ 4174: a1 05 cpc r26, r1
+ 4176: b1 05 cpc r27, r1
+ 4178: 19 f4 brne .+6 ; 0x4180 <__pack_f+0xac>
+ 417a: 20 e0 ldi r18, 0x00 ; 0
+ 417c: 30 e0 ldi r19, 0x00 ; 0
+ 417e: a9 01 movw r20, r18
+ 4180: 2e 29 or r18, r14
+ 4182: 3f 29 or r19, r15
+ 4184: 40 2b or r20, r16
+ 4186: 51 2b or r21, r17
+ 4188: 03 c0 rjmp .+6 ; 0x4190 <__pack_f+0xbc>
+ 418a: 20 e0 ldi r18, 0x00 ; 0
+ 418c: 30 e0 ldi r19, 0x00 ; 0
+ 418e: a9 01 movw r20, r18
+ 4190: da 01 movw r26, r20
+ 4192: c9 01 movw r24, r18
+ 4194: 8f 77 andi r24, 0x7F ; 127
+ 4196: 90 70 andi r25, 0x00 ; 0
+ 4198: a0 70 andi r26, 0x00 ; 0
+ 419a: b0 70 andi r27, 0x00 ; 0
+ 419c: 80 34 cpi r24, 0x40 ; 64
+ 419e: 91 05 cpc r25, r1
+ 41a0: a1 05 cpc r26, r1
+ 41a2: b1 05 cpc r27, r1
+ 41a4: 39 f4 brne .+14 ; 0x41b4 <__pack_f+0xe0>
+ 41a6: 27 ff sbrs r18, 7
+ 41a8: 09 c0 rjmp .+18 ; 0x41bc <__pack_f+0xe8>
+ 41aa: 20 5c subi r18, 0xC0 ; 192
+ 41ac: 3f 4f sbci r19, 0xFF ; 255
+ 41ae: 4f 4f sbci r20, 0xFF ; 255
+ 41b0: 5f 4f sbci r21, 0xFF ; 255
+ 41b2: 04 c0 rjmp .+8 ; 0x41bc <__pack_f+0xe8>
+ 41b4: 21 5c subi r18, 0xC1 ; 193
+ 41b6: 3f 4f sbci r19, 0xFF ; 255
+ 41b8: 4f 4f sbci r20, 0xFF ; 255
+ 41ba: 5f 4f sbci r21, 0xFF ; 255
+ 41bc: e1 e0 ldi r30, 0x01 ; 1
+ 41be: f0 e0 ldi r31, 0x00 ; 0
+ 41c0: 20 30 cpi r18, 0x00 ; 0
+ 41c2: 80 e0 ldi r24, 0x00 ; 0
+ 41c4: 38 07 cpc r19, r24
+ 41c6: 80 e0 ldi r24, 0x00 ; 0
+ 41c8: 48 07 cpc r20, r24
+ 41ca: 80 e4 ldi r24, 0x40 ; 64
+ 41cc: 58 07 cpc r21, r24
+ 41ce: 28 f5 brcc .+74 ; 0x421a <__pack_f+0x146>
+ 41d0: e0 e0 ldi r30, 0x00 ; 0
+ 41d2: f0 e0 ldi r31, 0x00 ; 0
+ 41d4: 22 c0 rjmp .+68 ; 0x421a <__pack_f+0x146>
+ 41d6: e0 38 cpi r30, 0x80 ; 128
+ 41d8: f1 05 cpc r31, r1
+ 41da: 6c f5 brge .+90 ; 0x4236 <__pack_f+0x162>
+ 41dc: e1 58 subi r30, 0x81 ; 129
+ 41de: ff 4f sbci r31, 0xFF ; 255
+ 41e0: da 01 movw r26, r20
+ 41e2: c9 01 movw r24, r18
+ 41e4: 8f 77 andi r24, 0x7F ; 127
+ 41e6: 90 70 andi r25, 0x00 ; 0
+ 41e8: a0 70 andi r26, 0x00 ; 0
+ 41ea: b0 70 andi r27, 0x00 ; 0
+ 41ec: 80 34 cpi r24, 0x40 ; 64
+ 41ee: 91 05 cpc r25, r1
+ 41f0: a1 05 cpc r26, r1
+ 41f2: b1 05 cpc r27, r1
+ 41f4: 39 f4 brne .+14 ; 0x4204 <__pack_f+0x130>
+ 41f6: 27 ff sbrs r18, 7
+ 41f8: 09 c0 rjmp .+18 ; 0x420c <__pack_f+0x138>
+ 41fa: 20 5c subi r18, 0xC0 ; 192
+ 41fc: 3f 4f sbci r19, 0xFF ; 255
+ 41fe: 4f 4f sbci r20, 0xFF ; 255
+ 4200: 5f 4f sbci r21, 0xFF ; 255
+ 4202: 04 c0 rjmp .+8 ; 0x420c <__pack_f+0x138>
+ 4204: 21 5c subi r18, 0xC1 ; 193
+ 4206: 3f 4f sbci r19, 0xFF ; 255
+ 4208: 4f 4f sbci r20, 0xFF ; 255
+ 420a: 5f 4f sbci r21, 0xFF ; 255
+ 420c: 57 ff sbrs r21, 7
+ 420e: 05 c0 rjmp .+10 ; 0x421a <__pack_f+0x146>
+ 4210: 56 95 lsr r21
+ 4212: 47 95 ror r20
+ 4214: 37 95 ror r19
+ 4216: 27 95 ror r18
+ 4218: 31 96 adiw r30, 0x01 ; 1
+ 421a: 87 e0 ldi r24, 0x07 ; 7
+ 421c: 56 95 lsr r21
+ 421e: 47 95 ror r20
+ 4220: 37 95 ror r19
+ 4222: 27 95 ror r18
+ 4224: 8a 95 dec r24
+ 4226: d1 f7 brne .-12 ; 0x421c <__pack_f+0x148>
+ 4228: 0b c0 rjmp .+22 ; 0x4240 <__pack_f+0x16c>
+ 422a: e0 e0 ldi r30, 0x00 ; 0
+ 422c: f0 e0 ldi r31, 0x00 ; 0
+ 422e: 05 c0 rjmp .+10 ; 0x423a <__pack_f+0x166>
+ 4230: e0 e0 ldi r30, 0x00 ; 0
+ 4232: f0 e0 ldi r31, 0x00 ; 0
+ 4234: 05 c0 rjmp .+10 ; 0x4240 <__pack_f+0x16c>
+ 4236: ef ef ldi r30, 0xFF ; 255
+ 4238: f0 e0 ldi r31, 0x00 ; 0
+ 423a: 20 e0 ldi r18, 0x00 ; 0
+ 423c: 30 e0 ldi r19, 0x00 ; 0
+ 423e: a9 01 movw r20, r18
+ 4240: 8e 2f mov r24, r30
+ 4242: 87 95 ror r24
+ 4244: 88 27 eor r24, r24
+ 4246: 87 95 ror r24
+ 4248: 94 2f mov r25, r20
+ 424a: 9f 77 andi r25, 0x7F ; 127
+ 424c: 67 95 ror r22
+ 424e: 66 27 eor r22, r22
+ 4250: 67 95 ror r22
+ 4252: e6 95 lsr r30
+ 4254: e2 2e mov r14, r18
+ 4256: a9 2f mov r26, r25
+ 4258: a8 2b or r26, r24
+ 425a: fe 2f mov r31, r30
+ 425c: f6 2b or r31, r22
+ 425e: 62 2f mov r22, r18
+ 4260: 73 2f mov r23, r19
+ 4262: 8a 2f mov r24, r26
+ 4264: 9f 2f mov r25, r31
+ 4266: cd b7 in r28, 0x3d ; 61
+ 4268: de b7 in r29, 0x3e ; 62
+ 426a: e6 e0 ldi r30, 0x06 ; 6
+ 426c: 0c 94 a5 22 jmp 0x454a ; 0x454a <__epilogue_restores__+0x18>
+
+00004270 <__unpack_f>:
+ 4270: dc 01 movw r26, r24
+ 4272: fb 01 movw r30, r22
+ 4274: 2c 91 ld r18, X
+ 4276: 11 96 adiw r26, 0x01 ; 1
+ 4278: 3c 91 ld r19, X
+ 427a: 11 97 sbiw r26, 0x01 ; 1
+ 427c: 12 96 adiw r26, 0x02 ; 2
+ 427e: 8c 91 ld r24, X
+ 4280: 12 97 sbiw r26, 0x02 ; 2
+ 4282: 48 2f mov r20, r24
+ 4284: 4f 77 andi r20, 0x7F ; 127
+ 4286: 50 e0 ldi r21, 0x00 ; 0
+ 4288: 98 2f mov r25, r24
+ 428a: 99 1f adc r25, r25
+ 428c: 99 27 eor r25, r25
+ 428e: 99 1f adc r25, r25
+ 4290: 13 96 adiw r26, 0x03 ; 3
+ 4292: 6c 91 ld r22, X
+ 4294: 13 97 sbiw r26, 0x03 ; 3
+ 4296: 86 2f mov r24, r22
+ 4298: 88 0f add r24, r24
+ 429a: 89 2b or r24, r25
+ 429c: 90 e0 ldi r25, 0x00 ; 0
+ 429e: 66 1f adc r22, r22
+ 42a0: 66 27 eor r22, r22
+ 42a2: 66 1f adc r22, r22
+ 42a4: 61 83 std Z+1, r22 ; 0x01
+ 42a6: 00 97 sbiw r24, 0x00 ; 0
+ 42a8: 39 f5 brne .+78 ; 0x42f8 <__unpack_f+0x88>
+ 42aa: 21 15 cp r18, r1
+ 42ac: 31 05 cpc r19, r1
+ 42ae: 41 05 cpc r20, r1
+ 42b0: 51 05 cpc r21, r1
+ 42b2: 11 f4 brne .+4 ; 0x42b8 <__unpack_f+0x48>
+ 42b4: 82 e0 ldi r24, 0x02 ; 2
+ 42b6: 29 c0 rjmp .+82 ; 0x430a <__unpack_f+0x9a>
+ 42b8: 82 e8 ldi r24, 0x82 ; 130
+ 42ba: 9f ef ldi r25, 0xFF ; 255
+ 42bc: 93 83 std Z+3, r25 ; 0x03
+ 42be: 82 83 std Z+2, r24 ; 0x02
+ 42c0: 67 e0 ldi r22, 0x07 ; 7
+ 42c2: 22 0f add r18, r18
+ 42c4: 33 1f adc r19, r19
+ 42c6: 44 1f adc r20, r20
+ 42c8: 55 1f adc r21, r21
+ 42ca: 6a 95 dec r22
+ 42cc: d1 f7 brne .-12 ; 0x42c2 <__unpack_f+0x52>
+ 42ce: 83 e0 ldi r24, 0x03 ; 3
+ 42d0: 80 83 st Z, r24
+ 42d2: 09 c0 rjmp .+18 ; 0x42e6 <__unpack_f+0x76>
+ 42d4: 22 0f add r18, r18
+ 42d6: 33 1f adc r19, r19
+ 42d8: 44 1f adc r20, r20
+ 42da: 55 1f adc r21, r21
+ 42dc: 82 81 ldd r24, Z+2 ; 0x02
+ 42de: 93 81 ldd r25, Z+3 ; 0x03
+ 42e0: 01 97 sbiw r24, 0x01 ; 1
+ 42e2: 93 83 std Z+3, r25 ; 0x03
+ 42e4: 82 83 std Z+2, r24 ; 0x02
+ 42e6: 20 30 cpi r18, 0x00 ; 0
+ 42e8: 80 e0 ldi r24, 0x00 ; 0
+ 42ea: 38 07 cpc r19, r24
+ 42ec: 80 e0 ldi r24, 0x00 ; 0
+ 42ee: 48 07 cpc r20, r24
+ 42f0: 80 e4 ldi r24, 0x40 ; 64
+ 42f2: 58 07 cpc r21, r24
+ 42f4: 78 f3 brcs .-34 ; 0x42d4 <__unpack_f+0x64>
+ 42f6: 20 c0 rjmp .+64 ; 0x4338 <__unpack_f+0xc8>
+ 42f8: 8f 3f cpi r24, 0xFF ; 255
+ 42fa: 91 05 cpc r25, r1
+ 42fc: 79 f4 brne .+30 ; 0x431c <__unpack_f+0xac>
+ 42fe: 21 15 cp r18, r1
+ 4300: 31 05 cpc r19, r1
+ 4302: 41 05 cpc r20, r1
+ 4304: 51 05 cpc r21, r1
+ 4306: 19 f4 brne .+6 ; 0x430e <__unpack_f+0x9e>
+ 4308: 84 e0 ldi r24, 0x04 ; 4
+ 430a: 80 83 st Z, r24
+ 430c: 08 95 ret
+ 430e: 44 ff sbrs r20, 4
+ 4310: 03 c0 rjmp .+6 ; 0x4318 <__unpack_f+0xa8>
+ 4312: 81 e0 ldi r24, 0x01 ; 1
+ 4314: 80 83 st Z, r24
+ 4316: 10 c0 rjmp .+32 ; 0x4338 <__unpack_f+0xc8>
+ 4318: 10 82 st Z, r1
+ 431a: 0e c0 rjmp .+28 ; 0x4338 <__unpack_f+0xc8>
+ 431c: 8f 57 subi r24, 0x7F ; 127
+ 431e: 90 40 sbci r25, 0x00 ; 0
+ 4320: 93 83 std Z+3, r25 ; 0x03
+ 4322: 82 83 std Z+2, r24 ; 0x02
+ 4324: 83 e0 ldi r24, 0x03 ; 3
+ 4326: 80 83 st Z, r24
+ 4328: 87 e0 ldi r24, 0x07 ; 7
+ 432a: 22 0f add r18, r18
+ 432c: 33 1f adc r19, r19
+ 432e: 44 1f adc r20, r20
+ 4330: 55 1f adc r21, r21
+ 4332: 8a 95 dec r24
+ 4334: d1 f7 brne .-12 ; 0x432a <__unpack_f+0xba>
+ 4336: 50 64 ori r21, 0x40 ; 64
+ 4338: 24 83 std Z+4, r18 ; 0x04
+ 433a: 35 83 std Z+5, r19 ; 0x05
+ 433c: 46 83 std Z+6, r20 ; 0x06
+ 433e: 57 83 std Z+7, r21 ; 0x07
+ 4340: 08 95 ret
+
+00004342 <__fpcmp_parts_f>:
+ 4342: fc 01 movw r30, r24
+ 4344: db 01 movw r26, r22
+ 4346: 90 81 ld r25, Z
+ 4348: 92 30 cpi r25, 0x02 ; 2
+ 434a: 08 f4 brcc .+2 ; 0x434e <__fpcmp_parts_f+0xc>
+ 434c: 49 c0 rjmp .+146 ; 0x43e0 <__fpcmp_parts_f+0x9e>
+ 434e: 8c 91 ld r24, X
+ 4350: 82 30 cpi r24, 0x02 ; 2
+ 4352: 08 f4 brcc .+2 ; 0x4356 <__fpcmp_parts_f+0x14>
+ 4354: 45 c0 rjmp .+138 ; 0x43e0 <__fpcmp_parts_f+0x9e>
+ 4356: 94 30 cpi r25, 0x04 ; 4
+ 4358: 51 f4 brne .+20 ; 0x436e <__fpcmp_parts_f+0x2c>
+ 435a: 61 81 ldd r22, Z+1 ; 0x01
+ 435c: 84 30 cpi r24, 0x04 ; 4
+ 435e: b1 f5 brne .+108 ; 0x43cc <__fpcmp_parts_f+0x8a>
+ 4360: 11 96 adiw r26, 0x01 ; 1
+ 4362: 2c 91 ld r18, X
+ 4364: 11 97 sbiw r26, 0x01 ; 1
+ 4366: 30 e0 ldi r19, 0x00 ; 0
+ 4368: 26 1b sub r18, r22
+ 436a: 31 09 sbc r19, r1
+ 436c: 41 c0 rjmp .+130 ; 0x43f0 <__fpcmp_parts_f+0xae>
+ 436e: 84 30 cpi r24, 0x04 ; 4
+ 4370: 21 f0 breq .+8 ; 0x437a <__fpcmp_parts_f+0x38>
+ 4372: 92 30 cpi r25, 0x02 ; 2
+ 4374: 41 f4 brne .+16 ; 0x4386 <__fpcmp_parts_f+0x44>
+ 4376: 82 30 cpi r24, 0x02 ; 2
+ 4378: b1 f1 breq .+108 ; 0x43e6 <__fpcmp_parts_f+0xa4>
+ 437a: 11 96 adiw r26, 0x01 ; 1
+ 437c: 8c 91 ld r24, X
+ 437e: 11 97 sbiw r26, 0x01 ; 1
+ 4380: 88 23 and r24, r24
+ 4382: a1 f1 breq .+104 ; 0x43ec <__fpcmp_parts_f+0xaa>
+ 4384: 2d c0 rjmp .+90 ; 0x43e0 <__fpcmp_parts_f+0x9e>
+ 4386: 61 81 ldd r22, Z+1 ; 0x01
+ 4388: 82 30 cpi r24, 0x02 ; 2
+ 438a: 01 f1 breq .+64 ; 0x43cc <__fpcmp_parts_f+0x8a>
+ 438c: 11 96 adiw r26, 0x01 ; 1
+ 438e: 8c 91 ld r24, X
+ 4390: 11 97 sbiw r26, 0x01 ; 1
+ 4392: 68 17 cp r22, r24
+ 4394: d9 f4 brne .+54 ; 0x43cc <__fpcmp_parts_f+0x8a>
+ 4396: 22 81 ldd r18, Z+2 ; 0x02
+ 4398: 33 81 ldd r19, Z+3 ; 0x03
+ 439a: 12 96 adiw r26, 0x02 ; 2
+ 439c: 8d 91 ld r24, X+
+ 439e: 9c 91 ld r25, X
+ 43a0: 13 97 sbiw r26, 0x03 ; 3
+ 43a2: 82 17 cp r24, r18
+ 43a4: 93 07 cpc r25, r19
+ 43a6: 94 f0 brlt .+36 ; 0x43cc <__fpcmp_parts_f+0x8a>
+ 43a8: 28 17 cp r18, r24
+ 43aa: 39 07 cpc r19, r25
+ 43ac: bc f0 brlt .+46 ; 0x43dc <__fpcmp_parts_f+0x9a>
+ 43ae: 24 81 ldd r18, Z+4 ; 0x04
+ 43b0: 35 81 ldd r19, Z+5 ; 0x05
+ 43b2: 46 81 ldd r20, Z+6 ; 0x06
+ 43b4: 57 81 ldd r21, Z+7 ; 0x07
+ 43b6: 14 96 adiw r26, 0x04 ; 4
+ 43b8: 8d 91 ld r24, X+
+ 43ba: 9d 91 ld r25, X+
+ 43bc: 0d 90 ld r0, X+
+ 43be: bc 91 ld r27, X
+ 43c0: a0 2d mov r26, r0
+ 43c2: 82 17 cp r24, r18
+ 43c4: 93 07 cpc r25, r19
+ 43c6: a4 07 cpc r26, r20
+ 43c8: b5 07 cpc r27, r21
+ 43ca: 18 f4 brcc .+6 ; 0x43d2 <__fpcmp_parts_f+0x90>
+ 43cc: 66 23 and r22, r22
+ 43ce: 41 f0 breq .+16 ; 0x43e0 <__fpcmp_parts_f+0x9e>
+ 43d0: 0d c0 rjmp .+26 ; 0x43ec <__fpcmp_parts_f+0xaa>
+ 43d2: 28 17 cp r18, r24
+ 43d4: 39 07 cpc r19, r25
+ 43d6: 4a 07 cpc r20, r26
+ 43d8: 5b 07 cpc r21, r27
+ 43da: 28 f4 brcc .+10 ; 0x43e6 <__fpcmp_parts_f+0xa4>
+ 43dc: 66 23 and r22, r22
+ 43de: 31 f0 breq .+12 ; 0x43ec <__fpcmp_parts_f+0xaa>
+ 43e0: 21 e0 ldi r18, 0x01 ; 1
+ 43e2: 30 e0 ldi r19, 0x00 ; 0
+ 43e4: 05 c0 rjmp .+10 ; 0x43f0 <__fpcmp_parts_f+0xae>
+ 43e6: 20 e0 ldi r18, 0x00 ; 0
+ 43e8: 30 e0 ldi r19, 0x00 ; 0
+ 43ea: 02 c0 rjmp .+4 ; 0x43f0 <__fpcmp_parts_f+0xae>
+ 43ec: 2f ef ldi r18, 0xFF ; 255
+ 43ee: 3f ef ldi r19, 0xFF ; 255
+ 43f0: c9 01 movw r24, r18
+ 43f2: 08 95 ret
+
+000043f4 <__mulsi3>:
+ 43f4: 62 9f mul r22, r18
+ 43f6: d0 01 movw r26, r0
+ 43f8: 73 9f mul r23, r19
+ 43fa: f0 01 movw r30, r0
+ 43fc: 82 9f mul r24, r18
+ 43fe: e0 0d add r30, r0
+ 4400: f1 1d adc r31, r1
+ 4402: 64 9f mul r22, r20
+ 4404: e0 0d add r30, r0
+ 4406: f1 1d adc r31, r1
+ 4408: 92 9f mul r25, r18
+ 440a: f0 0d add r31, r0
+ 440c: 83 9f mul r24, r19
+ 440e: f0 0d add r31, r0
+ 4410: 74 9f mul r23, r20
+ 4412: f0 0d add r31, r0
+ 4414: 65 9f mul r22, r21
+ 4416: f0 0d add r31, r0
+ 4418: 99 27 eor r25, r25
+ 441a: 72 9f mul r23, r18
+ 441c: b0 0d add r27, r0
+ 441e: e1 1d adc r30, r1
+ 4420: f9 1f adc r31, r25
+ 4422: 63 9f mul r22, r19
+ 4424: b0 0d add r27, r0
+ 4426: e1 1d adc r30, r1
+ 4428: f9 1f adc r31, r25
+ 442a: bd 01 movw r22, r26
+ 442c: cf 01 movw r24, r30
+ 442e: 11 24 eor r1, r1
+ 4430: 08 95 ret
+
+00004432 <__divmodhi4>:
+ 4432: 97 fb bst r25, 7
+ 4434: 09 2e mov r0, r25
+ 4436: 07 26 eor r0, r23
+ 4438: 0a d0 rcall .+20 ; 0x444e <__divmodhi4_neg1>
+ 443a: 77 fd sbrc r23, 7
+ 443c: 04 d0 rcall .+8 ; 0x4446 <__divmodhi4_neg2>
+ 443e: 49 d0 rcall .+146 ; 0x44d2 <__udivmodhi4>
+ 4440: 06 d0 rcall .+12 ; 0x444e <__divmodhi4_neg1>
+ 4442: 00 20 and r0, r0
+ 4444: 1a f4 brpl .+6 ; 0x444c <__divmodhi4_exit>
+
+00004446 <__divmodhi4_neg2>:
+ 4446: 70 95 com r23
+ 4448: 61 95 neg r22
+ 444a: 7f 4f sbci r23, 0xFF ; 255
+
+0000444c <__divmodhi4_exit>:
+ 444c: 08 95 ret
+
+0000444e <__divmodhi4_neg1>:
+ 444e: f6 f7 brtc .-4 ; 0x444c <__divmodhi4_exit>
+ 4450: 90 95 com r25
+ 4452: 81 95 neg r24
+ 4454: 9f 4f sbci r25, 0xFF ; 255
+ 4456: 08 95 ret
+
+00004458 <__udivmodsi4>:
+ 4458: a1 e2 ldi r26, 0x21 ; 33
+ 445a: 1a 2e mov r1, r26
+ 445c: aa 1b sub r26, r26
+ 445e: bb 1b sub r27, r27
+ 4460: fd 01 movw r30, r26
+ 4462: 0d c0 rjmp .+26 ; 0x447e <__udivmodsi4_ep>
+
+00004464 <__udivmodsi4_loop>:
+ 4464: aa 1f adc r26, r26
+ 4466: bb 1f adc r27, r27
+ 4468: ee 1f adc r30, r30
+ 446a: ff 1f adc r31, r31
+ 446c: a2 17 cp r26, r18
+ 446e: b3 07 cpc r27, r19
+ 4470: e4 07 cpc r30, r20
+ 4472: f5 07 cpc r31, r21
+ 4474: 20 f0 brcs .+8 ; 0x447e <__udivmodsi4_ep>
+ 4476: a2 1b sub r26, r18
+ 4478: b3 0b sbc r27, r19
+ 447a: e4 0b sbc r30, r20
+ 447c: f5 0b sbc r31, r21
+
+0000447e <__udivmodsi4_ep>:
+ 447e: 66 1f adc r22, r22
+ 4480: 77 1f adc r23, r23
+ 4482: 88 1f adc r24, r24
+ 4484: 99 1f adc r25, r25
+ 4486: 1a 94 dec r1
+ 4488: 69 f7 brne .-38 ; 0x4464 <__udivmodsi4_loop>
+ 448a: 60 95 com r22
+ 448c: 70 95 com r23
+ 448e: 80 95 com r24
+ 4490: 90 95 com r25
+ 4492: 9b 01 movw r18, r22
+ 4494: ac 01 movw r20, r24
+ 4496: bd 01 movw r22, r26
+ 4498: cf 01 movw r24, r30
+ 449a: 08 95 ret
+
+0000449c <__divmodsi4>:
+ 449c: 97 fb bst r25, 7
+ 449e: 09 2e mov r0, r25
+ 44a0: 05 26 eor r0, r21
+ 44a2: 0e d0 rcall .+28 ; 0x44c0 <__divmodsi4_neg1>
+ 44a4: 57 fd sbrc r21, 7
+ 44a6: 04 d0 rcall .+8 ; 0x44b0 <__divmodsi4_neg2>
+ 44a8: d7 df rcall .-82 ; 0x4458 <__udivmodsi4>
+ 44aa: 0a d0 rcall .+20 ; 0x44c0 <__divmodsi4_neg1>
+ 44ac: 00 1c adc r0, r0
+ 44ae: 38 f4 brcc .+14 ; 0x44be <__divmodsi4_exit>
+
+000044b0 <__divmodsi4_neg2>:
+ 44b0: 50 95 com r21
+ 44b2: 40 95 com r20
+ 44b4: 30 95 com r19
+ 44b6: 21 95 neg r18
+ 44b8: 3f 4f sbci r19, 0xFF ; 255
+ 44ba: 4f 4f sbci r20, 0xFF ; 255
+ 44bc: 5f 4f sbci r21, 0xFF ; 255
+
+000044be <__divmodsi4_exit>:
+ 44be: 08 95 ret
+
+000044c0 <__divmodsi4_neg1>:
+ 44c0: f6 f7 brtc .-4 ; 0x44be <__divmodsi4_exit>
+ 44c2: 90 95 com r25
+ 44c4: 80 95 com r24
+ 44c6: 70 95 com r23
+ 44c8: 61 95 neg r22
+ 44ca: 7f 4f sbci r23, 0xFF ; 255
+ 44cc: 8f 4f sbci r24, 0xFF ; 255
+ 44ce: 9f 4f sbci r25, 0xFF ; 255
+ 44d0: 08 95 ret
+
+000044d2 <__udivmodhi4>:
+ 44d2: aa 1b sub r26, r26
+ 44d4: bb 1b sub r27, r27
+ 44d6: 51 e1 ldi r21, 0x11 ; 17
+ 44d8: 07 c0 rjmp .+14 ; 0x44e8 <__udivmodhi4_ep>
+
+000044da <__udivmodhi4_loop>:
+ 44da: aa 1f adc r26, r26
+ 44dc: bb 1f adc r27, r27
+ 44de: a6 17 cp r26, r22
+ 44e0: b7 07 cpc r27, r23
+ 44e2: 10 f0 brcs .+4 ; 0x44e8 <__udivmodhi4_ep>
+ 44e4: a6 1b sub r26, r22
+ 44e6: b7 0b sbc r27, r23
+
+000044e8 <__udivmodhi4_ep>:
+ 44e8: 88 1f adc r24, r24
+ 44ea: 99 1f adc r25, r25
+ 44ec: 5a 95 dec r21
+ 44ee: a9 f7 brne .-22 ; 0x44da <__udivmodhi4_loop>
+ 44f0: 80 95 com r24
+ 44f2: 90 95 com r25
+ 44f4: bc 01 movw r22, r24
+ 44f6: cd 01 movw r24, r26
+ 44f8: 08 95 ret
+
+000044fa <__prologue_saves__>:
+ 44fa: 2f 92 push r2
+ 44fc: 3f 92 push r3
+ 44fe: 4f 92 push r4
+ 4500: 5f 92 push r5
+ 4502: 6f 92 push r6
+ 4504: 7f 92 push r7
+ 4506: 8f 92 push r8
+ 4508: 9f 92 push r9
+ 450a: af 92 push r10
+ 450c: bf 92 push r11
+ 450e: cf 92 push r12
+ 4510: df 92 push r13
+ 4512: ef 92 push r14
+ 4514: ff 92 push r15
+ 4516: 0f 93 push r16
+ 4518: 1f 93 push r17
+ 451a: cf 93 push r28
+ 451c: df 93 push r29
+ 451e: cd b7 in r28, 0x3d ; 61
+ 4520: de b7 in r29, 0x3e ; 62
+ 4522: ca 1b sub r28, r26
+ 4524: db 0b sbc r29, r27
+ 4526: 0f b6 in r0, 0x3f ; 63
+ 4528: f8 94 cli
+ 452a: de bf out 0x3e, r29 ; 62
+ 452c: 0f be out 0x3f, r0 ; 63
+ 452e: cd bf out 0x3d, r28 ; 61
+ 4530: 09 94 ijmp
+
+00004532 <__epilogue_restores__>:
+ 4532: 2a 88 ldd r2, Y+18 ; 0x12
+ 4534: 39 88 ldd r3, Y+17 ; 0x11
+ 4536: 48 88 ldd r4, Y+16 ; 0x10
+ 4538: 5f 84 ldd r5, Y+15 ; 0x0f
+ 453a: 6e 84 ldd r6, Y+14 ; 0x0e
+ 453c: 7d 84 ldd r7, Y+13 ; 0x0d
+ 453e: 8c 84 ldd r8, Y+12 ; 0x0c
+ 4540: 9b 84 ldd r9, Y+11 ; 0x0b
+ 4542: aa 84 ldd r10, Y+10 ; 0x0a
+ 4544: b9 84 ldd r11, Y+9 ; 0x09
+ 4546: c8 84 ldd r12, Y+8 ; 0x08
+ 4548: df 80 ldd r13, Y+7 ; 0x07
+ 454a: ee 80 ldd r14, Y+6 ; 0x06
+ 454c: fd 80 ldd r15, Y+5 ; 0x05
+ 454e: 0c 81 ldd r16, Y+4 ; 0x04
+ 4550: 1b 81 ldd r17, Y+3 ; 0x03
+ 4552: aa 81 ldd r26, Y+2 ; 0x02
+ 4554: b9 81 ldd r27, Y+1 ; 0x01
+ 4556: ce 0f add r28, r30
+ 4558: d1 1d adc r29, r1
+ 455a: 0f b6 in r0, 0x3f ; 63
+ 455c: f8 94 cli
+ 455e: de bf out 0x3e, r29 ; 62
+ 4560: 0f be out 0x3f, r0 ; 63
+ 4562: cd bf out 0x3d, r28 ; 61
+ 4564: ed 01 movw r28, r26
+ 4566: 08 95 ret
+
+00004568 <__tablejump2__>:
+ 4568: ee 0f add r30, r30
+ 456a: ff 1f adc r31, r31
+
+0000456c <__tablejump__>:
+ 456c: 05 90 lpm r0, Z+
+ 456e: f4 91 lpm r31, Z+
+ 4570: e0 2d mov r30, r0
+ 4572: 09 94 ijmp
+
+00004574 <malloc>:
+ 4574: cf 93 push r28
+ 4576: df 93 push r29
+ 4578: 82 30 cpi r24, 0x02 ; 2
+ 457a: 91 05 cpc r25, r1
+ 457c: 10 f4 brcc .+4 ; 0x4582 <malloc+0xe>
+ 457e: 82 e0 ldi r24, 0x02 ; 2
+ 4580: 90 e0 ldi r25, 0x00 ; 0
+ 4582: e0 91 ac 03 lds r30, 0x03AC
+ 4586: f0 91 ad 03 lds r31, 0x03AD
+ 458a: 40 e0 ldi r20, 0x00 ; 0
+ 458c: 50 e0 ldi r21, 0x00 ; 0
+ 458e: 20 e0 ldi r18, 0x00 ; 0
+ 4590: 30 e0 ldi r19, 0x00 ; 0
+ 4592: 26 c0 rjmp .+76 ; 0x45e0 <malloc+0x6c>
+ 4594: 60 81 ld r22, Z
+ 4596: 71 81 ldd r23, Z+1 ; 0x01
+ 4598: 68 17 cp r22, r24
+ 459a: 79 07 cpc r23, r25
+ 459c: e0 f0 brcs .+56 ; 0x45d6 <malloc+0x62>
+ 459e: 68 17 cp r22, r24
+ 45a0: 79 07 cpc r23, r25
+ 45a2: 81 f4 brne .+32 ; 0x45c4 <malloc+0x50>
+ 45a4: 82 81 ldd r24, Z+2 ; 0x02
+ 45a6: 93 81 ldd r25, Z+3 ; 0x03
+ 45a8: 21 15 cp r18, r1
+ 45aa: 31 05 cpc r19, r1
+ 45ac: 31 f0 breq .+12 ; 0x45ba <malloc+0x46>
+ 45ae: d9 01 movw r26, r18
+ 45b0: 13 96 adiw r26, 0x03 ; 3
+ 45b2: 9c 93 st X, r25
+ 45b4: 8e 93 st -X, r24
+ 45b6: 12 97 sbiw r26, 0x02 ; 2
+ 45b8: 2b c0 rjmp .+86 ; 0x4610 <malloc+0x9c>
+ 45ba: 90 93 ad 03 sts 0x03AD, r25
+ 45be: 80 93 ac 03 sts 0x03AC, r24
+ 45c2: 26 c0 rjmp .+76 ; 0x4610 <malloc+0x9c>
+ 45c4: 41 15 cp r20, r1
+ 45c6: 51 05 cpc r21, r1
+ 45c8: 19 f0 breq .+6 ; 0x45d0 <malloc+0x5c>
+ 45ca: 64 17 cp r22, r20
+ 45cc: 75 07 cpc r23, r21
+ 45ce: 18 f4 brcc .+6 ; 0x45d6 <malloc+0x62>
+ 45d0: ab 01 movw r20, r22
+ 45d2: e9 01 movw r28, r18
+ 45d4: df 01 movw r26, r30
+ 45d6: 9f 01 movw r18, r30
+ 45d8: 72 81 ldd r23, Z+2 ; 0x02
+ 45da: 63 81 ldd r22, Z+3 ; 0x03
+ 45dc: e7 2f mov r30, r23
+ 45de: f6 2f mov r31, r22
+ 45e0: 30 97 sbiw r30, 0x00 ; 0
+ 45e2: c1 f6 brne .-80 ; 0x4594 <malloc+0x20>
+ 45e4: 41 15 cp r20, r1
+ 45e6: 51 05 cpc r21, r1
+ 45e8: 01 f1 breq .+64 ; 0x462a <malloc+0xb6>
+ 45ea: 48 1b sub r20, r24
+ 45ec: 59 0b sbc r21, r25
+ 45ee: 44 30 cpi r20, 0x04 ; 4
+ 45f0: 51 05 cpc r21, r1
+ 45f2: 80 f4 brcc .+32 ; 0x4614 <malloc+0xa0>
+ 45f4: 12 96 adiw r26, 0x02 ; 2
+ 45f6: 8d 91 ld r24, X+
+ 45f8: 9c 91 ld r25, X
+ 45fa: 13 97 sbiw r26, 0x03 ; 3
+ 45fc: 20 97 sbiw r28, 0x00 ; 0
+ 45fe: 19 f0 breq .+6 ; 0x4606 <malloc+0x92>
+ 4600: 9b 83 std Y+3, r25 ; 0x03
+ 4602: 8a 83 std Y+2, r24 ; 0x02
+ 4604: 04 c0 rjmp .+8 ; 0x460e <malloc+0x9a>
+ 4606: 90 93 ad 03 sts 0x03AD, r25
+ 460a: 80 93 ac 03 sts 0x03AC, r24
+ 460e: fd 01 movw r30, r26
+ 4610: 32 96 adiw r30, 0x02 ; 2
+ 4612: 46 c0 rjmp .+140 ; 0x46a0 <malloc+0x12c>
+ 4614: fd 01 movw r30, r26
+ 4616: e4 0f add r30, r20
+ 4618: f5 1f adc r31, r21
+ 461a: 81 93 st Z+, r24
+ 461c: 91 93 st Z+, r25
+ 461e: 42 50 subi r20, 0x02 ; 2
+ 4620: 50 40 sbci r21, 0x00 ; 0
+ 4622: 11 96 adiw r26, 0x01 ; 1
+ 4624: 5c 93 st X, r21
+ 4626: 4e 93 st -X, r20
+ 4628: 3b c0 rjmp .+118 ; 0x46a0 <malloc+0x12c>
+ 462a: 20 91 aa 03 lds r18, 0x03AA
+ 462e: 30 91 ab 03 lds r19, 0x03AB
+ 4632: 21 15 cp r18, r1
+ 4634: 31 05 cpc r19, r1
+ 4636: 41 f4 brne .+16 ; 0x4648 <malloc+0xd4>
+ 4638: 20 91 b8 02 lds r18, 0x02B8
+ 463c: 30 91 b9 02 lds r19, 0x02B9
+ 4640: 30 93 ab 03 sts 0x03AB, r19
+ 4644: 20 93 aa 03 sts 0x03AA, r18
+ 4648: 20 91 ba 02 lds r18, 0x02BA
+ 464c: 30 91 bb 02 lds r19, 0x02BB
+ 4650: 21 15 cp r18, r1
+ 4652: 31 05 cpc r19, r1
+ 4654: 41 f4 brne .+16 ; 0x4666 <malloc+0xf2>
+ 4656: 2d b7 in r18, 0x3d ; 61
+ 4658: 3e b7 in r19, 0x3e ; 62
+ 465a: 40 91 b6 02 lds r20, 0x02B6
+ 465e: 50 91 b7 02 lds r21, 0x02B7
+ 4662: 24 1b sub r18, r20
+ 4664: 35 0b sbc r19, r21
+ 4666: e0 91 aa 03 lds r30, 0x03AA
+ 466a: f0 91 ab 03 lds r31, 0x03AB
+ 466e: e2 17 cp r30, r18
+ 4670: f3 07 cpc r31, r19
+ 4672: a0 f4 brcc .+40 ; 0x469c <malloc+0x128>
+ 4674: 2e 1b sub r18, r30
+ 4676: 3f 0b sbc r19, r31
+ 4678: 28 17 cp r18, r24
+ 467a: 39 07 cpc r19, r25
+ 467c: 78 f0 brcs .+30 ; 0x469c <malloc+0x128>
+ 467e: ac 01 movw r20, r24
+ 4680: 4e 5f subi r20, 0xFE ; 254
+ 4682: 5f 4f sbci r21, 0xFF ; 255
+ 4684: 24 17 cp r18, r20
+ 4686: 35 07 cpc r19, r21
+ 4688: 48 f0 brcs .+18 ; 0x469c <malloc+0x128>
+ 468a: 4e 0f add r20, r30
+ 468c: 5f 1f adc r21, r31
+ 468e: 50 93 ab 03 sts 0x03AB, r21
+ 4692: 40 93 aa 03 sts 0x03AA, r20
+ 4696: 81 93 st Z+, r24
+ 4698: 91 93 st Z+, r25
+ 469a: 02 c0 rjmp .+4 ; 0x46a0 <malloc+0x12c>
+ 469c: e0 e0 ldi r30, 0x00 ; 0
+ 469e: f0 e0 ldi r31, 0x00 ; 0
+ 46a0: cf 01 movw r24, r30
+ 46a2: df 91 pop r29
+ 46a4: cf 91 pop r28
+ 46a6: 08 95 ret
+
+000046a8 <free>:
+ 46a8: cf 93 push r28
+ 46aa: df 93 push r29
+ 46ac: 00 97 sbiw r24, 0x00 ; 0
+ 46ae: 09 f4 brne .+2 ; 0x46b2 <free+0xa>
+ 46b0: 91 c0 rjmp .+290 ; 0x47d4 <free+0x12c>
+ 46b2: fc 01 movw r30, r24
+ 46b4: 32 97 sbiw r30, 0x02 ; 2
+ 46b6: 13 82 std Z+3, r1 ; 0x03
+ 46b8: 12 82 std Z+2, r1 ; 0x02
+ 46ba: 60 91 ac 03 lds r22, 0x03AC
+ 46be: 70 91 ad 03 lds r23, 0x03AD
+ 46c2: 61 15 cp r22, r1
+ 46c4: 71 05 cpc r23, r1
+ 46c6: 81 f4 brne .+32 ; 0x46e8 <free+0x40>
+ 46c8: 20 81 ld r18, Z
+ 46ca: 31 81 ldd r19, Z+1 ; 0x01
+ 46cc: 28 0f add r18, r24
+ 46ce: 39 1f adc r19, r25
+ 46d0: 80 91 aa 03 lds r24, 0x03AA
+ 46d4: 90 91 ab 03 lds r25, 0x03AB
+ 46d8: 82 17 cp r24, r18
+ 46da: 93 07 cpc r25, r19
+ 46dc: 99 f5 brne .+102 ; 0x4744 <free+0x9c>
+ 46de: f0 93 ab 03 sts 0x03AB, r31
+ 46e2: e0 93 aa 03 sts 0x03AA, r30
+ 46e6: 76 c0 rjmp .+236 ; 0x47d4 <free+0x12c>
+ 46e8: db 01 movw r26, r22
+ 46ea: 80 e0 ldi r24, 0x00 ; 0
+ 46ec: 90 e0 ldi r25, 0x00 ; 0
+ 46ee: 02 c0 rjmp .+4 ; 0x46f4 <free+0x4c>
+ 46f0: cd 01 movw r24, r26
+ 46f2: d9 01 movw r26, r18
+ 46f4: ae 17 cp r26, r30
+ 46f6: bf 07 cpc r27, r31
+ 46f8: 48 f4 brcc .+18 ; 0x470c <free+0x64>
+ 46fa: 12 96 adiw r26, 0x02 ; 2
+ 46fc: 2d 91 ld r18, X+
+ 46fe: 3c 91 ld r19, X
+ 4700: 13 97 sbiw r26, 0x03 ; 3
+ 4702: 21 15 cp r18, r1
+ 4704: 31 05 cpc r19, r1
+ 4706: a1 f7 brne .-24 ; 0x46f0 <free+0x48>
+ 4708: cd 01 movw r24, r26
+ 470a: 21 c0 rjmp .+66 ; 0x474e <free+0xa6>
+ 470c: b3 83 std Z+3, r27 ; 0x03
+ 470e: a2 83 std Z+2, r26 ; 0x02
+ 4710: ef 01 movw r28, r30
+ 4712: 49 91 ld r20, Y+
+ 4714: 59 91 ld r21, Y+
+ 4716: 9e 01 movw r18, r28
+ 4718: 24 0f add r18, r20
+ 471a: 35 1f adc r19, r21
+ 471c: a2 17 cp r26, r18
+ 471e: b3 07 cpc r27, r19
+ 4720: 79 f4 brne .+30 ; 0x4740 <free+0x98>
+ 4722: 2d 91 ld r18, X+
+ 4724: 3c 91 ld r19, X
+ 4726: 11 97 sbiw r26, 0x01 ; 1
+ 4728: 24 0f add r18, r20
+ 472a: 35 1f adc r19, r21
+ 472c: 2e 5f subi r18, 0xFE ; 254
+ 472e: 3f 4f sbci r19, 0xFF ; 255
+ 4730: 31 83 std Z+1, r19 ; 0x01
+ 4732: 20 83 st Z, r18
+ 4734: 12 96 adiw r26, 0x02 ; 2
+ 4736: 2d 91 ld r18, X+
+ 4738: 3c 91 ld r19, X
+ 473a: 13 97 sbiw r26, 0x03 ; 3
+ 473c: 33 83 std Z+3, r19 ; 0x03
+ 473e: 22 83 std Z+2, r18 ; 0x02
+ 4740: 00 97 sbiw r24, 0x00 ; 0
+ 4742: 29 f4 brne .+10 ; 0x474e <free+0xa6>
+ 4744: f0 93 ad 03 sts 0x03AD, r31
+ 4748: e0 93 ac 03 sts 0x03AC, r30
+ 474c: 43 c0 rjmp .+134 ; 0x47d4 <free+0x12c>
+ 474e: dc 01 movw r26, r24
+ 4750: 13 96 adiw r26, 0x03 ; 3
+ 4752: fc 93 st X, r31
+ 4754: ee 93 st -X, r30
+ 4756: 12 97 sbiw r26, 0x02 ; 2
+ 4758: 4d 91 ld r20, X+
+ 475a: 5d 91 ld r21, X+
+ 475c: a4 0f add r26, r20
+ 475e: b5 1f adc r27, r21
+ 4760: ea 17 cp r30, r26
+ 4762: fb 07 cpc r31, r27
+ 4764: 69 f4 brne .+26 ; 0x4780 <free+0xd8>
+ 4766: 20 81 ld r18, Z
+ 4768: 31 81 ldd r19, Z+1 ; 0x01
+ 476a: 24 0f add r18, r20
+ 476c: 35 1f adc r19, r21
+ 476e: 2e 5f subi r18, 0xFE ; 254
+ 4770: 3f 4f sbci r19, 0xFF ; 255
+ 4772: ec 01 movw r28, r24
+ 4774: 39 83 std Y+1, r19 ; 0x01
+ 4776: 28 83 st Y, r18
+ 4778: 22 81 ldd r18, Z+2 ; 0x02
+ 477a: 33 81 ldd r19, Z+3 ; 0x03
+ 477c: 3b 83 std Y+3, r19 ; 0x03
+ 477e: 2a 83 std Y+2, r18 ; 0x02
+ 4780: e0 e0 ldi r30, 0x00 ; 0
+ 4782: f0 e0 ldi r31, 0x00 ; 0
+ 4784: 02 c0 rjmp .+4 ; 0x478a <free+0xe2>
+ 4786: fb 01 movw r30, r22
+ 4788: bc 01 movw r22, r24
+ 478a: db 01 movw r26, r22
+ 478c: 12 96 adiw r26, 0x02 ; 2
+ 478e: 8d 91 ld r24, X+
+ 4790: 9c 91 ld r25, X
+ 4792: 13 97 sbiw r26, 0x03 ; 3
+ 4794: 00 97 sbiw r24, 0x00 ; 0
+ 4796: b9 f7 brne .-18 ; 0x4786 <free+0xde>
+ 4798: 9b 01 movw r18, r22
+ 479a: 2e 5f subi r18, 0xFE ; 254
+ 479c: 3f 4f sbci r19, 0xFF ; 255
+ 479e: 8d 91 ld r24, X+
+ 47a0: 9c 91 ld r25, X
+ 47a2: 11 97 sbiw r26, 0x01 ; 1
+ 47a4: 82 0f add r24, r18
+ 47a6: 93 1f adc r25, r19
+ 47a8: 40 91 aa 03 lds r20, 0x03AA
+ 47ac: 50 91 ab 03 lds r21, 0x03AB
+ 47b0: 48 17 cp r20, r24
+ 47b2: 59 07 cpc r21, r25
+ 47b4: 79 f4 brne .+30 ; 0x47d4 <free+0x12c>
+ 47b6: 30 97 sbiw r30, 0x00 ; 0
+ 47b8: 29 f4 brne .+10 ; 0x47c4 <free+0x11c>
+ 47ba: 10 92 ad 03 sts 0x03AD, r1
+ 47be: 10 92 ac 03 sts 0x03AC, r1
+ 47c2: 02 c0 rjmp .+4 ; 0x47c8 <free+0x120>
+ 47c4: 13 82 std Z+3, r1 ; 0x03
+ 47c6: 12 82 std Z+2, r1 ; 0x02
+ 47c8: 22 50 subi r18, 0x02 ; 2
+ 47ca: 30 40 sbci r19, 0x00 ; 0
+ 47cc: 30 93 ab 03 sts 0x03AB, r19
+ 47d0: 20 93 aa 03 sts 0x03AA, r18
+ 47d4: df 91 pop r29
+ 47d6: cf 91 pop r28
+ 47d8: 08 95 ret
+
+000047da <do_random>:
+ 47da: a0 e0 ldi r26, 0x00 ; 0
+ 47dc: b0 e0 ldi r27, 0x00 ; 0
+ 47de: e3 ef ldi r30, 0xF3 ; 243
+ 47e0: f3 e2 ldi r31, 0x23 ; 35
+ 47e2: 0c 94 85 22 jmp 0x450a ; 0x450a <__prologue_saves__+0x10>
+ 47e6: ec 01 movw r28, r24
+ 47e8: 68 81 ld r22, Y
+ 47ea: 79 81 ldd r23, Y+1 ; 0x01
+ 47ec: 8a 81 ldd r24, Y+2 ; 0x02
+ 47ee: 9b 81 ldd r25, Y+3 ; 0x03
+ 47f0: 61 15 cp r22, r1
+ 47f2: 71 05 cpc r23, r1
+ 47f4: 81 05 cpc r24, r1
+ 47f6: 91 05 cpc r25, r1
+ 47f8: 21 f4 brne .+8 ; 0x4802 <do_random+0x28>
+ 47fa: 64 e2 ldi r22, 0x24 ; 36
+ 47fc: 79 ed ldi r23, 0xD9 ; 217
+ 47fe: 8b e5 ldi r24, 0x5B ; 91
+ 4800: 97 e0 ldi r25, 0x07 ; 7
+ 4802: 2d e1 ldi r18, 0x1D ; 29
+ 4804: 33 ef ldi r19, 0xF3 ; 243
+ 4806: 41 e0 ldi r20, 0x01 ; 1
+ 4808: 50 e0 ldi r21, 0x00 ; 0
+ 480a: 0e 94 4e 22 call 0x449c ; 0x449c <__divmodsi4>
+ 480e: 79 01 movw r14, r18
+ 4810: 8a 01 movw r16, r20
+ 4812: 27 ea ldi r18, 0xA7 ; 167
+ 4814: 31 e4 ldi r19, 0x41 ; 65
+ 4816: 40 e0 ldi r20, 0x00 ; 0
+ 4818: 50 e0 ldi r21, 0x00 ; 0
+ 481a: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 481e: 5b 01 movw r10, r22
+ 4820: 6c 01 movw r12, r24
+ 4822: c8 01 movw r24, r16
+ 4824: b7 01 movw r22, r14
+ 4826: 2c ee ldi r18, 0xEC ; 236
+ 4828: 34 ef ldi r19, 0xF4 ; 244
+ 482a: 4f ef ldi r20, 0xFF ; 255
+ 482c: 5f ef ldi r21, 0xFF ; 255
+ 482e: 0e 94 fa 21 call 0x43f4 ; 0x43f4 <__mulsi3>
+ 4832: 9b 01 movw r18, r22
+ 4834: ac 01 movw r20, r24
+ 4836: 2a 0d add r18, r10
+ 4838: 3b 1d adc r19, r11
+ 483a: 4c 1d adc r20, r12
+ 483c: 5d 1d adc r21, r13
+ 483e: 57 ff sbrs r21, 7
+ 4840: 04 c0 rjmp .+8 ; 0x484a <do_random+0x70>
+ 4842: 21 50 subi r18, 0x01 ; 1
+ 4844: 30 40 sbci r19, 0x00 ; 0
+ 4846: 40 40 sbci r20, 0x00 ; 0
+ 4848: 50 48 sbci r21, 0x80 ; 128
+ 484a: 28 83 st Y, r18
+ 484c: 39 83 std Y+1, r19 ; 0x01
+ 484e: 4a 83 std Y+2, r20 ; 0x02
+ 4850: 5b 83 std Y+3, r21 ; 0x03
+ 4852: 5f 77 andi r21, 0x7F ; 127
+ 4854: b9 01 movw r22, r18
+ 4856: ca 01 movw r24, r20
+ 4858: cd b7 in r28, 0x3d ; 61
+ 485a: de b7 in r29, 0x3e ; 62
+ 485c: ea e0 ldi r30, 0x0A ; 10
+ 485e: 0c 94 a1 22 jmp 0x4542 ; 0x4542 <__epilogue_restores__+0x10>
+
+00004862 <random_r>:
+ 4862: 0e 94 ed 23 call 0x47da ; 0x47da <do_random>
+ 4866: 08 95 ret
+
+00004868 <random>:
+ 4868: 8c eb ldi r24, 0xBC ; 188
+ 486a: 92 e0 ldi r25, 0x02 ; 2
+ 486c: 0e 94 ed 23 call 0x47da ; 0x47da <do_random>
+ 4870: 08 95 ret
+
+00004872 <srandom>:
+ 4872: 60 93 bc 02 sts 0x02BC, r22
+ 4876: 70 93 bd 02 sts 0x02BD, r23
+ 487a: 80 93 be 02 sts 0x02BE, r24
+ 487e: 90 93 bf 02 sts 0x02BF, r25
+ 4882: 08 95 ret
+
+00004884 <realloc>:
+ 4884: a0 e0 ldi r26, 0x00 ; 0
+ 4886: b0 e0 ldi r27, 0x00 ; 0
+ 4888: e8 e4 ldi r30, 0x48 ; 72
+ 488a: f4 e2 ldi r31, 0x24 ; 36
+ 488c: 0c 94 83 22 jmp 0x4506 ; 0x4506 <__prologue_saves__+0xc>
+ 4890: 8c 01 movw r16, r24
+ 4892: cb 01 movw r24, r22
+ 4894: 01 15 cp r16, r1
+ 4896: 11 05 cpc r17, r1
+ 4898: 29 f4 brne .+10 ; 0x48a4 <realloc+0x20>
+ 489a: 0e 94 ba 22 call 0x4574 ; 0x4574 <malloc>
+ 489e: 08 2f mov r16, r24
+ 48a0: 19 2f mov r17, r25
+ 48a2: b5 c0 rjmp .+362 ; 0x4a0e <realloc+0x18a>
+ 48a4: d8 01 movw r26, r16
+ 48a6: 12 97 sbiw r26, 0x02 ; 2
+ 48a8: 98 01 movw r18, r16
+ 48aa: 26 0f add r18, r22
+ 48ac: 37 1f adc r19, r23
+ 48ae: 2a 17 cp r18, r26
+ 48b0: 3b 07 cpc r19, r27
+ 48b2: 08 f4 brcc .+2 ; 0x48b6 <realloc+0x32>
+ 48b4: aa c0 rjmp .+340 ; 0x4a0a <realloc+0x186>
+ 48b6: ed 90 ld r14, X+
+ 48b8: fc 90 ld r15, X
+ 48ba: 11 97 sbiw r26, 0x01 ; 1
+ 48bc: e6 16 cp r14, r22
+ 48be: f7 06 cpc r15, r23
+ 48c0: d0 f0 brcs .+52 ; 0x48f6 <realloc+0x72>
+ 48c2: 45 e0 ldi r20, 0x05 ; 5
+ 48c4: e4 16 cp r14, r20
+ 48c6: f1 04 cpc r15, r1
+ 48c8: 08 f4 brcc .+2 ; 0x48cc <realloc+0x48>
+ 48ca: a1 c0 rjmp .+322 ; 0x4a0e <realloc+0x18a>
+ 48cc: a7 01 movw r20, r14
+ 48ce: 44 50 subi r20, 0x04 ; 4
+ 48d0: 50 40 sbci r21, 0x00 ; 0
+ 48d2: 46 17 cp r20, r22
+ 48d4: 57 07 cpc r21, r23
+ 48d6: 08 f4 brcc .+2 ; 0x48da <realloc+0x56>
+ 48d8: 9a c0 rjmp .+308 ; 0x4a0e <realloc+0x18a>
+ 48da: a7 01 movw r20, r14
+ 48dc: 42 50 subi r20, 0x02 ; 2
+ 48de: 50 40 sbci r21, 0x00 ; 0
+ 48e0: 46 1b sub r20, r22
+ 48e2: 57 0b sbc r21, r23
+ 48e4: f9 01 movw r30, r18
+ 48e6: 41 93 st Z+, r20
+ 48e8: 51 93 st Z+, r21
+ 48ea: 6d 93 st X+, r22
+ 48ec: 7c 93 st X, r23
+ 48ee: cf 01 movw r24, r30
+ 48f0: 0e 94 54 23 call 0x46a8 ; 0x46a8 <free>
+ 48f4: 8c c0 rjmp .+280 ; 0x4a0e <realloc+0x18a>
+ 48f6: 5b 01 movw r10, r22
+ 48f8: ae 18 sub r10, r14
+ 48fa: bf 08 sbc r11, r15
+ 48fc: 48 01 movw r8, r16
+ 48fe: 8e 0c add r8, r14
+ 4900: 9f 1c adc r9, r15
+ 4902: e0 91 ac 03 lds r30, 0x03AC
+ 4906: f0 91 ad 03 lds r31, 0x03AD
+ 490a: cc 24 eor r12, r12
+ 490c: dd 24 eor r13, r13
+ 490e: c0 e0 ldi r28, 0x00 ; 0
+ 4910: d0 e0 ldi r29, 0x00 ; 0
+ 4912: 41 c0 rjmp .+130 ; 0x4996 <realloc+0x112>
+ 4914: e8 15 cp r30, r8
+ 4916: f9 05 cpc r31, r9
+ 4918: 99 f5 brne .+102 ; 0x4980 <realloc+0xfc>
+ 491a: 60 81 ld r22, Z
+ 491c: 71 81 ldd r23, Z+1 ; 0x01
+ 491e: ab 01 movw r20, r22
+ 4920: 4e 5f subi r20, 0xFE ; 254
+ 4922: 5f 4f sbci r21, 0xFF ; 255
+ 4924: 4a 15 cp r20, r10
+ 4926: 5b 05 cpc r21, r11
+ 4928: 58 f1 brcs .+86 ; 0x4980 <realloc+0xfc>
+ 492a: ab 01 movw r20, r22
+ 492c: 4a 19 sub r20, r10
+ 492e: 5b 09 sbc r21, r11
+ 4930: cc 24 eor r12, r12
+ 4932: dd 24 eor r13, r13
+ 4934: 68 94 set
+ 4936: c1 f8 bld r12, 1
+ 4938: c4 0e add r12, r20
+ 493a: d5 1e adc r13, r21
+ 493c: 82 80 ldd r8, Z+2 ; 0x02
+ 493e: a3 80 ldd r10, Z+3 ; 0x03
+ 4940: e5 e0 ldi r30, 0x05 ; 5
+ 4942: ce 16 cp r12, r30
+ 4944: d1 04 cpc r13, r1
+ 4946: 48 f0 brcs .+18 ; 0x495a <realloc+0xd6>
+ 4948: f9 01 movw r30, r18
+ 494a: 82 82 std Z+2, r8 ; 0x02
+ 494c: a3 82 std Z+3, r10 ; 0x03
+ 494e: 51 83 std Z+1, r21 ; 0x01
+ 4950: 40 83 st Z, r20
+ 4952: 11 96 adiw r26, 0x01 ; 1
+ 4954: 9c 93 st X, r25
+ 4956: 8e 93 st -X, r24
+ 4958: 09 c0 rjmp .+18 ; 0x496c <realloc+0xe8>
+ 495a: c7 01 movw r24, r14
+ 495c: 02 96 adiw r24, 0x02 ; 2
+ 495e: 86 0f add r24, r22
+ 4960: 97 1f adc r25, r23
+ 4962: 11 96 adiw r26, 0x01 ; 1
+ 4964: 9c 93 st X, r25
+ 4966: 8e 93 st -X, r24
+ 4968: e8 2d mov r30, r8
+ 496a: fa 2d mov r31, r10
+ 496c: 20 97 sbiw r28, 0x00 ; 0
+ 496e: 19 f0 breq .+6 ; 0x4976 <realloc+0xf2>
+ 4970: fb 83 std Y+3, r31 ; 0x03
+ 4972: ea 83 std Y+2, r30 ; 0x02
+ 4974: 4c c0 rjmp .+152 ; 0x4a0e <realloc+0x18a>
+ 4976: f0 93 ad 03 sts 0x03AD, r31
+ 497a: e0 93 ac 03 sts 0x03AC, r30
+ 497e: 47 c0 rjmp .+142 ; 0x4a0e <realloc+0x18a>
+ 4980: 40 81 ld r20, Z
+ 4982: 51 81 ldd r21, Z+1 ; 0x01
+ 4984: c4 16 cp r12, r20
+ 4986: d5 06 cpc r13, r21
+ 4988: 08 f4 brcc .+2 ; 0x498c <realloc+0x108>
+ 498a: 6a 01 movw r12, r20
+ 498c: ef 01 movw r28, r30
+ 498e: 52 81 ldd r21, Z+2 ; 0x02
+ 4990: 43 81 ldd r20, Z+3 ; 0x03
+ 4992: e5 2f mov r30, r21
+ 4994: f4 2f mov r31, r20
+ 4996: 30 97 sbiw r30, 0x00 ; 0
+ 4998: 09 f0 breq .+2 ; 0x499c <realloc+0x118>
+ 499a: bc cf rjmp .-136 ; 0x4914 <realloc+0x90>
+ 499c: 40 91 aa 03 lds r20, 0x03AA
+ 49a0: 50 91 ab 03 lds r21, 0x03AB
+ 49a4: 48 15 cp r20, r8
+ 49a6: 59 05 cpc r21, r9
+ 49a8: e9 f4 brne .+58 ; 0x49e4 <realloc+0x160>
+ 49aa: c8 16 cp r12, r24
+ 49ac: d9 06 cpc r13, r25
+ 49ae: d0 f4 brcc .+52 ; 0x49e4 <realloc+0x160>
+ 49b0: 40 91 ba 02 lds r20, 0x02BA
+ 49b4: 50 91 bb 02 lds r21, 0x02BB
+ 49b8: 41 15 cp r20, r1
+ 49ba: 51 05 cpc r21, r1
+ 49bc: 41 f4 brne .+16 ; 0x49ce <realloc+0x14a>
+ 49be: 4d b7 in r20, 0x3d ; 61
+ 49c0: 5e b7 in r21, 0x3e ; 62
+ 49c2: 60 91 b6 02 lds r22, 0x02B6
+ 49c6: 70 91 b7 02 lds r23, 0x02B7
+ 49ca: 46 1b sub r20, r22
+ 49cc: 57 0b sbc r21, r23
+ 49ce: 24 17 cp r18, r20
+ 49d0: 35 07 cpc r19, r21
+ 49d2: d8 f4 brcc .+54 ; 0x4a0a <realloc+0x186>
+ 49d4: 30 93 ab 03 sts 0x03AB, r19
+ 49d8: 20 93 aa 03 sts 0x03AA, r18
+ 49dc: 11 96 adiw r26, 0x01 ; 1
+ 49de: 9c 93 st X, r25
+ 49e0: 8e 93 st -X, r24
+ 49e2: 15 c0 rjmp .+42 ; 0x4a0e <realloc+0x18a>
+ 49e4: 0e 94 ba 22 call 0x4574 ; 0x4574 <malloc>
+ 49e8: c8 2e mov r12, r24
+ 49ea: e6 01 movw r28, r12
+ 49ec: 6e 01 movw r12, r28
+ 49ee: d9 2e mov r13, r25
+ 49f0: e6 01 movw r28, r12
+ 49f2: 20 97 sbiw r28, 0x00 ; 0
+ 49f4: 51 f0 breq .+20 ; 0x4a0a <realloc+0x186>
+ 49f6: 8c 2d mov r24, r12
+ 49f8: b8 01 movw r22, r16
+ 49fa: a7 01 movw r20, r14
+ 49fc: 0e 94 59 25 call 0x4ab2 ; 0x4ab2 <memcpy>
+ 4a00: c8 01 movw r24, r16
+ 4a02: 0e 94 54 23 call 0x46a8 ; 0x46a8 <free>
+ 4a06: 86 01 movw r16, r12
+ 4a08: 02 c0 rjmp .+4 ; 0x4a0e <realloc+0x18a>
+ 4a0a: 00 e0 ldi r16, 0x00 ; 0
+ 4a0c: 10 e0 ldi r17, 0x00 ; 0
+ 4a0e: c8 01 movw r24, r16
+ 4a10: cd b7 in r28, 0x3d ; 61
+ 4a12: de b7 in r29, 0x3e ; 62
+ 4a14: ec e0 ldi r30, 0x0C ; 12
+ 4a16: 0c 94 9f 22 jmp 0x453e ; 0x453e <__epilogue_restores__+0xc>
+
+00004a1a <atol>:
+ 4a1a: 1f 93 push r17
+ 4a1c: fc 01 movw r30, r24
+ 4a1e: 99 27 eor r25, r25
+ 4a20: 88 27 eor r24, r24
+ 4a22: bc 01 movw r22, r24
+ 4a24: e8 94 clt
+ 4a26: 11 91 ld r17, Z+
+ 4a28: 10 32 cpi r17, 0x20 ; 32
+ 4a2a: e9 f3 breq .-6 ; 0x4a26 <atol+0xc>
+ 4a2c: 19 30 cpi r17, 0x09 ; 9
+ 4a2e: 10 f0 brcs .+4 ; 0x4a34 <atol+0x1a>
+ 4a30: 1e 30 cpi r17, 0x0E ; 14
+ 4a32: c8 f3 brcs .-14 ; 0x4a26 <atol+0xc>
+ 4a34: 1b 32 cpi r17, 0x2B ; 43
+ 4a36: 51 f0 breq .+20 ; 0x4a4c <atol+0x32>
+ 4a38: 1d 32 cpi r17, 0x2D ; 45
+ 4a3a: 49 f4 brne .+18 ; 0x4a4e <atol+0x34>
+ 4a3c: 68 94 set
+ 4a3e: 06 c0 rjmp .+12 ; 0x4a4c <atol+0x32>
+ 4a40: 0e 94 26 26 call 0x4c4c ; 0x4c4c <__mulsi_const_10>
+ 4a44: 61 0f add r22, r17
+ 4a46: 71 1d adc r23, r1
+ 4a48: 81 1d adc r24, r1
+ 4a4a: 91 1d adc r25, r1
+ 4a4c: 11 91 ld r17, Z+
+ 4a4e: 10 53 subi r17, 0x30 ; 48
+ 4a50: 1a 30 cpi r17, 0x0A ; 10
+ 4a52: b0 f3 brcs .-20 ; 0x4a40 <atol+0x26>
+ 4a54: 3e f4 brtc .+14 ; 0x4a64 <atol+0x4a>
+ 4a56: 90 95 com r25
+ 4a58: 80 95 com r24
+ 4a5a: 70 95 com r23
+ 4a5c: 61 95 neg r22
+ 4a5e: 7f 4f sbci r23, 0xFF ; 255
+ 4a60: 8f 4f sbci r24, 0xFF ; 255
+ 4a62: 9f 4f sbci r25, 0xFF ; 255
+ 4a64: 1f 91 pop r17
+ 4a66: 08 95 ret
+
+00004a68 <isspace>:
+ 4a68: 91 11 cpse r25, r1
+ 4a6a: 40 c1 rjmp .+640 ; 0x4cec <__ctype_isfalse>
+ 4a6c: 80 32 cpi r24, 0x20 ; 32
+ 4a6e: 19 f0 breq .+6 ; 0x4a76 <isspace+0xe>
+ 4a70: 89 50 subi r24, 0x09 ; 9
+ 4a72: 85 50 subi r24, 0x05 ; 5
+ 4a74: d0 f7 brcc .-12 ; 0x4a6a <isspace+0x2>
+ 4a76: 08 95 ret
+
+00004a78 <tolower>:
+ 4a78: 91 11 cpse r25, r1
+ 4a7a: 08 95 ret
+ 4a7c: 81 54 subi r24, 0x41 ; 65
+ 4a7e: 8a 51 subi r24, 0x1A ; 26
+ 4a80: 08 f4 brcc .+2 ; 0x4a84 <tolower+0xc>
+ 4a82: 80 5e subi r24, 0xE0 ; 224
+ 4a84: 85 5a subi r24, 0xA5 ; 165
+ 4a86: 08 95 ret
+
+00004a88 <toupper>:
+ 4a88: 91 11 cpse r25, r1
+ 4a8a: 08 95 ret
+ 4a8c: 81 56 subi r24, 0x61 ; 97
+ 4a8e: 8a 51 subi r24, 0x1A ; 26
+ 4a90: 08 f4 brcc .+2 ; 0x4a94 <toupper+0xc>
+ 4a92: 80 52 subi r24, 0x20 ; 32
+ 4a94: 85 58 subi r24, 0x85 ; 133
+ 4a96: 08 95 ret
+
+00004a98 <memcmp>:
+ 4a98: fb 01 movw r30, r22
+ 4a9a: dc 01 movw r26, r24
+ 4a9c: 04 c0 rjmp .+8 ; 0x4aa6 <memcmp+0xe>
+ 4a9e: 8d 91 ld r24, X+
+ 4aa0: 01 90 ld r0, Z+
+ 4aa2: 80 19 sub r24, r0
+ 4aa4: 21 f4 brne .+8 ; 0x4aae <memcmp+0x16>
+ 4aa6: 41 50 subi r20, 0x01 ; 1
+ 4aa8: 50 40 sbci r21, 0x00 ; 0
+ 4aaa: c8 f7 brcc .-14 ; 0x4a9e <memcmp+0x6>
+ 4aac: 88 1b sub r24, r24
+ 4aae: 99 0b sbc r25, r25
+ 4ab0: 08 95 ret
+
+00004ab2 <memcpy>:
+ 4ab2: fb 01 movw r30, r22
+ 4ab4: dc 01 movw r26, r24
+ 4ab6: 02 c0 rjmp .+4 ; 0x4abc <memcpy+0xa>
+ 4ab8: 01 90 ld r0, Z+
+ 4aba: 0d 92 st X+, r0
+ 4abc: 41 50 subi r20, 0x01 ; 1
+ 4abe: 50 40 sbci r21, 0x00 ; 0
+ 4ac0: d8 f7 brcc .-10 ; 0x4ab8 <memcpy+0x6>
+ 4ac2: 08 95 ret
+
+00004ac4 <memmove>:
+ 4ac4: 68 17 cp r22, r24
+ 4ac6: 79 07 cpc r23, r25
+ 4ac8: 68 f4 brcc .+26 ; 0x4ae4 <memmove+0x20>
+ 4aca: fb 01 movw r30, r22
+ 4acc: dc 01 movw r26, r24
+ 4ace: e4 0f add r30, r20
+ 4ad0: f5 1f adc r31, r21
+ 4ad2: a4 0f add r26, r20
+ 4ad4: b5 1f adc r27, r21
+ 4ad6: 02 c0 rjmp .+4 ; 0x4adc <memmove+0x18>
+ 4ad8: 02 90 ld r0, -Z
+ 4ada: 0e 92 st -X, r0
+ 4adc: 41 50 subi r20, 0x01 ; 1
+ 4ade: 50 40 sbci r21, 0x00 ; 0
+ 4ae0: d8 f7 brcc .-10 ; 0x4ad8 <memmove+0x14>
+ 4ae2: 08 95 ret
+ 4ae4: 0c 94 59 25 jmp 0x4ab2 ; 0x4ab2 <memcpy>
+
+00004ae8 <strchr>:
+ 4ae8: fc 01 movw r30, r24
+ 4aea: 81 91 ld r24, Z+
+ 4aec: 86 17 cp r24, r22
+ 4aee: 21 f0 breq .+8 ; 0x4af8 <strchr+0x10>
+ 4af0: 88 23 and r24, r24
+ 4af2: d9 f7 brne .-10 ; 0x4aea <strchr+0x2>
+ 4af4: 99 27 eor r25, r25
+ 4af6: 08 95 ret
+ 4af8: 31 97 sbiw r30, 0x01 ; 1
+ 4afa: cf 01 movw r24, r30
+ 4afc: 08 95 ret
+
+00004afe <strcmp>:
+ 4afe: fb 01 movw r30, r22
+ 4b00: dc 01 movw r26, r24
+ 4b02: 8d 91 ld r24, X+
+ 4b04: 01 90 ld r0, Z+
+ 4b06: 80 19 sub r24, r0
+ 4b08: 01 10 cpse r0, r1
+ 4b0a: d9 f3 breq .-10 ; 0x4b02 <strcmp+0x4>
+ 4b0c: 99 0b sbc r25, r25
+ 4b0e: 08 95 ret
+
+00004b10 <strcpy>:
+ 4b10: fb 01 movw r30, r22
+ 4b12: dc 01 movw r26, r24
+ 4b14: 01 90 ld r0, Z+
+ 4b16: 0d 92 st X+, r0
+ 4b18: 00 20 and r0, r0
+ 4b1a: e1 f7 brne .-8 ; 0x4b14 <strcpy+0x4>
+ 4b1c: 08 95 ret
+
+00004b1e <strncmp>:
+ 4b1e: fb 01 movw r30, r22
+ 4b20: dc 01 movw r26, r24
+ 4b22: 41 50 subi r20, 0x01 ; 1
+ 4b24: 50 40 sbci r21, 0x00 ; 0
+ 4b26: 30 f0 brcs .+12 ; 0x4b34 <strncmp+0x16>
+ 4b28: 8d 91 ld r24, X+
+ 4b2a: 01 90 ld r0, Z+
+ 4b2c: 80 19 sub r24, r0
+ 4b2e: 19 f4 brne .+6 ; 0x4b36 <strncmp+0x18>
+ 4b30: 00 20 and r0, r0
+ 4b32: b9 f7 brne .-18 ; 0x4b22 <strncmp+0x4>
+ 4b34: 88 1b sub r24, r24
+ 4b36: 99 0b sbc r25, r25
+ 4b38: 08 95 ret
+
+00004b3a <strncpy>:
+ 4b3a: fb 01 movw r30, r22
+ 4b3c: dc 01 movw r26, r24
+ 4b3e: 41 50 subi r20, 0x01 ; 1
+ 4b40: 50 40 sbci r21, 0x00 ; 0
+ 4b42: 48 f0 brcs .+18 ; 0x4b56 <strncpy+0x1c>
+ 4b44: 01 90 ld r0, Z+
+ 4b46: 0d 92 st X+, r0
+ 4b48: 00 20 and r0, r0
+ 4b4a: c9 f7 brne .-14 ; 0x4b3e <strncpy+0x4>
+ 4b4c: 01 c0 rjmp .+2 ; 0x4b50 <strncpy+0x16>
+ 4b4e: 1d 92 st X+, r1
+ 4b50: 41 50 subi r20, 0x01 ; 1
+ 4b52: 50 40 sbci r21, 0x00 ; 0
+ 4b54: e0 f7 brcc .-8 ; 0x4b4e <strncpy+0x14>
+ 4b56: 08 95 ret
+
+00004b58 <strrchr>:
+ 4b58: fc 01 movw r30, r24
+ 4b5a: 81 e0 ldi r24, 0x01 ; 1
+ 4b5c: 90 e0 ldi r25, 0x00 ; 0
+ 4b5e: 01 90 ld r0, Z+
+ 4b60: 06 16 cp r0, r22
+ 4b62: 09 f4 brne .+2 ; 0x4b66 <strrchr+0xe>
+ 4b64: cf 01 movw r24, r30
+ 4b66: 00 20 and r0, r0
+ 4b68: d1 f7 brne .-12 ; 0x4b5e <strrchr+0x6>
+ 4b6a: 01 97 sbiw r24, 0x01 ; 1
+ 4b6c: 08 95 ret
+
+00004b6e <strstr>:
+ 4b6e: fb 01 movw r30, r22
+ 4b70: 51 91 ld r21, Z+
+ 4b72: 55 23 and r21, r21
+ 4b74: a9 f0 breq .+42 ; 0x4ba0 <strstr+0x32>
+ 4b76: bf 01 movw r22, r30
+ 4b78: dc 01 movw r26, r24
+ 4b7a: 4d 91 ld r20, X+
+ 4b7c: 45 17 cp r20, r21
+ 4b7e: 41 11 cpse r20, r1
+ 4b80: e1 f7 brne .-8 ; 0x4b7a <strstr+0xc>
+ 4b82: 59 f4 brne .+22 ; 0x4b9a <strstr+0x2c>
+ 4b84: cd 01 movw r24, r26
+ 4b86: 01 90 ld r0, Z+
+ 4b88: 00 20 and r0, r0
+ 4b8a: 49 f0 breq .+18 ; 0x4b9e <strstr+0x30>
+ 4b8c: 4d 91 ld r20, X+
+ 4b8e: 40 15 cp r20, r0
+ 4b90: 41 11 cpse r20, r1
+ 4b92: c9 f3 breq .-14 ; 0x4b86 <strstr+0x18>
+ 4b94: fb 01 movw r30, r22
+ 4b96: 41 11 cpse r20, r1
+ 4b98: ef cf rjmp .-34 ; 0x4b78 <strstr+0xa>
+ 4b9a: 81 e0 ldi r24, 0x01 ; 1
+ 4b9c: 90 e0 ldi r25, 0x00 ; 0
+ 4b9e: 01 97 sbiw r24, 0x01 ; 1
+ 4ba0: 08 95 ret
+
+00004ba2 <itoa>:
+ 4ba2: fb 01 movw r30, r22
+ 4ba4: 9f 01 movw r18, r30
+ 4ba6: e8 94 clt
+ 4ba8: 42 30 cpi r20, 0x02 ; 2
+ 4baa: c4 f0 brlt .+48 ; 0x4bdc <itoa+0x3a>
+ 4bac: 45 32 cpi r20, 0x25 ; 37
+ 4bae: b4 f4 brge .+44 ; 0x4bdc <itoa+0x3a>
+ 4bb0: 4a 30 cpi r20, 0x0A ; 10
+ 4bb2: 29 f4 brne .+10 ; 0x4bbe <itoa+0x1c>
+ 4bb4: 97 fb bst r25, 7
+ 4bb6: 1e f4 brtc .+6 ; 0x4bbe <itoa+0x1c>
+ 4bb8: 90 95 com r25
+ 4bba: 81 95 neg r24
+ 4bbc: 9f 4f sbci r25, 0xFF ; 255
+ 4bbe: 64 2f mov r22, r20
+ 4bc0: 77 27 eor r23, r23
+ 4bc2: 0e 94 69 22 call 0x44d2 ; 0x44d2 <__udivmodhi4>
+ 4bc6: 80 5d subi r24, 0xD0 ; 208
+ 4bc8: 8a 33 cpi r24, 0x3A ; 58
+ 4bca: 0c f0 brlt .+2 ; 0x4bce <itoa+0x2c>
+ 4bcc: 89 5d subi r24, 0xD9 ; 217
+ 4bce: 81 93 st Z+, r24
+ 4bd0: cb 01 movw r24, r22
+ 4bd2: 00 97 sbiw r24, 0x00 ; 0
+ 4bd4: a1 f7 brne .-24 ; 0x4bbe <itoa+0x1c>
+ 4bd6: 16 f4 brtc .+4 ; 0x4bdc <itoa+0x3a>
+ 4bd8: 5d e2 ldi r21, 0x2D ; 45
+ 4bda: 51 93 st Z+, r21
+ 4bdc: 10 82 st Z, r1
+ 4bde: c9 01 movw r24, r18
+ 4be0: 0c 94 79 26 jmp 0x4cf2 ; 0x4cf2 <strrev>
+
+00004be4 <ltoa>:
+ 4be4: fa 01 movw r30, r20
+ 4be6: cf 93 push r28
+ 4be8: ff 93 push r31
+ 4bea: ef 93 push r30
+ 4bec: 22 30 cpi r18, 0x02 ; 2
+ 4bee: 44 f1 brlt .+80 ; 0x4c40 <ltoa+0x5c>
+ 4bf0: 25 32 cpi r18, 0x25 ; 37
+ 4bf2: 34 f5 brge .+76 ; 0x4c40 <ltoa+0x5c>
+ 4bf4: c2 2f mov r28, r18
+ 4bf6: e8 94 clt
+ 4bf8: ca 30 cpi r28, 0x0A ; 10
+ 4bfa: 49 f4 brne .+18 ; 0x4c0e <ltoa+0x2a>
+ 4bfc: 97 fb bst r25, 7
+ 4bfe: 3e f4 brtc .+14 ; 0x4c0e <ltoa+0x2a>
+ 4c00: 90 95 com r25
+ 4c02: 80 95 com r24
+ 4c04: 70 95 com r23
+ 4c06: 61 95 neg r22
+ 4c08: 7f 4f sbci r23, 0xFF ; 255
+ 4c0a: 8f 4f sbci r24, 0xFF ; 255
+ 4c0c: 9f 4f sbci r25, 0xFF ; 255
+ 4c0e: 2c 2f mov r18, r28
+ 4c10: 33 27 eor r19, r19
+ 4c12: 44 27 eor r20, r20
+ 4c14: 55 27 eor r21, r21
+ 4c16: ff 93 push r31
+ 4c18: ef 93 push r30
+ 4c1a: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 4c1e: ef 91 pop r30
+ 4c20: ff 91 pop r31
+ 4c22: 60 5d subi r22, 0xD0 ; 208
+ 4c24: 6a 33 cpi r22, 0x3A ; 58
+ 4c26: 0c f0 brlt .+2 ; 0x4c2a <ltoa+0x46>
+ 4c28: 69 5d subi r22, 0xD9 ; 217
+ 4c2a: 61 93 st Z+, r22
+ 4c2c: b9 01 movw r22, r18
+ 4c2e: ca 01 movw r24, r20
+ 4c30: 60 50 subi r22, 0x00 ; 0
+ 4c32: 70 40 sbci r23, 0x00 ; 0
+ 4c34: 80 40 sbci r24, 0x00 ; 0
+ 4c36: 90 40 sbci r25, 0x00 ; 0
+ 4c38: 51 f7 brne .-44 ; 0x4c0e <ltoa+0x2a>
+ 4c3a: 16 f4 brtc .+4 ; 0x4c40 <ltoa+0x5c>
+ 4c3c: cd e2 ldi r28, 0x2D ; 45
+ 4c3e: c1 93 st Z+, r28
+ 4c40: 10 82 st Z, r1
+ 4c42: 8f 91 pop r24
+ 4c44: 9f 91 pop r25
+ 4c46: cf 91 pop r28
+ 4c48: 0c 94 79 26 jmp 0x4cf2 ; 0x4cf2 <strrev>
+
+00004c4c <__mulsi_const_10>:
+ 4c4c: 59 2f mov r21, r25
+ 4c4e: 48 2f mov r20, r24
+ 4c50: 37 2f mov r19, r23
+ 4c52: 26 2f mov r18, r22
+ 4c54: 66 0f add r22, r22
+ 4c56: 77 1f adc r23, r23
+ 4c58: 88 1f adc r24, r24
+ 4c5a: 99 1f adc r25, r25
+ 4c5c: 66 0f add r22, r22
+ 4c5e: 77 1f adc r23, r23
+ 4c60: 88 1f adc r24, r24
+ 4c62: 99 1f adc r25, r25
+ 4c64: 62 0f add r22, r18
+ 4c66: 73 1f adc r23, r19
+ 4c68: 84 1f adc r24, r20
+ 4c6a: 95 1f adc r25, r21
+ 4c6c: 66 0f add r22, r22
+ 4c6e: 77 1f adc r23, r23
+ 4c70: 88 1f adc r24, r24
+ 4c72: 99 1f adc r25, r25
+ 4c74: 08 95 ret
+
+00004c76 <ultoa>:
+ 4c76: fa 01 movw r30, r20
+ 4c78: cf 93 push r28
+ 4c7a: ff 93 push r31
+ 4c7c: ef 93 push r30
+ 4c7e: 22 30 cpi r18, 0x02 ; 2
+ 4c80: cc f0 brlt .+50 ; 0x4cb4 <ultoa+0x3e>
+ 4c82: 25 32 cpi r18, 0x25 ; 37
+ 4c84: bc f4 brge .+46 ; 0x4cb4 <ultoa+0x3e>
+ 4c86: c2 2f mov r28, r18
+ 4c88: 2c 2f mov r18, r28
+ 4c8a: 33 27 eor r19, r19
+ 4c8c: 44 27 eor r20, r20
+ 4c8e: 55 27 eor r21, r21
+ 4c90: ff 93 push r31
+ 4c92: ef 93 push r30
+ 4c94: 0e 94 2c 22 call 0x4458 ; 0x4458 <__udivmodsi4>
+ 4c98: ef 91 pop r30
+ 4c9a: ff 91 pop r31
+ 4c9c: 60 5d subi r22, 0xD0 ; 208
+ 4c9e: 6a 33 cpi r22, 0x3A ; 58
+ 4ca0: 0c f0 brlt .+2 ; 0x4ca4 <ultoa+0x2e>
+ 4ca2: 69 5d subi r22, 0xD9 ; 217
+ 4ca4: 61 93 st Z+, r22
+ 4ca6: b9 01 movw r22, r18
+ 4ca8: ca 01 movw r24, r20
+ 4caa: 60 50 subi r22, 0x00 ; 0
+ 4cac: 70 40 sbci r23, 0x00 ; 0
+ 4cae: 80 40 sbci r24, 0x00 ; 0
+ 4cb0: 90 40 sbci r25, 0x00 ; 0
+ 4cb2: 51 f7 brne .-44 ; 0x4c88 <ultoa+0x12>
+ 4cb4: 10 82 st Z, r1
+ 4cb6: 8f 91 pop r24
+ 4cb8: 9f 91 pop r25
+ 4cba: cf 91 pop r28
+ 4cbc: 0c 94 79 26 jmp 0x4cf2 ; 0x4cf2 <strrev>
+
+00004cc0 <utoa>:
+ 4cc0: fb 01 movw r30, r22
+ 4cc2: 9f 01 movw r18, r30
+ 4cc4: 42 30 cpi r20, 0x02 ; 2
+ 4cc6: 74 f0 brlt .+28 ; 0x4ce4 <utoa+0x24>
+ 4cc8: 45 32 cpi r20, 0x25 ; 37
+ 4cca: 64 f4 brge .+24 ; 0x4ce4 <utoa+0x24>
+ 4ccc: 64 2f mov r22, r20
+ 4cce: 77 27 eor r23, r23
+ 4cd0: 0e 94 69 22 call 0x44d2 ; 0x44d2 <__udivmodhi4>
+ 4cd4: 80 5d subi r24, 0xD0 ; 208
+ 4cd6: 8a 33 cpi r24, 0x3A ; 58
+ 4cd8: 0c f0 brlt .+2 ; 0x4cdc <utoa+0x1c>
+ 4cda: 89 5d subi r24, 0xD9 ; 217
+ 4cdc: 81 93 st Z+, r24
+ 4cde: cb 01 movw r24, r22
+ 4ce0: 00 97 sbiw r24, 0x00 ; 0
+ 4ce2: a1 f7 brne .-24 ; 0x4ccc <utoa+0xc>
+ 4ce4: 10 82 st Z, r1
+ 4ce6: c9 01 movw r24, r18
+ 4ce8: 0c 94 79 26 jmp 0x4cf2 ; 0x4cf2 <strrev>
+
+00004cec <__ctype_isfalse>:
+ 4cec: 99 27 eor r25, r25
+ 4cee: 88 27 eor r24, r24
+
+00004cf0 <__ctype_istrue>:
+ 4cf0: 08 95 ret
+
+00004cf2 <strrev>:
+ 4cf2: dc 01 movw r26, r24
+ 4cf4: fc 01 movw r30, r24
+ 4cf6: 67 2f mov r22, r23
+ 4cf8: 71 91 ld r23, Z+
+ 4cfa: 77 23 and r23, r23
+ 4cfc: e1 f7 brne .-8 ; 0x4cf6 <strrev+0x4>
+ 4cfe: 32 97 sbiw r30, 0x02 ; 2
+ 4d00: 04 c0 rjmp .+8 ; 0x4d0a <strrev+0x18>
+ 4d02: 7c 91 ld r23, X
+ 4d04: 6d 93 st X+, r22
+ 4d06: 70 83 st Z, r23
+ 4d08: 62 91 ld r22, -Z
+ 4d0a: ae 17 cp r26, r30
+ 4d0c: bf 07 cpc r27, r31
+ 4d0e: c8 f3 brcs .-14 ; 0x4d02 <strrev+0x10>
+ 4d10: 08 95 ret
+
+00004d12 <_exit>:
+ 4d12: f8 94 cli
+
+00004d14 <__stop_program>:
+ 4d14: ff cf rjmp .-2 ; 0x4d14 <__stop_program>
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map
new file mode 100644
index 0000000..5ba9975
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map
@@ -0,0 +1,1584 @@
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ obj/Release/arduinoSrc1_0/Stream.o (__mulsi3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__divmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__udivmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc1_0/WMath.o (__divmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ obj/Release/adapticsBT.o (__do_copy_data)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ obj/Release/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o (__do_global_ctors)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o (__fixunssfsi)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__addsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__mulsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__divsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o) (__gesf2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__ltsf2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__floatsisf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/arduinoSrc1_0/Print.o (__fixsfsi)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o (__floatunsisf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o) (__clzsi2)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o) (__fpcmp_parts_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o) (__clz_tab)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduinoSrc1_0/new.o (malloc)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o (random)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o (realloc)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc1_0/WString.o (atol)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc1_0/WString.o (isspace)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc1_0/WString.o (tolower)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc1_0/WString.o (toupper)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ obj/Release/arduinoSrc1_0/IPAddress.o (memcmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (memcpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ obj/Release/arduinoSrc1_0/WString.o (memmove)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strchr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc1_0/WString.o (strcmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (strcpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc1_0/WString.o (strncmp)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc1_0/WString.o (strncpy)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strrchr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc1_0/WString.o (strstr)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (itoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (ltoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o) (__mulsi_const_10)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (ultoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ obj/Release/arduinoSrc1_0/WString.o (utoa)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o) (__ctype_isfalse)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o) (strrev)
+
+Allocating common symbols
+Common symbol size file
+
+__brkval 0x2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__flp 0x2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+fuse 0x00820000 0x00000400 rw !x
+lock 0x00830000 0x00000400 rw !x
+signature 0x00840000 0x00000400 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/adapticsBT.o
+LOAD obj/Release/main.o
+LOAD obj/Release/arduinoSrc1_0/CDC.o
+LOAD obj/Release/arduinoSrc1_0/HID.o
+LOAD obj/Release/arduinoSrc1_0/HardwareSerial.o
+LOAD obj/Release/arduinoSrc1_0/IPAddress.o
+LOAD obj/Release/arduinoSrc1_0/Print.o
+LOAD obj/Release/arduinoSrc1_0/Stream.o
+LOAD obj/Release/arduinoSrc1_0/Tone.o
+LOAD obj/Release/arduinoSrc1_0/USBCore.o
+LOAD obj/Release/arduinoSrc1_0/WInterrupts.o
+LOAD obj/Release/arduinoSrc1_0/WMath.o
+LOAD obj/Release/arduinoSrc1_0/WString.o
+LOAD obj/Release/arduinoSrc1_0/new.o
+LOAD obj/Release/arduinoSrc1_0/wiring.o
+LOAD obj/Release/arduinoSrc1_0/wiring_analog.o
+LOAD obj/Release/arduinoSrc1_0/wiring_digital.o
+LOAD obj/Release/arduinoSrc1_0/wiring_pulse.o
+LOAD obj/Release/arduinoSrc1_0/wiring_shift.o
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x4d16
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x1 obj/Release/arduinoSrc1_0/Tone.o
+ .progmem.data 0x00000069 0x5a obj/Release/arduinoSrc1_0/wiring_digital.o
+ 0x00000069 port_to_mode_PGM
+ 0x00000073 port_to_output_PGM
+ 0x0000007d port_to_input_PGM
+ 0x00000087 digital_pin_to_port_PGM
+ 0x0000009b digital_pin_to_bit_mask_PGM
+ 0x000000af digital_pin_to_timer_PGM
+ 0x000000c4 . = ALIGN (0x2)
+ *fill* 0x000000c3 0x1 00
+ 0x000000c4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000c4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000c4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000c4 __ctors_start = .
+ *(.ctors)
+ .ctors 0x000000c4 0x2 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ .ctors 0x000000c6 0x2 obj/Release/arduinoSrc1_0/IPAddress.o
+ 0x000000c8 __ctors_end = .
+ 0x000000c8 __dtors_start = .
+ *(.dtors)
+ 0x000000c8 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000c8 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x000000c8 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000c8 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000d4 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ 0x000000d4 __do_copy_data
+ .init4 0x000000ea 0x10 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ 0x000000ea __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000fa 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ 0x000000fa __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000110 0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x00000118 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x00000118 __vector_22
+ 0x00000118 __vector_24
+ 0x00000118 __vector_12
+ 0x00000118 __bad_interrupt
+ 0x00000118 __vector_6
+ 0x00000118 __vector_3
+ 0x00000118 __vector_23
+ 0x00000118 __vector_25
+ 0x00000118 __vector_11
+ 0x00000118 __vector_13
+ 0x00000118 __vector_17
+ 0x00000118 __vector_5
+ 0x00000118 __vector_4
+ 0x00000118 __vector_9
+ 0x00000118 __vector_21
+ 0x00000118 __vector_15
+ 0x00000118 __vector_8
+ 0x00000118 __vector_14
+ 0x00000118 __vector_10
+ 0x00000118 __vector_20
+ .text 0x0000011c 0x9a obj/Release/adapticsBT.o
+ 0x0000011c _Z9advertisev
+ 0x00000152 _Z14setupBlueToothv
+ .text 0x000001b6 0x470 obj/Release/main.o
+ 0x000001b6 _Z10startWritev
+ 0x000001c8 _Z9startReadv
+ 0x000001da _Z11SCLKcycle_Wv
+ 0x00000204 _Z11SCLKcycle_Rv
+ 0x0000022e _Z9writeByteh
+ 0x0000026c _Z12writeStopBitv
+ 0x00000296 _Z13writeStartBitv
+ 0x000002d0 _Z8readBytev
+ 0x00000314 _Z8writeDMMv
+ 0x000003de main
+ .text 0x00000626 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .text 0x00000626 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .text 0x00000626 0x526 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x00000626 _ZN14HardwareSerial9availableEv
+ 0x0000064c _ZN14HardwareSerial4peekEv
+ 0x00000684 _ZN14HardwareSerial4readEv
+ 0x000006c8 _ZN14HardwareSerial5flushEv
+ 0x000006f0 _ZN14HardwareSerial5writeEh
+ 0x00000762 _Z10store_charhP11ring_buffer
+ 0x00000796 _Z11serialEventv
+ 0x00000798 __vector_18
+ 0x000007e8 _Z14serialEventRunv
+ 0x000007fa __vector_19
+ 0x00000888 _ZN14HardwareSerialC2EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh
+ 0x00000888 _ZN14HardwareSerialC1EP11ring_bufferS1_PVhS3_S3_S3_S3_hhhhh
+ 0x00000906 _ZN14HardwareSerial5beginEm
+ 0x00000a24 _ZN14HardwareSerial3endEv
+ .text 0x00000b4c 0x150 obj/Release/arduinoSrc1_0/IPAddress.o
+ 0x00000b4c _ZNK9IPAddress7printToER5Print
+ 0x00000bd2 _ZN9IPAddressC2Ev
+ 0x00000bd2 _ZN9IPAddressC1Ev
+ 0x00000be6 _ZN9IPAddressC1Ehhhh
+ 0x00000be6 _ZN9IPAddressC2Ehhhh
+ 0x00000bfe _ZN9IPAddressC2Em
+ 0x00000bfe _ZN9IPAddressC1Em
+ 0x00000c12 _ZN9IPAddressC1EPKh
+ 0x00000c12 _ZN9IPAddressC2EPKh
+ 0x00000c32 _ZN9IPAddressaSEPKh
+ 0x00000c52 _ZN9IPAddressaSEm
+ 0x00000c5e _ZN9IPAddresseqEPKh
+ .text 0x00000c9c 0x628 obj/Release/arduinoSrc1_0/Print.o
+ 0x00000c9c _ZN5Print5writeEPKhj
+ 0x00000cf0 _ZN5Print5writeEPKc
+ 0x00000d12 _ZN5Print5printEPK19__FlashStringHelper
+ 0x00000d58 _ZN5Print5printERK6String
+ 0x00000dbe _ZN5Print5printEPKc
+ 0x00000dc4 _ZN5Print5printEc
+ 0x00000dd4 _ZN5Print5printERK9Printable
+ 0x00000dea _ZN5Print7printlnEv
+ 0x00000e14 _ZN5Print7printlnEPK19__FlashStringHelper
+ 0x00000e3a _ZN5Print7printlnERK6String
+ 0x00000e60 _ZN5Print7printlnEPKc
+ 0x00000e86 _ZN5Print7printlnEc
+ 0x00000eac _ZN5Print7printlnERK9Printable
+ 0x00000ed2 _ZN5Print11printNumberEmh
+ 0x00000f86 _ZN5Print5printEmi
+ 0x00000fa4 _ZN5Print7printlnEmi
+ 0x00000fca _ZN5Print5printEji
+ 0x00000fd8 _ZN5Print7printlnEji
+ 0x00001006 _ZN5Print5printEhi
+ 0x00001016 _ZN5Print7printlnEhi
+ 0x00001046 _ZN5Print5printEli
+ 0x000010bc _ZN5Print7printlnEli
+ 0x000010e2 _ZN5Print5printEii
+ 0x000010f6 _ZN5Print7printlnEii
+ 0x0000112c _ZN5Print10printFloatEdh
+ 0x00001298 _ZN5Print5printEdi
+ 0x0000129e _ZN5Print7printlnEdi
+ .text 0x000012c4 0x4ee obj/Release/arduinoSrc1_0/Stream.o
+ 0x000012c4 _ZN6Stream9timedReadEv
+ 0x0000131c _ZN6Stream9timedPeekEv
+ 0x00001374 _ZN6Stream13peekNextDigitEv
+ 0x000013ac _ZN6Stream10setTimeoutEm
+ 0x000013b8 _ZN6Stream9findUntilEPcjS0_j
+ 0x0000146e _ZN6Stream9findUntilEPcS0_
+ 0x000014a8 _ZN6Stream4findEPc
+ 0x000014b2 _ZN6Stream4findEPcj
+ 0x000014c8 _ZN6Stream8parseIntEc
+ 0x000015aa _ZN6Stream8parseIntEv
+ 0x000015b2 _ZN6Stream10parseFloatEc
+ 0x000016fc _ZN6Stream10parseFloatEv
+ 0x00001704 _ZN6Stream9readBytesEPcj
+ 0x0000174a _ZN6Stream14readBytesUntilEcPcj
+ .text 0x000017b2 0x544 obj/Release/arduinoSrc1_0/Tone.o
+ 0x000017b2 _Z4tonehjm
+ 0x00001bd0 _Z12disableTimerh
+ 0x00001c12 _Z6noToneh
+ 0x00001c3e __vector_7
+ .text 0x00001cf6 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .text 0x00001cf6 0x114 obj/Release/arduinoSrc1_0/WInterrupts.o
+ 0x00001cf6 attachInterrupt
+ 0x00001d36 detachInterrupt
+ 0x00001d56 __vector_1
+ 0x00001db0 __vector_2
+ .text 0x00001e0a 0x12a obj/Release/arduinoSrc1_0/WMath.o
+ 0x00001e0a _Z10randomSeedj
+ 0x00001e1a _Z6randoml
+ 0x00001e56 _Z6randomll
+ 0x00001e92 _Z3maplllll
+ 0x00001f24 _Z8makeWordj
+ 0x00001f26 _Z8makeWordhh
+ .text 0x00001f34 0x1024 obj/Release/arduinoSrc1_0/WString.o
+ 0x00001f34 _ZN6StringD1Ev
+ 0x00001f34 _ZN6StringD2Ev
+ 0x00001f40 _ZN6String10invalidateEv
+ 0x00001f64 _ZN6String12changeBufferEj
+ 0x00001f98 _ZN6String7reserveEj
+ 0x00001fd6 _ZN6String4copyEPKcj
+ 0x00002018 _ZN6StringC1EPKc
+ 0x00002018 _ZN6StringC2EPKc
+ 0x0000204e _ZN6StringaSERKS_
+ 0x00002084 _ZN6StringC1ERKS_
+ 0x00002084 _ZN6StringC2ERKS_
+ 0x0000209a _ZN6StringaSEPKc
+ 0x000020ca _ZN6StringC2Emh
+ 0x000020ca _ZN6StringC1Emh
+ 0x0000212c _ZN6StringC1Elh
+ 0x0000212c _ZN6StringC2Elh
+ 0x0000218e _ZN6StringC2Ejh
+ 0x0000218e _ZN6StringC1Ejh
+ 0x000021ee _ZN6StringC1Eih
+ 0x000021ee _ZN6StringC2Eih
+ 0x0000224e _ZN6StringC1Ehh
+ 0x0000224e _ZN6StringC2Ehh
+ 0x000022b0 _ZN6StringC2Ec
+ 0x000022b0 _ZN6StringC1Ec
+ 0x000022e2 _ZN6String6concatEPKcj
+ 0x0000233a _ZN6String6concatERKS_
+ 0x0000234a _ZN6String6concatEPKc
+ 0x0000236c _ZN6String6concatEc
+ 0x00002392 _ZN6String6concatEh
+ 0x000023ec _ZN6String6concatEi
+ 0x00002450 _ZN6String6concatEj
+ 0x000024ae _ZN6String6concatEl
+ 0x00002514 _ZN6String6concatEm
+ 0x0000257a _ZplRK15StringSumHelperRK6String
+ 0x000025a0 _ZplRK15StringSumHelperPKc
+ 0x000025d4 _ZplRK15StringSumHelperc
+ 0x000025f0 _ZplRK15StringSumHelperh
+ 0x0000260c _ZplRK15StringSumHelperi
+ 0x00002628 _ZplRK15StringSumHelperj
+ 0x00002644 _ZplRK15StringSumHelperl
+ 0x00002660 _ZplRK15StringSumHelperm
+ 0x0000267c _ZNK6String9compareToERKS_
+ 0x000026e8 _ZNK6String6equalsERKS_
+ 0x0000270a _ZNK6String6equalsEPKc
+ 0x00002750 _ZNK6StringltERKS_
+ 0x0000275e _ZNK6StringgtERKS_
+ 0x00002770 _ZNK6StringleERKS_
+ 0x00002782 _ZNK6StringgeERKS_
+ 0x00002792 _ZNK6String16equalsIgnoreCaseERKS_
+ 0x00002806 _ZNK6String10startsWithERKS_j
+ 0x00002852 _ZNK6String10startsWithERKS_
+ 0x00002872 _ZNK6String8endsWithERKS_
+ 0x000028bc _ZN6String9setCharAtEjc
+ 0x000028d6 _ZN6StringixEj
+ 0x000028fc _ZNK6StringixEj
+ 0x00002922 _ZNK6String6charAtEj
+ 0x00002928 _ZNK6String8getBytesEPhjj
+ 0x00002980 _ZNK6String7indexOfEcj
+ 0x000029bc _ZNK6String7indexOfEc
+ 0x000029c6 _ZNK6String7indexOfERKS_j
+ 0x00002a02 _ZNK6String7indexOfERKS_
+ 0x00002a0c _ZNK6String11lastIndexOfEcj
+ 0x00002a7a _ZNK6String11lastIndexOfEc
+ 0x00002a8a _ZNK6String11lastIndexOfERKS_j
+ 0x00002b24 _ZNK6String11lastIndexOfERKS_
+ 0x00002b3a _ZNK6String9substringEjj
+ 0x00002bdc _ZNK6String9substringEj
+ 0x00002bf4 _ZN6String7replaceEcc
+ 0x00002c12 _ZN6String7replaceERKS_S1_
+ 0x00002e26 _ZN6String11toLowerCaseEv
+ 0x00002e4e _ZN6String11toUpperCaseEv
+ 0x00002e76 _ZN6String4trimEv
+ 0x00002f38 _ZNK6String5toIntEv
+ .text 0x00002f58 0x2c obj/Release/arduinoSrc1_0/new.o
+ 0x00002f58 _Znwj
+ 0x00002f5e _ZdlPv
+ 0x00002f64 __cxa_guard_acquire
+ 0x00002f78 __cxa_guard_release
+ 0x00002f80 __cxa_guard_abort
+ 0x00002f82 __cxa_pure_virtual
+ .text 0x00002f84 0x1e8 obj/Release/arduinoSrc1_0/wiring.o
+ 0x00002f84 __vector_16
+ 0x0000302c millis
+ 0x00003048 micros
+ 0x00003094 delay
+ 0x000030e2 delayMicroseconds
+ 0x000030f6 init
+ .text 0x0000316c 0x108 obj/Release/arduinoSrc1_0/wiring_analog.o
+ 0x0000316c analogReference
+ 0x00003172 analogRead
+ 0x000031b4 analogWrite
+ .text 0x00003274 0x166 obj/Release/arduinoSrc1_0/wiring_digital.o
+ 0x000032ce pinMode
+ 0x00003316 digitalWrite
+ 0x00003386 digitalRead
+ .text 0x000033da 0x130 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ 0x000033da pulseIn
+ .text 0x0000350a 0x10a obj/Release/arduinoSrc1_0/wiring_shift.o
+ 0x0000350a shiftIn
+ 0x0000358e shiftOut
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00003614 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text 0x00003614 0x58 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ 0x00003614 __fixunssfsi
+ .text 0x0000366c 0x350 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ 0x00003900 __addsf3
+ 0x0000395a __subsf3
+ .text 0x000039bc 0x1f4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ 0x000039bc __mulsf3
+ .text 0x00003bb0 0x15c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ 0x00003bb0 __divsf3
+ .text 0x00003d0c 0x60 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ 0x00003d0c __gesf2
+ .text 0x00003d6c 0x60 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ 0x00003d6c __ltsf2
+ .text 0x00003dcc 0xc0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ 0x00003dcc __floatsisf
+ .text 0x00003e8c 0xa4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ 0x00003e8c __fixsfsi
+ .text 0x00003f30 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00003f30 0xf0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ 0x00003f30 __floatunsisf
+ .text 0x00004020 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00004020 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .text 0x00004020 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .text 0x00004020 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .text 0x00004020 0xb4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ 0x00004020 __clzsi2
+ .text 0x000040d4 0x19c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ 0x000040d4 __pack_f
+ .text 0x00004270 0xd2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ 0x00004270 __unpack_f
+ .text 0x00004342 0xb2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ 0x00004342 __fpcmp_parts_f
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .text 0x000043f4 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x000043f4 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x000043f4 0x3e /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ 0x000043f4 __mulsi3
+ .text.libgcc 0x00004432 0x26 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ 0x00004432 __divmodhi4
+ 0x00004432 _div
+ .text.libgcc 0x00004458 0x44 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00004458 __udivmodsi4
+ .text.libgcc 0x0000449c 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000449c __divmodsi4
+ .text.libgcc 0x000044d2 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x000044d2 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x000044d2 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x000044d2 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x000044d2 0x28 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ 0x000044d2 __udivmodhi4
+ .text.libgcc 0x000044fa 0x38 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ 0x000044fa __prologue_saves__
+ .text.libgcc 0x00004532 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ 0x00004532 __epilogue_restores__
+ .text.libgcc 0x00004568 0xc /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ 0x00004568 __tablejump2__
+ 0x0000456c __tablejump__
+ .text.avr-libc
+ 0x00004574 0x266 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00004574 malloc
+ 0x000046a8 free
+ .text.avr-libc
+ 0x000047da 0xaa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ 0x00004862 random_r
+ 0x00004868 random
+ 0x00004872 srandom
+ .text.avr-libc
+ 0x00004884 0x196 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x00004884 realloc
+ .text.avr-libc
+ 0x00004a1a 0x4e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x00004a1a atol
+ .text.avr-libc
+ 0x00004a68 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0x00004a68 isspace
+ .text.avr-libc
+ 0x00004a78 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0x00004a78 tolower
+ .text.avr-libc
+ 0x00004a88 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0x00004a88 toupper
+ .text.avr-libc
+ 0x00004a98 0x1a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ 0x00004a98 memcmp
+ .text.avr-libc
+ 0x00004ab2 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x00004ab2 memcpy
+ .text.avr-libc
+ 0x00004ac4 0x24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ 0x00004ac4 memmove
+ .text.avr-libc
+ 0x00004ae8 0x16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0x00004ae8 strchr
+ .text.avr-libc
+ 0x00004afe 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x00004afe strcmp
+ .text.avr-libc
+ 0x00004b10 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x00004b10 strcpy
+ .text.avr-libc
+ 0x00004b1e 0x1c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0x00004b1e strncmp
+ .text.avr-libc
+ 0x00004b3a 0x1e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x00004b3a strncpy
+ .text.avr-libc
+ 0x00004b58 0x16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0x00004b58 strrchr
+ .text.avr-libc
+ 0x00004b6e 0x34 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x00004b6e strstr
+ .text.avr-libc
+ 0x00004ba2 0x42 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x00004ba2 itoa
+ .text.avr-libc
+ 0x00004be4 0x68 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x00004be4 ltoa
+ .text.avr-libc
+ 0x00004c4c 0x2a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x00004c4c __mulsi_const_10
+ .text.avr-libc
+ 0x00004c76 0x4a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x00004c76 ultoa
+ .text.avr-libc
+ 0x00004cc0 0x2c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ 0x00004cc0 utoa
+ .text.avr-libc
+ 0x00004cec 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x00004cec __ctype_isfalse
+ 0x00004cf0 __ctype_istrue
+ .text.avr-libc
+ 0x00004cf2 0x20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x00004cf2 strrev
+ 0x00004d12 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00004d12 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ 0x00004d12 exit
+ 0x00004d12 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00004d12 0x4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00004d16 _etext = .
+
+.data 0x00800100 0x1c0 load address 0x00004d16
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x72 obj/Release/adapticsBT.o
+ .data 0x00800172 0x3 obj/Release/main.o
+ 0x00800172 packetSize
+ .data 0x00800175 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .data 0x00800175 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .data 0x00800175 0x20 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x00800175 _ZTV14HardwareSerial
+ 0x00800185 _ZTV6Stream
+ .data 0x00800195 0xc obj/Release/arduinoSrc1_0/IPAddress.o
+ 0x00800195 _ZTV9IPAddress
+ 0x0080019b _ZTV9Printable
+ .data 0x008001a1 0xa obj/Release/arduinoSrc1_0/Print.o
+ 0x008001a3 _ZTV5Print
+ .data 0x008001ab 0x0 obj/Release/arduinoSrc1_0/Stream.o
+ .data 0x008001ab 0x1 obj/Release/arduinoSrc1_0/Tone.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/WInterrupts.o
+ .data 0x008001ac 0x0 obj/Release/arduinoSrc1_0/WMath.o
+ .data 0x008001ac 0x1 obj/Release/arduinoSrc1_0/WString.o
+ .data 0x008001ad 0x0 obj/Release/arduinoSrc1_0/new.o
+ .data 0x008001ad 0x0 obj/Release/arduinoSrc1_0/wiring.o
+ .data 0x008001ad 0x1 obj/Release/arduinoSrc1_0/wiring_analog.o
+ 0x008001ad analog_reference
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_digital.o
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ .data 0x008001ae 0x0 obj/Release/arduinoSrc1_0/wiring_shift.o
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ .data 0x008001ae 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x008001ae 0x8 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ 0x008001ae __thenan_sf
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x008001b6 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .data 0x008001b6 0x100 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ 0x008001b6 __clz_tab
+ .data 0x008002b6 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002b6 __malloc_margin
+ 0x008002b8 __malloc_heap_start
+ 0x008002ba __malloc_heap_end
+ .data 0x008002bc 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .data 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x008002c0 . = ALIGN (0x2)
+ 0x008002c0 _edata = .
+ 0x008002c0 PROVIDE (__data_end, .)
+
+.bss 0x008002c0 0xee
+ 0x008002c0 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x008002c0 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x008002c0 0x0 obj/Release/adapticsBT.o
+ .bss 0x008002c0 0x1a obj/Release/main.o
+ 0x008002c0 connected
+ 0x008002c1 data
+ 0x008002cb CB_SHBP
+ 0x008002cc CB_function
+ 0x008002cd CB_VARCrange
+ 0x008002ce CB_FREQrange
+ 0x008002cf CB_BUZfreq
+ 0x008002d0 CB_ADCrate
+ 0x008002d1 CB_ACmode
+ 0x008002d2 CB_PEAKmode
+ 0x008002d3 CB_PCALmode
+ 0x008002d4 CB_LPFbw
+ 0x008002d5 CB_EXTdiode
+ 0x008002d6 CB_OPconf
+ 0x008002d7 CB_FREQinprest
+ 0x008002d8 CB_ADPext
+ 0x008002d9 CB_DCfs
+ .bss 0x008002da 0x0 obj/Release/arduinoSrc1_0/CDC.o
+ .bss 0x008002da 0x0 obj/Release/arduinoSrc1_0/HID.o
+ .bss 0x008002da 0xa7 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ 0x008002da rx_buffer
+ 0x0080031e tx_buffer
+ 0x00800362 Serial
+ .bss 0x00800381 0x6 obj/Release/arduinoSrc1_0/IPAddress.o
+ .bss 0x00800387 0x0 obj/Release/arduinoSrc1_0/Print.o
+ .bss 0x00800387 0x0 obj/Release/arduinoSrc1_0/Stream.o
+ .bss 0x00800387 0x15 obj/Release/arduinoSrc1_0/Tone.o
+ 0x00800387 timer0_toggle_count
+ 0x0080038b timer0_pin_port
+ 0x0080038d timer0_pin_mask
+ 0x0080038e timer1_toggle_count
+ 0x00800392 timer1_pin_port
+ 0x00800394 timer1_pin_mask
+ 0x00800395 timer2_toggle_count
+ 0x00800399 timer2_pin_port
+ 0x0080039b timer2_pin_mask
+ .bss 0x0080039c 0x0 obj/Release/arduinoSrc1_0/USBCore.o
+ .bss 0x0080039c 0x4 obj/Release/arduinoSrc1_0/WInterrupts.o
+ .bss 0x008003a0 0x0 obj/Release/arduinoSrc1_0/WMath.o
+ .bss 0x008003a0 0x1 obj/Release/arduinoSrc1_0/WString.o
+ .bss 0x008003a1 0x0 obj/Release/arduinoSrc1_0/new.o
+ .bss 0x008003a1 0x9 obj/Release/arduinoSrc1_0/wiring.o
+ 0x008003a1 timer0_overflow_count
+ 0x008003a5 timer0_millis
+ .bss 0x008003aa 0x0 obj/Release/arduinoSrc1_0/wiring_analog.o
+ .bss 0x008003aa 0x0 obj/Release/arduinoSrc1_0/wiring_digital.o
+ .bss 0x008003aa 0x0 obj/Release/arduinoSrc1_0/wiring_pulse.o
+ .bss 0x008003aa 0x0 obj/Release/arduinoSrc1_0/wiring_shift.o
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .bss 0x008003aa 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x008003aa 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008003aa __brkval
+ 0x008003ac __flp
+ 0x008003ae PROVIDE (__bss_end, .)
+ 0x00004d16 __data_load_start = LOADADDR (.data)
+ 0x00004ed6 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008003ae 0x0
+ 0x008003ae PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008003ae PROVIDE (__noinit_end, .)
+ 0x008003ae _end = .
+ 0x008003ae PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x2928
+ *(.stab)
+ .stab 0x00000000 0x6cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006cc 0x750 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x75c (size before relaxing)
+ .stab 0x00000e1c 0x2d0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ 0x330 (size before relaxing)
+ .stab 0x000010ec 0x3cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x5c4 (size before relaxing)
+ .stab 0x000014b8 0x1e0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x1ec (size before relaxing)
+ .stab 0x00001698 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001734 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000017d0 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0xa8 (size before relaxing)
+ .stab 0x0000186c 0xb4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ 0xc0 (size before relaxing)
+ .stab 0x00001920 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x90 (size before relaxing)
+ .stab 0x000019a4 0xe4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00001a88 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001b24 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001ba8 0x6c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x78 (size before relaxing)
+ .stab 0x00001c14 0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0xcc (size before relaxing)
+ .stab 0x00001cd4 0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0xd8 (size before relaxing)
+ .stab 0x00001da0 0x9c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001e3c 0x150 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x15c (size before relaxing)
+ .stab 0x00001f8c 0x1b0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x1bc (size before relaxing)
+ .stab 0x0000213c 0x294 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x2a0 (size before relaxing)
+ .stab 0x000023d0 0x114 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x120 (size before relaxing)
+ .stab 0x000024e4 0x1e0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x1ec (size before relaxing)
+ .stab 0x000026c4 0x12c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ 0x138 (size before relaxing)
+ .stab 0x000027f0 0x60 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x6c (size before relaxing)
+ .stab 0x00002850 0xd8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0xe4 (size before relaxing)
+
+.stabstr 0x00000000 0xd28
+ *(.stabstr)
+ .stabstr 0x00000000 0xd28 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Release/ESS1995test_328p.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+CB_ACmode obj/Release/main.o
+CB_ADCrate obj/Release/main.o
+CB_ADPext obj/Release/main.o
+CB_BUZfreq obj/Release/main.o
+CB_DCfs obj/Release/main.o
+CB_EXTdiode obj/Release/main.o
+CB_FREQinprest obj/Release/main.o
+CB_FREQrange obj/Release/main.o
+CB_LPFbw obj/Release/main.o
+CB_OPconf obj/Release/main.o
+CB_PCALmode obj/Release/main.o
+CB_PEAKmode obj/Release/main.o
+CB_SHBP obj/Release/main.o
+CB_VARCrange obj/Release/main.o
+CB_function obj/Release/main.o
+HardwareSerial::HardwareSerial(ring_buffer*, ring_buffer*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::HardwareSerial(ring_buffer*, ring_buffer*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char volatile*, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::available() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::begin(unsigned long) obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::end() obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::flush() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::peek() obj/Release/arduinoSrc1_0/HardwareSerial.o
+HardwareSerial::read() obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::write(unsigned char) obj/Release/arduinoSrc1_0/HardwareSerial.o
+IPAddress::IPAddress() obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress() obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::IPAddress(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator=(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator=(unsigned long) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::operator==(unsigned char const*) obj/Release/arduinoSrc1_0/IPAddress.o
+IPAddress::printTo(Print&) const obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(Printable const&) obj/Release/arduinoSrc1_0/Print.o
+Print::print(String const&) obj/Release/arduinoSrc1_0/Print.o
+Print::print(__FlashStringHelper const*) obj/Release/arduinoSrc1_0/Print.o
+Print::print(char const*) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/adapticsBT.o
+Print::print(char) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(double, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(unsigned char, int) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+Print::print(unsigned int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::print(unsigned long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::printFloat(double, unsigned char) obj/Release/arduinoSrc1_0/Print.o
+Print::printNumber(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/Print.o
+Print::println() obj/Release/arduinoSrc1_0/Print.o
+Print::println(Printable const&) obj/Release/arduinoSrc1_0/Print.o
+Print::println(String const&) obj/Release/arduinoSrc1_0/Print.o
+Print::println(__FlashStringHelper const*) obj/Release/arduinoSrc1_0/Print.o
+Print::println(char const*) obj/Release/arduinoSrc1_0/Print.o
+Print::println(char) obj/Release/arduinoSrc1_0/Print.o
+Print::println(double, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned char, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned int, int) obj/Release/arduinoSrc1_0/Print.o
+Print::println(unsigned long, int) obj/Release/arduinoSrc1_0/Print.o
+Print::write(char const*) obj/Release/arduinoSrc1_0/Print.o
+Print::write(unsigned char const*, unsigned int) obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+SCLKcycle_R() obj/Release/main.o
+SCLKcycle_W() obj/Release/main.o
+Serial obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+Stream::find(char*) obj/Release/arduinoSrc1_0/Stream.o
+Stream::find(char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::findUntil(char*, char*) obj/Release/arduinoSrc1_0/Stream.o
+Stream::findUntil(char*, unsigned int, char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseFloat() obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseFloat(char) obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseInt() obj/Release/arduinoSrc1_0/Stream.o
+Stream::parseInt(char) obj/Release/arduinoSrc1_0/Stream.o
+Stream::peekNextDigit() obj/Release/arduinoSrc1_0/Stream.o
+Stream::readBytes(char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::readBytesUntil(char, char*, unsigned int) obj/Release/arduinoSrc1_0/Stream.o
+Stream::setTimeout(unsigned long) obj/Release/arduinoSrc1_0/Stream.o
+Stream::timedPeek() obj/Release/arduinoSrc1_0/Stream.o
+Stream::timedRead() obj/Release/arduinoSrc1_0/Stream.o
+String::String(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::String(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::String(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::String(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::String(char) obj/Release/arduinoSrc1_0/WString.o
+String::String(char) obj/Release/arduinoSrc1_0/WString.o
+String::String(int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned int, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::String(unsigned long, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::changeBuffer(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::charAt(unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::compareTo(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::concat(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char const*, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(char) obj/Release/arduinoSrc1_0/WString.o
+String::concat(int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(long) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned char) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::concat(unsigned long) obj/Release/arduinoSrc1_0/WString.o
+String::copy(char const*, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::endsWith(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::equals(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::equals(char const*) const obj/Release/arduinoSrc1_0/WString.o
+String::equalsIgnoreCase(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::getBytes(unsigned char*, unsigned int, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(char) const obj/Release/arduinoSrc1_0/WString.o
+String::indexOf(char, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::invalidate() obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(char) const obj/Release/arduinoSrc1_0/WString.o
+String::lastIndexOf(char, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::operator<(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator<=(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator=(String const&) obj/Release/arduinoSrc1_0/WString.o
+String::operator=(char const*) obj/Release/arduinoSrc1_0/WString.o
+String::operator>(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator>=(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::operator[](unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::operator[](unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/Print.o
+String::replace(String const&, String const&) obj/Release/arduinoSrc1_0/WString.o
+String::replace(char, char) obj/Release/arduinoSrc1_0/WString.o
+String::reserve(unsigned int) obj/Release/arduinoSrc1_0/WString.o
+String::setCharAt(unsigned int, char) obj/Release/arduinoSrc1_0/WString.o
+String::startsWith(String const&) const obj/Release/arduinoSrc1_0/WString.o
+String::startsWith(String const&, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::substring(unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::substring(unsigned int, unsigned int) const obj/Release/arduinoSrc1_0/WString.o
+String::toInt() const obj/Release/arduinoSrc1_0/WString.o
+String::toLowerCase() obj/Release/arduinoSrc1_0/WString.o
+String::toUpperCase() obj/Release/arduinoSrc1_0/WString.o
+String::trim() obj/Release/arduinoSrc1_0/WString.o
+String::~String() obj/Release/arduinoSrc1_0/WString.o
+String::~String() obj/Release/arduinoSrc1_0/WString.o
+__addsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__bad_interrupt /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__brkval /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__bss_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__clz_tab /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+__clzsi2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+__ctors_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__ctype_isfalse /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+__ctype_istrue /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+__cxa_guard_abort obj/Release/arduinoSrc1_0/new.o
+__cxa_guard_acquire obj/Release/arduinoSrc1_0/new.o
+__cxa_guard_release obj/Release/arduinoSrc1_0/new.o
+__cxa_pure_virtual obj/Release/arduinoSrc1_0/new.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__data_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__divmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+__divsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__do_clear_bss /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/WInterrupts.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+__do_copy_data /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/WString.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+__do_global_ctors /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduinoSrc1_0/IPAddress.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__epilogue_restores__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__fixunssfsi /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__floatsisf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc1_0/Stream.o
+ obj/Release/arduinoSrc1_0/Print.o
+__floatunsisf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__flp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__fpcmp_parts_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+__gesf2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+__heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__heap_start /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__init /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__ltsf2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__malloc_heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+__malloc_heap_start /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+__malloc_margin /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+__mulsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc1_0/Stream.o
+ obj/Release/arduinoSrc1_0/Print.o
+__mulsi3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mulsi3.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/WMath.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Stream.o
+__mulsi_const_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+__pack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc1_0/Print.o
+__tablejump2__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/arduinoSrc1_0/Print.o
+ obj/Release/arduinoSrc1_0/HardwareSerial.o
+__unpack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 obj/Release/arduinoSrc1_0/WInterrupts.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_16 obj/Release/arduinoSrc1_0/wiring.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_18 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_19 obj/Release/arduinoSrc1_0/HardwareSerial.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_2 obj/Release/arduinoSrc1_0/WInterrupts.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_7 obj/Release/arduinoSrc1_0/Tone.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+advertise() obj/Release/adapticsBT.o
+ obj/Release/main.o
+analogRead obj/Release/arduinoSrc1_0/wiring_analog.o
+analogReference obj/Release/arduinoSrc1_0/wiring_analog.o
+analogWrite obj/Release/arduinoSrc1_0/wiring_analog.o
+analog_reference obj/Release/arduinoSrc1_0/wiring_analog.o
+atol /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc1_0/WString.o
+attachInterrupt obj/Release/arduinoSrc1_0/WInterrupts.o
+connected obj/Release/main.o
+data obj/Release/main.o
+delay obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+delayMicroseconds obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/main.o
+detachInterrupt obj/Release/arduinoSrc1_0/WInterrupts.o
+digitalRead obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_shift.o
+ obj/Release/main.o
+digitalWrite obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_shift.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/main.o
+digital_pin_to_bit_mask_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+digital_pin_to_port_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+ obj/Release/arduinoSrc1_0/Tone.o
+digital_pin_to_timer_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+disableTimer(unsigned char) obj/Release/arduinoSrc1_0/Tone.o
+exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+free /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/new.o
+ obj/Release/arduinoSrc1_0/WString.o
+init obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/main.o
+isspace /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc1_0/WString.o
+itoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+ltoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+makeWord(unsigned char, unsigned char) obj/Release/arduinoSrc1_0/WMath.o
+makeWord(unsigned int) obj/Release/arduinoSrc1_0/WMath.o
+malloc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/new.o
+map(long, long, long, long, long) obj/Release/arduinoSrc1_0/WMath.o
+memcmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcmp.o)
+ obj/Release/arduinoSrc1_0/IPAddress.o
+memcpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o
+memmove /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(memmove.o)
+ obj/Release/arduinoSrc1_0/WString.o
+micros obj/Release/arduinoSrc1_0/wiring.o
+millis obj/Release/arduinoSrc1_0/wiring.o
+ obj/Release/arduinoSrc1_0/Stream.o
+noTone(unsigned char) obj/Release/arduinoSrc1_0/Tone.o
+operator delete(void*) obj/Release/arduinoSrc1_0/new.o
+operator new(unsigned int) obj/Release/arduinoSrc1_0/new.o
+operator+(StringSumHelper const&, String const&) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, char const*) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, char) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, int) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, long) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned char) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned int) obj/Release/arduinoSrc1_0/WString.o
+operator+(StringSumHelper const&, unsigned long) obj/Release/arduinoSrc1_0/WString.o
+packetSize obj/Release/main.o
+pinMode obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_analog.o
+ obj/Release/arduinoSrc1_0/Tone.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+port_to_input_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/wiring_pulse.o
+port_to_mode_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+port_to_output_PGM obj/Release/arduinoSrc1_0/wiring_digital.o
+ obj/Release/arduinoSrc1_0/Tone.o
+pulseIn obj/Release/arduinoSrc1_0/wiring_pulse.o
+random /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+random(long) obj/Release/arduinoSrc1_0/WMath.o
+random(long, long) obj/Release/arduinoSrc1_0/WMath.o
+randomSeed(unsigned int) obj/Release/arduinoSrc1_0/WMath.o
+random_r /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+readByte() obj/Release/main.o
+realloc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc1_0/WString.o
+rx_buffer obj/Release/arduinoSrc1_0/HardwareSerial.o
+serialEvent() obj/Release/arduinoSrc1_0/HardwareSerial.o
+serialEventRun() obj/Release/arduinoSrc1_0/HardwareSerial.o
+setupBlueTooth() obj/Release/adapticsBT.o
+ obj/Release/main.o
+shiftIn obj/Release/arduinoSrc1_0/wiring_shift.o
+shiftOut obj/Release/arduinoSrc1_0/wiring_shift.o
+srandom /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc1_0/WMath.o
+startRead() obj/Release/main.o
+startWrite() obj/Release/main.o
+store_char(unsigned char, ring_buffer*) obj/Release/arduinoSrc1_0/HardwareSerial.o
+strchr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strcmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strcpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strncmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strncpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strrchr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+strrev /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(itoa.o)
+strstr /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc1_0/WString.o
+timer0_millis obj/Release/arduinoSrc1_0/wiring.o
+timer0_overflow_count obj/Release/arduinoSrc1_0/wiring.o
+timer0_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer0_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer0_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+timer1_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer1_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer1_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+timer2_pin_mask obj/Release/arduinoSrc1_0/Tone.o
+timer2_pin_port obj/Release/arduinoSrc1_0/Tone.o
+timer2_toggle_count obj/Release/arduinoSrc1_0/Tone.o
+tolower /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc1_0/WString.o
+tone(unsigned char, unsigned int, unsigned long) obj/Release/arduinoSrc1_0/Tone.o
+toupper /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc1_0/WString.o
+tx_buffer obj/Release/arduinoSrc1_0/HardwareSerial.o
+ultoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+utoa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(utoa.o)
+ obj/Release/arduinoSrc1_0/WString.o
+vtable for HardwareSerial obj/Release/arduinoSrc1_0/HardwareSerial.o
+vtable for IPAddress obj/Release/arduinoSrc1_0/IPAddress.o
+vtable for Print obj/Release/arduinoSrc1_0/Print.o
+vtable for Printable obj/Release/arduinoSrc1_0/IPAddress.o
+vtable for Stream obj/Release/arduinoSrc1_0/HardwareSerial.o
+writeByte(unsigned char) obj/Release/main.o
+writeDMM() obj/Release/main.o
+writeStartBit() obj/Release/main.o
+writeStopBit() obj/Release/main.o
diff --git a/ESS1995test_328p/electic.h b/ESS1995test_328p/electic.h
index 326f900..6fcaf73 100644
--- a/ESS1995test_328p/electic.h
+++ b/ESS1995test_328p/electic.h
@@ -14,7 +14,7 @@
*/
-#include <WProgram.h> //main Arduino header file
+#include <Arduino.h> //main Arduino header file
#include "adapticsBT.h"
#define DATA_NEW 2
diff --git a/ESS1995test_328p/main.cpp b/ESS1995test_328p/main.cpp
index 66dd792..1494a05 100644
--- a/ESS1995test_328p/main.cpp
+++ b/ESS1995test_328p/main.cpp
@@ -9,11 +9,13 @@
#include "electic.h"
+/*
extern "C" void __cxa_pure_virtual()
{
cli();
for (;;);
}
+*/
int main(){
diff --git a/ESS1995test_328p/obj/Release/adapticsBT.o b/ESS1995test_328p/obj/Release/adapticsBT.o
new file mode 100644
index 0000000..3af99a1
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/adapticsBT.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/CDC.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/CDC.o
new file mode 100644
index 0000000..982717d
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/CDC.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/HID.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/HID.o
new file mode 100644
index 0000000..8f80213
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/HID.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/HardwareSerial.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/HardwareSerial.o
new file mode 100644
index 0000000..d21ffd0
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/HardwareSerial.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/IPAddress.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/IPAddress.o
new file mode 100644
index 0000000..1f5d4b0
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/IPAddress.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/Print.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Print.o
new file mode 100644
index 0000000..d4a6ed2
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Print.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/Stream.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Stream.o
new file mode 100644
index 0000000..ccbdb47
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Stream.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/Tone.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Tone.o
new file mode 100644
index 0000000..ee4ec93
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/Tone.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/USBCore.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/USBCore.o
new file mode 100644
index 0000000..58809be
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/USBCore.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/WInterrupts.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WInterrupts.o
new file mode 100644
index 0000000..106d971
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WInterrupts.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/WMath.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WMath.o
new file mode 100644
index 0000000..3de47b2
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WMath.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/WString.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WString.o
new file mode 100644
index 0000000..9a4a73b
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/WString.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/new.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/new.o
new file mode 100644
index 0000000..fdeab58
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/new.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring.o
new file mode 100644
index 0000000..8b01327
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_analog.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_analog.o
new file mode 100644
index 0000000..3057391
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_analog.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_digital.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_digital.o
new file mode 100644
index 0000000..77cb9a1
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_digital.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_pulse.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_pulse.o
new file mode 100644
index 0000000..6f918b7
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_pulse.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_shift.o b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_shift.o
new file mode 100644
index 0000000..6cdc3ac
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc1_0/wiring_shift.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/main.o b/ESS1995test_328p/obj/Release/main.o
new file mode 100644
index 0000000..95b174a
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/main.o
Binary files differ
diff --git a/arduinoSrc1_0/Arduino.h b/arduinoSrc1_0/Arduino.h
new file mode 100644
index 0000000..ebd374a
--- /dev/null
+++ b/arduinoSrc1_0/Arduino.h
@@ -0,0 +1,214 @@
+#ifndef Arduino_h
+#define Arduino_h
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <avr/pgmspace.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+#include "binary.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+#define HIGH 0x1
+#define LOW 0x0
+
+#define INPUT 0x0
+#define OUTPUT 0x1
+
+#define true 0x1
+#define false 0x0
+
+#define PI 3.1415926535897932384626433832795
+#define HALF_PI 1.5707963267948966192313216916398
+#define TWO_PI 6.283185307179586476925286766559
+#define DEG_TO_RAD 0.017453292519943295769236907684886
+#define RAD_TO_DEG 57.295779513082320876798154814105
+
+#define SERIAL 0x0
+#define DISPLAY 0x1
+
+#define LSBFIRST 0
+#define MSBFIRST 1
+
+#define CHANGE 1
+#define FALLING 2
+#define RISING 3
+
+#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
+#define DEFAULT 0
+#define EXTERNAL 1
+#define INTERNAL 2
+#else
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+#define INTERNAL1V1 2
+#define INTERNAL2V56 3
+#else
+#define INTERNAL 3
+#endif
+#define DEFAULT 1
+#define EXTERNAL 0
+#endif
+
+// undefine stdlib's abs if encountered
+#ifdef abs
+#undef abs
+#endif
+
+#define min(a,b) ((a)<(b)?(a):(b))
+#define max(a,b) ((a)>(b)?(a):(b))
+#define abs(x) ((x)>0?(x):-(x))
+#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
+#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
+#define radians(deg) ((deg)*DEG_TO_RAD)
+#define degrees(rad) ((rad)*RAD_TO_DEG)
+#define sq(x) ((x)*(x))
+
+#define interrupts() sei()
+#define noInterrupts() cli()
+
+#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
+#define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (F_CPU / 1000L) )
+#define microsecondsToClockCycles(a) ( ((a) * (F_CPU / 1000L)) / 1000L )
+
+#define lowByte(w) ((uint8_t) ((w) & 0xff))
+#define highByte(w) ((uint8_t) ((w) >> 8))
+
+#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
+#define bitSet(value, bit) ((value) |= (1UL << (bit)))
+#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
+#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
+
+
+typedef unsigned int word;
+
+#define bit(b) (1UL << (b))
+
+typedef uint8_t boolean;
+typedef uint8_t byte;
+
+void init(void);
+
+void pinMode(uint8_t, uint8_t);
+void digitalWrite(uint8_t, uint8_t);
+int digitalRead(uint8_t);
+int analogRead(uint8_t);
+void analogReference(uint8_t mode);
+void analogWrite(uint8_t, int);
+
+unsigned long millis(void);
+unsigned long micros(void);
+void delay(unsigned long);
+void delayMicroseconds(unsigned int us);
+unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
+
+void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
+uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
+
+void attachInterrupt(uint8_t, void (*)(void), int mode);
+void detachInterrupt(uint8_t);
+
+void setup(void);
+void loop(void);
+
+// Get the bit location within the hardware port of the given virtual pin.
+// This comes from the pins_*.c file for the active board configuration.
+
+#define analogInPinToBit(P) (P)
+
+// On the ATmega1280, the addresses of some of the port registers are
+// greater than 255, so we can't store them in uint8_t's.
+extern const uint16_t PROGMEM port_to_mode_PGM[];
+extern const uint16_t PROGMEM port_to_input_PGM[];
+extern const uint16_t PROGMEM port_to_output_PGM[];
+
+extern const uint8_t PROGMEM digital_pin_to_port_PGM[];
+// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[];
+extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[];
+extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
+
+// Get the bit location within the hardware port of the given virtual pin.
+// This comes from the pins_*.c file for the active board configuration.
+//
+// These perform slightly better as macros compared to inline functions
+//
+#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) )
+#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) )
+#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) )
+#define analogInPinToBit(P) (P)
+#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) )
+#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) )
+#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) )
+
+#define NOT_A_PIN 0
+#define NOT_A_PORT 0
+
+#ifdef ARDUINO_MAIN
+#define PA 1
+#define PB 2
+#define PC 3
+#define PD 4
+#define PE 5
+#define PF 6
+#define PG 7
+#define PH 8
+#define PJ 10
+#define PK 11
+#define PL 12
+#endif
+
+#define NOT_ON_TIMER 0
+#define TIMER0A 1
+#define TIMER0B 2
+#define TIMER1A 3
+#define TIMER1B 4
+#define TIMER2 5
+#define TIMER2A 6
+#define TIMER2B 7
+
+#define TIMER3A 8
+#define TIMER3B 9
+#define TIMER3C 10
+#define TIMER4A 11
+#define TIMER4B 12
+#define TIMER4C 13
+#define TIMER4D 14
+#define TIMER5A 15
+#define TIMER5B 16
+#define TIMER5C 17
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#ifdef __cplusplus
+#include "WCharacter.h"
+#include "WString.h"
+#include "HardwareSerial.h"
+
+uint16_t makeWord(uint16_t w);
+uint16_t makeWord(byte h, byte l);
+
+#define word(...) makeWord(__VA_ARGS__)
+
+unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
+
+void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
+void noTone(uint8_t _pin);
+
+// WMath prototypes
+long random(long);
+long random(long, long);
+void randomSeed(unsigned int);
+long map(long, long, long, long, long);
+
+#endif
+
+#include "pins_arduino.h"
+
+#endif \ No newline at end of file
diff --git a/arduinoSrc1_0/CDC.cpp b/arduinoSrc1_0/CDC.cpp
new file mode 100644
index 0000000..14a0eae
--- /dev/null
+++ b/arduinoSrc1_0/CDC.cpp
@@ -0,0 +1,175 @@
+
+
+/* Copyright (c) 2011, Peter Barrett
+**
+** Permission to use, copy, modify, and/or distribute this software for
+** any purpose with or without fee is hereby granted, provided that the
+** above copyright notice and this permission notice appear in all copies.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+** SOFTWARE.
+*/
+
+#include "Platform.h"
+#include "USBAPI.h"
+#include <avr/wdt.h>
+
+#if defined(USBCON)
+#ifdef CDC_ENABLED
+
+void Reboot()
+{
+ USB.detach();
+ cli();
+ asm volatile("jmp 0x7800"); // jump to bootloader - DiskLoader takes up last 2 kB
+}
+
+typedef struct
+{
+ u32 dwDTERate;
+ u8 bCharFormat;
+ u8 bParityType;
+ u8 bDataBits;
+ u8 lineState;
+} LineInfo;
+
+static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 };
+
+#define WEAK __attribute__ ((weak))
+
+extern const CDCDescriptor _cdcInterface PROGMEM;
+const CDCDescriptor _cdcInterface =
+{
+ D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1),
+
+ // CDC communication interface
+ D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0),
+ D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd)
+ D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not)
+ D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported
+ D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0
+ D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40),
+
+ // CDC data interface
+ D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0),
+ D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0),
+ D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0)
+};
+
+int WEAK CDC_GetInterface(u8* interfaceNum)
+{
+ interfaceNum[0] += 2; // uses 2
+ return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface));
+}
+
+bool WEAK CDC_Setup(Setup& setup)
+{
+ u8 r = setup.bRequest;
+ u8 requestType = setup.bmRequestType;
+
+ if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType)
+ {
+ if (CDC_GET_LINE_CODING == r)
+ {
+ USB_SendControl(0,(void*)&_usbLineInfo,7);
+ return true;
+ }
+ }
+
+ if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType)
+ {
+ if (CDC_SET_LINE_CODING == r)
+ {
+ USB_RecvControl((void*)&_usbLineInfo,7);
+ return true;
+ }
+
+ if (CDC_SET_CONTROL_LINE_STATE == r)
+ {
+ if (0 != _usbLineInfo.lineState && 1200 == _usbLineInfo.dwDTERate) // auto-reset is triggered when the port, already open at 1200 bps, is closed
+ Reboot();
+ _usbLineInfo.lineState = setup.wValueL;
+ return true;
+ }
+ }
+ return false;
+}
+
+
+int _serialPeek = -1;
+void Serial_::begin(uint16_t baud_count)
+{
+}
+
+void Serial_::end(void)
+{
+}
+
+int Serial_::available(void)
+{
+ u8 avail = USB_Available(CDC_RX);
+ if (_serialPeek != -1)
+ avail++;
+ return avail;
+}
+
+// peek is nasty
+int Serial_::peek(void)
+{
+ if (_serialPeek == -1)
+ _serialPeek = read();
+ return _serialPeek;
+}
+
+int Serial_::read(void)
+{
+ int c;
+ if (_serialPeek != -1)
+ {
+ c = _serialPeek;
+ _serialPeek = -1;
+ } else {
+ c = USB_Recv(CDC_RX);
+ }
+ return c;
+}
+
+void Serial_::flush(void)
+{
+ USB_Flush(CDC_TX);
+}
+
+size_t Serial_::write(uint8_t c)
+{
+ /* only try to send bytes if the high-level CDC connection itself
+ is open (not just the pipe) - the OS should set lineState when the port
+ is opened and clear lineState when the port is closed.
+ bytes sent before the user opens the connection or after
+ the connection is closed are lost - just like with a UART. */
+
+ // TODO - ZE - check behavior on different OSes and test what happens if an
+ // open connection isn't broken cleanly (cable is yanked out, host dies
+ // or locks up, or host virtual serial port hangs)
+ if (_usbLineInfo.lineState > 0) {
+ int r = USB_Send(CDC_TX,&c,1);
+ if (r > 0) {
+ return r;
+ } else {
+ setWriteError();
+ return 0;
+ }
+ }
+ setWriteError();
+ return 0;
+}
+
+Serial_ Serial;
+
+#endif
+#endif /* if defined(USBCON) */ \ No newline at end of file
diff --git a/arduinoSrc1_0/Client.h b/arduinoSrc1_0/Client.h
new file mode 100644
index 0000000..ea13483
--- /dev/null
+++ b/arduinoSrc1_0/Client.h
@@ -0,0 +1,26 @@
+#ifndef client_h
+#define client_h
+#include "Print.h"
+#include "Stream.h"
+#include "IPAddress.h"
+
+class Client : public Stream {
+
+public:
+ virtual int connect(IPAddress ip, uint16_t port) =0;
+ virtual int connect(const char *host, uint16_t port) =0;
+ virtual size_t write(uint8_t) =0;
+ virtual size_t write(const uint8_t *buf, size_t size) =0;
+ virtual int available() = 0;
+ virtual int read() = 0;
+ virtual int read(uint8_t *buf, size_t size) = 0;
+ virtual int peek() = 0;
+ virtual void flush() = 0;
+ virtual void stop() = 0;
+ virtual uint8_t connected() = 0;
+ virtual operator bool() = 0;
+protected:
+ uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
+};
+
+#endif
diff --git a/arduinoSrc1_0/HID.cpp b/arduinoSrc1_0/HID.cpp
new file mode 100644
index 0000000..8ed1566
--- /dev/null
+++ b/arduinoSrc1_0/HID.cpp
@@ -0,0 +1,446 @@
+
+
+/* Copyright (c) 2011, Peter Barrett
+**
+** Permission to use, copy, modify, and/or distribute this software for
+** any purpose with or without fee is hereby granted, provided that the
+** above copyright notice and this permission notice appear in all copies.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+** SOFTWARE.
+*/
+
+#include "Platform.h"
+#include "USBAPI.h"
+#include "USBDesc.h"
+
+#if defined(USBCON)
+#ifdef HID_ENABLED
+
+//#define RAWHID_ENABLED
+
+// Singletons for mouse and keyboard
+
+Mouse_ Mouse;
+Keyboard_ Keyboard;
+
+//================================================================================
+//================================================================================
+
+// HID report descriptor
+
+#define LSB(_x) ((_x) & 0xFF)
+#define MSB(_x) ((_x) >> 8)
+
+#define RAWHID_USAGE_PAGE 0xFFC0
+#define RAWHID_USAGE 0x0C00
+#define RAWHID_TX_SIZE 64
+#define RAWHID_RX_SIZE 64
+
+extern const u8 _hidReportDescriptor[] PROGMEM;
+const u8 _hidReportDescriptor[] = {
+
+ // Mouse
+ 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54
+ 0x09, 0x02, // USAGE (Mouse)
+ 0xa1, 0x01, // COLLECTION (Application)
+ 0x09, 0x01, // USAGE (Pointer)
+ 0xa1, 0x00, // COLLECTION (Physical)
+ 0x85, 0x01, // REPORT_ID (1)
+ 0x05, 0x09, // USAGE_PAGE (Button)
+ 0x19, 0x01, // USAGE_MINIMUM (Button 1)
+ 0x29, 0x03, // USAGE_MAXIMUM (Button 3)
+ 0x15, 0x00, // LOGICAL_MINIMUM (0)
+ 0x25, 0x01, // LOGICAL_MAXIMUM (1)
+ 0x95, 0x03, // REPORT_COUNT (3)
+ 0x75, 0x01, // REPORT_SIZE (1)
+ 0x81, 0x02, // INPUT (Data,Var,Abs)
+ 0x95, 0x01, // REPORT_COUNT (1)
+ 0x75, 0x05, // REPORT_SIZE (5)
+ 0x81, 0x03, // INPUT (Cnst,Var,Abs)
+ 0x05, 0x01, // USAGE_PAGE (Generic Desktop)
+ 0x09, 0x30, // USAGE (X)
+ 0x09, 0x31, // USAGE (Y)
+ 0x09, 0x38, // USAGE (Wheel)
+ 0x15, 0x81, // LOGICAL_MINIMUM (-127)
+ 0x25, 0x7f, // LOGICAL_MAXIMUM (127)
+ 0x75, 0x08, // REPORT_SIZE (8)
+ 0x95, 0x03, // REPORT_COUNT (3)
+ 0x81, 0x06, // INPUT (Data,Var,Rel)
+ 0xc0, // END_COLLECTION
+ 0xc0, // END_COLLECTION
+
+ // Keyboard
+ 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47
+ 0x09, 0x06, // USAGE (Keyboard)
+ 0xa1, 0x01, // COLLECTION (Application)
+ 0x85, 0x02, // REPORT_ID (2)
+ 0x05, 0x07, // USAGE_PAGE (Keyboard)
+
+ 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
+ 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
+ 0x15, 0x00, // LOGICAL_MINIMUM (0)
+ 0x25, 0x01, // LOGICAL_MAXIMUM (1)
+ 0x75, 0x01, // REPORT_SIZE (1)
+
+ 0x95, 0x08, // REPORT_COUNT (8)
+ 0x81, 0x02, // INPUT (Data,Var,Abs)
+ 0x95, 0x01, // REPORT_COUNT (1)
+ 0x75, 0x08, // REPORT_SIZE (8)
+ 0x81, 0x03, // INPUT (Cnst,Var,Abs)
+
+ 0x95, 0x06, // REPORT_COUNT (6)
+ 0x75, 0x08, // REPORT_SIZE (8)
+ 0x15, 0x00, // LOGICAL_MINIMUM (0)
+ 0x25, 0x65, // LOGICAL_MAXIMUM (101)
+ 0x05, 0x07, // USAGE_PAGE (Keyboard)
+
+ 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))
+ 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)
+ 0x81, 0x00, // INPUT (Data,Ary,Abs)
+ 0xc0, // END_COLLECTION
+
+#if RAWHID_ENABLED
+ // RAW HID
+ 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30
+ 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE),
+
+ 0xA1, 0x01, // Collection 0x01
+ 0x85, 0x03, // REPORT_ID (3)
+ 0x75, 0x08, // report size = 8 bits
+ 0x15, 0x00, // logical minimum = 0
+ 0x26, 0xFF, 0x00, // logical maximum = 255
+
+ 0x95, 64, // report count TX
+ 0x09, 0x01, // usage
+ 0x81, 0x02, // Input (array)
+
+ 0x95, 64, // report count RX
+ 0x09, 0x02, // usage
+ 0x91, 0x02, // Output (array)
+ 0xC0 // end collection
+#endif
+};
+
+extern const HIDDescriptor _hidInterface PROGMEM;
+const HIDDescriptor _hidInterface =
+{
+ D_INTERFACE(HID_INTERFACE,1,3,0,0),
+ D_HIDREPORT(sizeof(_hidReportDescriptor)),
+ D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01)
+};
+
+//================================================================================
+//================================================================================
+// Driver
+
+u8 _hid_protocol = 1;
+u8 _hid_idle = 1;
+
+#define WEAK __attribute__ ((weak))
+#define WEAK
+
+int WEAK HID_GetInterface(u8* interfaceNum)
+{
+ interfaceNum[0] += 1; // uses 1
+ return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface));
+}
+
+int WEAK HID_GetDescriptor(int i)
+{
+ return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor));
+}
+
+void WEAK HID_SendReport(u8 id, const void* data, int len)
+{
+ USB_Send(HID_TX, &id, 1);
+ USB_Send(HID_TX | TRANSFER_RELEASE,data,len);
+}
+
+bool WEAK HID_Setup(Setup& setup)
+{
+ u8 r = setup.bRequest;
+ u8 requestType = setup.bmRequestType;
+ if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType)
+ {
+ if (HID_GET_REPORT == r)
+ {
+ //HID_GetReport();
+ return true;
+ }
+ if (HID_GET_PROTOCOL == r)
+ {
+ //Send8(_hid_protocol); // TODO
+ return true;
+ }
+ }
+
+ if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType)
+ {
+ if (HID_SET_PROTOCOL == r)
+ {
+ _hid_protocol = setup.wValueL;
+ return true;
+ }
+
+ if (HID_SET_IDLE == r)
+ {
+ _hid_idle = setup.wValueL;
+ return true;
+ }
+ }
+ return false;
+}
+
+//================================================================================
+//================================================================================
+// Mouse
+
+Mouse_::Mouse_() : _buttons(0)
+{
+}
+
+void Mouse_::click(uint8_t b)
+{
+ _buttons = b;
+ move(0,0,0);
+ _buttons = 0;
+ move(0,0,0);
+}
+
+void Mouse_::move(signed char x, signed char y, signed char wheel)
+{
+ u8 m[4];
+ m[0] = _buttons;
+ m[1] = x;
+ m[2] = y;
+ m[3] = wheel;
+ HID_SendReport(1,m,4);
+}
+
+void Mouse_::buttons(uint8_t b)
+{
+ if (b != _buttons)
+ {
+ _buttons = b;
+ move(0,0,0);
+ }
+}
+
+void Mouse_::press(uint8_t b)
+{
+ buttons(_buttons | b);
+}
+
+void Mouse_::release(uint8_t b)
+{
+ buttons(_buttons & ~b);
+}
+
+bool Mouse_::isPressed(uint8_t b)
+{
+ if (b & _buttons > 0)
+ return true;
+ return false;
+}
+
+//================================================================================
+//================================================================================
+// Keyboard
+
+Keyboard_::Keyboard_() : _keyMap(0)
+{
+}
+
+void Keyboard_::sendReport(KeyReport* keys)
+{
+ HID_SendReport(2,keys,sizeof(KeyReport));
+}
+
+void Keyboard_::setKeyMap(KeyMap* keyMap)
+{
+ _keyMap = keyMap;
+}
+
+extern
+const uint8_t _asciimap[128] PROGMEM;
+
+#define SHIFT 0x80
+const uint8_t _asciimap[128] =
+{
+ 0x00, // NUL
+ 0x00, // SOH
+ 0x00, // STX
+ 0x00, // ETX
+ 0x00, // EOT
+ 0x00, // ENQ
+ 0x00, // ACK
+ 0x00, // BEL
+ 0x2a, // BS Backspace
+ 0x2b, // TAB Tab
+ 0x28, // LF Enter
+ 0x00, // VT
+ 0x00, // FF
+ 0x00, // CR
+ 0x00, // SO
+ 0x00, // SI
+ 0x00, // DEL
+ 0x00, // DC1
+ 0x00, // DC2
+ 0x00, // DC3
+ 0x00, // DC4
+ 0x00, // NAK
+ 0x00, // SYN
+ 0x00, // ETB
+ 0x00, // CAN
+ 0x00, // EM
+ 0x00, // SUB
+ 0x00, // ESC
+ 0x00, // FS
+ 0x00, // GS
+ 0x00, // RS
+ 0x00, // US
+
+ 0x2c, // ' '
+ 0x1e|SHIFT, // !
+ 0x34|SHIFT, // "
+ 0x20|SHIFT, // #
+ 0x21|SHIFT, // $
+ 0x22|SHIFT, // %
+ 0x24|SHIFT, // &
+ 0x34, // '
+ 0x26|SHIFT, // (
+ 0x27|SHIFT, // )
+ 0x25|SHIFT, // *
+ 0x2e|SHIFT, // +
+ 0x36, // ,
+ 0x2d, // -
+ 0x37, // .
+ 0x38, // /
+ 0x27, // 0
+ 0x1e, // 1
+ 0x1f, // 2
+ 0x20, // 3
+ 0x21, // 4
+ 0x22, // 5
+ 0x23, // 6
+ 0x24, // 7
+ 0x25, // 8
+ 0x26, // 9
+ 0x33|SHIFT, // :
+ 0x33, // ;
+ 0x36|SHIFT, // <
+ 0x2e, // =
+ 0x37|SHIFT, // >
+ 0x38|SHIFT, // ?
+ 0x1f|SHIFT, // @
+ 0x04|SHIFT, // A
+ 0x05|SHIFT, // B
+ 0x06|SHIFT, // C
+ 0x07|SHIFT, // D
+ 0x08|SHIFT, // E
+ 0x09|SHIFT, // F
+ 0x0a|SHIFT, // G
+ 0x0b|SHIFT, // H
+ 0x0c|SHIFT, // I
+ 0x0d|SHIFT, // J
+ 0x0e|SHIFT, // K
+ 0x0f|SHIFT, // L
+ 0x10|SHIFT, // M
+ 0x11|SHIFT, // N
+ 0x12|SHIFT, // O
+ 0x13|SHIFT, // P
+ 0x14|SHIFT, // Q
+ 0x15|SHIFT, // R
+ 0x16|SHIFT, // S
+ 0x17|SHIFT, // T
+ 0x18|SHIFT, // U
+ 0x19|SHIFT, // V
+ 0x1a|SHIFT, // W
+ 0x1b|SHIFT, // X
+ 0x1c|SHIFT, // Y
+ 0x1d|SHIFT, // Z
+ 0x2f, // [
+ 0x31, // bslash
+ 0x30, // ]
+ 0x23|SHIFT, // ^
+ 0x2d|SHIFT, // _
+ 0x35, // `
+ 0x04, // a
+ 0x05, // b
+ 0x06, // c
+ 0x07, // d
+ 0x08, // e
+ 0x09, // f
+ 0x0a, // g
+ 0x0b, // h
+ 0x0c, // i
+ 0x0d, // j
+ 0x0e, // k
+ 0x0f, // l
+ 0x10, // m
+ 0x11, // n
+ 0x12, // o
+ 0x13, // p
+ 0x14, // q
+ 0x15, // r
+ 0x16, // s
+ 0x17, // t
+ 0x18, // u
+ 0x19, // v
+ 0x1a, // w
+ 0x1b, // x
+ 0x1c, // y
+ 0x1d, // z
+ 0x2f|SHIFT, //
+ 0x31|SHIFT, // |
+ 0x30|SHIFT, // }
+ 0x35|SHIFT, // ~
+ 0 // DEL
+};
+
+uint8_t USBPutChar(uint8_t c);
+size_t Keyboard_::write(uint8_t c)
+{
+ // Keydown
+ {
+ KeyReport keys = {0};
+ if (_keyMap)
+ _keyMap->charToKey(c,&keys);
+ else
+ {
+ if (c >= 128) {
+ setWriteError();
+ return 0;
+ }
+ c = pgm_read_byte(_asciimap + c);
+ if (!c) {
+ setWriteError();
+ return 0;
+ }
+ if (c & 0x80)
+ {
+ keys.modifiers |= KEY_MODIFIER_LEFT_SHIFT;
+ c &= 0x7F;
+ }
+ keys.keys[0] = c;
+ }
+ sendReport(&keys);
+ }
+ // Keyup
+ {
+ KeyReport keys = {0};
+ sendReport(&keys);
+ }
+ return 1;
+}
+
+#endif
+
+#endif /* if defined(USBCON) */ \ No newline at end of file
diff --git a/arduinoSrc1_0/HardwareSerial.cpp b/arduinoSrc1_0/HardwareSerial.cpp
new file mode 100644
index 0000000..1b1fa71
--- /dev/null
+++ b/arduinoSrc1_0/HardwareSerial.cpp
@@ -0,0 +1,424 @@
+/*
+ HardwareSerial.cpp - Hardware serial library for Wiring
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Modified 23 November 2006 by David A. Mellis
+ Modified 28 September 2010 by Mark Sproul
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include "Arduino.h"
+#include "wiring_private.h"
+
+// this next line disables the entire HardwareSerial.cpp,
+// this is so I can support Attiny series and any other chip without a uart
+#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
+
+#include "HardwareSerial.h"
+
+// Define constants and variables for buffering incoming serial data. We're
+// using a ring buffer (I think), in which head is the index of the location
+// to which to write the next incoming character and tail is the index of the
+// location from which to read.
+#if (RAMEND < 1000)
+ #define SERIAL_BUFFER_SIZE 16
+#else
+ #define SERIAL_BUFFER_SIZE 64
+#endif
+
+struct ring_buffer
+{
+ unsigned char buffer[SERIAL_BUFFER_SIZE];
+ volatile int head;
+ volatile int tail;
+};
+
+#if defined(USBCON)
+ ring_buffer rx_buffer = { { 0 }, 0, 0};
+ ring_buffer tx_buffer = { { 0 }, 0, 0};
+#endif
+#if defined(UBRRH) || defined(UBRR0H)
+ ring_buffer rx_buffer = { { 0 }, 0, 0 };
+ ring_buffer tx_buffer = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR1H)
+ ring_buffer rx_buffer1 = { { 0 }, 0, 0 };
+ ring_buffer tx_buffer1 = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR2H)
+ ring_buffer rx_buffer2 = { { 0 }, 0, 0 };
+ ring_buffer tx_buffer2 = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR3H)
+ ring_buffer rx_buffer3 = { { 0 }, 0, 0 };
+ ring_buffer tx_buffer3 = { { 0 }, 0, 0 };
+#endif
+
+inline void store_char(unsigned char c, ring_buffer *buffer)
+{
+ int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE;
+
+ // if we should be storing the received character into the location
+ // just before the tail (meaning that the head would advance to the
+ // current location of the tail), we're about to overflow the buffer
+ // and so we don't write the character or advance the head.
+ if (i != buffer->tail) {
+ buffer->buffer[buffer->head] = c;
+ buffer->head = i;
+ }
+}
+
+#if !defined(USART0_RX_vect) && defined(USART1_RX_vect)
+// do nothing - on the 32u4 the first USART is USART1
+#else
+#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \
+ !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \
+ !defined(SIG_UART_RECV)
+ #error "Don't know what the Data Received vector is called for the first UART"
+#else
+ void serialEvent() __attribute__((weak));
+ void serialEvent() {}
+ #define serialEvent_implemented
+#if defined(USART_RX_vect)
+ SIGNAL(USART_RX_vect)
+#elif defined(SIG_USART0_RECV)
+ SIGNAL(SIG_USART0_RECV)
+#elif defined(SIG_UART0_RECV)
+ SIGNAL(SIG_UART0_RECV)
+#elif defined(USART0_RX_vect)
+ SIGNAL(USART0_RX_vect)
+#elif defined(SIG_UART_RECV)
+ SIGNAL(SIG_UART_RECV)
+#endif
+ {
+ #if defined(UDR0)
+ unsigned char c = UDR0;
+ #elif defined(UDR)
+ unsigned char c = UDR;
+ #else
+ #error UDR not defined
+ #endif
+ store_char(c, &rx_buffer);
+ }
+#endif
+#endif
+
+#if defined(USART1_RX_vect)
+ void serialEvent1() __attribute__((weak));
+ void serialEvent1() {}
+ #define serialEvent1_implemented
+ SIGNAL(USART1_RX_vect)
+ {
+ unsigned char c = UDR1;
+ store_char(c, &rx_buffer1);
+ }
+#elif defined(SIG_USART1_RECV)
+ #error SIG_USART1_RECV
+#endif
+
+#if defined(USART2_RX_vect) && defined(UDR2)
+ void serialEvent2() __attribute__((weak));
+ void serialEvent2() {}
+ #define serialEvent2_implemented
+ SIGNAL(USART2_RX_vect)
+ {
+ unsigned char c = UDR2;
+ store_char(c, &rx_buffer2);
+ }
+#elif defined(SIG_USART2_RECV)
+ #error SIG_USART2_RECV
+#endif
+
+#if defined(USART3_RX_vect) && defined(UDR3)
+ void serialEvent3() __attribute__((weak));
+ void serialEvent3() {}
+ #define serialEvent3_implemented
+ SIGNAL(USART3_RX_vect)
+ {
+ unsigned char c = UDR3;
+ store_char(c, &rx_buffer3);
+ }
+#elif defined(SIG_USART3_RECV)
+ #error SIG_USART3_RECV
+#endif
+
+void serialEventRun(void)
+{
+#ifdef serialEvent_implemented
+ if (Serial.available()) serialEvent();
+#endif
+#ifdef serialEvent1_implemented
+ if (Serial1.available()) serialEvent1();
+#endif
+#ifdef serialEvent2_implemented
+ if (Serial2.available()) serialEvent2();
+#endif
+#ifdef serialEvent3_implemented
+ if (Serial3.available()) serialEvent3();
+#endif
+}
+
+
+#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect)
+// do nothing - on the 32u4 the first USART is USART1
+#else
+#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect)
+ #error "Don't know what the Data Register Empty vector is called for the first UART"
+#else
+#if defined(UART0_UDRE_vect)
+ISR(UART0_UDRE_vect)
+#elif defined(UART_UDRE_vect)
+ISR(UART_UDRE_vect)
+#elif defined(USART0_UDRE_vect)
+ISR(USART0_UDRE_vect)
+#elif defined(USART_UDRE_vect)
+ISR(USART_UDRE_vect)
+#endif
+{
+ if (tx_buffer.head == tx_buffer.tail) {
+ // Buffer empty, so disable interrupts
+#if defined(UCSR0B)
+ cbi(UCSR0B, UDRIE0);
+#else
+ cbi(UCSRB, UDRIE);
+#endif
+ }
+ else {
+ // There is more data in the output buffer. Send the next byte
+ unsigned char c = tx_buffer.buffer[tx_buffer.tail];
+ tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE;
+
+ #if defined(UDR0)
+ UDR0 = c;
+ #elif defined(UDR)
+ UDR = c;
+ #else
+ #error UDR not defined
+ #endif
+ }
+}
+#endif
+#endif
+
+#ifdef USART1_UDRE_vect
+ISR(USART1_UDRE_vect)
+{
+ if (tx_buffer1.head == tx_buffer1.tail) {
+ // Buffer empty, so disable interrupts
+ cbi(UCSR1B, UDRIE1);
+ }
+ else {
+ // There is more data in the output buffer. Send the next byte
+ unsigned char c = tx_buffer1.buffer[tx_buffer1.tail];
+ tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE;
+
+ UDR1 = c;
+ }
+}
+#endif
+
+#ifdef USART2_UDRE_vect
+ISR(USART2_UDRE_vect)
+{
+ if (tx_buffer2.head == tx_buffer2.tail) {
+ // Buffer empty, so disable interrupts
+ cbi(UCSR2B, UDRIE2);
+ }
+ else {
+ // There is more data in the output buffer. Send the next byte
+ unsigned char c = tx_buffer2.buffer[tx_buffer2.tail];
+ tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE;
+
+ UDR2 = c;
+ }
+}
+#endif
+
+#ifdef USART3_UDRE_vect
+ISR(USART3_UDRE_vect)
+{
+ if (tx_buffer3.head == tx_buffer3.tail) {
+ // Buffer empty, so disable interrupts
+ cbi(UCSR3B, UDRIE3);
+ }
+ else {
+ // There is more data in the output buffer. Send the next byte
+ unsigned char c = tx_buffer3.buffer[tx_buffer3.tail];
+ tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE;
+
+ UDR3 = c;
+ }
+}
+#endif
+
+
+// Constructors ////////////////////////////////////////////////////////////////
+
+HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer,
+ volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,
+ volatile uint8_t *ucsra, volatile uint8_t *ucsrb,
+ volatile uint8_t *udr,
+ uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x)
+{
+ _rx_buffer = rx_buffer;
+ _tx_buffer = tx_buffer;
+ _ubrrh = ubrrh;
+ _ubrrl = ubrrl;
+ _ucsra = ucsra;
+ _ucsrb = ucsrb;
+ _udr = udr;
+ _rxen = rxen;
+ _txen = txen;
+ _rxcie = rxcie;
+ _udrie = udrie;
+ _u2x = u2x;
+}
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+void HardwareSerial::begin(unsigned long baud)
+{
+ uint16_t baud_setting;
+ bool use_u2x = true;
+
+#if F_CPU == 16000000UL
+ // hardcoded exception for compatibility with the bootloader shipped
+ // with the Duemilanove and previous boards and the firmware on the 8U2
+ // on the Uno and Mega 2560.
+ if (baud == 57600) {
+ use_u2x = false;
+ }
+#endif
+
+try_again:
+
+ if (use_u2x) {
+ *_ucsra = 1 << _u2x;
+ baud_setting = (F_CPU / 4 / baud - 1) / 2;
+ } else {
+ *_ucsra = 0;
+ baud_setting = (F_CPU / 8 / baud - 1) / 2;
+ }
+
+ if ((baud_setting > 4095) && use_u2x)
+ {
+ use_u2x = false;
+ goto try_again;
+ }
+
+ // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register)
+ *_ubrrh = baud_setting >> 8;
+ *_ubrrl = baud_setting;
+
+ sbi(*_ucsrb, _rxen);
+ sbi(*_ucsrb, _txen);
+ sbi(*_ucsrb, _rxcie);
+ cbi(*_ucsrb, _udrie);
+}
+
+void HardwareSerial::end()
+{
+ // wait for transmission of outgoing data
+ while (_tx_buffer->head != _tx_buffer->tail)
+ ;
+
+ cbi(*_ucsrb, _rxen);
+ cbi(*_ucsrb, _txen);
+ cbi(*_ucsrb, _rxcie);
+ cbi(*_ucsrb, _udrie);
+
+ // clear any received data
+ _rx_buffer->head = _rx_buffer->tail;
+}
+
+int HardwareSerial::available(void)
+{
+ return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE;
+}
+
+int HardwareSerial::peek(void)
+{
+ if (_rx_buffer->head == _rx_buffer->tail) {
+ return -1;
+ } else {
+ return _rx_buffer->buffer[_rx_buffer->tail];
+ }
+}
+
+int HardwareSerial::read(void)
+{
+ // if the head isn't ahead of the tail, we don't have any characters
+ if (_rx_buffer->head == _rx_buffer->tail) {
+ return -1;
+ } else {
+ unsigned char c = _rx_buffer->buffer[_rx_buffer->tail];
+ _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE;
+ return c;
+ }
+}
+
+void HardwareSerial::flush()
+{
+ while (_tx_buffer->head != _tx_buffer->tail)
+ ;
+}
+
+size_t HardwareSerial::write(uint8_t c)
+{
+ int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE;
+
+ // If the output buffer is full, there's nothing for it other than to
+ // wait for the interrupt handler to empty it a bit
+ // ???: return 0 here instead?
+ while (i == _tx_buffer->tail)
+ ;
+
+ _tx_buffer->buffer[_tx_buffer->head] = c;
+ _tx_buffer->head = i;
+
+ sbi(*_ucsrb, _udrie);
+
+ return 1;
+}
+
+// Preinstantiate Objects //////////////////////////////////////////////////////
+
+#if defined(UBRRH) && defined(UBRRL)
+ HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X);
+#elif defined(UBRR0H) && defined(UBRR0L)
+ HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0);
+#elif defined(USBCON)
+ // do nothing - Serial object and buffers are initialized in CDC code
+#else
+ #error no serial port defined (port 0)
+#endif
+
+#if defined(UBRR1H)
+ HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1);
+#endif
+#if defined(UBRR2H)
+ HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2);
+#endif
+#if defined(UBRR3H)
+ HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3);
+#endif
+
+#endif // whole file
+
diff --git a/arduinoSrc1_0/HardwareSerial.h b/arduinoSrc1_0/HardwareSerial.h
new file mode 100644
index 0000000..176abe1
--- /dev/null
+++ b/arduinoSrc1_0/HardwareSerial.h
@@ -0,0 +1,80 @@
+/*
+ HardwareSerial.h - Hardware serial library for Wiring
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Modified 28 September 2010 by Mark Sproul
+*/
+
+#ifndef HardwareSerial_h
+#define HardwareSerial_h
+
+#include <inttypes.h>
+
+#include "Stream.h"
+
+struct ring_buffer;
+
+class HardwareSerial : public Stream
+{
+ private:
+ ring_buffer *_rx_buffer;
+ ring_buffer *_tx_buffer;
+ volatile uint8_t *_ubrrh;
+ volatile uint8_t *_ubrrl;
+ volatile uint8_t *_ucsra;
+ volatile uint8_t *_ucsrb;
+ volatile uint8_t *_udr;
+ uint8_t _rxen;
+ uint8_t _txen;
+ uint8_t _rxcie;
+ uint8_t _udrie;
+ uint8_t _u2x;
+ public:
+ HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer,
+ volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,
+ volatile uint8_t *ucsra, volatile uint8_t *ucsrb,
+ volatile uint8_t *udr,
+ uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x);
+ void begin(unsigned long);
+ void end();
+ virtual int available(void);
+ virtual int peek(void);
+ virtual int read(void);
+ virtual void flush(void);
+ virtual size_t write(uint8_t);
+ using Print::write; // pull in write(str) and write(buf, size) from Print
+};
+
+#if defined(UBRRH) || defined(UBRR0H)
+ extern HardwareSerial Serial;
+#elif defined(USBCON)
+ #include "USBAPI.h"
+// extern HardwareSerial Serial_;
+#endif
+#if defined(UBRR1H)
+ extern HardwareSerial Serial1;
+#endif
+#if defined(UBRR2H)
+ extern HardwareSerial Serial2;
+#endif
+#if defined(UBRR3H)
+ extern HardwareSerial Serial3;
+#endif
+
+extern void serialEventRun(void) __attribute__((weak));
+
+#endif
diff --git a/arduinoSrc1_0/IPAddress.cpp b/arduinoSrc1_0/IPAddress.cpp
new file mode 100644
index 0000000..fe3deb7
--- /dev/null
+++ b/arduinoSrc1_0/IPAddress.cpp
@@ -0,0 +1,56 @@
+
+#include <Arduino.h>
+#include <IPAddress.h>
+
+IPAddress::IPAddress()
+{
+ memset(_address, 0, sizeof(_address));
+}
+
+IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
+{
+ _address[0] = first_octet;
+ _address[1] = second_octet;
+ _address[2] = third_octet;
+ _address[3] = fourth_octet;
+}
+
+IPAddress::IPAddress(uint32_t address)
+{
+ memcpy(_address, &address, sizeof(_address));
+}
+
+IPAddress::IPAddress(const uint8_t *address)
+{
+ memcpy(_address, address, sizeof(_address));
+}
+
+IPAddress& IPAddress::operator=(const uint8_t *address)
+{
+ memcpy(_address, address, sizeof(_address));
+ return *this;
+}
+
+IPAddress& IPAddress::operator=(uint32_t address)
+{
+ memcpy(_address, (const uint8_t *)&address, sizeof(_address));
+ return *this;
+}
+
+bool IPAddress::operator==(const uint8_t* addr)
+{
+ return memcmp(addr, _address, sizeof(_address)) == 0;
+}
+
+size_t IPAddress::printTo(Print& p) const
+{
+ size_t n = 0;
+ for (int i =0; i < 3; i++)
+ {
+ n += p.print(_address[i], DEC);
+ n += p.print('.');
+ }
+ n += p.print(_address[3], DEC);
+ return n;
+}
+
diff --git a/arduinoSrc1_0/IPAddress.h b/arduinoSrc1_0/IPAddress.h
new file mode 100644
index 0000000..2585aec
--- /dev/null
+++ b/arduinoSrc1_0/IPAddress.h
@@ -0,0 +1,76 @@
+/*
+ *
+ * MIT License:
+ * Copyright (c) 2011 Adrian McEwen
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * adrianm@mcqn.com 1/1/2011
+ */
+
+#ifndef IPAddress_h
+#define IPAddress_h
+
+#include <Printable.h>
+
+// A class to make it easier to handle and pass around IP addresses
+
+class IPAddress : public Printable {
+private:
+ uint8_t _address[4]; // IPv4 address
+ // Access the raw byte array containing the address. Because this returns a pointer
+ // to the internal structure rather than a copy of the address this function should only
+ // be used when you know that the usage of the returned uint8_t* will be transient and not
+ // stored.
+ uint8_t* raw_address() { return _address; };
+
+public:
+ // Constructors
+ IPAddress();
+ IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet);
+ IPAddress(uint32_t address);
+ IPAddress(const uint8_t *address);
+
+ // Overloaded cast operator to allow IPAddress objects to be used where a pointer
+ // to a four-byte uint8_t array is expected
+ operator uint32_t() { return *((uint32_t*)_address); };
+ bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); };
+ bool operator==(const uint8_t* addr);
+
+ // Overloaded index operator to allow getting and setting individual octets of the address
+ uint8_t operator[](int index) const { return _address[index]; };
+ uint8_t& operator[](int index) { return _address[index]; };
+
+ // Overloaded copy operators to allow initialisation of IPAddress objects from other types
+ IPAddress& operator=(const uint8_t *address);
+ IPAddress& operator=(uint32_t address);
+
+ virtual size_t printTo(Print& p) const;
+
+ friend class EthernetClass;
+ friend class UDP;
+ friend class Client;
+ friend class Server;
+ friend class DhcpClass;
+ friend class DNSClient;
+};
+
+const IPAddress INADDR_NONE(0,0,0,0);
+
+
+#endif
diff --git a/arduinoSrc1_0/Platform.h b/arduinoSrc1_0/Platform.h
new file mode 100644
index 0000000..8b8f742
--- /dev/null
+++ b/arduinoSrc1_0/Platform.h
@@ -0,0 +1,23 @@
+
+#ifndef __PLATFORM_H__
+#define __PLATFORM_H__
+
+#include <inttypes.h>
+#include <avr/pgmspace.h>
+#include <avr/eeprom.h>
+#include <avr/interrupt.h>
+#include <util/delay.h>
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned long u32;
+
+#include "Arduino.h"
+
+#if defined(USBCON)
+ #include "USBDesc.h"
+ #include "USBCore.h"
+ #include "USBAPI.h"
+#endif /* if defined(USBCON) */
+
+#endif
diff --git a/arduinoSrc1_0/Print.cpp b/arduinoSrc1_0/Print.cpp
new file mode 100644
index 0000000..ff9b154
--- /dev/null
+++ b/arduinoSrc1_0/Print.cpp
@@ -0,0 +1,263 @@
+/*
+ Print.cpp - Base class that provides print() and println()
+ Copyright (c) 2008 David A. Mellis. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Modified 23 November 2006 by David A. Mellis
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include "Arduino.h"
+
+#include "Print.h"
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+/* default implementation: may be overridden */
+size_t Print::write(const uint8_t *buffer, size_t size)
+{
+ size_t n = 0;
+ while (size--) {
+ n += write(*buffer++);
+ }
+ return n;
+}
+
+size_t Print::print(const __FlashStringHelper *ifsh)
+{
+ const prog_char *p = (const prog_char *)ifsh;
+ size_t n = 0;
+ while (1) {
+ unsigned char c = pgm_read_byte(p++);
+ if (c == 0) break;
+ n += write(c);
+ }
+ return n;
+}
+
+size_t Print::print(const String &s)
+{
+ size_t n = 0;
+ for (uint16_t i = 0; i < s.length(); i++) {
+ n += write(s[i]);
+ }
+ return n;
+}
+
+size_t Print::print(const char str[])
+{
+ return write(str);
+}
+
+size_t Print::print(char c)
+{
+ return write(c);
+}
+
+size_t Print::print(unsigned char b, int base)
+{
+ return print((unsigned long) b, base);
+}
+
+size_t Print::print(int n, int base)
+{
+ return print((long) n, base);
+}
+
+size_t Print::print(unsigned int n, int base)
+{
+ return print((unsigned long) n, base);
+}
+
+size_t Print::print(long n, int base)
+{
+ if (base == 0) {
+ return write(n);
+ } else if (base == 10) {
+ if (n < 0) {
+ int t = print('-');
+ n = -n;
+ return printNumber(n, 10) + t;
+ }
+ return printNumber(n, 10);
+ } else {
+ return printNumber(n, base);
+ }
+}
+
+size_t Print::print(unsigned long n, int base)
+{
+ if (base == 0) return write(n);
+ else return printNumber(n, base);
+}
+
+size_t Print::print(double n, int digits)
+{
+ return printFloat(n, digits);
+}
+
+size_t Print::println(const __FlashStringHelper *ifsh)
+{
+ size_t n = print(ifsh);
+ n += println();
+ return n;
+}
+
+size_t Print::print(const Printable& x)
+{
+ return x.printTo(*this);
+}
+
+size_t Print::println(void)
+{
+ size_t n = print('\r');
+ n += print('\n');
+ return n;
+}
+
+size_t Print::println(const String &s)
+{
+ size_t n = print(s);
+ n += println();
+ return n;
+}
+
+size_t Print::println(const char c[])
+{
+ size_t n = print(c);
+ n += println();
+ return n;
+}
+
+size_t Print::println(char c)
+{
+ size_t n = print(c);
+ n += println();
+ return n;
+}
+
+size_t Print::println(unsigned char b, int base)
+{
+ size_t n = print(b, base);
+ n += println();
+ return n;
+}
+
+size_t Print::println(int num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+size_t Print::println(unsigned int num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+size_t Print::println(long num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+size_t Print::println(unsigned long num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+size_t Print::println(double num, int digits)
+{
+ size_t n = print(num, digits);
+ n += println();
+ return n;
+}
+
+size_t Print::println(const Printable& x)
+{
+ size_t n = print(x);
+ n += println();
+ return n;
+}
+
+// Private Methods /////////////////////////////////////////////////////////////
+
+size_t Print::printNumber(unsigned long n, uint8_t base) {
+ char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte.
+ char *str = &buf[sizeof(buf) - 1];
+
+ *str = '\0';
+
+ // prevent crash if called with base == 1
+ if (base < 2) base = 10;
+
+ do {
+ unsigned long m = n;
+ n /= base;
+ char c = m - base * n;
+ *--str = c < 10 ? c + '0' : c + 'A' - 10;
+ } while(n);
+
+ return write(str);
+}
+
+size_t Print::printFloat(double number, uint8_t digits)
+{
+ size_t n = 0;
+
+ // Handle negative numbers
+ if (number < 0.0)
+ {
+ n += print('-');
+ number = -number;
+ }
+
+ // Round correctly so that print(1.999, 2) prints as "2.00"
+ double rounding = 0.5;
+ for (uint8_t i=0; i<digits; ++i)
+ rounding /= 10.0;
+
+ number += rounding;
+
+ // Extract the integer part of the number and print it
+ unsigned long int_part = (unsigned long)number;
+ double remainder = number - (double)int_part;
+ n += print(int_part);
+
+ // Print the decimal point, but only if there are digits beyond
+ if (digits > 0) {
+ n += print(".");
+ }
+
+ // Extract digits from the remainder one at a time
+ while (digits-- > 0)
+ {
+ remainder *= 10.0;
+ int toPrint = int(remainder);
+ n += print(toPrint);
+ remainder -= toPrint;
+ }
+
+ return n;
+}
diff --git a/arduinoSrc1_0/Print.h b/arduinoSrc1_0/Print.h
new file mode 100644
index 0000000..1af6b72
--- /dev/null
+++ b/arduinoSrc1_0/Print.h
@@ -0,0 +1,78 @@
+/*
+ Print.h - Base class that provides print() and println()
+ Copyright (c) 2008 David A. Mellis. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef Print_h
+#define Print_h
+
+#include <inttypes.h>
+#include <stdio.h> // for size_t
+
+#include "WString.h"
+#include "Printable.h"
+
+#define DEC 10
+#define HEX 16
+#define OCT 8
+#define BIN 2
+
+class Print
+{
+ private:
+ int write_error;
+ size_t printNumber(unsigned long, uint8_t);
+ size_t printFloat(double, uint8_t);
+ protected:
+ void setWriteError(int err = 1) { write_error = err; }
+ public:
+ Print() : write_error(0) {}
+
+ int getWriteError() { return write_error; }
+ void clearWriteError() { setWriteError(0); }
+
+ virtual size_t write(uint8_t) = 0;
+ size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); }
+ virtual size_t write(const uint8_t *buffer, size_t size);
+
+ size_t print(const __FlashStringHelper *);
+ size_t print(const String &);
+ size_t print(const char[]);
+ size_t print(char);
+ size_t print(unsigned char, int = DEC);
+ size_t print(int, int = DEC);
+ size_t print(unsigned int, int = DEC);
+ size_t print(long, int = DEC);
+ size_t print(unsigned long, int = DEC);
+ size_t print(double, int = 2);
+ size_t print(const Printable&);
+
+ size_t println(const __FlashStringHelper *);
+ size_t println(const String &s);
+ size_t println(const char[]);
+ size_t println(char);
+ size_t println(unsigned char, int = DEC);
+ size_t println(int, int = DEC);
+ size_t println(unsigned int, int = DEC);
+ size_t println(long, int = DEC);
+ size_t println(unsigned long, int = DEC);
+ size_t println(double, int = 2);
+ size_t println(const Printable&);
+ size_t println(void);
+};
+
+#endif
diff --git a/arduinoSrc1_0/Printable.h b/arduinoSrc1_0/Printable.h
new file mode 100644
index 0000000..d03c9af
--- /dev/null
+++ b/arduinoSrc1_0/Printable.h
@@ -0,0 +1,40 @@
+/*
+ Printable.h - Interface class that allows printing of complex types
+ Copyright (c) 2011 Adrian McEwen. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef Printable_h
+#define Printable_h
+
+#include <new.h>
+
+class Print;
+
+/** The Printable class provides a way for new classes to allow themselves to be printed.
+ By deriving from Printable and implementing the printTo method, it will then be possible
+ for users to print out instances of this class by passing them into the usual
+ Print::print and Print::println methods.
+*/
+
+class Printable
+{
+ public:
+ virtual size_t printTo(Print& p) const = 0;
+};
+
+#endif
+
diff --git a/arduinoSrc1_0/Server.h b/arduinoSrc1_0/Server.h
new file mode 100644
index 0000000..9674c76
--- /dev/null
+++ b/arduinoSrc1_0/Server.h
@@ -0,0 +1,9 @@
+#ifndef server_h
+#define server_h
+
+class Server : public Print {
+public:
+ virtual void begin() =0;
+};
+
+#endif
diff --git a/arduinoSrc1_0/Stream.cpp b/arduinoSrc1_0/Stream.cpp
new file mode 100644
index 0000000..5fad8dd
--- /dev/null
+++ b/arduinoSrc1_0/Stream.cpp
@@ -0,0 +1,244 @@
+/*
+ Stream.cpp - adds parsing methods to Stream class
+ Copyright (c) 2008 David A. Mellis. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Created July 2011
+ parsing functions based on TextFinder library by Michael Margolis
+ */
+
+#include "Arduino.h"
+#include "Stream.h"
+
+#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait
+#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field
+
+// private method to read stream with timeout
+int Stream::timedRead()
+{
+ int c;
+ _startMillis = millis();
+ do {
+ c = read();
+ if (c >= 0) return c;
+ } while(millis() - _startMillis < _timeout);
+ return -1; // -1 indicates timeout
+}
+
+// private method to peek stream with timeout
+int Stream::timedPeek()
+{
+ int c;
+ _startMillis = millis();
+ do {
+ c = peek();
+ if (c >= 0) return c;
+ } while(millis() - _startMillis < _timeout);
+ return -1; // -1 indicates timeout
+}
+
+// returns peek of the next digit in the stream or -1 if timeout
+// discards non-numeric characters
+int Stream::peekNextDigit()
+{
+ int c;
+ while (1) {
+ c = timedPeek();
+ if (c < 0) return c; // timeout
+ if (c == '-') return c;
+ if (c >= '0' && c <= '9') return c;
+ read(); // discard non-numeric
+ }
+}
+
+// Public Methods
+//////////////////////////////////////////////////////////////
+
+void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait
+{
+ _timeout = timeout;
+}
+
+ // find returns true if the target string is found
+bool Stream::find(char *target)
+{
+ return findUntil(target, NULL);
+}
+
+// reads data from the stream until the target string of given length is found
+// returns true if target string is found, false if timed out
+bool Stream::find(char *target, size_t length)
+{
+ return findUntil(target, length, NULL, 0);
+}
+
+// as find but search ends if the terminator string is found
+bool Stream::findUntil(char *target, char *terminator)
+{
+ return findUntil(target, strlen(target), terminator, strlen(terminator));
+}
+
+// reads data from the stream until the target string of the given length is found
+// search terminated if the terminator string is found
+// returns true if target string is found, false if terminated or timed out
+bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen)
+{
+ size_t index = 0; // maximum target string length is 64k bytes!
+ size_t termIndex = 0;
+ int c;
+
+ if( *target == 0)
+ return true; // return true if target is a null string
+ while( (c = timedRead()) > 0){
+ if( c == target[index]){
+ //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1);
+ if(++index >= targetLen){ // return true if all chars in the target match
+ return true;
+ }
+ }
+ else{
+ index = 0; // reset index if any char does not match
+ }
+ if(termLen > 0 && c == terminator[termIndex]){
+ if(++termIndex >= termLen)
+ return false; // return false if terminate string found before target string
+ }
+ else
+ termIndex = 0;
+ }
+ return false;
+}
+
+
+// returns the first valid (long) integer value from the current position.
+// initial characters that are not digits (or the minus sign) are skipped
+// function is terminated by the first character that is not a digit.
+long Stream::parseInt()
+{
+ return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout)
+}
+
+// as above but a given skipChar is ignored
+// this allows format characters (typically commas) in values to be ignored
+long Stream::parseInt(char skipChar)
+{
+ boolean isNegative = false;
+ long value = 0;
+ int c;
+
+ c = peekNextDigit();
+ // ignore non numeric leading characters
+ if(c < 0)
+ return 0; // zero returned if timeout
+
+ do{
+ if(c == skipChar)
+ ; // ignore this charactor
+ else if(c == '-')
+ isNegative = true;
+ else if(c >= '0' && c <= '9') // is c a digit?
+ value = value * 10 + c - '0';
+ read(); // consume the character we got with peek
+ c = timedPeek();
+ }
+ while( (c >= '0' && c <= '9') || c == skipChar );
+
+ if(isNegative)
+ value = -value;
+ return value;
+}
+
+
+// as parseInt but returns a floating point value
+float Stream::parseFloat()
+{
+ return parseFloat(NO_SKIP_CHAR);
+}
+
+// as above but the given skipChar is ignored
+// this allows format characters (typically commas) in values to be ignored
+float Stream::parseFloat(char skipChar){
+ boolean isNegative = false;
+ boolean isFraction = false;
+ long value = 0;
+ char c;
+ float fraction = 1.0;
+
+ c = peekNextDigit();
+ // ignore non numeric leading characters
+ if(c < 0)
+ return 0; // zero returned if timeout
+
+ do{
+ if(c == skipChar)
+ ; // ignore
+ else if(c == '-')
+ isNegative = true;
+ else if (c == '.')
+ isFraction = true;
+ else if(c >= '0' && c <= '9') { // is c a digit?
+ value = value * 10 + c - '0';
+ if(isFraction)
+ fraction *= 0.1;
+ }
+ read(); // consume the character we got with peek
+ c = timedPeek();
+ }
+ while( (c >= '0' && c <= '9') || c == '.' || c == skipChar );
+
+ if(isNegative)
+ value = -value;
+ if(isFraction)
+ return value * fraction;
+ else
+ return value;
+}
+
+// read characters from stream into buffer
+// terminates if length characters have been read, or timeout (see setTimeout)
+// returns the number of characters placed in the buffer
+// the buffer is NOT null terminated.
+//
+size_t Stream::readBytes(char *buffer, size_t length)
+{
+ size_t count = 0;
+ while (count < length) {
+ int c = timedRead();
+ if (c < 0) break;
+ *buffer++ = (char)c;
+ count++;
+ }
+ return count;
+}
+
+
+// as readBytes with terminator character
+// terminates if length characters have been read, timeout, or if the terminator character detected
+// returns the number of characters placed in the buffer (0 means no valid data found)
+
+size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length)
+{
+ if (length < 1) return 0;
+ size_t index = 0;
+ while (index < length) {
+ int c = timedRead();
+ if (c < 0 || c == terminator) break;
+ *buffer++ = (char)c;
+ index++;
+ }
+ return index; // return number of characters, not including null terminator
+}
+
diff --git a/arduinoSrc1_0/Stream.h b/arduinoSrc1_0/Stream.h
new file mode 100644
index 0000000..13f11be
--- /dev/null
+++ b/arduinoSrc1_0/Stream.h
@@ -0,0 +1,94 @@
+/*
+ Stream.h - base class for character-based streams.
+ Copyright (c) 2010 David A. Mellis. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ parsing functions based on TextFinder library by Michael Margolis
+*/
+
+#ifndef Stream_h
+#define Stream_h
+
+#include <inttypes.h>
+#include "Print.h"
+
+// compatability macros for testing
+/*
+#define getInt() parseInt()
+#define getInt(skipChar) parseInt(skipchar)
+#define getFloat() parseFloat()
+#define getFloat(skipChar) parseFloat(skipChar)
+#define getString( pre_string, post_string, buffer, length)
+readBytesBetween( pre_string, terminator, buffer, length)
+*/
+
+class Stream : public Print
+{
+ private:
+ unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read
+ unsigned long _startMillis; // used for timeout measurement
+ int timedRead(); // private method to read stream with timeout
+ int timedPeek(); // private method to peek stream with timeout
+ int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout
+
+ public:
+ virtual int available() = 0;
+ virtual int read() = 0;
+ virtual int peek() = 0;
+ virtual void flush() = 0;
+
+ Stream() {_timeout=1000;}
+
+// parsing methods
+
+ void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
+
+ bool find(char *target); // reads data from the stream until the target string is found
+ // returns true if target string is found, false if timed out (see setTimeout)
+
+ bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found
+ // returns true if target string is found, false if timed out
+
+ bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found
+
+ bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found
+
+
+ long parseInt(); // returns the first valid (long) integer value from the current position.
+ // initial characters that are not digits (or the minus sign) are skipped
+ // integer is terminated by the first character that is not a digit.
+
+ float parseFloat(); // float version of parseInt
+
+ size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
+ // terminates if length characters have been read or timeout (see setTimeout)
+ // returns the number of characters placed in the buffer (0 means no valid data found)
+
+ size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character
+ // terminates if length characters have been read, timeout, or if the terminator character detected
+ // returns the number of characters placed in the buffer (0 means no valid data found)
+
+ // Arduino String functions to be added here
+
+ protected:
+ long parseInt(char skipChar); // as above but the given skipChar is ignored
+ // as above but the given skipChar is ignored
+ // this allows format characters (typically commas) in values to be ignored
+
+ float parseFloat(char skipChar); // as above but the given skipChar is ignored
+};
+
+#endif
diff --git a/arduinoSrc1_0/Tone.cpp b/arduinoSrc1_0/Tone.cpp
new file mode 100644
index 0000000..20eed3f
--- /dev/null
+++ b/arduinoSrc1_0/Tone.cpp
@@ -0,0 +1,601 @@
+/* Tone.cpp
+
+ A Tone Generator Library
+
+ Written by Brett Hagman
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Version Modified By Date Comments
+------- ----------- -------- --------
+0001 B Hagman 09/08/02 Initial coding
+0002 B Hagman 09/08/18 Multiple pins
+0003 B Hagman 09/08/18 Moved initialization from constructor to begin()
+0004 B Hagman 09/09/26 Fixed problems with ATmega8
+0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers
+ 09/11/25 Changed pin toggle method to XOR
+ 09/11/25 Fixed timer0 from being excluded
+0006 D Mellis 09/12/29 Replaced objects with functions
+0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register
+*************************************************/
+
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "Arduino.h"
+#include "pins_arduino.h"
+
+#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__)
+#define TCCR2A TCCR2
+#define TCCR2B TCCR2
+#define COM2A1 COM21
+#define COM2A0 COM20
+#define OCR2A OCR2
+#define TIMSK2 TIMSK
+#define OCIE2A OCIE2
+#define TIMER2_COMPA_vect TIMER2_COMP_vect
+#define TIMSK1 TIMSK
+#endif
+
+// timerx_toggle_count:
+// > 0 - duration specified
+// = 0 - stopped
+// < 0 - infinitely (until stop() method called, or new play() called)
+
+#if !defined(__AVR_ATmega8__)
+volatile long timer0_toggle_count;
+volatile uint8_t *timer0_pin_port;
+volatile uint8_t timer0_pin_mask;
+#endif
+
+volatile long timer1_toggle_count;
+volatile uint8_t *timer1_pin_port;
+volatile uint8_t timer1_pin_mask;
+volatile long timer2_toggle_count;
+volatile uint8_t *timer2_pin_port;
+volatile uint8_t timer2_pin_mask;
+
+#if defined(TIMSK3)
+volatile long timer3_toggle_count;
+volatile uint8_t *timer3_pin_port;
+volatile uint8_t timer3_pin_mask;
+#endif
+
+#if defined(TIMSK4)
+volatile long timer4_toggle_count;
+volatile uint8_t *timer4_pin_port;
+volatile uint8_t timer4_pin_mask;
+#endif
+
+#if defined(TIMSK5)
+volatile long timer5_toggle_count;
+volatile uint8_t *timer5_pin_port;
+volatile uint8_t timer5_pin_mask;
+#endif
+
+
+// MLS: This does not make sense, the 3 options are the same
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+
+#define AVAILABLE_TONE_PINS 1
+
+const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ };
+static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ };
+
+#elif defined(__AVR_ATmega8__)
+
+#define AVAILABLE_TONE_PINS 1
+
+const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ };
+static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ };
+
+#else
+
+#define AVAILABLE_TONE_PINS 1
+
+// Leave timer 0 to last.
+const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ };
+static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ };
+
+#endif
+
+
+
+static int8_t toneBegin(uint8_t _pin)
+{
+ int8_t _timer = -1;
+
+ // if we're already using the pin, the timer should be configured.
+ for (int i = 0; i < AVAILABLE_TONE_PINS; i++) {
+ if (tone_pins[i] == _pin) {
+ return pgm_read_byte(tone_pin_to_timer_PGM + i);
+ }
+ }
+
+ // search for an unused timer.
+ for (int i = 0; i < AVAILABLE_TONE_PINS; i++) {
+ if (tone_pins[i] == 255) {
+ tone_pins[i] = _pin;
+ _timer = pgm_read_byte(tone_pin_to_timer_PGM + i);
+ break;
+ }
+ }
+
+ if (_timer != -1)
+ {
+ // Set timer specific stuff
+ // All timers in CTC mode
+ // 8 bit timers will require changing prescalar values,
+ // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar
+ switch (_timer)
+ {
+ #if defined(TCCR0A) && defined(TCCR0B)
+ case 0:
+ // 8 bit timer
+ TCCR0A = 0;
+ TCCR0B = 0;
+ bitWrite(TCCR0A, WGM01, 1);
+ bitWrite(TCCR0B, CS00, 1);
+ timer0_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer0_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+
+ #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12)
+ case 1:
+ // 16 bit timer
+ TCCR1A = 0;
+ TCCR1B = 0;
+ bitWrite(TCCR1B, WGM12, 1);
+ bitWrite(TCCR1B, CS10, 1);
+ timer1_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer1_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+
+ #if defined(TCCR2A) && defined(TCCR2B)
+ case 2:
+ // 8 bit timer
+ TCCR2A = 0;
+ TCCR2B = 0;
+ bitWrite(TCCR2A, WGM21, 1);
+ bitWrite(TCCR2B, CS20, 1);
+ timer2_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer2_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+
+ #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3)
+ case 3:
+ // 16 bit timer
+ TCCR3A = 0;
+ TCCR3B = 0;
+ bitWrite(TCCR3B, WGM32, 1);
+ bitWrite(TCCR3B, CS30, 1);
+ timer3_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer3_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+
+ #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4)
+ case 4:
+ // 16 bit timer
+ TCCR4A = 0;
+ TCCR4B = 0;
+ #if defined(WGM42)
+ bitWrite(TCCR4B, WGM42, 1);
+ #elif defined(CS43)
+ #warning this may not be correct
+ // atmega32u4
+ bitWrite(TCCR4B, CS43, 1);
+ #endif
+ bitWrite(TCCR4B, CS40, 1);
+ timer4_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer4_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+
+ #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5)
+ case 5:
+ // 16 bit timer
+ TCCR5A = 0;
+ TCCR5B = 0;
+ bitWrite(TCCR5B, WGM52, 1);
+ bitWrite(TCCR5B, CS50, 1);
+ timer5_pin_port = portOutputRegister(digitalPinToPort(_pin));
+ timer5_pin_mask = digitalPinToBitMask(_pin);
+ break;
+ #endif
+ }
+ }
+
+ return _timer;
+}
+
+
+
+// frequency (in hertz) and duration (in milliseconds).
+
+void tone(uint8_t _pin, unsigned int frequency, unsigned long duration)
+{
+ uint8_t prescalarbits = 0b001;
+ long toggle_count = 0;
+ uint32_t ocr = 0;
+ int8_t _timer;
+
+ _timer = toneBegin(_pin);
+
+ if (_timer >= 0)
+ {
+ // Set the pinMode as OUTPUT
+ pinMode(_pin, OUTPUT);
+
+ // if we are using an 8 bit timer, scan through prescalars to find the best fit
+ if (_timer == 0 || _timer == 2)
+ {
+ ocr = F_CPU / frequency / 2 - 1;
+ prescalarbits = 0b001; // ck/1: same for both timers
+ if (ocr > 255)
+ {
+ ocr = F_CPU / frequency / 2 / 8 - 1;
+ prescalarbits = 0b010; // ck/8: same for both timers
+
+ if (_timer == 2 && ocr > 255)
+ {
+ ocr = F_CPU / frequency / 2 / 32 - 1;
+ prescalarbits = 0b011;
+ }
+
+ if (ocr > 255)
+ {
+ ocr = F_CPU / frequency / 2 / 64 - 1;
+ prescalarbits = _timer == 0 ? 0b011 : 0b100;
+
+ if (_timer == 2 && ocr > 255)
+ {
+ ocr = F_CPU / frequency / 2 / 128 - 1;
+ prescalarbits = 0b101;
+ }
+
+ if (ocr > 255)
+ {
+ ocr = F_CPU / frequency / 2 / 256 - 1;
+ prescalarbits = _timer == 0 ? 0b100 : 0b110;
+ if (ocr > 255)
+ {
+ // can't do any better than /1024
+ ocr = F_CPU / frequency / 2 / 1024 - 1;
+ prescalarbits = _timer == 0 ? 0b101 : 0b111;
+ }
+ }
+ }
+ }
+
+#if defined(TCCR0B)
+ if (_timer == 0)
+ {
+ TCCR0B = prescalarbits;
+ }
+ else
+#endif
+#if defined(TCCR2B)
+ {
+ TCCR2B = prescalarbits;
+ }
+#else
+ {
+ // dummy place holder to make the above ifdefs work
+ }
+#endif
+ }
+ else
+ {
+ // two choices for the 16 bit timers: ck/1 or ck/64
+ ocr = F_CPU / frequency / 2 - 1;
+
+ prescalarbits = 0b001;
+ if (ocr > 0xffff)
+ {
+ ocr = F_CPU / frequency / 2 / 64 - 1;
+ prescalarbits = 0b011;
+ }
+
+ if (_timer == 1)
+ {
+#if defined(TCCR1B)
+ TCCR1B = (TCCR1B & 0b11111000) | prescalarbits;
+#endif
+ }
+#if defined(TCCR3B)
+ else if (_timer == 3)
+ TCCR3B = (TCCR3B & 0b11111000) | prescalarbits;
+#endif
+#if defined(TCCR4B)
+ else if (_timer == 4)
+ TCCR4B = (TCCR4B & 0b11111000) | prescalarbits;
+#endif
+#if defined(TCCR5B)
+ else if (_timer == 5)
+ TCCR5B = (TCCR5B & 0b11111000) | prescalarbits;
+#endif
+
+ }
+
+
+ // Calculate the toggle count
+ if (duration > 0)
+ {
+ toggle_count = 2 * frequency * duration / 1000;
+ }
+ else
+ {
+ toggle_count = -1;
+ }
+
+ // Set the OCR for the given timer,
+ // set the toggle count,
+ // then turn on the interrupts
+ switch (_timer)
+ {
+
+#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A)
+ case 0:
+ OCR0A = ocr;
+ timer0_toggle_count = toggle_count;
+ bitWrite(TIMSK0, OCIE0A, 1);
+ break;
+#endif
+
+ case 1:
+#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A)
+ OCR1A = ocr;
+ timer1_toggle_count = toggle_count;
+ bitWrite(TIMSK1, OCIE1A, 1);
+#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A)
+ // this combination is for at least the ATmega32
+ OCR1A = ocr;
+ timer1_toggle_count = toggle_count;
+ bitWrite(TIMSK, OCIE1A, 1);
+#endif
+ break;
+
+#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A)
+ case 2:
+ OCR2A = ocr;
+ timer2_toggle_count = toggle_count;
+ bitWrite(TIMSK2, OCIE2A, 1);
+ break;
+#endif
+
+#if defined(TIMSK3)
+ case 3:
+ OCR3A = ocr;
+ timer3_toggle_count = toggle_count;
+ bitWrite(TIMSK3, OCIE3A, 1);
+ break;
+#endif
+
+#if defined(TIMSK4)
+ case 4:
+ OCR4A = ocr;
+ timer4_toggle_count = toggle_count;
+ bitWrite(TIMSK4, OCIE4A, 1);
+ break;
+#endif
+
+#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A)
+ case 5:
+ OCR5A = ocr;
+ timer5_toggle_count = toggle_count;
+ bitWrite(TIMSK5, OCIE5A, 1);
+ break;
+#endif
+
+ }
+ }
+}
+
+
+// XXX: this function only works properly for timer 2 (the only one we use
+// currently). for the others, it should end the tone, but won't restore
+// proper PWM functionality for the timer.
+void disableTimer(uint8_t _timer)
+{
+ switch (_timer)
+ {
+ case 0:
+ #if defined(TIMSK0)
+ TIMSK0 = 0;
+ #elif defined(TIMSK)
+ TIMSK = 0; // atmega32
+ #endif
+ break;
+
+#if defined(TIMSK1) && defined(OCIE1A)
+ case 1:
+ bitWrite(TIMSK1, OCIE1A, 0);
+ break;
+#endif
+
+ case 2:
+ #if defined(TIMSK2) && defined(OCIE2A)
+ bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt
+ #endif
+ #if defined(TCCR2A) && defined(WGM20)
+ TCCR2A = (1 << WGM20);
+ #endif
+ #if defined(TCCR2B) && defined(CS22)
+ TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22);
+ #endif
+ #if defined(OCR2A)
+ OCR2A = 0;
+ #endif
+ break;
+
+#if defined(TIMSK3)
+ case 3:
+ TIMSK3 = 0;
+ break;
+#endif
+
+#if defined(TIMSK4)
+ case 4:
+ TIMSK4 = 0;
+ break;
+#endif
+
+#if defined(TIMSK5)
+ case 5:
+ TIMSK5 = 0;
+ break;
+#endif
+ }
+}
+
+
+void noTone(uint8_t _pin)
+{
+ int8_t _timer = -1;
+
+ for (int i = 0; i < AVAILABLE_TONE_PINS; i++) {
+ if (tone_pins[i] == _pin) {
+ _timer = pgm_read_byte(tone_pin_to_timer_PGM + i);
+ tone_pins[i] = 255;
+ }
+ }
+
+ disableTimer(_timer);
+
+ digitalWrite(_pin, 0);
+}
+
+#if 0
+#if !defined(__AVR_ATmega8__)
+ISR(TIMER0_COMPA_vect)
+{
+ if (timer0_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer0_pin_port ^= timer0_pin_mask;
+
+ if (timer0_toggle_count > 0)
+ timer0_toggle_count--;
+ }
+ else
+ {
+ disableTimer(0);
+ *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop
+ }
+}
+#endif
+
+
+ISR(TIMER1_COMPA_vect)
+{
+ if (timer1_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer1_pin_port ^= timer1_pin_mask;
+
+ if (timer1_toggle_count > 0)
+ timer1_toggle_count--;
+ }
+ else
+ {
+ disableTimer(1);
+ *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop
+ }
+}
+#endif
+
+
+ISR(TIMER2_COMPA_vect)
+{
+
+ if (timer2_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer2_pin_port ^= timer2_pin_mask;
+
+ if (timer2_toggle_count > 0)
+ timer2_toggle_count--;
+ }
+ else
+ {
+ // need to call noTone() so that the tone_pins[] entry is reset, so the
+ // timer gets initialized next time we call tone().
+ // XXX: this assumes timer 2 is always the first one used.
+ noTone(tone_pins[0]);
+// disableTimer(2);
+// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop
+ }
+}
+
+
+
+//#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+#if 0
+
+ISR(TIMER3_COMPA_vect)
+{
+ if (timer3_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer3_pin_port ^= timer3_pin_mask;
+
+ if (timer3_toggle_count > 0)
+ timer3_toggle_count--;
+ }
+ else
+ {
+ disableTimer(3);
+ *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop
+ }
+}
+
+ISR(TIMER4_COMPA_vect)
+{
+ if (timer4_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer4_pin_port ^= timer4_pin_mask;
+
+ if (timer4_toggle_count > 0)
+ timer4_toggle_count--;
+ }
+ else
+ {
+ disableTimer(4);
+ *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop
+ }
+}
+
+ISR(TIMER5_COMPA_vect)
+{
+ if (timer5_toggle_count != 0)
+ {
+ // toggle the pin
+ *timer5_pin_port ^= timer5_pin_mask;
+
+ if (timer5_toggle_count > 0)
+ timer5_toggle_count--;
+ }
+ else
+ {
+ disableTimer(5);
+ *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop
+ }
+}
+
+#endif
diff --git a/arduinoSrc1_0/USBAPI.h b/arduinoSrc1_0/USBAPI.h
new file mode 100644
index 0000000..26a2032
--- /dev/null
+++ b/arduinoSrc1_0/USBAPI.h
@@ -0,0 +1,166 @@
+
+
+#ifndef __USBAPI__
+#define __USBAPI__
+
+#if defined(USBCON)
+
+//================================================================================
+//================================================================================
+// USB
+
+class USB_
+{
+public:
+ USB_();
+ bool configured();
+
+ void attach();
+ void detach(); // Serial port goes down too...
+ void poll();
+};
+extern USB_ USB;
+
+//================================================================================
+//================================================================================
+// Serial over CDC (Serial1 is the physical port)
+
+class Serial_ : public Stream
+{
+public:
+ void begin(uint16_t baud_count);
+ void end(void);
+
+ virtual int available(void);
+ virtual int peek(void);
+ virtual int read(void);
+ virtual void flush(void);
+ virtual size_t write(uint8_t);
+};
+extern Serial_ Serial;
+
+//================================================================================
+//================================================================================
+// Mouse
+
+#define MOUSE_LEFT 1
+#define MOUSE_RIGHT 2
+#define MOUSE_MIDDLE 4
+#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE)
+
+class Mouse_
+{
+private:
+ uint8_t _buttons;
+ void buttons(uint8_t b);
+public:
+ Mouse_();
+ void click(uint8_t b = MOUSE_LEFT);
+ void move(signed char x, signed char y, signed char wheel = 0);
+ void press(uint8_t b = MOUSE_LEFT); // press LEFT by default
+ void release(uint8_t b = MOUSE_LEFT); // release LEFT by default
+ bool isPressed(uint8_t b = MOUSE_ALL); // check all buttons by default
+};
+extern Mouse_ Mouse;
+
+//================================================================================
+//================================================================================
+// Keyboard
+
+#define KEY_MODIFIER_LEFT_CTRL 0x01
+#define KEY_MODIFIER_LEFT_SHIFT 0x02
+#define KEY_MODIFIER_LEFT_ALT 0x04
+#define KEY_MODIFIER_LEFT_GUI 0x08
+#define KEY_MODIFIER_RIGHT_CTRL 0x010
+#define KEY_MODIFIER_RIGHT_SHIFT 0x020
+#define KEY_MODIFIER_RIGHT_ALT 0x040
+#define KEY_MODIFIER_RIGHT_GUI 0x080
+
+// Low level key report: up to 6 keys and shift, ctrl etc at once
+typedef struct
+{
+ uint8_t modifiers;
+ uint8_t reserved;
+ uint8_t keys[6];
+} KeyReport;
+
+// Map a character into a key report
+// Called from Print to map text to keycodes
+class KeyMap
+{
+public:
+ virtual void charToKey(int c, KeyReport* keyReport) = 0;
+};
+
+//
+class Keyboard_ : public Print
+{
+private:
+ KeyMap* _keyMap;
+ void sendReport(KeyReport* keys);
+ void setKeyMap(KeyMap* keyMap);
+public:
+ Keyboard_();
+ virtual size_t write(uint8_t);
+};
+extern Keyboard_ Keyboard;
+
+//================================================================================
+//================================================================================
+// Low level API
+
+typedef struct
+{
+ uint8_t bmRequestType;
+ uint8_t bRequest;
+ uint8_t wValueL;
+ uint8_t wValueH;
+ uint16_t wIndex;
+ uint16_t wLength;
+} Setup;
+
+//================================================================================
+//================================================================================
+// HID 'Driver'
+
+int HID_GetInterface(uint8_t* interfaceNum);
+int HID_GetDescriptor(int i);
+bool HID_Setup(Setup& setup);
+void HID_SendReport(uint8_t id, const void* data, int len);
+
+//================================================================================
+//================================================================================
+// MSC 'Driver'
+
+int MSC_GetInterface(uint8_t* interfaceNum);
+int MSC_GetDescriptor(int i);
+bool MSC_Setup(Setup& setup);
+bool MSC_Data(uint8_t rx,uint8_t tx);
+
+//================================================================================
+//================================================================================
+// CSC 'Driver'
+
+int CDC_GetInterface(uint8_t* interfaceNum);
+int CDC_GetDescriptor(int i);
+bool CDC_Setup(Setup& setup);
+
+//================================================================================
+//================================================================================
+
+#define TRANSFER_PGM 0x80
+#define TRANSFER_RELEASE 0x40
+#define TRANSFER_ZERO 0x20
+
+int USB_SendControl(uint8_t flags, const void* d, int len);
+int USB_RecvControl(void* d, int len);
+
+uint8_t USB_Available(uint8_t ep);
+int USB_Send(uint8_t ep, const void* data, int len); // blocking
+int USB_Recv(uint8_t ep, void* data, int len); // non-blocking
+int USB_Recv(uint8_t ep); // non-blocking
+void USB_Flush(uint8_t ep);
+
+#endif
+
+#endif /* if defined(USBCON) */ \ No newline at end of file
diff --git a/arduinoSrc1_0/USBCore.cpp b/arduinoSrc1_0/USBCore.cpp
new file mode 100644
index 0000000..398bc73
--- /dev/null
+++ b/arduinoSrc1_0/USBCore.cpp
@@ -0,0 +1,660 @@
+
+
+/* Copyright (c) 2010, Peter Barrett
+**
+** Permission to use, copy, modify, and/or distribute this software for
+** any purpose with or without fee is hereby granted, provided that the
+** above copyright notice and this permission notice appear in all copies.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+** SOFTWARE.
+*/
+
+#include "Platform.h"
+#include "USBAPI.h"
+#include "USBDesc.h"
+
+#if defined(USBCON)
+
+#define EP_TYPE_CONTROL 0x00
+#define EP_TYPE_BULK_IN 0x81
+#define EP_TYPE_BULK_OUT 0x80
+#define EP_TYPE_INTERRUPT_IN 0xC1
+#define EP_TYPE_INTERRUPT_OUT 0xC0
+#define EP_TYPE_ISOCHRONOUS_IN 0x41
+#define EP_TYPE_ISOCHRONOUS_OUT 0x40
+
+/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */
+#define TX_RX_LED_PULSE_MS 100
+volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */
+volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */
+
+//==================================================================
+//==================================================================
+
+extern const u16 STRING_LANGUAGE[] PROGMEM;
+extern const u16 STRING_IPRODUCT[] PROGMEM;
+extern const u16 STRING_IMANUFACTURER[] PROGMEM;
+extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM;
+extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM;
+
+const u16 STRING_LANGUAGE[2] = {
+ (3<<8) | (2+2),
+ 0x0409 // English
+};
+
+const u16 STRING_IPRODUCT[17] = {
+ (3<<8) | (2+2*16),
+#if USB_PID == USB_PID_LEONARDO
+ 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o'
+#elif USB_PID == USB_PID_MICRO
+ 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' '
+#endif
+};
+
+const u16 STRING_IMANUFACTURER[12] = {
+ (3<<8) | (2+2*11),
+ 'A','r','d','u','i','n','o',' ','L','L','C'
+};
+
+#ifdef CDC_ENABLED
+#define DEVICE_CLASS 0x02
+#else
+#define DEVICE_CLASS 0x00
+#endif
+
+// DEVICE DESCRIPTOR
+const DeviceDescriptor USB_DeviceDescriptor =
+ D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1);
+
+const DeviceDescriptor USB_DeviceDescriptorA =
+ D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1);
+
+//==================================================================
+//==================================================================
+
+volatile u8 _usbConfiguration = 0;
+
+static inline void WaitIN(void)
+{
+ while (!(UEINTX & (1<<TXINI)));
+}
+
+static inline void ClearIN(void)
+{
+ UEINTX = ~(1<<TXINI);
+}
+
+static inline void WaitOUT(void)
+{
+ while (!(UEINTX & (1<<RXOUTI)))
+ ;
+}
+
+static inline u8 WaitForINOrOUT()
+{
+ while (!(UEINTX & ((1<<TXINI)|(1<<RXOUTI))))
+ ;
+ return (UEINTX & (1<<RXOUTI)) == 0;
+}
+
+static inline void ClearOUT(void)
+{
+ UEINTX = ~(1<<RXOUTI);
+}
+
+void Recv(volatile u8* data, u8 count)
+{
+ while (count--)
+ *data++ = UEDATX;
+
+ RXLED1; // light the RX LED
+ RxLEDPulse = TX_RX_LED_PULSE_MS;
+}
+
+static inline u8 Recv8()
+{
+ RXLED1; // light the RX LED
+ RxLEDPulse = TX_RX_LED_PULSE_MS;
+
+ return UEDATX;
+}
+
+static inline void Send8(u8 d)
+{
+ UEDATX = d;
+}
+
+static inline void SetEP(u8 ep)
+{
+ UENUM = ep;
+}
+
+static inline u8 FifoByteCount()
+{
+ return UEBCLX;
+}
+
+static inline u8 ReceivedSetupInt()
+{
+ return UEINTX & (1<<RXSTPI);
+}
+
+static inline void ClearSetupInt()
+{
+ UEINTX = ~((1<<RXSTPI) | (1<<RXOUTI) | (1<<TXINI));
+}
+
+static inline void Stall()
+{
+ UECONX = (1<<STALLRQ) | (1<<EPEN);
+}
+
+static inline u8 ReadWriteAllowed()
+{
+ return UEINTX & (1<<RWAL);
+}
+
+static inline u8 Stalled()
+{
+ return UEINTX & (1<<STALLEDI);
+}
+
+static inline u8 FifoFree()
+{
+ return UEINTX & (1<<FIFOCON);
+}
+
+static inline void ReleaseRX()
+{
+ UEINTX = 0x6B; // FIFOCON=0 NAKINI=1 RWAL=1 NAKOUTI=0 RXSTPI=1 RXOUTI=0 STALLEDI=1 TXINI=1
+}
+
+static inline void ReleaseTX()
+{
+ UEINTX = 0x3A; // FIFOCON=0 NAKINI=0 RWAL=1 NAKOUTI=1 RXSTPI=1 RXOUTI=0 STALLEDI=1 TXINI=0
+}
+
+static inline u8 FrameNumber()
+{
+ return UDFNUML;
+}
+
+//==================================================================
+//==================================================================
+
+u8 USBGetConfiguration(void)
+{
+ return _usbConfiguration;
+}
+
+#define USB_RECV_TIMEOUT
+class LockEP
+{
+ u8 _sreg;
+public:
+ LockEP(u8 ep) : _sreg(SREG)
+ {
+ cli();
+ SetEP(ep & 7);
+ }
+ ~LockEP()
+ {
+ SREG = _sreg;
+ }
+};
+
+// Number of bytes, assumes a rx endpoint
+u8 USB_Available(u8 ep)
+{
+ LockEP lock(ep);
+ return FifoByteCount();
+}
+
+// Non Blocking receive
+// Return number of bytes read
+int USB_Recv(u8 ep, void* d, int len)
+{
+ if (!_usbConfiguration || len < 0)
+ return -1;
+
+ LockEP lock(ep);
+ u8 n = FifoByteCount();
+ len = min(n,len);
+ n = len;
+ u8* dst = (u8*)d;
+ while (n--)
+ *dst++ = Recv8();
+ if (len && !FifoByteCount()) // release empty buffer
+ ReleaseRX();
+
+ return len;
+}
+
+// Recv 1 byte if ready
+int USB_Recv(u8 ep)
+{
+ u8 c;
+ if (USB_Recv(ep,&c,1) != 1)
+ return -1;
+ return c;
+}
+
+// Space in send EP
+u8 USB_SendSpace(u8 ep)
+{
+ LockEP lock(ep);
+ if (!ReadWriteAllowed())
+ return 0;
+ return 64 - FifoByteCount();
+}
+
+// Blocking Send of data to an endpoint
+int USB_Send(u8 ep, const void* d, int len)
+{
+ if (!_usbConfiguration)
+ return -1;
+
+ int r = len;
+ const u8* data = (const u8*)d;
+ u8 zero = ep & TRANSFER_ZERO;
+ u8 timeout = 250; // 250ms timeout on send? TODO
+ while (len)
+ {
+ u8 n = USB_SendSpace(ep);
+ if (n == 0)
+ {
+ if (!(--timeout))
+ return -1;
+ delay(1);
+ continue;
+ }
+
+ if (n > len)
+ n = len;
+ len -= n;
+ {
+ LockEP lock(ep);
+ if (ep & TRANSFER_ZERO)
+ {
+ while (n--)
+ Send8(0);
+ }
+ else if (ep & TRANSFER_PGM)
+ {
+ while (n--)
+ Send8(pgm_read_byte(data++));
+ }
+ else
+ {
+ while (n--)
+ Send8(*data++);
+ }
+ if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer
+ ReleaseTX();
+ }
+ }
+ TXLED1; // light the TX LED
+ TxLEDPulse = TX_RX_LED_PULSE_MS;
+ return r;
+}
+
+extern const u8 _initEndpoints[] PROGMEM;
+const u8 _initEndpoints[] =
+{
+ 0,
+
+#ifdef CDC_ENABLED
+ EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM
+ EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT
+ EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN
+#endif
+
+#ifdef HID_ENABLED
+ EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT
+#endif
+};
+
+#define EP_SINGLE_64 0x32 // EP0
+#define EP_DOUBLE_64 0x36 // Other endpoints
+
+static
+void InitEP(u8 index, u8 type, u8 size)
+{
+ UENUM = index;
+ UECONX = 1;
+ UECFG0X = type;
+ UECFG1X = size;
+}
+
+static
+void InitEndpoints()
+{
+ for (u8 i = 1; i < sizeof(_initEndpoints); i++)
+ {
+ UENUM = i;
+ UECONX = 1;
+ UECFG0X = pgm_read_byte(_initEndpoints+i);
+ UECFG1X = EP_DOUBLE_64;
+ }
+ UERST = 0x7E; // And reset them
+ UERST = 0;
+}
+
+// Handle CLASS_INTERFACE requests
+static
+bool ClassInterfaceRequest(Setup& setup)
+{
+ u8 i = setup.wIndex;
+
+#ifdef CDC_ENABLED
+ if (CDC_ACM_INTERFACE == i)
+ return CDC_Setup(setup);
+#endif
+
+#ifdef HID_ENABLED
+ if (HID_INTERFACE == i)
+ return HID_Setup(setup);
+#endif
+ return false;
+}
+
+int _cmark;
+int _cend;
+void InitControl(int end)
+{
+ SetEP(0);
+ _cmark = 0;
+ _cend = end;
+}
+
+static
+bool SendControl(u8 d)
+{
+ if (_cmark < _cend)
+ {
+ if (!WaitForINOrOUT())
+ return false;
+ Send8(d);
+ if (!((_cmark + 1) & 0x3F))
+ ClearIN(); // Fifo is full, release this packet
+ }
+ _cmark++;
+ return true;
+};
+
+// Clipped by _cmark/_cend
+int USB_SendControl(u8 flags, const void* d, int len)
+{
+ int sent = len;
+ const u8* data = (const u8*)d;
+ bool pgm = flags & TRANSFER_PGM;
+ while (len--)
+ {
+ u8 c = pgm ? pgm_read_byte(data++) : *data++;
+ if (!SendControl(c))
+ return -1;
+ }
+ return sent;
+}
+
+// Does not timeout or cross fifo boundaries
+// Will only work for transfers <= 64 bytes
+// TODO
+int USB_RecvControl(void* d, int len)
+{
+ WaitOUT();
+ Recv((u8*)d,len);
+ ClearOUT();
+ return len;
+}
+
+int SendInterfaces()
+{
+ int total = 0;
+ u8 interfaces = 0;
+
+#ifdef CDC_ENABLED
+ total = CDC_GetInterface(&interfaces);
+#endif
+
+#ifdef HID_ENABLED
+ total += HID_GetInterface(&interfaces);
+#endif
+
+ return interfaces;
+}
+
+// Construct a dynamic configuration descriptor
+// This really needs dynamic endpoint allocation etc
+// TODO
+static
+bool SendConfiguration(int maxlen)
+{
+ // Count and measure interfaces
+ InitControl(0);
+ int interfaces = SendInterfaces();
+ ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces);
+
+ // Now send them
+ InitControl(maxlen);
+ USB_SendControl(0,&config,sizeof(ConfigDescriptor));
+ SendInterfaces();
+ return true;
+}
+
+u8 _cdcComposite = 0;
+
+static
+bool SendDescriptor(Setup& setup)
+{
+ u8 t = setup.wValueH;
+ if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t)
+ return SendConfiguration(setup.wLength);
+
+ InitControl(setup.wLength);
+#ifdef HID_ENABLED
+ if (HID_REPORT_DESCRIPTOR_TYPE == t)
+ return HID_GetDescriptor(t);
+#endif
+
+ u8 desc_length = 0;
+ const u8* desc_addr = 0;
+ if (USB_DEVICE_DESCRIPTOR_TYPE == t)
+ {
+ if (setup.wLength == 8)
+ _cdcComposite = 1;
+ desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor;
+ }
+ else if (USB_STRING_DESCRIPTOR_TYPE == t)
+ {
+ if (setup.wValueL == 0)
+ desc_addr = (const u8*)&STRING_LANGUAGE;
+ else if (setup.wValueL == IPRODUCT)
+ desc_addr = (const u8*)&STRING_IPRODUCT;
+ else if (setup.wValueL == IMANUFACTURER)
+ desc_addr = (const u8*)&STRING_IMANUFACTURER;
+ else
+ return false;
+ }
+
+ if (desc_addr == 0)
+ return false;
+ if (desc_length == 0)
+ desc_length = pgm_read_byte(desc_addr);
+
+ USB_SendControl(TRANSFER_PGM,desc_addr,desc_length);
+ return true;
+}
+
+// Endpoint 0 interrupt
+ISR(USB_COM_vect)
+{
+ SetEP(0);
+ if (!ReceivedSetupInt())
+ return;
+
+ Setup setup;
+ Recv((u8*)&setup,8);
+ ClearSetupInt();
+
+ u8 requestType = setup.bmRequestType;
+ if (requestType & REQUEST_DEVICETOHOST)
+ WaitIN();
+ else
+ ClearIN();
+
+ bool ok = true;
+ if (REQUEST_STANDARD == (requestType & REQUEST_TYPE))
+ {
+ // Standard Requests
+ u8 r = setup.bRequest;
+ if (GET_STATUS == r)
+ {
+ Send8(0); // TODO
+ Send8(0);
+ }
+ else if (CLEAR_FEATURE == r)
+ {
+ }
+ else if (SET_FEATURE == r)
+ {
+ }
+ else if (SET_ADDRESS == r)
+ {
+ WaitIN();
+ UDADDR = setup.wValueL | (1<<ADDEN);
+ }
+ else if (GET_DESCRIPTOR == r)
+ {
+ ok = SendDescriptor(setup);
+ }
+ else if (SET_DESCRIPTOR == r)
+ {
+ ok = false;
+ }
+ else if (GET_CONFIGURATION == r)
+ {
+ Send8(1);
+ }
+ else if (SET_CONFIGURATION == r)
+ {
+ if (REQUEST_DEVICE == (requestType & REQUEST_RECIPIENT))
+ {
+ InitEndpoints();
+ _usbConfiguration = setup.wValueL;
+ } else
+ ok = false;
+ }
+ else if (GET_INTERFACE == r)
+ {
+ }
+ else if (SET_INTERFACE == r)
+ {
+ }
+ }
+ else
+ {
+ InitControl(setup.wLength); // Max length of transfer
+ ok = ClassInterfaceRequest(setup);
+ }
+
+ if (ok)
+ ClearIN();
+ else
+ {
+ Stall();
+ }
+}
+
+void USB_Flush(u8 ep)
+{
+ SetEP(ep);
+ if (FifoByteCount())
+ ReleaseTX();
+}
+
+// General interrupt
+ISR(USB_GEN_vect)
+{
+ u8 udint = UDINT;
+ UDINT = 0;
+
+ // End of Reset
+ if (udint & (1<<EORSTI))
+ {
+ InitEP(0,EP_TYPE_CONTROL,EP_SINGLE_64); // init ep0
+ _usbConfiguration = 0; // not configured yet
+ UEIENX = 1 << RXSTPE; // Enable interrupts for ep0
+ }
+
+ // Start of Frame - happens every millisecond so we use it for TX and RX LED one-shot timing, too
+ if (udint & (1<<SOFI))
+ {
+#ifdef CDC_ENABLED
+ USB_Flush(CDC_TX); // Send a tx frame if found
+#endif
+
+ // check whether the one-shot period has elapsed. if so, turn off the LED
+ if (TxLEDPulse && !(--TxLEDPulse))
+ TXLED0;
+ if (RxLEDPulse && !(--RxLEDPulse))
+ RXLED0;
+ }
+}
+
+// VBUS or counting frames
+// Any frame counting?
+u8 USBConnected()
+{
+ u8 f = UDFNUML;
+ delay(3);
+ return f != UDFNUML;
+}
+
+//=======================================================================
+//=======================================================================
+
+USB_ USB;
+
+USB_::USB_()
+{
+}
+
+void USB_::attach()
+{
+ _usbConfiguration = 0;
+ UHWCON = 0x01; // power internal reg
+ USBCON = (1<<USBE)|(1<<FRZCLK); // clock frozen, usb enabled
+ PLLCSR = 0x12; // Need 16 MHz xtal
+ while (!(PLLCSR & (1<<PLOCK))) // wait for lock pll
+ ;
+ USBCON = ((1<<USBE)|(1<<OTGPADE)); // start USB clock
+ UDIEN = (1<<EORSTE)|(1<<SOFE); // Enable interrupts for EOR (End of Reset) and SOF (start of frame)
+ UDCON = 0; // enable attach resistor
+
+ TX_RX_LED_INIT;
+}
+
+void USB_::detach()
+{
+}
+
+// Check for interrupts
+// TODO: VBUS detection
+bool USB_::configured()
+{
+ return _usbConfiguration;
+}
+
+void USB_::poll()
+{
+}
+
+#endif /* if defined(USBCON) */ \ No newline at end of file
diff --git a/arduinoSrc1_0/USBCore.h b/arduinoSrc1_0/USBCore.h
new file mode 100644
index 0000000..8d13806
--- /dev/null
+++ b/arduinoSrc1_0/USBCore.h
@@ -0,0 +1,303 @@
+
+// Copyright (c) 2010, Peter Barrett
+/*
+** Permission to use, copy, modify, and/or distribute this software for
+** any purpose with or without fee is hereby granted, provided that the
+** above copyright notice and this permission notice appear in all copies.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+** SOFTWARE.
+*/
+
+#ifndef __USBCORE_H__
+#define __USBCORE_H__
+
+// Standard requests
+#define GET_STATUS 0
+#define CLEAR_FEATURE 1
+#define SET_FEATURE 3
+#define SET_ADDRESS 5
+#define GET_DESCRIPTOR 6
+#define SET_DESCRIPTOR 7
+#define GET_CONFIGURATION 8
+#define SET_CONFIGURATION 9
+#define GET_INTERFACE 10
+#define SET_INTERFACE 11
+
+
+// bmRequestType
+#define REQUEST_HOSTTODEVICE 0x00
+#define REQUEST_DEVICETOHOST 0x80
+#define REQUEST_DIRECTION 0x80
+
+#define REQUEST_STANDARD 0x00
+#define REQUEST_CLASS 0x20
+#define REQUEST_VENDOR 0x40
+#define REQUEST_TYPE 0x60
+
+#define REQUEST_DEVICE 0x00
+#define REQUEST_INTERFACE 0x01
+#define REQUEST_ENDPOINT 0x02
+#define REQUEST_OTHER 0x03
+#define REQUEST_RECIPIENT 0x03
+
+#define REQUEST_DEVICETOHOST_CLASS_INTERFACE (REQUEST_DEVICETOHOST + REQUEST_CLASS + REQUEST_INTERFACE)
+#define REQUEST_HOSTTODEVICE_CLASS_INTERFACE (REQUEST_HOSTTODEVICE + REQUEST_CLASS + REQUEST_INTERFACE)
+
+// Class requests
+
+#define CDC_SET_LINE_CODING 0x20
+#define CDC_GET_LINE_CODING 0x21
+#define CDC_SET_CONTROL_LINE_STATE 0x22
+
+#define MSC_RESET 0xFF
+#define MSC_GET_MAX_LUN 0xFE
+
+#define HID_GET_REPORT 0x01
+#define HID_GET_IDLE 0x02
+#define HID_GET_PROTOCOL 0x03
+#define HID_SET_REPORT 0x09
+#define HID_SET_IDLE 0x0A
+#define HID_SET_PROTOCOL 0x0B
+
+// Descriptors
+
+#define USB_DEVICE_DESC_SIZE 18
+#define USB_CONFIGUARTION_DESC_SIZE 9
+#define USB_INTERFACE_DESC_SIZE 9
+#define USB_ENDPOINT_DESC_SIZE 7
+
+#define USB_DEVICE_DESCRIPTOR_TYPE 1
+#define USB_CONFIGURATION_DESCRIPTOR_TYPE 2
+#define USB_STRING_DESCRIPTOR_TYPE 3
+#define USB_INTERFACE_DESCRIPTOR_TYPE 4
+#define USB_ENDPOINT_DESCRIPTOR_TYPE 5
+
+#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
+#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
+#define USB_DEVICE_CLASS_STORAGE 0x08
+#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
+
+#define USB_CONFIG_POWERED_MASK 0x40
+#define USB_CONFIG_BUS_POWERED 0x80
+#define USB_CONFIG_SELF_POWERED 0xC0
+#define USB_CONFIG_REMOTE_WAKEUP 0x20
+
+// bMaxPower in Configuration Descriptor
+#define USB_CONFIG_POWER_MA(mA) ((mA)/2)
+
+// bEndpointAddress in Endpoint Descriptor
+#define USB_ENDPOINT_DIRECTION_MASK 0x80
+#define USB_ENDPOINT_OUT(addr) ((addr) | 0x00)
+#define USB_ENDPOINT_IN(addr) ((addr) | 0x80)
+
+#define USB_ENDPOINT_TYPE_MASK 0x03
+#define USB_ENDPOINT_TYPE_CONTROL 0x00
+#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
+#define USB_ENDPOINT_TYPE_BULK 0x02
+#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
+
+#define TOBYTES(x) ((x) & 0xFF),(((x) >> 8) & 0xFF)
+
+#define CDC_V1_10 0x0110
+#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02
+
+#define CDC_CALL_MANAGEMENT 0x01
+#define CDC_ABSTRACT_CONTROL_MODEL 0x02
+#define CDC_HEADER 0x00
+#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02
+#define CDC_UNION 0x06
+#define CDC_CS_INTERFACE 0x24
+#define CDC_CS_ENDPOINT 0x25
+#define CDC_DATA_INTERFACE_CLASS 0x0A
+
+#define MSC_SUBCLASS_SCSI 0x06
+#define MSC_PROTOCOL_BULK_ONLY 0x50
+
+#define HID_HID_DESCRIPTOR_TYPE 0x21
+#define HID_REPORT_DESCRIPTOR_TYPE 0x22
+#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
+
+
+// Device
+typedef struct {
+ u8 len; // 18
+ u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE
+ u16 usbVersion; // 0x200
+ u8 deviceClass;
+ u8 deviceSubClass;
+ u8 deviceProtocol;
+ u8 packetSize0; // Packet 0
+ u16 idVendor;
+ u16 idProduct;
+ u16 deviceVersion; // 0x100
+ u8 iManufacturer;
+ u8 iProduct;
+ u8 iSerialNumber;
+ u8 bNumConfigurations;
+} DeviceDescriptor;
+
+// Config
+typedef struct {
+ u8 len; // 9
+ u8 dtype; // 2
+ u16 clen; // total length
+ u8 numInterfaces;
+ u8 config;
+ u8 iconfig;
+ u8 attributes;
+ u8 maxPower;
+} ConfigDescriptor;
+
+// String
+
+// Interface
+typedef struct
+{
+ u8 len; // 9
+ u8 dtype; // 4
+ u8 number;
+ u8 alternate;
+ u8 numEndpoints;
+ u8 interfaceClass;
+ u8 interfaceSubClass;
+ u8 protocol;
+ u8 iInterface;
+} InterfaceDescriptor;
+
+// Endpoint
+typedef struct
+{
+ u8 len; // 7
+ u8 dtype; // 5
+ u8 addr;
+ u8 attr;
+ u16 packetSize;
+ u8 interval;
+} EndpointDescriptor;
+
+// Interface Association Descriptor
+// Used to bind 2 interfaces together in CDC compostite device
+typedef struct
+{
+ u8 len; // 8
+ u8 dtype; // 11
+ u8 firstInterface;
+ u8 interfaceCount;
+ u8 functionClass;
+ u8 funtionSubClass;
+ u8 functionProtocol;
+ u8 iInterface;
+} IADDescriptor;
+
+// CDC CS interface descriptor
+typedef struct
+{
+ u8 len; // 5
+ u8 dtype; // 0x24
+ u8 subtype;
+ u8 d0;
+ u8 d1;
+} CDCCSInterfaceDescriptor;
+
+typedef struct
+{
+ u8 len; // 4
+ u8 dtype; // 0x24
+ u8 subtype;
+ u8 d0;
+} CDCCSInterfaceDescriptor4;
+
+typedef struct
+{
+ u8 len;
+ u8 dtype; // 0x24
+ u8 subtype; // 1
+ u8 bmCapabilities;
+ u8 bDataInterface;
+} CMFunctionalDescriptor;
+
+typedef struct
+{
+ u8 len;
+ u8 dtype; // 0x24
+ u8 subtype; // 1
+ u8 bmCapabilities;
+} ACMFunctionalDescriptor;
+
+typedef struct
+{
+ // IAD
+ IADDescriptor iad; // Only needed on compound device
+
+ // Control
+ InterfaceDescriptor cif; //
+ CDCCSInterfaceDescriptor header;
+ CMFunctionalDescriptor callManagement; // Call Management
+ ACMFunctionalDescriptor controlManagement; // ACM
+ CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION
+ EndpointDescriptor cifin;
+
+ // Data
+ InterfaceDescriptor dif;
+ EndpointDescriptor in;
+ EndpointDescriptor out;
+} CDCDescriptor;
+
+typedef struct
+{
+ InterfaceDescriptor msc;
+ EndpointDescriptor in;
+ EndpointDescriptor out;
+} MSCDescriptor;
+
+typedef struct
+{
+ u8 len; // 9
+ u8 dtype; // 0x21
+ u8 addr;
+ u8 versionL; // 0x101
+ u8 versionH; // 0x101
+ u8 country;
+ u8 desctype; // 0x22 report
+ u8 descLenL;
+ u8 descLenH;
+} HIDDescDescriptor;
+
+typedef struct
+{
+ InterfaceDescriptor hid;
+ HIDDescDescriptor desc;
+ EndpointDescriptor in;
+} HIDDescriptor;
+
+
+#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \
+ { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs }
+
+#define D_CONFIG(_totalLength,_interfaces) \
+ { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) }
+
+#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \
+ { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 }
+
+#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \
+ { 7, 5, _addr,_attr,_packetSize, _interval }
+
+#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \
+ { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 }
+
+#define D_HIDREPORT(_descriptorLength) \
+ { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 }
+
+#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 }
+#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 }
+
+
+#endif \ No newline at end of file
diff --git a/arduinoSrc1_0/USBDesc.h b/arduinoSrc1_0/USBDesc.h
new file mode 100644
index 0000000..549ed9e
--- /dev/null
+++ b/arduinoSrc1_0/USBDesc.h
@@ -0,0 +1,67 @@
+
+
+/* Copyright (c) 2011, Peter Barrett
+**
+** Permission to use, copy, modify, and/or distribute this software for
+** any purpose with or without fee is hereby granted, provided that the
+** above copyright notice and this permission notice appear in all copies.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+** SOFTWARE.
+*/
+
+#define CDC_ENABLED
+#define HID_ENABLED
+
+
+#ifdef CDC_ENABLED
+#define CDC_INTERFACE_COUNT 2
+#define CDC_ENPOINT_COUNT 3
+#else
+#define CDC_INTERFACE_COUNT 0
+#define CDC_ENPOINT_COUNT 0
+#endif
+
+#ifdef HID_ENABLED
+#define HID_INTERFACE_COUNT 1
+#define HID_ENPOINT_COUNT 1
+#else
+#define HID_INTERFACE_COUNT 0
+#define HID_ENPOINT_COUNT 0
+#endif
+
+#define CDC_ACM_INTERFACE 0 // CDC ACM
+#define CDC_DATA_INTERFACE 1 // CDC Data
+#define CDC_FIRST_ENDPOINT 1
+#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First
+#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1)
+#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2)
+
+#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface
+#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT)
+#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT)
+
+#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT)
+
+#ifdef CDC_ENABLED
+#define CDC_RX CDC_ENDPOINT_OUT
+#define CDC_TX CDC_ENDPOINT_IN
+#endif
+
+#ifdef HID_ENABLED
+#define HID_TX HID_ENDPOINT_INT
+#endif
+
+#define IMANUFACTURER 1
+#define IPRODUCT 2
+#define USB_PID_LEONARDO 0x0034
+#define USB_PID_MICRO 0x0035
+#define USB_VID 0x2341 // arduino LLC vid
+#define USB_PID ARDUINO_MODEL_USB_PID
+
diff --git a/arduinoSrc1_0/Udp.h b/arduinoSrc1_0/Udp.h
new file mode 100644
index 0000000..dc5644b
--- /dev/null
+++ b/arduinoSrc1_0/Udp.h
@@ -0,0 +1,88 @@
+/*
+ * Udp.cpp: Library to send/receive UDP packets.
+ *
+ * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these)
+ * 1) UDP does not guarantee the order in which assembled UDP packets are received. This
+ * might not happen often in practice, but in larger network topologies, a UDP
+ * packet can be received out of sequence.
+ * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being
+ * aware of it. Again, this may not be a concern in practice on small local networks.
+ * For more information, see http://www.cafeaulait.org/course/week12/35.html
+ *
+ * MIT License:
+ * Copyright (c) 2008 Bjoern Hartmann
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * bjoern@cs.stanford.edu 12/30/2008
+ */
+
+#ifndef udp_h
+#define udp_h
+
+#include <Stream.h>
+#include <IPAddress.h>
+
+class UDP : public Stream {
+
+public:
+ virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use
+ virtual void stop() =0; // Finish with the UDP socket
+
+ // Sending UDP packets
+
+ // Start building up a packet to send to the remote host specific in ip and port
+ // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port
+ virtual int beginPacket(IPAddress ip, uint16_t port) =0;
+ // Start building up a packet to send to the remote host specific in host and port
+ // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
+ virtual int beginPacket(const char *host, uint16_t port) =0;
+ // Finish off this packet and send it
+ // Returns 1 if the packet was sent successfully, 0 if there was an error
+ virtual int endPacket() =0;
+ // Write a single byte into the packet
+ virtual size_t write(uint8_t) =0;
+ // Write size bytes from buffer into the packet
+ virtual size_t write(const uint8_t *buffer, size_t size) =0;
+
+ // Start processing the next available incoming packet
+ // Returns the size of the packet in bytes, or 0 if no packets are available
+ virtual int parsePacket() =0;
+ // Number of bytes remaining in the current packet
+ virtual int available() =0;
+ // Read a single byte from the current packet
+ virtual int read() =0;
+ // Read up to len bytes from the current packet and place them into buffer
+ // Returns the number of bytes read, or 0 if none are available
+ virtual int read(unsigned char* buffer, size_t len) =0;
+ // Read up to len characters from the current packet and place them into buffer
+ // Returns the number of characters read, or 0 if none are available
+ virtual int read(char* buffer, size_t len) =0;
+ // Return the next byte from the current packet without moving on to the next byte
+ virtual int peek() =0;
+ virtual void flush() =0; // Finish reading the current packet
+
+ // Return the IP address of the host who sent the current incoming packet
+ virtual IPAddress remoteIP() =0;
+ // Return the port of the host who sent the current incoming packet
+ virtual uint16_t remotePort() =0;
+protected:
+ uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
+};
+
+#endif
diff --git a/arduinoSrc1_0/WCharacter.h b/arduinoSrc1_0/WCharacter.h
new file mode 100644
index 0000000..79733b5
--- /dev/null
+++ b/arduinoSrc1_0/WCharacter.h
@@ -0,0 +1,168 @@
+/*
+ WCharacter.h - Character utility functions for Wiring & Arduino
+ Copyright (c) 2010 Hernando Barragan. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef Character_h
+#define Character_h
+
+#include <ctype.h>
+
+// WCharacter.h prototypes
+inline boolean isAlphaNumeric(int c) __attribute__((always_inline));
+inline boolean isAlpha(int c) __attribute__((always_inline));
+inline boolean isAscii(int c) __attribute__((always_inline));
+inline boolean isWhitespace(int c) __attribute__((always_inline));
+inline boolean isControl(int c) __attribute__((always_inline));
+inline boolean isDigit(int c) __attribute__((always_inline));
+inline boolean isGraph(int c) __attribute__((always_inline));
+inline boolean isLowerCase(int c) __attribute__((always_inline));
+inline boolean isPrintable(int c) __attribute__((always_inline));
+inline boolean isPunct(int c) __attribute__((always_inline));
+inline boolean isSpace(int c) __attribute__((always_inline));
+inline boolean isUpperCase(int c) __attribute__((always_inline));
+inline boolean isHexadecimalDigit(int c) __attribute__((always_inline));
+inline int toAscii(int c) __attribute__((always_inline));
+inline int toLowerCase(int c) __attribute__((always_inline));
+inline int toUpperCase(int c)__attribute__((always_inline));
+
+
+// Checks for an alphanumeric character.
+// It is equivalent to (isalpha(c) || isdigit(c)).
+inline boolean isAlphaNumeric(int c)
+{
+ return ( isalnum(c) == 0 ? false : true);
+}
+
+
+// Checks for an alphabetic character.
+// It is equivalent to (isupper(c) || islower(c)).
+inline boolean isAlpha(int c)
+{
+ return ( isalpha(c) == 0 ? false : true);
+}
+
+
+// Checks whether c is a 7-bit unsigned char value
+// that fits into the ASCII character set.
+inline boolean isAscii(int c)
+{
+ return ( isascii (c) == 0 ? false : true);
+}
+
+
+// Checks for a blank character, that is, a space or a tab.
+inline boolean isWhitespace(int c)
+{
+ return ( isblank (c) == 0 ? false : true);
+}
+
+
+// Checks for a control character.
+inline boolean isControl(int c)
+{
+ return ( iscntrl (c) == 0 ? false : true);
+}
+
+
+// Checks for a digit (0 through 9).
+inline boolean isDigit(int c)
+{
+ return ( isdigit (c) == 0 ? false : true);
+}
+
+
+// Checks for any printable character except space.
+inline boolean isGraph(int c)
+{
+ return ( isgraph (c) == 0 ? false : true);
+}
+
+
+// Checks for a lower-case character.
+inline boolean isLowerCase(int c)
+{
+ return (islower (c) == 0 ? false : true);
+}
+
+
+// Checks for any printable character including space.
+inline boolean isPrintable(int c)
+{
+ return ( isprint (c) == 0 ? false : true);
+}
+
+
+// Checks for any printable character which is not a space
+// or an alphanumeric character.
+inline boolean isPunct(int c)
+{
+ return ( ispunct (c) == 0 ? false : true);
+}
+
+
+// Checks for white-space characters. For the avr-libc library,
+// these are: space, formfeed ('\f'), newline ('\n'), carriage
+// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v').
+inline boolean isSpace(int c)
+{
+ return ( isspace (c) == 0 ? false : true);
+}
+
+
+// Checks for an uppercase letter.
+inline boolean isUpperCase(int c)
+{
+ return ( isupper (c) == 0 ? false : true);
+}
+
+
+// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7
+// 8 9 a b c d e f A B C D E F.
+inline boolean isHexadecimalDigit(int c)
+{
+ return ( isxdigit (c) == 0 ? false : true);
+}
+
+
+// Converts c to a 7-bit unsigned char value that fits into the
+// ASCII character set, by clearing the high-order bits.
+inline int toAscii(int c)
+{
+ return toascii (c);
+}
+
+
+// Warning:
+// Many people will be unhappy if you use this function.
+// This function will convert accented letters into random
+// characters.
+
+// Converts the letter c to lower case, if possible.
+inline int toLowerCase(int c)
+{
+ return tolower (c);
+}
+
+
+// Converts the letter c to upper case, if possible.
+inline int toUpperCase(int c)
+{
+ return toupper (c);
+}
+
+#endif \ No newline at end of file
diff --git a/arduinoSrc1_0/WInterrupts.c b/arduinoSrc1_0/WInterrupts.c
new file mode 100644
index 0000000..75c713b
--- /dev/null
+++ b/arduinoSrc1_0/WInterrupts.c
@@ -0,0 +1,248 @@
+/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
+
+/*
+ Part of the Wiring project - http://wiring.uniandes.edu.co
+
+ Copyright (c) 2004-05 Hernando Barragan
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ Modified 24 November 2006 by David A. Mellis
+ Modified 1 August 2010 by Mark Sproul
+*/
+
+#include <inttypes.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include <stdio.h>
+
+#include "wiring_private.h"
+
+volatile static voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS];
+// volatile static voidFuncPtr twiIntFunc;
+
+void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) {
+ if(interruptNum < EXTERNAL_NUM_INTERRUPTS) {
+ intFunc[interruptNum] = userFunc;
+
+ // Configure the interrupt mode (trigger on low input, any change, rising
+ // edge, or falling edge). The mode constants were chosen to correspond
+ // to the configuration bits in the hardware register, so we simply shift
+ // the mode into place.
+
+ // Enable the interrupt.
+
+ switch (interruptNum) {
+#if defined(EICRA) && defined(EICRB) && defined(EIMSK)
+ case 2:
+ EICRA = (EICRA & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00);
+ EIMSK |= (1 << INT0);
+ break;
+ case 3:
+ EICRA = (EICRA & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10);
+ EIMSK |= (1 << INT1);
+ break;
+ case 4:
+ EICRA = (EICRA & ~((1 << ISC20) | (1 << ISC21))) | (mode << ISC20);
+ EIMSK |= (1 << INT2);
+ break;
+ case 5:
+ EICRA = (EICRA & ~((1 << ISC30) | (1 << ISC31))) | (mode << ISC30);
+ EIMSK |= (1 << INT3);
+ break;
+ case 0:
+ EICRB = (EICRB & ~((1 << ISC40) | (1 << ISC41))) | (mode << ISC40);
+ EIMSK |= (1 << INT4);
+ break;
+ case 1:
+ EICRB = (EICRB & ~((1 << ISC50) | (1 << ISC51))) | (mode << ISC50);
+ EIMSK |= (1 << INT5);
+ break;
+ case 6:
+ EICRB = (EICRB & ~((1 << ISC60) | (1 << ISC61))) | (mode << ISC60);
+ EIMSK |= (1 << INT6);
+ break;
+ case 7:
+ EICRB = (EICRB & ~((1 << ISC70) | (1 << ISC71))) | (mode << ISC70);
+ EIMSK |= (1 << INT7);
+ break;
+#else
+ case 0:
+ #if defined(EICRA) && defined(ISC00) && defined(EIMSK)
+ EICRA = (EICRA & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00);
+ EIMSK |= (1 << INT0);
+ #elif defined(MCUCR) && defined(ISC00) && defined(GICR)
+ MCUCR = (MCUCR & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00);
+ GICR |= (1 << INT0);
+ #elif defined(MCUCR) && defined(ISC00) && defined(GIMSK)
+ MCUCR = (MCUCR & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00);
+ GIMSK |= (1 << INT0);
+ #else
+ #error attachInterrupt not finished for this CPU (case 0)
+ #endif
+ break;
+
+ case 1:
+ #if defined(EICRA) && defined(ISC10) && defined(ISC11) && defined(EIMSK)
+ EICRA = (EICRA & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10);
+ EIMSK |= (1 << INT1);
+ #elif defined(MCUCR) && defined(ISC10) && defined(ISC11) && defined(GICR)
+ MCUCR = (MCUCR & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10);
+ GICR |= (1 << INT1);
+ #elif defined(MCUCR) && defined(ISC10) && defined(GIMSK) && defined(GIMSK)
+ MCUCR = (MCUCR & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10);
+ GIMSK |= (1 << INT1);
+ #else
+ #warning attachInterrupt may need some more work for this cpu (case 1)
+ #endif
+ break;
+#endif
+ }
+ }
+}
+
+void detachInterrupt(uint8_t interruptNum) {
+ if(interruptNum < EXTERNAL_NUM_INTERRUPTS) {
+ // Disable the interrupt. (We can't assume that interruptNum is equal
+ // to the number of the EIMSK bit to clear, as this isn't true on the
+ // ATmega8. There, INT0 is 6 and INT1 is 7.)
+ switch (interruptNum) {
+#if defined(EICRA) && defined(EICRB) && defined(EIMSK)
+ case 2:
+ EIMSK &= ~(1 << INT0);
+ break;
+ case 3:
+ EIMSK &= ~(1 << INT1);
+ break;
+ case 4:
+ EIMSK &= ~(1 << INT2);
+ break;
+ case 5:
+ EIMSK &= ~(1 << INT3);
+ break;
+ case 0:
+ EIMSK &= ~(1 << INT4);
+ break;
+ case 1:
+ EIMSK &= ~(1 << INT5);
+ break;
+ case 6:
+ EIMSK &= ~(1 << INT6);
+ break;
+ case 7:
+ EIMSK &= ~(1 << INT7);
+ break;
+#else
+ case 0:
+ #if defined(EIMSK) && defined(INT0)
+ EIMSK &= ~(1 << INT0);
+ #elif defined(GICR) && defined(ISC00)
+ GICR &= ~(1 << INT0); // atmega32
+ #elif defined(GIMSK) && defined(INT0)
+ GIMSK &= ~(1 << INT0);
+ #else
+ #error detachInterrupt not finished for this cpu
+ #endif
+ break;
+
+ case 1:
+ #if defined(EIMSK) && defined(INT1)
+ EIMSK &= ~(1 << INT1);
+ #elif defined(GICR) && defined(INT1)
+ GICR &= ~(1 << INT1); // atmega32
+ #elif defined(GIMSK) && defined(INT1)
+ GIMSK &= ~(1 << INT1);
+ #else
+ #warning detachInterrupt may need some more work for this cpu (case 1)
+ #endif
+ break;
+#endif
+ }
+
+ intFunc[interruptNum] = 0;
+ }
+}
+
+/*
+void attachInterruptTwi(void (*userFunc)(void) ) {
+ twiIntFunc = userFunc;
+}
+*/
+
+#if defined(EICRA) && defined(EICRB)
+
+SIGNAL(INT0_vect) {
+ if(intFunc[EXTERNAL_INT_2])
+ intFunc[EXTERNAL_INT_2]();
+}
+
+SIGNAL(INT1_vect) {
+ if(intFunc[EXTERNAL_INT_3])
+ intFunc[EXTERNAL_INT_3]();
+}
+
+SIGNAL(INT2_vect) {
+ if(intFunc[EXTERNAL_INT_4])
+ intFunc[EXTERNAL_INT_4]();
+}
+
+SIGNAL(INT3_vect) {
+ if(intFunc[EXTERNAL_INT_5])
+ intFunc[EXTERNAL_INT_5]();
+}
+
+SIGNAL(INT4_vect) {
+ if(intFunc[EXTERNAL_INT_0])
+ intFunc[EXTERNAL_INT_0]();
+}
+
+SIGNAL(INT5_vect) {
+ if(intFunc[EXTERNAL_INT_1])
+ intFunc[EXTERNAL_INT_1]();
+}
+
+SIGNAL(INT6_vect) {
+ if(intFunc[EXTERNAL_INT_6])
+ intFunc[EXTERNAL_INT_6]();
+}
+
+SIGNAL(INT7_vect) {
+ if(intFunc[EXTERNAL_INT_7])
+ intFunc[EXTERNAL_INT_7]();
+}
+
+#else
+
+SIGNAL(INT0_vect) {
+ if(intFunc[EXTERNAL_INT_0])
+ intFunc[EXTERNAL_INT_0]();
+}
+
+SIGNAL(INT1_vect) {
+ if(intFunc[EXTERNAL_INT_1])
+ intFunc[EXTERNAL_INT_1]();
+}
+
+#endif
+
+/*
+SIGNAL(SIG_2WIRE_SERIAL) {
+ if(twiIntFunc)
+ twiIntFunc();
+}
+*/
+
diff --git a/arduinoSrc1_0/WMath.cpp b/arduinoSrc1_0/WMath.cpp
new file mode 100644
index 0000000..2120c4c
--- /dev/null
+++ b/arduinoSrc1_0/WMath.cpp
@@ -0,0 +1,60 @@
+/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
+
+/*
+ Part of the Wiring project - http://wiring.org.co
+ Copyright (c) 2004-06 Hernando Barragan
+ Modified 13 August 2006, David A. Mellis for Arduino - http://www.arduino.cc/
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id$
+*/
+
+extern "C" {
+ #include "stdlib.h"
+}
+
+void randomSeed(unsigned int seed)
+{
+ if (seed != 0) {
+ srandom(seed);
+ }
+}
+
+long random(long howbig)
+{
+ if (howbig == 0) {
+ return 0;
+ }
+ return random() % howbig;
+}
+
+long random(long howsmall, long howbig)
+{
+ if (howsmall >= howbig) {
+ return howsmall;
+ }
+ long diff = howbig - howsmall;
+ return random(diff) + howsmall;
+}
+
+long map(long x, long in_min, long in_max, long out_min, long out_max)
+{
+ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
+}
+
+unsigned int makeWord(unsigned int w) { return w; }
+unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file
diff --git a/arduinoSrc1_0/WString.cpp b/arduinoSrc1_0/WString.cpp
new file mode 100644
index 0000000..3e81331
--- /dev/null
+++ b/arduinoSrc1_0/WString.cpp
@@ -0,0 +1,645 @@
+/*
+ WString.cpp - String library for Wiring & Arduino
+ ...mostly rewritten by Paul Stoffregen...
+ Copyright (c) 2009-10 Hernando Barragan. All rights reserved.
+ Copyright 2011, Paul Stoffregen, paul@pjrc.com
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "WString.h"
+
+
+/*********************************************/
+/* Constructors */
+/*********************************************/
+
+String::String(const char *cstr)
+{
+ init();
+ if (cstr) copy(cstr, strlen(cstr));
+}
+
+String::String(const String &value)
+{
+ init();
+ *this = value;
+}
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+String::String(String &&rval)
+{
+ init();
+ move(rval);
+}
+String::String(StringSumHelper &&rval)
+{
+ init();
+ move(rval);
+}
+#endif
+
+String::String(char c)
+{
+ init();
+ char buf[2];
+ buf[0] = c;
+ buf[1] = 0;
+ *this = buf;
+}
+
+String::String(unsigned char value, unsigned char base)
+{
+ init();
+ char buf[9];
+ utoa(value, buf, base);
+ *this = buf;
+}
+
+String::String(int value, unsigned char base)
+{
+ init();
+ char buf[18];
+ itoa(value, buf, base);
+ *this = buf;
+}
+
+String::String(unsigned int value, unsigned char base)
+{
+ init();
+ char buf[17];
+ utoa(value, buf, base);
+ *this = buf;
+}
+
+String::String(long value, unsigned char base)
+{
+ init();
+ char buf[34];
+ ltoa(value, buf, base);
+ *this = buf;
+}
+
+String::String(unsigned long value, unsigned char base)
+{
+ init();
+ char buf[33];
+ ultoa(value, buf, base);
+ *this = buf;
+}
+
+String::~String()
+{
+ free(buffer);
+}
+
+/*********************************************/
+/* Memory Management */
+/*********************************************/
+
+inline void String::init(void)
+{
+ buffer = NULL;
+ capacity = 0;
+ len = 0;
+ flags = 0;
+}
+
+void String::invalidate(void)
+{
+ if (buffer) free(buffer);
+ buffer = NULL;
+ capacity = len = 0;
+}
+
+unsigned char String::reserve(unsigned int size)
+{
+ if (buffer && capacity >= size) return 1;
+ if (changeBuffer(size)) {
+ if (len == 0) buffer[0] = 0;
+ return 1;
+ }
+ return 0;
+}
+
+unsigned char String::changeBuffer(unsigned int maxStrLen)
+{
+ char *newbuffer = (char *)realloc(buffer, maxStrLen + 1);
+ if (newbuffer) {
+ buffer = newbuffer;
+ capacity = maxStrLen;
+ return 1;
+ }
+ return 0;
+}
+
+/*********************************************/
+/* Copy and Move */
+/*********************************************/
+
+String & String::copy(const char *cstr, unsigned int length)
+{
+ if (!reserve(length)) {
+ invalidate();
+ return *this;
+ }
+ len = length;
+ strcpy(buffer, cstr);
+ return *this;
+}
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+void String::move(String &rhs)
+{
+ if (buffer) {
+ if (capacity >= rhs.len) {
+ strcpy(buffer, rhs.buffer);
+ len = rhs.len;
+ rhs.len = 0;
+ return;
+ } else {
+ free(buffer);
+ }
+ }
+ buffer = rhs.buffer;
+ capacity = rhs.capacity;
+ len = rhs.len;
+ rhs.buffer = NULL;
+ rhs.capacity = 0;
+ rhs.len = 0;
+}
+#endif
+
+String & String::operator = (const String &rhs)
+{
+ if (this == &rhs) return *this;
+
+ if (rhs.buffer) copy(rhs.buffer, rhs.len);
+ else invalidate();
+
+ return *this;
+}
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+String & String::operator = (String &&rval)
+{
+ if (this != &rval) move(rval);
+ return *this;
+}
+
+String & String::operator = (StringSumHelper &&rval)
+{
+ if (this != &rval) move(rval);
+ return *this;
+}
+#endif
+
+String & String::operator = (const char *cstr)
+{
+ if (cstr) copy(cstr, strlen(cstr));
+ else invalidate();
+
+ return *this;
+}
+
+/*********************************************/
+/* concat */
+/*********************************************/
+
+unsigned char String::concat(const String &s)
+{
+ return concat(s.buffer, s.len);
+}
+
+unsigned char String::concat(const char *cstr, unsigned int length)
+{
+ unsigned int newlen = len + length;
+ if (!cstr) return 0;
+ if (length == 0) return 1;
+ if (!reserve(newlen)) return 0;
+ strcpy(buffer + len, cstr);
+ len = newlen;
+ return 1;
+}
+
+unsigned char String::concat(const char *cstr)
+{
+ if (!cstr) return 0;
+ return concat(cstr, strlen(cstr));
+}
+
+unsigned char String::concat(char c)
+{
+ char buf[2];
+ buf[0] = c;
+ buf[1] = 0;
+ return concat(buf, 1);
+}
+
+unsigned char String::concat(unsigned char num)
+{
+ char buf[4];
+ itoa(num, buf, 10);
+ return concat(buf, strlen(buf));
+}
+
+unsigned char String::concat(int num)
+{
+ char buf[7];
+ itoa(num, buf, 10);
+ return concat(buf, strlen(buf));
+}
+
+unsigned char String::concat(unsigned int num)
+{
+ char buf[6];
+ utoa(num, buf, 10);
+ return concat(buf, strlen(buf));
+}
+
+unsigned char String::concat(long num)
+{
+ char buf[12];
+ ltoa(num, buf, 10);
+ return concat(buf, strlen(buf));
+}
+
+unsigned char String::concat(unsigned long num)
+{
+ char buf[11];
+ ultoa(num, buf, 10);
+ return concat(buf, strlen(buf));
+}
+
+/*********************************************/
+/* Concatenate */
+/*********************************************/
+
+StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(rhs.buffer, rhs.len)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, char c)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(c)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(num)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, int num)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(num)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(num)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, long num)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(num)) a.invalidate();
+ return a;
+}
+
+StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num)
+{
+ StringSumHelper &a = const_cast<StringSumHelper&>(lhs);
+ if (!a.concat(num)) a.invalidate();
+ return a;
+}
+
+/*********************************************/
+/* Comparison */
+/*********************************************/
+
+int String::compareTo(const String &s) const
+{
+ if (!buffer || !s.buffer) {
+ if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer;
+ if (buffer && len > 0) return *(unsigned char *)buffer;
+ return 0;
+ }
+ return strcmp(buffer, s.buffer);
+}
+
+unsigned char String::equals(const String &s2) const
+{
+ return (len == s2.len && compareTo(s2) == 0);
+}
+
+unsigned char String::equals(const char *cstr) const
+{
+ if (len == 0) return (cstr == NULL || *cstr == 0);
+ if (cstr == NULL) return buffer[0] == 0;
+ return strcmp(buffer, cstr) == 0;
+}
+
+unsigned char String::operator<(const String &rhs) const
+{
+ return compareTo(rhs) < 0;
+}
+
+unsigned char String::operator>(const String &rhs) const
+{
+ return compareTo(rhs) > 0;
+}
+
+unsigned char String::operator<=(const String &rhs) const
+{
+ return compareTo(rhs) <= 0;
+}
+
+unsigned char String::operator>=(const String &rhs) const
+{
+ return compareTo(rhs) >= 0;
+}
+
+unsigned char String::equalsIgnoreCase( const String &s2 ) const
+{
+ if (this == &s2) return 1;
+ if (len != s2.len) return 0;
+ if (len == 0) return 1;
+ const char *p1 = buffer;
+ const char *p2 = s2.buffer;
+ while (*p1) {
+ if (tolower(*p1++) != tolower(*p2++)) return 0;
+ }
+ return 1;
+}
+
+unsigned char String::startsWith( const String &s2 ) const
+{
+ if (len < s2.len) return 0;
+ return startsWith(s2, 0);
+}
+
+unsigned char String::startsWith( const String &s2, unsigned int offset ) const
+{
+ if (offset > len - s2.len || !buffer || !s2.buffer) return 0;
+ return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0;
+}
+
+unsigned char String::endsWith( const String &s2 ) const
+{
+ if ( len < s2.len || !buffer || !s2.buffer) return 0;
+ return strcmp(&buffer[len - s2.len], s2.buffer) == 0;
+}
+
+/*********************************************/
+/* Character Access */
+/*********************************************/
+
+char String::charAt(unsigned int loc) const
+{
+ return operator[](loc);
+}
+
+void String::setCharAt(unsigned int loc, char c)
+{
+ if (loc < len) buffer[loc] = c;
+}
+
+char & String::operator[](unsigned int index)
+{
+ static char dummy_writable_char;
+ if (index >= len || !buffer) {
+ dummy_writable_char = 0;
+ return dummy_writable_char;
+ }
+ return buffer[index];
+}
+
+char String::operator[]( unsigned int index ) const
+{
+ if (index >= len || !buffer) return 0;
+ return buffer[index];
+}
+
+void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const
+{
+ if (!bufsize || !buf) return;
+ if (index >= len) {
+ buf[0] = 0;
+ return;
+ }
+ unsigned int n = bufsize - 1;
+ if (n > len - index) n = len - index;
+ strncpy((char *)buf, buffer + index, n);
+ buf[n] = 0;
+}
+
+/*********************************************/
+/* Search */
+/*********************************************/
+
+int String::indexOf(char c) const
+{
+ return indexOf(c, 0);
+}
+
+int String::indexOf( char ch, unsigned int fromIndex ) const
+{
+ if (fromIndex >= len) return -1;
+ const char* temp = strchr(buffer + fromIndex, ch);
+ if (temp == NULL) return -1;
+ return temp - buffer;
+}
+
+int String::indexOf(const String &s2) const
+{
+ return indexOf(s2, 0);
+}
+
+int String::indexOf(const String &s2, unsigned int fromIndex) const
+{
+ if (fromIndex >= len) return -1;
+ const char *found = strstr(buffer + fromIndex, s2.buffer);
+ if (found == NULL) return -1;
+ return found - buffer;
+}
+
+int String::lastIndexOf( char theChar ) const
+{
+ return lastIndexOf(theChar, len - 1);
+}
+
+int String::lastIndexOf(char ch, unsigned int fromIndex) const
+{
+ if (fromIndex >= len || fromIndex < 0) return -1;
+ char tempchar = buffer[fromIndex + 1];
+ buffer[fromIndex + 1] = '\0';
+ char* temp = strrchr( buffer, ch );
+ buffer[fromIndex + 1] = tempchar;
+ if (temp == NULL) return -1;
+ return temp - buffer;
+}
+
+int String::lastIndexOf(const String &s2) const
+{
+ return lastIndexOf(s2, len - s2.len);
+}
+
+int String::lastIndexOf(const String &s2, unsigned int fromIndex) const
+{
+ if (s2.len == 0 || len == 0 || s2.len > len || fromIndex < 0) return -1;
+ if (fromIndex >= len) fromIndex = len - 1;
+ int found = -1;
+ for (char *p = buffer; p <= buffer + fromIndex; p++) {
+ p = strstr(p, s2.buffer);
+ if (!p) break;
+ if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer;
+ }
+ return found;
+}
+
+String String::substring( unsigned int left ) const
+{
+ return substring(left, len);
+}
+
+String String::substring(unsigned int left, unsigned int right) const
+{
+ if (left > right) {
+ unsigned int temp = right;
+ right = left;
+ left = temp;
+ }
+ String out;
+ if (left > len) return out;
+ if (right > len) right = len;
+ char temp = buffer[right]; // save the replaced character
+ buffer[right] = '\0';
+ out = buffer + left; // pointer arithmetic
+ buffer[right] = temp; //restore character
+ return out;
+}
+
+/*********************************************/
+/* Modification */
+/*********************************************/
+
+void String::replace(char find, char replace)
+{
+ if (!buffer) return;
+ for (char *p = buffer; *p; p++) {
+ if (*p == find) *p = replace;
+ }
+}
+
+void String::replace(const String& find, const String& replace)
+{
+ if (len == 0 || find.len == 0) return;
+ int diff = replace.len - find.len;
+ char *readFrom = buffer;
+ char *foundAt;
+ if (diff == 0) {
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ memcpy(foundAt, replace.buffer, replace.len);
+ readFrom = foundAt + replace.len;
+ }
+ } else if (diff < 0) {
+ char *writeTo = buffer;
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ unsigned int n = foundAt - readFrom;
+ memcpy(writeTo, readFrom, n);
+ writeTo += n;
+ memcpy(writeTo, replace.buffer, replace.len);
+ writeTo += replace.len;
+ readFrom = foundAt + find.len;
+ len += diff;
+ }
+ strcpy(writeTo, readFrom);
+ } else {
+ unsigned int size = len; // compute size needed for result
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ readFrom = foundAt + find.len;
+ size += diff;
+ }
+ if (size == len) return;
+ if (size > capacity && !changeBuffer(size)) return; // XXX: tell user!
+ int index = len - 1;
+ while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
+ readFrom = buffer + index + find.len;
+ memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
+ len += diff;
+ buffer[len] = 0;
+ memcpy(buffer + index, replace.buffer, replace.len);
+ index--;
+ }
+ }
+}
+
+void String::toLowerCase(void)
+{
+ if (!buffer) return;
+ for (char *p = buffer; *p; p++) {
+ *p = tolower(*p);
+ }
+}
+
+void String::toUpperCase(void)
+{
+ if (!buffer) return;
+ for (char *p = buffer; *p; p++) {
+ *p = toupper(*p);
+ }
+}
+
+void String::trim(void)
+{
+ if (!buffer || len == 0) return;
+ char *begin = buffer;
+ while (isspace(*begin)) begin++;
+ char *end = buffer + len - 1;
+ while (isspace(*end) && end >= begin) end--;
+ len = end + 1 - begin;
+ if (begin > buffer) memcpy(buffer, begin, len);
+ buffer[len] = 0;
+}
+
+/*********************************************/
+/* Parsing / Conversion */
+/*********************************************/
+
+long String::toInt(void) const
+{
+ if (buffer) return atol(buffer);
+ return 0;
+}
+
+
diff --git a/arduinoSrc1_0/WString.h b/arduinoSrc1_0/WString.h
new file mode 100644
index 0000000..d76d2a3
--- /dev/null
+++ b/arduinoSrc1_0/WString.h
@@ -0,0 +1,205 @@
+/*
+ WString.h - String library for Wiring & Arduino
+ ...mostly rewritten by Paul Stoffregen...
+ Copyright (c) 2009-10 Hernando Barragan. All right reserved.
+ Copyright 2011, Paul Stoffregen, paul@pjrc.com
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef String_class_h
+#define String_class_h
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <avr/pgmspace.h>
+
+// When compiling programs with this class, the following gcc parameters
+// dramatically increase performance and memory (RAM) efficiency, typically
+// with little or no increase in code size.
+// -felide-constructors
+// -std=c++0x
+
+class __FlashStringHelper;
+#define F(string_literal) (reinterpret_cast<__FlashStringHelper *>(PSTR(string_literal)))
+
+// An inherited class for holding the result of a concatenation. These
+// result objects are assumed to be writable by subsequent concatenations.
+class StringSumHelper;
+
+// The string class
+class String
+{
+ // use a function pointer to allow for "if (s)" without the
+ // complications of an operator bool(). for more information, see:
+ // http://www.artima.com/cppsource/safebool.html
+ typedef void (String::*StringIfHelperType)() const;
+ void StringIfHelper() const {}
+
+public:
+ // constructors
+ // creates a copy of the initial value.
+ // if the initial value is null or invalid, or if memory allocation
+ // fails, the string will be marked as invalid (i.e. "if (s)" will
+ // be false).
+ String(const char *cstr = "");
+ String(const String &str);
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
+ String(String &&rval);
+ String(StringSumHelper &&rval);
+ #endif
+ explicit String(char c);
+ explicit String(unsigned char, unsigned char base=10);
+ explicit String(int, unsigned char base=10);
+ explicit String(unsigned int, unsigned char base=10);
+ explicit String(long, unsigned char base=10);
+ explicit String(unsigned long, unsigned char base=10);
+ ~String(void);
+
+ // memory management
+ // return true on success, false on failure (in which case, the string
+ // is left unchanged). reserve(0), if successful, will validate an
+ // invalid string (i.e., "if (s)" will be true afterwards)
+ unsigned char reserve(unsigned int size);
+ inline unsigned int length(void) const {return len;}
+
+ // creates a copy of the assigned value. if the value is null or
+ // invalid, or if the memory allocation fails, the string will be
+ // marked as invalid ("if (s)" will be false).
+ String & operator = (const String &rhs);
+ String & operator = (const char *cstr);
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
+ String & operator = (String &&rval);
+ String & operator = (StringSumHelper &&rval);
+ #endif
+
+ // concatenate (works w/ built-in types)
+
+ // returns true on success, false on failure (in which case, the string
+ // is left unchanged). if the argument is null or invalid, the
+ // concatenation is considered unsucessful.
+ unsigned char concat(const String &str);
+ unsigned char concat(const char *cstr);
+ unsigned char concat(char c);
+ unsigned char concat(unsigned char c);
+ unsigned char concat(int num);
+ unsigned char concat(unsigned int num);
+ unsigned char concat(long num);
+ unsigned char concat(unsigned long num);
+
+ // if there's not enough memory for the concatenated value, the string
+ // will be left unchanged (but this isn't signalled in any way)
+ String & operator += (const String &rhs) {concat(rhs); return (*this);}
+ String & operator += (const char *cstr) {concat(cstr); return (*this);}
+ String & operator += (char c) {concat(c); return (*this);}
+ String & operator += (unsigned char num) {concat(num); return (*this);}
+ String & operator += (int num) {concat(num); return (*this);}
+ String & operator += (unsigned int num) {concat(num); return (*this);}
+ String & operator += (long num) {concat(num); return (*this);}
+ String & operator += (unsigned long num) {concat(num); return (*this);}
+
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, char c);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, int num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, long num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
+
+ // comparison (only works w/ Strings and "strings")
+ operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; }
+ int compareTo(const String &s) const;
+ unsigned char equals(const String &s) const;
+ unsigned char equals(const char *cstr) const;
+ unsigned char operator == (const String &rhs) const {return equals(rhs);}
+ unsigned char operator == (const char *cstr) const {return equals(cstr);}
+ unsigned char operator != (const String &rhs) const {return !equals(rhs);}
+ unsigned char operator != (const char *cstr) const {return !equals(cstr);}
+ unsigned char operator < (const String &rhs) const;
+ unsigned char operator > (const String &rhs) const;
+ unsigned char operator <= (const String &rhs) const;
+ unsigned char operator >= (const String &rhs) const;
+ unsigned char equalsIgnoreCase(const String &s) const;
+ unsigned char startsWith( const String &prefix) const;
+ unsigned char startsWith(const String &prefix, unsigned int offset) const;
+ unsigned char endsWith(const String &suffix) const;
+
+ // character acccess
+ char charAt(unsigned int index) const;
+ void setCharAt(unsigned int index, char c);
+ char operator [] (unsigned int index) const;
+ char& operator [] (unsigned int index);
+ void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;
+ void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
+ {getBytes((unsigned char *)buf, bufsize, index);}
+
+ // search
+ int indexOf( char ch ) const;
+ int indexOf( char ch, unsigned int fromIndex ) const;
+ int indexOf( const String &str ) const;
+ int indexOf( const String &str, unsigned int fromIndex ) const;
+ int lastIndexOf( char ch ) const;
+ int lastIndexOf( char ch, unsigned int fromIndex ) const;
+ int lastIndexOf( const String &str ) const;
+ int lastIndexOf( const String &str, unsigned int fromIndex ) const;
+ String substring( unsigned int beginIndex ) const;
+ String substring( unsigned int beginIndex, unsigned int endIndex ) const;
+
+ // modification
+ void replace(char find, char replace);
+ void replace(const String& find, const String& replace);
+ void toLowerCase(void);
+ void toUpperCase(void);
+ void trim(void);
+
+ // parsing/conversion
+ long toInt(void) const;
+
+protected:
+ char *buffer; // the actual char array
+ unsigned int capacity; // the array length minus one (for the '\0')
+ unsigned int len; // the String length (not counting the '\0')
+ unsigned char flags; // unused, for future features
+protected:
+ void init(void);
+ void invalidate(void);
+ unsigned char changeBuffer(unsigned int maxStrLen);
+ unsigned char concat(const char *cstr, unsigned int length);
+
+ // copy and move
+ String & copy(const char *cstr, unsigned int length);
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
+ void move(String &rhs);
+ #endif
+};
+
+class StringSumHelper : public String
+{
+public:
+ StringSumHelper(const String &s) : String(s) {}
+ StringSumHelper(const char *p) : String(p) {}
+ StringSumHelper(char c) : String(c) {}
+ StringSumHelper(unsigned char num) : String(num) {}
+ StringSumHelper(int num) : String(num) {}
+ StringSumHelper(unsigned int num) : String(num) {}
+ StringSumHelper(long num) : String(num) {}
+ StringSumHelper(unsigned long num) : String(num) {}
+};
+
+#endif // __cplusplus
+#endif // String_class_h
diff --git a/arduinoSrc1_0/binary.h b/arduinoSrc1_0/binary.h
new file mode 100644
index 0000000..af14980
--- /dev/null
+++ b/arduinoSrc1_0/binary.h
@@ -0,0 +1,515 @@
+#ifndef Binary_h
+#define Binary_h
+
+#define B0 0
+#define B00 0
+#define B000 0
+#define B0000 0
+#define B00000 0
+#define B000000 0
+#define B0000000 0
+#define B00000000 0
+#define B1 1
+#define B01 1
+#define B001 1
+#define B0001 1
+#define B00001 1
+#define B000001 1
+#define B0000001 1
+#define B00000001 1
+#define B10 2
+#define B010 2
+#define B0010 2
+#define B00010 2
+#define B000010 2
+#define B0000010 2
+#define B00000010 2
+#define B11 3
+#define B011 3
+#define B0011 3
+#define B00011 3
+#define B000011 3
+#define B0000011 3
+#define B00000011 3
+#define B100 4
+#define B0100 4
+#define B00100 4
+#define B000100 4
+#define B0000100 4
+#define B00000100 4
+#define B101 5
+#define B0101 5
+#define B00101 5
+#define B000101 5
+#define B0000101 5
+#define B00000101 5
+#define B110 6
+#define B0110 6
+#define B00110 6
+#define B000110 6
+#define B0000110 6
+#define B00000110 6
+#define B111 7
+#define B0111 7
+#define B00111 7
+#define B000111 7
+#define B0000111 7
+#define B00000111 7
+#define B1000 8
+#define B01000 8
+#define B001000 8
+#define B0001000 8
+#define B00001000 8
+#define B1001 9
+#define B01001 9
+#define B001001 9
+#define B0001001 9
+#define B00001001 9
+#define B1010 10
+#define B01010 10
+#define B001010 10
+#define B0001010 10
+#define B00001010 10
+#define B1011 11
+#define B01011 11
+#define B001011 11
+#define B0001011 11
+#define B00001011 11
+#define B1100 12
+#define B01100 12
+#define B001100 12
+#define B0001100 12
+#define B00001100 12
+#define B1101 13
+#define B01101 13
+#define B001101 13
+#define B0001101 13
+#define B00001101 13
+#define B1110 14
+#define B01110 14
+#define B001110 14
+#define B0001110 14
+#define B00001110 14
+#define B1111 15
+#define B01111 15
+#define B001111 15
+#define B0001111 15
+#define B00001111 15
+#define B10000 16
+#define B010000 16
+#define B0010000 16
+#define B00010000 16
+#define B10001 17
+#define B010001 17
+#define B0010001 17
+#define B00010001 17
+#define B10010 18
+#define B010010 18
+#define B0010010 18
+#define B00010010 18
+#define B10011 19
+#define B010011 19
+#define B0010011 19
+#define B00010011 19
+#define B10100 20
+#define B010100 20
+#define B0010100 20
+#define B00010100 20
+#define B10101 21
+#define B010101 21
+#define B0010101 21
+#define B00010101 21
+#define B10110 22
+#define B010110 22
+#define B0010110 22
+#define B00010110 22
+#define B10111 23
+#define B010111 23
+#define B0010111 23
+#define B00010111 23
+#define B11000 24
+#define B011000 24
+#define B0011000 24
+#define B00011000 24
+#define B11001 25
+#define B011001 25
+#define B0011001 25
+#define B00011001 25
+#define B11010 26
+#define B011010 26
+#define B0011010 26
+#define B00011010 26
+#define B11011 27
+#define B011011 27
+#define B0011011 27
+#define B00011011 27
+#define B11100 28
+#define B011100 28
+#define B0011100 28
+#define B00011100 28
+#define B11101 29
+#define B011101 29
+#define B0011101 29
+#define B00011101 29
+#define B11110 30
+#define B011110 30
+#define B0011110 30
+#define B00011110 30
+#define B11111 31
+#define B011111 31
+#define B0011111 31
+#define B00011111 31
+#define B100000 32
+#define B0100000 32
+#define B00100000 32
+#define B100001 33
+#define B0100001 33
+#define B00100001 33
+#define B100010 34
+#define B0100010 34
+#define B00100010 34
+#define B100011 35
+#define B0100011 35
+#define B00100011 35
+#define B100100 36
+#define B0100100 36
+#define B00100100 36
+#define B100101 37
+#define B0100101 37
+#define B00100101 37
+#define B100110 38
+#define B0100110 38
+#define B00100110 38
+#define B100111 39
+#define B0100111 39
+#define B00100111 39
+#define B101000 40
+#define B0101000 40
+#define B00101000 40
+#define B101001 41
+#define B0101001 41
+#define B00101001 41
+#define B101010 42
+#define B0101010 42
+#define B00101010 42
+#define B101011 43
+#define B0101011 43
+#define B00101011 43
+#define B101100 44
+#define B0101100 44
+#define B00101100 44
+#define B101101 45
+#define B0101101 45
+#define B00101101 45
+#define B101110 46
+#define B0101110 46
+#define B00101110 46
+#define B101111 47
+#define B0101111 47
+#define B00101111 47
+#define B110000 48
+#define B0110000 48
+#define B00110000 48
+#define B110001 49
+#define B0110001 49
+#define B00110001 49
+#define B110010 50
+#define B0110010 50
+#define B00110010 50
+#define B110011 51
+#define B0110011 51
+#define B00110011 51
+#define B110100 52
+#define B0110100 52
+#define B00110100 52
+#define B110101 53
+#define B0110101 53
+#define B00110101 53
+#define B110110 54
+#define B0110110 54
+#define B00110110 54
+#define B110111 55
+#define B0110111 55
+#define B00110111 55
+#define B111000 56
+#define B0111000 56
+#define B00111000 56
+#define B111001 57
+#define B0111001 57
+#define B00111001 57
+#define B111010 58
+#define B0111010 58
+#define B00111010 58
+#define B111011 59
+#define B0111011 59
+#define B00111011 59
+#define B111100 60
+#define B0111100 60
+#define B00111100 60
+#define B111101 61
+#define B0111101 61
+#define B00111101 61
+#define B111110 62
+#define B0111110 62
+#define B00111110 62
+#define B111111 63
+#define B0111111 63
+#define B00111111 63
+#define B1000000 64
+#define B01000000 64
+#define B1000001 65
+#define B01000001 65
+#define B1000010 66
+#define B01000010 66
+#define B1000011 67
+#define B01000011 67
+#define B1000100 68
+#define B01000100 68
+#define B1000101 69
+#define B01000101 69
+#define B1000110 70
+#define B01000110 70
+#define B1000111 71
+#define B01000111 71
+#define B1001000 72
+#define B01001000 72
+#define B1001001 73
+#define B01001001 73
+#define B1001010 74
+#define B01001010 74
+#define B1001011 75
+#define B01001011 75
+#define B1001100 76
+#define B01001100 76
+#define B1001101 77
+#define B01001101 77
+#define B1001110 78
+#define B01001110 78
+#define B1001111 79
+#define B01001111 79
+#define B1010000 80
+#define B01010000 80
+#define B1010001 81
+#define B01010001 81
+#define B1010010 82
+#define B01010010 82
+#define B1010011 83
+#define B01010011 83
+#define B1010100 84
+#define B01010100 84
+#define B1010101 85
+#define B01010101 85
+#define B1010110 86
+#define B01010110 86
+#define B1010111 87
+#define B01010111 87
+#define B1011000 88
+#define B01011000 88
+#define B1011001 89
+#define B01011001 89
+#define B1011010 90
+#define B01011010 90
+#define B1011011 91
+#define B01011011 91
+#define B1011100 92
+#define B01011100 92
+#define B1011101 93
+#define B01011101 93
+#define B1011110 94
+#define B01011110 94
+#define B1011111 95
+#define B01011111 95
+#define B1100000 96
+#define B01100000 96
+#define B1100001 97
+#define B01100001 97
+#define B1100010 98
+#define B01100010 98
+#define B1100011 99
+#define B01100011 99
+#define B1100100 100
+#define B01100100 100
+#define B1100101 101
+#define B01100101 101
+#define B1100110 102
+#define B01100110 102
+#define B1100111 103
+#define B01100111 103
+#define B1101000 104
+#define B01101000 104
+#define B1101001 105
+#define B01101001 105
+#define B1101010 106
+#define B01101010 106
+#define B1101011 107
+#define B01101011 107
+#define B1101100 108
+#define B01101100 108
+#define B1101101 109
+#define B01101101 109
+#define B1101110 110
+#define B01101110 110
+#define B1101111 111
+#define B01101111 111
+#define B1110000 112
+#define B01110000 112
+#define B1110001 113
+#define B01110001 113
+#define B1110010 114
+#define B01110010 114
+#define B1110011 115
+#define B01110011 115
+#define B1110100 116
+#define B01110100 116
+#define B1110101 117
+#define B01110101 117
+#define B1110110 118
+#define B01110110 118
+#define B1110111 119
+#define B01110111 119
+#define B1111000 120
+#define B01111000 120
+#define B1111001 121
+#define B01111001 121
+#define B1111010 122
+#define B01111010 122
+#define B1111011 123
+#define B01111011 123
+#define B1111100 124
+#define B01111100 124
+#define B1111101 125
+#define B01111101 125
+#define B1111110 126
+#define B01111110 126
+#define B1111111 127
+#define B01111111 127
+#define B10000000 128
+#define B10000001 129
+#define B10000010 130
+#define B10000011 131
+#define B10000100 132
+#define B10000101 133
+#define B10000110 134
+#define B10000111 135
+#define B10001000 136
+#define B10001001 137
+#define B10001010 138
+#define B10001011 139
+#define B10001100 140
+#define B10001101 141
+#define B10001110 142
+#define B10001111 143
+#define B10010000 144
+#define B10010001 145
+#define B10010010 146
+#define B10010011 147
+#define B10010100 148
+#define B10010101 149
+#define B10010110 150
+#define B10010111 151
+#define B10011000 152
+#define B10011001 153
+#define B10011010 154
+#define B10011011 155
+#define B10011100 156
+#define B10011101 157
+#define B10011110 158
+#define B10011111 159
+#define B10100000 160
+#define B10100001 161
+#define B10100010 162
+#define B10100011 163
+#define B10100100 164
+#define B10100101 165
+#define B10100110 166
+#define B10100111 167
+#define B10101000 168
+#define B10101001 169
+#define B10101010 170
+#define B10101011 171
+#define B10101100 172
+#define B10101101 173
+#define B10101110 174
+#define B10101111 175
+#define B10110000 176
+#define B10110001 177
+#define B10110010 178
+#define B10110011 179
+#define B10110100 180
+#define B10110101 181
+#define B10110110 182
+#define B10110111 183
+#define B10111000 184
+#define B10111001 185
+#define B10111010 186
+#define B10111011 187
+#define B10111100 188
+#define B10111101 189
+#define B10111110 190
+#define B10111111 191
+#define B11000000 192
+#define B11000001 193
+#define B11000010 194
+#define B11000011 195
+#define B11000100 196
+#define B11000101 197
+#define B11000110 198
+#define B11000111 199
+#define B11001000 200
+#define B11001001 201
+#define B11001010 202
+#define B11001011 203
+#define B11001100 204
+#define B11001101 205
+#define B11001110 206
+#define B11001111 207
+#define B11010000 208
+#define B11010001 209
+#define B11010010 210
+#define B11010011 211
+#define B11010100 212
+#define B11010101 213
+#define B11010110 214
+#define B11010111 215
+#define B11011000 216
+#define B11011001 217
+#define B11011010 218
+#define B11011011 219
+#define B11011100 220
+#define B11011101 221
+#define B11011110 222
+#define B11011111 223
+#define B11100000 224
+#define B11100001 225
+#define B11100010 226
+#define B11100011 227
+#define B11100100 228
+#define B11100101 229
+#define B11100110 230
+#define B11100111 231
+#define B11101000 232
+#define B11101001 233
+#define B11101010 234
+#define B11101011 235
+#define B11101100 236
+#define B11101101 237
+#define B11101110 238
+#define B11101111 239
+#define B11110000 240
+#define B11110001 241
+#define B11110010 242
+#define B11110011 243
+#define B11110100 244
+#define B11110101 245
+#define B11110110 246
+#define B11110111 247
+#define B11111000 248
+#define B11111001 249
+#define B11111010 250
+#define B11111011 251
+#define B11111100 252
+#define B11111101 253
+#define B11111110 254
+#define B11111111 255
+
+#endif
diff --git a/arduinoSrc1_0/main.cpp b/arduinoSrc1_0/main.cpp
new file mode 100644
index 0000000..34450f4
--- /dev/null
+++ b/arduinoSrc1_0/main.cpp
@@ -0,0 +1,20 @@
+#include <Arduino.h>
+
+int main(void)
+{
+ init();
+
+#if defined(USBCON)
+ USB.attach();
+#endif
+
+ setup();
+
+ for (;;) {
+ loop();
+ if (serialEventRun) serialEventRun();
+ }
+
+ return 0;
+}
+
diff --git a/arduinoSrc1_0/new.cpp b/arduinoSrc1_0/new.cpp
new file mode 100644
index 0000000..0f6d422
--- /dev/null
+++ b/arduinoSrc1_0/new.cpp
@@ -0,0 +1,18 @@
+#include <new.h>
+
+void * operator new(size_t size)
+{
+ return malloc(size);
+}
+
+void operator delete(void * ptr)
+{
+ free(ptr);
+}
+
+int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);};
+void __cxa_guard_release (__guard *g) {*(char *)g = 1;};
+void __cxa_guard_abort (__guard *) {};
+
+void __cxa_pure_virtual(void) {};
+
diff --git a/arduinoSrc1_0/new.h b/arduinoSrc1_0/new.h
new file mode 100644
index 0000000..cd940ce
--- /dev/null
+++ b/arduinoSrc1_0/new.h
@@ -0,0 +1,22 @@
+/* Header to define new/delete operators as they aren't provided by avr-gcc by default
+ Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453
+ */
+
+#ifndef NEW_H
+#define NEW_H
+
+#include <stdlib.h>
+
+void * operator new(size_t size);
+void operator delete(void * ptr);
+
+__extension__ typedef int __guard __attribute__((mode (__DI__)));
+
+extern "C" int __cxa_guard_acquire(__guard *);
+extern "C" void __cxa_guard_release (__guard *);
+extern "C" void __cxa_guard_abort (__guard *);
+
+extern "C" void __cxa_pure_virtual(void);
+
+#endif
+
diff --git a/arduinoSrc1_0/wiring.c b/arduinoSrc1_0/wiring.c
new file mode 100644
index 0000000..bc01949
--- /dev/null
+++ b/arduinoSrc1_0/wiring.c
@@ -0,0 +1,297 @@
+/*
+ wiring.c - Partial implementation of the Wiring API for the ATmega8.
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id$
+*/
+
+#include "wiring_private.h"
+
+// the prescaler is set so that timer0 ticks every 64 clock cycles, and the
+// the overflow handler is called every 256 ticks.
+#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256))
+
+// the whole number of milliseconds per timer0 overflow
+#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000)
+
+// the fractional number of milliseconds per timer0 overflow. we shift right
+// by three to fit these numbers into a byte. (for the clock speeds we care
+// about - 8 and 16 MHz - this doesn't lose precision.)
+#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3)
+#define FRACT_MAX (1000 >> 3)
+
+volatile unsigned long timer0_overflow_count = 0;
+volatile unsigned long timer0_millis = 0;
+static unsigned char timer0_fract = 0;
+
+#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
+SIGNAL(TIM0_OVF_vect)
+#else
+SIGNAL(TIMER0_OVF_vect)
+#endif
+{
+ // copy these to local variables so they can be stored in registers
+ // (volatile variables must be read from memory on every access)
+ unsigned long m = timer0_millis;
+ unsigned char f = timer0_fract;
+
+ m += MILLIS_INC;
+ f += FRACT_INC;
+ if (f >= FRACT_MAX) {
+ f -= FRACT_MAX;
+ m += 1;
+ }
+
+ timer0_fract = f;
+ timer0_millis = m;
+ timer0_overflow_count++;
+}
+
+unsigned long millis()
+{
+ unsigned long m;
+ uint8_t oldSREG = SREG;
+
+ // disable interrupts while we read timer0_millis or we might get an
+ // inconsistent value (e.g. in the middle of a write to timer0_millis)
+ cli();
+ m = timer0_millis;
+ SREG = oldSREG;
+
+ return m;
+}
+
+unsigned long micros() {
+ unsigned long m;
+ uint8_t oldSREG = SREG, t;
+
+ cli();
+ m = timer0_overflow_count;
+#if defined(TCNT0)
+ t = TCNT0;
+#elif defined(TCNT0L)
+ t = TCNT0L;
+#else
+ #error TIMER 0 not defined
+#endif
+
+
+#ifdef TIFR0
+ if ((TIFR0 & _BV(TOV0)) && (t < 255))
+ m++;
+#else
+ if ((TIFR & _BV(TOV0)) && (t < 255))
+ m++;
+#endif
+
+ SREG = oldSREG;
+
+ return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());
+}
+
+void delay(unsigned long ms)
+{
+ uint16_t start = (uint16_t)micros();
+
+ while (ms > 0) {
+ if (((uint16_t)micros() - start) >= 1000) {
+ ms--;
+ start += 1000;
+ }
+ }
+}
+
+/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */
+void delayMicroseconds(unsigned int us)
+{
+ // calling avrlib's delay_us() function with low values (e.g. 1 or
+ // 2 microseconds) gives delays longer than desired.
+ //delay_us(us);
+
+#if F_CPU >= 16000000L
+ // for the 16 MHz clock on most Arduino boards
+
+ // for a one-microsecond delay, simply return. the overhead
+ // of the function call yields a delay of approximately 1 1/8 us.
+ if (--us == 0)
+ return;
+
+ // the following loop takes a quarter of a microsecond (4 cycles)
+ // per iteration, so execute it four times for each microsecond of
+ // delay requested.
+ us <<= 2;
+
+ // account for the time taken in the preceeding commands.
+ us -= 2;
+#else
+ // for the 8 MHz internal clock on the ATmega168
+
+ // for a one- or two-microsecond delay, simply return. the overhead of
+ // the function calls takes more than two microseconds. can't just
+ // subtract two, since us is unsigned; we'd overflow.
+ if (--us == 0)
+ return;
+ if (--us == 0)
+ return;
+
+ // the following loop takes half of a microsecond (4 cycles)
+ // per iteration, so execute it twice for each microsecond of
+ // delay requested.
+ us <<= 1;
+
+ // partially compensate for the time taken by the preceeding commands.
+ // we can't subtract any more than this or we'd overflow w/ small delays.
+ us--;
+#endif
+
+ // busy wait
+ __asm__ __volatile__ (
+ "1: sbiw %0,1" "\n\t" // 2 cycles
+ "brne 1b" : "=w" (us) : "0" (us) // 2 cycles
+ );
+}
+
+void init()
+{
+ // this needs to be called before setup() or some functions won't
+ // work there
+ sei();
+
+ // on the ATmega168, timer 0 is also used for fast hardware pwm
+ // (using phase-correct PWM would mean that timer 0 overflowed half as often
+ // resulting in different millis() behavior on the ATmega8 and ATmega168)
+#if defined(TCCR0A) && defined(WGM01)
+ sbi(TCCR0A, WGM01);
+ sbi(TCCR0A, WGM00);
+#endif
+
+ // set timer 0 prescale factor to 64
+#if defined(__AVR_ATmega128__)
+ // CPU specific: different values for the ATmega128
+ sbi(TCCR0, CS02);
+#elif defined(TCCR0) && defined(CS01) && defined(CS00)
+ // this combination is for the standard atmega8
+ sbi(TCCR0, CS01);
+ sbi(TCCR0, CS00);
+#elif defined(TCCR0B) && defined(CS01) && defined(CS00)
+ // this combination is for the standard 168/328/1280/2560
+ sbi(TCCR0B, CS01);
+ sbi(TCCR0B, CS00);
+#elif defined(TCCR0A) && defined(CS01) && defined(CS00)
+ // this combination is for the __AVR_ATmega645__ series
+ sbi(TCCR0A, CS01);
+ sbi(TCCR0A, CS00);
+#else
+ #error Timer 0 prescale factor 64 not set correctly
+#endif
+
+ // enable timer 0 overflow interrupt
+#if defined(TIMSK) && defined(TOIE0)
+ sbi(TIMSK, TOIE0);
+#elif defined(TIMSK0) && defined(TOIE0)
+ sbi(TIMSK0, TOIE0);
+#else
+ #error Timer 0 overflow interrupt not set correctly
+#endif
+
+ // timers 1 and 2 are used for phase-correct hardware pwm
+ // this is better for motors as it ensures an even waveform
+ // note, however, that fast pwm mode can achieve a frequency of up
+ // 8 MHz (with a 16 MHz clock) at 50% duty cycle
+
+#if defined(TCCR1B) && defined(CS11) && defined(CS10)
+ TCCR1B = 0;
+
+ // set timer 1 prescale factor to 64
+ sbi(TCCR1B, CS11);
+#if F_CPU >= 8000000L
+ sbi(TCCR1B, CS10);
+#endif
+#elif defined(TCCR1) && defined(CS11) && defined(CS10)
+ sbi(TCCR1, CS11);
+#if F_CPU >= 8000000L
+ sbi(TCCR1, CS10);
+#endif
+#endif
+ // put timer 1 in 8-bit phase correct pwm mode
+#if defined(TCCR1A) && defined(WGM10)
+ sbi(TCCR1A, WGM10);
+#elif defined(TCCR1)
+ #warning this needs to be finished
+#endif
+
+ // set timer 2 prescale factor to 64
+#if defined(TCCR2) && defined(CS22)
+ sbi(TCCR2, CS22);
+#elif defined(TCCR2B) && defined(CS22)
+ sbi(TCCR2B, CS22);
+#else
+ #warning Timer 2 not finished (may not be present on this CPU)
+#endif
+
+ // configure timer 2 for phase correct pwm (8-bit)
+#if defined(TCCR2) && defined(WGM20)
+ sbi(TCCR2, WGM20);
+#elif defined(TCCR2A) && defined(WGM20)
+ sbi(TCCR2A, WGM20);
+#else
+ #warning Timer 2 not finished (may not be present on this CPU)
+#endif
+
+#if defined(TCCR3B) && defined(CS31) && defined(WGM30)
+ sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64
+ sbi(TCCR3B, CS30);
+ sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode
+#endif
+
+#if defined(TCCR4B) && defined(CS41) && defined(WGM40)
+ sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64
+ sbi(TCCR4B, CS40);
+ sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode
+#endif
+
+#if defined(TCCR5B) && defined(CS51) && defined(WGM50)
+ sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64
+ sbi(TCCR5B, CS50);
+ sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode
+#endif
+
+#if defined(ADCSRA)
+ // set a2d prescale factor to 128
+ // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range.
+ // XXX: this will not work properly for other clock speeds, and
+ // this code should use F_CPU to determine the prescale factor.
+ sbi(ADCSRA, ADPS2);
+ sbi(ADCSRA, ADPS1);
+ sbi(ADCSRA, ADPS0);
+
+ // enable a2d conversions
+ sbi(ADCSRA, ADEN);
+#endif
+
+ // the bootloader connects pins 0 and 1 to the USART; disconnect them
+ // here so they can be used as normal digital i/o; they will be
+ // reconnected in Serial.begin()
+#if defined(UCSRB)
+ UCSRB = 0;
+#elif defined(UCSR0B)
+ UCSR0B = 0;
+#endif
+}
diff --git a/arduinoSrc1_0/wiring_analog.c b/arduinoSrc1_0/wiring_analog.c
new file mode 100644
index 0000000..902b153
--- /dev/null
+++ b/arduinoSrc1_0/wiring_analog.c
@@ -0,0 +1,272 @@
+/*
+ wiring_analog.c - analog input and output
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ Modified 28 September 2010 by Mark Sproul
+
+ $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $
+*/
+
+#include "wiring_private.h"
+#include "pins_arduino.h"
+
+uint8_t analog_reference = DEFAULT;
+
+void analogReference(uint8_t mode)
+{
+ // can't actually set the register here because the default setting
+ // will connect AVCC and the AREF pin, which would cause a short if
+ // there's something connected to AREF.
+ analog_reference = mode;
+}
+
+int analogRead(uint8_t pin)
+{
+ uint8_t low, high;
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+ if (pin >= 54) pin -= 54; // allow for channel or pin numbers
+#elif defined(__AVR_ATmega32U4__)
+ if (pin >= 18) pin -= 18; // allow for channel or pin numbers
+#else
+ if (pin >= 14) pin -= 14; // allow for channel or pin numbers
+#endif
+
+#if defined(__AVR_ATmega32U4__)
+ pin = analogPinToChannel(pin);
+ ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5);
+#elif defined(ADCSRB) && defined(MUX5)
+ // the MUX5 bit of ADCSRB selects whether we're reading from channels
+ // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high).
+ ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5);
+#endif
+
+ // set the analog reference (high two bits of ADMUX) and select the
+ // channel (low 4 bits). this also sets ADLAR (left-adjust result)
+ // to 0 (the default).
+#if defined(ADMUX)
+ ADMUX = (analog_reference << 6) | (pin & 0x07);
+#endif
+
+ // without a delay, we seem to read from the wrong channel
+ //delay(1);
+
+#if defined(ADCSRA) && defined(ADCL)
+ // start the conversion
+ sbi(ADCSRA, ADSC);
+
+ // ADSC is cleared when the conversion finishes
+ while (bit_is_set(ADCSRA, ADSC));
+
+ // we have to read ADCL first; doing so locks both ADCL
+ // and ADCH until ADCH is read. reading ADCL second would
+ // cause the results of each conversion to be discarded,
+ // as ADCL and ADCH would be locked when it completed.
+ low = ADCL;
+ high = ADCH;
+#else
+ // we dont have an ADC, return 0
+ low = 0;
+ high = 0;
+#endif
+
+ // combine the two bytes
+ return (high << 8) | low;
+}
+
+// Right now, PWM output only works on the pins with
+// hardware support. These are defined in the appropriate
+// pins_*.c file. For the rest of the pins, we default
+// to digital output.
+void analogWrite(uint8_t pin, int val)
+{
+ // We need to make sure the PWM output is enabled for those pins
+ // that support it, as we turn it off when digitally reading or
+ // writing with them. Also, make sure the pin is in output mode
+ // for consistenty with Wiring, which doesn't require a pinMode
+ // call for the analog output pins.
+ pinMode(pin, OUTPUT);
+ if (val == 0)
+ {
+ digitalWrite(pin, LOW);
+ }
+ else if (val == 255)
+ {
+ digitalWrite(pin, HIGH);
+ }
+ else
+ {
+ switch(digitalPinToTimer(pin))
+ {
+ // XXX fix needed for atmega8
+ #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
+ case TIMER0A:
+ // connect pwm to pin on timer 0
+ sbi(TCCR0, COM00);
+ OCR0 = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR0A) && defined(COM0A1)
+ case TIMER0A:
+ // connect pwm to pin on timer 0, channel A
+ sbi(TCCR0A, COM0A1);
+ OCR0A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR0A) && defined(COM0B1)
+ case TIMER0B:
+ // connect pwm to pin on timer 0, channel B
+ sbi(TCCR0A, COM0B1);
+ OCR0B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR1A) && defined(COM1A1)
+ case TIMER1A:
+ // connect pwm to pin on timer 1, channel A
+ sbi(TCCR1A, COM1A1);
+ OCR1A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR1A) && defined(COM1B1)
+ case TIMER1B:
+ // connect pwm to pin on timer 1, channel B
+ sbi(TCCR1A, COM1B1);
+ OCR1B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR2) && defined(COM21)
+ case TIMER2:
+ // connect pwm to pin on timer 2
+ sbi(TCCR2, COM21);
+ OCR2 = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR2A) && defined(COM2A1)
+ case TIMER2A:
+ // connect pwm to pin on timer 2, channel A
+ sbi(TCCR2A, COM2A1);
+ OCR2A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR2A) && defined(COM2B1)
+ case TIMER2B:
+ // connect pwm to pin on timer 2, channel B
+ sbi(TCCR2A, COM2B1);
+ OCR2B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR3A) && defined(COM3A1)
+ case TIMER3A:
+ // connect pwm to pin on timer 3, channel A
+ sbi(TCCR3A, COM3A1);
+ OCR3A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR3A) && defined(COM3B1)
+ case TIMER3B:
+ // connect pwm to pin on timer 3, channel B
+ sbi(TCCR3A, COM3B1);
+ OCR3B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR3A) && defined(COM3C1)
+ case TIMER3C:
+ // connect pwm to pin on timer 3, channel C
+ sbi(TCCR3A, COM3C1);
+ OCR3C = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR4A) && defined(COM4A1)
+ case TIMER4A:
+ // connect pwm to pin on timer 4, channel A
+ sbi(TCCR4A, COM4A1);
+ OCR4A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR4A) && defined(COM4B1)
+ case TIMER4B:
+ // connect pwm to pin on timer 4, channel B
+ sbi(TCCR4A, COM4B1);
+ OCR4B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR4A) && defined(COM4C1)
+ case TIMER4C:
+ // connect pwm to pin on timer 4, channel C
+ sbi(TCCR4A, COM4C1);
+ OCR4C = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR4A) && defined(COM4D1)
+ case TIMER4D:
+ // connect pwm to pin on timer 4, channel D
+ sbi(TCCR4A, COM4D1);
+ OCR4D = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR5A) && defined(COM5A1)
+ case TIMER5A:
+ // connect pwm to pin on timer 5, channel A
+ sbi(TCCR5A, COM5A1);
+ OCR5A = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR5A) && defined(COM5B1)
+ case TIMER5B:
+ // connect pwm to pin on timer 5, channel B
+ sbi(TCCR5A, COM5B1);
+ OCR5B = val; // set pwm duty
+ break;
+ #endif
+
+ #if defined(TCCR5A) && defined(COM5C1)
+ case TIMER5C:
+ // connect pwm to pin on timer 5, channel C
+ sbi(TCCR5A, COM5C1);
+ OCR5C = val; // set pwm duty
+ break;
+ #endif
+
+ case NOT_ON_TIMER:
+ default:
+ if (val < 128) {
+ digitalWrite(pin, LOW);
+ } else {
+ digitalWrite(pin, HIGH);
+ }
+ }
+ }
+}
diff --git a/arduinoSrc1_0/wiring_digital.c b/arduinoSrc1_0/wiring_digital.c
new file mode 100644
index 0000000..97ef134
--- /dev/null
+++ b/arduinoSrc1_0/wiring_digital.c
@@ -0,0 +1,166 @@
+/*
+ wiring_digital.c - digital input and output functions
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ Modified 28 September 2010 by Mark Sproul
+
+ $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $
+*/
+
+#define ARDUINO_MAIN
+#include "wiring_private.h"
+#include "pins_arduino.h"
+
+void pinMode(uint8_t pin, uint8_t mode)
+{
+ uint8_t bit = digitalPinToBitMask(pin);
+ uint8_t port = digitalPinToPort(pin);
+ volatile uint8_t *reg;
+
+ if (port == NOT_A_PIN) return;
+
+ // JWS: can I let the optimizer do this?
+ reg = portModeRegister(port);
+
+ if (mode == INPUT) {
+ uint8_t oldSREG = SREG;
+ cli();
+ *reg &= ~bit;
+ SREG = oldSREG;
+ } else {
+ uint8_t oldSREG = SREG;
+ cli();
+ *reg |= bit;
+ SREG = oldSREG;
+ }
+}
+
+// Forcing this inline keeps the callers from having to push their own stuff
+// on the stack. It is a good performance win and only takes 1 more byte per
+// user than calling. (It will take more bytes on the 168.)
+//
+// But shouldn't this be moved into pinMode? Seems silly to check and do on
+// each digitalread or write.
+//
+// Mark Sproul:
+// - Removed inline. Save 170 bytes on atmega1280
+// - changed to a switch statment; added 32 bytes but much easier to read and maintain.
+// - Added more #ifdefs, now compiles for atmega645
+//
+//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline));
+//static inline void turnOffPWM(uint8_t timer)
+static void turnOffPWM(uint8_t timer)
+{
+ switch (timer)
+ {
+ #if defined(TCCR1A) && defined(COM1A1)
+ case TIMER1A: cbi(TCCR1A, COM1A1); break;
+ #endif
+ #if defined(TCCR1A) && defined(COM1B1)
+ case TIMER1B: cbi(TCCR1A, COM1B1); break;
+ #endif
+
+ #if defined(TCCR2) && defined(COM21)
+ case TIMER2: cbi(TCCR2, COM21); break;
+ #endif
+
+ #if defined(TCCR0A) && defined(COM0A1)
+ case TIMER0A: cbi(TCCR0A, COM0A1); break;
+ #endif
+
+ #if defined(TIMER0B) && defined(COM0B1)
+ case TIMER0B: cbi(TCCR0A, COM0B1); break;
+ #endif
+ #if defined(TCCR2A) && defined(COM2A1)
+ case TIMER2A: cbi(TCCR2A, COM2A1); break;
+ #endif
+ #if defined(TCCR2A) && defined(COM2B1)
+ case TIMER2B: cbi(TCCR2A, COM2B1); break;
+ #endif
+
+ #if defined(TCCR3A) && defined(COM3A1)
+ case TIMER3A: cbi(TCCR3A, COM3A1); break;
+ #endif
+ #if defined(TCCR3A) && defined(COM3B1)
+ case TIMER3B: cbi(TCCR3A, COM3B1); break;
+ #endif
+ #if defined(TCCR3A) && defined(COM3C1)
+ case TIMER3C: cbi(TCCR3A, COM3C1); break;
+ #endif
+
+ #if defined(TCCR4A) && defined(COM4A1)
+ case TIMER4A: cbi(TCCR4A, COM4A1); break;
+ #endif
+ #if defined(TCCR4A) && defined(COM4B1)
+ case TIMER4B: cbi(TCCR4A, COM4B1); break;
+ #endif
+ #if defined(TCCR4A) && defined(COM4C1)
+ case TIMER4C: cbi(TCCR4A, COM4C1); break;
+ #endif
+ #if defined(TCCR5A)
+ case TIMER5A: cbi(TCCR5A, COM5A1); break;
+ case TIMER5B: cbi(TCCR5A, COM5B1); break;
+ case TIMER5C: cbi(TCCR5A, COM5C1); break;
+ #endif
+ }
+}
+
+void digitalWrite(uint8_t pin, uint8_t val)
+{
+ uint8_t timer = digitalPinToTimer(pin);
+ uint8_t bit = digitalPinToBitMask(pin);
+ uint8_t port = digitalPinToPort(pin);
+ volatile uint8_t *out;
+
+ if (port == NOT_A_PIN) return;
+
+ // If the pin that support PWM output, we need to turn it off
+ // before doing a digital write.
+ if (timer != NOT_ON_TIMER) turnOffPWM(timer);
+
+ out = portOutputRegister(port);
+
+ uint8_t oldSREG = SREG;
+ cli();
+
+ if (val == LOW) {
+ *out &= ~bit;
+ } else {
+ *out |= bit;
+ }
+
+ SREG = oldSREG;
+}
+
+int digitalRead(uint8_t pin)
+{
+ uint8_t timer = digitalPinToTimer(pin);
+ uint8_t bit = digitalPinToBitMask(pin);
+ uint8_t port = digitalPinToPort(pin);
+
+ if (port == NOT_A_PIN) return LOW;
+
+ // If the pin that support PWM output, we need to turn it off
+ // before getting a digital reading.
+ if (timer != NOT_ON_TIMER) turnOffPWM(timer);
+
+ if (*portInputRegister(port) & bit) return HIGH;
+ return LOW;
+}
diff --git a/arduinoSrc1_0/wiring_private.h b/arduinoSrc1_0/wiring_private.h
new file mode 100644
index 0000000..41d1d40
--- /dev/null
+++ b/arduinoSrc1_0/wiring_private.h
@@ -0,0 +1,67 @@
+/*
+ wiring_private.h - Internal header file.
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $
+*/
+
+#ifndef WiringPrivate_h
+#define WiringPrivate_h
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "Arduino.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+#define EXTERNAL_INT_0 0
+#define EXTERNAL_INT_1 1
+#define EXTERNAL_INT_2 2
+#define EXTERNAL_INT_3 3
+#define EXTERNAL_INT_4 4
+#define EXTERNAL_INT_5 5
+#define EXTERNAL_INT_6 6
+#define EXTERNAL_INT_7 7
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+#define EXTERNAL_NUM_INTERRUPTS 8
+#else
+#define EXTERNAL_NUM_INTERRUPTS 2
+#endif
+
+typedef void (*voidFuncPtr)(void);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif
diff --git a/arduinoSrc1_0/wiring_pulse.c b/arduinoSrc1_0/wiring_pulse.c
new file mode 100644
index 0000000..0d96886
--- /dev/null
+++ b/arduinoSrc1_0/wiring_pulse.c
@@ -0,0 +1,69 @@
+/*
+ wiring_pulse.c - pulseIn() function
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $
+*/
+
+#include "wiring_private.h"
+#include "pins_arduino.h"
+
+/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH
+ * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds
+ * to 3 minutes in length, but must be called at least a few dozen microseconds
+ * before the start of the pulse. */
+unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout)
+{
+ // cache the port and bit of the pin in order to speed up the
+ // pulse width measuring loop and achieve finer resolution. calling
+ // digitalRead() instead yields much coarser resolution.
+ uint8_t bit = digitalPinToBitMask(pin);
+ uint8_t port = digitalPinToPort(pin);
+ uint8_t stateMask = (state ? bit : 0);
+ unsigned long width = 0; // keep initialization out of time critical area
+
+ // convert the timeout from microseconds to a number of times through
+ // the initial loop; it takes 16 clock cycles per iteration.
+ unsigned long numloops = 0;
+ unsigned long maxloops = microsecondsToClockCycles(timeout) / 16;
+
+ // wait for any previous pulse to end
+ while ((*portInputRegister(port) & bit) == stateMask)
+ if (numloops++ == maxloops)
+ return 0;
+
+ // wait for the pulse to start
+ while ((*portInputRegister(port) & bit) != stateMask)
+ if (numloops++ == maxloops)
+ return 0;
+
+ // wait for the pulse to stop
+ while ((*portInputRegister(port) & bit) == stateMask) {
+ if (numloops++ == maxloops)
+ return 0;
+ width++;
+ }
+
+ // convert the reading to microseconds. The loop has been determined
+ // to be 20 clock cycles long and have about 16 clocks between the edge
+ // and the start of the loop. There will be some error introduced by
+ // the interrupt handlers.
+ return clockCyclesToMicroseconds(width * 21 + 16);
+}
diff --git a/arduinoSrc1_0/wiring_shift.c b/arduinoSrc1_0/wiring_shift.c
new file mode 100644
index 0000000..cfe7867
--- /dev/null
+++ b/arduinoSrc1_0/wiring_shift.c
@@ -0,0 +1,55 @@
+/*
+ wiring_shift.c - shiftOut() function
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2005-2006 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $
+*/
+
+#include "wiring_private.h"
+
+uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) {
+ uint8_t value = 0;
+ uint8_t i;
+
+ for (i = 0; i < 8; ++i) {
+ digitalWrite(clockPin, HIGH);
+ if (bitOrder == LSBFIRST)
+ value |= digitalRead(dataPin) << i;
+ else
+ value |= digitalRead(dataPin) << (7 - i);
+ digitalWrite(clockPin, LOW);
+ }
+ return value;
+}
+
+void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
+{
+ uint8_t i;
+
+ for (i = 0; i < 8; i++) {
+ if (bitOrder == LSBFIRST)
+ digitalWrite(dataPin, !!(val & (1 << i)));
+ else
+ digitalWrite(dataPin, !!(val & (1 << (7 - i))));
+
+ digitalWrite(clockPin, HIGH);
+ digitalWrite(clockPin, LOW);
+ }
+}
diff --git a/arduino_libs/ArduinoSerialManager.zip b/arduino_libs_0022/ArduinoSerialManager.zip
index 7693b72..7693b72 100644
--- a/arduino_libs/ArduinoSerialManager.zip
+++ b/arduino_libs_0022/ArduinoSerialManager.zip
Binary files differ
diff --git a/arduino_libs/ByteBuffer/.svn/all-wcprops b/arduino_libs_0022/ByteBuffer/.svn/all-wcprops
index de5c62d..de5c62d 100755
--- a/arduino_libs/ByteBuffer/.svn/all-wcprops
+++ b/arduino_libs_0022/ByteBuffer/.svn/all-wcprops
diff --git a/arduino_libs/ByteBuffer/.svn/entries b/arduino_libs_0022/ByteBuffer/.svn/entries
index 4c4a628..4c4a628 100755
--- a/arduino_libs/ByteBuffer/.svn/entries
+++ b/arduino_libs_0022/ByteBuffer/.svn/entries
diff --git a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base b/arduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base
index b91a586..b91a586 100755
--- a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base
+++ b/arduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base
diff --git a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base b/arduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base
index b100c2f..b100c2f 100755
--- a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base
+++ b/arduino_libs_0022/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base
diff --git a/arduino_libs/ByteBuffer/ByteBuffer.cpp b/arduino_libs_0022/ByteBuffer/ByteBuffer.cpp
index b151cef..b151cef 100755
--- a/arduino_libs/ByteBuffer/ByteBuffer.cpp
+++ b/arduino_libs_0022/ByteBuffer/ByteBuffer.cpp
diff --git a/arduino_libs/ByteBuffer/ByteBuffer.h b/arduino_libs_0022/ByteBuffer/ByteBuffer.h
index f6b4e48..f6b4e48 100755
--- a/arduino_libs/ByteBuffer/ByteBuffer.h
+++ b/arduino_libs_0022/ByteBuffer/ByteBuffer.h
diff --git a/arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde b/arduino_libs_0022/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde
index 0d9e815..0d9e815 100644
--- a/arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde
+++ b/arduino_libs_0022/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde
diff --git a/arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde b/arduino_libs_0022/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde
index 73aa991..73aa991 100644
--- a/arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde
+++ b/arduino_libs_0022/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde
diff --git a/arduino_libs/NewSoftSerial/NewSoftSerial.cpp b/arduino_libs_0022/NewSoftSerial/NewSoftSerial.cpp
index 463ab01..463ab01 100644
--- a/arduino_libs/NewSoftSerial/NewSoftSerial.cpp
+++ b/arduino_libs_0022/NewSoftSerial/NewSoftSerial.cpp
diff --git a/arduino_libs/NewSoftSerial/NewSoftSerial.h b/arduino_libs_0022/NewSoftSerial/NewSoftSerial.h
index 1e39201..1e39201 100644
--- a/arduino_libs/NewSoftSerial/NewSoftSerial.h
+++ b/arduino_libs_0022/NewSoftSerial/NewSoftSerial.h
diff --git a/arduino_libs/NewSoftSerial/keywords.txt b/arduino_libs_0022/NewSoftSerial/keywords.txt
index 0a39bea..0a39bea 100644
--- a/arduino_libs/NewSoftSerial/keywords.txt
+++ b/arduino_libs_0022/NewSoftSerial/keywords.txt
diff --git a/arduino_libs/SerialManager/.DS_Store b/arduino_libs_0022/SerialManager/.DS_Store
index 5008ddf..5008ddf 100755
--- a/arduino_libs/SerialManager/.DS_Store
+++ b/arduino_libs_0022/SerialManager/.DS_Store
Binary files differ
diff --git a/arduino_libs/SerialManager/.svn/all-wcprops b/arduino_libs_0022/SerialManager/.svn/all-wcprops
index e920984..e920984 100755
--- a/arduino_libs/SerialManager/.svn/all-wcprops
+++ b/arduino_libs_0022/SerialManager/.svn/all-wcprops
diff --git a/arduino_libs/SerialManager/.svn/entries b/arduino_libs_0022/SerialManager/.svn/entries
index a965507..a965507 100755
--- a/arduino_libs/SerialManager/.svn/entries
+++ b/arduino_libs_0022/SerialManager/.svn/entries
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base b/arduino_libs_0022/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
index ed06dbc..ed06dbc 100755
--- a/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
+++ b/arduino_libs_0022/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base b/arduino_libs_0022/SerialManager/.svn/text-base/SerialManager.h.svn-base
index dcbdba6..dcbdba6 100755
--- a/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base
+++ b/arduino_libs_0022/SerialManager/.svn/text-base/SerialManager.h.svn-base
diff --git a/arduino_libs/SerialManager/SerialManager.cpp b/arduino_libs_0022/SerialManager/SerialManager.cpp
index 2e2d306..2e2d306 100755
--- a/arduino_libs/SerialManager/SerialManager.cpp
+++ b/arduino_libs_0022/SerialManager/SerialManager.cpp
diff --git a/arduino_libs/SerialManager/SerialManager.h b/arduino_libs_0022/SerialManager/SerialManager.h
index f1474c5..f1474c5 100755
--- a/arduino_libs/SerialManager/SerialManager.h
+++ b/arduino_libs_0022/SerialManager/SerialManager.h
diff --git a/arduino_libs_0022/Wire/Wire.cpp b/arduino_libs_0022/Wire/Wire.cpp
new file mode 100644
index 0000000..849439b
--- /dev/null
+++ b/arduino_libs_0022/Wire/Wire.cpp
@@ -0,0 +1,261 @@
+/*
+ TwoWire.cpp - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+extern "C" {
+ #include <stdlib.h>
+ #include <string.h>
+ #include <inttypes.h>
+ #include "twi.h"
+}
+
+#include "Wire.h"
+
+// Initialize Class Variables //////////////////////////////////////////////////
+
+uint8_t TwoWire::rxBuffer[BUFFER_LENGTH];
+uint8_t TwoWire::rxBufferIndex = 0;
+uint8_t TwoWire::rxBufferLength = 0;
+
+uint8_t TwoWire::txAddress = 0;
+uint8_t TwoWire::txBuffer[BUFFER_LENGTH];
+uint8_t TwoWire::txBufferIndex = 0;
+uint8_t TwoWire::txBufferLength = 0;
+
+uint8_t TwoWire::transmitting = 0;
+void (*TwoWire::user_onRequest)(void);
+void (*TwoWire::user_onReceive)(int);
+
+// Constructors ////////////////////////////////////////////////////////////////
+
+TwoWire::TwoWire()
+{
+}
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+void TwoWire::begin(void)
+{
+ rxBufferIndex = 0;
+ rxBufferLength = 0;
+
+ txBufferIndex = 0;
+ txBufferLength = 0;
+
+ twi_init();
+}
+
+void TwoWire::begin(uint8_t address)
+{
+ twi_setAddress(address);
+ twi_attachSlaveTxEvent(onRequestService);
+ twi_attachSlaveRxEvent(onReceiveService);
+ begin();
+}
+
+void TwoWire::begin(int address)
+{
+ begin((uint8_t)address);
+}
+
+uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
+{
+ // clamp to buffer length
+ if(quantity > BUFFER_LENGTH){
+ quantity = BUFFER_LENGTH;
+ }
+ // perform blocking read into buffer
+ uint8_t read = twi_readFrom(address, rxBuffer, quantity);
+ // set rx buffer iterator vars
+ rxBufferIndex = 0;
+ rxBufferLength = read;
+
+ return read;
+}
+
+uint8_t TwoWire::requestFrom(int address, int quantity)
+{
+ return requestFrom((uint8_t)address, (uint8_t)quantity);
+}
+
+void TwoWire::beginTransmission(uint8_t address)
+{
+ // indicate that we are transmitting
+ transmitting = 1;
+ // set address of targeted slave
+ txAddress = address;
+ // reset tx buffer iterator vars
+ txBufferIndex = 0;
+ txBufferLength = 0;
+}
+
+void TwoWire::beginTransmission(int address)
+{
+ beginTransmission((uint8_t)address);
+}
+
+uint8_t TwoWire::endTransmission(void)
+{
+ // transmit buffer (blocking)
+ int8_t ret = twi_writeTo(txAddress, txBuffer, txBufferLength, 1);
+ // reset tx buffer iterator vars
+ txBufferIndex = 0;
+ txBufferLength = 0;
+ // indicate that we are done transmitting
+ transmitting = 0;
+ return ret;
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+void TwoWire::send(uint8_t data)
+{
+ if(transmitting){
+ // in master transmitter mode
+ // don't bother if buffer is full
+ if(txBufferLength >= BUFFER_LENGTH){
+ return;
+ }
+ // put byte in tx buffer
+ txBuffer[txBufferIndex] = data;
+ ++txBufferIndex;
+ // update amount in buffer
+ txBufferLength = txBufferIndex;
+ }else{
+ // in slave send mode
+ // reply to master
+ twi_transmit(&data, 1);
+ }
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+void TwoWire::send(uint8_t* data, uint8_t quantity)
+{
+ if(transmitting){
+ // in master transmitter mode
+ for(uint8_t i = 0; i < quantity; ++i){
+ send(data[i]);
+ }
+ }else{
+ // in slave send mode
+ // reply to master
+ twi_transmit(data, quantity);
+ }
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+void TwoWire::send(char* data)
+{
+ send((uint8_t*)data, strlen(data));
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+void TwoWire::send(int data)
+{
+ send((uint8_t)data);
+}
+
+// must be called in:
+// slave rx event callback
+// or after requestFrom(address, numBytes)
+uint8_t TwoWire::available(void)
+{
+ return rxBufferLength - rxBufferIndex;
+}
+
+// must be called in:
+// slave rx event callback
+// or after requestFrom(address, numBytes)
+uint8_t TwoWire::receive(void)
+{
+ // default to returning null char
+ // for people using with char strings
+ uint8_t value = '\0';
+
+ // get each successive byte on each call
+ if(rxBufferIndex < rxBufferLength){
+ value = rxBuffer[rxBufferIndex];
+ ++rxBufferIndex;
+ }
+
+ return value;
+}
+
+// behind the scenes function that is called when data is received
+void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes)
+{
+ // don't bother if user hasn't registered a callback
+ if(!user_onReceive){
+ return;
+ }
+ // don't bother if rx buffer is in use by a master requestFrom() op
+ // i know this drops data, but it allows for slight stupidity
+ // meaning, they may not have read all the master requestFrom() data yet
+ if(rxBufferIndex < rxBufferLength){
+ return;
+ }
+ // copy twi rx buffer into local read buffer
+ // this enables new reads to happen in parallel
+ for(uint8_t i = 0; i < numBytes; ++i){
+ rxBuffer[i] = inBytes[i];
+ }
+ // set rx iterator vars
+ rxBufferIndex = 0;
+ rxBufferLength = numBytes;
+ // alert user program
+ user_onReceive(numBytes);
+}
+
+// behind the scenes function that is called when data is requested
+void TwoWire::onRequestService(void)
+{
+ // don't bother if user hasn't registered a callback
+ if(!user_onRequest){
+ return;
+ }
+ // reset tx buffer iterator vars
+ // !!! this will kill any pending pre-master sendTo() activity
+ txBufferIndex = 0;
+ txBufferLength = 0;
+ // alert user program
+ user_onRequest();
+}
+
+// sets function called on slave write
+void TwoWire::onReceive( void (*function)(int) )
+{
+ user_onReceive = function;
+}
+
+// sets function called on slave read
+void TwoWire::onRequest( void (*function)(void) )
+{
+ user_onRequest = function;
+}
+
+// Preinstantiate Objects //////////////////////////////////////////////////////
+
+TwoWire Wire = TwoWire();
+
diff --git a/arduino_libs_0022/Wire/Wire.h b/arduino_libs_0022/Wire/Wire.h
new file mode 100644
index 0000000..a6c29c4
--- /dev/null
+++ b/arduino_libs_0022/Wire/Wire.h
@@ -0,0 +1,67 @@
+/*
+ TwoWire.h - TWI/I2C library for Arduino & Wiring
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef TwoWire_h
+#define TwoWire_h
+
+#include <inttypes.h>
+
+#define BUFFER_LENGTH 32
+
+class TwoWire
+{
+ private:
+ static uint8_t rxBuffer[];
+ static uint8_t rxBufferIndex;
+ static uint8_t rxBufferLength;
+
+ static uint8_t txAddress;
+ static uint8_t txBuffer[];
+ static uint8_t txBufferIndex;
+ static uint8_t txBufferLength;
+
+ static uint8_t transmitting;
+ static void (*user_onRequest)(void);
+ static void (*user_onReceive)(int);
+ static void onRequestService(void);
+ static void onReceiveService(uint8_t*, int);
+ public:
+ TwoWire();
+ void begin();
+ void begin(uint8_t);
+ void begin(int);
+ void beginTransmission(uint8_t);
+ void beginTransmission(int);
+ uint8_t endTransmission(void);
+ uint8_t requestFrom(uint8_t, uint8_t);
+ uint8_t requestFrom(int, int);
+ void send(uint8_t);
+ void send(uint8_t*, uint8_t);
+ void send(int);
+ void send(char*);
+ uint8_t available(void);
+ uint8_t receive(void);
+ void onReceive( void (*)(int) );
+ void onRequest( void (*)(void) );
+};
+
+extern TwoWire Wire;
+
+#endif
+
diff --git a/arduino_libs_0022/Wire/keywords.txt b/arduino_libs_0022/Wire/keywords.txt
new file mode 100644
index 0000000..12f129b
--- /dev/null
+++ b/arduino_libs_0022/Wire/keywords.txt
@@ -0,0 +1,31 @@
+#######################################
+# Syntax Coloring Map For Wire
+#######################################
+
+#######################################
+# Datatypes (KEYWORD1)
+#######################################
+
+#######################################
+# Methods and Functions (KEYWORD2)
+#######################################
+
+begin KEYWORD2
+beginTransmission KEYWORD2
+endTransmission KEYWORD2
+requestFrom KEYWORD2
+send KEYWORD2
+receive KEYWORD2
+onReceive KEYWORD2
+onRequest KEYWORD2
+
+#######################################
+# Instances (KEYWORD2)
+#######################################
+
+Wire KEYWORD2
+
+#######################################
+# Constants (LITERAL1)
+#######################################
+
diff --git a/arduino_libs_0022/Wire/utility/twi.c b/arduino_libs_0022/Wire/utility/twi.c
new file mode 100644
index 0000000..236878c
--- /dev/null
+++ b/arduino_libs_0022/Wire/utility/twi.c
@@ -0,0 +1,476 @@
+/*
+ twi.c - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include <inttypes.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <compat/twi.h>
+
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+#include "twi.h"
+
+static volatile uint8_t twi_state;
+static uint8_t twi_slarw;
+
+static void (*twi_onSlaveTransmit)(void);
+static void (*twi_onSlaveReceive)(uint8_t*, int);
+
+static uint8_t twi_masterBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_masterBufferIndex;
+static uint8_t twi_masterBufferLength;
+
+static uint8_t twi_txBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_txBufferIndex;
+static volatile uint8_t twi_txBufferLength;
+
+static uint8_t twi_rxBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_rxBufferIndex;
+
+static volatile uint8_t twi_error;
+
+/*
+ * Function twi_init
+ * Desc readys twi pins and sets twi bitrate
+ * Input none
+ * Output none
+ */
+void twi_init(void)
+{
+ // initialize state
+ twi_state = TWI_READY;
+
+ #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
+ // activate internal pull-ups for twi
+ // as per note from atmega8 manual pg167
+ sbi(PORTC, 4);
+ sbi(PORTC, 5);
+ #else
+ // activate internal pull-ups for twi
+ // as per note from atmega128 manual pg204
+ sbi(PORTD, 0);
+ sbi(PORTD, 1);
+ #endif
+
+ // initialize twi prescaler and bit rate
+ cbi(TWSR, TWPS0);
+ cbi(TWSR, TWPS1);
+ TWBR = ((CPU_FREQ / TWI_FREQ) - 16) / 2;
+
+ /* twi bit rate formula from atmega128 manual pg 204
+ SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR))
+ note: TWBR should be 10 or higher for master mode
+ It is 72 for a 16mhz Wiring board with 100kHz TWI */
+
+ // enable twi module, acks, and twi interrupt
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
+}
+
+/*
+ * Function twi_slaveInit
+ * Desc sets slave address and enables interrupt
+ * Input none
+ * Output none
+ */
+void twi_setAddress(uint8_t address)
+{
+ // set twi slave address (skip over TWGCE bit)
+ TWAR = address << 1;
+}
+
+/*
+ * Function twi_readFrom
+ * Desc attempts to become twi bus master and read a
+ * series of bytes from a device on the bus
+ * Input address: 7bit i2c device address
+ * data: pointer to byte array
+ * length: number of bytes to read into array
+ * Output number of bytes read
+ */
+uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 0;
+ }
+
+ // wait until twi is ready, become master receiver
+ while(TWI_READY != twi_state){
+ continue;
+ }
+ twi_state = TWI_MRX;
+ // reset error state (0xFF.. no error occured)
+ twi_error = 0xFF;
+
+ // initialize buffer iteration vars
+ twi_masterBufferIndex = 0;
+ twi_masterBufferLength = length-1; // This is not intuitive, read on...
+ // On receive, the previously configured ACK/NACK setting is transmitted in
+ // response to the received byte before the interrupt is signalled.
+ // Therefor we must actually set NACK when the _next_ to last byte is
+ // received, causing that NACK to be sent in response to receiving the last
+ // expected byte of data.
+
+ // build sla+w, slave device address + w bit
+ twi_slarw = TW_READ;
+ twi_slarw |= address << 1;
+
+ // send start condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
+
+ // wait for read operation to complete
+ while(TWI_MRX == twi_state){
+ continue;
+ }
+
+ if (twi_masterBufferIndex < length)
+ length = twi_masterBufferIndex;
+
+ // copy twi buffer to data
+ for(i = 0; i < length; ++i){
+ data[i] = twi_masterBuffer[i];
+ }
+
+ return length;
+}
+
+/*
+ * Function twi_writeTo
+ * Desc attempts to become twi bus master and write a
+ * series of bytes to a device on the bus
+ * Input address: 7bit i2c device address
+ * data: pointer to byte array
+ * length: number of bytes in array
+ * wait: boolean indicating to wait for write or not
+ * Output 0 .. success
+ * 1 .. length to long for buffer
+ * 2 .. address send, NACK received
+ * 3 .. data send, NACK received
+ * 4 .. other twi error (lost bus arbitration, bus error, ..)
+ */
+uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 1;
+ }
+
+ // wait until twi is ready, become master transmitter
+ while(TWI_READY != twi_state){
+ continue;
+ }
+ twi_state = TWI_MTX;
+ // reset error state (0xFF.. no error occured)
+ twi_error = 0xFF;
+
+ // initialize buffer iteration vars
+ twi_masterBufferIndex = 0;
+ twi_masterBufferLength = length;
+
+ // copy data to twi buffer
+ for(i = 0; i < length; ++i){
+ twi_masterBuffer[i] = data[i];
+ }
+
+ // build sla+w, slave device address + w bit
+ twi_slarw = TW_WRITE;
+ twi_slarw |= address << 1;
+
+ // send start condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
+
+ // wait for write operation to complete
+ while(wait && (TWI_MTX == twi_state)){
+ continue;
+ }
+
+ if (twi_error == 0xFF)
+ return 0; // success
+ else if (twi_error == TW_MT_SLA_NACK)
+ return 2; // error: address send, nack received
+ else if (twi_error == TW_MT_DATA_NACK)
+ return 3; // error: data send, nack received
+ else
+ return 4; // other twi error
+}
+
+/*
+ * Function twi_transmit
+ * Desc fills slave tx buffer with data
+ * must be called in slave tx event callback
+ * Input data: pointer to byte array
+ * length: number of bytes in array
+ * Output 1 length too long for buffer
+ * 2 not slave transmitter
+ * 0 ok
+ */
+uint8_t twi_transmit(uint8_t* data, uint8_t length)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 1;
+ }
+
+ // ensure we are currently a slave transmitter
+ if(TWI_STX != twi_state){
+ return 2;
+ }
+
+ // set length and copy data into tx buffer
+ twi_txBufferLength = length;
+ for(i = 0; i < length; ++i){
+ twi_txBuffer[i] = data[i];
+ }
+
+ return 0;
+}
+
+/*
+ * Function twi_attachSlaveRxEvent
+ * Desc sets function called before a slave read operation
+ * Input function: callback function to use
+ * Output none
+ */
+void twi_attachSlaveRxEvent( void (*function)(uint8_t*, int) )
+{
+ twi_onSlaveReceive = function;
+}
+
+/*
+ * Function twi_attachSlaveTxEvent
+ * Desc sets function called before a slave write operation
+ * Input function: callback function to use
+ * Output none
+ */
+void twi_attachSlaveTxEvent( void (*function)(void) )
+{
+ twi_onSlaveTransmit = function;
+}
+
+/*
+ * Function twi_reply
+ * Desc sends byte or readys receive line
+ * Input ack: byte indicating to ack or to nack
+ * Output none
+ */
+void twi_reply(uint8_t ack)
+{
+ // transmit master read ready signal, with or without ack
+ if(ack){
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
+ }else{
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT);
+ }
+}
+
+/*
+ * Function twi_stop
+ * Desc relinquishes bus master status
+ * Input none
+ * Output none
+ */
+void twi_stop(void)
+{
+ // send stop condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
+
+ // wait for stop condition to be exectued on bus
+ // TWINT is not set after a stop condition!
+ while(TWCR & _BV(TWSTO)){
+ continue;
+ }
+
+ // update twi state
+ twi_state = TWI_READY;
+}
+
+/*
+ * Function twi_releaseBus
+ * Desc releases bus control
+ * Input none
+ * Output none
+ */
+void twi_releaseBus(void)
+{
+ // release bus
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
+
+ // update twi state
+ twi_state = TWI_READY;
+}
+
+SIGNAL(TWI_vect)
+{
+ switch(TW_STATUS){
+ // All Master
+ case TW_START: // sent start condition
+ case TW_REP_START: // sent repeated start condition
+ // copy device address and r/w bit to output register and ack
+ TWDR = twi_slarw;
+ twi_reply(1);
+ break;
+
+ // Master Transmitter
+ case TW_MT_SLA_ACK: // slave receiver acked address
+ case TW_MT_DATA_ACK: // slave receiver acked data
+ // if there is data to send, send it, otherwise stop
+ if(twi_masterBufferIndex < twi_masterBufferLength){
+ // copy data to output register and ack
+ TWDR = twi_masterBuffer[twi_masterBufferIndex++];
+ twi_reply(1);
+ }else{
+ twi_stop();
+ }
+ break;
+ case TW_MT_SLA_NACK: // address sent, nack received
+ twi_error = TW_MT_SLA_NACK;
+ twi_stop();
+ break;
+ case TW_MT_DATA_NACK: // data sent, nack received
+ twi_error = TW_MT_DATA_NACK;
+ twi_stop();
+ break;
+ case TW_MT_ARB_LOST: // lost bus arbitration
+ twi_error = TW_MT_ARB_LOST;
+ twi_releaseBus();
+ break;
+
+ // Master Receiver
+ case TW_MR_DATA_ACK: // data received, ack sent
+ // put byte into buffer
+ twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
+ case TW_MR_SLA_ACK: // address sent, ack received
+ // ack if more bytes are expected, otherwise nack
+ if(twi_masterBufferIndex < twi_masterBufferLength){
+ twi_reply(1);
+ }else{
+ twi_reply(0);
+ }
+ break;
+ case TW_MR_DATA_NACK: // data received, nack sent
+ // put final byte into buffer
+ twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
+ case TW_MR_SLA_NACK: // address sent, nack received
+ twi_stop();
+ break;
+ // TW_MR_ARB_LOST handled by TW_MT_ARB_LOST case
+
+ // Slave Receiver
+ case TW_SR_SLA_ACK: // addressed, returned ack
+ case TW_SR_GCALL_ACK: // addressed generally, returned ack
+ case TW_SR_ARB_LOST_SLA_ACK: // lost arbitration, returned ack
+ case TW_SR_ARB_LOST_GCALL_ACK: // lost arbitration, returned ack
+ // enter slave receiver mode
+ twi_state = TWI_SRX;
+ // indicate that rx buffer can be overwritten and ack
+ twi_rxBufferIndex = 0;
+ twi_reply(1);
+ break;
+ case TW_SR_DATA_ACK: // data received, returned ack
+ case TW_SR_GCALL_DATA_ACK: // data received generally, returned ack
+ // if there is still room in the rx buffer
+ if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
+ // put byte in buffer and ack
+ twi_rxBuffer[twi_rxBufferIndex++] = TWDR;
+ twi_reply(1);
+ }else{
+ // otherwise nack
+ twi_reply(0);
+ }
+ break;
+ case TW_SR_STOP: // stop or repeated start condition received
+ // put a null char after data if there's room
+ if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
+ twi_rxBuffer[twi_rxBufferIndex] = '\0';
+ }
+ // sends ack and stops interface for clock stretching
+ twi_stop();
+ // callback to user defined callback
+ twi_onSlaveReceive(twi_rxBuffer, twi_rxBufferIndex);
+ // since we submit rx buffer to "wire" library, we can reset it
+ twi_rxBufferIndex = 0;
+ // ack future responses and leave slave receiver state
+ twi_releaseBus();
+ break;
+ case TW_SR_DATA_NACK: // data received, returned nack
+ case TW_SR_GCALL_DATA_NACK: // data received generally, returned nack
+ // nack back at master
+ twi_reply(0);
+ break;
+
+ // Slave Transmitter
+ case TW_ST_SLA_ACK: // addressed, returned ack
+ case TW_ST_ARB_LOST_SLA_ACK: // arbitration lost, returned ack
+ // enter slave transmitter mode
+ twi_state = TWI_STX;
+ // ready the tx buffer index for iteration
+ twi_txBufferIndex = 0;
+ // set tx buffer length to be zero, to verify if user changes it
+ twi_txBufferLength = 0;
+ // request for txBuffer to be filled and length to be set
+ // note: user must call twi_transmit(bytes, length) to do this
+ twi_onSlaveTransmit();
+ // if they didn't change buffer & length, initialize it
+ if(0 == twi_txBufferLength){
+ twi_txBufferLength = 1;
+ twi_txBuffer[0] = 0x00;
+ }
+ // transmit first byte from buffer, fall
+ case TW_ST_DATA_ACK: // byte sent, ack returned
+ // copy data to output register
+ TWDR = twi_txBuffer[twi_txBufferIndex++];
+ // if there is more to send, ack, otherwise nack
+ if(twi_txBufferIndex < twi_txBufferLength){
+ twi_reply(1);
+ }else{
+ twi_reply(0);
+ }
+ break;
+ case TW_ST_DATA_NACK: // received nack, we are done
+ case TW_ST_LAST_DATA: // received ack, but we are done already!
+ // ack future responses
+ twi_reply(1);
+ // leave slave receiver state
+ twi_state = TWI_READY;
+ break;
+
+ // All
+ case TW_NO_INFO: // no state information
+ break;
+ case TW_BUS_ERROR: // bus error, illegal stop/start
+ twi_error = TW_BUS_ERROR;
+ twi_stop();
+ break;
+ }
+}
+
diff --git a/arduino_libs_0022/Wire/utility/twi.h b/arduino_libs_0022/Wire/utility/twi.h
new file mode 100644
index 0000000..1258d8d
--- /dev/null
+++ b/arduino_libs_0022/Wire/utility/twi.h
@@ -0,0 +1,57 @@
+/*
+ twi.h - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef twi_h
+#define twi_h
+
+ #include <inttypes.h>
+
+ //#define ATMEGA8
+
+ #ifndef CPU_FREQ
+ #define CPU_FREQ 16000000L
+ #endif
+
+ #ifndef TWI_FREQ
+ #define TWI_FREQ 100000L
+ #endif
+
+ #ifndef TWI_BUFFER_LENGTH
+ #define TWI_BUFFER_LENGTH 32
+ #endif
+
+ #define TWI_READY 0
+ #define TWI_MRX 1
+ #define TWI_MTX 2
+ #define TWI_SRX 3
+ #define TWI_STX 4
+
+ void twi_init(void);
+ void twi_setAddress(uint8_t);
+ uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t);
+ uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t);
+ uint8_t twi_transmit(uint8_t*, uint8_t);
+ void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) );
+ void twi_attachSlaveTxEvent( void (*)(void) );
+ void twi_reply(uint8_t);
+ void twi_stop(void);
+ void twi_releaseBus(void);
+
+#endif
+
diff --git a/arduino_libs/core0022_2560.a b/arduino_libs_0022/core0022_2560.a
index 39936f0..39936f0 100644
--- a/arduino_libs/core0022_2560.a
+++ b/arduino_libs_0022/core0022_2560.a
Binary files differ
diff --git a/arduino_libs/core0022_328p.a b/arduino_libs_0022/core0022_328p.a
index 0141d8c..0141d8c 100644
--- a/arduino_libs/core0022_328p.a
+++ b/arduino_libs_0022/core0022_328p.a
Binary files differ
diff --git a/arduino_libs_1_0/I2C/I2C.cpp b/arduino_libs_1_0/I2C/I2C.cpp
new file mode 100644
index 0000000..ca08759
--- /dev/null
+++ b/arduino_libs_1_0/I2C/I2C.cpp
@@ -0,0 +1,744 @@
+/*
+ I2C.cpp - I2C library
+ Copyright (c) 2011-2012 Wayne Truchsess. All right reserved.
+ Rev 4.0 - January 14th, 2012
+ - Updated to make compatible with 8MHz clock frequency
+ Rev 3.0 - January 9th, 2012
+ - Modified library to be compatible with Arduino 1.0
+ - Changed argument type from boolean to uint8_t in pullUp(),
+ setSpeed() and receiveByte() functions for 1.0 compatability
+ - Modified return values for timeout feature to report
+ back where in the transmission the timeout occured.
+ - added function scan() to perform a bus scan to find devices
+ attached to the I2C bus. Similar to work done by Todbot
+ and Nick Gammon
+ Rev 2.0 - September 19th, 2011
+ - Added support for timeout function to prevent
+ and recover from bus lockup (thanks to PaulS
+ and CrossRoads on the Arduino forum)
+ - Changed return type for stop() from void to
+ uint8_t to handle timeOut function
+ Rev 1.0 - August 8th, 2011
+
+ This is a modified version of the Arduino Wire/TWI
+ library. Functions were rewritten to provide more functionality
+ and also the use of Repeated Start. Some I2C devices will not
+ function correctly without the use of a Repeated Start. The
+ initial version of this library only supports the Master.
+
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#if(ARDUINO >= 100)
+#include <Arduino.h>
+#else
+#include <WProgram.h>
+#endif
+
+#include <inttypes.h>
+#include "I2C.h"
+
+
+
+uint8_t I2C::bytesAvailable = 0;
+uint8_t I2C::bufferIndex = 0;
+uint8_t I2C::totalBytes = 0;
+uint16_t I2C::timeOutDelay = 0;
+
+I2C::I2C()
+{
+}
+
+
+////////////// Public Methods ////////////////////////////////////////
+
+
+
+void I2C::begin()
+{
+ #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
+ // activate internal pull-ups for twi
+ // as per note from atmega8 manual pg167
+ sbi(PORTC, 4);
+ sbi(PORTC, 5);
+ #else
+ // activate internal pull-ups for twi
+ // as per note from atmega128 manual pg204
+ sbi(PORTD, 0);
+ sbi(PORTD, 1);
+ #endif
+ // initialize twi prescaler and bit rate
+ cbi(TWSR, TWPS0);
+ cbi(TWSR, TWPS1);
+ TWBR = ((F_CPU / 100000) - 16) / 2;
+ // enable twi module, acks, and twi interrupt
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
+}
+
+void I2C::end()
+{
+ TWCR = 0;
+}
+
+void I2C::timeOut(uint16_t _timeOut)
+{
+ timeOutDelay = _timeOut;
+}
+
+void I2C::setSpeed(uint8_t _fast)
+{
+ if(!_fast)
+ {
+ TWBR = ((F_CPU / 100000) - 16) / 2;
+ }
+ else
+ {
+ TWBR = ((F_CPU / 400000) - 16) / 2;
+ }
+}
+
+void I2C::pullup(uint8_t activate)
+{
+ if(activate)
+ {
+ #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
+ // activate internal pull-ups for twi
+ // as per note from atmega8 manual pg167
+ sbi(PORTC, 4);
+ sbi(PORTC, 5);
+ #else
+ // activate internal pull-ups for twi
+ // as per note from atmega128 manual pg204
+ sbi(PORTD, 0);
+ sbi(PORTD, 1);
+ #endif
+ }
+ else
+ {
+ #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
+ // deactivate internal pull-ups for twi
+ // as per note from atmega8 manual pg167
+ cbi(PORTC, 4);
+ cbi(PORTC, 5);
+ #else
+ // deactivate internal pull-ups for twi
+ // as per note from atmega128 manual pg204
+ cbi(PORTD, 0);
+ cbi(PORTD, 1);
+ #endif
+ }
+}
+
+void I2C::scan()
+{
+ timeOut(80);
+ uint8_t totalDevicesFound = 0;
+ Serial.println("Scanning for devices...please wait");
+ Serial.println();
+ for(uint8_t s = 8; s <= 0x77; s++)
+ {
+ returnStatus = 0;
+ returnStatus = start();
+ if(!returnStatus)
+ {
+ returnStatus = sendAddress(SLA_W(s));
+ }
+ if(returnStatus)
+ {
+ if(returnStatus == 1)
+ {
+ Serial.println("There is a problem with the bus, could not complete scan");
+ return;
+ }
+ }
+ else
+ {
+ Serial.print("Found device at address - ");
+ Serial.print(" 0x");
+ Serial.println(s,HEX);
+ totalDevicesFound++;
+ }
+ stop();
+ }
+ if(!totalDevicesFound){Serial.println("No devices found");}
+}
+
+
+
+
+/////////////carry over from Wire library ///////////
+
+uint8_t I2C::beginTransmission(uint8_t address)
+{
+ returnStatusWire = 0;
+ returnStatus = 0;
+ returnStatus = start();
+ returnStatusWire = returnStatus;
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ returnStatusWire = returnStatus;
+ return(returnStatus);
+}
+
+uint8_t I2C::beginTransmission(int address)
+{
+ return(beginTransmission((uint8_t) address));
+}
+
+uint8_t I2C::send(uint8_t data)
+{
+ if(returnStatusWire)
+ {
+ return(returnStatusWire);
+ }
+ returnStatus = 0;
+ returnStatus = sendByte(data);
+ returnStatusWire = returnStatus;
+ return(returnStatus);
+}
+
+uint8_t I2C::send(int data)
+{
+ return(send((uint8_t) data));
+}
+
+uint8_t I2C::endTransmission()
+{
+ stop();
+ return(returnStatusWire);
+}
+
+uint8_t I2C::requestFrom(int address, int numberBytes)
+{
+ return(requestFrom((uint8_t) address, (uint8_t) numberBytes));
+}
+
+uint8_t I2C::requestFrom(uint8_t address, uint8_t numberBytes)
+{
+ returnStatus = 0;
+ returnStatus = read(address,numberBytes);
+ if(!returnStatus)
+ {
+ return(numberBytes);
+ }
+ return(0);
+}
+
+uint8_t I2C::available()
+{
+ return(bytesAvailable);
+}
+
+uint8_t I2C::receive()
+{
+ bufferIndex = totalBytes - bytesAvailable;
+ if(!bytesAvailable)
+ {
+ bufferIndex = 0;
+ return(0);
+ }
+ bytesAvailable--;
+ return(data[bufferIndex]);
+}
+
+
+/*return values for new functions that use the timeOut feature
+ will now return at what point in the transmission the timeout
+ occurred. Looking at a full communication sequence between a
+ master and slave (transmit data and then readback data) there
+ a total of 7 points in the sequence where a timeout can occur.
+ These are listed below and correspond to the returned value:
+ 1 - Waiting for successful completion of a Start bit
+ 2 - Waiting for ACK/NACK while addressing slave in transmit mode (MT)
+ 3 - Waiting for ACK/NACK while sending data to the slave
+ 4 - Waiting for successful completion of a Repeated Start
+ 5 - Waiting for ACK/NACK while addressing slave in receiver mode (MR)
+ 6 - Waiting for ACK/NACK while receiving data from the slave
+ 7 - Waiting for successful completion of the Stop bit
+
+ All possible return values:
+ 0: Function executed with no errors
+ 1 - 7: Timeout occurred, see above list
+ 8 - 0xFF See datasheet for exact meaning */
+
+
+/////////////////////////////////////////////////////
+
+uint8_t I2C::write(uint8_t address, uint8_t registerAddress)
+{
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(2);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(registerAddress);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::write(int address, int registerAddress)
+{
+ return(write((uint8_t) address, (uint8_t) registerAddress));
+}
+
+uint8_t I2C::write(uint8_t address, uint8_t registerAddress, uint8_t data)
+{
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(2);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(registerAddress);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(data);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::write(int address, int registerAddress, int data)
+{
+ return(write((uint8_t) address, (uint8_t) registerAddress, (uint8_t) data));
+}
+
+uint8_t I2C::write(uint8_t address, uint8_t registerAddress, char *data)
+{
+ uint8_t bufferLength = strlen(data);
+ returnStatus = 0;
+ returnStatus = write(address, registerAddress, (uint8_t*)data, bufferLength);
+ return(returnStatus);
+}
+
+uint8_t I2C::write(uint8_t address, uint8_t registerAddress, uint8_t *data, uint8_t numberBytes)
+{
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(2);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(registerAddress);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ for (uint8_t i = 0; i < numberBytes; i++)
+ {
+ returnStatus = sendByte(data[i]);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::read(int address, int numberBytes)
+{
+ return(read((uint8_t) address, (uint8_t) numberBytes));
+}
+
+uint8_t I2C::read(uint8_t address, uint8_t numberBytes)
+{
+ bytesAvailable = 0;
+ bufferIndex = 0;
+ if(numberBytes == 0){numberBytes++;}
+ nack = numberBytes - 1;
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_R(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(5);}
+ return(returnStatus);
+ }
+ for(uint8_t i = 0; i < numberBytes; i++)
+ {
+ if( i == nack )
+ {
+ returnStatus = receiveByte(0);
+ if(returnStatus == 1){return(6);}
+
+ if(returnStatus != MR_DATA_NACK){return(returnStatus);}
+ }
+ else
+ {
+ returnStatus = receiveByte(1);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_ACK){return(returnStatus);}
+ }
+ data[i] = TWDR;
+ bytesAvailable = i+1;
+ totalBytes = i+1;
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::read(int address, int registerAddress, int numberBytes)
+{
+ return(read((uint8_t) address, (uint8_t) registerAddress, (uint8_t) numberBytes));
+}
+
+uint8_t I2C::read(uint8_t address, uint8_t registerAddress, uint8_t numberBytes)
+{
+ bytesAvailable = 0;
+ bufferIndex = 0;
+ if(numberBytes == 0){numberBytes++;}
+ nack = numberBytes - 1;
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(2);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(registerAddress);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ returnStatus = start();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(4);}
+ return(returnStatus);
+ }
+ returnStatus = sendAddress(SLA_R(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(5);}
+ return(returnStatus);
+ }
+ for(uint8_t i = 0; i < numberBytes; i++)
+ {
+ if( i == nack )
+ {
+ returnStatus = receiveByte(0);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_NACK){return(returnStatus);}
+ }
+ else
+ {
+ returnStatus = receiveByte(1);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_ACK){return(returnStatus);}
+ }
+ data[i] = TWDR;
+ bytesAvailable = i+1;
+ totalBytes = i+1;
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::read(uint8_t address, uint8_t numberBytes, uint8_t *dataBuffer)
+{
+ bytesAvailable = 0;
+ bufferIndex = 0;
+ if(numberBytes == 0){numberBytes++;}
+ nack = numberBytes - 1;
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_R(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(5);}
+ return(returnStatus);
+ }
+ for(uint8_t i = 0; i < numberBytes; i++)
+ {
+ if( i == nack )
+ {
+ returnStatus = receiveByte(0);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_NACK){return(returnStatus);}
+ }
+ else
+ {
+ returnStatus = receiveByte(1);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_ACK){return(returnStatus);}
+ }
+ dataBuffer[i] = TWDR;
+ bytesAvailable = i+1;
+ totalBytes = i+1;
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+uint8_t I2C::read(uint8_t address, uint8_t registerAddress, uint8_t numberBytes, uint8_t *dataBuffer)
+{
+ bytesAvailable = 0;
+ bufferIndex = 0;
+ if(numberBytes == 0){numberBytes++;}
+ nack = numberBytes - 1;
+ returnStatus = 0;
+ returnStatus = start();
+ if(returnStatus){return(returnStatus);}
+ returnStatus = sendAddress(SLA_W(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(2);}
+ return(returnStatus);
+ }
+ returnStatus = sendByte(registerAddress);
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(3);}
+ return(returnStatus);
+ }
+ returnStatus = start();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(4);}
+ return(returnStatus);
+ }
+ returnStatus = sendAddress(SLA_R(address));
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(5);}
+ return(returnStatus);
+ }
+ for(uint8_t i = 0; i < numberBytes; i++)
+ {
+ if( i == nack )
+ {
+ returnStatus = receiveByte(0);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_NACK){return(returnStatus);}
+ }
+ else
+ {
+ returnStatus = receiveByte(1);
+ if(returnStatus == 1){return(6);}
+ if(returnStatus != MR_DATA_ACK){return(returnStatus);}
+ }
+ dataBuffer[i] = TWDR;
+ bytesAvailable = i+1;
+ totalBytes = i+1;
+ }
+ returnStatus = stop();
+ if(returnStatus)
+ {
+ if(returnStatus == 1){return(7);}
+ return(returnStatus);
+ }
+ return(returnStatus);
+}
+
+
+/////////////// Private Methods ////////////////////////////////////////
+
+
+uint8_t I2C::start()
+{
+ unsigned long startingTime = millis();
+ TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
+ while (!(TWCR & (1<<TWINT)))
+ {
+ if(!timeOutDelay){continue;}
+ if((millis() - startingTime) >= timeOutDelay)
+ {
+ lockUp();
+ return(1);
+ }
+
+ }
+ if ((TWI_STATUS == START) || (TWI_STATUS == REPEATED_START))
+ {
+ return(0);
+ }
+ return(TWI_STATUS);
+}
+
+uint8_t I2C::sendAddress(uint8_t i2cAddress)
+{
+ TWDR = i2cAddress;
+ unsigned long startingTime = millis();
+ TWCR = (1<<TWINT) | (1<<TWEN);
+ while (!(TWCR & (1<<TWINT)))
+ {
+ if(!timeOutDelay){continue;}
+ if((millis() - startingTime) >= timeOutDelay)
+ {
+ lockUp();
+ return(1);
+ }
+
+ }
+ if ((TWI_STATUS == MT_SLA_ACK) || (TWI_STATUS == MR_SLA_ACK))
+ {
+ return(0);
+ }
+ return(TWI_STATUS);
+}
+
+uint8_t I2C::sendByte(uint8_t i2cData)
+{
+ TWDR = i2cData;
+ unsigned long startingTime = millis();
+ TWCR = (1<<TWINT) | (1<<TWEN);
+ while (!(TWCR & (1<<TWINT)))
+ {
+ if(!timeOutDelay){continue;}
+ if((millis() - startingTime) >= timeOutDelay)
+ {
+ lockUp();
+ return(1);
+ }
+
+ }
+ if (TWI_STATUS == MT_DATA_ACK)
+ {
+ return(0);
+ }
+ return(TWI_STATUS);
+}
+
+uint8_t I2C::receiveByte(uint8_t ack)
+{
+ unsigned long startingTime = millis();
+ if(ack)
+ {
+ TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
+
+ }
+ else
+ {
+ TWCR = (1<<TWINT) | (1<<TWEN);
+ }
+ while (!(TWCR & (1<<TWINT)))
+ {
+ if(!timeOutDelay){continue;}
+ if((millis() - startingTime) >= timeOutDelay)
+ {
+ lockUp();
+ return(1);
+ }
+
+ }
+ return(TWI_STATUS);
+}
+
+uint8_t I2C::stop()
+{
+ unsigned long startingTime = millis();
+ TWCR = (1<<TWINT)|(1<<TWEN)| (1<<TWSTO);
+ while ((TWCR & (1<<TWSTO)))
+ {
+ if(!timeOutDelay){continue;}
+ if((millis() - startingTime) >= timeOutDelay)
+ {
+ lockUp();
+ return(1);
+ }
+
+ }
+ return(0);
+}
+
+void I2C::lockUp()
+{
+ TWCR = 0; //releases SDA and SCL lines to high impedance
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA); //reinitialize TWI
+}
+
+SIGNAL(TWI_vect)
+{
+ switch(TWI_STATUS){
+ case 0x20:
+ case 0x30:
+//break;
+ case 0x48:
+ TWCR = (1<<TWINT)|(1<<TWEN)| (1<<TWSTO); // send a stop
+ break;
+ case 0x38:
+ case 0x68:
+ case 0x78:
+ case 0xB0:
+ TWCR = 0; //releases SDA and SCL lines to high impedance
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA); //reinitialize TWI
+ break;
+ }
+}
+
+
+I2C I2c = I2C();
+
diff --git a/arduino_libs_1_0/I2C/I2C.h b/arduino_libs_1_0/I2C/I2C.h
new file mode 100644
index 0000000..988e773
--- /dev/null
+++ b/arduino_libs_1_0/I2C/I2C.h
@@ -0,0 +1,129 @@
+/*
+ I2C.cpp - I2C library
+ Copyright (c) 2011-2012 Wayne Truchsess. All right reserved.
+ Rev 4.0 - January 14th, 2012
+ - Updated to make compatible with 8MHz clock frequency
+ Rev 3.0 - January 9th, 2012
+ - Modified library to be compatible with Arduino 1.0
+ - Changed argument type from boolean to uint8_t in pullUp(),
+ setSpeed() and receiveByte() functions for 1.0 compatability
+ - Modified return values for timeout feature to report
+ back where in the transmission the timeout occured.
+ - added function scan() to perform a bus scan to find devices
+ attached to the I2C bus. Similar to work done by Todbot
+ and Nick Gammon
+ Rev 2.0 - September 19th, 2011
+ - Added support for timeout function to prevent
+ and recover from bus lockup (thanks to PaulS
+ and CrossRoads on the Arduino forum)
+ - Changed return type for stop() from void to
+ uint8_t to handle timeOut function
+ Rev 1.0 - August 8th, 2011
+
+ This is a modified version of the Arduino Wire/TWI
+ library. Functions were rewritten to provide more functionality
+ and also the use of Repeated Start. Some I2C devices will not
+ function correctly without the use of a Repeated Start. The
+ initial version of this library only supports the Master.
+
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#if(ARDUINO >= 100)
+#include <Arduino.h>
+#else
+#include <WProgram.h>
+#endif
+
+#include <inttypes.h>
+
+#ifndef I2C_h
+#define I2C_h
+
+
+#define START 0x08
+#define REPEATED_START 0x10
+#define MT_SLA_ACK 0x18
+#define MT_DATA_ACK 0x28
+#define MR_SLA_ACK 0x40
+#define MR_DATA_ACK 0x50
+#define MR_DATA_NACK 0x58
+#define TWI_STATUS (TWSR & 0xF8)
+#define SLA_W(address) (address << 1)
+#define SLA_R(address) ((address << 1) + 0x01)
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+
+#define MAX_BUFFER_SIZE 32
+
+
+
+
+class I2C
+{
+ public:
+ I2C();
+ void begin();
+ void end();
+ void timeOut(uint16_t);
+ void setSpeed(uint8_t);
+ void pullup(uint8_t);
+ void scan();
+ ///////carry over from Wire library////////
+ uint8_t returnStatusWire;
+ uint8_t beginTransmission(uint8_t);
+ uint8_t beginTransmission(int);
+ uint8_t send(uint8_t);
+ uint8_t send(int);
+ uint8_t endTransmission();
+ uint8_t requestFrom(uint8_t, uint8_t);
+ uint8_t requestFrom(int, int);
+ uint8_t available();
+ ///////////////////////////////////////////
+ uint8_t write(uint8_t, uint8_t);
+ uint8_t write(int, int);
+ uint8_t write(uint8_t, uint8_t, uint8_t);
+ uint8_t write(int, int, int);
+ uint8_t write(uint8_t, uint8_t, char*);
+ uint8_t write(uint8_t, uint8_t, uint8_t*, uint8_t);
+ uint8_t read(uint8_t, uint8_t);
+ uint8_t read(int, int);
+ uint8_t read(uint8_t, uint8_t, uint8_t);
+ uint8_t read(int, int, int);
+ uint8_t read(uint8_t, uint8_t, uint8_t*);
+ uint8_t read(uint8_t, uint8_t, uint8_t, uint8_t*);
+ uint8_t receive();
+
+ private:
+ uint8_t start();
+ uint8_t sendAddress(uint8_t);
+ uint8_t sendByte(uint8_t);
+ uint8_t receiveByte(uint8_t);
+ uint8_t stop();
+ void lockUp();
+ uint8_t returnStatus;
+ uint8_t nack;
+ uint8_t data[MAX_BUFFER_SIZE];
+ static uint8_t bytesAvailable;
+ static uint8_t bufferIndex;
+ static uint8_t totalBytes;
+ static uint16_t timeOutDelay;
+
+};
+
+extern I2C I2c;
+
+#endif
diff --git a/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
new file mode 100644
index 0000000..806e749
--- /dev/null
+++ b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
@@ -0,0 +1,70 @@
+/*******************************************
+ Sample sketch that configures an HMC5883L 3 axis
+ magnetometer to continuous mode and reads back
+ the three axis of data.
+ Code compiles to a size of 1500 bytes
+ Equivalent Wire Library code compiles to 2032 bytes
+ *******************************************/
+
+#include <I2C.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ I2c.begin();
+ I2c.write(HMC5883L,0x02,0x00); //configure device for continuous mode
+}
+
+void loop()
+{
+ I2c.read(HMC5883L,0x03,6); //read 6 bytes (x,y,z) from the device
+ x = I2c.receive() << 8;
+ x |= I2c.receive();
+ y = I2c.receive() << 8;
+ y |= I2c.receive();
+ z = I2c.receive() << 8;
+ z |= I2c.receive();
+}
+
+
+/* Wire library equivalent would be this
+
+//#include <Wire.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ Wire.begin();
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x02);
+ Wire.send(0x00);
+ Wire.endTransmission();
+}
+
+void loop()
+{
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x03);
+ Wire.endTransmission();
+ Wire.requestFrom(HMC5883L,6);
+ x = Wire.receive() << 8;
+ x |= Wire.receive();
+ y = Wire.receive() << 8;
+ y |= Wire.receive();
+ z = Wire.receive() << 8;
+ z |= Wire.receive();
+}
+
+********************************************/
diff --git a/arduino_libs_1_0/I2C/keywords.txt b/arduino_libs_1_0/I2C/keywords.txt
new file mode 100644
index 0000000..5482799
--- /dev/null
+++ b/arduino_libs_1_0/I2C/keywords.txt
@@ -0,0 +1,37 @@
+#######################################
+# Syntax Coloring Map For I2C
+#######################################
+
+#######################################
+# Datatypes (KEYWORD1)
+#######################################
+
+
+#######################################
+# Methods and Functions (KEYWORD2)
+#######################################
+
+begin KEYWORD2
+end KEYWORD2
+timeOut KEYWORD2
+setSpeed KEYWORD2
+pullup KEYWORD2
+scan KEYWORD2
+write KEYWORD2
+read KEYWORD2
+beginTransmission KEYWORD2
+send KEYWORD2
+endTransmission KEYWORD2
+requestFrom KEYWORD2
+available KEYWORD2
+receive KEYWORD2
+
+#######################################
+# Instances (KEYWORD2)
+#######################################
+
+I2c KEYWORD2
+
+#######################################
+# Constants (LITERAL1)
+####################################### \ No newline at end of file
diff --git a/arduino_libs_1_0/I2C/notes.txt b/arduino_libs_1_0/I2C/notes.txt
new file mode 100644
index 0000000..83b61ac
--- /dev/null
+++ b/arduino_libs_1_0/I2C/notes.txt
@@ -0,0 +1 @@
+http://dsscircuits.com/articles/arduino-i2c-master-library.html
diff --git a/arduino_libs_1_0/Wire/Wire.cpp b/arduino_libs_1_0/Wire/Wire.cpp
new file mode 100644
index 0000000..d83f478
--- /dev/null
+++ b/arduino_libs_1_0/Wire/Wire.cpp
@@ -0,0 +1,265 @@
+/*
+ TwoWire.cpp - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+extern "C" {
+ #include <stdlib.h>
+ #include <string.h>
+ #include <inttypes.h>
+ #include "twi.h"
+}
+
+#include "Wire.h"
+
+// Initialize Class Variables //////////////////////////////////////////////////
+
+uint8_t TwoWire::rxBuffer[BUFFER_LENGTH];
+uint8_t TwoWire::rxBufferIndex = 0;
+uint8_t TwoWire::rxBufferLength = 0;
+
+uint8_t TwoWire::txAddress = 0;
+uint8_t TwoWire::txBuffer[BUFFER_LENGTH];
+uint8_t TwoWire::txBufferIndex = 0;
+uint8_t TwoWire::txBufferLength = 0;
+
+uint8_t TwoWire::transmitting = 0;
+void (*TwoWire::user_onRequest)(void);
+void (*TwoWire::user_onReceive)(int);
+
+// Constructors ////////////////////////////////////////////////////////////////
+
+TwoWire::TwoWire()
+{
+}
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+void TwoWire::begin(void)
+{
+ rxBufferIndex = 0;
+ rxBufferLength = 0;
+
+ txBufferIndex = 0;
+ txBufferLength = 0;
+
+ twi_init();
+}
+
+void TwoWire::begin(uint8_t address)
+{
+ twi_setAddress(address);
+ twi_attachSlaveTxEvent(onRequestService);
+ twi_attachSlaveRxEvent(onReceiveService);
+ begin();
+}
+
+void TwoWire::begin(int address)
+{
+ begin((uint8_t)address);
+}
+
+uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
+{
+ // clamp to buffer length
+ if(quantity > BUFFER_LENGTH){
+ quantity = BUFFER_LENGTH;
+ }
+ // perform blocking read into buffer
+ uint8_t read = twi_readFrom(address, rxBuffer, quantity);
+ // set rx buffer iterator vars
+ rxBufferIndex = 0;
+ rxBufferLength = read;
+
+ return read;
+}
+
+uint8_t TwoWire::requestFrom(int address, int quantity)
+{
+ return requestFrom((uint8_t)address, (uint8_t)quantity);
+}
+
+void TwoWire::beginTransmission(uint8_t address)
+{
+ // indicate that we are transmitting
+ transmitting = 1;
+ // set address of targeted slave
+ txAddress = address;
+ // reset tx buffer iterator vars
+ txBufferIndex = 0;
+ txBufferLength = 0;
+}
+
+void TwoWire::beginTransmission(int address)
+{
+ beginTransmission((uint8_t)address);
+}
+
+uint8_t TwoWire::endTransmission(void)
+{
+ // transmit buffer (blocking)
+ int8_t ret = twi_writeTo(txAddress, txBuffer, txBufferLength, 1);
+ // reset tx buffer iterator vars
+ txBufferIndex = 0;
+ txBufferLength = 0;
+ // indicate that we are done transmitting
+ transmitting = 0;
+ return ret;
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+size_t TwoWire::write(uint8_t data)
+{
+ if(transmitting){
+ // in master transmitter mode
+ // don't bother if buffer is full
+ if(txBufferLength >= BUFFER_LENGTH){
+ setWriteError();
+ return 0;
+ }
+ // put byte in tx buffer
+ txBuffer[txBufferIndex] = data;
+ ++txBufferIndex;
+ // update amount in buffer
+ txBufferLength = txBufferIndex;
+ }else{
+ // in slave send mode
+ // reply to master
+ twi_transmit(&data, 1);
+ }
+ return 1;
+}
+
+// must be called in:
+// slave tx event callback
+// or after beginTransmission(address)
+size_t TwoWire::write(const uint8_t *data, size_t quantity)
+{
+ if(transmitting){
+ // in master transmitter mode
+ for(size_t i = 0; i < quantity; ++i){
+ write(data[i]);
+ }
+ }else{
+ // in slave send mode
+ // reply to master
+ twi_transmit(data, quantity);
+ }
+ return quantity;
+}
+
+// must be called in:
+// slave rx event callback
+// or after requestFrom(address, numBytes)
+int TwoWire::available(void)
+{
+ return rxBufferLength - rxBufferIndex;
+}
+
+// must be called in:
+// slave rx event callback
+// or after requestFrom(address, numBytes)
+int TwoWire::read(void)
+{
+ int value = -1;
+
+ // get each successive byte on each call
+ if(rxBufferIndex < rxBufferLength){
+ value = rxBuffer[rxBufferIndex];
+ ++rxBufferIndex;
+ }
+
+ return value;
+}
+
+// must be called in:
+// slave rx event callback
+// or after requestFrom(address, numBytes)
+int TwoWire::peek(void)
+{
+ int value = -1;
+
+ if(rxBufferIndex < rxBufferLength){
+ value = rxBuffer[rxBufferIndex];
+ }
+
+ return value;
+}
+
+void TwoWire::flush(void)
+{
+ // XXX: to be implemented.
+}
+
+// behind the scenes function that is called when data is received
+void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes)
+{
+ // don't bother if user hasn't registered a callback
+ if(!user_onReceive){
+ return;
+ }
+ // don't bother if rx buffer is in use by a master requestFrom() op
+ // i know this drops data, but it allows for slight stupidity
+ // meaning, they may not have read all the master requestFrom() data yet
+ if(rxBufferIndex < rxBufferLength){
+ return;
+ }
+ // copy twi rx buffer into local read buffer
+ // this enables new reads to happen in parallel
+ for(uint8_t i = 0; i < numBytes; ++i){
+ rxBuffer[i] = inBytes[i];
+ }
+ // set rx iterator vars
+ rxBufferIndex = 0;
+ rxBufferLength = numBytes;
+ // alert user program
+ user_onReceive(numBytes);
+}
+
+// behind the scenes function that is called when data is requested
+void TwoWire::onRequestService(void)
+{
+ // don't bother if user hasn't registered a callback
+ if(!user_onRequest){
+ return;
+ }
+ // reset tx buffer iterator vars
+ // !!! this will kill any pending pre-master sendTo() activity
+ txBufferIndex = 0;
+ txBufferLength = 0;
+ // alert user program
+ user_onRequest();
+}
+
+// sets function called on slave write
+void TwoWire::onReceive( void (*function)(int) )
+{
+ user_onReceive = function;
+}
+
+// sets function called on slave read
+void TwoWire::onRequest( void (*function)(void) )
+{
+ user_onRequest = function;
+}
+
+// Preinstantiate Objects //////////////////////////////////////////////////////
+
+TwoWire Wire = TwoWire();
+
diff --git a/arduino_libs_1_0/Wire/Wire.h b/arduino_libs_1_0/Wire/Wire.h
new file mode 100644
index 0000000..23d466c
--- /dev/null
+++ b/arduino_libs_1_0/Wire/Wire.h
@@ -0,0 +1,70 @@
+/*
+ TwoWire.h - TWI/I2C library for Arduino & Wiring
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef TwoWire_h
+#define TwoWire_h
+
+#include <inttypes.h>
+#include "Stream.h"
+
+#define BUFFER_LENGTH 32
+
+class TwoWire : public Stream
+{
+ private:
+ static uint8_t rxBuffer[];
+ static uint8_t rxBufferIndex;
+ static uint8_t rxBufferLength;
+
+ static uint8_t txAddress;
+ static uint8_t txBuffer[];
+ static uint8_t txBufferIndex;
+ static uint8_t txBufferLength;
+
+ static uint8_t transmitting;
+ static void (*user_onRequest)(void);
+ static void (*user_onReceive)(int);
+ static void onRequestService(void);
+ static void onReceiveService(uint8_t*, int);
+ public:
+ TwoWire();
+ void begin();
+ void begin(uint8_t);
+ void begin(int);
+ void beginTransmission(uint8_t);
+ void beginTransmission(int);
+ uint8_t endTransmission(void);
+ uint8_t requestFrom(uint8_t, uint8_t);
+ uint8_t requestFrom(int, int);
+ virtual size_t write(uint8_t);
+ virtual size_t write(const uint8_t *, size_t);
+ virtual int available(void);
+ virtual int read(void);
+ virtual int peek(void);
+ virtual void flush(void);
+ void onReceive( void (*)(int) );
+ void onRequest( void (*)(void) );
+
+ using Print::write;
+};
+
+extern TwoWire Wire;
+
+#endif
+
diff --git a/arduino_libs_1_0/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino b/arduino_libs_1_0/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino
new file mode 100644
index 0000000..9c41c18
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino
@@ -0,0 +1,87 @@
+// I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder
+// by Nicholas Zambetti <http://www.zambetti.com>
+// and James Tichenor <http://www.jamestichenor.net>
+
+// Demonstrates use of the Wire library reading data from the
+// Devantech Utrasonic Rangers SFR08 and SFR10
+
+// Created 29 April 2006
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(); // join i2c bus (address optional for master)
+ Serial.begin(9600); // start serial communication at 9600bps
+}
+
+int reading = 0;
+
+void loop()
+{
+ // step 1: instruct sensor to read echoes
+ Wire.beginTransmission(112); // transmit to device #112 (0x70)
+ // the address specified in the datasheet is 224 (0xE0)
+ // but i2c adressing uses the high 7 bits so it's 112
+ Wire.write(byte(0x00)); // sets register pointer to the command register (0x00)
+ Wire.write(byte(0x50)); // command sensor to measure in "inches" (0x50)
+ // use 0x51 for centimeters
+ // use 0x52 for ping microseconds
+ Wire.endTransmission(); // stop transmitting
+
+ // step 2: wait for readings to happen
+ delay(70); // datasheet suggests at least 65 milliseconds
+
+ // step 3: instruct sensor to return a particular echo reading
+ Wire.beginTransmission(112); // transmit to device #112
+ Wire.write(byte(0x02)); // sets register pointer to echo #1 register (0x02)
+ Wire.endTransmission(); // stop transmitting
+
+ // step 4: request reading from sensor
+ Wire.requestFrom(112, 2); // request 2 bytes from slave device #112
+
+ // step 5: receive reading from sensor
+ if(2 <= Wire.available()) // if two bytes were received
+ {
+ reading = Wire.read(); // receive high byte (overwrites previous reading)
+ reading = reading << 8; // shift high byte to be high 8 bits
+ reading |= Wire.read(); // receive low byte as lower 8 bits
+ Serial.println(reading); // print the reading
+ }
+
+ delay(250); // wait a bit since people have to read the output :)
+}
+
+
+/*
+
+// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08)
+// usage: changeAddress(0x70, 0xE6);
+
+void changeAddress(byte oldAddress, byte newAddress)
+{
+ Wire.beginTransmission(oldAddress);
+ Wire.write(byte(0x00));
+ Wire.write(byte(0xA0));
+ Wire.endTransmission();
+
+ Wire.beginTransmission(oldAddress);
+ Wire.write(byte(0x00));
+ Wire.write(byte(0xAA));
+ Wire.endTransmission();
+
+ Wire.beginTransmission(oldAddress);
+ Wire.write(byte(0x00));
+ Wire.write(byte(0xA5));
+ Wire.endTransmission();
+
+ Wire.beginTransmission(oldAddress);
+ Wire.write(byte(0x00));
+ Wire.write(newAddress);
+ Wire.endTransmission();
+}
+
+*/
diff --git a/arduino_libs_1_0/Wire/examples/digital_potentiometer/digital_potentiometer.ino b/arduino_libs_1_0/Wire/examples/digital_potentiometer/digital_potentiometer.ino
new file mode 100644
index 0000000..38da1c5
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/digital_potentiometer/digital_potentiometer.ino
@@ -0,0 +1,39 @@
+// I2C Digital Potentiometer
+// by Nicholas Zambetti <http://www.zambetti.com>
+// and Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/>
+
+// Demonstrates use of the Wire library
+// Controls AD5171 digital potentiometer via I2C/TWI
+
+// Created 31 March 2006
+
+// This example code is in the public domain.
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(); // join i2c bus (address optional for master)
+}
+
+byte val = 0;
+
+void loop()
+{
+ Wire.beginTransmission(44); // transmit to device #44 (0x2c)
+ // device address is specified in datasheet
+ Wire.write(byte(0x00)); // sends instruction byte
+ Wire.write(val); // sends potentiometer value byte
+ Wire.endTransmission(); // stop transmitting
+
+ val++; // increment value
+ if(val == 64) // if reached 64th position (max)
+ {
+ val = 0; // start over from lowest value
+ }
+ delay(500);
+}
+
diff --git a/arduino_libs_1_0/Wire/examples/master_reader/master_reader.ino b/arduino_libs_1_0/Wire/examples/master_reader/master_reader.ino
new file mode 100644
index 0000000..4124d7d
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/master_reader/master_reader.ino
@@ -0,0 +1,32 @@
+// Wire Master Reader
+// by Nicholas Zambetti <http://www.zambetti.com>
+
+// Demonstrates use of the Wire library
+// Reads data from an I2C/TWI slave device
+// Refer to the "Wire Slave Sender" example for use with this
+
+// Created 29 March 2006
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(); // join i2c bus (address optional for master)
+ Serial.begin(9600); // start serial for output
+}
+
+void loop()
+{
+ Wire.requestFrom(2, 6); // request 6 bytes from slave device #2
+
+ while(Wire.available()) // slave may send less than requested
+ {
+ char c = Wire.read(); // receive a byte as character
+ Serial.print(c); // print the character
+ }
+
+ delay(500);
+}
diff --git a/arduino_libs_1_0/Wire/examples/master_writer/master_writer.ino b/arduino_libs_1_0/Wire/examples/master_writer/master_writer.ino
new file mode 100644
index 0000000..ccaa036
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/master_writer/master_writer.ino
@@ -0,0 +1,31 @@
+// Wire Master Writer
+// by Nicholas Zambetti <http://www.zambetti.com>
+
+// Demonstrates use of the Wire library
+// Writes data to an I2C/TWI slave device
+// Refer to the "Wire Slave Receiver" example for use with this
+
+// Created 29 March 2006
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(); // join i2c bus (address optional for master)
+}
+
+byte x = 0;
+
+void loop()
+{
+ Wire.beginTransmission(4); // transmit to device #4
+ Wire.write("x is "); // sends five bytes
+ Wire.write(x); // sends one byte
+ Wire.endTransmission(); // stop transmitting
+
+ x++;
+ delay(500);
+}
diff --git a/arduino_libs_1_0/Wire/examples/slave_receiver/slave_receiver.ino b/arduino_libs_1_0/Wire/examples/slave_receiver/slave_receiver.ino
new file mode 100644
index 0000000..60dd4bd
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/slave_receiver/slave_receiver.ino
@@ -0,0 +1,38 @@
+// Wire Slave Receiver
+// by Nicholas Zambetti <http://www.zambetti.com>
+
+// Demonstrates use of the Wire library
+// Receives data as an I2C/TWI slave device
+// Refer to the "Wire Master Writer" example for use with this
+
+// Created 29 March 2006
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(4); // join i2c bus with address #4
+ Wire.onReceive(receiveEvent); // register event
+ Serial.begin(9600); // start serial for output
+}
+
+void loop()
+{
+ delay(100);
+}
+
+// function that executes whenever data is received from master
+// this function is registered as an event, see setup()
+void receiveEvent(int howMany)
+{
+ while(1 < Wire.available()) // loop through all but the last
+ {
+ char c = Wire.read(); // receive byte as a character
+ Serial.print(c); // print the character
+ }
+ int x = Wire.read(); // receive byte as an integer
+ Serial.println(x); // print the integer
+}
diff --git a/arduino_libs_1_0/Wire/examples/slave_sender/slave_sender.ino b/arduino_libs_1_0/Wire/examples/slave_sender/slave_sender.ino
new file mode 100644
index 0000000..d3b238a
--- /dev/null
+++ b/arduino_libs_1_0/Wire/examples/slave_sender/slave_sender.ino
@@ -0,0 +1,32 @@
+// Wire Slave Sender
+// by Nicholas Zambetti <http://www.zambetti.com>
+
+// Demonstrates use of the Wire library
+// Sends data as an I2C/TWI slave device
+// Refer to the "Wire Master Reader" example for use with this
+
+// Created 29 March 2006
+
+// This example code is in the public domain.
+
+
+#include <Wire.h>
+
+void setup()
+{
+ Wire.begin(2); // join i2c bus with address #2
+ Wire.onRequest(requestEvent); // register event
+}
+
+void loop()
+{
+ delay(100);
+}
+
+// function that executes whenever data is requested by master
+// this function is registered as an event, see setup()
+void requestEvent()
+{
+ Wire.write("hello "); // respond with message of 6 bytes
+ // as expected by master
+}
diff --git a/arduino_libs_1_0/Wire/keywords.txt b/arduino_libs_1_0/Wire/keywords.txt
new file mode 100644
index 0000000..12f129b
--- /dev/null
+++ b/arduino_libs_1_0/Wire/keywords.txt
@@ -0,0 +1,31 @@
+#######################################
+# Syntax Coloring Map For Wire
+#######################################
+
+#######################################
+# Datatypes (KEYWORD1)
+#######################################
+
+#######################################
+# Methods and Functions (KEYWORD2)
+#######################################
+
+begin KEYWORD2
+beginTransmission KEYWORD2
+endTransmission KEYWORD2
+requestFrom KEYWORD2
+send KEYWORD2
+receive KEYWORD2
+onReceive KEYWORD2
+onRequest KEYWORD2
+
+#######################################
+# Instances (KEYWORD2)
+#######################################
+
+Wire KEYWORD2
+
+#######################################
+# Constants (LITERAL1)
+#######################################
+
diff --git a/arduino_libs_1_0/Wire/utility/twi.c b/arduino_libs_1_0/Wire/utility/twi.c
new file mode 100644
index 0000000..d80114b
--- /dev/null
+++ b/arduino_libs_1_0/Wire/utility/twi.c
@@ -0,0 +1,470 @@
+/*
+ twi.c - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include <inttypes.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <compat/twi.h>
+#include "Arduino.h" // for digitalWrite
+
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+#include "pins_arduino.h"
+#include "twi.h"
+
+static volatile uint8_t twi_state;
+static uint8_t twi_slarw;
+
+static void (*twi_onSlaveTransmit)(void);
+static void (*twi_onSlaveReceive)(uint8_t*, int);
+
+static uint8_t twi_masterBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_masterBufferIndex;
+static uint8_t twi_masterBufferLength;
+
+static uint8_t twi_txBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_txBufferIndex;
+static volatile uint8_t twi_txBufferLength;
+
+static uint8_t twi_rxBuffer[TWI_BUFFER_LENGTH];
+static volatile uint8_t twi_rxBufferIndex;
+
+static volatile uint8_t twi_error;
+
+/*
+ * Function twi_init
+ * Desc readys twi pins and sets twi bitrate
+ * Input none
+ * Output none
+ */
+void twi_init(void)
+{
+ // initialize state
+ twi_state = TWI_READY;
+
+ // activate internal pullups for twi.
+ digitalWrite(SDA, 1);
+ digitalWrite(SCL, 1);
+
+ // initialize twi prescaler and bit rate
+ cbi(TWSR, TWPS0);
+ cbi(TWSR, TWPS1);
+ TWBR = ((F_CPU / TWI_FREQ) - 16) / 2;
+
+ /* twi bit rate formula from atmega128 manual pg 204
+ SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR))
+ note: TWBR should be 10 or higher for master mode
+ It is 72 for a 16mhz Wiring board with 100kHz TWI */
+
+ // enable twi module, acks, and twi interrupt
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
+}
+
+/*
+ * Function twi_slaveInit
+ * Desc sets slave address and enables interrupt
+ * Input none
+ * Output none
+ */
+void twi_setAddress(uint8_t address)
+{
+ // set twi slave address (skip over TWGCE bit)
+ TWAR = address << 1;
+}
+
+/*
+ * Function twi_readFrom
+ * Desc attempts to become twi bus master and read a
+ * series of bytes from a device on the bus
+ * Input address: 7bit i2c device address
+ * data: pointer to byte array
+ * length: number of bytes to read into array
+ * Output number of bytes read
+ */
+uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 0;
+ }
+
+ // wait until twi is ready, become master receiver
+ while(TWI_READY != twi_state){
+ continue;
+ }
+ twi_state = TWI_MRX;
+ // reset error state (0xFF.. no error occured)
+ twi_error = 0xFF;
+
+ // initialize buffer iteration vars
+ twi_masterBufferIndex = 0;
+ twi_masterBufferLength = length-1; // This is not intuitive, read on...
+ // On receive, the previously configured ACK/NACK setting is transmitted in
+ // response to the received byte before the interrupt is signalled.
+ // Therefor we must actually set NACK when the _next_ to last byte is
+ // received, causing that NACK to be sent in response to receiving the last
+ // expected byte of data.
+
+ // build sla+w, slave device address + w bit
+ twi_slarw = TW_READ;
+ twi_slarw |= address << 1;
+
+ // send start condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
+
+ // wait for read operation to complete
+ while(TWI_MRX == twi_state){
+ continue;
+ }
+
+ if (twi_masterBufferIndex < length)
+ length = twi_masterBufferIndex;
+
+ // copy twi buffer to data
+ for(i = 0; i < length; ++i){
+ data[i] = twi_masterBuffer[i];
+ }
+
+ return length;
+}
+
+/*
+ * Function twi_writeTo
+ * Desc attempts to become twi bus master and write a
+ * series of bytes to a device on the bus
+ * Input address: 7bit i2c device address
+ * data: pointer to byte array
+ * length: number of bytes in array
+ * wait: boolean indicating to wait for write or not
+ * Output 0 .. success
+ * 1 .. length to long for buffer
+ * 2 .. address send, NACK received
+ * 3 .. data send, NACK received
+ * 4 .. other twi error (lost bus arbitration, bus error, ..)
+ */
+uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 1;
+ }
+
+ // wait until twi is ready, become master transmitter
+ while(TWI_READY != twi_state){
+ continue;
+ }
+ twi_state = TWI_MTX;
+ // reset error state (0xFF.. no error occured)
+ twi_error = 0xFF;
+
+ // initialize buffer iteration vars
+ twi_masterBufferIndex = 0;
+ twi_masterBufferLength = length;
+
+ // copy data to twi buffer
+ for(i = 0; i < length; ++i){
+ twi_masterBuffer[i] = data[i];
+ }
+
+ // build sla+w, slave device address + w bit
+ twi_slarw = TW_WRITE;
+ twi_slarw |= address << 1;
+
+ // send start condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
+
+ // wait for write operation to complete
+ while(wait && (TWI_MTX == twi_state)){
+ continue;
+ }
+
+ if (twi_error == 0xFF)
+ return 0; // success
+ else if (twi_error == TW_MT_SLA_NACK)
+ return 2; // error: address send, nack received
+ else if (twi_error == TW_MT_DATA_NACK)
+ return 3; // error: data send, nack received
+ else
+ return 4; // other twi error
+}
+
+/*
+ * Function twi_transmit
+ * Desc fills slave tx buffer with data
+ * must be called in slave tx event callback
+ * Input data: pointer to byte array
+ * length: number of bytes in array
+ * Output 1 length too long for buffer
+ * 2 not slave transmitter
+ * 0 ok
+ */
+uint8_t twi_transmit(const uint8_t* data, uint8_t length)
+{
+ uint8_t i;
+
+ // ensure data will fit into buffer
+ if(TWI_BUFFER_LENGTH < length){
+ return 1;
+ }
+
+ // ensure we are currently a slave transmitter
+ if(TWI_STX != twi_state){
+ return 2;
+ }
+
+ // set length and copy data into tx buffer
+ twi_txBufferLength = length;
+ for(i = 0; i < length; ++i){
+ twi_txBuffer[i] = data[i];
+ }
+
+ return 0;
+}
+
+/*
+ * Function twi_attachSlaveRxEvent
+ * Desc sets function called before a slave read operation
+ * Input function: callback function to use
+ * Output none
+ */
+void twi_attachSlaveRxEvent( void (*function)(uint8_t*, int) )
+{
+ twi_onSlaveReceive = function;
+}
+
+/*
+ * Function twi_attachSlaveTxEvent
+ * Desc sets function called before a slave write operation
+ * Input function: callback function to use
+ * Output none
+ */
+void twi_attachSlaveTxEvent( void (*function)(void) )
+{
+ twi_onSlaveTransmit = function;
+}
+
+/*
+ * Function twi_reply
+ * Desc sends byte or readys receive line
+ * Input ack: byte indicating to ack or to nack
+ * Output none
+ */
+void twi_reply(uint8_t ack)
+{
+ // transmit master read ready signal, with or without ack
+ if(ack){
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
+ }else{
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT);
+ }
+}
+
+/*
+ * Function twi_stop
+ * Desc relinquishes bus master status
+ * Input none
+ * Output none
+ */
+void twi_stop(void)
+{
+ // send stop condition
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
+
+ // wait for stop condition to be exectued on bus
+ // TWINT is not set after a stop condition!
+ while(TWCR & _BV(TWSTO)){
+ continue;
+ }
+
+ // update twi state
+ twi_state = TWI_READY;
+}
+
+/*
+ * Function twi_releaseBus
+ * Desc releases bus control
+ * Input none
+ * Output none
+ */
+void twi_releaseBus(void)
+{
+ // release bus
+ TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
+
+ // update twi state
+ twi_state = TWI_READY;
+}
+
+SIGNAL(TWI_vect)
+{
+ switch(TW_STATUS){
+ // All Master
+ case TW_START: // sent start condition
+ case TW_REP_START: // sent repeated start condition
+ // copy device address and r/w bit to output register and ack
+ TWDR = twi_slarw;
+ twi_reply(1);
+ break;
+
+ // Master Transmitter
+ case TW_MT_SLA_ACK: // slave receiver acked address
+ case TW_MT_DATA_ACK: // slave receiver acked data
+ // if there is data to send, send it, otherwise stop
+ if(twi_masterBufferIndex < twi_masterBufferLength){
+ // copy data to output register and ack
+ TWDR = twi_masterBuffer[twi_masterBufferIndex++];
+ twi_reply(1);
+ }else{
+ twi_stop();
+ }
+ break;
+ case TW_MT_SLA_NACK: // address sent, nack received
+ twi_error = TW_MT_SLA_NACK;
+ twi_stop();
+ break;
+ case TW_MT_DATA_NACK: // data sent, nack received
+ twi_error = TW_MT_DATA_NACK;
+ twi_stop();
+ break;
+ case TW_MT_ARB_LOST: // lost bus arbitration
+ twi_error = TW_MT_ARB_LOST;
+ twi_releaseBus();
+ break;
+
+ // Master Receiver
+ case TW_MR_DATA_ACK: // data received, ack sent
+ // put byte into buffer
+ twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
+ case TW_MR_SLA_ACK: // address sent, ack received
+ // ack if more bytes are expected, otherwise nack
+ if(twi_masterBufferIndex < twi_masterBufferLength){
+ twi_reply(1);
+ }else{
+ twi_reply(0);
+ }
+ break;
+ case TW_MR_DATA_NACK: // data received, nack sent
+ // put final byte into buffer
+ twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
+ case TW_MR_SLA_NACK: // address sent, nack received
+ twi_stop();
+ break;
+ // TW_MR_ARB_LOST handled by TW_MT_ARB_LOST case
+
+ // Slave Receiver
+ case TW_SR_SLA_ACK: // addressed, returned ack
+ case TW_SR_GCALL_ACK: // addressed generally, returned ack
+ case TW_SR_ARB_LOST_SLA_ACK: // lost arbitration, returned ack
+ case TW_SR_ARB_LOST_GCALL_ACK: // lost arbitration, returned ack
+ // enter slave receiver mode
+ twi_state = TWI_SRX;
+ // indicate that rx buffer can be overwritten and ack
+ twi_rxBufferIndex = 0;
+ twi_reply(1);
+ break;
+ case TW_SR_DATA_ACK: // data received, returned ack
+ case TW_SR_GCALL_DATA_ACK: // data received generally, returned ack
+ // if there is still room in the rx buffer
+ if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
+ // put byte in buffer and ack
+ twi_rxBuffer[twi_rxBufferIndex++] = TWDR;
+ twi_reply(1);
+ }else{
+ // otherwise nack
+ twi_reply(0);
+ }
+ break;
+ case TW_SR_STOP: // stop or repeated start condition received
+ // put a null char after data if there's room
+ if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
+ twi_rxBuffer[twi_rxBufferIndex] = '\0';
+ }
+ // sends ack and stops interface for clock stretching
+ twi_stop();
+ // callback to user defined callback
+ twi_onSlaveReceive(twi_rxBuffer, twi_rxBufferIndex);
+ // since we submit rx buffer to "wire" library, we can reset it
+ twi_rxBufferIndex = 0;
+ // ack future responses and leave slave receiver state
+ twi_releaseBus();
+ break;
+ case TW_SR_DATA_NACK: // data received, returned nack
+ case TW_SR_GCALL_DATA_NACK: // data received generally, returned nack
+ // nack back at master
+ twi_reply(0);
+ break;
+
+ // Slave Transmitter
+ case TW_ST_SLA_ACK: // addressed, returned ack
+ case TW_ST_ARB_LOST_SLA_ACK: // arbitration lost, returned ack
+ // enter slave transmitter mode
+ twi_state = TWI_STX;
+ // ready the tx buffer index for iteration
+ twi_txBufferIndex = 0;
+ // set tx buffer length to be zero, to verify if user changes it
+ twi_txBufferLength = 0;
+ // request for txBuffer to be filled and length to be set
+ // note: user must call twi_transmit(bytes, length) to do this
+ twi_onSlaveTransmit();
+ // if they didn't change buffer & length, initialize it
+ if(0 == twi_txBufferLength){
+ twi_txBufferLength = 1;
+ twi_txBuffer[0] = 0x00;
+ }
+ // transmit first byte from buffer, fall
+ case TW_ST_DATA_ACK: // byte sent, ack returned
+ // copy data to output register
+ TWDR = twi_txBuffer[twi_txBufferIndex++];
+ // if there is more to send, ack, otherwise nack
+ if(twi_txBufferIndex < twi_txBufferLength){
+ twi_reply(1);
+ }else{
+ twi_reply(0);
+ }
+ break;
+ case TW_ST_DATA_NACK: // received nack, we are done
+ case TW_ST_LAST_DATA: // received ack, but we are done already!
+ // ack future responses
+ twi_reply(1);
+ // leave slave receiver state
+ twi_state = TWI_READY;
+ break;
+
+ // All
+ case TW_NO_INFO: // no state information
+ break;
+ case TW_BUS_ERROR: // bus error, illegal stop/start
+ twi_error = TW_BUS_ERROR;
+ twi_stop();
+ break;
+ }
+}
+
diff --git a/arduino_libs_1_0/Wire/utility/twi.h b/arduino_libs_1_0/Wire/utility/twi.h
new file mode 100644
index 0000000..831b928
--- /dev/null
+++ b/arduino_libs_1_0/Wire/utility/twi.h
@@ -0,0 +1,53 @@
+/*
+ twi.h - TWI/I2C library for Wiring & Arduino
+ Copyright (c) 2006 Nicholas Zambetti. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef twi_h
+#define twi_h
+
+ #include <inttypes.h>
+
+ //#define ATMEGA8
+
+ #ifndef TWI_FREQ
+ #define TWI_FREQ 100000L
+ #endif
+
+ #ifndef TWI_BUFFER_LENGTH
+ #define TWI_BUFFER_LENGTH 32
+ #endif
+
+ #define TWI_READY 0
+ #define TWI_MRX 1
+ #define TWI_MTX 2
+ #define TWI_SRX 3
+ #define TWI_STX 4
+
+ void twi_init(void);
+ void twi_setAddress(uint8_t);
+ uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t);
+ uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t);
+ uint8_t twi_transmit(const uint8_t*, uint8_t);
+ void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) );
+ void twi_attachSlaveTxEvent( void (*)(void) );
+ void twi_reply(uint8_t);
+ void twi_stop(void);
+ void twi_releaseBus(void);
+
+#endif
+
diff --git a/electicAndroid_001.tar b/electicAndroid_001.tar
new file mode 100644
index 0000000..09cc667
--- /dev/null
+++ b/electicAndroid_001.tar
Binary files differ
diff --git a/electicAndroid_002.tar b/electicAndroid_002.tar
new file mode 100644
index 0000000..543a908
--- /dev/null
+++ b/electicAndroid_002.tar
Binary files differ
diff --git a/electicAndroid_003.tar b/electicAndroid_003.tar
new file mode 100644
index 0000000..4d7bde8
--- /dev/null
+++ b/electicAndroid_003.tar
Binary files differ
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf b/electic_streaming328p/bin/Debug/electic_streaming.elf
new file mode 100755
index 0000000..56120ff
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf
Binary files differ
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf.eep.hex b/electic_streaming328p/bin/Debug/electic_streaming.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf.hex b/electic_streaming328p/bin/Debug/electic_streaming.elf.hex
new file mode 100644
index 0000000..235f9d2
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.hex
@@ -0,0 +1,364 @@
+:100000000C9444000C946C000C946C000C946C00E8
+:100010000C946C000C946C000C946C000C946C00B0
+:100020000C946C000C946C000C946C000C946701A4
+:100030000C946C000C946C000C946C000C946C0090
+:100040000C946C000C946C000C94F0030C946C00F9
+:100050000C946C000C946C000C946C000C946C0070
+:100060000C946C000C946C0005A84CCDB2D44EB925
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803FCE0111241FBECFEFD8E09C
+:10009000DEBFCDBF11E0A0E0B1E0ECE7F6E102C0C9
+:1000A00005900D92AA32B107D9F713E0AAE2B1E0A8
+:1000B00001C01D92A43BB107E1F710E0C8E8D0E011
+:1000C00004C02297FE010E94A309C638D107C9F7D0
+:1000D0000E94FE000C943C0B0C940000DF93CF9325
+:1000E000CDB7DEB764970FB6F894DEBF0FBECDBFB5
+:1000F00088ED9FE0A9E4B0E48F839887A987BA8749
+:1001000080E090E0DC0189839A83AB83BC832F81FC
+:10011000388549855A85CA01B9010E947705DC01F5
+:10012000CB01BC01CD0120E030E040E054E40E946E
+:10013000CF06DC01CB018B879C87AD87BE871E82F3
+:100140001D8248C089819A81AB81BC81BC01CD01EF
+:100150000E94A709DC01CB01BC01CD0120E030E009
+:100160004EEF52E40E94D505DC01CB018F87988BBE
+:10017000A98BBA8B69817A818B819C812B853C8587
+:100180004D855E850E947705DC01CB0189839A83CA
+:10019000AB83BC836F85788989899A8920E030E0B8
+:1001A00040E053E40E947705DC01CB01BC01CD01A6
+:1001B0000E947D07DC01CB019C8B8B8B2B898D8171
+:1001C0009E81865D9E4FFC0120838D819E810196DC
+:1001D0009E838D8321E08D819E81F2E080309F0798
+:1001E0000CF020E0222309F0ADCF64960FB6F8940E
+:1001F000DEBF0FBECDBFCF91DF910895DF93CF93C8
+:100200000F92CDB7DEB70E946E008EE293E040E021
+:1002100052EC61E070E00E94E20184E290E024E2AE
+:1002200030E0F90120812062FC01208385E290E02A
+:1002300020E2FC01208381E890E021E830E0F90130
+:1002400020812860FC0120838FE690E02FE630E0DB
+:10025000F90120812260FC01208388E890E026E8F3
+:1002600031E0FC0131832083789403C0000001C099
+:1002700000008EE293E00E94DF0121E018161906CB
+:100280000CF020E0222391F385E290E025E230E0BB
+:10029000F901308120E22327FC0120838EE293E0E4
+:1002A0000E94DC0189838981813611F78EE293E017
+:1002B00020E031E0B9010E94360281E890E021E8B7
+:1002C00030E0F90120812560FC012083D2CF1F920C
+:1002D0000F920FB60F9211242F933F934F935F937A
+:1002E0006F937F938F939F93AF93BF93EF93FF93FE
+:1002F000DF93CF9300D0CDB7DEB785E290E025E263
+:1003000030E0F901308120E22327FC0120831A82AA
+:10031000198220C080912C0390912D03865D9E4F01
+:10032000FC0120818EE293E0622F0E94D501809132
+:100330002C0390912D03019620E032E0B9010E9438
+:10034000060990932D0380932C0389819A8101964D
+:100350009A83898321E089819A81F1E080349F0723
+:100360000CF020E02223B1F68EE293E060E00E94E0
+:10037000D5010F900F90CF91DF91FF91EF91BF9139
+:10038000AF919F918F917F916F915F914F913F912D
+:100390002F910F900FBE0F901F9018958FE191E055
+:1003A00090932F0380932E030895862F0E94AF030E
+:1003B00008950E94E70308950E94C80308950E94CB
+:1003C000B7030895CB01BA010E9476030895DC01BA
+:1003D000ED91FC910190F081E02D09950895DC01EB
+:1003E000ED91FC910190F081E02D099508950F9316
+:1003F0001F93CF93DF938C01EB0109C02196D801A5
+:10040000ED91FC910190F081E02DC8010995688182
+:100410006623A1F7DF91CF911F910F9108950F935C
+:100420001F938C01DC01ED91FC910190F081E02D96
+:100430006DE00995D801ED91FC910190F081E02DDE
+:100440006AE0C80109951F910F9108950F931F93BA
+:100450008C01DC01ED91FC910190F081E02D09957A
+:10046000C8010E940F021F910F9108950F931F93CF
+:100470008C010E94F701C8010E940F021F910F9189
+:1004800008950F931F938C01DC01ED91FC91019075
+:10049000F081E02D0995C8010E940F021F910F9174
+:1004A00008952F923F924F925F926F927F928F9218
+:1004B0009F92AF92BF92CF92DF92EF92FF920F93F3
+:1004C0001F93DF93CF93CDB7DEB7A0970FB6F89405
+:1004D000DEBF0FBECDBF1C016A017B014115510576
+:1004E0006105710549F4DC01ED91FC910190F08109
+:1004F000E02D60E3099554C0882499245401422ECC
+:1005000055246624772401E010E00C0F1D1F080D10
+:10051000191DC701B601A30192010E941909F80132
+:1005200060830894811C911CA11CB11CC701B601F9
+:10053000A30192010E941909C901DA016C017D0130
+:10054000C114D104E104F104F1F681E0E82EF12CAC
+:10055000EC0EFD1EE80CF91C3E010894611C711C98
+:10056000D501C4010197A109B1096C01C818D908C6
+:1005700014C0F601EE0DFF1D60816A3010F4605D5D
+:1005800001C0695CD101ED91FC910190F081E02DF9
+:10059000C10109950894E108F1086E147F0449F738
+:1005A000A0960FB6F894DEBF0FBECDBFCF91DF91FE
+:1005B0001F910F91FF90EF90DF90CF90BF90AF9081
+:1005C0009F908F907F906F905F904F903F902F9073
+:1005D00008952AE00E94510208950F931F938C0101
+:1005E0000E94E902C8010E940F021F910F91089515
+:1005F000AB0160E070E00E94E90208950F931F9341
+:100600008C01AB0160E070E00E94E902C8010E9429
+:100610000F021F910F910895EF92FF920F931F9376
+:10062000CF93DF93EC017A018B0177FF0FC0E88154
+:10063000F9810190F081E02D6DE20995109500950A
+:10064000F094E094E11CF11C011D111D2AE0B80199
+:10065000A701CE010E945102DF91CF911F910F910E
+:10066000FF90EF9008950F931F938C010E940C034D
+:10067000C8010E940F021F910F910895AB016627D8
+:1006800057FD6095762F0E940C0308950F931F93DA
+:100690008C01AB01662757FD6095762F0E940C03F5
+:1006A000C8010E940F021F910F910895DC012115CE
+:1006B000310541F4ED91FC910190F081E02D642F22
+:1006C000099508952A30310519F40E940C03089504
+:1006D0000E94510208950F931F938C010E945603AC
+:1006E000C8010E940F021F910F910895EF92FF928F
+:1006F0000F931F937B018C0122E030E040E050E03B
+:100700000E943B09205C3D4B404F5F4FCA01B9013D
+:10071000A80197010E943B09C901DA010197A109CB
+:10072000B109292F3A2F4B2F552747FD5A9501968E
+:10073000A11DB11D2093C50081508093C400E1EC40
+:10074000F0E0808180618083808188608083808107
+:10075000806880831F910F91FF90EF900895982FEC
+:100760008091C00085FFFCCF9093C60008958091D2
+:1007700030039091310380589F4F20913203309184
+:100780003303821B930B60E870E00E940609089512
+:1007900040913203509133038091300390913103A3
+:1007A0008417950719F42FEF3FEF0FC0FA01EC5CA7
+:1007B000FC4F2081CA01019660E870E00E940609A2
+:1007C000909333038093320330E0C9010895809100
+:1007D0003203909133039093310380933003089553
+:1007E0001F920F920FB60F9211242F933F934F93A6
+:1007F0005F936F937F938F939F93AF93BF93EF9389
+:10080000FF934091C600E0913003F0913103CF0196
+:10081000019660E870E00E9406099C018091320315
+:10082000909133032817390739F0EC5CFC4F408373
+:100830003093310320933003FF91EF91BF91AF913B
+:100840009F918F917F916F915F914F913F912F91E8
+:100850000F900FBE0F901F901895A0E0B0E0E3E35B
+:10086000F4E00C946E09FC01EA018081823008F406
+:1008700038C1DB019C91923008F430C1843059F4C6
+:10088000943009F02EC1918111968C91119798178F
+:1008900009F021C126C1943009F420C19230B1F48D
+:1008A000823009F01EC1CA01AF0128E0DA010D90C3
+:1008B000AD01DC010D92CD012150C1F7DB01119694
+:1008C0008C9111979181892389830AC1823009F41F
+:1008D00005C1C280D380DB0112966D907C90139786
+:1008E00024813581468157811496ED90FD900D91BC
+:1008F0001C911797C601861997095C0197FF04C0E0
+:10090000AA24BB24A81AB90AB0E2AB16B1040CF0B1
+:1009100061C0181619066CF5370148010A2C04C08D
+:1009200096948794779467940A94D2F781E090E044
+:10093000A0E0B0E00A2C04C0880F991FAA1FBB1FBB
+:100940000A94D2F70197A109B1098E219F21A02312
+:10095000B123EE24FF248701E3940097A105B1059C
+:1009600019F4EE24FF248701E628F728082919291D
+:100970003CC00097D1F1CA0CDB1C39014A010A2C9A
+:1009800004C096948794779467940A94D2F781E090
+:1009900090E0A0E0B0E00A2C04C0880F991FAA1FC5
+:1009A000BB1F0A94D2F70197A109B10982239323AF
+:1009B000A423B52321E030E040E050E00097A105FA
+:1009C000B10519F420E030E0A9012629372948298A
+:1009D00059290BC06C147D0424F4EE24FF248701F4
+:1009E00004C0630120E030E0A9018181FB01918115
+:1009F000891709F445C0882349F0D801C701821B33
+:100A0000930BA40BB50B9C01AD0104C02E193F093B
+:100A1000400B510B57FD04C01982DB82CA820BC008
+:100A200081E08983DB82CA8250954095309521957B
+:100A30003F4F4F4F5F4F2C833D834E835F830DC0ED
+:100A4000880F991FAA1FBB1F8C839D83AE83BF8312
+:100A50008A819B8101979B838A838C819D81AE8152
+:100A6000BF819C01AD0121503040404050402F3F9C
+:100A7000EFEF3E07EFEF4E07EFE35E0708F30BC023
+:100A80008983DB82CA822E0D3F1D401F511F2C839C
+:100A90003D834E835F8383E088832C813D814E813B
+:100AA0005F8157FF1DC0DA01C90181709070A0708D
+:100AB000B0705695479537952795822B932BA42B8D
+:100AC000B52B8C839D83AE83BF838A819B810196E6
+:100AD0009B838A8305C0E1E2F1E003C0FB0101C012
+:100AE000FE01CF01CDB7DEB7EEE00C948A09A0E29B
+:100AF000B0E0EDE7F5E00C94760969837A838B83A7
+:100B00009C832D833E834F83588789E0E82EF12C08
+:100B1000EC0EFD1ECE010196B7010E949D088E01CC
+:100B20000F5E1F4FCE010596B8010E949D08C701B8
+:100B3000B801AE01475E5F4F0E942D040E94CF07AF
+:100B4000A096E6E00C949209A0E2B0E0EAEAF5E0B3
+:100B50000C94760969837A838B839C832D833E83EF
+:100B60004F8358878E01075F1F4FCE010196B80152
+:100B70000E949D0891E1E92EF12CEC0EFD1ECE01A4
+:100B80000596B7010E949D088A8991E089278A8B82
+:100B9000C801B701AE01475E5F4F0E942D040E945D
+:100BA000CF07A096E6E00C949209A0E2B0E0EBED4E
+:100BB000F5E00C946A0969837A838B839C832D8387
+:100BC0003E834F835887CE010196BE01675F7F4FFA
+:100BD0000E949D08CE010596BE016F5E7F4F0E9468
+:100BE0009D089985923078F089898230C0F09430E0
+:100BF00019F4823041F4CBC0843019F4923079F486
+:100C0000C6C0923051F481E02A859A89291709F4E7
+:100C100080E08A87CE010996BCC0823051F481E021
+:100C20002A859A89291709F480E08A8BCE0141969A
+:100C3000B0C06D847E848F849888ED88FE880F898B
+:100C4000188DE0E2F0E080E090E0DC01AA24BB2413
+:100C5000650120E030E0A901B30161707070611599
+:100C60007105D1F02E0D3F1D401F511F15012601AA
+:100C7000280E391E4A1E5B1E81E090E0A0E0B0E025
+:100C80002E153F054007510718F080E090E0DC0189
+:100C9000820D931DA41DB51DAA0CBB1CCC1CDD1C14
+:100CA00017FF09C061E0262E312C412C512CA228BF
+:100CB000B328C428D528319749F0EE0CFF1C001F3B
+:100CC000111F9694879477946794C6CF6B897C891B
+:100CD000EB85FC856E0F7F1F6E5F7F4F7C8F6B8F68
+:100CE00061E0EA857A89E71709F460E06A8F6B8D25
+:100CF0007C8D10C0FC01E170F070309729F05695A2
+:100D00004795379527955068B695A79597958795F8
+:100D10006F5F7F4FB7FDEECF0CC0880F991FAA1FE2
+:100D2000BB1F57FD8160220F331F441F551F6150A9
+:100D300070408030E0E09E07E0E0AE07E0E4BE07F0
+:100D400060F36B8F7C8F6FE7E62EF12C012D112D58
+:100D5000E822F9220A231B2360E4E616F1040105C8
+:100D6000110561F487FD0AC02115310541055105C2
+:100D700029F0805C9F4FAF4FBF4F80788D8F9E8F43
+:100D8000AF8FB8A383E0898FCE01499602C081E27C
+:100D900091E00E94CF07A096E2E10C948609A8E1B9
+:100DA000B0E0E5EDF6E00C94720969837A838B83F9
+:100DB0009C832D833E834F8358878E01075F1F4F8F
+:100DC000CE010196B8010E949D0881E1E82EF12C28
+:100DD000EC0EFD1ECE010596B7010E949D08998577
+:100DE000923008F483C08989823008F47BC02A8558
+:100DF0003A8923272A87943011F0923021F49817EA
+:100E000009F06CC071C0843039F41D861E861F86BF
+:100E1000188A1C861B866AC0823019F484E0898790
+:100E200065C08B859C852B893C89821B930B9C8795
+:100E30008B872D853E854F855889ED88FE880F89E3
+:100E4000188D2E153F054007510738F4220F331F28
+:100E5000441F551F01979C878B876FE170E0A12C81
+:100E6000B12CC12CA0E4DA2E80E090E0DC012E153C
+:100E70003F054007510740F08A299B29AC29BD292D
+:100E80002E193F09400B510BD694C794B794A794E1
+:100E9000220F331F441F551F6150704041F76FE709
+:100EA000E62EF12C012D112DE822F9220A231B2315
+:100EB00060E4E616F1040105110561F487FD0AC03E
+:100EC000211531054105510529F0805C9F4FAF4F39
+:100ED000BF4F80788D879E87AF87B88B8E01075F65
+:100EE0001F4F04C0870102C001E211E0C8010E9447
+:100EF000CF076896EAE00C948E09ACE0B0E0E3E836
+:100F0000F7E00C947A0969837A838B839C83CE0102
+:100F10000196BE016B5F7F4F0E949D088D818230DC
+:100F200081F1823070F1843021F48E81882369F15F
+:100F30000AC02F81388537FD24C06E812F313105DD
+:100F40003CF0662311F120E030E040E050E821C0A1
+:100F50008EE190E0821B930B29853A854B855C8559
+:100F600004C056954795379527958A95D2F76623FD
+:100F700081F050954095309521953F4F4F4F5F4FF1
+:100F800008C020E030E0A90104C02FEF3FEF4FEF91
+:100F90005FE7B901CA012C96E2E00C949609EF9242
+:100FA000FF920F931F93CF93DF93FC012481358130
+:100FB0004681578161818081823020F44061EFEF6A
+:100FC000F0E0A3C0843009F49BC0823009F492C0E1
+:100FD000211531054105510509F48FC00280F381C7
+:100FE000E02D8FEFE238F8070CF05AC0C2E8DFEFCF
+:100FF000CE1BDF0BCA31D1056CF579018A010C2EAD
+:1010000004C016950795F794E7940A94D2F781E007
+:1010100090E0A0E0B0E00C2E04C0880F991FAA1F3A
+:10102000BB1F0A94D2F70197A109B1098223932328
+:10103000A423B52321E030E040E050E00097A10573
+:10104000B10519F420E030E0A9012E293F29402BF9
+:10105000512B03C020E030E0A901DA01C9018F77EC
+:101060009070A070B07080349105A105B10539F47D
+:1010700027FF09C0205C3F4F4F4F5F4F04C0215CEA
+:101080003F4F4F4F5F4FE1E0F0E0203080E0380706
+:1010900080E0480780E4580728F5E0E0F0E022C04F
+:1010A000E038F1056CF5E158FF4FDA01C9018F779F
+:1010B0009070A070B07080349105A105B10539F42D
+:1010C00027FF09C0205C3F4F4F4F5F4F04C0215C9A
+:1010D0003F4F4F4F5F4F57FF05C056954795379588
+:1010E0002795319687E056954795379527958A95A8
+:1010F000D1F70BC0E0E0F0E005C0E0E0F0E005C0B3
+:10110000EFEFF0E020E030E0A9018E2F87958827EF
+:101110008795942F9F77679566276795E695E22ECA
+:10112000A92FA82BFE2FF62B622F732F8A2F9F2F0C
+:10113000CDB7DEB7E6E00C949209DC01FB012C91FF
+:1011400011963C91119712968C911297482F4F77D8
+:1011500050E0982F991F9927991F13966C91139718
+:10116000862F880F892B90E0661F6627661F618394
+:10117000009739F5211531054105510511F482E03B
+:1011800029C082E89FEF9383828367E0220F331F99
+:10119000441F551F6A95D1F783E0808309C0220F51
+:1011A000331F441F551F828193810197938382834C
+:1011B000203080E0380780E0480780E4580778F363
+:1011C00020C08F3F910579F4211531054105510566
+:1011D00019F484E08083089544FF03C081E0808394
+:1011E00010C010820EC08F5790409383828383E09B
+:1011F000808387E0220F331F441F551F8A95D1F744
+:1012000050642483358346835783089597FB092EC2
+:1012100007260AD077FD04D049D006D000201AF462
+:10122000709561957F4F0895F6F7909581959F4F42
+:101230000895A1E21A2EAA1BBB1BFD010DC0AA1F17
+:10124000BB1FEE1FFF1FA217B307E407F50720F02F
+:10125000A21BB30BE40BF50B661F771F881F991FAA
+:101260001A9469F760957095809590959B01AC01F3
+:10127000BD01CF01089597FB092E05260ED057FD1D
+:1012800004D0D7DF0AD0001C38F450954095309533
+:1012900021953F4F4F4F5F4F0895F6F790958095FA
+:1012A000709561957F4F8F4F9F4F0895AA1BBB1B71
+:1012B00051E107C0AA1FBB1FA617B70710F0A61B56
+:1012C000B70B881F991F5A95A9F780959095BC0177
+:1012D000CD0108952F923F924F925F926F927F922D
+:1012E0008F929F92AF92BF92CF92DF92EF92FF9236
+:1012F0000F931F93CF93DF93CDB7DEB7CA1BDB0BE2
+:101300000FB6F894DEBF0FBECDBF09942A88398886
+:1013100048885F846E847D848C849B84AA84B9848D
+:10132000C884DF80EE80FD800C811B81AA81B98199
+:10133000CE0FD11D0FB6F894DEBF0FBECDBFED01AD
+:101340000895EE0FFF1F0590F491E02D09949F93EF
+:1013500005D00F9007FCEE5F28C0CEC03FD0E8F369
+:10136000E894E0E0BB279F57F0F02AED3FE049EC1E
+:1013700006C0EE0FBB0F661F771F881F28F0B23A1A
+:1013800062077307840728F0B25A620B730B840B51
+:10139000E3959A9572F7803830F49A95BB0F661FE3
+:1013A000771F881FD2F790489BC0EF93E0FF06C0DD
+:1013B000A2EA2AED3FE049EC5FEB37D0BFD00F90B7
+:1013C000039401FC9058E8E6F0E099C057FD90586E
+:1013D000440F551F59F05F3F71F04795880F97FBF9
+:1013E000991F61F09F3F79F08795089512161306B3
+:1013F0001406551FF2CF4695F1DF08C016161706E2
+:101400001806991FF1CF8695710561050894089516
+:1014100087D030F08CD020F031F49F3F11F41EF4CF
+:101420006BC00EF4E095E7FB53C0E92FCFDF80F3EC
+:10143000BA17620773078407950718F071F49EF5D1
+:101440008EC00EF4E0950B2EBA2FA02D0B01B90122
+:1014500090010C01CA01A0011124FF27591B99F02A
+:10146000593F50F4503E68F11A16F040A22F232F36
+:10147000342F4427585FF3CF469537952795A79586
+:10148000F0405395C9F77EF41F16BA0B620B730B2D
+:10149000840BBAF09150A1F0FF0FBB1F661F771F9E
+:1014A000881FC2F70EC0BA0F621F731F841F48F453
+:1014B000879577956795B795F7959E3F08F0B3CFD9
+:1014C0009395880F08F09927EE0F979587950895C3
+:1014D00097F99F6780E870E060E008959F3F31F0E2
+:1014E000915020F4879577956795B795880F911D52
+:1014F0009695879597F908959FEF80EC08959F93AF
+:101500008F937F936F93FF93EF939B01AC014DDB20
+:10151000EF91FF912BD02F913F914F915F9145CB50
+:1015200000240A94161617061806090608950024C2
+:101530000A9412161306140605060895092E03943C
+:10154000000C11F4882352F0BB0F40F4BF2B11F4B0
+:1015500060FF04C06F5F7F4F8F4F9F4F0895E894E7
+:10156000BB2766277727CB0197F90895DF93CF93A1
+:101570001F930F93FF92EF92DF927B018C0168948F
+:1015800005C0DA2EEF0121D0FE01E894A591259146
+:10159000359145915591AEF3EF0147DFFE0197017B
+:1015A000A801DA9479F7DF90EF90FF900F911F91E7
+:1015B000CF91DF910895B4DF28F0B9DF18F09523BB
+:1015C00009F086CF99CF1124CBCF00DFA0F3959FF0
+:1015D000D1F3950F50E0551F629FF001729FBB271A
+:1015E000F00DB11D639FAA27F00DB11DAA1F649FC6
+:1015F0006627B00DA11D661F829F2227B00DA11D79
+:10160000621F739FB00DA11D621F839FA00D611DFE
+:10161000221F749F3327A00D611D231F849F600D1F
+:10162000211D822F762F6A2F11249F5750408AF058
+:10163000E1F088234AF0EE0FFF1FBB1F661F771FE4
+:10164000881F91505040A9F79E3F510570F040CF40
+:1016500087CF5F3FECF3983EDCF3869577956795EF
+:10166000B795F795E7959F5FC1F7FE2B880F911D02
+:0C1670009695879597F90895F894FFCFA0
+:10167C0057656C636F6D6520746F20656C65637462
+:10168C006963000E0F10111213141500000000D521
+:0A169C000100000000000000000043
+:00000001FF
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf.lss b/electic_streaming328p/bin/Debug/electic_streaming.elf.lss
new file mode 100644
index 0000000..0b8f18c
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.lss
@@ -0,0 +1,3033 @@
+
+bin/Debug/electic_streaming.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 0000002a 00800100 0000167c 00001710 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 0000167c 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000028a 0080012a 0080012a 0000173a 2**0
+ ALLOC
+ 3 .stab 00002418 00000000 00000000 0000173c 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00001c43 00000000 00000000 00003b54 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_aranges 00000060 00000000 00000000 00005797 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_pubnames 000002a7 00000000 00000000 000057f7 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_info 00000d0b 00000000 00000000 00005a9e 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_abbrev 000003f7 00000000 00000000 000067a9 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_line 00000689 00000000 00000000 00006ba0 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame 00000210 00000000 00000000 0000722c 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str 00000420 00000000 00000000 0000743c 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc 0000075a 00000000 00000000 0000785c 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 44 00 jmp 0x88 ; 0x88 <__ctors_end>
+ 4: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 8: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ c: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 10: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 14: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 18: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 1c: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 20: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 24: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 28: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 2c: 0c 94 67 01 jmp 0x2ce ; 0x2ce <__vector_11>
+ 30: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 34: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 38: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 3c: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 40: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 44: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 48: 0c 94 f0 03 jmp 0x7e0 ; 0x7e0 <__vector_18>
+ 4c: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 50: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 54: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 58: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 5c: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 60: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 64: 0c 94 6c 00 jmp 0xd8 ; 0xd8 <__bad_interrupt>
+ 68: 05 a8 ldd r0, Z+53 ; 0x35
+ 6a: 4c cd rjmp .-1384 ; 0xfffffb04 <__eeprom_end+0xff7efb04>
+ 6c: b2 d4 rcall .+2404 ; 0x9d2 <__stack+0xd3>
+ 6e: 4e b9 out 0x0e, r20 ; 14
+ 70: 38 36 cpi r19, 0x68 ; 104
+ 72: a9 02 muls r26, r25
+ 74: 0c 50 subi r16, 0x0C ; 12
+ 76: b9 91 ld r27, Y+
+ 78: 86 88 ldd r8, Z+22 ; 0x16
+ 7a: 08 3c cpi r16, 0xC8 ; 200
+ 7c: a6 aa std Z+54, r10 ; 0x36
+ 7e: aa 2a or r10, r26
+ 80: be 00 .word 0x00be ; ????
+ 82: 00 00 nop
+ 84: 80 3f cpi r24, 0xF0 ; 240
+
+00000086 <__ctors_start>:
+ 86: ce 01 movw r24, r28
+
+00000088 <__ctors_end>:
+ 88: 11 24 eor r1, r1
+ 8a: 1f be out 0x3f, r1 ; 63
+ 8c: cf ef ldi r28, 0xFF ; 255
+ 8e: d8 e0 ldi r29, 0x08 ; 8
+ 90: de bf out 0x3e, r29 ; 62
+ 92: cd bf out 0x3d, r28 ; 61
+
+00000094 <__do_copy_data>:
+ 94: 11 e0 ldi r17, 0x01 ; 1
+ 96: a0 e0 ldi r26, 0x00 ; 0
+ 98: b1 e0 ldi r27, 0x01 ; 1
+ 9a: ec e7 ldi r30, 0x7C ; 124
+ 9c: f6 e1 ldi r31, 0x16 ; 22
+ 9e: 02 c0 rjmp .+4 ; 0xa4 <__do_copy_data+0x10>
+ a0: 05 90 lpm r0, Z+
+ a2: 0d 92 st X+, r0
+ a4: aa 32 cpi r26, 0x2A ; 42
+ a6: b1 07 cpc r27, r17
+ a8: d9 f7 brne .-10 ; 0xa0 <__do_copy_data+0xc>
+
+000000aa <__do_clear_bss>:
+ aa: 13 e0 ldi r17, 0x03 ; 3
+ ac: aa e2 ldi r26, 0x2A ; 42
+ ae: b1 e0 ldi r27, 0x01 ; 1
+ b0: 01 c0 rjmp .+2 ; 0xb4 <.do_clear_bss_start>
+
+000000b2 <.do_clear_bss_loop>:
+ b2: 1d 92 st X+, r1
+
+000000b4 <.do_clear_bss_start>:
+ b4: a4 3b cpi r26, 0xB4 ; 180
+ b6: b1 07 cpc r27, r17
+ b8: e1 f7 brne .-8 ; 0xb2 <.do_clear_bss_loop>
+
+000000ba <__do_global_ctors>:
+ ba: 10 e0 ldi r17, 0x00 ; 0
+ bc: c8 e8 ldi r28, 0x88 ; 136
+ be: d0 e0 ldi r29, 0x00 ; 0
+ c0: 04 c0 rjmp .+8 ; 0xca <__do_global_ctors+0x10>
+ c2: 22 97 sbiw r28, 0x02 ; 2
+ c4: fe 01 movw r30, r28
+ c6: 0e 94 a3 09 call 0x1346 ; 0x1346 <__tablejump__>
+ ca: c6 38 cpi r28, 0x86 ; 134
+ cc: d1 07 cpc r29, r17
+ ce: c9 f7 brne .-14 ; 0xc2 <__do_global_ctors+0x8>
+ d0: 0e 94 fe 00 call 0x1fc ; 0x1fc <main>
+ d4: 0c 94 3c 0b jmp 0x1678 ; 0x1678 <_exit>
+
+000000d8 <__bad_interrupt>:
+ d8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000dc <_Z13fill_sinewavev>:
+
+byte dd[SAMPLES]; // ram buffer
+int loopCount=0;
+int sample=0;
+
+void fill_sinewave(){
+ dc: df 93 push r29
+ de: cf 93 push r28
+ e0: cd b7 in r28, 0x3d ; 61
+ e2: de b7 in r29, 0x3e ; 62
+ e4: 64 97 sbiw r28, 0x14 ; 20
+ e6: 0f b6 in r0, 0x3f ; 63
+ e8: f8 94 cli
+ ea: de bf out 0x3e, r29 ; 62
+ ec: 0f be out 0x3f, r0 ; 63
+ ee: cd bf out 0x3d, r28 ; 61
+ sample data to stream
+ the vital thing is that its possible to distinguish the end of a packet
+
+ here the data is in the range 1-255 and a 0 denotes the end of the packet
+ */
+ float pi = 3.141592;
+ f0: 88 ed ldi r24, 0xD8 ; 216
+ f2: 9f e0 ldi r25, 0x0F ; 15
+ f4: a9 e4 ldi r26, 0x49 ; 73
+ f6: b0 e4 ldi r27, 0x40 ; 64
+ f8: 8f 83 std Y+7, r24 ; 0x07
+ fa: 98 87 std Y+8, r25 ; 0x08
+ fc: a9 87 std Y+9, r26 ; 0x09
+ fe: ba 87 std Y+10, r27 ; 0x0a
+ float fcnt=0;
+ 100: 80 e0 ldi r24, 0x00 ; 0
+ 102: 90 e0 ldi r25, 0x00 ; 0
+ 104: dc 01 movw r26, r24
+ 106: 89 83 std Y+1, r24 ; 0x01
+ 108: 9a 83 std Y+2, r25 ; 0x02
+ 10a: ab 83 std Y+3, r26 ; 0x03
+ 10c: bc 83 std Y+4, r27 ; 0x04
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ 10e: 2f 81 ldd r18, Y+7 ; 0x07
+ 110: 38 85 ldd r19, Y+8 ; 0x08
+ 112: 49 85 ldd r20, Y+9 ; 0x09
+ 114: 5a 85 ldd r21, Y+10 ; 0x0a
+ 116: ca 01 movw r24, r20
+ 118: b9 01 movw r22, r18
+ 11a: 0e 94 77 05 call 0xaee ; 0xaee <__addsf3>
+ 11e: dc 01 movw r26, r24
+ 120: cb 01 movw r24, r22
+ 122: bc 01 movw r22, r24
+ 124: cd 01 movw r24, r26
+ 126: 20 e0 ldi r18, 0x00 ; 0
+ 128: 30 e0 ldi r19, 0x00 ; 0
+ 12a: 40 e0 ldi r20, 0x00 ; 0
+ 12c: 54 e4 ldi r21, 0x44 ; 68
+ 12e: 0e 94 cf 06 call 0xd9e ; 0xd9e <__divsf3>
+ 132: dc 01 movw r26, r24
+ 134: cb 01 movw r24, r22
+ 136: 8b 87 std Y+11, r24 ; 0x0b
+ 138: 9c 87 std Y+12, r25 ; 0x0c
+ 13a: ad 87 std Y+13, r26 ; 0x0d
+ 13c: be 87 std Y+14, r27 ; 0x0e
+ int bb;
+ for (int i = 0; i <SAMPLES ; i++){ // with 50 periods sinewawe
+ 13e: 1e 82 std Y+6, r1 ; 0x06
+ 140: 1d 82 std Y+5, r1 ; 0x05
+ 142: 48 c0 rjmp .+144 ; 0x1d4 <_Z13fill_sinewavev+0xf8>
+ fd= 127*sin(fcnt); // fundamental tone
+ 144: 89 81 ldd r24, Y+1 ; 0x01
+ 146: 9a 81 ldd r25, Y+2 ; 0x02
+ 148: ab 81 ldd r26, Y+3 ; 0x03
+ 14a: bc 81 ldd r27, Y+4 ; 0x04
+ 14c: bc 01 movw r22, r24
+ 14e: cd 01 movw r24, r26
+ 150: 0e 94 a7 09 call 0x134e ; 0x134e <sin>
+ 154: dc 01 movw r26, r24
+ 156: cb 01 movw r24, r22
+ 158: bc 01 movw r22, r24
+ 15a: cd 01 movw r24, r26
+ 15c: 20 e0 ldi r18, 0x00 ; 0
+ 15e: 30 e0 ldi r19, 0x00 ; 0
+ 160: 4e ef ldi r20, 0xFE ; 254
+ 162: 52 e4 ldi r21, 0x42 ; 66
+ 164: 0e 94 d5 05 call 0xbaa ; 0xbaa <__mulsf3>
+ 168: dc 01 movw r26, r24
+ 16a: cb 01 movw r24, r22
+ 16c: 8f 87 std Y+15, r24 ; 0x0f
+ 16e: 98 8b std Y+16, r25 ; 0x10
+ 170: a9 8b std Y+17, r26 ; 0x11
+ 172: ba 8b std Y+18, r27 ; 0x12
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ 174: 69 81 ldd r22, Y+1 ; 0x01
+ 176: 7a 81 ldd r23, Y+2 ; 0x02
+ 178: 8b 81 ldd r24, Y+3 ; 0x03
+ 17a: 9c 81 ldd r25, Y+4 ; 0x04
+ 17c: 2b 85 ldd r18, Y+11 ; 0x0b
+ 17e: 3c 85 ldd r19, Y+12 ; 0x0c
+ 180: 4d 85 ldd r20, Y+13 ; 0x0d
+ 182: 5e 85 ldd r21, Y+14 ; 0x0e
+ 184: 0e 94 77 05 call 0xaee ; 0xaee <__addsf3>
+ 188: dc 01 movw r26, r24
+ 18a: cb 01 movw r24, r22
+ 18c: 89 83 std Y+1, r24 ; 0x01
+ 18e: 9a 83 std Y+2, r25 ; 0x02
+ 190: ab 83 std Y+3, r26 ; 0x03
+ 192: bc 83 std Y+4, r27 ; 0x04
+ bb=128+fd; // add dc offset to sinewawe
+ 194: 6f 85 ldd r22, Y+15 ; 0x0f
+ 196: 78 89 ldd r23, Y+16 ; 0x10
+ 198: 89 89 ldd r24, Y+17 ; 0x11
+ 19a: 9a 89 ldd r25, Y+18 ; 0x12
+ 19c: 20 e0 ldi r18, 0x00 ; 0
+ 19e: 30 e0 ldi r19, 0x00 ; 0
+ 1a0: 40 e0 ldi r20, 0x00 ; 0
+ 1a2: 53 e4 ldi r21, 0x43 ; 67
+ 1a4: 0e 94 77 05 call 0xaee ; 0xaee <__addsf3>
+ 1a8: dc 01 movw r26, r24
+ 1aa: cb 01 movw r24, r22
+ 1ac: bc 01 movw r22, r24
+ 1ae: cd 01 movw r24, r26
+ 1b0: 0e 94 7d 07 call 0xefa ; 0xefa <__fixsfsi>
+ 1b4: dc 01 movw r26, r24
+ 1b6: cb 01 movw r24, r22
+ 1b8: 9c 8b std Y+20, r25 ; 0x14
+ 1ba: 8b 8b std Y+19, r24 ; 0x13
+ dd[i]=bb; // write value into array
+ 1bc: 2b 89 ldd r18, Y+19 ; 0x13
+ 1be: 8d 81 ldd r24, Y+5 ; 0x05
+ 1c0: 9e 81 ldd r25, Y+6 ; 0x06
+ 1c2: 86 5d subi r24, 0xD6 ; 214
+ 1c4: 9e 4f sbci r25, 0xFE ; 254
+ 1c6: fc 01 movw r30, r24
+ 1c8: 20 83 st Z, r18
+ float pi = 3.141592;
+ float fcnt=0;
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ int bb;
+ for (int i = 0; i <SAMPLES ; i++){ // with 50 periods sinewawe
+ 1ca: 8d 81 ldd r24, Y+5 ; 0x05
+ 1cc: 9e 81 ldd r25, Y+6 ; 0x06
+ 1ce: 01 96 adiw r24, 0x01 ; 1
+ 1d0: 9e 83 std Y+6, r25 ; 0x06
+ 1d2: 8d 83 std Y+5, r24 ; 0x05
+ 1d4: 21 e0 ldi r18, 0x01 ; 1
+ 1d6: 8d 81 ldd r24, Y+5 ; 0x05
+ 1d8: 9e 81 ldd r25, Y+6 ; 0x06
+ 1da: f2 e0 ldi r31, 0x02 ; 2
+ 1dc: 80 30 cpi r24, 0x00 ; 0
+ 1de: 9f 07 cpc r25, r31
+ 1e0: 0c f0 brlt .+2 ; 0x1e4 <_Z13fill_sinewavev+0x108>
+ 1e2: 20 e0 ldi r18, 0x00 ; 0
+ 1e4: 22 23 and r18, r18
+ 1e6: 09 f0 breq .+2 ; 0x1ea <_Z13fill_sinewavev+0x10e>
+ 1e8: ad cf rjmp .-166 ; 0x144 <_Z13fill_sinewavev+0x68>
+ fd= 127*sin(fcnt); // fundamental tone
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ bb=128+fd; // add dc offset to sinewawe
+ dd[i]=bb; // write value into array
+ }
+}
+ 1ea: 64 96 adiw r28, 0x14 ; 20
+ 1ec: 0f b6 in r0, 0x3f ; 63
+ 1ee: f8 94 cli
+ 1f0: de bf out 0x3e, r29 ; 62
+ 1f2: 0f be out 0x3f, r0 ; 63
+ 1f4: cd bf out 0x3d, r28 ; 61
+ 1f6: cf 91 pop r28
+ 1f8: df 91 pop r29
+ 1fa: 08 95 ret
+
+000001fc <main>:
+
+int main(){
+ 1fc: df 93 push r29
+ 1fe: cf 93 push r28
+ 200: 0f 92 push r0
+ 202: cd b7 in r28, 0x3d ; 61
+ 204: de b7 in r29, 0x3e ; 62
+
+ //init(); -- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ fill_sinewave();
+ 206: 0e 94 6e 00 call 0xdc ; 0xdc <_Z13fill_sinewavev>
+ Serial.begin(115200);
+ 20a: 8e e2 ldi r24, 0x2E ; 46
+ 20c: 93 e0 ldi r25, 0x03 ; 3
+ 20e: 40 e0 ldi r20, 0x00 ; 0
+ 210: 52 ec ldi r21, 0xC2 ; 194
+ 212: 61 e0 ldi r22, 0x01 ; 1
+ 214: 70 e0 ldi r23, 0x00 ; 0
+ 216: 0e 94 e2 01 call 0x3c4 ; 0x3c4 <_ZN14HardwareSerial5beginEl>
+
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ 21a: 84 e2 ldi r24, 0x24 ; 36
+ 21c: 90 e0 ldi r25, 0x00 ; 0
+ 21e: 24 e2 ldi r18, 0x24 ; 36
+ 220: 30 e0 ldi r19, 0x00 ; 0
+ 222: f9 01 movw r30, r18
+ 224: 20 81 ld r18, Z
+ 226: 20 62 ori r18, 0x20 ; 32
+ 228: fc 01 movw r30, r24
+ 22a: 20 83 st Z, r18
+ PORTB = (1 << 5); //turn on to start
+ 22c: 85 e2 ldi r24, 0x25 ; 37
+ 22e: 90 e0 ldi r25, 0x00 ; 0
+ 230: 20 e2 ldi r18, 0x20 ; 32
+ 232: fc 01 movw r30, r24
+ 234: 20 83 st Z, r18
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ 236: 81 e8 ldi r24, 0x81 ; 129
+ 238: 90 e0 ldi r25, 0x00 ; 0
+ 23a: 21 e8 ldi r18, 0x81 ; 129
+ 23c: 30 e0 ldi r19, 0x00 ; 0
+ 23e: f9 01 movw r30, r18
+ 240: 20 81 ld r18, Z
+ 242: 28 60 ori r18, 0x08 ; 8
+ 244: fc 01 movw r30, r24
+ 246: 20 83 st Z, r18
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ 248: 8f e6 ldi r24, 0x6F ; 111
+ 24a: 90 e0 ldi r25, 0x00 ; 0
+ 24c: 2f e6 ldi r18, 0x6F ; 111
+ 24e: 30 e0 ldi r19, 0x00 ; 0
+ 250: f9 01 movw r30, r18
+ 252: 20 81 ld r18, Z
+ 254: 22 60 ori r18, 0x02 ; 2
+ 256: fc 01 movw r30, r24
+ 258: 20 83 st Z, r18
+ OCR1A = 390; // Set CTC compare value: final speed = CPU clocks / prescaler / CTC 15625=1Hz
+ 25a: 88 e8 ldi r24, 0x88 ; 136
+ 25c: 90 e0 ldi r25, 0x00 ; 0
+ 25e: 26 e8 ldi r18, 0x86 ; 134
+ 260: 31 e0 ldi r19, 0x01 ; 1
+ 262: fc 01 movw r30, r24
+ 264: 31 83 std Z+1, r19 ; 0x01
+ 266: 20 83 st Z, r18
+ sei(); // Enable global interrupts
+ 268: 78 94 sei
+ 26a: 03 c0 rjmp .+6 ; 0x272 <main+0x76>
+
+ while(1) {
+ 26c: 00 00 nop
+ 26e: 01 c0 rjmp .+2 ; 0x272 <main+0x76>
+ 270: 00 00 nop
+ if (Serial.available() > 0) {
+ 272: 8e e2 ldi r24, 0x2E ; 46
+ 274: 93 e0 ldi r25, 0x03 ; 3
+ 276: 0e 94 df 01 call 0x3be ; 0x3be <_ZN14HardwareSerial9availableEv>
+ 27a: 21 e0 ldi r18, 0x01 ; 1
+ 27c: 18 16 cp r1, r24
+ 27e: 19 06 cpc r1, r25
+ 280: 0c f0 brlt .+2 ; 0x284 <main+0x88>
+ 282: 20 e0 ldi r18, 0x00 ; 0
+ 284: 22 23 and r18, r18
+ 286: 91 f3 breq .-28 ; 0x26c <main+0x70>
+ PORTB ^= (1 << 5);
+ 288: 85 e2 ldi r24, 0x25 ; 37
+ 28a: 90 e0 ldi r25, 0x00 ; 0
+ 28c: 25 e2 ldi r18, 0x25 ; 37
+ 28e: 30 e0 ldi r19, 0x00 ; 0
+ 290: f9 01 movw r30, r18
+ 292: 30 81 ld r19, Z
+ 294: 20 e2 ldi r18, 0x20 ; 32
+ 296: 23 27 eor r18, r19
+ 298: fc 01 movw r30, r24
+ 29a: 20 83 st Z, r18
+ byte in=Serial.read();
+ 29c: 8e e2 ldi r24, 0x2E ; 46
+ 29e: 93 e0 ldi r25, 0x03 ; 3
+ 2a0: 0e 94 dc 01 call 0x3b8 ; 0x3b8 <_ZN14HardwareSerial4readEv>
+ 2a4: 89 83 std Y+1, r24 ; 0x01
+ if (in=='a') {
+ 2a6: 89 81 ldd r24, Y+1 ; 0x01
+ 2a8: 81 36 cpi r24, 0x61 ; 97
+ 2aa: 11 f7 brne .-60 ; 0x270 <main+0x74>
+ Serial.println("Welcome to electic");
+ 2ac: 8e e2 ldi r24, 0x2E ; 46
+ 2ae: 93 e0 ldi r25, 0x03 ; 3
+ 2b0: 20 e0 ldi r18, 0x00 ; 0
+ 2b2: 31 e0 ldi r19, 0x01 ; 1
+ 2b4: b9 01 movw r22, r18
+ 2b6: 0e 94 36 02 call 0x46c ; 0x46c <_ZN5Print7printlnEPKc>
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ 2ba: 81 e8 ldi r24, 0x81 ; 129
+ 2bc: 90 e0 ldi r25, 0x00 ; 0
+ 2be: 21 e8 ldi r18, 0x81 ; 129
+ 2c0: 30 e0 ldi r19, 0x00 ; 0
+ 2c2: f9 01 movw r30, r18
+ 2c4: 20 81 ld r18, Z
+ 2c6: 25 60 ori r18, 0x05 ; 5
+ 2c8: fc 01 movw r30, r24
+ 2ca: 20 83 st Z, r18
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ OCR1A = 390; // Set CTC compare value: final speed = CPU clocks / prescaler / CTC 15625=1Hz
+ sei(); // Enable global interrupts
+
+ while(1) {
+ 2cc: d2 cf rjmp .-92 ; 0x272 <main+0x76>
+
+000002ce <__vector_11>:
+ }
+ }
+}
+
+ISR(TIMER1_COMPA_vect)
+{
+ 2ce: 1f 92 push r1
+ 2d0: 0f 92 push r0
+ 2d2: 0f b6 in r0, 0x3f ; 63
+ 2d4: 0f 92 push r0
+ 2d6: 11 24 eor r1, r1
+ 2d8: 2f 93 push r18
+ 2da: 3f 93 push r19
+ 2dc: 4f 93 push r20
+ 2de: 5f 93 push r21
+ 2e0: 6f 93 push r22
+ 2e2: 7f 93 push r23
+ 2e4: 8f 93 push r24
+ 2e6: 9f 93 push r25
+ 2e8: af 93 push r26
+ 2ea: bf 93 push r27
+ 2ec: ef 93 push r30
+ 2ee: ff 93 push r31
+ 2f0: df 93 push r29
+ 2f2: cf 93 push r28
+ 2f4: 00 d0 rcall .+0 ; 0x2f6 <__vector_11+0x28>
+ 2f6: cd b7 in r28, 0x3d ; 61
+ 2f8: de b7 in r29, 0x3e ; 62
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ 2fa: 85 e2 ldi r24, 0x25 ; 37
+ 2fc: 90 e0 ldi r25, 0x00 ; 0
+ 2fe: 25 e2 ldi r18, 0x25 ; 37
+ 300: 30 e0 ldi r19, 0x00 ; 0
+ 302: f9 01 movw r30, r18
+ 304: 30 81 ld r19, Z
+ 306: 20 e2 ldi r18, 0x20 ; 32
+ 308: 23 27 eor r18, r19
+ 30a: fc 01 movw r30, r24
+ 30c: 20 83 st Z, r18
+ for (int i=0;i<PACKETSIZE;i++) {
+ 30e: 1a 82 std Y+2, r1 ; 0x02
+ 310: 19 82 std Y+1, r1 ; 0x01
+ 312: 20 c0 rjmp .+64 ; 0x354 <__vector_11+0x86>
+ Serial.write(dd[sample]);
+ 314: 80 91 2c 03 lds r24, 0x032C
+ 318: 90 91 2d 03 lds r25, 0x032D
+ 31c: 86 5d subi r24, 0xD6 ; 214
+ 31e: 9e 4f sbci r25, 0xFE ; 254
+ 320: fc 01 movw r30, r24
+ 322: 20 81 ld r18, Z
+ 324: 8e e2 ldi r24, 0x2E ; 46
+ 326: 93 e0 ldi r25, 0x03 ; 3
+ 328: 62 2f mov r22, r18
+ 32a: 0e 94 d5 01 call 0x3aa ; 0x3aa <_ZN14HardwareSerial5writeEh>
+ sample=(sample+1)%SAMPLES;
+ 32e: 80 91 2c 03 lds r24, 0x032C
+ 332: 90 91 2d 03 lds r25, 0x032D
+ 336: 01 96 adiw r24, 0x01 ; 1
+ 338: 20 e0 ldi r18, 0x00 ; 0
+ 33a: 32 e0 ldi r19, 0x02 ; 2
+ 33c: b9 01 movw r22, r18
+ 33e: 0e 94 06 09 call 0x120c ; 0x120c <__divmodhi4>
+ 342: 90 93 2d 03 sts 0x032D, r25
+ 346: 80 93 2c 03 sts 0x032C, r24
+
+ISR(TIMER1_COMPA_vect)
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ for (int i=0;i<PACKETSIZE;i++) {
+ 34a: 89 81 ldd r24, Y+1 ; 0x01
+ 34c: 9a 81 ldd r25, Y+2 ; 0x02
+ 34e: 01 96 adiw r24, 0x01 ; 1
+ 350: 9a 83 std Y+2, r25 ; 0x02
+ 352: 89 83 std Y+1, r24 ; 0x01
+ 354: 21 e0 ldi r18, 0x01 ; 1
+ 356: 89 81 ldd r24, Y+1 ; 0x01
+ 358: 9a 81 ldd r25, Y+2 ; 0x02
+ 35a: f1 e0 ldi r31, 0x01 ; 1
+ 35c: 80 34 cpi r24, 0x40 ; 64
+ 35e: 9f 07 cpc r25, r31
+ 360: 0c f0 brlt .+2 ; 0x364 <__vector_11+0x96>
+ 362: 20 e0 ldi r18, 0x00 ; 0
+ 364: 22 23 and r18, r18
+ 366: b1 f6 brne .-84 ; 0x314 <__vector_11+0x46>
+ Serial.write(dd[sample]);
+ sample=(sample+1)%SAMPLES;
+ }
+ Serial.write((byte)0);
+ 368: 8e e2 ldi r24, 0x2E ; 46
+ 36a: 93 e0 ldi r25, 0x03 ; 3
+ 36c: 60 e0 ldi r22, 0x00 ; 0
+ 36e: 0e 94 d5 01 call 0x3aa ; 0x3aa <_ZN14HardwareSerial5writeEh>
+}
+ 372: 0f 90 pop r0
+ 374: 0f 90 pop r0
+ 376: cf 91 pop r28
+ 378: df 91 pop r29
+ 37a: ff 91 pop r31
+ 37c: ef 91 pop r30
+ 37e: bf 91 pop r27
+ 380: af 91 pop r26
+ 382: 9f 91 pop r25
+ 384: 8f 91 pop r24
+ 386: 7f 91 pop r23
+ 388: 6f 91 pop r22
+ 38a: 5f 91 pop r21
+ 38c: 4f 91 pop r20
+ 38e: 3f 91 pop r19
+ 390: 2f 91 pop r18
+ 392: 0f 90 pop r0
+ 394: 0f be out 0x3f, r0 ; 63
+ 396: 0f 90 pop r0
+ 398: 1f 90 pop r1
+ 39a: 18 95 reti
+
+0000039c <_GLOBAL__I__ZN14HardwareSerial5beginEl>:
+ 39c: 8f e1 ldi r24, 0x1F ; 31
+ 39e: 91 e0 ldi r25, 0x01 ; 1
+ 3a0: 90 93 2f 03 sts 0x032F, r25
+ 3a4: 80 93 2e 03 sts 0x032E, r24
+ 3a8: 08 95 ret
+
+000003aa <_ZN14HardwareSerial5writeEh>:
+ 3aa: 86 2f mov r24, r22
+ 3ac: 0e 94 af 03 call 0x75e ; 0x75e <serialWrite>
+ 3b0: 08 95 ret
+
+000003b2 <_ZN14HardwareSerial5flushEv>:
+ 3b2: 0e 94 e7 03 call 0x7ce ; 0x7ce <serialFlush>
+ 3b6: 08 95 ret
+
+000003b8 <_ZN14HardwareSerial4readEv>:
+ 3b8: 0e 94 c8 03 call 0x790 ; 0x790 <serialRead>
+ 3bc: 08 95 ret
+
+000003be <_ZN14HardwareSerial9availableEv>:
+ 3be: 0e 94 b7 03 call 0x76e ; 0x76e <serialAvailable>
+ 3c2: 08 95 ret
+
+000003c4 <_ZN14HardwareSerial5beginEl>:
+ 3c4: cb 01 movw r24, r22
+ 3c6: ba 01 movw r22, r20
+ 3c8: 0e 94 76 03 call 0x6ec ; 0x6ec <beginSerial>
+ 3cc: 08 95 ret
+
+000003ce <_ZN5Print5printEh>:
+ 3ce: dc 01 movw r26, r24
+ 3d0: ed 91 ld r30, X+
+ 3d2: fc 91 ld r31, X
+ 3d4: 01 90 ld r0, Z+
+ 3d6: f0 81 ld r31, Z
+ 3d8: e0 2d mov r30, r0
+ 3da: 09 95 icall
+ 3dc: 08 95 ret
+
+000003de <_ZN5Print5printEc>:
+ 3de: dc 01 movw r26, r24
+ 3e0: ed 91 ld r30, X+
+ 3e2: fc 91 ld r31, X
+ 3e4: 01 90 ld r0, Z+
+ 3e6: f0 81 ld r31, Z
+ 3e8: e0 2d mov r30, r0
+ 3ea: 09 95 icall
+ 3ec: 08 95 ret
+
+000003ee <_ZN5Print5printEPKc>:
+ 3ee: 0f 93 push r16
+ 3f0: 1f 93 push r17
+ 3f2: cf 93 push r28
+ 3f4: df 93 push r29
+ 3f6: 8c 01 movw r16, r24
+ 3f8: eb 01 movw r28, r22
+ 3fa: 09 c0 rjmp .+18 ; 0x40e <_ZN5Print5printEPKc+0x20>
+ 3fc: 21 96 adiw r28, 0x01 ; 1
+ 3fe: d8 01 movw r26, r16
+ 400: ed 91 ld r30, X+
+ 402: fc 91 ld r31, X
+ 404: 01 90 ld r0, Z+
+ 406: f0 81 ld r31, Z
+ 408: e0 2d mov r30, r0
+ 40a: c8 01 movw r24, r16
+ 40c: 09 95 icall
+ 40e: 68 81 ld r22, Y
+ 410: 66 23 and r22, r22
+ 412: a1 f7 brne .-24 ; 0x3fc <_ZN5Print5printEPKc+0xe>
+ 414: df 91 pop r29
+ 416: cf 91 pop r28
+ 418: 1f 91 pop r17
+ 41a: 0f 91 pop r16
+ 41c: 08 95 ret
+
+0000041e <_ZN5Print7printlnEv>:
+ 41e: 0f 93 push r16
+ 420: 1f 93 push r17
+ 422: 8c 01 movw r16, r24
+ 424: dc 01 movw r26, r24
+ 426: ed 91 ld r30, X+
+ 428: fc 91 ld r31, X
+ 42a: 01 90 ld r0, Z+
+ 42c: f0 81 ld r31, Z
+ 42e: e0 2d mov r30, r0
+ 430: 6d e0 ldi r22, 0x0D ; 13
+ 432: 09 95 icall
+ 434: d8 01 movw r26, r16
+ 436: ed 91 ld r30, X+
+ 438: fc 91 ld r31, X
+ 43a: 01 90 ld r0, Z+
+ 43c: f0 81 ld r31, Z
+ 43e: e0 2d mov r30, r0
+ 440: 6a e0 ldi r22, 0x0A ; 10
+ 442: c8 01 movw r24, r16
+ 444: 09 95 icall
+ 446: 1f 91 pop r17
+ 448: 0f 91 pop r16
+ 44a: 08 95 ret
+
+0000044c <_ZN5Print7printlnEc>:
+ 44c: 0f 93 push r16
+ 44e: 1f 93 push r17
+ 450: 8c 01 movw r16, r24
+ 452: dc 01 movw r26, r24
+ 454: ed 91 ld r30, X+
+ 456: fc 91 ld r31, X
+ 458: 01 90 ld r0, Z+
+ 45a: f0 81 ld r31, Z
+ 45c: e0 2d mov r30, r0
+ 45e: 09 95 icall
+ 460: c8 01 movw r24, r16
+ 462: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 466: 1f 91 pop r17
+ 468: 0f 91 pop r16
+ 46a: 08 95 ret
+
+0000046c <_ZN5Print7printlnEPKc>:
+ 46c: 0f 93 push r16
+ 46e: 1f 93 push r17
+ 470: 8c 01 movw r16, r24
+ 472: 0e 94 f7 01 call 0x3ee ; 0x3ee <_ZN5Print5printEPKc>
+ 476: c8 01 movw r24, r16
+ 478: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 47c: 1f 91 pop r17
+ 47e: 0f 91 pop r16
+ 480: 08 95 ret
+
+00000482 <_ZN5Print7printlnEh>:
+ 482: 0f 93 push r16
+ 484: 1f 93 push r17
+ 486: 8c 01 movw r16, r24
+ 488: dc 01 movw r26, r24
+ 48a: ed 91 ld r30, X+
+ 48c: fc 91 ld r31, X
+ 48e: 01 90 ld r0, Z+
+ 490: f0 81 ld r31, Z
+ 492: e0 2d mov r30, r0
+ 494: 09 95 icall
+ 496: c8 01 movw r24, r16
+ 498: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 49c: 1f 91 pop r17
+ 49e: 0f 91 pop r16
+ 4a0: 08 95 ret
+
+000004a2 <_ZN5Print11printNumberEmh>:
+ 4a2: 2f 92 push r2
+ 4a4: 3f 92 push r3
+ 4a6: 4f 92 push r4
+ 4a8: 5f 92 push r5
+ 4aa: 6f 92 push r6
+ 4ac: 7f 92 push r7
+ 4ae: 8f 92 push r8
+ 4b0: 9f 92 push r9
+ 4b2: af 92 push r10
+ 4b4: bf 92 push r11
+ 4b6: cf 92 push r12
+ 4b8: df 92 push r13
+ 4ba: ef 92 push r14
+ 4bc: ff 92 push r15
+ 4be: 0f 93 push r16
+ 4c0: 1f 93 push r17
+ 4c2: df 93 push r29
+ 4c4: cf 93 push r28
+ 4c6: cd b7 in r28, 0x3d ; 61
+ 4c8: de b7 in r29, 0x3e ; 62
+ 4ca: a0 97 sbiw r28, 0x20 ; 32
+ 4cc: 0f b6 in r0, 0x3f ; 63
+ 4ce: f8 94 cli
+ 4d0: de bf out 0x3e, r29 ; 62
+ 4d2: 0f be out 0x3f, r0 ; 63
+ 4d4: cd bf out 0x3d, r28 ; 61
+ 4d6: 1c 01 movw r2, r24
+ 4d8: 6a 01 movw r12, r20
+ 4da: 7b 01 movw r14, r22
+ 4dc: 41 15 cp r20, r1
+ 4de: 51 05 cpc r21, r1
+ 4e0: 61 05 cpc r22, r1
+ 4e2: 71 05 cpc r23, r1
+ 4e4: 49 f4 brne .+18 ; 0x4f8 <_ZN5Print11printNumberEmh+0x56>
+ 4e6: dc 01 movw r26, r24
+ 4e8: ed 91 ld r30, X+
+ 4ea: fc 91 ld r31, X
+ 4ec: 01 90 ld r0, Z+
+ 4ee: f0 81 ld r31, Z
+ 4f0: e0 2d mov r30, r0
+ 4f2: 60 e3 ldi r22, 0x30 ; 48
+ 4f4: 09 95 icall
+ 4f6: 54 c0 rjmp .+168 ; 0x5a0 <_ZN5Print11printNumberEmh+0xfe>
+ 4f8: 88 24 eor r8, r8
+ 4fa: 99 24 eor r9, r9
+ 4fc: 54 01 movw r10, r8
+ 4fe: 42 2e mov r4, r18
+ 500: 55 24 eor r5, r5
+ 502: 66 24 eor r6, r6
+ 504: 77 24 eor r7, r7
+ 506: 01 e0 ldi r16, 0x01 ; 1
+ 508: 10 e0 ldi r17, 0x00 ; 0
+ 50a: 0c 0f add r16, r28
+ 50c: 1d 1f adc r17, r29
+ 50e: 08 0d add r16, r8
+ 510: 19 1d adc r17, r9
+ 512: c7 01 movw r24, r14
+ 514: b6 01 movw r22, r12
+ 516: a3 01 movw r20, r6
+ 518: 92 01 movw r18, r4
+ 51a: 0e 94 19 09 call 0x1232 ; 0x1232 <__udivmodsi4>
+ 51e: f8 01 movw r30, r16
+ 520: 60 83 st Z, r22
+ 522: 08 94 sec
+ 524: 81 1c adc r8, r1
+ 526: 91 1c adc r9, r1
+ 528: a1 1c adc r10, r1
+ 52a: b1 1c adc r11, r1
+ 52c: c7 01 movw r24, r14
+ 52e: b6 01 movw r22, r12
+ 530: a3 01 movw r20, r6
+ 532: 92 01 movw r18, r4
+ 534: 0e 94 19 09 call 0x1232 ; 0x1232 <__udivmodsi4>
+ 538: c9 01 movw r24, r18
+ 53a: da 01 movw r26, r20
+ 53c: 6c 01 movw r12, r24
+ 53e: 7d 01 movw r14, r26
+ 540: c1 14 cp r12, r1
+ 542: d1 04 cpc r13, r1
+ 544: e1 04 cpc r14, r1
+ 546: f1 04 cpc r15, r1
+ 548: f1 f6 brne .-68 ; 0x506 <_ZN5Print11printNumberEmh+0x64>
+ 54a: 81 e0 ldi r24, 0x01 ; 1
+ 54c: e8 2e mov r14, r24
+ 54e: f1 2c mov r15, r1
+ 550: ec 0e add r14, r28
+ 552: fd 1e adc r15, r29
+ 554: e8 0c add r14, r8
+ 556: f9 1c adc r15, r9
+ 558: 3e 01 movw r6, r28
+ 55a: 08 94 sec
+ 55c: 61 1c adc r6, r1
+ 55e: 71 1c adc r7, r1
+ 560: d5 01 movw r26, r10
+ 562: c4 01 movw r24, r8
+ 564: 01 97 sbiw r24, 0x01 ; 1
+ 566: a1 09 sbc r26, r1
+ 568: b1 09 sbc r27, r1
+ 56a: 6c 01 movw r12, r24
+ 56c: c8 18 sub r12, r8
+ 56e: d9 08 sbc r13, r9
+ 570: 14 c0 rjmp .+40 ; 0x59a <_ZN5Print11printNumberEmh+0xf8>
+ 572: f6 01 movw r30, r12
+ 574: ee 0d add r30, r14
+ 576: ff 1d adc r31, r15
+ 578: 60 81 ld r22, Z
+ 57a: 6a 30 cpi r22, 0x0A ; 10
+ 57c: 10 f4 brcc .+4 ; 0x582 <_ZN5Print11printNumberEmh+0xe0>
+ 57e: 60 5d subi r22, 0xD0 ; 208
+ 580: 01 c0 rjmp .+2 ; 0x584 <_ZN5Print11printNumberEmh+0xe2>
+ 582: 69 5c subi r22, 0xC9 ; 201
+ 584: d1 01 movw r26, r2
+ 586: ed 91 ld r30, X+
+ 588: fc 91 ld r31, X
+ 58a: 01 90 ld r0, Z+
+ 58c: f0 81 ld r31, Z
+ 58e: e0 2d mov r30, r0
+ 590: c1 01 movw r24, r2
+ 592: 09 95 icall
+ 594: 08 94 sec
+ 596: e1 08 sbc r14, r1
+ 598: f1 08 sbc r15, r1
+ 59a: 6e 14 cp r6, r14
+ 59c: 7f 04 cpc r7, r15
+ 59e: 49 f7 brne .-46 ; 0x572 <_ZN5Print11printNumberEmh+0xd0>
+ 5a0: a0 96 adiw r28, 0x20 ; 32
+ 5a2: 0f b6 in r0, 0x3f ; 63
+ 5a4: f8 94 cli
+ 5a6: de bf out 0x3e, r29 ; 62
+ 5a8: 0f be out 0x3f, r0 ; 63
+ 5aa: cd bf out 0x3d, r28 ; 61
+ 5ac: cf 91 pop r28
+ 5ae: df 91 pop r29
+ 5b0: 1f 91 pop r17
+ 5b2: 0f 91 pop r16
+ 5b4: ff 90 pop r15
+ 5b6: ef 90 pop r14
+ 5b8: df 90 pop r13
+ 5ba: cf 90 pop r12
+ 5bc: bf 90 pop r11
+ 5be: af 90 pop r10
+ 5c0: 9f 90 pop r9
+ 5c2: 8f 90 pop r8
+ 5c4: 7f 90 pop r7
+ 5c6: 6f 90 pop r6
+ 5c8: 5f 90 pop r5
+ 5ca: 4f 90 pop r4
+ 5cc: 3f 90 pop r3
+ 5ce: 2f 90 pop r2
+ 5d0: 08 95 ret
+
+000005d2 <_ZN5Print5printEm>:
+ 5d2: 2a e0 ldi r18, 0x0A ; 10
+ 5d4: 0e 94 51 02 call 0x4a2 ; 0x4a2 <_ZN5Print11printNumberEmh>
+ 5d8: 08 95 ret
+
+000005da <_ZN5Print7printlnEm>:
+ 5da: 0f 93 push r16
+ 5dc: 1f 93 push r17
+ 5de: 8c 01 movw r16, r24
+ 5e0: 0e 94 e9 02 call 0x5d2 ; 0x5d2 <_ZN5Print5printEm>
+ 5e4: c8 01 movw r24, r16
+ 5e6: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 5ea: 1f 91 pop r17
+ 5ec: 0f 91 pop r16
+ 5ee: 08 95 ret
+
+000005f0 <_ZN5Print5printEj>:
+ 5f0: ab 01 movw r20, r22
+ 5f2: 60 e0 ldi r22, 0x00 ; 0
+ 5f4: 70 e0 ldi r23, 0x00 ; 0
+ 5f6: 0e 94 e9 02 call 0x5d2 ; 0x5d2 <_ZN5Print5printEm>
+ 5fa: 08 95 ret
+
+000005fc <_ZN5Print7printlnEj>:
+ 5fc: 0f 93 push r16
+ 5fe: 1f 93 push r17
+ 600: 8c 01 movw r16, r24
+ 602: ab 01 movw r20, r22
+ 604: 60 e0 ldi r22, 0x00 ; 0
+ 606: 70 e0 ldi r23, 0x00 ; 0
+ 608: 0e 94 e9 02 call 0x5d2 ; 0x5d2 <_ZN5Print5printEm>
+ 60c: c8 01 movw r24, r16
+ 60e: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 612: 1f 91 pop r17
+ 614: 0f 91 pop r16
+ 616: 08 95 ret
+
+00000618 <_ZN5Print5printEl>:
+ 618: ef 92 push r14
+ 61a: ff 92 push r15
+ 61c: 0f 93 push r16
+ 61e: 1f 93 push r17
+ 620: cf 93 push r28
+ 622: df 93 push r29
+ 624: ec 01 movw r28, r24
+ 626: 7a 01 movw r14, r20
+ 628: 8b 01 movw r16, r22
+ 62a: 77 ff sbrs r23, 7
+ 62c: 0f c0 rjmp .+30 ; 0x64c <_ZN5Print5printEl+0x34>
+ 62e: e8 81 ld r30, Y
+ 630: f9 81 ldd r31, Y+1 ; 0x01
+ 632: 01 90 ld r0, Z+
+ 634: f0 81 ld r31, Z
+ 636: e0 2d mov r30, r0
+ 638: 6d e2 ldi r22, 0x2D ; 45
+ 63a: 09 95 icall
+ 63c: 10 95 com r17
+ 63e: 00 95 com r16
+ 640: f0 94 com r15
+ 642: e0 94 com r14
+ 644: e1 1c adc r14, r1
+ 646: f1 1c adc r15, r1
+ 648: 01 1d adc r16, r1
+ 64a: 11 1d adc r17, r1
+ 64c: 2a e0 ldi r18, 0x0A ; 10
+ 64e: b8 01 movw r22, r16
+ 650: a7 01 movw r20, r14
+ 652: ce 01 movw r24, r28
+ 654: 0e 94 51 02 call 0x4a2 ; 0x4a2 <_ZN5Print11printNumberEmh>
+ 658: df 91 pop r29
+ 65a: cf 91 pop r28
+ 65c: 1f 91 pop r17
+ 65e: 0f 91 pop r16
+ 660: ff 90 pop r15
+ 662: ef 90 pop r14
+ 664: 08 95 ret
+
+00000666 <_ZN5Print7printlnEl>:
+ 666: 0f 93 push r16
+ 668: 1f 93 push r17
+ 66a: 8c 01 movw r16, r24
+ 66c: 0e 94 0c 03 call 0x618 ; 0x618 <_ZN5Print5printEl>
+ 670: c8 01 movw r24, r16
+ 672: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 676: 1f 91 pop r17
+ 678: 0f 91 pop r16
+ 67a: 08 95 ret
+
+0000067c <_ZN5Print5printEi>:
+ 67c: ab 01 movw r20, r22
+ 67e: 66 27 eor r22, r22
+ 680: 57 fd sbrc r21, 7
+ 682: 60 95 com r22
+ 684: 76 2f mov r23, r22
+ 686: 0e 94 0c 03 call 0x618 ; 0x618 <_ZN5Print5printEl>
+ 68a: 08 95 ret
+
+0000068c <_ZN5Print7printlnEi>:
+ 68c: 0f 93 push r16
+ 68e: 1f 93 push r17
+ 690: 8c 01 movw r16, r24
+ 692: ab 01 movw r20, r22
+ 694: 66 27 eor r22, r22
+ 696: 57 fd sbrc r21, 7
+ 698: 60 95 com r22
+ 69a: 76 2f mov r23, r22
+ 69c: 0e 94 0c 03 call 0x618 ; 0x618 <_ZN5Print5printEl>
+ 6a0: c8 01 movw r24, r16
+ 6a2: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 6a6: 1f 91 pop r17
+ 6a8: 0f 91 pop r16
+ 6aa: 08 95 ret
+
+000006ac <_ZN5Print5printEli>:
+ 6ac: dc 01 movw r26, r24
+ 6ae: 21 15 cp r18, r1
+ 6b0: 31 05 cpc r19, r1
+ 6b2: 41 f4 brne .+16 ; 0x6c4 <_ZN5Print5printEli+0x18>
+ 6b4: ed 91 ld r30, X+
+ 6b6: fc 91 ld r31, X
+ 6b8: 01 90 ld r0, Z+
+ 6ba: f0 81 ld r31, Z
+ 6bc: e0 2d mov r30, r0
+ 6be: 64 2f mov r22, r20
+ 6c0: 09 95 icall
+ 6c2: 08 95 ret
+ 6c4: 2a 30 cpi r18, 0x0A ; 10
+ 6c6: 31 05 cpc r19, r1
+ 6c8: 19 f4 brne .+6 ; 0x6d0 <_ZN5Print5printEli+0x24>
+ 6ca: 0e 94 0c 03 call 0x618 ; 0x618 <_ZN5Print5printEl>
+ 6ce: 08 95 ret
+ 6d0: 0e 94 51 02 call 0x4a2 ; 0x4a2 <_ZN5Print11printNumberEmh>
+ 6d4: 08 95 ret
+
+000006d6 <_ZN5Print7printlnEli>:
+ 6d6: 0f 93 push r16
+ 6d8: 1f 93 push r17
+ 6da: 8c 01 movw r16, r24
+ 6dc: 0e 94 56 03 call 0x6ac ; 0x6ac <_ZN5Print5printEli>
+ 6e0: c8 01 movw r24, r16
+ 6e2: 0e 94 0f 02 call 0x41e ; 0x41e <_ZN5Print7printlnEv>
+ 6e6: 1f 91 pop r17
+ 6e8: 0f 91 pop r16
+ 6ea: 08 95 ret
+
+000006ec <beginSerial>:
+ 6ec: ef 92 push r14
+ 6ee: ff 92 push r15
+ 6f0: 0f 93 push r16
+ 6f2: 1f 93 push r17
+ 6f4: 7b 01 movw r14, r22
+ 6f6: 8c 01 movw r16, r24
+ 6f8: 22 e0 ldi r18, 0x02 ; 2
+ 6fa: 30 e0 ldi r19, 0x00 ; 0
+ 6fc: 40 e0 ldi r20, 0x00 ; 0
+ 6fe: 50 e0 ldi r21, 0x00 ; 0
+ 700: 0e 94 3b 09 call 0x1276 ; 0x1276 <__divmodsi4>
+ 704: 20 5c subi r18, 0xC0 ; 192
+ 706: 3d 4b sbci r19, 0xBD ; 189
+ 708: 40 4f sbci r20, 0xF0 ; 240
+ 70a: 5f 4f sbci r21, 0xFF ; 255
+ 70c: ca 01 movw r24, r20
+ 70e: b9 01 movw r22, r18
+ 710: a8 01 movw r20, r16
+ 712: 97 01 movw r18, r14
+ 714: 0e 94 3b 09 call 0x1276 ; 0x1276 <__divmodsi4>
+ 718: c9 01 movw r24, r18
+ 71a: da 01 movw r26, r20
+ 71c: 01 97 sbiw r24, 0x01 ; 1
+ 71e: a1 09 sbc r26, r1
+ 720: b1 09 sbc r27, r1
+ 722: 29 2f mov r18, r25
+ 724: 3a 2f mov r19, r26
+ 726: 4b 2f mov r20, r27
+ 728: 55 27 eor r21, r21
+ 72a: 47 fd sbrc r20, 7
+ 72c: 5a 95 dec r21
+ 72e: 01 96 adiw r24, 0x01 ; 1
+ 730: a1 1d adc r26, r1
+ 732: b1 1d adc r27, r1
+ 734: 20 93 c5 00 sts 0x00C5, r18
+ 738: 81 50 subi r24, 0x01 ; 1
+ 73a: 80 93 c4 00 sts 0x00C4, r24
+ 73e: e1 ec ldi r30, 0xC1 ; 193
+ 740: f0 e0 ldi r31, 0x00 ; 0
+ 742: 80 81 ld r24, Z
+ 744: 80 61 ori r24, 0x10 ; 16
+ 746: 80 83 st Z, r24
+ 748: 80 81 ld r24, Z
+ 74a: 88 60 ori r24, 0x08 ; 8
+ 74c: 80 83 st Z, r24
+ 74e: 80 81 ld r24, Z
+ 750: 80 68 ori r24, 0x80 ; 128
+ 752: 80 83 st Z, r24
+ 754: 1f 91 pop r17
+ 756: 0f 91 pop r16
+ 758: ff 90 pop r15
+ 75a: ef 90 pop r14
+ 75c: 08 95 ret
+
+0000075e <serialWrite>:
+ 75e: 98 2f mov r25, r24
+ 760: 80 91 c0 00 lds r24, 0x00C0
+ 764: 85 ff sbrs r24, 5
+ 766: fc cf rjmp .-8 ; 0x760 <serialWrite+0x2>
+ 768: 90 93 c6 00 sts 0x00C6, r25
+ 76c: 08 95 ret
+
+0000076e <serialAvailable>:
+ 76e: 80 91 30 03 lds r24, 0x0330
+ 772: 90 91 31 03 lds r25, 0x0331
+ 776: 80 58 subi r24, 0x80 ; 128
+ 778: 9f 4f sbci r25, 0xFF ; 255
+ 77a: 20 91 32 03 lds r18, 0x0332
+ 77e: 30 91 33 03 lds r19, 0x0333
+ 782: 82 1b sub r24, r18
+ 784: 93 0b sbc r25, r19
+ 786: 60 e8 ldi r22, 0x80 ; 128
+ 788: 70 e0 ldi r23, 0x00 ; 0
+ 78a: 0e 94 06 09 call 0x120c ; 0x120c <__divmodhi4>
+ 78e: 08 95 ret
+
+00000790 <serialRead>:
+ 790: 40 91 32 03 lds r20, 0x0332
+ 794: 50 91 33 03 lds r21, 0x0333
+ 798: 80 91 30 03 lds r24, 0x0330
+ 79c: 90 91 31 03 lds r25, 0x0331
+ 7a0: 84 17 cp r24, r20
+ 7a2: 95 07 cpc r25, r21
+ 7a4: 19 f4 brne .+6 ; 0x7ac <serialRead+0x1c>
+ 7a6: 2f ef ldi r18, 0xFF ; 255
+ 7a8: 3f ef ldi r19, 0xFF ; 255
+ 7aa: 0f c0 rjmp .+30 ; 0x7ca <serialRead+0x3a>
+ 7ac: fa 01 movw r30, r20
+ 7ae: ec 5c subi r30, 0xCC ; 204
+ 7b0: fc 4f sbci r31, 0xFC ; 252
+ 7b2: 20 81 ld r18, Z
+ 7b4: ca 01 movw r24, r20
+ 7b6: 01 96 adiw r24, 0x01 ; 1
+ 7b8: 60 e8 ldi r22, 0x80 ; 128
+ 7ba: 70 e0 ldi r23, 0x00 ; 0
+ 7bc: 0e 94 06 09 call 0x120c ; 0x120c <__divmodhi4>
+ 7c0: 90 93 33 03 sts 0x0333, r25
+ 7c4: 80 93 32 03 sts 0x0332, r24
+ 7c8: 30 e0 ldi r19, 0x00 ; 0
+ 7ca: c9 01 movw r24, r18
+ 7cc: 08 95 ret
+
+000007ce <serialFlush>:
+ 7ce: 80 91 32 03 lds r24, 0x0332
+ 7d2: 90 91 33 03 lds r25, 0x0333
+ 7d6: 90 93 31 03 sts 0x0331, r25
+ 7da: 80 93 30 03 sts 0x0330, r24
+ 7de: 08 95 ret
+
+000007e0 <__vector_18>:
+ 7e0: 1f 92 push r1
+ 7e2: 0f 92 push r0
+ 7e4: 0f b6 in r0, 0x3f ; 63
+ 7e6: 0f 92 push r0
+ 7e8: 11 24 eor r1, r1
+ 7ea: 2f 93 push r18
+ 7ec: 3f 93 push r19
+ 7ee: 4f 93 push r20
+ 7f0: 5f 93 push r21
+ 7f2: 6f 93 push r22
+ 7f4: 7f 93 push r23
+ 7f6: 8f 93 push r24
+ 7f8: 9f 93 push r25
+ 7fa: af 93 push r26
+ 7fc: bf 93 push r27
+ 7fe: ef 93 push r30
+ 800: ff 93 push r31
+ 802: 40 91 c6 00 lds r20, 0x00C6
+ 806: e0 91 30 03 lds r30, 0x0330
+ 80a: f0 91 31 03 lds r31, 0x0331
+ 80e: cf 01 movw r24, r30
+ 810: 01 96 adiw r24, 0x01 ; 1
+ 812: 60 e8 ldi r22, 0x80 ; 128
+ 814: 70 e0 ldi r23, 0x00 ; 0
+ 816: 0e 94 06 09 call 0x120c ; 0x120c <__divmodhi4>
+ 81a: 9c 01 movw r18, r24
+ 81c: 80 91 32 03 lds r24, 0x0332
+ 820: 90 91 33 03 lds r25, 0x0333
+ 824: 28 17 cp r18, r24
+ 826: 39 07 cpc r19, r25
+ 828: 39 f0 breq .+14 ; 0x838 <__vector_18+0x58>
+ 82a: ec 5c subi r30, 0xCC ; 204
+ 82c: fc 4f sbci r31, 0xFC ; 252
+ 82e: 40 83 st Z, r20
+ 830: 30 93 31 03 sts 0x0331, r19
+ 834: 20 93 30 03 sts 0x0330, r18
+ 838: ff 91 pop r31
+ 83a: ef 91 pop r30
+ 83c: bf 91 pop r27
+ 83e: af 91 pop r26
+ 840: 9f 91 pop r25
+ 842: 8f 91 pop r24
+ 844: 7f 91 pop r23
+ 846: 6f 91 pop r22
+ 848: 5f 91 pop r21
+ 84a: 4f 91 pop r20
+ 84c: 3f 91 pop r19
+ 84e: 2f 91 pop r18
+ 850: 0f 90 pop r0
+ 852: 0f be out 0x3f, r0 ; 63
+ 854: 0f 90 pop r0
+ 856: 1f 90 pop r1
+ 858: 18 95 reti
+
+0000085a <_fpadd_parts>:
+ 85a: a0 e0 ldi r26, 0x00 ; 0
+ 85c: b0 e0 ldi r27, 0x00 ; 0
+ 85e: e3 e3 ldi r30, 0x33 ; 51
+ 860: f4 e0 ldi r31, 0x04 ; 4
+ 862: 0c 94 6e 09 jmp 0x12dc ; 0x12dc <__prologue_saves__+0x8>
+ 866: fc 01 movw r30, r24
+ 868: ea 01 movw r28, r20
+ 86a: 80 81 ld r24, Z
+ 86c: 82 30 cpi r24, 0x02 ; 2
+ 86e: 08 f4 brcc .+2 ; 0x872 <_fpadd_parts+0x18>
+ 870: 38 c1 rjmp .+624 ; 0xae2 <__stack+0x1e3>
+ 872: db 01 movw r26, r22
+ 874: 9c 91 ld r25, X
+ 876: 92 30 cpi r25, 0x02 ; 2
+ 878: 08 f4 brcc .+2 ; 0x87c <_fpadd_parts+0x22>
+ 87a: 30 c1 rjmp .+608 ; 0xadc <__stack+0x1dd>
+ 87c: 84 30 cpi r24, 0x04 ; 4
+ 87e: 59 f4 brne .+22 ; 0x896 <_fpadd_parts+0x3c>
+ 880: 94 30 cpi r25, 0x04 ; 4
+ 882: 09 f0 breq .+2 ; 0x886 <_fpadd_parts+0x2c>
+ 884: 2e c1 rjmp .+604 ; 0xae2 <__stack+0x1e3>
+ 886: 91 81 ldd r25, Z+1 ; 0x01
+ 888: 11 96 adiw r26, 0x01 ; 1
+ 88a: 8c 91 ld r24, X
+ 88c: 11 97 sbiw r26, 0x01 ; 1
+ 88e: 98 17 cp r25, r24
+ 890: 09 f0 breq .+2 ; 0x894 <_fpadd_parts+0x3a>
+ 892: 21 c1 rjmp .+578 ; 0xad6 <__stack+0x1d7>
+ 894: 26 c1 rjmp .+588 ; 0xae2 <__stack+0x1e3>
+ 896: 94 30 cpi r25, 0x04 ; 4
+ 898: 09 f4 brne .+2 ; 0x89c <_fpadd_parts+0x42>
+ 89a: 20 c1 rjmp .+576 ; 0xadc <__stack+0x1dd>
+ 89c: 92 30 cpi r25, 0x02 ; 2
+ 89e: b1 f4 brne .+44 ; 0x8cc <_fpadd_parts+0x72>
+ 8a0: 82 30 cpi r24, 0x02 ; 2
+ 8a2: 09 f0 breq .+2 ; 0x8a6 <_fpadd_parts+0x4c>
+ 8a4: 1e c1 rjmp .+572 ; 0xae2 <__stack+0x1e3>
+ 8a6: ca 01 movw r24, r20
+ 8a8: af 01 movw r20, r30
+ 8aa: 28 e0 ldi r18, 0x08 ; 8
+ 8ac: da 01 movw r26, r20
+ 8ae: 0d 90 ld r0, X+
+ 8b0: ad 01 movw r20, r26
+ 8b2: dc 01 movw r26, r24
+ 8b4: 0d 92 st X+, r0
+ 8b6: cd 01 movw r24, r26
+ 8b8: 21 50 subi r18, 0x01 ; 1
+ 8ba: c1 f7 brne .-16 ; 0x8ac <_fpadd_parts+0x52>
+ 8bc: db 01 movw r26, r22
+ 8be: 11 96 adiw r26, 0x01 ; 1
+ 8c0: 8c 91 ld r24, X
+ 8c2: 11 97 sbiw r26, 0x01 ; 1
+ 8c4: 91 81 ldd r25, Z+1 ; 0x01
+ 8c6: 89 23 and r24, r25
+ 8c8: 89 83 std Y+1, r24 ; 0x01
+ 8ca: 0a c1 rjmp .+532 ; 0xae0 <__stack+0x1e1>
+ 8cc: 82 30 cpi r24, 0x02 ; 2
+ 8ce: 09 f4 brne .+2 ; 0x8d2 <_fpadd_parts+0x78>
+ 8d0: 05 c1 rjmp .+522 ; 0xadc <__stack+0x1dd>
+ 8d2: c2 80 ldd r12, Z+2 ; 0x02
+ 8d4: d3 80 ldd r13, Z+3 ; 0x03
+ 8d6: db 01 movw r26, r22
+ 8d8: 12 96 adiw r26, 0x02 ; 2
+ 8da: 6d 90 ld r6, X+
+ 8dc: 7c 90 ld r7, X
+ 8de: 13 97 sbiw r26, 0x03 ; 3
+ 8e0: 24 81 ldd r18, Z+4 ; 0x04
+ 8e2: 35 81 ldd r19, Z+5 ; 0x05
+ 8e4: 46 81 ldd r20, Z+6 ; 0x06
+ 8e6: 57 81 ldd r21, Z+7 ; 0x07
+ 8e8: 14 96 adiw r26, 0x04 ; 4
+ 8ea: ed 90 ld r14, X+
+ 8ec: fd 90 ld r15, X+
+ 8ee: 0d 91 ld r16, X+
+ 8f0: 1c 91 ld r17, X
+ 8f2: 17 97 sbiw r26, 0x07 ; 7
+ 8f4: c6 01 movw r24, r12
+ 8f6: 86 19 sub r24, r6
+ 8f8: 97 09 sbc r25, r7
+ 8fa: 5c 01 movw r10, r24
+ 8fc: 97 ff sbrs r25, 7
+ 8fe: 04 c0 rjmp .+8 ; 0x908 <__stack+0x9>
+ 900: aa 24 eor r10, r10
+ 902: bb 24 eor r11, r11
+ 904: a8 1a sub r10, r24
+ 906: b9 0a sbc r11, r25
+ 908: b0 e2 ldi r27, 0x20 ; 32
+ 90a: ab 16 cp r10, r27
+ 90c: b1 04 cpc r11, r1
+ 90e: 0c f0 brlt .+2 ; 0x912 <__stack+0x13>
+ 910: 61 c0 rjmp .+194 ; 0x9d4 <__stack+0xd5>
+ 912: 18 16 cp r1, r24
+ 914: 19 06 cpc r1, r25
+ 916: 6c f5 brge .+90 ; 0x972 <__stack+0x73>
+ 918: 37 01 movw r6, r14
+ 91a: 48 01 movw r8, r16
+ 91c: 0a 2c mov r0, r10
+ 91e: 04 c0 rjmp .+8 ; 0x928 <__stack+0x29>
+ 920: 96 94 lsr r9
+ 922: 87 94 ror r8
+ 924: 77 94 ror r7
+ 926: 67 94 ror r6
+ 928: 0a 94 dec r0
+ 92a: d2 f7 brpl .-12 ; 0x920 <__stack+0x21>
+ 92c: 81 e0 ldi r24, 0x01 ; 1
+ 92e: 90 e0 ldi r25, 0x00 ; 0
+ 930: a0 e0 ldi r26, 0x00 ; 0
+ 932: b0 e0 ldi r27, 0x00 ; 0
+ 934: 0a 2c mov r0, r10
+ 936: 04 c0 rjmp .+8 ; 0x940 <__stack+0x41>
+ 938: 88 0f add r24, r24
+ 93a: 99 1f adc r25, r25
+ 93c: aa 1f adc r26, r26
+ 93e: bb 1f adc r27, r27
+ 940: 0a 94 dec r0
+ 942: d2 f7 brpl .-12 ; 0x938 <__stack+0x39>
+ 944: 01 97 sbiw r24, 0x01 ; 1
+ 946: a1 09 sbc r26, r1
+ 948: b1 09 sbc r27, r1
+ 94a: 8e 21 and r24, r14
+ 94c: 9f 21 and r25, r15
+ 94e: a0 23 and r26, r16
+ 950: b1 23 and r27, r17
+ 952: ee 24 eor r14, r14
+ 954: ff 24 eor r15, r15
+ 956: 87 01 movw r16, r14
+ 958: e3 94 inc r14
+ 95a: 00 97 sbiw r24, 0x00 ; 0
+ 95c: a1 05 cpc r26, r1
+ 95e: b1 05 cpc r27, r1
+ 960: 19 f4 brne .+6 ; 0x968 <__stack+0x69>
+ 962: ee 24 eor r14, r14
+ 964: ff 24 eor r15, r15
+ 966: 87 01 movw r16, r14
+ 968: e6 28 or r14, r6
+ 96a: f7 28 or r15, r7
+ 96c: 08 29 or r16, r8
+ 96e: 19 29 or r17, r9
+ 970: 3c c0 rjmp .+120 ; 0x9ea <__stack+0xeb>
+ 972: 00 97 sbiw r24, 0x00 ; 0
+ 974: d1 f1 breq .+116 ; 0x9ea <__stack+0xeb>
+ 976: ca 0c add r12, r10
+ 978: db 1c adc r13, r11
+ 97a: 39 01 movw r6, r18
+ 97c: 4a 01 movw r8, r20
+ 97e: 0a 2c mov r0, r10
+ 980: 04 c0 rjmp .+8 ; 0x98a <__stack+0x8b>
+ 982: 96 94 lsr r9
+ 984: 87 94 ror r8
+ 986: 77 94 ror r7
+ 988: 67 94 ror r6
+ 98a: 0a 94 dec r0
+ 98c: d2 f7 brpl .-12 ; 0x982 <__stack+0x83>
+ 98e: 81 e0 ldi r24, 0x01 ; 1
+ 990: 90 e0 ldi r25, 0x00 ; 0
+ 992: a0 e0 ldi r26, 0x00 ; 0
+ 994: b0 e0 ldi r27, 0x00 ; 0
+ 996: 0a 2c mov r0, r10
+ 998: 04 c0 rjmp .+8 ; 0x9a2 <__stack+0xa3>
+ 99a: 88 0f add r24, r24
+ 99c: 99 1f adc r25, r25
+ 99e: aa 1f adc r26, r26
+ 9a0: bb 1f adc r27, r27
+ 9a2: 0a 94 dec r0
+ 9a4: d2 f7 brpl .-12 ; 0x99a <__stack+0x9b>
+ 9a6: 01 97 sbiw r24, 0x01 ; 1
+ 9a8: a1 09 sbc r26, r1
+ 9aa: b1 09 sbc r27, r1
+ 9ac: 82 23 and r24, r18
+ 9ae: 93 23 and r25, r19
+ 9b0: a4 23 and r26, r20
+ 9b2: b5 23 and r27, r21
+ 9b4: 21 e0 ldi r18, 0x01 ; 1
+ 9b6: 30 e0 ldi r19, 0x00 ; 0
+ 9b8: 40 e0 ldi r20, 0x00 ; 0
+ 9ba: 50 e0 ldi r21, 0x00 ; 0
+ 9bc: 00 97 sbiw r24, 0x00 ; 0
+ 9be: a1 05 cpc r26, r1
+ 9c0: b1 05 cpc r27, r1
+ 9c2: 19 f4 brne .+6 ; 0x9ca <__stack+0xcb>
+ 9c4: 20 e0 ldi r18, 0x00 ; 0
+ 9c6: 30 e0 ldi r19, 0x00 ; 0
+ 9c8: a9 01 movw r20, r18
+ 9ca: 26 29 or r18, r6
+ 9cc: 37 29 or r19, r7
+ 9ce: 48 29 or r20, r8
+ 9d0: 59 29 or r21, r9
+ 9d2: 0b c0 rjmp .+22 ; 0x9ea <__stack+0xeb>
+ 9d4: 6c 14 cp r6, r12
+ 9d6: 7d 04 cpc r7, r13
+ 9d8: 24 f4 brge .+8 ; 0x9e2 <__stack+0xe3>
+ 9da: ee 24 eor r14, r14
+ 9dc: ff 24 eor r15, r15
+ 9de: 87 01 movw r16, r14
+ 9e0: 04 c0 rjmp .+8 ; 0x9ea <__stack+0xeb>
+ 9e2: 63 01 movw r12, r6
+ 9e4: 20 e0 ldi r18, 0x00 ; 0
+ 9e6: 30 e0 ldi r19, 0x00 ; 0
+ 9e8: a9 01 movw r20, r18
+ 9ea: 81 81 ldd r24, Z+1 ; 0x01
+ 9ec: fb 01 movw r30, r22
+ 9ee: 91 81 ldd r25, Z+1 ; 0x01
+ 9f0: 89 17 cp r24, r25
+ 9f2: 09 f4 brne .+2 ; 0x9f6 <__stack+0xf7>
+ 9f4: 45 c0 rjmp .+138 ; 0xa80 <__stack+0x181>
+ 9f6: 88 23 and r24, r24
+ 9f8: 49 f0 breq .+18 ; 0xa0c <__stack+0x10d>
+ 9fa: d8 01 movw r26, r16
+ 9fc: c7 01 movw r24, r14
+ 9fe: 82 1b sub r24, r18
+ a00: 93 0b sbc r25, r19
+ a02: a4 0b sbc r26, r20
+ a04: b5 0b sbc r27, r21
+ a06: 9c 01 movw r18, r24
+ a08: ad 01 movw r20, r26
+ a0a: 04 c0 rjmp .+8 ; 0xa14 <__stack+0x115>
+ a0c: 2e 19 sub r18, r14
+ a0e: 3f 09 sbc r19, r15
+ a10: 40 0b sbc r20, r16
+ a12: 51 0b sbc r21, r17
+ a14: 57 fd sbrc r21, 7
+ a16: 04 c0 rjmp .+8 ; 0xa20 <__stack+0x121>
+ a18: 19 82 std Y+1, r1 ; 0x01
+ a1a: db 82 std Y+3, r13 ; 0x03
+ a1c: ca 82 std Y+2, r12 ; 0x02
+ a1e: 0b c0 rjmp .+22 ; 0xa36 <__stack+0x137>
+ a20: 81 e0 ldi r24, 0x01 ; 1
+ a22: 89 83 std Y+1, r24 ; 0x01
+ a24: db 82 std Y+3, r13 ; 0x03
+ a26: ca 82 std Y+2, r12 ; 0x02
+ a28: 50 95 com r21
+ a2a: 40 95 com r20
+ a2c: 30 95 com r19
+ a2e: 21 95 neg r18
+ a30: 3f 4f sbci r19, 0xFF ; 255
+ a32: 4f 4f sbci r20, 0xFF ; 255
+ a34: 5f 4f sbci r21, 0xFF ; 255
+ a36: 2c 83 std Y+4, r18 ; 0x04
+ a38: 3d 83 std Y+5, r19 ; 0x05
+ a3a: 4e 83 std Y+6, r20 ; 0x06
+ a3c: 5f 83 std Y+7, r21 ; 0x07
+ a3e: 0d c0 rjmp .+26 ; 0xa5a <__stack+0x15b>
+ a40: 88 0f add r24, r24
+ a42: 99 1f adc r25, r25
+ a44: aa 1f adc r26, r26
+ a46: bb 1f adc r27, r27
+ a48: 8c 83 std Y+4, r24 ; 0x04
+ a4a: 9d 83 std Y+5, r25 ; 0x05
+ a4c: ae 83 std Y+6, r26 ; 0x06
+ a4e: bf 83 std Y+7, r27 ; 0x07
+ a50: 8a 81 ldd r24, Y+2 ; 0x02
+ a52: 9b 81 ldd r25, Y+3 ; 0x03
+ a54: 01 97 sbiw r24, 0x01 ; 1
+ a56: 9b 83 std Y+3, r25 ; 0x03
+ a58: 8a 83 std Y+2, r24 ; 0x02
+ a5a: 8c 81 ldd r24, Y+4 ; 0x04
+ a5c: 9d 81 ldd r25, Y+5 ; 0x05
+ a5e: ae 81 ldd r26, Y+6 ; 0x06
+ a60: bf 81 ldd r27, Y+7 ; 0x07
+ a62: 9c 01 movw r18, r24
+ a64: ad 01 movw r20, r26
+ a66: 21 50 subi r18, 0x01 ; 1
+ a68: 30 40 sbci r19, 0x00 ; 0
+ a6a: 40 40 sbci r20, 0x00 ; 0
+ a6c: 50 40 sbci r21, 0x00 ; 0
+ a6e: 2f 3f cpi r18, 0xFF ; 255
+ a70: ef ef ldi r30, 0xFF ; 255
+ a72: 3e 07 cpc r19, r30
+ a74: ef ef ldi r30, 0xFF ; 255
+ a76: 4e 07 cpc r20, r30
+ a78: ef e3 ldi r30, 0x3F ; 63
+ a7a: 5e 07 cpc r21, r30
+ a7c: 08 f3 brcs .-62 ; 0xa40 <__stack+0x141>
+ a7e: 0b c0 rjmp .+22 ; 0xa96 <__stack+0x197>
+ a80: 89 83 std Y+1, r24 ; 0x01
+ a82: db 82 std Y+3, r13 ; 0x03
+ a84: ca 82 std Y+2, r12 ; 0x02
+ a86: 2e 0d add r18, r14
+ a88: 3f 1d adc r19, r15
+ a8a: 40 1f adc r20, r16
+ a8c: 51 1f adc r21, r17
+ a8e: 2c 83 std Y+4, r18 ; 0x04
+ a90: 3d 83 std Y+5, r19 ; 0x05
+ a92: 4e 83 std Y+6, r20 ; 0x06
+ a94: 5f 83 std Y+7, r21 ; 0x07
+ a96: 83 e0 ldi r24, 0x03 ; 3
+ a98: 88 83 st Y, r24
+ a9a: 2c 81 ldd r18, Y+4 ; 0x04
+ a9c: 3d 81 ldd r19, Y+5 ; 0x05
+ a9e: 4e 81 ldd r20, Y+6 ; 0x06
+ aa0: 5f 81 ldd r21, Y+7 ; 0x07
+ aa2: 57 ff sbrs r21, 7
+ aa4: 1d c0 rjmp .+58 ; 0xae0 <__stack+0x1e1>
+ aa6: da 01 movw r26, r20
+ aa8: c9 01 movw r24, r18
+ aaa: 81 70 andi r24, 0x01 ; 1
+ aac: 90 70 andi r25, 0x00 ; 0
+ aae: a0 70 andi r26, 0x00 ; 0
+ ab0: b0 70 andi r27, 0x00 ; 0
+ ab2: 56 95 lsr r21
+ ab4: 47 95 ror r20
+ ab6: 37 95 ror r19
+ ab8: 27 95 ror r18
+ aba: 82 2b or r24, r18
+ abc: 93 2b or r25, r19
+ abe: a4 2b or r26, r20
+ ac0: b5 2b or r27, r21
+ ac2: 8c 83 std Y+4, r24 ; 0x04
+ ac4: 9d 83 std Y+5, r25 ; 0x05
+ ac6: ae 83 std Y+6, r26 ; 0x06
+ ac8: bf 83 std Y+7, r27 ; 0x07
+ aca: 8a 81 ldd r24, Y+2 ; 0x02
+ acc: 9b 81 ldd r25, Y+3 ; 0x03
+ ace: 01 96 adiw r24, 0x01 ; 1
+ ad0: 9b 83 std Y+3, r25 ; 0x03
+ ad2: 8a 83 std Y+2, r24 ; 0x02
+ ad4: 05 c0 rjmp .+10 ; 0xae0 <__stack+0x1e1>
+ ad6: e1 e2 ldi r30, 0x21 ; 33
+ ad8: f1 e0 ldi r31, 0x01 ; 1
+ ada: 03 c0 rjmp .+6 ; 0xae2 <__stack+0x1e3>
+ adc: fb 01 movw r30, r22
+ ade: 01 c0 rjmp .+2 ; 0xae2 <__stack+0x1e3>
+ ae0: fe 01 movw r30, r28
+ ae2: cf 01 movw r24, r30
+ ae4: cd b7 in r28, 0x3d ; 61
+ ae6: de b7 in r29, 0x3e ; 62
+ ae8: ee e0 ldi r30, 0x0E ; 14
+ aea: 0c 94 8a 09 jmp 0x1314 ; 0x1314 <__epilogue_restores__+0x8>
+
+00000aee <__addsf3>:
+ aee: a0 e2 ldi r26, 0x20 ; 32
+ af0: b0 e0 ldi r27, 0x00 ; 0
+ af2: ed e7 ldi r30, 0x7D ; 125
+ af4: f5 e0 ldi r31, 0x05 ; 5
+ af6: 0c 94 76 09 jmp 0x12ec ; 0x12ec <__prologue_saves__+0x18>
+ afa: 69 83 std Y+1, r22 ; 0x01
+ afc: 7a 83 std Y+2, r23 ; 0x02
+ afe: 8b 83 std Y+3, r24 ; 0x03
+ b00: 9c 83 std Y+4, r25 ; 0x04
+ b02: 2d 83 std Y+5, r18 ; 0x05
+ b04: 3e 83 std Y+6, r19 ; 0x06
+ b06: 4f 83 std Y+7, r20 ; 0x07
+ b08: 58 87 std Y+8, r21 ; 0x08
+ b0a: 89 e0 ldi r24, 0x09 ; 9
+ b0c: e8 2e mov r14, r24
+ b0e: f1 2c mov r15, r1
+ b10: ec 0e add r14, r28
+ b12: fd 1e adc r15, r29
+ b14: ce 01 movw r24, r28
+ b16: 01 96 adiw r24, 0x01 ; 1
+ b18: b7 01 movw r22, r14
+ b1a: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ b1e: 8e 01 movw r16, r28
+ b20: 0f 5e subi r16, 0xEF ; 239
+ b22: 1f 4f sbci r17, 0xFF ; 255
+ b24: ce 01 movw r24, r28
+ b26: 05 96 adiw r24, 0x05 ; 5
+ b28: b8 01 movw r22, r16
+ b2a: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ b2e: c7 01 movw r24, r14
+ b30: b8 01 movw r22, r16
+ b32: ae 01 movw r20, r28
+ b34: 47 5e subi r20, 0xE7 ; 231
+ b36: 5f 4f sbci r21, 0xFF ; 255
+ b38: 0e 94 2d 04 call 0x85a ; 0x85a <_fpadd_parts>
+ b3c: 0e 94 cf 07 call 0xf9e ; 0xf9e <__pack_f>
+ b40: a0 96 adiw r28, 0x20 ; 32
+ b42: e6 e0 ldi r30, 0x06 ; 6
+ b44: 0c 94 92 09 jmp 0x1324 ; 0x1324 <__epilogue_restores__+0x18>
+
+00000b48 <__subsf3>:
+ b48: a0 e2 ldi r26, 0x20 ; 32
+ b4a: b0 e0 ldi r27, 0x00 ; 0
+ b4c: ea ea ldi r30, 0xAA ; 170
+ b4e: f5 e0 ldi r31, 0x05 ; 5
+ b50: 0c 94 76 09 jmp 0x12ec ; 0x12ec <__prologue_saves__+0x18>
+ b54: 69 83 std Y+1, r22 ; 0x01
+ b56: 7a 83 std Y+2, r23 ; 0x02
+ b58: 8b 83 std Y+3, r24 ; 0x03
+ b5a: 9c 83 std Y+4, r25 ; 0x04
+ b5c: 2d 83 std Y+5, r18 ; 0x05
+ b5e: 3e 83 std Y+6, r19 ; 0x06
+ b60: 4f 83 std Y+7, r20 ; 0x07
+ b62: 58 87 std Y+8, r21 ; 0x08
+ b64: 8e 01 movw r16, r28
+ b66: 07 5f subi r16, 0xF7 ; 247
+ b68: 1f 4f sbci r17, 0xFF ; 255
+ b6a: ce 01 movw r24, r28
+ b6c: 01 96 adiw r24, 0x01 ; 1
+ b6e: b8 01 movw r22, r16
+ b70: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ b74: 91 e1 ldi r25, 0x11 ; 17
+ b76: e9 2e mov r14, r25
+ b78: f1 2c mov r15, r1
+ b7a: ec 0e add r14, r28
+ b7c: fd 1e adc r15, r29
+ b7e: ce 01 movw r24, r28
+ b80: 05 96 adiw r24, 0x05 ; 5
+ b82: b7 01 movw r22, r14
+ b84: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ b88: 8a 89 ldd r24, Y+18 ; 0x12
+ b8a: 91 e0 ldi r25, 0x01 ; 1
+ b8c: 89 27 eor r24, r25
+ b8e: 8a 8b std Y+18, r24 ; 0x12
+ b90: c8 01 movw r24, r16
+ b92: b7 01 movw r22, r14
+ b94: ae 01 movw r20, r28
+ b96: 47 5e subi r20, 0xE7 ; 231
+ b98: 5f 4f sbci r21, 0xFF ; 255
+ b9a: 0e 94 2d 04 call 0x85a ; 0x85a <_fpadd_parts>
+ b9e: 0e 94 cf 07 call 0xf9e ; 0xf9e <__pack_f>
+ ba2: a0 96 adiw r28, 0x20 ; 32
+ ba4: e6 e0 ldi r30, 0x06 ; 6
+ ba6: 0c 94 92 09 jmp 0x1324 ; 0x1324 <__epilogue_restores__+0x18>
+
+00000baa <__mulsf3>:
+ baa: a0 e2 ldi r26, 0x20 ; 32
+ bac: b0 e0 ldi r27, 0x00 ; 0
+ bae: eb ed ldi r30, 0xDB ; 219
+ bb0: f5 e0 ldi r31, 0x05 ; 5
+ bb2: 0c 94 6a 09 jmp 0x12d4 ; 0x12d4 <__prologue_saves__>
+ bb6: 69 83 std Y+1, r22 ; 0x01
+ bb8: 7a 83 std Y+2, r23 ; 0x02
+ bba: 8b 83 std Y+3, r24 ; 0x03
+ bbc: 9c 83 std Y+4, r25 ; 0x04
+ bbe: 2d 83 std Y+5, r18 ; 0x05
+ bc0: 3e 83 std Y+6, r19 ; 0x06
+ bc2: 4f 83 std Y+7, r20 ; 0x07
+ bc4: 58 87 std Y+8, r21 ; 0x08
+ bc6: ce 01 movw r24, r28
+ bc8: 01 96 adiw r24, 0x01 ; 1
+ bca: be 01 movw r22, r28
+ bcc: 67 5f subi r22, 0xF7 ; 247
+ bce: 7f 4f sbci r23, 0xFF ; 255
+ bd0: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ bd4: ce 01 movw r24, r28
+ bd6: 05 96 adiw r24, 0x05 ; 5
+ bd8: be 01 movw r22, r28
+ bda: 6f 5e subi r22, 0xEF ; 239
+ bdc: 7f 4f sbci r23, 0xFF ; 255
+ bde: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ be2: 99 85 ldd r25, Y+9 ; 0x09
+ be4: 92 30 cpi r25, 0x02 ; 2
+ be6: 78 f0 brcs .+30 ; 0xc06 <__mulsf3+0x5c>
+ be8: 89 89 ldd r24, Y+17 ; 0x11
+ bea: 82 30 cpi r24, 0x02 ; 2
+ bec: c0 f0 brcs .+48 ; 0xc1e <__mulsf3+0x74>
+ bee: 94 30 cpi r25, 0x04 ; 4
+ bf0: 19 f4 brne .+6 ; 0xbf8 <__mulsf3+0x4e>
+ bf2: 82 30 cpi r24, 0x02 ; 2
+ bf4: 41 f4 brne .+16 ; 0xc06 <__mulsf3+0x5c>
+ bf6: cb c0 rjmp .+406 ; 0xd8e <__mulsf3+0x1e4>
+ bf8: 84 30 cpi r24, 0x04 ; 4
+ bfa: 19 f4 brne .+6 ; 0xc02 <__mulsf3+0x58>
+ bfc: 92 30 cpi r25, 0x02 ; 2
+ bfe: 79 f4 brne .+30 ; 0xc1e <__mulsf3+0x74>
+ c00: c6 c0 rjmp .+396 ; 0xd8e <__mulsf3+0x1e4>
+ c02: 92 30 cpi r25, 0x02 ; 2
+ c04: 51 f4 brne .+20 ; 0xc1a <__mulsf3+0x70>
+ c06: 81 e0 ldi r24, 0x01 ; 1
+ c08: 2a 85 ldd r18, Y+10 ; 0x0a
+ c0a: 9a 89 ldd r25, Y+18 ; 0x12
+ c0c: 29 17 cp r18, r25
+ c0e: 09 f4 brne .+2 ; 0xc12 <__mulsf3+0x68>
+ c10: 80 e0 ldi r24, 0x00 ; 0
+ c12: 8a 87 std Y+10, r24 ; 0x0a
+ c14: ce 01 movw r24, r28
+ c16: 09 96 adiw r24, 0x09 ; 9
+ c18: bc c0 rjmp .+376 ; 0xd92 <__mulsf3+0x1e8>
+ c1a: 82 30 cpi r24, 0x02 ; 2
+ c1c: 51 f4 brne .+20 ; 0xc32 <__mulsf3+0x88>
+ c1e: 81 e0 ldi r24, 0x01 ; 1
+ c20: 2a 85 ldd r18, Y+10 ; 0x0a
+ c22: 9a 89 ldd r25, Y+18 ; 0x12
+ c24: 29 17 cp r18, r25
+ c26: 09 f4 brne .+2 ; 0xc2a <__mulsf3+0x80>
+ c28: 80 e0 ldi r24, 0x00 ; 0
+ c2a: 8a 8b std Y+18, r24 ; 0x12
+ c2c: ce 01 movw r24, r28
+ c2e: 41 96 adiw r24, 0x11 ; 17
+ c30: b0 c0 rjmp .+352 ; 0xd92 <__mulsf3+0x1e8>
+ c32: 6d 84 ldd r6, Y+13 ; 0x0d
+ c34: 7e 84 ldd r7, Y+14 ; 0x0e
+ c36: 8f 84 ldd r8, Y+15 ; 0x0f
+ c38: 98 88 ldd r9, Y+16 ; 0x10
+ c3a: ed 88 ldd r14, Y+21 ; 0x15
+ c3c: fe 88 ldd r15, Y+22 ; 0x16
+ c3e: 0f 89 ldd r16, Y+23 ; 0x17
+ c40: 18 8d ldd r17, Y+24 ; 0x18
+ c42: e0 e2 ldi r30, 0x20 ; 32
+ c44: f0 e0 ldi r31, 0x00 ; 0
+ c46: 80 e0 ldi r24, 0x00 ; 0
+ c48: 90 e0 ldi r25, 0x00 ; 0
+ c4a: dc 01 movw r26, r24
+ c4c: aa 24 eor r10, r10
+ c4e: bb 24 eor r11, r11
+ c50: 65 01 movw r12, r10
+ c52: 20 e0 ldi r18, 0x00 ; 0
+ c54: 30 e0 ldi r19, 0x00 ; 0
+ c56: a9 01 movw r20, r18
+ c58: b3 01 movw r22, r6
+ c5a: 61 70 andi r22, 0x01 ; 1
+ c5c: 70 70 andi r23, 0x00 ; 0
+ c5e: 61 15 cp r22, r1
+ c60: 71 05 cpc r23, r1
+ c62: d1 f0 breq .+52 ; 0xc98 <__mulsf3+0xee>
+ c64: 2e 0d add r18, r14
+ c66: 3f 1d adc r19, r15
+ c68: 40 1f adc r20, r16
+ c6a: 51 1f adc r21, r17
+ c6c: 15 01 movw r2, r10
+ c6e: 26 01 movw r4, r12
+ c70: 28 0e add r2, r24
+ c72: 39 1e adc r3, r25
+ c74: 4a 1e adc r4, r26
+ c76: 5b 1e adc r5, r27
+ c78: 81 e0 ldi r24, 0x01 ; 1
+ c7a: 90 e0 ldi r25, 0x00 ; 0
+ c7c: a0 e0 ldi r26, 0x00 ; 0
+ c7e: b0 e0 ldi r27, 0x00 ; 0
+ c80: 2e 15 cp r18, r14
+ c82: 3f 05 cpc r19, r15
+ c84: 40 07 cpc r20, r16
+ c86: 51 07 cpc r21, r17
+ c88: 18 f0 brcs .+6 ; 0xc90 <__mulsf3+0xe6>
+ c8a: 80 e0 ldi r24, 0x00 ; 0
+ c8c: 90 e0 ldi r25, 0x00 ; 0
+ c8e: dc 01 movw r26, r24
+ c90: 82 0d add r24, r2
+ c92: 93 1d adc r25, r3
+ c94: a4 1d adc r26, r4
+ c96: b5 1d adc r27, r5
+ c98: aa 0c add r10, r10
+ c9a: bb 1c adc r11, r11
+ c9c: cc 1c adc r12, r12
+ c9e: dd 1c adc r13, r13
+ ca0: 17 ff sbrs r17, 7
+ ca2: 09 c0 rjmp .+18 ; 0xcb6 <__mulsf3+0x10c>
+ ca4: 61 e0 ldi r22, 0x01 ; 1
+ ca6: 26 2e mov r2, r22
+ ca8: 31 2c mov r3, r1
+ caa: 41 2c mov r4, r1
+ cac: 51 2c mov r5, r1
+ cae: a2 28 or r10, r2
+ cb0: b3 28 or r11, r3
+ cb2: c4 28 or r12, r4
+ cb4: d5 28 or r13, r5
+ cb6: 31 97 sbiw r30, 0x01 ; 1
+ cb8: 49 f0 breq .+18 ; 0xccc <__mulsf3+0x122>
+ cba: ee 0c add r14, r14
+ cbc: ff 1c adc r15, r15
+ cbe: 00 1f adc r16, r16
+ cc0: 11 1f adc r17, r17
+ cc2: 96 94 lsr r9
+ cc4: 87 94 ror r8
+ cc6: 77 94 ror r7
+ cc8: 67 94 ror r6
+ cca: c6 cf rjmp .-116 ; 0xc58 <__mulsf3+0xae>
+ ccc: 6b 89 ldd r22, Y+19 ; 0x13
+ cce: 7c 89 ldd r23, Y+20 ; 0x14
+ cd0: eb 85 ldd r30, Y+11 ; 0x0b
+ cd2: fc 85 ldd r31, Y+12 ; 0x0c
+ cd4: 6e 0f add r22, r30
+ cd6: 7f 1f adc r23, r31
+ cd8: 6e 5f subi r22, 0xFE ; 254
+ cda: 7f 4f sbci r23, 0xFF ; 255
+ cdc: 7c 8f std Y+28, r23 ; 0x1c
+ cde: 6b 8f std Y+27, r22 ; 0x1b
+ ce0: 61 e0 ldi r22, 0x01 ; 1
+ ce2: ea 85 ldd r30, Y+10 ; 0x0a
+ ce4: 7a 89 ldd r23, Y+18 ; 0x12
+ ce6: e7 17 cp r30, r23
+ ce8: 09 f4 brne .+2 ; 0xcec <__mulsf3+0x142>
+ cea: 60 e0 ldi r22, 0x00 ; 0
+ cec: 6a 8f std Y+26, r22 ; 0x1a
+ cee: 6b 8d ldd r22, Y+27 ; 0x1b
+ cf0: 7c 8d ldd r23, Y+28 ; 0x1c
+ cf2: 10 c0 rjmp .+32 ; 0xd14 <__mulsf3+0x16a>
+ cf4: fc 01 movw r30, r24
+ cf6: e1 70 andi r30, 0x01 ; 1
+ cf8: f0 70 andi r31, 0x00 ; 0
+ cfa: 30 97 sbiw r30, 0x00 ; 0
+ cfc: 29 f0 breq .+10 ; 0xd08 <__mulsf3+0x15e>
+ cfe: 56 95 lsr r21
+ d00: 47 95 ror r20
+ d02: 37 95 ror r19
+ d04: 27 95 ror r18
+ d06: 50 68 ori r21, 0x80 ; 128
+ d08: b6 95 lsr r27
+ d0a: a7 95 ror r26
+ d0c: 97 95 ror r25
+ d0e: 87 95 ror r24
+ d10: 6f 5f subi r22, 0xFF ; 255
+ d12: 7f 4f sbci r23, 0xFF ; 255
+ d14: b7 fd sbrc r27, 7
+ d16: ee cf rjmp .-36 ; 0xcf4 <__mulsf3+0x14a>
+ d18: 0c c0 rjmp .+24 ; 0xd32 <__mulsf3+0x188>
+ d1a: 88 0f add r24, r24
+ d1c: 99 1f adc r25, r25
+ d1e: aa 1f adc r26, r26
+ d20: bb 1f adc r27, r27
+ d22: 57 fd sbrc r21, 7
+ d24: 81 60 ori r24, 0x01 ; 1
+ d26: 22 0f add r18, r18
+ d28: 33 1f adc r19, r19
+ d2a: 44 1f adc r20, r20
+ d2c: 55 1f adc r21, r21
+ d2e: 61 50 subi r22, 0x01 ; 1
+ d30: 70 40 sbci r23, 0x00 ; 0
+ d32: 80 30 cpi r24, 0x00 ; 0
+ d34: e0 e0 ldi r30, 0x00 ; 0
+ d36: 9e 07 cpc r25, r30
+ d38: e0 e0 ldi r30, 0x00 ; 0
+ d3a: ae 07 cpc r26, r30
+ d3c: e0 e4 ldi r30, 0x40 ; 64
+ d3e: be 07 cpc r27, r30
+ d40: 60 f3 brcs .-40 ; 0xd1a <__mulsf3+0x170>
+ d42: 6b 8f std Y+27, r22 ; 0x1b
+ d44: 7c 8f std Y+28, r23 ; 0x1c
+ d46: 6f e7 ldi r22, 0x7F ; 127
+ d48: e6 2e mov r14, r22
+ d4a: f1 2c mov r15, r1
+ d4c: 01 2d mov r16, r1
+ d4e: 11 2d mov r17, r1
+ d50: e8 22 and r14, r24
+ d52: f9 22 and r15, r25
+ d54: 0a 23 and r16, r26
+ d56: 1b 23 and r17, r27
+ d58: 60 e4 ldi r22, 0x40 ; 64
+ d5a: e6 16 cp r14, r22
+ d5c: f1 04 cpc r15, r1
+ d5e: 01 05 cpc r16, r1
+ d60: 11 05 cpc r17, r1
+ d62: 61 f4 brne .+24 ; 0xd7c <__mulsf3+0x1d2>
+ d64: 87 fd sbrc r24, 7
+ d66: 0a c0 rjmp .+20 ; 0xd7c <__mulsf3+0x1d2>
+ d68: 21 15 cp r18, r1
+ d6a: 31 05 cpc r19, r1
+ d6c: 41 05 cpc r20, r1
+ d6e: 51 05 cpc r21, r1
+ d70: 29 f0 breq .+10 ; 0xd7c <__mulsf3+0x1d2>
+ d72: 80 5c subi r24, 0xC0 ; 192
+ d74: 9f 4f sbci r25, 0xFF ; 255
+ d76: af 4f sbci r26, 0xFF ; 255
+ d78: bf 4f sbci r27, 0xFF ; 255
+ d7a: 80 78 andi r24, 0x80 ; 128
+ d7c: 8d 8f std Y+29, r24 ; 0x1d
+ d7e: 9e 8f std Y+30, r25 ; 0x1e
+ d80: af 8f std Y+31, r26 ; 0x1f
+ d82: b8 a3 std Y+32, r27 ; 0x20
+ d84: 83 e0 ldi r24, 0x03 ; 3
+ d86: 89 8f std Y+25, r24 ; 0x19
+ d88: ce 01 movw r24, r28
+ d8a: 49 96 adiw r24, 0x19 ; 25
+ d8c: 02 c0 rjmp .+4 ; 0xd92 <__mulsf3+0x1e8>
+ d8e: 81 e2 ldi r24, 0x21 ; 33
+ d90: 91 e0 ldi r25, 0x01 ; 1
+ d92: 0e 94 cf 07 call 0xf9e ; 0xf9e <__pack_f>
+ d96: a0 96 adiw r28, 0x20 ; 32
+ d98: e2 e1 ldi r30, 0x12 ; 18
+ d9a: 0c 94 86 09 jmp 0x130c ; 0x130c <__epilogue_restores__>
+
+00000d9e <__divsf3>:
+ d9e: a8 e1 ldi r26, 0x18 ; 24
+ da0: b0 e0 ldi r27, 0x00 ; 0
+ da2: e5 ed ldi r30, 0xD5 ; 213
+ da4: f6 e0 ldi r31, 0x06 ; 6
+ da6: 0c 94 72 09 jmp 0x12e4 ; 0x12e4 <__prologue_saves__+0x10>
+ daa: 69 83 std Y+1, r22 ; 0x01
+ dac: 7a 83 std Y+2, r23 ; 0x02
+ dae: 8b 83 std Y+3, r24 ; 0x03
+ db0: 9c 83 std Y+4, r25 ; 0x04
+ db2: 2d 83 std Y+5, r18 ; 0x05
+ db4: 3e 83 std Y+6, r19 ; 0x06
+ db6: 4f 83 std Y+7, r20 ; 0x07
+ db8: 58 87 std Y+8, r21 ; 0x08
+ dba: 8e 01 movw r16, r28
+ dbc: 07 5f subi r16, 0xF7 ; 247
+ dbe: 1f 4f sbci r17, 0xFF ; 255
+ dc0: ce 01 movw r24, r28
+ dc2: 01 96 adiw r24, 0x01 ; 1
+ dc4: b8 01 movw r22, r16
+ dc6: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ dca: 81 e1 ldi r24, 0x11 ; 17
+ dcc: e8 2e mov r14, r24
+ dce: f1 2c mov r15, r1
+ dd0: ec 0e add r14, r28
+ dd2: fd 1e adc r15, r29
+ dd4: ce 01 movw r24, r28
+ dd6: 05 96 adiw r24, 0x05 ; 5
+ dd8: b7 01 movw r22, r14
+ dda: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ dde: 99 85 ldd r25, Y+9 ; 0x09
+ de0: 92 30 cpi r25, 0x02 ; 2
+ de2: 08 f4 brcc .+2 ; 0xde6 <__divsf3+0x48>
+ de4: 83 c0 rjmp .+262 ; 0xeec <__divsf3+0x14e>
+ de6: 89 89 ldd r24, Y+17 ; 0x11
+ de8: 82 30 cpi r24, 0x02 ; 2
+ dea: 08 f4 brcc .+2 ; 0xdee <__divsf3+0x50>
+ dec: 7b c0 rjmp .+246 ; 0xee4 <__divsf3+0x146>
+ dee: 2a 85 ldd r18, Y+10 ; 0x0a
+ df0: 3a 89 ldd r19, Y+18 ; 0x12
+ df2: 23 27 eor r18, r19
+ df4: 2a 87 std Y+10, r18 ; 0x0a
+ df6: 94 30 cpi r25, 0x04 ; 4
+ df8: 11 f0 breq .+4 ; 0xdfe <__divsf3+0x60>
+ dfa: 92 30 cpi r25, 0x02 ; 2
+ dfc: 21 f4 brne .+8 ; 0xe06 <__divsf3+0x68>
+ dfe: 98 17 cp r25, r24
+ e00: 09 f0 breq .+2 ; 0xe04 <__divsf3+0x66>
+ e02: 6c c0 rjmp .+216 ; 0xedc <__divsf3+0x13e>
+ e04: 71 c0 rjmp .+226 ; 0xee8 <__divsf3+0x14a>
+ e06: 84 30 cpi r24, 0x04 ; 4
+ e08: 39 f4 brne .+14 ; 0xe18 <__divsf3+0x7a>
+ e0a: 1d 86 std Y+13, r1 ; 0x0d
+ e0c: 1e 86 std Y+14, r1 ; 0x0e
+ e0e: 1f 86 std Y+15, r1 ; 0x0f
+ e10: 18 8a std Y+16, r1 ; 0x10
+ e12: 1c 86 std Y+12, r1 ; 0x0c
+ e14: 1b 86 std Y+11, r1 ; 0x0b
+ e16: 6a c0 rjmp .+212 ; 0xeec <__divsf3+0x14e>
+ e18: 82 30 cpi r24, 0x02 ; 2
+ e1a: 19 f4 brne .+6 ; 0xe22 <__divsf3+0x84>
+ e1c: 84 e0 ldi r24, 0x04 ; 4
+ e1e: 89 87 std Y+9, r24 ; 0x09
+ e20: 65 c0 rjmp .+202 ; 0xeec <__divsf3+0x14e>
+ e22: 8b 85 ldd r24, Y+11 ; 0x0b
+ e24: 9c 85 ldd r25, Y+12 ; 0x0c
+ e26: 2b 89 ldd r18, Y+19 ; 0x13
+ e28: 3c 89 ldd r19, Y+20 ; 0x14
+ e2a: 82 1b sub r24, r18
+ e2c: 93 0b sbc r25, r19
+ e2e: 9c 87 std Y+12, r25 ; 0x0c
+ e30: 8b 87 std Y+11, r24 ; 0x0b
+ e32: 2d 85 ldd r18, Y+13 ; 0x0d
+ e34: 3e 85 ldd r19, Y+14 ; 0x0e
+ e36: 4f 85 ldd r20, Y+15 ; 0x0f
+ e38: 58 89 ldd r21, Y+16 ; 0x10
+ e3a: ed 88 ldd r14, Y+21 ; 0x15
+ e3c: fe 88 ldd r15, Y+22 ; 0x16
+ e3e: 0f 89 ldd r16, Y+23 ; 0x17
+ e40: 18 8d ldd r17, Y+24 ; 0x18
+ e42: 2e 15 cp r18, r14
+ e44: 3f 05 cpc r19, r15
+ e46: 40 07 cpc r20, r16
+ e48: 51 07 cpc r21, r17
+ e4a: 38 f4 brcc .+14 ; 0xe5a <__divsf3+0xbc>
+ e4c: 22 0f add r18, r18
+ e4e: 33 1f adc r19, r19
+ e50: 44 1f adc r20, r20
+ e52: 55 1f adc r21, r21
+ e54: 01 97 sbiw r24, 0x01 ; 1
+ e56: 9c 87 std Y+12, r25 ; 0x0c
+ e58: 8b 87 std Y+11, r24 ; 0x0b
+ e5a: 6f e1 ldi r22, 0x1F ; 31
+ e5c: 70 e0 ldi r23, 0x00 ; 0
+ e5e: a1 2c mov r10, r1
+ e60: b1 2c mov r11, r1
+ e62: c1 2c mov r12, r1
+ e64: a0 e4 ldi r26, 0x40 ; 64
+ e66: da 2e mov r13, r26
+ e68: 80 e0 ldi r24, 0x00 ; 0
+ e6a: 90 e0 ldi r25, 0x00 ; 0
+ e6c: dc 01 movw r26, r24
+ e6e: 2e 15 cp r18, r14
+ e70: 3f 05 cpc r19, r15
+ e72: 40 07 cpc r20, r16
+ e74: 51 07 cpc r21, r17
+ e76: 40 f0 brcs .+16 ; 0xe88 <__divsf3+0xea>
+ e78: 8a 29 or r24, r10
+ e7a: 9b 29 or r25, r11
+ e7c: ac 29 or r26, r12
+ e7e: bd 29 or r27, r13
+ e80: 2e 19 sub r18, r14
+ e82: 3f 09 sbc r19, r15
+ e84: 40 0b sbc r20, r16
+ e86: 51 0b sbc r21, r17
+ e88: d6 94 lsr r13
+ e8a: c7 94 ror r12
+ e8c: b7 94 ror r11
+ e8e: a7 94 ror r10
+ e90: 22 0f add r18, r18
+ e92: 33 1f adc r19, r19
+ e94: 44 1f adc r20, r20
+ e96: 55 1f adc r21, r21
+ e98: 61 50 subi r22, 0x01 ; 1
+ e9a: 70 40 sbci r23, 0x00 ; 0
+ e9c: 41 f7 brne .-48 ; 0xe6e <__divsf3+0xd0>
+ e9e: 6f e7 ldi r22, 0x7F ; 127
+ ea0: e6 2e mov r14, r22
+ ea2: f1 2c mov r15, r1
+ ea4: 01 2d mov r16, r1
+ ea6: 11 2d mov r17, r1
+ ea8: e8 22 and r14, r24
+ eaa: f9 22 and r15, r25
+ eac: 0a 23 and r16, r26
+ eae: 1b 23 and r17, r27
+ eb0: 60 e4 ldi r22, 0x40 ; 64
+ eb2: e6 16 cp r14, r22
+ eb4: f1 04 cpc r15, r1
+ eb6: 01 05 cpc r16, r1
+ eb8: 11 05 cpc r17, r1
+ eba: 61 f4 brne .+24 ; 0xed4 <__divsf3+0x136>
+ ebc: 87 fd sbrc r24, 7
+ ebe: 0a c0 rjmp .+20 ; 0xed4 <__divsf3+0x136>
+ ec0: 21 15 cp r18, r1
+ ec2: 31 05 cpc r19, r1
+ ec4: 41 05 cpc r20, r1
+ ec6: 51 05 cpc r21, r1
+ ec8: 29 f0 breq .+10 ; 0xed4 <__divsf3+0x136>
+ eca: 80 5c subi r24, 0xC0 ; 192
+ ecc: 9f 4f sbci r25, 0xFF ; 255
+ ece: af 4f sbci r26, 0xFF ; 255
+ ed0: bf 4f sbci r27, 0xFF ; 255
+ ed2: 80 78 andi r24, 0x80 ; 128
+ ed4: 8d 87 std Y+13, r24 ; 0x0d
+ ed6: 9e 87 std Y+14, r25 ; 0x0e
+ ed8: af 87 std Y+15, r26 ; 0x0f
+ eda: b8 8b std Y+16, r27 ; 0x10
+ edc: 8e 01 movw r16, r28
+ ede: 07 5f subi r16, 0xF7 ; 247
+ ee0: 1f 4f sbci r17, 0xFF ; 255
+ ee2: 04 c0 rjmp .+8 ; 0xeec <__divsf3+0x14e>
+ ee4: 87 01 movw r16, r14
+ ee6: 02 c0 rjmp .+4 ; 0xeec <__divsf3+0x14e>
+ ee8: 01 e2 ldi r16, 0x21 ; 33
+ eea: 11 e0 ldi r17, 0x01 ; 1
+ eec: c8 01 movw r24, r16
+ eee: 0e 94 cf 07 call 0xf9e ; 0xf9e <__pack_f>
+ ef2: 68 96 adiw r28, 0x18 ; 24
+ ef4: ea e0 ldi r30, 0x0A ; 10
+ ef6: 0c 94 8e 09 jmp 0x131c ; 0x131c <__epilogue_restores__+0x10>
+
+00000efa <__fixsfsi>:
+ efa: ac e0 ldi r26, 0x0C ; 12
+ efc: b0 e0 ldi r27, 0x00 ; 0
+ efe: e3 e8 ldi r30, 0x83 ; 131
+ f00: f7 e0 ldi r31, 0x07 ; 7
+ f02: 0c 94 7a 09 jmp 0x12f4 ; 0x12f4 <__prologue_saves__+0x20>
+ f06: 69 83 std Y+1, r22 ; 0x01
+ f08: 7a 83 std Y+2, r23 ; 0x02
+ f0a: 8b 83 std Y+3, r24 ; 0x03
+ f0c: 9c 83 std Y+4, r25 ; 0x04
+ f0e: ce 01 movw r24, r28
+ f10: 01 96 adiw r24, 0x01 ; 1
+ f12: be 01 movw r22, r28
+ f14: 6b 5f subi r22, 0xFB ; 251
+ f16: 7f 4f sbci r23, 0xFF ; 255
+ f18: 0e 94 9d 08 call 0x113a ; 0x113a <__unpack_f>
+ f1c: 8d 81 ldd r24, Y+5 ; 0x05
+ f1e: 82 30 cpi r24, 0x02 ; 2
+ f20: 81 f1 breq .+96 ; 0xf82 <__fixsfsi+0x88>
+ f22: 82 30 cpi r24, 0x02 ; 2
+ f24: 70 f1 brcs .+92 ; 0xf82 <__fixsfsi+0x88>
+ f26: 84 30 cpi r24, 0x04 ; 4
+ f28: 21 f4 brne .+8 ; 0xf32 <__fixsfsi+0x38>
+ f2a: 8e 81 ldd r24, Y+6 ; 0x06
+ f2c: 88 23 and r24, r24
+ f2e: 69 f1 breq .+90 ; 0xf8a <__fixsfsi+0x90>
+ f30: 0a c0 rjmp .+20 ; 0xf46 <__fixsfsi+0x4c>
+ f32: 2f 81 ldd r18, Y+7 ; 0x07
+ f34: 38 85 ldd r19, Y+8 ; 0x08
+ f36: 37 fd sbrc r19, 7
+ f38: 24 c0 rjmp .+72 ; 0xf82 <__fixsfsi+0x88>
+ f3a: 6e 81 ldd r22, Y+6 ; 0x06
+ f3c: 2f 31 cpi r18, 0x1F ; 31
+ f3e: 31 05 cpc r19, r1
+ f40: 3c f0 brlt .+14 ; 0xf50 <__fixsfsi+0x56>
+ f42: 66 23 and r22, r22
+ f44: 11 f1 breq .+68 ; 0xf8a <__fixsfsi+0x90>
+ f46: 20 e0 ldi r18, 0x00 ; 0
+ f48: 30 e0 ldi r19, 0x00 ; 0
+ f4a: 40 e0 ldi r20, 0x00 ; 0
+ f4c: 50 e8 ldi r21, 0x80 ; 128
+ f4e: 21 c0 rjmp .+66 ; 0xf92 <__fixsfsi+0x98>
+ f50: 8e e1 ldi r24, 0x1E ; 30
+ f52: 90 e0 ldi r25, 0x00 ; 0
+ f54: 82 1b sub r24, r18
+ f56: 93 0b sbc r25, r19
+ f58: 29 85 ldd r18, Y+9 ; 0x09
+ f5a: 3a 85 ldd r19, Y+10 ; 0x0a
+ f5c: 4b 85 ldd r20, Y+11 ; 0x0b
+ f5e: 5c 85 ldd r21, Y+12 ; 0x0c
+ f60: 04 c0 rjmp .+8 ; 0xf6a <__fixsfsi+0x70>
+ f62: 56 95 lsr r21
+ f64: 47 95 ror r20
+ f66: 37 95 ror r19
+ f68: 27 95 ror r18
+ f6a: 8a 95 dec r24
+ f6c: d2 f7 brpl .-12 ; 0xf62 <__fixsfsi+0x68>
+ f6e: 66 23 and r22, r22
+ f70: 81 f0 breq .+32 ; 0xf92 <__fixsfsi+0x98>
+ f72: 50 95 com r21
+ f74: 40 95 com r20
+ f76: 30 95 com r19
+ f78: 21 95 neg r18
+ f7a: 3f 4f sbci r19, 0xFF ; 255
+ f7c: 4f 4f sbci r20, 0xFF ; 255
+ f7e: 5f 4f sbci r21, 0xFF ; 255
+ f80: 08 c0 rjmp .+16 ; 0xf92 <__fixsfsi+0x98>
+ f82: 20 e0 ldi r18, 0x00 ; 0
+ f84: 30 e0 ldi r19, 0x00 ; 0
+ f86: a9 01 movw r20, r18
+ f88: 04 c0 rjmp .+8 ; 0xf92 <__fixsfsi+0x98>
+ f8a: 2f ef ldi r18, 0xFF ; 255
+ f8c: 3f ef ldi r19, 0xFF ; 255
+ f8e: 4f ef ldi r20, 0xFF ; 255
+ f90: 5f e7 ldi r21, 0x7F ; 127
+ f92: b9 01 movw r22, r18
+ f94: ca 01 movw r24, r20
+ f96: 2c 96 adiw r28, 0x0c ; 12
+ f98: e2 e0 ldi r30, 0x02 ; 2
+ f9a: 0c 94 96 09 jmp 0x132c ; 0x132c <__epilogue_restores__+0x20>
+
+00000f9e <__pack_f>:
+ f9e: ef 92 push r14
+ fa0: ff 92 push r15
+ fa2: 0f 93 push r16
+ fa4: 1f 93 push r17
+ fa6: cf 93 push r28
+ fa8: df 93 push r29
+ faa: fc 01 movw r30, r24
+ fac: 24 81 ldd r18, Z+4 ; 0x04
+ fae: 35 81 ldd r19, Z+5 ; 0x05
+ fb0: 46 81 ldd r20, Z+6 ; 0x06
+ fb2: 57 81 ldd r21, Z+7 ; 0x07
+ fb4: 61 81 ldd r22, Z+1 ; 0x01
+ fb6: 80 81 ld r24, Z
+ fb8: 82 30 cpi r24, 0x02 ; 2
+ fba: 20 f4 brcc .+8 ; 0xfc4 <__pack_f+0x26>
+ fbc: 40 61 ori r20, 0x10 ; 16
+ fbe: ef ef ldi r30, 0xFF ; 255
+ fc0: f0 e0 ldi r31, 0x00 ; 0
+ fc2: a3 c0 rjmp .+326 ; 0x110a <__pack_f+0x16c>
+ fc4: 84 30 cpi r24, 0x04 ; 4
+ fc6: 09 f4 brne .+2 ; 0xfca <__pack_f+0x2c>
+ fc8: 9b c0 rjmp .+310 ; 0x1100 <__pack_f+0x162>
+ fca: 82 30 cpi r24, 0x02 ; 2
+ fcc: 09 f4 brne .+2 ; 0xfd0 <__pack_f+0x32>
+ fce: 92 c0 rjmp .+292 ; 0x10f4 <__pack_f+0x156>
+ fd0: 21 15 cp r18, r1
+ fd2: 31 05 cpc r19, r1
+ fd4: 41 05 cpc r20, r1
+ fd6: 51 05 cpc r21, r1
+ fd8: 09 f4 brne .+2 ; 0xfdc <__pack_f+0x3e>
+ fda: 8f c0 rjmp .+286 ; 0x10fa <__pack_f+0x15c>
+ fdc: 02 80 ldd r0, Z+2 ; 0x02
+ fde: f3 81 ldd r31, Z+3 ; 0x03
+ fe0: e0 2d mov r30, r0
+ fe2: 8f ef ldi r24, 0xFF ; 255
+ fe4: e2 38 cpi r30, 0x82 ; 130
+ fe6: f8 07 cpc r31, r24
+ fe8: 0c f0 brlt .+2 ; 0xfec <__pack_f+0x4e>
+ fea: 5a c0 rjmp .+180 ; 0x10a0 <__pack_f+0x102>
+ fec: c2 e8 ldi r28, 0x82 ; 130
+ fee: df ef ldi r29, 0xFF ; 255
+ ff0: ce 1b sub r28, r30
+ ff2: df 0b sbc r29, r31
+ ff4: ca 31 cpi r28, 0x1A ; 26
+ ff6: d1 05 cpc r29, r1
+ ff8: 6c f5 brge .+90 ; 0x1054 <__pack_f+0xb6>
+ ffa: 79 01 movw r14, r18
+ ffc: 8a 01 movw r16, r20
+ ffe: 0c 2e mov r0, r28
+ 1000: 04 c0 rjmp .+8 ; 0x100a <__pack_f+0x6c>
+ 1002: 16 95 lsr r17
+ 1004: 07 95 ror r16
+ 1006: f7 94 ror r15
+ 1008: e7 94 ror r14
+ 100a: 0a 94 dec r0
+ 100c: d2 f7 brpl .-12 ; 0x1002 <__pack_f+0x64>
+ 100e: 81 e0 ldi r24, 0x01 ; 1
+ 1010: 90 e0 ldi r25, 0x00 ; 0
+ 1012: a0 e0 ldi r26, 0x00 ; 0
+ 1014: b0 e0 ldi r27, 0x00 ; 0
+ 1016: 0c 2e mov r0, r28
+ 1018: 04 c0 rjmp .+8 ; 0x1022 <__pack_f+0x84>
+ 101a: 88 0f add r24, r24
+ 101c: 99 1f adc r25, r25
+ 101e: aa 1f adc r26, r26
+ 1020: bb 1f adc r27, r27
+ 1022: 0a 94 dec r0
+ 1024: d2 f7 brpl .-12 ; 0x101a <__pack_f+0x7c>
+ 1026: 01 97 sbiw r24, 0x01 ; 1
+ 1028: a1 09 sbc r26, r1
+ 102a: b1 09 sbc r27, r1
+ 102c: 82 23 and r24, r18
+ 102e: 93 23 and r25, r19
+ 1030: a4 23 and r26, r20
+ 1032: b5 23 and r27, r21
+ 1034: 21 e0 ldi r18, 0x01 ; 1
+ 1036: 30 e0 ldi r19, 0x00 ; 0
+ 1038: 40 e0 ldi r20, 0x00 ; 0
+ 103a: 50 e0 ldi r21, 0x00 ; 0
+ 103c: 00 97 sbiw r24, 0x00 ; 0
+ 103e: a1 05 cpc r26, r1
+ 1040: b1 05 cpc r27, r1
+ 1042: 19 f4 brne .+6 ; 0x104a <__pack_f+0xac>
+ 1044: 20 e0 ldi r18, 0x00 ; 0
+ 1046: 30 e0 ldi r19, 0x00 ; 0
+ 1048: a9 01 movw r20, r18
+ 104a: 2e 29 or r18, r14
+ 104c: 3f 29 or r19, r15
+ 104e: 40 2b or r20, r16
+ 1050: 51 2b or r21, r17
+ 1052: 03 c0 rjmp .+6 ; 0x105a <__pack_f+0xbc>
+ 1054: 20 e0 ldi r18, 0x00 ; 0
+ 1056: 30 e0 ldi r19, 0x00 ; 0
+ 1058: a9 01 movw r20, r18
+ 105a: da 01 movw r26, r20
+ 105c: c9 01 movw r24, r18
+ 105e: 8f 77 andi r24, 0x7F ; 127
+ 1060: 90 70 andi r25, 0x00 ; 0
+ 1062: a0 70 andi r26, 0x00 ; 0
+ 1064: b0 70 andi r27, 0x00 ; 0
+ 1066: 80 34 cpi r24, 0x40 ; 64
+ 1068: 91 05 cpc r25, r1
+ 106a: a1 05 cpc r26, r1
+ 106c: b1 05 cpc r27, r1
+ 106e: 39 f4 brne .+14 ; 0x107e <__pack_f+0xe0>
+ 1070: 27 ff sbrs r18, 7
+ 1072: 09 c0 rjmp .+18 ; 0x1086 <__pack_f+0xe8>
+ 1074: 20 5c subi r18, 0xC0 ; 192
+ 1076: 3f 4f sbci r19, 0xFF ; 255
+ 1078: 4f 4f sbci r20, 0xFF ; 255
+ 107a: 5f 4f sbci r21, 0xFF ; 255
+ 107c: 04 c0 rjmp .+8 ; 0x1086 <__pack_f+0xe8>
+ 107e: 21 5c subi r18, 0xC1 ; 193
+ 1080: 3f 4f sbci r19, 0xFF ; 255
+ 1082: 4f 4f sbci r20, 0xFF ; 255
+ 1084: 5f 4f sbci r21, 0xFF ; 255
+ 1086: e1 e0 ldi r30, 0x01 ; 1
+ 1088: f0 e0 ldi r31, 0x00 ; 0
+ 108a: 20 30 cpi r18, 0x00 ; 0
+ 108c: 80 e0 ldi r24, 0x00 ; 0
+ 108e: 38 07 cpc r19, r24
+ 1090: 80 e0 ldi r24, 0x00 ; 0
+ 1092: 48 07 cpc r20, r24
+ 1094: 80 e4 ldi r24, 0x40 ; 64
+ 1096: 58 07 cpc r21, r24
+ 1098: 28 f5 brcc .+74 ; 0x10e4 <__pack_f+0x146>
+ 109a: e0 e0 ldi r30, 0x00 ; 0
+ 109c: f0 e0 ldi r31, 0x00 ; 0
+ 109e: 22 c0 rjmp .+68 ; 0x10e4 <__pack_f+0x146>
+ 10a0: e0 38 cpi r30, 0x80 ; 128
+ 10a2: f1 05 cpc r31, r1
+ 10a4: 6c f5 brge .+90 ; 0x1100 <__pack_f+0x162>
+ 10a6: e1 58 subi r30, 0x81 ; 129
+ 10a8: ff 4f sbci r31, 0xFF ; 255
+ 10aa: da 01 movw r26, r20
+ 10ac: c9 01 movw r24, r18
+ 10ae: 8f 77 andi r24, 0x7F ; 127
+ 10b0: 90 70 andi r25, 0x00 ; 0
+ 10b2: a0 70 andi r26, 0x00 ; 0
+ 10b4: b0 70 andi r27, 0x00 ; 0
+ 10b6: 80 34 cpi r24, 0x40 ; 64
+ 10b8: 91 05 cpc r25, r1
+ 10ba: a1 05 cpc r26, r1
+ 10bc: b1 05 cpc r27, r1
+ 10be: 39 f4 brne .+14 ; 0x10ce <__pack_f+0x130>
+ 10c0: 27 ff sbrs r18, 7
+ 10c2: 09 c0 rjmp .+18 ; 0x10d6 <__pack_f+0x138>
+ 10c4: 20 5c subi r18, 0xC0 ; 192
+ 10c6: 3f 4f sbci r19, 0xFF ; 255
+ 10c8: 4f 4f sbci r20, 0xFF ; 255
+ 10ca: 5f 4f sbci r21, 0xFF ; 255
+ 10cc: 04 c0 rjmp .+8 ; 0x10d6 <__pack_f+0x138>
+ 10ce: 21 5c subi r18, 0xC1 ; 193
+ 10d0: 3f 4f sbci r19, 0xFF ; 255
+ 10d2: 4f 4f sbci r20, 0xFF ; 255
+ 10d4: 5f 4f sbci r21, 0xFF ; 255
+ 10d6: 57 ff sbrs r21, 7
+ 10d8: 05 c0 rjmp .+10 ; 0x10e4 <__pack_f+0x146>
+ 10da: 56 95 lsr r21
+ 10dc: 47 95 ror r20
+ 10de: 37 95 ror r19
+ 10e0: 27 95 ror r18
+ 10e2: 31 96 adiw r30, 0x01 ; 1
+ 10e4: 87 e0 ldi r24, 0x07 ; 7
+ 10e6: 56 95 lsr r21
+ 10e8: 47 95 ror r20
+ 10ea: 37 95 ror r19
+ 10ec: 27 95 ror r18
+ 10ee: 8a 95 dec r24
+ 10f0: d1 f7 brne .-12 ; 0x10e6 <__pack_f+0x148>
+ 10f2: 0b c0 rjmp .+22 ; 0x110a <__pack_f+0x16c>
+ 10f4: e0 e0 ldi r30, 0x00 ; 0
+ 10f6: f0 e0 ldi r31, 0x00 ; 0
+ 10f8: 05 c0 rjmp .+10 ; 0x1104 <__pack_f+0x166>
+ 10fa: e0 e0 ldi r30, 0x00 ; 0
+ 10fc: f0 e0 ldi r31, 0x00 ; 0
+ 10fe: 05 c0 rjmp .+10 ; 0x110a <__pack_f+0x16c>
+ 1100: ef ef ldi r30, 0xFF ; 255
+ 1102: f0 e0 ldi r31, 0x00 ; 0
+ 1104: 20 e0 ldi r18, 0x00 ; 0
+ 1106: 30 e0 ldi r19, 0x00 ; 0
+ 1108: a9 01 movw r20, r18
+ 110a: 8e 2f mov r24, r30
+ 110c: 87 95 ror r24
+ 110e: 88 27 eor r24, r24
+ 1110: 87 95 ror r24
+ 1112: 94 2f mov r25, r20
+ 1114: 9f 77 andi r25, 0x7F ; 127
+ 1116: 67 95 ror r22
+ 1118: 66 27 eor r22, r22
+ 111a: 67 95 ror r22
+ 111c: e6 95 lsr r30
+ 111e: e2 2e mov r14, r18
+ 1120: a9 2f mov r26, r25
+ 1122: a8 2b or r26, r24
+ 1124: fe 2f mov r31, r30
+ 1126: f6 2b or r31, r22
+ 1128: 62 2f mov r22, r18
+ 112a: 73 2f mov r23, r19
+ 112c: 8a 2f mov r24, r26
+ 112e: 9f 2f mov r25, r31
+ 1130: cd b7 in r28, 0x3d ; 61
+ 1132: de b7 in r29, 0x3e ; 62
+ 1134: e6 e0 ldi r30, 0x06 ; 6
+ 1136: 0c 94 92 09 jmp 0x1324 ; 0x1324 <__epilogue_restores__+0x18>
+
+0000113a <__unpack_f>:
+ 113a: dc 01 movw r26, r24
+ 113c: fb 01 movw r30, r22
+ 113e: 2c 91 ld r18, X
+ 1140: 11 96 adiw r26, 0x01 ; 1
+ 1142: 3c 91 ld r19, X
+ 1144: 11 97 sbiw r26, 0x01 ; 1
+ 1146: 12 96 adiw r26, 0x02 ; 2
+ 1148: 8c 91 ld r24, X
+ 114a: 12 97 sbiw r26, 0x02 ; 2
+ 114c: 48 2f mov r20, r24
+ 114e: 4f 77 andi r20, 0x7F ; 127
+ 1150: 50 e0 ldi r21, 0x00 ; 0
+ 1152: 98 2f mov r25, r24
+ 1154: 99 1f adc r25, r25
+ 1156: 99 27 eor r25, r25
+ 1158: 99 1f adc r25, r25
+ 115a: 13 96 adiw r26, 0x03 ; 3
+ 115c: 6c 91 ld r22, X
+ 115e: 13 97 sbiw r26, 0x03 ; 3
+ 1160: 86 2f mov r24, r22
+ 1162: 88 0f add r24, r24
+ 1164: 89 2b or r24, r25
+ 1166: 90 e0 ldi r25, 0x00 ; 0
+ 1168: 66 1f adc r22, r22
+ 116a: 66 27 eor r22, r22
+ 116c: 66 1f adc r22, r22
+ 116e: 61 83 std Z+1, r22 ; 0x01
+ 1170: 00 97 sbiw r24, 0x00 ; 0
+ 1172: 39 f5 brne .+78 ; 0x11c2 <__unpack_f+0x88>
+ 1174: 21 15 cp r18, r1
+ 1176: 31 05 cpc r19, r1
+ 1178: 41 05 cpc r20, r1
+ 117a: 51 05 cpc r21, r1
+ 117c: 11 f4 brne .+4 ; 0x1182 <__unpack_f+0x48>
+ 117e: 82 e0 ldi r24, 0x02 ; 2
+ 1180: 29 c0 rjmp .+82 ; 0x11d4 <__unpack_f+0x9a>
+ 1182: 82 e8 ldi r24, 0x82 ; 130
+ 1184: 9f ef ldi r25, 0xFF ; 255
+ 1186: 93 83 std Z+3, r25 ; 0x03
+ 1188: 82 83 std Z+2, r24 ; 0x02
+ 118a: 67 e0 ldi r22, 0x07 ; 7
+ 118c: 22 0f add r18, r18
+ 118e: 33 1f adc r19, r19
+ 1190: 44 1f adc r20, r20
+ 1192: 55 1f adc r21, r21
+ 1194: 6a 95 dec r22
+ 1196: d1 f7 brne .-12 ; 0x118c <__unpack_f+0x52>
+ 1198: 83 e0 ldi r24, 0x03 ; 3
+ 119a: 80 83 st Z, r24
+ 119c: 09 c0 rjmp .+18 ; 0x11b0 <__unpack_f+0x76>
+ 119e: 22 0f add r18, r18
+ 11a0: 33 1f adc r19, r19
+ 11a2: 44 1f adc r20, r20
+ 11a4: 55 1f adc r21, r21
+ 11a6: 82 81 ldd r24, Z+2 ; 0x02
+ 11a8: 93 81 ldd r25, Z+3 ; 0x03
+ 11aa: 01 97 sbiw r24, 0x01 ; 1
+ 11ac: 93 83 std Z+3, r25 ; 0x03
+ 11ae: 82 83 std Z+2, r24 ; 0x02
+ 11b0: 20 30 cpi r18, 0x00 ; 0
+ 11b2: 80 e0 ldi r24, 0x00 ; 0
+ 11b4: 38 07 cpc r19, r24
+ 11b6: 80 e0 ldi r24, 0x00 ; 0
+ 11b8: 48 07 cpc r20, r24
+ 11ba: 80 e4 ldi r24, 0x40 ; 64
+ 11bc: 58 07 cpc r21, r24
+ 11be: 78 f3 brcs .-34 ; 0x119e <__unpack_f+0x64>
+ 11c0: 20 c0 rjmp .+64 ; 0x1202 <__unpack_f+0xc8>
+ 11c2: 8f 3f cpi r24, 0xFF ; 255
+ 11c4: 91 05 cpc r25, r1
+ 11c6: 79 f4 brne .+30 ; 0x11e6 <__unpack_f+0xac>
+ 11c8: 21 15 cp r18, r1
+ 11ca: 31 05 cpc r19, r1
+ 11cc: 41 05 cpc r20, r1
+ 11ce: 51 05 cpc r21, r1
+ 11d0: 19 f4 brne .+6 ; 0x11d8 <__unpack_f+0x9e>
+ 11d2: 84 e0 ldi r24, 0x04 ; 4
+ 11d4: 80 83 st Z, r24
+ 11d6: 08 95 ret
+ 11d8: 44 ff sbrs r20, 4
+ 11da: 03 c0 rjmp .+6 ; 0x11e2 <__unpack_f+0xa8>
+ 11dc: 81 e0 ldi r24, 0x01 ; 1
+ 11de: 80 83 st Z, r24
+ 11e0: 10 c0 rjmp .+32 ; 0x1202 <__unpack_f+0xc8>
+ 11e2: 10 82 st Z, r1
+ 11e4: 0e c0 rjmp .+28 ; 0x1202 <__unpack_f+0xc8>
+ 11e6: 8f 57 subi r24, 0x7F ; 127
+ 11e8: 90 40 sbci r25, 0x00 ; 0
+ 11ea: 93 83 std Z+3, r25 ; 0x03
+ 11ec: 82 83 std Z+2, r24 ; 0x02
+ 11ee: 83 e0 ldi r24, 0x03 ; 3
+ 11f0: 80 83 st Z, r24
+ 11f2: 87 e0 ldi r24, 0x07 ; 7
+ 11f4: 22 0f add r18, r18
+ 11f6: 33 1f adc r19, r19
+ 11f8: 44 1f adc r20, r20
+ 11fa: 55 1f adc r21, r21
+ 11fc: 8a 95 dec r24
+ 11fe: d1 f7 brne .-12 ; 0x11f4 <__unpack_f+0xba>
+ 1200: 50 64 ori r21, 0x40 ; 64
+ 1202: 24 83 std Z+4, r18 ; 0x04
+ 1204: 35 83 std Z+5, r19 ; 0x05
+ 1206: 46 83 std Z+6, r20 ; 0x06
+ 1208: 57 83 std Z+7, r21 ; 0x07
+ 120a: 08 95 ret
+
+0000120c <__divmodhi4>:
+ 120c: 97 fb bst r25, 7
+ 120e: 09 2e mov r0, r25
+ 1210: 07 26 eor r0, r23
+ 1212: 0a d0 rcall .+20 ; 0x1228 <__divmodhi4_neg1>
+ 1214: 77 fd sbrc r23, 7
+ 1216: 04 d0 rcall .+8 ; 0x1220 <__divmodhi4_neg2>
+ 1218: 49 d0 rcall .+146 ; 0x12ac <__udivmodhi4>
+ 121a: 06 d0 rcall .+12 ; 0x1228 <__divmodhi4_neg1>
+ 121c: 00 20 and r0, r0
+ 121e: 1a f4 brpl .+6 ; 0x1226 <__divmodhi4_exit>
+
+00001220 <__divmodhi4_neg2>:
+ 1220: 70 95 com r23
+ 1222: 61 95 neg r22
+ 1224: 7f 4f sbci r23, 0xFF ; 255
+
+00001226 <__divmodhi4_exit>:
+ 1226: 08 95 ret
+
+00001228 <__divmodhi4_neg1>:
+ 1228: f6 f7 brtc .-4 ; 0x1226 <__divmodhi4_exit>
+ 122a: 90 95 com r25
+ 122c: 81 95 neg r24
+ 122e: 9f 4f sbci r25, 0xFF ; 255
+ 1230: 08 95 ret
+
+00001232 <__udivmodsi4>:
+ 1232: a1 e2 ldi r26, 0x21 ; 33
+ 1234: 1a 2e mov r1, r26
+ 1236: aa 1b sub r26, r26
+ 1238: bb 1b sub r27, r27
+ 123a: fd 01 movw r30, r26
+ 123c: 0d c0 rjmp .+26 ; 0x1258 <__udivmodsi4_ep>
+
+0000123e <__udivmodsi4_loop>:
+ 123e: aa 1f adc r26, r26
+ 1240: bb 1f adc r27, r27
+ 1242: ee 1f adc r30, r30
+ 1244: ff 1f adc r31, r31
+ 1246: a2 17 cp r26, r18
+ 1248: b3 07 cpc r27, r19
+ 124a: e4 07 cpc r30, r20
+ 124c: f5 07 cpc r31, r21
+ 124e: 20 f0 brcs .+8 ; 0x1258 <__udivmodsi4_ep>
+ 1250: a2 1b sub r26, r18
+ 1252: b3 0b sbc r27, r19
+ 1254: e4 0b sbc r30, r20
+ 1256: f5 0b sbc r31, r21
+
+00001258 <__udivmodsi4_ep>:
+ 1258: 66 1f adc r22, r22
+ 125a: 77 1f adc r23, r23
+ 125c: 88 1f adc r24, r24
+ 125e: 99 1f adc r25, r25
+ 1260: 1a 94 dec r1
+ 1262: 69 f7 brne .-38 ; 0x123e <__udivmodsi4_loop>
+ 1264: 60 95 com r22
+ 1266: 70 95 com r23
+ 1268: 80 95 com r24
+ 126a: 90 95 com r25
+ 126c: 9b 01 movw r18, r22
+ 126e: ac 01 movw r20, r24
+ 1270: bd 01 movw r22, r26
+ 1272: cf 01 movw r24, r30
+ 1274: 08 95 ret
+
+00001276 <__divmodsi4>:
+ 1276: 97 fb bst r25, 7
+ 1278: 09 2e mov r0, r25
+ 127a: 05 26 eor r0, r21
+ 127c: 0e d0 rcall .+28 ; 0x129a <__divmodsi4_neg1>
+ 127e: 57 fd sbrc r21, 7
+ 1280: 04 d0 rcall .+8 ; 0x128a <__divmodsi4_neg2>
+ 1282: d7 df rcall .-82 ; 0x1232 <__udivmodsi4>
+ 1284: 0a d0 rcall .+20 ; 0x129a <__divmodsi4_neg1>
+ 1286: 00 1c adc r0, r0
+ 1288: 38 f4 brcc .+14 ; 0x1298 <__divmodsi4_exit>
+
+0000128a <__divmodsi4_neg2>:
+ 128a: 50 95 com r21
+ 128c: 40 95 com r20
+ 128e: 30 95 com r19
+ 1290: 21 95 neg r18
+ 1292: 3f 4f sbci r19, 0xFF ; 255
+ 1294: 4f 4f sbci r20, 0xFF ; 255
+ 1296: 5f 4f sbci r21, 0xFF ; 255
+
+00001298 <__divmodsi4_exit>:
+ 1298: 08 95 ret
+
+0000129a <__divmodsi4_neg1>:
+ 129a: f6 f7 brtc .-4 ; 0x1298 <__divmodsi4_exit>
+ 129c: 90 95 com r25
+ 129e: 80 95 com r24
+ 12a0: 70 95 com r23
+ 12a2: 61 95 neg r22
+ 12a4: 7f 4f sbci r23, 0xFF ; 255
+ 12a6: 8f 4f sbci r24, 0xFF ; 255
+ 12a8: 9f 4f sbci r25, 0xFF ; 255
+ 12aa: 08 95 ret
+
+000012ac <__udivmodhi4>:
+ 12ac: aa 1b sub r26, r26
+ 12ae: bb 1b sub r27, r27
+ 12b0: 51 e1 ldi r21, 0x11 ; 17
+ 12b2: 07 c0 rjmp .+14 ; 0x12c2 <__udivmodhi4_ep>
+
+000012b4 <__udivmodhi4_loop>:
+ 12b4: aa 1f adc r26, r26
+ 12b6: bb 1f adc r27, r27
+ 12b8: a6 17 cp r26, r22
+ 12ba: b7 07 cpc r27, r23
+ 12bc: 10 f0 brcs .+4 ; 0x12c2 <__udivmodhi4_ep>
+ 12be: a6 1b sub r26, r22
+ 12c0: b7 0b sbc r27, r23
+
+000012c2 <__udivmodhi4_ep>:
+ 12c2: 88 1f adc r24, r24
+ 12c4: 99 1f adc r25, r25
+ 12c6: 5a 95 dec r21
+ 12c8: a9 f7 brne .-22 ; 0x12b4 <__udivmodhi4_loop>
+ 12ca: 80 95 com r24
+ 12cc: 90 95 com r25
+ 12ce: bc 01 movw r22, r24
+ 12d0: cd 01 movw r24, r26
+ 12d2: 08 95 ret
+
+000012d4 <__prologue_saves__>:
+ 12d4: 2f 92 push r2
+ 12d6: 3f 92 push r3
+ 12d8: 4f 92 push r4
+ 12da: 5f 92 push r5
+ 12dc: 6f 92 push r6
+ 12de: 7f 92 push r7
+ 12e0: 8f 92 push r8
+ 12e2: 9f 92 push r9
+ 12e4: af 92 push r10
+ 12e6: bf 92 push r11
+ 12e8: cf 92 push r12
+ 12ea: df 92 push r13
+ 12ec: ef 92 push r14
+ 12ee: ff 92 push r15
+ 12f0: 0f 93 push r16
+ 12f2: 1f 93 push r17
+ 12f4: cf 93 push r28
+ 12f6: df 93 push r29
+ 12f8: cd b7 in r28, 0x3d ; 61
+ 12fa: de b7 in r29, 0x3e ; 62
+ 12fc: ca 1b sub r28, r26
+ 12fe: db 0b sbc r29, r27
+ 1300: 0f b6 in r0, 0x3f ; 63
+ 1302: f8 94 cli
+ 1304: de bf out 0x3e, r29 ; 62
+ 1306: 0f be out 0x3f, r0 ; 63
+ 1308: cd bf out 0x3d, r28 ; 61
+ 130a: 09 94 ijmp
+
+0000130c <__epilogue_restores__>:
+ 130c: 2a 88 ldd r2, Y+18 ; 0x12
+ 130e: 39 88 ldd r3, Y+17 ; 0x11
+ 1310: 48 88 ldd r4, Y+16 ; 0x10
+ 1312: 5f 84 ldd r5, Y+15 ; 0x0f
+ 1314: 6e 84 ldd r6, Y+14 ; 0x0e
+ 1316: 7d 84 ldd r7, Y+13 ; 0x0d
+ 1318: 8c 84 ldd r8, Y+12 ; 0x0c
+ 131a: 9b 84 ldd r9, Y+11 ; 0x0b
+ 131c: aa 84 ldd r10, Y+10 ; 0x0a
+ 131e: b9 84 ldd r11, Y+9 ; 0x09
+ 1320: c8 84 ldd r12, Y+8 ; 0x08
+ 1322: df 80 ldd r13, Y+7 ; 0x07
+ 1324: ee 80 ldd r14, Y+6 ; 0x06
+ 1326: fd 80 ldd r15, Y+5 ; 0x05
+ 1328: 0c 81 ldd r16, Y+4 ; 0x04
+ 132a: 1b 81 ldd r17, Y+3 ; 0x03
+ 132c: aa 81 ldd r26, Y+2 ; 0x02
+ 132e: b9 81 ldd r27, Y+1 ; 0x01
+ 1330: ce 0f add r28, r30
+ 1332: d1 1d adc r29, r1
+ 1334: 0f b6 in r0, 0x3f ; 63
+ 1336: f8 94 cli
+ 1338: de bf out 0x3e, r29 ; 62
+ 133a: 0f be out 0x3f, r0 ; 63
+ 133c: cd bf out 0x3d, r28 ; 61
+ 133e: ed 01 movw r28, r26
+ 1340: 08 95 ret
+
+00001342 <__tablejump2__>:
+ 1342: ee 0f add r30, r30
+ 1344: ff 1f adc r31, r31
+
+00001346 <__tablejump__>:
+ 1346: 05 90 lpm r0, Z+
+ 1348: f4 91 lpm r31, Z+
+ 134a: e0 2d mov r30, r0
+ 134c: 09 94 ijmp
+
+0000134e <sin>:
+ 134e: 9f 93 push r25
+ 1350: 05 d0 rcall .+10 ; 0x135c <__fp_rempio2>
+ 1352: 0f 90 pop r0
+ 1354: 07 fc sbrc r0, 7
+ 1356: ee 5f subi r30, 0xFE ; 254
+ 1358: 28 c0 rjmp .+80 ; 0x13aa <__fp_sinus>
+ 135a: ce c0 rjmp .+412 ; 0x14f8 <__fp_nan>
+
+0000135c <__fp_rempio2>:
+ 135c: 3f d0 rcall .+126 ; 0x13dc <__fp_splitA>
+ 135e: e8 f3 brcs .-6 ; 0x135a <sin+0xc>
+ 1360: e8 94 clt
+ 1362: e0 e0 ldi r30, 0x00 ; 0
+ 1364: bb 27 eor r27, r27
+ 1366: 9f 57 subi r25, 0x7F ; 127
+ 1368: f0 f0 brcs .+60 ; 0x13a6 <__fp_rempio2+0x4a>
+ 136a: 2a ed ldi r18, 0xDA ; 218
+ 136c: 3f e0 ldi r19, 0x0F ; 15
+ 136e: 49 ec ldi r20, 0xC9 ; 201
+ 1370: 06 c0 rjmp .+12 ; 0x137e <__fp_rempio2+0x22>
+ 1372: ee 0f add r30, r30
+ 1374: bb 0f add r27, r27
+ 1376: 66 1f adc r22, r22
+ 1378: 77 1f adc r23, r23
+ 137a: 88 1f adc r24, r24
+ 137c: 28 f0 brcs .+10 ; 0x1388 <__fp_rempio2+0x2c>
+ 137e: b2 3a cpi r27, 0xA2 ; 162
+ 1380: 62 07 cpc r22, r18
+ 1382: 73 07 cpc r23, r19
+ 1384: 84 07 cpc r24, r20
+ 1386: 28 f0 brcs .+10 ; 0x1392 <__fp_rempio2+0x36>
+ 1388: b2 5a subi r27, 0xA2 ; 162
+ 138a: 62 0b sbc r22, r18
+ 138c: 73 0b sbc r23, r19
+ 138e: 84 0b sbc r24, r20
+ 1390: e3 95 inc r30
+ 1392: 9a 95 dec r25
+ 1394: 72 f7 brpl .-36 ; 0x1372 <__fp_rempio2+0x16>
+ 1396: 80 38 cpi r24, 0x80 ; 128
+ 1398: 30 f4 brcc .+12 ; 0x13a6 <__fp_rempio2+0x4a>
+ 139a: 9a 95 dec r25
+ 139c: bb 0f add r27, r27
+ 139e: 66 1f adc r22, r22
+ 13a0: 77 1f adc r23, r23
+ 13a2: 88 1f adc r24, r24
+ 13a4: d2 f7 brpl .-12 ; 0x139a <__fp_rempio2+0x3e>
+ 13a6: 90 48 sbci r25, 0x80 ; 128
+ 13a8: 9b c0 rjmp .+310 ; 0x14e0 <__fp_mpack_finite>
+
+000013aa <__fp_sinus>:
+ 13aa: ef 93 push r30
+ 13ac: e0 ff sbrs r30, 0
+ 13ae: 06 c0 rjmp .+12 ; 0x13bc <__fp_sinus+0x12>
+ 13b0: a2 ea ldi r26, 0xA2 ; 162
+ 13b2: 2a ed ldi r18, 0xDA ; 218
+ 13b4: 3f e0 ldi r19, 0x0F ; 15
+ 13b6: 49 ec ldi r20, 0xC9 ; 201
+ 13b8: 5f eb ldi r21, 0xBF ; 191
+ 13ba: 37 d0 rcall .+110 ; 0x142a <__addsf3x>
+ 13bc: bf d0 rcall .+382 ; 0x153c <__fp_round>
+ 13be: 0f 90 pop r0
+ 13c0: 03 94 inc r0
+ 13c2: 01 fc sbrc r0, 1
+ 13c4: 90 58 subi r25, 0x80 ; 128
+ 13c6: e8 e6 ldi r30, 0x68 ; 104
+ 13c8: f0 e0 ldi r31, 0x00 ; 0
+ 13ca: 99 c0 rjmp .+306 ; 0x14fe <__fp_powsodd>
+
+000013cc <__fp_split3>:
+ 13cc: 57 fd sbrc r21, 7
+ 13ce: 90 58 subi r25, 0x80 ; 128
+ 13d0: 44 0f add r20, r20
+ 13d2: 55 1f adc r21, r21
+ 13d4: 59 f0 breq .+22 ; 0x13ec <__fp_splitA+0x10>
+ 13d6: 5f 3f cpi r21, 0xFF ; 255
+ 13d8: 71 f0 breq .+28 ; 0x13f6 <__fp_splitA+0x1a>
+ 13da: 47 95 ror r20
+
+000013dc <__fp_splitA>:
+ 13dc: 88 0f add r24, r24
+ 13de: 97 fb bst r25, 7
+ 13e0: 99 1f adc r25, r25
+ 13e2: 61 f0 breq .+24 ; 0x13fc <__fp_splitA+0x20>
+ 13e4: 9f 3f cpi r25, 0xFF ; 255
+ 13e6: 79 f0 breq .+30 ; 0x1406 <__fp_splitA+0x2a>
+ 13e8: 87 95 ror r24
+ 13ea: 08 95 ret
+ 13ec: 12 16 cp r1, r18
+ 13ee: 13 06 cpc r1, r19
+ 13f0: 14 06 cpc r1, r20
+ 13f2: 55 1f adc r21, r21
+ 13f4: f2 cf rjmp .-28 ; 0x13da <__fp_split3+0xe>
+ 13f6: 46 95 lsr r20
+ 13f8: f1 df rcall .-30 ; 0x13dc <__fp_splitA>
+ 13fa: 08 c0 rjmp .+16 ; 0x140c <__fp_splitA+0x30>
+ 13fc: 16 16 cp r1, r22
+ 13fe: 17 06 cpc r1, r23
+ 1400: 18 06 cpc r1, r24
+ 1402: 99 1f adc r25, r25
+ 1404: f1 cf rjmp .-30 ; 0x13e8 <__fp_splitA+0xc>
+ 1406: 86 95 lsr r24
+ 1408: 71 05 cpc r23, r1
+ 140a: 61 05 cpc r22, r1
+ 140c: 08 94 sec
+ 140e: 08 95 ret
+ 1410: 87 d0 rcall .+270 ; 0x1520 <__fp_pscA>
+ 1412: 30 f0 brcs .+12 ; 0x1420 <__fp_splitA+0x44>
+ 1414: 8c d0 rcall .+280 ; 0x152e <__fp_pscB>
+ 1416: 20 f0 brcs .+8 ; 0x1420 <__fp_splitA+0x44>
+ 1418: 31 f4 brne .+12 ; 0x1426 <__fp_splitA+0x4a>
+ 141a: 9f 3f cpi r25, 0xFF ; 255
+ 141c: 11 f4 brne .+4 ; 0x1422 <__fp_splitA+0x46>
+ 141e: 1e f4 brtc .+6 ; 0x1426 <__fp_splitA+0x4a>
+ 1420: 6b c0 rjmp .+214 ; 0x14f8 <__fp_nan>
+ 1422: 0e f4 brtc .+2 ; 0x1426 <__fp_splitA+0x4a>
+ 1424: e0 95 com r30
+ 1426: e7 fb bst r30, 7
+ 1428: 53 c0 rjmp .+166 ; 0x14d0 <__fp_inf>
+
+0000142a <__addsf3x>:
+ 142a: e9 2f mov r30, r25
+ 142c: cf df rcall .-98 ; 0x13cc <__fp_split3>
+ 142e: 80 f3 brcs .-32 ; 0x1410 <__fp_splitA+0x34>
+ 1430: ba 17 cp r27, r26
+ 1432: 62 07 cpc r22, r18
+ 1434: 73 07 cpc r23, r19
+ 1436: 84 07 cpc r24, r20
+ 1438: 95 07 cpc r25, r21
+ 143a: 18 f0 brcs .+6 ; 0x1442 <__addsf3x+0x18>
+ 143c: 71 f4 brne .+28 ; 0x145a <__addsf3x+0x30>
+ 143e: 9e f5 brtc .+102 ; 0x14a6 <__addsf3x+0x7c>
+ 1440: 8e c0 rjmp .+284 ; 0x155e <__fp_zero>
+ 1442: 0e f4 brtc .+2 ; 0x1446 <__addsf3x+0x1c>
+ 1444: e0 95 com r30
+ 1446: 0b 2e mov r0, r27
+ 1448: ba 2f mov r27, r26
+ 144a: a0 2d mov r26, r0
+ 144c: 0b 01 movw r0, r22
+ 144e: b9 01 movw r22, r18
+ 1450: 90 01 movw r18, r0
+ 1452: 0c 01 movw r0, r24
+ 1454: ca 01 movw r24, r20
+ 1456: a0 01 movw r20, r0
+ 1458: 11 24 eor r1, r1
+ 145a: ff 27 eor r31, r31
+ 145c: 59 1b sub r21, r25
+ 145e: 99 f0 breq .+38 ; 0x1486 <__addsf3x+0x5c>
+ 1460: 59 3f cpi r21, 0xF9 ; 249
+ 1462: 50 f4 brcc .+20 ; 0x1478 <__addsf3x+0x4e>
+ 1464: 50 3e cpi r21, 0xE0 ; 224
+ 1466: 68 f1 brcs .+90 ; 0x14c2 <__addsf3x+0x98>
+ 1468: 1a 16 cp r1, r26
+ 146a: f0 40 sbci r31, 0x00 ; 0
+ 146c: a2 2f mov r26, r18
+ 146e: 23 2f mov r18, r19
+ 1470: 34 2f mov r19, r20
+ 1472: 44 27 eor r20, r20
+ 1474: 58 5f subi r21, 0xF8 ; 248
+ 1476: f3 cf rjmp .-26 ; 0x145e <__addsf3x+0x34>
+ 1478: 46 95 lsr r20
+ 147a: 37 95 ror r19
+ 147c: 27 95 ror r18
+ 147e: a7 95 ror r26
+ 1480: f0 40 sbci r31, 0x00 ; 0
+ 1482: 53 95 inc r21
+ 1484: c9 f7 brne .-14 ; 0x1478 <__addsf3x+0x4e>
+ 1486: 7e f4 brtc .+30 ; 0x14a6 <__addsf3x+0x7c>
+ 1488: 1f 16 cp r1, r31
+ 148a: ba 0b sbc r27, r26
+ 148c: 62 0b sbc r22, r18
+ 148e: 73 0b sbc r23, r19
+ 1490: 84 0b sbc r24, r20
+ 1492: ba f0 brmi .+46 ; 0x14c2 <__addsf3x+0x98>
+ 1494: 91 50 subi r25, 0x01 ; 1
+ 1496: a1 f0 breq .+40 ; 0x14c0 <__addsf3x+0x96>
+ 1498: ff 0f add r31, r31
+ 149a: bb 1f adc r27, r27
+ 149c: 66 1f adc r22, r22
+ 149e: 77 1f adc r23, r23
+ 14a0: 88 1f adc r24, r24
+ 14a2: c2 f7 brpl .-16 ; 0x1494 <__addsf3x+0x6a>
+ 14a4: 0e c0 rjmp .+28 ; 0x14c2 <__addsf3x+0x98>
+ 14a6: ba 0f add r27, r26
+ 14a8: 62 1f adc r22, r18
+ 14aa: 73 1f adc r23, r19
+ 14ac: 84 1f adc r24, r20
+ 14ae: 48 f4 brcc .+18 ; 0x14c2 <__addsf3x+0x98>
+ 14b0: 87 95 ror r24
+ 14b2: 77 95 ror r23
+ 14b4: 67 95 ror r22
+ 14b6: b7 95 ror r27
+ 14b8: f7 95 ror r31
+ 14ba: 9e 3f cpi r25, 0xFE ; 254
+ 14bc: 08 f0 brcs .+2 ; 0x14c0 <__addsf3x+0x96>
+ 14be: b3 cf rjmp .-154 ; 0x1426 <__fp_splitA+0x4a>
+ 14c0: 93 95 inc r25
+ 14c2: 88 0f add r24, r24
+ 14c4: 08 f0 brcs .+2 ; 0x14c8 <__addsf3x+0x9e>
+ 14c6: 99 27 eor r25, r25
+ 14c8: ee 0f add r30, r30
+ 14ca: 97 95 ror r25
+ 14cc: 87 95 ror r24
+ 14ce: 08 95 ret
+
+000014d0 <__fp_inf>:
+ 14d0: 97 f9 bld r25, 7
+ 14d2: 9f 67 ori r25, 0x7F ; 127
+ 14d4: 80 e8 ldi r24, 0x80 ; 128
+ 14d6: 70 e0 ldi r23, 0x00 ; 0
+ 14d8: 60 e0 ldi r22, 0x00 ; 0
+ 14da: 08 95 ret
+
+000014dc <__fp_mpack>:
+ 14dc: 9f 3f cpi r25, 0xFF ; 255
+ 14de: 31 f0 breq .+12 ; 0x14ec <__fp_mpack_finite+0xc>
+
+000014e0 <__fp_mpack_finite>:
+ 14e0: 91 50 subi r25, 0x01 ; 1
+ 14e2: 20 f4 brcc .+8 ; 0x14ec <__fp_mpack_finite+0xc>
+ 14e4: 87 95 ror r24
+ 14e6: 77 95 ror r23
+ 14e8: 67 95 ror r22
+ 14ea: b7 95 ror r27
+ 14ec: 88 0f add r24, r24
+ 14ee: 91 1d adc r25, r1
+ 14f0: 96 95 lsr r25
+ 14f2: 87 95 ror r24
+ 14f4: 97 f9 bld r25, 7
+ 14f6: 08 95 ret
+
+000014f8 <__fp_nan>:
+ 14f8: 9f ef ldi r25, 0xFF ; 255
+ 14fa: 80 ec ldi r24, 0xC0 ; 192
+ 14fc: 08 95 ret
+
+000014fe <__fp_powsodd>:
+ 14fe: 9f 93 push r25
+ 1500: 8f 93 push r24
+ 1502: 7f 93 push r23
+ 1504: 6f 93 push r22
+ 1506: ff 93 push r31
+ 1508: ef 93 push r30
+ 150a: 9b 01 movw r18, r22
+ 150c: ac 01 movw r20, r24
+ 150e: 4d db rcall .-2406 ; 0xbaa <__mulsf3>
+ 1510: ef 91 pop r30
+ 1512: ff 91 pop r31
+ 1514: 2b d0 rcall .+86 ; 0x156c <__fp_powser>
+ 1516: 2f 91 pop r18
+ 1518: 3f 91 pop r19
+ 151a: 4f 91 pop r20
+ 151c: 5f 91 pop r21
+ 151e: 45 cb rjmp .-2422 ; 0xbaa <__mulsf3>
+
+00001520 <__fp_pscA>:
+ 1520: 00 24 eor r0, r0
+ 1522: 0a 94 dec r0
+ 1524: 16 16 cp r1, r22
+ 1526: 17 06 cpc r1, r23
+ 1528: 18 06 cpc r1, r24
+ 152a: 09 06 cpc r0, r25
+ 152c: 08 95 ret
+
+0000152e <__fp_pscB>:
+ 152e: 00 24 eor r0, r0
+ 1530: 0a 94 dec r0
+ 1532: 12 16 cp r1, r18
+ 1534: 13 06 cpc r1, r19
+ 1536: 14 06 cpc r1, r20
+ 1538: 05 06 cpc r0, r21
+ 153a: 08 95 ret
+
+0000153c <__fp_round>:
+ 153c: 09 2e mov r0, r25
+ 153e: 03 94 inc r0
+ 1540: 00 0c add r0, r0
+ 1542: 11 f4 brne .+4 ; 0x1548 <__fp_round+0xc>
+ 1544: 88 23 and r24, r24
+ 1546: 52 f0 brmi .+20 ; 0x155c <__fp_round+0x20>
+ 1548: bb 0f add r27, r27
+ 154a: 40 f4 brcc .+16 ; 0x155c <__fp_round+0x20>
+ 154c: bf 2b or r27, r31
+ 154e: 11 f4 brne .+4 ; 0x1554 <__fp_round+0x18>
+ 1550: 60 ff sbrs r22, 0
+ 1552: 04 c0 rjmp .+8 ; 0x155c <__fp_round+0x20>
+ 1554: 6f 5f subi r22, 0xFF ; 255
+ 1556: 7f 4f sbci r23, 0xFF ; 255
+ 1558: 8f 4f sbci r24, 0xFF ; 255
+ 155a: 9f 4f sbci r25, 0xFF ; 255
+ 155c: 08 95 ret
+
+0000155e <__fp_zero>:
+ 155e: e8 94 clt
+
+00001560 <__fp_szero>:
+ 1560: bb 27 eor r27, r27
+ 1562: 66 27 eor r22, r22
+ 1564: 77 27 eor r23, r23
+ 1566: cb 01 movw r24, r22
+ 1568: 97 f9 bld r25, 7
+ 156a: 08 95 ret
+
+0000156c <__fp_powser>:
+ 156c: df 93 push r29
+ 156e: cf 93 push r28
+ 1570: 1f 93 push r17
+ 1572: 0f 93 push r16
+ 1574: ff 92 push r15
+ 1576: ef 92 push r14
+ 1578: df 92 push r13
+ 157a: 7b 01 movw r14, r22
+ 157c: 8c 01 movw r16, r24
+ 157e: 68 94 set
+ 1580: 05 c0 rjmp .+10 ; 0x158c <__fp_powser+0x20>
+ 1582: da 2e mov r13, r26
+ 1584: ef 01 movw r28, r30
+ 1586: 21 d0 rcall .+66 ; 0x15ca <__mulsf3x>
+ 1588: fe 01 movw r30, r28
+ 158a: e8 94 clt
+ 158c: a5 91 lpm r26, Z+
+ 158e: 25 91 lpm r18, Z+
+ 1590: 35 91 lpm r19, Z+
+ 1592: 45 91 lpm r20, Z+
+ 1594: 55 91 lpm r21, Z+
+ 1596: ae f3 brts .-22 ; 0x1582 <__fp_powser+0x16>
+ 1598: ef 01 movw r28, r30
+ 159a: 47 df rcall .-370 ; 0x142a <__addsf3x>
+ 159c: fe 01 movw r30, r28
+ 159e: 97 01 movw r18, r14
+ 15a0: a8 01 movw r20, r16
+ 15a2: da 94 dec r13
+ 15a4: 79 f7 brne .-34 ; 0x1584 <__fp_powser+0x18>
+ 15a6: df 90 pop r13
+ 15a8: ef 90 pop r14
+ 15aa: ff 90 pop r15
+ 15ac: 0f 91 pop r16
+ 15ae: 1f 91 pop r17
+ 15b0: cf 91 pop r28
+ 15b2: df 91 pop r29
+ 15b4: 08 95 ret
+ 15b6: b4 df rcall .-152 ; 0x1520 <__fp_pscA>
+ 15b8: 28 f0 brcs .+10 ; 0x15c4 <__fp_powser+0x58>
+ 15ba: b9 df rcall .-142 ; 0x152e <__fp_pscB>
+ 15bc: 18 f0 brcs .+6 ; 0x15c4 <__fp_powser+0x58>
+ 15be: 95 23 and r25, r21
+ 15c0: 09 f0 breq .+2 ; 0x15c4 <__fp_powser+0x58>
+ 15c2: 86 cf rjmp .-244 ; 0x14d0 <__fp_inf>
+ 15c4: 99 cf rjmp .-206 ; 0x14f8 <__fp_nan>
+ 15c6: 11 24 eor r1, r1
+ 15c8: cb cf rjmp .-106 ; 0x1560 <__fp_szero>
+
+000015ca <__mulsf3x>:
+ 15ca: 00 df rcall .-512 ; 0x13cc <__fp_split3>
+ 15cc: a0 f3 brcs .-24 ; 0x15b6 <__fp_powser+0x4a>
+
+000015ce <__mulsf3_pse>:
+ 15ce: 95 9f mul r25, r21
+ 15d0: d1 f3 breq .-12 ; 0x15c6 <__fp_powser+0x5a>
+ 15d2: 95 0f add r25, r21
+ 15d4: 50 e0 ldi r21, 0x00 ; 0
+ 15d6: 55 1f adc r21, r21
+ 15d8: 62 9f mul r22, r18
+ 15da: f0 01 movw r30, r0
+ 15dc: 72 9f mul r23, r18
+ 15de: bb 27 eor r27, r27
+ 15e0: f0 0d add r31, r0
+ 15e2: b1 1d adc r27, r1
+ 15e4: 63 9f mul r22, r19
+ 15e6: aa 27 eor r26, r26
+ 15e8: f0 0d add r31, r0
+ 15ea: b1 1d adc r27, r1
+ 15ec: aa 1f adc r26, r26
+ 15ee: 64 9f mul r22, r20
+ 15f0: 66 27 eor r22, r22
+ 15f2: b0 0d add r27, r0
+ 15f4: a1 1d adc r26, r1
+ 15f6: 66 1f adc r22, r22
+ 15f8: 82 9f mul r24, r18
+ 15fa: 22 27 eor r18, r18
+ 15fc: b0 0d add r27, r0
+ 15fe: a1 1d adc r26, r1
+ 1600: 62 1f adc r22, r18
+ 1602: 73 9f mul r23, r19
+ 1604: b0 0d add r27, r0
+ 1606: a1 1d adc r26, r1
+ 1608: 62 1f adc r22, r18
+ 160a: 83 9f mul r24, r19
+ 160c: a0 0d add r26, r0
+ 160e: 61 1d adc r22, r1
+ 1610: 22 1f adc r18, r18
+ 1612: 74 9f mul r23, r20
+ 1614: 33 27 eor r19, r19
+ 1616: a0 0d add r26, r0
+ 1618: 61 1d adc r22, r1
+ 161a: 23 1f adc r18, r19
+ 161c: 84 9f mul r24, r20
+ 161e: 60 0d add r22, r0
+ 1620: 21 1d adc r18, r1
+ 1622: 82 2f mov r24, r18
+ 1624: 76 2f mov r23, r22
+ 1626: 6a 2f mov r22, r26
+ 1628: 11 24 eor r1, r1
+ 162a: 9f 57 subi r25, 0x7F ; 127
+ 162c: 50 40 sbci r21, 0x00 ; 0
+ 162e: 8a f0 brmi .+34 ; 0x1652 <__mulsf3_pse+0x84>
+ 1630: e1 f0 breq .+56 ; 0x166a <__mulsf3_pse+0x9c>
+ 1632: 88 23 and r24, r24
+ 1634: 4a f0 brmi .+18 ; 0x1648 <__mulsf3_pse+0x7a>
+ 1636: ee 0f add r30, r30
+ 1638: ff 1f adc r31, r31
+ 163a: bb 1f adc r27, r27
+ 163c: 66 1f adc r22, r22
+ 163e: 77 1f adc r23, r23
+ 1640: 88 1f adc r24, r24
+ 1642: 91 50 subi r25, 0x01 ; 1
+ 1644: 50 40 sbci r21, 0x00 ; 0
+ 1646: a9 f7 brne .-22 ; 0x1632 <__mulsf3_pse+0x64>
+ 1648: 9e 3f cpi r25, 0xFE ; 254
+ 164a: 51 05 cpc r21, r1
+ 164c: 70 f0 brcs .+28 ; 0x166a <__mulsf3_pse+0x9c>
+ 164e: 40 cf rjmp .-384 ; 0x14d0 <__fp_inf>
+ 1650: 87 cf rjmp .-242 ; 0x1560 <__fp_szero>
+ 1652: 5f 3f cpi r21, 0xFF ; 255
+ 1654: ec f3 brlt .-6 ; 0x1650 <__mulsf3_pse+0x82>
+ 1656: 98 3e cpi r25, 0xE8 ; 232
+ 1658: dc f3 brlt .-10 ; 0x1650 <__mulsf3_pse+0x82>
+ 165a: 86 95 lsr r24
+ 165c: 77 95 ror r23
+ 165e: 67 95 ror r22
+ 1660: b7 95 ror r27
+ 1662: f7 95 ror r31
+ 1664: e7 95 ror r30
+ 1666: 9f 5f subi r25, 0xFF ; 255
+ 1668: c1 f7 brne .-16 ; 0x165a <__mulsf3_pse+0x8c>
+ 166a: fe 2b or r31, r30
+ 166c: 88 0f add r24, r24
+ 166e: 91 1d adc r25, r1
+ 1670: 96 95 lsr r25
+ 1672: 87 95 ror r24
+ 1674: 97 f9 bld r25, 7
+ 1676: 08 95 ret
+
+00001678 <_exit>:
+ 1678: f8 94 cli
+
+0000167a <__stop_program>:
+ 167a: ff cf rjmp .-2 ; 0x167a <__stop_program>
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf.map b/electic_streaming328p/bin/Debug/electic_streaming.elf.map
new file mode 100644
index 0000000..e2bdc40
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.map
@@ -0,0 +1,913 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o (Serial)
+../arduino_libs/core0022_328p.a(Print.cpp.o)
+ obj/Debug/main.o (_ZN5Print7printlnEPKc)
+../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o) (beginSerial)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ obj/Debug/main.o (__divmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ obj/Debug/main.o (__do_copy_data)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ obj/Debug/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o) (__do_global_ctors)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Debug/main.o (__addsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ obj/Debug/main.o (__mulsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Debug/main.o (__divsf3)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ obj/Debug/main.o (__fixsfsi)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Debug/main.o (sin)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o) (__fp_rempio2)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o) (__fp_sinus)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_splitA)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__addsf3x)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_mpack_finite)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_nan)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_powsodd)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_round)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o) (__fp_powser)
+/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o) (__mulsf3x)
+
+Allocating common symbols
+Common symbol size file
+
+rx_buffer 0x80 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+fuse 0x00820000 0x00000400 rw !x
+lock 0x00830000 0x00000400 rw !x
+signature 0x00840000 0x00000400 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x167c
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ .progmem.gcc_fplib
+ 0x00000068 0x1e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ *(.progmem*)
+ 0x00000086 . = ALIGN (0x2)
+ 0x00000086 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x00000086 0x0 linker stubs
+ *(.trampolines*)
+ 0x00000086 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x00000086 __ctors_start = .
+ *(.ctors)
+ .ctors 0x00000086 0x2 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x00000088 __ctors_end = .
+ 0x00000088 __dtors_start = .
+ *(.dtors)
+ 0x00000088 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x00000088 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x00000088 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000088 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000094 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ 0x00000094 __do_copy_data
+ .init4 0x000000aa 0x10 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ 0x000000aa __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000ba 0x16 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ 0x000000ba __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000d0 0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000d8 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ 0x000000d8 __vector_22
+ 0x000000d8 __vector_1
+ 0x000000d8 __vector_24
+ 0x000000d8 __vector_12
+ 0x000000d8 __bad_interrupt
+ 0x000000d8 __vector_6
+ 0x000000d8 __vector_3
+ 0x000000d8 __vector_23
+ 0x000000d8 __vector_25
+ 0x000000d8 __vector_13
+ 0x000000d8 __vector_17
+ 0x000000d8 __vector_19
+ 0x000000d8 __vector_7
+ 0x000000d8 __vector_5
+ 0x000000d8 __vector_4
+ 0x000000d8 __vector_9
+ 0x000000d8 __vector_2
+ 0x000000d8 __vector_21
+ 0x000000d8 __vector_15
+ 0x000000d8 __vector_8
+ 0x000000d8 __vector_14
+ 0x000000d8 __vector_10
+ 0x000000d8 __vector_16
+ 0x000000d8 __vector_20
+ .text 0x000000dc 0x2c0 obj/Debug/main.o
+ 0x000000dc _Z13fill_sinewavev
+ 0x000001fc main
+ 0x000002ce __vector_11
+ .text 0x0000039c 0x32 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x000003aa _ZN14HardwareSerial5writeEh
+ 0x000003b2 _ZN14HardwareSerial5flushEv
+ 0x000003b8 _ZN14HardwareSerial4readEv
+ 0x000003be _ZN14HardwareSerial9availableEv
+ 0x000003c4 _ZN14HardwareSerial5beginEl
+ .text 0x000003ce 0x31e ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ 0x000003ce _ZN5Print5printEh
+ 0x000003de _ZN5Print5printEc
+ 0x000003ee _ZN5Print5printEPKc
+ 0x0000041e _ZN5Print7printlnEv
+ 0x0000044c _ZN5Print7printlnEc
+ 0x0000046c _ZN5Print7printlnEPKc
+ 0x00000482 _ZN5Print7printlnEh
+ 0x000004a2 _ZN5Print11printNumberEmh
+ 0x000005d2 _ZN5Print5printEm
+ 0x000005da _ZN5Print7printlnEm
+ 0x000005f0 _ZN5Print5printEj
+ 0x000005fc _ZN5Print7printlnEj
+ 0x00000618 _ZN5Print5printEl
+ 0x00000666 _ZN5Print7printlnEl
+ 0x0000067c _ZN5Print5printEi
+ 0x0000068c _ZN5Print7printlnEi
+ 0x000006ac _ZN5Print5printEli
+ 0x000006d6 _ZN5Print7printlnEli
+ .text 0x000006ec 0x16e ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x000006ec beginSerial
+ 0x0000075e serialWrite
+ 0x0000076e serialAvailable
+ 0x00000790 serialRead
+ 0x000007ce serialFlush
+ 0x000007e0 __vector_18
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000085a 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text 0x0000085a 0x350 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ 0x00000aee __addsf3
+ 0x00000b48 __subsf3
+ .text 0x00000baa 0x1f4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ 0x00000baa __mulsf3
+ .text 0x00000d9e 0x15c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ 0x00000d9e __divsf3
+ .text 0x00000efa 0xa4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ 0x00000efa __fixsfsi
+ .text 0x00000f9e 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00000f9e 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00000f9e 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .text 0x00000f9e 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .text 0x00000f9e 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .text 0x00000f9e 0x19c /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ 0x00000f9e __pack_f
+ .text 0x0000113a 0xd2 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ 0x0000113a __unpack_f
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .text 0x0000120c 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x0000120c . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000120c 0x26 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000120c __divmodhi4
+ 0x0000120c _div
+ .text.libgcc 0x00001232 0x44 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00001232 __udivmodsi4
+ .text.libgcc 0x00001276 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ 0x00001276 __divmodsi4
+ .text.libgcc 0x000012ac 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x000012ac 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x000012ac 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x000012ac 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x000012ac 0x28 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ 0x000012ac __udivmodhi4
+ .text.libgcc 0x000012d4 0x38 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ 0x000012d4 __prologue_saves__
+ .text.libgcc 0x0000130c 0x36 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ 0x0000130c __epilogue_restores__
+ .text.libgcc 0x00001342 0xc /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ 0x00001342 __tablejump2__
+ 0x00001346 __tablejump__
+ .text.avr-libc.fplib
+ 0x0000134e 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x0000134e sin
+ .text.avr-libc.fplib
+ 0x0000135a 0x50 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x0000135c __fp_rempio2
+ .text.avr-libc.fplib
+ 0x000013aa 0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x000013aa __fp_sinus
+ .text.avr-libc.fplib
+ 0x000013cc 0x44 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x000013cc __fp_split3
+ 0x000013dc __fp_splitA
+ .text.avr-libc.fplib
+ 0x00001410 0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x0000142a __addsf3x
+ .text.avr-libc.fplib
+ 0x000014d0 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x000014d0 __fp_inf
+ .text.avr-libc.fplib
+ 0x000014dc 0x1c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0x000014dc __fp_mpack
+ 0x000014e0 __fp_mpack_finite
+ .text.avr-libc.fplib
+ 0x000014f8 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x000014f8 __fp_nan
+ .text.avr-libc.fplib
+ 0x000014fe 0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x000014fe __fp_powsodd
+ .text.avr-libc.fplib
+ 0x00001520 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x00001520 __fp_pscA
+ .text.avr-libc.fplib
+ 0x0000152e 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x0000152e __fp_pscB
+ .text.avr-libc.fplib
+ 0x0000153c 0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x0000153c __fp_round
+ .text.avr-libc.fplib
+ 0x0000155e 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x0000155e __fp_zero
+ 0x00001560 __fp_szero
+ .text.avr-libc.fplib
+ 0x0000156c 0x4a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x0000156c __fp_powser
+ .text.avr-libc.fplib
+ 0x000015b6 0xc2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x000015ca __mulsf3x
+ 0x000015ce __mulsf3_pse
+ 0x00001678 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00001678 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ 0x00001678 exit
+ 0x00001678 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00001678 0x4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x0000167c _etext = .
+
+.data 0x00800100 0x2a load address 0x0000167c
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x1b obj/Debug/main.o
+ .data 0x0080011b 0x6 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x0080011b _ZTV14HardwareSerial
+ .data 0x00800121 0x0 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .data 0x00800121 0x0 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x00800121 0x8 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ 0x00800121 __thenan_sf
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .data 0x00800129 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x0080012a . = ALIGN (0x2)
+ *fill* 0x00800129 0x1 00
+ 0x0080012a _edata = .
+ 0x0080012a PROVIDE (__data_end, .)
+
+.bss 0x0080012a 0x28a
+ 0x0080012a PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x0080012a 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x0080012a 0x204 obj/Debug/main.o
+ 0x0080012a dd
+ 0x0080032a loopCount
+ 0x0080032c sample
+ .bss 0x0080032e 0x2 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x0080032e Serial
+ .bss 0x00800330 0x0 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .bss 0x00800330 0x4 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x00800330 rx_buffer_head
+ 0x00800332 rx_buffer_tail
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .bss 0x00800334 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x00800334 0x80 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x00800334 rx_buffer
+ 0x008003b4 PROVIDE (__bss_end, .)
+ 0x0000167c __data_load_start = LOADADDR (.data)
+ 0x000016a6 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008003b4 0x0
+ 0x008003b4 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008003b4 PROVIDE (__noinit_end, .)
+ 0x008003b4 _end = .
+ 0x008003b4 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x2418
+ *(.stab)
+ .stab 0x00000000 0x6cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006cc 0x72c obj/Debug/main.o
+ 0x738 (size before relaxing)
+ .stab 0x00000df8 0x78 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x84 (size before relaxing)
+ .stab 0x00000e70 0x21c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x228 (size before relaxing)
+ .stab 0x0000108c 0xfc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001188 0x1d4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x1e0 (size before relaxing)
+ .stab 0x0000135c 0x4bc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x4c8 (size before relaxing)
+ .stab 0x00001818 0x78 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x84 (size before relaxing)
+ .stab 0x00001890 0xe4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00001974 0x54 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x60 (size before relaxing)
+ .stab 0x000019c8 0xfc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001ac4 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001b48 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001bcc 0xfc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001cc8 0x90 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x9c (size before relaxing)
+ .stab 0x00001d58 0x1ec /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x1f8 (size before relaxing)
+ .stab 0x00001f44 0x4d4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x4e0 (size before relaxing)
+
+.stabstr 0x00000000 0x1c43
+ *(.stabstr)
+ .stabstr 0x00000000 0x1c43 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges 0x00000000 0x60
+ *(.debug_aranges)
+ .debug_aranges
+ 0x00000000 0x20 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_aranges
+ 0x00000040 0x20 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_pubnames
+ 0x00000000 0x2a7
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0xa2 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_pubnames
+ 0x000000a2 0x15c ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_pubnames
+ 0x000001fe 0xa9 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_info 0x00000000 0xd0b
+ *(.debug_info)
+ .debug_info 0x00000000 0x2f0 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_info 0x000002f0 0x890 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_info 0x00000b80 0x18b ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x3f7
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x18e ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_abbrev 0x0000018e 0x183 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_abbrev 0x00000311 0xe6 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_line 0x00000000 0x689
+ *(.debug_line)
+ .debug_line 0x00000000 0x1b5 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_line 0x000001b5 0x364 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_line 0x00000519 0x170 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_frame 0x00000000 0x210
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x70 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_frame 0x00000070 0x130 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_frame 0x000001a0 0x70 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_str 0x00000000 0x420
+ *(.debug_str)
+ .debug_str 0x00000000 0x1a7 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x203 (size before relaxing)
+ .debug_str 0x000001a7 0x1b9 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ 0x246 (size before relaxing)
+ .debug_str 0x00000360 0xc0 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x12c (size before relaxing)
+
+.debug_loc 0x00000000 0x75a
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xa9 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ .debug_loc 0x000000a9 0x621 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .debug_loc 0x000006ca 0x90 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Debug/electic_streaming.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+HardwareSerial::available() ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::begin(long) ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::flush() ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+HardwareSerial::read() ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::write(unsigned char) ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+Print::print(char const*) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(char) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(long) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(long, int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(unsigned char) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(unsigned int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::print(unsigned long) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::printNumber(unsigned long, unsigned char) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println() ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(char const*) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ obj/Debug/main.o
+Print::println(char) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(long) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(long, int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(unsigned char) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(unsigned int) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Print::println(unsigned long) ../arduino_libs/core0022_328p.a(Print.cpp.o)
+Serial ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+__addsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+ obj/Debug/main.o
+__addsf3x /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__bad_interrupt /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+__ctors_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__data_end /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ obj/Debug/main.o
+__divmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+__divsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ obj/Debug/main.o
+__do_clear_bss /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+__do_copy_data /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+__do_global_ctors /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+__epilogue_restores__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ obj/Debug/main.o
+__fp_inf /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_mpack /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+__fp_mpack_finite /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_nan /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_powser /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+__fp_powsodd /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_pscA /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_pscB /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_rempio2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_round /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_sinus /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_split3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_splitA /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_szero /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__fp_zero /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__mulsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ obj/Debug/main.o
+__mulsf3_pse /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__mulsf3x /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(fp_powser.o)
+__pack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__tablejump2__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o)
+__unpack_f /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_11 obj/Debug/main.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_18 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+beginSerial ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+dd obj/Debug/main.o
+exit /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+fill_sinewave() obj/Debug/main.o
+loopCount obj/Debug/main.o
+main obj/Debug/main.o
+ /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm328p.o
+rx_buffer ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+rx_buffer_head ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+rx_buffer_tail ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+sample obj/Debug/main.o
+serialAvailable ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+serialFlush ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+serialRead ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+serialWrite ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+sin /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Debug/main.o
+vtable for HardwareSerial ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
diff --git a/electic_streaming328p/electic_streaming328p.layout b/electic_streaming328p/electic_streaming328p.layout
index bfa6289..7f7e0e5 100644
--- a/electic_streaming328p/electic_streaming328p.layout
+++ b/electic_streaming328p/electic_streaming328p.layout
@@ -2,6 +2,6 @@
<CodeBlocks_layout_file>
<ActiveTarget name="Debug" />
<File name="main.cpp" open="1" top="1" tabpos="0">
- <Cursor position="442" topLine="44" />
+ <Cursor position="442" topLine="0" />
</File>
</CodeBlocks_layout_file>
diff --git a/electic_streaming328p/obj/Debug/main.o b/electic_streaming328p/obj/Debug/main.o
new file mode 100644
index 0000000..e753470
--- /dev/null
+++ b/electic_streaming328p/obj/Debug/main.o
Binary files differ
diff --git a/hardwarevariants_1_0/eightanaloginputs/pins_arduino.h b/hardwarevariants_1_0/eightanaloginputs/pins_arduino.h
new file mode 100644
index 0000000..52b37ef
--- /dev/null
+++ b/hardwarevariants_1_0/eightanaloginputs/pins_arduino.h
@@ -0,0 +1,27 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#include "../standard/pins_arduino.h"
+#undef NUM_ANALOG_INPUTS
+#define NUM_ANALOG_INPUTS 8
diff --git a/hardwarevariants_1_0/leonardo/pins_arduino.h b/hardwarevariants_1_0/leonardo/pins_arduino.h
new file mode 100644
index 0000000..15afb4e
--- /dev/null
+++ b/hardwarevariants_1_0/leonardo/pins_arduino.h
@@ -0,0 +1,253 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <avr/pgmspace.h>
+
+#define ARDUINO_MODEL_USB_PID 0x0034
+
+#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0)
+#define TXLED0 PORTD |= (1<<5)
+#define TXLED1 PORTD &= ~(1<<5)
+#define RXLED0 PORTB |= (1<<0)
+#define RXLED1 PORTB &= ~(1<<0)
+
+const static uint8_t SDA = 2;
+const static uint8_t SCL = 3;
+
+// Map SPI port to 'new' pins D14..D17
+const static uint8_t SS = 17;
+const static uint8_t MOSI = 16;
+const static uint8_t MISO = 14;
+const static uint8_t SCK = 15;
+
+// Mapping of analog pins as digital I/O
+// A6-A11 share with digital pins
+const static uint8_t A0 = 18;
+const static uint8_t A1 = 19;
+const static uint8_t A2 = 20;
+const static uint8_t A3 = 21;
+const static uint8_t A4 = 22;
+const static uint8_t A5 = 23;
+const static uint8_t A6 = 24; // D4
+const static uint8_t A7 = 25; // D6
+const static uint8_t A8 = 26; // D8
+const static uint8_t A9 = 27; // D9
+const static uint8_t A10 = 28; // D10
+const static uint8_t A11 = 29; // D12
+
+// __AVR_ATmega32U4__ has an unusual mapping of pins to channels
+extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];
+#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )
+
+#ifdef ARDUINO_MAIN
+
+// On the Arduino board, digital pins are also used
+// for the analog output (software PWM). Analog input
+// pins are a separate set.
+
+// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
+//
+// D0 PD2 RXD1/INT2
+// D1 PD3 TXD1/INT3
+// D2 PD1 SDA SDA/INT1
+// D3# PD0 PWM8/SCL OC0B/SCL/INT0
+// D4 A6 PD4 ADC8
+// D5# PC6 ??? OC3A/#OC4A
+// D6# A7 PD7 FastPWM #OC4D/ADC10
+// D7 PE6 INT6/AIN0
+//
+// D8 A8 PB4 ADC11/PCINT4
+// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5
+// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6
+// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7
+// D12 A11 PD6 T1/#OC4D/ADC9
+// D13# PC7 PWM10 CLK0/OC4A
+//
+// A0 D18 PF7 ADC7
+// A1 D19 PF6 ADC6
+// A2 D20 PF5 ADC5
+// A3 D21 PF4 ADC4
+// A4 D22 PF1 ADC1
+// A5 D23 PF0 ADC0
+//
+// New pins D14..D17 to map SPI port to digital pins
+//
+// MISO D14 PB3 MISO,PCINT3
+// SCK D15 PB1 SCK,PCINT1
+// MOSI D16 PB2 MOSI,PCINT2
+// SS D17 PB0 RXLED,SS/PCINT0
+//
+// TXLED PD5
+// RXLED PB0
+// HWB PE2 HWB
+
+// these arrays map port names (e.g. port B) to the
+// appropriate addresses for various functions (e.g. reading
+// and writing)
+const uint16_t PROGMEM port_to_mode_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &DDRB,
+ (uint16_t) &DDRC,
+ (uint16_t) &DDRD,
+ (uint16_t) &DDRE,
+ (uint16_t) &DDRF,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PORTB,
+ (uint16_t) &PORTC,
+ (uint16_t) &PORTD,
+ (uint16_t) &PORTE,
+ (uint16_t) &PORTF,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PINB,
+ (uint16_t) &PINC,
+ (uint16_t) &PIND,
+ (uint16_t) &PINE,
+ (uint16_t) &PINF,
+};
+
+const uint8_t PROGMEM digital_pin_to_port_PGM[30] = {
+ PD, // D0 - PD2
+ PD, // D1 - PD3
+ PD, // D2 - PD1
+ PD, // D3 - PD0
+ PD, // D4 - PD4
+ PC, // D5 - PC6
+ PD, // D6 - PD7
+ PE, // D7 - PE6
+
+ PB, // D8 - PB4
+ PB, // D9 - PB5
+ PB, // D10 - PB6
+ PB, // D11 - PB7
+ PD, // D12 - PD6
+ PC, // D13 - PC7
+
+ PB, // D14 - MISO - PB3
+ PB, // D15 - SCK - PB1
+ PB, // D16 - MOSI - PB2
+ PB, // D17 - SS - PB0
+
+ PF, // D18 - A0 - PF7
+ PF, // D19 - A1 - PF6
+ PF, // D20 - A2 - PF5
+ PF, // D21 - A3 - PF4
+ PF, // D22 - A4 - PF1
+ PF, // D23 - A5 - PF0
+
+ PD, // D24 / D4 - A6 - PD4
+ PD, // D25 / D6 - A7 - PD7
+ PB, // D26 / D8 - A8 - PB4
+ PB, // D27 / D9 - A9 - PB5
+ PB, // D28 / D10 - A10 - PB6
+ PD, // D29 / D12 - A11 - PD6
+};
+
+const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[30] = {
+ _BV(2), // D0 - PD2
+ _BV(3), // D1 - PD3
+ _BV(1), // D2 - PD1
+ _BV(0), // D3 - PD0
+ _BV(4), // D4 - PD4
+ _BV(6), // D5 - PC6
+ _BV(7), // D6 - PD7
+ _BV(6), // D7 - PE6
+
+ _BV(4), // D8 - PB4
+ _BV(5), // D9 - PB5
+ _BV(6), // D10 - PB6
+ _BV(7), // D11 - PB7
+ _BV(6), // D12 - PD6
+ _BV(7), // D13 - PC7
+
+ _BV(3), // D14 - MISO - PB3
+ _BV(1), // D15 - SCK - PB1
+ _BV(2), // D16 - MOSI - PB2
+ _BV(0), // D17 - SS - PB0
+
+ _BV(7), // D18 - A0 - PF7
+ _BV(6), // D19 - A1 - PF6
+ _BV(5), // D20 - A2 - PF5
+ _BV(4), // D21 - A3 - PF4
+ _BV(1), // D22 - A4 - PF1
+ _BV(0), // D23 - A5 - PF0
+
+ _BV(4), // D24 / D4 - A6 - PD4
+ _BV(7), // D25 / D6 - A7 - PD7
+ _BV(4), // D26 / D8 - A8 - PB4
+ _BV(5), // D27 / D9 - A9 - PB5
+ _BV(6), // D28 / D10 - A10 - PB6
+ _BV(6), // D29 / D12 - A11 - PD6
+};
+
+const uint8_t PROGMEM digital_pin_to_timer_PGM[18] = {
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ TIMER0B, /* 3 */
+ NOT_ON_TIMER,
+ TIMER3A, /* 5 */
+ TIMER4D, /* 6 */
+ NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
+ TIMER1A, /* 9 */
+ TIMER1B, /* 10 */
+ TIMER0A, /* 11 */
+
+ NOT_ON_TIMER,
+ TIMER4A, /* 13 */
+
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+};
+
+const uint8_t PROGMEM analog_pin_to_channel_PGM[12] = {
+ 7, // A0 PF7 ADC7
+ 6, // A1 PF6 ADC6
+ 5, // A2 PF5 ADC5
+ 4, // A3 PF4 ADC4
+ 1, // A4 PF1 ADC1
+ 0, // A5 PF0 ADC0
+ 8, // A6 D4 PD4 ADC8
+ 10, // A7 D6 PD7 ADC10
+ 11, // A8 D8 PB4 ADC11
+ 12, // A9 D9 PB5 ADC12
+ 13, // A10 D10 PB6 ADC13
+ 9 // A11 D12 PD6 ADC9
+};
+
+#endif /* ARDUINO_MAIN */
+#endif /* Pins_Arduino_h */
diff --git a/hardwarevariants_1_0/mega/pins_arduino.h b/hardwarevariants_1_0/mega/pins_arduino.h
new file mode 100644
index 0000000..57ec97f
--- /dev/null
+++ b/hardwarevariants_1_0/mega/pins_arduino.h
@@ -0,0 +1,363 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <avr/pgmspace.h>
+
+#define NUM_DIGITAL_PINS 70
+#define NUM_ANALOG_INPUTS 16
+#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1)
+#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46))
+
+const static uint8_t SS = 53;
+const static uint8_t MOSI = 51;
+const static uint8_t MISO = 50;
+const static uint8_t SCK = 52;
+
+const static uint8_t SDA = 20;
+const static uint8_t SCL = 21;
+const static uint8_t LED_BUILTIN = 13;
+
+const static uint8_t A0 = 54;
+const static uint8_t A1 = 55;
+const static uint8_t A2 = 56;
+const static uint8_t A3 = 57;
+const static uint8_t A4 = 58;
+const static uint8_t A5 = 59;
+const static uint8_t A6 = 60;
+const static uint8_t A7 = 61;
+const static uint8_t A8 = 62;
+const static uint8_t A9 = 63;
+const static uint8_t A10 = 64;
+const static uint8_t A11 = 65;
+const static uint8_t A12 = 66;
+const static uint8_t A13 = 67;
+const static uint8_t A14 = 68;
+const static uint8_t A15 = 69;
+
+// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins)
+// Only pins available for RECEIVE (TRANSMIT can be on any pin):
+// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me)
+// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
+
+#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \
+ (((p) >= 50) && ((p) <= 53)) || \
+ (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) )
+
+#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \
+ ( (((p) >= 62) && ((p) <= 69)) ? 2 : \
+ 0 ) )
+
+#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \
+ ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \
+ ((uint8_t *)0) ) )
+
+#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \
+ ( ((p) == 50) ? 3 : \
+ ( ((p) == 51) ? 2 : \
+ ( ((p) == 52) ? 1 : \
+ ( ((p) == 53) ? 0 : \
+ ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \
+ 0 ) ) ) ) ) )
+
+#ifdef ARDUINO_MAIN
+
+const uint16_t PROGMEM port_to_mode_PGM[] = {
+ NOT_A_PORT,
+ (uint16_t) &DDRA,
+ (uint16_t) &DDRB,
+ (uint16_t) &DDRC,
+ (uint16_t) &DDRD,
+ (uint16_t) &DDRE,
+ (uint16_t) &DDRF,
+ (uint16_t) &DDRG,
+ (uint16_t) &DDRH,
+ NOT_A_PORT,
+ (uint16_t) &DDRJ,
+ (uint16_t) &DDRK,
+ (uint16_t) &DDRL,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ (uint16_t) &PORTA,
+ (uint16_t) &PORTB,
+ (uint16_t) &PORTC,
+ (uint16_t) &PORTD,
+ (uint16_t) &PORTE,
+ (uint16_t) &PORTF,
+ (uint16_t) &PORTG,
+ (uint16_t) &PORTH,
+ NOT_A_PORT,
+ (uint16_t) &PORTJ,
+ (uint16_t) &PORTK,
+ (uint16_t) &PORTL,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PIN,
+ (uint16_t) &PINA,
+ (uint16_t) &PINB,
+ (uint16_t) &PINC,
+ (uint16_t) &PIND,
+ (uint16_t) &PINE,
+ (uint16_t) &PINF,
+ (uint16_t) &PING,
+ (uint16_t) &PINH,
+ NOT_A_PIN,
+ (uint16_t) &PINJ,
+ (uint16_t) &PINK,
+ (uint16_t) &PINL,
+};
+
+const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
+ // PORTLIST
+ // -------------------------------------------
+ PE , // PE 0 ** 0 ** USART0_RX
+ PE , // PE 1 ** 1 ** USART0_TX
+ PE , // PE 4 ** 2 ** PWM2
+ PE , // PE 5 ** 3 ** PWM3
+ PG , // PG 5 ** 4 ** PWM4
+ PE , // PE 3 ** 5 ** PWM5
+ PH , // PH 3 ** 6 ** PWM6
+ PH , // PH 4 ** 7 ** PWM7
+ PH , // PH 5 ** 8 ** PWM8
+ PH , // PH 6 ** 9 ** PWM9
+ PB , // PB 4 ** 10 ** PWM10
+ PB , // PB 5 ** 11 ** PWM11
+ PB , // PB 6 ** 12 ** PWM12
+ PB , // PB 7 ** 13 ** PWM13
+ PJ , // PJ 1 ** 14 ** USART3_TX
+ PJ , // PJ 0 ** 15 ** USART3_RX
+ PH , // PH 1 ** 16 ** USART2_TX
+ PH , // PH 0 ** 17 ** USART2_RX
+ PD , // PD 3 ** 18 ** USART1_TX
+ PD , // PD 2 ** 19 ** USART1_RX
+ PD , // PD 1 ** 20 ** I2C_SDA
+ PD , // PD 0 ** 21 ** I2C_SCL
+ PA , // PA 0 ** 22 ** D22
+ PA , // PA 1 ** 23 ** D23
+ PA , // PA 2 ** 24 ** D24
+ PA , // PA 3 ** 25 ** D25
+ PA , // PA 4 ** 26 ** D26
+ PA , // PA 5 ** 27 ** D27
+ PA , // PA 6 ** 28 ** D28
+ PA , // PA 7 ** 29 ** D29
+ PC , // PC 7 ** 30 ** D30
+ PC , // PC 6 ** 31 ** D31
+ PC , // PC 5 ** 32 ** D32
+ PC , // PC 4 ** 33 ** D33
+ PC , // PC 3 ** 34 ** D34
+ PC , // PC 2 ** 35 ** D35
+ PC , // PC 1 ** 36 ** D36
+ PC , // PC 0 ** 37 ** D37
+ PD , // PD 7 ** 38 ** D38
+ PG , // PG 2 ** 39 ** D39
+ PG , // PG 1 ** 40 ** D40
+ PG , // PG 0 ** 41 ** D41
+ PL , // PL 7 ** 42 ** D42
+ PL , // PL 6 ** 43 ** D43
+ PL , // PL 5 ** 44 ** D44
+ PL , // PL 4 ** 45 ** D45
+ PL , // PL 3 ** 46 ** D46
+ PL , // PL 2 ** 47 ** D47
+ PL , // PL 1 ** 48 ** D48
+ PL , // PL 0 ** 49 ** D49
+ PB , // PB 3 ** 50 ** SPI_MISO
+ PB , // PB 2 ** 51 ** SPI_MOSI
+ PB , // PB 1 ** 52 ** SPI_SCK
+ PB , // PB 0 ** 53 ** SPI_SS
+ PF , // PF 0 ** 54 ** A0
+ PF , // PF 1 ** 55 ** A1
+ PF , // PF 2 ** 56 ** A2
+ PF , // PF 3 ** 57 ** A3
+ PF , // PF 4 ** 58 ** A4
+ PF , // PF 5 ** 59 ** A5
+ PF , // PF 6 ** 60 ** A6
+ PF , // PF 7 ** 61 ** A7
+ PK , // PK 0 ** 62 ** A8
+ PK , // PK 1 ** 63 ** A9
+ PK , // PK 2 ** 64 ** A10
+ PK , // PK 3 ** 65 ** A11
+ PK , // PK 4 ** 66 ** A12
+ PK , // PK 5 ** 67 ** A13
+ PK , // PK 6 ** 68 ** A14
+ PK , // PK 7 ** 69 ** A15
+};
+
+const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
+ // PIN IN PORT
+ // -------------------------------------------
+ _BV( 0 ) , // PE 0 ** 0 ** USART0_RX
+ _BV( 1 ) , // PE 1 ** 1 ** USART0_TX
+ _BV( 4 ) , // PE 4 ** 2 ** PWM2
+ _BV( 5 ) , // PE 5 ** 3 ** PWM3
+ _BV( 5 ) , // PG 5 ** 4 ** PWM4
+ _BV( 3 ) , // PE 3 ** 5 ** PWM5
+ _BV( 3 ) , // PH 3 ** 6 ** PWM6
+ _BV( 4 ) , // PH 4 ** 7 ** PWM7
+ _BV( 5 ) , // PH 5 ** 8 ** PWM8
+ _BV( 6 ) , // PH 6 ** 9 ** PWM9
+ _BV( 4 ) , // PB 4 ** 10 ** PWM10
+ _BV( 5 ) , // PB 5 ** 11 ** PWM11
+ _BV( 6 ) , // PB 6 ** 12 ** PWM12
+ _BV( 7 ) , // PB 7 ** 13 ** PWM13
+ _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX
+ _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX
+ _BV( 1 ) , // PH 1 ** 16 ** USART2_TX
+ _BV( 0 ) , // PH 0 ** 17 ** USART2_RX
+ _BV( 3 ) , // PD 3 ** 18 ** USART1_TX
+ _BV( 2 ) , // PD 2 ** 19 ** USART1_RX
+ _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA
+ _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL
+ _BV( 0 ) , // PA 0 ** 22 ** D22
+ _BV( 1 ) , // PA 1 ** 23 ** D23
+ _BV( 2 ) , // PA 2 ** 24 ** D24
+ _BV( 3 ) , // PA 3 ** 25 ** D25
+ _BV( 4 ) , // PA 4 ** 26 ** D26
+ _BV( 5 ) , // PA 5 ** 27 ** D27
+ _BV( 6 ) , // PA 6 ** 28 ** D28
+ _BV( 7 ) , // PA 7 ** 29 ** D29
+ _BV( 7 ) , // PC 7 ** 30 ** D30
+ _BV( 6 ) , // PC 6 ** 31 ** D31
+ _BV( 5 ) , // PC 5 ** 32 ** D32
+ _BV( 4 ) , // PC 4 ** 33 ** D33
+ _BV( 3 ) , // PC 3 ** 34 ** D34
+ _BV( 2 ) , // PC 2 ** 35 ** D35
+ _BV( 1 ) , // PC 1 ** 36 ** D36
+ _BV( 0 ) , // PC 0 ** 37 ** D37
+ _BV( 7 ) , // PD 7 ** 38 ** D38
+ _BV( 2 ) , // PG 2 ** 39 ** D39
+ _BV( 1 ) , // PG 1 ** 40 ** D40
+ _BV( 0 ) , // PG 0 ** 41 ** D41
+ _BV( 7 ) , // PL 7 ** 42 ** D42
+ _BV( 6 ) , // PL 6 ** 43 ** D43
+ _BV( 5 ) , // PL 5 ** 44 ** D44
+ _BV( 4 ) , // PL 4 ** 45 ** D45
+ _BV( 3 ) , // PL 3 ** 46 ** D46
+ _BV( 2 ) , // PL 2 ** 47 ** D47
+ _BV( 1 ) , // PL 1 ** 48 ** D48
+ _BV( 0 ) , // PL 0 ** 49 ** D49
+ _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO
+ _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI
+ _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK
+ _BV( 0 ) , // PB 0 ** 53 ** SPI_SS
+ _BV( 0 ) , // PF 0 ** 54 ** A0
+ _BV( 1 ) , // PF 1 ** 55 ** A1
+ _BV( 2 ) , // PF 2 ** 56 ** A2
+ _BV( 3 ) , // PF 3 ** 57 ** A3
+ _BV( 4 ) , // PF 4 ** 58 ** A4
+ _BV( 5 ) , // PF 5 ** 59 ** A5
+ _BV( 6 ) , // PF 6 ** 60 ** A6
+ _BV( 7 ) , // PF 7 ** 61 ** A7
+ _BV( 0 ) , // PK 0 ** 62 ** A8
+ _BV( 1 ) , // PK 1 ** 63 ** A9
+ _BV( 2 ) , // PK 2 ** 64 ** A10
+ _BV( 3 ) , // PK 3 ** 65 ** A11
+ _BV( 4 ) , // PK 4 ** 66 ** A12
+ _BV( 5 ) , // PK 5 ** 67 ** A13
+ _BV( 6 ) , // PK 6 ** 68 ** A14
+ _BV( 7 ) , // PK 7 ** 69 ** A15
+};
+
+const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
+ // TIMERS
+ // -------------------------------------------
+ NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX
+ NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX
+ TIMER3B , // PE 4 ** 2 ** PWM2
+ TIMER3C , // PE 5 ** 3 ** PWM3
+ TIMER0B , // PG 5 ** 4 ** PWM4
+ TIMER3A , // PE 3 ** 5 ** PWM5
+ TIMER4A , // PH 3 ** 6 ** PWM6
+ TIMER4B , // PH 4 ** 7 ** PWM7
+ TIMER4C , // PH 5 ** 8 ** PWM8
+ TIMER2B , // PH 6 ** 9 ** PWM9
+ TIMER2A , // PB 4 ** 10 ** PWM10
+ TIMER1A , // PB 5 ** 11 ** PWM11
+ TIMER1B , // PB 6 ** 12 ** PWM12
+ TIMER0A , // PB 7 ** 13 ** PWM13
+ NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX
+ NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX
+ NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX
+ NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX
+ NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX
+ NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX
+ NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA
+ NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL
+ NOT_ON_TIMER , // PA 0 ** 22 ** D22
+ NOT_ON_TIMER , // PA 1 ** 23 ** D23
+ NOT_ON_TIMER , // PA 2 ** 24 ** D24
+ NOT_ON_TIMER , // PA 3 ** 25 ** D25
+ NOT_ON_TIMER , // PA 4 ** 26 ** D26
+ NOT_ON_TIMER , // PA 5 ** 27 ** D27
+ NOT_ON_TIMER , // PA 6 ** 28 ** D28
+ NOT_ON_TIMER , // PA 7 ** 29 ** D29
+ NOT_ON_TIMER , // PC 7 ** 30 ** D30
+ NOT_ON_TIMER , // PC 6 ** 31 ** D31
+ NOT_ON_TIMER , // PC 5 ** 32 ** D32
+ NOT_ON_TIMER , // PC 4 ** 33 ** D33
+ NOT_ON_TIMER , // PC 3 ** 34 ** D34
+ NOT_ON_TIMER , // PC 2 ** 35 ** D35
+ NOT_ON_TIMER , // PC 1 ** 36 ** D36
+ NOT_ON_TIMER , // PC 0 ** 37 ** D37
+ NOT_ON_TIMER , // PD 7 ** 38 ** D38
+ NOT_ON_TIMER , // PG 2 ** 39 ** D39
+ NOT_ON_TIMER , // PG 1 ** 40 ** D40
+ NOT_ON_TIMER , // PG 0 ** 41 ** D41
+ NOT_ON_TIMER , // PL 7 ** 42 ** D42
+ NOT_ON_TIMER , // PL 6 ** 43 ** D43
+ TIMER5C , // PL 5 ** 44 ** D44
+ TIMER5B , // PL 4 ** 45 ** D45
+ TIMER5A , // PL 3 ** 46 ** D46
+ NOT_ON_TIMER , // PL 2 ** 47 ** D47
+ NOT_ON_TIMER , // PL 1 ** 48 ** D48
+ NOT_ON_TIMER , // PL 0 ** 49 ** D49
+ NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO
+ NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI
+ NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK
+ NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS
+ NOT_ON_TIMER , // PF 0 ** 54 ** A0
+ NOT_ON_TIMER , // PF 1 ** 55 ** A1
+ NOT_ON_TIMER , // PF 2 ** 56 ** A2
+ NOT_ON_TIMER , // PF 3 ** 57 ** A3
+ NOT_ON_TIMER , // PF 4 ** 58 ** A4
+ NOT_ON_TIMER , // PF 5 ** 59 ** A5
+ NOT_ON_TIMER , // PF 6 ** 60 ** A6
+ NOT_ON_TIMER , // PF 7 ** 61 ** A7
+ NOT_ON_TIMER , // PK 0 ** 62 ** A8
+ NOT_ON_TIMER , // PK 1 ** 63 ** A9
+ NOT_ON_TIMER , // PK 2 ** 64 ** A10
+ NOT_ON_TIMER , // PK 3 ** 65 ** A11
+ NOT_ON_TIMER , // PK 4 ** 66 ** A12
+ NOT_ON_TIMER , // PK 5 ** 67 ** A13
+ NOT_ON_TIMER , // PK 6 ** 68 ** A14
+ NOT_ON_TIMER , // PK 7 ** 69 ** A15
+};
+
+#endif
+
+#endif \ No newline at end of file
diff --git a/hardwarevariants_1_0/micro/pins_arduino.h b/hardwarevariants_1_0/micro/pins_arduino.h
new file mode 100644
index 0000000..c9f25eb
--- /dev/null
+++ b/hardwarevariants_1_0/micro/pins_arduino.h
@@ -0,0 +1,27 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#include "../leonardo/pins_arduino.h"
+#undef ARDUINO_MODEL_USB_PID
+#define ARDUINO_MODEL_USB_PID 0x0035 \ No newline at end of file
diff --git a/hardwarevariants_1_0/standard/pins_arduino.h b/hardwarevariants_1_0/standard/pins_arduino.h
new file mode 100644
index 0000000..6e774d4
--- /dev/null
+++ b/hardwarevariants_1_0/standard/pins_arduino.h
@@ -0,0 +1,218 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <avr/pgmspace.h>
+
+#define NUM_DIGITAL_PINS 20
+#define NUM_ANALOG_INPUTS 6
+#define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1)
+
+#if defined(__AVR_ATmega8__)
+#define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11)
+#else
+#define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11)
+#endif
+
+const static uint8_t SS = 10;
+const static uint8_t MOSI = 11;
+const static uint8_t MISO = 12;
+const static uint8_t SCK = 13;
+
+const static uint8_t SDA = 18;
+const static uint8_t SCL = 19;
+const static uint8_t LED_BUILTIN = 13;
+
+const static uint8_t A0 = 14;
+const static uint8_t A1 = 15;
+const static uint8_t A2 = 16;
+const static uint8_t A3 = 17;
+const static uint8_t A4 = 18;
+const static uint8_t A5 = 19;
+const static uint8_t A6 = 20;
+const static uint8_t A7 = 21;
+
+#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
+#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
+#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0))))
+#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
+
+#ifdef ARDUINO_MAIN
+
+// On the Arduino board, digital pins are also used
+// for the analog output (software PWM). Analog input
+// pins are a separate set.
+
+// ATMEL ATMEGA8 & 168 / ARDUINO
+//
+// +-\/-+
+// PC6 1| |28 PC5 (AI 5)
+// (D 0) PD0 2| |27 PC4 (AI 4)
+// (D 1) PD1 3| |26 PC3 (AI 3)
+// (D 2) PD2 4| |25 PC2 (AI 2)
+// PWM+ (D 3) PD3 5| |24 PC1 (AI 1)
+// (D 4) PD4 6| |23 PC0 (AI 0)
+// VCC 7| |22 GND
+// GND 8| |21 AREF
+// PB6 9| |20 AVCC
+// PB7 10| |19 PB5 (D 13)
+// PWM+ (D 5) PD5 11| |18 PB4 (D 12)
+// PWM+ (D 6) PD6 12| |17 PB3 (D 11) PWM
+// (D 7) PD7 13| |16 PB2 (D 10) PWM
+// (D 8) PB0 14| |15 PB1 (D 9) PWM
+// +----+
+//
+// (PWM+ indicates the additional PWM pins on the ATmega168.)
+
+// ATMEL ATMEGA1280 / ARDUINO
+//
+// 0-7 PE0-PE7 works
+// 8-13 PB0-PB5 works
+// 14-21 PA0-PA7 works
+// 22-29 PH0-PH7 works
+// 30-35 PG5-PG0 works
+// 36-43 PC7-PC0 works
+// 44-51 PJ7-PJ0 works
+// 52-59 PL7-PL0 works
+// 60-67 PD7-PD0 works
+// A0-A7 PF0-PF7
+// A8-A15 PK0-PK7
+
+
+// these arrays map port names (e.g. port B) to the
+// appropriate addresses for various functions (e.g. reading
+// and writing)
+const uint16_t PROGMEM port_to_mode_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &DDRB,
+ (uint16_t) &DDRC,
+ (uint16_t) &DDRD,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PORTB,
+ (uint16_t) &PORTC,
+ (uint16_t) &PORTD,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PINB,
+ (uint16_t) &PINC,
+ (uint16_t) &PIND,
+};
+
+const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
+ PD, /* 0 */
+ PD,
+ PD,
+ PD,
+ PD,
+ PD,
+ PD,
+ PD,
+ PB, /* 8 */
+ PB,
+ PB,
+ PB,
+ PB,
+ PB,
+ PC, /* 14 */
+ PC,
+ PC,
+ PC,
+ PC,
+ PC,
+};
+
+const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
+ _BV(0), /* 0, port D */
+ _BV(1),
+ _BV(2),
+ _BV(3),
+ _BV(4),
+ _BV(5),
+ _BV(6),
+ _BV(7),
+ _BV(0), /* 8, port B */
+ _BV(1),
+ _BV(2),
+ _BV(3),
+ _BV(4),
+ _BV(5),
+ _BV(0), /* 14, port C */
+ _BV(1),
+ _BV(2),
+ _BV(3),
+ _BV(4),
+ _BV(5),
+};
+
+const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
+ NOT_ON_TIMER, /* 0 - port D */
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ // on the ATmega168, digital pin 3 has hardware pwm
+#if defined(__AVR_ATmega8__)
+ NOT_ON_TIMER,
+#else
+ TIMER2B,
+#endif
+ NOT_ON_TIMER,
+ // on the ATmega168, digital pins 5 and 6 have hardware pwm
+#if defined(__AVR_ATmega8__)
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+#else
+ TIMER0B,
+ TIMER0A,
+#endif
+ NOT_ON_TIMER,
+ NOT_ON_TIMER, /* 8 - port B */
+ TIMER1A,
+ TIMER1B,
+#if defined(__AVR_ATmega8__)
+ TIMER2,
+#else
+ TIMER2A,
+#endif
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER, /* 14 - port C */
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+};
+
+#endif
+
+#endif \ No newline at end of file