summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ESS1995test_328p/ESS1995test_328p.cbp107
-rw-r--r--ESS1995test_328p/ESS1995test_328p.depend130
-rw-r--r--ESS1995test_328p/ESS1995test_328p.layout22
-rw-r--r--ESS1995test_328p/adapticsBT.cpp50
-rw-r--r--ESS1995test_328p/adapticsBT.h14
-rwxr-xr-xESS1995test_328p/bin/Debug/ESS1995test_328p.elfbin0 -> 20266 bytes
-rw-r--r--ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.eep.hex1
-rw-r--r--ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.hex85
-rw-r--r--ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.lss672
-rw-r--r--ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.map506
-rwxr-xr-xESS1995test_328p/bin/Release/ESS1995test_328p.elfbin0 -> 44843 bytes
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.eep.hex1
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex1122
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss8524
-rw-r--r--ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map1399
-rwxr-xr-xESS1995test_328p/burn1
-rw-r--r--ESS1995test_328p/electic.h72
-rw-r--r--ESS1995test_328p/main.cpp254
-rw-r--r--ESS1995test_328p/obj/Debug/main.obin0 -> 9640 bytes
-rw-r--r--ESS1995test_328p/obj/Release/ESS1995test_328p/adapticsBT.obin0 -> 832 bytes
-rw-r--r--ESS1995test_328p/obj/Release/adapticsBT.obin0 -> 1608 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/HardwareSerial.obin0 -> 3524 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/Print.obin0 -> 4344 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/Tone.obin0 -> 4724 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/WInterrupts.obin0 -> 1412 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/WMath.obin0 -> 1372 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/WString.obin0 -> 10132 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/main.obin0 -> 816 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/pins_arduino.obin0 -> 1011 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/wiring.obin0 -> 1892 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_analog.obin0 -> 1536 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_digital.obin0 -> 1924 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_pulse.obin0 -> 1492 bytes
-rw-r--r--ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_shift.obin0 -> 1296 bytes
-rw-r--r--ESS1995test_328p/obj/Release/main.obin0 -> 4912 bytes
-rw-r--r--arduinoSrc0022/HardwareSerial.cpp303
-rw-r--r--arduinoSrc0022/HardwareSerial.h76
-rw-r--r--arduinoSrc0022/Print.cpp220
-rw-r--r--arduinoSrc0022/Print.h66
-rw-r--r--arduinoSrc0022/Stream.h35
-rw-r--r--arduinoSrc0022/Tone.cpp601
-rw-r--r--arduinoSrc0022/WCharacter.h168
-rw-r--r--arduinoSrc0022/WConstants.h1
-rw-r--r--arduinoSrc0022/WInterrupts.c249
-rw-r--r--arduinoSrc0022/WMath.cpp60
-rw-r--r--arduinoSrc0022/WProgram.h63
-rw-r--r--arduinoSrc0022/WString.cpp443
-rw-r--r--arduinoSrc0022/WString.h112
-rw-r--r--arduinoSrc0022/binary.h515
-rw-r--r--arduinoSrc0022/main.cpp14
-rw-r--r--arduinoSrc0022/pins_arduino.c465
-rw-r--r--arduinoSrc0022/pins_arduino.h88
-rw-r--r--arduinoSrc0022/wiring.c289
-rw-r--r--arduinoSrc0022/wiring.h135
-rw-r--r--arduinoSrc0022/wiring_analog.c259
-rw-r--r--arduinoSrc0022/wiring_digital.c166
-rw-r--r--arduinoSrc0022/wiring_private.h68
-rw-r--r--arduinoSrc0022/wiring_pulse.c69
-rw-r--r--arduinoSrc0022/wiring_shift.c55
-rw-r--r--arduino_libs/ArduinoSerialManager.zipbin0 -> 18962 bytes
-rwxr-xr-xarduino_libs/ByteBuffer/.svn/all-wcprops17
-rwxr-xr-xarduino_libs/ByteBuffer/.svn/entries120
-rwxr-xr-xarduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base205
-rwxr-xr-xarduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base57
-rwxr-xr-xarduino_libs/ByteBuffer/ByteBuffer.cpp212
-rwxr-xr-xarduino_libs/ByteBuffer/ByteBuffer.h74
-rw-r--r--arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde25
-rw-r--r--arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde33
-rw-r--r--arduino_libs/NewSoftSerial/NewSoftSerial.cpp539
-rw-r--r--arduino_libs/NewSoftSerial/NewSoftSerial.h107
-rw-r--r--arduino_libs/NewSoftSerial/keywords.txt30
-rwxr-xr-xarduino_libs/SerialManager/.DS_Storebin0 -> 6148 bytes
-rwxr-xr-xarduino_libs/SerialManager/.svn/all-wcprops17
-rwxr-xr-xarduino_libs/SerialManager/.svn/entries144
-rwxr-xr-xarduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base197
-rwxr-xr-xarduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base63
-rwxr-xr-xarduino_libs/SerialManager/SerialManager.cpp193
-rwxr-xr-xarduino_libs/SerialManager/SerialManager.h62
-rw-r--r--arduino_libs/core0022_2560.abin0 -> 172446 bytes
-rw-r--r--arduino_libs/core0022_328p.abin0 -> 66168 bytes
-rw-r--r--avr_libs/uartlib/doxygen.css49
-rw-r--r--avr_libs/uartlib/doxygen.pngbin0 -> 1281 bytes
-rw-r--r--avr_libs/uartlib/group__pfleury__uart.html560
-rw-r--r--avr_libs/uartlib/makefile508
-rw-r--r--avr_libs/uartlib/test_uart.c130
-rw-r--r--avr_libs/uartlib/uart.c651
-rw-r--r--avr_libs/uartlib/uart.h194
-rw-r--r--blinktest_328p/bin/Debug/blinktest_328p.elf.eep.hex1
-rw-r--r--blinktest_328p/bin/Debug/blinktest_328p.elf.hex71
-rw-r--r--blinktest_328p/bin/Debug/blinktest_328p.elf.lss539
-rw-r--r--blinktest_328p/bin/Debug/blinktest_328p.elf.map501
-rw-r--r--blinktest_328p/bin/Debug/electic_streaming.elf.map501
-rwxr-xr-xblinktest_328p/bin/Release/blinktest_328p.elfbin0 -> 12194 bytes
-rw-r--r--blinktest_328p/bin/Release/blinktest_328p.elf.eep.hex1
-rw-r--r--blinktest_328p/bin/Release/blinktest_328p.elf.hex70
-rw-r--r--blinktest_328p/bin/Release/blinktest_328p.elf.lss518
-rw-r--r--blinktest_328p/bin/Release/blinktest_328p.elf.map499
-rw-r--r--blinktest_328p/blinktest_328p.cbp66
-rw-r--r--blinktest_328p/blinktest_328p.depend43
-rw-r--r--blinktest_328p/blinktest_328p.layout10
-rwxr-xr-xblinktest_328p/burn1
-rw-r--r--blinktest_328p/main.cpp28
-rw-r--r--blinktest_328p/obj/Release/main.obin0 -> 924 bytes
-rw-r--r--electicAndroid/.classpath7
-rw-r--r--electicAndroid/.project33
-rw-r--r--electicAndroid/AndroidManifest.xml38
-rw-r--r--electicAndroid/bin/classes.dexbin0 -> 24576 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectThread.classbin0 -> 2641 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectedThread.classbin0 -> 3061 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth.classbin0 -> 5490 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$1.classbin0 -> 2079 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$2.classbin0 -> 2522 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$3.classbin0 -> 950 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity.classbin0 -> 5381 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/Electic$1.classbin0 -> 4136 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/Electic$2.classbin0 -> 1084 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/Electic.classbin0 -> 7925 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$attr.classbin0 -> 382 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$drawable.classbin0 -> 446 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$id.classbin0 -> 1611 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$layout.classbin0 -> 542 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$menu.classbin0 -> 437 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R$string.classbin0 -> 1388 bytes
-rw-r--r--electicAndroid/bin/com/futureproof/adaptics/electic/R.classbin0 -> 689 bytes
-rw-r--r--electicAndroid/bin/electicAndroid.apkbin0 -> 28259 bytes
-rw-r--r--electicAndroid/bin/resources.ap_bin0 -> 14541 bytes
-rw-r--r--electicAndroid/default.properties11
-rw-r--r--electicAndroid/gen/com/futureproof/adaptics/electic/R.java97
-rw-r--r--electicAndroid/res/drawable-hdpi/app_icon.pngbin0 -> 5589 bytes
-rw-r--r--electicAndroid/res/drawable/app_icon.pngbin0 -> 4182 bytes
-rw-r--r--electicAndroid/res/layout/custom_title.xml39
-rw-r--r--electicAndroid/res/layout/device_list.xml56
-rw-r--r--electicAndroid/res/layout/device_name.xml21
-rw-r--r--electicAndroid/res/layout/main.xml62
-rw-r--r--electicAndroid/res/menu/option_menu.xml26
-rw-r--r--electicAndroid/res/values/strings.xml51
-rw-r--r--electicAndroid/src/com/futureproof/adaptics/electic/AdapticsBluetooth.java520
-rw-r--r--electicAndroid/src/com/futureproof/adaptics/electic/DeviceListActivity.java213
-rw-r--r--electicAndroid/src/com/futureproof/adaptics/electic/Electic.java393
-rw-r--r--electic_streaming2560/bin/Debug/electic_streaming.elf.eep.hex1
-rw-r--r--electic_streaming2560/bin/Debug/electic_streaming.elf.hex364
-rw-r--r--electic_streaming2560/bin/Debug/electic_streaming.elf.lss3038
-rw-r--r--electic_streaming2560/bin/Debug/electic_streaming.elf.map1643
-rwxr-xr-xelectic_streaming2560/bin/Release/electic_streaming.elfbin0 -> 30357 bytes
-rw-r--r--electic_streaming2560/bin/Release/electic_streaming.elf.eep.hex1
-rw-r--r--electic_streaming2560/bin/Release/electic_streaming.elf.hex328
-rw-r--r--electic_streaming2560/bin/Release/electic_streaming.elf.lss2665
-rw-r--r--electic_streaming2560/bin/Release/electic_streaming.elf.map897
-rwxr-xr-xelectic_streaming2560/burn1
-rw-r--r--electic_streaming2560/electic_streaming2560.cbp66
-rw-r--r--electic_streaming2560/electic_streaming2560.layout7
-rw-r--r--electic_streaming2560/main.c83
-rw-r--r--electic_streaming2560/main.cpp80
-rw-r--r--electic_streaming2560/obj/Debug/main.obin0 -> 11264 bytes
-rw-r--r--electic_streaming2560/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.obin0 -> 6212 bytes
-rw-r--r--electic_streaming2560/obj/Release/main.obin0 -> 2208 bytes
-rw-r--r--electic_streaming2560/obj/Release/uart.obin0 -> 1976 bytes
-rw-r--r--electic_streaming2560/uart.c651
-rw-r--r--electic_streaming2560/uart.h195
-rwxr-xr-xelectic_streaming328p/bin/Debug/electic_streaming.elfbin0 -> 39258 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.lss3038
-rw-r--r--electic_streaming328p/bin/Debug/electic_streaming.elf.map912
-rwxr-xr-xelectic_streaming328p/bin/Release/electic_streaming.elfbin0 -> 30357 bytes
-rw-r--r--electic_streaming328p/bin/Release/electic_streaming.elf.eep.hex1
-rw-r--r--electic_streaming328p/bin/Release/electic_streaming.elf.hex328
-rw-r--r--electic_streaming328p/bin/Release/electic_streaming.elf.lss2665
-rw-r--r--electic_streaming328p/bin/Release/electic_streaming.elf.map897
-rwxr-xr-xelectic_streaming328p/burn1
-rw-r--r--electic_streaming328p/electic_streaming328p.cbp66
-rw-r--r--electic_streaming328p/electic_streaming328p.depend43
-rw-r--r--electic_streaming328p/electic_streaming328p.layout7
-rw-r--r--electic_streaming328p/main.c83
-rw-r--r--electic_streaming328p/main.cpp80
-rw-r--r--electic_streaming328p/obj/Debug/main.obin0 -> 11096 bytes
-rw-r--r--electic_streaming328p/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.obin0 -> 6212 bytes
-rw-r--r--electic_streaming328p/obj/Release/main.obin0 -> 2208 bytes
-rw-r--r--electic_streaming328p/obj/Release/uart.obin0 -> 1976 bytes
-rw-r--r--electic_streaming328p/uart.c651
-rw-r--r--electic_streaming328p/uart.h195
-rw-r--r--pyBTlatency/data.csv273
-rwxr-xr-xpyBTlatency/pyBTlatency.py53
-rwxr-xr-xpyBTlatency/pySerialGraph.py64
-rwxr-xr-xpyDMM/pyDMM.py25
-rwxr-xr-xpyDMM/pyRFCLIENT.py25
-rwxr-xr-xpyDMM/pyRFSERVER.py30
-rw-r--r--pybluez/advanced/inquiry-with-rssi.py148
-rw-r--r--pybluez/advanced/l2-mtu.py60
-rw-r--r--pybluez/advanced/l2-unreliable-client.py76
-rw-r--r--pybluez/advanced/l2-unreliable-server.py34
-rw-r--r--pybluez/advanced/read-local-bdaddr.py35
-rw-r--r--pybluez/advanced/write-inquiry-scan.py90
-rw-r--r--pybluez/bluezchat/bluezchat.glade138
-rwxr-xr-xpybluez/bluezchat/bluezchat.py191
-rw-r--r--pybluez/simple/asynchronous-inquiry.py65
-rw-r--r--pybluez/simple/inquiry.py17
-rw-r--r--pybluez/simple/l2capclient.py28
-rw-r--r--pybluez/simple/l2capserver.py32
-rw-r--r--pybluez/simple/rfcomm-client.py45
-rw-r--r--pybluez/simple/rfcomm-server.py41
-rw-r--r--pybluez/simple/sdp-browse.py35
-rw-r--r--timer1/Makefile152
-rwxr-xr-xtimer1/burn1
-rw-r--r--timer1/uart.c651
-rw-r--r--timer1/uart.c.map355
-rw-r--r--timer1/uart.h194
-rw-r--r--timer1/uart.obin0 -> 7852 bytes
208 files changed, 48293 insertions, 0 deletions
diff --git a/ESS1995test_328p/ESS1995test_328p.cbp b/ESS1995test_328p/ESS1995test_328p.cbp
new file mode 100644
index 0000000..e559c31
--- /dev/null
+++ b/ESS1995test_328p/ESS1995test_328p.cbp
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="ESS1995test_328p" />
+ <Option pch_mode="2" />
+ <Option compiler="avrgcc" />
+ <Option virtualFolders="src/;" />
+ <Build>
+ <Target title="Debug">
+ <Option output="bin/Debug/ESS1995test_328p.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Debug/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-g" />
+ </Compiler>
+ </Target>
+ <Target title="Release">
+ <Option output="bin/Release/ESS1995test_328p.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Release/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-Os" />
+ </Compiler>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add option="-mmcu=atmega328p" />
+ <Add option="-DF_CPU=8000000UL" />
+ <Add directory="../arduinoSrc0022" />
+ <Add directory="../arduino libs/NewSoftSerial" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=atmega328p" />
+ <Add option="-Wl,-Map=$(TARGET_OUTPUT_FILE).map,--cref" />
+ </Linker>
+ <ExtraCommands>
+ <Add after="avr-size $(TARGET_OUTPUT_FILE)" />
+ <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
+ <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
+ <Add after="avr-objdump -h -S $(TARGET_OUTPUT_FILE) &gt; $(TARGET_OUTPUT_FILE).lss" />
+ <Add after="./burn" />
+ <Mode after="always" />
+ </ExtraCommands>
+ <Unit filename="adapticsBT.cpp">
+ <Option virtualFolder="src/" />
+ </Unit>
+ <Unit filename="adapticsBT.h">
+ <Option virtualFolder="src/" />
+ </Unit>
+ <Unit filename="burn">
+ <Option virtualFolder="src/" />
+ </Unit>
+ <Unit filename="electic.h">
+ <Option virtualFolder="src/" />
+ </Unit>
+ <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">
+ <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">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../arduinoSrc0022/pins_arduino.h" />
+ <Unit filename="../arduinoSrc0022/wiring.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../arduinoSrc0022/wiring.h" />
+ <Unit filename="../arduinoSrc0022/wiring_analog.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../arduinoSrc0022/wiring_digital.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">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ <lib_finder disable_auto="1" />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/ESS1995test_328p/ESS1995test_328p.depend b/ESS1995test_328p/ESS1995test_328p.depend
new file mode 100644
index 0000000..52f4c69
--- /dev/null
+++ b/ESS1995test_328p/ESS1995test_328p.depend
@@ -0,0 +1,130 @@
+# depslib dependency file v1.0
+1322661310 source:/home/tim/workspace/electic_AVR/ESS1995test_328p/main.cpp
+ "electic.h"
+
+1319028644 /home/tim/workspace/electic_AVR/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_AVR/arduinoSrc0022/wiring.h
+ <avr/io.h>
+ <stdlib.h>
+ "binary.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/binary.h
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WCharacter.h
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WString.h
+ <stdlib.h>
+ <string.h>
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.h
+ <inttypes.h>
+ "Stream.h"
+ "usb_api.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Stream.h
+ <inttypes.h>
+ "Print.h"
+
+1319028644 /home/tim/workspace/electic_AVR/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>
+
+1322574642 source:/home/tim/workspace/electic_AVR/ESS1995test_328p/adapticsBT.cpp
+ "adapticsBT.h"
+
+1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.cpp
+ <stdlib.h>
+ <stdio.h>
+ <string.h>
+ <inttypes.h>
+ "wiring.h"
+ "wiring_private.h"
+ "HardwareSerial.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/wiring_private.h
+ <avr/io.h>
+ <avr/interrupt.h>
+ <avr/delay.h>
+ <stdio.h>
+ <stdarg.h>
+ "wiring.h"
+
+1319029257 source:/home/tim/workspace/electic_AVR/arduinoSrc0022/Print.cpp
+ <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"
+
diff --git a/ESS1995test_328p/ESS1995test_328p.layout b/ESS1995test_328p/ESS1995test_328p.layout
new file mode 100644
index 0000000..389db27
--- /dev/null
+++ b/ESS1995test_328p/ESS1995test_328p.layout
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Release" />
+ <File name="adapticsBT.cpp" open="1" top="0" tabpos="3">
+ <Cursor position="1609" topLine="11" />
+ </File>
+ <File name="electic.h" open="1" top="1" tabpos="2">
+ <Cursor position="864" topLine="36" />
+ </File>
+ <File name="main.cpp" open="1" top="0" tabpos="1">
+ <Cursor position="1415" topLine="75" />
+ </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" />
+ </File>
+ <File name="../arduinoSrc0022/Tone.cpp" open="0" top="0" tabpos="0">
+ <Cursor position="7050" topLine="229" />
+ </File>
+</CodeBlocks_layout_file>
diff --git a/ESS1995test_328p/adapticsBT.cpp b/ESS1995test_328p/adapticsBT.cpp
new file mode 100644
index 0000000..c5113f9
--- /dev/null
+++ b/ESS1995test_328p/adapticsBT.cpp
@@ -0,0 +1,50 @@
+/*
+ Adaptics BT platform
+
+11/11/11
+ persistent connection with a BT serial module
+ this WAS working well with precompiled library and setting the baudrate artificially to 76800 (because F_CPU not working)
+ although println(unsigned long) was causing an error.
+ what's changed :-(
+
+15/11/11
+ using 38400 and non precomiled- sucessfully enters inquiry
+ can only seem to connect straight after pairing, which is annoying
+ when connected the BT module sends some fragments of commands ie.e "+STOAU\0xf4"
+ it only seems to stay connected for 1/2 second. Voltage issue?
+
+ yep- it works on 0v-3v but ont on -3v-0v
+ -3v seems to kind of work at 9600bps - received junk
+ at 19200 it stays on for a few seconds but received junk
+
+*/
+
+#include "adapticsBT.h"
+
+void setupBlueTooth(){
+
+ pinMode(BTC,INPUT); //connection indicator
+
+ Serial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400
+
+ Serial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
+ Serial.print("\r\n+STNA=AdapticsElectic\r\n"); //set the bluetooth name
+ Serial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
+ Serial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
+
+ //necessary?
+ Serial.print("\r\n +STPIN=0000\r\n"); //"\r\n+DLPIN\r\n");
+ Serial.print("\r\n+LOSSRECONN=0\r\n"); //setting this to 1 seems to stop it working
+
+ advertise();
+
+}
+void advertise(){
+ delay(2000); // This delay is required - its really 2 seconds
+ Serial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
+
+ delay(2000); // This delay is required.
+
+ Serial.flush();
+
+}
diff --git a/ESS1995test_328p/adapticsBT.h b/ESS1995test_328p/adapticsBT.h
new file mode 100644
index 0000000..8cb87e3
--- /dev/null
+++ b/ESS1995test_328p/adapticsBT.h
@@ -0,0 +1,14 @@
+#ifndef ADAPTICSBT_H_INCLUDED
+#define ADAPTICSBT_H_INCLUDED
+
+extern "C" void __cxa_pure_virtual(void); //for C++ defines
+
+#define BTC 6
+
+#include <WProgram.h> //main Arduino header file
+
+void setupBlueTooth();
+void advertise();
+
+#endif // ADAPTICSBT_H_INCLUDED
+
diff --git a/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf
new file mode 100755
index 0000000..bdf3e38
--- /dev/null
+++ b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf
Binary files differ
diff --git a/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.eep.hex b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.hex b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.hex
new file mode 100644
index 0000000..0d962de
--- /dev/null
+++ b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.hex
@@ -0,0 +1,85 @@
+:100000000C945A000C9477000C9477000C947700B1
+:100010000C9477000C9477000C9477000C94770084
+:100020000C9477000C9477000C9477000C94770074
+:100030000C9477000C9477000C9477000C94770064
+:100040000C9406010C9477000C9477000C947700C4
+:100050000C9477000C9477000C9477000C94770044
+:100060000C9477000C947700000024272A000025C8
+:10007000282B000023262904040404040404040299
+:100080000202020202030303030303010204081035
+:100090002040800102040810200102040810200002
+:1000A0000000070002010000030406000000000039
+:1000B0000000000011241FBECFEFD8E0DEBFCDBF8F
+:1000C00011E0A0E0B1E0E4E3F5E002C005900D929C
+:1000D000A030B107D9F711E0A0E0B1E001C01D9256
+:1000E000A830B107E1F70E94A3000C9498020C9489
+:1000F0000000DF93CF9300D0CDB7DEB78A8384E0D2
+:1001000061E00E94E301198216C08A81282F30E045
+:100110008981882F90E0A90102C0559547958A955D
+:10012000E2F7CA01982F917084E0692F0E940102C2
+:1001300089818F5F89838981883038F30F900F9090
+:10014000CF91DF910895DF93CF9300D0CDB7DEB785
+:1001500082E060E00E94E30183E061E00E94E3014D
+:100160008CE061E00E94E3018DE061E00E94E30128
+:100170000E94A90182E00E944C021A8281309105FE
+:1001800011F481E08A838A818823B1F08CE061E0F8
+:100190000E94010288EC0E94790082E00E944C02D9
+:1001A0001982009711F481E089838981882321F0E5
+:1001B0008DE061E00E94010264EF71E080E090E078
+:1001C0000E9471018CE060E00E9401028CE060E01E
+:1001D0000E940102CFCFDF93CF93CDB7DEB783E08C
+:1001E00061E00E9401026AE070E080E090E00E941D
+:1001F000710183E060E00E9401026AE070E080E04B
+:1002000090E00E947101CF91DF9108951F920F92AB
+:100210000FB60F9211242F938F939F93AF93BF9399
+:100220008091000190910101A0910201B091030120
+:100230008050904CAF4FBF4F8093000190930101CD
+:10024000A0930201B093030127C080910001909117
+:100250000101A0910201B091030180589E43A0408A
+:10026000B0408093000190930101A0930201B093EC
+:1002700003018091040190910501A0910601B091C4
+:1002800007010196A11DB11D809304019093050102
+:10029000A0930601B09307018091000190910101A4
+:1002A000A0910201B091030181589E43A040B0404B
+:1002B00060F6BF91AF919F918F912F910F900FBEDC
+:1002C0000F901F9018958FB7F894209104013091EA
+:1002D000050140910601509107018FBFB901CA0184
+:1002E0000895EF92FF920F931F937B018C018FB7BC
+:1002F000F8944091040150910501609106017091BC
+:1003000007018FBF2FB7F8948091040190910501E8
+:10031000A0910601B09107012FBF841B950BA60B7E
+:10032000B70B8E159F05A007B10760F31F910F91C2
+:10033000FF90EF900895019759F0FC01EE0FFF1F19
+:10034000EE0FFF1F32978FB7F8943197F1F78FBFF9
+:100350000895789484B5826084BD84B5816084BD3D
+:1003600085B5826085BD85B5816085BDEEE6F0E02E
+:10037000808181608083E1E8F0E080818260808319
+:10038000808181608083E0E8F0E08081816080830B
+:10039000E1EBF0E0808184608083E0EBF0E080813D
+:1003A00081608083EAE7F0E08081846080838081DF
+:1003B0008260808380818160808380818068808387
+:1003C0001092C1000895282F30E0C90185579F4F32
+:1003D000FC01949129583F4FF9018491882381F0C1
+:1003E000E82FF0E0E859FF4FE491F0E0662329F4AC
+:1003F000808190958923808308958081892B8083D3
+:100400000895482F50E0CA0181569F4FFC01249166
+:10041000CA0185579F4FFC01949149585F4FFA01DB
+:1004200034913323C1F1222331F1233021F480911F
+:1004300080008F7705C0243031F4809180008F7D5B
+:100440008093800018C0213019F484B58F7704C0E0
+:10045000223021F484B58F7D84BD0DC0263021F477
+:100460008091B0008F7705C0273029F48091B000CB
+:100470008F7D8093B000E32FF0E0E359FF4FE491CC
+:10048000F0E0662329F48081909589238083089584
+:100490008081892B80830895482F50E0CA018156BE
+:1004A0009F4FFC012491CA0185579F4FFC019491F5
+:1004B00049585F4FFA013491332319F420E030E0BA
+:1004C00035C0222331F1233021F4809180008F77D1
+:1004D00005C0243031F4809180008F7D80938000AE
+:1004E00018C0213019F484B58F7704C0223021F46C
+:1004F00084B58F7D84BD0DC0263021F48091B0007D
+:100500008F7705C0273029F48091B0008F7D8093CC
+:10051000B000E32FF0E0EE58FF4FE491F0E080816F
+:1005200020E030E0892311F021E030E0C901089596
+:04053000F894FFCF6D
+:00000001FF
diff --git a/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.lss b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.lss
new file mode 100644
index 0000000..b9c4942
--- /dev/null
+++ b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.lss
@@ -0,0 +1,672 @@
+
+bin/Debug/ESS1995test_328p.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .text 00000534 00000000 00000000 00000074 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 1 .bss 00000008 00800100 00800100 000005a8 2**0
+ ALLOC
+ 2 .stab 00000c9c 00000000 00000000 000005a8 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 3 .stabstr 000018d2 00000000 00000000 00001244 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 4 .debug_aranges 00000040 00000000 00000000 00002b16 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_pubnames 0000016c 00000000 00000000 00002b56 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_info 000006f2 00000000 00000000 00002cc2 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_abbrev 000002e1 00000000 00000000 000033b4 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_line 00000551 00000000 00000000 00003695 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_frame 000000a0 00000000 00000000 00003be8 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_str 00000227 00000000 00000000 00003c88 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_loc 000001fa 00000000 00000000 00003eaf 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__ctors_end>
+ 4: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 8: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 10: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 14: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 18: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 1c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 20: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 24: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 28: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 2c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 30: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 34: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 38: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 3c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 40: 0c 94 06 01 jmp 0x20c ; 0x20c <__vector_16>
+ 44: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 48: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 4c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 50: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 54: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 58: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 5c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 60: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 64: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+
+00000068 <port_to_mode_PGM>:
+ 68: 00 00 24 27 2a ..$'*
+
+0000006d <port_to_output_PGM>:
+ 6d: 00 00 25 28 2b ..%(+
+
+00000072 <port_to_input_PGM>:
+ 72: 00 00 23 26 29 ..#&)
+
+00000077 <digital_pin_to_port_PGM>:
+ 77: 04 04 04 04 04 04 04 04 02 02 02 02 02 02 03 03 ................
+ 87: 03 03 03 03 ....
+
+0000008b <digital_pin_to_bit_mask_PGM>:
+ 8b: 01 02 04 08 10 20 40 80 01 02 04 08 10 20 01 02 ..... @...... ..
+ 9b: 04 08 10 20 ...
+
+0000009f <digital_pin_to_timer_PGM>:
+ 9f: 00 00 00 07 00 02 01 00 00 03 04 06 00 00 00 00 ................
+ af: 00 00 00 00 00 .....
+
+000000b4 <__ctors_end>:
+ b4: 11 24 eor r1, r1
+ b6: 1f be out 0x3f, r1 ; 63
+ b8: cf ef ldi r28, 0xFF ; 255
+ ba: d8 e0 ldi r29, 0x08 ; 8
+ bc: de bf out 0x3e, r29 ; 62
+ be: cd bf out 0x3d, r28 ; 61
+
+000000c0 <__do_copy_data>:
+ c0: 11 e0 ldi r17, 0x01 ; 1
+ c2: a0 e0 ldi r26, 0x00 ; 0
+ c4: b1 e0 ldi r27, 0x01 ; 1
+ c6: e4 e3 ldi r30, 0x34 ; 52
+ c8: f5 e0 ldi r31, 0x05 ; 5
+ ca: 02 c0 rjmp .+4 ; 0xd0 <.do_copy_data_start>
+
+000000cc <.do_copy_data_loop>:
+ cc: 05 90 lpm r0, Z+
+ ce: 0d 92 st X+, r0
+
+000000d0 <.do_copy_data_start>:
+ d0: a0 30 cpi r26, 0x00 ; 0
+ d2: b1 07 cpc r27, r17
+ d4: d9 f7 brne .-10 ; 0xcc <.do_copy_data_loop>
+
+000000d6 <__do_clear_bss>:
+ d6: 11 e0 ldi r17, 0x01 ; 1
+ d8: a0 e0 ldi r26, 0x00 ; 0
+ da: b1 e0 ldi r27, 0x01 ; 1
+ dc: 01 c0 rjmp .+2 ; 0xe0 <.do_clear_bss_start>
+
+000000de <.do_clear_bss_loop>:
+ de: 1d 92 st X+, r1
+
+000000e0 <.do_clear_bss_start>:
+ e0: a8 30 cpi r26, 0x08 ; 8
+ e2: b1 07 cpc r27, r17
+ e4: e1 f7 brne .-8 ; 0xde <.do_clear_bss_loop>
+ e6: 0e 94 a3 00 call 0x146 ; 0x146 <main>
+ ea: 0c 94 98 02 jmp 0x530 ; 0x530 <_exit>
+
+000000ee <__bad_interrupt>:
+ ee: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000f2 <_Z9writeByteh>:
+ digitalWrite(SCLK, HIGH);
+ delay(10);
+ digitalWrite(SCLK, LOW);
+ delay(10);
+}
+void writeByte(uint8_t data){
+ f2: df 93 push r29
+ f4: cf 93 push r28
+ f6: 00 d0 rcall .+0 ; 0xf8 <_Z9writeByteh+0x6>
+ f8: cd b7 in r28, 0x3d ; 61
+ fa: de b7 in r29, 0x3e ; 62
+ fc: 8a 83 std Y+2, r24 ; 0x02
+ pinMode(SDATA,OUTPUT);
+ fe: 84 e0 ldi r24, 0x04 ; 4
+ 100: 61 e0 ldi r22, 0x01 ; 1
+ 102: 0e 94 e3 01 call 0x3c6 ; 0x3c6 <pinMode>
+ for (uint8_t bit=0;bit<8;bit++) {
+ 106: 19 82 std Y+1, r1 ; 0x01
+ 108: 16 c0 rjmp .+44 ; 0x136 <_Z9writeByteh+0x44>
+ digitalWrite(SDATA,(data>>bit)&0b01);
+ 10a: 8a 81 ldd r24, Y+2 ; 0x02
+ 10c: 28 2f mov r18, r24
+ 10e: 30 e0 ldi r19, 0x00 ; 0
+ 110: 89 81 ldd r24, Y+1 ; 0x01
+ 112: 88 2f mov r24, r24
+ 114: 90 e0 ldi r25, 0x00 ; 0
+ 116: a9 01 movw r20, r18
+ 118: 02 c0 rjmp .+4 ; 0x11e <_Z9writeByteh+0x2c>
+ 11a: 55 95 asr r21
+ 11c: 47 95 ror r20
+ 11e: 8a 95 dec r24
+ 120: e2 f7 brpl .-8 ; 0x11a <_Z9writeByteh+0x28>
+ 122: ca 01 movw r24, r20
+ 124: 98 2f mov r25, r24
+ 126: 91 70 andi r25, 0x01 ; 1
+ 128: 84 e0 ldi r24, 0x04 ; 4
+ 12a: 69 2f mov r22, r25
+ 12c: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ digitalWrite(SCLK, LOW);
+ delay(10);
+}
+void writeByte(uint8_t data){
+ pinMode(SDATA,OUTPUT);
+ for (uint8_t bit=0;bit<8;bit++) {
+ 130: 89 81 ldd r24, Y+1 ; 0x01
+ 132: 8f 5f subi r24, 0xFF ; 255
+ 134: 89 83 std Y+1, r24 ; 0x01
+ 136: 89 81 ldd r24, Y+1 ; 0x01
+ 138: 88 30 cpi r24, 0x08 ; 8
+ 13a: 38 f3 brcs .-50 ; 0x10a <_Z9writeByteh+0x18>
+ digitalWrite(SDATA,(data>>bit)&0b01);
+ }
+}
+ 13c: 0f 90 pop r0
+ 13e: 0f 90 pop r0
+ 140: cf 91 pop r28
+ 142: df 91 pop r29
+ 144: 08 95 ret
+
+00000146 <main>:
+int main(){
+ 146: df 93 push r29
+ 148: cf 93 push r28
+ 14a: 00 d0 rcall .+0 ; 0x14c <main+0x6>
+ 14c: cd b7 in r28, 0x3d ; 61
+ 14e: de b7 in r29, 0x3e ; 62
+ pinMode(DATA_NEW,INPUT);
+ 150: 82 e0 ldi r24, 0x02 ; 2
+ 152: 60 e0 ldi r22, 0x00 ; 0
+ 154: 0e 94 e3 01 call 0x3c6 ; 0x3c6 <pinMode>
+ pinMode(SCLK,OUTPUT);
+ 158: 83 e0 ldi r24, 0x03 ; 3
+ 15a: 61 e0 ldi r22, 0x01 ; 1
+ 15c: 0e 94 e3 01 call 0x3c6 ; 0x3c6 <pinMode>
+
+ pinMode(OUTPUT1, OUTPUT);
+ 160: 8c e0 ldi r24, 0x0C ; 12
+ 162: 61 e0 ldi r22, 0x01 ; 1
+ 164: 0e 94 e3 01 call 0x3c6 ; 0x3c6 <pinMode>
+ pinMode(OUTPUT2, OUTPUT);
+ 168: 8d e0 ldi r24, 0x0D ; 13
+ 16a: 61 e0 ldi r22, 0x01 ; 1
+ 16c: 0e 94 e3 01 call 0x3c6 ; 0x3c6 <pinMode>
+
+ init(); //-- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ 170: 0e 94 a9 01 call 0x352 ; 0x352 <init>
+
+ while(1) {
+ if (digitalRead(DATA_NEW)==HIGH){ //DMM is ready to receive data
+ 174: 82 e0 ldi r24, 0x02 ; 2
+ 176: 0e 94 4c 02 call 0x498 ; 0x498 <digitalRead>
+ 17a: 1a 82 std Y+2, r1 ; 0x02
+ 17c: 81 30 cpi r24, 0x01 ; 1
+ 17e: 91 05 cpc r25, r1
+ 180: 11 f4 brne .+4 ; 0x186 <main+0x40>
+ 182: 81 e0 ldi r24, 0x01 ; 1
+ 184: 8a 83 std Y+2, r24 ; 0x02
+ 186: 8a 81 ldd r24, Y+2 ; 0x02
+ 188: 88 23 and r24, r24
+ 18a: b1 f0 breq .+44 ; 0x1b8 <main+0x72>
+ digitalWrite(OUTPUT1,HIGH);
+ 18c: 8c e0 ldi r24, 0x0C ; 12
+ 18e: 61 e0 ldi r22, 0x01 ; 1
+ 190: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ writeByte(WRITE_ID);
+ 194: 88 ec ldi r24, 0xC8 ; 200
+ 196: 0e 94 79 00 call 0xf2 ; 0xf2 <_Z9writeByteh>
+ if (digitalRead(DATA_NEW)==LOW){ //ACK
+ 19a: 82 e0 ldi r24, 0x02 ; 2
+ 19c: 0e 94 4c 02 call 0x498 ; 0x498 <digitalRead>
+ 1a0: 19 82 std Y+1, r1 ; 0x01
+ 1a2: 00 97 sbiw r24, 0x00 ; 0
+ 1a4: 11 f4 brne .+4 ; 0x1aa <main+0x64>
+ 1a6: 81 e0 ldi r24, 0x01 ; 1
+ 1a8: 89 83 std Y+1, r24 ; 0x01
+ 1aa: 89 81 ldd r24, Y+1 ; 0x01
+ 1ac: 88 23 and r24, r24
+ 1ae: 21 f0 breq .+8 ; 0x1b8 <main+0x72>
+ digitalWrite(OUTPUT2,HIGH);
+ 1b0: 8d e0 ldi r24, 0x0D ; 13
+ 1b2: 61 e0 ldi r22, 0x01 ; 1
+ 1b4: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ }
+ }
+ delay(500);
+ 1b8: 64 ef ldi r22, 0xF4 ; 244
+ 1ba: 71 e0 ldi r23, 0x01 ; 1
+ 1bc: 80 e0 ldi r24, 0x00 ; 0
+ 1be: 90 e0 ldi r25, 0x00 ; 0
+ 1c0: 0e 94 71 01 call 0x2e2 ; 0x2e2 <delay>
+ digitalWrite(OUTPUT1,LOW);
+ 1c4: 8c e0 ldi r24, 0x0C ; 12
+ 1c6: 60 e0 ldi r22, 0x00 ; 0
+ 1c8: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ digitalWrite(OUTPUT1,LOW);
+ 1cc: 8c e0 ldi r24, 0x0C ; 12
+ 1ce: 60 e0 ldi r22, 0x00 ; 0
+ 1d0: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ 1d4: cf cf rjmp .-98 ; 0x174 <main+0x2e>
+
+000001d6 <_Z9SCLKcyclev>:
+#define OUTPUT2 13
+
+#define WRITE_ID 0b11001000
+#define READ_ID 0b11001001
+
+void SCLKcycle() {
+ 1d6: df 93 push r29
+ 1d8: cf 93 push r28
+ 1da: cd b7 in r28, 0x3d ; 61
+ 1dc: de b7 in r29, 0x3e ; 62
+ digitalWrite(SCLK, HIGH);
+ 1de: 83 e0 ldi r24, 0x03 ; 3
+ 1e0: 61 e0 ldi r22, 0x01 ; 1
+ 1e2: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ delay(10);
+ 1e6: 6a e0 ldi r22, 0x0A ; 10
+ 1e8: 70 e0 ldi r23, 0x00 ; 0
+ 1ea: 80 e0 ldi r24, 0x00 ; 0
+ 1ec: 90 e0 ldi r25, 0x00 ; 0
+ 1ee: 0e 94 71 01 call 0x2e2 ; 0x2e2 <delay>
+ digitalWrite(SCLK, LOW);
+ 1f2: 83 e0 ldi r24, 0x03 ; 3
+ 1f4: 60 e0 ldi r22, 0x00 ; 0
+ 1f6: 0e 94 01 02 call 0x402 ; 0x402 <digitalWrite>
+ delay(10);
+ 1fa: 6a e0 ldi r22, 0x0A ; 10
+ 1fc: 70 e0 ldi r23, 0x00 ; 0
+ 1fe: 80 e0 ldi r24, 0x00 ; 0
+ 200: 90 e0 ldi r25, 0x00 ; 0
+ 202: 0e 94 71 01 call 0x2e2 ; 0x2e2 <delay>
+}
+ 206: cf 91 pop r28
+ 208: df 91 pop r29
+ 20a: 08 95 ret
+
+0000020c <__vector_16>:
+ 20c: 1f 92 push r1
+ 20e: 0f 92 push r0
+ 210: 0f b6 in r0, 0x3f ; 63
+ 212: 0f 92 push r0
+ 214: 11 24 eor r1, r1
+ 216: 2f 93 push r18
+ 218: 8f 93 push r24
+ 21a: 9f 93 push r25
+ 21c: af 93 push r26
+ 21e: bf 93 push r27
+ 220: 80 91 00 01 lds r24, 0x0100
+ 224: 90 91 01 01 lds r25, 0x0101
+ 228: a0 91 02 01 lds r26, 0x0102
+ 22c: b0 91 03 01 lds r27, 0x0103
+ 230: 80 50 subi r24, 0x00 ; 0
+ 232: 90 4c sbci r25, 0xC0 ; 192
+ 234: af 4f sbci r26, 0xFF ; 255
+ 236: bf 4f sbci r27, 0xFF ; 255
+ 238: 80 93 00 01 sts 0x0100, r24
+ 23c: 90 93 01 01 sts 0x0101, r25
+ 240: a0 93 02 01 sts 0x0102, r26
+ 244: b0 93 03 01 sts 0x0103, r27
+ 248: 27 c0 rjmp .+78 ; 0x298 <__vector_16+0x8c>
+ 24a: 80 91 00 01 lds r24, 0x0100
+ 24e: 90 91 01 01 lds r25, 0x0101
+ 252: a0 91 02 01 lds r26, 0x0102
+ 256: b0 91 03 01 lds r27, 0x0103
+ 25a: 80 58 subi r24, 0x80 ; 128
+ 25c: 9e 43 sbci r25, 0x3E ; 62
+ 25e: a0 40 sbci r26, 0x00 ; 0
+ 260: b0 40 sbci r27, 0x00 ; 0
+ 262: 80 93 00 01 sts 0x0100, r24
+ 266: 90 93 01 01 sts 0x0101, r25
+ 26a: a0 93 02 01 sts 0x0102, r26
+ 26e: b0 93 03 01 sts 0x0103, r27
+ 272: 80 91 04 01 lds r24, 0x0104
+ 276: 90 91 05 01 lds r25, 0x0105
+ 27a: a0 91 06 01 lds r26, 0x0106
+ 27e: b0 91 07 01 lds r27, 0x0107
+ 282: 01 96 adiw r24, 0x01 ; 1
+ 284: a1 1d adc r26, r1
+ 286: b1 1d adc r27, r1
+ 288: 80 93 04 01 sts 0x0104, r24
+ 28c: 90 93 05 01 sts 0x0105, r25
+ 290: a0 93 06 01 sts 0x0106, r26
+ 294: b0 93 07 01 sts 0x0107, r27
+ 298: 80 91 00 01 lds r24, 0x0100
+ 29c: 90 91 01 01 lds r25, 0x0101
+ 2a0: a0 91 02 01 lds r26, 0x0102
+ 2a4: b0 91 03 01 lds r27, 0x0103
+ 2a8: 81 58 subi r24, 0x81 ; 129
+ 2aa: 9e 43 sbci r25, 0x3E ; 62
+ 2ac: a0 40 sbci r26, 0x00 ; 0
+ 2ae: b0 40 sbci r27, 0x00 ; 0
+ 2b0: 60 f6 brcc .-104 ; 0x24a <__vector_16+0x3e>
+ 2b2: bf 91 pop r27
+ 2b4: af 91 pop r26
+ 2b6: 9f 91 pop r25
+ 2b8: 8f 91 pop r24
+ 2ba: 2f 91 pop r18
+ 2bc: 0f 90 pop r0
+ 2be: 0f be out 0x3f, r0 ; 63
+ 2c0: 0f 90 pop r0
+ 2c2: 1f 90 pop r1
+ 2c4: 18 95 reti
+
+000002c6 <millis>:
+ 2c6: 8f b7 in r24, 0x3f ; 63
+ 2c8: f8 94 cli
+ 2ca: 20 91 04 01 lds r18, 0x0104
+ 2ce: 30 91 05 01 lds r19, 0x0105
+ 2d2: 40 91 06 01 lds r20, 0x0106
+ 2d6: 50 91 07 01 lds r21, 0x0107
+ 2da: 8f bf out 0x3f, r24 ; 63
+ 2dc: b9 01 movw r22, r18
+ 2de: ca 01 movw r24, r20
+ 2e0: 08 95 ret
+
+000002e2 <delay>:
+ 2e2: ef 92 push r14
+ 2e4: ff 92 push r15
+ 2e6: 0f 93 push r16
+ 2e8: 1f 93 push r17
+ 2ea: 7b 01 movw r14, r22
+ 2ec: 8c 01 movw r16, r24
+ 2ee: 8f b7 in r24, 0x3f ; 63
+ 2f0: f8 94 cli
+ 2f2: 40 91 04 01 lds r20, 0x0104
+ 2f6: 50 91 05 01 lds r21, 0x0105
+ 2fa: 60 91 06 01 lds r22, 0x0106
+ 2fe: 70 91 07 01 lds r23, 0x0107
+ 302: 8f bf out 0x3f, r24 ; 63
+ 304: 2f b7 in r18, 0x3f ; 63
+ 306: f8 94 cli
+ 308: 80 91 04 01 lds r24, 0x0104
+ 30c: 90 91 05 01 lds r25, 0x0105
+ 310: a0 91 06 01 lds r26, 0x0106
+ 314: b0 91 07 01 lds r27, 0x0107
+ 318: 2f bf out 0x3f, r18 ; 63
+ 31a: 84 1b sub r24, r20
+ 31c: 95 0b sbc r25, r21
+ 31e: a6 0b sbc r26, r22
+ 320: b7 0b sbc r27, r23
+ 322: 8e 15 cp r24, r14
+ 324: 9f 05 cpc r25, r15
+ 326: a0 07 cpc r26, r16
+ 328: b1 07 cpc r27, r17
+ 32a: 60 f3 brcs .-40 ; 0x304 <delay+0x22>
+ 32c: 1f 91 pop r17
+ 32e: 0f 91 pop r16
+ 330: ff 90 pop r15
+ 332: ef 90 pop r14
+ 334: 08 95 ret
+
+00000336 <delayMicroseconds>:
+ 336: 01 97 sbiw r24, 0x01 ; 1
+ 338: 59 f0 breq .+22 ; 0x350 <delayMicroseconds+0x1a>
+ 33a: fc 01 movw r30, r24
+ 33c: ee 0f add r30, r30
+ 33e: ff 1f adc r31, r31
+ 340: ee 0f add r30, r30
+ 342: ff 1f adc r31, r31
+ 344: 32 97 sbiw r30, 0x02 ; 2
+ 346: 8f b7 in r24, 0x3f ; 63
+ 348: f8 94 cli
+ 34a: 31 97 sbiw r30, 0x01 ; 1
+ 34c: f1 f7 brne .-4 ; 0x34a <delayMicroseconds+0x14>
+ 34e: 8f bf out 0x3f, r24 ; 63
+ 350: 08 95 ret
+
+00000352 <init>:
+ 352: 78 94 sei
+ 354: 84 b5 in r24, 0x24 ; 36
+ 356: 82 60 ori r24, 0x02 ; 2
+ 358: 84 bd out 0x24, r24 ; 36
+ 35a: 84 b5 in r24, 0x24 ; 36
+ 35c: 81 60 ori r24, 0x01 ; 1
+ 35e: 84 bd out 0x24, r24 ; 36
+ 360: 85 b5 in r24, 0x25 ; 37
+ 362: 82 60 ori r24, 0x02 ; 2
+ 364: 85 bd out 0x25, r24 ; 37
+ 366: 85 b5 in r24, 0x25 ; 37
+ 368: 81 60 ori r24, 0x01 ; 1
+ 36a: 85 bd out 0x25, r24 ; 37
+ 36c: ee e6 ldi r30, 0x6E ; 110
+ 36e: f0 e0 ldi r31, 0x00 ; 0
+ 370: 80 81 ld r24, Z
+ 372: 81 60 ori r24, 0x01 ; 1
+ 374: 80 83 st Z, r24
+ 376: e1 e8 ldi r30, 0x81 ; 129
+ 378: f0 e0 ldi r31, 0x00 ; 0
+ 37a: 80 81 ld r24, Z
+ 37c: 82 60 ori r24, 0x02 ; 2
+ 37e: 80 83 st Z, r24
+ 380: 80 81 ld r24, Z
+ 382: 81 60 ori r24, 0x01 ; 1
+ 384: 80 83 st Z, r24
+ 386: e0 e8 ldi r30, 0x80 ; 128
+ 388: f0 e0 ldi r31, 0x00 ; 0
+ 38a: 80 81 ld r24, Z
+ 38c: 81 60 ori r24, 0x01 ; 1
+ 38e: 80 83 st Z, r24
+ 390: e1 eb ldi r30, 0xB1 ; 177
+ 392: f0 e0 ldi r31, 0x00 ; 0
+ 394: 80 81 ld r24, Z
+ 396: 84 60 ori r24, 0x04 ; 4
+ 398: 80 83 st Z, r24
+ 39a: e0 eb ldi r30, 0xB0 ; 176
+ 39c: f0 e0 ldi r31, 0x00 ; 0
+ 39e: 80 81 ld r24, Z
+ 3a0: 81 60 ori r24, 0x01 ; 1
+ 3a2: 80 83 st Z, r24
+ 3a4: ea e7 ldi r30, 0x7A ; 122
+ 3a6: f0 e0 ldi r31, 0x00 ; 0
+ 3a8: 80 81 ld r24, Z
+ 3aa: 84 60 ori r24, 0x04 ; 4
+ 3ac: 80 83 st Z, r24
+ 3ae: 80 81 ld r24, Z
+ 3b0: 82 60 ori r24, 0x02 ; 2
+ 3b2: 80 83 st Z, r24
+ 3b4: 80 81 ld r24, Z
+ 3b6: 81 60 ori r24, 0x01 ; 1
+ 3b8: 80 83 st Z, r24
+ 3ba: 80 81 ld r24, Z
+ 3bc: 80 68 ori r24, 0x80 ; 128
+ 3be: 80 83 st Z, r24
+ 3c0: 10 92 c1 00 sts 0x00C1, r1
+ 3c4: 08 95 ret
+
+000003c6 <pinMode>:
+ 3c6: 28 2f mov r18, r24
+ 3c8: 30 e0 ldi r19, 0x00 ; 0
+ 3ca: c9 01 movw r24, r18
+ 3cc: 85 57 subi r24, 0x75 ; 117
+ 3ce: 9f 4f sbci r25, 0xFF ; 255
+ 3d0: fc 01 movw r30, r24
+ 3d2: 94 91 lpm r25, Z+
+ 3d4: 29 58 subi r18, 0x89 ; 137
+ 3d6: 3f 4f sbci r19, 0xFF ; 255
+ 3d8: f9 01 movw r30, r18
+ 3da: 84 91 lpm r24, Z+
+ 3dc: 88 23 and r24, r24
+ 3de: 81 f0 breq .+32 ; 0x400 <pinMode+0x3a>
+ 3e0: e8 2f mov r30, r24
+ 3e2: f0 e0 ldi r31, 0x00 ; 0
+ 3e4: e8 59 subi r30, 0x98 ; 152
+ 3e6: ff 4f sbci r31, 0xFF ; 255
+ 3e8: e4 91 lpm r30, Z+
+ 3ea: f0 e0 ldi r31, 0x00 ; 0
+ 3ec: 66 23 and r22, r22
+ 3ee: 29 f4 brne .+10 ; 0x3fa <pinMode+0x34>
+ 3f0: 80 81 ld r24, Z
+ 3f2: 90 95 com r25
+ 3f4: 89 23 and r24, r25
+ 3f6: 80 83 st Z, r24
+ 3f8: 08 95 ret
+ 3fa: 80 81 ld r24, Z
+ 3fc: 89 2b or r24, r25
+ 3fe: 80 83 st Z, r24
+ 400: 08 95 ret
+
+00000402 <digitalWrite>:
+ 402: 48 2f mov r20, r24
+ 404: 50 e0 ldi r21, 0x00 ; 0
+ 406: ca 01 movw r24, r20
+ 408: 81 56 subi r24, 0x61 ; 97
+ 40a: 9f 4f sbci r25, 0xFF ; 255
+ 40c: fc 01 movw r30, r24
+ 40e: 24 91 lpm r18, Z+
+ 410: ca 01 movw r24, r20
+ 412: 85 57 subi r24, 0x75 ; 117
+ 414: 9f 4f sbci r25, 0xFF ; 255
+ 416: fc 01 movw r30, r24
+ 418: 94 91 lpm r25, Z+
+ 41a: 49 58 subi r20, 0x89 ; 137
+ 41c: 5f 4f sbci r21, 0xFF ; 255
+ 41e: fa 01 movw r30, r20
+ 420: 34 91 lpm r19, Z+
+ 422: 33 23 and r19, r19
+ 424: c1 f1 breq .+112 ; 0x496 <digitalWrite+0x94>
+ 426: 22 23 and r18, r18
+ 428: 31 f1 breq .+76 ; 0x476 <digitalWrite+0x74>
+ 42a: 23 30 cpi r18, 0x03 ; 3
+ 42c: 21 f4 brne .+8 ; 0x436 <digitalWrite+0x34>
+ 42e: 80 91 80 00 lds r24, 0x0080
+ 432: 8f 77 andi r24, 0x7F ; 127
+ 434: 05 c0 rjmp .+10 ; 0x440 <digitalWrite+0x3e>
+ 436: 24 30 cpi r18, 0x04 ; 4
+ 438: 31 f4 brne .+12 ; 0x446 <digitalWrite+0x44>
+ 43a: 80 91 80 00 lds r24, 0x0080
+ 43e: 8f 7d andi r24, 0xDF ; 223
+ 440: 80 93 80 00 sts 0x0080, r24
+ 444: 18 c0 rjmp .+48 ; 0x476 <digitalWrite+0x74>
+ 446: 21 30 cpi r18, 0x01 ; 1
+ 448: 19 f4 brne .+6 ; 0x450 <digitalWrite+0x4e>
+ 44a: 84 b5 in r24, 0x24 ; 36
+ 44c: 8f 77 andi r24, 0x7F ; 127
+ 44e: 04 c0 rjmp .+8 ; 0x458 <digitalWrite+0x56>
+ 450: 22 30 cpi r18, 0x02 ; 2
+ 452: 21 f4 brne .+8 ; 0x45c <digitalWrite+0x5a>
+ 454: 84 b5 in r24, 0x24 ; 36
+ 456: 8f 7d andi r24, 0xDF ; 223
+ 458: 84 bd out 0x24, r24 ; 36
+ 45a: 0d c0 rjmp .+26 ; 0x476 <digitalWrite+0x74>
+ 45c: 26 30 cpi r18, 0x06 ; 6
+ 45e: 21 f4 brne .+8 ; 0x468 <digitalWrite+0x66>
+ 460: 80 91 b0 00 lds r24, 0x00B0
+ 464: 8f 77 andi r24, 0x7F ; 127
+ 466: 05 c0 rjmp .+10 ; 0x472 <digitalWrite+0x70>
+ 468: 27 30 cpi r18, 0x07 ; 7
+ 46a: 29 f4 brne .+10 ; 0x476 <digitalWrite+0x74>
+ 46c: 80 91 b0 00 lds r24, 0x00B0
+ 470: 8f 7d andi r24, 0xDF ; 223
+ 472: 80 93 b0 00 sts 0x00B0, r24
+ 476: e3 2f mov r30, r19
+ 478: f0 e0 ldi r31, 0x00 ; 0
+ 47a: e3 59 subi r30, 0x93 ; 147
+ 47c: ff 4f sbci r31, 0xFF ; 255
+ 47e: e4 91 lpm r30, Z+
+ 480: f0 e0 ldi r31, 0x00 ; 0
+ 482: 66 23 and r22, r22
+ 484: 29 f4 brne .+10 ; 0x490 <digitalWrite+0x8e>
+ 486: 80 81 ld r24, Z
+ 488: 90 95 com r25
+ 48a: 89 23 and r24, r25
+ 48c: 80 83 st Z, r24
+ 48e: 08 95 ret
+ 490: 80 81 ld r24, Z
+ 492: 89 2b or r24, r25
+ 494: 80 83 st Z, r24
+ 496: 08 95 ret
+
+00000498 <digitalRead>:
+ 498: 48 2f mov r20, r24
+ 49a: 50 e0 ldi r21, 0x00 ; 0
+ 49c: ca 01 movw r24, r20
+ 49e: 81 56 subi r24, 0x61 ; 97
+ 4a0: 9f 4f sbci r25, 0xFF ; 255
+ 4a2: fc 01 movw r30, r24
+ 4a4: 24 91 lpm r18, Z+
+ 4a6: ca 01 movw r24, r20
+ 4a8: 85 57 subi r24, 0x75 ; 117
+ 4aa: 9f 4f sbci r25, 0xFF ; 255
+ 4ac: fc 01 movw r30, r24
+ 4ae: 94 91 lpm r25, Z+
+ 4b0: 49 58 subi r20, 0x89 ; 137
+ 4b2: 5f 4f sbci r21, 0xFF ; 255
+ 4b4: fa 01 movw r30, r20
+ 4b6: 34 91 lpm r19, Z+
+ 4b8: 33 23 and r19, r19
+ 4ba: 19 f4 brne .+6 ; 0x4c2 <digitalRead+0x2a>
+ 4bc: 20 e0 ldi r18, 0x00 ; 0
+ 4be: 30 e0 ldi r19, 0x00 ; 0
+ 4c0: 35 c0 rjmp .+106 ; 0x52c <digitalRead+0x94>
+ 4c2: 22 23 and r18, r18
+ 4c4: 31 f1 breq .+76 ; 0x512 <digitalRead+0x7a>
+ 4c6: 23 30 cpi r18, 0x03 ; 3
+ 4c8: 21 f4 brne .+8 ; 0x4d2 <digitalRead+0x3a>
+ 4ca: 80 91 80 00 lds r24, 0x0080
+ 4ce: 8f 77 andi r24, 0x7F ; 127
+ 4d0: 05 c0 rjmp .+10 ; 0x4dc <digitalRead+0x44>
+ 4d2: 24 30 cpi r18, 0x04 ; 4
+ 4d4: 31 f4 brne .+12 ; 0x4e2 <digitalRead+0x4a>
+ 4d6: 80 91 80 00 lds r24, 0x0080
+ 4da: 8f 7d andi r24, 0xDF ; 223
+ 4dc: 80 93 80 00 sts 0x0080, r24
+ 4e0: 18 c0 rjmp .+48 ; 0x512 <digitalRead+0x7a>
+ 4e2: 21 30 cpi r18, 0x01 ; 1
+ 4e4: 19 f4 brne .+6 ; 0x4ec <digitalRead+0x54>
+ 4e6: 84 b5 in r24, 0x24 ; 36
+ 4e8: 8f 77 andi r24, 0x7F ; 127
+ 4ea: 04 c0 rjmp .+8 ; 0x4f4 <digitalRead+0x5c>
+ 4ec: 22 30 cpi r18, 0x02 ; 2
+ 4ee: 21 f4 brne .+8 ; 0x4f8 <digitalRead+0x60>
+ 4f0: 84 b5 in r24, 0x24 ; 36
+ 4f2: 8f 7d andi r24, 0xDF ; 223
+ 4f4: 84 bd out 0x24, r24 ; 36
+ 4f6: 0d c0 rjmp .+26 ; 0x512 <digitalRead+0x7a>
+ 4f8: 26 30 cpi r18, 0x06 ; 6
+ 4fa: 21 f4 brne .+8 ; 0x504 <digitalRead+0x6c>
+ 4fc: 80 91 b0 00 lds r24, 0x00B0
+ 500: 8f 77 andi r24, 0x7F ; 127
+ 502: 05 c0 rjmp .+10 ; 0x50e <digitalRead+0x76>
+ 504: 27 30 cpi r18, 0x07 ; 7
+ 506: 29 f4 brne .+10 ; 0x512 <digitalRead+0x7a>
+ 508: 80 91 b0 00 lds r24, 0x00B0
+ 50c: 8f 7d andi r24, 0xDF ; 223
+ 50e: 80 93 b0 00 sts 0x00B0, r24
+ 512: e3 2f mov r30, r19
+ 514: f0 e0 ldi r31, 0x00 ; 0
+ 516: ee 58 subi r30, 0x8E ; 142
+ 518: ff 4f sbci r31, 0xFF ; 255
+ 51a: e4 91 lpm r30, Z+
+ 51c: f0 e0 ldi r31, 0x00 ; 0
+ 51e: 80 81 ld r24, Z
+ 520: 20 e0 ldi r18, 0x00 ; 0
+ 522: 30 e0 ldi r19, 0x00 ; 0
+ 524: 89 23 and r24, r25
+ 526: 11 f0 breq .+4 ; 0x52c <digitalRead+0x94>
+ 528: 21 e0 ldi r18, 0x01 ; 1
+ 52a: 30 e0 ldi r19, 0x00 ; 0
+ 52c: c9 01 movw r24, r18
+ 52e: 08 95 ret
+
+00000530 <_exit>:
+ 530: f8 94 cli
+
+00000532 <__stop_program>:
+ 532: ff cf rjmp .-2 ; 0x532 <__stop_program>
diff --git a/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.map b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.map
new file mode 100644
index 0000000..57d6f9c
--- /dev/null
+++ b/ESS1995test_328p/bin/Debug/ESS1995test_328p.elf.map
@@ -0,0 +1,506 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o (delay)
+../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o (pinMode)
+../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o) (port_to_mode_PGM)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_clear_bss)
+
+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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x534
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x4b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x00000068 port_to_mode_PGM
+ 0x0000006d port_to_output_PGM
+ 0x00000072 port_to_input_PGM
+ 0x00000077 digital_pin_to_port_PGM
+ 0x0000008b digital_pin_to_bit_mask_PGM
+ 0x0000009f digital_pin_to_timer_PGM
+ 0x000000b4 . = ALIGN (0x2)
+ *fill* 0x000000b3 0x1 00
+ 0x000000b4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000b4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000b4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000b4 __ctors_start = .
+ *(.ctors)
+ 0x000000b4 __ctors_end = .
+ 0x000000b4 __dtors_start = .
+ *(.dtors)
+ 0x000000b4 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000b4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000b4 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000b4 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000c0 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x000000c0 __do_copy_data
+ .init4 0x000000d6 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000d6 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000e6 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000ee 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000ee __vector_22
+ 0x000000ee __vector_1
+ 0x000000ee __vector_24
+ 0x000000ee __vector_12
+ 0x000000ee __bad_interrupt
+ 0x000000ee __vector_6
+ 0x000000ee __vector_3
+ 0x000000ee __vector_23
+ 0x000000ee __vector_25
+ 0x000000ee __vector_11
+ 0x000000ee __vector_13
+ 0x000000ee __vector_17
+ 0x000000ee __vector_19
+ 0x000000ee __vector_7
+ 0x000000ee __vector_5
+ 0x000000ee __vector_4
+ 0x000000ee __vector_9
+ 0x000000ee __vector_2
+ 0x000000ee __vector_21
+ 0x000000ee __vector_15
+ 0x000000ee __vector_8
+ 0x000000ee __vector_14
+ 0x000000ee __vector_10
+ 0x000000ee __vector_18
+ 0x000000ee __vector_20
+ .text 0x000000f2 0x11a obj/Debug/main.o
+ 0x000000f2 writeByte(unsigned char)
+ 0x00000146 main
+ 0x000001d6 SCLKcycle()
+ .text 0x0000020c 0x1ba ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x0000020c __vector_16
+ 0x000002c6 millis
+ 0x000002e2 delay
+ 0x00000336 delayMicroseconds
+ 0x00000352 init
+ .text 0x000003c6 0x16a ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x000003c6 pinMode
+ 0x00000402 digitalWrite
+ 0x00000498 digitalRead
+ .text 0x00000530 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .text 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000530 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000530 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00000530 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x00000530 exit
+ 0x00000530 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00000530 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00000534 _etext = .
+
+.data 0x00800100 0x0 load address 0x00000534
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x0 obj/Debug/main.o
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800100 . = ALIGN (0x2)
+ 0x00800100 _edata = .
+ 0x00800100 PROVIDE (__data_end, .)
+
+.bss 0x00800100 0x8
+ 0x00800100 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800100 0x0 obj/Debug/main.o
+ .bss 0x00800100 0x8 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00800100 timer0_clock_cycles
+ 0x00800104 timer0_millis
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ 0x00800108 PROVIDE (__bss_end, .)
+ 0x00000534 __data_load_start = LOADADDR (.data)
+ 0x00000534 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800108 0x0
+ 0x00800108 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800108 PROVIDE (__noinit_end, .)
+ 0x00800108 _end = .
+ 0x00800108 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0xc9c
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x5e8 obj/Debug/main.o
+ 0x5f4 (size before relaxing)
+
+.stabstr 0x00000000 0x18d2
+ *(.stabstr)
+ .stabstr 0x00000000 0x18d2 /usr/lib/gcc/avr/4.3.5/../../../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 0x40
+ *(.debug_aranges)
+ .debug_aranges
+ 0x00000000 0x20 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_pubnames
+ 0x00000000 0x16c
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0x80 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_pubnames
+ 0x00000080 0x3f ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_pubnames
+ 0x000000bf 0xad ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_info 0x00000000 0x6f2
+ *(.debug_info)
+ .debug_info 0x00000000 0x1dd ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_info 0x000001dd 0x3f6 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_info 0x000005d3 0x11f ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x2e1
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x117 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_abbrev 0x00000117 0x162 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_abbrev 0x00000279 0x68 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_line 0x00000000 0x551
+ *(.debug_line)
+ .debug_line 0x00000000 0x251 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_line 0x00000251 0x233 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_line 0x00000484 0xcd ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_frame 0x00000000 0xa0
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x60 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_frame 0x00000060 0x40 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_str 0x00000000 0x227
+ *(.debug_str)
+ .debug_str 0x00000000 0xd5 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x115 (size before relaxing)
+ .debug_str 0x000000d5 0x117 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x197 (size before relaxing)
+ .debug_str 0x000001ec 0x3b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x13e (size before relaxing)
+
+.debug_loc 0x00000000 0x1fa
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xb6 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_loc 0x000000b6 0x144 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Debug/ESS1995test_328p.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+SCLKcycle() obj/Debug/main.o
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+delay ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+delayMicroseconds ../arduino_libs/core0022_328p.a(wiring.c.o)
+digitalRead ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+digitalWrite ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+digital_pin_to_bit_mask_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_port_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_timer_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+init ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+main obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+millis ../arduino_libs/core0022_328p.a(wiring.c.o)
+pinMode ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+port_to_input_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_mode_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_output_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+timer0_clock_cycles ../arduino_libs/core0022_328p.a(wiring.c.o)
+timer0_millis ../arduino_libs/core0022_328p.a(wiring.c.o)
+writeByte(unsigned char) obj/Debug/main.o
diff --git a/ESS1995test_328p/bin/Release/ESS1995test_328p.elf b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf
new file mode 100755
index 0000000..8759771
--- /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..a6cb0f1
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.hex
@@ -0,0 +1,1122 @@
+:100000000C9463000C94930A0C94C00A0C948B001B
+:100010000C948B000C948B000C948B000C94EC07CC
+:100020000C948B000C948B000C948B000C948B0024
+:100030000C948B000C948B000C948B000C948B0014
+:100040000C94A4130C948B000C9414030C948B004C
+:100050000C948B000C948B000C948B000C948B00F4
+:100060000C948B000C948B000200000000240027ED
+:10007000002A0000000000250028002B00000000DE
+:1000800000230026002900040404040404040402DC
+:100090000202020202030303030303010204081025
+:1000A00020408001020408102001020408102000F2
+:1000B0000000070002010000030406000000000029
+:1000C00000000000A10411241FBECFEFD8E0DEBF66
+:1000D000CDBF12E0A0E0B1E0E0E5F4E402C005909D
+:1000E0000D92AA3BB107D9F713E0AAEBB2E001C029
+:1000F0001D92A239B107E1F710E0C6ECD0E004C0D0
+:100100002297FE010E94881EC43CD107C9F70E94B5
+:10011000EF010C9426220C9400000F931F9360EDC6
+:1001200077E080E090E00E942C1408E513E0C8011D
+:1001300060E071E00E94120560ED77E080E090E001
+:100140000E942C14C8010E9482041F910F910895EF
+:100150000F931F9386E060E00E941C1508E513E0F2
+:10016000C80140E056E960E070E00E94A503C801C4
+:100170006BE071E00E941205C80169E171E00E9424
+:100180001205C80163E371E00E941205C80161E431
+:1001900071E00E941205C8016FE471E00E9412052F
+:1001A000C80160E671E00E9412050E948D001F9157
+:1001B0000F910895F894FFCF84E061E00E946F15DD
+:1001C00083E061E00E946F158AE090E00E94521483
+:1001D00084E060E00E946F158AE090E00E94521473
+:1001E00083E060E00E946F158AE090E00E94521464
+:1001F000089584E060E00E946F158AE090E00E941C
+:10020000521483E061E00E946F158AE090E00E9442
+:10021000521484E061E00E946F1508958AE090E036
+:100220000E94521483E060E00E946F1584E190E028
+:100230000E94521483E061E00E946F158AE090E012
+:100240000E94521408950F931F938AE090E00E9439
+:10025000521400E017E084E00E94A415682F90E09B
+:10026000012E02C0880F991F0A94E2F7082B8CE038
+:100270000E946F150E940E01115068F70E940E0136
+:10028000802F1F910F9108958AE090E00E945214F0
+:1002900083E061E00E946F1584E190E00E945214B7
+:1002A00083E060E00E946F158AE090E00E945214A3
+:1002B00008951F93CF93DF9317E0C82FD0E0BE01BE
+:1002C000012E02C0759567950A94E2F7617084E08B
+:1002D0000E946F150E944401115088F784E061E08C
+:1002E0000E946F150E944401DF91CF911F910895E4
+:1002F00084E060E00E941C1583E061E00E946F15BD
+:10030000089584E061E00E941C1583E061E00E9492
+:100310006F150895EF92FF920F931F938091C5027E
+:10032000879588278795F090C602FF0CFF0CFF0C7D
+:10033000F82A8091C702F82A8091C9028295880F15
+:10034000807E0091CA02000F000F000F082B8091E1
+:10035000C802082B9091CB02979599279795809189
+:10036000CF028295807F892B9091D102892B909129
+:10037000D302990F990F990F982BE090CE02EE0CB3
+:10038000E92A9091CC029795992797958091CD0273
+:100390008295880F880F807C892B9091D202892BBF
+:1003A0001091D002110F110F182B0E9481010E9491
+:1003B000DC0088EC0E9459018F2D0E945901802F8A
+:1003C0000E9459018E2D0E945901812F0E945901CE
+:1003D0000E94F9001F910F91FF90EF9008958F9266
+:1003E0009F92AF92BF92CF92DF92EF92FF920F93C4
+:1003F0001F93DF93CF93CDB7DEB727970FB6F8944F
+:10040000DEBF0FBECDBF0E945C1485E061E00E949C
+:100410001C1585E060E00E946F150E94A80082E034
+:1004200060E00E941C1583E061E00E941C1586E0DC
+:1004300060E00E941C158CE061E00E941C158DE0BC
+:1004400061E00E941C158DE061E00E946F1585E05F
+:1004500061E00E946F156AEF70E080E090E00E941A
+:100460002C140E948A01AAEFEA2EF12C4E01089466
+:10047000811C911CF4E0AF2EB12CAC0EBD1EE2E04D
+:10048000CE2ED12CCC0EDD1E82E00E94A415019749
+:1004900009F0BCC08CE061E00E946F158DE060E067
+:1004A0000E946F150E9481010E94DC0089EC0E946D
+:1004B000590182E00E94A415892B09F0A7C08DE0A4
+:1004C00061E00E946F150E9478010BEB12E00E9420
+:1004D0002301F80181938F01F2E0053C1F07B9F772
+:1004E0000E9481010E94F9008091BB0289832091C2
+:1004F000BD0230E040E050E0542F432F322F22273E
+:100500008091BE0290E0A0E0B0E0282B392B4A2B6E
+:100510005B2B8091BC0290E0A0E0B0E0877090700F
+:10052000A070B070DC0199278827282B392B4A2B23
+:100530005B2B2C833D834E835F832091C0022295E9
+:1005400026952695237030E08091BF0290E0880FB9
+:10055000991F880F991F282B392B3B832A8317C09B
+:1005600088E593E00E945E04823029F0833061F0D8
+:10057000813069F404C02AEFE22EF12C08C098EE15
+:10058000E92E93E0F92E03C082E3E82EF12C88E5F2
+:1005900093E00E9433041816190614F386E00E94B3
+:1005A000A4152091BA02892B59F1222319F481E074
+:1005B0008093BA0288E593E063E771E042E050E09F
+:1005C0000E94F30488E593E062E771E041E050E0C7
+:1005D0000E94F30488E593E0B40141E050E00E94FA
+:1005E000F30488E593E0B50144E050E00E94F30491
+:1005F00088E593E0B60142E050E00E94F30406C0B3
+:10060000222321F00E948D001092BA02B70180E0EF
+:1006100090E00E942C148CE060E00E946F158DE049
+:1006200060E00E946F1530CF1F920F920FB60F92AD
+:1006300011242F933F934F938F939F93EF93FF93A7
+:100640004091C600E0915403F091550331969F010B
+:100650002F77307031978091560390915703281768
+:10066000390739F0EC52FD4F408330935503209306
+:100670005403FF91EF919F918F914F913F912F9153
+:100680000F900FBE0F901F9018958F92AF92CF9240
+:10069000DF92EF92FF920F931F93DF93CF93CDB72B
+:1006A000DEB7FC0189E791E09183808373836283E5
+:1006B000558344833783268311870087F386E28638
+:1006C000D586C486A68687868D85808B8E85818B10
+:1006D0008F85828BCF91DF911F910F91FF90EF90CB
+:1006E000DF90CF90AF908F9008958F92AF92CF927E
+:1006F000DF92EF92FF920F931F93DF93CF93CDB7CB
+:10070000DEB7FC0189E791E0918380837383628384
+:10071000558344833783268311870087F386E286D7
+:10072000D586C486A68687868D85808B8E85818BAF
+:100730008F85828BCF91DF911F910F91FF90EF906A
+:10074000DF90CF90AF908F900895EF92FF920F932C
+:100750001F938C019A01AB01DC011896ED91FC917D
+:10076000199791E0E92EF12CC70152960C9002C026
+:10077000880F991F0A94E2F7808360E874E88EE19D
+:1007800090E00E94121E215030404040504056954B
+:10079000479537952795D8011496ED91FC911597BB
+:1007A00030831696ED91FC91179720831A96ED9160
+:1007B000FC911B972081C7011E960C901E9702C0CA
+:1007C000880F991F0A94E2F7282B20831A96ED913F
+:1007D000FC911B972081C7011F960C901F9702C0A8
+:1007E000880F991F0A94E2F7282B20831A96ED911F
+:1007F000FC911B97808150960C9002C0EE0CFF1C60
+:100800000A94E2F78E2980831F910F91FF90EF9059
+:100810000895FC01A285B3854C9121E030E0C90127
+:10082000068402C0880F991F0A94E2F780958423FA
+:100830008C93A285B3854C91C901078402C0880FAF
+:10084000991F0A94E2F7809584238C93A285B3853F
+:100850008C91008802C0220F331F0A94E2F7209582
+:1008600028232C930895DC011296ED91FC911397A7
+:10087000E058FF4F2191319180819181281B390BE4
+:100880002F773070C9010895DC011296ED91FC912B
+:100890001397EE57FF4F2081318192918291E0585A
+:1008A000F0408217930719F42FEF3FEF05C0E20FD6
+:1008B000F31F8081282F30E0C9010895DC011296D2
+:1008C000ED91FC911397DF01AE57BF4F2D913C91F5
+:1008D0001197E058FF4F80819181E058F0408217D6
+:1008E000930719F42FEF3FEF0BC0E20FF31F808146
+:1008F0002F5F3F4F2F7730702D933C93282F30E0A0
+:10090000C9010895DC011296ED91FC911397EE5701
+:10091000FF4F80819181929382930895FC01A0857D
+:10092000B18521898C9190E0022E02C09595879522
+:100930000A94E2F780FFF6CF0484F585E02D60830A
+:10094000089589E791E0909359038093580384EDCB
+:1009500092E090935B0380935A0385EC90E0909330
+:100960005D0380935C0384EC90E090935F0380933D
+:100970005E0380EC90E0909361038093600381ECD0
+:1009800090E0909363038093620386EC90E09093F1
+:1009900065038093640384E08093660383E080931F
+:1009A000670387E08093680385E08093690381E0B3
+:1009B00080936A0308950F931F93CF93DF938C0165
+:1009C000EB0109C02196D801ED91FC910190F081D5
+:1009D000E02DC801099568816623A1F7DF91CF91C9
+:1009E0001F910F910895EF92FF920F931F93CF9352
+:1009F000DF938C017B01EA010CC0D7016D917D0171
+:100A0000D801ED91FC910190F081E02DC80109958C
+:100A10002197209791F7DF91CF911F910F91FF9030
+:100A2000EF900895DC01ED91FC910280F381E02DBF
+:100A300009950895CF92DF92EF92FF920F931F9343
+:100A4000CF93DF936C017B01C0E0D0E00EC0D601F4
+:100A5000ED91FC9100811181C701BE010E94B40B90
+:100A6000682FC601F80109952196F70184819581C7
+:100A7000C817D90760F3DF91CF911F910F91FF90B5
+:100A8000EF90DF90CF9008952F923F924F925F9218
+:100A90006F927F928F929F92AF92BF92CF92DF928E
+:100AA000EF92FF920F931F93DF93CF93CDB7DEB7F3
+:100AB000A0970FB6F894DEBF0FBECDBF1C016A0130
+:100AC0007B01411551056105710549F440E350E092
+:100AD00060E070E020E030E00E94100656C08824FC
+:100AE00099245401422E55246624772401E010E015
+:100AF0000C0F1D1F080D191DC701B601A30192019E
+:100B00000E94121EF80160830894811C911CA11C94
+:100B1000B11CC701B601A30192010E94121EC901B6
+:100B2000DA016C017D01C114D104E104F104F1F694
+:100B300081E0E82EF12CEC0EFD1EE80CF91C3E01C4
+:100B40000894611C711CD501C4010197A109B10968
+:100B50006C01C818D90816C0F601EE0DFF1D4081C2
+:100B60004A3010F4405D01C0495C552747FD50955F
+:100B7000652F752FC10120E030E00E941006089417
+:100B8000E108F1086E147F0439F7A0960FB6F894C7
+:100B9000DEBF0FBECDBFCF91DF911F910F91FF90B0
+:100BA000EF90DF90CF90BF90AF909F908F907F900D
+:100BB0006F905F904F903F902F900895DC0121152A
+:100BC000310541F4ED91FC910190F081E02D642F0D
+:100BD000099508950E9444050895EF92FF920F939E
+:100BE0001F939A017B0100E010E0B801A7010E9469
+:100BF000DE051F910F91FF90EF900895EF92FF9205
+:100C00000F931F939A01E62EFF2400E010E0B80135
+:100C1000A7010E94DE051F910F91FF90EF900895AC
+:100C2000EF92FF920F931F93CF93DF93EC017A0122
+:100C30008B012115310541F4E881F9810190F081A2
+:100C4000E02D642F09951BC02A303105B1F477FFE0
+:100C500010C04DE250E060E070E020E030E00E9423
+:100C6000100610950095F094E094E11CF11C011D14
+:100C7000111DCE01B801A7012AE00E944405DF91B1
+:100C8000CF911F910F91FF90EF900895EF92FF92F7
+:100C90000F931F937B019A010027F7FC0095102FFB
+:100CA000B801A7010E9410061F910F91FF90EF90CD
+:100CB0000895EF92FF920F931F93E62E9A01FF245F
+:100CC000E7FCF0940F2D1F2DB801A7010E9410061C
+:100CD0001F910F91FF90EF9008950F931F938C0138
+:100CE0004DE050E060E070E020E030E00E9410064F
+:100CF000C8014AE050E060E070E020E030E00E948F
+:100D000010061F910F9108950F931F938C010E945D
+:100D1000DE05C8010E946D061F910F910895CF92C4
+:100D2000DF92EF92FF920F931F938C019A016B0158
+:100D3000EE24FF24B701A6010E94DE05C8010E942F
+:100D40006D061F910F91FF90EF90DF90CF90089567
+:100D5000CF92DF92EF92FF920F931F938C019A0133
+:100D6000C62EDD24EE24FF24B701A6010E94DE0575
+:100D7000C8010E946D061F910F91FF90EF90DF90C8
+:100D8000CF9008950F931F938C010E941205C80104
+:100D90000E946D061F910F9108950F931F938C0170
+:100DA0000E941A05C8010E946D061F910F910895B7
+:100DB0000F931F938C010E941006C8010E946D06BC
+:100DC0001F910F910895CF92DF92EF92FF920F93B0
+:100DD0001F938C016B019A01EE24D7FCE094FE2C4A
+:100DE000B701A6010E941006C8010E946D061F915E
+:100DF0000F91FF90EF90DF90CF900895CF92DF9208
+:100E0000EF92FF920F931F938C01C62E9A01DD245F
+:100E1000C7FCD094ED2CFD2CB701A6010E94100652
+:100E2000C8010E946D061F910F91FF90EF90DF9017
+:100E3000CF9008959F92AF92BF92CF92DF92EF92A0
+:100E4000FF920F931F93CF93DF93EC017A018B01F5
+:100E5000922ECB01BA0120E030E040E050E00E9449
+:100E6000A31A88236CF4CE014DE250E060E070E0FC
+:100E700020E030E00E94100617FB109517F910953E
+:100E800020E030E040E05FE3AA240BC0CA01B901D2
+:100E900020E030E040E251E40E94C7199B01AC0120
+:100EA000A394A91498F3C801B7010E94A0185B018C
+:100EB0006C010E94F7167B018C01CE01B801A701DD
+:100EC0002AE030E00E94DE05992029F0CE0169E990
+:100ED00071E00E941205C801B7010E94851B9B01A9
+:100EE000AC01C601B5010E946F1822C020E030E0BD
+:100EF00040E251E40E94CD187B018C010E94311B1D
+:100F00005B016C01CC24B7FCC094DC2CCE01B60193
+:100F1000A5012AE030E00E941006C601B5010E943A
+:100F2000D31A9B01AC01C801B7010E946F189A94B3
+:100F30009920E1F6DF91CF911F910F91FF90EF90F3
+:100F4000DF90CF90BF90AF909F9008950E941A07B6
+:100F500008950F931F938C010E941A07C8010E94E5
+:100F60006D061F910F910895813041F0813018F086
+:100F70008230D1F409C010926E00089580916F0004
+:100F80008D7F80936F000895809170008D7F809396
+:100F9000700081E08093B0008091B100887F846010
+:100FA0008093B1001092B30008951F93182F809181
+:100FB000A501811711F09FEF06C0E8E6F0E09491DB
+:100FC0008FEF8093A501892F0E94B407812F60E0E5
+:100FD0000E946F151F9108951F920F920FB60F92E6
+:100FE00011242F933F934F935F936F937F938F932E
+:100FF0009F93AF93BF93EF93FF9380917903909169
+:101000007A03A0917B03B0917C030097A105B10501
+:1010100051F1E0917D03F0917E03808190917F03F7
+:10102000892780838091790390917A03A0917B0333
+:10103000B0917C03181619061A061B06C4F4809199
+:10104000790390917A03A0917B03B0917C0301977F
+:10105000A109B1098093790390937A03A0937B034C
+:10106000B0937C0304C08091A5010E94D507FF9135
+:10107000EF91BF91AF919F918F917F916F915F9110
+:101080004F913F912F910F900FBE0F901F90189589
+:101090002F923F925F926F927F928F929F92AF9228
+:1010A000BF92CF92DF92EF92FF920F931F93DF9345
+:1010B000CF9300D000D0CDB7DEB7A82F1B01298376
+:1010C0003A834B835C838091A5018A1721F4E8E67B
+:1010D000F0E0549082C08F3F09F0D9C1A093A501E0
+:1010E000E8E6F0E054902FEF521609F4D0C181E009
+:1010F000581639F192E0591609F449C0552009F003
+:101100006CC014BC15BC84B5826084BD85B581609B
+:1011100085BD2A2F30E0F901E957FF4FE491F0E057
+:10112000EE0FFF1FED58FF4F859194919093700340
+:1011300080936F0325563F4FF9018491809371038B
+:101140004EC01092800010928100809181008860D2
+:1011500080938100809181008160809381002A2F9B
+:1011600030E0F901E957FF4FE491F0E0EE0FFF1F87
+:10117000ED58FF4F85919491909377038093760378
+:1011800025563F4FF90184918093780328C010922F
+:10119000B0001092B1008091B00082608093B000E6
+:1011A0008091B10081608093B1002A2F30E0F90175
+:1011B000E957FF4FE491F0E0EE0FFF1FED58FF4FAE
+:1011C0008591949190937E0380937D0325563F4FA4
+:1011D000F901849180937F0302C057FC58C18A2F84
+:1011E00061E00E941C15552021F0F2E05F1609F025
+:1011F000BDC031018824992460E079E08DE390E05E
+:10120000A40193010E94121E59016A018601750111
+:101210000894E108F108010911092FEFE216F10421
+:101220000105110509F008F498C060E271EA87E051
+:1012300090E0A40193010E94121E79018A01089492
+:10124000E108F1080109110982E05816C1F49FEF85
+:10125000E916F1040105110509F008F483C068E4FA
+:1012600078EE81E090E0A40193010E94121E7901C2
+:101270008A010894E108F1080109110983E0AFEF40
+:10128000EA16F1040105110509F008F467C064E2EB
+:1012900074EF80E090E0A40193010E94121E790196
+:1012A0008A010894E108F10801091109552011F497
+:1012B00083E01DC0B2E05B1611F084E018C0EFEFD0
+:1012C000EE16F1040105110509F008F4DEC062E133
+:1012D0007AE780E090E0A40193010E94121E790158
+:1012E0008A010894E108F1080109110985E0FFEF7E
+:1012F000EF16F1040105110589F180F169E07DE344
+:1013000080E090E0A40193010E94121E79018A01FD
+:101310000894E108F10801091109552011F086E04F
+:1013200001C084E02FEFE216F10401051105B1F0D0
+:10133000A8F0860175019AE016950795F794E79451
+:101340009A95D1F70894E108F1080109110955208F
+:1013500011F087E008C085E003C081E0552019F452
+:1013600085BD3AC082E08093B10036C05101CC24E3
+:10137000DD2460E079E08DE390E0A60195010E9414
+:10138000121E79018A010894E108F1080109110986
+:1013900080E0E81680E0F80681E0080780E01807A2
+:1013A00010F491E010C064E274EF80E090E0A601D8
+:1013B00095010E94121E79018A010894E108F10842
+:1013C0000109110993E0A1E05A1631F480918100DE
+:1013D000887F982B9093810089819A81AB81BC8111
+:1013E0000097A105B10529F48FEF9FEFAFEFBFEF95
+:1013F00013C0220C331CB10180E090E029813A81B6
+:101400004B815C810E94F31D28EE33E040E050E008
+:101410000E94121EC901DA01E1E05E16A1F0F2E0BD
+:101420005F1619F1552099F5E7BC80936B039093F3
+:101430006C03A0936D03B0936E0380916E00826085
+:1014400080936E0024C0F0928900E092880080931F
+:10145000720390937303A0937403B0937503809108
+:101460006F00826080936F0012C0E092B30080939F
+:10147000790390937A03A0937B03B0937C038091CC
+:10148000700082608093700002C084E06CCF0F9087
+:101490000F900F900F90CF91DF911F910F91FF90C0
+:1014A000EF90DF90CF90BF90AF909F908F907F9004
+:1014B0006F905F903F902F900895823000F5E82F55
+:1014C000F0E0EE0FFF1FE058FC4F7183608388232C
+:1014D00019F08130A1F408C0809169008C7F842BC1
+:1014E00080936900E89A089580916900440F551F20
+:1014F000440F551F837F842B80936900E99A0895D8
+:10150000823080F4882319F0813021F402C0E898F9
+:1015100001C0E998E82FF0E0EE0FFF1FE058FC4F04
+:101520001182108208951F920F920FB60F9211240C
+:101530002F933F934F935F936F937F938F939F93DB
+:10154000AF93BF93EF93FF938091800390918103BA
+:10155000892B29F0E0918003F09181030995FF9197
+:10156000EF91BF91AF919F918F917F916F915F911B
+:101570004F913F912F910F900FBE0F901F90189594
+:101580001F920F920FB60F9211242F933F934F93F8
+:101590005F936F937F938F939F93AF93BF93EF93DB
+:1015A000FF938091820390918303892B29F0E0912E
+:1015B0008203F09183030995FF91EF91BF91AF9161
+:1015C0009F918F917F916F915F914F913F912F915B
+:1015D0000F900FBE0F901F9018952F923F924F9231
+:1015E0005F926F927F928F929F92AF92BF92CF92B3
+:1015F000DF92EF92FF920F931F93DF93CF93CDB7BC
+:10160000DEB73B014C0119012A016D897E898F8962
+:10161000988D6A197B098C099D09621A730A840ADC
+:10162000950AA40193010E94F31DE218F30804092E
+:101630001509A80197010E94341E2A0D3B1D4C1D5F
+:101640005D1DB901CA01CF91DF911F910F91FF90EC
+:10165000EF90DF90CF90BF90AF909F908F907F9052
+:101660006F905F904F903F902F900895089570E095
+:10167000382F20E0622B732BCB010895EF92FF925D
+:101680000F931F937B018C016115710581059105F5
+:1016900029F420E030E040E050E00BC00E94E41F5D
+:1016A000A80197010E94341EAC01CB01DA019C0114
+:1016B000AD01B901CA011F910F91FF90EF900895FC
+:1016C000EF92FF920F931F937B018C0162177307B8
+:1016D0008407950764F4261B370B480B590BCA0186
+:1016E000B9010E943E0BE60EF71E081F191FB70135
+:1016F000C8011F910F91FF90EF900895009729F076
+:10170000BC0180E090E00E94E91F0895FC01019077
+:10171000F081E02DE60FF71F80810895DC01ED9147
+:10172000FC911197309751F014968D919C911597DB
+:101730006817790718F4E60FF71F40830895FC0136
+:101740009B01848195816817790728F460817181F4
+:101750006115710529F41092840364E873E002C0F6
+:10176000620F731FCB010895FC010190F081E02D01
+:10177000E60FF71F80810895FC01808191810E940E
+:10178000C02008950F931F93CF93DF93FC018B012B
+:1017900041155105A1F06115710589F0848195818C
+:1017A000EA0121978C179D0708F4EC016081718193
+:1017B000C801AE010E943C21C00FD11F1882DF91E9
+:1017C000CF911F910F9108950F931F93CF93DF93A4
+:1017D000FC018B0141155105A1F06115710589F0DE
+:1017E00084819581EA0121978C179D0708F4EC010B
+:1017F00060817181C801AE010E943C21C00FD11FE0
+:101800001882DF91CF911F910F9108950F931F932D
+:101810008C01FC01808191810E94391FF8011382A3
+:101820001282158214821F910F910895FC01DB0131
+:1018300014962D913C91159784819581821B930B71
+:101840008417950710F480E00895808191816D914F
+:101850007C91840F951FA9010E942E219C0180E09C
+:10186000232B09F481E00895FC01DB0124813581FB
+:1018700014968D919C9115972817390710F480E0E4
+:101880000895CF0140E050E00E94160C0895DF92C9
+:10189000EF92FF920F931F93CF93DF93EC018C8114
+:1018A0009D8148175907C8F47A010894E11CF11C7E
+:1018B000E881F981EE0DFF1DD08010820881198129
+:1018C000772767FD7095C8010E944B219C010E0D82
+:1018D0001F1DF801D082009719F4EFEFFFEF05C04C
+:1018E00088819981F901E81BF90BCF01DF91CF9134
+:1018F0001F910F91FF90EF90DF900895FC014481BC
+:101900005581415050400E94470C0895CF93DF937A
+:10191000FC01DB01848195814817590760F4C0817F
+:10192000D1816D917C91CE01840F951F0E9456212B
+:101930009C01009719F42FEF3FEF02C02C1B3D0BC9
+:10194000C901DF91CF91089540E050E00E94860CDC
+:101950000895CF93DF93FC0184819581481759073F
+:1019600068F4C081D181772767FD7095CE01840F1F
+:10197000951F0E9413219C01009719F42FEF3FEF50
+:1019800002C02C1B3D0BC901DF91CF91089540E0AF
+:1019900050E00E94A90C0895DC01FB0114962D91E2
+:1019A0003C911597848195812817390711F080E0C3
+:1019B0000895608171818D919C910E941E219C01EE
+:1019C00080E0232B09F481E00895FC01DB012481F0
+:1019D000358114968D919C9115972817390710F42D
+:1019E00080E00895281B390B808191816D917C9155
+:1019F000820F931F0E941E219C0180E0232B09F47B
+:101A000081E00895DC01FB01608171818D919C91E1
+:101A10000E941E21292F332727FD309520953095D0
+:101A20002227330F221F3327C9010895DC01FB0150
+:101A3000608171818D919C910E941E2140E050E057
+:101A40001816190614F041E050E0CA010895DC01AF
+:101A5000FB01608171818D919C910E941E2140E06B
+:101A600050E01816190614F441E050E0CA01089538
+:101A7000DC01FB01608171818D919C910E941E218E
+:101A8000292F332727FD30952227330F221F332795
+:101A9000C9010895DC01FB0114962D913C91159725
+:101AA000848195812817390751F4608171818D9166
+:101AB0009C910E941E219C0180E0232B09F081E073
+:101AC00090E00895DC01FB0114962D913C9115974F
+:101AD000848195812817390711F080E00BC060815F
+:101AE00071818D919C910E941E219C0180E0232B8D
+:101AF00009F481E090E00895FC01DB016D917C9197
+:101B0000808191810E941E2108950F931F93CF938E
+:101B1000DF93EC018B01FB01648175818C819D81D8
+:101B2000680F791F7D836C838A819B818617970755
+:101B3000B8F46F5F7F4F888199810E94F21F4C81BA
+:101B40005D81009729F0998388835B834A8308C06D
+:101B5000F80184819581481B590B5D834C8307C034
+:101B6000F80160817181888199810E940821CE01EC
+:101B7000DF91CF911F910F9108950E94850D0895D7
+:101B8000CF93DF93EC01CB017B836A8301960E94A4
+:101B90008C1E99838883009721F41B821A821D82F0
+:101BA0001C82DF91CF9108950F931F93CF93DF9302
+:101BB000EC018B018617970709F1FB012481358120
+:101BC0008C819D818217930750F4888199810E94AE
+:101BD000391FF80164817581CE010E94C00D2881F2
+:101BE00039812115310551F0F801848195819D835A
+:101BF0008C8360817181C9010E942721CE01DF9110
+:101C0000CF911F910F9108951F93CF93DF93EC0114
+:101C1000162F81E090E09D838C83CE0161E070E01F
+:101C20000E94C00DE881F981309721F01083E8818E
+:101C3000F9811182DF91CF911F9108951F93CF9366
+:101C4000DF93EC01162F81E090E09D838C83CE0121
+:101C500061E070E00E94C00DE881F981309721F0C9
+:101C60001083E881F9811182DF91CF911F9108954E
+:101C70001F93CF93DF93EC01162F81E090E09D83BB
+:101C80008C83CE0161E070E00E94C00DE881F98193
+:101C9000309721F01083E881F9811182DF91CF9193
+:101CA0001F9108951F93CF93DF93EC01162F81E0CE
+:101CB00090E09D838C83CE0161E070E00E94C00DB6
+:101CC000E881F981309721F01083E881F981118250
+:101CD000DF91CF911F9108950F931F93CF93DF93BF
+:101CE0008C01EB016C817D81FC01758364830E9412
+:101CF000C00DF80180819181009721F06881798180
+:101D00000E942721DF91CF911F910F9108950F938A
+:101D10001F93CF93DF938C01EB016C817D81FC01DC
+:101D2000758364830E94C00DF801808191810097C2
+:101D300021F0688179810E942721DF91CF911F9145
+:101D40000F910895EF92FF920F931F93DF93CF931C
+:101D5000CDB7DEB7A1970FB6F894DEBF0FBECDBFEB
+:101D60008C01CB01BA017E010894E11CF11CA70192
+:101D70002AE030E00E94DA21F70101900020E9F723
+:101D80003197EE19FF09D8011596FC93EE9314973D
+:101D9000C801BF010E94C00DF801808191810097A8
+:101DA00019F0B7010E942721A1960FB6F894DEBF63
+:101DB0000FBECDBFCF91DF911F910F91FF90EF909C
+:101DC0000895EF92FF920F931F93DF93CF93CDB7B8
+:101DD000DEB7A1970FB6F894DEBF0FBECDBF8C0162
+:101DE000CB01BA017E010894E11CF11CA7012AE095
+:101DF00030E00E94DA21F70101900020E9F73197E5
+:101E0000EE19FF09D8011596FC93EE931497C801BB
+:101E1000BF010E94C00DF80180819181009719F0E7
+:101E2000B7010E942721A1960FB6F894DEBF0FBE1E
+:101E3000CDBFCF91DF911F910F91FF90EF9008954B
+:101E4000EF92FF920F931F93DF93CF93CDB7DEB73F
+:101E5000A1970FB6F894DEBF0FBECDBF8C019A01DB
+:101E600080E090E07E010894E11CF11CA7010E9433
+:101E7000DA21F70101900020E9F73197EE19FF0907
+:101E8000D8011596FC93EE931497C801BF010E94E8
+:101E9000C00DF80180819181009719F0B7010E946F
+:101EA0002721A1960FB6F894DEBF0FBECDBFCF910C
+:101EB000DF911F910F91FF90EF900895EF92FF92A5
+:101EC0000F931F93DF93CF93CDB7DEB7A1970FB6D4
+:101ED000F894DEBF0FBECDBF8C019A0180E090E088
+:101EE0007E010894E11CF11CA7010E94DA21F70190
+:101EF00001900020E9F73197EE19FF09D8011596F6
+:101F0000FC93EE931497C801BF010E94C00DF80125
+:101F100080819181009719F0B7010E942721A19635
+:101F20000FB6F894DEBF0FBECDBFCF91DF911F91EA
+:101F30000F91FF90EF9008950F931F93CF93DF932E
+:101F40008C01EB016115710511F4C6EAD1E0FE01C7
+:101F500001900020E9F73197EC1BFD0BD801159695
+:101F6000FC93EE931497C801BF010E94C00DF801C5
+:101F700080819181009719F0BE010E942721DF9195
+:101F8000CF911F910F910895AF92BF92CF92DF92A0
+:101F9000EF92FF920F931F93CF93DF93B82EA92E4A
+:101FA0006B01C82FD92FFB0160817181CE010E9486
+:101FB0009C0FEE24FF2410C0088119810E0D1F1DF7
+:101FC000F8018081992787FD90950E94F720F801FC
+:101FD00080830894E11CF11CF60184819581E81648
+:101FE000F90650F38B2D9A2DDF91CF911F910F9110
+:101FF000FF90EF90DF90CF90BF90AF900895AF9299
+:10200000BF92CF92DF92EF92FF920F931F93CF93E5
+:10201000DF93B82EA92E6B01C82FD92FFB01608149
+:102020007181CE010E949C0FEE24FF2410C0088114
+:1020300019810E0D1F1DF8018081992787FD90954C
+:102040000E94EF20F80180830894E11CF11CF60146
+:1020500084819581E816F90650F38B2D9A2DDF9136
+:10206000CF911F910F91FF90EF90DF90CF90BF9095
+:10207000AF900895EF92FF920F931F93DF93CF934A
+:10208000CDB7DEB72C970FB6F894DEBF0FBECDBF2D
+:10209000FC017B018617970711F401E029C0248118
+:1020A0003581DB0114968D919C911597281739077E
+:1020B00011F000E01DC0CE010196BF010E94FF0F8C
+:1020C00009811A81CE010796B7010E94FF0F6F8127
+:1020D0007885C8010E941E2100E0009709F401E004
+:1020E000CE0107960E94060CCE0101960E94060CB6
+:1020F000802F2C960FB6F894DEBF0FBECDBFCF91C8
+:10210000DF911F910F91FF90EF900895CF92DF9292
+:10211000EF92FF921F93CF93DF936C017B01B90184
+:102120002417350710F4BA01A901D70114968D912F
+:102130009C911597EB018617970708F4EC01D701DE
+:10214000ED91FC911197EC0FFD1F108110826D91A4
+:102150007C91640F751FC6010E949C0FD701ED9101
+:10216000FC91EC0FFD1F1083C601DF91CF911F91F1
+:10217000FF90EF90DF90CF9008950F931F938C0105
+:10218000FB01248135810E948610C8011F910F91A7
+:1021900008958F929F92AF92BF92CF92DF92EF926B
+:1021A000FF920F931F93DF93CF9300D000D000D006
+:1021B000CDB7DEB75C016B01DB0114968D919C916C
+:1021C00015970097A1F101974817590780F1F5017C
+:1021D000848195814817590750F5ED91FC91008154
+:1021E0007A014E010894811C911C1FC0D501ED910C
+:1021F000FC91EE0DFF1D80818017A1F4F601248172
+:1022000035812E0D3F1DC401B501A7010E94861026
+:10221000C401B6010E94CC0C182FC4010E94060C08
+:10222000112341F40894E108F108F7FEDFCFEE2412
+:10223000EA94FE2CC70126960FB6F894DEBF0FBEB7
+:10224000CDBFCF91DF911F910F91FF90EF90DF9065
+:10225000CF90BF90AF909F908F900895FC01DB01CD
+:102260004481558114968D919C911597481B590B6B
+:10227000CF010E94C9100895AF92BF92CF92DF9212
+:10228000EF92FF920F931F93DF93CF9300D000D074
+:1022900000D0CDB7DEB75C018B01DB016D917C9185
+:1022A0006115710521F4B8010E946C0E42C0CE0187
+:1022B00001960E949C0FF801E480F580CC24DD2477
+:1022C00010C0D801ED91FC91EC0DFD1D8081992786
+:1022D00087FD90950E94E720892B31F00894C11C5E
+:1022E000D11CCE14DF0468F3ED80FE800DC0D80150
+:1022F000ED91FC91EE0DFF1D8081992787FD909552
+:102300000E94E720892B31F00894E108F108CE14EF
+:10231000DF0468F30894E11CF11CC5018E010F5F16
+:102320001F4FB801A60197010E948610C8010E94A4
+:10233000060CC50126960FB6F894DEBF0FBECDBFC2
+:10234000CF91DF911F910F91FF90EF90DF90CF9091
+:10235000BF90AF9008952F923F924F925F926F92ED
+:102360007F928F929F92AF92BF92CF92DF92EF9225
+:10237000FF920F931F93DF93CF93CDB7DEB768978C
+:102380000FB6F894DEBF0FBECDBF3C01FB012A01A2
+:102390001901608171816115710521F4BF010E94ED
+:1023A0006C0E5AC07E010894E11CF11CC7010E940A
+:1023B0009C0F8E01095F1F4FC80166EA71E00E9401
+:1023C0009C0FD02EC12E3DE0832E912C8C0E9D1E95
+:1023D00023E1A22EB12CAC0EBD1E24C0C401B70156
+:1023E00040E050E098010E9486108D2D9C2DB40194
+:1023F0000E94850DC4010E94060C8D2D9C2DB101FB
+:102400000E94850DF20144815581400F511FC50185
+:10241000B7010E94BD10C701B5010E94D40DC501CE
+:102420000E94060CC701B2010E94A40C8C01FFEFB0
+:102430008F3F9F0799F68D2D9C2DB7010E94850D2A
+:10244000C3016D2D7C2D0E946C0E8D2D9C2D0E9444
+:10245000060CC7010E94060CC30168960FB6F894DB
+:10246000DEBF0FBECDBFCF91DF911F910F91FF90C7
+:10247000EF90DF90CF90BF90AF909F908F907F9024
+:102480006F905F904F903F902F900895DF92EF9262
+:10249000FF920F931F93DF93CF9300D000D000D013
+:1024A000CDB7DEB77C01FB01142FD22E6081718184
+:1024B0006115710521F4BF010E946C0E1CC0CE0194
+:1024C00001960E949C0F89819A81012F112707FD97
+:1024D000109501C0D082B8010E941321FC01009721
+:1024E000C9F7C7018E010F5F1F4FB8010E946C0E24
+:1024F000C8010E94060CC70126960FB6F894DEBFED
+:102500000FBECDBFCF91DF911F910F91FF90EF9044
+:10251000DF9008950F931F93CF93DF938C01EB010E
+:102520006115710511F4C6EAD1E0FE0101900020A9
+:10253000E9F73197EC1BFD0BD8011596FC93EE9350
+:102540001497C801BF010E94C00DF80180819181DC
+:10255000009719F0BE010E942721DF91CF911F91B2
+:102560000F910895EF92FF920F931F93DF93CF93F4
+:10257000CDB7DEB7A1970FB6F894DEBF0FBECDBFC3
+:102580008C01CB01BA017E010894E11CF11CA7016A
+:102590000E949121F70101900020E9F73197EE198F
+:1025A000FF09D8011596FC93EE931497C801BF015B
+:1025B0000E94C00DF80180819181009719F0B70148
+:1025C0000E942721A1960FB6F894DEBF0FBECDBFA3
+:1025D000CF91DF911F910F91FF90EF900895EF92AF
+:1025E000FF920F931F93DF93CF93CDB7DEB7A197E1
+:1025F0000FB6F894DEBF0FBECDBF8C01CB01BA0180
+:102600007E010894E11CF11CA7010E949121F701B1
+:1026100001900020E9F73197EE19FF09D8011596CE
+:10262000FC93EE931497C801BF010E94C00DF801FE
+:1026300080819181009719F0B7010E942721A1960E
+:102640000FB6F894DEBF0FBECDBFCF91DF911F91C3
+:102650000F91FF90EF900895EF92FF920F931F93C9
+:10266000DF93CF93CDB7DEB7A1970FB6F894DEBF57
+:102670000FBECDBF8C01CB017E010894E11CF11C83
+:10268000B7010E947021F70101900020E9F731970E
+:10269000EE19FF09D8011596FC93EE931497C80123
+:1026A000BF010E94C00DF80180819181009719F04F
+:1026B000B7010E942721A1960FB6F894DEBF0FBE86
+:1026C000CDBFCF91DF911F910F91FF90EF900895B3
+:1026D000EF92FF920F931F93DF93CF93CDB7DEB7A7
+:1026E000A1970FB6F894DEBF0FBECDBF8C01CB0112
+:1026F0007E010894E11CF11CB7010E947021F701D2
+:1027000001900020E9F73197EE19FF09D8011596DD
+:10271000FC93EE931497C801BF010E94C00DF8010D
+:1027200080819181009719F0B7010E942721A1961D
+:102730000FB6F894DEBF0FBECDBFCF91DF911F91D2
+:102740000F91FF90EF9008951F920F920FB60F9286
+:1027500011242F933F934F935F936F937F938F93A6
+:102760009F93AF93BF932091890330918A03409147
+:102770008B0350918C0370918D03DA01C90102968D
+:10278000A11DB11D672F6A5F6D3730F06D57DA01FB
+:10279000C9010396A11DB11D60938D038093890328
+:1027A00090938A03A0938B03B0938C03809185034D
+:1027B00090918603A0918703B09188030196A11D93
+:1027C000B11D8093850390938603A0938703B093F4
+:1027D0008803BF91AF919F918F917F916F915F918E
+:1027E0004F913F912F910F900FBE0F901F90189512
+:1027F0008FB7F8942091890330918A0340918B031D
+:1028000050918C038FBFB901CA0108959FB7F89406
+:10281000209185033091860340918703509188036E
+:1028200086B5A89B06C08F3F21F02F5F3F4F4F4FCB
+:102830005F4F9FBF542F432F322F2227280F311D68
+:10284000411D511D83E0220F331F441F551F8A95E0
+:10285000D1F7B901CA010895EF92FF920F931F9328
+:10286000CF93DF937B018C010E940614EB010EC015
+:102870000E9406146C1B7D0B685E7340C8F30894BD
+:10288000E108F10801091109C851DC4FE114F10414
+:102890000105110569F7DF91CF911F910F91FF900D
+:1028A000EF900895019739F0019729F0880F991F4B
+:1028B00001970197F1F70895789484B5826084BDFB
+:1028C00084B5816084BD85B5826085BD85B5816034
+:1028D00085BDEEE6F0E0808181608083E1E8F0E094
+:1028E0001082808182608083808181608083E0E8C3
+:1028F000F0E0808181608083E1EBF0E080818460A2
+:102900008083E0EBF0E0808181608083EAE7F0E0A3
+:102910008081846080838081826080838081816007
+:1029200080838081806880831092C10008958093A5
+:10293000A7010895982F8E3008F09E5097708091CF
+:10294000A7018295880F880F807C892B80937C005B
+:1029500080917A00806480937A0080917A0086FD6D
+:10296000FCCF2091780040917900942F80E030E0F6
+:10297000282B392BC90108951F93CF93DF93182F6C
+:10298000EB0161E00E941C15209709F44AC0CF3F7B
+:10299000D10509F449C0E12FF0E0E155FF4F8491E2
+:1029A0008330C1F0843028F4813051F08230B1F5A9
+:1029B0000CC0863019F1873049F1843079F514C0A4
+:1029C00084B5806884BDC7BD33C084B5806284BDD2
+:1029D000C8BD2EC080918000806880938000D09315
+:1029E0008900C093880024C0809180008062809319
+:1029F0008000D0938B00C0938A001AC08091B000F1
+:102A000080688093B000C093B30012C08091B00082
+:102A100080628093B000C093B4000AC0C038D10572
+:102A20001CF4812F60E002C0812F61E00E946F15CD
+:102A3000DF91CF911F910895482F50E0CA0185562C
+:102A40009F4FFC01249149575F4FFA0184918823DD
+:102A5000C1F0E82FF0E0EE0FFF1FE759FF4FA591FF
+:102A6000B491662341F49FB7F8948C91209582230A
+:102A70008C939FBF08959FB7F8948C91822B8C9371
+:102A80009FBF0895833071F0843028F48130A1F025
+:102A9000823021F514C08630B1F08730D1F0843017
+:102AA000E9F404C0809180008F7703C0809180009A
+:102AB0008F7D80938000089584B58F7702C084B5A0
+:102AC0008F7D84BD08958091B0008F778093B00092
+:102AD00008958091B0008F7D8093B0000895FF929B
+:102AE0000F931F93F62E482F50E0CA0181559F4F38
+:102AF000FC012491CA0185569F4FFC01149149574E
+:102B00005F4FFA0104910023D9F0222319F0822F9C
+:102B10000E944215E02FF0E0EE0FFF1FED58FF4F2F
+:102B2000A591B491FF2031F49FB7F8948C91109542
+:102B3000812304C09FB7F8948C91812B8C939FBF05
+:102B40001F910F91FF9008950F931F93482F50E00E
+:102B5000CA0181559F4FFC012491CA0185569F4FA0
+:102B6000FC01049149575F4FFA011491112319F4A4
+:102B700020E030E015C0222319F0822F0E94421578
+:102B8000812F90E0880F991F83589F4FFC01A591DA
+:102B9000B4918C9120E030E0802311F021E030E00E
+:102BA000C9011F910F9108958F929F92AF92BF928A
+:102BB000CF92DF92EF92FF920F931F93CF93DF9309
+:102BC000A82FB0E0CD0185569F4FFC018490A957F6
+:102BD000BF4FFD01D490662311F4992401C0982CB5
+:102BE000CA01B90120E43FE140E050E00E94F31D3A
+:102BF00020E83EE340E050E00E94121E79018A0185
+:102C00006D2D70E0660F771F63587F4FAA24BB2499
+:102C10006501FB01A591B4910BC0AE14BF04C006C1
+:102C2000D10609F44FC00894A11CB11CC11CD11CD1
+:102C30008C918821891589F30CC0AE14BF04C0069D
+:102C4000D10609F43FC00894A11CB11CC11CD11CC1
+:102C500003C0FB01A591B4918C918821891569F776
+:102C600020E030E040E050E0FB01C591D4910FC07E
+:102C7000DA01C9018A0D9B1DAC1DBD1D8E159F0576
+:102C8000A007B107F9F02F5F3F4F4F4F5F4F88818B
+:102C90008821891569F3CA01B90128E032E540E0CD
+:102CA00050E00E94F31D6058714C8F4F9F4F20E4FD
+:102CB0003FE140E050E00E94121EC901DA019C0190
+:102CC000AD0104C020E030E040E050E0B901CA01AD
+:102CD000DF91CF911F910F91FF90EF90DF90CF90F8
+:102CE000BF90AF909F908F900895BF92CF92DF9248
+:102CF000EF92FF920F931F93CF93DF93E82EF62E60
+:102D0000B42EC7E0D0E0022F10E087E0C82ED12C0F
+:102D1000BB2059F4B6016C1B7D0BC80102C0959510
+:102D200087956A95E2F7BC0107C0B8010C2E02C076
+:102D3000759567950A94E2F761708E2D0E946F1564
+:102D40008F2D61E00E946F158F2D60E00E946F153E
+:102D500021979FEFCF3FD907D9F6DF91CF911F91F0
+:102D60000F91FF90EF90DF90CF90BF900895CF929A
+:102D7000DF92EF92FF920F931F93CF93DF93F82E82
+:102D8000062FE42E10E0C7E0D0E097E0C92ED12C4A
+:102D9000802F61E00E946F15EE2061F48F2D0E945C
+:102DA000A41596012C1B3D0B02C0880F991F2A9574
+:102DB000E2F709C08F2D0E94A4150C2E02C0880FC7
+:102DC000991F0A94E2F7182B802F60E00E946F157C
+:102DD00021978FEFCF3FD807D9F6812FDF91CF9181
+:102DE0001F910F91FF90EF90DF90CF900895EF9299
+:102DF000FF920F931F937B018C0120E030E040E0B5
+:102E00005FE40E94731A88238CF0C801B70120E0A8
+:102E100030E040E05FE40E946F180E94311B9B018C
+:102E2000AC01205030404040504806C0C801B701B6
+:102E30000E94311B9B01AC01B901CA011F910F9186
+:102E4000FF90EF900895A0E0B0E0E9E2F7E10C9484
+:102E50004F1EDC012B01FA019C91923008F439C11C
+:102E6000EB018881823008F433C1943069F48430F6
+:102E700009F02FC111969C9111978981981709F437
+:102E800028C1A8EAB1E025C1843009F421C182300B
+:102E9000A9F4923009F01DC19A01AD0188E0EA0160
+:102EA0000990AE01E90109929E018150C1F7E2014A
+:102EB000898111969C918923818308C1923009F4FC
+:102EC00007C112962D903C901397EB018A819B814C
+:102ED0001496AD90BD90CD90DC901797EC80FD805E
+:102EE0000E811F819101281B390BB90137FF04C0E6
+:102EF00066277727621B730B603271050CF061C087
+:102F0000121613066CF537014801062E04C096947C
+:102F10008794779467940A94D2F721E030E040E0F8
+:102F200050E004C0220F331F441F551F6A95D2F78B
+:102F300021503040404050402E213F21402351231A
+:102F4000211531054105510521F021E030E040E037
+:102F500050E079018A01E628F728082919293CC0A0
+:102F6000232BD1F1260E371E35014601062E04C053
+:102F700096948794779467940A94D2F721E030E08E
+:102F800040E050E004C0220F331F441F551F6A95D4
+:102F9000D2F721503040404050402A213B214C2163
+:102FA0005D21211531054105510521F021E030E079
+:102FB00040E050E059016A01A628B728C828D9285E
+:102FC0000BC0821593052CF01C01AA24BB246501BB
+:102FD00003C0EE24FF24870111969C91D201119623
+:102FE0008C91981709F445C0992339F0A8019701ED
+:102FF0002A193B094C095D0906C0A60195012E1945
+:103000003F09400B510B57FD08C0118233822282C9
+:1030100024833583468357831DC081E081833382B7
+:10302000228288279927DC01821B930BA40BB50B06
+:1030300084839583A683B7830DC0220F331F441F5B
+:10304000551F24833583468357838281938101975B
+:10305000938382832481358146815781DA01C901B6
+:103060000197A109B1098F5F9F4FAF4FBF4328F36D
+:103070000BC0918333822282EA0CFB1C0C1D1D1DA8
+:10308000E482F5820683178383E08083248135817F
+:103090004681578157FF1AC0C901AA2797FDA095FD
+:1030A000BA2F81709070A070B07056954795379583
+:1030B0002795822B932BA42BB52B84839583A683F2
+:1030C000B78382819381019693838283DF0101C05C
+:1030D000D201CD01CDB7DEB7E2E10C946B1EA0E2C8
+:1030E000B0E0E5E7F8E10C945B1E69837A838B839B
+:1030F0009C832D833E834F835887E9E0EE2EF12C8D
+:10310000EC0EFD1ECE010196B7010E94221D8E011C
+:103110000F5E1F4FCE010596B8010E94221D8A89BD
+:1031200091E089278A8BC701B801AE01475E5F4FE6
+:103130000E9423170E944D1CA096E6E00C94771E77
+:10314000A0E2B0E0E6EAF8E10C945B1E69837A83C2
+:103150008B839C832D833E834F835887F9E0EF2E2A
+:10316000F12CEC0EFD1ECE010196B7010E94221D2E
+:103170008E010F5E1F4FCE010596B8010E94221DE1
+:10318000C701B801AE01475E5F4F0E9423170E943E
+:103190004D1CA096E6E00C94771EA0E2B0E0E3EDB3
+:1031A000F8E10C944F1E69837A838B839C832D8373
+:1031B0003E834F835887CE010196BE01675F7F4FE4
+:1031C0000E94221DCE010596BE016F5E7F4F0E94B8
+:1031D000221D9985923088F089898230C8F0943018
+:1031E00019F4823051F404C0843029F4923081F40F
+:1031F00088EA91E0C6C0923049F420E09A858A8935
+:10320000981321E02A87CE010996BBC0823049F489
+:1032100020E09A858A89981321E02A8BCE01419675
+:10322000B0C02D843E844F8458886D887E888F88F6
+:10323000988CEE24FF248701AA24BB24650140E07A
+:1032400050E060E070E0E0E0F0E0C101817090707B
+:10325000892BE9F0E60CF71C081D191D9A01AB013A
+:103260002A0D3B1D4C1D5D1D80E090E0A0E0B0E00C
+:10327000E614F7040805190520F481E090E0A0E0C9
+:10328000B0E0BA01A901480F591F6A1F7B1FAA0CA1
+:10329000BB1CCC1CDD1C97FE08C081E090E0A0E0C8
+:1032A000B0E0A82AB92ACA2ADB2A3196E032F10511
+:1032B00049F0660C771C881C991C569447943794E7
+:1032C0002794C3CFFA85EA892B893C898B859C8515
+:1032D000280F391F2E5F3F4F17C0CA0181709070B1
+:1032E000892B61F016950795F794E79480E090E0BC
+:1032F000A0E0B0E8E82AF92A0A2B1B2B76956795FF
+:10330000579547952F5F3F4F77FDE7CF0CC0440F90
+:10331000551F661F771F17FD4160EE0CFF1C001F35
+:10332000111F21503040403090E0590790E069076C
+:1033300090E4790760F32B8F3C8FDB01CA018F7714
+:103340009070A070B07080349105A105B10561F452
+:1033500047FD0AC0E114F1040105110529F0405CA4
+:103360005F4F6F4F7F4F40781A8EFE1711F081E04C
+:103370008A8F4D8F5E8F6F8F78A383E0898FCE0108
+:1033800049960E944D1CA096E2E10C946B1EA8E1A8
+:10339000B0E0EDECF9E10C94571E69837A838B83DE
+:1033A0009C832D833E834F835887B9E0EB2EF12C0D
+:1033B000EC0EFD1ECE010196B7010E94221D8E016A
+:1033C0000F5E1F4FCE010596B8010E94221D298570
+:1033D000223008F47EC03989323010F4B8017CC044
+:1033E0008A859A8989278A87243011F0223031F41E
+:1033F000231709F06EC068EA71E06EC0343039F40A
+:103400001D861E861F86188A1C861B8604C03230C5
+:1034100021F484E08987B7015FC02B853C858B89C7
+:103420009C89281B390B3C872B87ED84FE840F85F4
+:103430001889AD88BE88CF88D88CEA14FB040C05A7
+:103440001D0540F4EE0CFF1C001F111F21503040E1
+:103450003C872B8720E030E040E050E080E090E0C7
+:10346000A0E0B0E460E070E0EA14FB040C051D0588
+:1034700040F0282B392B4A2B5B2BEA18FB080C0950
+:103480001D09B695A79597958795EE0CFF1C001F13
+:10349000111F6F5F7F4F6F31710531F7DA01C9017D
+:1034A0008F779070A070B07080349105A105B10540
+:1034B00061F427FD0AC0E114F1040105110529F0AA
+:1034C000205C3F4F4F4F5F4F20782D873E874F87BF
+:1034D000588BBE01675F7F4FCB010E944D1C6896E1
+:1034E000EAE00C94731EA8E1B0E0E9E7FAE10C947D
+:1034F0005B1E69837A838B839C832D833E834F83FA
+:10350000588789E0E82EF12CEC0EFD1ECE010196C5
+:10351000B7010E94221D8E010F5E1F4FCE0105963E
+:10352000B8010E94221D8985823040F0898982304D
+:1035300028F0C701B8010E949A1D01C08FEF68965C
+:10354000E6E00C94771EA8E1B0E0E9EAFAE10C9419
+:103550005B1E69837A838B839C832D833E834F8399
+:10356000588789E0E82EF12CEC0EFD1ECE01019665
+:10357000B7010E94221D8E010F5E1F4FCE010596DE
+:10358000B8010E94221D8985823040F089898230ED
+:1035900028F0C701B8010E949A1D01C081E0689619
+:1035A000E6E00C94771EA8E0B0E0E9EDFAE10C94B7
+:1035B000581E9B01AC0183E08983DA01C901882789
+:1035C000B7FD83959927AA27BB27B82E211531056A
+:1035D0004105510519F482E089833AC08823A9F096
+:1035E000203080E0380780E0480780E8580729F459
+:1035F00060E070E080E09FEC30C0EE24FF248701A3
+:10360000E21AF30A040B150B02C079018A018EE15C
+:10361000C82ED12CDC82CB82ED82FE820F831887EC
+:10362000C801B7010E94FE1B01971816190684F401
+:10363000082E04C0EE0CFF1C001F111F0A94D2F7C5
+:10364000ED82FE820F831887C81AD90ADC82CB82EA
+:10365000BA82CE0101960E944D1C2896E9E00C9496
+:10366000741EACE0B0E0E7E3FBE10C945F1E6983FD
+:103670007A838B839C83CE010196BE016B5F7F4F63
+:103680000E94221D8D81823061F1823050F18430A0
+:1036900021F48E81882351F12EC02F81388537FD8A
+:1036A00020C06E812F3131051CF06623F9F023C054
+:1036B0008EE190E0821B930B29853A854B855C85D2
+:1036C00004C056954795379527958A95D2F7662376
+:1036D000B1F050954095309521953F4F4F4F5F4F3A
+:1036E0000EC020E030E040E050E009C02FEF3FEF97
+:1036F0004FEF5FE704C020E030E040E050E8B90160
+:10370000CA012C96E2E00C947B1EA8E0B0E0EBE846
+:10371000FBE10C94571E7B018C016115710581053D
+:10372000910519F482E0898360C083E089838EE18A
+:10373000C82ED12CDC82CB82ED82FE820F831887CB
+:10374000C801B7010E94FE1BFC013197F7FF3BC087
+:10375000222733272E1B3F0B57016801022E04C07E
+:10376000D694C794B794A7940A94D2F740E050E057
+:1037700060E070E081E090E0A0E0B0E004C0880F7D
+:10378000991FAA1FBB1F2A95D2F70197A109B1095A
+:103790008E219F21A023B1230097A105B10521F01F
+:1037A00041E050E060E070E04A295B296C297D2906
+:1037B0004D835E836F8378878EE190E08E1B9F0B35
+:1037C0009C838B8312C0309781F00E2E04C0EE0CC8
+:1037D000FF1C001F111F0A94D2F7ED82FE820F8397
+:1037E0001887CE1ADF0ADC82CB821A82CE010196BC
+:1037F0000E944D1C2896EAE00C94731EEF92FF92F3
+:103800000F931F937B018C0180E0E81680E0F8069F
+:1038100081E0080780E0180788F48FEFE816F104CC
+:103820000105110531F028F088E090E0A0E0B0E05B
+:1038300017C080E090E0A0E0B0E012C080E0E816A1
+:1038400080E0F80680E0080781E0180728F088E1AA
+:1038500090E0A0E0B0E004C080E190E0A0E0B0E043
+:1038600020E230E040E050E0281B390B4A0B5B0BB4
+:1038700004C016950795F794E7948A95D2F7F70157
+:10388000E055FE4F8081281B310941095109C901CA
+:103890001F910F91FF90EF900895DF92EF92FF92AA
+:1038A0000F931F93FC01E480F58006811781D1807E
+:1038B0008081823048F480E090E0A0E1B0E0E82A26
+:1038C000F92A0A2B1B2BA5C0843009F49FC0823033
+:1038D00021F4EE24FF24870105C0E114F104010561
+:1038E000110519F4E0E0F0E096C0628173819FEF6A
+:1038F000623879070CF05BC022E83FEF261B370BDC
+:103900002A3131052CF020E030E040E050E02AC0C0
+:10391000B801A701022E04C0769567955795479583
+:103920000A94D2F781E090E0A0E0B0E004C0880FF4
+:10393000991FAA1FBB1F2A95D2F70197A109B109A8
+:103940008E219F21A023B1230097A105B10521F06D
+:1039500081E090E0A0E0B0E09A01AB01282B392B88
+:103960004A2B5B2BDA01C9018F779070A070B07081
+:1039700080349105A105B10539F427FF09C0205C09
+:103980003F4F4F4F5F4F04C0215C3F4F4F4F5F4F42
+:10399000E0E0F0E02030A0E03A07A0E04A07A0E431
+:1039A0005A0710F0E1E0F0E079018A0127C06038A1
+:1039B000710564F5FB01E158FF4FD801C7018F770E
+:1039C0009070A070B07080349105A105B10539F4F4
+:1039D000E7FE0DC080E490E0A0E0B0E004C08FE31B
+:1039E00090E0A0E0B0E0E80EF91E0A1F1B1F17FFD1
+:1039F00005C016950795F794E794319687E01695DC
+:103A00000795F794E7948A95D1F705C0EE24FF2433
+:103A10008701EFEFF0E06E2F679566276795902F8F
+:103A20009F77D794DD24D7948E2F8695492F462BE8
+:103A3000582F5D29B701CA011F910F91FF90EF9098
+:103A4000DF900895FC01DB01408151812281622FCA
+:103A50006F7770E0221F2227221F9381892F880F02
+:103A6000822B282F30E0991F9927991F11969C933C
+:103A7000119721153105A9F541155105610571050C
+:103A800011F482E037C082E89FEF13969C938E93E7
+:103A900012979A01AB0167E0220F331F441F551F95
+:103AA0006A95D1F783E08C930DC0220F331F441F1A
+:103AB000551F12968D919C911397019713969C9385
+:103AC0008E931297203080E0380780E0480780E42A
+:103AD000580758F314962D933D934D935C93179785
+:103AE00008952F3F310579F44115510561057105A0
+:103AF00019F484E08C93089564FF03C081E08C93F3
+:103B000012C01C9210C02F57304013963C932E9336
+:103B1000129783E08C9387E0440F551F661F771F31
+:103B20008A95D1F7706414964D935D936D937C9351
+:103B3000179708951F93DC01FB019C91923008F4C4
+:103B400047C08081823008F443C0943051F411960C
+:103B50001C91843099F58181682F70E0611B710997
+:103B60003FC0843021F0923031F48230B9F181814C
+:103B7000882389F12DC011961C9111978230F1F0A4
+:103B800081811817D9F412962D913C911397828157
+:103B900093818217930794F028173907BCF0149685
+:103BA0008D919D910D90BC91A02D248135814681F0
+:103BB0005781281739074A075B0718F4112341F08A
+:103BC0000AC082179307A407B50740F4112319F020
+:103BD00061E070E005C06FEF7FEF02C060E070E071
+:103BE000CB011F910895629FD001739FF001829FC6
+:103BF000E00DF11D649FE00DF11D929FF00D839F7C
+:103C0000F00D749FF00D659FF00D9927729FB00D18
+:103C1000E11DF91F639FB00DE11DF91FBD01CF012B
+:103C200011240895A1E21A2EAA1BBB1BFD010DC091
+:103C3000AA1FBB1FEE1FFF1FA217B307E407F5075C
+:103C400020F0A21BB30BE40BF50B661F771F881F38
+:103C5000991F1A9469F760957095809590959B01CE
+:103C6000AC01BD01CF01089597FB092E05260ED0AA
+:103C700057FD04D0D7DF0AD0001C38F4509540958A
+:103C8000309521953F4F4F4F5F4F0895F6F7909530
+:103C90008095709561957F4F8F4F9F4F08952F921C
+:103CA0003F924F925F926F927F928F929F92AF92CC
+:103CB000BF92CF92DF92EF92FF920F931F93CF9319
+:103CC000DF93CDB7DEB7CA1BDB0B0FB6F894DEBFB0
+:103CD0000FBECDBF09942A88398848885F846E84D6
+:103CE0007D848C849B84AA84B984C884DF80EE8020
+:103CF000FD800C811B81AA81B981CE0FD11D0FB629
+:103D0000F894DEBF0FBECDBFED010895EE0FFF1F8B
+:103D10000590F491E02D0994CF93DF93BC0182309C
+:103D2000910510F462E070E0A0919003B0919103CE
+:103D3000ED01E0E0F0E040E050E021C088819981B1
+:103D40008617970769F48A819B81309719F09383CE
+:103D5000828304C09093910380939003FE0134C04A
+:103D60006817790738F44115510519F0841795073C
+:103D700008F4AC01FE018A819B819C01E901209736
+:103D8000E9F641155105A9F1CA01861B970B049765
+:103D900008F4BA01E0E0F0E02AC08D919C911197FF
+:103DA00084179507F9F46417750781F412968D91BD
+:103DB0009C911397309719F09383828304C090935A
+:103DC000910380939003FD0132964FC0CA01861B78
+:103DD000970BFD01E80FF91F6193719302978D9383
+:103DE0009C9343C0FD01828193819C01D90110976E
+:103DF000A1F680918E0390918F03892B41F48091DD
+:103E0000B2029091B30290938F0380938E034091FE
+:103E1000B4025091B5024115510541F44DB75EB75A
+:103E20008091B0029091B102481B590B20918E03F2
+:103E300030918F0324173507B0F4CA01821B930B0E
+:103E40008617970780F0AB014E5F5F4F8417950789
+:103E500050F0420F531F50938F0340938E03F9018C
+:103E60006193719302C0E0E0F0E0CF01DF91CF9168
+:103E70000895CF93DF93009709F450C0EC01229787
+:103E80001B821A82A0919003B0919103109709F1BF
+:103E900040E050E0AC17BD0708F1BB83AA83FE01E8
+:103EA00021913191E20FF31FAE17BF0779F48D9185
+:103EB0009C911197280F391F2E5F3F4F398328831C
+:103EC00012968D919C9113979B838A83411551057E
+:103ED00071F4D0939103C093900320C012968D91FA
+:103EE0009C911397AD01009711F0DC01D3CFFA013B
+:103EF000D383C28321913191E20FF31FCE17DF07E5
+:103F000069F488819981280F391F2E5F3F4FFA018C
+:103F1000318320838A819B8193838283DF91CF9138
+:103F20000895A0E0B0E0E7E9FFE10C94571EEC0132
+:103F3000A880B980CA80DB80A114B104C104D10477
+:103F400041F484E2A82E89EDB82E8BE5C82E87E0D7
+:103F5000D82EC601B5012DE133EF41E050E00E94BB
+:103F6000341E27EA31E440E050E00E94F31D7B015B
+:103F70008C01C601B5012DE133EF41E050E00E9414
+:103F8000341ECA01B9012CEE34EF4FEF5FEF0E94EF
+:103F9000F31D6E0D7F1D801F911F97FF04C06150A0
+:103FA000704080409048688379838A839B839B011B
+:103FB000AC015F77B901CA01CDB7DEB7EAE00C9476
+:103FC000731E0E94911F089586EB92E00E94911F3C
+:103FD00008956093B6027093B7028093B8029093ED
+:103FE000B9020895A0E0B0E0E8EFFFE10C94551E9F
+:103FF0008C01009729F4CB010E948C1E8C01BAC061
+:104000009EEFE92E9FEFF92EE00EF11E5801A60E4D
+:10401000B71EAE14BF0408F4ABC08EEF882E8FEF2E
+:10402000982E8A0C9B1CE701488159814617570737
+:10403000B8F04530510508F49DC0CA0104978617B1
+:10404000970708F497C042505040461B570BF401A5
+:104050005183408379836883C5010E94391F8AC0D8
+:104060006B01C41AD50AE0919003F0919103A0E08E
+:10407000B0E0C0E0D0E042C0E815F905A1F520812C
+:1040800031812C153D0578F1C90102968C159D05ED
+:10409000A8F04E5F5F4F420F531FE70159834883DB
+:1040A00022813381109729F013963C932E93129717
+:1040B00061C030939103209390035CC02250304044
+:1040C0002C193D0931832083109729F01396FC9316
+:1040D000EE93129704C0F0939103E0939003F701DD
+:1040E0007183608347C080819181C817D90708F424
+:1040F000EC01DF01828193819C01F901309709F085
+:10410000BBCF400F511F80918E0390918F03841776
+:104110009507E9F4C617D707D0F42091B40230917F
+:10412000B5022115310541F42DB73EB78091B0029B
+:104130009091B102281B390BA216B306C8F4B092B5
+:104140008F03A0928E03E7017983688313C0CB01AC
+:104150000E948C1EEC01009759F0F70140815181BB
+:10416000B8010E94FF20C8010E94391F8E0102C0C1
+:1041700000E010E0C801CDB7DEB7ECE00C94711E92
+:104180001F93FC0199278827BC01E89411911032F4
+:10419000E9F3193010F01E30C8F31B3251F01D3214
+:1041A00049F4689406C00E94C521610F711D811DEC
+:1041B000911D119110531A30B0F33EF490958095F3
+:1041C000709561957F4F8F4F9F4F1F91089591116B
+:1041D00016C1803219F089508550D0F70895911199
+:1041E000089581548A5108F4805E855A089591118A
+:1041F000089581568A5108F4805285580895FB012C
+:10420000DC0102C001900D9241505040D8F7089552
+:10421000FB01DC010D900020E9F7119701900D9250
+:104220000020E1F70895FC018191861721F0882391
+:10423000D9F7992708953197CF010895FB01DC0143
+:104240008D91019080190110D9F3990B0895FB010C
+:10425000DC0101900D920020E1F70895FB01DC01E3
+:104260004150504030F08D910190801919F4002098
+:10427000B9F7881B990B0895FB01DC0141505040B0
+:1042800048F001900D920020C9F701C01D924150E5
+:104290005040E0F70895FC0181E090E0019006169F
+:1042A00009F4CF010020D1F701970895FB01519146
+:1042B0005523A9F0BF01DC014D9145174111E1F7EC
+:1042C00059F4CD010190002049F04D914015411164
+:1042D000C9F3FB014111EFCF81E090E00197089510
+:1042E000FB019F01E8944230C4F04532B4F44A30F7
+:1042F00029F497FB1EF4909581959F4F642F7727A3
+:104300000E941222805D8A330CF0895D8193CB017B
+:104310000097A1F716F45DE251931082C9010C9445
+:104320000222FA01CF93FF93EF93223044F125321A
+:1043300034F5C22FE894CA3049F497FB3EF49095C7
+:104340008095709561957F4F8F4F9F4F2C2F33270E
+:1043500044275527FF93EF930E94121EEF91FF9180
+:10436000605D6A330CF0695D6193B901CA01605008
+:1043700070408040904051F716F4CDE2C193108216
+:104380008F919F91CF910C940222592F482F372F54
+:10439000262F660F771F881F991F660F771F881FAC
+:1043A000991F620F731F841F951F660F771F881F49
+:1043B000991F0895FA01CF93FF93EF932230CCF029
+:1043C0002532BCF4C22F2C2F332744275527FF93C7
+:1043D000EF930E94121EEF91FF91605D6A330CF023
+:1043E000695D6193B901CA0160507040804090409E
+:1043F00051F710828F919F91CF910C9402229927AF
+:1044000088270895DC01FC01672F71917723E1F77C
+:10441000329704C07C916D9370836291AE17BF0791
+:10442000C8F30895AA1BBB1B51E107C0AA1FBB1FFD
+:10443000A617B70710F0A61BB70B881F991F5A9530
+:10444000A9F780959095BC01CD010895F894FFCF10
+:104450000D0A2B494E513D310D0A000D0A2B5354C4
+:10446000574D4F443D300D0A000D0A2B53544E4119
+:104470003D4164617074696373456C65637469631D
+:104480000D0A000D0A2B53544F4155543D310D0A6E
+:10449000000D0A2B53544155544F3D300D0A000D69
+:1044A0000A202B535450494E3D303030300D0A0015
+:1044B0000D0A2B4C4F53535245434F4E4E3D300D3A
+:1044C0000A0007F000000000008E04DB04F3043350
+:1044D000045E044404820400000000DA00DB04F3FC
+:1044E00004DA00DA00DA00DA002E0000000000DA58
+:1044F00000DB04F304FF00010000000000000000E6
+:10450000000102020303030304040404040404047A
+:10451000050505050505050505050505050505054B
+:10452000060606060606060606060606060606062B
+:10453000060606060606060606060606060606061B
+:1045400007070707070707070707070707070707FB
+:1045500007070707070707070707070707070707EB
+:1045600007070707070707070707070707070707DB
+:1045700007070707070707070707070707070707CB
+:1045800008080808080808080808080808080808AB
+:10459000080808080808080808080808080808089B
+:1045A000080808080808080808080808080808088B
+:1045B000080808080808080808080808080808087B
+:1045C000080808080808080808080808080808086B
+:1045D000080808080808080808080808080808085B
+:1045E000080808080808080808080808080808084B
+:1045F000080808080808080808080808080808083B
+:0A46000020009203000001000000FA
+: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..2efb687
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.lss
@@ -0,0 +1,8524 @@
+
+bin/Release/ESS1995test_328p.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 000001ba 00800100 00004450 000044e4 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00004450 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 000000d8 008002ba 008002ba 0000469e 2**0
+ ALLOC
+ 3 .stab 0000267c 00000000 00000000 000046a0 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00000cf1 00000000 00000000 00006d1c 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__ctors_end>
+ 4: 0c 94 93 0a jmp 0x1526 ; 0x1526 <__vector_1>
+ 8: 0c 94 c0 0a jmp 0x1580 ; 0x1580 <__vector_2>
+ c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 10: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 14: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 18: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 1c: 0c 94 ec 07 jmp 0xfd8 ; 0xfd8 <__vector_7>
+ 20: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 24: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 28: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 2c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 30: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 34: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 38: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 3c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 40: 0c 94 a4 13 jmp 0x2748 ; 0x2748 <__vector_16>
+ 44: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 48: 0c 94 14 03 jmp 0x628 ; 0x628 <__vector_18>
+ 4c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 50: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 54: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 58: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 5c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 60: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
+ 64: 0c 94 8b 00 jmp 0x116 ; 0x116 <__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
+
+000000c6 <__ctors_end>:
+ c6: 11 24 eor r1, r1
+ c8: 1f be out 0x3f, r1 ; 63
+ ca: cf ef ldi r28, 0xFF ; 255
+ cc: d8 e0 ldi r29, 0x08 ; 8
+ ce: de bf out 0x3e, r29 ; 62
+ d0: cd bf out 0x3d, r28 ; 61
+
+000000d2 <__do_copy_data>:
+ d2: 12 e0 ldi r17, 0x02 ; 2
+ d4: a0 e0 ldi r26, 0x00 ; 0
+ d6: b1 e0 ldi r27, 0x01 ; 1
+ d8: e0 e5 ldi r30, 0x50 ; 80
+ da: f4 e4 ldi r31, 0x44 ; 68
+ dc: 02 c0 rjmp .+4 ; 0xe2 <.do_copy_data_start>
+
+000000de <.do_copy_data_loop>:
+ de: 05 90 lpm r0, Z+
+ e0: 0d 92 st X+, r0
+
+000000e2 <.do_copy_data_start>:
+ e2: aa 3b cpi r26, 0xBA ; 186
+ e4: b1 07 cpc r27, r17
+ e6: d9 f7 brne .-10 ; 0xde <.do_copy_data_loop>
+
+000000e8 <__do_clear_bss>:
+ e8: 13 e0 ldi r17, 0x03 ; 3
+ ea: aa eb ldi r26, 0xBA ; 186
+ ec: b2 e0 ldi r27, 0x02 ; 2
+ ee: 01 c0 rjmp .+2 ; 0xf2 <.do_clear_bss_start>
+
+000000f0 <.do_clear_bss_loop>:
+ f0: 1d 92 st X+, r1
+
+000000f2 <.do_clear_bss_start>:
+ f2: a2 39 cpi r26, 0x92 ; 146
+ f4: b1 07 cpc r27, r17
+ f6: e1 f7 brne .-8 ; 0xf0 <.do_clear_bss_loop>
+
+000000f8 <__do_global_ctors>:
+ f8: 10 e0 ldi r17, 0x00 ; 0
+ fa: c6 ec ldi r28, 0xC6 ; 198
+ fc: d0 e0 ldi r29, 0x00 ; 0
+ fe: 04 c0 rjmp .+8 ; 0x108 <.do_global_ctors_start>
+
+00000100 <.do_global_ctors_loop>:
+ 100: 22 97 sbiw r28, 0x02 ; 2
+ 102: fe 01 movw r30, r28
+ 104: 0e 94 88 1e call 0x3d10 ; 0x3d10 <__tablejump__>
+
+00000108 <.do_global_ctors_start>:
+ 108: c4 3c cpi r28, 0xC4 ; 196
+ 10a: d1 07 cpc r29, r17
+ 10c: c9 f7 brne .-14 ; 0x100 <.do_global_ctors_loop>
+ 10e: 0e 94 ef 01 call 0x3de ; 0x3de <main>
+ 112: 0c 94 26 22 jmp 0x444c ; 0x444c <_exit>
+
+00000116 <__bad_interrupt>:
+ 116: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+0000011a <_Z9advertisev>:
+ 11a: 0f 93 push r16
+ 11c: 1f 93 push r17
+ 11e: 60 ed ldi r22, 0xD0 ; 208
+ 120: 77 e0 ldi r23, 0x07 ; 7
+ 122: 80 e0 ldi r24, 0x00 ; 0
+ 124: 90 e0 ldi r25, 0x00 ; 0
+ 126: 0e 94 2c 14 call 0x2858 ; 0x2858 <delay>
+ 12a: 08 e5 ldi r16, 0x58 ; 88
+ 12c: 13 e0 ldi r17, 0x03 ; 3
+ 12e: c8 01 movw r24, r16
+ 130: 60 e0 ldi r22, 0x00 ; 0
+ 132: 71 e0 ldi r23, 0x01 ; 1
+ 134: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 138: 60 ed ldi r22, 0xD0 ; 208
+ 13a: 77 e0 ldi r23, 0x07 ; 7
+ 13c: 80 e0 ldi r24, 0x00 ; 0
+ 13e: 90 e0 ldi r25, 0x00 ; 0
+ 140: 0e 94 2c 14 call 0x2858 ; 0x2858 <delay>
+ 144: c8 01 movw r24, r16
+ 146: 0e 94 82 04 call 0x904 ; 0x904 <_ZN14HardwareSerial5flushEv>
+ 14a: 1f 91 pop r17
+ 14c: 0f 91 pop r16
+ 14e: 08 95 ret
+
+00000150 <_Z14setupBlueToothv>:
+ 150: 0f 93 push r16
+ 152: 1f 93 push r17
+ 154: 86 e0 ldi r24, 0x06 ; 6
+ 156: 60 e0 ldi r22, 0x00 ; 0
+ 158: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 15c: 08 e5 ldi r16, 0x58 ; 88
+ 15e: 13 e0 ldi r17, 0x03 ; 3
+ 160: c8 01 movw r24, r16
+ 162: 40 e0 ldi r20, 0x00 ; 0
+ 164: 56 e9 ldi r21, 0x96 ; 150
+ 166: 60 e0 ldi r22, 0x00 ; 0
+ 168: 70 e0 ldi r23, 0x00 ; 0
+ 16a: 0e 94 a5 03 call 0x74a ; 0x74a <_ZN14HardwareSerial5beginEl>
+ 16e: c8 01 movw r24, r16
+ 170: 6b e0 ldi r22, 0x0B ; 11
+ 172: 71 e0 ldi r23, 0x01 ; 1
+ 174: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 178: c8 01 movw r24, r16
+ 17a: 69 e1 ldi r22, 0x19 ; 25
+ 17c: 71 e0 ldi r23, 0x01 ; 1
+ 17e: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 182: c8 01 movw r24, r16
+ 184: 63 e3 ldi r22, 0x33 ; 51
+ 186: 71 e0 ldi r23, 0x01 ; 1
+ 188: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 18c: c8 01 movw r24, r16
+ 18e: 61 e4 ldi r22, 0x41 ; 65
+ 190: 71 e0 ldi r23, 0x01 ; 1
+ 192: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 196: c8 01 movw r24, r16
+ 198: 6f e4 ldi r22, 0x4F ; 79
+ 19a: 71 e0 ldi r23, 0x01 ; 1
+ 19c: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 1a0: c8 01 movw r24, r16
+ 1a2: 60 e6 ldi r22, 0x60 ; 96
+ 1a4: 71 e0 ldi r23, 0x01 ; 1
+ 1a6: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ 1aa: 0e 94 8d 00 call 0x11a ; 0x11a <_Z9advertisev>
+ 1ae: 1f 91 pop r17
+ 1b0: 0f 91 pop r16
+ 1b2: 08 95 ret
+
+000001b4 <__cxa_pure_virtual>:
+ 1b4: f8 94 cli
+ 1b6: ff cf rjmp .-2 ; 0x1b6 <__cxa_pure_virtual+0x2>
+
+000001b8 <_Z13writeStartBitv>:
+ 1b8: 84 e0 ldi r24, 0x04 ; 4
+ 1ba: 61 e0 ldi r22, 0x01 ; 1
+ 1bc: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 1c0: 83 e0 ldi r24, 0x03 ; 3
+ 1c2: 61 e0 ldi r22, 0x01 ; 1
+ 1c4: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 1c8: 8a e0 ldi r24, 0x0A ; 10
+ 1ca: 90 e0 ldi r25, 0x00 ; 0
+ 1cc: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 1d0: 84 e0 ldi r24, 0x04 ; 4
+ 1d2: 60 e0 ldi r22, 0x00 ; 0
+ 1d4: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 1d8: 8a e0 ldi r24, 0x0A ; 10
+ 1da: 90 e0 ldi r25, 0x00 ; 0
+ 1dc: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 1e0: 83 e0 ldi r24, 0x03 ; 3
+ 1e2: 60 e0 ldi r22, 0x00 ; 0
+ 1e4: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 1e8: 8a e0 ldi r24, 0x0A ; 10
+ 1ea: 90 e0 ldi r25, 0x00 ; 0
+ 1ec: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 1f0: 08 95 ret
+
+000001f2 <_Z12writeStopBitv>:
+ 1f2: 84 e0 ldi r24, 0x04 ; 4
+ 1f4: 60 e0 ldi r22, 0x00 ; 0
+ 1f6: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 1fa: 8a e0 ldi r24, 0x0A ; 10
+ 1fc: 90 e0 ldi r25, 0x00 ; 0
+ 1fe: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 202: 83 e0 ldi r24, 0x03 ; 3
+ 204: 61 e0 ldi r22, 0x01 ; 1
+ 206: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 20a: 8a e0 ldi r24, 0x0A ; 10
+ 20c: 90 e0 ldi r25, 0x00 ; 0
+ 20e: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 212: 84 e0 ldi r24, 0x04 ; 4
+ 214: 61 e0 ldi r22, 0x01 ; 1
+ 216: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 21a: 08 95 ret
+
+0000021c <_Z11SCLKcycle_Rv>:
+ 21c: 8a e0 ldi r24, 0x0A ; 10
+ 21e: 90 e0 ldi r25, 0x00 ; 0
+ 220: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 224: 83 e0 ldi r24, 0x03 ; 3
+ 226: 60 e0 ldi r22, 0x00 ; 0
+ 228: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 22c: 84 e1 ldi r24, 0x14 ; 20
+ 22e: 90 e0 ldi r25, 0x00 ; 0
+ 230: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 234: 83 e0 ldi r24, 0x03 ; 3
+ 236: 61 e0 ldi r22, 0x01 ; 1
+ 238: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 23c: 8a e0 ldi r24, 0x0A ; 10
+ 23e: 90 e0 ldi r25, 0x00 ; 0
+ 240: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 244: 08 95 ret
+
+00000246 <_Z8readBytev>:
+ 246: 0f 93 push r16
+ 248: 1f 93 push r17
+ 24a: 8a e0 ldi r24, 0x0A ; 10
+ 24c: 90 e0 ldi r25, 0x00 ; 0
+ 24e: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 252: 00 e0 ldi r16, 0x00 ; 0
+ 254: 17 e0 ldi r17, 0x07 ; 7
+ 256: 84 e0 ldi r24, 0x04 ; 4
+ 258: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 25c: 68 2f mov r22, r24
+ 25e: 90 e0 ldi r25, 0x00 ; 0
+ 260: 01 2e mov r0, r17
+ 262: 02 c0 rjmp .+4 ; 0x268 <_Z8readBytev+0x22>
+ 264: 88 0f add r24, r24
+ 266: 99 1f adc r25, r25
+ 268: 0a 94 dec r0
+ 26a: e2 f7 brpl .-8 ; 0x264 <_Z8readBytev+0x1e>
+ 26c: 08 2b or r16, r24
+ 26e: 8c e0 ldi r24, 0x0C ; 12
+ 270: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 274: 0e 94 0e 01 call 0x21c ; 0x21c <_Z11SCLKcycle_Rv>
+ 278: 11 50 subi r17, 0x01 ; 1
+ 27a: 68 f7 brcc .-38 ; 0x256 <_Z8readBytev+0x10>
+ 27c: 0e 94 0e 01 call 0x21c ; 0x21c <_Z11SCLKcycle_Rv>
+ 280: 80 2f mov r24, r16
+ 282: 1f 91 pop r17
+ 284: 0f 91 pop r16
+ 286: 08 95 ret
+
+00000288 <_Z11SCLKcycle_Wv>:
+ 288: 8a e0 ldi r24, 0x0A ; 10
+ 28a: 90 e0 ldi r25, 0x00 ; 0
+ 28c: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 290: 83 e0 ldi r24, 0x03 ; 3
+ 292: 61 e0 ldi r22, 0x01 ; 1
+ 294: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 298: 84 e1 ldi r24, 0x14 ; 20
+ 29a: 90 e0 ldi r25, 0x00 ; 0
+ 29c: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 2a0: 83 e0 ldi r24, 0x03 ; 3
+ 2a2: 60 e0 ldi r22, 0x00 ; 0
+ 2a4: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2a8: 8a e0 ldi r24, 0x0A ; 10
+ 2aa: 90 e0 ldi r25, 0x00 ; 0
+ 2ac: 0e 94 52 14 call 0x28a4 ; 0x28a4 <delayMicroseconds>
+ 2b0: 08 95 ret
+
+000002b2 <_Z9writeByteh>:
+ 2b2: 1f 93 push r17
+ 2b4: cf 93 push r28
+ 2b6: df 93 push r29
+ 2b8: 17 e0 ldi r17, 0x07 ; 7
+ 2ba: c8 2f mov r28, r24
+ 2bc: d0 e0 ldi r29, 0x00 ; 0
+ 2be: be 01 movw r22, r28
+ 2c0: 01 2e mov r0, r17
+ 2c2: 02 c0 rjmp .+4 ; 0x2c8 <_Z9writeByteh+0x16>
+ 2c4: 75 95 asr r23
+ 2c6: 67 95 ror r22
+ 2c8: 0a 94 dec r0
+ 2ca: e2 f7 brpl .-8 ; 0x2c4 <_Z9writeByteh+0x12>
+ 2cc: 61 70 andi r22, 0x01 ; 1
+ 2ce: 84 e0 ldi r24, 0x04 ; 4
+ 2d0: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2d4: 0e 94 44 01 call 0x288 ; 0x288 <_Z11SCLKcycle_Wv>
+ 2d8: 11 50 subi r17, 0x01 ; 1
+ 2da: 88 f7 brcc .-30 ; 0x2be <_Z9writeByteh+0xc>
+ 2dc: 84 e0 ldi r24, 0x04 ; 4
+ 2de: 61 e0 ldi r22, 0x01 ; 1
+ 2e0: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2e4: 0e 94 44 01 call 0x288 ; 0x288 <_Z11SCLKcycle_Wv>
+ 2e8: df 91 pop r29
+ 2ea: cf 91 pop r28
+ 2ec: 1f 91 pop r17
+ 2ee: 08 95 ret
+
+000002f0 <_Z9startReadv>:
+ 2f0: 84 e0 ldi r24, 0x04 ; 4
+ 2f2: 60 e0 ldi r22, 0x00 ; 0
+ 2f4: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 2f8: 83 e0 ldi r24, 0x03 ; 3
+ 2fa: 61 e0 ldi r22, 0x01 ; 1
+ 2fc: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 300: 08 95 ret
+
+00000302 <_Z10startWritev>:
+ 302: 84 e0 ldi r24, 0x04 ; 4
+ 304: 61 e0 ldi r22, 0x01 ; 1
+ 306: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 30a: 83 e0 ldi r24, 0x03 ; 3
+ 30c: 61 e0 ldi r22, 0x01 ; 1
+ 30e: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 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 c5 02 lds r24, 0x02C5
+ 320: 87 95 ror r24
+ 322: 88 27 eor r24, r24
+ 324: 87 95 ror r24
+ 326: f0 90 c6 02 lds r15, 0x02C6
+ 32a: ff 0c add r15, r15
+ 32c: ff 0c add r15, r15
+ 32e: ff 0c add r15, r15
+ 330: f8 2a or r15, r24
+ 332: 80 91 c7 02 lds r24, 0x02C7
+ 336: f8 2a or r15, r24
+ 338: 80 91 c9 02 lds r24, 0x02C9
+ 33c: 82 95 swap r24
+ 33e: 88 0f add r24, r24
+ 340: 80 7e andi r24, 0xE0 ; 224
+ 342: 00 91 ca 02 lds r16, 0x02CA
+ 346: 00 0f add r16, r16
+ 348: 00 0f add r16, r16
+ 34a: 00 0f add r16, r16
+ 34c: 08 2b or r16, r24
+ 34e: 80 91 c8 02 lds r24, 0x02C8
+ 352: 08 2b or r16, r24
+ 354: 90 91 cb 02 lds r25, 0x02CB
+ 358: 97 95 ror r25
+ 35a: 99 27 eor r25, r25
+ 35c: 97 95 ror r25
+ 35e: 80 91 cf 02 lds r24, 0x02CF
+ 362: 82 95 swap r24
+ 364: 80 7f andi r24, 0xF0 ; 240
+ 366: 89 2b or r24, r25
+ 368: 90 91 d1 02 lds r25, 0x02D1
+ 36c: 89 2b or r24, r25
+ 36e: 90 91 d3 02 lds r25, 0x02D3
+ 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 ce 02 lds r14, 0x02CE
+ 37e: ee 0c add r14, r14
+ 380: e9 2a or r14, r25
+ 382: 90 91 cc 02 lds r25, 0x02CC
+ 386: 97 95 ror r25
+ 388: 99 27 eor r25, r25
+ 38a: 97 95 ror r25
+ 38c: 80 91 cd 02 lds r24, 0x02CD
+ 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 d2 02 lds r25, 0x02D2
+ 39e: 89 2b or r24, r25
+ 3a0: 10 91 d0 02 lds r17, 0x02D0
+ 3a4: 11 0f add r17, r17
+ 3a6: 11 0f add r17, r17
+ 3a8: 18 2b or r17, r24
+ 3aa: 0e 94 81 01 call 0x302 ; 0x302 <_Z10startWritev>
+ 3ae: 0e 94 dc 00 call 0x1b8 ; 0x1b8 <_Z13writeStartBitv>
+ 3b2: 88 ec ldi r24, 0xC8 ; 200
+ 3b4: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 3b8: 8f 2d mov r24, r15
+ 3ba: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 3be: 80 2f mov r24, r16
+ 3c0: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 3c4: 8e 2d mov r24, r14
+ 3c6: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 3ca: 81 2f mov r24, r17
+ 3cc: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 3d0: 0e 94 f9 00 call 0x1f2 ; 0x1f2 <_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 5c 14 call 0x28b8 ; 0x28b8 <init>
+ 40a: 85 e0 ldi r24, 0x05 ; 5
+ 40c: 61 e0 ldi r22, 0x01 ; 1
+ 40e: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 412: 85 e0 ldi r24, 0x05 ; 5
+ 414: 60 e0 ldi r22, 0x00 ; 0
+ 416: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 41a: 0e 94 a8 00 call 0x150 ; 0x150 <_Z14setupBlueToothv>
+ 41e: 82 e0 ldi r24, 0x02 ; 2
+ 420: 60 e0 ldi r22, 0x00 ; 0
+ 422: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 426: 83 e0 ldi r24, 0x03 ; 3
+ 428: 61 e0 ldi r22, 0x01 ; 1
+ 42a: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 42e: 86 e0 ldi r24, 0x06 ; 6
+ 430: 60 e0 ldi r22, 0x00 ; 0
+ 432: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 436: 8c e0 ldi r24, 0x0C ; 12
+ 438: 61 e0 ldi r22, 0x01 ; 1
+ 43a: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 43e: 8d e0 ldi r24, 0x0D ; 13
+ 440: 61 e0 ldi r22, 0x01 ; 1
+ 442: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 446: 8d e0 ldi r24, 0x0D ; 13
+ 448: 61 e0 ldi r22, 0x01 ; 1
+ 44a: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 44e: 85 e0 ldi r24, 0x05 ; 5
+ 450: 61 e0 ldi r22, 0x01 ; 1
+ 452: 0e 94 6f 15 call 0x2ade ; 0x2ade <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 2c 14 call 0x2858 ; 0x2858 <delay>
+ 462: 0e 94 8a 01 call 0x314 ; 0x314 <_Z8writeDMMv>
+ 466: aa ef ldi r26, 0xFA ; 250
+ 468: ea 2e mov r14, r26
+ 46a: f1 2c mov r15, r1
+ 46c: 4e 01 movw r8, r28
+ 46e: 08 94 sec
+ 470: 81 1c adc r8, r1
+ 472: 91 1c adc r9, r1
+ 474: f4 e0 ldi r31, 0x04 ; 4
+ 476: af 2e mov r10, r31
+ 478: b1 2c mov r11, r1
+ 47a: ac 0e add r10, r28
+ 47c: bd 1e adc r11, r29
+ 47e: e2 e0 ldi r30, 0x02 ; 2
+ 480: ce 2e mov r12, r30
+ 482: d1 2c mov r13, r1
+ 484: cc 0e add r12, r28
+ 486: dd 1e adc r13, r29
+ 488: 82 e0 ldi r24, 0x02 ; 2
+ 48a: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 48e: 01 97 sbiw r24, 0x01 ; 1
+ 490: 09 f0 breq .+2 ; 0x494 <main+0xb6>
+ 492: bc c0 rjmp .+376 ; 0x60c <main+0x22e>
+ 494: 8c e0 ldi r24, 0x0C ; 12
+ 496: 61 e0 ldi r22, 0x01 ; 1
+ 498: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 49c: 8d e0 ldi r24, 0x0D ; 13
+ 49e: 60 e0 ldi r22, 0x00 ; 0
+ 4a0: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 4a4: 0e 94 81 01 call 0x302 ; 0x302 <_Z10startWritev>
+ 4a8: 0e 94 dc 00 call 0x1b8 ; 0x1b8 <_Z13writeStartBitv>
+ 4ac: 89 ec ldi r24, 0xC9 ; 201
+ 4ae: 0e 94 59 01 call 0x2b2 ; 0x2b2 <_Z9writeByteh>
+ 4b2: 82 e0 ldi r24, 0x02 ; 2
+ 4b4: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 4b8: 89 2b or r24, r25
+ 4ba: 09 f0 breq .+2 ; 0x4be <main+0xe0>
+ 4bc: a7 c0 rjmp .+334 ; 0x60c <main+0x22e>
+ 4be: 8d e0 ldi r24, 0x0D ; 13
+ 4c0: 61 e0 ldi r22, 0x01 ; 1
+ 4c2: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 4c6: 0e 94 78 01 call 0x2f0 ; 0x2f0 <_Z9startReadv>
+ 4ca: 0b eb ldi r16, 0xBB ; 187
+ 4cc: 12 e0 ldi r17, 0x02 ; 2
+ 4ce: 0e 94 23 01 call 0x246 ; 0x246 <_Z8readBytev>
+ 4d2: f8 01 movw r30, r16
+ 4d4: 81 93 st Z+, r24
+ 4d6: 8f 01 movw r16, r30
+ 4d8: f2 e0 ldi r31, 0x02 ; 2
+ 4da: 05 3c cpi r16, 0xC5 ; 197
+ 4dc: 1f 07 cpc r17, r31
+ 4de: b9 f7 brne .-18 ; 0x4ce <main+0xf0>
+ 4e0: 0e 94 81 01 call 0x302 ; 0x302 <_Z10startWritev>
+ 4e4: 0e 94 f9 00 call 0x1f2 ; 0x1f2 <_Z12writeStopBitv>
+ 4e8: 80 91 bb 02 lds r24, 0x02BB
+ 4ec: 89 83 std Y+1, r24 ; 0x01
+ 4ee: 20 91 bd 02 lds r18, 0x02BD
+ 4f2: 30 e0 ldi r19, 0x00 ; 0
+ 4f4: 40 e0 ldi r20, 0x00 ; 0
+ 4f6: 50 e0 ldi r21, 0x00 ; 0
+ 4f8: 54 2f mov r21, r20
+ 4fa: 43 2f mov r20, r19
+ 4fc: 32 2f mov r19, r18
+ 4fe: 22 27 eor r18, r18
+ 500: 80 91 be 02 lds r24, 0x02BE
+ 504: 90 e0 ldi r25, 0x00 ; 0
+ 506: a0 e0 ldi r26, 0x00 ; 0
+ 508: b0 e0 ldi r27, 0x00 ; 0
+ 50a: 28 2b or r18, r24
+ 50c: 39 2b or r19, r25
+ 50e: 4a 2b or r20, r26
+ 510: 5b 2b or r21, r27
+ 512: 80 91 bc 02 lds r24, 0x02BC
+ 516: 90 e0 ldi r25, 0x00 ; 0
+ 518: a0 e0 ldi r26, 0x00 ; 0
+ 51a: b0 e0 ldi r27, 0x00 ; 0
+ 51c: 87 70 andi r24, 0x07 ; 7
+ 51e: 90 70 andi r25, 0x00 ; 0
+ 520: a0 70 andi r26, 0x00 ; 0
+ 522: b0 70 andi r27, 0x00 ; 0
+ 524: dc 01 movw r26, r24
+ 526: 99 27 eor r25, r25
+ 528: 88 27 eor r24, r24
+ 52a: 28 2b or r18, r24
+ 52c: 39 2b or r19, r25
+ 52e: 4a 2b or r20, r26
+ 530: 5b 2b or r21, r27
+ 532: 2c 83 std Y+4, r18 ; 0x04
+ 534: 3d 83 std Y+5, r19 ; 0x05
+ 536: 4e 83 std Y+6, r20 ; 0x06
+ 538: 5f 83 std Y+7, r21 ; 0x07
+ 53a: 20 91 c0 02 lds r18, 0x02C0
+ 53e: 22 95 swap r18
+ 540: 26 95 lsr r18
+ 542: 26 95 lsr r18
+ 544: 23 70 andi r18, 0x03 ; 3
+ 546: 30 e0 ldi r19, 0x00 ; 0
+ 548: 80 91 bf 02 lds r24, 0x02BF
+ 54c: 90 e0 ldi r25, 0x00 ; 0
+ 54e: 88 0f add r24, r24
+ 550: 99 1f adc r25, r25
+ 552: 88 0f add r24, r24
+ 554: 99 1f adc r25, r25
+ 556: 28 2b or r18, r24
+ 558: 39 2b or r19, r25
+ 55a: 3b 83 std Y+3, r19 ; 0x03
+ 55c: 2a 83 std Y+2, r18 ; 0x02
+ 55e: 17 c0 rjmp .+46 ; 0x58e <main+0x1b0>
+ 560: 88 e5 ldi r24, 0x58 ; 88
+ 562: 93 e0 ldi r25, 0x03 ; 3
+ 564: 0e 94 5e 04 call 0x8bc ; 0x8bc <_ZN14HardwareSerial4readEv>
+ 568: 82 30 cpi r24, 0x02 ; 2
+ 56a: 29 f0 breq .+10 ; 0x576 <main+0x198>
+ 56c: 83 30 cpi r24, 0x03 ; 3
+ 56e: 61 f0 breq .+24 ; 0x588 <main+0x1aa>
+ 570: 81 30 cpi r24, 0x01 ; 1
+ 572: 69 f4 brne .+26 ; 0x58e <main+0x1b0>
+ 574: 04 c0 rjmp .+8 ; 0x57e <main+0x1a0>
+ 576: 2a ef ldi r18, 0xFA ; 250
+ 578: e2 2e mov r14, r18
+ 57a: f1 2c mov r15, r1
+ 57c: 08 c0 rjmp .+16 ; 0x58e <main+0x1b0>
+ 57e: 98 ee ldi r25, 0xE8 ; 232
+ 580: e9 2e mov r14, r25
+ 582: 93 e0 ldi r25, 0x03 ; 3
+ 584: f9 2e mov r15, r25
+ 586: 03 c0 rjmp .+6 ; 0x58e <main+0x1b0>
+ 588: 82 e3 ldi r24, 0x32 ; 50
+ 58a: e8 2e mov r14, r24
+ 58c: f1 2c mov r15, r1
+ 58e: 88 e5 ldi r24, 0x58 ; 88
+ 590: 93 e0 ldi r25, 0x03 ; 3
+ 592: 0e 94 33 04 call 0x866 ; 0x866 <_ZN14HardwareSerial9availableEv>
+ 596: 18 16 cp r1, r24
+ 598: 19 06 cpc r1, r25
+ 59a: 14 f3 brlt .-60 ; 0x560 <main+0x182>
+ 59c: 86 e0 ldi r24, 0x06 ; 6
+ 59e: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 5a2: 20 91 ba 02 lds r18, 0x02BA
+ 5a6: 89 2b or r24, r25
+ 5a8: 59 f1 breq .+86 ; 0x600 <main+0x222>
+ 5aa: 22 23 and r18, r18
+ 5ac: 19 f4 brne .+6 ; 0x5b4 <main+0x1d6>
+ 5ae: 81 e0 ldi r24, 0x01 ; 1
+ 5b0: 80 93 ba 02 sts 0x02BA, r24
+ 5b4: 88 e5 ldi r24, 0x58 ; 88
+ 5b6: 93 e0 ldi r25, 0x03 ; 3
+ 5b8: 63 e7 ldi r22, 0x73 ; 115
+ 5ba: 71 e0 ldi r23, 0x01 ; 1
+ 5bc: 42 e0 ldi r20, 0x02 ; 2
+ 5be: 50 e0 ldi r21, 0x00 ; 0
+ 5c0: 0e 94 f3 04 call 0x9e6 ; 0x9e6 <_ZN5Print5writeEPKhj>
+ 5c4: 88 e5 ldi r24, 0x58 ; 88
+ 5c6: 93 e0 ldi r25, 0x03 ; 3
+ 5c8: 62 e7 ldi r22, 0x72 ; 114
+ 5ca: 71 e0 ldi r23, 0x01 ; 1
+ 5cc: 41 e0 ldi r20, 0x01 ; 1
+ 5ce: 50 e0 ldi r21, 0x00 ; 0
+ 5d0: 0e 94 f3 04 call 0x9e6 ; 0x9e6 <_ZN5Print5writeEPKhj>
+ 5d4: 88 e5 ldi r24, 0x58 ; 88
+ 5d6: 93 e0 ldi r25, 0x03 ; 3
+ 5d8: b4 01 movw r22, r8
+ 5da: 41 e0 ldi r20, 0x01 ; 1
+ 5dc: 50 e0 ldi r21, 0x00 ; 0
+ 5de: 0e 94 f3 04 call 0x9e6 ; 0x9e6 <_ZN5Print5writeEPKhj>
+ 5e2: 88 e5 ldi r24, 0x58 ; 88
+ 5e4: 93 e0 ldi r25, 0x03 ; 3
+ 5e6: b5 01 movw r22, r10
+ 5e8: 44 e0 ldi r20, 0x04 ; 4
+ 5ea: 50 e0 ldi r21, 0x00 ; 0
+ 5ec: 0e 94 f3 04 call 0x9e6 ; 0x9e6 <_ZN5Print5writeEPKhj>
+ 5f0: 88 e5 ldi r24, 0x58 ; 88
+ 5f2: 93 e0 ldi r25, 0x03 ; 3
+ 5f4: b6 01 movw r22, r12
+ 5f6: 42 e0 ldi r20, 0x02 ; 2
+ 5f8: 50 e0 ldi r21, 0x00 ; 0
+ 5fa: 0e 94 f3 04 call 0x9e6 ; 0x9e6 <_ZN5Print5writeEPKhj>
+ 5fe: 06 c0 rjmp .+12 ; 0x60c <main+0x22e>
+ 600: 22 23 and r18, r18
+ 602: 21 f0 breq .+8 ; 0x60c <main+0x22e>
+ 604: 0e 94 8d 00 call 0x11a ; 0x11a <_Z9advertisev>
+ 608: 10 92 ba 02 sts 0x02BA, r1
+ 60c: b7 01 movw r22, r14
+ 60e: 80 e0 ldi r24, 0x00 ; 0
+ 610: 90 e0 ldi r25, 0x00 ; 0
+ 612: 0e 94 2c 14 call 0x2858 ; 0x2858 <delay>
+ 616: 8c e0 ldi r24, 0x0C ; 12
+ 618: 60 e0 ldi r22, 0x00 ; 0
+ 61a: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 61e: 8d e0 ldi r24, 0x0D ; 13
+ 620: 60 e0 ldi r22, 0x00 ; 0
+ 622: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 626: 30 cf rjmp .-416 ; 0x488 <main+0xaa>
+
+00000628 <__vector_18>:
+ 628: 1f 92 push r1
+ 62a: 0f 92 push r0
+ 62c: 0f b6 in r0, 0x3f ; 63
+ 62e: 0f 92 push r0
+ 630: 11 24 eor r1, r1
+ 632: 2f 93 push r18
+ 634: 3f 93 push r19
+ 636: 4f 93 push r20
+ 638: 8f 93 push r24
+ 63a: 9f 93 push r25
+ 63c: ef 93 push r30
+ 63e: ff 93 push r31
+ 640: 40 91 c6 00 lds r20, 0x00C6
+ 644: e0 91 54 03 lds r30, 0x0354
+ 648: f0 91 55 03 lds r31, 0x0355
+ 64c: 31 96 adiw r30, 0x01 ; 1
+ 64e: 9f 01 movw r18, r30
+ 650: 2f 77 andi r18, 0x7F ; 127
+ 652: 30 70 andi r19, 0x00 ; 0
+ 654: 31 97 sbiw r30, 0x01 ; 1
+ 656: 80 91 56 03 lds r24, 0x0356
+ 65a: 90 91 57 03 lds r25, 0x0357
+ 65e: 28 17 cp r18, r24
+ 660: 39 07 cpc r19, r25
+ 662: 39 f0 breq .+14 ; 0x672 <__vector_18+0x4a>
+ 664: ec 52 subi r30, 0x2C ; 44
+ 666: fd 4f sbci r31, 0xFD ; 253
+ 668: 40 83 st Z, r20
+ 66a: 30 93 55 03 sts 0x0355, r19
+ 66e: 20 93 54 03 sts 0x0354, r18
+ 672: ff 91 pop r31
+ 674: ef 91 pop r30
+ 676: 9f 91 pop r25
+ 678: 8f 91 pop r24
+ 67a: 4f 91 pop r20
+ 67c: 3f 91 pop r19
+ 67e: 2f 91 pop r18
+ 680: 0f 90 pop r0
+ 682: 0f be out 0x3f, r0 ; 63
+ 684: 0f 90 pop r0
+ 686: 1f 90 pop r1
+ 688: 18 95 reti
+
+0000068a <_ZN14HardwareSerialC2EP11ring_bufferPVhS3_S3_S3_S3_hhhhh>:
+ 68a: 8f 92 push r8
+ 68c: af 92 push r10
+ 68e: cf 92 push r12
+ 690: df 92 push r13
+ 692: ef 92 push r14
+ 694: ff 92 push r15
+ 696: 0f 93 push r16
+ 698: 1f 93 push r17
+ 69a: df 93 push r29
+ 69c: cf 93 push r28
+ 69e: cd b7 in r28, 0x3d ; 61
+ 6a0: de b7 in r29, 0x3e ; 62
+ 6a2: fc 01 movw r30, r24
+ 6a4: 89 e7 ldi r24, 0x79 ; 121
+ 6a6: 91 e0 ldi r25, 0x01 ; 1
+ 6a8: 91 83 std Z+1, r25 ; 0x01
+ 6aa: 80 83 st Z, r24
+ 6ac: 73 83 std Z+3, r23 ; 0x03
+ 6ae: 62 83 std Z+2, r22 ; 0x02
+ 6b0: 55 83 std Z+5, r21 ; 0x05
+ 6b2: 44 83 std Z+4, r20 ; 0x04
+ 6b4: 37 83 std Z+7, r19 ; 0x07
+ 6b6: 26 83 std Z+6, r18 ; 0x06
+ 6b8: 11 87 std Z+9, r17 ; 0x09
+ 6ba: 00 87 std Z+8, r16 ; 0x08
+ 6bc: f3 86 std Z+11, r15 ; 0x0b
+ 6be: e2 86 std Z+10, r14 ; 0x0a
+ 6c0: d5 86 std Z+13, r13 ; 0x0d
+ 6c2: c4 86 std Z+12, r12 ; 0x0c
+ 6c4: a6 86 std Z+14, r10 ; 0x0e
+ 6c6: 87 86 std Z+15, r8 ; 0x0f
+ 6c8: 8d 85 ldd r24, Y+13 ; 0x0d
+ 6ca: 80 8b std Z+16, r24 ; 0x10
+ 6cc: 8e 85 ldd r24, Y+14 ; 0x0e
+ 6ce: 81 8b std Z+17, r24 ; 0x11
+ 6d0: 8f 85 ldd r24, Y+15 ; 0x0f
+ 6d2: 82 8b std Z+18, r24 ; 0x12
+ 6d4: cf 91 pop r28
+ 6d6: df 91 pop r29
+ 6d8: 1f 91 pop r17
+ 6da: 0f 91 pop r16
+ 6dc: ff 90 pop r15
+ 6de: ef 90 pop r14
+ 6e0: df 90 pop r13
+ 6e2: cf 90 pop r12
+ 6e4: af 90 pop r10
+ 6e6: 8f 90 pop r8
+ 6e8: 08 95 ret
+
+000006ea <_ZN14HardwareSerialC1EP11ring_bufferPVhS3_S3_S3_S3_hhhhh>:
+ 6ea: 8f 92 push r8
+ 6ec: af 92 push r10
+ 6ee: cf 92 push r12
+ 6f0: df 92 push r13
+ 6f2: ef 92 push r14
+ 6f4: ff 92 push r15
+ 6f6: 0f 93 push r16
+ 6f8: 1f 93 push r17
+ 6fa: df 93 push r29
+ 6fc: cf 93 push r28
+ 6fe: cd b7 in r28, 0x3d ; 61
+ 700: de b7 in r29, 0x3e ; 62
+ 702: fc 01 movw r30, r24
+ 704: 89 e7 ldi r24, 0x79 ; 121
+ 706: 91 e0 ldi r25, 0x01 ; 1
+ 708: 91 83 std Z+1, r25 ; 0x01
+ 70a: 80 83 st Z, r24
+ 70c: 73 83 std Z+3, r23 ; 0x03
+ 70e: 62 83 std Z+2, r22 ; 0x02
+ 710: 55 83 std Z+5, r21 ; 0x05
+ 712: 44 83 std Z+4, r20 ; 0x04
+ 714: 37 83 std Z+7, r19 ; 0x07
+ 716: 26 83 std Z+6, r18 ; 0x06
+ 718: 11 87 std Z+9, r17 ; 0x09
+ 71a: 00 87 std Z+8, r16 ; 0x08
+ 71c: f3 86 std Z+11, r15 ; 0x0b
+ 71e: e2 86 std Z+10, r14 ; 0x0a
+ 720: d5 86 std Z+13, r13 ; 0x0d
+ 722: c4 86 std Z+12, r12 ; 0x0c
+ 724: a6 86 std Z+14, r10 ; 0x0e
+ 726: 87 86 std Z+15, r8 ; 0x0f
+ 728: 8d 85 ldd r24, Y+13 ; 0x0d
+ 72a: 80 8b std Z+16, r24 ; 0x10
+ 72c: 8e 85 ldd r24, Y+14 ; 0x0e
+ 72e: 81 8b std Z+17, r24 ; 0x11
+ 730: 8f 85 ldd r24, Y+15 ; 0x0f
+ 732: 82 8b std Z+18, r24 ; 0x12
+ 734: cf 91 pop r28
+ 736: df 91 pop r29
+ 738: 1f 91 pop r17
+ 73a: 0f 91 pop r16
+ 73c: ff 90 pop r15
+ 73e: ef 90 pop r14
+ 740: df 90 pop r13
+ 742: cf 90 pop r12
+ 744: af 90 pop r10
+ 746: 8f 90 pop r8
+ 748: 08 95 ret
+
+0000074a <_ZN14HardwareSerial5beginEl>:
+ 74a: ef 92 push r14
+ 74c: ff 92 push r15
+ 74e: 0f 93 push r16
+ 750: 1f 93 push r17
+ 752: 8c 01 movw r16, r24
+ 754: 9a 01 movw r18, r20
+ 756: ab 01 movw r20, r22
+ 758: dc 01 movw r26, r24
+ 75a: 18 96 adiw r26, 0x08 ; 8
+ 75c: ed 91 ld r30, X+
+ 75e: fc 91 ld r31, X
+ 760: 19 97 sbiw r26, 0x09 ; 9
+ 762: 91 e0 ldi r25, 0x01 ; 1
+ 764: e9 2e mov r14, r25
+ 766: f1 2c mov r15, r1
+ 768: c7 01 movw r24, r14
+ 76a: 52 96 adiw r26, 0x12 ; 18
+ 76c: 0c 90 ld r0, X
+ 76e: 02 c0 rjmp .+4 ; 0x774 <_ZN14HardwareSerial5beginEl+0x2a>
+ 770: 88 0f add r24, r24
+ 772: 99 1f adc r25, r25
+ 774: 0a 94 dec r0
+ 776: e2 f7 brpl .-8 ; 0x770 <_ZN14HardwareSerial5beginEl+0x26>
+ 778: 80 83 st Z, r24
+ 77a: 60 e8 ldi r22, 0x80 ; 128
+ 77c: 74 e8 ldi r23, 0x84 ; 132
+ 77e: 8e e1 ldi r24, 0x1E ; 30
+ 780: 90 e0 ldi r25, 0x00 ; 0
+ 782: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 786: 21 50 subi r18, 0x01 ; 1
+ 788: 30 40 sbci r19, 0x00 ; 0
+ 78a: 40 40 sbci r20, 0x00 ; 0
+ 78c: 50 40 sbci r21, 0x00 ; 0
+ 78e: 56 95 lsr r21
+ 790: 47 95 ror r20
+ 792: 37 95 ror r19
+ 794: 27 95 ror r18
+ 796: d8 01 movw r26, r16
+ 798: 14 96 adiw r26, 0x04 ; 4
+ 79a: ed 91 ld r30, X+
+ 79c: fc 91 ld r31, X
+ 79e: 15 97 sbiw r26, 0x05 ; 5
+ 7a0: 30 83 st Z, r19
+ 7a2: 16 96 adiw r26, 0x06 ; 6
+ 7a4: ed 91 ld r30, X+
+ 7a6: fc 91 ld r31, X
+ 7a8: 17 97 sbiw r26, 0x07 ; 7
+ 7aa: 20 83 st Z, r18
+ 7ac: 1a 96 adiw r26, 0x0a ; 10
+ 7ae: ed 91 ld r30, X+
+ 7b0: fc 91 ld r31, X
+ 7b2: 1b 97 sbiw r26, 0x0b ; 11
+ 7b4: 20 81 ld r18, Z
+ 7b6: c7 01 movw r24, r14
+ 7b8: 1e 96 adiw r26, 0x0e ; 14
+ 7ba: 0c 90 ld r0, X
+ 7bc: 1e 97 sbiw r26, 0x0e ; 14
+ 7be: 02 c0 rjmp .+4 ; 0x7c4 <_ZN14HardwareSerial5beginEl+0x7a>
+ 7c0: 88 0f add r24, r24
+ 7c2: 99 1f adc r25, r25
+ 7c4: 0a 94 dec r0
+ 7c6: e2 f7 brpl .-8 ; 0x7c0 <_ZN14HardwareSerial5beginEl+0x76>
+ 7c8: 28 2b or r18, r24
+ 7ca: 20 83 st Z, r18
+ 7cc: 1a 96 adiw r26, 0x0a ; 10
+ 7ce: ed 91 ld r30, X+
+ 7d0: fc 91 ld r31, X
+ 7d2: 1b 97 sbiw r26, 0x0b ; 11
+ 7d4: 20 81 ld r18, Z
+ 7d6: c7 01 movw r24, r14
+ 7d8: 1f 96 adiw r26, 0x0f ; 15
+ 7da: 0c 90 ld r0, X
+ 7dc: 1f 97 sbiw r26, 0x0f ; 15
+ 7de: 02 c0 rjmp .+4 ; 0x7e4 <_ZN14HardwareSerial5beginEl+0x9a>
+ 7e0: 88 0f add r24, r24
+ 7e2: 99 1f adc r25, r25
+ 7e4: 0a 94 dec r0
+ 7e6: e2 f7 brpl .-8 ; 0x7e0 <_ZN14HardwareSerial5beginEl+0x96>
+ 7e8: 28 2b or r18, r24
+ 7ea: 20 83 st Z, r18
+ 7ec: 1a 96 adiw r26, 0x0a ; 10
+ 7ee: ed 91 ld r30, X+
+ 7f0: fc 91 ld r31, X
+ 7f2: 1b 97 sbiw r26, 0x0b ; 11
+ 7f4: 80 81 ld r24, Z
+ 7f6: 50 96 adiw r26, 0x10 ; 16
+ 7f8: 0c 90 ld r0, X
+ 7fa: 02 c0 rjmp .+4 ; 0x800 <_ZN14HardwareSerial5beginEl+0xb6>
+ 7fc: ee 0c add r14, r14
+ 7fe: ff 1c adc r15, r15
+ 800: 0a 94 dec r0
+ 802: e2 f7 brpl .-8 ; 0x7fc <_ZN14HardwareSerial5beginEl+0xb2>
+ 804: 8e 29 or r24, r14
+ 806: 80 83 st Z, r24
+ 808: 1f 91 pop r17
+ 80a: 0f 91 pop r16
+ 80c: ff 90 pop r15
+ 80e: ef 90 pop r14
+ 810: 08 95 ret
+
+00000812 <_ZN14HardwareSerial3endEv>:
+ 812: fc 01 movw r30, r24
+ 814: a2 85 ldd r26, Z+10 ; 0x0a
+ 816: b3 85 ldd r27, Z+11 ; 0x0b
+ 818: 4c 91 ld r20, X
+ 81a: 21 e0 ldi r18, 0x01 ; 1
+ 81c: 30 e0 ldi r19, 0x00 ; 0
+ 81e: c9 01 movw r24, r18
+ 820: 06 84 ldd r0, Z+14 ; 0x0e
+ 822: 02 c0 rjmp .+4 ; 0x828 <_ZN14HardwareSerial3endEv+0x16>
+ 824: 88 0f add r24, r24
+ 826: 99 1f adc r25, r25
+ 828: 0a 94 dec r0
+ 82a: e2 f7 brpl .-8 ; 0x824 <_ZN14HardwareSerial3endEv+0x12>
+ 82c: 80 95 com r24
+ 82e: 84 23 and r24, r20
+ 830: 8c 93 st X, r24
+ 832: a2 85 ldd r26, Z+10 ; 0x0a
+ 834: b3 85 ldd r27, Z+11 ; 0x0b
+ 836: 4c 91 ld r20, X
+ 838: c9 01 movw r24, r18
+ 83a: 07 84 ldd r0, Z+15 ; 0x0f
+ 83c: 02 c0 rjmp .+4 ; 0x842 <_ZN14HardwareSerial3endEv+0x30>
+ 83e: 88 0f add r24, r24
+ 840: 99 1f adc r25, r25
+ 842: 0a 94 dec r0
+ 844: e2 f7 brpl .-8 ; 0x83e <_ZN14HardwareSerial3endEv+0x2c>
+ 846: 80 95 com r24
+ 848: 84 23 and r24, r20
+ 84a: 8c 93 st X, r24
+ 84c: a2 85 ldd r26, Z+10 ; 0x0a
+ 84e: b3 85 ldd r27, Z+11 ; 0x0b
+ 850: 8c 91 ld r24, X
+ 852: 00 88 ldd r0, Z+16 ; 0x10
+ 854: 02 c0 rjmp .+4 ; 0x85a <_ZN14HardwareSerial3endEv+0x48>
+ 856: 22 0f add r18, r18
+ 858: 33 1f adc r19, r19
+ 85a: 0a 94 dec r0
+ 85c: e2 f7 brpl .-8 ; 0x856 <_ZN14HardwareSerial3endEv+0x44>
+ 85e: 20 95 com r18
+ 860: 28 23 and r18, r24
+ 862: 2c 93 st X, r18
+ 864: 08 95 ret
+
+00000866 <_ZN14HardwareSerial9availableEv>:
+ 866: dc 01 movw r26, r24
+ 868: 12 96 adiw r26, 0x02 ; 2
+ 86a: ed 91 ld r30, X+
+ 86c: fc 91 ld r31, X
+ 86e: 13 97 sbiw r26, 0x03 ; 3
+ 870: e0 58 subi r30, 0x80 ; 128
+ 872: ff 4f sbci r31, 0xFF ; 255
+ 874: 21 91 ld r18, Z+
+ 876: 31 91 ld r19, Z+
+ 878: 80 81 ld r24, Z
+ 87a: 91 81 ldd r25, Z+1 ; 0x01
+ 87c: 28 1b sub r18, r24
+ 87e: 39 0b sbc r19, r25
+ 880: 2f 77 andi r18, 0x7F ; 127
+ 882: 30 70 andi r19, 0x00 ; 0
+ 884: c9 01 movw r24, r18
+ 886: 08 95 ret
+
+00000888 <_ZN14HardwareSerial4peekEv>:
+ 888: dc 01 movw r26, r24
+ 88a: 12 96 adiw r26, 0x02 ; 2
+ 88c: ed 91 ld r30, X+
+ 88e: fc 91 ld r31, X
+ 890: 13 97 sbiw r26, 0x03 ; 3
+ 892: ee 57 subi r30, 0x7E ; 126
+ 894: ff 4f sbci r31, 0xFF ; 255
+ 896: 20 81 ld r18, Z
+ 898: 31 81 ldd r19, Z+1 ; 0x01
+ 89a: 92 91 ld r25, -Z
+ 89c: 82 91 ld r24, -Z
+ 89e: e0 58 subi r30, 0x80 ; 128
+ 8a0: f0 40 sbci r31, 0x00 ; 0
+ 8a2: 82 17 cp r24, r18
+ 8a4: 93 07 cpc r25, r19
+ 8a6: 19 f4 brne .+6 ; 0x8ae <_ZN14HardwareSerial4peekEv+0x26>
+ 8a8: 2f ef ldi r18, 0xFF ; 255
+ 8aa: 3f ef ldi r19, 0xFF ; 255
+ 8ac: 05 c0 rjmp .+10 ; 0x8b8 <_ZN14HardwareSerial4peekEv+0x30>
+ 8ae: e2 0f add r30, r18
+ 8b0: f3 1f adc r31, r19
+ 8b2: 80 81 ld r24, Z
+ 8b4: 28 2f mov r18, r24
+ 8b6: 30 e0 ldi r19, 0x00 ; 0
+ 8b8: c9 01 movw r24, r18
+ 8ba: 08 95 ret
+
+000008bc <_ZN14HardwareSerial4readEv>:
+ 8bc: dc 01 movw r26, r24
+ 8be: 12 96 adiw r26, 0x02 ; 2
+ 8c0: ed 91 ld r30, X+
+ 8c2: fc 91 ld r31, X
+ 8c4: 13 97 sbiw r26, 0x03 ; 3
+ 8c6: df 01 movw r26, r30
+ 8c8: ae 57 subi r26, 0x7E ; 126
+ 8ca: bf 4f sbci r27, 0xFF ; 255
+ 8cc: 2d 91 ld r18, X+
+ 8ce: 3c 91 ld r19, X
+ 8d0: 11 97 sbiw r26, 0x01 ; 1
+ 8d2: e0 58 subi r30, 0x80 ; 128
+ 8d4: ff 4f sbci r31, 0xFF ; 255
+ 8d6: 80 81 ld r24, Z
+ 8d8: 91 81 ldd r25, Z+1 ; 0x01
+ 8da: e0 58 subi r30, 0x80 ; 128
+ 8dc: f0 40 sbci r31, 0x00 ; 0
+ 8de: 82 17 cp r24, r18
+ 8e0: 93 07 cpc r25, r19
+ 8e2: 19 f4 brne .+6 ; 0x8ea <_ZN14HardwareSerial4readEv+0x2e>
+ 8e4: 2f ef ldi r18, 0xFF ; 255
+ 8e6: 3f ef ldi r19, 0xFF ; 255
+ 8e8: 0b c0 rjmp .+22 ; 0x900 <__stack+0x1>
+ 8ea: e2 0f add r30, r18
+ 8ec: f3 1f adc r31, r19
+ 8ee: 80 81 ld r24, Z
+ 8f0: 2f 5f subi r18, 0xFF ; 255
+ 8f2: 3f 4f sbci r19, 0xFF ; 255
+ 8f4: 2f 77 andi r18, 0x7F ; 127
+ 8f6: 30 70 andi r19, 0x00 ; 0
+ 8f8: 2d 93 st X+, r18
+ 8fa: 3c 93 st X, r19
+ 8fc: 28 2f mov r18, r24
+ 8fe: 30 e0 ldi r19, 0x00 ; 0
+ 900: c9 01 movw r24, r18
+ 902: 08 95 ret
+
+00000904 <_ZN14HardwareSerial5flushEv>:
+ 904: dc 01 movw r26, r24
+ 906: 12 96 adiw r26, 0x02 ; 2
+ 908: ed 91 ld r30, X+
+ 90a: fc 91 ld r31, X
+ 90c: 13 97 sbiw r26, 0x03 ; 3
+ 90e: ee 57 subi r30, 0x7E ; 126
+ 910: ff 4f sbci r31, 0xFF ; 255
+ 912: 80 81 ld r24, Z
+ 914: 91 81 ldd r25, Z+1 ; 0x01
+ 916: 92 93 st -Z, r25
+ 918: 82 93 st -Z, r24
+ 91a: 08 95 ret
+
+0000091c <_ZN14HardwareSerial5writeEh>:
+ 91c: fc 01 movw r30, r24
+ 91e: a0 85 ldd r26, Z+8 ; 0x08
+ 920: b1 85 ldd r27, Z+9 ; 0x09
+ 922: 21 89 ldd r18, Z+17 ; 0x11
+ 924: 8c 91 ld r24, X
+ 926: 90 e0 ldi r25, 0x00 ; 0
+ 928: 02 2e mov r0, r18
+ 92a: 02 c0 rjmp .+4 ; 0x930 <_ZN14HardwareSerial5writeEh+0x14>
+ 92c: 95 95 asr r25
+ 92e: 87 95 ror r24
+ 930: 0a 94 dec r0
+ 932: e2 f7 brpl .-8 ; 0x92c <_ZN14HardwareSerial5writeEh+0x10>
+ 934: 80 ff sbrs r24, 0
+ 936: f6 cf rjmp .-20 ; 0x924 <_ZN14HardwareSerial5writeEh+0x8>
+ 938: 04 84 ldd r0, Z+12 ; 0x0c
+ 93a: f5 85 ldd r31, Z+13 ; 0x0d
+ 93c: e0 2d mov r30, r0
+ 93e: 60 83 st Z, r22
+ 940: 08 95 ret
+
+00000942 <_GLOBAL__I_rx_buffer>:
+ 942: 89 e7 ldi r24, 0x79 ; 121
+ 944: 91 e0 ldi r25, 0x01 ; 1
+ 946: 90 93 59 03 sts 0x0359, r25
+ 94a: 80 93 58 03 sts 0x0358, r24
+ 94e: 84 ed ldi r24, 0xD4 ; 212
+ 950: 92 e0 ldi r25, 0x02 ; 2
+ 952: 90 93 5b 03 sts 0x035B, r25
+ 956: 80 93 5a 03 sts 0x035A, r24
+ 95a: 85 ec ldi r24, 0xC5 ; 197
+ 95c: 90 e0 ldi r25, 0x00 ; 0
+ 95e: 90 93 5d 03 sts 0x035D, r25
+ 962: 80 93 5c 03 sts 0x035C, r24
+ 966: 84 ec ldi r24, 0xC4 ; 196
+ 968: 90 e0 ldi r25, 0x00 ; 0
+ 96a: 90 93 5f 03 sts 0x035F, r25
+ 96e: 80 93 5e 03 sts 0x035E, r24
+ 972: 80 ec ldi r24, 0xC0 ; 192
+ 974: 90 e0 ldi r25, 0x00 ; 0
+ 976: 90 93 61 03 sts 0x0361, r25
+ 97a: 80 93 60 03 sts 0x0360, r24
+ 97e: 81 ec ldi r24, 0xC1 ; 193
+ 980: 90 e0 ldi r25, 0x00 ; 0
+ 982: 90 93 63 03 sts 0x0363, r25
+ 986: 80 93 62 03 sts 0x0362, r24
+ 98a: 86 ec ldi r24, 0xC6 ; 198
+ 98c: 90 e0 ldi r25, 0x00 ; 0
+ 98e: 90 93 65 03 sts 0x0365, r25
+ 992: 80 93 64 03 sts 0x0364, r24
+ 996: 84 e0 ldi r24, 0x04 ; 4
+ 998: 80 93 66 03 sts 0x0366, r24
+ 99c: 83 e0 ldi r24, 0x03 ; 3
+ 99e: 80 93 67 03 sts 0x0367, r24
+ 9a2: 87 e0 ldi r24, 0x07 ; 7
+ 9a4: 80 93 68 03 sts 0x0368, r24
+ 9a8: 85 e0 ldi r24, 0x05 ; 5
+ 9aa: 80 93 69 03 sts 0x0369, r24
+ 9ae: 81 e0 ldi r24, 0x01 ; 1
+ 9b0: 80 93 6a 03 sts 0x036A, r24
+ 9b4: 08 95 ret
+
+000009b6 <_ZN5Print5writeEPKc>:
+ 9b6: 0f 93 push r16
+ 9b8: 1f 93 push r17
+ 9ba: cf 93 push r28
+ 9bc: df 93 push r29
+ 9be: 8c 01 movw r16, r24
+ 9c0: eb 01 movw r28, r22
+ 9c2: 09 c0 rjmp .+18 ; 0x9d6 <_ZN5Print5writeEPKc+0x20>
+ 9c4: 21 96 adiw r28, 0x01 ; 1
+ 9c6: d8 01 movw r26, r16
+ 9c8: ed 91 ld r30, X+
+ 9ca: fc 91 ld r31, X
+ 9cc: 01 90 ld r0, Z+
+ 9ce: f0 81 ld r31, Z
+ 9d0: e0 2d mov r30, r0
+ 9d2: c8 01 movw r24, r16
+ 9d4: 09 95 icall
+ 9d6: 68 81 ld r22, Y
+ 9d8: 66 23 and r22, r22
+ 9da: a1 f7 brne .-24 ; 0x9c4 <_ZN5Print5writeEPKc+0xe>
+ 9dc: df 91 pop r29
+ 9de: cf 91 pop r28
+ 9e0: 1f 91 pop r17
+ 9e2: 0f 91 pop r16
+ 9e4: 08 95 ret
+
+000009e6 <_ZN5Print5writeEPKhj>:
+ 9e6: ef 92 push r14
+ 9e8: ff 92 push r15
+ 9ea: 0f 93 push r16
+ 9ec: 1f 93 push r17
+ 9ee: cf 93 push r28
+ 9f0: df 93 push r29
+ 9f2: 8c 01 movw r16, r24
+ 9f4: 7b 01 movw r14, r22
+ 9f6: ea 01 movw r28, r20
+ 9f8: 0c c0 rjmp .+24 ; 0xa12 <_ZN5Print5writeEPKhj+0x2c>
+ 9fa: d7 01 movw r26, r14
+ 9fc: 6d 91 ld r22, X+
+ 9fe: 7d 01 movw r14, r26
+ a00: d8 01 movw r26, r16
+ a02: ed 91 ld r30, X+
+ a04: fc 91 ld r31, X
+ a06: 01 90 ld r0, Z+
+ a08: f0 81 ld r31, Z
+ a0a: e0 2d mov r30, r0
+ a0c: c8 01 movw r24, r16
+ a0e: 09 95 icall
+ a10: 21 97 sbiw r28, 0x01 ; 1
+ a12: 20 97 sbiw r28, 0x00 ; 0
+ a14: 91 f7 brne .-28 ; 0x9fa <_ZN5Print5writeEPKhj+0x14>
+ a16: df 91 pop r29
+ a18: cf 91 pop r28
+ a1a: 1f 91 pop r17
+ a1c: 0f 91 pop r16
+ a1e: ff 90 pop r15
+ a20: ef 90 pop r14
+ a22: 08 95 ret
+
+00000a24 <_ZN5Print5printEPKc>:
+ a24: dc 01 movw r26, r24
+ a26: ed 91 ld r30, X+
+ a28: fc 91 ld r31, X
+ a2a: 02 80 ldd r0, Z+2 ; 0x02
+ a2c: f3 81 ldd r31, Z+3 ; 0x03
+ a2e: e0 2d mov r30, r0
+ a30: 09 95 icall
+ a32: 08 95 ret
+
+00000a34 <_ZN5Print5printERK6String>:
+ a34: cf 92 push r12
+ a36: df 92 push r13
+ a38: ef 92 push r14
+ a3a: ff 92 push r15
+ a3c: 0f 93 push r16
+ a3e: 1f 93 push r17
+ a40: cf 93 push r28
+ a42: df 93 push r29
+ a44: 6c 01 movw r12, r24
+ a46: 7b 01 movw r14, r22
+ a48: c0 e0 ldi r28, 0x00 ; 0
+ a4a: d0 e0 ldi r29, 0x00 ; 0
+ a4c: 0e c0 rjmp .+28 ; 0xa6a <_ZN5Print5printERK6String+0x36>
+ a4e: d6 01 movw r26, r12
+ a50: ed 91 ld r30, X+
+ a52: fc 91 ld r31, X
+ a54: 00 81 ld r16, Z
+ a56: 11 81 ldd r17, Z+1 ; 0x01
+ a58: c7 01 movw r24, r14
+ a5a: be 01 movw r22, r28
+ a5c: 0e 94 b4 0b call 0x1768 ; 0x1768 <_ZNK6StringixEj>
+ a60: 68 2f mov r22, r24
+ a62: c6 01 movw r24, r12
+ a64: f8 01 movw r30, r16
+ a66: 09 95 icall
+ a68: 21 96 adiw r28, 0x01 ; 1
+ a6a: f7 01 movw r30, r14
+ a6c: 84 81 ldd r24, Z+4 ; 0x04
+ a6e: 95 81 ldd r25, Z+5 ; 0x05
+ a70: c8 17 cp r28, r24
+ a72: d9 07 cpc r29, r25
+ a74: 60 f3 brcs .-40 ; 0xa4e <_ZN5Print5printERK6String+0x1a>
+ a76: df 91 pop r29
+ a78: cf 91 pop r28
+ a7a: 1f 91 pop r17
+ a7c: 0f 91 pop r16
+ a7e: ff 90 pop r15
+ a80: ef 90 pop r14
+ a82: df 90 pop r13
+ a84: cf 90 pop r12
+ a86: 08 95 ret
+
+00000a88 <_ZN5Print11printNumberEmh>:
+ a88: 2f 92 push r2
+ a8a: 3f 92 push r3
+ a8c: 4f 92 push r4
+ a8e: 5f 92 push r5
+ a90: 6f 92 push r6
+ a92: 7f 92 push r7
+ a94: 8f 92 push r8
+ a96: 9f 92 push r9
+ a98: af 92 push r10
+ a9a: bf 92 push r11
+ a9c: cf 92 push r12
+ a9e: df 92 push r13
+ aa0: ef 92 push r14
+ aa2: ff 92 push r15
+ aa4: 0f 93 push r16
+ aa6: 1f 93 push r17
+ aa8: df 93 push r29
+ aaa: cf 93 push r28
+ aac: cd b7 in r28, 0x3d ; 61
+ aae: de b7 in r29, 0x3e ; 62
+ ab0: a0 97 sbiw r28, 0x20 ; 32
+ ab2: 0f b6 in r0, 0x3f ; 63
+ ab4: f8 94 cli
+ ab6: de bf out 0x3e, r29 ; 62
+ ab8: 0f be out 0x3f, r0 ; 63
+ aba: cd bf out 0x3d, r28 ; 61
+ abc: 1c 01 movw r2, r24
+ abe: 6a 01 movw r12, r20
+ ac0: 7b 01 movw r14, r22
+ ac2: 41 15 cp r20, r1
+ ac4: 51 05 cpc r21, r1
+ ac6: 61 05 cpc r22, r1
+ ac8: 71 05 cpc r23, r1
+ aca: 49 f4 brne .+18 ; 0xade <_ZN5Print11printNumberEmh+0x56>
+ acc: 40 e3 ldi r20, 0x30 ; 48
+ ace: 50 e0 ldi r21, 0x00 ; 0
+ ad0: 60 e0 ldi r22, 0x00 ; 0
+ ad2: 70 e0 ldi r23, 0x00 ; 0
+ ad4: 20 e0 ldi r18, 0x00 ; 0
+ ad6: 30 e0 ldi r19, 0x00 ; 0
+ ad8: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ adc: 56 c0 rjmp .+172 ; 0xb8a <_ZN5Print11printNumberEmh+0x102>
+ ade: 88 24 eor r8, r8
+ ae0: 99 24 eor r9, r9
+ ae2: 54 01 movw r10, r8
+ ae4: 42 2e mov r4, r18
+ ae6: 55 24 eor r5, r5
+ ae8: 66 24 eor r6, r6
+ aea: 77 24 eor r7, r7
+ aec: 01 e0 ldi r16, 0x01 ; 1
+ aee: 10 e0 ldi r17, 0x00 ; 0
+ af0: 0c 0f add r16, r28
+ af2: 1d 1f adc r17, r29
+ af4: 08 0d add r16, r8
+ af6: 19 1d adc r17, r9
+ af8: c7 01 movw r24, r14
+ afa: b6 01 movw r22, r12
+ afc: a3 01 movw r20, r6
+ afe: 92 01 movw r18, r4
+ b00: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ b04: f8 01 movw r30, r16
+ b06: 60 83 st Z, r22
+ b08: 08 94 sec
+ b0a: 81 1c adc r8, r1
+ b0c: 91 1c adc r9, r1
+ b0e: a1 1c adc r10, r1
+ b10: b1 1c adc r11, r1
+ b12: c7 01 movw r24, r14
+ b14: b6 01 movw r22, r12
+ b16: a3 01 movw r20, r6
+ b18: 92 01 movw r18, r4
+ b1a: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ b1e: c9 01 movw r24, r18
+ b20: da 01 movw r26, r20
+ b22: 6c 01 movw r12, r24
+ b24: 7d 01 movw r14, r26
+ b26: c1 14 cp r12, r1
+ b28: d1 04 cpc r13, r1
+ b2a: e1 04 cpc r14, r1
+ b2c: f1 04 cpc r15, r1
+ b2e: f1 f6 brne .-68 ; 0xaec <_ZN5Print11printNumberEmh+0x64>
+ b30: 81 e0 ldi r24, 0x01 ; 1
+ b32: e8 2e mov r14, r24
+ b34: f1 2c mov r15, r1
+ b36: ec 0e add r14, r28
+ b38: fd 1e adc r15, r29
+ b3a: e8 0c add r14, r8
+ b3c: f9 1c adc r15, r9
+ b3e: 3e 01 movw r6, r28
+ b40: 08 94 sec
+ b42: 61 1c adc r6, r1
+ b44: 71 1c adc r7, r1
+ b46: d5 01 movw r26, r10
+ b48: c4 01 movw r24, r8
+ b4a: 01 97 sbiw r24, 0x01 ; 1
+ b4c: a1 09 sbc r26, r1
+ b4e: b1 09 sbc r27, r1
+ b50: 6c 01 movw r12, r24
+ b52: c8 18 sub r12, r8
+ b54: d9 08 sbc r13, r9
+ b56: 16 c0 rjmp .+44 ; 0xb84 <_ZN5Print11printNumberEmh+0xfc>
+ b58: f6 01 movw r30, r12
+ b5a: ee 0d add r30, r14
+ b5c: ff 1d adc r31, r15
+ b5e: 40 81 ld r20, Z
+ b60: 4a 30 cpi r20, 0x0A ; 10
+ b62: 10 f4 brcc .+4 ; 0xb68 <_ZN5Print11printNumberEmh+0xe0>
+ b64: 40 5d subi r20, 0xD0 ; 208
+ b66: 01 c0 rjmp .+2 ; 0xb6a <_ZN5Print11printNumberEmh+0xe2>
+ b68: 49 5c subi r20, 0xC9 ; 201
+ b6a: 55 27 eor r21, r21
+ b6c: 47 fd sbrc r20, 7
+ b6e: 50 95 com r21
+ b70: 65 2f mov r22, r21
+ b72: 75 2f mov r23, r21
+ b74: c1 01 movw r24, r2
+ b76: 20 e0 ldi r18, 0x00 ; 0
+ b78: 30 e0 ldi r19, 0x00 ; 0
+ b7a: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ b7e: 08 94 sec
+ b80: e1 08 sbc r14, r1
+ b82: f1 08 sbc r15, r1
+ b84: 6e 14 cp r6, r14
+ b86: 7f 04 cpc r7, r15
+ b88: 39 f7 brne .-50 ; 0xb58 <_ZN5Print11printNumberEmh+0xd0>
+ b8a: a0 96 adiw r28, 0x20 ; 32
+ b8c: 0f b6 in r0, 0x3f ; 63
+ b8e: f8 94 cli
+ b90: de bf out 0x3e, r29 ; 62
+ b92: 0f be out 0x3f, r0 ; 63
+ b94: cd bf out 0x3d, r28 ; 61
+ b96: cf 91 pop r28
+ b98: df 91 pop r29
+ b9a: 1f 91 pop r17
+ b9c: 0f 91 pop r16
+ b9e: ff 90 pop r15
+ ba0: ef 90 pop r14
+ ba2: df 90 pop r13
+ ba4: cf 90 pop r12
+ ba6: bf 90 pop r11
+ ba8: af 90 pop r10
+ baa: 9f 90 pop r9
+ bac: 8f 90 pop r8
+ bae: 7f 90 pop r7
+ bb0: 6f 90 pop r6
+ bb2: 5f 90 pop r5
+ bb4: 4f 90 pop r4
+ bb6: 3f 90 pop r3
+ bb8: 2f 90 pop r2
+ bba: 08 95 ret
+
+00000bbc <_ZN5Print5printEmi>:
+ bbc: dc 01 movw r26, r24
+ bbe: 21 15 cp r18, r1
+ bc0: 31 05 cpc r19, r1
+ bc2: 41 f4 brne .+16 ; 0xbd4 <_ZN5Print5printEmi+0x18>
+ bc4: ed 91 ld r30, X+
+ bc6: fc 91 ld r31, X
+ bc8: 01 90 ld r0, Z+
+ bca: f0 81 ld r31, Z
+ bcc: e0 2d mov r30, r0
+ bce: 64 2f mov r22, r20
+ bd0: 09 95 icall
+ bd2: 08 95 ret
+ bd4: 0e 94 44 05 call 0xa88 ; 0xa88 <_ZN5Print11printNumberEmh>
+ bd8: 08 95 ret
+
+00000bda <_ZN5Print5printEji>:
+ bda: ef 92 push r14
+ bdc: ff 92 push r15
+ bde: 0f 93 push r16
+ be0: 1f 93 push r17
+ be2: 9a 01 movw r18, r20
+ be4: 7b 01 movw r14, r22
+ be6: 00 e0 ldi r16, 0x00 ; 0
+ be8: 10 e0 ldi r17, 0x00 ; 0
+ bea: b8 01 movw r22, r16
+ bec: a7 01 movw r20, r14
+ bee: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ bf2: 1f 91 pop r17
+ bf4: 0f 91 pop r16
+ bf6: ff 90 pop r15
+ bf8: ef 90 pop r14
+ bfa: 08 95 ret
+
+00000bfc <_ZN5Print5printEhi>:
+ bfc: ef 92 push r14
+ bfe: ff 92 push r15
+ c00: 0f 93 push r16
+ c02: 1f 93 push r17
+ c04: 9a 01 movw r18, r20
+ c06: e6 2e mov r14, r22
+ c08: ff 24 eor r15, r15
+ c0a: 00 e0 ldi r16, 0x00 ; 0
+ c0c: 10 e0 ldi r17, 0x00 ; 0
+ c0e: b8 01 movw r22, r16
+ c10: a7 01 movw r20, r14
+ c12: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ c16: 1f 91 pop r17
+ c18: 0f 91 pop r16
+ c1a: ff 90 pop r15
+ c1c: ef 90 pop r14
+ c1e: 08 95 ret
+
+00000c20 <_ZN5Print5printEli>:
+ c20: ef 92 push r14
+ c22: ff 92 push r15
+ c24: 0f 93 push r16
+ c26: 1f 93 push r17
+ c28: cf 93 push r28
+ c2a: df 93 push r29
+ c2c: ec 01 movw r28, r24
+ c2e: 7a 01 movw r14, r20
+ c30: 8b 01 movw r16, r22
+ c32: 21 15 cp r18, r1
+ c34: 31 05 cpc r19, r1
+ c36: 41 f4 brne .+16 ; 0xc48 <_ZN5Print5printEli+0x28>
+ c38: e8 81 ld r30, Y
+ c3a: f9 81 ldd r31, Y+1 ; 0x01
+ c3c: 01 90 ld r0, Z+
+ c3e: f0 81 ld r31, Z
+ c40: e0 2d mov r30, r0
+ c42: 64 2f mov r22, r20
+ c44: 09 95 icall
+ c46: 1b c0 rjmp .+54 ; 0xc7e <_ZN5Print5printEli+0x5e>
+ c48: 2a 30 cpi r18, 0x0A ; 10
+ c4a: 31 05 cpc r19, r1
+ c4c: b1 f4 brne .+44 ; 0xc7a <_ZN5Print5printEli+0x5a>
+ c4e: 77 ff sbrs r23, 7
+ c50: 10 c0 rjmp .+32 ; 0xc72 <_ZN5Print5printEli+0x52>
+ c52: 4d e2 ldi r20, 0x2D ; 45
+ c54: 50 e0 ldi r21, 0x00 ; 0
+ c56: 60 e0 ldi r22, 0x00 ; 0
+ c58: 70 e0 ldi r23, 0x00 ; 0
+ c5a: 20 e0 ldi r18, 0x00 ; 0
+ c5c: 30 e0 ldi r19, 0x00 ; 0
+ c5e: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ c62: 10 95 com r17
+ c64: 00 95 com r16
+ c66: f0 94 com r15
+ c68: e0 94 com r14
+ c6a: e1 1c adc r14, r1
+ c6c: f1 1c adc r15, r1
+ c6e: 01 1d adc r16, r1
+ c70: 11 1d adc r17, r1
+ c72: ce 01 movw r24, r28
+ c74: b8 01 movw r22, r16
+ c76: a7 01 movw r20, r14
+ c78: 2a e0 ldi r18, 0x0A ; 10
+ c7a: 0e 94 44 05 call 0xa88 ; 0xa88 <_ZN5Print11printNumberEmh>
+ c7e: df 91 pop r29
+ c80: cf 91 pop r28
+ c82: 1f 91 pop r17
+ c84: 0f 91 pop r16
+ c86: ff 90 pop r15
+ c88: ef 90 pop r14
+ c8a: 08 95 ret
+
+00000c8c <_ZN5Print5printEii>:
+ c8c: ef 92 push r14
+ c8e: ff 92 push r15
+ c90: 0f 93 push r16
+ c92: 1f 93 push r17
+ c94: 7b 01 movw r14, r22
+ c96: 9a 01 movw r18, r20
+ c98: 00 27 eor r16, r16
+ c9a: f7 fc sbrc r15, 7
+ c9c: 00 95 com r16
+ c9e: 10 2f mov r17, r16
+ ca0: b8 01 movw r22, r16
+ ca2: a7 01 movw r20, r14
+ ca4: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ ca8: 1f 91 pop r17
+ caa: 0f 91 pop r16
+ cac: ff 90 pop r15
+ cae: ef 90 pop r14
+ cb0: 08 95 ret
+
+00000cb2 <_ZN5Print5printEci>:
+ cb2: ef 92 push r14
+ cb4: ff 92 push r15
+ cb6: 0f 93 push r16
+ cb8: 1f 93 push r17
+ cba: e6 2e mov r14, r22
+ cbc: 9a 01 movw r18, r20
+ cbe: ff 24 eor r15, r15
+ cc0: e7 fc sbrc r14, 7
+ cc2: f0 94 com r15
+ cc4: 0f 2d mov r16, r15
+ cc6: 1f 2d mov r17, r15
+ cc8: b8 01 movw r22, r16
+ cca: a7 01 movw r20, r14
+ ccc: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ cd0: 1f 91 pop r17
+ cd2: 0f 91 pop r16
+ cd4: ff 90 pop r15
+ cd6: ef 90 pop r14
+ cd8: 08 95 ret
+
+00000cda <_ZN5Print7printlnEv>:
+ cda: 0f 93 push r16
+ cdc: 1f 93 push r17
+ cde: 8c 01 movw r16, r24
+ ce0: 4d e0 ldi r20, 0x0D ; 13
+ ce2: 50 e0 ldi r21, 0x00 ; 0
+ ce4: 60 e0 ldi r22, 0x00 ; 0
+ ce6: 70 e0 ldi r23, 0x00 ; 0
+ ce8: 20 e0 ldi r18, 0x00 ; 0
+ cea: 30 e0 ldi r19, 0x00 ; 0
+ cec: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ cf0: c8 01 movw r24, r16
+ cf2: 4a e0 ldi r20, 0x0A ; 10
+ cf4: 50 e0 ldi r21, 0x00 ; 0
+ cf6: 60 e0 ldi r22, 0x00 ; 0
+ cf8: 70 e0 ldi r23, 0x00 ; 0
+ cfa: 20 e0 ldi r18, 0x00 ; 0
+ cfc: 30 e0 ldi r19, 0x00 ; 0
+ cfe: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ d02: 1f 91 pop r17
+ d04: 0f 91 pop r16
+ d06: 08 95 ret
+
+00000d08 <_ZN5Print7printlnEmi>:
+ d08: 0f 93 push r16
+ d0a: 1f 93 push r17
+ d0c: 8c 01 movw r16, r24
+ d0e: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ d12: c8 01 movw r24, r16
+ d14: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ d18: 1f 91 pop r17
+ d1a: 0f 91 pop r16
+ d1c: 08 95 ret
+
+00000d1e <_ZN5Print7printlnEji>:
+ d1e: cf 92 push r12
+ d20: df 92 push r13
+ d22: ef 92 push r14
+ d24: ff 92 push r15
+ d26: 0f 93 push r16
+ d28: 1f 93 push r17
+ d2a: 8c 01 movw r16, r24
+ d2c: 9a 01 movw r18, r20
+ d2e: 6b 01 movw r12, r22
+ d30: ee 24 eor r14, r14
+ d32: ff 24 eor r15, r15
+ d34: b7 01 movw r22, r14
+ d36: a6 01 movw r20, r12
+ d38: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ d3c: c8 01 movw r24, r16
+ d3e: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ d42: 1f 91 pop r17
+ d44: 0f 91 pop r16
+ d46: ff 90 pop r15
+ d48: ef 90 pop r14
+ d4a: df 90 pop r13
+ d4c: cf 90 pop r12
+ d4e: 08 95 ret
+
+00000d50 <_ZN5Print7printlnEhi>:
+ d50: cf 92 push r12
+ d52: df 92 push r13
+ d54: ef 92 push r14
+ d56: ff 92 push r15
+ d58: 0f 93 push r16
+ d5a: 1f 93 push r17
+ d5c: 8c 01 movw r16, r24
+ d5e: 9a 01 movw r18, r20
+ d60: c6 2e mov r12, r22
+ d62: dd 24 eor r13, r13
+ d64: ee 24 eor r14, r14
+ d66: ff 24 eor r15, r15
+ d68: b7 01 movw r22, r14
+ d6a: a6 01 movw r20, r12
+ d6c: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ d70: c8 01 movw r24, r16
+ d72: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ d76: 1f 91 pop r17
+ d78: 0f 91 pop r16
+ d7a: ff 90 pop r15
+ d7c: ef 90 pop r14
+ d7e: df 90 pop r13
+ d80: cf 90 pop r12
+ d82: 08 95 ret
+
+00000d84 <_ZN5Print7printlnEPKc>:
+ d84: 0f 93 push r16
+ d86: 1f 93 push r17
+ d88: 8c 01 movw r16, r24
+ d8a: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ d8e: c8 01 movw r24, r16
+ d90: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ d94: 1f 91 pop r17
+ d96: 0f 91 pop r16
+ d98: 08 95 ret
+
+00000d9a <_ZN5Print7printlnERK6String>:
+ d9a: 0f 93 push r16
+ d9c: 1f 93 push r17
+ d9e: 8c 01 movw r16, r24
+ da0: 0e 94 1a 05 call 0xa34 ; 0xa34 <_ZN5Print5printERK6String>
+ da4: c8 01 movw r24, r16
+ da6: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ daa: 1f 91 pop r17
+ dac: 0f 91 pop r16
+ dae: 08 95 ret
+
+00000db0 <_ZN5Print7printlnEli>:
+ db0: 0f 93 push r16
+ db2: 1f 93 push r17
+ db4: 8c 01 movw r16, r24
+ db6: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ dba: c8 01 movw r24, r16
+ dbc: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ dc0: 1f 91 pop r17
+ dc2: 0f 91 pop r16
+ dc4: 08 95 ret
+
+00000dc6 <_ZN5Print7printlnEii>:
+ dc6: cf 92 push r12
+ dc8: df 92 push r13
+ dca: ef 92 push r14
+ dcc: ff 92 push r15
+ dce: 0f 93 push r16
+ dd0: 1f 93 push r17
+ dd2: 8c 01 movw r16, r24
+ dd4: 6b 01 movw r12, r22
+ dd6: 9a 01 movw r18, r20
+ dd8: ee 24 eor r14, r14
+ dda: d7 fc sbrc r13, 7
+ ddc: e0 94 com r14
+ dde: fe 2c mov r15, r14
+ de0: b7 01 movw r22, r14
+ de2: a6 01 movw r20, r12
+ de4: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ de8: c8 01 movw r24, r16
+ dea: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ dee: 1f 91 pop r17
+ df0: 0f 91 pop r16
+ df2: ff 90 pop r15
+ df4: ef 90 pop r14
+ df6: df 90 pop r13
+ df8: cf 90 pop r12
+ dfa: 08 95 ret
+
+00000dfc <_ZN5Print7printlnEci>:
+ dfc: cf 92 push r12
+ dfe: df 92 push r13
+ e00: ef 92 push r14
+ e02: ff 92 push r15
+ e04: 0f 93 push r16
+ e06: 1f 93 push r17
+ e08: 8c 01 movw r16, r24
+ e0a: c6 2e mov r12, r22
+ e0c: 9a 01 movw r18, r20
+ e0e: dd 24 eor r13, r13
+ e10: c7 fc sbrc r12, 7
+ e12: d0 94 com r13
+ e14: ed 2c mov r14, r13
+ e16: fd 2c mov r15, r13
+ e18: b7 01 movw r22, r14
+ e1a: a6 01 movw r20, r12
+ e1c: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ e20: c8 01 movw r24, r16
+ e22: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ e26: 1f 91 pop r17
+ e28: 0f 91 pop r16
+ e2a: ff 90 pop r15
+ e2c: ef 90 pop r14
+ e2e: df 90 pop r13
+ e30: cf 90 pop r12
+ e32: 08 95 ret
+
+00000e34 <_ZN5Print10printFloatEdh>:
+ e34: 9f 92 push r9
+ e36: af 92 push r10
+ e38: bf 92 push r11
+ e3a: cf 92 push r12
+ e3c: df 92 push r13
+ e3e: ef 92 push r14
+ e40: ff 92 push r15
+ e42: 0f 93 push r16
+ e44: 1f 93 push r17
+ e46: cf 93 push r28
+ e48: df 93 push r29
+ e4a: ec 01 movw r28, r24
+ e4c: 7a 01 movw r14, r20
+ e4e: 8b 01 movw r16, r22
+ e50: 92 2e mov r9, r18
+ e52: cb 01 movw r24, r22
+ e54: ba 01 movw r22, r20
+ e56: 20 e0 ldi r18, 0x00 ; 0
+ e58: 30 e0 ldi r19, 0x00 ; 0
+ e5a: 40 e0 ldi r20, 0x00 ; 0
+ e5c: 50 e0 ldi r21, 0x00 ; 0
+ e5e: 0e 94 a3 1a call 0x3546 ; 0x3546 <__ltsf2>
+ e62: 88 23 and r24, r24
+ e64: 6c f4 brge .+26 ; 0xe80 <_ZN5Print10printFloatEdh+0x4c>
+ e66: ce 01 movw r24, r28
+ e68: 4d e2 ldi r20, 0x2D ; 45
+ e6a: 50 e0 ldi r21, 0x00 ; 0
+ e6c: 60 e0 ldi r22, 0x00 ; 0
+ e6e: 70 e0 ldi r23, 0x00 ; 0
+ e70: 20 e0 ldi r18, 0x00 ; 0
+ e72: 30 e0 ldi r19, 0x00 ; 0
+ e74: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ e78: 17 fb bst r17, 7
+ e7a: 10 95 com r17
+ e7c: 17 f9 bld r17, 7
+ e7e: 10 95 com r17
+ e80: 20 e0 ldi r18, 0x00 ; 0
+ e82: 30 e0 ldi r19, 0x00 ; 0
+ e84: 40 e0 ldi r20, 0x00 ; 0
+ e86: 5f e3 ldi r21, 0x3F ; 63
+ e88: aa 24 eor r10, r10
+ e8a: 0b c0 rjmp .+22 ; 0xea2 <_ZN5Print10printFloatEdh+0x6e>
+ e8c: ca 01 movw r24, r20
+ e8e: b9 01 movw r22, r18
+ e90: 20 e0 ldi r18, 0x00 ; 0
+ e92: 30 e0 ldi r19, 0x00 ; 0
+ e94: 40 e2 ldi r20, 0x20 ; 32
+ e96: 51 e4 ldi r21, 0x41 ; 65
+ e98: 0e 94 c7 19 call 0x338e ; 0x338e <__divsf3>
+ e9c: 9b 01 movw r18, r22
+ e9e: ac 01 movw r20, r24
+ ea0: a3 94 inc r10
+ ea2: a9 14 cp r10, r9
+ ea4: 98 f3 brcs .-26 ; 0xe8c <_ZN5Print10printFloatEdh+0x58>
+ ea6: c8 01 movw r24, r16
+ ea8: b7 01 movw r22, r14
+ eaa: 0e 94 a0 18 call 0x3140 ; 0x3140 <__addsf3>
+ eae: 5b 01 movw r10, r22
+ eb0: 6c 01 movw r12, r24
+ eb2: 0e 94 f7 16 call 0x2dee ; 0x2dee <__fixunssfsi>
+ eb6: 7b 01 movw r14, r22
+ eb8: 8c 01 movw r16, r24
+ eba: ce 01 movw r24, r28
+ ebc: b8 01 movw r22, r16
+ ebe: a7 01 movw r20, r14
+ ec0: 2a e0 ldi r18, 0x0A ; 10
+ ec2: 30 e0 ldi r19, 0x00 ; 0
+ ec4: 0e 94 de 05 call 0xbbc ; 0xbbc <_ZN5Print5printEmi>
+ ec8: 99 20 and r9, r9
+ eca: 29 f0 breq .+10 ; 0xed6 <_ZN5Print10printFloatEdh+0xa2>
+ ecc: ce 01 movw r24, r28
+ ece: 69 e9 ldi r22, 0x99 ; 153
+ ed0: 71 e0 ldi r23, 0x01 ; 1
+ ed2: 0e 94 12 05 call 0xa24 ; 0xa24 <_ZN5Print5printEPKc>
+ ed6: c8 01 movw r24, r16
+ ed8: b7 01 movw r22, r14
+ eda: 0e 94 85 1b call 0x370a ; 0x370a <__floatunsisf>
+ ede: 9b 01 movw r18, r22
+ ee0: ac 01 movw r20, r24
+ ee2: c6 01 movw r24, r12
+ ee4: b5 01 movw r22, r10
+ ee6: 0e 94 6f 18 call 0x30de ; 0x30de <__subsf3>
+ eea: 22 c0 rjmp .+68 ; 0xf30 <_ZN5Print10printFloatEdh+0xfc>
+ eec: 20 e0 ldi r18, 0x00 ; 0
+ eee: 30 e0 ldi r19, 0x00 ; 0
+ ef0: 40 e2 ldi r20, 0x20 ; 32
+ ef2: 51 e4 ldi r21, 0x41 ; 65
+ ef4: 0e 94 cd 18 call 0x319a ; 0x319a <__mulsf3>
+ ef8: 7b 01 movw r14, r22
+ efa: 8c 01 movw r16, r24
+ efc: 0e 94 31 1b call 0x3662 ; 0x3662 <__fixsfsi>
+ f00: 5b 01 movw r10, r22
+ f02: 6c 01 movw r12, r24
+ f04: cc 24 eor r12, r12
+ f06: b7 fc sbrc r11, 7
+ f08: c0 94 com r12
+ f0a: dc 2c mov r13, r12
+ f0c: ce 01 movw r24, r28
+ f0e: b6 01 movw r22, r12
+ f10: a5 01 movw r20, r10
+ f12: 2a e0 ldi r18, 0x0A ; 10
+ f14: 30 e0 ldi r19, 0x00 ; 0
+ f16: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN5Print5printEli>
+ f1a: c6 01 movw r24, r12
+ f1c: b5 01 movw r22, r10
+ f1e: 0e 94 d3 1a call 0x35a6 ; 0x35a6 <__floatsisf>
+ f22: 9b 01 movw r18, r22
+ f24: ac 01 movw r20, r24
+ f26: c8 01 movw r24, r16
+ f28: b7 01 movw r22, r14
+ f2a: 0e 94 6f 18 call 0x30de ; 0x30de <__subsf3>
+ f2e: 9a 94 dec r9
+ f30: 99 20 and r9, r9
+ f32: e1 f6 brne .-72 ; 0xeec <_ZN5Print10printFloatEdh+0xb8>
+ f34: df 91 pop r29
+ f36: cf 91 pop r28
+ f38: 1f 91 pop r17
+ f3a: 0f 91 pop r16
+ f3c: ff 90 pop r15
+ f3e: ef 90 pop r14
+ f40: df 90 pop r13
+ f42: cf 90 pop r12
+ f44: bf 90 pop r11
+ f46: af 90 pop r10
+ f48: 9f 90 pop r9
+ f4a: 08 95 ret
+
+00000f4c <_ZN5Print5printEdi>:
+ f4c: 0e 94 1a 07 call 0xe34 ; 0xe34 <_ZN5Print10printFloatEdh>
+ f50: 08 95 ret
+
+00000f52 <_ZN5Print7printlnEdi>:
+ f52: 0f 93 push r16
+ f54: 1f 93 push r17
+ f56: 8c 01 movw r16, r24
+ f58: 0e 94 1a 07 call 0xe34 ; 0xe34 <_ZN5Print10printFloatEdh>
+ f5c: c8 01 movw r24, r16
+ f5e: 0e 94 6d 06 call 0xcda ; 0xcda <_ZN5Print7printlnEv>
+ f62: 1f 91 pop r17
+ f64: 0f 91 pop r16
+ f66: 08 95 ret
+
+00000f68 <_Z12disableTimerh>:
+ f68: 81 30 cpi r24, 0x01 ; 1
+ f6a: 41 f0 breq .+16 ; 0xf7c <_Z12disableTimerh+0x14>
+ f6c: 81 30 cpi r24, 0x01 ; 1
+ f6e: 18 f0 brcs .+6 ; 0xf76 <_Z12disableTimerh+0xe>
+ f70: 82 30 cpi r24, 0x02 ; 2
+ f72: d1 f4 brne .+52 ; 0xfa8 <_Z12disableTimerh+0x40>
+ f74: 09 c0 rjmp .+18 ; 0xf88 <_Z12disableTimerh+0x20>
+ f76: 10 92 6e 00 sts 0x006E, r1
+ f7a: 08 95 ret
+ f7c: 80 91 6f 00 lds r24, 0x006F
+ f80: 8d 7f andi r24, 0xFD ; 253
+ f82: 80 93 6f 00 sts 0x006F, r24
+ f86: 08 95 ret
+ f88: 80 91 70 00 lds r24, 0x0070
+ f8c: 8d 7f andi r24, 0xFD ; 253
+ f8e: 80 93 70 00 sts 0x0070, r24
+ f92: 81 e0 ldi r24, 0x01 ; 1
+ f94: 80 93 b0 00 sts 0x00B0, r24
+ f98: 80 91 b1 00 lds r24, 0x00B1
+ f9c: 88 7f andi r24, 0xF8 ; 248
+ f9e: 84 60 ori r24, 0x04 ; 4
+ fa0: 80 93 b1 00 sts 0x00B1, r24
+ fa4: 10 92 b3 00 sts 0x00B3, r1
+ fa8: 08 95 ret
+
+00000faa <_Z6noToneh>:
+ faa: 1f 93 push r17
+ fac: 18 2f mov r17, r24
+ fae: 80 91 a5 01 lds r24, 0x01A5
+ fb2: 81 17 cp r24, r17
+ fb4: 11 f0 breq .+4 ; 0xfba <_Z6noToneh+0x10>
+ fb6: 9f ef ldi r25, 0xFF ; 255
+ fb8: 06 c0 rjmp .+12 ; 0xfc6 <_Z6noToneh+0x1c>
+ fba: e8 e6 ldi r30, 0x68 ; 104
+ fbc: f0 e0 ldi r31, 0x00 ; 0
+ fbe: 94 91 lpm r25, Z+
+ fc0: 8f ef ldi r24, 0xFF ; 255
+ fc2: 80 93 a5 01 sts 0x01A5, r24
+ fc6: 89 2f mov r24, r25
+ fc8: 0e 94 b4 07 call 0xf68 ; 0xf68 <_Z12disableTimerh>
+ fcc: 81 2f mov r24, r17
+ fce: 60 e0 ldi r22, 0x00 ; 0
+ fd0: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ fd4: 1f 91 pop r17
+ fd6: 08 95 ret
+
+00000fd8 <__vector_7>:
+ fd8: 1f 92 push r1
+ fda: 0f 92 push r0
+ fdc: 0f b6 in r0, 0x3f ; 63
+ fde: 0f 92 push r0
+ fe0: 11 24 eor r1, r1
+ fe2: 2f 93 push r18
+ fe4: 3f 93 push r19
+ fe6: 4f 93 push r20
+ fe8: 5f 93 push r21
+ fea: 6f 93 push r22
+ fec: 7f 93 push r23
+ fee: 8f 93 push r24
+ ff0: 9f 93 push r25
+ ff2: af 93 push r26
+ ff4: bf 93 push r27
+ ff6: ef 93 push r30
+ ff8: ff 93 push r31
+ ffa: 80 91 79 03 lds r24, 0x0379
+ ffe: 90 91 7a 03 lds r25, 0x037A
+ 1002: a0 91 7b 03 lds r26, 0x037B
+ 1006: b0 91 7c 03 lds r27, 0x037C
+ 100a: 00 97 sbiw r24, 0x00 ; 0
+ 100c: a1 05 cpc r26, r1
+ 100e: b1 05 cpc r27, r1
+ 1010: 51 f1 breq .+84 ; 0x1066 <__vector_7+0x8e>
+ 1012: e0 91 7d 03 lds r30, 0x037D
+ 1016: f0 91 7e 03 lds r31, 0x037E
+ 101a: 80 81 ld r24, Z
+ 101c: 90 91 7f 03 lds r25, 0x037F
+ 1020: 89 27 eor r24, r25
+ 1022: 80 83 st Z, r24
+ 1024: 80 91 79 03 lds r24, 0x0379
+ 1028: 90 91 7a 03 lds r25, 0x037A
+ 102c: a0 91 7b 03 lds r26, 0x037B
+ 1030: b0 91 7c 03 lds r27, 0x037C
+ 1034: 18 16 cp r1, r24
+ 1036: 19 06 cpc r1, r25
+ 1038: 1a 06 cpc r1, r26
+ 103a: 1b 06 cpc r1, r27
+ 103c: c4 f4 brge .+48 ; 0x106e <__vector_7+0x96>
+ 103e: 80 91 79 03 lds r24, 0x0379
+ 1042: 90 91 7a 03 lds r25, 0x037A
+ 1046: a0 91 7b 03 lds r26, 0x037B
+ 104a: b0 91 7c 03 lds r27, 0x037C
+ 104e: 01 97 sbiw r24, 0x01 ; 1
+ 1050: a1 09 sbc r26, r1
+ 1052: b1 09 sbc r27, r1
+ 1054: 80 93 79 03 sts 0x0379, r24
+ 1058: 90 93 7a 03 sts 0x037A, r25
+ 105c: a0 93 7b 03 sts 0x037B, r26
+ 1060: b0 93 7c 03 sts 0x037C, r27
+ 1064: 04 c0 rjmp .+8 ; 0x106e <__vector_7+0x96>
+ 1066: 80 91 a5 01 lds r24, 0x01A5
+ 106a: 0e 94 d5 07 call 0xfaa ; 0xfaa <_Z6noToneh>
+ 106e: ff 91 pop r31
+ 1070: ef 91 pop r30
+ 1072: bf 91 pop r27
+ 1074: af 91 pop r26
+ 1076: 9f 91 pop r25
+ 1078: 8f 91 pop r24
+ 107a: 7f 91 pop r23
+ 107c: 6f 91 pop r22
+ 107e: 5f 91 pop r21
+ 1080: 4f 91 pop r20
+ 1082: 3f 91 pop r19
+ 1084: 2f 91 pop r18
+ 1086: 0f 90 pop r0
+ 1088: 0f be out 0x3f, r0 ; 63
+ 108a: 0f 90 pop r0
+ 108c: 1f 90 pop r1
+ 108e: 18 95 reti
+
+00001090 <_Z4tonehjm>:
+ 1090: 2f 92 push r2
+ 1092: 3f 92 push r3
+ 1094: 5f 92 push r5
+ 1096: 6f 92 push r6
+ 1098: 7f 92 push r7
+ 109a: 8f 92 push r8
+ 109c: 9f 92 push r9
+ 109e: af 92 push r10
+ 10a0: bf 92 push r11
+ 10a2: cf 92 push r12
+ 10a4: df 92 push r13
+ 10a6: ef 92 push r14
+ 10a8: ff 92 push r15
+ 10aa: 0f 93 push r16
+ 10ac: 1f 93 push r17
+ 10ae: df 93 push r29
+ 10b0: cf 93 push r28
+ 10b2: 00 d0 rcall .+0 ; 0x10b4 <_Z4tonehjm+0x24>
+ 10b4: 00 d0 rcall .+0 ; 0x10b6 <_Z4tonehjm+0x26>
+ 10b6: cd b7 in r28, 0x3d ; 61
+ 10b8: de b7 in r29, 0x3e ; 62
+ 10ba: a8 2f mov r26, r24
+ 10bc: 1b 01 movw r2, r22
+ 10be: 29 83 std Y+1, r18 ; 0x01
+ 10c0: 3a 83 std Y+2, r19 ; 0x02
+ 10c2: 4b 83 std Y+3, r20 ; 0x03
+ 10c4: 5c 83 std Y+4, r21 ; 0x04
+ 10c6: 80 91 a5 01 lds r24, 0x01A5
+ 10ca: 8a 17 cp r24, r26
+ 10cc: 21 f4 brne .+8 ; 0x10d6 <_Z4tonehjm+0x46>
+ 10ce: e8 e6 ldi r30, 0x68 ; 104
+ 10d0: f0 e0 ldi r31, 0x00 ; 0
+ 10d2: 54 90 lpm r5, Z+
+ 10d4: 82 c0 rjmp .+260 ; 0x11da <_Z4tonehjm+0x14a>
+ 10d6: 8f 3f cpi r24, 0xFF ; 255
+ 10d8: 09 f0 breq .+2 ; 0x10dc <_Z4tonehjm+0x4c>
+ 10da: d9 c1 rjmp .+946 ; 0x148e <_Z4tonehjm+0x3fe>
+ 10dc: a0 93 a5 01 sts 0x01A5, r26
+ 10e0: e8 e6 ldi r30, 0x68 ; 104
+ 10e2: f0 e0 ldi r31, 0x00 ; 0
+ 10e4: 54 90 lpm r5, Z+
+ 10e6: 2f ef ldi r18, 0xFF ; 255
+ 10e8: 52 16 cp r5, r18
+ 10ea: 09 f4 brne .+2 ; 0x10ee <_Z4tonehjm+0x5e>
+ 10ec: d0 c1 rjmp .+928 ; 0x148e <_Z4tonehjm+0x3fe>
+ 10ee: 81 e0 ldi r24, 0x01 ; 1
+ 10f0: 58 16 cp r5, r24
+ 10f2: 39 f1 breq .+78 ; 0x1142 <_Z4tonehjm+0xb2>
+ 10f4: 92 e0 ldi r25, 0x02 ; 2
+ 10f6: 59 16 cp r5, r25
+ 10f8: 09 f4 brne .+2 ; 0x10fc <_Z4tonehjm+0x6c>
+ 10fa: 49 c0 rjmp .+146 ; 0x118e <_Z4tonehjm+0xfe>
+ 10fc: 55 20 and r5, r5
+ 10fe: 09 f0 breq .+2 ; 0x1102 <_Z4tonehjm+0x72>
+ 1100: 6c c0 rjmp .+216 ; 0x11da <_Z4tonehjm+0x14a>
+ 1102: 14 bc out 0x24, r1 ; 36
+ 1104: 15 bc out 0x25, r1 ; 37
+ 1106: 84 b5 in r24, 0x24 ; 36
+ 1108: 82 60 ori r24, 0x02 ; 2
+ 110a: 84 bd out 0x24, r24 ; 36
+ 110c: 85 b5 in r24, 0x25 ; 37
+ 110e: 81 60 ori r24, 0x01 ; 1
+ 1110: 85 bd out 0x25, r24 ; 37
+ 1112: 2a 2f mov r18, r26
+ 1114: 30 e0 ldi r19, 0x00 ; 0
+ 1116: f9 01 movw r30, r18
+ 1118: e9 57 subi r30, 0x79 ; 121
+ 111a: ff 4f sbci r31, 0xFF ; 255
+ 111c: e4 91 lpm r30, Z+
+ 111e: f0 e0 ldi r31, 0x00 ; 0
+ 1120: ee 0f add r30, r30
+ 1122: ff 1f adc r31, r31
+ 1124: ed 58 subi r30, 0x8D ; 141
+ 1126: ff 4f sbci r31, 0xFF ; 255
+ 1128: 85 91 lpm r24, Z+
+ 112a: 94 91 lpm r25, Z+
+ 112c: 90 93 70 03 sts 0x0370, r25
+ 1130: 80 93 6f 03 sts 0x036F, r24
+ 1134: 25 56 subi r18, 0x65 ; 101
+ 1136: 3f 4f sbci r19, 0xFF ; 255
+ 1138: f9 01 movw r30, r18
+ 113a: 84 91 lpm r24, Z+
+ 113c: 80 93 71 03 sts 0x0371, r24
+ 1140: 4e c0 rjmp .+156 ; 0x11de <_Z4tonehjm+0x14e>
+ 1142: 10 92 80 00 sts 0x0080, r1
+ 1146: 10 92 81 00 sts 0x0081, r1
+ 114a: 80 91 81 00 lds r24, 0x0081
+ 114e: 88 60 ori r24, 0x08 ; 8
+ 1150: 80 93 81 00 sts 0x0081, r24
+ 1154: 80 91 81 00 lds r24, 0x0081
+ 1158: 81 60 ori r24, 0x01 ; 1
+ 115a: 80 93 81 00 sts 0x0081, r24
+ 115e: 2a 2f mov r18, r26
+ 1160: 30 e0 ldi r19, 0x00 ; 0
+ 1162: f9 01 movw r30, r18
+ 1164: e9 57 subi r30, 0x79 ; 121
+ 1166: ff 4f sbci r31, 0xFF ; 255
+ 1168: e4 91 lpm r30, Z+
+ 116a: f0 e0 ldi r31, 0x00 ; 0
+ 116c: ee 0f add r30, r30
+ 116e: ff 1f adc r31, r31
+ 1170: ed 58 subi r30, 0x8D ; 141
+ 1172: ff 4f sbci r31, 0xFF ; 255
+ 1174: 85 91 lpm r24, Z+
+ 1176: 94 91 lpm r25, Z+
+ 1178: 90 93 77 03 sts 0x0377, r25
+ 117c: 80 93 76 03 sts 0x0376, r24
+ 1180: 25 56 subi r18, 0x65 ; 101
+ 1182: 3f 4f sbci r19, 0xFF ; 255
+ 1184: f9 01 movw r30, r18
+ 1186: 84 91 lpm r24, Z+
+ 1188: 80 93 78 03 sts 0x0378, r24
+ 118c: 28 c0 rjmp .+80 ; 0x11de <_Z4tonehjm+0x14e>
+ 118e: 10 92 b0 00 sts 0x00B0, r1
+ 1192: 10 92 b1 00 sts 0x00B1, r1
+ 1196: 80 91 b0 00 lds r24, 0x00B0
+ 119a: 82 60 ori r24, 0x02 ; 2
+ 119c: 80 93 b0 00 sts 0x00B0, r24
+ 11a0: 80 91 b1 00 lds r24, 0x00B1
+ 11a4: 81 60 ori r24, 0x01 ; 1
+ 11a6: 80 93 b1 00 sts 0x00B1, r24
+ 11aa: 2a 2f mov r18, r26
+ 11ac: 30 e0 ldi r19, 0x00 ; 0
+ 11ae: f9 01 movw r30, r18
+ 11b0: e9 57 subi r30, 0x79 ; 121
+ 11b2: ff 4f sbci r31, 0xFF ; 255
+ 11b4: e4 91 lpm r30, Z+
+ 11b6: f0 e0 ldi r31, 0x00 ; 0
+ 11b8: ee 0f add r30, r30
+ 11ba: ff 1f adc r31, r31
+ 11bc: ed 58 subi r30, 0x8D ; 141
+ 11be: ff 4f sbci r31, 0xFF ; 255
+ 11c0: 85 91 lpm r24, Z+
+ 11c2: 94 91 lpm r25, Z+
+ 11c4: 90 93 7e 03 sts 0x037E, r25
+ 11c8: 80 93 7d 03 sts 0x037D, r24
+ 11cc: 25 56 subi r18, 0x65 ; 101
+ 11ce: 3f 4f sbci r19, 0xFF ; 255
+ 11d0: f9 01 movw r30, r18
+ 11d2: 84 91 lpm r24, Z+
+ 11d4: 80 93 7f 03 sts 0x037F, r24
+ 11d8: 02 c0 rjmp .+4 ; 0x11de <_Z4tonehjm+0x14e>
+ 11da: 57 fc sbrc r5, 7
+ 11dc: 58 c1 rjmp .+688 ; 0x148e <_Z4tonehjm+0x3fe>
+ 11de: 8a 2f mov r24, r26
+ 11e0: 61 e0 ldi r22, 0x01 ; 1
+ 11e2: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 11e6: 55 20 and r5, r5
+ 11e8: 21 f0 breq .+8 ; 0x11f2 <_Z4tonehjm+0x162>
+ 11ea: f2 e0 ldi r31, 0x02 ; 2
+ 11ec: 5f 16 cp r5, r31
+ 11ee: 09 f0 breq .+2 ; 0x11f2 <_Z4tonehjm+0x162>
+ 11f0: bd c0 rjmp .+378 ; 0x136c <_Z4tonehjm+0x2dc>
+ 11f2: 31 01 movw r6, r2
+ 11f4: 88 24 eor r8, r8
+ 11f6: 99 24 eor r9, r9
+ 11f8: 60 e0 ldi r22, 0x00 ; 0
+ 11fa: 79 e0 ldi r23, 0x09 ; 9
+ 11fc: 8d e3 ldi r24, 0x3D ; 61
+ 11fe: 90 e0 ldi r25, 0x00 ; 0
+ 1200: a4 01 movw r20, r8
+ 1202: 93 01 movw r18, r6
+ 1204: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 1208: 59 01 movw r10, r18
+ 120a: 6a 01 movw r12, r20
+ 120c: 86 01 movw r16, r12
+ 120e: 75 01 movw r14, r10
+ 1210: 08 94 sec
+ 1212: e1 08 sbc r14, r1
+ 1214: f1 08 sbc r15, r1
+ 1216: 01 09 sbc r16, r1
+ 1218: 11 09 sbc r17, r1
+ 121a: 2f ef ldi r18, 0xFF ; 255
+ 121c: e2 16 cp r14, r18
+ 121e: f1 04 cpc r15, r1
+ 1220: 01 05 cpc r16, r1
+ 1222: 11 05 cpc r17, r1
+ 1224: 09 f0 breq .+2 ; 0x1228 <_Z4tonehjm+0x198>
+ 1226: 08 f4 brcc .+2 ; 0x122a <_Z4tonehjm+0x19a>
+ 1228: 98 c0 rjmp .+304 ; 0x135a <_Z4tonehjm+0x2ca>
+ 122a: 60 e2 ldi r22, 0x20 ; 32
+ 122c: 71 ea ldi r23, 0xA1 ; 161
+ 122e: 87 e0 ldi r24, 0x07 ; 7
+ 1230: 90 e0 ldi r25, 0x00 ; 0
+ 1232: a4 01 movw r20, r8
+ 1234: 93 01 movw r18, r6
+ 1236: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 123a: 79 01 movw r14, r18
+ 123c: 8a 01 movw r16, r20
+ 123e: 08 94 sec
+ 1240: e1 08 sbc r14, r1
+ 1242: f1 08 sbc r15, r1
+ 1244: 01 09 sbc r16, r1
+ 1246: 11 09 sbc r17, r1
+ 1248: 82 e0 ldi r24, 0x02 ; 2
+ 124a: 58 16 cp r5, r24
+ 124c: c1 f4 brne .+48 ; 0x127e <_Z4tonehjm+0x1ee>
+ 124e: 9f ef ldi r25, 0xFF ; 255
+ 1250: e9 16 cp r14, r25
+ 1252: f1 04 cpc r15, r1
+ 1254: 01 05 cpc r16, r1
+ 1256: 11 05 cpc r17, r1
+ 1258: 09 f0 breq .+2 ; 0x125c <_Z4tonehjm+0x1cc>
+ 125a: 08 f4 brcc .+2 ; 0x125e <_Z4tonehjm+0x1ce>
+ 125c: 83 c0 rjmp .+262 ; 0x1364 <_Z4tonehjm+0x2d4>
+ 125e: 68 e4 ldi r22, 0x48 ; 72
+ 1260: 78 ee ldi r23, 0xE8 ; 232
+ 1262: 81 e0 ldi r24, 0x01 ; 1
+ 1264: 90 e0 ldi r25, 0x00 ; 0
+ 1266: a4 01 movw r20, r8
+ 1268: 93 01 movw r18, r6
+ 126a: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 126e: 79 01 movw r14, r18
+ 1270: 8a 01 movw r16, r20
+ 1272: 08 94 sec
+ 1274: e1 08 sbc r14, r1
+ 1276: f1 08 sbc r15, r1
+ 1278: 01 09 sbc r16, r1
+ 127a: 11 09 sbc r17, r1
+ 127c: 83 e0 ldi r24, 0x03 ; 3
+ 127e: af ef ldi r26, 0xFF ; 255
+ 1280: ea 16 cp r14, r26
+ 1282: f1 04 cpc r15, r1
+ 1284: 01 05 cpc r16, r1
+ 1286: 11 05 cpc r17, r1
+ 1288: 09 f0 breq .+2 ; 0x128c <_Z4tonehjm+0x1fc>
+ 128a: 08 f4 brcc .+2 ; 0x128e <_Z4tonehjm+0x1fe>
+ 128c: 67 c0 rjmp .+206 ; 0x135c <_Z4tonehjm+0x2cc>
+ 128e: 64 e2 ldi r22, 0x24 ; 36
+ 1290: 74 ef ldi r23, 0xF4 ; 244
+ 1292: 80 e0 ldi r24, 0x00 ; 0
+ 1294: 90 e0 ldi r25, 0x00 ; 0
+ 1296: a4 01 movw r20, r8
+ 1298: 93 01 movw r18, r6
+ 129a: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 129e: 79 01 movw r14, r18
+ 12a0: 8a 01 movw r16, r20
+ 12a2: 08 94 sec
+ 12a4: e1 08 sbc r14, r1
+ 12a6: f1 08 sbc r15, r1
+ 12a8: 01 09 sbc r16, r1
+ 12aa: 11 09 sbc r17, r1
+ 12ac: 55 20 and r5, r5
+ 12ae: 11 f4 brne .+4 ; 0x12b4 <_Z4tonehjm+0x224>
+ 12b0: 83 e0 ldi r24, 0x03 ; 3
+ 12b2: 1d c0 rjmp .+58 ; 0x12ee <_Z4tonehjm+0x25e>
+ 12b4: b2 e0 ldi r27, 0x02 ; 2
+ 12b6: 5b 16 cp r5, r27
+ 12b8: 11 f0 breq .+4 ; 0x12be <_Z4tonehjm+0x22e>
+ 12ba: 84 e0 ldi r24, 0x04 ; 4
+ 12bc: 18 c0 rjmp .+48 ; 0x12ee <_Z4tonehjm+0x25e>
+ 12be: ef ef ldi r30, 0xFF ; 255
+ 12c0: ee 16 cp r14, r30
+ 12c2: f1 04 cpc r15, r1
+ 12c4: 01 05 cpc r16, r1
+ 12c6: 11 05 cpc r17, r1
+ 12c8: 09 f0 breq .+2 ; 0x12cc <_Z4tonehjm+0x23c>
+ 12ca: 08 f4 brcc .+2 ; 0x12ce <_Z4tonehjm+0x23e>
+ 12cc: de c0 rjmp .+444 ; 0x148a <_Z4tonehjm+0x3fa>
+ 12ce: 62 e1 ldi r22, 0x12 ; 18
+ 12d0: 7a e7 ldi r23, 0x7A ; 122
+ 12d2: 80 e0 ldi r24, 0x00 ; 0
+ 12d4: 90 e0 ldi r25, 0x00 ; 0
+ 12d6: a4 01 movw r20, r8
+ 12d8: 93 01 movw r18, r6
+ 12da: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 12de: 79 01 movw r14, r18
+ 12e0: 8a 01 movw r16, r20
+ 12e2: 08 94 sec
+ 12e4: e1 08 sbc r14, r1
+ 12e6: f1 08 sbc r15, r1
+ 12e8: 01 09 sbc r16, r1
+ 12ea: 11 09 sbc r17, r1
+ 12ec: 85 e0 ldi r24, 0x05 ; 5
+ 12ee: ff ef ldi r31, 0xFF ; 255
+ 12f0: ef 16 cp r14, r31
+ 12f2: f1 04 cpc r15, r1
+ 12f4: 01 05 cpc r16, r1
+ 12f6: 11 05 cpc r17, r1
+ 12f8: 89 f1 breq .+98 ; 0x135c <_Z4tonehjm+0x2cc>
+ 12fa: 80 f1 brcs .+96 ; 0x135c <_Z4tonehjm+0x2cc>
+ 12fc: 69 e0 ldi r22, 0x09 ; 9
+ 12fe: 7d e3 ldi r23, 0x3D ; 61
+ 1300: 80 e0 ldi r24, 0x00 ; 0
+ 1302: 90 e0 ldi r25, 0x00 ; 0
+ 1304: a4 01 movw r20, r8
+ 1306: 93 01 movw r18, r6
+ 1308: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 130c: 79 01 movw r14, r18
+ 130e: 8a 01 movw r16, r20
+ 1310: 08 94 sec
+ 1312: e1 08 sbc r14, r1
+ 1314: f1 08 sbc r15, r1
+ 1316: 01 09 sbc r16, r1
+ 1318: 11 09 sbc r17, r1
+ 131a: 55 20 and r5, r5
+ 131c: 11 f0 breq .+4 ; 0x1322 <_Z4tonehjm+0x292>
+ 131e: 86 e0 ldi r24, 0x06 ; 6
+ 1320: 01 c0 rjmp .+2 ; 0x1324 <_Z4tonehjm+0x294>
+ 1322: 84 e0 ldi r24, 0x04 ; 4
+ 1324: 2f ef ldi r18, 0xFF ; 255
+ 1326: e2 16 cp r14, r18
+ 1328: f1 04 cpc r15, r1
+ 132a: 01 05 cpc r16, r1
+ 132c: 11 05 cpc r17, r1
+ 132e: b1 f0 breq .+44 ; 0x135c <_Z4tonehjm+0x2cc>
+ 1330: a8 f0 brcs .+42 ; 0x135c <_Z4tonehjm+0x2cc>
+ 1332: 86 01 movw r16, r12
+ 1334: 75 01 movw r14, r10
+ 1336: 9a e0 ldi r25, 0x0A ; 10
+ 1338: 16 95 lsr r17
+ 133a: 07 95 ror r16
+ 133c: f7 94 ror r15
+ 133e: e7 94 ror r14
+ 1340: 9a 95 dec r25
+ 1342: d1 f7 brne .-12 ; 0x1338 <_Z4tonehjm+0x2a8>
+ 1344: 08 94 sec
+ 1346: e1 08 sbc r14, r1
+ 1348: f1 08 sbc r15, r1
+ 134a: 01 09 sbc r16, r1
+ 134c: 11 09 sbc r17, r1
+ 134e: 55 20 and r5, r5
+ 1350: 11 f0 breq .+4 ; 0x1356 <_Z4tonehjm+0x2c6>
+ 1352: 87 e0 ldi r24, 0x07 ; 7
+ 1354: 08 c0 rjmp .+16 ; 0x1366 <_Z4tonehjm+0x2d6>
+ 1356: 85 e0 ldi r24, 0x05 ; 5
+ 1358: 03 c0 rjmp .+6 ; 0x1360 <_Z4tonehjm+0x2d0>
+ 135a: 81 e0 ldi r24, 0x01 ; 1
+ 135c: 55 20 and r5, r5
+ 135e: 19 f4 brne .+6 ; 0x1366 <_Z4tonehjm+0x2d6>
+ 1360: 85 bd out 0x25, r24 ; 37
+ 1362: 3a c0 rjmp .+116 ; 0x13d8 <_Z4tonehjm+0x348>
+ 1364: 82 e0 ldi r24, 0x02 ; 2
+ 1366: 80 93 b1 00 sts 0x00B1, r24
+ 136a: 36 c0 rjmp .+108 ; 0x13d8 <_Z4tonehjm+0x348>
+ 136c: 51 01 movw r10, r2
+ 136e: cc 24 eor r12, r12
+ 1370: dd 24 eor r13, r13
+ 1372: 60 e0 ldi r22, 0x00 ; 0
+ 1374: 79 e0 ldi r23, 0x09 ; 9
+ 1376: 8d e3 ldi r24, 0x3D ; 61
+ 1378: 90 e0 ldi r25, 0x00 ; 0
+ 137a: a6 01 movw r20, r12
+ 137c: 95 01 movw r18, r10
+ 137e: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 1382: 79 01 movw r14, r18
+ 1384: 8a 01 movw r16, r20
+ 1386: 08 94 sec
+ 1388: e1 08 sbc r14, r1
+ 138a: f1 08 sbc r15, r1
+ 138c: 01 09 sbc r16, r1
+ 138e: 11 09 sbc r17, r1
+ 1390: 80 e0 ldi r24, 0x00 ; 0
+ 1392: e8 16 cp r14, r24
+ 1394: 80 e0 ldi r24, 0x00 ; 0
+ 1396: f8 06 cpc r15, r24
+ 1398: 81 e0 ldi r24, 0x01 ; 1
+ 139a: 08 07 cpc r16, r24
+ 139c: 80 e0 ldi r24, 0x00 ; 0
+ 139e: 18 07 cpc r17, r24
+ 13a0: 10 f4 brcc .+4 ; 0x13a6 <_Z4tonehjm+0x316>
+ 13a2: 91 e0 ldi r25, 0x01 ; 1
+ 13a4: 10 c0 rjmp .+32 ; 0x13c6 <_Z4tonehjm+0x336>
+ 13a6: 64 e2 ldi r22, 0x24 ; 36
+ 13a8: 74 ef ldi r23, 0xF4 ; 244
+ 13aa: 80 e0 ldi r24, 0x00 ; 0
+ 13ac: 90 e0 ldi r25, 0x00 ; 0
+ 13ae: a6 01 movw r20, r12
+ 13b0: 95 01 movw r18, r10
+ 13b2: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 13b6: 79 01 movw r14, r18
+ 13b8: 8a 01 movw r16, r20
+ 13ba: 08 94 sec
+ 13bc: e1 08 sbc r14, r1
+ 13be: f1 08 sbc r15, r1
+ 13c0: 01 09 sbc r16, r1
+ 13c2: 11 09 sbc r17, r1
+ 13c4: 93 e0 ldi r25, 0x03 ; 3
+ 13c6: a1 e0 ldi r26, 0x01 ; 1
+ 13c8: 5a 16 cp r5, r26
+ 13ca: 31 f4 brne .+12 ; 0x13d8 <_Z4tonehjm+0x348>
+ 13cc: 80 91 81 00 lds r24, 0x0081
+ 13d0: 88 7f andi r24, 0xF8 ; 248
+ 13d2: 98 2b or r25, r24
+ 13d4: 90 93 81 00 sts 0x0081, r25
+ 13d8: 89 81 ldd r24, Y+1 ; 0x01
+ 13da: 9a 81 ldd r25, Y+2 ; 0x02
+ 13dc: ab 81 ldd r26, Y+3 ; 0x03
+ 13de: bc 81 ldd r27, Y+4 ; 0x04
+ 13e0: 00 97 sbiw r24, 0x00 ; 0
+ 13e2: a1 05 cpc r26, r1
+ 13e4: b1 05 cpc r27, r1
+ 13e6: 29 f4 brne .+10 ; 0x13f2 <_Z4tonehjm+0x362>
+ 13e8: 8f ef ldi r24, 0xFF ; 255
+ 13ea: 9f ef ldi r25, 0xFF ; 255
+ 13ec: af ef ldi r26, 0xFF ; 255
+ 13ee: bf ef ldi r27, 0xFF ; 255
+ 13f0: 13 c0 rjmp .+38 ; 0x1418 <_Z4tonehjm+0x388>
+ 13f2: 22 0c add r2, r2
+ 13f4: 33 1c adc r3, r3
+ 13f6: b1 01 movw r22, r2
+ 13f8: 80 e0 ldi r24, 0x00 ; 0
+ 13fa: 90 e0 ldi r25, 0x00 ; 0
+ 13fc: 29 81 ldd r18, Y+1 ; 0x01
+ 13fe: 3a 81 ldd r19, Y+2 ; 0x02
+ 1400: 4b 81 ldd r20, Y+3 ; 0x03
+ 1402: 5c 81 ldd r21, Y+4 ; 0x04
+ 1404: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 1408: 28 ee ldi r18, 0xE8 ; 232
+ 140a: 33 e0 ldi r19, 0x03 ; 3
+ 140c: 40 e0 ldi r20, 0x00 ; 0
+ 140e: 50 e0 ldi r21, 0x00 ; 0
+ 1410: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 1414: c9 01 movw r24, r18
+ 1416: da 01 movw r26, r20
+ 1418: e1 e0 ldi r30, 0x01 ; 1
+ 141a: 5e 16 cp r5, r30
+ 141c: a1 f0 breq .+40 ; 0x1446 <_Z4tonehjm+0x3b6>
+ 141e: f2 e0 ldi r31, 0x02 ; 2
+ 1420: 5f 16 cp r5, r31
+ 1422: 19 f1 breq .+70 ; 0x146a <_Z4tonehjm+0x3da>
+ 1424: 55 20 and r5, r5
+ 1426: 99 f5 brne .+102 ; 0x148e <_Z4tonehjm+0x3fe>
+ 1428: e7 bc out 0x27, r14 ; 39
+ 142a: 80 93 6b 03 sts 0x036B, r24
+ 142e: 90 93 6c 03 sts 0x036C, r25
+ 1432: a0 93 6d 03 sts 0x036D, r26
+ 1436: b0 93 6e 03 sts 0x036E, r27
+ 143a: 80 91 6e 00 lds r24, 0x006E
+ 143e: 82 60 ori r24, 0x02 ; 2
+ 1440: 80 93 6e 00 sts 0x006E, r24
+ 1444: 24 c0 rjmp .+72 ; 0x148e <_Z4tonehjm+0x3fe>
+ 1446: f0 92 89 00 sts 0x0089, r15
+ 144a: e0 92 88 00 sts 0x0088, r14
+ 144e: 80 93 72 03 sts 0x0372, r24
+ 1452: 90 93 73 03 sts 0x0373, r25
+ 1456: a0 93 74 03 sts 0x0374, r26
+ 145a: b0 93 75 03 sts 0x0375, r27
+ 145e: 80 91 6f 00 lds r24, 0x006F
+ 1462: 82 60 ori r24, 0x02 ; 2
+ 1464: 80 93 6f 00 sts 0x006F, r24
+ 1468: 12 c0 rjmp .+36 ; 0x148e <_Z4tonehjm+0x3fe>
+ 146a: e0 92 b3 00 sts 0x00B3, r14
+ 146e: 80 93 79 03 sts 0x0379, r24
+ 1472: 90 93 7a 03 sts 0x037A, r25
+ 1476: a0 93 7b 03 sts 0x037B, r26
+ 147a: b0 93 7c 03 sts 0x037C, r27
+ 147e: 80 91 70 00 lds r24, 0x0070
+ 1482: 82 60 ori r24, 0x02 ; 2
+ 1484: 80 93 70 00 sts 0x0070, r24
+ 1488: 02 c0 rjmp .+4 ; 0x148e <_Z4tonehjm+0x3fe>
+ 148a: 84 e0 ldi r24, 0x04 ; 4
+ 148c: 6c cf rjmp .-296 ; 0x1366 <_Z4tonehjm+0x2d6>
+ 148e: 0f 90 pop r0
+ 1490: 0f 90 pop r0
+ 1492: 0f 90 pop r0
+ 1494: 0f 90 pop r0
+ 1496: cf 91 pop r28
+ 1498: df 91 pop r29
+ 149a: 1f 91 pop r17
+ 149c: 0f 91 pop r16
+ 149e: ff 90 pop r15
+ 14a0: ef 90 pop r14
+ 14a2: df 90 pop r13
+ 14a4: cf 90 pop r12
+ 14a6: bf 90 pop r11
+ 14a8: af 90 pop r10
+ 14aa: 9f 90 pop r9
+ 14ac: 8f 90 pop r8
+ 14ae: 7f 90 pop r7
+ 14b0: 6f 90 pop r6
+ 14b2: 5f 90 pop r5
+ 14b4: 3f 90 pop r3
+ 14b6: 2f 90 pop r2
+ 14b8: 08 95 ret
+
+000014ba <attachInterrupt>:
+ 14ba: 82 30 cpi r24, 0x02 ; 2
+ 14bc: 00 f5 brcc .+64 ; 0x14fe <attachInterrupt+0x44>
+ 14be: e8 2f mov r30, r24
+ 14c0: f0 e0 ldi r31, 0x00 ; 0
+ 14c2: ee 0f add r30, r30
+ 14c4: ff 1f adc r31, r31
+ 14c6: e0 58 subi r30, 0x80 ; 128
+ 14c8: fc 4f sbci r31, 0xFC ; 252
+ 14ca: 71 83 std Z+1, r23 ; 0x01
+ 14cc: 60 83 st Z, r22
+ 14ce: 88 23 and r24, r24
+ 14d0: 19 f0 breq .+6 ; 0x14d8 <attachInterrupt+0x1e>
+ 14d2: 81 30 cpi r24, 0x01 ; 1
+ 14d4: a1 f4 brne .+40 ; 0x14fe <attachInterrupt+0x44>
+ 14d6: 08 c0 rjmp .+16 ; 0x14e8 <attachInterrupt+0x2e>
+ 14d8: 80 91 69 00 lds r24, 0x0069
+ 14dc: 8c 7f andi r24, 0xFC ; 252
+ 14de: 84 2b or r24, r20
+ 14e0: 80 93 69 00 sts 0x0069, r24
+ 14e4: e8 9a sbi 0x1d, 0 ; 29
+ 14e6: 08 95 ret
+ 14e8: 80 91 69 00 lds r24, 0x0069
+ 14ec: 44 0f add r20, r20
+ 14ee: 55 1f adc r21, r21
+ 14f0: 44 0f add r20, r20
+ 14f2: 55 1f adc r21, r21
+ 14f4: 83 7f andi r24, 0xF3 ; 243
+ 14f6: 84 2b or r24, r20
+ 14f8: 80 93 69 00 sts 0x0069, r24
+ 14fc: e9 9a sbi 0x1d, 1 ; 29
+ 14fe: 08 95 ret
+
+00001500 <detachInterrupt>:
+ 1500: 82 30 cpi r24, 0x02 ; 2
+ 1502: 80 f4 brcc .+32 ; 0x1524 <detachInterrupt+0x24>
+ 1504: 88 23 and r24, r24
+ 1506: 19 f0 breq .+6 ; 0x150e <detachInterrupt+0xe>
+ 1508: 81 30 cpi r24, 0x01 ; 1
+ 150a: 21 f4 brne .+8 ; 0x1514 <detachInterrupt+0x14>
+ 150c: 02 c0 rjmp .+4 ; 0x1512 <detachInterrupt+0x12>
+ 150e: e8 98 cbi 0x1d, 0 ; 29
+ 1510: 01 c0 rjmp .+2 ; 0x1514 <detachInterrupt+0x14>
+ 1512: e9 98 cbi 0x1d, 1 ; 29
+ 1514: e8 2f mov r30, r24
+ 1516: f0 e0 ldi r31, 0x00 ; 0
+ 1518: ee 0f add r30, r30
+ 151a: ff 1f adc r31, r31
+ 151c: e0 58 subi r30, 0x80 ; 128
+ 151e: fc 4f sbci r31, 0xFC ; 252
+ 1520: 11 82 std Z+1, r1 ; 0x01
+ 1522: 10 82 st Z, r1
+ 1524: 08 95 ret
+
+00001526 <__vector_1>:
+ 1526: 1f 92 push r1
+ 1528: 0f 92 push r0
+ 152a: 0f b6 in r0, 0x3f ; 63
+ 152c: 0f 92 push r0
+ 152e: 11 24 eor r1, r1
+ 1530: 2f 93 push r18
+ 1532: 3f 93 push r19
+ 1534: 4f 93 push r20
+ 1536: 5f 93 push r21
+ 1538: 6f 93 push r22
+ 153a: 7f 93 push r23
+ 153c: 8f 93 push r24
+ 153e: 9f 93 push r25
+ 1540: af 93 push r26
+ 1542: bf 93 push r27
+ 1544: ef 93 push r30
+ 1546: ff 93 push r31
+ 1548: 80 91 80 03 lds r24, 0x0380
+ 154c: 90 91 81 03 lds r25, 0x0381
+ 1550: 89 2b or r24, r25
+ 1552: 29 f0 breq .+10 ; 0x155e <__vector_1+0x38>
+ 1554: e0 91 80 03 lds r30, 0x0380
+ 1558: f0 91 81 03 lds r31, 0x0381
+ 155c: 09 95 icall
+ 155e: ff 91 pop r31
+ 1560: ef 91 pop r30
+ 1562: bf 91 pop r27
+ 1564: af 91 pop r26
+ 1566: 9f 91 pop r25
+ 1568: 8f 91 pop r24
+ 156a: 7f 91 pop r23
+ 156c: 6f 91 pop r22
+ 156e: 5f 91 pop r21
+ 1570: 4f 91 pop r20
+ 1572: 3f 91 pop r19
+ 1574: 2f 91 pop r18
+ 1576: 0f 90 pop r0
+ 1578: 0f be out 0x3f, r0 ; 63
+ 157a: 0f 90 pop r0
+ 157c: 1f 90 pop r1
+ 157e: 18 95 reti
+
+00001580 <__vector_2>:
+ 1580: 1f 92 push r1
+ 1582: 0f 92 push r0
+ 1584: 0f b6 in r0, 0x3f ; 63
+ 1586: 0f 92 push r0
+ 1588: 11 24 eor r1, r1
+ 158a: 2f 93 push r18
+ 158c: 3f 93 push r19
+ 158e: 4f 93 push r20
+ 1590: 5f 93 push r21
+ 1592: 6f 93 push r22
+ 1594: 7f 93 push r23
+ 1596: 8f 93 push r24
+ 1598: 9f 93 push r25
+ 159a: af 93 push r26
+ 159c: bf 93 push r27
+ 159e: ef 93 push r30
+ 15a0: ff 93 push r31
+ 15a2: 80 91 82 03 lds r24, 0x0382
+ 15a6: 90 91 83 03 lds r25, 0x0383
+ 15aa: 89 2b or r24, r25
+ 15ac: 29 f0 breq .+10 ; 0x15b8 <__vector_2+0x38>
+ 15ae: e0 91 82 03 lds r30, 0x0382
+ 15b2: f0 91 83 03 lds r31, 0x0383
+ 15b6: 09 95 icall
+ 15b8: ff 91 pop r31
+ 15ba: ef 91 pop r30
+ 15bc: bf 91 pop r27
+ 15be: af 91 pop r26
+ 15c0: 9f 91 pop r25
+ 15c2: 8f 91 pop r24
+ 15c4: 7f 91 pop r23
+ 15c6: 6f 91 pop r22
+ 15c8: 5f 91 pop r21
+ 15ca: 4f 91 pop r20
+ 15cc: 3f 91 pop r19
+ 15ce: 2f 91 pop r18
+ 15d0: 0f 90 pop r0
+ 15d2: 0f be out 0x3f, r0 ; 63
+ 15d4: 0f 90 pop r0
+ 15d6: 1f 90 pop r1
+ 15d8: 18 95 reti
+
+000015da <_Z3maplllll>:
+ 15da: 2f 92 push r2
+ 15dc: 3f 92 push r3
+ 15de: 4f 92 push r4
+ 15e0: 5f 92 push r5
+ 15e2: 6f 92 push r6
+ 15e4: 7f 92 push r7
+ 15e6: 8f 92 push r8
+ 15e8: 9f 92 push r9
+ 15ea: af 92 push r10
+ 15ec: bf 92 push r11
+ 15ee: cf 92 push r12
+ 15f0: df 92 push r13
+ 15f2: ef 92 push r14
+ 15f4: ff 92 push r15
+ 15f6: 0f 93 push r16
+ 15f8: 1f 93 push r17
+ 15fa: df 93 push r29
+ 15fc: cf 93 push r28
+ 15fe: cd b7 in r28, 0x3d ; 61
+ 1600: de b7 in r29, 0x3e ; 62
+ 1602: 3b 01 movw r6, r22
+ 1604: 4c 01 movw r8, r24
+ 1606: 19 01 movw r2, r18
+ 1608: 2a 01 movw r4, r20
+ 160a: 6d 89 ldd r22, Y+21 ; 0x15
+ 160c: 7e 89 ldd r23, Y+22 ; 0x16
+ 160e: 8f 89 ldd r24, Y+23 ; 0x17
+ 1610: 98 8d ldd r25, Y+24 ; 0x18
+ 1612: 6a 19 sub r22, r10
+ 1614: 7b 09 sbc r23, r11
+ 1616: 8c 09 sbc r24, r12
+ 1618: 9d 09 sbc r25, r13
+ 161a: 62 1a sub r6, r18
+ 161c: 73 0a sbc r7, r19
+ 161e: 84 0a sbc r8, r20
+ 1620: 95 0a sbc r9, r21
+ 1622: a4 01 movw r20, r8
+ 1624: 93 01 movw r18, r6
+ 1626: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 162a: e2 18 sub r14, r2
+ 162c: f3 08 sbc r15, r3
+ 162e: 04 09 sbc r16, r4
+ 1630: 15 09 sbc r17, r5
+ 1632: a8 01 movw r20, r16
+ 1634: 97 01 movw r18, r14
+ 1636: 0e 94 34 1e call 0x3c68 ; 0x3c68 <__divmodsi4>
+ 163a: 2a 0d add r18, r10
+ 163c: 3b 1d adc r19, r11
+ 163e: 4c 1d adc r20, r12
+ 1640: 5d 1d adc r21, r13
+ 1642: b9 01 movw r22, r18
+ 1644: ca 01 movw r24, r20
+ 1646: cf 91 pop r28
+ 1648: df 91 pop r29
+ 164a: 1f 91 pop r17
+ 164c: 0f 91 pop r16
+ 164e: ff 90 pop r15
+ 1650: ef 90 pop r14
+ 1652: df 90 pop r13
+ 1654: cf 90 pop r12
+ 1656: bf 90 pop r11
+ 1658: af 90 pop r10
+ 165a: 9f 90 pop r9
+ 165c: 8f 90 pop r8
+ 165e: 7f 90 pop r7
+ 1660: 6f 90 pop r6
+ 1662: 5f 90 pop r5
+ 1664: 4f 90 pop r4
+ 1666: 3f 90 pop r3
+ 1668: 2f 90 pop r2
+ 166a: 08 95 ret
+
+0000166c <_Z8makeWordj>:
+ 166c: 08 95 ret
+
+0000166e <_Z8makeWordhh>:
+ 166e: 70 e0 ldi r23, 0x00 ; 0
+ 1670: 38 2f mov r19, r24
+ 1672: 20 e0 ldi r18, 0x00 ; 0
+ 1674: 62 2b or r22, r18
+ 1676: 73 2b or r23, r19
+ 1678: cb 01 movw r24, r22
+ 167a: 08 95 ret
+
+0000167c <_Z6randoml>:
+ 167c: ef 92 push r14
+ 167e: ff 92 push r15
+ 1680: 0f 93 push r16
+ 1682: 1f 93 push r17
+ 1684: 7b 01 movw r14, r22
+ 1686: 8c 01 movw r16, r24
+ 1688: 61 15 cp r22, r1
+ 168a: 71 05 cpc r23, r1
+ 168c: 81 05 cpc r24, r1
+ 168e: 91 05 cpc r25, r1
+ 1690: 29 f4 brne .+10 ; 0x169c <_Z6randoml+0x20>
+ 1692: 20 e0 ldi r18, 0x00 ; 0
+ 1694: 30 e0 ldi r19, 0x00 ; 0
+ 1696: 40 e0 ldi r20, 0x00 ; 0
+ 1698: 50 e0 ldi r21, 0x00 ; 0
+ 169a: 0b c0 rjmp .+22 ; 0x16b2 <_Z6randoml+0x36>
+ 169c: 0e 94 e4 1f call 0x3fc8 ; 0x3fc8 <random>
+ 16a0: a8 01 movw r20, r16
+ 16a2: 97 01 movw r18, r14
+ 16a4: 0e 94 34 1e call 0x3c68 ; 0x3c68 <__divmodsi4>
+ 16a8: ac 01 movw r20, r24
+ 16aa: cb 01 movw r24, r22
+ 16ac: da 01 movw r26, r20
+ 16ae: 9c 01 movw r18, r24
+ 16b0: ad 01 movw r20, r26
+ 16b2: b9 01 movw r22, r18
+ 16b4: ca 01 movw r24, r20
+ 16b6: 1f 91 pop r17
+ 16b8: 0f 91 pop r16
+ 16ba: ff 90 pop r15
+ 16bc: ef 90 pop r14
+ 16be: 08 95 ret
+
+000016c0 <_Z6randomll>:
+ 16c0: ef 92 push r14
+ 16c2: ff 92 push r15
+ 16c4: 0f 93 push r16
+ 16c6: 1f 93 push r17
+ 16c8: 7b 01 movw r14, r22
+ 16ca: 8c 01 movw r16, r24
+ 16cc: 62 17 cp r22, r18
+ 16ce: 73 07 cpc r23, r19
+ 16d0: 84 07 cpc r24, r20
+ 16d2: 95 07 cpc r25, r21
+ 16d4: 64 f4 brge .+24 ; 0x16ee <_Z6randomll+0x2e>
+ 16d6: 26 1b sub r18, r22
+ 16d8: 37 0b sbc r19, r23
+ 16da: 48 0b sbc r20, r24
+ 16dc: 59 0b sbc r21, r25
+ 16de: ca 01 movw r24, r20
+ 16e0: b9 01 movw r22, r18
+ 16e2: 0e 94 3e 0b call 0x167c ; 0x167c <_Z6randoml>
+ 16e6: e6 0e add r14, r22
+ 16e8: f7 1e adc r15, r23
+ 16ea: 08 1f adc r16, r24
+ 16ec: 19 1f adc r17, r25
+ 16ee: b7 01 movw r22, r14
+ 16f0: c8 01 movw r24, r16
+ 16f2: 1f 91 pop r17
+ 16f4: 0f 91 pop r16
+ 16f6: ff 90 pop r15
+ 16f8: ef 90 pop r14
+ 16fa: 08 95 ret
+
+000016fc <_Z10randomSeedj>:
+ 16fc: 00 97 sbiw r24, 0x00 ; 0
+ 16fe: 29 f0 breq .+10 ; 0x170a <_Z10randomSeedj+0xe>
+ 1700: bc 01 movw r22, r24
+ 1702: 80 e0 ldi r24, 0x00 ; 0
+ 1704: 90 e0 ldi r25, 0x00 ; 0
+ 1706: 0e 94 e9 1f call 0x3fd2 ; 0x3fd2 <srandom>
+ 170a: 08 95 ret
+
+0000170c <_ZNK6String6charAtEj>:
+ 170c: fc 01 movw r30, r24
+ 170e: 01 90 ld r0, Z+
+ 1710: f0 81 ld r31, Z
+ 1712: e0 2d mov r30, r0
+ 1714: e6 0f add r30, r22
+ 1716: f7 1f adc r31, r23
+ 1718: 80 81 ld r24, Z
+ 171a: 08 95 ret
+
+0000171c <_ZN6String9setCharAtEjc>:
+ 171c: dc 01 movw r26, r24
+ 171e: ed 91 ld r30, X+
+ 1720: fc 91 ld r31, X
+ 1722: 11 97 sbiw r26, 0x01 ; 1
+ 1724: 30 97 sbiw r30, 0x00 ; 0
+ 1726: 51 f0 breq .+20 ; 0x173c <_ZN6String9setCharAtEjc+0x20>
+ 1728: 14 96 adiw r26, 0x04 ; 4
+ 172a: 8d 91 ld r24, X+
+ 172c: 9c 91 ld r25, X
+ 172e: 15 97 sbiw r26, 0x05 ; 5
+ 1730: 68 17 cp r22, r24
+ 1732: 79 07 cpc r23, r25
+ 1734: 18 f4 brcc .+6 ; 0x173c <_ZN6String9setCharAtEjc+0x20>
+ 1736: e6 0f add r30, r22
+ 1738: f7 1f adc r31, r23
+ 173a: 40 83 st Z, r20
+ 173c: 08 95 ret
+
+0000173e <_ZN6StringixEj>:
+ 173e: fc 01 movw r30, r24
+ 1740: 9b 01 movw r18, r22
+ 1742: 84 81 ldd r24, Z+4 ; 0x04
+ 1744: 95 81 ldd r25, Z+5 ; 0x05
+ 1746: 68 17 cp r22, r24
+ 1748: 79 07 cpc r23, r25
+ 174a: 28 f4 brcc .+10 ; 0x1756 <_ZN6StringixEj+0x18>
+ 174c: 60 81 ld r22, Z
+ 174e: 71 81 ldd r23, Z+1 ; 0x01
+ 1750: 61 15 cp r22, r1
+ 1752: 71 05 cpc r23, r1
+ 1754: 29 f4 brne .+10 ; 0x1760 <_ZN6StringixEj+0x22>
+ 1756: 10 92 84 03 sts 0x0384, r1
+ 175a: 64 e8 ldi r22, 0x84 ; 132
+ 175c: 73 e0 ldi r23, 0x03 ; 3
+ 175e: 02 c0 rjmp .+4 ; 0x1764 <_ZN6StringixEj+0x26>
+ 1760: 62 0f add r22, r18
+ 1762: 73 1f adc r23, r19
+ 1764: cb 01 movw r24, r22
+ 1766: 08 95 ret
+
+00001768 <_ZNK6StringixEj>:
+ 1768: fc 01 movw r30, r24
+ 176a: 01 90 ld r0, Z+
+ 176c: f0 81 ld r31, Z
+ 176e: e0 2d mov r30, r0
+ 1770: e6 0f add r30, r22
+ 1772: f7 1f adc r31, r23
+ 1774: 80 81 ld r24, Z
+ 1776: 08 95 ret
+
+00001778 <_ZN6String5toIntEv>:
+ 1778: fc 01 movw r30, r24
+ 177a: 80 81 ld r24, Z
+ 177c: 91 81 ldd r25, Z+1 ; 0x01
+ 177e: 0e 94 c0 20 call 0x4180 ; 0x4180 <atol>
+ 1782: 08 95 ret
+
+00001784 <_ZN6String11toCharArrayEPcj>:
+ 1784: 0f 93 push r16
+ 1786: 1f 93 push r17
+ 1788: cf 93 push r28
+ 178a: df 93 push r29
+ 178c: fc 01 movw r30, r24
+ 178e: 8b 01 movw r16, r22
+ 1790: 41 15 cp r20, r1
+ 1792: 51 05 cpc r21, r1
+ 1794: a1 f0 breq .+40 ; 0x17be <_ZN6String11toCharArrayEPcj+0x3a>
+ 1796: 61 15 cp r22, r1
+ 1798: 71 05 cpc r23, r1
+ 179a: 89 f0 breq .+34 ; 0x17be <_ZN6String11toCharArrayEPcj+0x3a>
+ 179c: 84 81 ldd r24, Z+4 ; 0x04
+ 179e: 95 81 ldd r25, Z+5 ; 0x05
+ 17a0: ea 01 movw r28, r20
+ 17a2: 21 97 sbiw r28, 0x01 ; 1
+ 17a4: 8c 17 cp r24, r28
+ 17a6: 9d 07 cpc r25, r29
+ 17a8: 08 f4 brcc .+2 ; 0x17ac <_ZN6String11toCharArrayEPcj+0x28>
+ 17aa: ec 01 movw r28, r24
+ 17ac: 60 81 ld r22, Z
+ 17ae: 71 81 ldd r23, Z+1 ; 0x01
+ 17b0: c8 01 movw r24, r16
+ 17b2: ae 01 movw r20, r28
+ 17b4: 0e 94 3c 21 call 0x4278 ; 0x4278 <strncpy>
+ 17b8: c0 0f add r28, r16
+ 17ba: d1 1f adc r29, r17
+ 17bc: 18 82 st Y, r1
+ 17be: df 91 pop r29
+ 17c0: cf 91 pop r28
+ 17c2: 1f 91 pop r17
+ 17c4: 0f 91 pop r16
+ 17c6: 08 95 ret
+
+000017c8 <_ZN6String8getBytesEPhj>:
+ 17c8: 0f 93 push r16
+ 17ca: 1f 93 push r17
+ 17cc: cf 93 push r28
+ 17ce: df 93 push r29
+ 17d0: fc 01 movw r30, r24
+ 17d2: 8b 01 movw r16, r22
+ 17d4: 41 15 cp r20, r1
+ 17d6: 51 05 cpc r21, r1
+ 17d8: a1 f0 breq .+40 ; 0x1802 <_ZN6String8getBytesEPhj+0x3a>
+ 17da: 61 15 cp r22, r1
+ 17dc: 71 05 cpc r23, r1
+ 17de: 89 f0 breq .+34 ; 0x1802 <_ZN6String8getBytesEPhj+0x3a>
+ 17e0: 84 81 ldd r24, Z+4 ; 0x04
+ 17e2: 95 81 ldd r25, Z+5 ; 0x05
+ 17e4: ea 01 movw r28, r20
+ 17e6: 21 97 sbiw r28, 0x01 ; 1
+ 17e8: 8c 17 cp r24, r28
+ 17ea: 9d 07 cpc r25, r29
+ 17ec: 08 f4 brcc .+2 ; 0x17f0 <_ZN6String8getBytesEPhj+0x28>
+ 17ee: ec 01 movw r28, r24
+ 17f0: 60 81 ld r22, Z
+ 17f2: 71 81 ldd r23, Z+1 ; 0x01
+ 17f4: c8 01 movw r24, r16
+ 17f6: ae 01 movw r20, r28
+ 17f8: 0e 94 3c 21 call 0x4278 ; 0x4278 <strncpy>
+ 17fc: c0 0f add r28, r16
+ 17fe: d1 1f adc r29, r17
+ 1800: 18 82 st Y, r1
+ 1802: df 91 pop r29
+ 1804: cf 91 pop r28
+ 1806: 1f 91 pop r17
+ 1808: 0f 91 pop r16
+ 180a: 08 95 ret
+
+0000180c <_ZN6StringD1Ev>:
+ 180c: 0f 93 push r16
+ 180e: 1f 93 push r17
+ 1810: 8c 01 movw r16, r24
+ 1812: fc 01 movw r30, r24
+ 1814: 80 81 ld r24, Z
+ 1816: 91 81 ldd r25, Z+1 ; 0x01
+ 1818: 0e 94 39 1f call 0x3e72 ; 0x3e72 <free>
+ 181c: f8 01 movw r30, r16
+ 181e: 13 82 std Z+3, r1 ; 0x03
+ 1820: 12 82 std Z+2, r1 ; 0x02
+ 1822: 15 82 std Z+5, r1 ; 0x05
+ 1824: 14 82 std Z+4, r1 ; 0x04
+ 1826: 1f 91 pop r17
+ 1828: 0f 91 pop r16
+ 182a: 08 95 ret
+
+0000182c <_ZNK6String10startsWithERKS_j>:
+ 182c: fc 01 movw r30, r24
+ 182e: db 01 movw r26, r22
+ 1830: 14 96 adiw r26, 0x04 ; 4
+ 1832: 2d 91 ld r18, X+
+ 1834: 3c 91 ld r19, X
+ 1836: 15 97 sbiw r26, 0x05 ; 5
+ 1838: 84 81 ldd r24, Z+4 ; 0x04
+ 183a: 95 81 ldd r25, Z+5 ; 0x05
+ 183c: 82 1b sub r24, r18
+ 183e: 93 0b sbc r25, r19
+ 1840: 84 17 cp r24, r20
+ 1842: 95 07 cpc r25, r21
+ 1844: 10 f4 brcc .+4 ; 0x184a <_ZNK6String10startsWithERKS_j+0x1e>
+ 1846: 80 e0 ldi r24, 0x00 ; 0
+ 1848: 08 95 ret
+ 184a: 80 81 ld r24, Z
+ 184c: 91 81 ldd r25, Z+1 ; 0x01
+ 184e: 6d 91 ld r22, X+
+ 1850: 7c 91 ld r23, X
+ 1852: 84 0f add r24, r20
+ 1854: 95 1f adc r25, r21
+ 1856: a9 01 movw r20, r18
+ 1858: 0e 94 2e 21 call 0x425c ; 0x425c <strncmp>
+ 185c: 9c 01 movw r18, r24
+ 185e: 80 e0 ldi r24, 0x00 ; 0
+ 1860: 23 2b or r18, r19
+ 1862: 09 f4 brne .+2 ; 0x1866 <_ZNK6String10startsWithERKS_j+0x3a>
+ 1864: 81 e0 ldi r24, 0x01 ; 1
+ 1866: 08 95 ret
+
+00001868 <_ZNK6String10startsWithERKS_>:
+ 1868: fc 01 movw r30, r24
+ 186a: db 01 movw r26, r22
+ 186c: 24 81 ldd r18, Z+4 ; 0x04
+ 186e: 35 81 ldd r19, Z+5 ; 0x05
+ 1870: 14 96 adiw r26, 0x04 ; 4
+ 1872: 8d 91 ld r24, X+
+ 1874: 9c 91 ld r25, X
+ 1876: 15 97 sbiw r26, 0x05 ; 5
+ 1878: 28 17 cp r18, r24
+ 187a: 39 07 cpc r19, r25
+ 187c: 10 f4 brcc .+4 ; 0x1882 <_ZNK6String10startsWithERKS_+0x1a>
+ 187e: 80 e0 ldi r24, 0x00 ; 0
+ 1880: 08 95 ret
+ 1882: cf 01 movw r24, r30
+ 1884: 40 e0 ldi r20, 0x00 ; 0
+ 1886: 50 e0 ldi r21, 0x00 ; 0
+ 1888: 0e 94 16 0c call 0x182c ; 0x182c <_ZNK6String10startsWithERKS_j>
+ 188c: 08 95 ret
+
+0000188e <_ZNK6String11lastIndexOfEcj>:
+ 188e: df 92 push r13
+ 1890: ef 92 push r14
+ 1892: ff 92 push r15
+ 1894: 0f 93 push r16
+ 1896: 1f 93 push r17
+ 1898: cf 93 push r28
+ 189a: df 93 push r29
+ 189c: ec 01 movw r28, r24
+ 189e: 8c 81 ldd r24, Y+4 ; 0x04
+ 18a0: 9d 81 ldd r25, Y+5 ; 0x05
+ 18a2: 48 17 cp r20, r24
+ 18a4: 59 07 cpc r21, r25
+ 18a6: c8 f4 brcc .+50 ; 0x18da <_ZNK6String11lastIndexOfEcj+0x4c>
+ 18a8: 7a 01 movw r14, r20
+ 18aa: 08 94 sec
+ 18ac: e1 1c adc r14, r1
+ 18ae: f1 1c adc r15, r1
+ 18b0: e8 81 ld r30, Y
+ 18b2: f9 81 ldd r31, Y+1 ; 0x01
+ 18b4: ee 0d add r30, r14
+ 18b6: ff 1d adc r31, r15
+ 18b8: d0 80 ld r13, Z
+ 18ba: 10 82 st Z, r1
+ 18bc: 08 81 ld r16, Y
+ 18be: 19 81 ldd r17, Y+1 ; 0x01
+ 18c0: 77 27 eor r23, r23
+ 18c2: 67 fd sbrc r22, 7
+ 18c4: 70 95 com r23
+ 18c6: c8 01 movw r24, r16
+ 18c8: 0e 94 4b 21 call 0x4296 ; 0x4296 <strrchr>
+ 18cc: 9c 01 movw r18, r24
+ 18ce: 0e 0d add r16, r14
+ 18d0: 1f 1d adc r17, r15
+ 18d2: f8 01 movw r30, r16
+ 18d4: d0 82 st Z, r13
+ 18d6: 00 97 sbiw r24, 0x00 ; 0
+ 18d8: 19 f4 brne .+6 ; 0x18e0 <_ZNK6String11lastIndexOfEcj+0x52>
+ 18da: ef ef ldi r30, 0xFF ; 255
+ 18dc: ff ef ldi r31, 0xFF ; 255
+ 18de: 05 c0 rjmp .+10 ; 0x18ea <_ZNK6String11lastIndexOfEcj+0x5c>
+ 18e0: 88 81 ld r24, Y
+ 18e2: 99 81 ldd r25, Y+1 ; 0x01
+ 18e4: f9 01 movw r30, r18
+ 18e6: e8 1b sub r30, r24
+ 18e8: f9 0b sbc r31, r25
+ 18ea: cf 01 movw r24, r30
+ 18ec: df 91 pop r29
+ 18ee: cf 91 pop r28
+ 18f0: 1f 91 pop r17
+ 18f2: 0f 91 pop r16
+ 18f4: ff 90 pop r15
+ 18f6: ef 90 pop r14
+ 18f8: df 90 pop r13
+ 18fa: 08 95 ret
+
+000018fc <_ZNK6String11lastIndexOfEc>:
+ 18fc: fc 01 movw r30, r24
+ 18fe: 44 81 ldd r20, Z+4 ; 0x04
+ 1900: 55 81 ldd r21, Z+5 ; 0x05
+ 1902: 41 50 subi r20, 0x01 ; 1
+ 1904: 50 40 sbci r21, 0x00 ; 0
+ 1906: 0e 94 47 0c call 0x188e ; 0x188e <_ZNK6String11lastIndexOfEcj>
+ 190a: 08 95 ret
+
+0000190c <_ZNK6String7indexOfERKS_j>:
+ 190c: cf 93 push r28
+ 190e: df 93 push r29
+ 1910: fc 01 movw r30, r24
+ 1912: db 01 movw r26, r22
+ 1914: 84 81 ldd r24, Z+4 ; 0x04
+ 1916: 95 81 ldd r25, Z+5 ; 0x05
+ 1918: 48 17 cp r20, r24
+ 191a: 59 07 cpc r21, r25
+ 191c: 60 f4 brcc .+24 ; 0x1936 <_ZNK6String7indexOfERKS_j+0x2a>
+ 191e: c0 81 ld r28, Z
+ 1920: d1 81 ldd r29, Z+1 ; 0x01
+ 1922: 6d 91 ld r22, X+
+ 1924: 7c 91 ld r23, X
+ 1926: ce 01 movw r24, r28
+ 1928: 84 0f add r24, r20
+ 192a: 95 1f adc r25, r21
+ 192c: 0e 94 56 21 call 0x42ac ; 0x42ac <strstr>
+ 1930: 9c 01 movw r18, r24
+ 1932: 00 97 sbiw r24, 0x00 ; 0
+ 1934: 19 f4 brne .+6 ; 0x193c <_ZNK6String7indexOfERKS_j+0x30>
+ 1936: 2f ef ldi r18, 0xFF ; 255
+ 1938: 3f ef ldi r19, 0xFF ; 255
+ 193a: 02 c0 rjmp .+4 ; 0x1940 <_ZNK6String7indexOfERKS_j+0x34>
+ 193c: 2c 1b sub r18, r28
+ 193e: 3d 0b sbc r19, r29
+ 1940: c9 01 movw r24, r18
+ 1942: df 91 pop r29
+ 1944: cf 91 pop r28
+ 1946: 08 95 ret
+
+00001948 <_ZNK6String7indexOfERKS_>:
+ 1948: 40 e0 ldi r20, 0x00 ; 0
+ 194a: 50 e0 ldi r21, 0x00 ; 0
+ 194c: 0e 94 86 0c call 0x190c ; 0x190c <_ZNK6String7indexOfERKS_j>
+ 1950: 08 95 ret
+
+00001952 <_ZNK6String7indexOfEcj>:
+ 1952: cf 93 push r28
+ 1954: df 93 push r29
+ 1956: fc 01 movw r30, r24
+ 1958: 84 81 ldd r24, Z+4 ; 0x04
+ 195a: 95 81 ldd r25, Z+5 ; 0x05
+ 195c: 48 17 cp r20, r24
+ 195e: 59 07 cpc r21, r25
+ 1960: 68 f4 brcc .+26 ; 0x197c <_ZNK6String7indexOfEcj+0x2a>
+ 1962: c0 81 ld r28, Z
+ 1964: d1 81 ldd r29, Z+1 ; 0x01
+ 1966: 77 27 eor r23, r23
+ 1968: 67 fd sbrc r22, 7
+ 196a: 70 95 com r23
+ 196c: ce 01 movw r24, r28
+ 196e: 84 0f add r24, r20
+ 1970: 95 1f adc r25, r21
+ 1972: 0e 94 13 21 call 0x4226 ; 0x4226 <strchr>
+ 1976: 9c 01 movw r18, r24
+ 1978: 00 97 sbiw r24, 0x00 ; 0
+ 197a: 19 f4 brne .+6 ; 0x1982 <_ZNK6String7indexOfEcj+0x30>
+ 197c: 2f ef ldi r18, 0xFF ; 255
+ 197e: 3f ef ldi r19, 0xFF ; 255
+ 1980: 02 c0 rjmp .+4 ; 0x1986 <_ZNK6String7indexOfEcj+0x34>
+ 1982: 2c 1b sub r18, r28
+ 1984: 3d 0b sbc r19, r29
+ 1986: c9 01 movw r24, r18
+ 1988: df 91 pop r29
+ 198a: cf 91 pop r28
+ 198c: 08 95 ret
+
+0000198e <_ZNK6String7indexOfEc>:
+ 198e: 40 e0 ldi r20, 0x00 ; 0
+ 1990: 50 e0 ldi r21, 0x00 ; 0
+ 1992: 0e 94 a9 0c call 0x1952 ; 0x1952 <_ZNK6String7indexOfEcj>
+ 1996: 08 95 ret
+
+00001998 <_ZNK6String6equalsERKS_>:
+ 1998: dc 01 movw r26, r24
+ 199a: fb 01 movw r30, r22
+ 199c: 14 96 adiw r26, 0x04 ; 4
+ 199e: 2d 91 ld r18, X+
+ 19a0: 3c 91 ld r19, X
+ 19a2: 15 97 sbiw r26, 0x05 ; 5
+ 19a4: 84 81 ldd r24, Z+4 ; 0x04
+ 19a6: 95 81 ldd r25, Z+5 ; 0x05
+ 19a8: 28 17 cp r18, r24
+ 19aa: 39 07 cpc r19, r25
+ 19ac: 11 f0 breq .+4 ; 0x19b2 <_ZNK6String6equalsERKS_+0x1a>
+ 19ae: 80 e0 ldi r24, 0x00 ; 0
+ 19b0: 08 95 ret
+ 19b2: 60 81 ld r22, Z
+ 19b4: 71 81 ldd r23, Z+1 ; 0x01
+ 19b6: 8d 91 ld r24, X+
+ 19b8: 9c 91 ld r25, X
+ 19ba: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 19be: 9c 01 movw r18, r24
+ 19c0: 80 e0 ldi r24, 0x00 ; 0
+ 19c2: 23 2b or r18, r19
+ 19c4: 09 f4 brne .+2 ; 0x19c8 <_ZNK6String6equalsERKS_+0x30>
+ 19c6: 81 e0 ldi r24, 0x01 ; 1
+ 19c8: 08 95 ret
+
+000019ca <_ZNK6String8endsWithERKS_>:
+ 19ca: fc 01 movw r30, r24
+ 19cc: db 01 movw r26, r22
+ 19ce: 24 81 ldd r18, Z+4 ; 0x04
+ 19d0: 35 81 ldd r19, Z+5 ; 0x05
+ 19d2: 14 96 adiw r26, 0x04 ; 4
+ 19d4: 8d 91 ld r24, X+
+ 19d6: 9c 91 ld r25, X
+ 19d8: 15 97 sbiw r26, 0x05 ; 5
+ 19da: 28 17 cp r18, r24
+ 19dc: 39 07 cpc r19, r25
+ 19de: 10 f4 brcc .+4 ; 0x19e4 <_ZNK6String8endsWithERKS_+0x1a>
+ 19e0: 80 e0 ldi r24, 0x00 ; 0
+ 19e2: 08 95 ret
+ 19e4: 28 1b sub r18, r24
+ 19e6: 39 0b sbc r19, r25
+ 19e8: 80 81 ld r24, Z
+ 19ea: 91 81 ldd r25, Z+1 ; 0x01
+ 19ec: 6d 91 ld r22, X+
+ 19ee: 7c 91 ld r23, X
+ 19f0: 82 0f add r24, r18
+ 19f2: 93 1f adc r25, r19
+ 19f4: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 19f8: 9c 01 movw r18, r24
+ 19fa: 80 e0 ldi r24, 0x00 ; 0
+ 19fc: 23 2b or r18, r19
+ 19fe: 09 f4 brne .+2 ; 0x1a02 <_ZNK6String8endsWithERKS_+0x38>
+ 1a00: 81 e0 ldi r24, 0x01 ; 1
+ 1a02: 08 95 ret
+
+00001a04 <_ZNK6StringgeERKS_>:
+ 1a04: dc 01 movw r26, r24
+ 1a06: fb 01 movw r30, r22
+ 1a08: 60 81 ld r22, Z
+ 1a0a: 71 81 ldd r23, Z+1 ; 0x01
+ 1a0c: 8d 91 ld r24, X+
+ 1a0e: 9c 91 ld r25, X
+ 1a10: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1a14: 29 2f mov r18, r25
+ 1a16: 33 27 eor r19, r19
+ 1a18: 27 fd sbrc r18, 7
+ 1a1a: 30 95 com r19
+ 1a1c: 20 95 com r18
+ 1a1e: 30 95 com r19
+ 1a20: 22 27 eor r18, r18
+ 1a22: 33 0f add r19, r19
+ 1a24: 22 1f adc r18, r18
+ 1a26: 33 27 eor r19, r19
+ 1a28: c9 01 movw r24, r18
+ 1a2a: 08 95 ret
+
+00001a2c <_ZNK6StringleERKS_>:
+ 1a2c: dc 01 movw r26, r24
+ 1a2e: fb 01 movw r30, r22
+ 1a30: 60 81 ld r22, Z
+ 1a32: 71 81 ldd r23, Z+1 ; 0x01
+ 1a34: 8d 91 ld r24, X+
+ 1a36: 9c 91 ld r25, X
+ 1a38: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1a3c: 40 e0 ldi r20, 0x00 ; 0
+ 1a3e: 50 e0 ldi r21, 0x00 ; 0
+ 1a40: 18 16 cp r1, r24
+ 1a42: 19 06 cpc r1, r25
+ 1a44: 14 f0 brlt .+4 ; 0x1a4a <_ZNK6StringleERKS_+0x1e>
+ 1a46: 41 e0 ldi r20, 0x01 ; 1
+ 1a48: 50 e0 ldi r21, 0x00 ; 0
+ 1a4a: ca 01 movw r24, r20
+ 1a4c: 08 95 ret
+
+00001a4e <_ZNK6StringgtERKS_>:
+ 1a4e: dc 01 movw r26, r24
+ 1a50: fb 01 movw r30, r22
+ 1a52: 60 81 ld r22, Z
+ 1a54: 71 81 ldd r23, Z+1 ; 0x01
+ 1a56: 8d 91 ld r24, X+
+ 1a58: 9c 91 ld r25, X
+ 1a5a: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1a5e: 40 e0 ldi r20, 0x00 ; 0
+ 1a60: 50 e0 ldi r21, 0x00 ; 0
+ 1a62: 18 16 cp r1, r24
+ 1a64: 19 06 cpc r1, r25
+ 1a66: 14 f4 brge .+4 ; 0x1a6c <_ZNK6StringgtERKS_+0x1e>
+ 1a68: 41 e0 ldi r20, 0x01 ; 1
+ 1a6a: 50 e0 ldi r21, 0x00 ; 0
+ 1a6c: ca 01 movw r24, r20
+ 1a6e: 08 95 ret
+
+00001a70 <_ZNK6StringltERKS_>:
+ 1a70: dc 01 movw r26, r24
+ 1a72: fb 01 movw r30, r22
+ 1a74: 60 81 ld r22, Z
+ 1a76: 71 81 ldd r23, Z+1 ; 0x01
+ 1a78: 8d 91 ld r24, X+
+ 1a7a: 9c 91 ld r25, X
+ 1a7c: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1a80: 29 2f mov r18, r25
+ 1a82: 33 27 eor r19, r19
+ 1a84: 27 fd sbrc r18, 7
+ 1a86: 30 95 com r19
+ 1a88: 22 27 eor r18, r18
+ 1a8a: 33 0f add r19, r19
+ 1a8c: 22 1f adc r18, r18
+ 1a8e: 33 27 eor r19, r19
+ 1a90: c9 01 movw r24, r18
+ 1a92: 08 95 ret
+
+00001a94 <_ZNK6StringneERKS_>:
+ 1a94: dc 01 movw r26, r24
+ 1a96: fb 01 movw r30, r22
+ 1a98: 14 96 adiw r26, 0x04 ; 4
+ 1a9a: 2d 91 ld r18, X+
+ 1a9c: 3c 91 ld r19, X
+ 1a9e: 15 97 sbiw r26, 0x05 ; 5
+ 1aa0: 84 81 ldd r24, Z+4 ; 0x04
+ 1aa2: 95 81 ldd r25, Z+5 ; 0x05
+ 1aa4: 28 17 cp r18, r24
+ 1aa6: 39 07 cpc r19, r25
+ 1aa8: 51 f4 brne .+20 ; 0x1abe <_ZNK6StringneERKS_+0x2a>
+ 1aaa: 60 81 ld r22, Z
+ 1aac: 71 81 ldd r23, Z+1 ; 0x01
+ 1aae: 8d 91 ld r24, X+
+ 1ab0: 9c 91 ld r25, X
+ 1ab2: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1ab6: 9c 01 movw r18, r24
+ 1ab8: 80 e0 ldi r24, 0x00 ; 0
+ 1aba: 23 2b or r18, r19
+ 1abc: 09 f0 breq .+2 ; 0x1ac0 <_ZNK6StringneERKS_+0x2c>
+ 1abe: 81 e0 ldi r24, 0x01 ; 1
+ 1ac0: 90 e0 ldi r25, 0x00 ; 0
+ 1ac2: 08 95 ret
+
+00001ac4 <_ZNK6StringeqERKS_>:
+ 1ac4: dc 01 movw r26, r24
+ 1ac6: fb 01 movw r30, r22
+ 1ac8: 14 96 adiw r26, 0x04 ; 4
+ 1aca: 2d 91 ld r18, X+
+ 1acc: 3c 91 ld r19, X
+ 1ace: 15 97 sbiw r26, 0x05 ; 5
+ 1ad0: 84 81 ldd r24, Z+4 ; 0x04
+ 1ad2: 95 81 ldd r25, Z+5 ; 0x05
+ 1ad4: 28 17 cp r18, r24
+ 1ad6: 39 07 cpc r19, r25
+ 1ad8: 11 f0 breq .+4 ; 0x1ade <_ZNK6StringeqERKS_+0x1a>
+ 1ada: 80 e0 ldi r24, 0x00 ; 0
+ 1adc: 0b c0 rjmp .+22 ; 0x1af4 <_ZNK6StringeqERKS_+0x30>
+ 1ade: 60 81 ld r22, Z
+ 1ae0: 71 81 ldd r23, Z+1 ; 0x01
+ 1ae2: 8d 91 ld r24, X+
+ 1ae4: 9c 91 ld r25, X
+ 1ae6: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1aea: 9c 01 movw r18, r24
+ 1aec: 80 e0 ldi r24, 0x00 ; 0
+ 1aee: 23 2b or r18, r19
+ 1af0: 09 f4 brne .+2 ; 0x1af4 <_ZNK6StringeqERKS_+0x30>
+ 1af2: 81 e0 ldi r24, 0x01 ; 1
+ 1af4: 90 e0 ldi r25, 0x00 ; 0
+ 1af6: 08 95 ret
+
+00001af8 <_ZNK6String9compareToERKS_>:
+ 1af8: fc 01 movw r30, r24
+ 1afa: db 01 movw r26, r22
+ 1afc: 6d 91 ld r22, X+
+ 1afe: 7c 91 ld r23, X
+ 1b00: 80 81 ld r24, Z
+ 1b02: 91 81 ldd r25, Z+1 ; 0x01
+ 1b04: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 1b08: 08 95 ret
+
+00001b0a <_ZN6StringpLERKS_>:
+ 1b0a: 0f 93 push r16
+ 1b0c: 1f 93 push r17
+ 1b0e: cf 93 push r28
+ 1b10: df 93 push r29
+ 1b12: ec 01 movw r28, r24
+ 1b14: 8b 01 movw r16, r22
+ 1b16: fb 01 movw r30, r22
+ 1b18: 64 81 ldd r22, Z+4 ; 0x04
+ 1b1a: 75 81 ldd r23, Z+5 ; 0x05
+ 1b1c: 8c 81 ldd r24, Y+4 ; 0x04
+ 1b1e: 9d 81 ldd r25, Y+5 ; 0x05
+ 1b20: 68 0f add r22, r24
+ 1b22: 79 1f adc r23, r25
+ 1b24: 7d 83 std Y+5, r23 ; 0x05
+ 1b26: 6c 83 std Y+4, r22 ; 0x04
+ 1b28: 8a 81 ldd r24, Y+2 ; 0x02
+ 1b2a: 9b 81 ldd r25, Y+3 ; 0x03
+ 1b2c: 86 17 cp r24, r22
+ 1b2e: 97 07 cpc r25, r23
+ 1b30: b8 f4 brcc .+46 ; 0x1b60 <_ZN6StringpLERKS_+0x56>
+ 1b32: 6f 5f subi r22, 0xFF ; 255
+ 1b34: 7f 4f sbci r23, 0xFF ; 255
+ 1b36: 88 81 ld r24, Y
+ 1b38: 99 81 ldd r25, Y+1 ; 0x01
+ 1b3a: 0e 94 f2 1f call 0x3fe4 ; 0x3fe4 <realloc>
+ 1b3e: 4c 81 ldd r20, Y+4 ; 0x04
+ 1b40: 5d 81 ldd r21, Y+5 ; 0x05
+ 1b42: 00 97 sbiw r24, 0x00 ; 0
+ 1b44: 29 f0 breq .+10 ; 0x1b50 <_ZN6StringpLERKS_+0x46>
+ 1b46: 99 83 std Y+1, r25 ; 0x01
+ 1b48: 88 83 st Y, r24
+ 1b4a: 5b 83 std Y+3, r21 ; 0x03
+ 1b4c: 4a 83 std Y+2, r20 ; 0x02
+ 1b4e: 08 c0 rjmp .+16 ; 0x1b60 <_ZN6StringpLERKS_+0x56>
+ 1b50: f8 01 movw r30, r16
+ 1b52: 84 81 ldd r24, Z+4 ; 0x04
+ 1b54: 95 81 ldd r25, Z+5 ; 0x05
+ 1b56: 48 1b sub r20, r24
+ 1b58: 59 0b sbc r21, r25
+ 1b5a: 5d 83 std Y+5, r21 ; 0x05
+ 1b5c: 4c 83 std Y+4, r20 ; 0x04
+ 1b5e: 07 c0 rjmp .+14 ; 0x1b6e <_ZN6StringpLERKS_+0x64>
+ 1b60: f8 01 movw r30, r16
+ 1b62: 60 81 ld r22, Z
+ 1b64: 71 81 ldd r23, Z+1 ; 0x01
+ 1b66: 88 81 ld r24, Y
+ 1b68: 99 81 ldd r25, Y+1 ; 0x01
+ 1b6a: 0e 94 08 21 call 0x4210 ; 0x4210 <strcat>
+ 1b6e: ce 01 movw r24, r28
+ 1b70: df 91 pop r29
+ 1b72: cf 91 pop r28
+ 1b74: 1f 91 pop r17
+ 1b76: 0f 91 pop r16
+ 1b78: 08 95 ret
+
+00001b7a <_ZN6String6concatERKS_>:
+ 1b7a: 0e 94 85 0d call 0x1b0a ; 0x1b0a <_ZN6StringpLERKS_>
+ 1b7e: 08 95 ret
+
+00001b80 <_ZN6String9getBufferEj>:
+ 1b80: cf 93 push r28
+ 1b82: df 93 push r29
+ 1b84: ec 01 movw r28, r24
+ 1b86: cb 01 movw r24, r22
+ 1b88: 7b 83 std Y+3, r23 ; 0x03
+ 1b8a: 6a 83 std Y+2, r22 ; 0x02
+ 1b8c: 01 96 adiw r24, 0x01 ; 1
+ 1b8e: 0e 94 8c 1e call 0x3d18 ; 0x3d18 <malloc>
+ 1b92: 99 83 std Y+1, r25 ; 0x01
+ 1b94: 88 83 st Y, r24
+ 1b96: 00 97 sbiw r24, 0x00 ; 0
+ 1b98: 21 f4 brne .+8 ; 0x1ba2 <_ZN6String9getBufferEj+0x22>
+ 1b9a: 1b 82 std Y+3, r1 ; 0x03
+ 1b9c: 1a 82 std Y+2, r1 ; 0x02
+ 1b9e: 1d 82 std Y+5, r1 ; 0x05
+ 1ba0: 1c 82 std Y+4, r1 ; 0x04
+ 1ba2: df 91 pop r29
+ 1ba4: cf 91 pop r28
+ 1ba6: 08 95 ret
+
+00001ba8 <_ZN6StringaSERKS_>:
+ 1ba8: 0f 93 push r16
+ 1baa: 1f 93 push r17
+ 1bac: cf 93 push r28
+ 1bae: df 93 push r29
+ 1bb0: ec 01 movw r28, r24
+ 1bb2: 8b 01 movw r16, r22
+ 1bb4: 86 17 cp r24, r22
+ 1bb6: 97 07 cpc r25, r23
+ 1bb8: 09 f1 breq .+66 ; 0x1bfc <_ZN6StringaSERKS_+0x54>
+ 1bba: fb 01 movw r30, r22
+ 1bbc: 24 81 ldd r18, Z+4 ; 0x04
+ 1bbe: 35 81 ldd r19, Z+5 ; 0x05
+ 1bc0: 8c 81 ldd r24, Y+4 ; 0x04
+ 1bc2: 9d 81 ldd r25, Y+5 ; 0x05
+ 1bc4: 82 17 cp r24, r18
+ 1bc6: 93 07 cpc r25, r19
+ 1bc8: 50 f4 brcc .+20 ; 0x1bde <_ZN6StringaSERKS_+0x36>
+ 1bca: 88 81 ld r24, Y
+ 1bcc: 99 81 ldd r25, Y+1 ; 0x01
+ 1bce: 0e 94 39 1f call 0x3e72 ; 0x3e72 <free>
+ 1bd2: f8 01 movw r30, r16
+ 1bd4: 64 81 ldd r22, Z+4 ; 0x04
+ 1bd6: 75 81 ldd r23, Z+5 ; 0x05
+ 1bd8: ce 01 movw r24, r28
+ 1bda: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1bde: 28 81 ld r18, Y
+ 1be0: 39 81 ldd r19, Y+1 ; 0x01
+ 1be2: 21 15 cp r18, r1
+ 1be4: 31 05 cpc r19, r1
+ 1be6: 51 f0 breq .+20 ; 0x1bfc <_ZN6StringaSERKS_+0x54>
+ 1be8: f8 01 movw r30, r16
+ 1bea: 84 81 ldd r24, Z+4 ; 0x04
+ 1bec: 95 81 ldd r25, Z+5 ; 0x05
+ 1bee: 9d 83 std Y+5, r25 ; 0x05
+ 1bf0: 8c 83 std Y+4, r24 ; 0x04
+ 1bf2: 60 81 ld r22, Z
+ 1bf4: 71 81 ldd r23, Z+1 ; 0x01
+ 1bf6: c9 01 movw r24, r18
+ 1bf8: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1bfc: ce 01 movw r24, r28
+ 1bfe: df 91 pop r29
+ 1c00: cf 91 pop r28
+ 1c02: 1f 91 pop r17
+ 1c04: 0f 91 pop r16
+ 1c06: 08 95 ret
+
+00001c08 <_ZN6StringC1Eh>:
+ 1c08: 1f 93 push r17
+ 1c0a: cf 93 push r28
+ 1c0c: df 93 push r29
+ 1c0e: ec 01 movw r28, r24
+ 1c10: 16 2f mov r17, r22
+ 1c12: 81 e0 ldi r24, 0x01 ; 1
+ 1c14: 90 e0 ldi r25, 0x00 ; 0
+ 1c16: 9d 83 std Y+5, r25 ; 0x05
+ 1c18: 8c 83 std Y+4, r24 ; 0x04
+ 1c1a: ce 01 movw r24, r28
+ 1c1c: 61 e0 ldi r22, 0x01 ; 1
+ 1c1e: 70 e0 ldi r23, 0x00 ; 0
+ 1c20: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1c24: e8 81 ld r30, Y
+ 1c26: f9 81 ldd r31, Y+1 ; 0x01
+ 1c28: 30 97 sbiw r30, 0x00 ; 0
+ 1c2a: 21 f0 breq .+8 ; 0x1c34 <_ZN6StringC1Eh+0x2c>
+ 1c2c: 10 83 st Z, r17
+ 1c2e: e8 81 ld r30, Y
+ 1c30: f9 81 ldd r31, Y+1 ; 0x01
+ 1c32: 11 82 std Z+1, r1 ; 0x01
+ 1c34: df 91 pop r29
+ 1c36: cf 91 pop r28
+ 1c38: 1f 91 pop r17
+ 1c3a: 08 95 ret
+
+00001c3c <_ZN6StringC2Eh>:
+ 1c3c: 1f 93 push r17
+ 1c3e: cf 93 push r28
+ 1c40: df 93 push r29
+ 1c42: ec 01 movw r28, r24
+ 1c44: 16 2f mov r17, r22
+ 1c46: 81 e0 ldi r24, 0x01 ; 1
+ 1c48: 90 e0 ldi r25, 0x00 ; 0
+ 1c4a: 9d 83 std Y+5, r25 ; 0x05
+ 1c4c: 8c 83 std Y+4, r24 ; 0x04
+ 1c4e: ce 01 movw r24, r28
+ 1c50: 61 e0 ldi r22, 0x01 ; 1
+ 1c52: 70 e0 ldi r23, 0x00 ; 0
+ 1c54: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1c58: e8 81 ld r30, Y
+ 1c5a: f9 81 ldd r31, Y+1 ; 0x01
+ 1c5c: 30 97 sbiw r30, 0x00 ; 0
+ 1c5e: 21 f0 breq .+8 ; 0x1c68 <_ZN6StringC2Eh+0x2c>
+ 1c60: 10 83 st Z, r17
+ 1c62: e8 81 ld r30, Y
+ 1c64: f9 81 ldd r31, Y+1 ; 0x01
+ 1c66: 11 82 std Z+1, r1 ; 0x01
+ 1c68: df 91 pop r29
+ 1c6a: cf 91 pop r28
+ 1c6c: 1f 91 pop r17
+ 1c6e: 08 95 ret
+
+00001c70 <_ZN6StringC1Ec>:
+ 1c70: 1f 93 push r17
+ 1c72: cf 93 push r28
+ 1c74: df 93 push r29
+ 1c76: ec 01 movw r28, r24
+ 1c78: 16 2f mov r17, r22
+ 1c7a: 81 e0 ldi r24, 0x01 ; 1
+ 1c7c: 90 e0 ldi r25, 0x00 ; 0
+ 1c7e: 9d 83 std Y+5, r25 ; 0x05
+ 1c80: 8c 83 std Y+4, r24 ; 0x04
+ 1c82: ce 01 movw r24, r28
+ 1c84: 61 e0 ldi r22, 0x01 ; 1
+ 1c86: 70 e0 ldi r23, 0x00 ; 0
+ 1c88: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1c8c: e8 81 ld r30, Y
+ 1c8e: f9 81 ldd r31, Y+1 ; 0x01
+ 1c90: 30 97 sbiw r30, 0x00 ; 0
+ 1c92: 21 f0 breq .+8 ; 0x1c9c <_ZN6StringC1Ec+0x2c>
+ 1c94: 10 83 st Z, r17
+ 1c96: e8 81 ld r30, Y
+ 1c98: f9 81 ldd r31, Y+1 ; 0x01
+ 1c9a: 11 82 std Z+1, r1 ; 0x01
+ 1c9c: df 91 pop r29
+ 1c9e: cf 91 pop r28
+ 1ca0: 1f 91 pop r17
+ 1ca2: 08 95 ret
+
+00001ca4 <_ZN6StringC2Ec>:
+ 1ca4: 1f 93 push r17
+ 1ca6: cf 93 push r28
+ 1ca8: df 93 push r29
+ 1caa: ec 01 movw r28, r24
+ 1cac: 16 2f mov r17, r22
+ 1cae: 81 e0 ldi r24, 0x01 ; 1
+ 1cb0: 90 e0 ldi r25, 0x00 ; 0
+ 1cb2: 9d 83 std Y+5, r25 ; 0x05
+ 1cb4: 8c 83 std Y+4, r24 ; 0x04
+ 1cb6: ce 01 movw r24, r28
+ 1cb8: 61 e0 ldi r22, 0x01 ; 1
+ 1cba: 70 e0 ldi r23, 0x00 ; 0
+ 1cbc: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1cc0: e8 81 ld r30, Y
+ 1cc2: f9 81 ldd r31, Y+1 ; 0x01
+ 1cc4: 30 97 sbiw r30, 0x00 ; 0
+ 1cc6: 21 f0 breq .+8 ; 0x1cd0 <_ZN6StringC2Ec+0x2c>
+ 1cc8: 10 83 st Z, r17
+ 1cca: e8 81 ld r30, Y
+ 1ccc: f9 81 ldd r31, Y+1 ; 0x01
+ 1cce: 11 82 std Z+1, r1 ; 0x01
+ 1cd0: df 91 pop r29
+ 1cd2: cf 91 pop r28
+ 1cd4: 1f 91 pop r17
+ 1cd6: 08 95 ret
+
+00001cd8 <_ZN6StringC1ERKS_>:
+ 1cd8: 0f 93 push r16
+ 1cda: 1f 93 push r17
+ 1cdc: cf 93 push r28
+ 1cde: df 93 push r29
+ 1ce0: 8c 01 movw r16, r24
+ 1ce2: eb 01 movw r28, r22
+ 1ce4: 6c 81 ldd r22, Y+4 ; 0x04
+ 1ce6: 7d 81 ldd r23, Y+5 ; 0x05
+ 1ce8: fc 01 movw r30, r24
+ 1cea: 75 83 std Z+5, r23 ; 0x05
+ 1cec: 64 83 std Z+4, r22 ; 0x04
+ 1cee: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1cf2: f8 01 movw r30, r16
+ 1cf4: 80 81 ld r24, Z
+ 1cf6: 91 81 ldd r25, Z+1 ; 0x01
+ 1cf8: 00 97 sbiw r24, 0x00 ; 0
+ 1cfa: 21 f0 breq .+8 ; 0x1d04 <_ZN6StringC1ERKS_+0x2c>
+ 1cfc: 68 81 ld r22, Y
+ 1cfe: 79 81 ldd r23, Y+1 ; 0x01
+ 1d00: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1d04: df 91 pop r29
+ 1d06: cf 91 pop r28
+ 1d08: 1f 91 pop r17
+ 1d0a: 0f 91 pop r16
+ 1d0c: 08 95 ret
+
+00001d0e <_ZN6StringC2ERKS_>:
+ 1d0e: 0f 93 push r16
+ 1d10: 1f 93 push r17
+ 1d12: cf 93 push r28
+ 1d14: df 93 push r29
+ 1d16: 8c 01 movw r16, r24
+ 1d18: eb 01 movw r28, r22
+ 1d1a: 6c 81 ldd r22, Y+4 ; 0x04
+ 1d1c: 7d 81 ldd r23, Y+5 ; 0x05
+ 1d1e: fc 01 movw r30, r24
+ 1d20: 75 83 std Z+5, r23 ; 0x05
+ 1d22: 64 83 std Z+4, r22 ; 0x04
+ 1d24: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1d28: f8 01 movw r30, r16
+ 1d2a: 80 81 ld r24, Z
+ 1d2c: 91 81 ldd r25, Z+1 ; 0x01
+ 1d2e: 00 97 sbiw r24, 0x00 ; 0
+ 1d30: 21 f0 breq .+8 ; 0x1d3a <_ZN6StringC2ERKS_+0x2c>
+ 1d32: 68 81 ld r22, Y
+ 1d34: 79 81 ldd r23, Y+1 ; 0x01
+ 1d36: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1d3a: df 91 pop r29
+ 1d3c: cf 91 pop r28
+ 1d3e: 1f 91 pop r17
+ 1d40: 0f 91 pop r16
+ 1d42: 08 95 ret
+
+00001d44 <_ZN6StringC1Emi>:
+ 1d44: ef 92 push r14
+ 1d46: ff 92 push r15
+ 1d48: 0f 93 push r16
+ 1d4a: 1f 93 push r17
+ 1d4c: df 93 push r29
+ 1d4e: cf 93 push r28
+ 1d50: cd b7 in r28, 0x3d ; 61
+ 1d52: de b7 in r29, 0x3e ; 62
+ 1d54: a1 97 sbiw r28, 0x21 ; 33
+ 1d56: 0f b6 in r0, 0x3f ; 63
+ 1d58: f8 94 cli
+ 1d5a: de bf out 0x3e, r29 ; 62
+ 1d5c: 0f be out 0x3f, r0 ; 63
+ 1d5e: cd bf out 0x3d, r28 ; 61
+ 1d60: 8c 01 movw r16, r24
+ 1d62: cb 01 movw r24, r22
+ 1d64: ba 01 movw r22, r20
+ 1d66: 7e 01 movw r14, r28
+ 1d68: 08 94 sec
+ 1d6a: e1 1c adc r14, r1
+ 1d6c: f1 1c adc r15, r1
+ 1d6e: a7 01 movw r20, r14
+ 1d70: 2a e0 ldi r18, 0x0A ; 10
+ 1d72: 30 e0 ldi r19, 0x00 ; 0
+ 1d74: 0e 94 da 21 call 0x43b4 ; 0x43b4 <ultoa>
+ 1d78: f7 01 movw r30, r14
+ 1d7a: 01 90 ld r0, Z+
+ 1d7c: 00 20 and r0, r0
+ 1d7e: e9 f7 brne .-6 ; 0x1d7a <_ZN6StringC1Emi+0x36>
+ 1d80: 31 97 sbiw r30, 0x01 ; 1
+ 1d82: ee 19 sub r30, r14
+ 1d84: ff 09 sbc r31, r15
+ 1d86: d8 01 movw r26, r16
+ 1d88: 15 96 adiw r26, 0x05 ; 5
+ 1d8a: fc 93 st X, r31
+ 1d8c: ee 93 st -X, r30
+ 1d8e: 14 97 sbiw r26, 0x04 ; 4
+ 1d90: c8 01 movw r24, r16
+ 1d92: bf 01 movw r22, r30
+ 1d94: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1d98: f8 01 movw r30, r16
+ 1d9a: 80 81 ld r24, Z
+ 1d9c: 91 81 ldd r25, Z+1 ; 0x01
+ 1d9e: 00 97 sbiw r24, 0x00 ; 0
+ 1da0: 19 f0 breq .+6 ; 0x1da8 <_ZN6StringC1Emi+0x64>
+ 1da2: b7 01 movw r22, r14
+ 1da4: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1da8: a1 96 adiw r28, 0x21 ; 33
+ 1daa: 0f b6 in r0, 0x3f ; 63
+ 1dac: f8 94 cli
+ 1dae: de bf out 0x3e, r29 ; 62
+ 1db0: 0f be out 0x3f, r0 ; 63
+ 1db2: cd bf out 0x3d, r28 ; 61
+ 1db4: cf 91 pop r28
+ 1db6: df 91 pop r29
+ 1db8: 1f 91 pop r17
+ 1dba: 0f 91 pop r16
+ 1dbc: ff 90 pop r15
+ 1dbe: ef 90 pop r14
+ 1dc0: 08 95 ret
+
+00001dc2 <_ZN6StringC2Emi>:
+ 1dc2: ef 92 push r14
+ 1dc4: ff 92 push r15
+ 1dc6: 0f 93 push r16
+ 1dc8: 1f 93 push r17
+ 1dca: df 93 push r29
+ 1dcc: cf 93 push r28
+ 1dce: cd b7 in r28, 0x3d ; 61
+ 1dd0: de b7 in r29, 0x3e ; 62
+ 1dd2: a1 97 sbiw r28, 0x21 ; 33
+ 1dd4: 0f b6 in r0, 0x3f ; 63
+ 1dd6: f8 94 cli
+ 1dd8: de bf out 0x3e, r29 ; 62
+ 1dda: 0f be out 0x3f, r0 ; 63
+ 1ddc: cd bf out 0x3d, r28 ; 61
+ 1dde: 8c 01 movw r16, r24
+ 1de0: cb 01 movw r24, r22
+ 1de2: ba 01 movw r22, r20
+ 1de4: 7e 01 movw r14, r28
+ 1de6: 08 94 sec
+ 1de8: e1 1c adc r14, r1
+ 1dea: f1 1c adc r15, r1
+ 1dec: a7 01 movw r20, r14
+ 1dee: 2a e0 ldi r18, 0x0A ; 10
+ 1df0: 30 e0 ldi r19, 0x00 ; 0
+ 1df2: 0e 94 da 21 call 0x43b4 ; 0x43b4 <ultoa>
+ 1df6: f7 01 movw r30, r14
+ 1df8: 01 90 ld r0, Z+
+ 1dfa: 00 20 and r0, r0
+ 1dfc: e9 f7 brne .-6 ; 0x1df8 <_ZN6StringC2Emi+0x36>
+ 1dfe: 31 97 sbiw r30, 0x01 ; 1
+ 1e00: ee 19 sub r30, r14
+ 1e02: ff 09 sbc r31, r15
+ 1e04: d8 01 movw r26, r16
+ 1e06: 15 96 adiw r26, 0x05 ; 5
+ 1e08: fc 93 st X, r31
+ 1e0a: ee 93 st -X, r30
+ 1e0c: 14 97 sbiw r26, 0x04 ; 4
+ 1e0e: c8 01 movw r24, r16
+ 1e10: bf 01 movw r22, r30
+ 1e12: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1e16: f8 01 movw r30, r16
+ 1e18: 80 81 ld r24, Z
+ 1e1a: 91 81 ldd r25, Z+1 ; 0x01
+ 1e1c: 00 97 sbiw r24, 0x00 ; 0
+ 1e1e: 19 f0 breq .+6 ; 0x1e26 <_ZN6StringC2Emi+0x64>
+ 1e20: b7 01 movw r22, r14
+ 1e22: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1e26: a1 96 adiw r28, 0x21 ; 33
+ 1e28: 0f b6 in r0, 0x3f ; 63
+ 1e2a: f8 94 cli
+ 1e2c: de bf out 0x3e, r29 ; 62
+ 1e2e: 0f be out 0x3f, r0 ; 63
+ 1e30: cd bf out 0x3d, r28 ; 61
+ 1e32: cf 91 pop r28
+ 1e34: df 91 pop r29
+ 1e36: 1f 91 pop r17
+ 1e38: 0f 91 pop r16
+ 1e3a: ff 90 pop r15
+ 1e3c: ef 90 pop r14
+ 1e3e: 08 95 ret
+
+00001e40 <_ZN6StringC1Eji>:
+ 1e40: ef 92 push r14
+ 1e42: ff 92 push r15
+ 1e44: 0f 93 push r16
+ 1e46: 1f 93 push r17
+ 1e48: df 93 push r29
+ 1e4a: cf 93 push r28
+ 1e4c: cd b7 in r28, 0x3d ; 61
+ 1e4e: de b7 in r29, 0x3e ; 62
+ 1e50: a1 97 sbiw r28, 0x21 ; 33
+ 1e52: 0f b6 in r0, 0x3f ; 63
+ 1e54: f8 94 cli
+ 1e56: de bf out 0x3e, r29 ; 62
+ 1e58: 0f be out 0x3f, r0 ; 63
+ 1e5a: cd bf out 0x3d, r28 ; 61
+ 1e5c: 8c 01 movw r16, r24
+ 1e5e: 9a 01 movw r18, r20
+ 1e60: 80 e0 ldi r24, 0x00 ; 0
+ 1e62: 90 e0 ldi r25, 0x00 ; 0
+ 1e64: 7e 01 movw r14, r28
+ 1e66: 08 94 sec
+ 1e68: e1 1c adc r14, r1
+ 1e6a: f1 1c adc r15, r1
+ 1e6c: a7 01 movw r20, r14
+ 1e6e: 0e 94 da 21 call 0x43b4 ; 0x43b4 <ultoa>
+ 1e72: f7 01 movw r30, r14
+ 1e74: 01 90 ld r0, Z+
+ 1e76: 00 20 and r0, r0
+ 1e78: e9 f7 brne .-6 ; 0x1e74 <_ZN6StringC1Eji+0x34>
+ 1e7a: 31 97 sbiw r30, 0x01 ; 1
+ 1e7c: ee 19 sub r30, r14
+ 1e7e: ff 09 sbc r31, r15
+ 1e80: d8 01 movw r26, r16
+ 1e82: 15 96 adiw r26, 0x05 ; 5
+ 1e84: fc 93 st X, r31
+ 1e86: ee 93 st -X, r30
+ 1e88: 14 97 sbiw r26, 0x04 ; 4
+ 1e8a: c8 01 movw r24, r16
+ 1e8c: bf 01 movw r22, r30
+ 1e8e: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1e92: f8 01 movw r30, r16
+ 1e94: 80 81 ld r24, Z
+ 1e96: 91 81 ldd r25, Z+1 ; 0x01
+ 1e98: 00 97 sbiw r24, 0x00 ; 0
+ 1e9a: 19 f0 breq .+6 ; 0x1ea2 <_ZN6StringC1Eji+0x62>
+ 1e9c: b7 01 movw r22, r14
+ 1e9e: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1ea2: a1 96 adiw r28, 0x21 ; 33
+ 1ea4: 0f b6 in r0, 0x3f ; 63
+ 1ea6: f8 94 cli
+ 1ea8: de bf out 0x3e, r29 ; 62
+ 1eaa: 0f be out 0x3f, r0 ; 63
+ 1eac: cd bf out 0x3d, r28 ; 61
+ 1eae: cf 91 pop r28
+ 1eb0: df 91 pop r29
+ 1eb2: 1f 91 pop r17
+ 1eb4: 0f 91 pop r16
+ 1eb6: ff 90 pop r15
+ 1eb8: ef 90 pop r14
+ 1eba: 08 95 ret
+
+00001ebc <_ZN6StringC2Eji>:
+ 1ebc: ef 92 push r14
+ 1ebe: ff 92 push r15
+ 1ec0: 0f 93 push r16
+ 1ec2: 1f 93 push r17
+ 1ec4: df 93 push r29
+ 1ec6: cf 93 push r28
+ 1ec8: cd b7 in r28, 0x3d ; 61
+ 1eca: de b7 in r29, 0x3e ; 62
+ 1ecc: a1 97 sbiw r28, 0x21 ; 33
+ 1ece: 0f b6 in r0, 0x3f ; 63
+ 1ed0: f8 94 cli
+ 1ed2: de bf out 0x3e, r29 ; 62
+ 1ed4: 0f be out 0x3f, r0 ; 63
+ 1ed6: cd bf out 0x3d, r28 ; 61
+ 1ed8: 8c 01 movw r16, r24
+ 1eda: 9a 01 movw r18, r20
+ 1edc: 80 e0 ldi r24, 0x00 ; 0
+ 1ede: 90 e0 ldi r25, 0x00 ; 0
+ 1ee0: 7e 01 movw r14, r28
+ 1ee2: 08 94 sec
+ 1ee4: e1 1c adc r14, r1
+ 1ee6: f1 1c adc r15, r1
+ 1ee8: a7 01 movw r20, r14
+ 1eea: 0e 94 da 21 call 0x43b4 ; 0x43b4 <ultoa>
+ 1eee: f7 01 movw r30, r14
+ 1ef0: 01 90 ld r0, Z+
+ 1ef2: 00 20 and r0, r0
+ 1ef4: e9 f7 brne .-6 ; 0x1ef0 <_ZN6StringC2Eji+0x34>
+ 1ef6: 31 97 sbiw r30, 0x01 ; 1
+ 1ef8: ee 19 sub r30, r14
+ 1efa: ff 09 sbc r31, r15
+ 1efc: d8 01 movw r26, r16
+ 1efe: 15 96 adiw r26, 0x05 ; 5
+ 1f00: fc 93 st X, r31
+ 1f02: ee 93 st -X, r30
+ 1f04: 14 97 sbiw r26, 0x04 ; 4
+ 1f06: c8 01 movw r24, r16
+ 1f08: bf 01 movw r22, r30
+ 1f0a: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1f0e: f8 01 movw r30, r16
+ 1f10: 80 81 ld r24, Z
+ 1f12: 91 81 ldd r25, Z+1 ; 0x01
+ 1f14: 00 97 sbiw r24, 0x00 ; 0
+ 1f16: 19 f0 breq .+6 ; 0x1f1e <_ZN6StringC2Eji+0x62>
+ 1f18: b7 01 movw r22, r14
+ 1f1a: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1f1e: a1 96 adiw r28, 0x21 ; 33
+ 1f20: 0f b6 in r0, 0x3f ; 63
+ 1f22: f8 94 cli
+ 1f24: de bf out 0x3e, r29 ; 62
+ 1f26: 0f be out 0x3f, r0 ; 63
+ 1f28: cd bf out 0x3d, r28 ; 61
+ 1f2a: cf 91 pop r28
+ 1f2c: df 91 pop r29
+ 1f2e: 1f 91 pop r17
+ 1f30: 0f 91 pop r16
+ 1f32: ff 90 pop r15
+ 1f34: ef 90 pop r14
+ 1f36: 08 95 ret
+
+00001f38 <_ZN6StringC1EPKc>:
+ 1f38: 0f 93 push r16
+ 1f3a: 1f 93 push r17
+ 1f3c: cf 93 push r28
+ 1f3e: df 93 push r29
+ 1f40: 8c 01 movw r16, r24
+ 1f42: eb 01 movw r28, r22
+ 1f44: 61 15 cp r22, r1
+ 1f46: 71 05 cpc r23, r1
+ 1f48: 11 f4 brne .+4 ; 0x1f4e <_ZN6StringC1EPKc+0x16>
+ 1f4a: c6 ea ldi r28, 0xA6 ; 166
+ 1f4c: d1 e0 ldi r29, 0x01 ; 1
+ 1f4e: fe 01 movw r30, r28
+ 1f50: 01 90 ld r0, Z+
+ 1f52: 00 20 and r0, r0
+ 1f54: e9 f7 brne .-6 ; 0x1f50 <_ZN6StringC1EPKc+0x18>
+ 1f56: 31 97 sbiw r30, 0x01 ; 1
+ 1f58: ec 1b sub r30, r28
+ 1f5a: fd 0b sbc r31, r29
+ 1f5c: d8 01 movw r26, r16
+ 1f5e: 15 96 adiw r26, 0x05 ; 5
+ 1f60: fc 93 st X, r31
+ 1f62: ee 93 st -X, r30
+ 1f64: 14 97 sbiw r26, 0x04 ; 4
+ 1f66: c8 01 movw r24, r16
+ 1f68: bf 01 movw r22, r30
+ 1f6a: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 1f6e: f8 01 movw r30, r16
+ 1f70: 80 81 ld r24, Z
+ 1f72: 91 81 ldd r25, Z+1 ; 0x01
+ 1f74: 00 97 sbiw r24, 0x00 ; 0
+ 1f76: 19 f0 breq .+6 ; 0x1f7e <_ZN6StringC1EPKc+0x46>
+ 1f78: be 01 movw r22, r28
+ 1f7a: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 1f7e: df 91 pop r29
+ 1f80: cf 91 pop r28
+ 1f82: 1f 91 pop r17
+ 1f84: 0f 91 pop r16
+ 1f86: 08 95 ret
+
+00001f88 <_ZNK6String11toUpperCaseEv>:
+ 1f88: af 92 push r10
+ 1f8a: bf 92 push r11
+ 1f8c: cf 92 push r12
+ 1f8e: df 92 push r13
+ 1f90: ef 92 push r14
+ 1f92: ff 92 push r15
+ 1f94: 0f 93 push r16
+ 1f96: 1f 93 push r17
+ 1f98: cf 93 push r28
+ 1f9a: df 93 push r29
+ 1f9c: b8 2e mov r11, r24
+ 1f9e: a9 2e mov r10, r25
+ 1fa0: 6b 01 movw r12, r22
+ 1fa2: c8 2f mov r28, r24
+ 1fa4: d9 2f mov r29, r25
+ 1fa6: fb 01 movw r30, r22
+ 1fa8: 60 81 ld r22, Z
+ 1faa: 71 81 ldd r23, Z+1 ; 0x01
+ 1fac: ce 01 movw r24, r28
+ 1fae: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 1fb2: ee 24 eor r14, r14
+ 1fb4: ff 24 eor r15, r15
+ 1fb6: 10 c0 rjmp .+32 ; 0x1fd8 <_ZNK6String11toUpperCaseEv+0x50>
+ 1fb8: 08 81 ld r16, Y
+ 1fba: 19 81 ldd r17, Y+1 ; 0x01
+ 1fbc: 0e 0d add r16, r14
+ 1fbe: 1f 1d adc r17, r15
+ 1fc0: f8 01 movw r30, r16
+ 1fc2: 80 81 ld r24, Z
+ 1fc4: 99 27 eor r25, r25
+ 1fc6: 87 fd sbrc r24, 7
+ 1fc8: 90 95 com r25
+ 1fca: 0e 94 f7 20 call 0x41ee ; 0x41ee <toupper>
+ 1fce: f8 01 movw r30, r16
+ 1fd0: 80 83 st Z, r24
+ 1fd2: 08 94 sec
+ 1fd4: e1 1c adc r14, r1
+ 1fd6: f1 1c adc r15, r1
+ 1fd8: f6 01 movw r30, r12
+ 1fda: 84 81 ldd r24, Z+4 ; 0x04
+ 1fdc: 95 81 ldd r25, Z+5 ; 0x05
+ 1fde: e8 16 cp r14, r24
+ 1fe0: f9 06 cpc r15, r25
+ 1fe2: 50 f3 brcs .-44 ; 0x1fb8 <_ZNK6String11toUpperCaseEv+0x30>
+ 1fe4: 8b 2d mov r24, r11
+ 1fe6: 9a 2d mov r25, r10
+ 1fe8: df 91 pop r29
+ 1fea: cf 91 pop r28
+ 1fec: 1f 91 pop r17
+ 1fee: 0f 91 pop r16
+ 1ff0: ff 90 pop r15
+ 1ff2: ef 90 pop r14
+ 1ff4: df 90 pop r13
+ 1ff6: cf 90 pop r12
+ 1ff8: bf 90 pop r11
+ 1ffa: af 90 pop r10
+ 1ffc: 08 95 ret
+
+00001ffe <_ZNK6String11toLowerCaseEv>:
+ 1ffe: af 92 push r10
+ 2000: bf 92 push r11
+ 2002: cf 92 push r12
+ 2004: df 92 push r13
+ 2006: ef 92 push r14
+ 2008: ff 92 push r15
+ 200a: 0f 93 push r16
+ 200c: 1f 93 push r17
+ 200e: cf 93 push r28
+ 2010: df 93 push r29
+ 2012: b8 2e mov r11, r24
+ 2014: a9 2e mov r10, r25
+ 2016: 6b 01 movw r12, r22
+ 2018: c8 2f mov r28, r24
+ 201a: d9 2f mov r29, r25
+ 201c: fb 01 movw r30, r22
+ 201e: 60 81 ld r22, Z
+ 2020: 71 81 ldd r23, Z+1 ; 0x01
+ 2022: ce 01 movw r24, r28
+ 2024: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 2028: ee 24 eor r14, r14
+ 202a: ff 24 eor r15, r15
+ 202c: 10 c0 rjmp .+32 ; 0x204e <_ZNK6String11toLowerCaseEv+0x50>
+ 202e: 08 81 ld r16, Y
+ 2030: 19 81 ldd r17, Y+1 ; 0x01
+ 2032: 0e 0d add r16, r14
+ 2034: 1f 1d adc r17, r15
+ 2036: f8 01 movw r30, r16
+ 2038: 80 81 ld r24, Z
+ 203a: 99 27 eor r25, r25
+ 203c: 87 fd sbrc r24, 7
+ 203e: 90 95 com r25
+ 2040: 0e 94 ef 20 call 0x41de ; 0x41de <tolower>
+ 2044: f8 01 movw r30, r16
+ 2046: 80 83 st Z, r24
+ 2048: 08 94 sec
+ 204a: e1 1c adc r14, r1
+ 204c: f1 1c adc r15, r1
+ 204e: f6 01 movw r30, r12
+ 2050: 84 81 ldd r24, Z+4 ; 0x04
+ 2052: 95 81 ldd r25, Z+5 ; 0x05
+ 2054: e8 16 cp r14, r24
+ 2056: f9 06 cpc r15, r25
+ 2058: 50 f3 brcs .-44 ; 0x202e <_ZNK6String11toLowerCaseEv+0x30>
+ 205a: 8b 2d mov r24, r11
+ 205c: 9a 2d mov r25, r10
+ 205e: df 91 pop r29
+ 2060: cf 91 pop r28
+ 2062: 1f 91 pop r17
+ 2064: 0f 91 pop r16
+ 2066: ff 90 pop r15
+ 2068: ef 90 pop r14
+ 206a: df 90 pop r13
+ 206c: cf 90 pop r12
+ 206e: bf 90 pop r11
+ 2070: af 90 pop r10
+ 2072: 08 95 ret
+
+00002074 <_ZNK6String16equalsIgnoreCaseERKS_>:
+ 2074: ef 92 push r14
+ 2076: ff 92 push r15
+ 2078: 0f 93 push r16
+ 207a: 1f 93 push r17
+ 207c: df 93 push r29
+ 207e: cf 93 push r28
+ 2080: cd b7 in r28, 0x3d ; 61
+ 2082: de b7 in r29, 0x3e ; 62
+ 2084: 2c 97 sbiw r28, 0x0c ; 12
+ 2086: 0f b6 in r0, 0x3f ; 63
+ 2088: f8 94 cli
+ 208a: de bf out 0x3e, r29 ; 62
+ 208c: 0f be out 0x3f, r0 ; 63
+ 208e: cd bf out 0x3d, r28 ; 61
+ 2090: fc 01 movw r30, r24
+ 2092: 7b 01 movw r14, r22
+ 2094: 86 17 cp r24, r22
+ 2096: 97 07 cpc r25, r23
+ 2098: 11 f4 brne .+4 ; 0x209e <_ZNK6String16equalsIgnoreCaseERKS_+0x2a>
+ 209a: 01 e0 ldi r16, 0x01 ; 1
+ 209c: 29 c0 rjmp .+82 ; 0x20f0 <_ZNK6String16equalsIgnoreCaseERKS_+0x7c>
+ 209e: 24 81 ldd r18, Z+4 ; 0x04
+ 20a0: 35 81 ldd r19, Z+5 ; 0x05
+ 20a2: db 01 movw r26, r22
+ 20a4: 14 96 adiw r26, 0x04 ; 4
+ 20a6: 8d 91 ld r24, X+
+ 20a8: 9c 91 ld r25, X
+ 20aa: 15 97 sbiw r26, 0x05 ; 5
+ 20ac: 28 17 cp r18, r24
+ 20ae: 39 07 cpc r19, r25
+ 20b0: 11 f0 breq .+4 ; 0x20b6 <_ZNK6String16equalsIgnoreCaseERKS_+0x42>
+ 20b2: 00 e0 ldi r16, 0x00 ; 0
+ 20b4: 1d c0 rjmp .+58 ; 0x20f0 <_ZNK6String16equalsIgnoreCaseERKS_+0x7c>
+ 20b6: ce 01 movw r24, r28
+ 20b8: 01 96 adiw r24, 0x01 ; 1
+ 20ba: bf 01 movw r22, r30
+ 20bc: 0e 94 ff 0f call 0x1ffe ; 0x1ffe <_ZNK6String11toLowerCaseEv>
+ 20c0: 09 81 ldd r16, Y+1 ; 0x01
+ 20c2: 1a 81 ldd r17, Y+2 ; 0x02
+ 20c4: ce 01 movw r24, r28
+ 20c6: 07 96 adiw r24, 0x07 ; 7
+ 20c8: b7 01 movw r22, r14
+ 20ca: 0e 94 ff 0f call 0x1ffe ; 0x1ffe <_ZNK6String11toLowerCaseEv>
+ 20ce: 6f 81 ldd r22, Y+7 ; 0x07
+ 20d0: 78 85 ldd r23, Y+8 ; 0x08
+ 20d2: c8 01 movw r24, r16
+ 20d4: 0e 94 1e 21 call 0x423c ; 0x423c <strcmp>
+ 20d8: 00 e0 ldi r16, 0x00 ; 0
+ 20da: 00 97 sbiw r24, 0x00 ; 0
+ 20dc: 09 f4 brne .+2 ; 0x20e0 <_ZNK6String16equalsIgnoreCaseERKS_+0x6c>
+ 20de: 01 e0 ldi r16, 0x01 ; 1
+ 20e0: ce 01 movw r24, r28
+ 20e2: 07 96 adiw r24, 0x07 ; 7
+ 20e4: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 20e8: ce 01 movw r24, r28
+ 20ea: 01 96 adiw r24, 0x01 ; 1
+ 20ec: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 20f0: 80 2f mov r24, r16
+ 20f2: 2c 96 adiw r28, 0x0c ; 12
+ 20f4: 0f b6 in r0, 0x3f ; 63
+ 20f6: f8 94 cli
+ 20f8: de bf out 0x3e, r29 ; 62
+ 20fa: 0f be out 0x3f, r0 ; 63
+ 20fc: cd bf out 0x3d, r28 ; 61
+ 20fe: cf 91 pop r28
+ 2100: df 91 pop r29
+ 2102: 1f 91 pop r17
+ 2104: 0f 91 pop r16
+ 2106: ff 90 pop r15
+ 2108: ef 90 pop r14
+ 210a: 08 95 ret
+
+0000210c <_ZNK6String9substringEjj>:
+ 210c: cf 92 push r12
+ 210e: df 92 push r13
+ 2110: ef 92 push r14
+ 2112: ff 92 push r15
+ 2114: 1f 93 push r17
+ 2116: cf 93 push r28
+ 2118: df 93 push r29
+ 211a: 6c 01 movw r12, r24
+ 211c: 7b 01 movw r14, r22
+ 211e: b9 01 movw r22, r18
+ 2120: 24 17 cp r18, r20
+ 2122: 35 07 cpc r19, r21
+ 2124: 10 f4 brcc .+4 ; 0x212a <_ZNK6String9substringEjj+0x1e>
+ 2126: ba 01 movw r22, r20
+ 2128: a9 01 movw r20, r18
+ 212a: d7 01 movw r26, r14
+ 212c: 14 96 adiw r26, 0x04 ; 4
+ 212e: 8d 91 ld r24, X+
+ 2130: 9c 91 ld r25, X
+ 2132: 15 97 sbiw r26, 0x05 ; 5
+ 2134: eb 01 movw r28, r22
+ 2136: 86 17 cp r24, r22
+ 2138: 97 07 cpc r25, r23
+ 213a: 08 f4 brcc .+2 ; 0x213e <_ZNK6String9substringEjj+0x32>
+ 213c: ec 01 movw r28, r24
+ 213e: d7 01 movw r26, r14
+ 2140: ed 91 ld r30, X+
+ 2142: fc 91 ld r31, X
+ 2144: 11 97 sbiw r26, 0x01 ; 1
+ 2146: ec 0f add r30, r28
+ 2148: fd 1f adc r31, r29
+ 214a: 10 81 ld r17, Z
+ 214c: 10 82 st Z, r1
+ 214e: 6d 91 ld r22, X+
+ 2150: 7c 91 ld r23, X
+ 2152: 64 0f add r22, r20
+ 2154: 75 1f adc r23, r21
+ 2156: c6 01 movw r24, r12
+ 2158: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 215c: d7 01 movw r26, r14
+ 215e: ed 91 ld r30, X+
+ 2160: fc 91 ld r31, X
+ 2162: ec 0f add r30, r28
+ 2164: fd 1f adc r31, r29
+ 2166: 10 83 st Z, r17
+ 2168: c6 01 movw r24, r12
+ 216a: df 91 pop r29
+ 216c: cf 91 pop r28
+ 216e: 1f 91 pop r17
+ 2170: ff 90 pop r15
+ 2172: ef 90 pop r14
+ 2174: df 90 pop r13
+ 2176: cf 90 pop r12
+ 2178: 08 95 ret
+
+0000217a <_ZNK6String9substringEj>:
+ 217a: 0f 93 push r16
+ 217c: 1f 93 push r17
+ 217e: 8c 01 movw r16, r24
+ 2180: fb 01 movw r30, r22
+ 2182: 24 81 ldd r18, Z+4 ; 0x04
+ 2184: 35 81 ldd r19, Z+5 ; 0x05
+ 2186: 0e 94 86 10 call 0x210c ; 0x210c <_ZNK6String9substringEjj>
+ 218a: c8 01 movw r24, r16
+ 218c: 1f 91 pop r17
+ 218e: 0f 91 pop r16
+ 2190: 08 95 ret
+
+00002192 <_ZNK6String11lastIndexOfERKS_j>:
+ 2192: 8f 92 push r8
+ 2194: 9f 92 push r9
+ 2196: af 92 push r10
+ 2198: bf 92 push r11
+ 219a: cf 92 push r12
+ 219c: df 92 push r13
+ 219e: ef 92 push r14
+ 21a0: ff 92 push r15
+ 21a2: 0f 93 push r16
+ 21a4: 1f 93 push r17
+ 21a6: df 93 push r29
+ 21a8: cf 93 push r28
+ 21aa: 00 d0 rcall .+0 ; 0x21ac <_ZNK6String11lastIndexOfERKS_j+0x1a>
+ 21ac: 00 d0 rcall .+0 ; 0x21ae <_ZNK6String11lastIndexOfERKS_j+0x1c>
+ 21ae: 00 d0 rcall .+0 ; 0x21b0 <_ZNK6String11lastIndexOfERKS_j+0x1e>
+ 21b0: cd b7 in r28, 0x3d ; 61
+ 21b2: de b7 in r29, 0x3e ; 62
+ 21b4: 5c 01 movw r10, r24
+ 21b6: 6b 01 movw r12, r22
+ 21b8: db 01 movw r26, r22
+ 21ba: 14 96 adiw r26, 0x04 ; 4
+ 21bc: 8d 91 ld r24, X+
+ 21be: 9c 91 ld r25, X
+ 21c0: 15 97 sbiw r26, 0x05 ; 5
+ 21c2: 00 97 sbiw r24, 0x00 ; 0
+ 21c4: a1 f1 breq .+104 ; 0x222e <_ZNK6String11lastIndexOfERKS_j+0x9c>
+ 21c6: 01 97 sbiw r24, 0x01 ; 1
+ 21c8: 48 17 cp r20, r24
+ 21ca: 59 07 cpc r21, r25
+ 21cc: 80 f1 brcs .+96 ; 0x222e <_ZNK6String11lastIndexOfERKS_j+0x9c>
+ 21ce: f5 01 movw r30, r10
+ 21d0: 84 81 ldd r24, Z+4 ; 0x04
+ 21d2: 95 81 ldd r25, Z+5 ; 0x05
+ 21d4: 48 17 cp r20, r24
+ 21d6: 59 07 cpc r21, r25
+ 21d8: 50 f5 brcc .+84 ; 0x222e <_ZNK6String11lastIndexOfERKS_j+0x9c>
+ 21da: ed 91 ld r30, X+
+ 21dc: fc 91 ld r31, X
+ 21de: 00 81 ld r16, Z
+ 21e0: 7a 01 movw r14, r20
+ 21e2: 4e 01 movw r8, r28
+ 21e4: 08 94 sec
+ 21e6: 81 1c adc r8, r1
+ 21e8: 91 1c adc r9, r1
+ 21ea: 1f c0 rjmp .+62 ; 0x222a <_ZNK6String11lastIndexOfERKS_j+0x98>
+ 21ec: d5 01 movw r26, r10
+ 21ee: ed 91 ld r30, X+
+ 21f0: fc 91 ld r31, X
+ 21f2: ee 0d add r30, r14
+ 21f4: ff 1d adc r31, r15
+ 21f6: 80 81 ld r24, Z
+ 21f8: 80 17 cp r24, r16
+ 21fa: a1 f4 brne .+40 ; 0x2224 <_ZNK6String11lastIndexOfERKS_j+0x92>
+ 21fc: f6 01 movw r30, r12
+ 21fe: 24 81 ldd r18, Z+4 ; 0x04
+ 2200: 35 81 ldd r19, Z+5 ; 0x05
+ 2202: 2e 0d add r18, r14
+ 2204: 3f 1d adc r19, r15
+ 2206: c4 01 movw r24, r8
+ 2208: b5 01 movw r22, r10
+ 220a: a7 01 movw r20, r14
+ 220c: 0e 94 86 10 call 0x210c ; 0x210c <_ZNK6String9substringEjj>
+ 2210: c4 01 movw r24, r8
+ 2212: b6 01 movw r22, r12
+ 2214: 0e 94 cc 0c call 0x1998 ; 0x1998 <_ZNK6String6equalsERKS_>
+ 2218: 18 2f mov r17, r24
+ 221a: c4 01 movw r24, r8
+ 221c: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 2220: 11 23 and r17, r17
+ 2222: 41 f4 brne .+16 ; 0x2234 <_ZNK6String11lastIndexOfERKS_j+0xa2>
+ 2224: 08 94 sec
+ 2226: e1 08 sbc r14, r1
+ 2228: f1 08 sbc r15, r1
+ 222a: f7 fe sbrs r15, 7
+ 222c: df cf rjmp .-66 ; 0x21ec <_ZNK6String11lastIndexOfERKS_j+0x5a>
+ 222e: ee 24 eor r14, r14
+ 2230: ea 94 dec r14
+ 2232: fe 2c mov r15, r14
+ 2234: c7 01 movw r24, r14
+ 2236: 26 96 adiw r28, 0x06 ; 6
+ 2238: 0f b6 in r0, 0x3f ; 63
+ 223a: f8 94 cli
+ 223c: de bf out 0x3e, r29 ; 62
+ 223e: 0f be out 0x3f, r0 ; 63
+ 2240: cd bf out 0x3d, r28 ; 61
+ 2242: cf 91 pop r28
+ 2244: df 91 pop r29
+ 2246: 1f 91 pop r17
+ 2248: 0f 91 pop r16
+ 224a: ff 90 pop r15
+ 224c: ef 90 pop r14
+ 224e: df 90 pop r13
+ 2250: cf 90 pop r12
+ 2252: bf 90 pop r11
+ 2254: af 90 pop r10
+ 2256: 9f 90 pop r9
+ 2258: 8f 90 pop r8
+ 225a: 08 95 ret
+
+0000225c <_ZNK6String11lastIndexOfERKS_>:
+ 225c: fc 01 movw r30, r24
+ 225e: db 01 movw r26, r22
+ 2260: 44 81 ldd r20, Z+4 ; 0x04
+ 2262: 55 81 ldd r21, Z+5 ; 0x05
+ 2264: 14 96 adiw r26, 0x04 ; 4
+ 2266: 8d 91 ld r24, X+
+ 2268: 9c 91 ld r25, X
+ 226a: 15 97 sbiw r26, 0x05 ; 5
+ 226c: 48 1b sub r20, r24
+ 226e: 59 0b sbc r21, r25
+ 2270: cf 01 movw r24, r30
+ 2272: 0e 94 c9 10 call 0x2192 ; 0x2192 <_ZNK6String11lastIndexOfERKS_j>
+ 2276: 08 95 ret
+
+00002278 <_ZNK6String4trimEv>:
+ 2278: af 92 push r10
+ 227a: bf 92 push r11
+ 227c: cf 92 push r12
+ 227e: df 92 push r13
+ 2280: ef 92 push r14
+ 2282: ff 92 push r15
+ 2284: 0f 93 push r16
+ 2286: 1f 93 push r17
+ 2288: df 93 push r29
+ 228a: cf 93 push r28
+ 228c: 00 d0 rcall .+0 ; 0x228e <_ZNK6String4trimEv+0x16>
+ 228e: 00 d0 rcall .+0 ; 0x2290 <_ZNK6String4trimEv+0x18>
+ 2290: 00 d0 rcall .+0 ; 0x2292 <_ZNK6String4trimEv+0x1a>
+ 2292: cd b7 in r28, 0x3d ; 61
+ 2294: de b7 in r29, 0x3e ; 62
+ 2296: 5c 01 movw r10, r24
+ 2298: 8b 01 movw r16, r22
+ 229a: db 01 movw r26, r22
+ 229c: 6d 91 ld r22, X+
+ 229e: 7c 91 ld r23, X
+ 22a0: 61 15 cp r22, r1
+ 22a2: 71 05 cpc r23, r1
+ 22a4: 21 f4 brne .+8 ; 0x22ae <_ZNK6String4trimEv+0x36>
+ 22a6: b8 01 movw r22, r16
+ 22a8: 0e 94 6c 0e call 0x1cd8 ; 0x1cd8 <_ZN6StringC1ERKS_>
+ 22ac: 42 c0 rjmp .+132 ; 0x2332 <_ZNK6String4trimEv+0xba>
+ 22ae: ce 01 movw r24, r28
+ 22b0: 01 96 adiw r24, 0x01 ; 1
+ 22b2: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 22b6: f8 01 movw r30, r16
+ 22b8: e4 80 ldd r14, Z+4 ; 0x04
+ 22ba: f5 80 ldd r15, Z+5 ; 0x05
+ 22bc: cc 24 eor r12, r12
+ 22be: dd 24 eor r13, r13
+ 22c0: 10 c0 rjmp .+32 ; 0x22e2 <_ZNK6String4trimEv+0x6a>
+ 22c2: d8 01 movw r26, r16
+ 22c4: ed 91 ld r30, X+
+ 22c6: fc 91 ld r31, X
+ 22c8: ec 0d add r30, r12
+ 22ca: fd 1d adc r31, r13
+ 22cc: 80 81 ld r24, Z
+ 22ce: 99 27 eor r25, r25
+ 22d0: 87 fd sbrc r24, 7
+ 22d2: 90 95 com r25
+ 22d4: 0e 94 e7 20 call 0x41ce ; 0x41ce <isspace>
+ 22d8: 89 2b or r24, r25
+ 22da: 31 f0 breq .+12 ; 0x22e8 <_ZNK6String4trimEv+0x70>
+ 22dc: 08 94 sec
+ 22de: c1 1c adc r12, r1
+ 22e0: d1 1c adc r13, r1
+ 22e2: ce 14 cp r12, r14
+ 22e4: df 04 cpc r13, r15
+ 22e6: 68 f3 brcs .-38 ; 0x22c2 <_ZNK6String4trimEv+0x4a>
+ 22e8: ed 80 ldd r14, Y+5 ; 0x05
+ 22ea: fe 80 ldd r15, Y+6 ; 0x06
+ 22ec: 0d c0 rjmp .+26 ; 0x2308 <_ZNK6String4trimEv+0x90>
+ 22ee: d8 01 movw r26, r16
+ 22f0: ed 91 ld r30, X+
+ 22f2: fc 91 ld r31, X
+ 22f4: ee 0d add r30, r14
+ 22f6: ff 1d adc r31, r15
+ 22f8: 80 81 ld r24, Z
+ 22fa: 99 27 eor r25, r25
+ 22fc: 87 fd sbrc r24, 7
+ 22fe: 90 95 com r25
+ 2300: 0e 94 e7 20 call 0x41ce ; 0x41ce <isspace>
+ 2304: 89 2b or r24, r25
+ 2306: 31 f0 breq .+12 ; 0x2314 <_ZNK6String4trimEv+0x9c>
+ 2308: 08 94 sec
+ 230a: e1 08 sbc r14, r1
+ 230c: f1 08 sbc r15, r1
+ 230e: ce 14 cp r12, r14
+ 2310: df 04 cpc r13, r15
+ 2312: 68 f3 brcs .-38 ; 0x22ee <_ZNK6String4trimEv+0x76>
+ 2314: 08 94 sec
+ 2316: e1 1c adc r14, r1
+ 2318: f1 1c adc r15, r1
+ 231a: c5 01 movw r24, r10
+ 231c: 8e 01 movw r16, r28
+ 231e: 0f 5f subi r16, 0xFF ; 255
+ 2320: 1f 4f sbci r17, 0xFF ; 255
+ 2322: b8 01 movw r22, r16
+ 2324: a6 01 movw r20, r12
+ 2326: 97 01 movw r18, r14
+ 2328: 0e 94 86 10 call 0x210c ; 0x210c <_ZNK6String9substringEjj>
+ 232c: c8 01 movw r24, r16
+ 232e: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 2332: c5 01 movw r24, r10
+ 2334: 26 96 adiw r28, 0x06 ; 6
+ 2336: 0f b6 in r0, 0x3f ; 63
+ 2338: f8 94 cli
+ 233a: de bf out 0x3e, r29 ; 62
+ 233c: 0f be out 0x3f, r0 ; 63
+ 233e: cd bf out 0x3d, r28 ; 61
+ 2340: cf 91 pop r28
+ 2342: df 91 pop r29
+ 2344: 1f 91 pop r17
+ 2346: 0f 91 pop r16
+ 2348: ff 90 pop r15
+ 234a: ef 90 pop r14
+ 234c: df 90 pop r13
+ 234e: cf 90 pop r12
+ 2350: bf 90 pop r11
+ 2352: af 90 pop r10
+ 2354: 08 95 ret
+
+00002356 <_ZN6String7replaceERKS_S1_>:
+ 2356: 2f 92 push r2
+ 2358: 3f 92 push r3
+ 235a: 4f 92 push r4
+ 235c: 5f 92 push r5
+ 235e: 6f 92 push r6
+ 2360: 7f 92 push r7
+ 2362: 8f 92 push r8
+ 2364: 9f 92 push r9
+ 2366: af 92 push r10
+ 2368: bf 92 push r11
+ 236a: cf 92 push r12
+ 236c: df 92 push r13
+ 236e: ef 92 push r14
+ 2370: ff 92 push r15
+ 2372: 0f 93 push r16
+ 2374: 1f 93 push r17
+ 2376: df 93 push r29
+ 2378: cf 93 push r28
+ 237a: cd b7 in r28, 0x3d ; 61
+ 237c: de b7 in r29, 0x3e ; 62
+ 237e: 68 97 sbiw r28, 0x18 ; 24
+ 2380: 0f b6 in r0, 0x3f ; 63
+ 2382: f8 94 cli
+ 2384: de bf out 0x3e, r29 ; 62
+ 2386: 0f be out 0x3f, r0 ; 63
+ 2388: cd bf out 0x3d, r28 ; 61
+ 238a: 3c 01 movw r6, r24
+ 238c: fb 01 movw r30, r22
+ 238e: 2a 01 movw r4, r20
+ 2390: 19 01 movw r2, r18
+ 2392: 60 81 ld r22, Z
+ 2394: 71 81 ldd r23, Z+1 ; 0x01
+ 2396: 61 15 cp r22, r1
+ 2398: 71 05 cpc r23, r1
+ 239a: 21 f4 brne .+8 ; 0x23a4 <_ZN6String7replaceERKS_S1_+0x4e>
+ 239c: bf 01 movw r22, r30
+ 239e: 0e 94 6c 0e call 0x1cd8 ; 0x1cd8 <_ZN6StringC1ERKS_>
+ 23a2: 5a c0 rjmp .+180 ; 0x2458 <_ZN6String7replaceERKS_S1_+0x102>
+ 23a4: 7e 01 movw r14, r28
+ 23a6: 08 94 sec
+ 23a8: e1 1c adc r14, r1
+ 23aa: f1 1c adc r15, r1
+ 23ac: c7 01 movw r24, r14
+ 23ae: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 23b2: 8e 01 movw r16, r28
+ 23b4: 09 5f subi r16, 0xF9 ; 249
+ 23b6: 1f 4f sbci r17, 0xFF ; 255
+ 23b8: c8 01 movw r24, r16
+ 23ba: 66 ea ldi r22, 0xA6 ; 166
+ 23bc: 71 e0 ldi r23, 0x01 ; 1
+ 23be: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 23c2: d0 2e mov r13, r16
+ 23c4: c1 2e mov r12, r17
+ 23c6: 3d e0 ldi r19, 0x0D ; 13
+ 23c8: 83 2e mov r8, r19
+ 23ca: 91 2c mov r9, r1
+ 23cc: 8c 0e add r8, r28
+ 23ce: 9d 1e adc r9, r29
+ 23d0: 23 e1 ldi r18, 0x13 ; 19
+ 23d2: a2 2e mov r10, r18
+ 23d4: b1 2c mov r11, r1
+ 23d6: ac 0e add r10, r28
+ 23d8: bd 1e adc r11, r29
+ 23da: 24 c0 rjmp .+72 ; 0x2424 <_ZN6String7replaceERKS_S1_+0xce>
+ 23dc: c4 01 movw r24, r8
+ 23de: b7 01 movw r22, r14
+ 23e0: 40 e0 ldi r20, 0x00 ; 0
+ 23e2: 50 e0 ldi r21, 0x00 ; 0
+ 23e4: 98 01 movw r18, r16
+ 23e6: 0e 94 86 10 call 0x210c ; 0x210c <_ZNK6String9substringEjj>
+ 23ea: 8d 2d mov r24, r13
+ 23ec: 9c 2d mov r25, r12
+ 23ee: b4 01 movw r22, r8
+ 23f0: 0e 94 85 0d call 0x1b0a ; 0x1b0a <_ZN6StringpLERKS_>
+ 23f4: c4 01 movw r24, r8
+ 23f6: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 23fa: 8d 2d mov r24, r13
+ 23fc: 9c 2d mov r25, r12
+ 23fe: b1 01 movw r22, r2
+ 2400: 0e 94 85 0d call 0x1b0a ; 0x1b0a <_ZN6StringpLERKS_>
+ 2404: f2 01 movw r30, r4
+ 2406: 44 81 ldd r20, Z+4 ; 0x04
+ 2408: 55 81 ldd r21, Z+5 ; 0x05
+ 240a: 40 0f add r20, r16
+ 240c: 51 1f adc r21, r17
+ 240e: c5 01 movw r24, r10
+ 2410: b7 01 movw r22, r14
+ 2412: 0e 94 bd 10 call 0x217a ; 0x217a <_ZNK6String9substringEj>
+ 2416: c7 01 movw r24, r14
+ 2418: b5 01 movw r22, r10
+ 241a: 0e 94 d4 0d call 0x1ba8 ; 0x1ba8 <_ZN6StringaSERKS_>
+ 241e: c5 01 movw r24, r10
+ 2420: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 2424: c7 01 movw r24, r14
+ 2426: b2 01 movw r22, r4
+ 2428: 0e 94 a4 0c call 0x1948 ; 0x1948 <_ZNK6String7indexOfERKS_>
+ 242c: 8c 01 movw r16, r24
+ 242e: ff ef ldi r31, 0xFF ; 255
+ 2430: 8f 3f cpi r24, 0xFF ; 255
+ 2432: 9f 07 cpc r25, r31
+ 2434: 99 f6 brne .-90 ; 0x23dc <_ZN6String7replaceERKS_S1_+0x86>
+ 2436: 8d 2d mov r24, r13
+ 2438: 9c 2d mov r25, r12
+ 243a: b7 01 movw r22, r14
+ 243c: 0e 94 85 0d call 0x1b0a ; 0x1b0a <_ZN6StringpLERKS_>
+ 2440: c3 01 movw r24, r6
+ 2442: 6d 2d mov r22, r13
+ 2444: 7c 2d mov r23, r12
+ 2446: 0e 94 6c 0e call 0x1cd8 ; 0x1cd8 <_ZN6StringC1ERKS_>
+ 244a: 8d 2d mov r24, r13
+ 244c: 9c 2d mov r25, r12
+ 244e: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 2452: c7 01 movw r24, r14
+ 2454: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 2458: c3 01 movw r24, r6
+ 245a: 68 96 adiw r28, 0x18 ; 24
+ 245c: 0f b6 in r0, 0x3f ; 63
+ 245e: f8 94 cli
+ 2460: de bf out 0x3e, r29 ; 62
+ 2462: 0f be out 0x3f, r0 ; 63
+ 2464: cd bf out 0x3d, r28 ; 61
+ 2466: cf 91 pop r28
+ 2468: df 91 pop r29
+ 246a: 1f 91 pop r17
+ 246c: 0f 91 pop r16
+ 246e: ff 90 pop r15
+ 2470: ef 90 pop r14
+ 2472: df 90 pop r13
+ 2474: cf 90 pop r12
+ 2476: bf 90 pop r11
+ 2478: af 90 pop r10
+ 247a: 9f 90 pop r9
+ 247c: 8f 90 pop r8
+ 247e: 7f 90 pop r7
+ 2480: 6f 90 pop r6
+ 2482: 5f 90 pop r5
+ 2484: 4f 90 pop r4
+ 2486: 3f 90 pop r3
+ 2488: 2f 90 pop r2
+ 248a: 08 95 ret
+
+0000248c <_ZN6String7replaceEcc>:
+ 248c: df 92 push r13
+ 248e: ef 92 push r14
+ 2490: ff 92 push r15
+ 2492: 0f 93 push r16
+ 2494: 1f 93 push r17
+ 2496: df 93 push r29
+ 2498: cf 93 push r28
+ 249a: 00 d0 rcall .+0 ; 0x249c <_ZN6String7replaceEcc+0x10>
+ 249c: 00 d0 rcall .+0 ; 0x249e <_ZN6String7replaceEcc+0x12>
+ 249e: 00 d0 rcall .+0 ; 0x24a0 <_ZN6String7replaceEcc+0x14>
+ 24a0: cd b7 in r28, 0x3d ; 61
+ 24a2: de b7 in r29, 0x3e ; 62
+ 24a4: 7c 01 movw r14, r24
+ 24a6: fb 01 movw r30, r22
+ 24a8: 14 2f mov r17, r20
+ 24aa: d2 2e mov r13, r18
+ 24ac: 60 81 ld r22, Z
+ 24ae: 71 81 ldd r23, Z+1 ; 0x01
+ 24b0: 61 15 cp r22, r1
+ 24b2: 71 05 cpc r23, r1
+ 24b4: 21 f4 brne .+8 ; 0x24be <_ZN6String7replaceEcc+0x32>
+ 24b6: bf 01 movw r22, r30
+ 24b8: 0e 94 6c 0e call 0x1cd8 ; 0x1cd8 <_ZN6StringC1ERKS_>
+ 24bc: 1c c0 rjmp .+56 ; 0x24f6 <_ZN6String7replaceEcc+0x6a>
+ 24be: ce 01 movw r24, r28
+ 24c0: 01 96 adiw r24, 0x01 ; 1
+ 24c2: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <_ZN6StringC1EPKc>
+ 24c6: 89 81 ldd r24, Y+1 ; 0x01
+ 24c8: 9a 81 ldd r25, Y+2 ; 0x02
+ 24ca: 01 2f mov r16, r17
+ 24cc: 11 27 eor r17, r17
+ 24ce: 07 fd sbrc r16, 7
+ 24d0: 10 95 com r17
+ 24d2: 01 c0 rjmp .+2 ; 0x24d6 <_ZN6String7replaceEcc+0x4a>
+ 24d4: d0 82 st Z, r13
+ 24d6: b8 01 movw r22, r16
+ 24d8: 0e 94 13 21 call 0x4226 ; 0x4226 <strchr>
+ 24dc: fc 01 movw r30, r24
+ 24de: 00 97 sbiw r24, 0x00 ; 0
+ 24e0: c9 f7 brne .-14 ; 0x24d4 <_ZN6String7replaceEcc+0x48>
+ 24e2: c7 01 movw r24, r14
+ 24e4: 8e 01 movw r16, r28
+ 24e6: 0f 5f subi r16, 0xFF ; 255
+ 24e8: 1f 4f sbci r17, 0xFF ; 255
+ 24ea: b8 01 movw r22, r16
+ 24ec: 0e 94 6c 0e call 0x1cd8 ; 0x1cd8 <_ZN6StringC1ERKS_>
+ 24f0: c8 01 movw r24, r16
+ 24f2: 0e 94 06 0c call 0x180c ; 0x180c <_ZN6StringD1Ev>
+ 24f6: c7 01 movw r24, r14
+ 24f8: 26 96 adiw r28, 0x06 ; 6
+ 24fa: 0f b6 in r0, 0x3f ; 63
+ 24fc: f8 94 cli
+ 24fe: de bf out 0x3e, r29 ; 62
+ 2500: 0f be out 0x3f, r0 ; 63
+ 2502: cd bf out 0x3d, r28 ; 61
+ 2504: cf 91 pop r28
+ 2506: df 91 pop r29
+ 2508: 1f 91 pop r17
+ 250a: 0f 91 pop r16
+ 250c: ff 90 pop r15
+ 250e: ef 90 pop r14
+ 2510: df 90 pop r13
+ 2512: 08 95 ret
+
+00002514 <_ZN6StringC2EPKc>:
+ 2514: 0f 93 push r16
+ 2516: 1f 93 push r17
+ 2518: cf 93 push r28
+ 251a: df 93 push r29
+ 251c: 8c 01 movw r16, r24
+ 251e: eb 01 movw r28, r22
+ 2520: 61 15 cp r22, r1
+ 2522: 71 05 cpc r23, r1
+ 2524: 11 f4 brne .+4 ; 0x252a <_ZN6StringC2EPKc+0x16>
+ 2526: c6 ea ldi r28, 0xA6 ; 166
+ 2528: d1 e0 ldi r29, 0x01 ; 1
+ 252a: fe 01 movw r30, r28
+ 252c: 01 90 ld r0, Z+
+ 252e: 00 20 and r0, r0
+ 2530: e9 f7 brne .-6 ; 0x252c <_ZN6StringC2EPKc+0x18>
+ 2532: 31 97 sbiw r30, 0x01 ; 1
+ 2534: ec 1b sub r30, r28
+ 2536: fd 0b sbc r31, r29
+ 2538: d8 01 movw r26, r16
+ 253a: 15 96 adiw r26, 0x05 ; 5
+ 253c: fc 93 st X, r31
+ 253e: ee 93 st -X, r30
+ 2540: 14 97 sbiw r26, 0x04 ; 4
+ 2542: c8 01 movw r24, r16
+ 2544: bf 01 movw r22, r30
+ 2546: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 254a: f8 01 movw r30, r16
+ 254c: 80 81 ld r24, Z
+ 254e: 91 81 ldd r25, Z+1 ; 0x01
+ 2550: 00 97 sbiw r24, 0x00 ; 0
+ 2552: 19 f0 breq .+6 ; 0x255a <_ZN6StringC2EPKc+0x46>
+ 2554: be 01 movw r22, r28
+ 2556: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 255a: df 91 pop r29
+ 255c: cf 91 pop r28
+ 255e: 1f 91 pop r17
+ 2560: 0f 91 pop r16
+ 2562: 08 95 ret
+
+00002564 <_ZN6StringC1Eli>:
+ 2564: ef 92 push r14
+ 2566: ff 92 push r15
+ 2568: 0f 93 push r16
+ 256a: 1f 93 push r17
+ 256c: df 93 push r29
+ 256e: cf 93 push r28
+ 2570: cd b7 in r28, 0x3d ; 61
+ 2572: de b7 in r29, 0x3e ; 62
+ 2574: a1 97 sbiw r28, 0x21 ; 33
+ 2576: 0f b6 in r0, 0x3f ; 63
+ 2578: f8 94 cli
+ 257a: de bf out 0x3e, r29 ; 62
+ 257c: 0f be out 0x3f, r0 ; 63
+ 257e: cd bf out 0x3d, r28 ; 61
+ 2580: 8c 01 movw r16, r24
+ 2582: cb 01 movw r24, r22
+ 2584: ba 01 movw r22, r20
+ 2586: 7e 01 movw r14, r28
+ 2588: 08 94 sec
+ 258a: e1 1c adc r14, r1
+ 258c: f1 1c adc r15, r1
+ 258e: a7 01 movw r20, r14
+ 2590: 0e 94 91 21 call 0x4322 ; 0x4322 <ltoa>
+ 2594: f7 01 movw r30, r14
+ 2596: 01 90 ld r0, Z+
+ 2598: 00 20 and r0, r0
+ 259a: e9 f7 brne .-6 ; 0x2596 <_ZN6StringC1Eli+0x32>
+ 259c: 31 97 sbiw r30, 0x01 ; 1
+ 259e: ee 19 sub r30, r14
+ 25a0: ff 09 sbc r31, r15
+ 25a2: d8 01 movw r26, r16
+ 25a4: 15 96 adiw r26, 0x05 ; 5
+ 25a6: fc 93 st X, r31
+ 25a8: ee 93 st -X, r30
+ 25aa: 14 97 sbiw r26, 0x04 ; 4
+ 25ac: c8 01 movw r24, r16
+ 25ae: bf 01 movw r22, r30
+ 25b0: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 25b4: f8 01 movw r30, r16
+ 25b6: 80 81 ld r24, Z
+ 25b8: 91 81 ldd r25, Z+1 ; 0x01
+ 25ba: 00 97 sbiw r24, 0x00 ; 0
+ 25bc: 19 f0 breq .+6 ; 0x25c4 <_ZN6StringC1Eli+0x60>
+ 25be: b7 01 movw r22, r14
+ 25c0: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 25c4: a1 96 adiw r28, 0x21 ; 33
+ 25c6: 0f b6 in r0, 0x3f ; 63
+ 25c8: f8 94 cli
+ 25ca: de bf out 0x3e, r29 ; 62
+ 25cc: 0f be out 0x3f, r0 ; 63
+ 25ce: cd bf out 0x3d, r28 ; 61
+ 25d0: cf 91 pop r28
+ 25d2: df 91 pop r29
+ 25d4: 1f 91 pop r17
+ 25d6: 0f 91 pop r16
+ 25d8: ff 90 pop r15
+ 25da: ef 90 pop r14
+ 25dc: 08 95 ret
+
+000025de <_ZN6StringC2Eli>:
+ 25de: ef 92 push r14
+ 25e0: ff 92 push r15
+ 25e2: 0f 93 push r16
+ 25e4: 1f 93 push r17
+ 25e6: df 93 push r29
+ 25e8: cf 93 push r28
+ 25ea: cd b7 in r28, 0x3d ; 61
+ 25ec: de b7 in r29, 0x3e ; 62
+ 25ee: a1 97 sbiw r28, 0x21 ; 33
+ 25f0: 0f b6 in r0, 0x3f ; 63
+ 25f2: f8 94 cli
+ 25f4: de bf out 0x3e, r29 ; 62
+ 25f6: 0f be out 0x3f, r0 ; 63
+ 25f8: cd bf out 0x3d, r28 ; 61
+ 25fa: 8c 01 movw r16, r24
+ 25fc: cb 01 movw r24, r22
+ 25fe: ba 01 movw r22, r20
+ 2600: 7e 01 movw r14, r28
+ 2602: 08 94 sec
+ 2604: e1 1c adc r14, r1
+ 2606: f1 1c adc r15, r1
+ 2608: a7 01 movw r20, r14
+ 260a: 0e 94 91 21 call 0x4322 ; 0x4322 <ltoa>
+ 260e: f7 01 movw r30, r14
+ 2610: 01 90 ld r0, Z+
+ 2612: 00 20 and r0, r0
+ 2614: e9 f7 brne .-6 ; 0x2610 <_ZN6StringC2Eli+0x32>
+ 2616: 31 97 sbiw r30, 0x01 ; 1
+ 2618: ee 19 sub r30, r14
+ 261a: ff 09 sbc r31, r15
+ 261c: d8 01 movw r26, r16
+ 261e: 15 96 adiw r26, 0x05 ; 5
+ 2620: fc 93 st X, r31
+ 2622: ee 93 st -X, r30
+ 2624: 14 97 sbiw r26, 0x04 ; 4
+ 2626: c8 01 movw r24, r16
+ 2628: bf 01 movw r22, r30
+ 262a: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 262e: f8 01 movw r30, r16
+ 2630: 80 81 ld r24, Z
+ 2632: 91 81 ldd r25, Z+1 ; 0x01
+ 2634: 00 97 sbiw r24, 0x00 ; 0
+ 2636: 19 f0 breq .+6 ; 0x263e <_ZN6StringC2Eli+0x60>
+ 2638: b7 01 movw r22, r14
+ 263a: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 263e: a1 96 adiw r28, 0x21 ; 33
+ 2640: 0f b6 in r0, 0x3f ; 63
+ 2642: f8 94 cli
+ 2644: de bf out 0x3e, r29 ; 62
+ 2646: 0f be out 0x3f, r0 ; 63
+ 2648: cd bf out 0x3d, r28 ; 61
+ 264a: cf 91 pop r28
+ 264c: df 91 pop r29
+ 264e: 1f 91 pop r17
+ 2650: 0f 91 pop r16
+ 2652: ff 90 pop r15
+ 2654: ef 90 pop r14
+ 2656: 08 95 ret
+
+00002658 <_ZN6StringC1Eii>:
+ 2658: ef 92 push r14
+ 265a: ff 92 push r15
+ 265c: 0f 93 push r16
+ 265e: 1f 93 push r17
+ 2660: df 93 push r29
+ 2662: cf 93 push r28
+ 2664: cd b7 in r28, 0x3d ; 61
+ 2666: de b7 in r29, 0x3e ; 62
+ 2668: a1 97 sbiw r28, 0x21 ; 33
+ 266a: 0f b6 in r0, 0x3f ; 63
+ 266c: f8 94 cli
+ 266e: de bf out 0x3e, r29 ; 62
+ 2670: 0f be out 0x3f, r0 ; 63
+ 2672: cd bf out 0x3d, r28 ; 61
+ 2674: 8c 01 movw r16, r24
+ 2676: cb 01 movw r24, r22
+ 2678: 7e 01 movw r14, r28
+ 267a: 08 94 sec
+ 267c: e1 1c adc r14, r1
+ 267e: f1 1c adc r15, r1
+ 2680: b7 01 movw r22, r14
+ 2682: 0e 94 70 21 call 0x42e0 ; 0x42e0 <itoa>
+ 2686: f7 01 movw r30, r14
+ 2688: 01 90 ld r0, Z+
+ 268a: 00 20 and r0, r0
+ 268c: e9 f7 brne .-6 ; 0x2688 <_ZN6StringC1Eii+0x30>
+ 268e: 31 97 sbiw r30, 0x01 ; 1
+ 2690: ee 19 sub r30, r14
+ 2692: ff 09 sbc r31, r15
+ 2694: d8 01 movw r26, r16
+ 2696: 15 96 adiw r26, 0x05 ; 5
+ 2698: fc 93 st X, r31
+ 269a: ee 93 st -X, r30
+ 269c: 14 97 sbiw r26, 0x04 ; 4
+ 269e: c8 01 movw r24, r16
+ 26a0: bf 01 movw r22, r30
+ 26a2: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 26a6: f8 01 movw r30, r16
+ 26a8: 80 81 ld r24, Z
+ 26aa: 91 81 ldd r25, Z+1 ; 0x01
+ 26ac: 00 97 sbiw r24, 0x00 ; 0
+ 26ae: 19 f0 breq .+6 ; 0x26b6 <_ZN6StringC1Eii+0x5e>
+ 26b0: b7 01 movw r22, r14
+ 26b2: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 26b6: a1 96 adiw r28, 0x21 ; 33
+ 26b8: 0f b6 in r0, 0x3f ; 63
+ 26ba: f8 94 cli
+ 26bc: de bf out 0x3e, r29 ; 62
+ 26be: 0f be out 0x3f, r0 ; 63
+ 26c0: cd bf out 0x3d, r28 ; 61
+ 26c2: cf 91 pop r28
+ 26c4: df 91 pop r29
+ 26c6: 1f 91 pop r17
+ 26c8: 0f 91 pop r16
+ 26ca: ff 90 pop r15
+ 26cc: ef 90 pop r14
+ 26ce: 08 95 ret
+
+000026d0 <_ZN6StringC2Eii>:
+ 26d0: ef 92 push r14
+ 26d2: ff 92 push r15
+ 26d4: 0f 93 push r16
+ 26d6: 1f 93 push r17
+ 26d8: df 93 push r29
+ 26da: cf 93 push r28
+ 26dc: cd b7 in r28, 0x3d ; 61
+ 26de: de b7 in r29, 0x3e ; 62
+ 26e0: a1 97 sbiw r28, 0x21 ; 33
+ 26e2: 0f b6 in r0, 0x3f ; 63
+ 26e4: f8 94 cli
+ 26e6: de bf out 0x3e, r29 ; 62
+ 26e8: 0f be out 0x3f, r0 ; 63
+ 26ea: cd bf out 0x3d, r28 ; 61
+ 26ec: 8c 01 movw r16, r24
+ 26ee: cb 01 movw r24, r22
+ 26f0: 7e 01 movw r14, r28
+ 26f2: 08 94 sec
+ 26f4: e1 1c adc r14, r1
+ 26f6: f1 1c adc r15, r1
+ 26f8: b7 01 movw r22, r14
+ 26fa: 0e 94 70 21 call 0x42e0 ; 0x42e0 <itoa>
+ 26fe: f7 01 movw r30, r14
+ 2700: 01 90 ld r0, Z+
+ 2702: 00 20 and r0, r0
+ 2704: e9 f7 brne .-6 ; 0x2700 <_ZN6StringC2Eii+0x30>
+ 2706: 31 97 sbiw r30, 0x01 ; 1
+ 2708: ee 19 sub r30, r14
+ 270a: ff 09 sbc r31, r15
+ 270c: d8 01 movw r26, r16
+ 270e: 15 96 adiw r26, 0x05 ; 5
+ 2710: fc 93 st X, r31
+ 2712: ee 93 st -X, r30
+ 2714: 14 97 sbiw r26, 0x04 ; 4
+ 2716: c8 01 movw r24, r16
+ 2718: bf 01 movw r22, r30
+ 271a: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <_ZN6String9getBufferEj>
+ 271e: f8 01 movw r30, r16
+ 2720: 80 81 ld r24, Z
+ 2722: 91 81 ldd r25, Z+1 ; 0x01
+ 2724: 00 97 sbiw r24, 0x00 ; 0
+ 2726: 19 f0 breq .+6 ; 0x272e <_ZN6StringC2Eii+0x5e>
+ 2728: b7 01 movw r22, r14
+ 272a: 0e 94 27 21 call 0x424e ; 0x424e <strcpy>
+ 272e: a1 96 adiw r28, 0x21 ; 33
+ 2730: 0f b6 in r0, 0x3f ; 63
+ 2732: f8 94 cli
+ 2734: de bf out 0x3e, r29 ; 62
+ 2736: 0f be out 0x3f, r0 ; 63
+ 2738: cd bf out 0x3d, r28 ; 61
+ 273a: cf 91 pop r28
+ 273c: df 91 pop r29
+ 273e: 1f 91 pop r17
+ 2740: 0f 91 pop r16
+ 2742: ff 90 pop r15
+ 2744: ef 90 pop r14
+ 2746: 08 95 ret
+
+00002748 <__vector_16>:
+ 2748: 1f 92 push r1
+ 274a: 0f 92 push r0
+ 274c: 0f b6 in r0, 0x3f ; 63
+ 274e: 0f 92 push r0
+ 2750: 11 24 eor r1, r1
+ 2752: 2f 93 push r18
+ 2754: 3f 93 push r19
+ 2756: 4f 93 push r20
+ 2758: 5f 93 push r21
+ 275a: 6f 93 push r22
+ 275c: 7f 93 push r23
+ 275e: 8f 93 push r24
+ 2760: 9f 93 push r25
+ 2762: af 93 push r26
+ 2764: bf 93 push r27
+ 2766: 20 91 89 03 lds r18, 0x0389
+ 276a: 30 91 8a 03 lds r19, 0x038A
+ 276e: 40 91 8b 03 lds r20, 0x038B
+ 2772: 50 91 8c 03 lds r21, 0x038C
+ 2776: 70 91 8d 03 lds r23, 0x038D
+ 277a: da 01 movw r26, r20
+ 277c: c9 01 movw r24, r18
+ 277e: 02 96 adiw r24, 0x02 ; 2
+ 2780: a1 1d adc r26, r1
+ 2782: b1 1d adc r27, r1
+ 2784: 67 2f mov r22, r23
+ 2786: 6a 5f subi r22, 0xFA ; 250
+ 2788: 6d 37 cpi r22, 0x7D ; 125
+ 278a: 30 f0 brcs .+12 ; 0x2798 <__vector_16+0x50>
+ 278c: 6d 57 subi r22, 0x7D ; 125
+ 278e: da 01 movw r26, r20
+ 2790: c9 01 movw r24, r18
+ 2792: 03 96 adiw r24, 0x03 ; 3
+ 2794: a1 1d adc r26, r1
+ 2796: b1 1d adc r27, r1
+ 2798: 60 93 8d 03 sts 0x038D, r22
+ 279c: 80 93 89 03 sts 0x0389, r24
+ 27a0: 90 93 8a 03 sts 0x038A, r25
+ 27a4: a0 93 8b 03 sts 0x038B, r26
+ 27a8: b0 93 8c 03 sts 0x038C, r27
+ 27ac: 80 91 85 03 lds r24, 0x0385
+ 27b0: 90 91 86 03 lds r25, 0x0386
+ 27b4: a0 91 87 03 lds r26, 0x0387
+ 27b8: b0 91 88 03 lds r27, 0x0388
+ 27bc: 01 96 adiw r24, 0x01 ; 1
+ 27be: a1 1d adc r26, r1
+ 27c0: b1 1d adc r27, r1
+ 27c2: 80 93 85 03 sts 0x0385, r24
+ 27c6: 90 93 86 03 sts 0x0386, r25
+ 27ca: a0 93 87 03 sts 0x0387, r26
+ 27ce: b0 93 88 03 sts 0x0388, r27
+ 27d2: bf 91 pop r27
+ 27d4: af 91 pop r26
+ 27d6: 9f 91 pop r25
+ 27d8: 8f 91 pop r24
+ 27da: 7f 91 pop r23
+ 27dc: 6f 91 pop r22
+ 27de: 5f 91 pop r21
+ 27e0: 4f 91 pop r20
+ 27e2: 3f 91 pop r19
+ 27e4: 2f 91 pop r18
+ 27e6: 0f 90 pop r0
+ 27e8: 0f be out 0x3f, r0 ; 63
+ 27ea: 0f 90 pop r0
+ 27ec: 1f 90 pop r1
+ 27ee: 18 95 reti
+
+000027f0 <millis>:
+ 27f0: 8f b7 in r24, 0x3f ; 63
+ 27f2: f8 94 cli
+ 27f4: 20 91 89 03 lds r18, 0x0389
+ 27f8: 30 91 8a 03 lds r19, 0x038A
+ 27fc: 40 91 8b 03 lds r20, 0x038B
+ 2800: 50 91 8c 03 lds r21, 0x038C
+ 2804: 8f bf out 0x3f, r24 ; 63
+ 2806: b9 01 movw r22, r18
+ 2808: ca 01 movw r24, r20
+ 280a: 08 95 ret
+
+0000280c <micros>:
+ 280c: 9f b7 in r25, 0x3f ; 63
+ 280e: f8 94 cli
+ 2810: 20 91 85 03 lds r18, 0x0385
+ 2814: 30 91 86 03 lds r19, 0x0386
+ 2818: 40 91 87 03 lds r20, 0x0387
+ 281c: 50 91 88 03 lds r21, 0x0388
+ 2820: 86 b5 in r24, 0x26 ; 38
+ 2822: a8 9b sbis 0x15, 0 ; 21
+ 2824: 06 c0 rjmp .+12 ; 0x2832 <micros+0x26>
+ 2826: 8f 3f cpi r24, 0xFF ; 255
+ 2828: 21 f0 breq .+8 ; 0x2832 <micros+0x26>
+ 282a: 2f 5f subi r18, 0xFF ; 255
+ 282c: 3f 4f sbci r19, 0xFF ; 255
+ 282e: 4f 4f sbci r20, 0xFF ; 255
+ 2830: 5f 4f sbci r21, 0xFF ; 255
+ 2832: 9f bf out 0x3f, r25 ; 63
+ 2834: 54 2f mov r21, r20
+ 2836: 43 2f mov r20, r19
+ 2838: 32 2f mov r19, r18
+ 283a: 22 27 eor r18, r18
+ 283c: 28 0f add r18, r24
+ 283e: 31 1d adc r19, r1
+ 2840: 41 1d adc r20, r1
+ 2842: 51 1d adc r21, r1
+ 2844: 83 e0 ldi r24, 0x03 ; 3
+ 2846: 22 0f add r18, r18
+ 2848: 33 1f adc r19, r19
+ 284a: 44 1f adc r20, r20
+ 284c: 55 1f adc r21, r21
+ 284e: 8a 95 dec r24
+ 2850: d1 f7 brne .-12 ; 0x2846 <micros+0x3a>
+ 2852: b9 01 movw r22, r18
+ 2854: ca 01 movw r24, r20
+ 2856: 08 95 ret
+
+00002858 <delay>:
+ 2858: ef 92 push r14
+ 285a: ff 92 push r15
+ 285c: 0f 93 push r16
+ 285e: 1f 93 push r17
+ 2860: cf 93 push r28
+ 2862: df 93 push r29
+ 2864: 7b 01 movw r14, r22
+ 2866: 8c 01 movw r16, r24
+ 2868: 0e 94 06 14 call 0x280c ; 0x280c <micros>
+ 286c: eb 01 movw r28, r22
+ 286e: 0e c0 rjmp .+28 ; 0x288c <delay+0x34>
+ 2870: 0e 94 06 14 call 0x280c ; 0x280c <micros>
+ 2874: 6c 1b sub r22, r28
+ 2876: 7d 0b sbc r23, r29
+ 2878: 68 5e subi r22, 0xE8 ; 232
+ 287a: 73 40 sbci r23, 0x03 ; 3
+ 287c: c8 f3 brcs .-14 ; 0x2870 <delay+0x18>
+ 287e: 08 94 sec
+ 2880: e1 08 sbc r14, r1
+ 2882: f1 08 sbc r15, r1
+ 2884: 01 09 sbc r16, r1
+ 2886: 11 09 sbc r17, r1
+ 2888: c8 51 subi r28, 0x18 ; 24
+ 288a: dc 4f sbci r29, 0xFC ; 252
+ 288c: e1 14 cp r14, r1
+ 288e: f1 04 cpc r15, r1
+ 2890: 01 05 cpc r16, r1
+ 2892: 11 05 cpc r17, r1
+ 2894: 69 f7 brne .-38 ; 0x2870 <delay+0x18>
+ 2896: df 91 pop r29
+ 2898: cf 91 pop r28
+ 289a: 1f 91 pop r17
+ 289c: 0f 91 pop r16
+ 289e: ff 90 pop r15
+ 28a0: ef 90 pop r14
+ 28a2: 08 95 ret
+
+000028a4 <delayMicroseconds>:
+ 28a4: 01 97 sbiw r24, 0x01 ; 1
+ 28a6: 39 f0 breq .+14 ; 0x28b6 <delayMicroseconds+0x12>
+ 28a8: 01 97 sbiw r24, 0x01 ; 1
+ 28aa: 29 f0 breq .+10 ; 0x28b6 <delayMicroseconds+0x12>
+ 28ac: 88 0f add r24, r24
+ 28ae: 99 1f adc r25, r25
+ 28b0: 01 97 sbiw r24, 0x01 ; 1
+ 28b2: 01 97 sbiw r24, 0x01 ; 1
+ 28b4: f1 f7 brne .-4 ; 0x28b2 <delayMicroseconds+0xe>
+ 28b6: 08 95 ret
+
+000028b8 <init>:
+ 28b8: 78 94 sei
+ 28ba: 84 b5 in r24, 0x24 ; 36
+ 28bc: 82 60 ori r24, 0x02 ; 2
+ 28be: 84 bd out 0x24, r24 ; 36
+ 28c0: 84 b5 in r24, 0x24 ; 36
+ 28c2: 81 60 ori r24, 0x01 ; 1
+ 28c4: 84 bd out 0x24, r24 ; 36
+ 28c6: 85 b5 in r24, 0x25 ; 37
+ 28c8: 82 60 ori r24, 0x02 ; 2
+ 28ca: 85 bd out 0x25, r24 ; 37
+ 28cc: 85 b5 in r24, 0x25 ; 37
+ 28ce: 81 60 ori r24, 0x01 ; 1
+ 28d0: 85 bd out 0x25, r24 ; 37
+ 28d2: ee e6 ldi r30, 0x6E ; 110
+ 28d4: f0 e0 ldi r31, 0x00 ; 0
+ 28d6: 80 81 ld r24, Z
+ 28d8: 81 60 ori r24, 0x01 ; 1
+ 28da: 80 83 st Z, r24
+ 28dc: e1 e8 ldi r30, 0x81 ; 129
+ 28de: f0 e0 ldi r31, 0x00 ; 0
+ 28e0: 10 82 st Z, r1
+ 28e2: 80 81 ld r24, Z
+ 28e4: 82 60 ori r24, 0x02 ; 2
+ 28e6: 80 83 st Z, r24
+ 28e8: 80 81 ld r24, Z
+ 28ea: 81 60 ori r24, 0x01 ; 1
+ 28ec: 80 83 st Z, r24
+ 28ee: e0 e8 ldi r30, 0x80 ; 128
+ 28f0: f0 e0 ldi r31, 0x00 ; 0
+ 28f2: 80 81 ld r24, Z
+ 28f4: 81 60 ori r24, 0x01 ; 1
+ 28f6: 80 83 st Z, r24
+ 28f8: e1 eb ldi r30, 0xB1 ; 177
+ 28fa: f0 e0 ldi r31, 0x00 ; 0
+ 28fc: 80 81 ld r24, Z
+ 28fe: 84 60 ori r24, 0x04 ; 4
+ 2900: 80 83 st Z, r24
+ 2902: e0 eb ldi r30, 0xB0 ; 176
+ 2904: f0 e0 ldi r31, 0x00 ; 0
+ 2906: 80 81 ld r24, Z
+ 2908: 81 60 ori r24, 0x01 ; 1
+ 290a: 80 83 st Z, r24
+ 290c: ea e7 ldi r30, 0x7A ; 122
+ 290e: f0 e0 ldi r31, 0x00 ; 0
+ 2910: 80 81 ld r24, Z
+ 2912: 84 60 ori r24, 0x04 ; 4
+ 2914: 80 83 st Z, r24
+ 2916: 80 81 ld r24, Z
+ 2918: 82 60 ori r24, 0x02 ; 2
+ 291a: 80 83 st Z, r24
+ 291c: 80 81 ld r24, Z
+ 291e: 81 60 ori r24, 0x01 ; 1
+ 2920: 80 83 st Z, r24
+ 2922: 80 81 ld r24, Z
+ 2924: 80 68 ori r24, 0x80 ; 128
+ 2926: 80 83 st Z, r24
+ 2928: 10 92 c1 00 sts 0x00C1, r1
+ 292c: 08 95 ret
+
+0000292e <analogReference>:
+ 292e: 80 93 a7 01 sts 0x01A7, r24
+ 2932: 08 95 ret
+
+00002934 <analogRead>:
+ 2934: 98 2f mov r25, r24
+ 2936: 8e 30 cpi r24, 0x0E ; 14
+ 2938: 08 f0 brcs .+2 ; 0x293c <analogRead+0x8>
+ 293a: 9e 50 subi r25, 0x0E ; 14
+ 293c: 97 70 andi r25, 0x07 ; 7
+ 293e: 80 91 a7 01 lds r24, 0x01A7
+ 2942: 82 95 swap r24
+ 2944: 88 0f add r24, r24
+ 2946: 88 0f add r24, r24
+ 2948: 80 7c andi r24, 0xC0 ; 192
+ 294a: 89 2b or r24, r25
+ 294c: 80 93 7c 00 sts 0x007C, r24
+ 2950: 80 91 7a 00 lds r24, 0x007A
+ 2954: 80 64 ori r24, 0x40 ; 64
+ 2956: 80 93 7a 00 sts 0x007A, r24
+ 295a: 80 91 7a 00 lds r24, 0x007A
+ 295e: 86 fd sbrc r24, 6
+ 2960: fc cf rjmp .-8 ; 0x295a <analogRead+0x26>
+ 2962: 20 91 78 00 lds r18, 0x0078
+ 2966: 40 91 79 00 lds r20, 0x0079
+ 296a: 94 2f mov r25, r20
+ 296c: 80 e0 ldi r24, 0x00 ; 0
+ 296e: 30 e0 ldi r19, 0x00 ; 0
+ 2970: 28 2b or r18, r24
+ 2972: 39 2b or r19, r25
+ 2974: c9 01 movw r24, r18
+ 2976: 08 95 ret
+
+00002978 <analogWrite>:
+ 2978: 1f 93 push r17
+ 297a: cf 93 push r28
+ 297c: df 93 push r29
+ 297e: 18 2f mov r17, r24
+ 2980: eb 01 movw r28, r22
+ 2982: 61 e0 ldi r22, 0x01 ; 1
+ 2984: 0e 94 1c 15 call 0x2a38 ; 0x2a38 <pinMode>
+ 2988: 20 97 sbiw r28, 0x00 ; 0
+ 298a: 09 f4 brne .+2 ; 0x298e <analogWrite+0x16>
+ 298c: 4a c0 rjmp .+148 ; 0x2a22 <analogWrite+0xaa>
+ 298e: cf 3f cpi r28, 0xFF ; 255
+ 2990: d1 05 cpc r29, r1
+ 2992: 09 f4 brne .+2 ; 0x2996 <analogWrite+0x1e>
+ 2994: 49 c0 rjmp .+146 ; 0x2a28 <analogWrite+0xb0>
+ 2996: e1 2f mov r30, r17
+ 2998: f0 e0 ldi r31, 0x00 ; 0
+ 299a: e1 55 subi r30, 0x51 ; 81
+ 299c: ff 4f sbci r31, 0xFF ; 255
+ 299e: 84 91 lpm r24, Z+
+ 29a0: 83 30 cpi r24, 0x03 ; 3
+ 29a2: c1 f0 breq .+48 ; 0x29d4 <analogWrite+0x5c>
+ 29a4: 84 30 cpi r24, 0x04 ; 4
+ 29a6: 28 f4 brcc .+10 ; 0x29b2 <analogWrite+0x3a>
+ 29a8: 81 30 cpi r24, 0x01 ; 1
+ 29aa: 51 f0 breq .+20 ; 0x29c0 <analogWrite+0x48>
+ 29ac: 82 30 cpi r24, 0x02 ; 2
+ 29ae: b1 f5 brne .+108 ; 0x2a1c <analogWrite+0xa4>
+ 29b0: 0c c0 rjmp .+24 ; 0x29ca <analogWrite+0x52>
+ 29b2: 86 30 cpi r24, 0x06 ; 6
+ 29b4: 19 f1 breq .+70 ; 0x29fc <analogWrite+0x84>
+ 29b6: 87 30 cpi r24, 0x07 ; 7
+ 29b8: 49 f1 breq .+82 ; 0x2a0c <analogWrite+0x94>
+ 29ba: 84 30 cpi r24, 0x04 ; 4
+ 29bc: 79 f5 brne .+94 ; 0x2a1c <analogWrite+0xa4>
+ 29be: 14 c0 rjmp .+40 ; 0x29e8 <analogWrite+0x70>
+ 29c0: 84 b5 in r24, 0x24 ; 36
+ 29c2: 80 68 ori r24, 0x80 ; 128
+ 29c4: 84 bd out 0x24, r24 ; 36
+ 29c6: c7 bd out 0x27, r28 ; 39
+ 29c8: 33 c0 rjmp .+102 ; 0x2a30 <analogWrite+0xb8>
+ 29ca: 84 b5 in r24, 0x24 ; 36
+ 29cc: 80 62 ori r24, 0x20 ; 32
+ 29ce: 84 bd out 0x24, r24 ; 36
+ 29d0: c8 bd out 0x28, r28 ; 40
+ 29d2: 2e c0 rjmp .+92 ; 0x2a30 <analogWrite+0xb8>
+ 29d4: 80 91 80 00 lds r24, 0x0080
+ 29d8: 80 68 ori r24, 0x80 ; 128
+ 29da: 80 93 80 00 sts 0x0080, r24
+ 29de: d0 93 89 00 sts 0x0089, r29
+ 29e2: c0 93 88 00 sts 0x0088, r28
+ 29e6: 24 c0 rjmp .+72 ; 0x2a30 <analogWrite+0xb8>
+ 29e8: 80 91 80 00 lds r24, 0x0080
+ 29ec: 80 62 ori r24, 0x20 ; 32
+ 29ee: 80 93 80 00 sts 0x0080, r24
+ 29f2: d0 93 8b 00 sts 0x008B, r29
+ 29f6: c0 93 8a 00 sts 0x008A, r28
+ 29fa: 1a c0 rjmp .+52 ; 0x2a30 <analogWrite+0xb8>
+ 29fc: 80 91 b0 00 lds r24, 0x00B0
+ 2a00: 80 68 ori r24, 0x80 ; 128
+ 2a02: 80 93 b0 00 sts 0x00B0, r24
+ 2a06: c0 93 b3 00 sts 0x00B3, r28
+ 2a0a: 12 c0 rjmp .+36 ; 0x2a30 <analogWrite+0xb8>
+ 2a0c: 80 91 b0 00 lds r24, 0x00B0
+ 2a10: 80 62 ori r24, 0x20 ; 32
+ 2a12: 80 93 b0 00 sts 0x00B0, r24
+ 2a16: c0 93 b4 00 sts 0x00B4, r28
+ 2a1a: 0a c0 rjmp .+20 ; 0x2a30 <analogWrite+0xb8>
+ 2a1c: c0 38 cpi r28, 0x80 ; 128
+ 2a1e: d1 05 cpc r29, r1
+ 2a20: 1c f4 brge .+6 ; 0x2a28 <analogWrite+0xb0>
+ 2a22: 81 2f mov r24, r17
+ 2a24: 60 e0 ldi r22, 0x00 ; 0
+ 2a26: 02 c0 rjmp .+4 ; 0x2a2c <analogWrite+0xb4>
+ 2a28: 81 2f mov r24, r17
+ 2a2a: 61 e0 ldi r22, 0x01 ; 1
+ 2a2c: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2a30: df 91 pop r29
+ 2a32: cf 91 pop r28
+ 2a34: 1f 91 pop r17
+ 2a36: 08 95 ret
+
+00002a38 <pinMode>:
+ 2a38: 48 2f mov r20, r24
+ 2a3a: 50 e0 ldi r21, 0x00 ; 0
+ 2a3c: ca 01 movw r24, r20
+ 2a3e: 85 56 subi r24, 0x65 ; 101
+ 2a40: 9f 4f sbci r25, 0xFF ; 255
+ 2a42: fc 01 movw r30, r24
+ 2a44: 24 91 lpm r18, Z+
+ 2a46: 49 57 subi r20, 0x79 ; 121
+ 2a48: 5f 4f sbci r21, 0xFF ; 255
+ 2a4a: fa 01 movw r30, r20
+ 2a4c: 84 91 lpm r24, Z+
+ 2a4e: 88 23 and r24, r24
+ 2a50: c1 f0 breq .+48 ; 0x2a82 <pinMode+0x4a>
+ 2a52: e8 2f mov r30, r24
+ 2a54: f0 e0 ldi r31, 0x00 ; 0
+ 2a56: ee 0f add r30, r30
+ 2a58: ff 1f adc r31, r31
+ 2a5a: e7 59 subi r30, 0x97 ; 151
+ 2a5c: ff 4f sbci r31, 0xFF ; 255
+ 2a5e: a5 91 lpm r26, Z+
+ 2a60: b4 91 lpm r27, Z+
+ 2a62: 66 23 and r22, r22
+ 2a64: 41 f4 brne .+16 ; 0x2a76 <pinMode+0x3e>
+ 2a66: 9f b7 in r25, 0x3f ; 63
+ 2a68: f8 94 cli
+ 2a6a: 8c 91 ld r24, X
+ 2a6c: 20 95 com r18
+ 2a6e: 82 23 and r24, r18
+ 2a70: 8c 93 st X, r24
+ 2a72: 9f bf out 0x3f, r25 ; 63
+ 2a74: 08 95 ret
+ 2a76: 9f b7 in r25, 0x3f ; 63
+ 2a78: f8 94 cli
+ 2a7a: 8c 91 ld r24, X
+ 2a7c: 82 2b or r24, r18
+ 2a7e: 8c 93 st X, r24
+ 2a80: 9f bf out 0x3f, r25 ; 63
+ 2a82: 08 95 ret
+
+00002a84 <turnOffPWM>:
+ 2a84: 83 30 cpi r24, 0x03 ; 3
+ 2a86: 71 f0 breq .+28 ; 0x2aa4 <turnOffPWM+0x20>
+ 2a88: 84 30 cpi r24, 0x04 ; 4
+ 2a8a: 28 f4 brcc .+10 ; 0x2a96 <turnOffPWM+0x12>
+ 2a8c: 81 30 cpi r24, 0x01 ; 1
+ 2a8e: a1 f0 breq .+40 ; 0x2ab8 <turnOffPWM+0x34>
+ 2a90: 82 30 cpi r24, 0x02 ; 2
+ 2a92: 21 f5 brne .+72 ; 0x2adc <turnOffPWM+0x58>
+ 2a94: 14 c0 rjmp .+40 ; 0x2abe <turnOffPWM+0x3a>
+ 2a96: 86 30 cpi r24, 0x06 ; 6
+ 2a98: b1 f0 breq .+44 ; 0x2ac6 <turnOffPWM+0x42>
+ 2a9a: 87 30 cpi r24, 0x07 ; 7
+ 2a9c: d1 f0 breq .+52 ; 0x2ad2 <turnOffPWM+0x4e>
+ 2a9e: 84 30 cpi r24, 0x04 ; 4
+ 2aa0: e9 f4 brne .+58 ; 0x2adc <turnOffPWM+0x58>
+ 2aa2: 04 c0 rjmp .+8 ; 0x2aac <turnOffPWM+0x28>
+ 2aa4: 80 91 80 00 lds r24, 0x0080
+ 2aa8: 8f 77 andi r24, 0x7F ; 127
+ 2aaa: 03 c0 rjmp .+6 ; 0x2ab2 <turnOffPWM+0x2e>
+ 2aac: 80 91 80 00 lds r24, 0x0080
+ 2ab0: 8f 7d andi r24, 0xDF ; 223
+ 2ab2: 80 93 80 00 sts 0x0080, r24
+ 2ab6: 08 95 ret
+ 2ab8: 84 b5 in r24, 0x24 ; 36
+ 2aba: 8f 77 andi r24, 0x7F ; 127
+ 2abc: 02 c0 rjmp .+4 ; 0x2ac2 <turnOffPWM+0x3e>
+ 2abe: 84 b5 in r24, 0x24 ; 36
+ 2ac0: 8f 7d andi r24, 0xDF ; 223
+ 2ac2: 84 bd out 0x24, r24 ; 36
+ 2ac4: 08 95 ret
+ 2ac6: 80 91 b0 00 lds r24, 0x00B0
+ 2aca: 8f 77 andi r24, 0x7F ; 127
+ 2acc: 80 93 b0 00 sts 0x00B0, r24
+ 2ad0: 08 95 ret
+ 2ad2: 80 91 b0 00 lds r24, 0x00B0
+ 2ad6: 8f 7d andi r24, 0xDF ; 223
+ 2ad8: 80 93 b0 00 sts 0x00B0, r24
+ 2adc: 08 95 ret
+
+00002ade <digitalWrite>:
+ 2ade: ff 92 push r15
+ 2ae0: 0f 93 push r16
+ 2ae2: 1f 93 push r17
+ 2ae4: f6 2e mov r15, r22
+ 2ae6: 48 2f mov r20, r24
+ 2ae8: 50 e0 ldi r21, 0x00 ; 0
+ 2aea: ca 01 movw r24, r20
+ 2aec: 81 55 subi r24, 0x51 ; 81
+ 2aee: 9f 4f sbci r25, 0xFF ; 255
+ 2af0: fc 01 movw r30, r24
+ 2af2: 24 91 lpm r18, Z+
+ 2af4: ca 01 movw r24, r20
+ 2af6: 85 56 subi r24, 0x65 ; 101
+ 2af8: 9f 4f sbci r25, 0xFF ; 255
+ 2afa: fc 01 movw r30, r24
+ 2afc: 14 91 lpm r17, Z+
+ 2afe: 49 57 subi r20, 0x79 ; 121
+ 2b00: 5f 4f sbci r21, 0xFF ; 255
+ 2b02: fa 01 movw r30, r20
+ 2b04: 04 91 lpm r16, Z+
+ 2b06: 00 23 and r16, r16
+ 2b08: d9 f0 breq .+54 ; 0x2b40 <digitalWrite+0x62>
+ 2b0a: 22 23 and r18, r18
+ 2b0c: 19 f0 breq .+6 ; 0x2b14 <digitalWrite+0x36>
+ 2b0e: 82 2f mov r24, r18
+ 2b10: 0e 94 42 15 call 0x2a84 ; 0x2a84 <turnOffPWM>
+ 2b14: e0 2f mov r30, r16
+ 2b16: f0 e0 ldi r31, 0x00 ; 0
+ 2b18: ee 0f add r30, r30
+ 2b1a: ff 1f adc r31, r31
+ 2b1c: ed 58 subi r30, 0x8D ; 141
+ 2b1e: ff 4f sbci r31, 0xFF ; 255
+ 2b20: a5 91 lpm r26, Z+
+ 2b22: b4 91 lpm r27, Z+
+ 2b24: ff 20 and r15, r15
+ 2b26: 31 f4 brne .+12 ; 0x2b34 <digitalWrite+0x56>
+ 2b28: 9f b7 in r25, 0x3f ; 63
+ 2b2a: f8 94 cli
+ 2b2c: 8c 91 ld r24, X
+ 2b2e: 10 95 com r17
+ 2b30: 81 23 and r24, r17
+ 2b32: 04 c0 rjmp .+8 ; 0x2b3c <digitalWrite+0x5e>
+ 2b34: 9f b7 in r25, 0x3f ; 63
+ 2b36: f8 94 cli
+ 2b38: 8c 91 ld r24, X
+ 2b3a: 81 2b or r24, r17
+ 2b3c: 8c 93 st X, r24
+ 2b3e: 9f bf out 0x3f, r25 ; 63
+ 2b40: 1f 91 pop r17
+ 2b42: 0f 91 pop r16
+ 2b44: ff 90 pop r15
+ 2b46: 08 95 ret
+
+00002b48 <digitalRead>:
+ 2b48: 0f 93 push r16
+ 2b4a: 1f 93 push r17
+ 2b4c: 48 2f mov r20, r24
+ 2b4e: 50 e0 ldi r21, 0x00 ; 0
+ 2b50: ca 01 movw r24, r20
+ 2b52: 81 55 subi r24, 0x51 ; 81
+ 2b54: 9f 4f sbci r25, 0xFF ; 255
+ 2b56: fc 01 movw r30, r24
+ 2b58: 24 91 lpm r18, Z+
+ 2b5a: ca 01 movw r24, r20
+ 2b5c: 85 56 subi r24, 0x65 ; 101
+ 2b5e: 9f 4f sbci r25, 0xFF ; 255
+ 2b60: fc 01 movw r30, r24
+ 2b62: 04 91 lpm r16, Z+
+ 2b64: 49 57 subi r20, 0x79 ; 121
+ 2b66: 5f 4f sbci r21, 0xFF ; 255
+ 2b68: fa 01 movw r30, r20
+ 2b6a: 14 91 lpm r17, Z+
+ 2b6c: 11 23 and r17, r17
+ 2b6e: 19 f4 brne .+6 ; 0x2b76 <digitalRead+0x2e>
+ 2b70: 20 e0 ldi r18, 0x00 ; 0
+ 2b72: 30 e0 ldi r19, 0x00 ; 0
+ 2b74: 15 c0 rjmp .+42 ; 0x2ba0 <digitalRead+0x58>
+ 2b76: 22 23 and r18, r18
+ 2b78: 19 f0 breq .+6 ; 0x2b80 <digitalRead+0x38>
+ 2b7a: 82 2f mov r24, r18
+ 2b7c: 0e 94 42 15 call 0x2a84 ; 0x2a84 <turnOffPWM>
+ 2b80: 81 2f mov r24, r17
+ 2b82: 90 e0 ldi r25, 0x00 ; 0
+ 2b84: 88 0f add r24, r24
+ 2b86: 99 1f adc r25, r25
+ 2b88: 83 58 subi r24, 0x83 ; 131
+ 2b8a: 9f 4f sbci r25, 0xFF ; 255
+ 2b8c: fc 01 movw r30, r24
+ 2b8e: a5 91 lpm r26, Z+
+ 2b90: b4 91 lpm r27, Z+
+ 2b92: 8c 91 ld r24, X
+ 2b94: 20 e0 ldi r18, 0x00 ; 0
+ 2b96: 30 e0 ldi r19, 0x00 ; 0
+ 2b98: 80 23 and r24, r16
+ 2b9a: 11 f0 breq .+4 ; 0x2ba0 <digitalRead+0x58>
+ 2b9c: 21 e0 ldi r18, 0x01 ; 1
+ 2b9e: 30 e0 ldi r19, 0x00 ; 0
+ 2ba0: c9 01 movw r24, r18
+ 2ba2: 1f 91 pop r17
+ 2ba4: 0f 91 pop r16
+ 2ba6: 08 95 ret
+
+00002ba8 <pulseIn>:
+ 2ba8: 8f 92 push r8
+ 2baa: 9f 92 push r9
+ 2bac: af 92 push r10
+ 2bae: bf 92 push r11
+ 2bb0: cf 92 push r12
+ 2bb2: df 92 push r13
+ 2bb4: ef 92 push r14
+ 2bb6: ff 92 push r15
+ 2bb8: 0f 93 push r16
+ 2bba: 1f 93 push r17
+ 2bbc: cf 93 push r28
+ 2bbe: df 93 push r29
+ 2bc0: a8 2f mov r26, r24
+ 2bc2: b0 e0 ldi r27, 0x00 ; 0
+ 2bc4: cd 01 movw r24, r26
+ 2bc6: 85 56 subi r24, 0x65 ; 101
+ 2bc8: 9f 4f sbci r25, 0xFF ; 255
+ 2bca: fc 01 movw r30, r24
+ 2bcc: 84 90 lpm r8, Z+
+ 2bce: a9 57 subi r26, 0x79 ; 121
+ 2bd0: bf 4f sbci r27, 0xFF ; 255
+ 2bd2: fd 01 movw r30, r26
+ 2bd4: d4 90 lpm r13, Z+
+ 2bd6: 66 23 and r22, r22
+ 2bd8: 11 f4 brne .+4 ; 0x2bde <pulseIn+0x36>
+ 2bda: 99 24 eor r9, r9
+ 2bdc: 01 c0 rjmp .+2 ; 0x2be0 <pulseIn+0x38>
+ 2bde: 98 2c mov r9, r8
+ 2be0: ca 01 movw r24, r20
+ 2be2: b9 01 movw r22, r18
+ 2be4: 20 e4 ldi r18, 0x40 ; 64
+ 2be6: 3f e1 ldi r19, 0x1F ; 31
+ 2be8: 40 e0 ldi r20, 0x00 ; 0
+ 2bea: 50 e0 ldi r21, 0x00 ; 0
+ 2bec: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 2bf0: 20 e8 ldi r18, 0x80 ; 128
+ 2bf2: 3e e3 ldi r19, 0x3E ; 62
+ 2bf4: 40 e0 ldi r20, 0x00 ; 0
+ 2bf6: 50 e0 ldi r21, 0x00 ; 0
+ 2bf8: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 2bfc: 79 01 movw r14, r18
+ 2bfe: 8a 01 movw r16, r20
+ 2c00: 6d 2d mov r22, r13
+ 2c02: 70 e0 ldi r23, 0x00 ; 0
+ 2c04: 66 0f add r22, r22
+ 2c06: 77 1f adc r23, r23
+ 2c08: 63 58 subi r22, 0x83 ; 131
+ 2c0a: 7f 4f sbci r23, 0xFF ; 255
+ 2c0c: aa 24 eor r10, r10
+ 2c0e: bb 24 eor r11, r11
+ 2c10: 65 01 movw r12, r10
+ 2c12: fb 01 movw r30, r22
+ 2c14: a5 91 lpm r26, Z+
+ 2c16: b4 91 lpm r27, Z+
+ 2c18: 0b c0 rjmp .+22 ; 0x2c30 <pulseIn+0x88>
+ 2c1a: ae 14 cp r10, r14
+ 2c1c: bf 04 cpc r11, r15
+ 2c1e: c0 06 cpc r12, r16
+ 2c20: d1 06 cpc r13, r17
+ 2c22: 09 f4 brne .+2 ; 0x2c26 <pulseIn+0x7e>
+ 2c24: 4f c0 rjmp .+158 ; 0x2cc4 <pulseIn+0x11c>
+ 2c26: 08 94 sec
+ 2c28: a1 1c adc r10, r1
+ 2c2a: b1 1c adc r11, r1
+ 2c2c: c1 1c adc r12, r1
+ 2c2e: d1 1c adc r13, r1
+ 2c30: 8c 91 ld r24, X
+ 2c32: 88 21 and r24, r8
+ 2c34: 89 15 cp r24, r9
+ 2c36: 89 f3 breq .-30 ; 0x2c1a <pulseIn+0x72>
+ 2c38: 0c c0 rjmp .+24 ; 0x2c52 <pulseIn+0xaa>
+ 2c3a: ae 14 cp r10, r14
+ 2c3c: bf 04 cpc r11, r15
+ 2c3e: c0 06 cpc r12, r16
+ 2c40: d1 06 cpc r13, r17
+ 2c42: 09 f4 brne .+2 ; 0x2c46 <pulseIn+0x9e>
+ 2c44: 3f c0 rjmp .+126 ; 0x2cc4 <pulseIn+0x11c>
+ 2c46: 08 94 sec
+ 2c48: a1 1c adc r10, r1
+ 2c4a: b1 1c adc r11, r1
+ 2c4c: c1 1c adc r12, r1
+ 2c4e: d1 1c adc r13, r1
+ 2c50: 03 c0 rjmp .+6 ; 0x2c58 <pulseIn+0xb0>
+ 2c52: fb 01 movw r30, r22
+ 2c54: a5 91 lpm r26, Z+
+ 2c56: b4 91 lpm r27, Z+
+ 2c58: 8c 91 ld r24, X
+ 2c5a: 88 21 and r24, r8
+ 2c5c: 89 15 cp r24, r9
+ 2c5e: 69 f7 brne .-38 ; 0x2c3a <pulseIn+0x92>
+ 2c60: 20 e0 ldi r18, 0x00 ; 0
+ 2c62: 30 e0 ldi r19, 0x00 ; 0
+ 2c64: 40 e0 ldi r20, 0x00 ; 0
+ 2c66: 50 e0 ldi r21, 0x00 ; 0
+ 2c68: fb 01 movw r30, r22
+ 2c6a: c5 91 lpm r28, Z+
+ 2c6c: d4 91 lpm r29, Z+
+ 2c6e: 0f c0 rjmp .+30 ; 0x2c8e <pulseIn+0xe6>
+ 2c70: da 01 movw r26, r20
+ 2c72: c9 01 movw r24, r18
+ 2c74: 8a 0d add r24, r10
+ 2c76: 9b 1d adc r25, r11
+ 2c78: ac 1d adc r26, r12
+ 2c7a: bd 1d adc r27, r13
+ 2c7c: 8e 15 cp r24, r14
+ 2c7e: 9f 05 cpc r25, r15
+ 2c80: a0 07 cpc r26, r16
+ 2c82: b1 07 cpc r27, r17
+ 2c84: f9 f0 breq .+62 ; 0x2cc4 <pulseIn+0x11c>
+ 2c86: 2f 5f subi r18, 0xFF ; 255
+ 2c88: 3f 4f sbci r19, 0xFF ; 255
+ 2c8a: 4f 4f sbci r20, 0xFF ; 255
+ 2c8c: 5f 4f sbci r21, 0xFF ; 255
+ 2c8e: 88 81 ld r24, Y
+ 2c90: 88 21 and r24, r8
+ 2c92: 89 15 cp r24, r9
+ 2c94: 69 f3 breq .-38 ; 0x2c70 <pulseIn+0xc8>
+ 2c96: ca 01 movw r24, r20
+ 2c98: b9 01 movw r22, r18
+ 2c9a: 28 e0 ldi r18, 0x08 ; 8
+ 2c9c: 32 e5 ldi r19, 0x52 ; 82
+ 2c9e: 40 e0 ldi r20, 0x00 ; 0
+ 2ca0: 50 e0 ldi r21, 0x00 ; 0
+ 2ca2: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 2ca6: 60 58 subi r22, 0x80 ; 128
+ 2ca8: 71 4c sbci r23, 0xC1 ; 193
+ 2caa: 8f 4f sbci r24, 0xFF ; 255
+ 2cac: 9f 4f sbci r25, 0xFF ; 255
+ 2cae: 20 e4 ldi r18, 0x40 ; 64
+ 2cb0: 3f e1 ldi r19, 0x1F ; 31
+ 2cb2: 40 e0 ldi r20, 0x00 ; 0
+ 2cb4: 50 e0 ldi r21, 0x00 ; 0
+ 2cb6: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 2cba: c9 01 movw r24, r18
+ 2cbc: da 01 movw r26, r20
+ 2cbe: 9c 01 movw r18, r24
+ 2cc0: ad 01 movw r20, r26
+ 2cc2: 04 c0 rjmp .+8 ; 0x2ccc <pulseIn+0x124>
+ 2cc4: 20 e0 ldi r18, 0x00 ; 0
+ 2cc6: 30 e0 ldi r19, 0x00 ; 0
+ 2cc8: 40 e0 ldi r20, 0x00 ; 0
+ 2cca: 50 e0 ldi r21, 0x00 ; 0
+ 2ccc: b9 01 movw r22, r18
+ 2cce: ca 01 movw r24, r20
+ 2cd0: df 91 pop r29
+ 2cd2: cf 91 pop r28
+ 2cd4: 1f 91 pop r17
+ 2cd6: 0f 91 pop r16
+ 2cd8: ff 90 pop r15
+ 2cda: ef 90 pop r14
+ 2cdc: df 90 pop r13
+ 2cde: cf 90 pop r12
+ 2ce0: bf 90 pop r11
+ 2ce2: af 90 pop r10
+ 2ce4: 9f 90 pop r9
+ 2ce6: 8f 90 pop r8
+ 2ce8: 08 95 ret
+
+00002cea <shiftOut>:
+ 2cea: bf 92 push r11
+ 2cec: cf 92 push r12
+ 2cee: df 92 push r13
+ 2cf0: ef 92 push r14
+ 2cf2: ff 92 push r15
+ 2cf4: 0f 93 push r16
+ 2cf6: 1f 93 push r17
+ 2cf8: cf 93 push r28
+ 2cfa: df 93 push r29
+ 2cfc: e8 2e mov r14, r24
+ 2cfe: f6 2e mov r15, r22
+ 2d00: b4 2e mov r11, r20
+ 2d02: c7 e0 ldi r28, 0x07 ; 7
+ 2d04: d0 e0 ldi r29, 0x00 ; 0
+ 2d06: 02 2f mov r16, r18
+ 2d08: 10 e0 ldi r17, 0x00 ; 0
+ 2d0a: 87 e0 ldi r24, 0x07 ; 7
+ 2d0c: c8 2e mov r12, r24
+ 2d0e: d1 2c mov r13, r1
+ 2d10: bb 20 and r11, r11
+ 2d12: 59 f4 brne .+22 ; 0x2d2a <shiftOut+0x40>
+ 2d14: b6 01 movw r22, r12
+ 2d16: 6c 1b sub r22, r28
+ 2d18: 7d 0b sbc r23, r29
+ 2d1a: c8 01 movw r24, r16
+ 2d1c: 02 c0 rjmp .+4 ; 0x2d22 <shiftOut+0x38>
+ 2d1e: 95 95 asr r25
+ 2d20: 87 95 ror r24
+ 2d22: 6a 95 dec r22
+ 2d24: e2 f7 brpl .-8 ; 0x2d1e <shiftOut+0x34>
+ 2d26: bc 01 movw r22, r24
+ 2d28: 07 c0 rjmp .+14 ; 0x2d38 <shiftOut+0x4e>
+ 2d2a: b8 01 movw r22, r16
+ 2d2c: 0c 2e mov r0, r28
+ 2d2e: 02 c0 rjmp .+4 ; 0x2d34 <shiftOut+0x4a>
+ 2d30: 75 95 asr r23
+ 2d32: 67 95 ror r22
+ 2d34: 0a 94 dec r0
+ 2d36: e2 f7 brpl .-8 ; 0x2d30 <shiftOut+0x46>
+ 2d38: 61 70 andi r22, 0x01 ; 1
+ 2d3a: 8e 2d mov r24, r14
+ 2d3c: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2d40: 8f 2d mov r24, r15
+ 2d42: 61 e0 ldi r22, 0x01 ; 1
+ 2d44: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2d48: 8f 2d mov r24, r15
+ 2d4a: 60 e0 ldi r22, 0x00 ; 0
+ 2d4c: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2d50: 21 97 sbiw r28, 0x01 ; 1
+ 2d52: 9f ef ldi r25, 0xFF ; 255
+ 2d54: cf 3f cpi r28, 0xFF ; 255
+ 2d56: d9 07 cpc r29, r25
+ 2d58: d9 f6 brne .-74 ; 0x2d10 <shiftOut+0x26>
+ 2d5a: df 91 pop r29
+ 2d5c: cf 91 pop r28
+ 2d5e: 1f 91 pop r17
+ 2d60: 0f 91 pop r16
+ 2d62: ff 90 pop r15
+ 2d64: ef 90 pop r14
+ 2d66: df 90 pop r13
+ 2d68: cf 90 pop r12
+ 2d6a: bf 90 pop r11
+ 2d6c: 08 95 ret
+
+00002d6e <shiftIn>:
+ 2d6e: cf 92 push r12
+ 2d70: df 92 push r13
+ 2d72: ef 92 push r14
+ 2d74: ff 92 push r15
+ 2d76: 0f 93 push r16
+ 2d78: 1f 93 push r17
+ 2d7a: cf 93 push r28
+ 2d7c: df 93 push r29
+ 2d7e: f8 2e mov r15, r24
+ 2d80: 06 2f mov r16, r22
+ 2d82: e4 2e mov r14, r20
+ 2d84: 10 e0 ldi r17, 0x00 ; 0
+ 2d86: c7 e0 ldi r28, 0x07 ; 7
+ 2d88: d0 e0 ldi r29, 0x00 ; 0
+ 2d8a: 97 e0 ldi r25, 0x07 ; 7
+ 2d8c: c9 2e mov r12, r25
+ 2d8e: d1 2c mov r13, r1
+ 2d90: 80 2f mov r24, r16
+ 2d92: 61 e0 ldi r22, 0x01 ; 1
+ 2d94: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2d98: ee 20 and r14, r14
+ 2d9a: 61 f4 brne .+24 ; 0x2db4 <shiftIn+0x46>
+ 2d9c: 8f 2d mov r24, r15
+ 2d9e: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 2da2: 96 01 movw r18, r12
+ 2da4: 2c 1b sub r18, r28
+ 2da6: 3d 0b sbc r19, r29
+ 2da8: 02 c0 rjmp .+4 ; 0x2dae <shiftIn+0x40>
+ 2daa: 88 0f add r24, r24
+ 2dac: 99 1f adc r25, r25
+ 2dae: 2a 95 dec r18
+ 2db0: e2 f7 brpl .-8 ; 0x2daa <shiftIn+0x3c>
+ 2db2: 09 c0 rjmp .+18 ; 0x2dc6 <shiftIn+0x58>
+ 2db4: 8f 2d mov r24, r15
+ 2db6: 0e 94 a4 15 call 0x2b48 ; 0x2b48 <digitalRead>
+ 2dba: 0c 2e mov r0, r28
+ 2dbc: 02 c0 rjmp .+4 ; 0x2dc2 <shiftIn+0x54>
+ 2dbe: 88 0f add r24, r24
+ 2dc0: 99 1f adc r25, r25
+ 2dc2: 0a 94 dec r0
+ 2dc4: e2 f7 brpl .-8 ; 0x2dbe <shiftIn+0x50>
+ 2dc6: 18 2b or r17, r24
+ 2dc8: 80 2f mov r24, r16
+ 2dca: 60 e0 ldi r22, 0x00 ; 0
+ 2dcc: 0e 94 6f 15 call 0x2ade ; 0x2ade <digitalWrite>
+ 2dd0: 21 97 sbiw r28, 0x01 ; 1
+ 2dd2: 8f ef ldi r24, 0xFF ; 255
+ 2dd4: cf 3f cpi r28, 0xFF ; 255
+ 2dd6: d8 07 cpc r29, r24
+ 2dd8: d9 f6 brne .-74 ; 0x2d90 <shiftIn+0x22>
+ 2dda: 81 2f mov r24, r17
+ 2ddc: df 91 pop r29
+ 2dde: cf 91 pop r28
+ 2de0: 1f 91 pop r17
+ 2de2: 0f 91 pop r16
+ 2de4: ff 90 pop r15
+ 2de6: ef 90 pop r14
+ 2de8: df 90 pop r13
+ 2dea: cf 90 pop r12
+ 2dec: 08 95 ret
+
+00002dee <__fixunssfsi>:
+ 2dee: ef 92 push r14
+ 2df0: ff 92 push r15
+ 2df2: 0f 93 push r16
+ 2df4: 1f 93 push r17
+ 2df6: 7b 01 movw r14, r22
+ 2df8: 8c 01 movw r16, r24
+ 2dfa: 20 e0 ldi r18, 0x00 ; 0
+ 2dfc: 30 e0 ldi r19, 0x00 ; 0
+ 2dfe: 40 e0 ldi r20, 0x00 ; 0
+ 2e00: 5f e4 ldi r21, 0x4F ; 79
+ 2e02: 0e 94 73 1a call 0x34e6 ; 0x34e6 <__gesf2>
+ 2e06: 88 23 and r24, r24
+ 2e08: 8c f0 brlt .+34 ; 0x2e2c <__fixunssfsi+0x3e>
+ 2e0a: c8 01 movw r24, r16
+ 2e0c: b7 01 movw r22, r14
+ 2e0e: 20 e0 ldi r18, 0x00 ; 0
+ 2e10: 30 e0 ldi r19, 0x00 ; 0
+ 2e12: 40 e0 ldi r20, 0x00 ; 0
+ 2e14: 5f e4 ldi r21, 0x4F ; 79
+ 2e16: 0e 94 6f 18 call 0x30de ; 0x30de <__subsf3>
+ 2e1a: 0e 94 31 1b call 0x3662 ; 0x3662 <__fixsfsi>
+ 2e1e: 9b 01 movw r18, r22
+ 2e20: ac 01 movw r20, r24
+ 2e22: 20 50 subi r18, 0x00 ; 0
+ 2e24: 30 40 sbci r19, 0x00 ; 0
+ 2e26: 40 40 sbci r20, 0x00 ; 0
+ 2e28: 50 48 sbci r21, 0x80 ; 128
+ 2e2a: 06 c0 rjmp .+12 ; 0x2e38 <__fixunssfsi+0x4a>
+ 2e2c: c8 01 movw r24, r16
+ 2e2e: b7 01 movw r22, r14
+ 2e30: 0e 94 31 1b call 0x3662 ; 0x3662 <__fixsfsi>
+ 2e34: 9b 01 movw r18, r22
+ 2e36: ac 01 movw r20, r24
+ 2e38: b9 01 movw r22, r18
+ 2e3a: ca 01 movw r24, r20
+ 2e3c: 1f 91 pop r17
+ 2e3e: 0f 91 pop r16
+ 2e40: ff 90 pop r15
+ 2e42: ef 90 pop r14
+ 2e44: 08 95 ret
+
+00002e46 <_fpadd_parts>:
+ 2e46: a0 e0 ldi r26, 0x00 ; 0
+ 2e48: b0 e0 ldi r27, 0x00 ; 0
+ 2e4a: e9 e2 ldi r30, 0x29 ; 41
+ 2e4c: f7 e1 ldi r31, 0x17 ; 23
+ 2e4e: 0c 94 4f 1e jmp 0x3c9e ; 0x3c9e <__prologue_saves__>
+ 2e52: dc 01 movw r26, r24
+ 2e54: 2b 01 movw r4, r22
+ 2e56: fa 01 movw r30, r20
+ 2e58: 9c 91 ld r25, X
+ 2e5a: 92 30 cpi r25, 0x02 ; 2
+ 2e5c: 08 f4 brcc .+2 ; 0x2e60 <_fpadd_parts+0x1a>
+ 2e5e: 39 c1 rjmp .+626 ; 0x30d2 <_fpadd_parts+0x28c>
+ 2e60: eb 01 movw r28, r22
+ 2e62: 88 81 ld r24, Y
+ 2e64: 82 30 cpi r24, 0x02 ; 2
+ 2e66: 08 f4 brcc .+2 ; 0x2e6a <_fpadd_parts+0x24>
+ 2e68: 33 c1 rjmp .+614 ; 0x30d0 <_fpadd_parts+0x28a>
+ 2e6a: 94 30 cpi r25, 0x04 ; 4
+ 2e6c: 69 f4 brne .+26 ; 0x2e88 <_fpadd_parts+0x42>
+ 2e6e: 84 30 cpi r24, 0x04 ; 4
+ 2e70: 09 f0 breq .+2 ; 0x2e74 <_fpadd_parts+0x2e>
+ 2e72: 2f c1 rjmp .+606 ; 0x30d2 <_fpadd_parts+0x28c>
+ 2e74: 11 96 adiw r26, 0x01 ; 1
+ 2e76: 9c 91 ld r25, X
+ 2e78: 11 97 sbiw r26, 0x01 ; 1
+ 2e7a: 89 81 ldd r24, Y+1 ; 0x01
+ 2e7c: 98 17 cp r25, r24
+ 2e7e: 09 f4 brne .+2 ; 0x2e82 <_fpadd_parts+0x3c>
+ 2e80: 28 c1 rjmp .+592 ; 0x30d2 <_fpadd_parts+0x28c>
+ 2e82: a8 ea ldi r26, 0xA8 ; 168
+ 2e84: b1 e0 ldi r27, 0x01 ; 1
+ 2e86: 25 c1 rjmp .+586 ; 0x30d2 <_fpadd_parts+0x28c>
+ 2e88: 84 30 cpi r24, 0x04 ; 4
+ 2e8a: 09 f4 brne .+2 ; 0x2e8e <_fpadd_parts+0x48>
+ 2e8c: 21 c1 rjmp .+578 ; 0x30d0 <_fpadd_parts+0x28a>
+ 2e8e: 82 30 cpi r24, 0x02 ; 2
+ 2e90: a9 f4 brne .+42 ; 0x2ebc <_fpadd_parts+0x76>
+ 2e92: 92 30 cpi r25, 0x02 ; 2
+ 2e94: 09 f0 breq .+2 ; 0x2e98 <_fpadd_parts+0x52>
+ 2e96: 1d c1 rjmp .+570 ; 0x30d2 <_fpadd_parts+0x28c>
+ 2e98: 9a 01 movw r18, r20
+ 2e9a: ad 01 movw r20, r26
+ 2e9c: 88 e0 ldi r24, 0x08 ; 8
+ 2e9e: ea 01 movw r28, r20
+ 2ea0: 09 90 ld r0, Y+
+ 2ea2: ae 01 movw r20, r28
+ 2ea4: e9 01 movw r28, r18
+ 2ea6: 09 92 st Y+, r0
+ 2ea8: 9e 01 movw r18, r28
+ 2eaa: 81 50 subi r24, 0x01 ; 1
+ 2eac: c1 f7 brne .-16 ; 0x2e9e <_fpadd_parts+0x58>
+ 2eae: e2 01 movw r28, r4
+ 2eb0: 89 81 ldd r24, Y+1 ; 0x01
+ 2eb2: 11 96 adiw r26, 0x01 ; 1
+ 2eb4: 9c 91 ld r25, X
+ 2eb6: 89 23 and r24, r25
+ 2eb8: 81 83 std Z+1, r24 ; 0x01
+ 2eba: 08 c1 rjmp .+528 ; 0x30cc <_fpadd_parts+0x286>
+ 2ebc: 92 30 cpi r25, 0x02 ; 2
+ 2ebe: 09 f4 brne .+2 ; 0x2ec2 <_fpadd_parts+0x7c>
+ 2ec0: 07 c1 rjmp .+526 ; 0x30d0 <_fpadd_parts+0x28a>
+ 2ec2: 12 96 adiw r26, 0x02 ; 2
+ 2ec4: 2d 90 ld r2, X+
+ 2ec6: 3c 90 ld r3, X
+ 2ec8: 13 97 sbiw r26, 0x03 ; 3
+ 2eca: eb 01 movw r28, r22
+ 2ecc: 8a 81 ldd r24, Y+2 ; 0x02
+ 2ece: 9b 81 ldd r25, Y+3 ; 0x03
+ 2ed0: 14 96 adiw r26, 0x04 ; 4
+ 2ed2: ad 90 ld r10, X+
+ 2ed4: bd 90 ld r11, X+
+ 2ed6: cd 90 ld r12, X+
+ 2ed8: dc 90 ld r13, X
+ 2eda: 17 97 sbiw r26, 0x07 ; 7
+ 2edc: ec 80 ldd r14, Y+4 ; 0x04
+ 2ede: fd 80 ldd r15, Y+5 ; 0x05
+ 2ee0: 0e 81 ldd r16, Y+6 ; 0x06
+ 2ee2: 1f 81 ldd r17, Y+7 ; 0x07
+ 2ee4: 91 01 movw r18, r2
+ 2ee6: 28 1b sub r18, r24
+ 2ee8: 39 0b sbc r19, r25
+ 2eea: b9 01 movw r22, r18
+ 2eec: 37 ff sbrs r19, 7
+ 2eee: 04 c0 rjmp .+8 ; 0x2ef8 <_fpadd_parts+0xb2>
+ 2ef0: 66 27 eor r22, r22
+ 2ef2: 77 27 eor r23, r23
+ 2ef4: 62 1b sub r22, r18
+ 2ef6: 73 0b sbc r23, r19
+ 2ef8: 60 32 cpi r22, 0x20 ; 32
+ 2efa: 71 05 cpc r23, r1
+ 2efc: 0c f0 brlt .+2 ; 0x2f00 <_fpadd_parts+0xba>
+ 2efe: 61 c0 rjmp .+194 ; 0x2fc2 <_fpadd_parts+0x17c>
+ 2f00: 12 16 cp r1, r18
+ 2f02: 13 06 cpc r1, r19
+ 2f04: 6c f5 brge .+90 ; 0x2f60 <_fpadd_parts+0x11a>
+ 2f06: 37 01 movw r6, r14
+ 2f08: 48 01 movw r8, r16
+ 2f0a: 06 2e mov r0, r22
+ 2f0c: 04 c0 rjmp .+8 ; 0x2f16 <_fpadd_parts+0xd0>
+ 2f0e: 96 94 lsr r9
+ 2f10: 87 94 ror r8
+ 2f12: 77 94 ror r7
+ 2f14: 67 94 ror r6
+ 2f16: 0a 94 dec r0
+ 2f18: d2 f7 brpl .-12 ; 0x2f0e <_fpadd_parts+0xc8>
+ 2f1a: 21 e0 ldi r18, 0x01 ; 1
+ 2f1c: 30 e0 ldi r19, 0x00 ; 0
+ 2f1e: 40 e0 ldi r20, 0x00 ; 0
+ 2f20: 50 e0 ldi r21, 0x00 ; 0
+ 2f22: 04 c0 rjmp .+8 ; 0x2f2c <_fpadd_parts+0xe6>
+ 2f24: 22 0f add r18, r18
+ 2f26: 33 1f adc r19, r19
+ 2f28: 44 1f adc r20, r20
+ 2f2a: 55 1f adc r21, r21
+ 2f2c: 6a 95 dec r22
+ 2f2e: d2 f7 brpl .-12 ; 0x2f24 <_fpadd_parts+0xde>
+ 2f30: 21 50 subi r18, 0x01 ; 1
+ 2f32: 30 40 sbci r19, 0x00 ; 0
+ 2f34: 40 40 sbci r20, 0x00 ; 0
+ 2f36: 50 40 sbci r21, 0x00 ; 0
+ 2f38: 2e 21 and r18, r14
+ 2f3a: 3f 21 and r19, r15
+ 2f3c: 40 23 and r20, r16
+ 2f3e: 51 23 and r21, r17
+ 2f40: 21 15 cp r18, r1
+ 2f42: 31 05 cpc r19, r1
+ 2f44: 41 05 cpc r20, r1
+ 2f46: 51 05 cpc r21, r1
+ 2f48: 21 f0 breq .+8 ; 0x2f52 <_fpadd_parts+0x10c>
+ 2f4a: 21 e0 ldi r18, 0x01 ; 1
+ 2f4c: 30 e0 ldi r19, 0x00 ; 0
+ 2f4e: 40 e0 ldi r20, 0x00 ; 0
+ 2f50: 50 e0 ldi r21, 0x00 ; 0
+ 2f52: 79 01 movw r14, r18
+ 2f54: 8a 01 movw r16, r20
+ 2f56: e6 28 or r14, r6
+ 2f58: f7 28 or r15, r7
+ 2f5a: 08 29 or r16, r8
+ 2f5c: 19 29 or r17, r9
+ 2f5e: 3c c0 rjmp .+120 ; 0x2fd8 <_fpadd_parts+0x192>
+ 2f60: 23 2b or r18, r19
+ 2f62: d1 f1 breq .+116 ; 0x2fd8 <_fpadd_parts+0x192>
+ 2f64: 26 0e add r2, r22
+ 2f66: 37 1e adc r3, r23
+ 2f68: 35 01 movw r6, r10
+ 2f6a: 46 01 movw r8, r12
+ 2f6c: 06 2e mov r0, r22
+ 2f6e: 04 c0 rjmp .+8 ; 0x2f78 <_fpadd_parts+0x132>
+ 2f70: 96 94 lsr r9
+ 2f72: 87 94 ror r8
+ 2f74: 77 94 ror r7
+ 2f76: 67 94 ror r6
+ 2f78: 0a 94 dec r0
+ 2f7a: d2 f7 brpl .-12 ; 0x2f70 <_fpadd_parts+0x12a>
+ 2f7c: 21 e0 ldi r18, 0x01 ; 1
+ 2f7e: 30 e0 ldi r19, 0x00 ; 0
+ 2f80: 40 e0 ldi r20, 0x00 ; 0
+ 2f82: 50 e0 ldi r21, 0x00 ; 0
+ 2f84: 04 c0 rjmp .+8 ; 0x2f8e <_fpadd_parts+0x148>
+ 2f86: 22 0f add r18, r18
+ 2f88: 33 1f adc r19, r19
+ 2f8a: 44 1f adc r20, r20
+ 2f8c: 55 1f adc r21, r21
+ 2f8e: 6a 95 dec r22
+ 2f90: d2 f7 brpl .-12 ; 0x2f86 <_fpadd_parts+0x140>
+ 2f92: 21 50 subi r18, 0x01 ; 1
+ 2f94: 30 40 sbci r19, 0x00 ; 0
+ 2f96: 40 40 sbci r20, 0x00 ; 0
+ 2f98: 50 40 sbci r21, 0x00 ; 0
+ 2f9a: 2a 21 and r18, r10
+ 2f9c: 3b 21 and r19, r11
+ 2f9e: 4c 21 and r20, r12
+ 2fa0: 5d 21 and r21, r13
+ 2fa2: 21 15 cp r18, r1
+ 2fa4: 31 05 cpc r19, r1
+ 2fa6: 41 05 cpc r20, r1
+ 2fa8: 51 05 cpc r21, r1
+ 2faa: 21 f0 breq .+8 ; 0x2fb4 <_fpadd_parts+0x16e>
+ 2fac: 21 e0 ldi r18, 0x01 ; 1
+ 2fae: 30 e0 ldi r19, 0x00 ; 0
+ 2fb0: 40 e0 ldi r20, 0x00 ; 0
+ 2fb2: 50 e0 ldi r21, 0x00 ; 0
+ 2fb4: 59 01 movw r10, r18
+ 2fb6: 6a 01 movw r12, r20
+ 2fb8: a6 28 or r10, r6
+ 2fba: b7 28 or r11, r7
+ 2fbc: c8 28 or r12, r8
+ 2fbe: d9 28 or r13, r9
+ 2fc0: 0b c0 rjmp .+22 ; 0x2fd8 <_fpadd_parts+0x192>
+ 2fc2: 82 15 cp r24, r2
+ 2fc4: 93 05 cpc r25, r3
+ 2fc6: 2c f0 brlt .+10 ; 0x2fd2 <_fpadd_parts+0x18c>
+ 2fc8: 1c 01 movw r2, r24
+ 2fca: aa 24 eor r10, r10
+ 2fcc: bb 24 eor r11, r11
+ 2fce: 65 01 movw r12, r10
+ 2fd0: 03 c0 rjmp .+6 ; 0x2fd8 <_fpadd_parts+0x192>
+ 2fd2: ee 24 eor r14, r14
+ 2fd4: ff 24 eor r15, r15
+ 2fd6: 87 01 movw r16, r14
+ 2fd8: 11 96 adiw r26, 0x01 ; 1
+ 2fda: 9c 91 ld r25, X
+ 2fdc: d2 01 movw r26, r4
+ 2fde: 11 96 adiw r26, 0x01 ; 1
+ 2fe0: 8c 91 ld r24, X
+ 2fe2: 98 17 cp r25, r24
+ 2fe4: 09 f4 brne .+2 ; 0x2fe8 <_fpadd_parts+0x1a2>
+ 2fe6: 45 c0 rjmp .+138 ; 0x3072 <_fpadd_parts+0x22c>
+ 2fe8: 99 23 and r25, r25
+ 2fea: 39 f0 breq .+14 ; 0x2ffa <_fpadd_parts+0x1b4>
+ 2fec: a8 01 movw r20, r16
+ 2fee: 97 01 movw r18, r14
+ 2ff0: 2a 19 sub r18, r10
+ 2ff2: 3b 09 sbc r19, r11
+ 2ff4: 4c 09 sbc r20, r12
+ 2ff6: 5d 09 sbc r21, r13
+ 2ff8: 06 c0 rjmp .+12 ; 0x3006 <_fpadd_parts+0x1c0>
+ 2ffa: a6 01 movw r20, r12
+ 2ffc: 95 01 movw r18, r10
+ 2ffe: 2e 19 sub r18, r14
+ 3000: 3f 09 sbc r19, r15
+ 3002: 40 0b sbc r20, r16
+ 3004: 51 0b sbc r21, r17
+ 3006: 57 fd sbrc r21, 7
+ 3008: 08 c0 rjmp .+16 ; 0x301a <_fpadd_parts+0x1d4>
+ 300a: 11 82 std Z+1, r1 ; 0x01
+ 300c: 33 82 std Z+3, r3 ; 0x03
+ 300e: 22 82 std Z+2, r2 ; 0x02
+ 3010: 24 83 std Z+4, r18 ; 0x04
+ 3012: 35 83 std Z+5, r19 ; 0x05
+ 3014: 46 83 std Z+6, r20 ; 0x06
+ 3016: 57 83 std Z+7, r21 ; 0x07
+ 3018: 1d c0 rjmp .+58 ; 0x3054 <_fpadd_parts+0x20e>
+ 301a: 81 e0 ldi r24, 0x01 ; 1
+ 301c: 81 83 std Z+1, r24 ; 0x01
+ 301e: 33 82 std Z+3, r3 ; 0x03
+ 3020: 22 82 std Z+2, r2 ; 0x02
+ 3022: 88 27 eor r24, r24
+ 3024: 99 27 eor r25, r25
+ 3026: dc 01 movw r26, r24
+ 3028: 82 1b sub r24, r18
+ 302a: 93 0b sbc r25, r19
+ 302c: a4 0b sbc r26, r20
+ 302e: b5 0b sbc r27, r21
+ 3030: 84 83 std Z+4, r24 ; 0x04
+ 3032: 95 83 std Z+5, r25 ; 0x05
+ 3034: a6 83 std Z+6, r26 ; 0x06
+ 3036: b7 83 std Z+7, r27 ; 0x07
+ 3038: 0d c0 rjmp .+26 ; 0x3054 <_fpadd_parts+0x20e>
+ 303a: 22 0f add r18, r18
+ 303c: 33 1f adc r19, r19
+ 303e: 44 1f adc r20, r20
+ 3040: 55 1f adc r21, r21
+ 3042: 24 83 std Z+4, r18 ; 0x04
+ 3044: 35 83 std Z+5, r19 ; 0x05
+ 3046: 46 83 std Z+6, r20 ; 0x06
+ 3048: 57 83 std Z+7, r21 ; 0x07
+ 304a: 82 81 ldd r24, Z+2 ; 0x02
+ 304c: 93 81 ldd r25, Z+3 ; 0x03
+ 304e: 01 97 sbiw r24, 0x01 ; 1
+ 3050: 93 83 std Z+3, r25 ; 0x03
+ 3052: 82 83 std Z+2, r24 ; 0x02
+ 3054: 24 81 ldd r18, Z+4 ; 0x04
+ 3056: 35 81 ldd r19, Z+5 ; 0x05
+ 3058: 46 81 ldd r20, Z+6 ; 0x06
+ 305a: 57 81 ldd r21, Z+7 ; 0x07
+ 305c: da 01 movw r26, r20
+ 305e: c9 01 movw r24, r18
+ 3060: 01 97 sbiw r24, 0x01 ; 1
+ 3062: a1 09 sbc r26, r1
+ 3064: b1 09 sbc r27, r1
+ 3066: 8f 5f subi r24, 0xFF ; 255
+ 3068: 9f 4f sbci r25, 0xFF ; 255
+ 306a: af 4f sbci r26, 0xFF ; 255
+ 306c: bf 43 sbci r27, 0x3F ; 63
+ 306e: 28 f3 brcs .-54 ; 0x303a <_fpadd_parts+0x1f4>
+ 3070: 0b c0 rjmp .+22 ; 0x3088 <_fpadd_parts+0x242>
+ 3072: 91 83 std Z+1, r25 ; 0x01
+ 3074: 33 82 std Z+3, r3 ; 0x03
+ 3076: 22 82 std Z+2, r2 ; 0x02
+ 3078: ea 0c add r14, r10
+ 307a: fb 1c adc r15, r11
+ 307c: 0c 1d adc r16, r12
+ 307e: 1d 1d adc r17, r13
+ 3080: e4 82 std Z+4, r14 ; 0x04
+ 3082: f5 82 std Z+5, r15 ; 0x05
+ 3084: 06 83 std Z+6, r16 ; 0x06
+ 3086: 17 83 std Z+7, r17 ; 0x07
+ 3088: 83 e0 ldi r24, 0x03 ; 3
+ 308a: 80 83 st Z, r24
+ 308c: 24 81 ldd r18, Z+4 ; 0x04
+ 308e: 35 81 ldd r19, Z+5 ; 0x05
+ 3090: 46 81 ldd r20, Z+6 ; 0x06
+ 3092: 57 81 ldd r21, Z+7 ; 0x07
+ 3094: 57 ff sbrs r21, 7
+ 3096: 1a c0 rjmp .+52 ; 0x30cc <_fpadd_parts+0x286>
+ 3098: c9 01 movw r24, r18
+ 309a: aa 27 eor r26, r26
+ 309c: 97 fd sbrc r25, 7
+ 309e: a0 95 com r26
+ 30a0: ba 2f mov r27, r26
+ 30a2: 81 70 andi r24, 0x01 ; 1
+ 30a4: 90 70 andi r25, 0x00 ; 0
+ 30a6: a0 70 andi r26, 0x00 ; 0
+ 30a8: b0 70 andi r27, 0x00 ; 0
+ 30aa: 56 95 lsr r21
+ 30ac: 47 95 ror r20
+ 30ae: 37 95 ror r19
+ 30b0: 27 95 ror r18
+ 30b2: 82 2b or r24, r18
+ 30b4: 93 2b or r25, r19
+ 30b6: a4 2b or r26, r20
+ 30b8: b5 2b or r27, r21
+ 30ba: 84 83 std Z+4, r24 ; 0x04
+ 30bc: 95 83 std Z+5, r25 ; 0x05
+ 30be: a6 83 std Z+6, r26 ; 0x06
+ 30c0: b7 83 std Z+7, r27 ; 0x07
+ 30c2: 82 81 ldd r24, Z+2 ; 0x02
+ 30c4: 93 81 ldd r25, Z+3 ; 0x03
+ 30c6: 01 96 adiw r24, 0x01 ; 1
+ 30c8: 93 83 std Z+3, r25 ; 0x03
+ 30ca: 82 83 std Z+2, r24 ; 0x02
+ 30cc: df 01 movw r26, r30
+ 30ce: 01 c0 rjmp .+2 ; 0x30d2 <_fpadd_parts+0x28c>
+ 30d0: d2 01 movw r26, r4
+ 30d2: cd 01 movw r24, r26
+ 30d4: cd b7 in r28, 0x3d ; 61
+ 30d6: de b7 in r29, 0x3e ; 62
+ 30d8: e2 e1 ldi r30, 0x12 ; 18
+ 30da: 0c 94 6b 1e jmp 0x3cd6 ; 0x3cd6 <__epilogue_restores__>
+
+000030de <__subsf3>:
+ 30de: a0 e2 ldi r26, 0x20 ; 32
+ 30e0: b0 e0 ldi r27, 0x00 ; 0
+ 30e2: e5 e7 ldi r30, 0x75 ; 117
+ 30e4: f8 e1 ldi r31, 0x18 ; 24
+ 30e6: 0c 94 5b 1e jmp 0x3cb6 ; 0x3cb6 <__prologue_saves__+0x18>
+ 30ea: 69 83 std Y+1, r22 ; 0x01
+ 30ec: 7a 83 std Y+2, r23 ; 0x02
+ 30ee: 8b 83 std Y+3, r24 ; 0x03
+ 30f0: 9c 83 std Y+4, r25 ; 0x04
+ 30f2: 2d 83 std Y+5, r18 ; 0x05
+ 30f4: 3e 83 std Y+6, r19 ; 0x06
+ 30f6: 4f 83 std Y+7, r20 ; 0x07
+ 30f8: 58 87 std Y+8, r21 ; 0x08
+ 30fa: e9 e0 ldi r30, 0x09 ; 9
+ 30fc: ee 2e mov r14, r30
+ 30fe: f1 2c mov r15, r1
+ 3100: ec 0e add r14, r28
+ 3102: fd 1e adc r15, r29
+ 3104: ce 01 movw r24, r28
+ 3106: 01 96 adiw r24, 0x01 ; 1
+ 3108: b7 01 movw r22, r14
+ 310a: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 310e: 8e 01 movw r16, r28
+ 3110: 0f 5e subi r16, 0xEF ; 239
+ 3112: 1f 4f sbci r17, 0xFF ; 255
+ 3114: ce 01 movw r24, r28
+ 3116: 05 96 adiw r24, 0x05 ; 5
+ 3118: b8 01 movw r22, r16
+ 311a: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 311e: 8a 89 ldd r24, Y+18 ; 0x12
+ 3120: 91 e0 ldi r25, 0x01 ; 1
+ 3122: 89 27 eor r24, r25
+ 3124: 8a 8b std Y+18, r24 ; 0x12
+ 3126: c7 01 movw r24, r14
+ 3128: b8 01 movw r22, r16
+ 312a: ae 01 movw r20, r28
+ 312c: 47 5e subi r20, 0xE7 ; 231
+ 312e: 5f 4f sbci r21, 0xFF ; 255
+ 3130: 0e 94 23 17 call 0x2e46 ; 0x2e46 <_fpadd_parts>
+ 3134: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 3138: a0 96 adiw r28, 0x20 ; 32
+ 313a: e6 e0 ldi r30, 0x06 ; 6
+ 313c: 0c 94 77 1e jmp 0x3cee ; 0x3cee <__epilogue_restores__+0x18>
+
+00003140 <__addsf3>:
+ 3140: a0 e2 ldi r26, 0x20 ; 32
+ 3142: b0 e0 ldi r27, 0x00 ; 0
+ 3144: e6 ea ldi r30, 0xA6 ; 166
+ 3146: f8 e1 ldi r31, 0x18 ; 24
+ 3148: 0c 94 5b 1e jmp 0x3cb6 ; 0x3cb6 <__prologue_saves__+0x18>
+ 314c: 69 83 std Y+1, r22 ; 0x01
+ 314e: 7a 83 std Y+2, r23 ; 0x02
+ 3150: 8b 83 std Y+3, r24 ; 0x03
+ 3152: 9c 83 std Y+4, r25 ; 0x04
+ 3154: 2d 83 std Y+5, r18 ; 0x05
+ 3156: 3e 83 std Y+6, r19 ; 0x06
+ 3158: 4f 83 std Y+7, r20 ; 0x07
+ 315a: 58 87 std Y+8, r21 ; 0x08
+ 315c: f9 e0 ldi r31, 0x09 ; 9
+ 315e: ef 2e mov r14, r31
+ 3160: f1 2c mov r15, r1
+ 3162: ec 0e add r14, r28
+ 3164: fd 1e adc r15, r29
+ 3166: ce 01 movw r24, r28
+ 3168: 01 96 adiw r24, 0x01 ; 1
+ 316a: b7 01 movw r22, r14
+ 316c: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3170: 8e 01 movw r16, r28
+ 3172: 0f 5e subi r16, 0xEF ; 239
+ 3174: 1f 4f sbci r17, 0xFF ; 255
+ 3176: ce 01 movw r24, r28
+ 3178: 05 96 adiw r24, 0x05 ; 5
+ 317a: b8 01 movw r22, r16
+ 317c: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3180: c7 01 movw r24, r14
+ 3182: b8 01 movw r22, r16
+ 3184: ae 01 movw r20, r28
+ 3186: 47 5e subi r20, 0xE7 ; 231
+ 3188: 5f 4f sbci r21, 0xFF ; 255
+ 318a: 0e 94 23 17 call 0x2e46 ; 0x2e46 <_fpadd_parts>
+ 318e: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 3192: a0 96 adiw r28, 0x20 ; 32
+ 3194: e6 e0 ldi r30, 0x06 ; 6
+ 3196: 0c 94 77 1e jmp 0x3cee ; 0x3cee <__epilogue_restores__+0x18>
+
+0000319a <__mulsf3>:
+ 319a: a0 e2 ldi r26, 0x20 ; 32
+ 319c: b0 e0 ldi r27, 0x00 ; 0
+ 319e: e3 ed ldi r30, 0xD3 ; 211
+ 31a0: f8 e1 ldi r31, 0x18 ; 24
+ 31a2: 0c 94 4f 1e jmp 0x3c9e ; 0x3c9e <__prologue_saves__>
+ 31a6: 69 83 std Y+1, r22 ; 0x01
+ 31a8: 7a 83 std Y+2, r23 ; 0x02
+ 31aa: 8b 83 std Y+3, r24 ; 0x03
+ 31ac: 9c 83 std Y+4, r25 ; 0x04
+ 31ae: 2d 83 std Y+5, r18 ; 0x05
+ 31b0: 3e 83 std Y+6, r19 ; 0x06
+ 31b2: 4f 83 std Y+7, r20 ; 0x07
+ 31b4: 58 87 std Y+8, r21 ; 0x08
+ 31b6: ce 01 movw r24, r28
+ 31b8: 01 96 adiw r24, 0x01 ; 1
+ 31ba: be 01 movw r22, r28
+ 31bc: 67 5f subi r22, 0xF7 ; 247
+ 31be: 7f 4f sbci r23, 0xFF ; 255
+ 31c0: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 31c4: ce 01 movw r24, r28
+ 31c6: 05 96 adiw r24, 0x05 ; 5
+ 31c8: be 01 movw r22, r28
+ 31ca: 6f 5e subi r22, 0xEF ; 239
+ 31cc: 7f 4f sbci r23, 0xFF ; 255
+ 31ce: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 31d2: 99 85 ldd r25, Y+9 ; 0x09
+ 31d4: 92 30 cpi r25, 0x02 ; 2
+ 31d6: 88 f0 brcs .+34 ; 0x31fa <__mulsf3+0x60>
+ 31d8: 89 89 ldd r24, Y+17 ; 0x11
+ 31da: 82 30 cpi r24, 0x02 ; 2
+ 31dc: c8 f0 brcs .+50 ; 0x3210 <__mulsf3+0x76>
+ 31de: 94 30 cpi r25, 0x04 ; 4
+ 31e0: 19 f4 brne .+6 ; 0x31e8 <__mulsf3+0x4e>
+ 31e2: 82 30 cpi r24, 0x02 ; 2
+ 31e4: 51 f4 brne .+20 ; 0x31fa <__mulsf3+0x60>
+ 31e6: 04 c0 rjmp .+8 ; 0x31f0 <__mulsf3+0x56>
+ 31e8: 84 30 cpi r24, 0x04 ; 4
+ 31ea: 29 f4 brne .+10 ; 0x31f6 <__mulsf3+0x5c>
+ 31ec: 92 30 cpi r25, 0x02 ; 2
+ 31ee: 81 f4 brne .+32 ; 0x3210 <__mulsf3+0x76>
+ 31f0: 88 ea ldi r24, 0xA8 ; 168
+ 31f2: 91 e0 ldi r25, 0x01 ; 1
+ 31f4: c6 c0 rjmp .+396 ; 0x3382 <__mulsf3+0x1e8>
+ 31f6: 92 30 cpi r25, 0x02 ; 2
+ 31f8: 49 f4 brne .+18 ; 0x320c <__mulsf3+0x72>
+ 31fa: 20 e0 ldi r18, 0x00 ; 0
+ 31fc: 9a 85 ldd r25, Y+10 ; 0x0a
+ 31fe: 8a 89 ldd r24, Y+18 ; 0x12
+ 3200: 98 13 cpse r25, r24
+ 3202: 21 e0 ldi r18, 0x01 ; 1
+ 3204: 2a 87 std Y+10, r18 ; 0x0a
+ 3206: ce 01 movw r24, r28
+ 3208: 09 96 adiw r24, 0x09 ; 9
+ 320a: bb c0 rjmp .+374 ; 0x3382 <__mulsf3+0x1e8>
+ 320c: 82 30 cpi r24, 0x02 ; 2
+ 320e: 49 f4 brne .+18 ; 0x3222 <__mulsf3+0x88>
+ 3210: 20 e0 ldi r18, 0x00 ; 0
+ 3212: 9a 85 ldd r25, Y+10 ; 0x0a
+ 3214: 8a 89 ldd r24, Y+18 ; 0x12
+ 3216: 98 13 cpse r25, r24
+ 3218: 21 e0 ldi r18, 0x01 ; 1
+ 321a: 2a 8b std Y+18, r18 ; 0x12
+ 321c: ce 01 movw r24, r28
+ 321e: 41 96 adiw r24, 0x11 ; 17
+ 3220: b0 c0 rjmp .+352 ; 0x3382 <__mulsf3+0x1e8>
+ 3222: 2d 84 ldd r2, Y+13 ; 0x0d
+ 3224: 3e 84 ldd r3, Y+14 ; 0x0e
+ 3226: 4f 84 ldd r4, Y+15 ; 0x0f
+ 3228: 58 88 ldd r5, Y+16 ; 0x10
+ 322a: 6d 88 ldd r6, Y+21 ; 0x15
+ 322c: 7e 88 ldd r7, Y+22 ; 0x16
+ 322e: 8f 88 ldd r8, Y+23 ; 0x17
+ 3230: 98 8c ldd r9, Y+24 ; 0x18
+ 3232: ee 24 eor r14, r14
+ 3234: ff 24 eor r15, r15
+ 3236: 87 01 movw r16, r14
+ 3238: aa 24 eor r10, r10
+ 323a: bb 24 eor r11, r11
+ 323c: 65 01 movw r12, r10
+ 323e: 40 e0 ldi r20, 0x00 ; 0
+ 3240: 50 e0 ldi r21, 0x00 ; 0
+ 3242: 60 e0 ldi r22, 0x00 ; 0
+ 3244: 70 e0 ldi r23, 0x00 ; 0
+ 3246: e0 e0 ldi r30, 0x00 ; 0
+ 3248: f0 e0 ldi r31, 0x00 ; 0
+ 324a: c1 01 movw r24, r2
+ 324c: 81 70 andi r24, 0x01 ; 1
+ 324e: 90 70 andi r25, 0x00 ; 0
+ 3250: 89 2b or r24, r25
+ 3252: e9 f0 breq .+58 ; 0x328e <__mulsf3+0xf4>
+ 3254: e6 0c add r14, r6
+ 3256: f7 1c adc r15, r7
+ 3258: 08 1d adc r16, r8
+ 325a: 19 1d adc r17, r9
+ 325c: 9a 01 movw r18, r20
+ 325e: ab 01 movw r20, r22
+ 3260: 2a 0d add r18, r10
+ 3262: 3b 1d adc r19, r11
+ 3264: 4c 1d adc r20, r12
+ 3266: 5d 1d adc r21, r13
+ 3268: 80 e0 ldi r24, 0x00 ; 0
+ 326a: 90 e0 ldi r25, 0x00 ; 0
+ 326c: a0 e0 ldi r26, 0x00 ; 0
+ 326e: b0 e0 ldi r27, 0x00 ; 0
+ 3270: e6 14 cp r14, r6
+ 3272: f7 04 cpc r15, r7
+ 3274: 08 05 cpc r16, r8
+ 3276: 19 05 cpc r17, r9
+ 3278: 20 f4 brcc .+8 ; 0x3282 <__mulsf3+0xe8>
+ 327a: 81 e0 ldi r24, 0x01 ; 1
+ 327c: 90 e0 ldi r25, 0x00 ; 0
+ 327e: a0 e0 ldi r26, 0x00 ; 0
+ 3280: b0 e0 ldi r27, 0x00 ; 0
+ 3282: ba 01 movw r22, r20
+ 3284: a9 01 movw r20, r18
+ 3286: 48 0f add r20, r24
+ 3288: 59 1f adc r21, r25
+ 328a: 6a 1f adc r22, r26
+ 328c: 7b 1f adc r23, r27
+ 328e: aa 0c add r10, r10
+ 3290: bb 1c adc r11, r11
+ 3292: cc 1c adc r12, r12
+ 3294: dd 1c adc r13, r13
+ 3296: 97 fe sbrs r9, 7
+ 3298: 08 c0 rjmp .+16 ; 0x32aa <__mulsf3+0x110>
+ 329a: 81 e0 ldi r24, 0x01 ; 1
+ 329c: 90 e0 ldi r25, 0x00 ; 0
+ 329e: a0 e0 ldi r26, 0x00 ; 0
+ 32a0: b0 e0 ldi r27, 0x00 ; 0
+ 32a2: a8 2a or r10, r24
+ 32a4: b9 2a or r11, r25
+ 32a6: ca 2a or r12, r26
+ 32a8: db 2a or r13, r27
+ 32aa: 31 96 adiw r30, 0x01 ; 1
+ 32ac: e0 32 cpi r30, 0x20 ; 32
+ 32ae: f1 05 cpc r31, r1
+ 32b0: 49 f0 breq .+18 ; 0x32c4 <__mulsf3+0x12a>
+ 32b2: 66 0c add r6, r6
+ 32b4: 77 1c adc r7, r7
+ 32b6: 88 1c adc r8, r8
+ 32b8: 99 1c adc r9, r9
+ 32ba: 56 94 lsr r5
+ 32bc: 47 94 ror r4
+ 32be: 37 94 ror r3
+ 32c0: 27 94 ror r2
+ 32c2: c3 cf rjmp .-122 ; 0x324a <__mulsf3+0xb0>
+ 32c4: fa 85 ldd r31, Y+10 ; 0x0a
+ 32c6: ea 89 ldd r30, Y+18 ; 0x12
+ 32c8: 2b 89 ldd r18, Y+19 ; 0x13
+ 32ca: 3c 89 ldd r19, Y+20 ; 0x14
+ 32cc: 8b 85 ldd r24, Y+11 ; 0x0b
+ 32ce: 9c 85 ldd r25, Y+12 ; 0x0c
+ 32d0: 28 0f add r18, r24
+ 32d2: 39 1f adc r19, r25
+ 32d4: 2e 5f subi r18, 0xFE ; 254
+ 32d6: 3f 4f sbci r19, 0xFF ; 255
+ 32d8: 17 c0 rjmp .+46 ; 0x3308 <__mulsf3+0x16e>
+ 32da: ca 01 movw r24, r20
+ 32dc: 81 70 andi r24, 0x01 ; 1
+ 32de: 90 70 andi r25, 0x00 ; 0
+ 32e0: 89 2b or r24, r25
+ 32e2: 61 f0 breq .+24 ; 0x32fc <__mulsf3+0x162>
+ 32e4: 16 95 lsr r17
+ 32e6: 07 95 ror r16
+ 32e8: f7 94 ror r15
+ 32ea: e7 94 ror r14
+ 32ec: 80 e0 ldi r24, 0x00 ; 0
+ 32ee: 90 e0 ldi r25, 0x00 ; 0
+ 32f0: a0 e0 ldi r26, 0x00 ; 0
+ 32f2: b0 e8 ldi r27, 0x80 ; 128
+ 32f4: e8 2a or r14, r24
+ 32f6: f9 2a or r15, r25
+ 32f8: 0a 2b or r16, r26
+ 32fa: 1b 2b or r17, r27
+ 32fc: 76 95 lsr r23
+ 32fe: 67 95 ror r22
+ 3300: 57 95 ror r21
+ 3302: 47 95 ror r20
+ 3304: 2f 5f subi r18, 0xFF ; 255
+ 3306: 3f 4f sbci r19, 0xFF ; 255
+ 3308: 77 fd sbrc r23, 7
+ 330a: e7 cf rjmp .-50 ; 0x32da <__mulsf3+0x140>
+ 330c: 0c c0 rjmp .+24 ; 0x3326 <__mulsf3+0x18c>
+ 330e: 44 0f add r20, r20
+ 3310: 55 1f adc r21, r21
+ 3312: 66 1f adc r22, r22
+ 3314: 77 1f adc r23, r23
+ 3316: 17 fd sbrc r17, 7
+ 3318: 41 60 ori r20, 0x01 ; 1
+ 331a: ee 0c add r14, r14
+ 331c: ff 1c adc r15, r15
+ 331e: 00 1f adc r16, r16
+ 3320: 11 1f adc r17, r17
+ 3322: 21 50 subi r18, 0x01 ; 1
+ 3324: 30 40 sbci r19, 0x00 ; 0
+ 3326: 40 30 cpi r20, 0x00 ; 0
+ 3328: 90 e0 ldi r25, 0x00 ; 0
+ 332a: 59 07 cpc r21, r25
+ 332c: 90 e0 ldi r25, 0x00 ; 0
+ 332e: 69 07 cpc r22, r25
+ 3330: 90 e4 ldi r25, 0x40 ; 64
+ 3332: 79 07 cpc r23, r25
+ 3334: 60 f3 brcs .-40 ; 0x330e <__mulsf3+0x174>
+ 3336: 2b 8f std Y+27, r18 ; 0x1b
+ 3338: 3c 8f std Y+28, r19 ; 0x1c
+ 333a: db 01 movw r26, r22
+ 333c: ca 01 movw r24, r20
+ 333e: 8f 77 andi r24, 0x7F ; 127
+ 3340: 90 70 andi r25, 0x00 ; 0
+ 3342: a0 70 andi r26, 0x00 ; 0
+ 3344: b0 70 andi r27, 0x00 ; 0
+ 3346: 80 34 cpi r24, 0x40 ; 64
+ 3348: 91 05 cpc r25, r1
+ 334a: a1 05 cpc r26, r1
+ 334c: b1 05 cpc r27, r1
+ 334e: 61 f4 brne .+24 ; 0x3368 <__mulsf3+0x1ce>
+ 3350: 47 fd sbrc r20, 7
+ 3352: 0a c0 rjmp .+20 ; 0x3368 <__mulsf3+0x1ce>
+ 3354: e1 14 cp r14, r1
+ 3356: f1 04 cpc r15, r1
+ 3358: 01 05 cpc r16, r1
+ 335a: 11 05 cpc r17, r1
+ 335c: 29 f0 breq .+10 ; 0x3368 <__mulsf3+0x1ce>
+ 335e: 40 5c subi r20, 0xC0 ; 192
+ 3360: 5f 4f sbci r21, 0xFF ; 255
+ 3362: 6f 4f sbci r22, 0xFF ; 255
+ 3364: 7f 4f sbci r23, 0xFF ; 255
+ 3366: 40 78 andi r20, 0x80 ; 128
+ 3368: 1a 8e std Y+26, r1 ; 0x1a
+ 336a: fe 17 cp r31, r30
+ 336c: 11 f0 breq .+4 ; 0x3372 <__mulsf3+0x1d8>
+ 336e: 81 e0 ldi r24, 0x01 ; 1
+ 3370: 8a 8f std Y+26, r24 ; 0x1a
+ 3372: 4d 8f std Y+29, r20 ; 0x1d
+ 3374: 5e 8f std Y+30, r21 ; 0x1e
+ 3376: 6f 8f std Y+31, r22 ; 0x1f
+ 3378: 78 a3 std Y+32, r23 ; 0x20
+ 337a: 83 e0 ldi r24, 0x03 ; 3
+ 337c: 89 8f std Y+25, r24 ; 0x19
+ 337e: ce 01 movw r24, r28
+ 3380: 49 96 adiw r24, 0x19 ; 25
+ 3382: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 3386: a0 96 adiw r28, 0x20 ; 32
+ 3388: e2 e1 ldi r30, 0x12 ; 18
+ 338a: 0c 94 6b 1e jmp 0x3cd6 ; 0x3cd6 <__epilogue_restores__>
+
+0000338e <__divsf3>:
+ 338e: a8 e1 ldi r26, 0x18 ; 24
+ 3390: b0 e0 ldi r27, 0x00 ; 0
+ 3392: ed ec ldi r30, 0xCD ; 205
+ 3394: f9 e1 ldi r31, 0x19 ; 25
+ 3396: 0c 94 57 1e jmp 0x3cae ; 0x3cae <__prologue_saves__+0x10>
+ 339a: 69 83 std Y+1, r22 ; 0x01
+ 339c: 7a 83 std Y+2, r23 ; 0x02
+ 339e: 8b 83 std Y+3, r24 ; 0x03
+ 33a0: 9c 83 std Y+4, r25 ; 0x04
+ 33a2: 2d 83 std Y+5, r18 ; 0x05
+ 33a4: 3e 83 std Y+6, r19 ; 0x06
+ 33a6: 4f 83 std Y+7, r20 ; 0x07
+ 33a8: 58 87 std Y+8, r21 ; 0x08
+ 33aa: b9 e0 ldi r27, 0x09 ; 9
+ 33ac: eb 2e mov r14, r27
+ 33ae: f1 2c mov r15, r1
+ 33b0: ec 0e add r14, r28
+ 33b2: fd 1e adc r15, r29
+ 33b4: ce 01 movw r24, r28
+ 33b6: 01 96 adiw r24, 0x01 ; 1
+ 33b8: b7 01 movw r22, r14
+ 33ba: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 33be: 8e 01 movw r16, r28
+ 33c0: 0f 5e subi r16, 0xEF ; 239
+ 33c2: 1f 4f sbci r17, 0xFF ; 255
+ 33c4: ce 01 movw r24, r28
+ 33c6: 05 96 adiw r24, 0x05 ; 5
+ 33c8: b8 01 movw r22, r16
+ 33ca: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 33ce: 29 85 ldd r18, Y+9 ; 0x09
+ 33d0: 22 30 cpi r18, 0x02 ; 2
+ 33d2: 08 f4 brcc .+2 ; 0x33d6 <__divsf3+0x48>
+ 33d4: 7e c0 rjmp .+252 ; 0x34d2 <__divsf3+0x144>
+ 33d6: 39 89 ldd r19, Y+17 ; 0x11
+ 33d8: 32 30 cpi r19, 0x02 ; 2
+ 33da: 10 f4 brcc .+4 ; 0x33e0 <__divsf3+0x52>
+ 33dc: b8 01 movw r22, r16
+ 33de: 7c c0 rjmp .+248 ; 0x34d8 <__divsf3+0x14a>
+ 33e0: 8a 85 ldd r24, Y+10 ; 0x0a
+ 33e2: 9a 89 ldd r25, Y+18 ; 0x12
+ 33e4: 89 27 eor r24, r25
+ 33e6: 8a 87 std Y+10, r24 ; 0x0a
+ 33e8: 24 30 cpi r18, 0x04 ; 4
+ 33ea: 11 f0 breq .+4 ; 0x33f0 <__divsf3+0x62>
+ 33ec: 22 30 cpi r18, 0x02 ; 2
+ 33ee: 31 f4 brne .+12 ; 0x33fc <__divsf3+0x6e>
+ 33f0: 23 17 cp r18, r19
+ 33f2: 09 f0 breq .+2 ; 0x33f6 <__divsf3+0x68>
+ 33f4: 6e c0 rjmp .+220 ; 0x34d2 <__divsf3+0x144>
+ 33f6: 68 ea ldi r22, 0xA8 ; 168
+ 33f8: 71 e0 ldi r23, 0x01 ; 1
+ 33fa: 6e c0 rjmp .+220 ; 0x34d8 <__divsf3+0x14a>
+ 33fc: 34 30 cpi r19, 0x04 ; 4
+ 33fe: 39 f4 brne .+14 ; 0x340e <__divsf3+0x80>
+ 3400: 1d 86 std Y+13, r1 ; 0x0d
+ 3402: 1e 86 std Y+14, r1 ; 0x0e
+ 3404: 1f 86 std Y+15, r1 ; 0x0f
+ 3406: 18 8a std Y+16, r1 ; 0x10
+ 3408: 1c 86 std Y+12, r1 ; 0x0c
+ 340a: 1b 86 std Y+11, r1 ; 0x0b
+ 340c: 04 c0 rjmp .+8 ; 0x3416 <__divsf3+0x88>
+ 340e: 32 30 cpi r19, 0x02 ; 2
+ 3410: 21 f4 brne .+8 ; 0x341a <__divsf3+0x8c>
+ 3412: 84 e0 ldi r24, 0x04 ; 4
+ 3414: 89 87 std Y+9, r24 ; 0x09
+ 3416: b7 01 movw r22, r14
+ 3418: 5f c0 rjmp .+190 ; 0x34d8 <__divsf3+0x14a>
+ 341a: 2b 85 ldd r18, Y+11 ; 0x0b
+ 341c: 3c 85 ldd r19, Y+12 ; 0x0c
+ 341e: 8b 89 ldd r24, Y+19 ; 0x13
+ 3420: 9c 89 ldd r25, Y+20 ; 0x14
+ 3422: 28 1b sub r18, r24
+ 3424: 39 0b sbc r19, r25
+ 3426: 3c 87 std Y+12, r19 ; 0x0c
+ 3428: 2b 87 std Y+11, r18 ; 0x0b
+ 342a: ed 84 ldd r14, Y+13 ; 0x0d
+ 342c: fe 84 ldd r15, Y+14 ; 0x0e
+ 342e: 0f 85 ldd r16, Y+15 ; 0x0f
+ 3430: 18 89 ldd r17, Y+16 ; 0x10
+ 3432: ad 88 ldd r10, Y+21 ; 0x15
+ 3434: be 88 ldd r11, Y+22 ; 0x16
+ 3436: cf 88 ldd r12, Y+23 ; 0x17
+ 3438: d8 8c ldd r13, Y+24 ; 0x18
+ 343a: ea 14 cp r14, r10
+ 343c: fb 04 cpc r15, r11
+ 343e: 0c 05 cpc r16, r12
+ 3440: 1d 05 cpc r17, r13
+ 3442: 40 f4 brcc .+16 ; 0x3454 <__divsf3+0xc6>
+ 3444: ee 0c add r14, r14
+ 3446: ff 1c adc r15, r15
+ 3448: 00 1f adc r16, r16
+ 344a: 11 1f adc r17, r17
+ 344c: 21 50 subi r18, 0x01 ; 1
+ 344e: 30 40 sbci r19, 0x00 ; 0
+ 3450: 3c 87 std Y+12, r19 ; 0x0c
+ 3452: 2b 87 std Y+11, r18 ; 0x0b
+ 3454: 20 e0 ldi r18, 0x00 ; 0
+ 3456: 30 e0 ldi r19, 0x00 ; 0
+ 3458: 40 e0 ldi r20, 0x00 ; 0
+ 345a: 50 e0 ldi r21, 0x00 ; 0
+ 345c: 80 e0 ldi r24, 0x00 ; 0
+ 345e: 90 e0 ldi r25, 0x00 ; 0
+ 3460: a0 e0 ldi r26, 0x00 ; 0
+ 3462: b0 e4 ldi r27, 0x40 ; 64
+ 3464: 60 e0 ldi r22, 0x00 ; 0
+ 3466: 70 e0 ldi r23, 0x00 ; 0
+ 3468: ea 14 cp r14, r10
+ 346a: fb 04 cpc r15, r11
+ 346c: 0c 05 cpc r16, r12
+ 346e: 1d 05 cpc r17, r13
+ 3470: 40 f0 brcs .+16 ; 0x3482 <__divsf3+0xf4>
+ 3472: 28 2b or r18, r24
+ 3474: 39 2b or r19, r25
+ 3476: 4a 2b or r20, r26
+ 3478: 5b 2b or r21, r27
+ 347a: ea 18 sub r14, r10
+ 347c: fb 08 sbc r15, r11
+ 347e: 0c 09 sbc r16, r12
+ 3480: 1d 09 sbc r17, r13
+ 3482: b6 95 lsr r27
+ 3484: a7 95 ror r26
+ 3486: 97 95 ror r25
+ 3488: 87 95 ror r24
+ 348a: ee 0c add r14, r14
+ 348c: ff 1c adc r15, r15
+ 348e: 00 1f adc r16, r16
+ 3490: 11 1f adc r17, r17
+ 3492: 6f 5f subi r22, 0xFF ; 255
+ 3494: 7f 4f sbci r23, 0xFF ; 255
+ 3496: 6f 31 cpi r22, 0x1F ; 31
+ 3498: 71 05 cpc r23, r1
+ 349a: 31 f7 brne .-52 ; 0x3468 <__divsf3+0xda>
+ 349c: da 01 movw r26, r20
+ 349e: c9 01 movw r24, r18
+ 34a0: 8f 77 andi r24, 0x7F ; 127
+ 34a2: 90 70 andi r25, 0x00 ; 0
+ 34a4: a0 70 andi r26, 0x00 ; 0
+ 34a6: b0 70 andi r27, 0x00 ; 0
+ 34a8: 80 34 cpi r24, 0x40 ; 64
+ 34aa: 91 05 cpc r25, r1
+ 34ac: a1 05 cpc r26, r1
+ 34ae: b1 05 cpc r27, r1
+ 34b0: 61 f4 brne .+24 ; 0x34ca <__divsf3+0x13c>
+ 34b2: 27 fd sbrc r18, 7
+ 34b4: 0a c0 rjmp .+20 ; 0x34ca <__divsf3+0x13c>
+ 34b6: e1 14 cp r14, r1
+ 34b8: f1 04 cpc r15, r1
+ 34ba: 01 05 cpc r16, r1
+ 34bc: 11 05 cpc r17, r1
+ 34be: 29 f0 breq .+10 ; 0x34ca <__divsf3+0x13c>
+ 34c0: 20 5c subi r18, 0xC0 ; 192
+ 34c2: 3f 4f sbci r19, 0xFF ; 255
+ 34c4: 4f 4f sbci r20, 0xFF ; 255
+ 34c6: 5f 4f sbci r21, 0xFF ; 255
+ 34c8: 20 78 andi r18, 0x80 ; 128
+ 34ca: 2d 87 std Y+13, r18 ; 0x0d
+ 34cc: 3e 87 std Y+14, r19 ; 0x0e
+ 34ce: 4f 87 std Y+15, r20 ; 0x0f
+ 34d0: 58 8b std Y+16, r21 ; 0x10
+ 34d2: be 01 movw r22, r28
+ 34d4: 67 5f subi r22, 0xF7 ; 247
+ 34d6: 7f 4f sbci r23, 0xFF ; 255
+ 34d8: cb 01 movw r24, r22
+ 34da: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 34de: 68 96 adiw r28, 0x18 ; 24
+ 34e0: ea e0 ldi r30, 0x0A ; 10
+ 34e2: 0c 94 73 1e jmp 0x3ce6 ; 0x3ce6 <__epilogue_restores__+0x10>
+
+000034e6 <__gesf2>:
+ 34e6: a8 e1 ldi r26, 0x18 ; 24
+ 34e8: b0 e0 ldi r27, 0x00 ; 0
+ 34ea: e9 e7 ldi r30, 0x79 ; 121
+ 34ec: fa e1 ldi r31, 0x1A ; 26
+ 34ee: 0c 94 5b 1e jmp 0x3cb6 ; 0x3cb6 <__prologue_saves__+0x18>
+ 34f2: 69 83 std Y+1, r22 ; 0x01
+ 34f4: 7a 83 std Y+2, r23 ; 0x02
+ 34f6: 8b 83 std Y+3, r24 ; 0x03
+ 34f8: 9c 83 std Y+4, r25 ; 0x04
+ 34fa: 2d 83 std Y+5, r18 ; 0x05
+ 34fc: 3e 83 std Y+6, r19 ; 0x06
+ 34fe: 4f 83 std Y+7, r20 ; 0x07
+ 3500: 58 87 std Y+8, r21 ; 0x08
+ 3502: 89 e0 ldi r24, 0x09 ; 9
+ 3504: e8 2e mov r14, r24
+ 3506: f1 2c mov r15, r1
+ 3508: ec 0e add r14, r28
+ 350a: fd 1e adc r15, r29
+ 350c: ce 01 movw r24, r28
+ 350e: 01 96 adiw r24, 0x01 ; 1
+ 3510: b7 01 movw r22, r14
+ 3512: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3516: 8e 01 movw r16, r28
+ 3518: 0f 5e subi r16, 0xEF ; 239
+ 351a: 1f 4f sbci r17, 0xFF ; 255
+ 351c: ce 01 movw r24, r28
+ 351e: 05 96 adiw r24, 0x05 ; 5
+ 3520: b8 01 movw r22, r16
+ 3522: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3526: 89 85 ldd r24, Y+9 ; 0x09
+ 3528: 82 30 cpi r24, 0x02 ; 2
+ 352a: 40 f0 brcs .+16 ; 0x353c <__gesf2+0x56>
+ 352c: 89 89 ldd r24, Y+17 ; 0x11
+ 352e: 82 30 cpi r24, 0x02 ; 2
+ 3530: 28 f0 brcs .+10 ; 0x353c <__gesf2+0x56>
+ 3532: c7 01 movw r24, r14
+ 3534: b8 01 movw r22, r16
+ 3536: 0e 94 9a 1d call 0x3b34 ; 0x3b34 <__fpcmp_parts_f>
+ 353a: 01 c0 rjmp .+2 ; 0x353e <__gesf2+0x58>
+ 353c: 8f ef ldi r24, 0xFF ; 255
+ 353e: 68 96 adiw r28, 0x18 ; 24
+ 3540: e6 e0 ldi r30, 0x06 ; 6
+ 3542: 0c 94 77 1e jmp 0x3cee ; 0x3cee <__epilogue_restores__+0x18>
+
+00003546 <__ltsf2>:
+ 3546: a8 e1 ldi r26, 0x18 ; 24
+ 3548: b0 e0 ldi r27, 0x00 ; 0
+ 354a: e9 ea ldi r30, 0xA9 ; 169
+ 354c: fa e1 ldi r31, 0x1A ; 26
+ 354e: 0c 94 5b 1e jmp 0x3cb6 ; 0x3cb6 <__prologue_saves__+0x18>
+ 3552: 69 83 std Y+1, r22 ; 0x01
+ 3554: 7a 83 std Y+2, r23 ; 0x02
+ 3556: 8b 83 std Y+3, r24 ; 0x03
+ 3558: 9c 83 std Y+4, r25 ; 0x04
+ 355a: 2d 83 std Y+5, r18 ; 0x05
+ 355c: 3e 83 std Y+6, r19 ; 0x06
+ 355e: 4f 83 std Y+7, r20 ; 0x07
+ 3560: 58 87 std Y+8, r21 ; 0x08
+ 3562: 89 e0 ldi r24, 0x09 ; 9
+ 3564: e8 2e mov r14, r24
+ 3566: f1 2c mov r15, r1
+ 3568: ec 0e add r14, r28
+ 356a: fd 1e adc r15, r29
+ 356c: ce 01 movw r24, r28
+ 356e: 01 96 adiw r24, 0x01 ; 1
+ 3570: b7 01 movw r22, r14
+ 3572: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3576: 8e 01 movw r16, r28
+ 3578: 0f 5e subi r16, 0xEF ; 239
+ 357a: 1f 4f sbci r17, 0xFF ; 255
+ 357c: ce 01 movw r24, r28
+ 357e: 05 96 adiw r24, 0x05 ; 5
+ 3580: b8 01 movw r22, r16
+ 3582: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3586: 89 85 ldd r24, Y+9 ; 0x09
+ 3588: 82 30 cpi r24, 0x02 ; 2
+ 358a: 40 f0 brcs .+16 ; 0x359c <__ltsf2+0x56>
+ 358c: 89 89 ldd r24, Y+17 ; 0x11
+ 358e: 82 30 cpi r24, 0x02 ; 2
+ 3590: 28 f0 brcs .+10 ; 0x359c <__ltsf2+0x56>
+ 3592: c7 01 movw r24, r14
+ 3594: b8 01 movw r22, r16
+ 3596: 0e 94 9a 1d call 0x3b34 ; 0x3b34 <__fpcmp_parts_f>
+ 359a: 01 c0 rjmp .+2 ; 0x359e <__ltsf2+0x58>
+ 359c: 81 e0 ldi r24, 0x01 ; 1
+ 359e: 68 96 adiw r28, 0x18 ; 24
+ 35a0: e6 e0 ldi r30, 0x06 ; 6
+ 35a2: 0c 94 77 1e jmp 0x3cee ; 0x3cee <__epilogue_restores__+0x18>
+
+000035a6 <__floatsisf>:
+ 35a6: a8 e0 ldi r26, 0x08 ; 8
+ 35a8: b0 e0 ldi r27, 0x00 ; 0
+ 35aa: e9 ed ldi r30, 0xD9 ; 217
+ 35ac: fa e1 ldi r31, 0x1A ; 26
+ 35ae: 0c 94 58 1e jmp 0x3cb0 ; 0x3cb0 <__prologue_saves__+0x12>
+ 35b2: 9b 01 movw r18, r22
+ 35b4: ac 01 movw r20, r24
+ 35b6: 83 e0 ldi r24, 0x03 ; 3
+ 35b8: 89 83 std Y+1, r24 ; 0x01
+ 35ba: da 01 movw r26, r20
+ 35bc: c9 01 movw r24, r18
+ 35be: 88 27 eor r24, r24
+ 35c0: b7 fd sbrc r27, 7
+ 35c2: 83 95 inc r24
+ 35c4: 99 27 eor r25, r25
+ 35c6: aa 27 eor r26, r26
+ 35c8: bb 27 eor r27, r27
+ 35ca: b8 2e mov r11, r24
+ 35cc: 21 15 cp r18, r1
+ 35ce: 31 05 cpc r19, r1
+ 35d0: 41 05 cpc r20, r1
+ 35d2: 51 05 cpc r21, r1
+ 35d4: 19 f4 brne .+6 ; 0x35dc <__floatsisf+0x36>
+ 35d6: 82 e0 ldi r24, 0x02 ; 2
+ 35d8: 89 83 std Y+1, r24 ; 0x01
+ 35da: 3a c0 rjmp .+116 ; 0x3650 <__floatsisf+0xaa>
+ 35dc: 88 23 and r24, r24
+ 35de: a9 f0 breq .+42 ; 0x360a <__floatsisf+0x64>
+ 35e0: 20 30 cpi r18, 0x00 ; 0
+ 35e2: 80 e0 ldi r24, 0x00 ; 0
+ 35e4: 38 07 cpc r19, r24
+ 35e6: 80 e0 ldi r24, 0x00 ; 0
+ 35e8: 48 07 cpc r20, r24
+ 35ea: 80 e8 ldi r24, 0x80 ; 128
+ 35ec: 58 07 cpc r21, r24
+ 35ee: 29 f4 brne .+10 ; 0x35fa <__floatsisf+0x54>
+ 35f0: 60 e0 ldi r22, 0x00 ; 0
+ 35f2: 70 e0 ldi r23, 0x00 ; 0
+ 35f4: 80 e0 ldi r24, 0x00 ; 0
+ 35f6: 9f ec ldi r25, 0xCF ; 207
+ 35f8: 30 c0 rjmp .+96 ; 0x365a <__floatsisf+0xb4>
+ 35fa: ee 24 eor r14, r14
+ 35fc: ff 24 eor r15, r15
+ 35fe: 87 01 movw r16, r14
+ 3600: e2 1a sub r14, r18
+ 3602: f3 0a sbc r15, r19
+ 3604: 04 0b sbc r16, r20
+ 3606: 15 0b sbc r17, r21
+ 3608: 02 c0 rjmp .+4 ; 0x360e <__floatsisf+0x68>
+ 360a: 79 01 movw r14, r18
+ 360c: 8a 01 movw r16, r20
+ 360e: 8e e1 ldi r24, 0x1E ; 30
+ 3610: c8 2e mov r12, r24
+ 3612: d1 2c mov r13, r1
+ 3614: dc 82 std Y+4, r13 ; 0x04
+ 3616: cb 82 std Y+3, r12 ; 0x03
+ 3618: ed 82 std Y+5, r14 ; 0x05
+ 361a: fe 82 std Y+6, r15 ; 0x06
+ 361c: 0f 83 std Y+7, r16 ; 0x07
+ 361e: 18 87 std Y+8, r17 ; 0x08
+ 3620: c8 01 movw r24, r16
+ 3622: b7 01 movw r22, r14
+ 3624: 0e 94 fe 1b call 0x37fc ; 0x37fc <__clzsi2>
+ 3628: 01 97 sbiw r24, 0x01 ; 1
+ 362a: 18 16 cp r1, r24
+ 362c: 19 06 cpc r1, r25
+ 362e: 84 f4 brge .+32 ; 0x3650 <__floatsisf+0xaa>
+ 3630: 08 2e mov r0, r24
+ 3632: 04 c0 rjmp .+8 ; 0x363c <__floatsisf+0x96>
+ 3634: ee 0c add r14, r14
+ 3636: ff 1c adc r15, r15
+ 3638: 00 1f adc r16, r16
+ 363a: 11 1f adc r17, r17
+ 363c: 0a 94 dec r0
+ 363e: d2 f7 brpl .-12 ; 0x3634 <__floatsisf+0x8e>
+ 3640: ed 82 std Y+5, r14 ; 0x05
+ 3642: fe 82 std Y+6, r15 ; 0x06
+ 3644: 0f 83 std Y+7, r16 ; 0x07
+ 3646: 18 87 std Y+8, r17 ; 0x08
+ 3648: c8 1a sub r12, r24
+ 364a: d9 0a sbc r13, r25
+ 364c: dc 82 std Y+4, r13 ; 0x04
+ 364e: cb 82 std Y+3, r12 ; 0x03
+ 3650: ba 82 std Y+2, r11 ; 0x02
+ 3652: ce 01 movw r24, r28
+ 3654: 01 96 adiw r24, 0x01 ; 1
+ 3656: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 365a: 28 96 adiw r28, 0x08 ; 8
+ 365c: e9 e0 ldi r30, 0x09 ; 9
+ 365e: 0c 94 74 1e jmp 0x3ce8 ; 0x3ce8 <__epilogue_restores__+0x12>
+
+00003662 <__fixsfsi>:
+ 3662: ac e0 ldi r26, 0x0C ; 12
+ 3664: b0 e0 ldi r27, 0x00 ; 0
+ 3666: e7 e3 ldi r30, 0x37 ; 55
+ 3668: fb e1 ldi r31, 0x1B ; 27
+ 366a: 0c 94 5f 1e jmp 0x3cbe ; 0x3cbe <__prologue_saves__+0x20>
+ 366e: 69 83 std Y+1, r22 ; 0x01
+ 3670: 7a 83 std Y+2, r23 ; 0x02
+ 3672: 8b 83 std Y+3, r24 ; 0x03
+ 3674: 9c 83 std Y+4, r25 ; 0x04
+ 3676: ce 01 movw r24, r28
+ 3678: 01 96 adiw r24, 0x01 ; 1
+ 367a: be 01 movw r22, r28
+ 367c: 6b 5f subi r22, 0xFB ; 251
+ 367e: 7f 4f sbci r23, 0xFF ; 255
+ 3680: 0e 94 22 1d call 0x3a44 ; 0x3a44 <__unpack_f>
+ 3684: 8d 81 ldd r24, Y+5 ; 0x05
+ 3686: 82 30 cpi r24, 0x02 ; 2
+ 3688: 61 f1 breq .+88 ; 0x36e2 <__fixsfsi+0x80>
+ 368a: 82 30 cpi r24, 0x02 ; 2
+ 368c: 50 f1 brcs .+84 ; 0x36e2 <__fixsfsi+0x80>
+ 368e: 84 30 cpi r24, 0x04 ; 4
+ 3690: 21 f4 brne .+8 ; 0x369a <__fixsfsi+0x38>
+ 3692: 8e 81 ldd r24, Y+6 ; 0x06
+ 3694: 88 23 and r24, r24
+ 3696: 51 f1 breq .+84 ; 0x36ec <__fixsfsi+0x8a>
+ 3698: 2e c0 rjmp .+92 ; 0x36f6 <__fixsfsi+0x94>
+ 369a: 2f 81 ldd r18, Y+7 ; 0x07
+ 369c: 38 85 ldd r19, Y+8 ; 0x08
+ 369e: 37 fd sbrc r19, 7
+ 36a0: 20 c0 rjmp .+64 ; 0x36e2 <__fixsfsi+0x80>
+ 36a2: 6e 81 ldd r22, Y+6 ; 0x06
+ 36a4: 2f 31 cpi r18, 0x1F ; 31
+ 36a6: 31 05 cpc r19, r1
+ 36a8: 1c f0 brlt .+6 ; 0x36b0 <__fixsfsi+0x4e>
+ 36aa: 66 23 and r22, r22
+ 36ac: f9 f0 breq .+62 ; 0x36ec <__fixsfsi+0x8a>
+ 36ae: 23 c0 rjmp .+70 ; 0x36f6 <__fixsfsi+0x94>
+ 36b0: 8e e1 ldi r24, 0x1E ; 30
+ 36b2: 90 e0 ldi r25, 0x00 ; 0
+ 36b4: 82 1b sub r24, r18
+ 36b6: 93 0b sbc r25, r19
+ 36b8: 29 85 ldd r18, Y+9 ; 0x09
+ 36ba: 3a 85 ldd r19, Y+10 ; 0x0a
+ 36bc: 4b 85 ldd r20, Y+11 ; 0x0b
+ 36be: 5c 85 ldd r21, Y+12 ; 0x0c
+ 36c0: 04 c0 rjmp .+8 ; 0x36ca <__fixsfsi+0x68>
+ 36c2: 56 95 lsr r21
+ 36c4: 47 95 ror r20
+ 36c6: 37 95 ror r19
+ 36c8: 27 95 ror r18
+ 36ca: 8a 95 dec r24
+ 36cc: d2 f7 brpl .-12 ; 0x36c2 <__fixsfsi+0x60>
+ 36ce: 66 23 and r22, r22
+ 36d0: b1 f0 breq .+44 ; 0x36fe <__fixsfsi+0x9c>
+ 36d2: 50 95 com r21
+ 36d4: 40 95 com r20
+ 36d6: 30 95 com r19
+ 36d8: 21 95 neg r18
+ 36da: 3f 4f sbci r19, 0xFF ; 255
+ 36dc: 4f 4f sbci r20, 0xFF ; 255
+ 36de: 5f 4f sbci r21, 0xFF ; 255
+ 36e0: 0e c0 rjmp .+28 ; 0x36fe <__fixsfsi+0x9c>
+ 36e2: 20 e0 ldi r18, 0x00 ; 0
+ 36e4: 30 e0 ldi r19, 0x00 ; 0
+ 36e6: 40 e0 ldi r20, 0x00 ; 0
+ 36e8: 50 e0 ldi r21, 0x00 ; 0
+ 36ea: 09 c0 rjmp .+18 ; 0x36fe <__fixsfsi+0x9c>
+ 36ec: 2f ef ldi r18, 0xFF ; 255
+ 36ee: 3f ef ldi r19, 0xFF ; 255
+ 36f0: 4f ef ldi r20, 0xFF ; 255
+ 36f2: 5f e7 ldi r21, 0x7F ; 127
+ 36f4: 04 c0 rjmp .+8 ; 0x36fe <__fixsfsi+0x9c>
+ 36f6: 20 e0 ldi r18, 0x00 ; 0
+ 36f8: 30 e0 ldi r19, 0x00 ; 0
+ 36fa: 40 e0 ldi r20, 0x00 ; 0
+ 36fc: 50 e8 ldi r21, 0x80 ; 128
+ 36fe: b9 01 movw r22, r18
+ 3700: ca 01 movw r24, r20
+ 3702: 2c 96 adiw r28, 0x0c ; 12
+ 3704: e2 e0 ldi r30, 0x02 ; 2
+ 3706: 0c 94 7b 1e jmp 0x3cf6 ; 0x3cf6 <__epilogue_restores__+0x20>
+
+0000370a <__floatunsisf>:
+ 370a: a8 e0 ldi r26, 0x08 ; 8
+ 370c: b0 e0 ldi r27, 0x00 ; 0
+ 370e: eb e8 ldi r30, 0x8B ; 139
+ 3710: fb e1 ldi r31, 0x1B ; 27
+ 3712: 0c 94 57 1e jmp 0x3cae ; 0x3cae <__prologue_saves__+0x10>
+ 3716: 7b 01 movw r14, r22
+ 3718: 8c 01 movw r16, r24
+ 371a: 61 15 cp r22, r1
+ 371c: 71 05 cpc r23, r1
+ 371e: 81 05 cpc r24, r1
+ 3720: 91 05 cpc r25, r1
+ 3722: 19 f4 brne .+6 ; 0x372a <__floatunsisf+0x20>
+ 3724: 82 e0 ldi r24, 0x02 ; 2
+ 3726: 89 83 std Y+1, r24 ; 0x01
+ 3728: 60 c0 rjmp .+192 ; 0x37ea <__floatunsisf+0xe0>
+ 372a: 83 e0 ldi r24, 0x03 ; 3
+ 372c: 89 83 std Y+1, r24 ; 0x01
+ 372e: 8e e1 ldi r24, 0x1E ; 30
+ 3730: c8 2e mov r12, r24
+ 3732: d1 2c mov r13, r1
+ 3734: dc 82 std Y+4, r13 ; 0x04
+ 3736: cb 82 std Y+3, r12 ; 0x03
+ 3738: ed 82 std Y+5, r14 ; 0x05
+ 373a: fe 82 std Y+6, r15 ; 0x06
+ 373c: 0f 83 std Y+7, r16 ; 0x07
+ 373e: 18 87 std Y+8, r17 ; 0x08
+ 3740: c8 01 movw r24, r16
+ 3742: b7 01 movw r22, r14
+ 3744: 0e 94 fe 1b call 0x37fc ; 0x37fc <__clzsi2>
+ 3748: fc 01 movw r30, r24
+ 374a: 31 97 sbiw r30, 0x01 ; 1
+ 374c: f7 ff sbrs r31, 7
+ 374e: 3b c0 rjmp .+118 ; 0x37c6 <__floatunsisf+0xbc>
+ 3750: 22 27 eor r18, r18
+ 3752: 33 27 eor r19, r19
+ 3754: 2e 1b sub r18, r30
+ 3756: 3f 0b sbc r19, r31
+ 3758: 57 01 movw r10, r14
+ 375a: 68 01 movw r12, r16
+ 375c: 02 2e mov r0, r18
+ 375e: 04 c0 rjmp .+8 ; 0x3768 <__floatunsisf+0x5e>
+ 3760: d6 94 lsr r13
+ 3762: c7 94 ror r12
+ 3764: b7 94 ror r11
+ 3766: a7 94 ror r10
+ 3768: 0a 94 dec r0
+ 376a: d2 f7 brpl .-12 ; 0x3760 <__floatunsisf+0x56>
+ 376c: 40 e0 ldi r20, 0x00 ; 0
+ 376e: 50 e0 ldi r21, 0x00 ; 0
+ 3770: 60 e0 ldi r22, 0x00 ; 0
+ 3772: 70 e0 ldi r23, 0x00 ; 0
+ 3774: 81 e0 ldi r24, 0x01 ; 1
+ 3776: 90 e0 ldi r25, 0x00 ; 0
+ 3778: a0 e0 ldi r26, 0x00 ; 0
+ 377a: b0 e0 ldi r27, 0x00 ; 0
+ 377c: 04 c0 rjmp .+8 ; 0x3786 <__floatunsisf+0x7c>
+ 377e: 88 0f add r24, r24
+ 3780: 99 1f adc r25, r25
+ 3782: aa 1f adc r26, r26
+ 3784: bb 1f adc r27, r27
+ 3786: 2a 95 dec r18
+ 3788: d2 f7 brpl .-12 ; 0x377e <__floatunsisf+0x74>
+ 378a: 01 97 sbiw r24, 0x01 ; 1
+ 378c: a1 09 sbc r26, r1
+ 378e: b1 09 sbc r27, r1
+ 3790: 8e 21 and r24, r14
+ 3792: 9f 21 and r25, r15
+ 3794: a0 23 and r26, r16
+ 3796: b1 23 and r27, r17
+ 3798: 00 97 sbiw r24, 0x00 ; 0
+ 379a: a1 05 cpc r26, r1
+ 379c: b1 05 cpc r27, r1
+ 379e: 21 f0 breq .+8 ; 0x37a8 <__floatunsisf+0x9e>
+ 37a0: 41 e0 ldi r20, 0x01 ; 1
+ 37a2: 50 e0 ldi r21, 0x00 ; 0
+ 37a4: 60 e0 ldi r22, 0x00 ; 0
+ 37a6: 70 e0 ldi r23, 0x00 ; 0
+ 37a8: 4a 29 or r20, r10
+ 37aa: 5b 29 or r21, r11
+ 37ac: 6c 29 or r22, r12
+ 37ae: 7d 29 or r23, r13
+ 37b0: 4d 83 std Y+5, r20 ; 0x05
+ 37b2: 5e 83 std Y+6, r21 ; 0x06
+ 37b4: 6f 83 std Y+7, r22 ; 0x07
+ 37b6: 78 87 std Y+8, r23 ; 0x08
+ 37b8: 8e e1 ldi r24, 0x1E ; 30
+ 37ba: 90 e0 ldi r25, 0x00 ; 0
+ 37bc: 8e 1b sub r24, r30
+ 37be: 9f 0b sbc r25, r31
+ 37c0: 9c 83 std Y+4, r25 ; 0x04
+ 37c2: 8b 83 std Y+3, r24 ; 0x03
+ 37c4: 12 c0 rjmp .+36 ; 0x37ea <__floatunsisf+0xe0>
+ 37c6: 30 97 sbiw r30, 0x00 ; 0
+ 37c8: 81 f0 breq .+32 ; 0x37ea <__floatunsisf+0xe0>
+ 37ca: 0e 2e mov r0, r30
+ 37cc: 04 c0 rjmp .+8 ; 0x37d6 <__floatunsisf+0xcc>
+ 37ce: ee 0c add r14, r14
+ 37d0: ff 1c adc r15, r15
+ 37d2: 00 1f adc r16, r16
+ 37d4: 11 1f adc r17, r17
+ 37d6: 0a 94 dec r0
+ 37d8: d2 f7 brpl .-12 ; 0x37ce <__floatunsisf+0xc4>
+ 37da: ed 82 std Y+5, r14 ; 0x05
+ 37dc: fe 82 std Y+6, r15 ; 0x06
+ 37de: 0f 83 std Y+7, r16 ; 0x07
+ 37e0: 18 87 std Y+8, r17 ; 0x08
+ 37e2: ce 1a sub r12, r30
+ 37e4: df 0a sbc r13, r31
+ 37e6: dc 82 std Y+4, r13 ; 0x04
+ 37e8: cb 82 std Y+3, r12 ; 0x03
+ 37ea: 1a 82 std Y+2, r1 ; 0x02
+ 37ec: ce 01 movw r24, r28
+ 37ee: 01 96 adiw r24, 0x01 ; 1
+ 37f0: 0e 94 4d 1c call 0x389a ; 0x389a <__pack_f>
+ 37f4: 28 96 adiw r28, 0x08 ; 8
+ 37f6: ea e0 ldi r30, 0x0A ; 10
+ 37f8: 0c 94 73 1e jmp 0x3ce6 ; 0x3ce6 <__epilogue_restores__+0x10>
+
+000037fc <__clzsi2>:
+ 37fc: ef 92 push r14
+ 37fe: ff 92 push r15
+ 3800: 0f 93 push r16
+ 3802: 1f 93 push r17
+ 3804: 7b 01 movw r14, r22
+ 3806: 8c 01 movw r16, r24
+ 3808: 80 e0 ldi r24, 0x00 ; 0
+ 380a: e8 16 cp r14, r24
+ 380c: 80 e0 ldi r24, 0x00 ; 0
+ 380e: f8 06 cpc r15, r24
+ 3810: 81 e0 ldi r24, 0x01 ; 1
+ 3812: 08 07 cpc r16, r24
+ 3814: 80 e0 ldi r24, 0x00 ; 0
+ 3816: 18 07 cpc r17, r24
+ 3818: 88 f4 brcc .+34 ; 0x383c <__clzsi2+0x40>
+ 381a: 8f ef ldi r24, 0xFF ; 255
+ 381c: e8 16 cp r14, r24
+ 381e: f1 04 cpc r15, r1
+ 3820: 01 05 cpc r16, r1
+ 3822: 11 05 cpc r17, r1
+ 3824: 31 f0 breq .+12 ; 0x3832 <__clzsi2+0x36>
+ 3826: 28 f0 brcs .+10 ; 0x3832 <__clzsi2+0x36>
+ 3828: 88 e0 ldi r24, 0x08 ; 8
+ 382a: 90 e0 ldi r25, 0x00 ; 0
+ 382c: a0 e0 ldi r26, 0x00 ; 0
+ 382e: b0 e0 ldi r27, 0x00 ; 0
+ 3830: 17 c0 rjmp .+46 ; 0x3860 <__clzsi2+0x64>
+ 3832: 80 e0 ldi r24, 0x00 ; 0
+ 3834: 90 e0 ldi r25, 0x00 ; 0
+ 3836: a0 e0 ldi r26, 0x00 ; 0
+ 3838: b0 e0 ldi r27, 0x00 ; 0
+ 383a: 12 c0 rjmp .+36 ; 0x3860 <__clzsi2+0x64>
+ 383c: 80 e0 ldi r24, 0x00 ; 0
+ 383e: e8 16 cp r14, r24
+ 3840: 80 e0 ldi r24, 0x00 ; 0
+ 3842: f8 06 cpc r15, r24
+ 3844: 80 e0 ldi r24, 0x00 ; 0
+ 3846: 08 07 cpc r16, r24
+ 3848: 81 e0 ldi r24, 0x01 ; 1
+ 384a: 18 07 cpc r17, r24
+ 384c: 28 f0 brcs .+10 ; 0x3858 <__clzsi2+0x5c>
+ 384e: 88 e1 ldi r24, 0x18 ; 24
+ 3850: 90 e0 ldi r25, 0x00 ; 0
+ 3852: a0 e0 ldi r26, 0x00 ; 0
+ 3854: b0 e0 ldi r27, 0x00 ; 0
+ 3856: 04 c0 rjmp .+8 ; 0x3860 <__clzsi2+0x64>
+ 3858: 80 e1 ldi r24, 0x10 ; 16
+ 385a: 90 e0 ldi r25, 0x00 ; 0
+ 385c: a0 e0 ldi r26, 0x00 ; 0
+ 385e: b0 e0 ldi r27, 0x00 ; 0
+ 3860: 20 e2 ldi r18, 0x20 ; 32
+ 3862: 30 e0 ldi r19, 0x00 ; 0
+ 3864: 40 e0 ldi r20, 0x00 ; 0
+ 3866: 50 e0 ldi r21, 0x00 ; 0
+ 3868: 28 1b sub r18, r24
+ 386a: 39 0b sbc r19, r25
+ 386c: 4a 0b sbc r20, r26
+ 386e: 5b 0b sbc r21, r27
+ 3870: 04 c0 rjmp .+8 ; 0x387a <__clzsi2+0x7e>
+ 3872: 16 95 lsr r17
+ 3874: 07 95 ror r16
+ 3876: f7 94 ror r15
+ 3878: e7 94 ror r14
+ 387a: 8a 95 dec r24
+ 387c: d2 f7 brpl .-12 ; 0x3872 <__clzsi2+0x76>
+ 387e: f7 01 movw r30, r14
+ 3880: e0 55 subi r30, 0x50 ; 80
+ 3882: fe 4f sbci r31, 0xFE ; 254
+ 3884: 80 81 ld r24, Z
+ 3886: 28 1b sub r18, r24
+ 3888: 31 09 sbc r19, r1
+ 388a: 41 09 sbc r20, r1
+ 388c: 51 09 sbc r21, r1
+ 388e: c9 01 movw r24, r18
+ 3890: 1f 91 pop r17
+ 3892: 0f 91 pop r16
+ 3894: ff 90 pop r15
+ 3896: ef 90 pop r14
+ 3898: 08 95 ret
+
+0000389a <__pack_f>:
+ 389a: df 92 push r13
+ 389c: ef 92 push r14
+ 389e: ff 92 push r15
+ 38a0: 0f 93 push r16
+ 38a2: 1f 93 push r17
+ 38a4: fc 01 movw r30, r24
+ 38a6: e4 80 ldd r14, Z+4 ; 0x04
+ 38a8: f5 80 ldd r15, Z+5 ; 0x05
+ 38aa: 06 81 ldd r16, Z+6 ; 0x06
+ 38ac: 17 81 ldd r17, Z+7 ; 0x07
+ 38ae: d1 80 ldd r13, Z+1 ; 0x01
+ 38b0: 80 81 ld r24, Z
+ 38b2: 82 30 cpi r24, 0x02 ; 2
+ 38b4: 48 f4 brcc .+18 ; 0x38c8 <__pack_f+0x2e>
+ 38b6: 80 e0 ldi r24, 0x00 ; 0
+ 38b8: 90 e0 ldi r25, 0x00 ; 0
+ 38ba: a0 e1 ldi r26, 0x10 ; 16
+ 38bc: b0 e0 ldi r27, 0x00 ; 0
+ 38be: e8 2a or r14, r24
+ 38c0: f9 2a or r15, r25
+ 38c2: 0a 2b or r16, r26
+ 38c4: 1b 2b or r17, r27
+ 38c6: a5 c0 rjmp .+330 ; 0x3a12 <__pack_f+0x178>
+ 38c8: 84 30 cpi r24, 0x04 ; 4
+ 38ca: 09 f4 brne .+2 ; 0x38ce <__pack_f+0x34>
+ 38cc: 9f c0 rjmp .+318 ; 0x3a0c <__pack_f+0x172>
+ 38ce: 82 30 cpi r24, 0x02 ; 2
+ 38d0: 21 f4 brne .+8 ; 0x38da <__pack_f+0x40>
+ 38d2: ee 24 eor r14, r14
+ 38d4: ff 24 eor r15, r15
+ 38d6: 87 01 movw r16, r14
+ 38d8: 05 c0 rjmp .+10 ; 0x38e4 <__pack_f+0x4a>
+ 38da: e1 14 cp r14, r1
+ 38dc: f1 04 cpc r15, r1
+ 38de: 01 05 cpc r16, r1
+ 38e0: 11 05 cpc r17, r1
+ 38e2: 19 f4 brne .+6 ; 0x38ea <__pack_f+0x50>
+ 38e4: e0 e0 ldi r30, 0x00 ; 0
+ 38e6: f0 e0 ldi r31, 0x00 ; 0
+ 38e8: 96 c0 rjmp .+300 ; 0x3a16 <__pack_f+0x17c>
+ 38ea: 62 81 ldd r22, Z+2 ; 0x02
+ 38ec: 73 81 ldd r23, Z+3 ; 0x03
+ 38ee: 9f ef ldi r25, 0xFF ; 255
+ 38f0: 62 38 cpi r22, 0x82 ; 130
+ 38f2: 79 07 cpc r23, r25
+ 38f4: 0c f0 brlt .+2 ; 0x38f8 <__pack_f+0x5e>
+ 38f6: 5b c0 rjmp .+182 ; 0x39ae <__pack_f+0x114>
+ 38f8: 22 e8 ldi r18, 0x82 ; 130
+ 38fa: 3f ef ldi r19, 0xFF ; 255
+ 38fc: 26 1b sub r18, r22
+ 38fe: 37 0b sbc r19, r23
+ 3900: 2a 31 cpi r18, 0x1A ; 26
+ 3902: 31 05 cpc r19, r1
+ 3904: 2c f0 brlt .+10 ; 0x3910 <__pack_f+0x76>
+ 3906: 20 e0 ldi r18, 0x00 ; 0
+ 3908: 30 e0 ldi r19, 0x00 ; 0
+ 390a: 40 e0 ldi r20, 0x00 ; 0
+ 390c: 50 e0 ldi r21, 0x00 ; 0
+ 390e: 2a c0 rjmp .+84 ; 0x3964 <__pack_f+0xca>
+ 3910: b8 01 movw r22, r16
+ 3912: a7 01 movw r20, r14
+ 3914: 02 2e mov r0, r18
+ 3916: 04 c0 rjmp .+8 ; 0x3920 <__pack_f+0x86>
+ 3918: 76 95 lsr r23
+ 391a: 67 95 ror r22
+ 391c: 57 95 ror r21
+ 391e: 47 95 ror r20
+ 3920: 0a 94 dec r0
+ 3922: d2 f7 brpl .-12 ; 0x3918 <__pack_f+0x7e>
+ 3924: 81 e0 ldi r24, 0x01 ; 1
+ 3926: 90 e0 ldi r25, 0x00 ; 0
+ 3928: a0 e0 ldi r26, 0x00 ; 0
+ 392a: b0 e0 ldi r27, 0x00 ; 0
+ 392c: 04 c0 rjmp .+8 ; 0x3936 <__pack_f+0x9c>
+ 392e: 88 0f add r24, r24
+ 3930: 99 1f adc r25, r25
+ 3932: aa 1f adc r26, r26
+ 3934: bb 1f adc r27, r27
+ 3936: 2a 95 dec r18
+ 3938: d2 f7 brpl .-12 ; 0x392e <__pack_f+0x94>
+ 393a: 01 97 sbiw r24, 0x01 ; 1
+ 393c: a1 09 sbc r26, r1
+ 393e: b1 09 sbc r27, r1
+ 3940: 8e 21 and r24, r14
+ 3942: 9f 21 and r25, r15
+ 3944: a0 23 and r26, r16
+ 3946: b1 23 and r27, r17
+ 3948: 00 97 sbiw r24, 0x00 ; 0
+ 394a: a1 05 cpc r26, r1
+ 394c: b1 05 cpc r27, r1
+ 394e: 21 f0 breq .+8 ; 0x3958 <__pack_f+0xbe>
+ 3950: 81 e0 ldi r24, 0x01 ; 1
+ 3952: 90 e0 ldi r25, 0x00 ; 0
+ 3954: a0 e0 ldi r26, 0x00 ; 0
+ 3956: b0 e0 ldi r27, 0x00 ; 0
+ 3958: 9a 01 movw r18, r20
+ 395a: ab 01 movw r20, r22
+ 395c: 28 2b or r18, r24
+ 395e: 39 2b or r19, r25
+ 3960: 4a 2b or r20, r26
+ 3962: 5b 2b or r21, r27
+ 3964: da 01 movw r26, r20
+ 3966: c9 01 movw r24, r18
+ 3968: 8f 77 andi r24, 0x7F ; 127
+ 396a: 90 70 andi r25, 0x00 ; 0
+ 396c: a0 70 andi r26, 0x00 ; 0
+ 396e: b0 70 andi r27, 0x00 ; 0
+ 3970: 80 34 cpi r24, 0x40 ; 64
+ 3972: 91 05 cpc r25, r1
+ 3974: a1 05 cpc r26, r1
+ 3976: b1 05 cpc r27, r1
+ 3978: 39 f4 brne .+14 ; 0x3988 <__pack_f+0xee>
+ 397a: 27 ff sbrs r18, 7
+ 397c: 09 c0 rjmp .+18 ; 0x3990 <__pack_f+0xf6>
+ 397e: 20 5c subi r18, 0xC0 ; 192
+ 3980: 3f 4f sbci r19, 0xFF ; 255
+ 3982: 4f 4f sbci r20, 0xFF ; 255
+ 3984: 5f 4f sbci r21, 0xFF ; 255
+ 3986: 04 c0 rjmp .+8 ; 0x3990 <__pack_f+0xf6>
+ 3988: 21 5c subi r18, 0xC1 ; 193
+ 398a: 3f 4f sbci r19, 0xFF ; 255
+ 398c: 4f 4f sbci r20, 0xFF ; 255
+ 398e: 5f 4f sbci r21, 0xFF ; 255
+ 3990: e0 e0 ldi r30, 0x00 ; 0
+ 3992: f0 e0 ldi r31, 0x00 ; 0
+ 3994: 20 30 cpi r18, 0x00 ; 0
+ 3996: a0 e0 ldi r26, 0x00 ; 0
+ 3998: 3a 07 cpc r19, r26
+ 399a: a0 e0 ldi r26, 0x00 ; 0
+ 399c: 4a 07 cpc r20, r26
+ 399e: a0 e4 ldi r26, 0x40 ; 64
+ 39a0: 5a 07 cpc r21, r26
+ 39a2: 10 f0 brcs .+4 ; 0x39a8 <__pack_f+0x10e>
+ 39a4: e1 e0 ldi r30, 0x01 ; 1
+ 39a6: f0 e0 ldi r31, 0x00 ; 0
+ 39a8: 79 01 movw r14, r18
+ 39aa: 8a 01 movw r16, r20
+ 39ac: 27 c0 rjmp .+78 ; 0x39fc <__pack_f+0x162>
+ 39ae: 60 38 cpi r22, 0x80 ; 128
+ 39b0: 71 05 cpc r23, r1
+ 39b2: 64 f5 brge .+88 ; 0x3a0c <__pack_f+0x172>
+ 39b4: fb 01 movw r30, r22
+ 39b6: e1 58 subi r30, 0x81 ; 129
+ 39b8: ff 4f sbci r31, 0xFF ; 255
+ 39ba: d8 01 movw r26, r16
+ 39bc: c7 01 movw r24, r14
+ 39be: 8f 77 andi r24, 0x7F ; 127
+ 39c0: 90 70 andi r25, 0x00 ; 0
+ 39c2: a0 70 andi r26, 0x00 ; 0
+ 39c4: b0 70 andi r27, 0x00 ; 0
+ 39c6: 80 34 cpi r24, 0x40 ; 64
+ 39c8: 91 05 cpc r25, r1
+ 39ca: a1 05 cpc r26, r1
+ 39cc: b1 05 cpc r27, r1
+ 39ce: 39 f4 brne .+14 ; 0x39de <__pack_f+0x144>
+ 39d0: e7 fe sbrs r14, 7
+ 39d2: 0d c0 rjmp .+26 ; 0x39ee <__pack_f+0x154>
+ 39d4: 80 e4 ldi r24, 0x40 ; 64
+ 39d6: 90 e0 ldi r25, 0x00 ; 0
+ 39d8: a0 e0 ldi r26, 0x00 ; 0
+ 39da: b0 e0 ldi r27, 0x00 ; 0
+ 39dc: 04 c0 rjmp .+8 ; 0x39e6 <__pack_f+0x14c>
+ 39de: 8f e3 ldi r24, 0x3F ; 63
+ 39e0: 90 e0 ldi r25, 0x00 ; 0
+ 39e2: a0 e0 ldi r26, 0x00 ; 0
+ 39e4: b0 e0 ldi r27, 0x00 ; 0
+ 39e6: e8 0e add r14, r24
+ 39e8: f9 1e adc r15, r25
+ 39ea: 0a 1f adc r16, r26
+ 39ec: 1b 1f adc r17, r27
+ 39ee: 17 ff sbrs r17, 7
+ 39f0: 05 c0 rjmp .+10 ; 0x39fc <__pack_f+0x162>
+ 39f2: 16 95 lsr r17
+ 39f4: 07 95 ror r16
+ 39f6: f7 94 ror r15
+ 39f8: e7 94 ror r14
+ 39fa: 31 96 adiw r30, 0x01 ; 1
+ 39fc: 87 e0 ldi r24, 0x07 ; 7
+ 39fe: 16 95 lsr r17
+ 3a00: 07 95 ror r16
+ 3a02: f7 94 ror r15
+ 3a04: e7 94 ror r14
+ 3a06: 8a 95 dec r24
+ 3a08: d1 f7 brne .-12 ; 0x39fe <__pack_f+0x164>
+ 3a0a: 05 c0 rjmp .+10 ; 0x3a16 <__pack_f+0x17c>
+ 3a0c: ee 24 eor r14, r14
+ 3a0e: ff 24 eor r15, r15
+ 3a10: 87 01 movw r16, r14
+ 3a12: ef ef ldi r30, 0xFF ; 255
+ 3a14: f0 e0 ldi r31, 0x00 ; 0
+ 3a16: 6e 2f mov r22, r30
+ 3a18: 67 95 ror r22
+ 3a1a: 66 27 eor r22, r22
+ 3a1c: 67 95 ror r22
+ 3a1e: 90 2f mov r25, r16
+ 3a20: 9f 77 andi r25, 0x7F ; 127
+ 3a22: d7 94 ror r13
+ 3a24: dd 24 eor r13, r13
+ 3a26: d7 94 ror r13
+ 3a28: 8e 2f mov r24, r30
+ 3a2a: 86 95 lsr r24
+ 3a2c: 49 2f mov r20, r25
+ 3a2e: 46 2b or r20, r22
+ 3a30: 58 2f mov r21, r24
+ 3a32: 5d 29 or r21, r13
+ 3a34: b7 01 movw r22, r14
+ 3a36: ca 01 movw r24, r20
+ 3a38: 1f 91 pop r17
+ 3a3a: 0f 91 pop r16
+ 3a3c: ff 90 pop r15
+ 3a3e: ef 90 pop r14
+ 3a40: df 90 pop r13
+ 3a42: 08 95 ret
+
+00003a44 <__unpack_f>:
+ 3a44: fc 01 movw r30, r24
+ 3a46: db 01 movw r26, r22
+ 3a48: 40 81 ld r20, Z
+ 3a4a: 51 81 ldd r21, Z+1 ; 0x01
+ 3a4c: 22 81 ldd r18, Z+2 ; 0x02
+ 3a4e: 62 2f mov r22, r18
+ 3a50: 6f 77 andi r22, 0x7F ; 127
+ 3a52: 70 e0 ldi r23, 0x00 ; 0
+ 3a54: 22 1f adc r18, r18
+ 3a56: 22 27 eor r18, r18
+ 3a58: 22 1f adc r18, r18
+ 3a5a: 93 81 ldd r25, Z+3 ; 0x03
+ 3a5c: 89 2f mov r24, r25
+ 3a5e: 88 0f add r24, r24
+ 3a60: 82 2b or r24, r18
+ 3a62: 28 2f mov r18, r24
+ 3a64: 30 e0 ldi r19, 0x00 ; 0
+ 3a66: 99 1f adc r25, r25
+ 3a68: 99 27 eor r25, r25
+ 3a6a: 99 1f adc r25, r25
+ 3a6c: 11 96 adiw r26, 0x01 ; 1
+ 3a6e: 9c 93 st X, r25
+ 3a70: 11 97 sbiw r26, 0x01 ; 1
+ 3a72: 21 15 cp r18, r1
+ 3a74: 31 05 cpc r19, r1
+ 3a76: a9 f5 brne .+106 ; 0x3ae2 <__unpack_f+0x9e>
+ 3a78: 41 15 cp r20, r1
+ 3a7a: 51 05 cpc r21, r1
+ 3a7c: 61 05 cpc r22, r1
+ 3a7e: 71 05 cpc r23, r1
+ 3a80: 11 f4 brne .+4 ; 0x3a86 <__unpack_f+0x42>
+ 3a82: 82 e0 ldi r24, 0x02 ; 2
+ 3a84: 37 c0 rjmp .+110 ; 0x3af4 <__unpack_f+0xb0>
+ 3a86: 82 e8 ldi r24, 0x82 ; 130
+ 3a88: 9f ef ldi r25, 0xFF ; 255
+ 3a8a: 13 96 adiw r26, 0x03 ; 3
+ 3a8c: 9c 93 st X, r25
+ 3a8e: 8e 93 st -X, r24
+ 3a90: 12 97 sbiw r26, 0x02 ; 2
+ 3a92: 9a 01 movw r18, r20
+ 3a94: ab 01 movw r20, r22
+ 3a96: 67 e0 ldi r22, 0x07 ; 7
+ 3a98: 22 0f add r18, r18
+ 3a9a: 33 1f adc r19, r19
+ 3a9c: 44 1f adc r20, r20
+ 3a9e: 55 1f adc r21, r21
+ 3aa0: 6a 95 dec r22
+ 3aa2: d1 f7 brne .-12 ; 0x3a98 <__unpack_f+0x54>
+ 3aa4: 83 e0 ldi r24, 0x03 ; 3
+ 3aa6: 8c 93 st X, r24
+ 3aa8: 0d c0 rjmp .+26 ; 0x3ac4 <__unpack_f+0x80>
+ 3aaa: 22 0f add r18, r18
+ 3aac: 33 1f adc r19, r19
+ 3aae: 44 1f adc r20, r20
+ 3ab0: 55 1f adc r21, r21
+ 3ab2: 12 96 adiw r26, 0x02 ; 2
+ 3ab4: 8d 91 ld r24, X+
+ 3ab6: 9c 91 ld r25, X
+ 3ab8: 13 97 sbiw r26, 0x03 ; 3
+ 3aba: 01 97 sbiw r24, 0x01 ; 1
+ 3abc: 13 96 adiw r26, 0x03 ; 3
+ 3abe: 9c 93 st X, r25
+ 3ac0: 8e 93 st -X, r24
+ 3ac2: 12 97 sbiw r26, 0x02 ; 2
+ 3ac4: 20 30 cpi r18, 0x00 ; 0
+ 3ac6: 80 e0 ldi r24, 0x00 ; 0
+ 3ac8: 38 07 cpc r19, r24
+ 3aca: 80 e0 ldi r24, 0x00 ; 0
+ 3acc: 48 07 cpc r20, r24
+ 3ace: 80 e4 ldi r24, 0x40 ; 64
+ 3ad0: 58 07 cpc r21, r24
+ 3ad2: 58 f3 brcs .-42 ; 0x3aaa <__unpack_f+0x66>
+ 3ad4: 14 96 adiw r26, 0x04 ; 4
+ 3ad6: 2d 93 st X+, r18
+ 3ad8: 3d 93 st X+, r19
+ 3ada: 4d 93 st X+, r20
+ 3adc: 5c 93 st X, r21
+ 3ade: 17 97 sbiw r26, 0x07 ; 7
+ 3ae0: 08 95 ret
+ 3ae2: 2f 3f cpi r18, 0xFF ; 255
+ 3ae4: 31 05 cpc r19, r1
+ 3ae6: 79 f4 brne .+30 ; 0x3b06 <__unpack_f+0xc2>
+ 3ae8: 41 15 cp r20, r1
+ 3aea: 51 05 cpc r21, r1
+ 3aec: 61 05 cpc r22, r1
+ 3aee: 71 05 cpc r23, r1
+ 3af0: 19 f4 brne .+6 ; 0x3af8 <__unpack_f+0xb4>
+ 3af2: 84 e0 ldi r24, 0x04 ; 4
+ 3af4: 8c 93 st X, r24
+ 3af6: 08 95 ret
+ 3af8: 64 ff sbrs r22, 4
+ 3afa: 03 c0 rjmp .+6 ; 0x3b02 <__unpack_f+0xbe>
+ 3afc: 81 e0 ldi r24, 0x01 ; 1
+ 3afe: 8c 93 st X, r24
+ 3b00: 12 c0 rjmp .+36 ; 0x3b26 <__unpack_f+0xe2>
+ 3b02: 1c 92 st X, r1
+ 3b04: 10 c0 rjmp .+32 ; 0x3b26 <__unpack_f+0xe2>
+ 3b06: 2f 57 subi r18, 0x7F ; 127
+ 3b08: 30 40 sbci r19, 0x00 ; 0
+ 3b0a: 13 96 adiw r26, 0x03 ; 3
+ 3b0c: 3c 93 st X, r19
+ 3b0e: 2e 93 st -X, r18
+ 3b10: 12 97 sbiw r26, 0x02 ; 2
+ 3b12: 83 e0 ldi r24, 0x03 ; 3
+ 3b14: 8c 93 st X, r24
+ 3b16: 87 e0 ldi r24, 0x07 ; 7
+ 3b18: 44 0f add r20, r20
+ 3b1a: 55 1f adc r21, r21
+ 3b1c: 66 1f adc r22, r22
+ 3b1e: 77 1f adc r23, r23
+ 3b20: 8a 95 dec r24
+ 3b22: d1 f7 brne .-12 ; 0x3b18 <__unpack_f+0xd4>
+ 3b24: 70 64 ori r23, 0x40 ; 64
+ 3b26: 14 96 adiw r26, 0x04 ; 4
+ 3b28: 4d 93 st X+, r20
+ 3b2a: 5d 93 st X+, r21
+ 3b2c: 6d 93 st X+, r22
+ 3b2e: 7c 93 st X, r23
+ 3b30: 17 97 sbiw r26, 0x07 ; 7
+ 3b32: 08 95 ret
+
+00003b34 <__fpcmp_parts_f>:
+ 3b34: 1f 93 push r17
+ 3b36: dc 01 movw r26, r24
+ 3b38: fb 01 movw r30, r22
+ 3b3a: 9c 91 ld r25, X
+ 3b3c: 92 30 cpi r25, 0x02 ; 2
+ 3b3e: 08 f4 brcc .+2 ; 0x3b42 <__fpcmp_parts_f+0xe>
+ 3b40: 47 c0 rjmp .+142 ; 0x3bd0 <__fpcmp_parts_f+0x9c>
+ 3b42: 80 81 ld r24, Z
+ 3b44: 82 30 cpi r24, 0x02 ; 2
+ 3b46: 08 f4 brcc .+2 ; 0x3b4a <__fpcmp_parts_f+0x16>
+ 3b48: 43 c0 rjmp .+134 ; 0x3bd0 <__fpcmp_parts_f+0x9c>
+ 3b4a: 94 30 cpi r25, 0x04 ; 4
+ 3b4c: 51 f4 brne .+20 ; 0x3b62 <__fpcmp_parts_f+0x2e>
+ 3b4e: 11 96 adiw r26, 0x01 ; 1
+ 3b50: 1c 91 ld r17, X
+ 3b52: 84 30 cpi r24, 0x04 ; 4
+ 3b54: 99 f5 brne .+102 ; 0x3bbc <__fpcmp_parts_f+0x88>
+ 3b56: 81 81 ldd r24, Z+1 ; 0x01
+ 3b58: 68 2f mov r22, r24
+ 3b5a: 70 e0 ldi r23, 0x00 ; 0
+ 3b5c: 61 1b sub r22, r17
+ 3b5e: 71 09 sbc r23, r1
+ 3b60: 3f c0 rjmp .+126 ; 0x3be0 <__fpcmp_parts_f+0xac>
+ 3b62: 84 30 cpi r24, 0x04 ; 4
+ 3b64: 21 f0 breq .+8 ; 0x3b6e <__fpcmp_parts_f+0x3a>
+ 3b66: 92 30 cpi r25, 0x02 ; 2
+ 3b68: 31 f4 brne .+12 ; 0x3b76 <__fpcmp_parts_f+0x42>
+ 3b6a: 82 30 cpi r24, 0x02 ; 2
+ 3b6c: b9 f1 breq .+110 ; 0x3bdc <__fpcmp_parts_f+0xa8>
+ 3b6e: 81 81 ldd r24, Z+1 ; 0x01
+ 3b70: 88 23 and r24, r24
+ 3b72: 89 f1 breq .+98 ; 0x3bd6 <__fpcmp_parts_f+0xa2>
+ 3b74: 2d c0 rjmp .+90 ; 0x3bd0 <__fpcmp_parts_f+0x9c>
+ 3b76: 11 96 adiw r26, 0x01 ; 1
+ 3b78: 1c 91 ld r17, X
+ 3b7a: 11 97 sbiw r26, 0x01 ; 1
+ 3b7c: 82 30 cpi r24, 0x02 ; 2
+ 3b7e: f1 f0 breq .+60 ; 0x3bbc <__fpcmp_parts_f+0x88>
+ 3b80: 81 81 ldd r24, Z+1 ; 0x01
+ 3b82: 18 17 cp r17, r24
+ 3b84: d9 f4 brne .+54 ; 0x3bbc <__fpcmp_parts_f+0x88>
+ 3b86: 12 96 adiw r26, 0x02 ; 2
+ 3b88: 2d 91 ld r18, X+
+ 3b8a: 3c 91 ld r19, X
+ 3b8c: 13 97 sbiw r26, 0x03 ; 3
+ 3b8e: 82 81 ldd r24, Z+2 ; 0x02
+ 3b90: 93 81 ldd r25, Z+3 ; 0x03
+ 3b92: 82 17 cp r24, r18
+ 3b94: 93 07 cpc r25, r19
+ 3b96: 94 f0 brlt .+36 ; 0x3bbc <__fpcmp_parts_f+0x88>
+ 3b98: 28 17 cp r18, r24
+ 3b9a: 39 07 cpc r19, r25
+ 3b9c: bc f0 brlt .+46 ; 0x3bcc <__fpcmp_parts_f+0x98>
+ 3b9e: 14 96 adiw r26, 0x04 ; 4
+ 3ba0: 8d 91 ld r24, X+
+ 3ba2: 9d 91 ld r25, X+
+ 3ba4: 0d 90 ld r0, X+
+ 3ba6: bc 91 ld r27, X
+ 3ba8: a0 2d mov r26, r0
+ 3baa: 24 81 ldd r18, Z+4 ; 0x04
+ 3bac: 35 81 ldd r19, Z+5 ; 0x05
+ 3bae: 46 81 ldd r20, Z+6 ; 0x06
+ 3bb0: 57 81 ldd r21, Z+7 ; 0x07
+ 3bb2: 28 17 cp r18, r24
+ 3bb4: 39 07 cpc r19, r25
+ 3bb6: 4a 07 cpc r20, r26
+ 3bb8: 5b 07 cpc r21, r27
+ 3bba: 18 f4 brcc .+6 ; 0x3bc2 <__fpcmp_parts_f+0x8e>
+ 3bbc: 11 23 and r17, r17
+ 3bbe: 41 f0 breq .+16 ; 0x3bd0 <__fpcmp_parts_f+0x9c>
+ 3bc0: 0a c0 rjmp .+20 ; 0x3bd6 <__fpcmp_parts_f+0xa2>
+ 3bc2: 82 17 cp r24, r18
+ 3bc4: 93 07 cpc r25, r19
+ 3bc6: a4 07 cpc r26, r20
+ 3bc8: b5 07 cpc r27, r21
+ 3bca: 40 f4 brcc .+16 ; 0x3bdc <__fpcmp_parts_f+0xa8>
+ 3bcc: 11 23 and r17, r17
+ 3bce: 19 f0 breq .+6 ; 0x3bd6 <__fpcmp_parts_f+0xa2>
+ 3bd0: 61 e0 ldi r22, 0x01 ; 1
+ 3bd2: 70 e0 ldi r23, 0x00 ; 0
+ 3bd4: 05 c0 rjmp .+10 ; 0x3be0 <__fpcmp_parts_f+0xac>
+ 3bd6: 6f ef ldi r22, 0xFF ; 255
+ 3bd8: 7f ef ldi r23, 0xFF ; 255
+ 3bda: 02 c0 rjmp .+4 ; 0x3be0 <__fpcmp_parts_f+0xac>
+ 3bdc: 60 e0 ldi r22, 0x00 ; 0
+ 3bde: 70 e0 ldi r23, 0x00 ; 0
+ 3be0: cb 01 movw r24, r22
+ 3be2: 1f 91 pop r17
+ 3be4: 08 95 ret
+
+00003be6 <__mulsi3>:
+ 3be6: 62 9f mul r22, r18
+ 3be8: d0 01 movw r26, r0
+ 3bea: 73 9f mul r23, r19
+ 3bec: f0 01 movw r30, r0
+ 3bee: 82 9f mul r24, r18
+ 3bf0: e0 0d add r30, r0
+ 3bf2: f1 1d adc r31, r1
+ 3bf4: 64 9f mul r22, r20
+ 3bf6: e0 0d add r30, r0
+ 3bf8: f1 1d adc r31, r1
+ 3bfa: 92 9f mul r25, r18
+ 3bfc: f0 0d add r31, r0
+ 3bfe: 83 9f mul r24, r19
+ 3c00: f0 0d add r31, r0
+ 3c02: 74 9f mul r23, r20
+ 3c04: f0 0d add r31, r0
+ 3c06: 65 9f mul r22, r21
+ 3c08: f0 0d add r31, r0
+ 3c0a: 99 27 eor r25, r25
+ 3c0c: 72 9f mul r23, r18
+ 3c0e: b0 0d add r27, r0
+ 3c10: e1 1d adc r30, r1
+ 3c12: f9 1f adc r31, r25
+ 3c14: 63 9f mul r22, r19
+ 3c16: b0 0d add r27, r0
+ 3c18: e1 1d adc r30, r1
+ 3c1a: f9 1f adc r31, r25
+ 3c1c: bd 01 movw r22, r26
+ 3c1e: cf 01 movw r24, r30
+ 3c20: 11 24 eor r1, r1
+ 3c22: 08 95 ret
+
+00003c24 <__udivmodsi4>:
+ 3c24: a1 e2 ldi r26, 0x21 ; 33
+ 3c26: 1a 2e mov r1, r26
+ 3c28: aa 1b sub r26, r26
+ 3c2a: bb 1b sub r27, r27
+ 3c2c: fd 01 movw r30, r26
+ 3c2e: 0d c0 rjmp .+26 ; 0x3c4a <__udivmodsi4_ep>
+
+00003c30 <__udivmodsi4_loop>:
+ 3c30: aa 1f adc r26, r26
+ 3c32: bb 1f adc r27, r27
+ 3c34: ee 1f adc r30, r30
+ 3c36: ff 1f adc r31, r31
+ 3c38: a2 17 cp r26, r18
+ 3c3a: b3 07 cpc r27, r19
+ 3c3c: e4 07 cpc r30, r20
+ 3c3e: f5 07 cpc r31, r21
+ 3c40: 20 f0 brcs .+8 ; 0x3c4a <__udivmodsi4_ep>
+ 3c42: a2 1b sub r26, r18
+ 3c44: b3 0b sbc r27, r19
+ 3c46: e4 0b sbc r30, r20
+ 3c48: f5 0b sbc r31, r21
+
+00003c4a <__udivmodsi4_ep>:
+ 3c4a: 66 1f adc r22, r22
+ 3c4c: 77 1f adc r23, r23
+ 3c4e: 88 1f adc r24, r24
+ 3c50: 99 1f adc r25, r25
+ 3c52: 1a 94 dec r1
+ 3c54: 69 f7 brne .-38 ; 0x3c30 <__udivmodsi4_loop>
+ 3c56: 60 95 com r22
+ 3c58: 70 95 com r23
+ 3c5a: 80 95 com r24
+ 3c5c: 90 95 com r25
+ 3c5e: 9b 01 movw r18, r22
+ 3c60: ac 01 movw r20, r24
+ 3c62: bd 01 movw r22, r26
+ 3c64: cf 01 movw r24, r30
+ 3c66: 08 95 ret
+
+00003c68 <__divmodsi4>:
+ 3c68: 97 fb bst r25, 7
+ 3c6a: 09 2e mov r0, r25
+ 3c6c: 05 26 eor r0, r21
+ 3c6e: 0e d0 rcall .+28 ; 0x3c8c <__divmodsi4_neg1>
+ 3c70: 57 fd sbrc r21, 7
+ 3c72: 04 d0 rcall .+8 ; 0x3c7c <__divmodsi4_neg2>
+ 3c74: d7 df rcall .-82 ; 0x3c24 <__udivmodsi4>
+ 3c76: 0a d0 rcall .+20 ; 0x3c8c <__divmodsi4_neg1>
+ 3c78: 00 1c adc r0, r0
+ 3c7a: 38 f4 brcc .+14 ; 0x3c8a <__divmodsi4_exit>
+
+00003c7c <__divmodsi4_neg2>:
+ 3c7c: 50 95 com r21
+ 3c7e: 40 95 com r20
+ 3c80: 30 95 com r19
+ 3c82: 21 95 neg r18
+ 3c84: 3f 4f sbci r19, 0xFF ; 255
+ 3c86: 4f 4f sbci r20, 0xFF ; 255
+ 3c88: 5f 4f sbci r21, 0xFF ; 255
+
+00003c8a <__divmodsi4_exit>:
+ 3c8a: 08 95 ret
+
+00003c8c <__divmodsi4_neg1>:
+ 3c8c: f6 f7 brtc .-4 ; 0x3c8a <__divmodsi4_exit>
+ 3c8e: 90 95 com r25
+ 3c90: 80 95 com r24
+ 3c92: 70 95 com r23
+ 3c94: 61 95 neg r22
+ 3c96: 7f 4f sbci r23, 0xFF ; 255
+ 3c98: 8f 4f sbci r24, 0xFF ; 255
+ 3c9a: 9f 4f sbci r25, 0xFF ; 255
+ 3c9c: 08 95 ret
+
+00003c9e <__prologue_saves__>:
+ 3c9e: 2f 92 push r2
+ 3ca0: 3f 92 push r3
+ 3ca2: 4f 92 push r4
+ 3ca4: 5f 92 push r5
+ 3ca6: 6f 92 push r6
+ 3ca8: 7f 92 push r7
+ 3caa: 8f 92 push r8
+ 3cac: 9f 92 push r9
+ 3cae: af 92 push r10
+ 3cb0: bf 92 push r11
+ 3cb2: cf 92 push r12
+ 3cb4: df 92 push r13
+ 3cb6: ef 92 push r14
+ 3cb8: ff 92 push r15
+ 3cba: 0f 93 push r16
+ 3cbc: 1f 93 push r17
+ 3cbe: cf 93 push r28
+ 3cc0: df 93 push r29
+ 3cc2: cd b7 in r28, 0x3d ; 61
+ 3cc4: de b7 in r29, 0x3e ; 62
+ 3cc6: ca 1b sub r28, r26
+ 3cc8: db 0b sbc r29, r27
+ 3cca: 0f b6 in r0, 0x3f ; 63
+ 3ccc: f8 94 cli
+ 3cce: de bf out 0x3e, r29 ; 62
+ 3cd0: 0f be out 0x3f, r0 ; 63
+ 3cd2: cd bf out 0x3d, r28 ; 61
+ 3cd4: 09 94 ijmp
+
+00003cd6 <__epilogue_restores__>:
+ 3cd6: 2a 88 ldd r2, Y+18 ; 0x12
+ 3cd8: 39 88 ldd r3, Y+17 ; 0x11
+ 3cda: 48 88 ldd r4, Y+16 ; 0x10
+ 3cdc: 5f 84 ldd r5, Y+15 ; 0x0f
+ 3cde: 6e 84 ldd r6, Y+14 ; 0x0e
+ 3ce0: 7d 84 ldd r7, Y+13 ; 0x0d
+ 3ce2: 8c 84 ldd r8, Y+12 ; 0x0c
+ 3ce4: 9b 84 ldd r9, Y+11 ; 0x0b
+ 3ce6: aa 84 ldd r10, Y+10 ; 0x0a
+ 3ce8: b9 84 ldd r11, Y+9 ; 0x09
+ 3cea: c8 84 ldd r12, Y+8 ; 0x08
+ 3cec: df 80 ldd r13, Y+7 ; 0x07
+ 3cee: ee 80 ldd r14, Y+6 ; 0x06
+ 3cf0: fd 80 ldd r15, Y+5 ; 0x05
+ 3cf2: 0c 81 ldd r16, Y+4 ; 0x04
+ 3cf4: 1b 81 ldd r17, Y+3 ; 0x03
+ 3cf6: aa 81 ldd r26, Y+2 ; 0x02
+ 3cf8: b9 81 ldd r27, Y+1 ; 0x01
+ 3cfa: ce 0f add r28, r30
+ 3cfc: d1 1d adc r29, r1
+ 3cfe: 0f b6 in r0, 0x3f ; 63
+ 3d00: f8 94 cli
+ 3d02: de bf out 0x3e, r29 ; 62
+ 3d04: 0f be out 0x3f, r0 ; 63
+ 3d06: cd bf out 0x3d, r28 ; 61
+ 3d08: ed 01 movw r28, r26
+ 3d0a: 08 95 ret
+
+00003d0c <__tablejump2__>:
+ 3d0c: ee 0f add r30, r30
+ 3d0e: ff 1f adc r31, r31
+
+00003d10 <__tablejump__>:
+ 3d10: 05 90 lpm r0, Z+
+ 3d12: f4 91 lpm r31, Z+
+ 3d14: e0 2d mov r30, r0
+ 3d16: 09 94 ijmp
+
+00003d18 <malloc>:
+ 3d18: cf 93 push r28
+ 3d1a: df 93 push r29
+ 3d1c: bc 01 movw r22, r24
+ 3d1e: 82 30 cpi r24, 0x02 ; 2
+ 3d20: 91 05 cpc r25, r1
+ 3d22: 10 f4 brcc .+4 ; 0x3d28 <malloc+0x10>
+ 3d24: 62 e0 ldi r22, 0x02 ; 2
+ 3d26: 70 e0 ldi r23, 0x00 ; 0
+ 3d28: a0 91 90 03 lds r26, 0x0390
+ 3d2c: b0 91 91 03 lds r27, 0x0391
+ 3d30: ed 01 movw r28, r26
+ 3d32: e0 e0 ldi r30, 0x00 ; 0
+ 3d34: f0 e0 ldi r31, 0x00 ; 0
+ 3d36: 40 e0 ldi r20, 0x00 ; 0
+ 3d38: 50 e0 ldi r21, 0x00 ; 0
+ 3d3a: 21 c0 rjmp .+66 ; 0x3d7e <malloc+0x66>
+ 3d3c: 88 81 ld r24, Y
+ 3d3e: 99 81 ldd r25, Y+1 ; 0x01
+ 3d40: 86 17 cp r24, r22
+ 3d42: 97 07 cpc r25, r23
+ 3d44: 69 f4 brne .+26 ; 0x3d60 <malloc+0x48>
+ 3d46: 8a 81 ldd r24, Y+2 ; 0x02
+ 3d48: 9b 81 ldd r25, Y+3 ; 0x03
+ 3d4a: 30 97 sbiw r30, 0x00 ; 0
+ 3d4c: 19 f0 breq .+6 ; 0x3d54 <malloc+0x3c>
+ 3d4e: 93 83 std Z+3, r25 ; 0x03
+ 3d50: 82 83 std Z+2, r24 ; 0x02
+ 3d52: 04 c0 rjmp .+8 ; 0x3d5c <malloc+0x44>
+ 3d54: 90 93 91 03 sts 0x0391, r25
+ 3d58: 80 93 90 03 sts 0x0390, r24
+ 3d5c: fe 01 movw r30, r28
+ 3d5e: 34 c0 rjmp .+104 ; 0x3dc8 <malloc+0xb0>
+ 3d60: 68 17 cp r22, r24
+ 3d62: 79 07 cpc r23, r25
+ 3d64: 38 f4 brcc .+14 ; 0x3d74 <malloc+0x5c>
+ 3d66: 41 15 cp r20, r1
+ 3d68: 51 05 cpc r21, r1
+ 3d6a: 19 f0 breq .+6 ; 0x3d72 <malloc+0x5a>
+ 3d6c: 84 17 cp r24, r20
+ 3d6e: 95 07 cpc r25, r21
+ 3d70: 08 f4 brcc .+2 ; 0x3d74 <malloc+0x5c>
+ 3d72: ac 01 movw r20, r24
+ 3d74: fe 01 movw r30, r28
+ 3d76: 8a 81 ldd r24, Y+2 ; 0x02
+ 3d78: 9b 81 ldd r25, Y+3 ; 0x03
+ 3d7a: 9c 01 movw r18, r24
+ 3d7c: e9 01 movw r28, r18
+ 3d7e: 20 97 sbiw r28, 0x00 ; 0
+ 3d80: e9 f6 brne .-70 ; 0x3d3c <malloc+0x24>
+ 3d82: 41 15 cp r20, r1
+ 3d84: 51 05 cpc r21, r1
+ 3d86: a9 f1 breq .+106 ; 0x3df2 <malloc+0xda>
+ 3d88: ca 01 movw r24, r20
+ 3d8a: 86 1b sub r24, r22
+ 3d8c: 97 0b sbc r25, r23
+ 3d8e: 04 97 sbiw r24, 0x04 ; 4
+ 3d90: 08 f4 brcc .+2 ; 0x3d94 <malloc+0x7c>
+ 3d92: ba 01 movw r22, r20
+ 3d94: e0 e0 ldi r30, 0x00 ; 0
+ 3d96: f0 e0 ldi r31, 0x00 ; 0
+ 3d98: 2a c0 rjmp .+84 ; 0x3dee <malloc+0xd6>
+ 3d9a: 8d 91 ld r24, X+
+ 3d9c: 9c 91 ld r25, X
+ 3d9e: 11 97 sbiw r26, 0x01 ; 1
+ 3da0: 84 17 cp r24, r20
+ 3da2: 95 07 cpc r25, r21
+ 3da4: f9 f4 brne .+62 ; 0x3de4 <malloc+0xcc>
+ 3da6: 64 17 cp r22, r20
+ 3da8: 75 07 cpc r23, r21
+ 3daa: 81 f4 brne .+32 ; 0x3dcc <malloc+0xb4>
+ 3dac: 12 96 adiw r26, 0x02 ; 2
+ 3dae: 8d 91 ld r24, X+
+ 3db0: 9c 91 ld r25, X
+ 3db2: 13 97 sbiw r26, 0x03 ; 3
+ 3db4: 30 97 sbiw r30, 0x00 ; 0
+ 3db6: 19 f0 breq .+6 ; 0x3dbe <malloc+0xa6>
+ 3db8: 93 83 std Z+3, r25 ; 0x03
+ 3dba: 82 83 std Z+2, r24 ; 0x02
+ 3dbc: 04 c0 rjmp .+8 ; 0x3dc6 <malloc+0xae>
+ 3dbe: 90 93 91 03 sts 0x0391, r25
+ 3dc2: 80 93 90 03 sts 0x0390, r24
+ 3dc6: fd 01 movw r30, r26
+ 3dc8: 32 96 adiw r30, 0x02 ; 2
+ 3dca: 4f c0 rjmp .+158 ; 0x3e6a <malloc+0x152>
+ 3dcc: ca 01 movw r24, r20
+ 3dce: 86 1b sub r24, r22
+ 3dd0: 97 0b sbc r25, r23
+ 3dd2: fd 01 movw r30, r26
+ 3dd4: e8 0f add r30, r24
+ 3dd6: f9 1f adc r31, r25
+ 3dd8: 61 93 st Z+, r22
+ 3dda: 71 93 st Z+, r23
+ 3ddc: 02 97 sbiw r24, 0x02 ; 2
+ 3dde: 8d 93 st X+, r24
+ 3de0: 9c 93 st X, r25
+ 3de2: 43 c0 rjmp .+134 ; 0x3e6a <malloc+0x152>
+ 3de4: fd 01 movw r30, r26
+ 3de6: 82 81 ldd r24, Z+2 ; 0x02
+ 3de8: 93 81 ldd r25, Z+3 ; 0x03
+ 3dea: 9c 01 movw r18, r24
+ 3dec: d9 01 movw r26, r18
+ 3dee: 10 97 sbiw r26, 0x00 ; 0
+ 3df0: a1 f6 brne .-88 ; 0x3d9a <malloc+0x82>
+ 3df2: 80 91 8e 03 lds r24, 0x038E
+ 3df6: 90 91 8f 03 lds r25, 0x038F
+ 3dfa: 89 2b or r24, r25
+ 3dfc: 41 f4 brne .+16 ; 0x3e0e <malloc+0xf6>
+ 3dfe: 80 91 b2 02 lds r24, 0x02B2
+ 3e02: 90 91 b3 02 lds r25, 0x02B3
+ 3e06: 90 93 8f 03 sts 0x038F, r25
+ 3e0a: 80 93 8e 03 sts 0x038E, r24
+ 3e0e: 40 91 b4 02 lds r20, 0x02B4
+ 3e12: 50 91 b5 02 lds r21, 0x02B5
+ 3e16: 41 15 cp r20, r1
+ 3e18: 51 05 cpc r21, r1
+ 3e1a: 41 f4 brne .+16 ; 0x3e2c <malloc+0x114>
+ 3e1c: 4d b7 in r20, 0x3d ; 61
+ 3e1e: 5e b7 in r21, 0x3e ; 62
+ 3e20: 80 91 b0 02 lds r24, 0x02B0
+ 3e24: 90 91 b1 02 lds r25, 0x02B1
+ 3e28: 48 1b sub r20, r24
+ 3e2a: 59 0b sbc r21, r25
+ 3e2c: 20 91 8e 03 lds r18, 0x038E
+ 3e30: 30 91 8f 03 lds r19, 0x038F
+ 3e34: 24 17 cp r18, r20
+ 3e36: 35 07 cpc r19, r21
+ 3e38: b0 f4 brcc .+44 ; 0x3e66 <malloc+0x14e>
+ 3e3a: ca 01 movw r24, r20
+ 3e3c: 82 1b sub r24, r18
+ 3e3e: 93 0b sbc r25, r19
+ 3e40: 86 17 cp r24, r22
+ 3e42: 97 07 cpc r25, r23
+ 3e44: 80 f0 brcs .+32 ; 0x3e66 <malloc+0x14e>
+ 3e46: ab 01 movw r20, r22
+ 3e48: 4e 5f subi r20, 0xFE ; 254
+ 3e4a: 5f 4f sbci r21, 0xFF ; 255
+ 3e4c: 84 17 cp r24, r20
+ 3e4e: 95 07 cpc r25, r21
+ 3e50: 50 f0 brcs .+20 ; 0x3e66 <malloc+0x14e>
+ 3e52: 42 0f add r20, r18
+ 3e54: 53 1f adc r21, r19
+ 3e56: 50 93 8f 03 sts 0x038F, r21
+ 3e5a: 40 93 8e 03 sts 0x038E, r20
+ 3e5e: f9 01 movw r30, r18
+ 3e60: 61 93 st Z+, r22
+ 3e62: 71 93 st Z+, r23
+ 3e64: 02 c0 rjmp .+4 ; 0x3e6a <malloc+0x152>
+ 3e66: e0 e0 ldi r30, 0x00 ; 0
+ 3e68: f0 e0 ldi r31, 0x00 ; 0
+ 3e6a: cf 01 movw r24, r30
+ 3e6c: df 91 pop r29
+ 3e6e: cf 91 pop r28
+ 3e70: 08 95 ret
+
+00003e72 <free>:
+ 3e72: cf 93 push r28
+ 3e74: df 93 push r29
+ 3e76: 00 97 sbiw r24, 0x00 ; 0
+ 3e78: 09 f4 brne .+2 ; 0x3e7c <free+0xa>
+ 3e7a: 50 c0 rjmp .+160 ; 0x3f1c <free+0xaa>
+ 3e7c: ec 01 movw r28, r24
+ 3e7e: 22 97 sbiw r28, 0x02 ; 2
+ 3e80: 1b 82 std Y+3, r1 ; 0x03
+ 3e82: 1a 82 std Y+2, r1 ; 0x02
+ 3e84: a0 91 90 03 lds r26, 0x0390
+ 3e88: b0 91 91 03 lds r27, 0x0391
+ 3e8c: 10 97 sbiw r26, 0x00 ; 0
+ 3e8e: 09 f1 breq .+66 ; 0x3ed2 <free+0x60>
+ 3e90: 40 e0 ldi r20, 0x00 ; 0
+ 3e92: 50 e0 ldi r21, 0x00 ; 0
+ 3e94: ac 17 cp r26, r28
+ 3e96: bd 07 cpc r27, r29
+ 3e98: 08 f1 brcs .+66 ; 0x3edc <free+0x6a>
+ 3e9a: bb 83 std Y+3, r27 ; 0x03
+ 3e9c: aa 83 std Y+2, r26 ; 0x02
+ 3e9e: fe 01 movw r30, r28
+ 3ea0: 21 91 ld r18, Z+
+ 3ea2: 31 91 ld r19, Z+
+ 3ea4: e2 0f add r30, r18
+ 3ea6: f3 1f adc r31, r19
+ 3ea8: ae 17 cp r26, r30
+ 3eaa: bf 07 cpc r27, r31
+ 3eac: 79 f4 brne .+30 ; 0x3ecc <free+0x5a>
+ 3eae: 8d 91 ld r24, X+
+ 3eb0: 9c 91 ld r25, X
+ 3eb2: 11 97 sbiw r26, 0x01 ; 1
+ 3eb4: 28 0f add r18, r24
+ 3eb6: 39 1f adc r19, r25
+ 3eb8: 2e 5f subi r18, 0xFE ; 254
+ 3eba: 3f 4f sbci r19, 0xFF ; 255
+ 3ebc: 39 83 std Y+1, r19 ; 0x01
+ 3ebe: 28 83 st Y, r18
+ 3ec0: 12 96 adiw r26, 0x02 ; 2
+ 3ec2: 8d 91 ld r24, X+
+ 3ec4: 9c 91 ld r25, X
+ 3ec6: 13 97 sbiw r26, 0x03 ; 3
+ 3ec8: 9b 83 std Y+3, r25 ; 0x03
+ 3eca: 8a 83 std Y+2, r24 ; 0x02
+ 3ecc: 41 15 cp r20, r1
+ 3ece: 51 05 cpc r21, r1
+ 3ed0: 71 f4 brne .+28 ; 0x3eee <free+0x7c>
+ 3ed2: d0 93 91 03 sts 0x0391, r29
+ 3ed6: c0 93 90 03 sts 0x0390, r28
+ 3eda: 20 c0 rjmp .+64 ; 0x3f1c <free+0xaa>
+ 3edc: 12 96 adiw r26, 0x02 ; 2
+ 3ede: 8d 91 ld r24, X+
+ 3ee0: 9c 91 ld r25, X
+ 3ee2: 13 97 sbiw r26, 0x03 ; 3
+ 3ee4: ad 01 movw r20, r26
+ 3ee6: 00 97 sbiw r24, 0x00 ; 0
+ 3ee8: 11 f0 breq .+4 ; 0x3eee <free+0x7c>
+ 3eea: dc 01 movw r26, r24
+ 3eec: d3 cf rjmp .-90 ; 0x3e94 <free+0x22>
+ 3eee: fa 01 movw r30, r20
+ 3ef0: d3 83 std Z+3, r29 ; 0x03
+ 3ef2: c2 83 std Z+2, r28 ; 0x02
+ 3ef4: 21 91 ld r18, Z+
+ 3ef6: 31 91 ld r19, Z+
+ 3ef8: e2 0f add r30, r18
+ 3efa: f3 1f adc r31, r19
+ 3efc: ce 17 cp r28, r30
+ 3efe: df 07 cpc r29, r31
+ 3f00: 69 f4 brne .+26 ; 0x3f1c <free+0xaa>
+ 3f02: 88 81 ld r24, Y
+ 3f04: 99 81 ldd r25, Y+1 ; 0x01
+ 3f06: 28 0f add r18, r24
+ 3f08: 39 1f adc r19, r25
+ 3f0a: 2e 5f subi r18, 0xFE ; 254
+ 3f0c: 3f 4f sbci r19, 0xFF ; 255
+ 3f0e: fa 01 movw r30, r20
+ 3f10: 31 83 std Z+1, r19 ; 0x01
+ 3f12: 20 83 st Z, r18
+ 3f14: 8a 81 ldd r24, Y+2 ; 0x02
+ 3f16: 9b 81 ldd r25, Y+3 ; 0x03
+ 3f18: 93 83 std Z+3, r25 ; 0x03
+ 3f1a: 82 83 std Z+2, r24 ; 0x02
+ 3f1c: df 91 pop r29
+ 3f1e: cf 91 pop r28
+ 3f20: 08 95 ret
+
+00003f22 <do_random>:
+ 3f22: a0 e0 ldi r26, 0x00 ; 0
+ 3f24: b0 e0 ldi r27, 0x00 ; 0
+ 3f26: e7 e9 ldi r30, 0x97 ; 151
+ 3f28: ff e1 ldi r31, 0x1F ; 31
+ 3f2a: 0c 94 57 1e jmp 0x3cae ; 0x3cae <__prologue_saves__+0x10>
+ 3f2e: ec 01 movw r28, r24
+ 3f30: a8 80 ld r10, Y
+ 3f32: b9 80 ldd r11, Y+1 ; 0x01
+ 3f34: ca 80 ldd r12, Y+2 ; 0x02
+ 3f36: db 80 ldd r13, Y+3 ; 0x03
+ 3f38: a1 14 cp r10, r1
+ 3f3a: b1 04 cpc r11, r1
+ 3f3c: c1 04 cpc r12, r1
+ 3f3e: d1 04 cpc r13, r1
+ 3f40: 41 f4 brne .+16 ; 0x3f52 <do_random+0x30>
+ 3f42: 84 e2 ldi r24, 0x24 ; 36
+ 3f44: a8 2e mov r10, r24
+ 3f46: 89 ed ldi r24, 0xD9 ; 217
+ 3f48: b8 2e mov r11, r24
+ 3f4a: 8b e5 ldi r24, 0x5B ; 91
+ 3f4c: c8 2e mov r12, r24
+ 3f4e: 87 e0 ldi r24, 0x07 ; 7
+ 3f50: d8 2e mov r13, r24
+ 3f52: c6 01 movw r24, r12
+ 3f54: b5 01 movw r22, r10
+ 3f56: 2d e1 ldi r18, 0x1D ; 29
+ 3f58: 33 ef ldi r19, 0xF3 ; 243
+ 3f5a: 41 e0 ldi r20, 0x01 ; 1
+ 3f5c: 50 e0 ldi r21, 0x00 ; 0
+ 3f5e: 0e 94 34 1e call 0x3c68 ; 0x3c68 <__divmodsi4>
+ 3f62: 27 ea ldi r18, 0xA7 ; 167
+ 3f64: 31 e4 ldi r19, 0x41 ; 65
+ 3f66: 40 e0 ldi r20, 0x00 ; 0
+ 3f68: 50 e0 ldi r21, 0x00 ; 0
+ 3f6a: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 3f6e: 7b 01 movw r14, r22
+ 3f70: 8c 01 movw r16, r24
+ 3f72: c6 01 movw r24, r12
+ 3f74: b5 01 movw r22, r10
+ 3f76: 2d e1 ldi r18, 0x1D ; 29
+ 3f78: 33 ef ldi r19, 0xF3 ; 243
+ 3f7a: 41 e0 ldi r20, 0x01 ; 1
+ 3f7c: 50 e0 ldi r21, 0x00 ; 0
+ 3f7e: 0e 94 34 1e call 0x3c68 ; 0x3c68 <__divmodsi4>
+ 3f82: ca 01 movw r24, r20
+ 3f84: b9 01 movw r22, r18
+ 3f86: 2c ee ldi r18, 0xEC ; 236
+ 3f88: 34 ef ldi r19, 0xF4 ; 244
+ 3f8a: 4f ef ldi r20, 0xFF ; 255
+ 3f8c: 5f ef ldi r21, 0xFF ; 255
+ 3f8e: 0e 94 f3 1d call 0x3be6 ; 0x3be6 <__mulsi3>
+ 3f92: 6e 0d add r22, r14
+ 3f94: 7f 1d adc r23, r15
+ 3f96: 80 1f adc r24, r16
+ 3f98: 91 1f adc r25, r17
+ 3f9a: 97 ff sbrs r25, 7
+ 3f9c: 04 c0 rjmp .+8 ; 0x3fa6 <do_random+0x84>
+ 3f9e: 61 50 subi r22, 0x01 ; 1
+ 3fa0: 70 40 sbci r23, 0x00 ; 0
+ 3fa2: 80 40 sbci r24, 0x00 ; 0
+ 3fa4: 90 48 sbci r25, 0x80 ; 128
+ 3fa6: 68 83 st Y, r22
+ 3fa8: 79 83 std Y+1, r23 ; 0x01
+ 3faa: 8a 83 std Y+2, r24 ; 0x02
+ 3fac: 9b 83 std Y+3, r25 ; 0x03
+ 3fae: 9b 01 movw r18, r22
+ 3fb0: ac 01 movw r20, r24
+ 3fb2: 5f 77 andi r21, 0x7F ; 127
+ 3fb4: b9 01 movw r22, r18
+ 3fb6: ca 01 movw r24, r20
+ 3fb8: cd b7 in r28, 0x3d ; 61
+ 3fba: de b7 in r29, 0x3e ; 62
+ 3fbc: ea e0 ldi r30, 0x0A ; 10
+ 3fbe: 0c 94 73 1e jmp 0x3ce6 ; 0x3ce6 <__epilogue_restores__+0x10>
+
+00003fc2 <random_r>:
+ 3fc2: 0e 94 91 1f call 0x3f22 ; 0x3f22 <do_random>
+ 3fc6: 08 95 ret
+
+00003fc8 <random>:
+ 3fc8: 86 eb ldi r24, 0xB6 ; 182
+ 3fca: 92 e0 ldi r25, 0x02 ; 2
+ 3fcc: 0e 94 91 1f call 0x3f22 ; 0x3f22 <do_random>
+ 3fd0: 08 95 ret
+
+00003fd2 <srandom>:
+ 3fd2: 60 93 b6 02 sts 0x02B6, r22
+ 3fd6: 70 93 b7 02 sts 0x02B7, r23
+ 3fda: 80 93 b8 02 sts 0x02B8, r24
+ 3fde: 90 93 b9 02 sts 0x02B9, r25
+ 3fe2: 08 95 ret
+
+00003fe4 <realloc>:
+ 3fe4: a0 e0 ldi r26, 0x00 ; 0
+ 3fe6: b0 e0 ldi r27, 0x00 ; 0
+ 3fe8: e8 ef ldi r30, 0xF8 ; 248
+ 3fea: ff e1 ldi r31, 0x1F ; 31
+ 3fec: 0c 94 55 1e jmp 0x3caa ; 0x3caa <__prologue_saves__+0xc>
+ 3ff0: 8c 01 movw r16, r24
+ 3ff2: 00 97 sbiw r24, 0x00 ; 0
+ 3ff4: 29 f4 brne .+10 ; 0x4000 <realloc+0x1c>
+ 3ff6: cb 01 movw r24, r22
+ 3ff8: 0e 94 8c 1e call 0x3d18 ; 0x3d18 <malloc>
+ 3ffc: 8c 01 movw r16, r24
+ 3ffe: ba c0 rjmp .+372 ; 0x4174 <realloc+0x190>
+ 4000: 9e ef ldi r25, 0xFE ; 254
+ 4002: e9 2e mov r14, r25
+ 4004: 9f ef ldi r25, 0xFF ; 255
+ 4006: f9 2e mov r15, r25
+ 4008: e0 0e add r14, r16
+ 400a: f1 1e adc r15, r17
+ 400c: 58 01 movw r10, r16
+ 400e: a6 0e add r10, r22
+ 4010: b7 1e adc r11, r23
+ 4012: ae 14 cp r10, r14
+ 4014: bf 04 cpc r11, r15
+ 4016: 08 f4 brcc .+2 ; 0x401a <realloc+0x36>
+ 4018: ab c0 rjmp .+342 ; 0x4170 <realloc+0x18c>
+ 401a: 8e ef ldi r24, 0xFE ; 254
+ 401c: 88 2e mov r8, r24
+ 401e: 8f ef ldi r24, 0xFF ; 255
+ 4020: 98 2e mov r9, r24
+ 4022: 8a 0c add r8, r10
+ 4024: 9b 1c adc r9, r11
+ 4026: e7 01 movw r28, r14
+ 4028: 48 81 ld r20, Y
+ 402a: 59 81 ldd r21, Y+1 ; 0x01
+ 402c: 46 17 cp r20, r22
+ 402e: 57 07 cpc r21, r23
+ 4030: b8 f0 brcs .+46 ; 0x4060 <realloc+0x7c>
+ 4032: 45 30 cpi r20, 0x05 ; 5
+ 4034: 51 05 cpc r21, r1
+ 4036: 08 f4 brcc .+2 ; 0x403a <realloc+0x56>
+ 4038: 9d c0 rjmp .+314 ; 0x4174 <realloc+0x190>
+ 403a: ca 01 movw r24, r20
+ 403c: 04 97 sbiw r24, 0x04 ; 4
+ 403e: 86 17 cp r24, r22
+ 4040: 97 07 cpc r25, r23
+ 4042: 08 f4 brcc .+2 ; 0x4046 <realloc+0x62>
+ 4044: 97 c0 rjmp .+302 ; 0x4174 <realloc+0x190>
+ 4046: 42 50 subi r20, 0x02 ; 2
+ 4048: 50 40 sbci r21, 0x00 ; 0
+ 404a: 46 1b sub r20, r22
+ 404c: 57 0b sbc r21, r23
+ 404e: f4 01 movw r30, r8
+ 4050: 51 83 std Z+1, r21 ; 0x01
+ 4052: 40 83 st Z, r20
+ 4054: 79 83 std Y+1, r23 ; 0x01
+ 4056: 68 83 st Y, r22
+ 4058: c5 01 movw r24, r10
+ 405a: 0e 94 39 1f call 0x3e72 ; 0x3e72 <free>
+ 405e: 8a c0 rjmp .+276 ; 0x4174 <realloc+0x190>
+ 4060: 6b 01 movw r12, r22
+ 4062: c4 1a sub r12, r20
+ 4064: d5 0a sbc r13, r21
+ 4066: e0 91 90 03 lds r30, 0x0390
+ 406a: f0 91 91 03 lds r31, 0x0391
+ 406e: a0 e0 ldi r26, 0x00 ; 0
+ 4070: b0 e0 ldi r27, 0x00 ; 0
+ 4072: c0 e0 ldi r28, 0x00 ; 0
+ 4074: d0 e0 ldi r29, 0x00 ; 0
+ 4076: 42 c0 rjmp .+132 ; 0x40fc <realloc+0x118>
+ 4078: e8 15 cp r30, r8
+ 407a: f9 05 cpc r31, r9
+ 407c: a1 f5 brne .+104 ; 0x40e6 <realloc+0x102>
+ 407e: 20 81 ld r18, Z
+ 4080: 31 81 ldd r19, Z+1 ; 0x01
+ 4082: 2c 15 cp r18, r12
+ 4084: 3d 05 cpc r19, r13
+ 4086: 78 f1 brcs .+94 ; 0x40e6 <realloc+0x102>
+ 4088: c9 01 movw r24, r18
+ 408a: 02 96 adiw r24, 0x02 ; 2
+ 408c: 8c 15 cp r24, r12
+ 408e: 9d 05 cpc r25, r13
+ 4090: a8 f0 brcs .+42 ; 0x40bc <realloc+0xd8>
+ 4092: 4e 5f subi r20, 0xFE ; 254
+ 4094: 5f 4f sbci r21, 0xFF ; 255
+ 4096: 42 0f add r20, r18
+ 4098: 53 1f adc r21, r19
+ 409a: e7 01 movw r28, r14
+ 409c: 59 83 std Y+1, r21 ; 0x01
+ 409e: 48 83 st Y, r20
+ 40a0: 22 81 ldd r18, Z+2 ; 0x02
+ 40a2: 33 81 ldd r19, Z+3 ; 0x03
+ 40a4: 10 97 sbiw r26, 0x00 ; 0
+ 40a6: 29 f0 breq .+10 ; 0x40b2 <realloc+0xce>
+ 40a8: 13 96 adiw r26, 0x03 ; 3
+ 40aa: 3c 93 st X, r19
+ 40ac: 2e 93 st -X, r18
+ 40ae: 12 97 sbiw r26, 0x02 ; 2
+ 40b0: 61 c0 rjmp .+194 ; 0x4174 <realloc+0x190>
+ 40b2: 30 93 91 03 sts 0x0391, r19
+ 40b6: 20 93 90 03 sts 0x0390, r18
+ 40ba: 5c c0 rjmp .+184 ; 0x4174 <realloc+0x190>
+ 40bc: 22 50 subi r18, 0x02 ; 2
+ 40be: 30 40 sbci r19, 0x00 ; 0
+ 40c0: 2c 19 sub r18, r12
+ 40c2: 3d 09 sbc r19, r13
+ 40c4: 31 83 std Z+1, r19 ; 0x01
+ 40c6: 20 83 st Z, r18
+ 40c8: 10 97 sbiw r26, 0x00 ; 0
+ 40ca: 29 f0 breq .+10 ; 0x40d6 <realloc+0xf2>
+ 40cc: 13 96 adiw r26, 0x03 ; 3
+ 40ce: fc 93 st X, r31
+ 40d0: ee 93 st -X, r30
+ 40d2: 12 97 sbiw r26, 0x02 ; 2
+ 40d4: 04 c0 rjmp .+8 ; 0x40de <realloc+0xfa>
+ 40d6: f0 93 91 03 sts 0x0391, r31
+ 40da: e0 93 90 03 sts 0x0390, r30
+ 40de: f7 01 movw r30, r14
+ 40e0: 71 83 std Z+1, r23 ; 0x01
+ 40e2: 60 83 st Z, r22
+ 40e4: 47 c0 rjmp .+142 ; 0x4174 <realloc+0x190>
+ 40e6: 80 81 ld r24, Z
+ 40e8: 91 81 ldd r25, Z+1 ; 0x01
+ 40ea: c8 17 cp r28, r24
+ 40ec: d9 07 cpc r29, r25
+ 40ee: 08 f4 brcc .+2 ; 0x40f2 <realloc+0x10e>
+ 40f0: ec 01 movw r28, r24
+ 40f2: df 01 movw r26, r30
+ 40f4: 82 81 ldd r24, Z+2 ; 0x02
+ 40f6: 93 81 ldd r25, Z+3 ; 0x03
+ 40f8: 9c 01 movw r18, r24
+ 40fa: f9 01 movw r30, r18
+ 40fc: 30 97 sbiw r30, 0x00 ; 0
+ 40fe: 09 f0 breq .+2 ; 0x4102 <realloc+0x11e>
+ 4100: bb cf rjmp .-138 ; 0x4078 <realloc+0x94>
+ 4102: 40 0f add r20, r16
+ 4104: 51 1f adc r21, r17
+ 4106: 80 91 8e 03 lds r24, 0x038E
+ 410a: 90 91 8f 03 lds r25, 0x038F
+ 410e: 84 17 cp r24, r20
+ 4110: 95 07 cpc r25, r21
+ 4112: e9 f4 brne .+58 ; 0x414e <realloc+0x16a>
+ 4114: c6 17 cp r28, r22
+ 4116: d7 07 cpc r29, r23
+ 4118: d0 f4 brcc .+52 ; 0x414e <realloc+0x16a>
+ 411a: 20 91 b4 02 lds r18, 0x02B4
+ 411e: 30 91 b5 02 lds r19, 0x02B5
+ 4122: 21 15 cp r18, r1
+ 4124: 31 05 cpc r19, r1
+ 4126: 41 f4 brne .+16 ; 0x4138 <realloc+0x154>
+ 4128: 2d b7 in r18, 0x3d ; 61
+ 412a: 3e b7 in r19, 0x3e ; 62
+ 412c: 80 91 b0 02 lds r24, 0x02B0
+ 4130: 90 91 b1 02 lds r25, 0x02B1
+ 4134: 28 1b sub r18, r24
+ 4136: 39 0b sbc r19, r25
+ 4138: a2 16 cp r10, r18
+ 413a: b3 06 cpc r11, r19
+ 413c: c8 f4 brcc .+50 ; 0x4170 <realloc+0x18c>
+ 413e: b0 92 8f 03 sts 0x038F, r11
+ 4142: a0 92 8e 03 sts 0x038E, r10
+ 4146: e7 01 movw r28, r14
+ 4148: 79 83 std Y+1, r23 ; 0x01
+ 414a: 68 83 st Y, r22
+ 414c: 13 c0 rjmp .+38 ; 0x4174 <realloc+0x190>
+ 414e: cb 01 movw r24, r22
+ 4150: 0e 94 8c 1e call 0x3d18 ; 0x3d18 <malloc>
+ 4154: ec 01 movw r28, r24
+ 4156: 00 97 sbiw r24, 0x00 ; 0
+ 4158: 59 f0 breq .+22 ; 0x4170 <realloc+0x18c>
+ 415a: f7 01 movw r30, r14
+ 415c: 40 81 ld r20, Z
+ 415e: 51 81 ldd r21, Z+1 ; 0x01
+ 4160: b8 01 movw r22, r16
+ 4162: 0e 94 ff 20 call 0x41fe ; 0x41fe <memcpy>
+ 4166: c8 01 movw r24, r16
+ 4168: 0e 94 39 1f call 0x3e72 ; 0x3e72 <free>
+ 416c: 8e 01 movw r16, r28
+ 416e: 02 c0 rjmp .+4 ; 0x4174 <realloc+0x190>
+ 4170: 00 e0 ldi r16, 0x00 ; 0
+ 4172: 10 e0 ldi r17, 0x00 ; 0
+ 4174: c8 01 movw r24, r16
+ 4176: cd b7 in r28, 0x3d ; 61
+ 4178: de b7 in r29, 0x3e ; 62
+ 417a: ec e0 ldi r30, 0x0C ; 12
+ 417c: 0c 94 71 1e jmp 0x3ce2 ; 0x3ce2 <__epilogue_restores__+0xc>
+
+00004180 <atol>:
+ 4180: 1f 93 push r17
+ 4182: fc 01 movw r30, r24
+ 4184: 99 27 eor r25, r25
+ 4186: 88 27 eor r24, r24
+ 4188: bc 01 movw r22, r24
+ 418a: e8 94 clt
+ 418c: 11 91 ld r17, Z+
+ 418e: 10 32 cpi r17, 0x20 ; 32
+ 4190: e9 f3 breq .-6 ; 0x418c <atol+0xc>
+ 4192: 19 30 cpi r17, 0x09 ; 9
+ 4194: 10 f0 brcs .+4 ; 0x419a <atol+0x1a>
+ 4196: 1e 30 cpi r17, 0x0E ; 14
+ 4198: c8 f3 brcs .-14 ; 0x418c <atol+0xc>
+ 419a: 1b 32 cpi r17, 0x2B ; 43
+ 419c: 51 f0 breq .+20 ; 0x41b2 <atol+0x32>
+ 419e: 1d 32 cpi r17, 0x2D ; 45
+ 41a0: 49 f4 brne .+18 ; 0x41b4 <atol+0x34>
+ 41a2: 68 94 set
+ 41a4: 06 c0 rjmp .+12 ; 0x41b2 <atol+0x32>
+ 41a6: 0e 94 c5 21 call 0x438a ; 0x438a <__mulsi_const_10>
+ 41aa: 61 0f add r22, r17
+ 41ac: 71 1d adc r23, r1
+ 41ae: 81 1d adc r24, r1
+ 41b0: 91 1d adc r25, r1
+ 41b2: 11 91 ld r17, Z+
+ 41b4: 10 53 subi r17, 0x30 ; 48
+ 41b6: 1a 30 cpi r17, 0x0A ; 10
+ 41b8: b0 f3 brcs .-20 ; 0x41a6 <atol+0x26>
+ 41ba: 3e f4 brtc .+14 ; 0x41ca <atol+0x4a>
+ 41bc: 90 95 com r25
+ 41be: 80 95 com r24
+ 41c0: 70 95 com r23
+ 41c2: 61 95 neg r22
+ 41c4: 7f 4f sbci r23, 0xFF ; 255
+ 41c6: 8f 4f sbci r24, 0xFF ; 255
+ 41c8: 9f 4f sbci r25, 0xFF ; 255
+ 41ca: 1f 91 pop r17
+ 41cc: 08 95 ret
+
+000041ce <isspace>:
+ 41ce: 91 11 cpse r25, r1
+ 41d0: 16 c1 rjmp .+556 ; 0x43fe <__ctype_isfalse>
+ 41d2: 80 32 cpi r24, 0x20 ; 32
+ 41d4: 19 f0 breq .+6 ; 0x41dc <isspace+0xe>
+ 41d6: 89 50 subi r24, 0x09 ; 9
+ 41d8: 85 50 subi r24, 0x05 ; 5
+ 41da: d0 f7 brcc .-12 ; 0x41d0 <isspace+0x2>
+ 41dc: 08 95 ret
+
+000041de <tolower>:
+ 41de: 91 11 cpse r25, r1
+ 41e0: 08 95 ret
+ 41e2: 81 54 subi r24, 0x41 ; 65
+ 41e4: 8a 51 subi r24, 0x1A ; 26
+ 41e6: 08 f4 brcc .+2 ; 0x41ea <tolower+0xc>
+ 41e8: 80 5e subi r24, 0xE0 ; 224
+ 41ea: 85 5a subi r24, 0xA5 ; 165
+ 41ec: 08 95 ret
+
+000041ee <toupper>:
+ 41ee: 91 11 cpse r25, r1
+ 41f0: 08 95 ret
+ 41f2: 81 56 subi r24, 0x61 ; 97
+ 41f4: 8a 51 subi r24, 0x1A ; 26
+ 41f6: 08 f4 brcc .+2 ; 0x41fa <toupper+0xc>
+ 41f8: 80 52 subi r24, 0x20 ; 32
+ 41fa: 85 58 subi r24, 0x85 ; 133
+ 41fc: 08 95 ret
+
+000041fe <memcpy>:
+ 41fe: fb 01 movw r30, r22
+ 4200: dc 01 movw r26, r24
+ 4202: 02 c0 rjmp .+4 ; 0x4208 <memcpy+0xa>
+ 4204: 01 90 ld r0, Z+
+ 4206: 0d 92 st X+, r0
+ 4208: 41 50 subi r20, 0x01 ; 1
+ 420a: 50 40 sbci r21, 0x00 ; 0
+ 420c: d8 f7 brcc .-10 ; 0x4204 <memcpy+0x6>
+ 420e: 08 95 ret
+
+00004210 <strcat>:
+ 4210: fb 01 movw r30, r22
+ 4212: dc 01 movw r26, r24
+ 4214: 0d 90 ld r0, X+
+ 4216: 00 20 and r0, r0
+ 4218: e9 f7 brne .-6 ; 0x4214 <strcat+0x4>
+ 421a: 11 97 sbiw r26, 0x01 ; 1
+ 421c: 01 90 ld r0, Z+
+ 421e: 0d 92 st X+, r0
+ 4220: 00 20 and r0, r0
+ 4222: e1 f7 brne .-8 ; 0x421c <strcat+0xc>
+ 4224: 08 95 ret
+
+00004226 <strchr>:
+ 4226: fc 01 movw r30, r24
+ 4228: 81 91 ld r24, Z+
+ 422a: 86 17 cp r24, r22
+ 422c: 21 f0 breq .+8 ; 0x4236 <strchr+0x10>
+ 422e: 88 23 and r24, r24
+ 4230: d9 f7 brne .-10 ; 0x4228 <strchr+0x2>
+ 4232: 99 27 eor r25, r25
+ 4234: 08 95 ret
+ 4236: 31 97 sbiw r30, 0x01 ; 1
+ 4238: cf 01 movw r24, r30
+ 423a: 08 95 ret
+
+0000423c <strcmp>:
+ 423c: fb 01 movw r30, r22
+ 423e: dc 01 movw r26, r24
+ 4240: 8d 91 ld r24, X+
+ 4242: 01 90 ld r0, Z+
+ 4244: 80 19 sub r24, r0
+ 4246: 01 10 cpse r0, r1
+ 4248: d9 f3 breq .-10 ; 0x4240 <strcmp+0x4>
+ 424a: 99 0b sbc r25, r25
+ 424c: 08 95 ret
+
+0000424e <strcpy>:
+ 424e: fb 01 movw r30, r22
+ 4250: dc 01 movw r26, r24
+ 4252: 01 90 ld r0, Z+
+ 4254: 0d 92 st X+, r0
+ 4256: 00 20 and r0, r0
+ 4258: e1 f7 brne .-8 ; 0x4252 <strcpy+0x4>
+ 425a: 08 95 ret
+
+0000425c <strncmp>:
+ 425c: fb 01 movw r30, r22
+ 425e: dc 01 movw r26, r24
+ 4260: 41 50 subi r20, 0x01 ; 1
+ 4262: 50 40 sbci r21, 0x00 ; 0
+ 4264: 30 f0 brcs .+12 ; 0x4272 <strncmp+0x16>
+ 4266: 8d 91 ld r24, X+
+ 4268: 01 90 ld r0, Z+
+ 426a: 80 19 sub r24, r0
+ 426c: 19 f4 brne .+6 ; 0x4274 <strncmp+0x18>
+ 426e: 00 20 and r0, r0
+ 4270: b9 f7 brne .-18 ; 0x4260 <strncmp+0x4>
+ 4272: 88 1b sub r24, r24
+ 4274: 99 0b sbc r25, r25
+ 4276: 08 95 ret
+
+00004278 <strncpy>:
+ 4278: fb 01 movw r30, r22
+ 427a: dc 01 movw r26, r24
+ 427c: 41 50 subi r20, 0x01 ; 1
+ 427e: 50 40 sbci r21, 0x00 ; 0
+ 4280: 48 f0 brcs .+18 ; 0x4294 <strncpy+0x1c>
+ 4282: 01 90 ld r0, Z+
+ 4284: 0d 92 st X+, r0
+ 4286: 00 20 and r0, r0
+ 4288: c9 f7 brne .-14 ; 0x427c <strncpy+0x4>
+ 428a: 01 c0 rjmp .+2 ; 0x428e <strncpy+0x16>
+ 428c: 1d 92 st X+, r1
+ 428e: 41 50 subi r20, 0x01 ; 1
+ 4290: 50 40 sbci r21, 0x00 ; 0
+ 4292: e0 f7 brcc .-8 ; 0x428c <strncpy+0x14>
+ 4294: 08 95 ret
+
+00004296 <strrchr>:
+ 4296: fc 01 movw r30, r24
+ 4298: 81 e0 ldi r24, 0x01 ; 1
+ 429a: 90 e0 ldi r25, 0x00 ; 0
+ 429c: 01 90 ld r0, Z+
+ 429e: 06 16 cp r0, r22
+ 42a0: 09 f4 brne .+2 ; 0x42a4 <strrchr+0xe>
+ 42a2: cf 01 movw r24, r30
+ 42a4: 00 20 and r0, r0
+ 42a6: d1 f7 brne .-12 ; 0x429c <strrchr+0x6>
+ 42a8: 01 97 sbiw r24, 0x01 ; 1
+ 42aa: 08 95 ret
+
+000042ac <strstr>:
+ 42ac: fb 01 movw r30, r22
+ 42ae: 51 91 ld r21, Z+
+ 42b0: 55 23 and r21, r21
+ 42b2: a9 f0 breq .+42 ; 0x42de <strstr+0x32>
+ 42b4: bf 01 movw r22, r30
+ 42b6: dc 01 movw r26, r24
+ 42b8: 4d 91 ld r20, X+
+ 42ba: 45 17 cp r20, r21
+ 42bc: 41 11 cpse r20, r1
+ 42be: e1 f7 brne .-8 ; 0x42b8 <strstr+0xc>
+ 42c0: 59 f4 brne .+22 ; 0x42d8 <strstr+0x2c>
+ 42c2: cd 01 movw r24, r26
+ 42c4: 01 90 ld r0, Z+
+ 42c6: 00 20 and r0, r0
+ 42c8: 49 f0 breq .+18 ; 0x42dc <strstr+0x30>
+ 42ca: 4d 91 ld r20, X+
+ 42cc: 40 15 cp r20, r0
+ 42ce: 41 11 cpse r20, r1
+ 42d0: c9 f3 breq .-14 ; 0x42c4 <strstr+0x18>
+ 42d2: fb 01 movw r30, r22
+ 42d4: 41 11 cpse r20, r1
+ 42d6: ef cf rjmp .-34 ; 0x42b6 <strstr+0xa>
+ 42d8: 81 e0 ldi r24, 0x01 ; 1
+ 42da: 90 e0 ldi r25, 0x00 ; 0
+ 42dc: 01 97 sbiw r24, 0x01 ; 1
+ 42de: 08 95 ret
+
+000042e0 <itoa>:
+ 42e0: fb 01 movw r30, r22
+ 42e2: 9f 01 movw r18, r30
+ 42e4: e8 94 clt
+ 42e6: 42 30 cpi r20, 0x02 ; 2
+ 42e8: c4 f0 brlt .+48 ; 0x431a <itoa+0x3a>
+ 42ea: 45 32 cpi r20, 0x25 ; 37
+ 42ec: b4 f4 brge .+44 ; 0x431a <itoa+0x3a>
+ 42ee: 4a 30 cpi r20, 0x0A ; 10
+ 42f0: 29 f4 brne .+10 ; 0x42fc <itoa+0x1c>
+ 42f2: 97 fb bst r25, 7
+ 42f4: 1e f4 brtc .+6 ; 0x42fc <itoa+0x1c>
+ 42f6: 90 95 com r25
+ 42f8: 81 95 neg r24
+ 42fa: 9f 4f sbci r25, 0xFF ; 255
+ 42fc: 64 2f mov r22, r20
+ 42fe: 77 27 eor r23, r23
+ 4300: 0e 94 12 22 call 0x4424 ; 0x4424 <__udivmodhi4>
+ 4304: 80 5d subi r24, 0xD0 ; 208
+ 4306: 8a 33 cpi r24, 0x3A ; 58
+ 4308: 0c f0 brlt .+2 ; 0x430c <itoa+0x2c>
+ 430a: 89 5d subi r24, 0xD9 ; 217
+ 430c: 81 93 st Z+, r24
+ 430e: cb 01 movw r24, r22
+ 4310: 00 97 sbiw r24, 0x00 ; 0
+ 4312: a1 f7 brne .-24 ; 0x42fc <itoa+0x1c>
+ 4314: 16 f4 brtc .+4 ; 0x431a <itoa+0x3a>
+ 4316: 5d e2 ldi r21, 0x2D ; 45
+ 4318: 51 93 st Z+, r21
+ 431a: 10 82 st Z, r1
+ 431c: c9 01 movw r24, r18
+ 431e: 0c 94 02 22 jmp 0x4404 ; 0x4404 <strrev>
+
+00004322 <ltoa>:
+ 4322: fa 01 movw r30, r20
+ 4324: cf 93 push r28
+ 4326: ff 93 push r31
+ 4328: ef 93 push r30
+ 432a: 22 30 cpi r18, 0x02 ; 2
+ 432c: 44 f1 brlt .+80 ; 0x437e <ltoa+0x5c>
+ 432e: 25 32 cpi r18, 0x25 ; 37
+ 4330: 34 f5 brge .+76 ; 0x437e <ltoa+0x5c>
+ 4332: c2 2f mov r28, r18
+ 4334: e8 94 clt
+ 4336: ca 30 cpi r28, 0x0A ; 10
+ 4338: 49 f4 brne .+18 ; 0x434c <ltoa+0x2a>
+ 433a: 97 fb bst r25, 7
+ 433c: 3e f4 brtc .+14 ; 0x434c <ltoa+0x2a>
+ 433e: 90 95 com r25
+ 4340: 80 95 com r24
+ 4342: 70 95 com r23
+ 4344: 61 95 neg r22
+ 4346: 7f 4f sbci r23, 0xFF ; 255
+ 4348: 8f 4f sbci r24, 0xFF ; 255
+ 434a: 9f 4f sbci r25, 0xFF ; 255
+ 434c: 2c 2f mov r18, r28
+ 434e: 33 27 eor r19, r19
+ 4350: 44 27 eor r20, r20
+ 4352: 55 27 eor r21, r21
+ 4354: ff 93 push r31
+ 4356: ef 93 push r30
+ 4358: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 435c: ef 91 pop r30
+ 435e: ff 91 pop r31
+ 4360: 60 5d subi r22, 0xD0 ; 208
+ 4362: 6a 33 cpi r22, 0x3A ; 58
+ 4364: 0c f0 brlt .+2 ; 0x4368 <ltoa+0x46>
+ 4366: 69 5d subi r22, 0xD9 ; 217
+ 4368: 61 93 st Z+, r22
+ 436a: b9 01 movw r22, r18
+ 436c: ca 01 movw r24, r20
+ 436e: 60 50 subi r22, 0x00 ; 0
+ 4370: 70 40 sbci r23, 0x00 ; 0
+ 4372: 80 40 sbci r24, 0x00 ; 0
+ 4374: 90 40 sbci r25, 0x00 ; 0
+ 4376: 51 f7 brne .-44 ; 0x434c <ltoa+0x2a>
+ 4378: 16 f4 brtc .+4 ; 0x437e <ltoa+0x5c>
+ 437a: cd e2 ldi r28, 0x2D ; 45
+ 437c: c1 93 st Z+, r28
+ 437e: 10 82 st Z, r1
+ 4380: 8f 91 pop r24
+ 4382: 9f 91 pop r25
+ 4384: cf 91 pop r28
+ 4386: 0c 94 02 22 jmp 0x4404 ; 0x4404 <strrev>
+
+0000438a <__mulsi_const_10>:
+ 438a: 59 2f mov r21, r25
+ 438c: 48 2f mov r20, r24
+ 438e: 37 2f mov r19, r23
+ 4390: 26 2f mov r18, r22
+ 4392: 66 0f add r22, r22
+ 4394: 77 1f adc r23, r23
+ 4396: 88 1f adc r24, r24
+ 4398: 99 1f adc r25, r25
+ 439a: 66 0f add r22, r22
+ 439c: 77 1f adc r23, r23
+ 439e: 88 1f adc r24, r24
+ 43a0: 99 1f adc r25, r25
+ 43a2: 62 0f add r22, r18
+ 43a4: 73 1f adc r23, r19
+ 43a6: 84 1f adc r24, r20
+ 43a8: 95 1f adc r25, r21
+ 43aa: 66 0f add r22, r22
+ 43ac: 77 1f adc r23, r23
+ 43ae: 88 1f adc r24, r24
+ 43b0: 99 1f adc r25, r25
+ 43b2: 08 95 ret
+
+000043b4 <ultoa>:
+ 43b4: fa 01 movw r30, r20
+ 43b6: cf 93 push r28
+ 43b8: ff 93 push r31
+ 43ba: ef 93 push r30
+ 43bc: 22 30 cpi r18, 0x02 ; 2
+ 43be: cc f0 brlt .+50 ; 0x43f2 <ultoa+0x3e>
+ 43c0: 25 32 cpi r18, 0x25 ; 37
+ 43c2: bc f4 brge .+46 ; 0x43f2 <ultoa+0x3e>
+ 43c4: c2 2f mov r28, r18
+ 43c6: 2c 2f mov r18, r28
+ 43c8: 33 27 eor r19, r19
+ 43ca: 44 27 eor r20, r20
+ 43cc: 55 27 eor r21, r21
+ 43ce: ff 93 push r31
+ 43d0: ef 93 push r30
+ 43d2: 0e 94 12 1e call 0x3c24 ; 0x3c24 <__udivmodsi4>
+ 43d6: ef 91 pop r30
+ 43d8: ff 91 pop r31
+ 43da: 60 5d subi r22, 0xD0 ; 208
+ 43dc: 6a 33 cpi r22, 0x3A ; 58
+ 43de: 0c f0 brlt .+2 ; 0x43e2 <ultoa+0x2e>
+ 43e0: 69 5d subi r22, 0xD9 ; 217
+ 43e2: 61 93 st Z+, r22
+ 43e4: b9 01 movw r22, r18
+ 43e6: ca 01 movw r24, r20
+ 43e8: 60 50 subi r22, 0x00 ; 0
+ 43ea: 70 40 sbci r23, 0x00 ; 0
+ 43ec: 80 40 sbci r24, 0x00 ; 0
+ 43ee: 90 40 sbci r25, 0x00 ; 0
+ 43f0: 51 f7 brne .-44 ; 0x43c6 <ultoa+0x12>
+ 43f2: 10 82 st Z, r1
+ 43f4: 8f 91 pop r24
+ 43f6: 9f 91 pop r25
+ 43f8: cf 91 pop r28
+ 43fa: 0c 94 02 22 jmp 0x4404 ; 0x4404 <strrev>
+
+000043fe <__ctype_isfalse>:
+ 43fe: 99 27 eor r25, r25
+ 4400: 88 27 eor r24, r24
+
+00004402 <__ctype_istrue>:
+ 4402: 08 95 ret
+
+00004404 <strrev>:
+ 4404: dc 01 movw r26, r24
+ 4406: fc 01 movw r30, r24
+ 4408: 67 2f mov r22, r23
+ 440a: 71 91 ld r23, Z+
+ 440c: 77 23 and r23, r23
+ 440e: e1 f7 brne .-8 ; 0x4408 <strrev+0x4>
+ 4410: 32 97 sbiw r30, 0x02 ; 2
+ 4412: 04 c0 rjmp .+8 ; 0x441c <strrev+0x18>
+ 4414: 7c 91 ld r23, X
+ 4416: 6d 93 st X+, r22
+ 4418: 70 83 st Z, r23
+ 441a: 62 91 ld r22, -Z
+ 441c: ae 17 cp r26, r30
+ 441e: bf 07 cpc r27, r31
+ 4420: c8 f3 brcs .-14 ; 0x4414 <strrev+0x10>
+ 4422: 08 95 ret
+
+00004424 <__udivmodhi4>:
+ 4424: aa 1b sub r26, r26
+ 4426: bb 1b sub r27, r27
+ 4428: 51 e1 ldi r21, 0x11 ; 17
+ 442a: 07 c0 rjmp .+14 ; 0x443a <__udivmodhi4_ep>
+
+0000442c <__udivmodhi4_loop>:
+ 442c: aa 1f adc r26, r26
+ 442e: bb 1f adc r27, r27
+ 4430: a6 17 cp r26, r22
+ 4432: b7 07 cpc r27, r23
+ 4434: 10 f0 brcs .+4 ; 0x443a <__udivmodhi4_ep>
+ 4436: a6 1b sub r26, r22
+ 4438: b7 0b sbc r27, r23
+
+0000443a <__udivmodhi4_ep>:
+ 443a: 88 1f adc r24, r24
+ 443c: 99 1f adc r25, r25
+ 443e: 5a 95 dec r21
+ 4440: a9 f7 brne .-22 ; 0x442c <__udivmodhi4_loop>
+ 4442: 80 95 com r24
+ 4444: 90 95 com r25
+ 4446: bc 01 movw r22, r24
+ 4448: cd 01 movw r24, r26
+ 444a: 08 95 ret
+
+0000444c <_exit>:
+ 444c: f8 94 cli
+
+0000444e <__stop_program>:
+ 444e: ff cf rjmp .-2 ; 0x444e <__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..c87bfd3
--- /dev/null
+++ b/ESS1995test_328p/bin/Release/ESS1995test_328p.elf.map
@@ -0,0 +1,1399 @@
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ obj/Release/arduinoSrc0022/Tone.o (__mulsi3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ obj/Release/arduinoSrc0022/HardwareSerial.o (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc0022/WMath.o (__divmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ obj/Release/adapticsBT.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ obj/Release/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduinoSrc0022/HardwareSerial.o (__do_global_ctors)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc0022/Print.o (__fixunssfsi)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__subsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__mulsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__divsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o) (__gesf2)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__ltsf2)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__floatsisf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/arduinoSrc0022/Print.o (__fixsfsi)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc0022/Print.o (__floatunsisf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o) (__clzsi2)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o) (__fpcmp_parts_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o) (__clz_tab)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduinoSrc0022/WString.o (malloc)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc0022/WMath.o (random)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc0022/WString.o (realloc)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc0022/WString.o (atol)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc0022/WString.o (isspace)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc0022/WString.o (tolower)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc0022/WString.o (toupper)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o) (memcpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ obj/Release/arduinoSrc0022/WString.o (strcat)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc0022/WString.o (strchr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc0022/WString.o (strcmp)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc0022/WString.o (strcpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc0022/WString.o (strncmp)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc0022/WString.o (strncpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc0022/WString.o (strrchr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc0022/WString.o (strstr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc0022/WString.o (itoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc0022/WString.o (ltoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o) (__mulsi_const_10)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc0022/WString.o (ultoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o) (__ctype_isfalse)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o) (strrev)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o) (__udivmodhi4)
+
+Allocating common symbols
+Common symbol size file
+
+__brkval 0x2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__flp 0x2 /usr/lib/gcc/avr/4.3.5/../../../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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/adapticsBT.o
+LOAD obj/Release/main.o
+LOAD obj/Release/arduinoSrc0022/HardwareSerial.o
+LOAD obj/Release/arduinoSrc0022/Print.o
+LOAD obj/Release/arduinoSrc0022/Tone.o
+LOAD obj/Release/arduinoSrc0022/WInterrupts.o
+LOAD obj/Release/arduinoSrc0022/WMath.o
+LOAD obj/Release/arduinoSrc0022/WString.o
+LOAD obj/Release/arduinoSrc0022/pins_arduino.o
+LOAD obj/Release/arduinoSrc0022/wiring.o
+LOAD obj/Release/arduinoSrc0022/wiring_analog.o
+LOAD obj/Release/arduinoSrc0022/wiring_digital.o
+LOAD obj/Release/arduinoSrc0022/wiring_pulse.o
+LOAD obj/Release/arduinoSrc0022/wiring_shift.o
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x4450
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x1 obj/Release/arduinoSrc0022/Tone.o
+ .progmem.data 0x00000069 0x5a obj/Release/arduinoSrc0022/pins_arduino.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/arduinoSrc0022/HardwareSerial.o
+ 0x000000c6 __ctors_end = .
+ 0x000000c6 __dtors_start = .
+ *(.dtors)
+ 0x000000c6 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000c6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000c6 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000c6 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000d2 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x000000d2 __do_copy_data
+ .init4 0x000000e8 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000e8 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000f8 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ 0x000000f8 __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x0000010e 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x00000116 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000116 __vector_22
+ 0x00000116 __vector_24
+ 0x00000116 __vector_12
+ 0x00000116 __bad_interrupt
+ 0x00000116 __vector_6
+ 0x00000116 __vector_3
+ 0x00000116 __vector_23
+ 0x00000116 __vector_25
+ 0x00000116 __vector_11
+ 0x00000116 __vector_13
+ 0x00000116 __vector_17
+ 0x00000116 __vector_19
+ 0x00000116 __vector_5
+ 0x00000116 __vector_4
+ 0x00000116 __vector_9
+ 0x00000116 __vector_21
+ 0x00000116 __vector_15
+ 0x00000116 __vector_8
+ 0x00000116 __vector_14
+ 0x00000116 __vector_10
+ 0x00000116 __vector_20
+ .text 0x0000011a 0x9a obj/Release/adapticsBT.o
+ 0x0000011a advertise()
+ 0x00000150 setupBlueTooth()
+ .text 0x000001b4 0x474 obj/Release/main.o
+ 0x000001b4 __cxa_pure_virtual
+ 0x000001b8 writeStartBit()
+ 0x000001f2 writeStopBit()
+ 0x0000021c SCLKcycle_R()
+ 0x00000246 readByte()
+ 0x00000288 SCLKcycle_W()
+ 0x000002b2 writeByte(unsigned char)
+ 0x000002f0 startRead()
+ 0x00000302 startWrite()
+ 0x00000314 writeDMM()
+ 0x000003de main
+ .text 0x00000628 0x38e obj/Release/arduinoSrc0022/HardwareSerial.o
+ 0x00000628 __vector_18
+ 0x0000068a HardwareSerial::HardwareSerial(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)
+ 0x000006ea HardwareSerial::HardwareSerial(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)
+ 0x0000074a HardwareSerial::begin(long)
+ 0x00000812 HardwareSerial::end()
+ 0x00000866 HardwareSerial::available()
+ 0x00000888 HardwareSerial::peek()
+ 0x000008bc HardwareSerial::read()
+ 0x00000904 HardwareSerial::flush()
+ 0x0000091c HardwareSerial::write(unsigned char)
+ .text 0x000009b6 0x5b2 obj/Release/arduinoSrc0022/Print.o
+ 0x000009b6 Print::write(char const*)
+ 0x000009e6 Print::write(unsigned char const*, unsigned int)
+ 0x00000a24 Print::print(char const*)
+ 0x00000a34 Print::print(String const&)
+ 0x00000a88 Print::printNumber(unsigned long, unsigned char)
+ 0x00000bbc Print::print(unsigned long, int)
+ 0x00000bda Print::print(unsigned int, int)
+ 0x00000bfc Print::print(unsigned char, int)
+ 0x00000c20 Print::print(long, int)
+ 0x00000c8c Print::print(int, int)
+ 0x00000cb2 Print::print(char, int)
+ 0x00000cda Print::println()
+ 0x00000d08 Print::println(unsigned long, int)
+ 0x00000d1e Print::println(unsigned int, int)
+ 0x00000d50 Print::println(unsigned char, int)
+ 0x00000d84 Print::println(char const*)
+ 0x00000d9a Print::println(String const&)
+ 0x00000db0 Print::println(long, int)
+ 0x00000dc6 Print::println(int, int)
+ 0x00000dfc Print::println(char, int)
+ 0x00000e34 Print::printFloat(double, unsigned char)
+ 0x00000f4c Print::print(double, int)
+ 0x00000f52 Print::println(double, int)
+ .text 0x00000f68 0x552 obj/Release/arduinoSrc0022/Tone.o
+ 0x00000f68 disableTimer(unsigned char)
+ 0x00000faa noTone(unsigned char)
+ 0x00000fd8 __vector_7
+ 0x00001090 tone(unsigned char, unsigned int, unsigned long)
+ .text 0x000014ba 0x120 obj/Release/arduinoSrc0022/WInterrupts.o
+ 0x000014ba attachInterrupt
+ 0x00001500 detachInterrupt
+ 0x00001526 __vector_1
+ 0x00001580 __vector_2
+ .text 0x000015da 0x132 obj/Release/arduinoSrc0022/WMath.o
+ 0x000015da map(long, long, long, long, long)
+ 0x0000166c makeWord(unsigned int)
+ 0x0000166e makeWord(unsigned char, unsigned char)
+ 0x0000167c random(long)
+ 0x000016c0 random(long, long)
+ 0x000016fc randomSeed(unsigned int)
+ .text 0x0000170c 0x103c obj/Release/arduinoSrc0022/WString.o
+ 0x0000170c String::charAt(unsigned int) const
+ 0x0000171c String::setCharAt(unsigned int, char)
+ 0x0000173e String::operator[](unsigned int)
+ 0x00001768 String::operator[](unsigned int) const
+ 0x00001778 String::toInt()
+ 0x00001784 String::toCharArray(char*, unsigned int)
+ 0x000017c8 String::getBytes(unsigned char*, unsigned int)
+ 0x0000180c String::~String()
+ 0x0000182c String::startsWith(String const&, unsigned int) const
+ 0x00001868 String::startsWith(String const&) const
+ 0x0000188e String::lastIndexOf(char, unsigned int) const
+ 0x000018fc String::lastIndexOf(char) const
+ 0x0000190c String::indexOf(String const&, unsigned int) const
+ 0x00001948 String::indexOf(String const&) const
+ 0x00001952 String::indexOf(char, unsigned int) const
+ 0x0000198e String::indexOf(char) const
+ 0x00001998 String::equals(String const&) const
+ 0x000019ca String::endsWith(String const&) const
+ 0x00001a04 String::operator>=(String const&) const
+ 0x00001a2c String::operator<=(String const&) const
+ 0x00001a4e String::operator>(String const&) const
+ 0x00001a70 String::operator<(String const&) const
+ 0x00001a94 String::operator!=(String const&) const
+ 0x00001ac4 String::operator==(String const&) const
+ 0x00001af8 String::compareTo(String const&) const
+ 0x00001b0a String::operator+=(String const&)
+ 0x00001b7a String::concat(String const&)
+ 0x00001b80 String::getBuffer(unsigned int)
+ 0x00001ba8 String::operator=(String const&)
+ 0x00001c08 String::String(unsigned char)
+ 0x00001c3c String::String(unsigned char)
+ 0x00001c70 String::String(char)
+ 0x00001ca4 String::String(char)
+ 0x00001cd8 String::String(String const&)
+ 0x00001d0e String::String(String const&)
+ 0x00001d44 String::String(unsigned long, int)
+ 0x00001dc2 String::String(unsigned long, int)
+ 0x00001e40 String::String(unsigned int, int)
+ 0x00001ebc String::String(unsigned int, int)
+ 0x00001f38 String::String(char const*)
+ 0x00001f88 String::toUpperCase() const
+ 0x00001ffe String::toLowerCase() const
+ 0x00002074 String::equalsIgnoreCase(String const&) const
+ 0x0000210c String::substring(unsigned int, unsigned int) const
+ 0x0000217a String::substring(unsigned int) const
+ 0x00002192 String::lastIndexOf(String const&, unsigned int) const
+ 0x0000225c String::lastIndexOf(String const&) const
+ 0x00002278 String::trim() const
+ 0x00002356 String::replace(String const&, String const&)
+ 0x0000248c String::replace(char, char)
+ 0x00002514 String::String(char const*)
+ 0x00002564 String::String(long, int)
+ 0x000025de String::String(long, int)
+ 0x00002658 String::String(int, int)
+ 0x000026d0 String::String(int, int)
+ .text 0x00002748 0x0 obj/Release/arduinoSrc0022/pins_arduino.o
+ .text 0x00002748 0x1e6 obj/Release/arduinoSrc0022/wiring.o
+ 0x00002748 __vector_16
+ 0x000027f0 millis
+ 0x0000280c micros
+ 0x00002858 delay
+ 0x000028a4 delayMicroseconds
+ 0x000028b8 init
+ .text 0x0000292e 0x10a obj/Release/arduinoSrc0022/wiring_analog.o
+ 0x0000292e analogReference
+ 0x00002934 analogRead
+ 0x00002978 analogWrite
+ .text 0x00002a38 0x170 obj/Release/arduinoSrc0022/wiring_digital.o
+ 0x00002a38 pinMode
+ 0x00002ade digitalWrite
+ 0x00002b48 digitalRead
+ .text 0x00002ba8 0x142 obj/Release/arduinoSrc0022/wiring_pulse.o
+ 0x00002ba8 pulseIn
+ .text 0x00002cea 0x104 obj/Release/arduinoSrc0022/wiring_shift.o
+ 0x00002cea shiftOut
+ 0x00002d6e shiftIn
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00002dee 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text 0x00002dee 0x58 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ 0x00002dee __fixunssfsi
+ .text 0x00002e46 0x354 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ 0x000030de __subsf3
+ 0x00003140 __addsf3
+ .text 0x0000319a 0x1f4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ 0x0000319a __mulsf3
+ .text 0x0000338e 0x158 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ 0x0000338e __divsf3
+ .text 0x000034e6 0x60 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ 0x000034e6 __gesf2
+ .text 0x00003546 0x60 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ 0x00003546 __ltsf2
+ .text 0x000035a6 0xbc /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ 0x000035a6 __floatsisf
+ .text 0x00003662 0xa8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ 0x00003662 __fixsfsi
+ .text 0x0000370a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x0000370a 0xf2 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ 0x0000370a __floatunsisf
+ .text 0x000037fc 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .text 0x000037fc 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .text 0x000037fc 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .text 0x000037fc 0x9e /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+ 0x000037fc __clzsi2
+ .text 0x0000389a 0x1aa /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ 0x0000389a __pack_f
+ .text 0x00003a44 0xf0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ 0x00003a44 __unpack_f
+ .text 0x00003b34 0xb2 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ 0x00003b34 __fpcmp_parts_f
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ .text 0x00003be6 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00003be6 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00003be6 0x3e /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ 0x00003be6 __mulsi3
+ .text.libgcc 0x00003c24 0x44 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00003c24 __udivmodsi4
+ .text.libgcc 0x00003c68 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ 0x00003c68 __divmodsi4
+ .text.libgcc 0x00003c9e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00003c9e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00003c9e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x00003c9e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x00003c9e 0x38 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ 0x00003c9e __prologue_saves__
+ .text.libgcc 0x00003cd6 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ 0x00003cd6 __epilogue_restores__
+ .text.libgcc 0x00003d0c 0xc /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ 0x00003d0c __tablejump2__
+ 0x00003d10 __tablejump__
+ .text.avr-libc
+ 0x00003d18 0x20a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00003d18 malloc
+ 0x00003e72 free
+ .text.avr-libc
+ 0x00003f22 0xc2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ 0x00003fc2 random_r
+ 0x00003fc8 random
+ 0x00003fd2 srandom
+ .text.avr-libc
+ 0x00003fe4 0x19c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x00003fe4 realloc
+ .text.avr-libc
+ 0x00004180 0x4e /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x00004180 atol
+ .text.avr-libc
+ 0x000041ce 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0x000041ce isspace
+ .text.avr-libc
+ 0x000041de 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0x000041de tolower
+ .text.avr-libc
+ 0x000041ee 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0x000041ee toupper
+ .text.avr-libc
+ 0x000041fe 0x12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x000041fe memcpy
+ .text.avr-libc
+ 0x00004210 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ 0x00004210 strcat
+ .text.avr-libc
+ 0x00004226 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0x00004226 strchr
+ .text.avr-libc
+ 0x0000423c 0x12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x0000423c strcmp
+ .text.avr-libc
+ 0x0000424e 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x0000424e strcpy
+ .text.avr-libc
+ 0x0000425c 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0x0000425c strncmp
+ .text.avr-libc
+ 0x00004278 0x1e /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x00004278 strncpy
+ .text.avr-libc
+ 0x00004296 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0x00004296 strrchr
+ .text.avr-libc
+ 0x000042ac 0x34 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x000042ac strstr
+ .text.avr-libc
+ 0x000042e0 0x42 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x000042e0 itoa
+ .text.avr-libc
+ 0x00004322 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x00004322 ltoa
+ .text.avr-libc
+ 0x0000438a 0x2a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x0000438a __mulsi_const_10
+ .text.avr-libc
+ 0x000043b4 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x000043b4 ultoa
+ .text.avr-libc
+ 0x000043fe 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x000043fe __ctype_isfalse
+ 0x00004402 __ctype_istrue
+ .text.avr-libc
+ 0x00004404 0x20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x00004404 strrev
+ .text.libgcc 0x00004424 0x28 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00004424 __udivmodhi4
+ 0x0000444c . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000444c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x0000444c exit
+ 0x0000444c _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000444c 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00004450 _etext = .
+
+.data 0x00800100 0x1ba load address 0x00004450
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x72 obj/Release/adapticsBT.o
+ .data 0x00800172 0x3 obj/Release/main.o
+ 0x00800172 packetSize
+ .data 0x00800175 0x24 obj/Release/arduinoSrc0022/HardwareSerial.o
+ 0x00800175 vtable for HardwareSerial
+ 0x00800187 vtable for Stream
+ .data 0x00800199 0xc obj/Release/arduinoSrc0022/Print.o
+ 0x0080019b vtable for Print
+ .data 0x008001a5 0x1 obj/Release/arduinoSrc0022/Tone.o
+ .data 0x008001a6 0x0 obj/Release/arduinoSrc0022/WInterrupts.o
+ .data 0x008001a6 0x0 obj/Release/arduinoSrc0022/WMath.o
+ .data 0x008001a6 0x1 obj/Release/arduinoSrc0022/WString.o
+ .data 0x008001a7 0x0 obj/Release/arduinoSrc0022/pins_arduino.o
+ .data 0x008001a7 0x0 obj/Release/arduinoSrc0022/wiring.o
+ .data 0x008001a7 0x1 obj/Release/arduinoSrc0022/wiring_analog.o
+ 0x008001a7 analog_reference
+ .data 0x008001a8 0x0 obj/Release/arduinoSrc0022/wiring_digital.o
+ .data 0x008001a8 0x0 obj/Release/arduinoSrc0022/wiring_pulse.o
+ .data 0x008001a8 0x0 obj/Release/arduinoSrc0022/wiring_shift.o
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ .data 0x008001a8 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x008001a8 0x8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ 0x008001a8 __thenan_sf
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x008001b0 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .data 0x008001b0 0x100 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ 0x008001b0 __clz_tab
+ .data 0x008002b0 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002b0 __malloc_margin
+ 0x008002b2 __malloc_heap_start
+ 0x008002b4 __malloc_heap_end
+ .data 0x008002b6 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ .data 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x008002ba . = ALIGN (0x2)
+ 0x008002ba _edata = .
+ 0x008002ba PROVIDE (__data_end, .)
+
+.bss 0x008002ba 0xd8
+ 0x008002ba PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x008002ba 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x008002ba 0x0 obj/Release/adapticsBT.o
+ .bss 0x008002ba 0x1a obj/Release/main.o
+ 0x008002ba connected
+ 0x008002bb data
+ 0x008002c5 CB_SHBP
+ 0x008002c6 CB_function
+ 0x008002c7 CB_VARCrange
+ 0x008002c8 CB_FREQrange
+ 0x008002c9 CB_BUZfreq
+ 0x008002ca CB_ADCrate
+ 0x008002cb CB_ACmode
+ 0x008002cc CB_PEAKmode
+ 0x008002cd CB_PCALmode
+ 0x008002ce CB_LPFbw
+ 0x008002cf CB_EXTdiode
+ 0x008002d0 CB_OPconf
+ 0x008002d1 CB_FREQinprest
+ 0x008002d2 CB_ADPext
+ 0x008002d3 CB_DCfs
+ .bss 0x008002d4 0x97 obj/Release/arduinoSrc0022/HardwareSerial.o
+ 0x008002d4 rx_buffer
+ 0x00800358 Serial
+ .bss 0x0080036b 0x0 obj/Release/arduinoSrc0022/Print.o
+ .bss 0x0080036b 0x15 obj/Release/arduinoSrc0022/Tone.o
+ 0x0080036b timer0_toggle_count
+ 0x0080036f timer0_pin_port
+ 0x00800371 timer0_pin_mask
+ 0x00800372 timer1_toggle_count
+ 0x00800376 timer1_pin_port
+ 0x00800378 timer1_pin_mask
+ 0x00800379 timer2_toggle_count
+ 0x0080037d timer2_pin_port
+ 0x0080037f timer2_pin_mask
+ .bss 0x00800380 0x4 obj/Release/arduinoSrc0022/WInterrupts.o
+ .bss 0x00800384 0x0 obj/Release/arduinoSrc0022/WMath.o
+ .bss 0x00800384 0x1 obj/Release/arduinoSrc0022/WString.o
+ .bss 0x00800385 0x0 obj/Release/arduinoSrc0022/pins_arduino.o
+ .bss 0x00800385 0x9 obj/Release/arduinoSrc0022/wiring.o
+ 0x00800385 timer0_overflow_count
+ 0x00800389 timer0_millis
+ .bss 0x0080038e 0x0 obj/Release/arduinoSrc0022/wiring_analog.o
+ .bss 0x0080038e 0x0 obj/Release/arduinoSrc0022/wiring_digital.o
+ .bss 0x0080038e 0x0 obj/Release/arduinoSrc0022/wiring_pulse.o
+ .bss 0x0080038e 0x0 obj/Release/arduinoSrc0022/wiring_shift.o
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ .bss 0x0080038e 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x0080038e 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x0080038e __brkval
+ 0x00800390 __flp
+ 0x00800392 PROVIDE (__bss_end, .)
+ 0x00004450 __data_load_start = LOADADDR (.data)
+ 0x0000460a __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800392 0x0
+ 0x00800392 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800392 PROVIDE (__noinit_end, .)
+ 0x00800392 _end = .
+ 0x00800392 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x267c
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x6f0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x6fc (size before relaxing)
+ .stab 0x00000da4 0x2dc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ 0x33c (size before relaxing)
+ .stab 0x00001080 0x3b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x5ac (size before relaxing)
+ .stab 0x00001434 0x1e0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ 0x1ec (size before relaxing)
+ .stab 0x00001614 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000016b0 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ 0xa8 (size before relaxing)
+ .stab 0x0000174c 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000017e8 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x90 (size before relaxing)
+ .stab 0x0000186c 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001908 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000019a4 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001a28 0x6c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x78 (size before relaxing)
+ .stab 0x00001a94 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0xcc (size before relaxing)
+ .stab 0x00001b54 0xcc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0xd8 (size before relaxing)
+ .stab 0x00001c20 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00001cbc 0x150 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x15c (size before relaxing)
+ .stab 0x00001e0c 0x1b0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x1bc (size before relaxing)
+ .stab 0x00001fbc 0x294 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x2a0 (size before relaxing)
+ .stab 0x00002250 0x114 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x120 (size before relaxing)
+ .stab 0x00002364 0x1e0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x1ec (size before relaxing)
+ .stab 0x00002544 0x60 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x6c (size before relaxing)
+ .stab 0x000025a4 0xd8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ 0xe4 (size before relaxing)
+
+.stabstr 0x00000000 0xcf1
+ *(.stabstr)
+ .stabstr 0x00000000 0xcf1 /usr/lib/gcc/avr/4.3.5/../../../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*, 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/arduinoSrc0022/HardwareSerial.o
+HardwareSerial::HardwareSerial(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/arduinoSrc0022/HardwareSerial.o
+HardwareSerial::available() obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::begin(long) obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::end() obj/Release/arduinoSrc0022/HardwareSerial.o
+HardwareSerial::flush() obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/adapticsBT.o
+HardwareSerial::peek() obj/Release/arduinoSrc0022/HardwareSerial.o
+HardwareSerial::read() obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+HardwareSerial::write(unsigned char) obj/Release/arduinoSrc0022/HardwareSerial.o
+Print::print(String const&) obj/Release/arduinoSrc0022/Print.o
+Print::print(char const*) obj/Release/arduinoSrc0022/Print.o
+ obj/Release/adapticsBT.o
+Print::print(char, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(double, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(int, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(long, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(unsigned char, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(unsigned int, int) obj/Release/arduinoSrc0022/Print.o
+Print::print(unsigned long, int) obj/Release/arduinoSrc0022/Print.o
+Print::printFloat(double, unsigned char) obj/Release/arduinoSrc0022/Print.o
+Print::printNumber(unsigned long, unsigned char) obj/Release/arduinoSrc0022/Print.o
+Print::println() obj/Release/arduinoSrc0022/Print.o
+Print::println(String const&) obj/Release/arduinoSrc0022/Print.o
+Print::println(char const*) obj/Release/arduinoSrc0022/Print.o
+Print::println(char, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(double, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(int, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(long, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(unsigned char, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(unsigned int, int) obj/Release/arduinoSrc0022/Print.o
+Print::println(unsigned long, int) obj/Release/arduinoSrc0022/Print.o
+Print::write(char const*) obj/Release/arduinoSrc0022/Print.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+Print::write(unsigned char const*, unsigned int) obj/Release/arduinoSrc0022/Print.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+SCLKcycle_R() obj/Release/main.o
+SCLKcycle_W() obj/Release/main.o
+Serial obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+String::String(String const&) obj/Release/arduinoSrc0022/WString.o
+String::String(String const&) obj/Release/arduinoSrc0022/WString.o
+String::String(char const*) obj/Release/arduinoSrc0022/WString.o
+String::String(char const*) obj/Release/arduinoSrc0022/WString.o
+String::String(char) obj/Release/arduinoSrc0022/WString.o
+String::String(char) obj/Release/arduinoSrc0022/WString.o
+String::String(int, int) obj/Release/arduinoSrc0022/WString.o
+String::String(int, int) obj/Release/arduinoSrc0022/WString.o
+String::String(long, int) obj/Release/arduinoSrc0022/WString.o
+String::String(long, int) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned char) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned char) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned int, int) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned int, int) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned long, int) obj/Release/arduinoSrc0022/WString.o
+String::String(unsigned long, int) obj/Release/arduinoSrc0022/WString.o
+String::charAt(unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::compareTo(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::concat(String const&) obj/Release/arduinoSrc0022/WString.o
+String::endsWith(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::equals(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::equalsIgnoreCase(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::getBuffer(unsigned int) obj/Release/arduinoSrc0022/WString.o
+String::getBytes(unsigned char*, unsigned int) obj/Release/arduinoSrc0022/WString.o
+String::indexOf(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::indexOf(String const&, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::indexOf(char) const obj/Release/arduinoSrc0022/WString.o
+String::indexOf(char, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::lastIndexOf(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::lastIndexOf(String const&, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::lastIndexOf(char) const obj/Release/arduinoSrc0022/WString.o
+String::lastIndexOf(char, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::operator!=(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator+=(String const&) obj/Release/arduinoSrc0022/WString.o
+String::operator<(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator<=(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator=(String const&) obj/Release/arduinoSrc0022/WString.o
+String::operator==(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator>(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator>=(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::operator[](unsigned int) obj/Release/arduinoSrc0022/WString.o
+String::operator[](unsigned int) const obj/Release/arduinoSrc0022/WString.o
+ obj/Release/arduinoSrc0022/Print.o
+String::replace(String const&, String const&) obj/Release/arduinoSrc0022/WString.o
+String::replace(char, char) obj/Release/arduinoSrc0022/WString.o
+String::setCharAt(unsigned int, char) obj/Release/arduinoSrc0022/WString.o
+String::startsWith(String const&) const obj/Release/arduinoSrc0022/WString.o
+String::startsWith(String const&, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::substring(unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::substring(unsigned int, unsigned int) const obj/Release/arduinoSrc0022/WString.o
+String::toCharArray(char*, unsigned int) obj/Release/arduinoSrc0022/WString.o
+String::toInt() obj/Release/arduinoSrc0022/WString.o
+String::toLowerCase() const obj/Release/arduinoSrc0022/WString.o
+String::toUpperCase() const obj/Release/arduinoSrc0022/WString.o
+String::trim() const obj/Release/arduinoSrc0022/WString.o
+String::~String() obj/Release/arduinoSrc0022/WString.o
+__addsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__brkval /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__clz_tab /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+__clzsi2 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+__ctors_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__ctype_isfalse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+__ctype_istrue /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+__cxa_pure_virtual obj/Release/main.o
+ obj/Release/arduinoSrc0022/Print.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__divmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc0022/WMath.o
+__divsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ obj/Release/arduinoSrc0022/wiring.o
+ obj/Release/arduinoSrc0022/WString.o
+ obj/Release/arduinoSrc0022/WInterrupts.o
+ obj/Release/arduinoSrc0022/Tone.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ obj/Release/arduinoSrc0022/wiring_analog.o
+ obj/Release/arduinoSrc0022/WString.o
+ obj/Release/arduinoSrc0022/Tone.o
+ obj/Release/arduinoSrc0022/Print.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+__do_global_ctors /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+__epilogue_restores__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc0022/Print.o
+__fixunssfsi /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc0022/Print.o
+__floatsisf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__floatunsisf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__flp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__fpcmp_parts_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+__gesf2 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__heap_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__ltsf2 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__malloc_heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+__malloc_heap_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+__malloc_margin /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+__mulsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/arduinoSrc0022/Print.o
+__mulsi3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mulsi3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc0022/wiring_pulse.o
+ obj/Release/arduinoSrc0022/WMath.o
+ obj/Release/arduinoSrc0022/Tone.o
+__mulsi_const_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+__pack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_fixunssfsi.o)
+ obj/Release/arduinoSrc0022/Print.o
+__tablejump2__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ obj/Release/arduinoSrc0022/wiring_pulse.o
+ obj/Release/arduinoSrc0022/Tone.o
+ obj/Release/arduinoSrc0022/Print.o
+ obj/Release/arduinoSrc0022/HardwareSerial.o
+__unpack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 obj/Release/arduinoSrc0022/WInterrupts.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 obj/Release/arduinoSrc0022/wiring.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 obj/Release/arduinoSrc0022/HardwareSerial.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 obj/Release/arduinoSrc0022/WInterrupts.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 obj/Release/arduinoSrc0022/Tone.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+advertise() obj/Release/adapticsBT.o
+ obj/Release/main.o
+analogRead obj/Release/arduinoSrc0022/wiring_analog.o
+analogReference obj/Release/arduinoSrc0022/wiring_analog.o
+analogWrite obj/Release/arduinoSrc0022/wiring_analog.o
+analog_reference obj/Release/arduinoSrc0022/wiring_analog.o
+atol /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(atol.o)
+ obj/Release/arduinoSrc0022/WString.o
+attachInterrupt obj/Release/arduinoSrc0022/WInterrupts.o
+connected obj/Release/main.o
+data obj/Release/main.o
+delay obj/Release/arduinoSrc0022/wiring.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+delayMicroseconds obj/Release/arduinoSrc0022/wiring.o
+ obj/Release/main.o
+detachInterrupt obj/Release/arduinoSrc0022/WInterrupts.o
+digitalRead obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/wiring_shift.o
+ obj/Release/main.o
+digitalWrite obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/wiring_shift.o
+ obj/Release/arduinoSrc0022/wiring_analog.o
+ obj/Release/arduinoSrc0022/Tone.o
+ obj/Release/main.o
+digital_pin_to_bit_mask_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_pulse.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/Tone.o
+digital_pin_to_port_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_pulse.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/Tone.o
+digital_pin_to_timer_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/wiring_analog.o
+disableTimer(unsigned char) obj/Release/arduinoSrc0022/Tone.o
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+free /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc0022/WString.o
+init obj/Release/arduinoSrc0022/wiring.o
+ obj/Release/main.o
+isspace /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(isspace.o)
+ obj/Release/arduinoSrc0022/WString.o
+itoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+ obj/Release/arduinoSrc0022/WString.o
+ltoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ obj/Release/arduinoSrc0022/WString.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+makeWord(unsigned char, unsigned char) obj/Release/arduinoSrc0022/WMath.o
+makeWord(unsigned int) obj/Release/arduinoSrc0022/WMath.o
+malloc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc0022/WString.o
+map(long, long, long, long, long) obj/Release/arduinoSrc0022/WMath.o
+memcpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+micros obj/Release/arduinoSrc0022/wiring.o
+millis obj/Release/arduinoSrc0022/wiring.o
+noTone(unsigned char) obj/Release/arduinoSrc0022/Tone.o
+packetSize obj/Release/main.o
+pinMode obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/wiring_analog.o
+ obj/Release/arduinoSrc0022/Tone.o
+ obj/Release/main.o
+ obj/Release/adapticsBT.o
+port_to_input_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_pulse.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+port_to_mode_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+port_to_output_PGM obj/Release/arduinoSrc0022/pins_arduino.o
+ obj/Release/arduinoSrc0022/wiring_digital.o
+ obj/Release/arduinoSrc0022/Tone.o
+pulseIn obj/Release/arduinoSrc0022/wiring_pulse.o
+random /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc0022/WMath.o
+random(long) obj/Release/arduinoSrc0022/WMath.o
+random(long, long) obj/Release/arduinoSrc0022/WMath.o
+randomSeed(unsigned int) obj/Release/arduinoSrc0022/WMath.o
+random_r /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+readByte() obj/Release/main.o
+realloc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(realloc.o)
+ obj/Release/arduinoSrc0022/WString.o
+rx_buffer obj/Release/arduinoSrc0022/HardwareSerial.o
+setupBlueTooth() obj/Release/adapticsBT.o
+ obj/Release/main.o
+shiftIn obj/Release/arduinoSrc0022/wiring_shift.o
+shiftOut obj/Release/arduinoSrc0022/wiring_shift.o
+srandom /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(random.o)
+ obj/Release/arduinoSrc0022/WMath.o
+startRead() obj/Release/main.o
+startWrite() obj/Release/main.o
+strcat /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcat.o)
+ obj/Release/arduinoSrc0022/WString.o
+strchr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strchr.o)
+ obj/Release/arduinoSrc0022/WString.o
+strcmp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcmp.o)
+ obj/Release/arduinoSrc0022/WString.o
+strcpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strcpy.o)
+ obj/Release/arduinoSrc0022/WString.o
+strncmp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncmp.o)
+ obj/Release/arduinoSrc0022/WString.o
+strncpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strncpy.o)
+ obj/Release/arduinoSrc0022/WString.o
+strrchr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrchr.o)
+ obj/Release/arduinoSrc0022/WString.o
+strrev /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(itoa.o)
+strstr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(strstr.o)
+ obj/Release/arduinoSrc0022/WString.o
+timer0_millis obj/Release/arduinoSrc0022/wiring.o
+timer0_overflow_count obj/Release/arduinoSrc0022/wiring.o
+timer0_pin_mask obj/Release/arduinoSrc0022/Tone.o
+timer0_pin_port obj/Release/arduinoSrc0022/Tone.o
+timer0_toggle_count obj/Release/arduinoSrc0022/Tone.o
+timer1_pin_mask obj/Release/arduinoSrc0022/Tone.o
+timer1_pin_port obj/Release/arduinoSrc0022/Tone.o
+timer1_toggle_count obj/Release/arduinoSrc0022/Tone.o
+timer2_pin_mask obj/Release/arduinoSrc0022/Tone.o
+timer2_pin_port obj/Release/arduinoSrc0022/Tone.o
+timer2_toggle_count obj/Release/arduinoSrc0022/Tone.o
+tolower /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(tolower.o)
+ obj/Release/arduinoSrc0022/WString.o
+tone(unsigned char, unsigned int, unsigned long) obj/Release/arduinoSrc0022/Tone.o
+toupper /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(toupper.o)
+ obj/Release/arduinoSrc0022/WString.o
+ultoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a(ultoa.o)
+ obj/Release/arduinoSrc0022/WString.o
+vtable for HardwareSerial obj/Release/arduinoSrc0022/HardwareSerial.o
+vtable for Print obj/Release/arduinoSrc0022/Print.o
+vtable for Stream obj/Release/arduinoSrc0022/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/burn b/ESS1995test_328p/burn
new file mode 100755
index 0000000..04ef732
--- /dev/null
+++ b/ESS1995test_328p/burn
@@ -0,0 +1 @@
+avrdude -p m328p -c avrispmkII -P usb -b 1000000 -F -u -U flash:w:bin/Release/ESS1995test_328p.elf.hex
diff --git a/ESS1995test_328p/electic.h b/ESS1995test_328p/electic.h
new file mode 100644
index 0000000..326f900
--- /dev/null
+++ b/ESS1995test_328p/electic.h
@@ -0,0 +1,72 @@
+/*
+ ESS1995 communications test
+
+ should the bitfields be parsed in the MCU or the app?
+
+ the device needs to be able to do the ranging itself.
+
+ data format-
+
+ ACK is necessary
+
+ write per read? or is it a delay thing
+
+
+*/
+
+#include <WProgram.h> //main Arduino header file
+#include "adapticsBT.h"
+
+#define DATA_NEW 2
+#define SCLK 3
+#define SDATA 4
+#define CS 5
+
+//feedback leds
+#define OUTPUT1 12
+#define OUTPUT2 13
+
+#define WRITE_ID 0b11001000
+#define READ_ID 0b11001001
+
+//clock delays are doubled for 8MHZ chip - CPUSPD isnt working
+//6 and 3 = 83kHz, doesn't work with ISP plugged in
+//500Hz works with ISP (sometimes)
+
+#define CLOCK_DELAY 20
+#define START_DELAY 10
+
+const uint16_t ELECTIC_ID = 0xF0;
+uint8_t packetSize = 7;
+bool connected=false;
+
+uint8_t data[10];
+
+//default write values
+uint8_t CB_SHBP = 0b0;
+uint8_t CB_function = 0b0000; //0b0000 voltage mode
+uint8_t CB_VARCrange = 0b000; //0b001 6v
+uint8_t CB_FREQrange = 0b000;
+uint8_t CB_BUZfreq = 0b000;
+uint8_t CB_ADCrate = 0b00; //0b11 fastest 50hz
+uint8_t CB_ACmode = 0b0;
+uint8_t CB_PEAKmode = 0b0;
+uint8_t CB_PCALmode = 0b0;
+uint8_t CB_LPFbw = 0b000;
+uint8_t CB_EXTdiode = 0b0;
+uint8_t CB_OPconf = 0b00;
+uint8_t CB_FREQinprest = 0b0;
+uint8_t CB_ADPext = 0b0;
+uint8_t CB_DCfs = 0b0;
+
+
+void SCLKcycle_W();
+void SCLKcycle_R();
+void startRead();
+void startWrite();
+void writeByte(uint8_t data);
+void writeStartBit();
+void writeStopBit();
+uint8_t readByte();
+void writeDMM();
+int main();
diff --git a/ESS1995test_328p/main.cpp b/ESS1995test_328p/main.cpp
new file mode 100644
index 0000000..66dd792
--- /dev/null
+++ b/ESS1995test_328p/main.cpp
@@ -0,0 +1,254 @@
+
+/*
+ ESS1995 communications test
+
+ proof of concept
+
+
+*/
+
+#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
+
+ pinMode(CS,OUTPUT);
+ digitalWrite(CS,LOW); //turn off DMM, maybe it doesn't like waiting around
+
+ setupBlueTooth();
+
+ pinMode(DATA_NEW,INPUT);
+ pinMode(SCLK,OUTPUT);
+ pinMode(BTC,INPUT);
+
+ pinMode(OUTPUT1, OUTPUT);
+ pinMode(OUTPUT2, OUTPUT);
+
+ digitalWrite(OUTPUT2,HIGH);
+
+ digitalWrite(CS,HIGH); //select DMM
+
+
+
+
+
+ uint16_t delayMillis=250;
+
+ //send 1st write to initiate readings - not necessary - what is default mode?
+
+
+
+
+/*
+writeDMM();
+ delay(delayMillis);
+ startWrite();
+ writeStartBit();
+ writeByte(WRITE_ID);
+ writeByte(WB1);
+ writeByte(WB2);
+ writeByte(WB3);
+ writeByte(WB4);
+ writeStopBit(); //is ACK already the same as stop bit?
+ */
+
+
+
+
+
+
+
+ //variables to read
+ uint8_t DB_STATUS;
+ /*
+ uint8_t DB_ASIGN;
+ uint8_t DB_BSIGN;
+ uint8_t DB_PMAX;
+ uint8_t DB_PMIN;
+ uint8_t DB_BTS;
+ uint8_t DB_ALARM;
+ uint8_t DB_HF;
+ uint8_t DB_LF;
+ uint8_t DB_LDUTY;
+ uint8_t DB_STA;
+ uint8_t DB_F_FIN;
+ */
+ uint32_t DB_D0;
+ uint16_t DB_D1;
+ uint32_t DB_D2;
+ uint32_t DB_D3;
+
+ delay(delayMillis);
+ writeDMM();
+
+ while(1) {
+ if (digitalRead(DATA_NEW)==HIGH){ //DMM is ready to send data
+ digitalWrite(OUTPUT1,HIGH);
+ digitalWrite(OUTPUT2,LOW);
+ startWrite();
+ writeStartBit();
+ writeByte(READ_ID);
+ if (digitalRead(DATA_NEW)==LOW){ //ID confirmed
+ digitalWrite(OUTPUT2,HIGH);
+ startRead();
+ for (int i=0;i<10;i++) {
+ data[i] = readByte();
+ }
+ //stop bit comes from the MPU? does seem to be necessary.
+ startWrite();
+ writeStopBit();
+
+ //parse data
+ DB_STATUS=data[0];
+ /*
+ DB_ASIGN=data[0]>>7;
+ DB_BSIGN=(data[0]>>6) & 0b01;
+ DB_PMAX=(data[0]>>5) & 0b01;
+ DB_PMIN=(data[0]>>4) & 0b01;
+ DB_BTS=(data[0]>>2) & 0b11;
+ DB_ALARM=data[0]& 0b01;
+ DB_HF=data[1]>>7;
+ DB_LF=(data[1]>>6) & 0b01;
+ DB_LDUTY=(data[1]>>5) & 0b01;
+ 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);
+ DB_D3=(((uint32_t)( data[7] & 0b111))<<16)|(((uint32_t) data[8])<<8)|data[9];
+
+
+ while (Serial.available() > 0) {
+ // get incoming byte:
+ uint8_t sampleCode = Serial.read();
+ switch (sampleCode) {
+ case 1:
+ delayMillis=1000;
+ break;
+ case 2:
+ delayMillis=250;
+ break;
+ case 3:
+ delayMillis=50;
+ break;
+ }
+ }
+
+
+ if (digitalRead(BTC)){
+ if (!connected) connected=true;
+ // data packet :
+ // ID (2 byte)
+ // no of bytes (max 255)
+ // data bytes
+ Serial.write((uint8_t*)&ELECTIC_ID,2);
+ Serial.write((uint8_t*)&packetSize,1);
+ Serial.write((uint8_t*)&DB_STATUS,1);
+ Serial.write((uint8_t*)&DB_D0,4);
+ Serial.write((uint8_t*)&DB_D1,2);
+ }
+ else {
+ if (connected) {
+ advertise();
+ connected=false;
+ }
+ }
+ }
+ }
+
+ delay(delayMillis);
+ digitalWrite(OUTPUT1,LOW);
+ digitalWrite(OUTPUT2,LOW);
+ //delay(delayMillis);
+ }
+}
+void startWrite() {
+ pinMode(SDATA,OUTPUT);
+ digitalWrite(SCLK, HIGH);
+}
+void startRead() {
+ pinMode(SDATA,INPUT);
+ digitalWrite(SCLK, HIGH);
+}
+void SCLKcycle_W() {
+ //insert a high clock cycle, normally LOW
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SCLK, HIGH);
+ delayMicroseconds(CLOCK_DELAY);
+ digitalWrite(SCLK, LOW);
+ delayMicroseconds(START_DELAY);
+}
+void SCLKcycle_R() {
+ //insert a low clock cycle, normally HIGH
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SCLK, LOW);
+ delayMicroseconds(CLOCK_DELAY);
+ digitalWrite(SCLK, HIGH);
+ delayMicroseconds(START_DELAY);
+}
+void writeByte(uint8_t data){
+
+ for (uint8_t i=0,bit=7;i<8;i++,bit--) {
+ digitalWrite(SDATA,(data>>bit)&0b01);
+ SCLKcycle_W();
+ }
+ digitalWrite(SDATA,HIGH); //ACK/ stopbit should be HIGH?
+ SCLKcycle_W(); //ACK INTERVAL
+}
+void writeStopBit(){
+ digitalWrite(SDATA,LOW); //prepare SDATA
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SCLK,HIGH);
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SDATA,HIGH); //stop bit
+}
+void writeStartBit(){
+ digitalWrite(SDATA, HIGH); //should be anyway
+ digitalWrite(SCLK, HIGH);
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SDATA,LOW); //start bit
+ delayMicroseconds(START_DELAY);
+ digitalWrite(SCLK, LOW);
+ delayMicroseconds(START_DELAY);
+}
+uint8_t readByte(){
+ uint8_t data=0;
+ uint8_t thisdata;
+ //delayMicroseconds(START_DELAY);
+ //digitalWrite(SCLK, HIGH); //load first bit
+ delayMicroseconds(START_DELAY);
+ for (uint8_t i=0,bit=7;i<8;i++,bit--) {
+ thisdata=digitalRead(SDATA);
+ data = data | (thisdata<<bit);
+ digitalWrite(OUTPUT1,thisdata);
+ SCLKcycle_R();
+ }
+ SCLKcycle_R(); //ACK
+ return data;
+}
+void writeDMM(){
+ 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);
+
+ startWrite();
+ writeStartBit();
+ writeByte(WRITE_ID);
+ writeByte(WB1);
+ writeByte(WB2);
+ writeByte(WB3);
+ writeByte(WB4);
+ writeStopBit();
+
+}
+
+
diff --git a/ESS1995test_328p/obj/Debug/main.o b/ESS1995test_328p/obj/Debug/main.o
new file mode 100644
index 0000000..6af3ec1
--- /dev/null
+++ b/ESS1995test_328p/obj/Debug/main.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/ESS1995test_328p/adapticsBT.o b/ESS1995test_328p/obj/Release/ESS1995test_328p/adapticsBT.o
new file mode 100644
index 0000000..cf0e7d9
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/ESS1995test_328p/adapticsBT.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/adapticsBT.o b/ESS1995test_328p/obj/Release/adapticsBT.o
new file mode 100644
index 0000000..2b53513
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/adapticsBT.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/HardwareSerial.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/HardwareSerial.o
new file mode 100644
index 0000000..dcda4a1
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/HardwareSerial.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/Print.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/Print.o
new file mode 100644
index 0000000..ae0a510
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/Print.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/Tone.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/Tone.o
new file mode 100644
index 0000000..a4f6579
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/Tone.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/WInterrupts.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/WInterrupts.o
new file mode 100644
index 0000000..97dcc3a
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/WInterrupts.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/WMath.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/WMath.o
new file mode 100644
index 0000000..2cfc23c
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/WMath.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/WString.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/WString.o
new file mode 100644
index 0000000..04d6aa3
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/WString.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/main.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/main.o
new file mode 100644
index 0000000..647ae11
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/main.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/pins_arduino.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/pins_arduino.o
new file mode 100644
index 0000000..a88dbe9
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/pins_arduino.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring.o
new file mode 100644
index 0000000..bf476a1
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_analog.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_analog.o
new file mode 100644
index 0000000..4eeadd0
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_analog.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_digital.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_digital.o
new file mode 100644
index 0000000..919bb9e
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_digital.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_pulse.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_pulse.o
new file mode 100644
index 0000000..70b4435
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_pulse.o
Binary files differ
diff --git a/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_shift.o b/ESS1995test_328p/obj/Release/arduinoSrc0022/wiring_shift.o
new file mode 100644
index 0000000..dae11d4
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/arduinoSrc0022/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..ae50387
--- /dev/null
+++ b/ESS1995test_328p/obj/Release/main.o
Binary files differ
diff --git a/arduinoSrc0022/HardwareSerial.cpp b/arduinoSrc0022/HardwareSerial.cpp
new file mode 100644
index 0000000..4397efb
--- /dev/null
+++ b/arduinoSrc0022/HardwareSerial.cpp
@@ -0,0 +1,303 @@
+/*
+ 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 "wiring.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 rx_buffer_head is the index of the
+// location to which to write the next incoming character and rx_buffer_tail
+// is the index of the location from which to read.
+#if (RAMEND < 1000)
+ #define RX_BUFFER_SIZE 32
+#else
+ #define RX_BUFFER_SIZE 128
+#endif
+
+struct ring_buffer
+{
+ unsigned char buffer[RX_BUFFER_SIZE];
+ int head;
+ int tail;
+};
+
+#if defined(UBRRH) || defined(UBRR0H)
+ ring_buffer rx_buffer = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR1H)
+ ring_buffer rx_buffer1 = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR2H)
+ ring_buffer rx_buffer2 = { { 0 }, 0, 0 };
+#endif
+#if defined(UBRR3H)
+ ring_buffer rx_buffer3 = { { 0 }, 0, 0 };
+#endif
+
+inline void store_char(unsigned char c, ring_buffer *rx_buffer)
+{
+ int i = (unsigned int)(rx_buffer->head + 1) % RX_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 != rx_buffer->tail) {
+ rx_buffer->buffer[rx_buffer->head] = c;
+ rx_buffer->head = i;
+ }
+}
+
+#if defined(USART_RX_vect)
+ SIGNAL(USART_RX_vect)
+ {
+ #if defined(UDR0)
+ unsigned char c = UDR0;
+ #elif defined(UDR)
+ unsigned char c = UDR; // atmega8535
+ #else
+ #error UDR not defined
+ #endif
+ store_char(c, &rx_buffer);
+ }
+#elif defined(SIG_USART0_RECV) && defined(UDR0)
+ SIGNAL(SIG_USART0_RECV)
+ {
+ unsigned char c = UDR0;
+ store_char(c, &rx_buffer);
+ }
+#elif defined(SIG_UART0_RECV) && defined(UDR0)
+ SIGNAL(SIG_UART0_RECV)
+ {
+ unsigned char c = UDR0;
+ store_char(c, &rx_buffer);
+ }
+//#elif defined(SIG_USART_RECV)
+#elif defined(USART0_RX_vect)
+ // fixed by Mark Sproul this is on the 644/644p
+ //SIGNAL(SIG_USART_RECV)
+ SIGNAL(USART0_RX_vect)
+ {
+ #if defined(UDR0)
+ unsigned char c = UDR0;
+ #elif defined(UDR)
+ unsigned char c = UDR; // atmega8, atmega32
+ #else
+ #error UDR not defined
+ #endif
+ store_char(c, &rx_buffer);
+ }
+#elif defined(SIG_UART_RECV)
+ // this is for atmega8
+ SIGNAL(SIG_UART_RECV)
+ {
+ #if defined(UDR0)
+ unsigned char c = UDR0; // atmega645
+ #elif defined(UDR)
+ unsigned char c = UDR; // atmega8
+ #endif
+ store_char(c, &rx_buffer);
+ }
+#elif defined(USBCON)
+ #warning No interrupt handler for usart 0
+ #warning Serial(0) is on USB interface
+#else
+ #error No interrupt handler for usart 0
+#endif
+
+//#if defined(SIG_USART1_RECV)
+#if defined(USART1_RX_vect)
+ //SIGNAL(SIG_USART1_RECV)
+ 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)
+ 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)
+ SIGNAL(USART3_RX_vect)
+ {
+ unsigned char c = UDR3;
+ store_char(c, &rx_buffer3);
+ }
+#elif defined(SIG_USART3_RECV)
+ #error SIG_USART3_RECV
+#endif
+
+
+
+// Constructors ////////////////////////////////////////////////////////////////
+
+HardwareSerial::HardwareSerial(ring_buffer *rx_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 udre, uint8_t u2x)
+{
+ _rx_buffer = rx_buffer;
+ _ubrrh = ubrrh;
+ _ubrrl = ubrrl;
+ _ucsra = ucsra;
+ _ucsrb = ucsrb;
+ _udr = udr;
+ _rxen = rxen;
+ _txen = txen;
+ _rxcie = rxcie;
+ _udre = udre;
+ _u2x = u2x;
+}
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+void HardwareSerial::begin(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
+
+ 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;
+ }
+
+ // 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);
+}
+
+void HardwareSerial::end()
+{
+ cbi(*_ucsrb, _rxen);
+ cbi(*_ucsrb, _txen);
+ cbi(*_ucsrb, _rxcie);
+}
+
+int HardwareSerial::available(void)
+{
+ return (unsigned int)(RX_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % RX_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) % RX_BUFFER_SIZE;
+ return c;
+ }
+}
+
+void HardwareSerial::flush()
+{
+ // don't reverse this or there may be problems if the RX interrupt
+ // occurs after reading the value of rx_buffer_head but before writing
+ // the value to rx_buffer_tail; the previous value of rx_buffer_head
+ // may be written to rx_buffer_tail, making it appear as if the buffer
+ // don't reverse this or there may be problems if the RX interrupt
+ // occurs after reading the value of rx_buffer_head but before writing
+ // the value to rx_buffer_tail; the previous value of rx_buffer_head
+ // may be written to rx_buffer_tail, making it appear as if the buffer
+ // were full, not empty.
+ _rx_buffer->head = _rx_buffer->tail;
+}
+
+void HardwareSerial::write(uint8_t c)
+{
+ while (!((*_ucsra) & (1 << _udre)))
+ ;
+
+ *_udr = c;
+}
+
+// Preinstantiate Objects //////////////////////////////////////////////////////
+
+#if defined(UBRRH) && defined(UBRRL)
+ HardwareSerial Serial(&rx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRE, U2X);
+#elif defined(UBRR0H) && defined(UBRR0L)
+ HardwareSerial Serial(&rx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRE0, U2X0);
+#elif defined(USBCON)
+ #warning no serial port defined (port 0)
+#else
+ #error no serial port defined (port 0)
+#endif
+
+#if defined(UBRR1H)
+ HardwareSerial Serial1(&rx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRE1, U2X1);
+#endif
+#if defined(UBRR2H)
+ HardwareSerial Serial2(&rx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRE2, U2X2);
+#endif
+#if defined(UBRR3H)
+ HardwareSerial Serial3(&rx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRE3, U2X3);
+#endif
+
+#endif // whole file
+
diff --git a/arduinoSrc0022/HardwareSerial.h b/arduinoSrc0022/HardwareSerial.h
new file mode 100644
index 0000000..3efa775
--- /dev/null
+++ b/arduinoSrc0022/HardwareSerial.h
@@ -0,0 +1,76 @@
+/*
+ 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;
+ 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 _udre;
+ uint8_t _u2x;
+ public:
+ HardwareSerial(ring_buffer *rx_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 udre, uint8_t u2x);
+ void begin(long);
+ void end();
+ virtual int available(void);
+ virtual int peek(void);
+ virtual int read(void);
+ virtual void flush(void);
+ virtual void 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 "usb_api.h"
+#endif
+#if defined(UBRR1H)
+ extern HardwareSerial Serial1;
+#endif
+#if defined(UBRR2H)
+ extern HardwareSerial Serial2;
+#endif
+#if defined(UBRR3H)
+ extern HardwareSerial Serial3;
+#endif
+
+#endif
diff --git a/arduinoSrc0022/Print.cpp b/arduinoSrc0022/Print.cpp
new file mode 100644
index 0000000..4ee556d
--- /dev/null
+++ b/arduinoSrc0022/Print.cpp
@@ -0,0 +1,220 @@
+/*
+ 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 "wiring.h"
+
+#include "Print.h"
+
+// Public Methods //////////////////////////////////////////////////////////////
+
+/* default implementation: may be overridden */
+void Print::write(const char *str)
+{
+ while (*str)
+ write(*str++);
+}
+
+/* default implementation: may be overridden */
+void Print::write(const uint8_t *buffer, size_t size)
+{
+ while (size--)
+ write(*buffer++);
+}
+
+void Print::print(const String &s)
+{
+ for (int i = 0; i < s.length(); i++) {
+ write(s[i]);
+ }
+}
+
+void Print::print(const char str[])
+{
+ write(str);
+}
+
+void Print::print(char c, int base)
+{
+ print((long) c, base);
+}
+
+void Print::print(unsigned char b, int base)
+{
+ print((unsigned long) b, base);
+}
+
+void Print::print(int n, int base)
+{
+ print((long) n, base);
+}
+
+void Print::print(unsigned int n, int base)
+{
+ print((unsigned long) n, base);
+}
+
+void Print::print(long n, int base)
+{
+ if (base == 0) {
+ write(n);
+ } else if (base == 10) {
+ if (n < 0) {
+ print('-');
+ n = -n;
+ }
+ printNumber(n, 10);
+ } else {
+ printNumber(n, base);
+ }
+}
+
+void Print::print(unsigned long n, int base)
+{
+ if (base == 0) write(n);
+ else printNumber(n, base);
+}
+
+void Print::print(double n, int digits)
+{
+ printFloat(n, digits);
+}
+
+void Print::println(void)
+{
+ print('\r');
+ print('\n');
+}
+
+void Print::println(const String &s)
+{
+ print(s);
+ println();
+}
+
+void Print::println(const char c[])
+{
+ print(c);
+ println();
+}
+
+void Print::println(char c, int base)
+{
+ print(c, base);
+ println();
+}
+
+void Print::println(unsigned char b, int base)
+{
+ print(b, base);
+ println();
+}
+
+void Print::println(int n, int base)
+{
+ print(n, base);
+ println();
+}
+
+void Print::println(unsigned int n, int base)
+{
+ print(n, base);
+ println();
+}
+
+void Print::println(long n, int base)
+{
+ print(n, base);
+ println();
+}
+
+void Print::println(unsigned long n, int base)
+{
+ print(n, base);
+ println();
+}
+
+void Print::println(double n, int digits)
+{
+ print(n, digits);
+ println();
+}
+
+// Private Methods /////////////////////////////////////////////////////////////
+
+void Print::printNumber(unsigned long n, uint8_t base)
+{
+ unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
+ unsigned long i = 0;
+
+ if (n == 0) {
+ print('0');
+ return;
+ }
+
+ while (n > 0) {
+ buf[i++] = n % base;
+ n /= base;
+ }
+
+ for (; i > 0; i--)
+ print((char) (buf[i - 1] < 10 ?
+ '0' + buf[i - 1] :
+ 'A' + buf[i - 1] - 10));
+}
+
+void Print::printFloat(double number, uint8_t digits)
+{
+ // Handle negative numbers
+ if (number < 0.0)
+ {
+ 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;
+ print(int_part);
+
+ // Print the decimal point, but only if there are digits beyond
+ if (digits > 0)
+ print(".");
+
+ // Extract digits from the remainder one at a time
+ while (digits-- > 0)
+ {
+ remainder *= 10.0;
+ int toPrint = int(remainder);
+ print(toPrint);
+ remainder -= toPrint;
+ }
+}
diff --git a/arduinoSrc0022/Print.h b/arduinoSrc0022/Print.h
new file mode 100644
index 0000000..b092ae5
--- /dev/null
+++ b/arduinoSrc0022/Print.h
@@ -0,0 +1,66 @@
+/*
+ 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"
+
+#define DEC 10
+#define HEX 16
+#define OCT 8
+#define BIN 2
+#define BYTE 0
+
+class Print
+{
+ private:
+ void printNumber(unsigned long, uint8_t);
+ void printFloat(double, uint8_t);
+ public:
+ virtual void write(uint8_t) = 0;
+ virtual void write(const char *str);
+ virtual void write(const uint8_t *buffer, size_t size);
+
+ void print(const String &);
+ void print(const char[]);
+ void print(char, int = BYTE);
+ void print(unsigned char, int = BYTE);
+ void print(int, int = DEC);
+ void print(unsigned int, int = DEC);
+ void print(long, int = DEC);
+ void print(unsigned long, int = DEC);
+ void print(double, int = 2);
+
+ void println(const String &s);
+ void println(const char[]);
+ void println(char, int = BYTE);
+ void println(unsigned char, int = BYTE);
+ void println(int, int = DEC);
+ void println(unsigned int, int = DEC);
+ void println(long, int = DEC);
+ void println(unsigned long, int = DEC);
+ void println(double, int = 2);
+ void println(void);
+};
+
+#endif
diff --git a/arduinoSrc0022/Stream.h b/arduinoSrc0022/Stream.h
new file mode 100644
index 0000000..93d8275
--- /dev/null
+++ b/arduinoSrc0022/Stream.h
@@ -0,0 +1,35 @@
+/*
+ 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
+*/
+
+#ifndef Stream_h
+#define Stream_h
+
+#include <inttypes.h>
+#include "Print.h"
+
+class Stream : public Print
+{
+ public:
+ virtual int available() = 0;
+ virtual int read() = 0;
+ virtual int peek() = 0;
+ virtual void flush() = 0;
+};
+
+#endif
diff --git a/arduinoSrc0022/Tone.cpp b/arduinoSrc0022/Tone.cpp
new file mode 100644
index 0000000..c3910e7
--- /dev/null
+++ b/arduinoSrc0022/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 "wiring.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/arduinoSrc0022/WCharacter.h b/arduinoSrc0022/WCharacter.h
new file mode 100644
index 0000000..79733b5
--- /dev/null
+++ b/arduinoSrc0022/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/arduinoSrc0022/WConstants.h b/arduinoSrc0022/WConstants.h
new file mode 100644
index 0000000..3e19ac4
--- /dev/null
+++ b/arduinoSrc0022/WConstants.h
@@ -0,0 +1 @@
+#include "wiring.h"
diff --git a/arduinoSrc0022/WInterrupts.c b/arduinoSrc0022/WInterrupts.c
new file mode 100644
index 0000000..3b3e0c9
--- /dev/null
+++ b/arduinoSrc0022/WInterrupts.c
@@ -0,0 +1,249 @@
+/* -*- 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 "WConstants.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/arduinoSrc0022/WMath.cpp b/arduinoSrc0022/WMath.cpp
new file mode 100644
index 0000000..2120c4c
--- /dev/null
+++ b/arduinoSrc0022/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/arduinoSrc0022/WProgram.h b/arduinoSrc0022/WProgram.h
new file mode 100644
index 0000000..f73e760
--- /dev/null
+++ b/arduinoSrc0022/WProgram.h
@@ -0,0 +1,63 @@
+#ifndef WProgram_h
+#define WProgram_h
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <avr/interrupt.h>
+
+#include "wiring.h"
+
+#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);
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+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;
+#else
+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;
+#endif
+
+#endif
+
+#endif \ No newline at end of file
diff --git a/arduinoSrc0022/WString.cpp b/arduinoSrc0022/WString.cpp
new file mode 100644
index 0000000..db5a441
--- /dev/null
+++ b/arduinoSrc0022/WString.cpp
@@ -0,0 +1,443 @@
+/*
+ WString.cpp - String library for Wiring & Arduino
+ Copyright (c) 2009-10 Hernando Barragan. All rights 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 <stdlib.h>
+#include "WProgram.h"
+#include "WString.h"
+
+
+String::String( const char *value )
+{
+ if ( value == NULL )
+ value = "";
+ getBuffer( _length = strlen( value ) );
+ if ( _buffer != NULL )
+ strcpy( _buffer, value );
+}
+
+String::String( const String &value )
+{
+ getBuffer( _length = value._length );
+ if ( _buffer != NULL )
+ strcpy( _buffer, value._buffer );
+}
+
+String::String( const char value )
+{
+ _length = 1;
+ getBuffer(1);
+ if ( _buffer != NULL ) {
+ _buffer[0] = value;
+ _buffer[1] = 0;
+ }
+}
+
+String::String( const unsigned char value )
+{
+ _length = 1;
+ getBuffer(1);
+ if ( _buffer != NULL) {
+ _buffer[0] = value;
+ _buffer[1] = 0;
+ }
+}
+
+String::String( const int value, const int base )
+{
+ char buf[33];
+ itoa((signed long)value, buf, base);
+ getBuffer( _length = strlen(buf) );
+ if ( _buffer != NULL )
+ strcpy( _buffer, buf );
+}
+
+String::String( const unsigned int value, const int base )
+{
+ char buf[33];
+ ultoa((unsigned long)value, buf, base);
+ getBuffer( _length = strlen(buf) );
+ if ( _buffer != NULL )
+ strcpy( _buffer, buf );
+}
+
+String::String( const long value, const int base )
+{
+ char buf[33];
+ ltoa(value, buf, base);
+ getBuffer( _length = strlen(buf) );
+ if ( _buffer != NULL )
+ strcpy( _buffer, buf );
+}
+
+String::String( const unsigned long value, const int base )
+{
+ char buf[33];
+ ultoa(value, buf, 10);
+ getBuffer( _length = strlen(buf) );
+ if ( _buffer != NULL )
+ strcpy( _buffer, buf );
+}
+
+char String::charAt( unsigned int loc ) const
+{
+ return operator[]( loc );
+}
+
+void String::setCharAt( unsigned int loc, const char aChar )
+{
+ if(_buffer == NULL) return;
+ if(_length > loc) {
+ _buffer[loc] = aChar;
+ }
+}
+
+int String::compareTo( const String &s2 ) const
+{
+ return strcmp( _buffer, s2._buffer );
+}
+
+const String & String::concat( const String &s2 )
+{
+ return (*this) += s2;
+}
+
+const String & String::operator=( const String &rhs )
+{
+ if ( this == &rhs )
+ return *this;
+
+ if ( rhs._length > _length )
+ {
+ free(_buffer);
+ getBuffer( rhs._length );
+ }
+
+ if ( _buffer != NULL ) {
+ _length = rhs._length;
+ strcpy( _buffer, rhs._buffer );
+ }
+ return *this;
+}
+
+//const String & String::operator+=( const char aChar )
+//{
+// if ( _length == _capacity )
+// doubleBuffer();
+//
+// _buffer[ _length++ ] = aChar;
+// _buffer[ _length ] = '\0';
+// return *this;
+//}
+
+const String & String::operator+=( const String &other )
+{
+ _length += other._length;
+ if ( _length > _capacity )
+ {
+ char *temp = (char *)realloc(_buffer, _length + 1);
+ if ( temp != NULL ) {
+ _buffer = temp;
+ _capacity = _length;
+ } else {
+ _length -= other._length;
+ return *this;
+ }
+ }
+ strcat( _buffer, other._buffer );
+ return *this;
+}
+
+
+int String::operator==( const String &rhs ) const
+{
+ return ( _length == rhs._length && strcmp( _buffer, rhs._buffer ) == 0 );
+}
+
+int String::operator!=( const String &rhs ) const
+{
+ return ( _length != rhs.length() || strcmp( _buffer, rhs._buffer ) != 0 );
+}
+
+int String::operator<( const String &rhs ) const
+{
+ return strcmp( _buffer, rhs._buffer ) < 0;
+}
+
+int String::operator>( const String &rhs ) const
+{
+ return strcmp( _buffer, rhs._buffer ) > 0;
+}
+
+int String::operator<=( const String &rhs ) const
+{
+ return strcmp( _buffer, rhs._buffer ) <= 0;
+}
+
+int String::operator>=( const String & rhs ) const
+{
+ return strcmp( _buffer, rhs._buffer ) >= 0;
+}
+
+char & String::operator[]( unsigned int index )
+{
+ static char dummy_writable_char;
+ if (index >= _length || !_buffer) {
+ dummy_writable_char = 0;
+ return dummy_writable_char;
+ }
+ return _buffer[ index ];
+}
+
+char String::operator[]( unsigned int index ) const
+{
+ // need to check for valid index, to do later
+ return _buffer[ index ];
+}
+
+boolean String::endsWith( const String &s2 ) const
+{
+ if ( _length < s2._length )
+ return 0;
+
+ return strcmp( &_buffer[ _length - s2._length], s2._buffer ) == 0;
+}
+
+boolean String::equals( const String &s2 ) const
+{
+ return ( _length == s2._length && strcmp( _buffer,s2._buffer ) == 0 );
+}
+
+boolean String::equalsIgnoreCase( const String &s2 ) const
+{
+ if ( this == &s2 )
+ return true; //1;
+ else if ( _length != s2._length )
+ return false; //0;
+
+ return strcmp(toLowerCase()._buffer, s2.toLowerCase()._buffer) == 0;
+}
+
+String String::replace( char findChar, char replaceChar )
+{
+ if ( _buffer == NULL ) return *this;
+ String theReturn = _buffer;
+ char* temp = theReturn._buffer;
+ while( (temp = strchr( temp, findChar )) != 0 )
+ *temp = replaceChar;
+
+ return theReturn;
+}
+
+String String::replace( const String& match, const String& replace )
+{
+ if ( _buffer == NULL ) return *this;
+ String temp = _buffer, newString;
+
+ int loc;
+ while ( (loc = temp.indexOf( match )) != -1 )
+ {
+ newString += temp.substring( 0, loc );
+ newString += replace;
+ temp = temp.substring( loc + match._length );
+ }
+ newString += temp;
+ return newString;
+}
+
+int String::indexOf( char temp ) const
+{
+ return indexOf( temp, 0 );
+}
+
+int String::indexOf( char ch, unsigned int fromIndex ) const
+{
+ if ( fromIndex >= _length )
+ 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 >= _length )
+ return -1;
+
+ const char *theFind = strstr( &_buffer[ fromIndex ], s2._buffer );
+
+ if ( theFind == NULL )
+ return -1;
+
+ return theFind - _buffer; // pointer subtraction
+}
+
+int String::lastIndexOf( char theChar ) const
+{
+ return lastIndexOf( theChar, _length - 1 );
+}
+
+int String::lastIndexOf( char ch, unsigned int fromIndex ) const
+{
+ if ( fromIndex >= _length )
+ 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, _length - s2._length );
+}
+
+int String::lastIndexOf( const String &s2, unsigned int fromIndex ) const
+{
+ // check for empty strings
+ if ( s2._length == 0 || s2._length - 1 > fromIndex || fromIndex >= _length )
+ return -1;
+
+ // matching first character
+ char temp = s2[ 0 ];
+
+ for ( int i = fromIndex; i >= 0; i-- )
+ {
+ if ( _buffer[ i ] == temp && (*this).substring( i, i + s2._length ).equals( s2 ) )
+ return i;
+ }
+ return -1;
+}
+
+boolean String::startsWith( const String &s2 ) const
+{
+ if ( _length < s2._length )
+ return 0;
+
+ return startsWith( s2, 0 );
+}
+
+boolean String::startsWith( const String &s2, unsigned int offset ) const
+{
+ if ( offset > _length - s2._length )
+ return 0;
+
+ return strncmp( &_buffer[offset], s2._buffer, s2._length ) == 0;
+}
+
+String String::substring( unsigned int left ) const
+{
+ return substring( left, _length );
+}
+
+String String::substring( unsigned int left, unsigned int right ) const
+{
+ if ( left > right )
+ {
+ int temp = right;
+ right = left;
+ left = temp;
+ }
+
+ if ( right > _length )
+ {
+ right = _length;
+ }
+
+ char temp = _buffer[ right ]; // save the replaced character
+ _buffer[ right ] = '\0';
+ String outPut = ( _buffer + left ); // pointer arithmetic
+ _buffer[ right ] = temp; //restore character
+ return outPut;
+}
+
+String String::toLowerCase() const
+{
+ String temp = _buffer;
+
+ for ( unsigned int i = 0; i < _length; i++ )
+ temp._buffer[ i ] = (char)tolower( temp._buffer[ i ] );
+ return temp;
+}
+
+String String::toUpperCase() const
+{
+ String temp = _buffer;
+
+ for ( unsigned int i = 0; i < _length; i++ )
+ temp._buffer[ i ] = (char)toupper( temp._buffer[ i ] );
+ return temp;
+}
+
+String String::trim() const
+{
+ if ( _buffer == NULL ) return *this;
+ String temp = _buffer;
+ unsigned int i,j;
+
+ for ( i = 0; i < _length; i++ )
+ {
+ if ( !isspace(_buffer[i]) )
+ break;
+ }
+
+ for ( j = temp._length - 1; j > i; j-- )
+ {
+ if ( !isspace(_buffer[j]) )
+ break;
+ }
+
+ return temp.substring( i, j + 1);
+}
+
+void String::getBytes(unsigned char *buf, unsigned int bufsize)
+{
+ if (!bufsize || !buf) return;
+ unsigned int len = bufsize - 1;
+ if (len > _length) len = _length;
+ strncpy((char *)buf, _buffer, len);
+ buf[len] = 0;
+}
+
+void String::toCharArray(char *buf, unsigned int bufsize)
+{
+ if (!bufsize || !buf) return;
+ unsigned int len = bufsize - 1;
+ if (len > _length) len = _length;
+ strncpy(buf, _buffer, len);
+ buf[len] = 0;
+}
+
+
+long String::toInt() {
+ return atol(_buffer);
+}
diff --git a/arduinoSrc0022/WString.h b/arduinoSrc0022/WString.h
new file mode 100644
index 0000000..cadddb9
--- /dev/null
+++ b/arduinoSrc0022/WString.h
@@ -0,0 +1,112 @@
+/*
+ WString.h - String library for Wiring & Arduino
+ Copyright (c) 2009-10 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 String_h
+#define String_h
+
+//#include "WProgram.h"
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+class String
+{
+ public:
+ // constructors
+ String( const char *value = "" );
+ String( const String &value );
+ String( const char );
+ String( const unsigned char );
+ String( const int, const int base=10);
+ String( const unsigned int, const int base=10 );
+ String( const long, const int base=10 );
+ String( const unsigned long, const int base=10 );
+ ~String() { free(_buffer); _length = _capacity = 0;} //added _length = _capacity = 0;
+
+ // operators
+ const String & operator = ( const String &rhs );
+ const String & operator +=( const String &rhs );
+ //const String & operator +=( const char );
+ int operator ==( const String &rhs ) const;
+ int operator !=( const String &rhs ) const;
+ int operator < ( const String &rhs ) const;
+ int operator > ( const String &rhs ) const;
+ int operator <=( const String &rhs ) const;
+ int operator >=( const String &rhs ) const;
+ char operator []( unsigned int index ) const;
+ char& operator []( unsigned int index );
+ //operator const char *() const { return _buffer; }
+
+ // general methods
+ char charAt( unsigned int index ) const;
+ int compareTo( const String &anotherString ) const;
+ unsigned char endsWith( const String &suffix ) const;
+ unsigned char equals( const String &anObject ) const;
+ unsigned char equalsIgnoreCase( const String &anotherString ) const;
+ 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;
+ const unsigned int length( ) const { return _length; }
+ void setCharAt(unsigned int index, const char ch);
+ unsigned char startsWith( const String &prefix ) const;
+ unsigned char startsWith( const String &prefix, unsigned int toffset ) const;
+ String substring( unsigned int beginIndex ) const;
+ String substring( unsigned int beginIndex, unsigned int endIndex ) const;
+ String toLowerCase( ) const;
+ String toUpperCase( ) const;
+ String trim( ) const;
+ void getBytes(unsigned char *buf, unsigned int bufsize);
+ void toCharArray(char *buf, unsigned int bufsize);
+ long toInt( );
+ const String& concat( const String &str );
+ String replace( char oldChar, char newChar );
+ String replace( const String& match, const String& replace );
+ friend String operator + ( String lhs, const String &rhs );
+
+ protected:
+ char *_buffer; // the actual char array
+ unsigned int _capacity; // the array length minus one (for the '\0')
+ unsigned int _length; // the String length (not counting the '\0')
+
+ void getBuffer(unsigned int maxStrLen);
+
+ private:
+
+};
+
+// allocate buffer space
+inline void String::getBuffer(unsigned int maxStrLen)
+{
+ _capacity = maxStrLen;
+ _buffer = (char *) malloc(_capacity + 1);
+ if (_buffer == NULL) _length = _capacity = 0;
+}
+
+inline String operator+( String lhs, const String &rhs )
+{
+ return lhs += rhs;
+}
+
+
+#endif
diff --git a/arduinoSrc0022/binary.h b/arduinoSrc0022/binary.h
new file mode 100644
index 0000000..af14980
--- /dev/null
+++ b/arduinoSrc0022/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/arduinoSrc0022/main.cpp b/arduinoSrc0022/main.cpp
new file mode 100644
index 0000000..cc6e81d
--- /dev/null
+++ b/arduinoSrc0022/main.cpp
@@ -0,0 +1,14 @@
+#include <WProgram.h>
+
+int main(void)
+{
+ init();
+
+ setup();
+
+ for (;;)
+ loop();
+
+ return 0;
+}
+
diff --git a/arduinoSrc0022/pins_arduino.c b/arduinoSrc0022/pins_arduino.c
new file mode 100644
index 0000000..0c816e9
--- /dev/null
+++ b/arduinoSrc0022/pins_arduino.c
@@ -0,0 +1,465 @@
+/*
+ pins_arduino.c - pin definitions for the Arduino board
+ Part of Arduino / Wiring Lite
+
+ Copyright (c) 2005 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 <avr/io.h>
+#include "wiring_private.h"
+#include "pins_arduino.h"
+
+// 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
+
+#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
+
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+const uint16_t PROGMEM port_to_mode_PGM[] = {
+ NOT_A_PORT,
+ &DDRA,
+ &DDRB,
+ &DDRC,
+ &DDRD,
+ &DDRE,
+ &DDRF,
+ &DDRG,
+ &DDRH,
+ NOT_A_PORT,
+ &DDRJ,
+ &DDRK,
+ &DDRL,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ &PORTA,
+ &PORTB,
+ &PORTC,
+ &PORTD,
+ &PORTE,
+ &PORTF,
+ &PORTG,
+ &PORTH,
+ NOT_A_PORT,
+ &PORTJ,
+ &PORTK,
+ &PORTL,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PIN,
+ &PINA,
+ &PINB,
+ &PINC,
+ &PIND,
+ &PINE,
+ &PINF,
+ &PING,
+ &PINH,
+ NOT_A_PIN,
+ &PINJ,
+ &PINK,
+ &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
+};
+#else
+// 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,
+ &DDRB,
+ &DDRC,
+ &DDRD,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ &PORTB,
+ &PORTC,
+ &PORTD,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ &PINB,
+ &PINC,
+ &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
diff --git a/arduinoSrc0022/pins_arduino.h b/arduinoSrc0022/pins_arduino.h
new file mode 100644
index 0000000..bc931c5
--- /dev/null
+++ b/arduinoSrc0022/pins_arduino.h
@@ -0,0 +1,88 @@
+/*
+ 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 NOT_A_PIN 0
+#define NOT_A_PORT 0
+
+#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 TIMER5A 14
+#define TIMER5B 15
+#define TIMER5C 16
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+const static uint8_t SS = 53;
+const static uint8_t MOSI = 51;
+const static uint8_t MISO = 50;
+const static uint8_t SCK = 52;
+#else
+const static uint8_t SS = 10;
+const static uint8_t MOSI = 11;
+const static uint8_t MISO = 12;
+const static uint8_t SCK = 13;
+#endif
+
+// 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))) )
+
+#endif
diff --git a/arduinoSrc0022/wiring.c b/arduinoSrc0022/wiring.c
new file mode 100644
index 0000000..b90d07e
--- /dev/null
+++ b/arduinoSrc0022/wiring.c
@@ -0,0 +1,289 @@
+/*
+ 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;
+
+SIGNAL(TIMER0_OVF_vect)
+{
+ // 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
+
+ TCCR1B = 0;
+
+ // set timer 1 prescale factor to 64
+#if defined(TCCR1B) && defined(CS11) && defined(CS10)
+ sbi(TCCR1B, CS11);
+ sbi(TCCR1B, CS10);
+#elif defined(TCCR1) && defined(CS11) && defined(CS10)
+ sbi(TCCR1, CS11);
+ sbi(TCCR1, CS10);
+#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/arduinoSrc0022/wiring.h b/arduinoSrc0022/wiring.h
new file mode 100644
index 0000000..e29959b
--- /dev/null
+++ b/arduinoSrc0022/wiring.h
@@ -0,0 +1,135 @@
+/*
+ wiring.h - 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$
+*/
+
+#ifndef Wiring_h
+#define Wiring_h
+
+#include <avr/io.h>
+#include <stdlib.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_ATmega1280__) || defined(__AVR_ATmega2560__)
+#define INTERNAL1V1 2
+#define INTERNAL2V56 3
+#else
+#define INTERNAL 3
+#endif
+#define DEFAULT 1
+#define EXTERNAL 0
+
+// 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);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif
diff --git a/arduinoSrc0022/wiring_analog.c b/arduinoSrc0022/wiring_analog.c
new file mode 100644
index 0000000..d248f4c
--- /dev/null
+++ b/arduinoSrc0022/wiring_analog.c
@@ -0,0 +1,259 @@
+/*
+ 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
+#else
+ if (pin >= 14) pin -= 14; // allow for channel or pin numbers
+#endif
+
+#if 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(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/arduinoSrc0022/wiring_digital.c b/arduinoSrc0022/wiring_digital.c
new file mode 100644
index 0000000..0949da4
--- /dev/null
+++ b/arduinoSrc0022/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 $
+*/
+
+#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);
+
+ if (val == LOW) {
+ uint8_t oldSREG = SREG;
+ cli();
+ *out &= ~bit;
+ SREG = oldSREG;
+ } else {
+ uint8_t oldSREG = SREG;
+ cli();
+ *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/arduinoSrc0022/wiring_private.h b/arduinoSrc0022/wiring_private.h
new file mode 100644
index 0000000..11f6f00
--- /dev/null
+++ b/arduinoSrc0022/wiring_private.h
@@ -0,0 +1,68 @@
+/*
+ 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 <avr/delay.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "wiring.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/arduinoSrc0022/wiring_pulse.c b/arduinoSrc0022/wiring_pulse.c
new file mode 100644
index 0000000..0d96886
--- /dev/null
+++ b/arduinoSrc0022/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/arduinoSrc0022/wiring_shift.c b/arduinoSrc0022/wiring_shift.c
new file mode 100644
index 0000000..cfe7867
--- /dev/null
+++ b/arduinoSrc0022/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/ArduinoSerialManager.zip
new file mode 100644
index 0000000..7693b72
--- /dev/null
+++ b/arduino_libs/ArduinoSerialManager.zip
Binary files differ
diff --git a/arduino_libs/ByteBuffer/.svn/all-wcprops b/arduino_libs/ByteBuffer/.svn/all-wcprops
new file mode 100755
index 0000000..de5c62d
--- /dev/null
+++ b/arduino_libs/ByteBuffer/.svn/all-wcprops
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/r/prg/!svn/ver/5368/trunk/arduino/libraries/ByteBuffer
+END
+ByteBuffer.h
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/r/prg/!svn/ver/5368/trunk/arduino/libraries/ByteBuffer/ByteBuffer.h
+END
+ByteBuffer.cpp
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/r/prg/!svn/ver/5812/trunk/arduino/libraries/ByteBuffer/ByteBuffer.cpp
+END
diff --git a/arduino_libs/ByteBuffer/.svn/entries b/arduino_libs/ByteBuffer/.svn/entries
new file mode 100755
index 0000000..4c4a628
--- /dev/null
+++ b/arduino_libs/ByteBuffer/.svn/entries
@@ -0,0 +1,120 @@
+10
+
+dir
+5368
+https://svn.media.mit.edu/r/prg/trunk/arduino/libraries/ByteBuffer
+https://svn.media.mit.edu/r/prg
+
+
+
+2010-07-20T00:54:42.918731Z
+5368
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+bd000cc4-1869-4481-ad02-c3af97ea9c83
+
+ByteBuffer.h
+file
+
+
+
+
+2010-07-19T22:27:55.000000Z
+3b6d84df8e69905675772beb574cce67
+2010-07-20T00:54:42.918731Z
+5368
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+844
+
+SerialPacketHandler.cpp
+file
+5810
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+deleted
+
+ByteBuffer.cpp
+file
+5812
+
+
+
+2010-09-02T16:31:44.000000Z
+d95900d573ac73c8ccf95b384f8ec258
+2010-09-02T18:42:42.362483Z
+5812
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3483
+
diff --git a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base b/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base
new file mode 100755
index 0000000..b91a586
--- /dev/null
+++ b/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.cpp.svn-base
@@ -0,0 +1,205 @@
+/*
+ ByteBuffer.cpp - A circular buffer implementation for Arduino
+ Created by Sigurdur Orn, July 19, 2010.
+ */
+
+#include "WProgram.h"
+#include "ByteBuffer.h"
+
+
+ByteBuffer::ByteBuffer(){
+
+}
+
+void ByteBuffer::init(unsigned int buf_length){
+ data = (byte*)malloc(sizeof(byte)*buf_length);
+ float_bytes = (byte*)malloc(sizeof(byte)*8);
+ capacity = buf_length;
+ position = 0;
+ length = 0;
+}
+
+void ByteBuffer::clear(){
+ position = 0;
+ length = 0;
+}
+
+int ByteBuffer::getSize(){
+ return length;
+}
+
+int ByteBuffer::getCapacity(){
+ return capacity;
+}
+
+byte ByteBuffer::peek(unsigned int index){
+ byte b = data[(position+index)%capacity];
+ return b;
+}
+
+int ByteBuffer::put(byte in){
+ if(length < capacity){
+ // save data byte at end of buffer
+ data[(position+length) % capacity] = in;
+ // increment the length
+ length++;
+ return 1;
+ }
+ // return failure
+ return 0;
+}
+
+int ByteBuffer::putInFront(byte in){
+ if(length < capacity){
+ // save data byte at end of buffer
+ if( position == 0 )
+ position = capacity-1;
+ else
+ position = (position-1)%capacity;
+ data[position] = in;
+ // increment the length
+ length++;
+ return 1;
+ }
+ // return failure
+ return 0;
+}
+
+byte ByteBuffer::get(){
+ byte b = 0;
+ if(length > 0){
+ b = data[position];
+ // move index down and decrement length
+ position = (position+1)%capacity;
+ length--;
+ }
+
+ return b;
+}
+
+byte ByteBuffer::getFromBack(){
+ byte b = 0;
+ if(length > 0){
+ b = data[(position+length-1)%capacity];
+ length--;
+ }
+
+ return b;
+}
+
+//
+// Ints
+//
+
+int ByteBuffer::putIntInFront(int in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+}
+
+int ByteBuffer::putInt(int in){
+ byte *pointer = (byte *)&in;
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+
+int ByteBuffer::getInt(){
+ int ret;
+ byte *pointer = (byte *)&ret;
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+int ByteBuffer::getIntFromBack(){
+ int ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ return ret;
+}
+
+//
+// Longs
+//
+
+int ByteBuffer::putLongInFront(long in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+ putInFront(pointer[2]);
+ putInFront(pointer[3]);
+}
+
+int ByteBuffer::putLong(long in){
+ byte *pointer = (byte *)&in;
+ put(pointer[3]);
+ put(pointer[2]);
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+
+long ByteBuffer::getLong(){
+ long ret;
+ byte *pointer = (byte *)&ret;
+ pointer[3] = get();
+ pointer[2] = get();
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+long ByteBuffer::getLongFromBack(){
+ long ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ pointer[2] = getFromBack();
+ pointer[3] = getFromBack();
+ return ret;
+}
+
+
+//
+// Floats
+//
+
+int ByteBuffer::putFloatInFront(float in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+ putInFront(pointer[2]);
+ putInFront(pointer[3]);
+}
+
+int ByteBuffer::putFloat(float in){
+ byte *pointer = (byte *)&in;
+ put(pointer[3]);
+ put(pointer[2]);
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+float ByteBuffer::getFloat(){
+ float ret;
+ byte *pointer = (byte *)&ret;
+ pointer[3] = get();
+ pointer[2] = get();
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+float ByteBuffer::getFloatFromBack(){
+ float ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ pointer[2] = getFromBack();
+ pointer[3] = getFromBack();
+ return ret;
+}
+
+
diff --git a/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base b/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base
new file mode 100755
index 0000000..b100c2f
--- /dev/null
+++ b/arduino_libs/ByteBuffer/.svn/text-base/ByteBuffer.h.svn-base
@@ -0,0 +1,57 @@
+/*
+ ByteBuffer.h - A circular buffer implementation for Arduino
+ Created by Sigurdur Orn, July 19, 2010.
+ */
+#ifndef ByteBuffer_h
+#define ByteBuffer_h
+
+#include "WProgram.h"
+
+class ByteBuffer
+{
+public:
+ ByteBuffer();
+
+ void init(unsigned int buf_size);
+
+ void clear();
+ int getSize();
+ int getCapacity();
+
+ int putInFront(byte in);
+ int put(byte in);
+
+ byte get();
+ byte getFromBack();
+
+ byte peek(unsigned int index);
+
+ int putIntInFront(int in);
+ int putInt(int in);
+
+ int putLongInFront(long in);
+ int putLong(long in);
+
+ int getInt();
+ int getIntFromBack();
+
+ long getLong();
+ long getLongFromBack();
+
+ int putFloatInFront(float in);
+ int putFloat(float in);
+
+ float getFloat();
+ float getFloatFromBack();
+
+private:
+ byte* data;
+ byte* float_bytes;
+
+ unsigned int capacity;
+ unsigned int position;
+ unsigned int length;
+};
+
+#endif
+
diff --git a/arduino_libs/ByteBuffer/ByteBuffer.cpp b/arduino_libs/ByteBuffer/ByteBuffer.cpp
new file mode 100755
index 0000000..b151cef
--- /dev/null
+++ b/arduino_libs/ByteBuffer/ByteBuffer.cpp
@@ -0,0 +1,212 @@
+/*
+ ByteBuffer.cpp - A circular buffer implementation for Arduino
+ Created by Sigurdur Orn, July 19, 2010.
+ siggi@mit.edu
+ */
+
+#include <util/atomic.h>
+#include "WProgram.h"
+#include "ByteBuffer.h"
+
+
+ByteBuffer::ByteBuffer(){
+
+}
+
+void ByteBuffer::init(unsigned int buf_length){
+ data = (byte*)malloc(sizeof(byte)*buf_length);
+ capacity = buf_length;
+ position = 0;
+ length = 0;
+}
+
+void ByteBuffer::deAllocate(){
+ free(data);
+}
+
+void ByteBuffer::clear(){
+ position = 0;
+ length = 0;
+}
+
+int ByteBuffer::getSize(){
+ return length;
+}
+
+int ByteBuffer::getCapacity(){
+ return capacity;
+}
+
+byte ByteBuffer::peek(unsigned int index){
+ byte b = data[(position+index)%capacity];
+ return b;
+}
+
+int ByteBuffer::put(byte in){
+ if(length < capacity){
+ // save data byte at end of buffer
+ data[(position+length) % capacity] = in;
+ // increment the length
+ length++;
+ return 1;
+ }
+ // return failure
+ return 0;
+}
+
+int ByteBuffer::putInFront(byte in){
+ if(length < capacity){
+ // save data byte at end of buffer
+ if( position == 0 )
+ position = capacity-1;
+ else
+ position = (position-1)%capacity;
+ data[position] = in;
+ // increment the length
+ length++;
+ return 1;
+ }
+ // return failure
+ return 0;
+}
+
+byte ByteBuffer::get(){
+ byte b = 0;
+
+
+ if(length > 0){
+ b = data[position];
+ // move index down and decrement length
+ position = (position+1)%capacity;
+ length--;
+ }
+
+ return b;
+}
+
+byte ByteBuffer::getFromBack(){
+ byte b = 0;
+ if(length > 0){
+ b = data[(position+length-1)%capacity];
+ length--;
+ }
+
+ return b;
+}
+
+//
+// Ints
+//
+
+int ByteBuffer::putIntInFront(int in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+}
+
+int ByteBuffer::putInt(int in){
+ byte *pointer = (byte *)&in;
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+
+int ByteBuffer::getInt(){
+ int ret;
+ byte *pointer = (byte *)&ret;
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+int ByteBuffer::getIntFromBack(){
+ int ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ return ret;
+}
+
+//
+// Longs
+//
+
+int ByteBuffer::putLongInFront(long in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+ putInFront(pointer[2]);
+ putInFront(pointer[3]);
+}
+
+int ByteBuffer::putLong(long in){
+ byte *pointer = (byte *)&in;
+ put(pointer[3]);
+ put(pointer[2]);
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+
+long ByteBuffer::getLong(){
+ long ret;
+ byte *pointer = (byte *)&ret;
+ pointer[3] = get();
+ pointer[2] = get();
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+long ByteBuffer::getLongFromBack(){
+ long ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ pointer[2] = getFromBack();
+ pointer[3] = getFromBack();
+ return ret;
+}
+
+
+//
+// Floats
+//
+
+int ByteBuffer::putFloatInFront(float in){
+ byte *pointer = (byte *)&in;
+ putInFront(pointer[0]);
+ putInFront(pointer[1]);
+ putInFront(pointer[2]);
+ putInFront(pointer[3]);
+}
+
+int ByteBuffer::putFloat(float in){
+ byte *pointer = (byte *)&in;
+ put(pointer[3]);
+ put(pointer[2]);
+ put(pointer[1]);
+ put(pointer[0]);
+}
+
+float ByteBuffer::getFloat(){
+ float ret;
+ byte *pointer = (byte *)&ret;
+ pointer[3] = get();
+ pointer[2] = get();
+ pointer[1] = get();
+ pointer[0] = get();
+ return ret;
+}
+
+float ByteBuffer::getFloatFromBack(){
+ float ret;
+ byte *pointer = (byte *)&ret;
+ pointer[0] = getFromBack();
+ pointer[1] = getFromBack();
+ pointer[2] = getFromBack();
+ pointer[3] = getFromBack();
+ return ret;
+}
+
+
diff --git a/arduino_libs/ByteBuffer/ByteBuffer.h b/arduino_libs/ByteBuffer/ByteBuffer.h
new file mode 100755
index 0000000..f6b4e48
--- /dev/null
+++ b/arduino_libs/ByteBuffer/ByteBuffer.h
@@ -0,0 +1,74 @@
+/*
+ ByteBuffer.h - A circular buffer implementation for Arduino
+ Created by Sigurdur Orn, July 19, 2010.
+ siggi@mit.edu
+ */
+
+#ifndef ByteBuffer_h
+#define ByteBuffer_h
+
+#include "WProgram.h"
+
+class ByteBuffer
+{
+public:
+ ByteBuffer();
+
+ // This method initializes the datastore of the buffer to a certain sizem the buffer should NOT be used before this call is made
+ void init(unsigned int buf_size);
+
+ // This method resets the buffer into an original state (with no data)
+ void clear();
+
+ // This releases resources for this buffer, after this has been called the buffer should NOT be used
+ void deAllocate();
+
+ // Returns how much space is left in the buffer for more data
+ int getSize();
+
+ // Returns the maximum capacity of the buffer
+ int getCapacity();
+
+ // This method returns the byte that is located at index in the buffer but doesn't modify the buffer like the get methods (doesn't remove the retured byte from the buffer)
+ byte peek(unsigned int index);
+
+ //
+ // Put methods, either a regular put in back or put in front
+ //
+ int putInFront(byte in);
+ int put(byte in);
+
+ int putIntInFront(int in);
+ int putInt(int in);
+
+ int putLongInFront(long in);
+ int putLong(long in);
+
+ int putFloatInFront(float in);
+ int putFloat(float in);
+
+ //
+ // Get methods, either a regular get from front or from back
+ //
+ byte get();
+ byte getFromBack();
+
+ int getInt();
+ int getIntFromBack();
+
+ long getLong();
+ long getLongFromBack();
+
+ float getFloat();
+ float getFloatFromBack();
+
+private:
+ byte* data;
+
+ unsigned int capacity;
+ unsigned int position;
+ unsigned int length;
+};
+
+#endif
+
diff --git a/arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde b/arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde
new file mode 100644
index 0000000..0d9e815
--- /dev/null
+++ b/arduino_libs/NewSoftSerial/Examples/NewSoftSerialTest/NewSoftSerialTest.pde
@@ -0,0 +1,25 @@
+
+#include <NewSoftSerial.h>
+
+NewSoftSerial mySerial(2, 3);
+
+void setup()
+{
+ Serial.begin(57600);
+ Serial.println("Goodnight moon!");
+
+ // set the data rate for the NewSoftSerial port
+ mySerial.begin(4800);
+ mySerial.println("Hello, world?");
+}
+
+void loop() // run over and over again
+{
+
+ if (mySerial.available()) {
+ Serial.print((char)mySerial.read());
+ }
+ if (Serial.available()) {
+ mySerial.print((char)Serial.read());
+ }
+}
diff --git a/arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde b/arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde
new file mode 100644
index 0000000..73aa991
--- /dev/null
+++ b/arduino_libs/NewSoftSerial/Examples/TwoNSSTest/TwoNSSTest.pde
@@ -0,0 +1,33 @@
+#include <NewSoftSerial.h>
+
+NewSoftSerial nss(2, 3);
+NewSoftSerial nss2(4, 5);
+
+void setup()
+{
+ nss2.begin(4800);
+ nss.begin(4800);
+ Serial.begin(115200);
+}
+
+void loop()
+{
+ // Every 10 seconds switch from
+ // one serial GPS device to the other
+ if ((millis() / 10000) % 2 == 0)
+ {
+ if (nss.available())
+ {
+ Serial.print(nss.read(), BYTE);
+ }
+ }
+
+ else
+ {
+ if (nss2.available())
+ {
+ Serial.print(nss2.read(), BYTE);
+ }
+ }
+}
+
diff --git a/arduino_libs/NewSoftSerial/NewSoftSerial.cpp b/arduino_libs/NewSoftSerial/NewSoftSerial.cpp
new file mode 100644
index 0000000..463ab01
--- /dev/null
+++ b/arduino_libs/NewSoftSerial/NewSoftSerial.cpp
@@ -0,0 +1,539 @@
+/*
+NewSoftSerial.cpp - Multi-instance software serial library
+Copyright (c) 2006 David A. Mellis. All rights reserved.
+-- Interrupt-driven receive and other improvements by ladyada
+-- Tuning, circular buffer, derivation from class Print,
+ multi-instance support, porting to 8MHz processors,
+ various optimizations, PROGMEM delay tables, inverse logic and
+ direct port writing by Mikal Hart
+
+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
+
+The latest version of this library can always be found at
+http://arduiniana.org.
+*/
+
+// When set, _DEBUG co-opts pins 11 and 13 for debugging with an
+// oscilloscope or logic analyzer. Beware: it also slightly modifies
+// the bit times, so don't rely on it too much at high baud rates
+#define _DEBUG 0
+#define _DEBUG_PIN1 11
+#define _DEBUG_PIN2 13
+//
+// Includes
+//
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "WConstants.h"
+#include "pins_arduino.h"
+#include "NewSoftSerial.h"
+
+// Abstractions for maximum portability between processors
+// These are macros to associate pins to pin change interrupts
+#if !defined(digitalPinToPCICR) // Courtesy Paul Stoffregen
+#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__)
+#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)NULL))
+#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
+#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)NULL))))
+#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
+#else
+#define digitalPinToPCICR(p) ((uint8_t *)NULL)
+#define digitalPinToPCICRbit(p) 0
+#define digitalPinToPCMSK(p) ((uint8_t *)NULL)
+#define digitalPinToPCMSKbit(p) 0
+#endif
+#endif
+
+//
+// Lookup table
+//
+typedef struct _DELAY_TABLE
+{
+ long baud;
+ unsigned short rx_delay_centering;
+ unsigned short rx_delay_intrabit;
+ unsigned short rx_delay_stopbit;
+ unsigned short tx_delay;
+} DELAY_TABLE;
+
+#if F_CPU == 16000000
+
+static const DELAY_TABLE PROGMEM table[] =
+{
+ // baud rxcenter rxintra rxstop tx
+ { 115200, 1, 17, 17, 12, },
+ { 57600, 10, 37, 37, 33, },
+ { 38400, 25, 57, 57, 54, },
+ { 31250, 31, 70, 70, 68, },
+ { 28800, 34, 77, 77, 74, },
+ { 19200, 54, 117, 117, 114, },
+ { 14400, 74, 156, 156, 153, },
+ { 9600, 114, 236, 236, 233, },
+ { 4800, 233, 474, 474, 471, },
+ { 2400, 471, 950, 950, 947, },
+ { 1200, 947, 1902, 1902, 1899, },
+ { 300, 3804, 7617, 7617, 7614, },
+};
+
+const int XMIT_START_ADJUSTMENT = 5;
+
+#elif F_CPU == 8000000
+
+static const DELAY_TABLE table[] PROGMEM =
+{
+ // baud rxcenter rxintra rxstop tx
+ { 115200, 1, 5, 5, 3, },
+ { 57600, 1, 15, 15, 13, },
+ { 38400, 2, 25, 26, 23, },
+ { 31250, 7, 32, 33, 29, },
+ { 28800, 11, 35, 35, 32, },
+ { 19200, 20, 55, 55, 52, },
+ { 14400, 30, 75, 75, 72, },
+ { 9600, 50, 114, 114, 112, },
+ { 4800, 110, 233, 233, 230, },
+ { 2400, 229, 472, 472, 469, },
+ { 1200, 467, 948, 948, 945, },
+ { 300, 1895, 3805, 3805, 3802, },
+};
+
+const int XMIT_START_ADJUSTMENT = 4;
+
+#elif F_CPU == 20000000
+
+// 20MHz support courtesy of the good people at macegr.com.
+// Thanks, Garrett!
+
+static const DELAY_TABLE PROGMEM table[] =
+{
+ // baud rxcenter rxintra rxstop tx
+ { 115200, 3, 21, 21, 18, },
+ { 57600, 20, 43, 43, 41, },
+ { 38400, 37, 73, 73, 70, },
+ { 31250, 45, 89, 89, 88, },
+ { 28800, 46, 98, 98, 95, },
+ { 19200, 71, 148, 148, 145, },
+ { 14400, 96, 197, 197, 194, },
+ { 9600, 146, 297, 297, 294, },
+ { 4800, 296, 595, 595, 592, },
+ { 2400, 592, 1189, 1189, 1186, },
+ { 1200, 1187, 2379, 2379, 2376, },
+ { 300, 4759, 9523, 9523, 9520, },
+};
+
+const int XMIT_START_ADJUSTMENT = 6;
+
+#else
+
+#error This version of NewSoftSerial supports only 20, 16 and 8MHz processors
+
+#endif
+
+//
+// Statics
+//
+NewSoftSerial *NewSoftSerial::active_object = 0;
+char NewSoftSerial::_receive_buffer[_NewSS_MAX_RX_BUFF];
+volatile uint8_t NewSoftSerial::_receive_buffer_tail = 0;
+volatile uint8_t NewSoftSerial::_receive_buffer_head = 0;
+
+//
+// Debugging
+//
+// This function generates a brief pulse
+// for debugging or measuring on an oscilloscope.
+inline void DebugPulse(uint8_t pin, uint8_t count)
+{
+#if _DEBUG
+ volatile uint8_t *pport = portOutputRegister(digitalPinToPort(pin));
+
+ uint8_t val = *pport;
+ while (count--)
+ {
+ *pport = val | digitalPinToBitMask(pin);
+ *pport = val;
+ }
+#endif
+}
+
+//
+// Private methods
+//
+
+/* static */
+inline void NewSoftSerial::tunedDelay(uint16_t delay) {
+ uint8_t tmp=0;
+
+ asm volatile("sbiw %0, 0x01 \n\t"
+ "ldi %1, 0xFF \n\t"
+ "cpi %A0, 0xFF \n\t"
+ "cpc %B0, %1 \n\t"
+ "brne .-10 \n\t"
+ : "+r" (delay), "+a" (tmp)
+ : "0" (delay)
+ );
+}
+
+// This function sets the current object as the "active"
+// one and returns true if it replaces another
+bool NewSoftSerial::activate(void)
+{
+ if (active_object != this)
+ {
+ _buffer_overflow = false;
+ uint8_t oldSREG = SREG;
+ cli();
+ _receive_buffer_head = _receive_buffer_tail = 0;
+ active_object = this;
+ SREG = oldSREG;
+ return true;
+ }
+
+ return false;
+}
+
+//
+// The receive routine called by the interrupt handler
+//
+void NewSoftSerial::recv()
+{
+
+#if GCC_VERSION < 40302
+// Work-around for avr-gcc 4.3.0 OSX version bug
+// Preserve the registers that the compiler misses
+// (courtesy of Arduino forum user *etracer*)
+ asm volatile(
+ "push r18 \n\t"
+ "push r19 \n\t"
+ "push r20 \n\t"
+ "push r21 \n\t"
+ "push r22 \n\t"
+ "push r23 \n\t"
+ "push r26 \n\t"
+ "push r27 \n\t"
+ ::);
+#endif
+
+ uint8_t d = 0;
+
+ // If RX line is high, then we don't see any start bit
+ // so interrupt is probably not for us
+ if (_inverse_logic ? rx_pin_read() : !rx_pin_read())
+ {
+ // Wait approximately 1/2 of a bit width to "center" the sample
+ tunedDelay(_rx_delay_centering);
+ DebugPulse(_DEBUG_PIN2, 1);
+
+ // Read each of the 8 bits
+ for (uint8_t i=0x1; i; i <<= 1)
+ {
+ tunedDelay(_rx_delay_intrabit);
+ DebugPulse(_DEBUG_PIN2, 1);
+ uint8_t noti = ~i;
+ if (rx_pin_read())
+ d |= i;
+ else // else clause added to ensure function timing is ~balanced
+ d &= noti;
+ }
+
+ // skip the stop bit
+ tunedDelay(_rx_delay_stopbit);
+ DebugPulse(_DEBUG_PIN2, 1);
+
+ if (_inverse_logic)
+ d = ~d;
+
+ // if buffer full, set the overflow flag and return
+ if ((_receive_buffer_tail + 1) % _NewSS_MAX_RX_BUFF != _receive_buffer_head)
+ {
+ // save new data in buffer: tail points to where byte goes
+ _receive_buffer[_receive_buffer_tail] = d; // save new byte
+ _receive_buffer_tail = (_receive_buffer_tail + 1) % _NewSS_MAX_RX_BUFF;
+ }
+ else
+ {
+#if _DEBUG // for scope: pulse pin as overflow indictator
+ DebugPulse(_DEBUG_PIN1, 1);
+#endif
+ _buffer_overflow = true;
+ }
+ }
+
+#if GCC_VERSION < 40302
+// Work-around for avr-gcc 4.3.0 OSX version bug
+// Restore the registers that the compiler misses
+ asm volatile(
+ "pop r27 \n\t"
+ "pop r26 \n\t"
+ "pop r23 \n\t"
+ "pop r22 \n\t"
+ "pop r21 \n\t"
+ "pop r20 \n\t"
+ "pop r19 \n\t"
+ "pop r18 \n\t"
+ ::);
+#endif
+}
+
+void NewSoftSerial::tx_pin_write(uint8_t pin_state)
+{
+ if (pin_state == LOW)
+ *_transmitPortRegister &= ~_transmitBitMask;
+ else
+ *_transmitPortRegister |= _transmitBitMask;
+}
+
+uint8_t NewSoftSerial::rx_pin_read()
+{
+ return *_receivePortRegister & _receiveBitMask;
+}
+
+//
+// Interrupt handling
+//
+
+/* static */
+inline void NewSoftSerial::handle_interrupt()
+{
+ if (active_object)
+ {
+ active_object->recv();
+ }
+}
+
+#if defined(PCINT0_vect)
+ISR(PCINT0_vect)
+{
+ NewSoftSerial::handle_interrupt();
+}
+#endif
+
+#if defined(PCINT1_vect)
+ISR(PCINT1_vect)
+{
+ NewSoftSerial::handle_interrupt();
+}
+#endif
+
+#if defined(PCINT2_vect)
+ISR(PCINT2_vect)
+{
+ NewSoftSerial::handle_interrupt();
+}
+#endif
+
+#if defined(PCINT3_vect)
+ISR(PCINT3_vect)
+{
+ NewSoftSerial::handle_interrupt();
+}
+#endif
+
+//
+// Constructor
+//
+NewSoftSerial::NewSoftSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /* = false */) :
+ _rx_delay_centering(0),
+ _rx_delay_intrabit(0),
+ _rx_delay_stopbit(0),
+ _tx_delay(0),
+ _buffer_overflow(false),
+ _inverse_logic(inverse_logic)
+{
+ setTX(transmitPin);
+ setRX(receivePin);
+}
+
+//
+// Destructor
+//
+NewSoftSerial::~NewSoftSerial()
+{
+ end();
+}
+
+void NewSoftSerial::setTX(uint8_t tx)
+{
+ pinMode(tx, OUTPUT);
+ digitalWrite(tx, HIGH);
+ _transmitBitMask = digitalPinToBitMask(tx);
+ uint8_t port = digitalPinToPort(tx);
+ _transmitPortRegister = portOutputRegister(port);
+}
+
+void NewSoftSerial::setRX(uint8_t rx)
+{
+ pinMode(rx, INPUT);
+ if (!_inverse_logic)
+ digitalWrite(rx, HIGH); // pullup for normal logic!
+ _receivePin = rx;
+ _receiveBitMask = digitalPinToBitMask(rx);
+ uint8_t port = digitalPinToPort(rx);
+ _receivePortRegister = portInputRegister(port);
+}
+
+//
+// Public methods
+//
+
+void NewSoftSerial::begin(long speed)
+{
+ _rx_delay_centering = _rx_delay_intrabit = _rx_delay_stopbit = _tx_delay = 0;
+
+ for (unsigned i=0; i<sizeof(table)/sizeof(table[0]); ++i)
+ {
+ long baud = pgm_read_dword(&table[i].baud);
+ if (baud == speed)
+ {
+ _rx_delay_centering = pgm_read_word(&table[i].rx_delay_centering);
+ _rx_delay_intrabit = pgm_read_word(&table[i].rx_delay_intrabit);
+ _rx_delay_stopbit = pgm_read_word(&table[i].rx_delay_stopbit);
+ _tx_delay = pgm_read_word(&table[i].tx_delay);
+ break;
+ }
+ }
+
+ // Set up RX interrupts, but only if we have a valid RX baud rate
+ if (_rx_delay_stopbit)
+ {
+ if (digitalPinToPCICR(_receivePin))
+ {
+ *digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
+ *digitalPinToPCMSK(_receivePin) |= _BV(digitalPinToPCMSKbit(_receivePin));
+ }
+ tunedDelay(_tx_delay); // if we were low this establishes the end
+ }
+
+#if _DEBUG
+ pinMode(_DEBUG_PIN1, OUTPUT);
+ pinMode(_DEBUG_PIN2, OUTPUT);
+#endif
+
+ activate();
+}
+
+void NewSoftSerial::end()
+{
+ if (digitalPinToPCMSK(_receivePin))
+ *digitalPinToPCMSK(_receivePin) &= ~_BV(digitalPinToPCMSKbit(_receivePin));
+}
+
+
+// Read data from buffer
+int NewSoftSerial::read(void)
+{
+ uint8_t d;
+
+ // A newly activated object never has any rx data
+ if (activate())
+ return -1;
+
+ // Empty buffer?
+ if (_receive_buffer_head == _receive_buffer_tail)
+ return -1;
+
+ // Read from "head"
+ d = _receive_buffer[_receive_buffer_head]; // grab next byte
+ _receive_buffer_head = (_receive_buffer_head + 1) % _NewSS_MAX_RX_BUFF;
+ return d;
+}
+
+uint8_t NewSoftSerial::available(void)
+{
+ // A newly activated object never has any rx data
+ if (activate())
+ return 0;
+
+ return (_receive_buffer_tail + _NewSS_MAX_RX_BUFF - _receive_buffer_head) % _NewSS_MAX_RX_BUFF;
+}
+
+void NewSoftSerial::write(uint8_t b)
+{
+ if (_tx_delay == 0)
+ return;
+
+ activate();
+
+ uint8_t oldSREG = SREG;
+ cli(); // turn off interrupts for a clean txmit
+
+ // Write the start bit
+ tx_pin_write(_inverse_logic ? HIGH : LOW);
+ tunedDelay(_tx_delay + XMIT_START_ADJUSTMENT);
+
+ // Write each of the 8 bits
+ if (_inverse_logic)
+ {
+ for (byte mask = 0x01; mask; mask <<= 1)
+ {
+ if (b & mask) // choose bit
+ tx_pin_write(LOW); // send 1
+ else
+ tx_pin_write(HIGH); // send 0
+
+ tunedDelay(_tx_delay);
+ }
+
+ tx_pin_write(LOW); // restore pin to natural state
+ }
+ else
+ {
+ for (byte mask = 0x01; mask; mask <<= 1)
+ {
+ if (b & mask) // choose bit
+ tx_pin_write(HIGH); // send 1
+ else
+ tx_pin_write(LOW); // send 0
+
+ tunedDelay(_tx_delay);
+ }
+
+ tx_pin_write(HIGH); // restore pin to natural state
+ }
+
+ SREG = oldSREG; // turn interrupts back on
+ tunedDelay(_tx_delay);
+}
+
+#if !defined(cbi)
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+void NewSoftSerial::enable_timer0(bool enable)
+{
+ if (enable)
+#if defined(__AVR_ATmega8__)
+ sbi(TIMSK, TOIE0);
+#else
+ sbi(TIMSK0, TOIE0);
+#endif
+ else
+#if defined(__AVR_ATmega8__)
+ cbi(TIMSK, TOIE0);
+#else
+ cbi(TIMSK0, TOIE0);
+#endif
+}
+
+void NewSoftSerial::flush()
+{
+ if (active_object == this)
+ {
+ uint8_t oldSREG = SREG;
+ cli();
+ _receive_buffer_head = _receive_buffer_tail = 0;
+ SREG = oldSREG;
+ }
+}
diff --git a/arduino_libs/NewSoftSerial/NewSoftSerial.h b/arduino_libs/NewSoftSerial/NewSoftSerial.h
new file mode 100644
index 0000000..1e39201
--- /dev/null
+++ b/arduino_libs/NewSoftSerial/NewSoftSerial.h
@@ -0,0 +1,107 @@
+/*
+NewSoftSerial.h - Multi-instance software serial library
+Copyright (c) 2006 David A. Mellis. All rights reserved.
+-- Interrupt-driven receive and other improvements by ladyada
+-- Tuning, circular buffer, derivation from class Print,
+ multi-instance support, porting to 8MHz processors,
+ various optimizations, PROGMEM delay tables, inverse logic and
+ direct port writing by Mikal Hart
+
+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
+
+The latest version of this library can always be found at
+http://arduiniana.org.
+*/
+
+#ifndef NewSoftSerial_h
+#define NewSoftSerial_h
+
+#include <inttypes.h>
+#include "Print.h"
+
+/******************************************************************************
+* Definitions
+******************************************************************************/
+
+#define _NewSS_MAX_RX_BUFF 64 // RX buffer size
+#define _NewSS_VERSION 10 // software version of this library
+#ifndef GCC_VERSION
+#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#endif
+
+class NewSoftSerial : public Print
+{
+private:
+ // per object data
+ uint8_t _receivePin;
+ uint8_t _receiveBitMask;
+ volatile uint8_t *_receivePortRegister;
+ uint8_t _transmitBitMask;
+ volatile uint8_t *_transmitPortRegister;
+
+ uint16_t _rx_delay_centering;
+ uint16_t _rx_delay_intrabit;
+ uint16_t _rx_delay_stopbit;
+ uint16_t _tx_delay;
+
+ uint16_t _buffer_overflow:1;
+ uint16_t _inverse_logic:1;
+
+ // static data
+ static char _receive_buffer[_NewSS_MAX_RX_BUFF];
+ static volatile uint8_t _receive_buffer_tail;
+ static volatile uint8_t _receive_buffer_head;
+ static NewSoftSerial *active_object;
+
+ // private methods
+ void recv();
+ bool activate();
+ virtual void write(uint8_t byte);
+ uint8_t rx_pin_read();
+ void tx_pin_write(uint8_t pin_state);
+ void setTX(uint8_t transmitPin);
+ void setRX(uint8_t receivePin);
+
+ // private static method for timing
+ static inline void tunedDelay(uint16_t delay);
+
+public:
+ // public methods
+ NewSoftSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false);
+ ~NewSoftSerial();
+ void begin(long speed);
+ void end();
+ int read();
+ uint8_t available(void);
+ bool active() { return this == active_object; }
+ bool overflow() { bool ret = _buffer_overflow; _buffer_overflow = false; return ret; }
+ static int library_version() { return _NewSS_VERSION; }
+ static void enable_timer0(bool enable);
+ void flush();
+
+ // public only for easy access by interrupt handlers
+ static inline void handle_interrupt();
+};
+
+// Arduino 0012 workaround
+#undef int
+#undef char
+#undef long
+#undef byte
+#undef float
+#undef abs
+#undef round
+
+#endif
diff --git a/arduino_libs/NewSoftSerial/keywords.txt b/arduino_libs/NewSoftSerial/keywords.txt
new file mode 100644
index 0000000..0a39bea
--- /dev/null
+++ b/arduino_libs/NewSoftSerial/keywords.txt
@@ -0,0 +1,30 @@
+#######################################
+# Syntax Coloring Map for NewSoftSerial
+#######################################
+
+#######################################
+# Datatypes (KEYWORD1)
+#######################################
+
+NewSoftSerial KEYWORD1
+
+#######################################
+# Methods and Functions (KEYWORD2)
+#######################################
+
+setTX KEYWORD2
+setRX KEYWORD2
+begin KEYWORD2
+end KEYWORD2
+read KEYWORD2
+available KEYWORD2
+active KEYWORD2
+overflow KEYWORD2
+library_version KEYWORD2
+enable_timer0 KEYWORD2
+flush KEYWORD2
+
+#######################################
+# Constants (LITERAL1)
+#######################################
+
diff --git a/arduino_libs/SerialManager/.DS_Store b/arduino_libs/SerialManager/.DS_Store
new file mode 100755
index 0000000..5008ddf
--- /dev/null
+++ b/arduino_libs/SerialManager/.DS_Store
Binary files differ
diff --git a/arduino_libs/SerialManager/.svn/all-wcprops b/arduino_libs/SerialManager/.svn/all-wcprops
new file mode 100755
index 0000000..e920984
--- /dev/null
+++ b/arduino_libs/SerialManager/.svn/all-wcprops
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/r/prg/!svn/ver/5369/trunk/arduino/libraries/SerialManager
+END
+SerialManager.h
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/r/prg/!svn/ver/5812/trunk/arduino/libraries/SerialManager/SerialManager.h
+END
+SerialManager.cpp
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/r/prg/!svn/ver/5812/trunk/arduino/libraries/SerialManager/SerialManager.cpp
+END
diff --git a/arduino_libs/SerialManager/.svn/entries b/arduino_libs/SerialManager/.svn/entries
new file mode 100755
index 0000000..a965507
--- /dev/null
+++ b/arduino_libs/SerialManager/.svn/entries
@@ -0,0 +1,144 @@
+10
+
+dir
+5369
+https://svn.media.mit.edu/r/prg/trunk/arduino/libraries/SerialManager
+https://svn.media.mit.edu/r/prg
+
+
+
+2010-07-20T00:55:06.830758Z
+5369
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+bd000cc4-1869-4481-ad02-c3af97ea9c83
+
+SerialManager.h
+file
+5812
+
+
+
+2010-09-02T16:01:59.000000Z
+81120736a5f09269c146fab073728dcf
+2010-09-02T18:42:42.362483Z
+5812
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1242
+
+SerialPacketHandler.cpp
+file
+5812
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+deleted
+
+SerialManager.cpp
+file
+5812
+
+
+
+2010-09-02T16:02:09.000000Z
+d7812d43c015d22e6970f3b8884d9b37
+2010-09-02T18:42:42.362483Z
+5812
+siggi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4793
+
+SerialPacketHandler.h
+file
+5812
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+deleted
+
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base b/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
new file mode 100755
index 0000000..ed06dbc
--- /dev/null
+++ b/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
@@ -0,0 +1,197 @@
+/*
+ SerialManager.cpp - Library for doing packetized serial comm with Arduinos.
+ Created by Sigurdur Orn, May 23, 2010.
+ */
+
+#include "WProgram.h"
+#include "SerialManager.h"
+#include "ByteBuffer.h"
+
+
+SerialManager::SerialManager(unsigned int in_buf_size, unsigned int out_buf_size){
+ serial_in_checksum = 0;
+
+ incoming_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+ outgoing_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+ temp_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+
+ incoming_buffer->init(in_buf_size);
+ outgoing_buffer->init(out_buf_size);
+ temp_buffer->init(10);
+
+ byte1 = 0;
+ byte2 = 0;
+ byte3 = 0;
+ byte4 = 0;
+
+ handlePacketFunction = 0;
+}
+
+void SerialManager::init(int serial_port, int baud_rate){
+ _serial_port = serial_port;
+
+ if( serial_port == 0)
+ Serial.begin(baud_rate);
+#if defined(__AVR_ATmega1280__)
+ else if( serial_port == 1)
+ Serial1.begin(baud_rate);
+ else if( serial_port == 2)
+ Serial2.begin(baud_rate);
+ else if( serial_port == 3)
+ Serial3.begin(baud_rate);
+#endif
+}
+
+
+
+bool SerialManager::isBusySending(){
+ return ( outgoing_buffer->getSize() > 0 );
+}
+
+// Sends a single byte
+int SerialManager::sendSerialByte(byte b){
+ return outgoing_buffer->put(b);
+}
+
+// Sends a packet with a header and a checksum
+int SerialManager::sendSerialPacket(ByteBuffer* packet_buffer){
+ // Copy buffer and calc checksum
+ byte checksum = 0;
+ while( packet_buffer->getSize() > 0 ){
+ byte b = packet_buffer->get();
+ outgoing_buffer->put(b);
+ checksum += b;
+ }
+
+ outgoing_buffer->put( checksum );
+ outgoing_buffer->put( 1 );
+ outgoing_buffer->put( 2 );
+ outgoing_buffer->put( 3 );
+ outgoing_buffer->put( 4 );
+
+ return 0;
+}
+
+// Sends a raw packet with no header or checksum
+int SerialManager::sendRawSerial(ByteBuffer* packet_buffer){
+ while( packet_buffer->getSize() > 0 ){
+ byte b = packet_buffer->get();
+ outgoing_buffer->put(b);
+ }
+
+ return 0;
+}
+
+void SerialManager::update(){
+
+ // If we have received stuff
+ if( _serial_port == 0 ){
+ while( Serial.available() != 0 ) {
+ byte incoming = Serial.read();
+ handleIncomingByte(incoming);
+ }
+ }
+
+#if defined(__AVR_ATmega1280__)
+ else if( _serial_port == 1 ){
+ while( Serial1.available() != 0 ) {
+ byte incoming = Serial1.read();
+ handleIncomingByte(incoming);
+ }
+ }
+ else if( _serial_port == 2 ){
+ while( Serial2.available() != 0 ) {
+ byte incoming = Serial2.read();
+ handleIncomingByte(incoming);
+ }
+ }
+ else if( _serial_port == 3 ){
+ while( Serial3.available() != 0 ) {
+ byte incoming = Serial3.read();
+ handleIncomingByte(incoming);
+ }
+ }
+#endif
+
+
+ // If we should be sending stuff
+ if( outgoing_buffer->getSize() > 0 ){
+ // If serial port not currently busy
+ if( _serial_port == 0 )
+ if(((UCSRA) & (1 << UDRE)) ) Serial.write( outgoing_buffer->get() );
+
+#if defined(__AVR_ATmega1280__)
+ else if( _serial_port == 1 )
+ if(((UCSRA1) & (1 << UDRE1)) ) Serial1.write( outgoing_buffer->get() );
+ else if( _serial_port == 2 )
+ if(((UCSRA2) & (1 << UDRE2)) ) Serial2.write( outgoing_buffer->get() );
+ else if( _serial_port == 3 )
+ if(((UCSRA3) & (1 << UDRE3)) ) Serial3.write( outgoing_buffer->get() );
+#endif
+ }
+}
+
+void SerialManager::setPacketHandler(void (*packetHandlerFunction)(ByteBuffer*)){
+ handlePacketFunction = packetHandlerFunction;
+}
+
+
+void SerialManager::handleIncomingByte(byte incoming){
+
+ // If buffer overflows then reset (we could do something smarter here)
+// if( incoming_buffer->getSize() == incoming_buffer->getCapacity() ){
+// incoming_buffer->clear();
+// }
+
+ incoming_buffer->put( incoming );
+ serial_in_checksum += incoming;
+
+ byte1 = byte2;
+ byte2 = byte3;
+ byte3 = byte4;
+ byte4 = incoming;
+
+ // If we have a full packet ready
+ if( byte1==1 && byte2==2 && byte3==3 && byte4==4 ){
+ // Remove header from buffer
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+
+ byte checksum_received = incoming_buffer->getFromBack();
+
+ // Remove the whole header from the calculated checksum
+ serial_in_checksum -= checksum_received + 10;
+
+ // If checksums don't match, then do something ()
+ if( checksum_received != serial_in_checksum ){
+ temp_buffer->clear();
+ temp_buffer->put(123);
+ temp_buffer->put(234);
+ temp_buffer->put( checksum_received );
+ temp_buffer->put( serial_in_checksum );
+ sendSerialPacket(temp_buffer);
+ }
+
+ // We have a successful packet
+ else{
+
+ if( handlePacketFunction != 0 )
+ handlePacketFunction(incoming_buffer);
+ else
+ handlePacketDefault(incoming_buffer);
+ }
+
+ // Clear variables
+ incoming_buffer->clear();
+ serial_in_checksum = 0;
+ }
+
+}
+
+void SerialManager::handlePacketDefault(ByteBuffer* packet){
+ // We could do something here like send the data to the host again for debug
+ // Or just do nothing
+ return;
+}
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base b/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base
new file mode 100755
index 0000000..dcbdba6
--- /dev/null
+++ b/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base
@@ -0,0 +1,63 @@
+/*
+ SerialManager.h - Library for doing packetized serial comm with Arduinos.
+ Created by Sigurdur Orn, May 23, 2010.
+ */
+#ifndef SerialManager_h
+#define SerialManager_h
+
+#include "ByteBuffer.h"
+#include "WProgram.h"
+
+typedef void (*voidFuncPtr)(ByteBuffer*);
+
+#if defined(__AVR_ATmega8__)
+ #define UCSRA UCSRA
+ #define UDRE UDRE
+#else
+ #define UCSRA UCSR0A
+ #define UDRE UDRE0
+#endif
+
+#if defined(__AVR_ATmega1280__)
+ #define UCSRA1 UCSR1A
+ #define UDRE1 UDRE1
+ #define UCSRA2 UCSR2A
+ #define UDRE2 UDRE2
+ #define UCSRA3 UCSR3A
+ #define UDRE3 UDRE3
+#endif
+
+
+class SerialManager
+{
+public:
+ SerialManager(unsigned int in_buf_size, unsigned int out_buf_size);
+ void init(int serial_port, int baud_rate);
+ void setPacketHandler(void (*rx_func)(ByteBuffer*));
+
+ void update();
+ bool isBusySending();
+
+ int sendSerialByte(byte b);
+ int sendSerialPacket(ByteBuffer* packet);
+ int sendRawSerial(ByteBuffer* packet);
+
+private:
+ void handleIncomingByte(byte incoming);
+ void handlePacketDefault(ByteBuffer* packet);
+
+ voidFuncPtr handlePacketFunction;
+
+ byte _serial_port;
+ ByteBuffer* incoming_buffer;
+ ByteBuffer* outgoing_buffer;
+ ByteBuffer* temp_buffer;
+ byte serial_in_checksum;
+ byte byte1;
+ byte byte2;
+ byte byte3;
+ byte byte4;
+};
+
+#endif
+
diff --git a/arduino_libs/SerialManager/SerialManager.cpp b/arduino_libs/SerialManager/SerialManager.cpp
new file mode 100755
index 0000000..2e2d306
--- /dev/null
+++ b/arduino_libs/SerialManager/SerialManager.cpp
@@ -0,0 +1,193 @@
+/*
+ SerialManager.cpp - Library for doing packetized serial comm with Arduinos.
+ Created by Sigurdur Orn, May 23, 2010.
+ siggi@mit.edu
+ */
+
+#include "WProgram.h"
+#include "SerialManager.h"
+#include "ByteBuffer.h"
+
+
+SerialManager::SerialManager(unsigned int in_buf_size, unsigned int out_buf_size){
+ serial_in_checksum = 0;
+
+ incoming_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+ outgoing_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+ temp_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
+
+ incoming_buffer->init(in_buf_size);
+ outgoing_buffer->init(out_buf_size);
+ temp_buffer->init(10);
+
+ byte1 = 0;
+ byte2 = 0;
+ byte3 = 0;
+ byte4 = 0;
+
+ handlePacketFunction = 0;
+}
+
+void SerialManager::init(int serial_port, int baud_rate){
+ _serial_port = serial_port;
+
+ if( serial_port == 0)
+ Serial.begin(baud_rate);
+#if defined(__AVR_ATmega1280__)
+ else if( serial_port == 1)
+ Serial1.begin(baud_rate);
+ else if( serial_port == 2)
+ Serial2.begin(baud_rate);
+ else if( serial_port == 3)
+ Serial3.begin(baud_rate);
+#endif
+}
+
+
+
+bool SerialManager::isBusySending(){
+ return ( outgoing_buffer->getSize() > 0 );
+}
+
+// Sends a single byte
+int SerialManager::sendSerialByte(byte b){
+ return outgoing_buffer->put(b);
+}
+
+// Sends a packet with a header and a checksum
+int SerialManager::sendSerialPacket(ByteBuffer* packet_buffer){
+ // Copy buffer and calc checksum
+ byte checksum = 0;
+ while( packet_buffer->getSize() > 0 ){
+ byte b = packet_buffer->get();
+ outgoing_buffer->put(b);
+ checksum += b;
+ }
+
+ outgoing_buffer->put( checksum );
+ outgoing_buffer->put( 1 );
+ outgoing_buffer->put( 2 );
+ outgoing_buffer->put( 3 );
+ outgoing_buffer->put( 4 );
+
+ return 0;
+}
+
+// Sends a raw packet with no header or checksum
+int SerialManager::sendRawSerial(ByteBuffer* packet_buffer){
+ while( packet_buffer->getSize() > 0 ){
+ byte b = packet_buffer->get();
+ outgoing_buffer->put(b);
+ }
+
+ return 0;
+}
+
+void SerialManager::update(){
+
+ // If we have received stuff
+ if( _serial_port == 0 ){
+ while( Serial.available() != 0 ) {
+ byte incoming = Serial.read();
+ handleIncomingByte(incoming);
+ }
+ }
+
+#if defined(__AVR_ATmega1280__)
+ else if( _serial_port == 1 ){
+ while( Serial1.available() != 0 ) {
+ byte incoming = Serial1.read();
+ handleIncomingByte(incoming);
+ }
+ }
+ else if( _serial_port == 2 ){
+ while( Serial2.available() != 0 ) {
+ byte incoming = Serial2.read();
+ handleIncomingByte(incoming);
+ }
+ }
+ else if( _serial_port == 3 ){
+ while( Serial3.available() != 0 ) {
+ byte incoming = Serial3.read();
+ handleIncomingByte(incoming);
+ }
+ }
+#endif
+
+
+ // If we should be sending stuff
+ if( outgoing_buffer->getSize() > 0 ){
+ // If serial port not currently busy
+ if( _serial_port == 0 )
+ if(((UCSRA) & (1 << UDRE)) ) Serial.write( outgoing_buffer->get() );
+
+#if defined(__AVR_ATmega1280__)
+ else if( _serial_port == 1 )
+ if(((UCSR1A) & (1 << UDRE1)) ) Serial1.write( outgoing_buffer->get() );
+ else if( _serial_port == 2 )
+ if(((UCSR2A) & (1 << UDRE2)) ) Serial2.write( outgoing_buffer->get() );
+ else if( _serial_port == 3 )
+ if(((UCSR3A) & (1 << UDRE3)) ) Serial3.write( outgoing_buffer->get() );
+#endif
+ }
+}
+
+void SerialManager::setPacketHandler(void (*packetHandlerFunction)(ByteBuffer*)){
+ handlePacketFunction = packetHandlerFunction;
+}
+
+
+void SerialManager::handleIncomingByte(byte incoming){
+
+ // If buffer overflows then reset (we could do something smarter here)
+ if( incoming_buffer->getSize() == incoming_buffer->getCapacity() ){
+ incoming_buffer->clear();
+ }
+
+ incoming_buffer->put( incoming );
+ serial_in_checksum += incoming;
+
+ byte1 = byte2;
+ byte2 = byte3;
+ byte3 = byte4;
+ byte4 = incoming;
+
+ // If we have a full packet ready
+ if( byte1==1 && byte2==2 && byte3==3 && byte4==4 ){
+ // Remove header from buffer
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+ incoming_buffer->getFromBack();
+
+ byte checksum_received = incoming_buffer->getFromBack();
+
+ // Remove the whole header from the calculated checksum
+ serial_in_checksum -= checksum_received + 10;
+
+ // If checksums don't match, then do something ()
+ if( checksum_received != serial_in_checksum ){
+ ; // We could do something about this here
+ }
+
+ // We have a successful packet
+ else{
+
+ if( handlePacketFunction != 0 )
+ handlePacketFunction(incoming_buffer);
+ else
+ handlePacketDefault(incoming_buffer);
+ }
+
+ // Clear variables
+ incoming_buffer->clear();
+ serial_in_checksum = 0;
+ }
+
+}
+
+void SerialManager::handlePacketDefault(ByteBuffer* packet){
+ // We could do something here like send the data to the host again for debug
+ // Or just do nothing
+ return;
+}
diff --git a/arduino_libs/SerialManager/SerialManager.h b/arduino_libs/SerialManager/SerialManager.h
new file mode 100755
index 0000000..f1474c5
--- /dev/null
+++ b/arduino_libs/SerialManager/SerialManager.h
@@ -0,0 +1,62 @@
+/*
+ SerialManager.h - Library for doing packetized serial comm with Arduinos.
+ Created by Sigurdur Orn, May 23, 2010.
+ siggi@mit.edu
+ */
+
+#ifndef SerialManager_h
+#define SerialManager_h
+
+#include "ByteBuffer.h"
+#include "WProgram.h"
+
+typedef void (*voidFuncPtr)(ByteBuffer*);
+
+#if defined(__AVR_ATmega8__)
+ #define UCSRA UCSRA
+ #define UDRE UDRE
+#else
+ #define UCSRA UCSR0A
+ #define UDRE UDRE0
+#endif
+
+#if defined(__AVR_ATmega1280__)
+ #define UCSRA1 UCSR1A
+ #define UCSRA2 UCSR2A
+ #define UCSRA3 UCSR3A
+#endif
+
+
+class SerialManager
+{
+public:
+ SerialManager(unsigned int in_buf_size, unsigned int out_buf_size);
+ void init(int serial_port, int baud_rate);
+ void setPacketHandler(void (*rx_func)(ByteBuffer*));
+
+ void update();
+ bool isBusySending();
+
+ int sendSerialByte(byte b);
+ int sendSerialPacket(ByteBuffer* packet);
+ int sendRawSerial(ByteBuffer* packet);
+
+private:
+ void handleIncomingByte(byte incoming);
+ void handlePacketDefault(ByteBuffer* packet);
+
+ voidFuncPtr handlePacketFunction;
+
+ byte _serial_port;
+ ByteBuffer* incoming_buffer;
+ ByteBuffer* outgoing_buffer;
+ ByteBuffer* temp_buffer;
+ byte serial_in_checksum;
+ byte byte1;
+ byte byte2;
+ byte byte3;
+ byte byte4;
+};
+
+#endif
+
diff --git a/arduino_libs/core0022_2560.a b/arduino_libs/core0022_2560.a
new file mode 100644
index 0000000..39936f0
--- /dev/null
+++ b/arduino_libs/core0022_2560.a
Binary files differ
diff --git a/arduino_libs/core0022_328p.a b/arduino_libs/core0022_328p.a
new file mode 100644
index 0000000..0141d8c
--- /dev/null
+++ b/arduino_libs/core0022_328p.a
Binary files differ
diff --git a/avr_libs/uartlib/doxygen.css b/avr_libs/uartlib/doxygen.css
new file mode 100644
index 0000000..8cb8b2e
--- /dev/null
+++ b/avr_libs/uartlib/doxygen.css
@@ -0,0 +1,49 @@
+H1 { text-align: center; }
+CAPTION { font-weight: bold }
+A.qindex {}
+A.qindexRef {}
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code { text-decoration: none; font-weight: normal; color: #4444ee }
+A.codeRef { font-weight: normal; color: #4444ee }
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #f2f2ff; font-weight: bold; }
+TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
+BODY { background: white; color: black }
+TD.indexkey {
+ background-color: #eeeeff;
+ font-weight: bold;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px
+}
+TD.indexvalue {
+ background-color: #eeeeff;
+ font-style: italic;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px
+}
+span.keyword { color: #008000 }
+span.keywordtype { color: #604020 }
+span.keywordflow { color: #e08000 }
+span.comment { color: #800000 }
+span.preprocessor { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral { color: #008080 }
diff --git a/avr_libs/uartlib/doxygen.png b/avr_libs/uartlib/doxygen.png
new file mode 100644
index 0000000..f0a274b
--- /dev/null
+++ b/avr_libs/uartlib/doxygen.png
Binary files differ
diff --git a/avr_libs/uartlib/group__pfleury__uart.html b/avr_libs/uartlib/group__pfleury__uart.html
new file mode 100644
index 0000000..7ab9c45
--- /dev/null
+++ b/avr_libs/uartlib/group__pfleury__uart.html
@@ -0,0 +1,560 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>AVR-GCC libraries: UART Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>UART Library</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Interrupt UART library using the built-in UART with transmit and receive circular buffers.
+<p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;uart.h&gt;</span>
+</pre></div><p>
+This library can be used to transmit and receive data through the built in UART.<p>
+An interrupt is generated when the UART has finished transmitting or receiving a byte. The interrupt handling routines use circular buffers for buffering received and transmitted data.<p>
+The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define the size of the circular buffers in bytes. Note that these constants must be a power of 2. You may need to adapt this constants to your target and your application by adding CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.<p>
+<dl compact><dt><b>Note:</b></dt><dd>Based on Atmel Application Note AVR306 </dd></dl>
+<dl compact><dt><b>Author:</b></dt><dd>Peter Fleury <a href="mailto:pfleury@gmx.ch">pfleury@gmx.ch</a> <a href="http://jump.to/fleury">http://jump.to/fleury</a> </dd></dl>
+
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga10">UART_BAUD_SELECT</a>(baudRate, xtalCpu)&nbsp;&nbsp;&nbsp;((xtalCpu)/((baudRate)*16l)-1)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UART Baudrate Expression. <a href="#ga10"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga11">UART_BAUD_SELECT_DOUBLE_SPEED</a>(baudRate, xtalCpu)&nbsp;&nbsp;&nbsp;(((xtalCpu)/((baudRate)*8l)-1)|0x8000)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UART Baudrate Expression for ATmega double speed mode. <a href="#ga11"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga12">UART_RX_BUFFER_SIZE</a>&nbsp;&nbsp;&nbsp;32</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga13">UART_TX_BUFFER_SIZE</a>&nbsp;&nbsp;&nbsp;32</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="pfleury_uart::UART_FRAME_ERROR"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>UART_FRAME_ERROR</b>&nbsp;&nbsp;&nbsp;0x0800</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="pfleury_uart::UART_OVERRUN_ERROR"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>UART_OVERRUN_ERROR</b>&nbsp;&nbsp;&nbsp;0x0400</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="pfleury_uart::UART_BUFFER_OVERFLOW"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>UART_BUFFER_OVERFLOW</b>&nbsp;&nbsp;&nbsp;0x0200</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga17" doxytag="pfleury_uart::UART_NO_DATA"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>UART_NO_DATA</b>&nbsp;&nbsp;&nbsp;0x0100</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="pfleury_uart::uart_puts_P"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga18">uart_puts_P</a>(__s)&nbsp;&nbsp;&nbsp;uart_puts_p(PSTR(__s))</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro to automatically put a string constant into program memory. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="pfleury_uart::uart1_puts_P"></a>
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga19">uart1_puts_P</a>(__s)&nbsp;&nbsp;&nbsp;uart1_puts_p(PSTR(__s))</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro to automatically put a string constant into program memory. <br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga0">uart_init</a> (unsigned int baudrate)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize UART and set baudrate. <a href="#ga0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga1">uart_getc</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get received byte from ringbuffer. <a href="#ga1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga2">uart_putc</a> (unsigned char data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put byte to ringbuffer for transmitting via UART. <a href="#ga2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga3">uart_puts</a> (const char *s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put string to ringbuffer for transmitting via UART. <a href="#ga3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga4">uart_puts_p</a> (const char *s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put string from program memory to ringbuffer for transmitting via UART. <a href="#ga4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga5">uart1_init</a> (unsigned int baudrate)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize USART1 (only available on selected ATmegas). <a href="#ga5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga6">uart1_getc</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get received byte of USART1 from ringbuffer. (only available on selected ATmega). <a href="#ga6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga7">uart1_putc</a> (unsigned char data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega). <a href="#ga7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga8">uart1_puts</a> (const char *s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega). <a href="#ga8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__uart.html#ga9">uart1_puts_p</a> (const char *s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega). <a href="#ga9"></a><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="ga10" doxytag="uart.h::UART_BAUD_SELECT"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define UART_BAUD_SELECT </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">baudRate, <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>xtalCpu&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((xtalCpu)/((baudRate)*16l)-1)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+UART Baudrate Expression.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>xtalcpu</em>&nbsp;</td><td>system clock in Mhz, e.g. 4000000L for 4Mhz </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>baudrate</em>&nbsp;</td><td>baudrate in bps, e.g. 1200, 2400, 9600 </td></tr>
+ </table>
+</dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga11" doxytag="uart.h::UART_BAUD_SELECT_DOUBLE_SPEED"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define UART_BAUD_SELECT_DOUBLE_SPEED </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">baudRate, <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>xtalCpu&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(((xtalCpu)/((baudRate)*8l)-1)|0x8000)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+UART Baudrate Expression for ATmega double speed mode.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>xtalcpu</em>&nbsp;</td><td>system clock in Mhz, e.g. 4000000L for 4Mhz </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>baudrate</em>&nbsp;</td><td>baudrate in bps, e.g. 1200, 2400, 9600 </td></tr>
+ </table>
+</dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga12" doxytag="uart.h::UART_RX_BUFFER_SIZE"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define UART_RX_BUFFER_SIZE&nbsp;&nbsp;&nbsp;32 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Size of the circular receive buffer, must be power of 2 </td>
+ </tr>
+</table>
+<a class="anchor" name="ga13" doxytag="uart.h::UART_TX_BUFFER_SIZE"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define UART_TX_BUFFER_SIZE&nbsp;&nbsp;&nbsp;32 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Size of the circular transmit buffer, must be power of 2 </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="ga0" doxytag="uart.h::uart_init"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned int&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>baudrate</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Initialize UART and set baudrate.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>baudrate</em>&nbsp;</td><td>Specify baudrate using macro <a class="el" href="group__pfleury__uart.html#ga10">UART_BAUD_SELECT()</a> </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga1" doxytag="uart.h::uart_getc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned int uart_getc </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get received byte from ringbuffer.
+<p>
+Returns in the lower byte the received character and in the higher byte the last receive error. UART_NO_DATA is returned when no data is available.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>lower byte: received byte from ringbuffer <p>
+higher byte: last receive status<ul>
+<li><b>0</b> successfully received data from UART</li><li><b>UART_NO_DATA</b> <br>
+no receive data available</li><li><b>UART_BUFFER_OVERFLOW</b> <br>
+Receive ringbuffer overflow. We are not reading the receive buffer fast enough, one or more received character have been dropped</li><li><b>UART_OVERRUN_ERROR</b> <br>
+Overrun condition by UART. A character already present in the UART UDR register was not read by the interrupt handler before the next character arrived, one or more received characters have been dropped.</li><li><b>UART_FRAME_ERROR</b> <br>
+Framing Error by UART </li></ul>
+</dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga2" doxytag="uart.h::uart_putc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart_putc </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned char&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>data</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put byte to ringbuffer for transmitting via UART.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>byte to be transmitted </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga3" doxytag="uart.h::uart_puts"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart_puts </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put string to ringbuffer for transmitting via UART.
+<p>
+The string is buffered by the uart library in a circular buffer and one character at a time is transmitted to the UART using interrupts. Blocks if it can not write the whole string into the circular buffer.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>string to be transmitted </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga4" doxytag="uart.h::uart_puts_p"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart_puts_p </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put string from program memory to ringbuffer for transmitting via UART.
+<p>
+The string is buffered by the uart library in a circular buffer and one character at a time is transmitted to the UART using interrupts. Blocks if it can not write the whole string into the circular buffer.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>program memory string to be transmitted </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga18">uart_puts_P</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga5" doxytag="uart.h::uart1_init"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart1_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned int&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>baudrate</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Initialize USART1 (only available on selected ATmegas).
+<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga0">uart_init</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga6" doxytag="uart.h::uart1_getc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned int uart1_getc </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get received byte of USART1 from ringbuffer. (only available on selected ATmega).
+<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga1">uart_getc</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga7" doxytag="uart.h::uart1_putc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart1_putc </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned char&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>data</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega).
+<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga2">uart_putc</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga8" doxytag="uart.h::uart1_puts"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart1_puts </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega).
+<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga3">uart_puts</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="ga9" doxytag="uart.h::uart1_puts_p"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void uart1_puts_p </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega).
+<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__uart.html#ga4">uart_puts_p</a> </dd></dl>
+ </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jul 10 13:47:45 2005 for AVR-GCC libraries by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
+</body>
+</html>
diff --git a/avr_libs/uartlib/makefile b/avr_libs/uartlib/makefile
new file mode 100644
index 0000000..b90c0c4
--- /dev/null
+++ b/avr_libs/uartlib/makefile
@@ -0,0 +1,508 @@
+# ----------------------------------------------------------------------------
+# Makefile to compile and link the UART library and test program
+# Author: Peter Fleury
+# File: $Id: makefile.uart,v 1.3 2005/04/09 07:56:09 Peter Exp $
+# based on WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
+#
+# Adjust F_CPU below to the clock frequency in Mhz of your AVR target
+#
+# Adjust the size of the receive and transmit ringbuffer in bytes using the
+# defines -DUART_RX_BUFFER_SIZE=128 and -DUART_TX_BUFFER_SIZE=128 in the
+# CDEF section below
+#
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device, using avrdude.
+# Please customize the avrdude settings below first!
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+
+# MCU name
+MCU = at90s8515
+
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+F_CPU = 4000000
+
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+
+# Target file name (without extension).
+TARGET = test_uart
+
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC = $(TARGET).c uart.c
+
+
+# List Assembler source files here.
+# Make them always end in a capital .S. Files ending in a lowercase .s
+# will not be considered source files but generated files (assembler
+# output from the compiler), and will be deleted upon "make clean"!
+# Even though the DOS/Win* filesystem matches both .s and .S the same,
+# it will preserve the spelling of the filenames, and gcc itself does
+# care about how the name is spelled on its command-line.
+ASRC =
+
+
+# Optimization level, can be [0, 1, 2, 3, s].
+# 0 = turn off optimization. s = optimize for size.
+# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+
+# Debugging format.
+# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
+# AVR Studio 4.10 requires dwarf-2.
+# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
+DEBUG = dwarf-2
+
+
+# List any extra directories to look for include files here.
+# Each directory must be seperated by a space.
+# Use forward slashes for directory separators.
+# For a directory that has spaces, enclose it in quotes.
+EXTRAINCDIRS =
+
+
+# Compiler flag to set the C Standard level.
+# c89 = "ANSI" C
+# gnu89 = c89 plus GCC extensions
+# c99 = ISO C99 standard (not yet fully implemented)
+# gnu99 = c99 plus GCC extensions
+CSTANDARD = -std=gnu99
+
+
+# Place -D or -U options here
+CDEFS = -DF_CPU=$(F_CPU)UL
+
+# uncomment and adapt these line if you want different UART library buffer size
+#CDEFS += -DUART_RX_BUFFER_SIZE=128
+#CDEFS += -DUART_TX_BUFFER_SIZE=128
+
+
+# Place -I options here
+CINCS =
+
+
+
+#---------------- Compiler Options ----------------
+# -g*: generate debugging information
+# -O*: optimization level
+# -f...: tuning, see GCC manual and avr-libc documentation
+# -Wall...: warning level
+# -Wa,...: tell GCC to pass this to the assembler.
+# -adhlns...: create assembler listing
+CFLAGS = -g$(DEBUG)
+CFLAGS += $(CDEFS) $(CINCS)
+CFLAGS += -O$(OPT)
+CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
+CFLAGS += -Wall -Wstrict-prototypes
+CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
+CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
+CFLAGS += $(CSTANDARD)
+
+
+#---------------- Assembler Options ----------------
+# -Wa,...: tell GCC to pass this to the assembler.
+# -ahlms: create listing
+# -gstabs: have the assembler create line number information; note that
+# for use in COFF files, additional information about filenames
+# and function names needs to be present in the assembler source
+# files -- see avr-libc docs [FIXME: not yet described there]
+ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
+
+
+#---------------- Library Options ----------------
+# Minimalistic printf version
+PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires MATH_LIB = -lm below)
+PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
+
+# If this is left blank, then it will use the Standard printf version.
+PRINTF_LIB =
+#PRINTF_LIB = $(PRINTF_LIB_MIN)
+#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
+
+
+# Minimalistic scanf version
+SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
+
+# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
+SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
+
+# If this is left blank, then it will use the Standard scanf version.
+SCANF_LIB =
+#SCANF_LIB = $(SCANF_LIB_MIN)
+#SCANF_LIB = $(SCANF_LIB_FLOAT)
+
+
+MATH_LIB = -lm
+
+
+
+#---------------- External Memory Options ----------------
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# used for variables (.data/.bss) and heap (malloc()).
+#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# only used for heap (malloc()).
+#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
+
+EXTMEMOPTS =
+
+
+
+#---------------- Linker Options ----------------
+# -Wl,...: tell GCC to pass this to linker.
+# -Map: create map file
+# --cref: add cross reference to map file
+LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
+LDFLAGS += $(EXTMEMOPTS)
+LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
+
+
+
+#---------------- Programming Options (avrdude) ----------------
+
+# Programming hardware: alf avr910 avrisp bascom bsd
+# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
+#
+# Type: avrdude -c ?
+# to get a full listing.
+#
+AVRDUDE_PROGRAMMER = stk500
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = com1 # programmer connected to serial device
+
+AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level. Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
+AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
+AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
+
+
+
+#---------------- Debugging Options ----------------
+
+# For simulavr only - target MCU frequency.
+DEBUG_MFREQ = $(F_CPU)
+
+# Set the DEBUG_UI to either gdb or insight.
+# DEBUG_UI = gdb
+DEBUG_UI = insight
+
+# Set the debugging back-end to either avarice, simulavr.
+DEBUG_BACKEND = avarice
+#DEBUG_BACKEND = simulavr
+
+# GDB Init Filename.
+GDBINIT_FILE = __avr_gdbinit
+
+# When using avarice settings for the JTAG
+JTAG_DEV = /dev/com1
+
+# Debugging port used to communicate between GDB / avarice / simulavr.
+DEBUG_PORT = 4242
+
+# Debugging host used to communicate between GDB / avarice / simulavr, normally
+# just set to localhost unless doing some sort of crazy debugging when
+# avarice is running on a different computer.
+DEBUG_HOST = localhost
+
+
+
+#============================================================================
+
+
+# Define programs and commands.
+SHELL = sh
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+NM = avr-nm
+AVRDUDE = avrdude
+REMOVE = rm -f
+COPY = cp
+WINSHELL = cmd
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = -------- end --------
+MSG_SIZE_BEFORE = Size before:
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
+
+# Define all listing files.
+LST = $(SRC:.c=.lst) $(ASRC:.S=.lst)
+
+
+# Compiler flags to generate dependency files.
+GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
+
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+
+
+# Default target.
+all: begin gccversion sizebefore build sizeafter end
+
+build: elf hex eep lss sym
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex
+eep: $(TARGET).eep
+lss: $(TARGET).lss
+sym: $(TARGET).sym
+
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+ @echo
+ @echo $(MSG_BEGIN)
+
+end:
+ @echo $(MSG_END)
+ @echo
+
+
+# Display size of file.
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) -A $(TARGET).elf
+AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)
+
+sizebefore:
+ @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
+ $(AVRMEM) 2>/dev/null; echo; fi
+
+sizeafter:
+ @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
+ $(AVRMEM) 2>/dev/null; echo; fi
+
+
+
+# Display compiler version information.
+gccversion :
+ @$(CC) --version
+
+
+
+# Program the device.
+program: $(TARGET).hex $(TARGET).eep
+ $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+
+# Generate avr-gdb config/init file which does the following:
+# define the reset signal, load the target file, connect to target, and set
+# a breakpoint at main().
+gdb-config:
+ @$(REMOVE) $(GDBINIT_FILE)
+ @echo define reset >> $(GDBINIT_FILE)
+ @echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
+ @echo end >> $(GDBINIT_FILE)
+ @echo file $(TARGET).elf >> $(GDBINIT_FILE)
+ @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE)
+ifeq ($(DEBUG_BACKEND),simulavr)
+ @echo load >> $(GDBINIT_FILE)
+endif
+ @echo break main >> $(GDBINIT_FILE)
+
+debug: gdb-config $(TARGET).elf
+ifeq ($(DEBUG_BACKEND), avarice)
+ @echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
+ @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
+ $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
+ @$(WINSHELL) /c pause
+
+else
+ @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
+ $(DEBUG_MFREQ) --port $(DEBUG_PORT)
+endif
+ @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
+COFFCONVERT=$(OBJCOPY) --debugging \
+--change-section-address .data-0x800000 \
+--change-section-address .bss-0x800000 \
+--change-section-address .noinit-0x800000 \
+--change-section-address .eeprom-0x810000
+
+
+coff: $(TARGET).elf
+ @echo
+ @echo $(MSG_COFF) $(TARGET).cof
+ $(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+ @echo
+ @echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+ $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+ @echo
+ @echo $(MSG_FLASH) $@
+ $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+
+%.eep: %.elf
+ @echo
+ @echo $(MSG_EEPROM) $@
+ -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+ --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+ @echo
+ @echo $(MSG_EXTENDED_LISTING) $@
+ $(OBJDUMP) -h -S $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+ @echo
+ @echo $(MSG_SYMBOL_TABLE) $@
+ $(NM) -n $< > $@
+
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+ @echo
+ @echo $(MSG_LINKING) $@
+ $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+%.o : %.c
+ @echo
+ @echo $(MSG_COMPILING) $<
+ $(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+ $(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+%.o : %.S
+ @echo
+ @echo $(MSG_ASSEMBLING) $<
+ $(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+# Create preprocessed source for use in sending a bug report.
+%.i : %.c
+ $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
+
+
+# Target: clean project.
+clean: begin clean_list end
+
+clean_list :
+ @echo
+ @echo $(MSG_CLEANING)
+ $(REMOVE) $(TARGET).hex
+ $(REMOVE) $(TARGET).eep
+ $(REMOVE) $(TARGET).cof
+ $(REMOVE) $(TARGET).elf
+ $(REMOVE) $(TARGET).map
+ $(REMOVE) $(TARGET).sym
+ $(REMOVE) $(TARGET).lss
+ $(REMOVE) $(OBJ)
+ $(REMOVE) $(LST)
+ $(REMOVE) $(SRC:.c=.s)
+ $(REMOVE) $(SRC:.c=.d)
+ $(REMOVE) .dep/*
+
+
+
+# Include the dependency files.
+-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion \
+build elf hex eep lss sym coff extcoff \
+clean clean_list program debug gdb-config
+
diff --git a/avr_libs/uartlib/test_uart.c b/avr_libs/uartlib/test_uart.c
new file mode 100644
index 0000000..44346b0
--- /dev/null
+++ b/avr_libs/uartlib/test_uart.c
@@ -0,0 +1,130 @@
+/*************************************************************************
+Title: example program for the Interrupt controlled UART library
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: test_uart.c,v 1.4 2005/07/10 11:46:30 Peter Exp $
+Software: AVR-GCC 3.3
+Hardware: any AVR with built-in UART, tested on AT90S8515 at 4 Mhz
+
+DESCRIPTION:
+ This example shows how to use the UART library uart.c
+
+*************************************************************************/
+#include <stdlib.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/signal.h>
+#include <avr/pgmspace.h>
+
+#include "uart.h"
+
+
+/* define CPU frequency in Mhz here if not defined in Makefile */
+#ifndef F_CPU
+#define F_CPU 4000000UL
+#endif
+
+/* 9600 baud */
+#define UART_BAUD_RATE 9600
+
+
+int main(void)
+{
+ unsigned int c;
+ char buffer[7];
+ int num=134;
+
+
+ /*
+ * Initialize UART library, pass baudrate and AVR cpu clock
+ * with the macro
+ * UART_BAUD_SELECT() (normal speed mode )
+ * or
+ * UART_BAUD_SELECT_DOUBLE_SPEED() ( double speed mode)
+ */
+ uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
+
+ /*
+ * now enable interrupt, since UART library is interrupt controlled
+ */
+ sei();
+
+ /*
+ * Transmit string to UART
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * uart_puts() blocks if it can not write the whole string to the circular
+ * buffer
+ */
+ uart_puts("String stored in SRAM\n");
+
+ /*
+ * Transmit string from program memory to UART
+ */
+ uart_puts_P("String stored in FLASH\n");
+
+
+ /*
+ * Use standard avr-libc functions to convert numbers into string
+ * before transmitting via UART
+ */
+ itoa( num, buffer, 10); // convert interger into string (decimal format)
+ uart_puts(buffer); // and transmit string to UART
+
+
+ /*
+ * Transmit single character to UART
+ */
+ uart_putc('\r');
+
+ for(;;)
+ {
+ /*
+ * Get received character from ringbuffer
+ * uart_getc() returns in the lower byte the received character and
+ * in the higher byte (bitmask) the last receive error
+ * UART_NO_DATA is returned when no data is available.
+ *
+ */
+ c = uart_getc();
+ if ( c & UART_NO_DATA )
+ {
+ /*
+ * no data available from UART
+ */
+ }
+ else
+ {
+ /*
+ * new data available from UART
+ * check for Frame or Overrun error
+ */
+ if ( c & UART_FRAME_ERROR )
+ {
+ /* Framing Error detected, i.e no stop bit detected */
+ uart_puts_P("UART Frame Error: ");
+ }
+ if ( c & UART_OVERRUN_ERROR )
+ {
+ /*
+ * Overrun, a character already present in the UART UDR register was
+ * not read by the interrupt handler before the next character arrived,
+ * one or more received characters have been dropped
+ */
+ uart_puts_P("UART Overrun Error: ");
+ }
+ if ( c & UART_BUFFER_OVERFLOW )
+ {
+ /*
+ * We are not reading the receive buffer fast enough,
+ * one or more received character have been dropped
+ */
+ uart_puts_P("Buffer overflow error: ");
+ }
+ /*
+ * send received character back
+ */
+ uart_putc( (unsigned char)c );
+ }
+ }
+
+}
diff --git a/avr_libs/uartlib/uart.c b/avr_libs/uartlib/uart.c
new file mode 100644
index 0000000..6034070
--- /dev/null
+++ b/avr_libs/uartlib/uart.c
@@ -0,0 +1,651 @@
+/*************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.c,v 1.6.2.2 2009/11/29 08:56:12 Peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4.6 or higher
+Hardware: any AVR with built-in UART,
+License: GNU General Public License
+
+DESCRIPTION:
+ An interrupt is generated when the UART has finished transmitting or
+ receiving a byte. The interrupt handling routines use circular buffers
+ for buffering received and transmitted data.
+
+ The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE variables define
+ the buffer size in bytes. Note that these variables must be a
+ power of 2.
+
+USAGE:
+ Refere to the header file uart.h for a description of the routines.
+ See also example test_uart.c.
+
+NOTES:
+ Based on Atmel Application Note AVR306
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+*************************************************************************/
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "uart.h"
+
+
+/*
+ * constants and macros
+ */
+
+/* size of RX/TX buffers */
+#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1)
+#define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1)
+
+#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
+#error RX buffer size is not a power of 2
+#endif
+#if ( UART_TX_BUFFER_SIZE & UART_TX_BUFFER_MASK )
+#error TX buffer size is not a power of 2
+#endif
+
+#if defined(__AVR_AT90S2313__) \
+ || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
+ || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
+ || defined(__AVR_ATmega103__)
+ /* old AVR classic or ATmega103 with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS USR
+ #define UART0_CONTROL UCR
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
+ /* old AVR classic with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
+ || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) \
+ || defined(__AVR_ATmega323__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega163__)
+ /* ATmega163 with one UART */
+ #define ATMEGA_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega162__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_UART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_UART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_UART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega161__)
+ /* ATmega with UART */
+ #error "AVR ATmega161 currently not supported by this libaray !"
+#elif defined(__AVR_ATmega169__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATtiny2313__)
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RX
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_UDRE
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega329__) ||defined(__AVR_ATmega3290__) ||\
+ defined(__AVR_ATmega649__) ||defined(__AVR_ATmega6490__) ||\
+ defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
+ defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega640__)
+/* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega644__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#else
+ #error "no UART definition for MCU available"
+#endif
+
+
+/*
+ * module global variables
+ */
+static volatile unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART_TxHead;
+static volatile unsigned char UART_TxTail;
+static volatile unsigned char UART_RxHead;
+static volatile unsigned char UART_RxTail;
+static volatile unsigned char UART_LastRxError;
+
+#if defined( ATMEGA_USART1 )
+static volatile unsigned char UART1_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART1_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART1_TxHead;
+static volatile unsigned char UART1_TxTail;
+static volatile unsigned char UART1_RxHead;
+static volatile unsigned char UART1_RxTail;
+static volatile unsigned char UART1_LastRxError;
+#endif
+
+
+
+SIGNAL(UART0_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART Receive Complete interrupt
+Purpose: called when the UART has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART0_STATUS;
+ data = UART0_DATA;
+
+ /* */
+#if defined( AT90_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART0 )
+ lastRxError = (usr & (_BV(FE0)|_BV(DOR0)) );
+#elif defined ( ATMEGA_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#endif
+
+ /* calculate buffer index */
+ tmphead = ( UART_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART_RxHead = tmphead;
+ /* store received data in buffer */
+ UART_RxBuf[tmphead] = data;
+ }
+ UART_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART0_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART Data Register Empty interrupt
+Purpose: called when the UART is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART_TxHead != UART_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART0_CONTROL &= ~_BV(UART0_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart_init()
+Purpose: initialize UART and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart_init(unsigned int baudrate)
+{
+ UART_TxHead = 0;
+ UART_TxTail = 0;
+ UART_RxHead = 0;
+ UART_RxTail = 0;
+
+#if defined( AT90_UART )
+ /* set baud rate */
+ UBRR = (unsigned char)baudrate;
+
+ /* enable UART receiver and transmmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
+
+#elif defined (ATMEGA_USART)
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRH = (unsigned char)(baudrate>>8);
+ UBRRL = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL
+ UCSRC = (1<<URSEL)|(3<<UCSZ0);
+ #else
+ UCSRC = (3<<UCSZ0);
+ #endif
+
+#elif defined (ATMEGA_USART0 )
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X0); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR0H = (unsigned char)(baudrate>>8);
+ UBRR0L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL0
+ UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
+ #else
+ UCSR0C = (3<<UCSZ00);
+ #endif
+
+#elif defined ( ATMEGA_UART )
+ /* set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRHI = (unsigned char)(baudrate>>8);
+ UBRR = (unsigned char) baudrate;
+
+ /* Enable UART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+#endif
+
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART_RxHead == UART_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART_RxBuf[tmptail];
+
+ return (UART_LastRxError << 8) + data;
+
+}/* uart_getc */
+
+
+/*************************************************************************
+Function: uart_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART_TxBuf[tmphead] = data;
+ UART_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART0_CONTROL |= _BV(UART0_UDRIE);
+
+}/* uart_putc */
+
+
+/*************************************************************************
+Function: uart_puts()
+Purpose: transmit string to UART
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts(const char *s )
+{
+ while (*s)
+ uart_putc(*s++);
+
+}/* uart_puts */
+
+
+/*************************************************************************
+Function: uart_puts_p()
+Purpose: transmit string from program memory to UART
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart_putc(c);
+
+}/* uart_puts_p */
+
+
+/*
+ * these functions are only for ATmegas with two USART
+ */
+#if defined( ATMEGA_USART1 )
+
+SIGNAL(UART1_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART1 Receive Complete interrupt
+Purpose: called when the UART1 has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART1_STATUS;
+ data = UART1_DATA;
+
+ /* */
+ lastRxError = (usr & (_BV(FE1)|_BV(DOR1)) );
+
+ /* calculate buffer index */
+ tmphead = ( UART1_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART1_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART1_RxHead = tmphead;
+ /* store received data in buffer */
+ UART1_RxBuf[tmphead] = data;
+ }
+ UART1_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART1_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART1 Data Register Empty interrupt
+Purpose: called when the UART1 is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART1_TxHead != UART1_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART1_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART1_CONTROL &= ~_BV(UART1_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart1_init()
+Purpose: initialize UART1 and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart1_init(unsigned int baudrate)
+{
+ UART1_TxHead = 0;
+ UART1_TxTail = 0;
+ UART1_RxHead = 0;
+ UART1_RxTail = 0;
+
+
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART1_STATUS = (1<<U2X1); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR1H = (unsigned char)(baudrate>>8);
+ UBRR1L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL1
+ UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
+ #else
+ UCSR1C = (3<<UCSZ10);
+ #endif
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart1_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart1_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART1_RxHead == UART1_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART1_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART1_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART1_RxBuf[tmptail];
+
+ return (UART1_LastRxError << 8) + data;
+
+}/* uart1_getc */
+
+
+/*************************************************************************
+Function: uart1_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART1_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART1_TxBuf[tmphead] = data;
+ UART1_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART1_CONTROL |= _BV(UART1_UDRIE);
+
+}/* uart1_putc */
+
+
+/*************************************************************************
+Function: uart1_puts()
+Purpose: transmit string to UART1
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts(const char *s )
+{
+ while (*s)
+ uart1_putc(*s++);
+
+}/* uart1_puts */
+
+
+/*************************************************************************
+Function: uart1_puts_p()
+Purpose: transmit string from program memory to UART1
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart1_putc(c);
+
+}/* uart1_puts_p */
+
+
+#endif
diff --git a/avr_libs/uartlib/uart.h b/avr_libs/uartlib/uart.h
new file mode 100644
index 0000000..7f4f0be
--- /dev/null
+++ b/avr_libs/uartlib/uart.h
@@ -0,0 +1,194 @@
+#ifndef UART_H
+#define UART_H
+/************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.h,v 1.8.2.1 2007/07/01 11:14:38 peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4
+Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
+License: GNU General Public License
+Usage: see Doxygen manual
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+************************************************************************/
+
+/**
+ * @defgroup pfleury_uart UART Library
+ * @code #include <uart.h> @endcode
+ *
+ * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
+ *
+ * This library can be used to transmit and receive data through the built in UART.
+ *
+ * An interrupt is generated when the UART has finished transmitting or
+ * receiving a byte. The interrupt handling routines use circular buffers
+ * for buffering received and transmitted data.
+ *
+ * The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
+ * the size of the circular buffers in bytes. Note that these constants must be a power of 2.
+ * You may need to adapt this constants to your target and your application by adding
+ * CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
+ *
+ * @note Based on Atmel Application Note AVR306
+ * @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
+ */
+
+/**@{*/
+
+
+#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
+#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
+#endif
+
+
+/*
+** constants and macros
+*/
+
+/** @brief UART Baudrate Expression
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
+
+/** @brief UART Baudrate Expression for ATmega double speed mode
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
+
+
+/** Size of the circular receive buffer, must be power of 2 */
+#ifndef UART_RX_BUFFER_SIZE
+#define UART_RX_BUFFER_SIZE 32
+#endif
+/** Size of the circular transmit buffer, must be power of 2 */
+#ifndef UART_TX_BUFFER_SIZE
+#define UART_TX_BUFFER_SIZE 32
+#endif
+
+/* test if the size of the circular buffers fits into SRAM */
+#if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
+#error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
+#endif
+
+/*
+** high byte error return code of uart_getc()
+*/
+#define UART_FRAME_ERROR 0x0800 /* Framing Error by UART */
+#define UART_OVERRUN_ERROR 0x0400 /* Overrun condition by UART */
+#define UART_BUFFER_OVERFLOW 0x0200 /* receive ringbuffer overflow */
+#define UART_NO_DATA 0x0100 /* no receive data available */
+
+
+/*
+** function prototypes
+*/
+
+/**
+ @brief Initialize UART and set baudrate
+ @param baudrate Specify baudrate using macro UART_BAUD_SELECT()
+ @return none
+*/
+extern void uart_init(unsigned int baudrate);
+
+
+/**
+ * @brief Get received byte from ringbuffer
+ *
+ * Returns in the lower byte the received character and in the
+ * higher byte the last receive error.
+ * UART_NO_DATA is returned when no data is available.
+ *
+ * @param void
+ * @return lower byte: received byte from ringbuffer
+ * @return higher byte: last receive status
+ * - \b 0 successfully received data from UART
+ * - \b UART_NO_DATA
+ * <br>no receive data available
+ * - \b UART_BUFFER_OVERFLOW
+ * <br>Receive ringbuffer overflow.
+ * We are not reading the receive buffer fast enough,
+ * one or more received character have been dropped
+ * - \b UART_OVERRUN_ERROR
+ * <br>Overrun condition by UART.
+ * A character already present in the UART UDR register was
+ * not read by the interrupt handler before the next character arrived,
+ * one or more received characters have been dropped.
+ * - \b UART_FRAME_ERROR
+ * <br>Framing Error by UART
+ */
+extern unsigned int uart_getc(void);
+
+
+/**
+ * @brief Put byte to ringbuffer for transmitting via UART
+ * @param data byte to be transmitted
+ * @return none
+ */
+extern void uart_putc(unsigned char data);
+
+
+/**
+ * @brief Put string to ringbuffer for transmitting via UART
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s string to be transmitted
+ * @return none
+ */
+extern void uart_puts(const char *s );
+
+
+/**
+ * @brief Put string from program memory to ringbuffer for transmitting via UART.
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s program memory string to be transmitted
+ * @return none
+ * @see uart_puts_P
+ */
+extern void uart_puts_p(const char *s );
+
+/**
+ * @brief Macro to automatically put a string constant into program memory
+ */
+#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
+
+
+
+/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
+extern void uart1_init(unsigned int baudrate);
+/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
+extern unsigned int uart1_getc(void);
+/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
+extern void uart1_putc(unsigned char data);
+/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
+extern void uart1_puts(const char *s );
+/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
+extern void uart1_puts_p(const char *s );
+/** @brief Macro to automatically put a string constant into program memory */
+#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
+
+/**@}*/
+
+
+#endif // UART_H
+
diff --git a/blinktest_328p/bin/Debug/blinktest_328p.elf.eep.hex b/blinktest_328p/bin/Debug/blinktest_328p.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/blinktest_328p/bin/Debug/blinktest_328p.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/blinktest_328p/bin/Debug/blinktest_328p.elf.hex b/blinktest_328p/bin/Debug/blinktest_328p.elf.hex
new file mode 100644
index 0000000..562b5d7
--- /dev/null
+++ b/blinktest_328p/bin/Debug/blinktest_328p.elf.hex
@@ -0,0 +1,71 @@
+:100000000C945A000C9477000C9477000C947700B1
+:100010000C9477000C9477000C9477000C94770084
+:100020000C9477000C9477000C9477000C94770074
+:100030000C9477000C9477000C9477000C94770064
+:100040000C9498000C9477000C9477000C94770033
+:100050000C9477000C9477000C9477000C94770044
+:100060000C9477000C947700000024272A000025C8
+:10007000282B000023262904040404040404040299
+:100080000202020202030303030303010204081035
+:100090002040800102040810200102040810200002
+:1000A0000000070002010000030406000000000039
+:1000B0000000000011241FBECFEFD8E0DEBFCDBF8F
+:1000C00011E0A0E0B1E0E8E5F4E002C005900D9297
+:1000D000A030B107D9F711E0A0E0B1E001C01D9256
+:1000E000A830B107E1F70E9479000C942A020C9421
+:1000F0000000DF93CF93CDB7DEB70E943B018DE0C8
+:1001000061E00E9475018DE061E00E94930168EE5C
+:1001100073E080E090E00E9403018DE060E00E94C7
+:10012000930168EE73E080E090E00E940301EBCF62
+:100130001F920F920FB60F9211242F938F939F93BC
+:10014000AF93BF938091000190910101A0910201B2
+:10015000B09103018050904CAF4FBF4F809300018E
+:1001600090930101A0930201B093030127C08091F5
+:10017000000190910101A0910201B091030180580A
+:100180009E43A040B0408093000190930101A09352
+:100190000201B09303018091040190910501A091A7
+:1001A0000601B09107010196A11DB11D80930401C4
+:1001B00090930501A0930601B0930701809100017F
+:1001C00090910101A0910201B091030181589E43D9
+:1001D000A040B04060F6BF91AF919F918F912F9159
+:1001E0000F900FBE0F901F9018958FB7F894209125
+:1001F00004013091050140910601509107018FBF24
+:10020000B901CA010895EF92FF920F931F937B01EA
+:100210008C018FB7F89440910401509105016091D1
+:100220000601709107018FBF2FB7F89480910401E8
+:1002300090910501A0910601B09107012FBF841B89
+:10024000950BA60BB70B8E159F05A007B10760F3A2
+:100250001F910F91FF90EF900895019759F0FC01C5
+:10026000EE0FFF1FEE0FFF1F32978FB7F8943197F5
+:10027000F1F78FBF0895789484B5826084BD84B50A
+:10028000816084BD85B5826085BD85B5816085BD91
+:10029000EEE6F0E0808181608083E1E8F0E080813B
+:1002A00082608083808181608083E0E8F0E08081EB
+:1002B00081608083E1EBF0E0808184608083E0EB0B
+:1002C000F0E0808181608083EAE7F0E080818460F3
+:1002D000808380818260808380818160808380814F
+:1002E000806880831092C1000895282F30E0C901F2
+:1002F00085579F4FFC01949129583F4FF9018491F4
+:10030000882381F0E82FF0E0E859FF4FE491F0E016
+:10031000662329F4808190958923808308958081C4
+:10032000892B80830895482F50E0CA0181569F4F42
+:10033000FC012491CA0185579F4FFC0194914958B3
+:100340005F4FFA0134913323C1F1222331F123307D
+:1003500021F4809180008F7705C0243031F48091A2
+:1003600080008F7D8093800018C0213019F484B5FF
+:100370008F7704C0223021F484B58F7D84BD0DC0F9
+:10038000263021F48091B0008F7705C0273029F402
+:100390008091B0008F7D8093B000E32FF0E0E359AF
+:1003A000FF4FE491F0E0662329F480819095892342
+:1003B000808308958081892B80830895482F50E0A1
+:1003C000CA0181569F4FFC012491CA0185579F4F56
+:1003D000FC01949149585F4FFA013491332319F489
+:1003E00020E030E035C0222331F1233021F4809128
+:1003F00080008F7705C0243031F4809180008F7D9C
+:100400008093800018C0213019F484B58F7704C020
+:10041000223021F484B58F7D84BD0DC0263021F4B7
+:100420008091B0008F7705C0273029F48091B0000B
+:100430008F7D8093B000E32FF0E0EE58FF4FE49102
+:10044000F0E0808120E030E0892311F021E030E00D
+:08045000C9010895F894FFCFE3
+:00000001FF
diff --git a/blinktest_328p/bin/Debug/blinktest_328p.elf.lss b/blinktest_328p/bin/Debug/blinktest_328p.elf.lss
new file mode 100644
index 0000000..bee8588
--- /dev/null
+++ b/blinktest_328p/bin/Debug/blinktest_328p.elf.lss
@@ -0,0 +1,539 @@
+
+bin/Debug/blinktest_328p.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .text 00000458 00000000 00000000 00000074 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 1 .bss 00000008 00800100 00800100 000004cc 2**0
+ ALLOC
+ 2 .stab 00000b28 00000000 00000000 000004cc 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 3 .stabstr 0000188e 00000000 00000000 00000ff4 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 4 .debug_aranges 00000040 00000000 00000000 00002882 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_pubnames 0000016c 00000000 00000000 000028c2 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_info 000006f2 00000000 00000000 00002a2e 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_abbrev 000002e1 00000000 00000000 00003120 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_line 00000551 00000000 00000000 00003401 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_frame 000000a0 00000000 00000000 00003954 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_str 00000227 00000000 00000000 000039f4 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_loc 000001fa 00000000 00000000 00003c1b 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__ctors_end>
+ 4: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 8: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 10: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 14: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 18: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 1c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 20: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 24: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 28: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 2c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 30: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 34: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 38: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 3c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 40: 0c 94 98 00 jmp 0x130 ; 0x130 <__vector_16>
+ 44: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 48: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 4c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 50: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 54: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 58: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 5c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 60: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 64: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+
+00000068 <port_to_mode_PGM>:
+ 68: 00 00 24 27 2a ..$'*
+
+0000006d <port_to_output_PGM>:
+ 6d: 00 00 25 28 2b ..%(+
+
+00000072 <port_to_input_PGM>:
+ 72: 00 00 23 26 29 ..#&)
+
+00000077 <digital_pin_to_port_PGM>:
+ 77: 04 04 04 04 04 04 04 04 02 02 02 02 02 02 03 03 ................
+ 87: 03 03 03 03 ....
+
+0000008b <digital_pin_to_bit_mask_PGM>:
+ 8b: 01 02 04 08 10 20 40 80 01 02 04 08 10 20 01 02 ..... @...... ..
+ 9b: 04 08 10 20 ...
+
+0000009f <digital_pin_to_timer_PGM>:
+ 9f: 00 00 00 07 00 02 01 00 00 03 04 06 00 00 00 00 ................
+ af: 00 00 00 00 00 .....
+
+000000b4 <__ctors_end>:
+ b4: 11 24 eor r1, r1
+ b6: 1f be out 0x3f, r1 ; 63
+ b8: cf ef ldi r28, 0xFF ; 255
+ ba: d8 e0 ldi r29, 0x08 ; 8
+ bc: de bf out 0x3e, r29 ; 62
+ be: cd bf out 0x3d, r28 ; 61
+
+000000c0 <__do_copy_data>:
+ c0: 11 e0 ldi r17, 0x01 ; 1
+ c2: a0 e0 ldi r26, 0x00 ; 0
+ c4: b1 e0 ldi r27, 0x01 ; 1
+ c6: e8 e5 ldi r30, 0x58 ; 88
+ c8: f4 e0 ldi r31, 0x04 ; 4
+ ca: 02 c0 rjmp .+4 ; 0xd0 <.do_copy_data_start>
+
+000000cc <.do_copy_data_loop>:
+ cc: 05 90 lpm r0, Z+
+ ce: 0d 92 st X+, r0
+
+000000d0 <.do_copy_data_start>:
+ d0: a0 30 cpi r26, 0x00 ; 0
+ d2: b1 07 cpc r27, r17
+ d4: d9 f7 brne .-10 ; 0xcc <.do_copy_data_loop>
+
+000000d6 <__do_clear_bss>:
+ d6: 11 e0 ldi r17, 0x01 ; 1
+ d8: a0 e0 ldi r26, 0x00 ; 0
+ da: b1 e0 ldi r27, 0x01 ; 1
+ dc: 01 c0 rjmp .+2 ; 0xe0 <.do_clear_bss_start>
+
+000000de <.do_clear_bss_loop>:
+ de: 1d 92 st X+, r1
+
+000000e0 <.do_clear_bss_start>:
+ e0: a8 30 cpi r26, 0x08 ; 8
+ e2: b1 07 cpc r27, r17
+ e4: e1 f7 brne .-8 ; 0xde <.do_clear_bss_loop>
+ e6: 0e 94 79 00 call 0xf2 ; 0xf2 <main>
+ ea: 0c 94 2a 02 jmp 0x454 ; 0x454 <_exit>
+
+000000ee <__bad_interrupt>:
+ ee: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000f2 <main>:
+
+
+#include <WProgram.h> //import main Arduino header file
+
+
+int main(){
+ f2: df 93 push r29
+ f4: cf 93 push r28
+ f6: cd b7 in r28, 0x3d ; 61
+ f8: de b7 in r29, 0x3e ; 62
+
+ init(); //-- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ fa: 0e 94 3b 01 call 0x276 ; 0x276 <init>
+ pinMode(13, OUTPUT);
+ fe: 8d e0 ldi r24, 0x0D ; 13
+ 100: 61 e0 ldi r22, 0x01 ; 1
+ 102: 0e 94 75 01 call 0x2ea ; 0x2ea <pinMode>
+
+
+
+ while(1) {
+ digitalWrite(13, HIGH); // set the LED on
+ 106: 8d e0 ldi r24, 0x0D ; 13
+ 108: 61 e0 ldi r22, 0x01 ; 1
+ 10a: 0e 94 93 01 call 0x326 ; 0x326 <digitalWrite>
+ delay(1000); // wait for a second
+ 10e: 68 ee ldi r22, 0xE8 ; 232
+ 110: 73 e0 ldi r23, 0x03 ; 3
+ 112: 80 e0 ldi r24, 0x00 ; 0
+ 114: 90 e0 ldi r25, 0x00 ; 0
+ 116: 0e 94 03 01 call 0x206 ; 0x206 <delay>
+ digitalWrite(13, LOW); // set the LED off
+ 11a: 8d e0 ldi r24, 0x0D ; 13
+ 11c: 60 e0 ldi r22, 0x00 ; 0
+ 11e: 0e 94 93 01 call 0x326 ; 0x326 <digitalWrite>
+ delay(1000); // wait for a second
+ 122: 68 ee ldi r22, 0xE8 ; 232
+ 124: 73 e0 ldi r23, 0x03 ; 3
+ 126: 80 e0 ldi r24, 0x00 ; 0
+ 128: 90 e0 ldi r25, 0x00 ; 0
+ 12a: 0e 94 03 01 call 0x206 ; 0x206 <delay>
+ 12e: eb cf rjmp .-42 ; 0x106 <main+0x14>
+
+00000130 <__vector_16>:
+ 130: 1f 92 push r1
+ 132: 0f 92 push r0
+ 134: 0f b6 in r0, 0x3f ; 63
+ 136: 0f 92 push r0
+ 138: 11 24 eor r1, r1
+ 13a: 2f 93 push r18
+ 13c: 8f 93 push r24
+ 13e: 9f 93 push r25
+ 140: af 93 push r26
+ 142: bf 93 push r27
+ 144: 80 91 00 01 lds r24, 0x0100
+ 148: 90 91 01 01 lds r25, 0x0101
+ 14c: a0 91 02 01 lds r26, 0x0102
+ 150: b0 91 03 01 lds r27, 0x0103
+ 154: 80 50 subi r24, 0x00 ; 0
+ 156: 90 4c sbci r25, 0xC0 ; 192
+ 158: af 4f sbci r26, 0xFF ; 255
+ 15a: bf 4f sbci r27, 0xFF ; 255
+ 15c: 80 93 00 01 sts 0x0100, r24
+ 160: 90 93 01 01 sts 0x0101, r25
+ 164: a0 93 02 01 sts 0x0102, r26
+ 168: b0 93 03 01 sts 0x0103, r27
+ 16c: 27 c0 rjmp .+78 ; 0x1bc <__vector_16+0x8c>
+ 16e: 80 91 00 01 lds r24, 0x0100
+ 172: 90 91 01 01 lds r25, 0x0101
+ 176: a0 91 02 01 lds r26, 0x0102
+ 17a: b0 91 03 01 lds r27, 0x0103
+ 17e: 80 58 subi r24, 0x80 ; 128
+ 180: 9e 43 sbci r25, 0x3E ; 62
+ 182: a0 40 sbci r26, 0x00 ; 0
+ 184: b0 40 sbci r27, 0x00 ; 0
+ 186: 80 93 00 01 sts 0x0100, r24
+ 18a: 90 93 01 01 sts 0x0101, r25
+ 18e: a0 93 02 01 sts 0x0102, r26
+ 192: b0 93 03 01 sts 0x0103, r27
+ 196: 80 91 04 01 lds r24, 0x0104
+ 19a: 90 91 05 01 lds r25, 0x0105
+ 19e: a0 91 06 01 lds r26, 0x0106
+ 1a2: b0 91 07 01 lds r27, 0x0107
+ 1a6: 01 96 adiw r24, 0x01 ; 1
+ 1a8: a1 1d adc r26, r1
+ 1aa: b1 1d adc r27, r1
+ 1ac: 80 93 04 01 sts 0x0104, r24
+ 1b0: 90 93 05 01 sts 0x0105, r25
+ 1b4: a0 93 06 01 sts 0x0106, r26
+ 1b8: b0 93 07 01 sts 0x0107, r27
+ 1bc: 80 91 00 01 lds r24, 0x0100
+ 1c0: 90 91 01 01 lds r25, 0x0101
+ 1c4: a0 91 02 01 lds r26, 0x0102
+ 1c8: b0 91 03 01 lds r27, 0x0103
+ 1cc: 81 58 subi r24, 0x81 ; 129
+ 1ce: 9e 43 sbci r25, 0x3E ; 62
+ 1d0: a0 40 sbci r26, 0x00 ; 0
+ 1d2: b0 40 sbci r27, 0x00 ; 0
+ 1d4: 60 f6 brcc .-104 ; 0x16e <__vector_16+0x3e>
+ 1d6: bf 91 pop r27
+ 1d8: af 91 pop r26
+ 1da: 9f 91 pop r25
+ 1dc: 8f 91 pop r24
+ 1de: 2f 91 pop r18
+ 1e0: 0f 90 pop r0
+ 1e2: 0f be out 0x3f, r0 ; 63
+ 1e4: 0f 90 pop r0
+ 1e6: 1f 90 pop r1
+ 1e8: 18 95 reti
+
+000001ea <millis>:
+ 1ea: 8f b7 in r24, 0x3f ; 63
+ 1ec: f8 94 cli
+ 1ee: 20 91 04 01 lds r18, 0x0104
+ 1f2: 30 91 05 01 lds r19, 0x0105
+ 1f6: 40 91 06 01 lds r20, 0x0106
+ 1fa: 50 91 07 01 lds r21, 0x0107
+ 1fe: 8f bf out 0x3f, r24 ; 63
+ 200: b9 01 movw r22, r18
+ 202: ca 01 movw r24, r20
+ 204: 08 95 ret
+
+00000206 <delay>:
+ 206: ef 92 push r14
+ 208: ff 92 push r15
+ 20a: 0f 93 push r16
+ 20c: 1f 93 push r17
+ 20e: 7b 01 movw r14, r22
+ 210: 8c 01 movw r16, r24
+ 212: 8f b7 in r24, 0x3f ; 63
+ 214: f8 94 cli
+ 216: 40 91 04 01 lds r20, 0x0104
+ 21a: 50 91 05 01 lds r21, 0x0105
+ 21e: 60 91 06 01 lds r22, 0x0106
+ 222: 70 91 07 01 lds r23, 0x0107
+ 226: 8f bf out 0x3f, r24 ; 63
+ 228: 2f b7 in r18, 0x3f ; 63
+ 22a: f8 94 cli
+ 22c: 80 91 04 01 lds r24, 0x0104
+ 230: 90 91 05 01 lds r25, 0x0105
+ 234: a0 91 06 01 lds r26, 0x0106
+ 238: b0 91 07 01 lds r27, 0x0107
+ 23c: 2f bf out 0x3f, r18 ; 63
+ 23e: 84 1b sub r24, r20
+ 240: 95 0b sbc r25, r21
+ 242: a6 0b sbc r26, r22
+ 244: b7 0b sbc r27, r23
+ 246: 8e 15 cp r24, r14
+ 248: 9f 05 cpc r25, r15
+ 24a: a0 07 cpc r26, r16
+ 24c: b1 07 cpc r27, r17
+ 24e: 60 f3 brcs .-40 ; 0x228 <delay+0x22>
+ 250: 1f 91 pop r17
+ 252: 0f 91 pop r16
+ 254: ff 90 pop r15
+ 256: ef 90 pop r14
+ 258: 08 95 ret
+
+0000025a <delayMicroseconds>:
+ 25a: 01 97 sbiw r24, 0x01 ; 1
+ 25c: 59 f0 breq .+22 ; 0x274 <delayMicroseconds+0x1a>
+ 25e: fc 01 movw r30, r24
+ 260: ee 0f add r30, r30
+ 262: ff 1f adc r31, r31
+ 264: ee 0f add r30, r30
+ 266: ff 1f adc r31, r31
+ 268: 32 97 sbiw r30, 0x02 ; 2
+ 26a: 8f b7 in r24, 0x3f ; 63
+ 26c: f8 94 cli
+ 26e: 31 97 sbiw r30, 0x01 ; 1
+ 270: f1 f7 brne .-4 ; 0x26e <delayMicroseconds+0x14>
+ 272: 8f bf out 0x3f, r24 ; 63
+ 274: 08 95 ret
+
+00000276 <init>:
+ 276: 78 94 sei
+ 278: 84 b5 in r24, 0x24 ; 36
+ 27a: 82 60 ori r24, 0x02 ; 2
+ 27c: 84 bd out 0x24, r24 ; 36
+ 27e: 84 b5 in r24, 0x24 ; 36
+ 280: 81 60 ori r24, 0x01 ; 1
+ 282: 84 bd out 0x24, r24 ; 36
+ 284: 85 b5 in r24, 0x25 ; 37
+ 286: 82 60 ori r24, 0x02 ; 2
+ 288: 85 bd out 0x25, r24 ; 37
+ 28a: 85 b5 in r24, 0x25 ; 37
+ 28c: 81 60 ori r24, 0x01 ; 1
+ 28e: 85 bd out 0x25, r24 ; 37
+ 290: ee e6 ldi r30, 0x6E ; 110
+ 292: f0 e0 ldi r31, 0x00 ; 0
+ 294: 80 81 ld r24, Z
+ 296: 81 60 ori r24, 0x01 ; 1
+ 298: 80 83 st Z, r24
+ 29a: e1 e8 ldi r30, 0x81 ; 129
+ 29c: f0 e0 ldi r31, 0x00 ; 0
+ 29e: 80 81 ld r24, Z
+ 2a0: 82 60 ori r24, 0x02 ; 2
+ 2a2: 80 83 st Z, r24
+ 2a4: 80 81 ld r24, Z
+ 2a6: 81 60 ori r24, 0x01 ; 1
+ 2a8: 80 83 st Z, r24
+ 2aa: e0 e8 ldi r30, 0x80 ; 128
+ 2ac: f0 e0 ldi r31, 0x00 ; 0
+ 2ae: 80 81 ld r24, Z
+ 2b0: 81 60 ori r24, 0x01 ; 1
+ 2b2: 80 83 st Z, r24
+ 2b4: e1 eb ldi r30, 0xB1 ; 177
+ 2b6: f0 e0 ldi r31, 0x00 ; 0
+ 2b8: 80 81 ld r24, Z
+ 2ba: 84 60 ori r24, 0x04 ; 4
+ 2bc: 80 83 st Z, r24
+ 2be: e0 eb ldi r30, 0xB0 ; 176
+ 2c0: f0 e0 ldi r31, 0x00 ; 0
+ 2c2: 80 81 ld r24, Z
+ 2c4: 81 60 ori r24, 0x01 ; 1
+ 2c6: 80 83 st Z, r24
+ 2c8: ea e7 ldi r30, 0x7A ; 122
+ 2ca: f0 e0 ldi r31, 0x00 ; 0
+ 2cc: 80 81 ld r24, Z
+ 2ce: 84 60 ori r24, 0x04 ; 4
+ 2d0: 80 83 st Z, r24
+ 2d2: 80 81 ld r24, Z
+ 2d4: 82 60 ori r24, 0x02 ; 2
+ 2d6: 80 83 st Z, r24
+ 2d8: 80 81 ld r24, Z
+ 2da: 81 60 ori r24, 0x01 ; 1
+ 2dc: 80 83 st Z, r24
+ 2de: 80 81 ld r24, Z
+ 2e0: 80 68 ori r24, 0x80 ; 128
+ 2e2: 80 83 st Z, r24
+ 2e4: 10 92 c1 00 sts 0x00C1, r1
+ 2e8: 08 95 ret
+
+000002ea <pinMode>:
+ 2ea: 28 2f mov r18, r24
+ 2ec: 30 e0 ldi r19, 0x00 ; 0
+ 2ee: c9 01 movw r24, r18
+ 2f0: 85 57 subi r24, 0x75 ; 117
+ 2f2: 9f 4f sbci r25, 0xFF ; 255
+ 2f4: fc 01 movw r30, r24
+ 2f6: 94 91 lpm r25, Z+
+ 2f8: 29 58 subi r18, 0x89 ; 137
+ 2fa: 3f 4f sbci r19, 0xFF ; 255
+ 2fc: f9 01 movw r30, r18
+ 2fe: 84 91 lpm r24, Z+
+ 300: 88 23 and r24, r24
+ 302: 81 f0 breq .+32 ; 0x324 <pinMode+0x3a>
+ 304: e8 2f mov r30, r24
+ 306: f0 e0 ldi r31, 0x00 ; 0
+ 308: e8 59 subi r30, 0x98 ; 152
+ 30a: ff 4f sbci r31, 0xFF ; 255
+ 30c: e4 91 lpm r30, Z+
+ 30e: f0 e0 ldi r31, 0x00 ; 0
+ 310: 66 23 and r22, r22
+ 312: 29 f4 brne .+10 ; 0x31e <pinMode+0x34>
+ 314: 80 81 ld r24, Z
+ 316: 90 95 com r25
+ 318: 89 23 and r24, r25
+ 31a: 80 83 st Z, r24
+ 31c: 08 95 ret
+ 31e: 80 81 ld r24, Z
+ 320: 89 2b or r24, r25
+ 322: 80 83 st Z, r24
+ 324: 08 95 ret
+
+00000326 <digitalWrite>:
+ 326: 48 2f mov r20, r24
+ 328: 50 e0 ldi r21, 0x00 ; 0
+ 32a: ca 01 movw r24, r20
+ 32c: 81 56 subi r24, 0x61 ; 97
+ 32e: 9f 4f sbci r25, 0xFF ; 255
+ 330: fc 01 movw r30, r24
+ 332: 24 91 lpm r18, Z+
+ 334: ca 01 movw r24, r20
+ 336: 85 57 subi r24, 0x75 ; 117
+ 338: 9f 4f sbci r25, 0xFF ; 255
+ 33a: fc 01 movw r30, r24
+ 33c: 94 91 lpm r25, Z+
+ 33e: 49 58 subi r20, 0x89 ; 137
+ 340: 5f 4f sbci r21, 0xFF ; 255
+ 342: fa 01 movw r30, r20
+ 344: 34 91 lpm r19, Z+
+ 346: 33 23 and r19, r19
+ 348: c1 f1 breq .+112 ; 0x3ba <digitalWrite+0x94>
+ 34a: 22 23 and r18, r18
+ 34c: 31 f1 breq .+76 ; 0x39a <digitalWrite+0x74>
+ 34e: 23 30 cpi r18, 0x03 ; 3
+ 350: 21 f4 brne .+8 ; 0x35a <digitalWrite+0x34>
+ 352: 80 91 80 00 lds r24, 0x0080
+ 356: 8f 77 andi r24, 0x7F ; 127
+ 358: 05 c0 rjmp .+10 ; 0x364 <digitalWrite+0x3e>
+ 35a: 24 30 cpi r18, 0x04 ; 4
+ 35c: 31 f4 brne .+12 ; 0x36a <digitalWrite+0x44>
+ 35e: 80 91 80 00 lds r24, 0x0080
+ 362: 8f 7d andi r24, 0xDF ; 223
+ 364: 80 93 80 00 sts 0x0080, r24
+ 368: 18 c0 rjmp .+48 ; 0x39a <digitalWrite+0x74>
+ 36a: 21 30 cpi r18, 0x01 ; 1
+ 36c: 19 f4 brne .+6 ; 0x374 <digitalWrite+0x4e>
+ 36e: 84 b5 in r24, 0x24 ; 36
+ 370: 8f 77 andi r24, 0x7F ; 127
+ 372: 04 c0 rjmp .+8 ; 0x37c <digitalWrite+0x56>
+ 374: 22 30 cpi r18, 0x02 ; 2
+ 376: 21 f4 brne .+8 ; 0x380 <digitalWrite+0x5a>
+ 378: 84 b5 in r24, 0x24 ; 36
+ 37a: 8f 7d andi r24, 0xDF ; 223
+ 37c: 84 bd out 0x24, r24 ; 36
+ 37e: 0d c0 rjmp .+26 ; 0x39a <digitalWrite+0x74>
+ 380: 26 30 cpi r18, 0x06 ; 6
+ 382: 21 f4 brne .+8 ; 0x38c <digitalWrite+0x66>
+ 384: 80 91 b0 00 lds r24, 0x00B0
+ 388: 8f 77 andi r24, 0x7F ; 127
+ 38a: 05 c0 rjmp .+10 ; 0x396 <digitalWrite+0x70>
+ 38c: 27 30 cpi r18, 0x07 ; 7
+ 38e: 29 f4 brne .+10 ; 0x39a <digitalWrite+0x74>
+ 390: 80 91 b0 00 lds r24, 0x00B0
+ 394: 8f 7d andi r24, 0xDF ; 223
+ 396: 80 93 b0 00 sts 0x00B0, r24
+ 39a: e3 2f mov r30, r19
+ 39c: f0 e0 ldi r31, 0x00 ; 0
+ 39e: e3 59 subi r30, 0x93 ; 147
+ 3a0: ff 4f sbci r31, 0xFF ; 255
+ 3a2: e4 91 lpm r30, Z+
+ 3a4: f0 e0 ldi r31, 0x00 ; 0
+ 3a6: 66 23 and r22, r22
+ 3a8: 29 f4 brne .+10 ; 0x3b4 <digitalWrite+0x8e>
+ 3aa: 80 81 ld r24, Z
+ 3ac: 90 95 com r25
+ 3ae: 89 23 and r24, r25
+ 3b0: 80 83 st Z, r24
+ 3b2: 08 95 ret
+ 3b4: 80 81 ld r24, Z
+ 3b6: 89 2b or r24, r25
+ 3b8: 80 83 st Z, r24
+ 3ba: 08 95 ret
+
+000003bc <digitalRead>:
+ 3bc: 48 2f mov r20, r24
+ 3be: 50 e0 ldi r21, 0x00 ; 0
+ 3c0: ca 01 movw r24, r20
+ 3c2: 81 56 subi r24, 0x61 ; 97
+ 3c4: 9f 4f sbci r25, 0xFF ; 255
+ 3c6: fc 01 movw r30, r24
+ 3c8: 24 91 lpm r18, Z+
+ 3ca: ca 01 movw r24, r20
+ 3cc: 85 57 subi r24, 0x75 ; 117
+ 3ce: 9f 4f sbci r25, 0xFF ; 255
+ 3d0: fc 01 movw r30, r24
+ 3d2: 94 91 lpm r25, Z+
+ 3d4: 49 58 subi r20, 0x89 ; 137
+ 3d6: 5f 4f sbci r21, 0xFF ; 255
+ 3d8: fa 01 movw r30, r20
+ 3da: 34 91 lpm r19, Z+
+ 3dc: 33 23 and r19, r19
+ 3de: 19 f4 brne .+6 ; 0x3e6 <digitalRead+0x2a>
+ 3e0: 20 e0 ldi r18, 0x00 ; 0
+ 3e2: 30 e0 ldi r19, 0x00 ; 0
+ 3e4: 35 c0 rjmp .+106 ; 0x450 <digitalRead+0x94>
+ 3e6: 22 23 and r18, r18
+ 3e8: 31 f1 breq .+76 ; 0x436 <digitalRead+0x7a>
+ 3ea: 23 30 cpi r18, 0x03 ; 3
+ 3ec: 21 f4 brne .+8 ; 0x3f6 <digitalRead+0x3a>
+ 3ee: 80 91 80 00 lds r24, 0x0080
+ 3f2: 8f 77 andi r24, 0x7F ; 127
+ 3f4: 05 c0 rjmp .+10 ; 0x400 <digitalRead+0x44>
+ 3f6: 24 30 cpi r18, 0x04 ; 4
+ 3f8: 31 f4 brne .+12 ; 0x406 <digitalRead+0x4a>
+ 3fa: 80 91 80 00 lds r24, 0x0080
+ 3fe: 8f 7d andi r24, 0xDF ; 223
+ 400: 80 93 80 00 sts 0x0080, r24
+ 404: 18 c0 rjmp .+48 ; 0x436 <digitalRead+0x7a>
+ 406: 21 30 cpi r18, 0x01 ; 1
+ 408: 19 f4 brne .+6 ; 0x410 <digitalRead+0x54>
+ 40a: 84 b5 in r24, 0x24 ; 36
+ 40c: 8f 77 andi r24, 0x7F ; 127
+ 40e: 04 c0 rjmp .+8 ; 0x418 <digitalRead+0x5c>
+ 410: 22 30 cpi r18, 0x02 ; 2
+ 412: 21 f4 brne .+8 ; 0x41c <digitalRead+0x60>
+ 414: 84 b5 in r24, 0x24 ; 36
+ 416: 8f 7d andi r24, 0xDF ; 223
+ 418: 84 bd out 0x24, r24 ; 36
+ 41a: 0d c0 rjmp .+26 ; 0x436 <digitalRead+0x7a>
+ 41c: 26 30 cpi r18, 0x06 ; 6
+ 41e: 21 f4 brne .+8 ; 0x428 <digitalRead+0x6c>
+ 420: 80 91 b0 00 lds r24, 0x00B0
+ 424: 8f 77 andi r24, 0x7F ; 127
+ 426: 05 c0 rjmp .+10 ; 0x432 <digitalRead+0x76>
+ 428: 27 30 cpi r18, 0x07 ; 7
+ 42a: 29 f4 brne .+10 ; 0x436 <digitalRead+0x7a>
+ 42c: 80 91 b0 00 lds r24, 0x00B0
+ 430: 8f 7d andi r24, 0xDF ; 223
+ 432: 80 93 b0 00 sts 0x00B0, r24
+ 436: e3 2f mov r30, r19
+ 438: f0 e0 ldi r31, 0x00 ; 0
+ 43a: ee 58 subi r30, 0x8E ; 142
+ 43c: ff 4f sbci r31, 0xFF ; 255
+ 43e: e4 91 lpm r30, Z+
+ 440: f0 e0 ldi r31, 0x00 ; 0
+ 442: 80 81 ld r24, Z
+ 444: 20 e0 ldi r18, 0x00 ; 0
+ 446: 30 e0 ldi r19, 0x00 ; 0
+ 448: 89 23 and r24, r25
+ 44a: 11 f0 breq .+4 ; 0x450 <digitalRead+0x94>
+ 44c: 21 e0 ldi r18, 0x01 ; 1
+ 44e: 30 e0 ldi r19, 0x00 ; 0
+ 450: c9 01 movw r24, r18
+ 452: 08 95 ret
+
+00000454 <_exit>:
+ 454: f8 94 cli
+
+00000456 <__stop_program>:
+ 456: ff cf rjmp .-2 ; 0x456 <__stop_program>
diff --git a/blinktest_328p/bin/Debug/blinktest_328p.elf.map b/blinktest_328p/bin/Debug/blinktest_328p.elf.map
new file mode 100644
index 0000000..dfdd957
--- /dev/null
+++ b/blinktest_328p/bin/Debug/blinktest_328p.elf.map
@@ -0,0 +1,501 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o (delay)
+../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o (pinMode)
+../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o) (port_to_mode_PGM)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_clear_bss)
+
+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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x458
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x4b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x00000068 port_to_mode_PGM
+ 0x0000006d port_to_output_PGM
+ 0x00000072 port_to_input_PGM
+ 0x00000077 digital_pin_to_port_PGM
+ 0x0000008b digital_pin_to_bit_mask_PGM
+ 0x0000009f digital_pin_to_timer_PGM
+ 0x000000b4 . = ALIGN (0x2)
+ *fill* 0x000000b3 0x1 00
+ 0x000000b4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000b4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000b4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000b4 __ctors_start = .
+ *(.ctors)
+ 0x000000b4 __ctors_end = .
+ 0x000000b4 __dtors_start = .
+ *(.dtors)
+ 0x000000b4 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000b4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000b4 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000b4 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000c0 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x000000c0 __do_copy_data
+ .init4 0x000000d6 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000d6 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000e6 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000ee 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000ee __vector_22
+ 0x000000ee __vector_1
+ 0x000000ee __vector_24
+ 0x000000ee __vector_12
+ 0x000000ee __bad_interrupt
+ 0x000000ee __vector_6
+ 0x000000ee __vector_3
+ 0x000000ee __vector_23
+ 0x000000ee __vector_25
+ 0x000000ee __vector_11
+ 0x000000ee __vector_13
+ 0x000000ee __vector_17
+ 0x000000ee __vector_19
+ 0x000000ee __vector_7
+ 0x000000ee __vector_5
+ 0x000000ee __vector_4
+ 0x000000ee __vector_9
+ 0x000000ee __vector_2
+ 0x000000ee __vector_21
+ 0x000000ee __vector_15
+ 0x000000ee __vector_8
+ 0x000000ee __vector_14
+ 0x000000ee __vector_10
+ 0x000000ee __vector_18
+ 0x000000ee __vector_20
+ .text 0x000000f2 0x3e obj/Debug/main.o
+ 0x000000f2 main
+ .text 0x00000130 0x1ba ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00000130 __vector_16
+ 0x000001ea millis
+ 0x00000206 delay
+ 0x0000025a delayMicroseconds
+ 0x00000276 init
+ .text 0x000002ea 0x16a ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x000002ea pinMode
+ 0x00000326 digitalWrite
+ 0x000003bc digitalRead
+ .text 0x00000454 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000454 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000454 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x00000454 exit
+ 0x00000454 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00000454 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00000458 _etext = .
+
+.data 0x00800100 0x0 load address 0x00000458
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x0 obj/Debug/main.o
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800100 . = ALIGN (0x2)
+ 0x00800100 _edata = .
+ 0x00800100 PROVIDE (__data_end, .)
+
+.bss 0x00800100 0x8
+ 0x00800100 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800100 0x0 obj/Debug/main.o
+ .bss 0x00800100 0x8 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00800100 timer0_clock_cycles
+ 0x00800104 timer0_millis
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ 0x00800108 PROVIDE (__bss_end, .)
+ 0x00000458 __data_load_start = LOADADDR (.data)
+ 0x00000458 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800108 0x0
+ 0x00800108 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800108 PROVIDE (__noinit_end, .)
+ 0x00800108 _end = .
+ 0x00800108 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0xb28
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x474 obj/Debug/main.o
+ 0x480 (size before relaxing)
+
+.stabstr 0x00000000 0x188e
+ *(.stabstr)
+ .stabstr 0x00000000 0x188e /usr/lib/gcc/avr/4.3.5/../../../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 0x40
+ *(.debug_aranges)
+ .debug_aranges
+ 0x00000000 0x20 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_pubnames
+ 0x00000000 0x16c
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0x80 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_pubnames
+ 0x00000080 0x3f ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_pubnames
+ 0x000000bf 0xad ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_info 0x00000000 0x6f2
+ *(.debug_info)
+ .debug_info 0x00000000 0x1dd ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_info 0x000001dd 0x3f6 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_info 0x000005d3 0x11f ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x2e1
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x117 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_abbrev 0x00000117 0x162 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_abbrev 0x00000279 0x68 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_line 0x00000000 0x551
+ *(.debug_line)
+ .debug_line 0x00000000 0x251 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_line 0x00000251 0x233 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_line 0x00000484 0xcd ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_frame 0x00000000 0xa0
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x60 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_frame 0x00000060 0x40 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_str 0x00000000 0x227
+ *(.debug_str)
+ .debug_str 0x00000000 0xd5 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x115 (size before relaxing)
+ .debug_str 0x000000d5 0x117 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x197 (size before relaxing)
+ .debug_str 0x000001ec 0x3b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x13e (size before relaxing)
+
+.debug_loc 0x00000000 0x1fa
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xb6 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_loc 0x000000b6 0x144 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Debug/blinktest_328p.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+delay ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+delayMicroseconds ../arduino_libs/core0022_328p.a(wiring.c.o)
+digitalRead ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digitalWrite ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+digital_pin_to_bit_mask_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_port_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_timer_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+init ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+main obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+millis ../arduino_libs/core0022_328p.a(wiring.c.o)
+pinMode ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+port_to_input_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_mode_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_output_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+timer0_clock_cycles ../arduino_libs/core0022_328p.a(wiring.c.o)
+timer0_millis ../arduino_libs/core0022_328p.a(wiring.c.o)
diff --git a/blinktest_328p/bin/Debug/electic_streaming.elf.map b/blinktest_328p/bin/Debug/electic_streaming.elf.map
new file mode 100644
index 0000000..dfdd957
--- /dev/null
+++ b/blinktest_328p/bin/Debug/electic_streaming.elf.map
@@ -0,0 +1,501 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o (delay)
+../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o (pinMode)
+../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o) (port_to_mode_PGM)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_clear_bss)
+
+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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x458
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x4b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x00000068 port_to_mode_PGM
+ 0x0000006d port_to_output_PGM
+ 0x00000072 port_to_input_PGM
+ 0x00000077 digital_pin_to_port_PGM
+ 0x0000008b digital_pin_to_bit_mask_PGM
+ 0x0000009f digital_pin_to_timer_PGM
+ 0x000000b4 . = ALIGN (0x2)
+ *fill* 0x000000b3 0x1 00
+ 0x000000b4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000b4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000b4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000b4 __ctors_start = .
+ *(.ctors)
+ 0x000000b4 __ctors_end = .
+ 0x000000b4 __dtors_start = .
+ *(.dtors)
+ 0x000000b4 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000b4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000b4 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000b4 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000c0 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x000000c0 __do_copy_data
+ .init4 0x000000d6 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000d6 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000e6 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000ee 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000ee __vector_22
+ 0x000000ee __vector_1
+ 0x000000ee __vector_24
+ 0x000000ee __vector_12
+ 0x000000ee __bad_interrupt
+ 0x000000ee __vector_6
+ 0x000000ee __vector_3
+ 0x000000ee __vector_23
+ 0x000000ee __vector_25
+ 0x000000ee __vector_11
+ 0x000000ee __vector_13
+ 0x000000ee __vector_17
+ 0x000000ee __vector_19
+ 0x000000ee __vector_7
+ 0x000000ee __vector_5
+ 0x000000ee __vector_4
+ 0x000000ee __vector_9
+ 0x000000ee __vector_2
+ 0x000000ee __vector_21
+ 0x000000ee __vector_15
+ 0x000000ee __vector_8
+ 0x000000ee __vector_14
+ 0x000000ee __vector_10
+ 0x000000ee __vector_18
+ 0x000000ee __vector_20
+ .text 0x000000f2 0x3e obj/Debug/main.o
+ 0x000000f2 main
+ .text 0x00000130 0x1ba ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00000130 __vector_16
+ 0x000001ea millis
+ 0x00000206 delay
+ 0x0000025a delayMicroseconds
+ 0x00000276 init
+ .text 0x000002ea 0x16a ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x000002ea pinMode
+ 0x00000326 digitalWrite
+ 0x000003bc digitalRead
+ .text 0x00000454 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000454 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000454 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00000454 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x00000454 exit
+ 0x00000454 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00000454 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00000458 _etext = .
+
+.data 0x00800100 0x0 load address 0x00000458
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x0 obj/Debug/main.o
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800100 . = ALIGN (0x2)
+ 0x00800100 _edata = .
+ 0x00800100 PROVIDE (__data_end, .)
+
+.bss 0x00800100 0x8
+ 0x00800100 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800100 0x0 obj/Debug/main.o
+ .bss 0x00800100 0x8 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00800100 timer0_clock_cycles
+ 0x00800104 timer0_millis
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ 0x00800108 PROVIDE (__bss_end, .)
+ 0x00000458 __data_load_start = LOADADDR (.data)
+ 0x00000458 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800108 0x0
+ 0x00800108 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800108 PROVIDE (__noinit_end, .)
+ 0x00800108 _end = .
+ 0x00800108 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0xb28
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x474 obj/Debug/main.o
+ 0x480 (size before relaxing)
+
+.stabstr 0x00000000 0x188e
+ *(.stabstr)
+ .stabstr 0x00000000 0x188e /usr/lib/gcc/avr/4.3.5/../../../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 0x40
+ *(.debug_aranges)
+ .debug_aranges
+ 0x00000000 0x20 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_pubnames
+ 0x00000000 0x16c
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0x80 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_pubnames
+ 0x00000080 0x3f ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_pubnames
+ 0x000000bf 0xad ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_info 0x00000000 0x6f2
+ *(.debug_info)
+ .debug_info 0x00000000 0x1dd ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_info 0x000001dd 0x3f6 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_info 0x000005d3 0x11f ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x2e1
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x117 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_abbrev 0x00000117 0x162 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_abbrev 0x00000279 0x68 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_line 0x00000000 0x551
+ *(.debug_line)
+ .debug_line 0x00000000 0x251 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_line 0x00000251 0x233 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_line 0x00000484 0xcd ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_frame 0x00000000 0xa0
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x60 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_frame 0x00000060 0x40 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_str 0x00000000 0x227
+ *(.debug_str)
+ .debug_str 0x00000000 0xd5 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x115 (size before relaxing)
+ .debug_str 0x000000d5 0x117 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x197 (size before relaxing)
+ .debug_str 0x000001ec 0x3b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x13e (size before relaxing)
+
+.debug_loc 0x00000000 0x1fa
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xb6 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_loc 0x000000b6 0x144 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Debug/blinktest_328p.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+delay ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+delayMicroseconds ../arduino_libs/core0022_328p.a(wiring.c.o)
+digitalRead ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digitalWrite ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+digital_pin_to_bit_mask_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_port_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_timer_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+init ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Debug/main.o
+main obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+millis ../arduino_libs/core0022_328p.a(wiring.c.o)
+pinMode ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Debug/main.o
+port_to_input_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_mode_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_output_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+timer0_clock_cycles ../arduino_libs/core0022_328p.a(wiring.c.o)
+timer0_millis ../arduino_libs/core0022_328p.a(wiring.c.o)
diff --git a/blinktest_328p/bin/Release/blinktest_328p.elf b/blinktest_328p/bin/Release/blinktest_328p.elf
new file mode 100755
index 0000000..1c8b6ca
--- /dev/null
+++ b/blinktest_328p/bin/Release/blinktest_328p.elf
Binary files differ
diff --git a/blinktest_328p/bin/Release/blinktest_328p.elf.eep.hex b/blinktest_328p/bin/Release/blinktest_328p.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/blinktest_328p/bin/Release/blinktest_328p.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/blinktest_328p/bin/Release/blinktest_328p.elf.hex b/blinktest_328p/bin/Release/blinktest_328p.elf.hex
new file mode 100644
index 0000000..5f4344d
--- /dev/null
+++ b/blinktest_328p/bin/Release/blinktest_328p.elf.hex
@@ -0,0 +1,70 @@
+:100000000C945A000C9477000C9477000C947700B1
+:100010000C9477000C9477000C9477000C94770084
+:100020000C9477000C9477000C9477000C94770074
+:100030000C9477000C9477000C9477000C94770064
+:100040000C9494000C9477000C9477000C94770037
+:100050000C9477000C9477000C9477000C94770044
+:100060000C9477000C947700000024272A000025C8
+:10007000282B000023262904040404040404040299
+:100080000202020202030303030303010204081035
+:100090002040800102040810200102040810200002
+:1000A0000000070002010000030406000000000039
+:1000B0000000000011241FBECFEFD8E0DEBFCDBF8F
+:1000C00011E0A0E0B1E0E0E5F4E002C005900D929F
+:1000D000A030B107D9F711E0A0E0B1E001C01D9256
+:1000E000A830B107E1F70E9479000C9426020C9425
+:1000F00000000E9437018DE061E00E9471018DE0F7
+:1001000061E00E948F0168EE73E080E090E00E9461
+:10011000FF008DE060E00E948F0168EE73E080E0F8
+:1001200090E00E94FF00EBCF1F920F920FB60F924C
+:1001300011242F938F939F93AF93BF9380910001CE
+:1001400090910101A0910201B09103018050904C67
+:10015000AF4FBF4F8093000190930101A093020124
+:10016000B093030127C08091000190910101A091FB
+:100170000201B091030180589E43A040B04080939B
+:10018000000190930101A0930201B09303018091BB
+:10019000040190910501A0910601B091070101961B
+:1001A000A11DB11D8093040190930501A093060148
+:1001B000B09307018091000190910101A09102018B
+:1001C000B091030181589E43A040B04060F6BF91BA
+:1001D000AF919F918F912F910F900FBE0F901F9015
+:1001E00018958FB7F8942091040130910501409142
+:1001F0000601509107018FBFB901CA010895EF921E
+:10020000FF920F931F937B018C018FB7F89440915D
+:1002100004015091050160910601709107018FBFA3
+:100220002FB7F8948091040190910501A0910601E7
+:10023000B09107012FBF841B950BA60BB70B8E1532
+:100240009F05A007B10760F31F910F91FF90EF90FA
+:100250000895019759F0FC01EE0FFF1FEE0FFF1FED
+:1002600032978FB7F8943197F1F78FBF089578944C
+:1002700084B5826084BD84B5816084BD85B58260AB
+:1002800085BD85B5816085BDEEE6F0E08081816049
+:100290008083E1E8F0E080818260808380818160FA
+:1002A0008083E0E8F0E0808181608083E1EBF0E032
+:1002B000808184608083E0EBF0E0808181608083D6
+:1002C000EAE7F0E0808184608083808182608083BF
+:1002D0008081816080838081806880831092C100EA
+:1002E0000895282F30E0C90185579F4FFC01949154
+:1002F00029583F4FF9018491882381F0E82FF0E0DD
+:10030000E859FF4FE491F0E0662329F4808190954D
+:100310008923808308958081892B80830895482FC5
+:1003200050E0CA0181569F4FFC012491CA018557B4
+:100330009F4FFC01949149585F4FFA013491332348
+:10034000C1F1222331F1233021F4809180008F7795
+:1003500005C0243031F4809180008F7D809380002F
+:1003600018C0213019F484B58F7704C0223021F4ED
+:1003700084B58F7D84BD0DC0263021F48091B000FE
+:100380008F7705C0273029F48091B0008F7D80934E
+:10039000B000E32FF0E0E359FF4FE491F0E0662373
+:1003A00029F4808190958923808308958081892B09
+:1003B00080830895482F50E0CA0181569F4FFC0169
+:1003C0002491CA0185579F4FFC01949149585F4F72
+:1003D000FA013491332319F420E030E035C02223B0
+:1003E00031F1233021F4809180008F7705C02430D3
+:1003F00031F4809180008F7D8093800018C021307F
+:1004000019F484B58F7704C0223021F484B58F7D30
+:1004100084BD0DC0263021F48091B0008F7705C0D7
+:10042000273029F48091B0008F7D8093B000E32FB6
+:10043000F0E0EE58FF4FE491F0E0808120E030E002
+:10044000892311F021E030E0C9010895F894FFCF2D
+:00000001FF
diff --git a/blinktest_328p/bin/Release/blinktest_328p.elf.lss b/blinktest_328p/bin/Release/blinktest_328p.elf.lss
new file mode 100644
index 0000000..a9a11be
--- /dev/null
+++ b/blinktest_328p/bin/Release/blinktest_328p.elf.lss
@@ -0,0 +1,518 @@
+
+bin/Release/blinktest_328p.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .text 00000450 00000000 00000000 00000074 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 1 .bss 00000008 00800100 00800100 000004c4 2**0
+ ALLOC
+ 2 .stab 000006b4 00000000 00000000 000004c4 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 3 .stabstr 00000054 00000000 00000000 00000b78 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 4 .debug_aranges 00000040 00000000 00000000 00000bcc 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_pubnames 0000016c 00000000 00000000 00000c0c 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_info 000006f2 00000000 00000000 00000d78 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_abbrev 000002e1 00000000 00000000 0000146a 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_line 00000551 00000000 00000000 0000174b 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_frame 000000a0 00000000 00000000 00001c9c 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_str 00000227 00000000 00000000 00001d3c 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_loc 000001fa 00000000 00000000 00001f63 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__ctors_end>
+ 4: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 8: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 10: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 14: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 18: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 1c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 20: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 24: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 28: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 2c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 30: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 34: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 38: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 3c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 40: 0c 94 94 00 jmp 0x128 ; 0x128 <__vector_16>
+ 44: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 48: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 4c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 50: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 54: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 58: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 5c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 60: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+ 64: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
+
+00000068 <port_to_mode_PGM>:
+ 68: 00 00 24 27 2a ..$'*
+
+0000006d <port_to_output_PGM>:
+ 6d: 00 00 25 28 2b ..%(+
+
+00000072 <port_to_input_PGM>:
+ 72: 00 00 23 26 29 ..#&)
+
+00000077 <digital_pin_to_port_PGM>:
+ 77: 04 04 04 04 04 04 04 04 02 02 02 02 02 02 03 03 ................
+ 87: 03 03 03 03 ....
+
+0000008b <digital_pin_to_bit_mask_PGM>:
+ 8b: 01 02 04 08 10 20 40 80 01 02 04 08 10 20 01 02 ..... @...... ..
+ 9b: 04 08 10 20 ...
+
+0000009f <digital_pin_to_timer_PGM>:
+ 9f: 00 00 00 07 00 02 01 00 00 03 04 06 00 00 00 00 ................
+ af: 00 00 00 00 00 .....
+
+000000b4 <__ctors_end>:
+ b4: 11 24 eor r1, r1
+ b6: 1f be out 0x3f, r1 ; 63
+ b8: cf ef ldi r28, 0xFF ; 255
+ ba: d8 e0 ldi r29, 0x08 ; 8
+ bc: de bf out 0x3e, r29 ; 62
+ be: cd bf out 0x3d, r28 ; 61
+
+000000c0 <__do_copy_data>:
+ c0: 11 e0 ldi r17, 0x01 ; 1
+ c2: a0 e0 ldi r26, 0x00 ; 0
+ c4: b1 e0 ldi r27, 0x01 ; 1
+ c6: e0 e5 ldi r30, 0x50 ; 80
+ c8: f4 e0 ldi r31, 0x04 ; 4
+ ca: 02 c0 rjmp .+4 ; 0xd0 <.do_copy_data_start>
+
+000000cc <.do_copy_data_loop>:
+ cc: 05 90 lpm r0, Z+
+ ce: 0d 92 st X+, r0
+
+000000d0 <.do_copy_data_start>:
+ d0: a0 30 cpi r26, 0x00 ; 0
+ d2: b1 07 cpc r27, r17
+ d4: d9 f7 brne .-10 ; 0xcc <.do_copy_data_loop>
+
+000000d6 <__do_clear_bss>:
+ d6: 11 e0 ldi r17, 0x01 ; 1
+ d8: a0 e0 ldi r26, 0x00 ; 0
+ da: b1 e0 ldi r27, 0x01 ; 1
+ dc: 01 c0 rjmp .+2 ; 0xe0 <.do_clear_bss_start>
+
+000000de <.do_clear_bss_loop>:
+ de: 1d 92 st X+, r1
+
+000000e0 <.do_clear_bss_start>:
+ e0: a8 30 cpi r26, 0x08 ; 8
+ e2: b1 07 cpc r27, r17
+ e4: e1 f7 brne .-8 ; 0xde <.do_clear_bss_loop>
+ e6: 0e 94 79 00 call 0xf2 ; 0xf2 <main>
+ ea: 0c 94 26 02 jmp 0x44c ; 0x44c <_exit>
+
+000000ee <__bad_interrupt>:
+ ee: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000f2 <main>:
+ f2: 0e 94 37 01 call 0x26e ; 0x26e <init>
+ f6: 8d e0 ldi r24, 0x0D ; 13
+ f8: 61 e0 ldi r22, 0x01 ; 1
+ fa: 0e 94 71 01 call 0x2e2 ; 0x2e2 <pinMode>
+ fe: 8d e0 ldi r24, 0x0D ; 13
+ 100: 61 e0 ldi r22, 0x01 ; 1
+ 102: 0e 94 8f 01 call 0x31e ; 0x31e <digitalWrite>
+ 106: 68 ee ldi r22, 0xE8 ; 232
+ 108: 73 e0 ldi r23, 0x03 ; 3
+ 10a: 80 e0 ldi r24, 0x00 ; 0
+ 10c: 90 e0 ldi r25, 0x00 ; 0
+ 10e: 0e 94 ff 00 call 0x1fe ; 0x1fe <delay>
+ 112: 8d e0 ldi r24, 0x0D ; 13
+ 114: 60 e0 ldi r22, 0x00 ; 0
+ 116: 0e 94 8f 01 call 0x31e ; 0x31e <digitalWrite>
+ 11a: 68 ee ldi r22, 0xE8 ; 232
+ 11c: 73 e0 ldi r23, 0x03 ; 3
+ 11e: 80 e0 ldi r24, 0x00 ; 0
+ 120: 90 e0 ldi r25, 0x00 ; 0
+ 122: 0e 94 ff 00 call 0x1fe ; 0x1fe <delay>
+ 126: eb cf rjmp .-42 ; 0xfe <main+0xc>
+
+00000128 <__vector_16>:
+ 128: 1f 92 push r1
+ 12a: 0f 92 push r0
+ 12c: 0f b6 in r0, 0x3f ; 63
+ 12e: 0f 92 push r0
+ 130: 11 24 eor r1, r1
+ 132: 2f 93 push r18
+ 134: 8f 93 push r24
+ 136: 9f 93 push r25
+ 138: af 93 push r26
+ 13a: bf 93 push r27
+ 13c: 80 91 00 01 lds r24, 0x0100
+ 140: 90 91 01 01 lds r25, 0x0101
+ 144: a0 91 02 01 lds r26, 0x0102
+ 148: b0 91 03 01 lds r27, 0x0103
+ 14c: 80 50 subi r24, 0x00 ; 0
+ 14e: 90 4c sbci r25, 0xC0 ; 192
+ 150: af 4f sbci r26, 0xFF ; 255
+ 152: bf 4f sbci r27, 0xFF ; 255
+ 154: 80 93 00 01 sts 0x0100, r24
+ 158: 90 93 01 01 sts 0x0101, r25
+ 15c: a0 93 02 01 sts 0x0102, r26
+ 160: b0 93 03 01 sts 0x0103, r27
+ 164: 27 c0 rjmp .+78 ; 0x1b4 <__vector_16+0x8c>
+ 166: 80 91 00 01 lds r24, 0x0100
+ 16a: 90 91 01 01 lds r25, 0x0101
+ 16e: a0 91 02 01 lds r26, 0x0102
+ 172: b0 91 03 01 lds r27, 0x0103
+ 176: 80 58 subi r24, 0x80 ; 128
+ 178: 9e 43 sbci r25, 0x3E ; 62
+ 17a: a0 40 sbci r26, 0x00 ; 0
+ 17c: b0 40 sbci r27, 0x00 ; 0
+ 17e: 80 93 00 01 sts 0x0100, r24
+ 182: 90 93 01 01 sts 0x0101, r25
+ 186: a0 93 02 01 sts 0x0102, r26
+ 18a: b0 93 03 01 sts 0x0103, r27
+ 18e: 80 91 04 01 lds r24, 0x0104
+ 192: 90 91 05 01 lds r25, 0x0105
+ 196: a0 91 06 01 lds r26, 0x0106
+ 19a: b0 91 07 01 lds r27, 0x0107
+ 19e: 01 96 adiw r24, 0x01 ; 1
+ 1a0: a1 1d adc r26, r1
+ 1a2: b1 1d adc r27, r1
+ 1a4: 80 93 04 01 sts 0x0104, r24
+ 1a8: 90 93 05 01 sts 0x0105, r25
+ 1ac: a0 93 06 01 sts 0x0106, r26
+ 1b0: b0 93 07 01 sts 0x0107, r27
+ 1b4: 80 91 00 01 lds r24, 0x0100
+ 1b8: 90 91 01 01 lds r25, 0x0101
+ 1bc: a0 91 02 01 lds r26, 0x0102
+ 1c0: b0 91 03 01 lds r27, 0x0103
+ 1c4: 81 58 subi r24, 0x81 ; 129
+ 1c6: 9e 43 sbci r25, 0x3E ; 62
+ 1c8: a0 40 sbci r26, 0x00 ; 0
+ 1ca: b0 40 sbci r27, 0x00 ; 0
+ 1cc: 60 f6 brcc .-104 ; 0x166 <__vector_16+0x3e>
+ 1ce: bf 91 pop r27
+ 1d0: af 91 pop r26
+ 1d2: 9f 91 pop r25
+ 1d4: 8f 91 pop r24
+ 1d6: 2f 91 pop r18
+ 1d8: 0f 90 pop r0
+ 1da: 0f be out 0x3f, r0 ; 63
+ 1dc: 0f 90 pop r0
+ 1de: 1f 90 pop r1
+ 1e0: 18 95 reti
+
+000001e2 <millis>:
+ 1e2: 8f b7 in r24, 0x3f ; 63
+ 1e4: f8 94 cli
+ 1e6: 20 91 04 01 lds r18, 0x0104
+ 1ea: 30 91 05 01 lds r19, 0x0105
+ 1ee: 40 91 06 01 lds r20, 0x0106
+ 1f2: 50 91 07 01 lds r21, 0x0107
+ 1f6: 8f bf out 0x3f, r24 ; 63
+ 1f8: b9 01 movw r22, r18
+ 1fa: ca 01 movw r24, r20
+ 1fc: 08 95 ret
+
+000001fe <delay>:
+ 1fe: ef 92 push r14
+ 200: ff 92 push r15
+ 202: 0f 93 push r16
+ 204: 1f 93 push r17
+ 206: 7b 01 movw r14, r22
+ 208: 8c 01 movw r16, r24
+ 20a: 8f b7 in r24, 0x3f ; 63
+ 20c: f8 94 cli
+ 20e: 40 91 04 01 lds r20, 0x0104
+ 212: 50 91 05 01 lds r21, 0x0105
+ 216: 60 91 06 01 lds r22, 0x0106
+ 21a: 70 91 07 01 lds r23, 0x0107
+ 21e: 8f bf out 0x3f, r24 ; 63
+ 220: 2f b7 in r18, 0x3f ; 63
+ 222: f8 94 cli
+ 224: 80 91 04 01 lds r24, 0x0104
+ 228: 90 91 05 01 lds r25, 0x0105
+ 22c: a0 91 06 01 lds r26, 0x0106
+ 230: b0 91 07 01 lds r27, 0x0107
+ 234: 2f bf out 0x3f, r18 ; 63
+ 236: 84 1b sub r24, r20
+ 238: 95 0b sbc r25, r21
+ 23a: a6 0b sbc r26, r22
+ 23c: b7 0b sbc r27, r23
+ 23e: 8e 15 cp r24, r14
+ 240: 9f 05 cpc r25, r15
+ 242: a0 07 cpc r26, r16
+ 244: b1 07 cpc r27, r17
+ 246: 60 f3 brcs .-40 ; 0x220 <delay+0x22>
+ 248: 1f 91 pop r17
+ 24a: 0f 91 pop r16
+ 24c: ff 90 pop r15
+ 24e: ef 90 pop r14
+ 250: 08 95 ret
+
+00000252 <delayMicroseconds>:
+ 252: 01 97 sbiw r24, 0x01 ; 1
+ 254: 59 f0 breq .+22 ; 0x26c <delayMicroseconds+0x1a>
+ 256: fc 01 movw r30, r24
+ 258: ee 0f add r30, r30
+ 25a: ff 1f adc r31, r31
+ 25c: ee 0f add r30, r30
+ 25e: ff 1f adc r31, r31
+ 260: 32 97 sbiw r30, 0x02 ; 2
+ 262: 8f b7 in r24, 0x3f ; 63
+ 264: f8 94 cli
+ 266: 31 97 sbiw r30, 0x01 ; 1
+ 268: f1 f7 brne .-4 ; 0x266 <delayMicroseconds+0x14>
+ 26a: 8f bf out 0x3f, r24 ; 63
+ 26c: 08 95 ret
+
+0000026e <init>:
+ 26e: 78 94 sei
+ 270: 84 b5 in r24, 0x24 ; 36
+ 272: 82 60 ori r24, 0x02 ; 2
+ 274: 84 bd out 0x24, r24 ; 36
+ 276: 84 b5 in r24, 0x24 ; 36
+ 278: 81 60 ori r24, 0x01 ; 1
+ 27a: 84 bd out 0x24, r24 ; 36
+ 27c: 85 b5 in r24, 0x25 ; 37
+ 27e: 82 60 ori r24, 0x02 ; 2
+ 280: 85 bd out 0x25, r24 ; 37
+ 282: 85 b5 in r24, 0x25 ; 37
+ 284: 81 60 ori r24, 0x01 ; 1
+ 286: 85 bd out 0x25, r24 ; 37
+ 288: ee e6 ldi r30, 0x6E ; 110
+ 28a: f0 e0 ldi r31, 0x00 ; 0
+ 28c: 80 81 ld r24, Z
+ 28e: 81 60 ori r24, 0x01 ; 1
+ 290: 80 83 st Z, r24
+ 292: e1 e8 ldi r30, 0x81 ; 129
+ 294: f0 e0 ldi r31, 0x00 ; 0
+ 296: 80 81 ld r24, Z
+ 298: 82 60 ori r24, 0x02 ; 2
+ 29a: 80 83 st Z, r24
+ 29c: 80 81 ld r24, Z
+ 29e: 81 60 ori r24, 0x01 ; 1
+ 2a0: 80 83 st Z, r24
+ 2a2: e0 e8 ldi r30, 0x80 ; 128
+ 2a4: f0 e0 ldi r31, 0x00 ; 0
+ 2a6: 80 81 ld r24, Z
+ 2a8: 81 60 ori r24, 0x01 ; 1
+ 2aa: 80 83 st Z, r24
+ 2ac: e1 eb ldi r30, 0xB1 ; 177
+ 2ae: f0 e0 ldi r31, 0x00 ; 0
+ 2b0: 80 81 ld r24, Z
+ 2b2: 84 60 ori r24, 0x04 ; 4
+ 2b4: 80 83 st Z, r24
+ 2b6: e0 eb ldi r30, 0xB0 ; 176
+ 2b8: f0 e0 ldi r31, 0x00 ; 0
+ 2ba: 80 81 ld r24, Z
+ 2bc: 81 60 ori r24, 0x01 ; 1
+ 2be: 80 83 st Z, r24
+ 2c0: ea e7 ldi r30, 0x7A ; 122
+ 2c2: f0 e0 ldi r31, 0x00 ; 0
+ 2c4: 80 81 ld r24, Z
+ 2c6: 84 60 ori r24, 0x04 ; 4
+ 2c8: 80 83 st Z, r24
+ 2ca: 80 81 ld r24, Z
+ 2cc: 82 60 ori r24, 0x02 ; 2
+ 2ce: 80 83 st Z, r24
+ 2d0: 80 81 ld r24, Z
+ 2d2: 81 60 ori r24, 0x01 ; 1
+ 2d4: 80 83 st Z, r24
+ 2d6: 80 81 ld r24, Z
+ 2d8: 80 68 ori r24, 0x80 ; 128
+ 2da: 80 83 st Z, r24
+ 2dc: 10 92 c1 00 sts 0x00C1, r1
+ 2e0: 08 95 ret
+
+000002e2 <pinMode>:
+ 2e2: 28 2f mov r18, r24
+ 2e4: 30 e0 ldi r19, 0x00 ; 0
+ 2e6: c9 01 movw r24, r18
+ 2e8: 85 57 subi r24, 0x75 ; 117
+ 2ea: 9f 4f sbci r25, 0xFF ; 255
+ 2ec: fc 01 movw r30, r24
+ 2ee: 94 91 lpm r25, Z+
+ 2f0: 29 58 subi r18, 0x89 ; 137
+ 2f2: 3f 4f sbci r19, 0xFF ; 255
+ 2f4: f9 01 movw r30, r18
+ 2f6: 84 91 lpm r24, Z+
+ 2f8: 88 23 and r24, r24
+ 2fa: 81 f0 breq .+32 ; 0x31c <pinMode+0x3a>
+ 2fc: e8 2f mov r30, r24
+ 2fe: f0 e0 ldi r31, 0x00 ; 0
+ 300: e8 59 subi r30, 0x98 ; 152
+ 302: ff 4f sbci r31, 0xFF ; 255
+ 304: e4 91 lpm r30, Z+
+ 306: f0 e0 ldi r31, 0x00 ; 0
+ 308: 66 23 and r22, r22
+ 30a: 29 f4 brne .+10 ; 0x316 <pinMode+0x34>
+ 30c: 80 81 ld r24, Z
+ 30e: 90 95 com r25
+ 310: 89 23 and r24, r25
+ 312: 80 83 st Z, r24
+ 314: 08 95 ret
+ 316: 80 81 ld r24, Z
+ 318: 89 2b or r24, r25
+ 31a: 80 83 st Z, r24
+ 31c: 08 95 ret
+
+0000031e <digitalWrite>:
+ 31e: 48 2f mov r20, r24
+ 320: 50 e0 ldi r21, 0x00 ; 0
+ 322: ca 01 movw r24, r20
+ 324: 81 56 subi r24, 0x61 ; 97
+ 326: 9f 4f sbci r25, 0xFF ; 255
+ 328: fc 01 movw r30, r24
+ 32a: 24 91 lpm r18, Z+
+ 32c: ca 01 movw r24, r20
+ 32e: 85 57 subi r24, 0x75 ; 117
+ 330: 9f 4f sbci r25, 0xFF ; 255
+ 332: fc 01 movw r30, r24
+ 334: 94 91 lpm r25, Z+
+ 336: 49 58 subi r20, 0x89 ; 137
+ 338: 5f 4f sbci r21, 0xFF ; 255
+ 33a: fa 01 movw r30, r20
+ 33c: 34 91 lpm r19, Z+
+ 33e: 33 23 and r19, r19
+ 340: c1 f1 breq .+112 ; 0x3b2 <digitalWrite+0x94>
+ 342: 22 23 and r18, r18
+ 344: 31 f1 breq .+76 ; 0x392 <digitalWrite+0x74>
+ 346: 23 30 cpi r18, 0x03 ; 3
+ 348: 21 f4 brne .+8 ; 0x352 <digitalWrite+0x34>
+ 34a: 80 91 80 00 lds r24, 0x0080
+ 34e: 8f 77 andi r24, 0x7F ; 127
+ 350: 05 c0 rjmp .+10 ; 0x35c <digitalWrite+0x3e>
+ 352: 24 30 cpi r18, 0x04 ; 4
+ 354: 31 f4 brne .+12 ; 0x362 <digitalWrite+0x44>
+ 356: 80 91 80 00 lds r24, 0x0080
+ 35a: 8f 7d andi r24, 0xDF ; 223
+ 35c: 80 93 80 00 sts 0x0080, r24
+ 360: 18 c0 rjmp .+48 ; 0x392 <digitalWrite+0x74>
+ 362: 21 30 cpi r18, 0x01 ; 1
+ 364: 19 f4 brne .+6 ; 0x36c <digitalWrite+0x4e>
+ 366: 84 b5 in r24, 0x24 ; 36
+ 368: 8f 77 andi r24, 0x7F ; 127
+ 36a: 04 c0 rjmp .+8 ; 0x374 <digitalWrite+0x56>
+ 36c: 22 30 cpi r18, 0x02 ; 2
+ 36e: 21 f4 brne .+8 ; 0x378 <digitalWrite+0x5a>
+ 370: 84 b5 in r24, 0x24 ; 36
+ 372: 8f 7d andi r24, 0xDF ; 223
+ 374: 84 bd out 0x24, r24 ; 36
+ 376: 0d c0 rjmp .+26 ; 0x392 <digitalWrite+0x74>
+ 378: 26 30 cpi r18, 0x06 ; 6
+ 37a: 21 f4 brne .+8 ; 0x384 <digitalWrite+0x66>
+ 37c: 80 91 b0 00 lds r24, 0x00B0
+ 380: 8f 77 andi r24, 0x7F ; 127
+ 382: 05 c0 rjmp .+10 ; 0x38e <digitalWrite+0x70>
+ 384: 27 30 cpi r18, 0x07 ; 7
+ 386: 29 f4 brne .+10 ; 0x392 <digitalWrite+0x74>
+ 388: 80 91 b0 00 lds r24, 0x00B0
+ 38c: 8f 7d andi r24, 0xDF ; 223
+ 38e: 80 93 b0 00 sts 0x00B0, r24
+ 392: e3 2f mov r30, r19
+ 394: f0 e0 ldi r31, 0x00 ; 0
+ 396: e3 59 subi r30, 0x93 ; 147
+ 398: ff 4f sbci r31, 0xFF ; 255
+ 39a: e4 91 lpm r30, Z+
+ 39c: f0 e0 ldi r31, 0x00 ; 0
+ 39e: 66 23 and r22, r22
+ 3a0: 29 f4 brne .+10 ; 0x3ac <digitalWrite+0x8e>
+ 3a2: 80 81 ld r24, Z
+ 3a4: 90 95 com r25
+ 3a6: 89 23 and r24, r25
+ 3a8: 80 83 st Z, r24
+ 3aa: 08 95 ret
+ 3ac: 80 81 ld r24, Z
+ 3ae: 89 2b or r24, r25
+ 3b0: 80 83 st Z, r24
+ 3b2: 08 95 ret
+
+000003b4 <digitalRead>:
+ 3b4: 48 2f mov r20, r24
+ 3b6: 50 e0 ldi r21, 0x00 ; 0
+ 3b8: ca 01 movw r24, r20
+ 3ba: 81 56 subi r24, 0x61 ; 97
+ 3bc: 9f 4f sbci r25, 0xFF ; 255
+ 3be: fc 01 movw r30, r24
+ 3c0: 24 91 lpm r18, Z+
+ 3c2: ca 01 movw r24, r20
+ 3c4: 85 57 subi r24, 0x75 ; 117
+ 3c6: 9f 4f sbci r25, 0xFF ; 255
+ 3c8: fc 01 movw r30, r24
+ 3ca: 94 91 lpm r25, Z+
+ 3cc: 49 58 subi r20, 0x89 ; 137
+ 3ce: 5f 4f sbci r21, 0xFF ; 255
+ 3d0: fa 01 movw r30, r20
+ 3d2: 34 91 lpm r19, Z+
+ 3d4: 33 23 and r19, r19
+ 3d6: 19 f4 brne .+6 ; 0x3de <digitalRead+0x2a>
+ 3d8: 20 e0 ldi r18, 0x00 ; 0
+ 3da: 30 e0 ldi r19, 0x00 ; 0
+ 3dc: 35 c0 rjmp .+106 ; 0x448 <digitalRead+0x94>
+ 3de: 22 23 and r18, r18
+ 3e0: 31 f1 breq .+76 ; 0x42e <digitalRead+0x7a>
+ 3e2: 23 30 cpi r18, 0x03 ; 3
+ 3e4: 21 f4 brne .+8 ; 0x3ee <digitalRead+0x3a>
+ 3e6: 80 91 80 00 lds r24, 0x0080
+ 3ea: 8f 77 andi r24, 0x7F ; 127
+ 3ec: 05 c0 rjmp .+10 ; 0x3f8 <digitalRead+0x44>
+ 3ee: 24 30 cpi r18, 0x04 ; 4
+ 3f0: 31 f4 brne .+12 ; 0x3fe <digitalRead+0x4a>
+ 3f2: 80 91 80 00 lds r24, 0x0080
+ 3f6: 8f 7d andi r24, 0xDF ; 223
+ 3f8: 80 93 80 00 sts 0x0080, r24
+ 3fc: 18 c0 rjmp .+48 ; 0x42e <digitalRead+0x7a>
+ 3fe: 21 30 cpi r18, 0x01 ; 1
+ 400: 19 f4 brne .+6 ; 0x408 <digitalRead+0x54>
+ 402: 84 b5 in r24, 0x24 ; 36
+ 404: 8f 77 andi r24, 0x7F ; 127
+ 406: 04 c0 rjmp .+8 ; 0x410 <digitalRead+0x5c>
+ 408: 22 30 cpi r18, 0x02 ; 2
+ 40a: 21 f4 brne .+8 ; 0x414 <digitalRead+0x60>
+ 40c: 84 b5 in r24, 0x24 ; 36
+ 40e: 8f 7d andi r24, 0xDF ; 223
+ 410: 84 bd out 0x24, r24 ; 36
+ 412: 0d c0 rjmp .+26 ; 0x42e <digitalRead+0x7a>
+ 414: 26 30 cpi r18, 0x06 ; 6
+ 416: 21 f4 brne .+8 ; 0x420 <digitalRead+0x6c>
+ 418: 80 91 b0 00 lds r24, 0x00B0
+ 41c: 8f 77 andi r24, 0x7F ; 127
+ 41e: 05 c0 rjmp .+10 ; 0x42a <digitalRead+0x76>
+ 420: 27 30 cpi r18, 0x07 ; 7
+ 422: 29 f4 brne .+10 ; 0x42e <digitalRead+0x7a>
+ 424: 80 91 b0 00 lds r24, 0x00B0
+ 428: 8f 7d andi r24, 0xDF ; 223
+ 42a: 80 93 b0 00 sts 0x00B0, r24
+ 42e: e3 2f mov r30, r19
+ 430: f0 e0 ldi r31, 0x00 ; 0
+ 432: ee 58 subi r30, 0x8E ; 142
+ 434: ff 4f sbci r31, 0xFF ; 255
+ 436: e4 91 lpm r30, Z+
+ 438: f0 e0 ldi r31, 0x00 ; 0
+ 43a: 80 81 ld r24, Z
+ 43c: 20 e0 ldi r18, 0x00 ; 0
+ 43e: 30 e0 ldi r19, 0x00 ; 0
+ 440: 89 23 and r24, r25
+ 442: 11 f0 breq .+4 ; 0x448 <digitalRead+0x94>
+ 444: 21 e0 ldi r18, 0x01 ; 1
+ 446: 30 e0 ldi r19, 0x00 ; 0
+ 448: c9 01 movw r24, r18
+ 44a: 08 95 ret
+
+0000044c <_exit>:
+ 44c: f8 94 cli
+
+0000044e <__stop_program>:
+ 44e: ff cf rjmp .-2 ; 0x44e <__stop_program>
diff --git a/blinktest_328p/bin/Release/blinktest_328p.elf.map b/blinktest_328p/bin/Release/blinktest_328p.elf.map
new file mode 100644
index 0000000..2ddc9aa
--- /dev/null
+++ b/blinktest_328p/bin/Release/blinktest_328p.elf.map
@@ -0,0 +1,499 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Release/main.o (delay)
+../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Release/main.o (pinMode)
+../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o) (port_to_mode_PGM)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o) (__do_clear_bss)
+
+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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x450
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data 0x00000068 0x4b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x00000068 port_to_mode_PGM
+ 0x0000006d port_to_output_PGM
+ 0x00000072 port_to_input_PGM
+ 0x00000077 digital_pin_to_port_PGM
+ 0x0000008b digital_pin_to_bit_mask_PGM
+ 0x0000009f digital_pin_to_timer_PGM
+ 0x000000b4 . = ALIGN (0x2)
+ *fill* 0x000000b3 0x1 00
+ 0x000000b4 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x000000b4 0x0 linker stubs
+ *(.trampolines*)
+ 0x000000b4 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x000000b4 __ctors_start = .
+ *(.ctors)
+ 0x000000b4 __ctors_end = .
+ 0x000000b4 __dtors_start = .
+ *(.dtors)
+ 0x000000b4 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x000000b4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000b4 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x000000b4 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x000000c0 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x000000c0 __do_copy_data
+ .init4 0x000000d6 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000d6 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000e6 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000ee 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x000000ee __vector_22
+ 0x000000ee __vector_1
+ 0x000000ee __vector_24
+ 0x000000ee __vector_12
+ 0x000000ee __bad_interrupt
+ 0x000000ee __vector_6
+ 0x000000ee __vector_3
+ 0x000000ee __vector_23
+ 0x000000ee __vector_25
+ 0x000000ee __vector_11
+ 0x000000ee __vector_13
+ 0x000000ee __vector_17
+ 0x000000ee __vector_19
+ 0x000000ee __vector_7
+ 0x000000ee __vector_5
+ 0x000000ee __vector_4
+ 0x000000ee __vector_9
+ 0x000000ee __vector_2
+ 0x000000ee __vector_21
+ 0x000000ee __vector_15
+ 0x000000ee __vector_8
+ 0x000000ee __vector_14
+ 0x000000ee __vector_10
+ 0x000000ee __vector_18
+ 0x000000ee __vector_20
+ .text 0x000000f2 0x36 obj/Release/main.o
+ 0x000000f2 main
+ .text 0x00000128 0x1ba ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00000128 __vector_16
+ 0x000001e2 millis
+ 0x000001fe delay
+ 0x00000252 delayMicroseconds
+ 0x0000026e init
+ .text 0x000002e2 0x16a ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x000002e2 pinMode
+ 0x0000031e digitalWrite
+ 0x000003b4 digitalRead
+ .text 0x0000044c 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .text 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x0000044c . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x0000044c . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000044c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x0000044c exit
+ 0x0000044c _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000044c 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00000450 _etext = .
+
+.data 0x00800100 0x0 load address 0x00000450
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x0 obj/Release/main.o
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .data 0x00800100 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800100 . = ALIGN (0x2)
+ 0x00800100 _edata = .
+ 0x00800100 PROVIDE (__data_end, .)
+
+.bss 0x00800100 0x8
+ 0x00800100 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800100 0x0 obj/Release/main.o
+ .bss 0x00800100 0x8 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x00800100 timer0_clock_cycles
+ 0x00800104 timer0_millis
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .bss 0x00800108 0x0 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800108 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ 0x00800108 PROVIDE (__bss_end, .)
+ 0x00000450 __data_load_start = LOADADDR (.data)
+ 0x00000450 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800108 0x0
+ 0x00800108 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800108 PROVIDE (__noinit_end, .)
+ 0x00800108 _end = .
+ 0x00800108 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x6b4
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+
+.stabstr 0x00000000 0x54
+ *(.stabstr)
+ .stabstr 0x00000000 0x54 /usr/lib/gcc/avr/4.3.5/../../../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 0x40
+ *(.debug_aranges)
+ .debug_aranges
+ 0x00000000 0x20 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_pubnames
+ 0x00000000 0x16c
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0x80 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_pubnames
+ 0x00000080 0x3f ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_pubnames
+ 0x000000bf 0xad ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_info 0x00000000 0x6f2
+ *(.debug_info)
+ .debug_info 0x00000000 0x1dd ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_info 0x000001dd 0x3f6 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_info 0x000005d3 0x11f ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x2e1
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x117 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_abbrev 0x00000117 0x162 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_abbrev 0x00000279 0x68 ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_line 0x00000000 0x551
+ *(.debug_line)
+ .debug_line 0x00000000 0x251 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_line 0x00000251 0x233 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ .debug_line 0x00000484 0xcd ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+
+.debug_frame 0x00000000 0xa0
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x60 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_frame 0x00000060 0x40 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_str 0x00000000 0x227
+ *(.debug_str)
+ .debug_str 0x00000000 0xd5 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ 0x115 (size before relaxing)
+ .debug_str 0x000000d5 0x117 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ 0x197 (size before relaxing)
+ .debug_str 0x000001ec 0x3b ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ 0x13e (size before relaxing)
+
+.debug_loc 0x00000000 0x1fa
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xb6 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ .debug_loc 0x000000b6 0x144 ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Release/blinktest_328p.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ ../arduino_libs/core0022_328p.a(wiring.c.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 ../arduino_libs/core0022_328p.a(wiring.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+delay ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Release/main.o
+delayMicroseconds ../arduino_libs/core0022_328p.a(wiring.c.o)
+digitalRead ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digitalWrite ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Release/main.o
+digital_pin_to_bit_mask_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_port_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+digital_pin_to_timer_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+init ../arduino_libs/core0022_328p.a(wiring.c.o)
+ obj/Release/main.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+millis ../arduino_libs/core0022_328p.a(wiring.c.o)
+pinMode ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+ obj/Release/main.o
+port_to_input_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_mode_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+port_to_output_PGM ../arduino_libs/core0022_328p.a(pins_arduino.c.o)
+ ../arduino_libs/core0022_328p.a(wiring_digital.c.o)
+timer0_clock_cycles ../arduino_libs/core0022_328p.a(wiring.c.o)
+timer0_millis ../arduino_libs/core0022_328p.a(wiring.c.o)
diff --git a/blinktest_328p/blinktest_328p.cbp b/blinktest_328p/blinktest_328p.cbp
new file mode 100644
index 0000000..3c64663
--- /dev/null
+++ b/blinktest_328p/blinktest_328p.cbp
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="blinktest_328p" />
+ <Option pch_mode="2" />
+ <Option compiler="avrgcc" />
+ <Build>
+ <Target title="Debug">
+ <Option output="bin/Debug/blinktest_328p.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Debug/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-g" />
+ </Compiler>
+ </Target>
+ <Target title="Release">
+ <Option output="bin/Release/blinktest_328p.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Release/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-Os" />
+ </Compiler>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add option="-mmcu=atmega328p -DF_CPU=8000000UL" />
+ <Add directory="../arduinoSrc0022" />
+ <Add directory="../arduino libs/NewSoftSerial" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=atmega328p" />
+ <Add option="-Wl,-Map=$(TARGET_OUTPUT_FILE).map,--cref" />
+ <Add library="../arduino_libs/core0022_328p.a" />
+ </Linker>
+ <ExtraCommands>
+ <Add after="avr-size $(TARGET_OUTPUT_FILE)" />
+ <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
+ <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
+ <Add after="avr-objdump -h -S $(TARGET_OUTPUT_FILE) &gt; $(TARGET_OUTPUT_FILE).lss" />
+ <Add after="./burn" />
+ </ExtraCommands>
+ <Unit filename="../ArduinoLib328p/HardwareSerial.h" />
+ <Unit filename="../ArduinoLib328p/Print.h" />
+ <Unit filename="../ArduinoLib328p/Stream.h" />
+ <Unit filename="../ArduinoLib328p/WCharacter.h" />
+ <Unit filename="../ArduinoLib328p/WConstants.h" />
+ <Unit filename="../ArduinoLib328p/WProgram.h" />
+ <Unit filename="../ArduinoLib328p/WString.h" />
+ <Unit filename="../ArduinoLib328p/binary.h" />
+ <Unit filename="../ArduinoLib328p/pins_arduino.h" />
+ <Unit filename="../ArduinoLib328p/wiring.h" />
+ <Unit filename="../ArduinoLib328p/wiring_private.h" />
+ <Unit filename="burn" />
+ <Unit filename="main.cpp" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ <lib_finder disable_auto="1" />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/blinktest_328p/blinktest_328p.depend b/blinktest_328p/blinktest_328p.depend
new file mode 100644
index 0000000..9f1e890
--- /dev/null
+++ b/blinktest_328p/blinktest_328p.depend
@@ -0,0 +1,43 @@
+# depslib dependency file v1.0
+1320937395 source:/home/tim/workspace/electic_AVR/blinktest_328p/main.cpp
+ <WProgram.h>
+
+1319028644 /home/tim/workspace/electic_AVR/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_AVR/arduinoSrc0022/wiring.h
+ <avr/io.h>
+ <stdlib.h>
+ "binary.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/binary.h
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WCharacter.h
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WString.h
+ <stdlib.h>
+ <string.h>
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.h
+ <inttypes.h>
+ "Stream.h"
+ "usb_api.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Stream.h
+ <inttypes.h>
+ "Print.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Print.h
+ <inttypes.h>
+ <stdio.h>
+ "WString.h"
+
diff --git a/blinktest_328p/blinktest_328p.layout b/blinktest_328p/blinktest_328p.layout
new file mode 100644
index 0000000..9010247
--- /dev/null
+++ b/blinktest_328p/blinktest_328p.layout
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Release" />
+ <File name="burn" open="0" top="0" tabpos="1">
+ <Cursor position="48" topLine="0" />
+ </File>
+ <File name="main.cpp" open="1" top="0" tabpos="1">
+ <Cursor position="104" topLine="0" />
+ </File>
+</CodeBlocks_layout_file>
diff --git a/blinktest_328p/burn b/blinktest_328p/burn
new file mode 100755
index 0000000..8fe9ec1
--- /dev/null
+++ b/blinktest_328p/burn
@@ -0,0 +1 @@
+avrdude -p m328p -c avrispmkII -P usb -b 1000000 -F -u -U flash:w:bin/Release/blinktest_328p.elf.hex
diff --git a/blinktest_328p/main.cpp b/blinktest_328p/main.cpp
new file mode 100644
index 0000000..f96336c
--- /dev/null
+++ b/blinktest_328p/main.cpp
@@ -0,0 +1,28 @@
+extern "C" void __cxa_pure_virtual(void); //for C++ defines
+
+/*
+Blink test
+
+F_CPU setting is not working
+
+*/
+
+
+#include <WProgram.h> //import main Arduino header file
+
+
+int main(){
+
+ init(); //-- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ pinMode(13, OUTPUT);
+
+
+
+ while(1) {
+ digitalWrite(13, HIGH); // set the LED on
+ delay(1000); // wait for a second
+ digitalWrite(13, LOW); // set the LED off
+ delay(1000); // wait for a second
+ }
+}
+
diff --git a/blinktest_328p/obj/Release/main.o b/blinktest_328p/obj/Release/main.o
new file mode 100644
index 0000000..8370812
--- /dev/null
+++ b/blinktest_328p/obj/Release/main.o
Binary files differ
diff --git a/electicAndroid/.classpath b/electicAndroid/.classpath
new file mode 100644
index 0000000..6efcbb7
--- /dev/null
+++ b/electicAndroid/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/electicAndroid/.project b/electicAndroid/.project
new file mode 100644
index 0000000..f9aa56f
--- /dev/null
+++ b/electicAndroid/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>BluetoothChat</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/electicAndroid/AndroidManifest.xml b/electicAndroid/AndroidManifest.xml
new file mode 100644
index 0000000..caea1eb
--- /dev/null
+++ b/electicAndroid/AndroidManifest.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ android:versionCode="1"
+ android:versionName="1.0" package="com.futureproof.adaptics.electic">
+ <uses-sdk minSdkVersion="6" />
+ <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+ <uses-permission android:name="android.permission.BLUETOOTH" />
+
+ <application android:label="@string/app_name"
+ android:icon="@drawable/app_icon" android:debuggable="true">
+ <activity android:name=".Electic"
+ android:label="@string/app_name"
+ android:configChanges="orientation|keyboardHidden">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ <activity android:name="com.futureproof.adaptics.electic.DeviceListActivity"
+ android:label="@string/select_device"
+ android:theme="@android:style/Theme.Dialog"
+ android:configChanges="orientation|keyboardHidden" />
+ </application>
+</manifest>
diff --git a/electicAndroid/bin/classes.dex b/electicAndroid/bin/classes.dex
new file mode 100644
index 0000000..1016160
--- /dev/null
+++ b/electicAndroid/bin/classes.dex
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectThread.class b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectThread.class
new file mode 100644
index 0000000..0bacc78
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectThread.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectedThread.class b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectedThread.class
new file mode 100644
index 0000000..4fc5fa3
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth$ConnectedThread.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth.class b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth.class
new file mode 100644
index 0000000..7e96169
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/AdapticsBluetooth.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$1.class b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$1.class
new file mode 100644
index 0000000..0f77230
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$1.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$2.class b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$2.class
new file mode 100644
index 0000000..8893047
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$2.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$3.class b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$3.class
new file mode 100644
index 0000000..ddbb75c
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity$3.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity.class b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity.class
new file mode 100644
index 0000000..502440a
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/DeviceListActivity.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$1.class b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$1.class
new file mode 100644
index 0000000..8c80152
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$1.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$2.class b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$2.class
new file mode 100644
index 0000000..79a3bcd
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic$2.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/Electic.class b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic.class
new file mode 100644
index 0000000..1b6fba2
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/Electic.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$attr.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$attr.class
new file mode 100644
index 0000000..eebe2bc
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$attr.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$drawable.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$drawable.class
new file mode 100644
index 0000000..043f5b2
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$drawable.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$id.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$id.class
new file mode 100644
index 0000000..a72686e
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$id.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$layout.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$layout.class
new file mode 100644
index 0000000..65e3e00
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$layout.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$menu.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$menu.class
new file mode 100644
index 0000000..f918045
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$menu.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R$string.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R$string.class
new file mode 100644
index 0000000..1c3724b
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R$string.class
Binary files differ
diff --git a/electicAndroid/bin/com/futureproof/adaptics/electic/R.class b/electicAndroid/bin/com/futureproof/adaptics/electic/R.class
new file mode 100644
index 0000000..1d95ec5
--- /dev/null
+++ b/electicAndroid/bin/com/futureproof/adaptics/electic/R.class
Binary files differ
diff --git a/electicAndroid/bin/electicAndroid.apk b/electicAndroid/bin/electicAndroid.apk
new file mode 100644
index 0000000..4b58706
--- /dev/null
+++ b/electicAndroid/bin/electicAndroid.apk
Binary files differ
diff --git a/electicAndroid/bin/resources.ap_ b/electicAndroid/bin/resources.ap_
new file mode 100644
index 0000000..550355c
--- /dev/null
+++ b/electicAndroid/bin/resources.ap_
Binary files differ
diff --git a/electicAndroid/default.properties b/electicAndroid/default.properties
new file mode 100644
index 0000000..66db0d1
--- /dev/null
+++ b/electicAndroid/default.properties
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-10
diff --git a/electicAndroid/gen/com/futureproof/adaptics/electic/R.java b/electicAndroid/gen/com/futureproof/adaptics/electic/R.java
new file mode 100644
index 0000000..2c0a7e3
--- /dev/null
+++ b/electicAndroid/gen/com/futureproof/adaptics/electic/R.java
@@ -0,0 +1,97 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package com.futureproof.adaptics.electic;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int app_icon=0x7f020000;
+ }
+ public static final class id {
+ public static final int alarmBox=0x7f060014;
+ public static final int button_scan=0x7f060006;
+ public static final int discoverable=0x7f060022;
+ public static final int fadcText=0x7f06000b;
+ public static final int fadcText1=0x7f06000c;
+ public static final int insecure_connect_scan=0x7f060021;
+ public static final int new_devices=0x7f060005;
+ public static final int paired_devices=0x7f060003;
+ public static final int pmaxBox=0x7f060010;
+ public static final int pminBox=0x7f060012;
+ public static final int rb_01=0x7f06001e;
+ public static final int rb_05=0x7f06001d;
+ public static final int rb_2=0x7f06001c;
+ public static final int sadcText=0x7f060008;
+ public static final int sadcText1=0x7f060009;
+ public static final int samplespeed_group=0x7f06001b;
+ public static final int secure_connect_scan=0x7f060020;
+ public static final int tableLayout1=0x7f06000e;
+ public static final int tableLayout2=0x7f060016;
+ public static final int tableRow1=0x7f06000f;
+ public static final int tableRow2=0x7f060011;
+ public static final int tableRow3=0x7f060013;
+ public static final int tableRow4=0x7f060015;
+ public static final int tableRow5=0x7f060017;
+ public static final int tableRow6=0x7f060019;
+ public static final int tableRow7=0x7f06001a;
+ public static final int tableRow8=0x7f06001f;
+ public static final int textView1=0x7f060018;
+ public static final int textView2=0x7f060007;
+ public static final int textView3=0x7f06000a;
+ public static final int textView5=0x7f06000d;
+ public static final int title_left_text=0x7f060000;
+ public static final int title_new_devices=0x7f060004;
+ public static final int title_paired_devices=0x7f060002;
+ public static final int title_right_text=0x7f060001;
+ }
+ public static final class layout {
+ public static final int custom_title=0x7f030000;
+ public static final int device_list=0x7f030001;
+ public static final int device_name=0x7f030002;
+ public static final int main=0x7f030003;
+ }
+ public static final class menu {
+ public static final int option_menu=0x7f050000;
+ }
+ public static final class string {
+ public static final int app_name=0x7f040000;
+ public static final int bt_not_enabled_leaving=0x7f040003;
+ public static final int button_scan=0x7f04000d;
+ public static final int discoverable=0x7f040010;
+ public static final int insecure_connect=0x7f04000f;
+ public static final int labelAlarm=0x7f040016;
+ public static final int label_01=0x7f04001a;
+ public static final int label_05=0x7f040019;
+ public static final int label_2=0x7f040017;
+ public static final int label_PMAX=0x7f040014;
+ public static final int label_PMIN=0x7f040015;
+ public static final int label_flags=0x7f040013;
+ public static final int label_interval=0x7f040018;
+ public static final int none_found=0x7f04000a;
+ public static final int none_paired=0x7f040009;
+ public static final int not_connected=0x7f040002;
+ /** DeviceListActivity
+ */
+ public static final int scanning=0x7f040007;
+ /** Options Menu
+ */
+ public static final int secure_connect=0x7f04000e;
+ public static final int select_device=0x7f040008;
+ /** BluetoothChat
+ */
+ public static final int send=0x7f040001;
+ public static final int title_connected_to=0x7f040005;
+ public static final int title_connecting=0x7f040004;
+ public static final int title_fadc=0x7f040012;
+ public static final int title_not_connected=0x7f040006;
+ public static final int title_other_devices=0x7f04000c;
+ public static final int title_paired_devices=0x7f04000b;
+ public static final int title_sadc=0x7f040011;
+ }
+}
diff --git a/electicAndroid/res/drawable-hdpi/app_icon.png b/electicAndroid/res/drawable-hdpi/app_icon.png
new file mode 100644
index 0000000..8836ff6
--- /dev/null
+++ b/electicAndroid/res/drawable-hdpi/app_icon.png
Binary files differ
diff --git a/electicAndroid/res/drawable/app_icon.png b/electicAndroid/res/drawable/app_icon.png
new file mode 100644
index 0000000..d3e09a5
--- /dev/null
+++ b/electicAndroid/res/drawable/app_icon.png
Binary files differ
diff --git a/electicAndroid/res/layout/custom_title.xml b/electicAndroid/res/layout/custom_title.xml
new file mode 100644
index 0000000..57eb6b4
--- /dev/null
+++ b/electicAndroid/res/layout/custom_title.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ >
+ <TextView android:id="@+id/title_left_text"
+ android:layout_alignParentLeft="true"
+ android:ellipsize="end"
+ android:singleLine="true"
+ style="?android:attr/windowTitleStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ />
+ <TextView android:id="@+id/title_right_text"
+ android:layout_alignParentRight="true"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:textColor="#fff"
+ android:layout_weight="1"
+ />
+</RelativeLayout> \ No newline at end of file
diff --git a/electicAndroid/res/layout/device_list.xml b/electicAndroid/res/layout/device_list.xml
new file mode 100644
index 0000000..395695f
--- /dev/null
+++ b/electicAndroid/res/layout/device_list.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ >
+ <TextView android:id="@+id/title_paired_devices"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/title_paired_devices"
+ android:visibility="gone"
+ android:background="#666"
+ android:textColor="#fff"
+ android:paddingLeft="5dp"
+ />
+ <ListView android:id="@+id/paired_devices"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:stackFromBottom="true"
+ android:layout_weight="1"
+ />
+ <TextView android:id="@+id/title_new_devices"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/title_other_devices"
+ android:visibility="gone"
+ android:background="#666"
+ android:textColor="#fff"
+ android:paddingLeft="5dp"
+ />
+ <ListView android:id="@+id/new_devices"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:stackFromBottom="true"
+ android:layout_weight="2"
+ />
+ <Button android:id="@+id/button_scan"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/button_scan"
+ />
+</LinearLayout> \ No newline at end of file
diff --git a/electicAndroid/res/layout/device_name.xml b/electicAndroid/res/layout/device_name.xml
new file mode 100644
index 0000000..8fa358c
--- /dev/null
+++ b/electicAndroid/res/layout/device_name.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textSize="18sp"
+ android:padding="5dp"
+/> \ No newline at end of file
diff --git a/electicAndroid/res/layout/main.xml b/electicAndroid/res/layout/main.xml
new file mode 100644
index 0000000..bd4559a
--- /dev/null
+++ b/electicAndroid/res/layout/main.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:weightSum="1">
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <TextView android:layout_height="wrap_content" android:text="@string/title_sadc" android:layout_width="wrap_content" android:id="@+id/textView2"></TextView>
+ </LinearLayout>
+ <TextView android:layout_height="wrap_content" android:text="TextView" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/sadcText" android:layout_width="146dp"></TextView>
+ <TextView android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/sadcText1"></TextView>
+ <TextView android:layout_height="wrap_content" android:text="@string/title_fadc" android:layout_width="wrap_content" android:id="@+id/textView3"></TextView>
+ <TextView android:layout_height="wrap_content" android:text="TextView" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/fadcText" android:layout_width="139dp"></TextView>
+ <TextView android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/fadcText1"></TextView>
+ <TextView android:layout_height="wrap_content" android:text="@string/label_flags" android:layout_width="wrap_content" android:id="@+id/textView5"></TextView>
+ <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1" android:layout_weight="0.27">
+ <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/label_PMAX" android:id="@+id/pmaxBox"></CheckBox>
+ </TableRow>
+ <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/label_PMIN" android:id="@+id/pminBox"></CheckBox>
+ </TableRow>
+ <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ <CheckBox android:text="@string/labelAlarm" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/alarmBox"></CheckBox>
+ </TableRow>
+ <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content"></TableRow>
+ </TableLayout>
+ <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout2" android:layout_weight="0.38">
+ <TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ <TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:id="@+id/textView1" android:text="@string/label_interval"></TextView>
+ </TableRow>
+ <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ </TableRow>
+ <TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content">
+ <RadioGroup android:layout_height="wrap_content" android:id="@+id/samplespeed_group" android:layout_width="wrap_content">
+ <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/label_2" android:id="@+id/rb_2"></RadioButton>
+ <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/label_05" android:id="@+id/rb_05"></RadioButton>
+ <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/label_01" android:id="@+id/rb_01"></RadioButton>
+ </RadioGroup>
+ </TableRow>
+ <TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content"></TableRow>
+ </TableLayout>
+</LinearLayout>
diff --git a/electicAndroid/res/menu/option_menu.xml b/electicAndroid/res/menu/option_menu.xml
new file mode 100644
index 0000000..18de725
--- /dev/null
+++ b/electicAndroid/res/menu/option_menu.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/secure_connect_scan"
+ android:icon="@android:drawable/ic_menu_search"
+ android:title="@string/secure_connect" />
+ <item android:id="@+id/insecure_connect_scan"
+ android:icon="@android:drawable/ic_menu_search"
+ android:title="@string/insecure_connect" />
+ <item android:id="@+id/discoverable"
+ android:icon="@android:drawable/ic_menu_mylocation"
+ android:title="@string/discoverable" />
+</menu>
diff --git a/electicAndroid/res/values/strings.xml b/electicAndroid/res/values/strings.xml
new file mode 100644
index 0000000..0aaa180
--- /dev/null
+++ b/electicAndroid/res/values/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <string name="app_name">Electic</string>
+
+ <!-- BluetoothChat -->
+ <string name="send">Send</string>
+ <string name="not_connected">You are not connected to a device</string>
+ <string name="bt_not_enabled_leaving">Bluetooth was not enabled. Leaving Bluetooth Chat.</string>
+ <string name="title_connecting">connecting...</string>
+ <string name="title_connected_to">connected: </string>
+ <string name="title_not_connected">not connected</string>
+
+ <!-- DeviceListActivity -->
+ <string name="scanning">scanning for devices...</string>
+ <string name="select_device">select a device to connect</string>
+ <string name="none_paired">No devices have been paired</string>
+ <string name="none_found">No devices found</string>
+ <string name="title_paired_devices">Paired Devices</string>
+ <string name="title_other_devices">Other Available Devices</string>
+ <string name="button_scan">Scan for devices</string>
+
+ <!-- Options Menu -->
+ <string name="secure_connect">Connect a device - Secure</string>
+ <string name="insecure_connect">Connect a device - Insecure</string>
+ <string name="discoverable">Make discoverable</string>
+ <string name="title_sadc">sadc</string>
+ <string name="title_fadc">fadc</string>
+ <string name="label_flags">flags</string>
+ <string name="label_PMAX">PMAX</string>
+ <string name="label_PMIN">PMIN</string>
+ <string name="labelAlarm">Alarm</string>
+ <string name="label_2">2</string>
+ <string name="label_interval">interval</string>
+ <string name="label_05">0.5</string>
+ <string name="label_01">0.1</string>
+</resources>
diff --git a/electicAndroid/src/com/futureproof/adaptics/electic/AdapticsBluetooth.java b/electicAndroid/src/com/futureproof/adaptics/electic/AdapticsBluetooth.java
new file mode 100644
index 0000000..72ff1d4
--- /dev/null
+++ b/electicAndroid/src/com/futureproof/adaptics/electic/AdapticsBluetooth.java
@@ -0,0 +1,520 @@
+/*
+ * Tim Redfern 2011
+ * based on android - bluetoothchat
+ *
+ * 001 refactor
+ * 002 correct SDP to connect to bluetoothbee
+ * 003 decoding messages, data doesn't seem to make sense
+ * 004 building interface widgets to accept it
+ *
+ * filter based on SDP?
+ */
+
+package com.futureproof.adaptics.electic;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.UUID;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothSocket;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+/**
+ Adaptics bluetooth connects to a single device at a time, SPP, host-slave model
+ */
+public class AdapticsBluetooth {
+ // Debugging
+ private static final String TAG = "AdapticsBluetooth";
+ private static final boolean D = true;
+
+ /*
+ // Name for the SDP record when creating server socket
+ private static final String NAME_SECURE = "BluetoothChatSecure";
+ private static final String NAME_INSECURE = "BluetoothChatInsecure";
+ */
+
+ // Unique UUID for this application
+ private static final UUID MY_UUID =
+ UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
+
+ // Member fields
+ private final BluetoothAdapter mAdapter;
+ private final Handler mHandler;
+ //private AcceptThread mSecureAcceptThread;
+ //private AcceptThread mInsecureAcceptThread;
+ private ConnectThread mConnectThread;
+ private ConnectedThread mConnectedThread;
+ private int mState;
+
+ // Constants that indicate the current connection state
+ public static final int STATE_NONE = 0; // we're doing nothing
+ //public static final int STATE_LISTEN = 1; // now listening for incoming connections
+ public static final int STATE_CONNECTING = 2; // now initiating an outgoing connection
+ public static final int STATE_CONNECTED = 3; // now connected to a remote device
+
+ /**
+ * Constructor. Prepares a new BluetoothChat session.
+ * @param context The UI Activity Context
+ * @param handler A Handler to send messages back to the UI Activity
+ */
+ public AdapticsBluetooth(Context context, Handler handler) {
+ mAdapter = BluetoothAdapter.getDefaultAdapter();
+ mState = STATE_NONE;
+ mHandler = handler;
+ }
+
+ /**
+ * Set the current state of the chat connection
+ * @param state An integer defining the current connection state
+ */
+ private synchronized void setState(int state) {
+ if (D) Log.d(TAG, "setState() " + mState + " -> " + state);
+ mState = state;
+
+ // Give the new state to the Handler so the UI Activity can update
+ mHandler.obtainMessage(Electic.MESSAGE_STATE_CHANGE, state, -1).sendToTarget();
+ }
+
+ /**
+ * Return the current connection state. */
+ public synchronized int getState() {
+ return mState;
+ }
+
+ /**
+ * Start the chat service. Specifically start AcceptThread to begin a
+ * session in listening (server) mode. Called by the Activity onResume() */
+ public synchronized void start() {
+ if (D) Log.d(TAG, "start");
+
+ // Cancel any thread attempting to make a connection
+ if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;}
+
+ // Cancel any thread currently running a connection
+ if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;}
+
+ setState(STATE_NONE);
+
+ /*
+ // Start the thread to listen on a BluetoothServerSocket
+ if (mSecureAcceptThread == null) {
+ mSecureAcceptThread = new AcceptThread(true);
+ mSecureAcceptThread.start();
+ }
+ if (mInsecureAcceptThread == null) {
+ mInsecureAcceptThread = new AcceptThread(false);
+ mInsecureAcceptThread.start();
+ }
+ */
+ }
+
+ /**
+ * Start the ConnectThread to initiate a connection to a remote device.
+ * @param device The BluetoothDevice to connect
+ * @param secure Socket Security type - Secure (true) , Insecure (false)
+ */
+ public synchronized void connect(BluetoothDevice device) {
+ if (D) Log.d(TAG, "connect to: " + device);
+
+ // Cancel any thread attempting to make a connection
+ if (mState == STATE_CONNECTING) {
+ if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;}
+ }
+
+ // Cancel any thread currently running a connection
+ if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;}
+
+ // Start the thread to connect with the given device
+ mConnectThread = new ConnectThread(device);
+ mConnectThread.start();
+ setState(STATE_CONNECTING);
+ }
+
+ /**
+ * Start the ConnectedThread to begin managing a Bluetooth connection
+ * @param socket The BluetoothSocket on which the connection was made
+ * @param device The BluetoothDevice that has been connected
+ */
+ public synchronized void connected(BluetoothSocket socket, BluetoothDevice device) {
+ if (D) Log.d(TAG, "connected");
+
+ // Cancel the thread that completed the connection
+ if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;}
+
+ // Cancel any thread currently running a connection
+ if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;}
+
+ /*
+ // Cancel the accept thread because we only want to connect to one device
+ if (mSecureAcceptThread != null) {
+ mSecureAcceptThread.cancel();
+ mSecureAcceptThread = null;
+ }
+ if (mInsecureAcceptThread != null) {
+ mInsecureAcceptThread.cancel();
+ mInsecureAcceptThread = null;
+ }
+ */
+
+ // Start the thread to manage the connection and perform transmissions
+ mConnectedThread = new ConnectedThread(socket);
+ mConnectedThread.start();
+
+ // Send the name of the connected device back to the UI Activity
+ Message msg = mHandler.obtainMessage(Electic.MESSAGE_DEVICE_NAME);
+ Bundle bundle = new Bundle();
+ bundle.putString(Electic.DEVICE_NAME, device.getName());
+ msg.setData(bundle);
+ mHandler.sendMessage(msg);
+
+ setState(STATE_CONNECTED);
+ }
+
+ /**
+ * Stop all threads
+ */
+ public synchronized void stop() {
+ if (D) Log.d(TAG, "stop");
+
+ if (mConnectThread != null) {
+ mConnectThread.cancel();
+ mConnectThread = null;
+ }
+
+ if (mConnectedThread != null) {
+ mConnectedThread.cancel();
+ mConnectedThread = null;
+ }
+
+ /*
+ if (mSecureAcceptThread != null) {
+ mSecureAcceptThread.cancel();
+ mSecureAcceptThread = null;
+ }
+
+ if (mInsecureAcceptThread != null) {
+ mInsecureAcceptThread.cancel();
+ mInsecureAcceptThread = null;
+ }
+ */
+ setState(STATE_NONE);
+ }
+
+ /**
+ * Write to the ConnectedThread in an unsynchronized manner
+ * @param out The bytes to write
+ * @see ConnectedThread#write(byte[])
+ */
+ public void write(byte[] out) {
+ // Create temporary object
+ ConnectedThread r;
+ // Synchronize a copy of the ConnectedThread
+ synchronized (this) {
+ if (mState != STATE_CONNECTED) return;
+ r = mConnectedThread;
+ }
+ // Perform the write unsynchronized
+ r.write(out);
+ }
+
+ /**
+ * Indicate that the connection attempt failed and notify the UI Activity.
+ */
+ private void connectionFailed() {
+ // Send a failure message back to the Activity
+ Message msg = mHandler.obtainMessage(Electic.MESSAGE_TOAST);
+ Bundle bundle = new Bundle();
+ bundle.putString(Electic.TOAST, "Unable to connect device");
+ msg.setData(bundle);
+ mHandler.sendMessage(msg);
+
+ // Start the service over to restart listening mode
+ AdapticsBluetooth.this.start();
+ }
+
+ /**
+ * Indicate that the connection was lost and notify the UI Activity.
+ */
+ private void connectionLost() {
+ // Send a failure message back to the Activity
+ Message msg = mHandler.obtainMessage(Electic.MESSAGE_TOAST);
+ Bundle bundle = new Bundle();
+ bundle.putString(Electic.TOAST, "Device connection was lost");
+ msg.setData(bundle);
+ mHandler.sendMessage(msg);
+
+ // Start the service over to restart listening mode
+ AdapticsBluetooth.this.start();
+ }
+
+ /**
+ * This thread runs while listening for incoming connections. It behaves
+ * like a server-side client. It runs until a connection is accepted
+ * (or until cancelled).
+ */
+
+ /*
+ private class AcceptThread extends Thread {
+ // The local server socket
+ private final BluetoothServerSocket mmServerSocket;
+ private String mSocketType;
+
+ public AcceptThread(boolean secure) {
+ BluetoothServerSocket tmp = null;
+ mSocketType = secure ? "Secure":"Insecure";
+
+ // Create a new listening server socket
+ try {
+ if (secure) {
+ tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE,
+ MY_UUID_SECURE);
+ } else {
+ tmp = mAdapter.listenUsingInsecureRfcommWithServiceRecord(
+ NAME_INSECURE, MY_UUID_INSECURE);
+ }
+ } catch (IOException e) {
+ Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);
+ }
+ mmServerSocket = tmp;
+ }
+
+ public void run() {
+ if (D) Log.d(TAG, "Socket Type: " + mSocketType +
+ "BEGIN mAcceptThread" + this);
+ setName("AcceptThread" + mSocketType);
+
+ BluetoothSocket socket = null;
+
+ // Listen to the server socket if we're not connected
+ while (mState != STATE_CONNECTED) {
+ try {
+ // This is a blocking call and will only return on a
+ // successful connection or an exception
+ socket = mmServerSocket.accept();
+ } catch (IOException e) {
+ Log.e(TAG, "Socket Type: " + mSocketType + "accept() failed", e);
+ break;
+ }
+
+ // If a connection was accepted
+ if (socket != null) {
+ synchronized (AdapticsBluetooth.this) {
+ switch (mState) {
+ case STATE_LISTEN:
+ case STATE_CONNECTING:
+ // Situation normal. Start the connected thread.
+ connected(socket, socket.getRemoteDevice(),
+ mSocketType);
+ break;
+ case STATE_NONE:
+ case STATE_CONNECTED:
+ // Either not ready or already connected. Terminate new socket.
+ try {
+ socket.close();
+ } catch (IOException e) {
+ Log.e(TAG, "Could not close unwanted socket", e);
+ }
+ break;
+ }
+ }
+ }
+ }
+ if (D) Log.i(TAG, "END mAcceptThread, socket Type: " + mSocketType);
+
+ }
+
+ public void cancel() {
+ if (D) Log.d(TAG, "Socket Type" + mSocketType + "cancel " + this);
+ try {
+ mmServerSocket.close();
+ } catch (IOException e) {
+ Log.e(TAG, "Socket Type" + mSocketType + "close() of server failed", e);
+ }
+ }
+ }
+*/
+
+ /**
+ * This thread runs while attempting to make an outgoing connection
+ * with a device. It runs straight through; the connection either
+ * succeeds or fails.
+ */
+ private class ConnectThread extends Thread {
+ private final BluetoothSocket mmSocket;
+ private final BluetoothDevice mmDevice;
+
+ public ConnectThread(BluetoothDevice device) {
+ mmDevice = device;
+ BluetoothSocket tmp = null;
+
+
+ // Get a BluetoothSocket for a connection with the
+ // given BluetoothDevice
+
+ //
+ // http://stackoverflow.com/questions/3397071/android-bluetooth-service-discovery-failed-exception
+ //
+ try {
+ tmp = device.createInsecureRfcommSocketToServiceRecord(
+ MY_UUID);
+ } catch (IOException e) {
+ Log.e(TAG, "Socket create() failed", e);
+ }
+ mmSocket = tmp;
+ }
+
+ public void run() {
+ Log.i(TAG, "BEGIN mConnectThread");
+ setName("ConnectThread");
+
+ // Always cancel discovery because it will slow down a connection
+ mAdapter.cancelDiscovery();
+
+ // Make a connection to the BluetoothSocket
+ try {
+ // This is a blocking call and will only return on a
+ // successful connection or an exception
+ mmSocket.connect();
+ } catch (IOException e) {
+ // Close the socket
+ try {
+ mmSocket.close();
+ } catch (IOException e2) {
+ Log.e(TAG, "unable to close() socket during connection failure", e2);
+ }
+ connectionFailed();
+ return;
+ }
+
+ // Reset the ConnectThread because we're done
+ synchronized (AdapticsBluetooth.this) {
+ mConnectThread = null;
+ }
+
+ // Start the connected thread
+ connected(mmSocket, mmDevice);
+ }
+
+ public void cancel() {
+ try {
+ mmSocket.close();
+ } catch (IOException e) {
+ Log.e(TAG, "close() of connect socket failed", e);
+ }
+ }
+ }
+
+ /**
+ * This thread runs during a connection with a remote device.
+ * It handles all incoming and outgoing transmissions.
+ */
+ private class ConnectedThread extends Thread {
+ private final BluetoothSocket mmSocket;
+ private final InputStream mmInStream;
+ private final OutputStream mmOutStream;
+
+ public ConnectedThread(BluetoothSocket socket) {
+ Log.d(TAG, "create ConnectedThread");
+ mmSocket = socket;
+ InputStream tmpIn = null;
+ OutputStream tmpOut = null;
+
+ // Get the BluetoothSocket input and output streams
+ try {
+ tmpIn = socket.getInputStream();
+ tmpOut = socket.getOutputStream();
+ } catch (IOException e) {
+ Log.e(TAG, "temp sockets not created", e);
+ }
+
+ mmInStream = tmpIn;
+ mmOutStream = tmpOut;
+ }
+
+ public void run() {
+ Log.i(TAG, "BEGIN mConnectedThread");
+ byte[] temp = new byte[1024];
+ byte[] buffer = new byte[1024];
+ int bufferPtr=0;
+ byte[] message;
+ int bytes;
+
+ // Keep listening to the InputStream while connected
+ while (true) {
+ try {
+ // Read from the InputStream
+ bytes = mmInStream.read(temp);
+ /*
+ * check the message segmentation and send on the payload
+ * keep a buffer of incoming messages
+ * look for the message signature
+ * and begin reading from there
+ *
+ */
+ //String debugMess="bytes:"+bytes+" ";
+ //String sendMess="";
+ for (int i=0;i<bytes;i++) {
+ buffer[bufferPtr+i]=temp[i];
+ //debugMess+=buffer[bufferPtr+i]+" ";
+ }
+ //Log.i(TAG, debugMess);
+ bufferPtr+=bytes;
+ for (int i=0;i<bufferPtr-3;i++){ //message must be at least 1 byte
+ if (buffer[i]==-16&&buffer[i+1]==0&&bufferPtr>i+2+buffer[i+2]) {
+ int msgLen=buffer[i+2];
+ message = new byte[msgLen];
+ for (int j=0;j<msgLen;j++){
+ message[j]=buffer[i+j+3];
+ //sendMess+=buffer[i+j+3]+" ";
+ }
+ for (int k=0;k<bufferPtr-(i+msgLen+3);k++){
+ buffer[k]=buffer[i+msgLen+3+k];
+ }
+ bufferPtr-=(i+msgLen+3);
+ // Send the obtained bytes to the UI Activity
+ mHandler.obtainMessage(Electic.MESSAGE_READ, bytes, -1, message)
+ .sendToTarget();
+ //Log.i(TAG, "++++SENT: "+sendMess);
+ }
+ }
+
+ } catch (IOException e) {
+ Log.e(TAG, "disconnected", e);
+ connectionLost();
+ break;
+ }
+ }
+ }
+
+ /**
+ * Write to the connected OutStream.
+ * @param buffer The bytes to write
+ */
+ public void write(byte[] buffer) {
+ try {
+ mmOutStream.write(buffer);
+
+ // Share the sent message back to the UI Activity
+ mHandler.obtainMessage(Electic.MESSAGE_WRITE, -1, -1, buffer)
+ .sendToTarget();
+ } catch (IOException e) {
+ Log.e(TAG, "Exception during write", e);
+ }
+ }
+
+ public void cancel() {
+ try {
+ mmSocket.close();
+ } catch (IOException e) {
+ Log.e(TAG, "close() of connect socket failed", e);
+ }
+ }
+ }
+}
diff --git a/electicAndroid/src/com/futureproof/adaptics/electic/DeviceListActivity.java b/electicAndroid/src/com/futureproof/adaptics/electic/DeviceListActivity.java
new file mode 100644
index 0000000..27077ca
--- /dev/null
+++ b/electicAndroid/src/com/futureproof/adaptics/electic/DeviceListActivity.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.futureproof.adaptics.electic;
+
+import java.util.Set;
+
+import com.futureproof.adaptics.electic.R;
+
+import android.app.Activity;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.Window;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.AdapterView.OnItemClickListener;
+
+/**
+ * This Activity appears as a dialog. It lists any paired devices and
+ * devices detected in the area after discovery. When a device is chosen
+ * by the user, the MAC address of the device is sent back to the parent
+ * Activity in the result Intent.
+ */
+public class DeviceListActivity extends Activity {
+ // Debugging
+ private static final String TAG = "DeviceListActivity";
+ private static final boolean D = true;
+
+ // Return Intent extra
+ public static String EXTRA_DEVICE_ADDRESS = "device_address";
+
+ // Member fields
+ private BluetoothAdapter mBtAdapter;
+ private ArrayAdapter<String> mPairedDevicesArrayAdapter;
+ private ArrayAdapter<String> mNewDevicesArrayAdapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // Setup the window
+ requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+ setContentView(R.layout.device_list);
+
+ // Set result CANCELED incase the user backs out
+ setResult(Activity.RESULT_CANCELED);
+
+ // Initialize the button to perform device discovery
+ Button scanButton = (Button) findViewById(R.id.button_scan);
+ scanButton.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ doDiscovery();
+ v.setVisibility(View.GONE);
+ }
+ });
+
+ // Initialize array adapters. One for already paired devices and
+ // one for newly discovered devices
+ mPairedDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.device_name);
+ mNewDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.device_name);
+
+ // Find and set up the ListView for paired devices
+ ListView pairedListView = (ListView) findViewById(R.id.paired_devices);
+ pairedListView.setAdapter(mPairedDevicesArrayAdapter);
+ pairedListView.setOnItemClickListener(mDeviceClickListener);
+
+ // Find and set up the ListView for newly discovered devices
+ ListView newDevicesListView = (ListView) findViewById(R.id.new_devices);
+ newDevicesListView.setAdapter(mNewDevicesArrayAdapter);
+ newDevicesListView.setOnItemClickListener(mDeviceClickListener);
+
+ // Register for broadcasts when a device is discovered
+ IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
+ this.registerReceiver(mReceiver, filter);
+
+ // Register for broadcasts when discovery has finished
+ filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
+ this.registerReceiver(mReceiver, filter);
+
+ // Get the local Bluetooth adapter
+ mBtAdapter = BluetoothAdapter.getDefaultAdapter();
+
+ // Get a set of currently paired devices
+ Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();
+
+ // If there are paired devices, add each one to the ArrayAdapter
+ if (pairedDevices.size() > 0) {
+ findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);
+ for (BluetoothDevice device : pairedDevices) {
+ mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
+ }
+ } else {
+ String noDevices = getResources().getText(R.string.none_paired).toString();
+ mPairedDevicesArrayAdapter.add(noDevices);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+
+ // Make sure we're not doing discovery anymore
+ if (mBtAdapter != null) {
+ mBtAdapter.cancelDiscovery();
+ }
+
+ // Unregister broadcast listeners
+ this.unregisterReceiver(mReceiver);
+ }
+
+ /**
+ * Start device discover with the BluetoothAdapter
+ */
+ private void doDiscovery() {
+ if (D) Log.d(TAG, "doDiscovery()");
+
+ // Indicate scanning in the title
+ setProgressBarIndeterminateVisibility(true);
+ setTitle(R.string.scanning);
+
+ // Turn on sub-title for new devices
+ findViewById(R.id.title_new_devices).setVisibility(View.VISIBLE);
+
+ // If we're already discovering, stop it
+ if (mBtAdapter.isDiscovering()) {
+ mBtAdapter.cancelDiscovery();
+ }
+
+ // Request discover from BluetoothAdapter
+ mBtAdapter.startDiscovery();
+ }
+
+ // The on-click listener for all devices in the ListViews
+ private OnItemClickListener mDeviceClickListener = new OnItemClickListener() {
+ public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
+ // Cancel discovery because it's costly and we're about to connect
+ mBtAdapter.cancelDiscovery();
+
+ // Get the device MAC address, which is the last 17 chars in the View
+ String info = ((TextView) v).getText().toString();
+ String address = info.substring(info.length() - 17);
+
+ // Create the result Intent and include the MAC address
+ Intent intent = new Intent();
+ intent.putExtra(EXTRA_DEVICE_ADDRESS, address);
+
+ // Set result and finish this Activity
+ setResult(Activity.RESULT_OK, intent);
+ finish();
+ }
+ };
+
+ // The BroadcastReceiver that listens for discovered devices and
+ // changes the title when discovery is finished
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+
+ // When discovery finds a device
+ if (BluetoothDevice.ACTION_FOUND.equals(action)) {
+ // Get the BluetoothDevice object from the Intent
+ BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+ BluetoothClass bclass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
+ // If it's already paired, skip it, because it's been listed already
+
+ //
+ //
+ // filter for the right type of devices?
+ //
+ //
+
+ if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
+ mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); //+ "\n" + bclass.getDeviceClass());
+ }
+ // When discovery is finished, change the Activity title
+ } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
+ setProgressBarIndeterminateVisibility(false);
+ setTitle(R.string.select_device);
+ if (mNewDevicesArrayAdapter.getCount() == 0) {
+ String noDevices = getResources().getText(R.string.none_found).toString();
+ mNewDevicesArrayAdapter.add(noDevices);
+ }
+ }
+ }
+ };
+
+}
diff --git a/electicAndroid/src/com/futureproof/adaptics/electic/Electic.java b/electicAndroid/src/com/futureproof/adaptics/electic/Electic.java
new file mode 100644
index 0000000..7de9104
--- /dev/null
+++ b/electicAndroid/src/com/futureproof/adaptics/electic/Electic.java
@@ -0,0 +1,393 @@
+/*
+ * Tim Redfern 2011
+ *
+ *
+ * number view display
+ * decision: decipher in mcu?
+ * ie - need to range quickly based on this?
+ * decide protocol for setting commands
+ * make a couple of buttons and use these to change
+ */
+
+package com.futureproof.adaptics.electic;
+
+
+import android.app.Activity;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.view.Menu;
+import android.view.Window;
+import android.widget.CheckBox;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/**
+ * This is the main Activity that displays the current chat session.
+ */
+public class Electic extends Activity {
+ // Debugging
+ private static final String TAG = "Electic";
+ private static final boolean D = true;
+
+ // Message types sent from the BluetoothChatService Handler
+ public static final int MESSAGE_STATE_CHANGE = 1;
+ public static final int MESSAGE_READ = 2;
+ public static final int MESSAGE_WRITE = 3;
+ public static final int MESSAGE_DEVICE_NAME = 4;
+ public static final int MESSAGE_TOAST = 5;
+
+ // Key names received from the BluetoothChatService Handler
+ public static final String DEVICE_NAME = "device_name";
+ public static final String TOAST = "toast";
+
+ // Intent request codes
+ private static final int REQUEST_CONNECT_DEVICE = 1;
+ private static final int REQUEST_ENABLE_BT = 2;
+
+ // Layout Views
+ private TextView mTitle;
+
+ // Name of the connected device
+ private String mConnectedDeviceName = null;
+ // Local Bluetooth adapter
+ private BluetoothAdapter mBluetoothAdapter = null;
+ // Member object for the chat services
+ private AdapticsBluetooth adapBT = null;
+
+ //electic UI elements
+ TextView sadcReadout;
+ TextView fadcReadout;
+
+ TextView sadcReadout1;
+ TextView fadcReadout1;
+
+ CheckBox PMINbox;
+ CheckBox PMAXbox;
+ CheckBox alarmBox;
+ RadioGroup sampleSpeedGroup;
+
+ int SAMPLESPEED2 = R.id.rb_2;
+ int SAMPLESPEED05 = R.id.rb_05;
+ int SAMPLESPEED01 = R.id.rb_01;
+
+ int sampleSpeed = SAMPLESPEED2;
+
+ short ASIGNbit = (short) Integer.parseInt("10000000", 2);
+ short BSIGNbit = (short) Integer.parseInt("1000000", 2);
+ short PMAXbit = (short) Integer.parseInt("100000", 2);
+ short PMINbit = (short) Integer.parseInt("10000", 2);
+ short ALARMbit = (short) Integer.parseInt("1", 2);
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if(D) Log.e(TAG, "+++ ON CREATE +++");
+
+ // Set up the window layout
+ requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
+ setContentView(R.layout.main);
+ getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
+
+ // Set up the custom title
+ mTitle = (TextView) findViewById(R.id.title_left_text);
+ mTitle.setText(R.string.app_name);
+ mTitle = (TextView) findViewById(R.id.title_right_text);
+
+ // Get local Bluetooth adapter
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+
+ // If the adapter is null, then Bluetooth is not supported
+ if (mBluetoothAdapter == null) {
+ Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();
+ finish();
+ return;
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if(D) Log.e(TAG, "++ ON START ++");
+
+ // If BT is not on, request that it be enabled.
+ // setupChat() will then be called during onActivityResult
+ if (!mBluetoothAdapter.isEnabled()) {
+ Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+ startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
+ // Otherwise, setup the chat session
+ } else {
+ if (adapBT == null) setupUI();
+ }
+ }
+
+ @Override
+ public synchronized void onResume() {
+ super.onResume();
+ if(D) Log.e(TAG, "+ ON RESUME +");
+
+ // Performing this check in onResume() covers the case in which BT was
+ // not enabled during onStart(), so we were paused to enable it...
+ // onResume() will be called when ACTION_REQUEST_ENABLE activity returns.
+ if (adapBT != null) {
+ // Only if the state is STATE_NONE, do we know that we haven't started already
+ if (adapBT.getState() == AdapticsBluetooth.STATE_NONE) {
+ // Start the Bluetooth chat services
+ adapBT.start();
+ }
+ }
+ }
+
+ private void setupUI() {
+ Log.d(TAG, "setupUI()");
+
+ //initialise electic UI elements
+ sadcReadout=(TextView) findViewById(R.id.sadcText);
+ fadcReadout=(TextView) findViewById(R.id.fadcText);
+
+ sadcReadout1=(TextView) findViewById(R.id.sadcText1);
+ fadcReadout1=(TextView) findViewById(R.id.fadcText1);
+
+ PMAXbox=(CheckBox) findViewById(R.id.pmaxBox);
+ PMINbox=(CheckBox) findViewById(R.id.pminBox);
+ alarmBox=(CheckBox) findViewById(R.id.alarmBox);
+
+ sampleSpeedGroup = (RadioGroup) findViewById(R.id.samplespeed_group);
+ sampleSpeedGroup.check(sampleSpeed);
+
+ sadcReadout.setText("0".toCharArray(), 0, 1);
+ fadcReadout.setText("0".toCharArray(), 0, 1);
+
+ sadcReadout1.setText("0".toCharArray(), 0, 1);
+ fadcReadout1.setText("0".toCharArray(), 0, 1);
+ PMAXbox.setChecked(false);
+ PMINbox.setChecked(false);
+ alarmBox.setChecked(false);
+
+ sampleSpeedGroup.setOnCheckedChangeListener(
+ new RadioGroup.OnCheckedChangeListener() {
+ public void onCheckedChanged(RadioGroup group,
+ int checkedId) {
+ setSampleSpeed(checkedId==SAMPLESPEED2?1:checkedId==SAMPLESPEED05?2:3);
+ }
+ });
+
+ // Initialize the service to perform bluetooth connections
+ adapBT = new AdapticsBluetooth(this, mHandler);
+
+
+ }
+
+ @Override
+ public synchronized void onPause() {
+ super.onPause();
+ if(D) Log.e(TAG, "- ON PAUSE -");
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ if(D) Log.e(TAG, "-- ON STOP --");
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ // Stop the Bluetooth chat services
+ if (adapBT != null) adapBT.stop();
+ if(D) Log.e(TAG, "--- ON DESTROY ---");
+ }
+/*
+ private void ensureDiscoverable() {
+ if(D) Log.d(TAG, "ensure discoverable");
+ if (mBluetoothAdapter.getScanMode() !=
+ BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
+ Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
+ discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
+ startActivity(discoverableIntent);
+ }
+ }
+ */
+
+
+
+
+ // The Handler that gets information back from the BluetoothChatService
+ private final Handler mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MESSAGE_STATE_CHANGE:
+ if(D) Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1);
+ switch (msg.arg1) {
+ case AdapticsBluetooth.STATE_CONNECTED:
+ mTitle.setText(R.string.title_connected_to);
+ mTitle.append(mConnectedDeviceName);
+ break;
+ case AdapticsBluetooth.STATE_CONNECTING:
+ mTitle.setText(R.string.title_connecting);
+ break;
+ // case AdapticsBluetooth.STATE_LISTEN:
+ case AdapticsBluetooth.STATE_NONE:
+ mTitle.setText(R.string.title_not_connected);
+ break;
+ }
+ break;
+ case MESSAGE_READ:
+ byte[] readBuf = (byte[]) msg.obj;
+ // construct a string from the valid bytes in the buffer
+ /*
+ * figure out how to decode data
+ * data has been checked at this point - message constructed
+ *
+ */
+ long sadc = (ubyte64(readBuf[4]))+(ubyte64(readBuf[3])<<8)+(ubyte64(readBuf[2])<<16)+(ubyte64(readBuf[1])<<24);
+ int fadc = ubyte32(readBuf[6])+(ubyte32(readBuf[5])<<8);
+
+ //reverse byte order
+ long sadc1=0;
+ for (int i=0;i<18;i++){
+ sadc1+=((sadc&(((long)0x01)<<i))>>i)<<(17-i);
+ }
+ int fadc1=0;
+ for (int i=0;i<10;i++){
+ fadc1+=((fadc&(((long)0x01)<<i))>>i)<<(9-i);
+ }
+
+ if (((short)readBuf[0]&ASIGNbit)>0) {
+ sadc*=-1;
+ sadc1*=-1;
+ }
+ if (((short)readBuf[0]&BSIGNbit)>0) {
+ fadc*=-1;
+ fadc1*=-1;
+ }
+ short status=(short)readBuf[0];
+
+ String sadcS=Float.toString(((float)sadc)/6000.0f);
+ String fadcS=Float.toString(((float)fadc)/600.0f);
+
+ String sadc1S=Float.toString(((float)sadc1)/6000.0f);
+ String fadc1S=Float.toString(((float)fadc1)/600.0f);
+
+ sadcReadout.setText(sadcS.toCharArray(), 0, sadcS.length());
+ fadcReadout.setText(fadcS.toCharArray(), 0, fadcS.length());
+
+ sadcReadout1.setText(sadc1S.toCharArray(), 0, sadc1S.length());
+ fadcReadout1.setText(fadc1S.toCharArray(), 0, fadc1S.length());
+
+ PMAXbox.setChecked(((short)readBuf[0]&PMAXbit)>0);
+ PMINbox.setChecked(((short)readBuf[0]&PMINbit)>0);
+ alarmBox.setChecked(((short)readBuf[0]&ALARMbit)>0);
+ Log.i(TAG, "++++RECEIVED: "+readBuf[0]+" "+readBuf[1]+" "+readBuf[2]+" "+readBuf[3]+" "+readBuf[4]+" "+readBuf[5]+" "+readBuf[6]+" AS: "+status+" "+sadc+" "+fadc);
+ //String readMessage = new String(readBuf, 0, msg.arg1);
+ break;
+ case MESSAGE_DEVICE_NAME:
+ // save the connected device's name
+ mConnectedDeviceName = msg.getData().getString(DEVICE_NAME);
+ Toast.makeText(getApplicationContext(), "Connected to "
+ + mConnectedDeviceName, Toast.LENGTH_SHORT).show();
+ break;
+ case MESSAGE_TOAST:
+ Toast.makeText(getApplicationContext(), msg.getData().getString(TOAST),
+ Toast.LENGTH_SHORT).show();
+ break;
+ }
+ }
+ };
+
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if(D) Log.d(TAG, "onActivityResult " + resultCode);
+ switch (requestCode) {
+ case REQUEST_CONNECT_DEVICE:
+ // When DeviceListActivity returns with a device to connect
+ if (resultCode == Activity.RESULT_OK) {
+ connectDevice(data);
+ }
+ break;
+ case REQUEST_ENABLE_BT:
+ // When the request to enable Bluetooth returns
+ if (resultCode == Activity.RESULT_OK) {
+ // Bluetooth is now enabled, so set up a chat session
+ setupUI();
+ } else {
+ // User did not enable Bluetooth or an error occured
+ Log.d(TAG, "BT not enabled");
+ Toast.makeText(this, R.string.bt_not_enabled_leaving, Toast.LENGTH_SHORT).show();
+ finish();
+ }
+ }
+ }
+
+ private void connectDevice(Intent data) {
+ // Get the device MAC address
+ String address = data.getExtras()
+ .getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS);
+ // Get the BLuetoothDevice object
+ BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
+ // Attempt to connect to the device
+ adapBT.connect(device);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ /*
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.option_menu, menu);
+ return true;
+ */
+ Intent serverIntent = new Intent(this, DeviceListActivity.class);
+ startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE);
+ return true;
+ }
+/*
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ Intent serverIntent = null;
+ switch (item.getItemId()) {
+ case R.id.connect_scan:
+ // Launch the DeviceListActivity to see devices and do scan
+ serverIntent = new Intent(this, DeviceListActivity.class);
+ startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE);
+ return true;
+ case R.id.insecure_connect_scan:
+ // Launch the DeviceListActivity to see devices and do scan
+ serverIntent = new Intent(this, DeviceListActivity.class);
+ startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE);
+ return true;
+ case R.id.discoverable:
+ // Ensure this device is discoverable by others
+ ensureDiscoverable();
+ return true;
+ }
+ return false;
+ }
+ */
+ private void setSampleSpeed(int speedCode) {
+ // Check that we're actually connected before trying anything
+ if (adapBT.getState() != AdapticsBluetooth.STATE_CONNECTED) {
+ Toast.makeText(this, R.string.not_connected, Toast.LENGTH_SHORT).show();
+ return;
+ }
+ byte[] message=new byte[1];
+ message[0]=(byte) speedCode;
+ adapBT.write(message);
+
+ }
+ private int ubyte32(byte b){
+ int i=(int) b;
+ if (i<0) i+=128;
+ return i;
+ }
+ private long ubyte64(byte b){
+ long l=(long) b;
+ if (l<0) l+=128;
+ return l;
+ }
+
+}
diff --git a/electic_streaming2560/bin/Debug/electic_streaming.elf.eep.hex b/electic_streaming2560/bin/Debug/electic_streaming.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/electic_streaming2560/bin/Debug/electic_streaming.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/electic_streaming2560/bin/Debug/electic_streaming.elf.hex b/electic_streaming2560/bin/Debug/electic_streaming.elf.hex
new file mode 100644
index 0000000..30ee594
--- /dev/null
+++ b/electic_streaming2560/bin/Debug/electic_streaming.elf.hex
@@ -0,0 +1,364 @@
+:100000000C9444000C946C000C946C000C946C00E8
+:100010000C946C000C946C000C946C000C946C00B0
+:100020000C946C000C946C000C946C000C946E009E
+:100030000C946C000C946C000C946C000C946C0090
+:100040000C946C000C946C000C94D9030C946C0010
+:100050000C946C000C946C000C946C000C946C0070
+:100060000C946C000C946C0005A84CCDB2D44EB925
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803FB70111241FBECFEFD8E0B3
+:10009000DEBFCDBF11E0A0E0B1E0EEE7F6E102C0C7
+:1000A00005900D92A232B107D9F713E0A2E2B1E0B8
+:1000B00001C01D92AC3AB107E1F710E0C8E8D0E00A
+:1000C00004C02297FE010E94A409C638D107C9F7CF
+:1000D0000E945C010C943D0B0C9400001F920F9247
+:1000E0000FB60F9211242F933F934F935F936F930B
+:1000F0007F938F939F93AF93BF93EF93FF93DF9380
+:10010000CF9300D0CDB7DEB7A5E2B0E0E5E2F0E0F6
+:10011000908180E289278C931A82198220C0809175
+:10012000240390912503FC01EE5DFE4F208186E2C1
+:1001300093E0622F0E94BE018091240390912503D9
+:10014000019620E032E0B9010E940709909325034F
+:100150008093240389819A8101969A838983898176
+:100160009A8121E080349207D4F286E293E060E045
+:100170000E94BE010F900F90CF91DF91FF91EF9100
+:10018000BF91AF919F918F917F916F915F914F91AF
+:100190003F912F910F900FBE0F901F901895DF93F6
+:1001A000CF93CDB7DEB764970FB6F894DEBF0FBE1E
+:1001B000CDBF88ED9FE0A9E4B0E4898B9A8BAB8B2F
+:1001C000BC8B80E090E0A0E0B0E08D879E87AF8799
+:1001D000B88B29893A894B895C89CA01B9010E9487
+:1001E0009305DC01CB01BC01CD0120E030E040E013
+:1001F00054E40E94BA06DC01CB018D839E83AF8359
+:10020000B8871A82198248C08D859E85AF85B889C6
+:10021000BC01CD010E94A809DC01CB01BC01CD01CC
+:1002200020E030E04EEF52E40E94C005DC01CB013B
+:1002300089879A87AB87BC876D857E858F859889EE
+:100240002D813E814F8158850E949305DC01CB01B1
+:100250008D879E87AF87B88B69857A858B859C85CE
+:1002600020E030E040E053E40E949305DC01CB0144
+:10027000BC01CD010E946607DC01CB019C838B830E
+:1002800089819A812B81FC01EE5DFE4F208389815B
+:100290009A8101969A83898389819A8122E08030AC
+:1002A00092070CF4B1CF64960FB6F894DEBF0FBE80
+:1002B000CDBFCF91DF910895DF93CF9300D0CDB71D
+:1002C000DEB70E94CF0086E293E040E052EC61E0AE
+:1002D00070E00E94CB01A4E2B0E0E4E2F0E08081B3
+:1002E00080628C93E5E2F0E080E28083A1E8B0E0F8
+:1002F000E1E8F0E0808188608C93AFE6B0E0EFE663
+:10030000F0E0808182608C93E8E8F0E086E891E09C
+:1003100091838083789486E293E00E94C8011A82D8
+:100320001816190614F481E08A838A81882399F3C8
+:10033000A5E2B0E0E5E2F0E0908180E289278C93CD
+:1003400086E293E00E94C50189838981813619F78D
+:1003500086E293E020E031E0B9010E941F02A1E8AB
+:10036000B0E0E1E8F0E0808185608C93D4CF87E154
+:1003700091E090932703809326030895862F0E948F
+:10038000980308950E94D00308950E94B103089530
+:100390000E94A0030895CB01BA010E945F03089553
+:1003A000DC01ED91FC910190F081E02D099508951B
+:1003B000DC01ED91FC910190F081E02D099508950B
+:1003C0000F931F93CF93DF938C01EB0109C021960C
+:1003D000D801ED91FC910190F081E02DC8010995C3
+:1003E00068816623A1F7DF91CF911F910F91089546
+:1003F0000F931F938C01DC01ED91FC910190F08132
+:10040000E02D6DE00995D801ED91FC910190F0810E
+:10041000E02D6AE0C80109951F910F9108950F938F
+:100420001F938C01DC01ED91FC910190F081E02D96
+:100430000995C8010E94F8011F910F9108950F932B
+:100440001F938C010E94E001C8010E94F8011F91D6
+:100450000F9108950F931F938C01DC01ED91FC9196
+:100460000190F081E02D0995C8010E94F8011F91CB
+:100470000F9108952F923F924F925F926F927F92C9
+:100480008F929F92AF92BF92CF92DF92EF92FF92A4
+:100490000F931F93DF93CF93CDB7DEB7A0970FB61F
+:1004A000F894DEBF0FBECDBF1C016A017B01411570
+:1004B00051056105710549F4DC01ED91FC91019054
+:1004C000F081E02D60E3099554C0882499245401FB
+:1004D000422E55246624772401E010E00C0F1D1FE6
+:1004E000080D191DC701B601A30192010E941A0946
+:1004F000F80160830894811C911CA11CB11CC701E8
+:10050000B601A30192010E941A09C901DA016C0126
+:100510007D01C114D104E104F104F1F681E0E82E7B
+:10052000F12CEC0EFD1EE80CF91C3E010894611C38
+:10053000711CD501C4010197A109B1096C01C8184A
+:10054000D90814C0F601EE0DFF1D60816A3010F469
+:10055000605D01C0695CD101ED91FC910190F08179
+:10056000E02DC10109950894E108F1086E147F049B
+:1005700049F7A0960FB6F894DEBF0FBECDBFCF915E
+:10058000DF911F910F91FF90EF90DF90CF90BF9080
+:10059000AF909F908F907F906F905F904F903F9023
+:1005A0002F9008952AE00E943A0208950F931F9316
+:1005B0008C010E94D202C8010E94F8011F910F9184
+:1005C0000895AB0160E070E00E94D20208950F939D
+:1005D0001F938C01AB0160E070E00E94D202C80161
+:1005E0000E94F8011F910F910895EF92FF920F93CF
+:1005F0001F93CF93DF93EC017A018B0177FF0FC03C
+:10060000E881F9810190F081E02D6DE20995109566
+:100610000095F094E094E11CF11C011D111D2AE0ED
+:10062000B801A701CE010E943A02DF91CF911F913C
+:100630000F91FF90EF9008950F931F938C010E94EC
+:10064000F502C8010E94F8011F910F910895AB01B6
+:10065000662757FD6095762F0E94F50208950F9347
+:100660001F938C01AB01662757FD6095762F0E9482
+:10067000F502C8010E94F8011F910F910895DC0155
+:100680002115310541F4ED91FC910190F081E02DAF
+:10069000642F099508952A30310519F40E94F50256
+:1006A00008950E943A0208950F931F938C010E94AF
+:1006B0003F03C8010E94F8011F910F910895EF9226
+:1006C000FF920F931F937B018C0122E030E040E00A
+:1006D00050E00E943C09205C3D4B404F5F4FCA01F7
+:1006E000B901A80197010E943C09C901DA010197EB
+:1006F000A109B109292F3A2F4B2F552747FD5A95AC
+:100700000196A11DB11D2093C50081508093C400A6
+:10071000E1ECF0E08081806180838081886080836B
+:100720008081806880831F910F91FF90EF900895E2
+:10073000982F8091C00085FFFCCF9093C60008954C
+:10074000809128039091290380589F4F20912A037C
+:1007500030912B03821B930B60E870E00E94070925
+:10076000089540912A0350912B0380912803909182
+:1007700029038417950719F42FEF3FEF0FC0FA01F3
+:10078000E45DFC4F2081CA01019660E870E00E94A0
+:10079000070990932B0380932A0330E0C901089541
+:1007A00080912A0390912B0390932903809328032F
+:1007B00008951F920F920FB60F9211242F933F931B
+:1007C0004F935F936F937F938F939F93AF93BF9359
+:1007D000EF93FF934091C600E0912803F091290325
+:1007E000CF01019660E870E00E9407099C018091AA
+:1007F0002A0390912B032817390739F0E45DFC4F49
+:1008000040833093290320932803FF91EF91BF91F8
+:10081000AF919F918F917F916F915F914F913F9198
+:100820002F910F900FBE0F901F901895A0E0B0E091
+:10083000ECE1F4E00C946B09DC012B01FA019C91D2
+:10084000923008F439C1EB018881823008F433C159
+:10085000943069F4843009F02FC111969C9111975E
+:100860008981981709F428C1A9E1B1E025C1843034
+:1008700009F421C18230A9F4923009F01DC19A0116
+:10088000AD0188E0EA010990AE01E90109929E01FB
+:100890008150C1F7E201898111969C91892381835E
+:1008A00008C1923009F407C112962D903C9013971D
+:1008B000EB018A819B811496AD90BD90CD90DC9028
+:1008C0001797EC80FD800E811F819101281B390B49
+:1008D000B90137FF04C066277727621B730B6032AC
+:1008E00071050CF061C0121613066CF53701480152
+:1008F000062E04C096948794779467940A94D2F74E
+:1009000021E030E040E050E004C0220F331F441FDC
+:10091000551F6A95D2F721503040404050402E215B
+:100920003F2140235123211531054105510521F077
+:1009300021E030E040E050E079018A01E628F72824
+:10094000082919293CC0232BD1F1260E371E350169
+:100950004601062E04C096948794779467940A946F
+:10096000D2F721E030E040E050E004C0220F331F16
+:10097000441F551F6A95D2F72150304040405040E7
+:100980002A213B214C215D212115310541055105CD
+:1009900021F021E030E040E050E059016A01A62852
+:1009A000B728C828D9280BC0821593052CF01C0144
+:1009B000AA24BB24650103C0EE24FF2487011196FD
+:1009C0009C91D20111968C91981709F445C09923F6
+:1009D00039F0A80197012A193B094C095D0906C0A5
+:1009E000A60195012E193F09400B510B57FD08C078
+:1009F00011823382228224833583468357831DC02C
+:100A000081E081833382228288279927DC01821B3F
+:100A1000930BA40BB50B84839583A683B7830DC07A
+:100A2000220F331F441F551F24833583468357836A
+:100A300082819381019793838283248135814681CA
+:100A40005781DA01C9010197A109B1098F5F9F4F51
+:100A5000AF4FBF4328F30BC0918333822282EA0C4D
+:100A6000FB1C0C1D1D1DE482F5820683178383E0A9
+:100A70008083248135814681578157FF1AC0C9017F
+:100A8000AA2797FDA095BA2F81709070A070B070C2
+:100A90005695479537952795822B932BA42BB52BED
+:100AA00084839583A683B783828193810196938300
+:100AB0008283DF0101C0D201CD01CDB7DEB7E2E113
+:100AC0000C948709A0E2B0E0E8E6F5E00C94770921
+:100AD00069837A838B839C832D833E834F835887DE
+:100AE000E9E0EE2EF12CEC0EFD1ECE010196B701D1
+:100AF0000E948F088E010F5E1F4FCE010596B80130
+:100B00000E948F088A8991E089278A8BC701B801E2
+:100B1000AE01475E5F4F0E9416040E94BA07A0967E
+:100B2000E6E00C949309A0E2B0E0E9E9F5E00C946A
+:100B3000770969837A838B839C832D833E834F83DC
+:100B40005887F9E0EF2EF12CEC0EFD1ECE01019638
+:100B5000B7010E948F088E010F5E1F4FCE010596D0
+:100B6000B8010E948F08C701B801AE01475E5F4F10
+:100B70000E9416040E94BA07A096E6E00C9493091E
+:100B8000A0E2B0E0E6ECF5E00C946B0969837A83AF
+:100B90008B839C832D833E834F835887CE010196A0
+:100BA000BE01675F7F4F0E948F08CE010596BE0190
+:100BB0006F5E7F4F0E948F089985923088F08989F7
+:100BC0008230C8F0943019F4823051F404C084307B
+:100BD00029F4923081F489E191E0C6C0923049F461
+:100BE00020E09A858A89981321E02A87CE01099608
+:100BF000BBC0823049F420E09A858A89981321E0AD
+:100C00002A8BCE014196B0C02D843E844F845888F3
+:100C10006D887E888F88988CEE24FF248701AA2413
+:100C2000BB24650140E050E060E070E0E0E0F0E00F
+:100C3000C10181709070892BE9F0E60CF71C081D4A
+:100C4000191D9A01AB012A0D3B1D4C1D5D1D80E055
+:100C500090E0A0E0B0E0E614F7040805190520F4E0
+:100C600081E090E0A0E0B0E0BA01A901480F591F6F
+:100C70006A1F7B1FAA0CBB1CCC1CDD1C97FE08C086
+:100C800081E090E0A0E0B0E0A82AB92ACA2ADB2AD5
+:100C90003196E032F10549F0660C771C881C991CEE
+:100CA0005694479437942794C3CFFA85EA892B89C1
+:100CB0003C898B859C85280F391F2E5F3F4F17C0BD
+:100CC000CA0181709070892B61F016950795F79491
+:100CD000E79480E090E0A0E0B0E8E82AF92A0A2B47
+:100CE0001B2B76956795579547952F5F3F4F77FD5F
+:100CF000E7CF0CC0440F551F661F771F17FD4160DB
+:100D0000EE0CFF1C001F111F21503040403090E0BE
+:100D1000590790E0690790E4790760F32B8F3C8FC7
+:100D2000DB01CA018F779070A070B070803491059C
+:100D3000A105B10561F447FD0AC0E114F104010504
+:100D4000110529F0405C5F4F6F4F7F4F40781A8E3E
+:100D5000FE1711F081E08A8F4D8F5E8F6F8F78A321
+:100D600083E0898FCE0149960E94BA07A096E2E1FE
+:100D70000C948709A8E1B0E0E0ECF6E00C9473096C
+:100D800069837A838B839C832D833E834F8358872B
+:100D9000B9E0EB2EF12CEC0EFD1ECE010196B70151
+:100DA0000E948F088E010F5E1F4FCE010596B8017D
+:100DB0000E948F082985223008F47EC0398932309C
+:100DC00010F4B8017CC08A859A8989278A872430E3
+:100DD00011F0223031F4231709F06EC069E171E09F
+:100DE0006EC0343039F41D861E861F86188A1C8614
+:100DF0001B8604C0323021F484E08987B7015FC0CC
+:100E00002B853C858B899C89281B390B3C872B873C
+:100E1000ED84FE840F851889AD88BE88CF88D88C74
+:100E2000EA14FB040C051D0540F4EE0CFF1C001F2A
+:100E3000111F215030403C872B8720E030E040E0FC
+:100E400050E080E090E0A0E0B0E460E070E0EA1400
+:100E5000FB040C051D0540F0282B392B4A2B5B2B7E
+:100E6000EA18FB080C091D09B695A7959795879573
+:100E7000EE0CFF1C001F111F6F5F7F4F6F3171055C
+:100E800031F7DA01C9018F779070A070B0708034AB
+:100E90009105A105B10561F427FD0AC0E114F10433
+:100EA0000105110529F0205C3F4F4F4F5F4F20781F
+:100EB0002D873E874F87588BBE01675F7F4FCB01E1
+:100EC0000E94BA076896EAE00C948F09ACE0B0E0A3
+:100ED000ECE6F7E00C947B0969837A838B839C832F
+:100EE000CE010196BE016B5F7F4F0E948F088D81FE
+:100EF000823061F1823050F1843021F48E81882378
+:100F000051F12EC02F81388537FD20C06E812F31E1
+:100F100031051CF06623F9F023C08EE190E0821BBE
+:100F2000930B29853A854B855C8504C0569547957A
+:100F3000379527958A95D2F76623B1F0509540955D
+:100F4000309521953F4F4F4F5F4F0EC020E030E06E
+:100F500040E050E009C02FEF3FEF4FEF5FE704C0E4
+:100F600020E030E040E050E8B901CA012C96E2E010
+:100F70000C949709DF92EF92FF920F931F93FC015D
+:100F8000E480F58006811781D1808081823048F429
+:100F900080E090E0A0E1B0E0E82AF92A0A2B1B2BC0
+:100FA000A5C0843009F49FC0823021F4EE24FF24D0
+:100FB000870105C0E114F1040105110519F4E0E011
+:100FC000F0E096C0628173819FEF623879070CF080
+:100FD0005BC022E83FEF261B370B2A3131052CF08E
+:100FE00020E030E040E050E02AC0B801A701022E26
+:100FF00004C076956795579547950A94D2F781E096
+:1010000090E0A0E0B0E004C0880F991FAA1FBB1FAA
+:101010002A95D2F70197A109B1098E219F21A0231A
+:10102000B1230097A105B10521F081E090E0A0E097
+:10103000B0E09A01AB01282B392B4A2B5B2BDA014C
+:10104000C9018F779070A070B07080349105A105B0
+:10105000B10539F427FF09C0205C3F4F4F4F5F4F68
+:1010600004C0215C3F4F4F4F5F4FE0E0F0E0203085
+:10107000A0E03A07A0E04A07A0E45A0710F0E1E038
+:10108000F0E079018A0127C06038710564F5FB0141
+:10109000E158FF4FD801C7018F779070A070B070F2
+:1010A00080349105A105B10539F4E7FE0DC080E457
+:1010B00090E0A0E0B0E004C08FE390E0A0E0B0E0FA
+:1010C000E80EF91E0A1F1B1F17FF05C0169507958E
+:1010D000F794E794319687E016950795F794E7948F
+:1010E0008A95D1F705C0EE24FF248701EFEFF0E0E9
+:1010F0006E2F679566276795902F9F77D794DD248D
+:10110000D7948E2F8695492F462B582F5D29B701EE
+:10111000CA011F910F91FF90EF90DF900895FC019D
+:10112000DB01408151812281622F6F7770E0221FA5
+:101130002227221F9381892F880F822B282F30E0AE
+:10114000991F9927991F11969C9311972115310585
+:10115000A9F5411551056105710511F482E037C00B
+:1011600082E89FEF13969C938E9312979A01AB019E
+:1011700067E0220F331F441F551F6A95D1F783E0A4
+:101180008C930DC0220F331F441F551F12968D9153
+:101190009C911397019713969C938E9312972030EE
+:1011A00080E0380780E0480780E4580758F3149639
+:1011B0002D933D934D935C93179708952F3F3105E1
+:1011C00079F4411551056105710519F484E08C939A
+:1011D000089564FF03C081E08C9312C01C9210C07C
+:1011E0002F57304013963C932E93129783E08C93A5
+:1011F00087E0440F551F661F771F8A95D1F77064EB
+:1012000014964D935D936D937C931797089597FB78
+:10121000092E07260AD077FD04D049D006D0002039
+:101220001AF4709561957F4F0895F6F79095819522
+:101230009F4F0895A1E21A2EAA1BBB1BFD010DC0F2
+:10124000AA1FBB1FEE1FFF1FA217B307E407F50776
+:1012500020F0A21BB30BE40BF50B661F771F881F52
+:10126000991F1A9469F760957095809590959B01E8
+:10127000AC01BD01CF01089597FB092E05260ED0C4
+:1012800057FD04D0D7DF0AD0001C38F450954095A4
+:10129000309521953F4F4F4F5F4F0895F6F790954A
+:1012A0008095709561957F4F8F4F9F4F0895AA1B32
+:1012B000BB1B51E107C0AA1FBB1FA617B70710F041
+:1012C000A61BB70B881F991F5A95A9F78095909573
+:1012D000BC01CD0108952F923F924F925F926F9281
+:1012E0007F928F929F92AF92BF92CF92DF92EF92B6
+:1012F000FF920F931F93CF93DF93CDB7DEB7CA1B37
+:10130000DB0B0FB6F894DEBF0FBECDBF09942A8861
+:10131000398848885F846E847D848C849B84AA8409
+:10132000B984C884DF80EE80FD800C811B81AA8196
+:10133000B981CE0FD11D0FB6F894DEBF0FBECDBF61
+:10134000ED010895EE0FFF1F0590F491E02D099433
+:101350009F9305D00F9007FCEE5F28C0CEC03FD012
+:10136000E8F3E894E0E0BB279F57F0F02AED3FE078
+:1013700049EC06C0EE0FBB0F661F771F881F28F0D1
+:10138000B23A62077307840728F0B25A620B730BF4
+:10139000840BE3959A9572F7803830F49A95BB0FD9
+:1013A000661F771F881FD2F790489BC0EF93E0FF1E
+:1013B00006C0A2EA2AED3FE049EC5FEB37D0BFD090
+:1013C0000F90039401FC9058E8E6F0E099C057FDB7
+:1013D0009058440F551F59F05F3F71F04795880FA3
+:1013E00097FB991F61F09F3F79F08795089512163A
+:1013F00013061406551FF2CF4695F1DF08C01616E6
+:1014000017061806991FF1CF869571056105089496
+:10141000089587D030F08CD020F031F49F3F11F444
+:101420001EF46BC00EF4E095E7FB53C0E92FCFDF4D
+:1014300080F3BA17620773078407950718F071F4F1
+:101440009EF58EC00EF4E0950B2EBA2FA02D0B0149
+:10145000B90190010C01CA01A0011124FF27591BF9
+:1014600099F0593F50F4503E68F11A16F040A22FFF
+:10147000232F342F4427585FF3CF46953795279570
+:10148000A795F0405395C9F77EF41F16BA0B620B6F
+:10149000730B840BBAF09150A1F0FF0FBB1F661FB6
+:1014A000771F881FC2F70EC0BA0F621F731F841FF9
+:1014B00048F4879577956795B795F7959E3F08F01F
+:1014C000B3CF9395880F08F09927EE0F97958795DE
+:1014D000089597F99F6780E870E060E008959F3F66
+:1014E00031F0915020F4879577956795B795880FDF
+:1014F000911D9695879597F908959FEF80EC089533
+:101500009F938F937F936F93FF93EF939B01AC0116
+:1015100037DBEF91FF912BD02F913F914F915F914E
+:101520002FCB00240A9416161706180609060895EC
+:1015300000240A9412161306140605060895092EAF
+:101540000394000C11F4882352F0BB0F40F4BF2B1E
+:1015500011F460FF04C06F5F7F4F8F4F9F4F08955E
+:10156000E894BB2766277727CB0197F90895DF9387
+:10157000CF931F930F93FF92EF92DF927B018C0129
+:10158000689405C0DA2EEF0121D0FE01E894A59100
+:101590002591359145915591AEF3EF0147DFFE015D
+:1015A0009701A801DA9479F7DF90EF90FF900F91FF
+:1015B0001F91CF91DF910895B4DF28F0B9DF18F0C3
+:1015C000952309F086CF99CF1124CBCF00DFA0F36C
+:1015D000959FD1F3950F50E0551F629FF001729FC8
+:1015E000BB27F00DB11D639FAA27F00DB11DAA1FE7
+:1015F000649F6627B00DA11D661F829F2227B00D34
+:10160000A11D621F739FB00DA11D621F839FA00DBE
+:10161000611D221F749F3327A00D611D231F849F0E
+:10162000600D211D822F762F6A2F11249F57504065
+:101630008AF0E1F088234AF0EE0FFF1FBB1F661F00
+:10164000771F881F91505040A9F79E3F510570F0B9
+:1016500040CF87CF5F3FECF3983EDCF386957795DC
+:101660006795B795F795E7959F5FC1F7FE2B880FB4
+:0E167000911D9695879597F90895F894FFCFF0
+:10167E0057656C636F6D6520746F20656C65637460
+:10168E0069630000000000BE0100000000000000C1
+:02169E0000004A
+:00000001FF
diff --git a/electic_streaming2560/bin/Debug/electic_streaming.elf.lss b/electic_streaming2560/bin/Debug/electic_streaming.elf.lss
new file mode 100644
index 0000000..922bd60
--- /dev/null
+++ b/electic_streaming2560/bin/Debug/electic_streaming.elf.lss
@@ -0,0 +1,3038 @@
+
+bin/Debug/electic_streaming.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000022 00800100 0000167e 00001712 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 0000167e 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000028a 00800122 00800122 00001734 2**0
+ ALLOC
+ 3 .stab 000023d0 00000000 00000000 00001734 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00001c16 00000000 00000000 00003b04 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_aranges 00000060 00000000 00000000 0000571a 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_pubnames 000002a7 00000000 00000000 0000577a 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_info 00000d0b 00000000 00000000 00005a21 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_abbrev 000003f7 00000000 00000000 0000672c 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_line 00000689 00000000 00000000 00006b23 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame 00000210 00000000 00000000 000071ac 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str 00000420 00000000 00000000 000073bc 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc 0000075a 00000000 00000000 000077dc 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 6e 00 jmp 0xdc ; 0xdc <__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 d9 03 jmp 0x7b2 ; 0x7b2 <__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: b7 01 movw r22, r14
+
+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: ee e7 ldi r30, 0x7E ; 126
+ 9c: f6 e1 ldi r31, 0x16 ; 22
+ 9e: 02 c0 rjmp .+4 ; 0xa4 <.do_copy_data_start>
+
+000000a0 <.do_copy_data_loop>:
+ a0: 05 90 lpm r0, Z+
+ a2: 0d 92 st X+, r0
+
+000000a4 <.do_copy_data_start>:
+ a4: a2 32 cpi r26, 0x22 ; 34
+ a6: b1 07 cpc r27, r17
+ a8: d9 f7 brne .-10 ; 0xa0 <.do_copy_data_loop>
+
+000000aa <__do_clear_bss>:
+ aa: 13 e0 ldi r17, 0x03 ; 3
+ ac: a2 e2 ldi r26, 0x22 ; 34
+ 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: ac 3a cpi r26, 0xAC ; 172
+ 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_start>
+
+000000c2 <.do_global_ctors_loop>:
+ c2: 22 97 sbiw r28, 0x02 ; 2
+ c4: fe 01 movw r30, r28
+ c6: 0e 94 a4 09 call 0x1348 ; 0x1348 <__tablejump__>
+
+000000ca <.do_global_ctors_start>:
+ ca: c6 38 cpi r28, 0x86 ; 134
+ cc: d1 07 cpc r29, r17
+ ce: c9 f7 brne .-14 ; 0xc2 <.do_global_ctors_loop>
+ d0: 0e 94 5c 01 call 0x2b8 ; 0x2b8 <main>
+ d4: 0c 94 3d 0b jmp 0x167a ; 0x167a <_exit>
+
+000000d8 <__bad_interrupt>:
+ d8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000dc <__vector_11>:
+ }
+ }
+ }
+}
+
+ISR(TIMER1_COMPA_vect)
+ dc: 1f 92 push r1
+ de: 0f 92 push r0
+ e0: 0f b6 in r0, 0x3f ; 63
+ e2: 0f 92 push r0
+ e4: 11 24 eor r1, r1
+ e6: 2f 93 push r18
+ e8: 3f 93 push r19
+ ea: 4f 93 push r20
+ ec: 5f 93 push r21
+ ee: 6f 93 push r22
+ f0: 7f 93 push r23
+ f2: 8f 93 push r24
+ f4: 9f 93 push r25
+ f6: af 93 push r26
+ f8: bf 93 push r27
+ fa: ef 93 push r30
+ fc: ff 93 push r31
+ fe: df 93 push r29
+ 100: cf 93 push r28
+ 102: 00 d0 rcall .+0 ; 0x104 <__vector_11+0x28>
+ 104: cd b7 in r28, 0x3d ; 61
+ 106: de b7 in r29, 0x3e ; 62
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ 108: a5 e2 ldi r26, 0x25 ; 37
+ 10a: b0 e0 ldi r27, 0x00 ; 0
+ 10c: e5 e2 ldi r30, 0x25 ; 37
+ 10e: f0 e0 ldi r31, 0x00 ; 0
+ 110: 90 81 ld r25, Z
+ 112: 80 e2 ldi r24, 0x20 ; 32
+ 114: 89 27 eor r24, r25
+ 116: 8c 93 st X, r24
+ for (int i=0;i<PACKETSIZE;i++) {
+ 118: 1a 82 std Y+2, r1 ; 0x02
+ 11a: 19 82 std Y+1, r1 ; 0x01
+ 11c: 20 c0 rjmp .+64 ; 0x15e <__vector_11+0x82>
+ Serial.write(dd[sample]);
+ 11e: 80 91 24 03 lds r24, 0x0324
+ 122: 90 91 25 03 lds r25, 0x0325
+ 126: fc 01 movw r30, r24
+ 128: ee 5d subi r30, 0xDE ; 222
+ 12a: fe 4f sbci r31, 0xFE ; 254
+ 12c: 20 81 ld r18, Z
+ 12e: 86 e2 ldi r24, 0x26 ; 38
+ 130: 93 e0 ldi r25, 0x03 ; 3
+ 132: 62 2f mov r22, r18
+ 134: 0e 94 be 01 call 0x37c ; 0x37c <_ZN14HardwareSerial5writeEh>
+ sample=(sample+1)%SAMPLES;
+ 138: 80 91 24 03 lds r24, 0x0324
+ 13c: 90 91 25 03 lds r25, 0x0325
+ 140: 01 96 adiw r24, 0x01 ; 1
+ 142: 20 e0 ldi r18, 0x00 ; 0
+ 144: 32 e0 ldi r19, 0x02 ; 2
+ 146: b9 01 movw r22, r18
+ 148: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 14c: 90 93 25 03 sts 0x0325, r25
+ 150: 80 93 24 03 sts 0x0324, r24
+
+ISR(TIMER1_COMPA_vect)
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ for (int i=0;i<PACKETSIZE;i++) {
+ 154: 89 81 ldd r24, Y+1 ; 0x01
+ 156: 9a 81 ldd r25, Y+2 ; 0x02
+ 158: 01 96 adiw r24, 0x01 ; 1
+ 15a: 9a 83 std Y+2, r25 ; 0x02
+ 15c: 89 83 std Y+1, r24 ; 0x01
+ 15e: 89 81 ldd r24, Y+1 ; 0x01
+ 160: 9a 81 ldd r25, Y+2 ; 0x02
+ 162: 21 e0 ldi r18, 0x01 ; 1
+ 164: 80 34 cpi r24, 0x40 ; 64
+ 166: 92 07 cpc r25, r18
+ 168: d4 f2 brlt .-76 ; 0x11e <__vector_11+0x42>
+ Serial.write(dd[sample]);
+ sample=(sample+1)%SAMPLES;
+ }
+ Serial.write((byte)0);
+ 16a: 86 e2 ldi r24, 0x26 ; 38
+ 16c: 93 e0 ldi r25, 0x03 ; 3
+ 16e: 60 e0 ldi r22, 0x00 ; 0
+ 170: 0e 94 be 01 call 0x37c ; 0x37c <_ZN14HardwareSerial5writeEh>
+}
+ 174: 0f 90 pop r0
+ 176: 0f 90 pop r0
+ 178: cf 91 pop r28
+ 17a: df 91 pop r29
+ 17c: ff 91 pop r31
+ 17e: ef 91 pop r30
+ 180: bf 91 pop r27
+ 182: af 91 pop r26
+ 184: 9f 91 pop r25
+ 186: 8f 91 pop r24
+ 188: 7f 91 pop r23
+ 18a: 6f 91 pop r22
+ 18c: 5f 91 pop r21
+ 18e: 4f 91 pop r20
+ 190: 3f 91 pop r19
+ 192: 2f 91 pop r18
+ 194: 0f 90 pop r0
+ 196: 0f be out 0x3f, r0 ; 63
+ 198: 0f 90 pop r0
+ 19a: 1f 90 pop r1
+ 19c: 18 95 reti
+
+0000019e <_Z13fill_sinewavev>:
+
+byte dd[SAMPLES]; // ram buffer
+int loopCount=0;
+int sample=0;
+
+void fill_sinewave(){
+ 19e: df 93 push r29
+ 1a0: cf 93 push r28
+ 1a2: cd b7 in r28, 0x3d ; 61
+ 1a4: de b7 in r29, 0x3e ; 62
+ 1a6: 64 97 sbiw r28, 0x14 ; 20
+ 1a8: 0f b6 in r0, 0x3f ; 63
+ 1aa: f8 94 cli
+ 1ac: de bf out 0x3e, r29 ; 62
+ 1ae: 0f be out 0x3f, r0 ; 63
+ 1b0: 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;
+ 1b2: 88 ed ldi r24, 0xD8 ; 216
+ 1b4: 9f e0 ldi r25, 0x0F ; 15
+ 1b6: a9 e4 ldi r26, 0x49 ; 73
+ 1b8: b0 e4 ldi r27, 0x40 ; 64
+ 1ba: 89 8b std Y+17, r24 ; 0x11
+ 1bc: 9a 8b std Y+18, r25 ; 0x12
+ 1be: ab 8b std Y+19, r26 ; 0x13
+ 1c0: bc 8b std Y+20, r27 ; 0x14
+ float fcnt=0;
+ 1c2: 80 e0 ldi r24, 0x00 ; 0
+ 1c4: 90 e0 ldi r25, 0x00 ; 0
+ 1c6: a0 e0 ldi r26, 0x00 ; 0
+ 1c8: b0 e0 ldi r27, 0x00 ; 0
+ 1ca: 8d 87 std Y+13, r24 ; 0x0d
+ 1cc: 9e 87 std Y+14, r25 ; 0x0e
+ 1ce: af 87 std Y+15, r26 ; 0x0f
+ 1d0: b8 8b std Y+16, r27 ; 0x10
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ 1d2: 29 89 ldd r18, Y+17 ; 0x11
+ 1d4: 3a 89 ldd r19, Y+18 ; 0x12
+ 1d6: 4b 89 ldd r20, Y+19 ; 0x13
+ 1d8: 5c 89 ldd r21, Y+20 ; 0x14
+ 1da: ca 01 movw r24, r20
+ 1dc: b9 01 movw r22, r18
+ 1de: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 1e2: dc 01 movw r26, r24
+ 1e4: cb 01 movw r24, r22
+ 1e6: bc 01 movw r22, r24
+ 1e8: cd 01 movw r24, r26
+ 1ea: 20 e0 ldi r18, 0x00 ; 0
+ 1ec: 30 e0 ldi r19, 0x00 ; 0
+ 1ee: 40 e0 ldi r20, 0x00 ; 0
+ 1f0: 54 e4 ldi r21, 0x44 ; 68
+ 1f2: 0e 94 ba 06 call 0xd74 ; 0xd74 <__divsf3>
+ 1f6: dc 01 movw r26, r24
+ 1f8: cb 01 movw r24, r22
+ 1fa: 8d 83 std Y+5, r24 ; 0x05
+ 1fc: 9e 83 std Y+6, r25 ; 0x06
+ 1fe: af 83 std Y+7, r26 ; 0x07
+ 200: b8 87 std Y+8, r27 ; 0x08
+ int bb;
+ for (int i = 0; i <SAMPLES ; i++){ // with 50 periods sinewawe
+ 202: 1a 82 std Y+2, r1 ; 0x02
+ 204: 19 82 std Y+1, r1 ; 0x01
+ 206: 48 c0 rjmp .+144 ; 0x298 <_Z13fill_sinewavev+0xfa>
+ fd= 127*sin(fcnt); // fundamental tone
+ 208: 8d 85 ldd r24, Y+13 ; 0x0d
+ 20a: 9e 85 ldd r25, Y+14 ; 0x0e
+ 20c: af 85 ldd r26, Y+15 ; 0x0f
+ 20e: b8 89 ldd r27, Y+16 ; 0x10
+ 210: bc 01 movw r22, r24
+ 212: cd 01 movw r24, r26
+ 214: 0e 94 a8 09 call 0x1350 ; 0x1350 <sin>
+ 218: dc 01 movw r26, r24
+ 21a: cb 01 movw r24, r22
+ 21c: bc 01 movw r22, r24
+ 21e: cd 01 movw r24, r26
+ 220: 20 e0 ldi r18, 0x00 ; 0
+ 222: 30 e0 ldi r19, 0x00 ; 0
+ 224: 4e ef ldi r20, 0xFE ; 254
+ 226: 52 e4 ldi r21, 0x42 ; 66
+ 228: 0e 94 c0 05 call 0xb80 ; 0xb80 <__mulsf3>
+ 22c: dc 01 movw r26, r24
+ 22e: cb 01 movw r24, r22
+ 230: 89 87 std Y+9, r24 ; 0x09
+ 232: 9a 87 std Y+10, r25 ; 0x0a
+ 234: ab 87 std Y+11, r26 ; 0x0b
+ 236: bc 87 std Y+12, r27 ; 0x0c
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ 238: 6d 85 ldd r22, Y+13 ; 0x0d
+ 23a: 7e 85 ldd r23, Y+14 ; 0x0e
+ 23c: 8f 85 ldd r24, Y+15 ; 0x0f
+ 23e: 98 89 ldd r25, Y+16 ; 0x10
+ 240: 2d 81 ldd r18, Y+5 ; 0x05
+ 242: 3e 81 ldd r19, Y+6 ; 0x06
+ 244: 4f 81 ldd r20, Y+7 ; 0x07
+ 246: 58 85 ldd r21, Y+8 ; 0x08
+ 248: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 24c: dc 01 movw r26, r24
+ 24e: cb 01 movw r24, r22
+ 250: 8d 87 std Y+13, r24 ; 0x0d
+ 252: 9e 87 std Y+14, r25 ; 0x0e
+ 254: af 87 std Y+15, r26 ; 0x0f
+ 256: b8 8b std Y+16, r27 ; 0x10
+ bb=128+fd; // add dc offset to sinewawe
+ 258: 69 85 ldd r22, Y+9 ; 0x09
+ 25a: 7a 85 ldd r23, Y+10 ; 0x0a
+ 25c: 8b 85 ldd r24, Y+11 ; 0x0b
+ 25e: 9c 85 ldd r25, Y+12 ; 0x0c
+ 260: 20 e0 ldi r18, 0x00 ; 0
+ 262: 30 e0 ldi r19, 0x00 ; 0
+ 264: 40 e0 ldi r20, 0x00 ; 0
+ 266: 53 e4 ldi r21, 0x43 ; 67
+ 268: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 26c: dc 01 movw r26, r24
+ 26e: cb 01 movw r24, r22
+ 270: bc 01 movw r22, r24
+ 272: cd 01 movw r24, r26
+ 274: 0e 94 66 07 call 0xecc ; 0xecc <__fixsfsi>
+ 278: dc 01 movw r26, r24
+ 27a: cb 01 movw r24, r22
+ 27c: 9c 83 std Y+4, r25 ; 0x04
+ 27e: 8b 83 std Y+3, r24 ; 0x03
+ dd[i]=bb; // write value into array
+ 280: 89 81 ldd r24, Y+1 ; 0x01
+ 282: 9a 81 ldd r25, Y+2 ; 0x02
+ 284: 2b 81 ldd r18, Y+3 ; 0x03
+ 286: fc 01 movw r30, r24
+ 288: ee 5d subi r30, 0xDE ; 222
+ 28a: fe 4f sbci r31, 0xFE ; 254
+ 28c: 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
+ 28e: 89 81 ldd r24, Y+1 ; 0x01
+ 290: 9a 81 ldd r25, Y+2 ; 0x02
+ 292: 01 96 adiw r24, 0x01 ; 1
+ 294: 9a 83 std Y+2, r25 ; 0x02
+ 296: 89 83 std Y+1, r24 ; 0x01
+ 298: 89 81 ldd r24, Y+1 ; 0x01
+ 29a: 9a 81 ldd r25, Y+2 ; 0x02
+ 29c: 22 e0 ldi r18, 0x02 ; 2
+ 29e: 80 30 cpi r24, 0x00 ; 0
+ 2a0: 92 07 cpc r25, r18
+ 2a2: 0c f4 brge .+2 ; 0x2a6 <_Z13fill_sinewavev+0x108>
+ 2a4: b1 cf rjmp .-158 ; 0x208 <_Z13fill_sinewavev+0x6a>
+ 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
+ }
+}
+ 2a6: 64 96 adiw r28, 0x14 ; 20
+ 2a8: 0f b6 in r0, 0x3f ; 63
+ 2aa: f8 94 cli
+ 2ac: de bf out 0x3e, r29 ; 62
+ 2ae: 0f be out 0x3f, r0 ; 63
+ 2b0: cd bf out 0x3d, r28 ; 61
+ 2b2: cf 91 pop r28
+ 2b4: df 91 pop r29
+ 2b6: 08 95 ret
+
+000002b8 <main>:
+
+int main(){
+ 2b8: df 93 push r29
+ 2ba: cf 93 push r28
+ 2bc: 00 d0 rcall .+0 ; 0x2be <main+0x6>
+ 2be: cd b7 in r28, 0x3d ; 61
+ 2c0: 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();
+ 2c2: 0e 94 cf 00 call 0x19e ; 0x19e <_Z13fill_sinewavev>
+ Serial.begin(115200);
+ 2c6: 86 e2 ldi r24, 0x26 ; 38
+ 2c8: 93 e0 ldi r25, 0x03 ; 3
+ 2ca: 40 e0 ldi r20, 0x00 ; 0
+ 2cc: 52 ec ldi r21, 0xC2 ; 194
+ 2ce: 61 e0 ldi r22, 0x01 ; 1
+ 2d0: 70 e0 ldi r23, 0x00 ; 0
+ 2d2: 0e 94 cb 01 call 0x396 ; 0x396 <_ZN14HardwareSerial5beginEl>
+
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ 2d6: a4 e2 ldi r26, 0x24 ; 36
+ 2d8: b0 e0 ldi r27, 0x00 ; 0
+ 2da: e4 e2 ldi r30, 0x24 ; 36
+ 2dc: f0 e0 ldi r31, 0x00 ; 0
+ 2de: 80 81 ld r24, Z
+ 2e0: 80 62 ori r24, 0x20 ; 32
+ 2e2: 8c 93 st X, r24
+ PORTB = (1 << 5); //turn on to start
+ 2e4: e5 e2 ldi r30, 0x25 ; 37
+ 2e6: f0 e0 ldi r31, 0x00 ; 0
+ 2e8: 80 e2 ldi r24, 0x20 ; 32
+ 2ea: 80 83 st Z, r24
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ 2ec: a1 e8 ldi r26, 0x81 ; 129
+ 2ee: b0 e0 ldi r27, 0x00 ; 0
+ 2f0: e1 e8 ldi r30, 0x81 ; 129
+ 2f2: f0 e0 ldi r31, 0x00 ; 0
+ 2f4: 80 81 ld r24, Z
+ 2f6: 88 60 ori r24, 0x08 ; 8
+ 2f8: 8c 93 st X, r24
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ 2fa: af e6 ldi r26, 0x6F ; 111
+ 2fc: b0 e0 ldi r27, 0x00 ; 0
+ 2fe: ef e6 ldi r30, 0x6F ; 111
+ 300: f0 e0 ldi r31, 0x00 ; 0
+ 302: 80 81 ld r24, Z
+ 304: 82 60 ori r24, 0x02 ; 2
+ 306: 8c 93 st X, r24
+ OCR1A = 390; // Set CTC compare value: final speed = CPU clocks / prescaler / CTC 15625=1Hz
+ 308: e8 e8 ldi r30, 0x88 ; 136
+ 30a: f0 e0 ldi r31, 0x00 ; 0
+ 30c: 86 e8 ldi r24, 0x86 ; 134
+ 30e: 91 e0 ldi r25, 0x01 ; 1
+ 310: 91 83 std Z+1, r25 ; 0x01
+ 312: 80 83 st Z, r24
+ sei(); // Enable global interrupts
+ 314: 78 94 sei
+
+ while(1) {
+ if (Serial.available() > 0) {
+ 316: 86 e2 ldi r24, 0x26 ; 38
+ 318: 93 e0 ldi r25, 0x03 ; 3
+ 31a: 0e 94 c8 01 call 0x390 ; 0x390 <_ZN14HardwareSerial9availableEv>
+ 31e: 1a 82 std Y+2, r1 ; 0x02
+ 320: 18 16 cp r1, r24
+ 322: 19 06 cpc r1, r25
+ 324: 14 f4 brge .+4 ; 0x32a <main+0x72>
+ 326: 81 e0 ldi r24, 0x01 ; 1
+ 328: 8a 83 std Y+2, r24 ; 0x02
+ 32a: 8a 81 ldd r24, Y+2 ; 0x02
+ 32c: 88 23 and r24, r24
+ 32e: 99 f3 breq .-26 ; 0x316 <main+0x5e>
+ PORTB ^= (1 << 5);
+ 330: a5 e2 ldi r26, 0x25 ; 37
+ 332: b0 e0 ldi r27, 0x00 ; 0
+ 334: e5 e2 ldi r30, 0x25 ; 37
+ 336: f0 e0 ldi r31, 0x00 ; 0
+ 338: 90 81 ld r25, Z
+ 33a: 80 e2 ldi r24, 0x20 ; 32
+ 33c: 89 27 eor r24, r25
+ 33e: 8c 93 st X, r24
+ byte in=Serial.read();
+ 340: 86 e2 ldi r24, 0x26 ; 38
+ 342: 93 e0 ldi r25, 0x03 ; 3
+ 344: 0e 94 c5 01 call 0x38a ; 0x38a <_ZN14HardwareSerial4readEv>
+ 348: 89 83 std Y+1, r24 ; 0x01
+ if (in=='a') {
+ 34a: 89 81 ldd r24, Y+1 ; 0x01
+ 34c: 81 36 cpi r24, 0x61 ; 97
+ 34e: 19 f7 brne .-58 ; 0x316 <main+0x5e>
+ Serial.println("Welcome to electic");
+ 350: 86 e2 ldi r24, 0x26 ; 38
+ 352: 93 e0 ldi r25, 0x03 ; 3
+ 354: 20 e0 ldi r18, 0x00 ; 0
+ 356: 31 e0 ldi r19, 0x01 ; 1
+ 358: b9 01 movw r22, r18
+ 35a: 0e 94 1f 02 call 0x43e ; 0x43e <_ZN5Print7printlnEPKc>
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ 35e: a1 e8 ldi r26, 0x81 ; 129
+ 360: b0 e0 ldi r27, 0x00 ; 0
+ 362: e1 e8 ldi r30, 0x81 ; 129
+ 364: f0 e0 ldi r31, 0x00 ; 0
+ 366: 80 81 ld r24, Z
+ 368: 85 60 ori r24, 0x05 ; 5
+ 36a: 8c 93 st X, r24
+ 36c: d4 cf rjmp .-88 ; 0x316 <main+0x5e>
+
+0000036e <_GLOBAL__I__ZN14HardwareSerial5beginEl>:
+ 36e: 87 e1 ldi r24, 0x17 ; 23
+ 370: 91 e0 ldi r25, 0x01 ; 1
+ 372: 90 93 27 03 sts 0x0327, r25
+ 376: 80 93 26 03 sts 0x0326, r24
+ 37a: 08 95 ret
+
+0000037c <_ZN14HardwareSerial5writeEh>:
+ 37c: 86 2f mov r24, r22
+ 37e: 0e 94 98 03 call 0x730 ; 0x730 <serialWrite>
+ 382: 08 95 ret
+
+00000384 <_ZN14HardwareSerial5flushEv>:
+ 384: 0e 94 d0 03 call 0x7a0 ; 0x7a0 <serialFlush>
+ 388: 08 95 ret
+
+0000038a <_ZN14HardwareSerial4readEv>:
+ 38a: 0e 94 b1 03 call 0x762 ; 0x762 <serialRead>
+ 38e: 08 95 ret
+
+00000390 <_ZN14HardwareSerial9availableEv>:
+ 390: 0e 94 a0 03 call 0x740 ; 0x740 <serialAvailable>
+ 394: 08 95 ret
+
+00000396 <_ZN14HardwareSerial5beginEl>:
+ 396: cb 01 movw r24, r22
+ 398: ba 01 movw r22, r20
+ 39a: 0e 94 5f 03 call 0x6be ; 0x6be <beginSerial>
+ 39e: 08 95 ret
+
+000003a0 <_ZN5Print5printEh>:
+ 3a0: dc 01 movw r26, r24
+ 3a2: ed 91 ld r30, X+
+ 3a4: fc 91 ld r31, X
+ 3a6: 01 90 ld r0, Z+
+ 3a8: f0 81 ld r31, Z
+ 3aa: e0 2d mov r30, r0
+ 3ac: 09 95 icall
+ 3ae: 08 95 ret
+
+000003b0 <_ZN5Print5printEc>:
+ 3b0: dc 01 movw r26, r24
+ 3b2: ed 91 ld r30, X+
+ 3b4: fc 91 ld r31, X
+ 3b6: 01 90 ld r0, Z+
+ 3b8: f0 81 ld r31, Z
+ 3ba: e0 2d mov r30, r0
+ 3bc: 09 95 icall
+ 3be: 08 95 ret
+
+000003c0 <_ZN5Print5printEPKc>:
+ 3c0: 0f 93 push r16
+ 3c2: 1f 93 push r17
+ 3c4: cf 93 push r28
+ 3c6: df 93 push r29
+ 3c8: 8c 01 movw r16, r24
+ 3ca: eb 01 movw r28, r22
+ 3cc: 09 c0 rjmp .+18 ; 0x3e0 <_ZN5Print5printEPKc+0x20>
+ 3ce: 21 96 adiw r28, 0x01 ; 1
+ 3d0: d8 01 movw r26, r16
+ 3d2: ed 91 ld r30, X+
+ 3d4: fc 91 ld r31, X
+ 3d6: 01 90 ld r0, Z+
+ 3d8: f0 81 ld r31, Z
+ 3da: e0 2d mov r30, r0
+ 3dc: c8 01 movw r24, r16
+ 3de: 09 95 icall
+ 3e0: 68 81 ld r22, Y
+ 3e2: 66 23 and r22, r22
+ 3e4: a1 f7 brne .-24 ; 0x3ce <_ZN5Print5printEPKc+0xe>
+ 3e6: df 91 pop r29
+ 3e8: cf 91 pop r28
+ 3ea: 1f 91 pop r17
+ 3ec: 0f 91 pop r16
+ 3ee: 08 95 ret
+
+000003f0 <_ZN5Print7printlnEv>:
+ 3f0: 0f 93 push r16
+ 3f2: 1f 93 push r17
+ 3f4: 8c 01 movw r16, r24
+ 3f6: dc 01 movw r26, r24
+ 3f8: ed 91 ld r30, X+
+ 3fa: fc 91 ld r31, X
+ 3fc: 01 90 ld r0, Z+
+ 3fe: f0 81 ld r31, Z
+ 400: e0 2d mov r30, r0
+ 402: 6d e0 ldi r22, 0x0D ; 13
+ 404: 09 95 icall
+ 406: d8 01 movw r26, r16
+ 408: ed 91 ld r30, X+
+ 40a: fc 91 ld r31, X
+ 40c: 01 90 ld r0, Z+
+ 40e: f0 81 ld r31, Z
+ 410: e0 2d mov r30, r0
+ 412: 6a e0 ldi r22, 0x0A ; 10
+ 414: c8 01 movw r24, r16
+ 416: 09 95 icall
+ 418: 1f 91 pop r17
+ 41a: 0f 91 pop r16
+ 41c: 08 95 ret
+
+0000041e <_ZN5Print7printlnEc>:
+ 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: 09 95 icall
+ 432: c8 01 movw r24, r16
+ 434: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 438: 1f 91 pop r17
+ 43a: 0f 91 pop r16
+ 43c: 08 95 ret
+
+0000043e <_ZN5Print7printlnEPKc>:
+ 43e: 0f 93 push r16
+ 440: 1f 93 push r17
+ 442: 8c 01 movw r16, r24
+ 444: 0e 94 e0 01 call 0x3c0 ; 0x3c0 <_ZN5Print5printEPKc>
+ 448: c8 01 movw r24, r16
+ 44a: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 44e: 1f 91 pop r17
+ 450: 0f 91 pop r16
+ 452: 08 95 ret
+
+00000454 <_ZN5Print7printlnEh>:
+ 454: 0f 93 push r16
+ 456: 1f 93 push r17
+ 458: 8c 01 movw r16, r24
+ 45a: dc 01 movw r26, r24
+ 45c: ed 91 ld r30, X+
+ 45e: fc 91 ld r31, X
+ 460: 01 90 ld r0, Z+
+ 462: f0 81 ld r31, Z
+ 464: e0 2d mov r30, r0
+ 466: 09 95 icall
+ 468: c8 01 movw r24, r16
+ 46a: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 46e: 1f 91 pop r17
+ 470: 0f 91 pop r16
+ 472: 08 95 ret
+
+00000474 <_ZN5Print11printNumberEmh>:
+ 474: 2f 92 push r2
+ 476: 3f 92 push r3
+ 478: 4f 92 push r4
+ 47a: 5f 92 push r5
+ 47c: 6f 92 push r6
+ 47e: 7f 92 push r7
+ 480: 8f 92 push r8
+ 482: 9f 92 push r9
+ 484: af 92 push r10
+ 486: bf 92 push r11
+ 488: cf 92 push r12
+ 48a: df 92 push r13
+ 48c: ef 92 push r14
+ 48e: ff 92 push r15
+ 490: 0f 93 push r16
+ 492: 1f 93 push r17
+ 494: df 93 push r29
+ 496: cf 93 push r28
+ 498: cd b7 in r28, 0x3d ; 61
+ 49a: de b7 in r29, 0x3e ; 62
+ 49c: a0 97 sbiw r28, 0x20 ; 32
+ 49e: 0f b6 in r0, 0x3f ; 63
+ 4a0: f8 94 cli
+ 4a2: de bf out 0x3e, r29 ; 62
+ 4a4: 0f be out 0x3f, r0 ; 63
+ 4a6: cd bf out 0x3d, r28 ; 61
+ 4a8: 1c 01 movw r2, r24
+ 4aa: 6a 01 movw r12, r20
+ 4ac: 7b 01 movw r14, r22
+ 4ae: 41 15 cp r20, r1
+ 4b0: 51 05 cpc r21, r1
+ 4b2: 61 05 cpc r22, r1
+ 4b4: 71 05 cpc r23, r1
+ 4b6: 49 f4 brne .+18 ; 0x4ca <_ZN5Print11printNumberEmh+0x56>
+ 4b8: dc 01 movw r26, r24
+ 4ba: ed 91 ld r30, X+
+ 4bc: fc 91 ld r31, X
+ 4be: 01 90 ld r0, Z+
+ 4c0: f0 81 ld r31, Z
+ 4c2: e0 2d mov r30, r0
+ 4c4: 60 e3 ldi r22, 0x30 ; 48
+ 4c6: 09 95 icall
+ 4c8: 54 c0 rjmp .+168 ; 0x572 <_ZN5Print11printNumberEmh+0xfe>
+ 4ca: 88 24 eor r8, r8
+ 4cc: 99 24 eor r9, r9
+ 4ce: 54 01 movw r10, r8
+ 4d0: 42 2e mov r4, r18
+ 4d2: 55 24 eor r5, r5
+ 4d4: 66 24 eor r6, r6
+ 4d6: 77 24 eor r7, r7
+ 4d8: 01 e0 ldi r16, 0x01 ; 1
+ 4da: 10 e0 ldi r17, 0x00 ; 0
+ 4dc: 0c 0f add r16, r28
+ 4de: 1d 1f adc r17, r29
+ 4e0: 08 0d add r16, r8
+ 4e2: 19 1d adc r17, r9
+ 4e4: c7 01 movw r24, r14
+ 4e6: b6 01 movw r22, r12
+ 4e8: a3 01 movw r20, r6
+ 4ea: 92 01 movw r18, r4
+ 4ec: 0e 94 1a 09 call 0x1234 ; 0x1234 <__udivmodsi4>
+ 4f0: f8 01 movw r30, r16
+ 4f2: 60 83 st Z, r22
+ 4f4: 08 94 sec
+ 4f6: 81 1c adc r8, r1
+ 4f8: 91 1c adc r9, r1
+ 4fa: a1 1c adc r10, r1
+ 4fc: b1 1c adc r11, r1
+ 4fe: c7 01 movw r24, r14
+ 500: b6 01 movw r22, r12
+ 502: a3 01 movw r20, r6
+ 504: 92 01 movw r18, r4
+ 506: 0e 94 1a 09 call 0x1234 ; 0x1234 <__udivmodsi4>
+ 50a: c9 01 movw r24, r18
+ 50c: da 01 movw r26, r20
+ 50e: 6c 01 movw r12, r24
+ 510: 7d 01 movw r14, r26
+ 512: c1 14 cp r12, r1
+ 514: d1 04 cpc r13, r1
+ 516: e1 04 cpc r14, r1
+ 518: f1 04 cpc r15, r1
+ 51a: f1 f6 brne .-68 ; 0x4d8 <_ZN5Print11printNumberEmh+0x64>
+ 51c: 81 e0 ldi r24, 0x01 ; 1
+ 51e: e8 2e mov r14, r24
+ 520: f1 2c mov r15, r1
+ 522: ec 0e add r14, r28
+ 524: fd 1e adc r15, r29
+ 526: e8 0c add r14, r8
+ 528: f9 1c adc r15, r9
+ 52a: 3e 01 movw r6, r28
+ 52c: 08 94 sec
+ 52e: 61 1c adc r6, r1
+ 530: 71 1c adc r7, r1
+ 532: d5 01 movw r26, r10
+ 534: c4 01 movw r24, r8
+ 536: 01 97 sbiw r24, 0x01 ; 1
+ 538: a1 09 sbc r26, r1
+ 53a: b1 09 sbc r27, r1
+ 53c: 6c 01 movw r12, r24
+ 53e: c8 18 sub r12, r8
+ 540: d9 08 sbc r13, r9
+ 542: 14 c0 rjmp .+40 ; 0x56c <_ZN5Print11printNumberEmh+0xf8>
+ 544: f6 01 movw r30, r12
+ 546: ee 0d add r30, r14
+ 548: ff 1d adc r31, r15
+ 54a: 60 81 ld r22, Z
+ 54c: 6a 30 cpi r22, 0x0A ; 10
+ 54e: 10 f4 brcc .+4 ; 0x554 <_ZN5Print11printNumberEmh+0xe0>
+ 550: 60 5d subi r22, 0xD0 ; 208
+ 552: 01 c0 rjmp .+2 ; 0x556 <_ZN5Print11printNumberEmh+0xe2>
+ 554: 69 5c subi r22, 0xC9 ; 201
+ 556: d1 01 movw r26, r2
+ 558: ed 91 ld r30, X+
+ 55a: fc 91 ld r31, X
+ 55c: 01 90 ld r0, Z+
+ 55e: f0 81 ld r31, Z
+ 560: e0 2d mov r30, r0
+ 562: c1 01 movw r24, r2
+ 564: 09 95 icall
+ 566: 08 94 sec
+ 568: e1 08 sbc r14, r1
+ 56a: f1 08 sbc r15, r1
+ 56c: 6e 14 cp r6, r14
+ 56e: 7f 04 cpc r7, r15
+ 570: 49 f7 brne .-46 ; 0x544 <_ZN5Print11printNumberEmh+0xd0>
+ 572: a0 96 adiw r28, 0x20 ; 32
+ 574: 0f b6 in r0, 0x3f ; 63
+ 576: f8 94 cli
+ 578: de bf out 0x3e, r29 ; 62
+ 57a: 0f be out 0x3f, r0 ; 63
+ 57c: cd bf out 0x3d, r28 ; 61
+ 57e: cf 91 pop r28
+ 580: df 91 pop r29
+ 582: 1f 91 pop r17
+ 584: 0f 91 pop r16
+ 586: ff 90 pop r15
+ 588: ef 90 pop r14
+ 58a: df 90 pop r13
+ 58c: cf 90 pop r12
+ 58e: bf 90 pop r11
+ 590: af 90 pop r10
+ 592: 9f 90 pop r9
+ 594: 8f 90 pop r8
+ 596: 7f 90 pop r7
+ 598: 6f 90 pop r6
+ 59a: 5f 90 pop r5
+ 59c: 4f 90 pop r4
+ 59e: 3f 90 pop r3
+ 5a0: 2f 90 pop r2
+ 5a2: 08 95 ret
+
+000005a4 <_ZN5Print5printEm>:
+ 5a4: 2a e0 ldi r18, 0x0A ; 10
+ 5a6: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 5aa: 08 95 ret
+
+000005ac <_ZN5Print7printlnEm>:
+ 5ac: 0f 93 push r16
+ 5ae: 1f 93 push r17
+ 5b0: 8c 01 movw r16, r24
+ 5b2: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5b6: c8 01 movw r24, r16
+ 5b8: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 5bc: 1f 91 pop r17
+ 5be: 0f 91 pop r16
+ 5c0: 08 95 ret
+
+000005c2 <_ZN5Print5printEj>:
+ 5c2: ab 01 movw r20, r22
+ 5c4: 60 e0 ldi r22, 0x00 ; 0
+ 5c6: 70 e0 ldi r23, 0x00 ; 0
+ 5c8: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5cc: 08 95 ret
+
+000005ce <_ZN5Print7printlnEj>:
+ 5ce: 0f 93 push r16
+ 5d0: 1f 93 push r17
+ 5d2: 8c 01 movw r16, r24
+ 5d4: ab 01 movw r20, r22
+ 5d6: 60 e0 ldi r22, 0x00 ; 0
+ 5d8: 70 e0 ldi r23, 0x00 ; 0
+ 5da: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5de: c8 01 movw r24, r16
+ 5e0: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 5e4: 1f 91 pop r17
+ 5e6: 0f 91 pop r16
+ 5e8: 08 95 ret
+
+000005ea <_ZN5Print5printEl>:
+ 5ea: ef 92 push r14
+ 5ec: ff 92 push r15
+ 5ee: 0f 93 push r16
+ 5f0: 1f 93 push r17
+ 5f2: cf 93 push r28
+ 5f4: df 93 push r29
+ 5f6: ec 01 movw r28, r24
+ 5f8: 7a 01 movw r14, r20
+ 5fa: 8b 01 movw r16, r22
+ 5fc: 77 ff sbrs r23, 7
+ 5fe: 0f c0 rjmp .+30 ; 0x61e <_ZN5Print5printEl+0x34>
+ 600: e8 81 ld r30, Y
+ 602: f9 81 ldd r31, Y+1 ; 0x01
+ 604: 01 90 ld r0, Z+
+ 606: f0 81 ld r31, Z
+ 608: e0 2d mov r30, r0
+ 60a: 6d e2 ldi r22, 0x2D ; 45
+ 60c: 09 95 icall
+ 60e: 10 95 com r17
+ 610: 00 95 com r16
+ 612: f0 94 com r15
+ 614: e0 94 com r14
+ 616: e1 1c adc r14, r1
+ 618: f1 1c adc r15, r1
+ 61a: 01 1d adc r16, r1
+ 61c: 11 1d adc r17, r1
+ 61e: 2a e0 ldi r18, 0x0A ; 10
+ 620: b8 01 movw r22, r16
+ 622: a7 01 movw r20, r14
+ 624: ce 01 movw r24, r28
+ 626: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 62a: df 91 pop r29
+ 62c: cf 91 pop r28
+ 62e: 1f 91 pop r17
+ 630: 0f 91 pop r16
+ 632: ff 90 pop r15
+ 634: ef 90 pop r14
+ 636: 08 95 ret
+
+00000638 <_ZN5Print7printlnEl>:
+ 638: 0f 93 push r16
+ 63a: 1f 93 push r17
+ 63c: 8c 01 movw r16, r24
+ 63e: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 642: c8 01 movw r24, r16
+ 644: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 648: 1f 91 pop r17
+ 64a: 0f 91 pop r16
+ 64c: 08 95 ret
+
+0000064e <_ZN5Print5printEi>:
+ 64e: ab 01 movw r20, r22
+ 650: 66 27 eor r22, r22
+ 652: 57 fd sbrc r21, 7
+ 654: 60 95 com r22
+ 656: 76 2f mov r23, r22
+ 658: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 65c: 08 95 ret
+
+0000065e <_ZN5Print7printlnEi>:
+ 65e: 0f 93 push r16
+ 660: 1f 93 push r17
+ 662: 8c 01 movw r16, r24
+ 664: ab 01 movw r20, r22
+ 666: 66 27 eor r22, r22
+ 668: 57 fd sbrc r21, 7
+ 66a: 60 95 com r22
+ 66c: 76 2f mov r23, r22
+ 66e: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 672: c8 01 movw r24, r16
+ 674: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 678: 1f 91 pop r17
+ 67a: 0f 91 pop r16
+ 67c: 08 95 ret
+
+0000067e <_ZN5Print5printEli>:
+ 67e: dc 01 movw r26, r24
+ 680: 21 15 cp r18, r1
+ 682: 31 05 cpc r19, r1
+ 684: 41 f4 brne .+16 ; 0x696 <_ZN5Print5printEli+0x18>
+ 686: ed 91 ld r30, X+
+ 688: fc 91 ld r31, X
+ 68a: 01 90 ld r0, Z+
+ 68c: f0 81 ld r31, Z
+ 68e: e0 2d mov r30, r0
+ 690: 64 2f mov r22, r20
+ 692: 09 95 icall
+ 694: 08 95 ret
+ 696: 2a 30 cpi r18, 0x0A ; 10
+ 698: 31 05 cpc r19, r1
+ 69a: 19 f4 brne .+6 ; 0x6a2 <_ZN5Print5printEli+0x24>
+ 69c: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 6a0: 08 95 ret
+ 6a2: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 6a6: 08 95 ret
+
+000006a8 <_ZN5Print7printlnEli>:
+ 6a8: 0f 93 push r16
+ 6aa: 1f 93 push r17
+ 6ac: 8c 01 movw r16, r24
+ 6ae: 0e 94 3f 03 call 0x67e ; 0x67e <_ZN5Print5printEli>
+ 6b2: c8 01 movw r24, r16
+ 6b4: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 6b8: 1f 91 pop r17
+ 6ba: 0f 91 pop r16
+ 6bc: 08 95 ret
+
+000006be <beginSerial>:
+ 6be: ef 92 push r14
+ 6c0: ff 92 push r15
+ 6c2: 0f 93 push r16
+ 6c4: 1f 93 push r17
+ 6c6: 7b 01 movw r14, r22
+ 6c8: 8c 01 movw r16, r24
+ 6ca: 22 e0 ldi r18, 0x02 ; 2
+ 6cc: 30 e0 ldi r19, 0x00 ; 0
+ 6ce: 40 e0 ldi r20, 0x00 ; 0
+ 6d0: 50 e0 ldi r21, 0x00 ; 0
+ 6d2: 0e 94 3c 09 call 0x1278 ; 0x1278 <__divmodsi4>
+ 6d6: 20 5c subi r18, 0xC0 ; 192
+ 6d8: 3d 4b sbci r19, 0xBD ; 189
+ 6da: 40 4f sbci r20, 0xF0 ; 240
+ 6dc: 5f 4f sbci r21, 0xFF ; 255
+ 6de: ca 01 movw r24, r20
+ 6e0: b9 01 movw r22, r18
+ 6e2: a8 01 movw r20, r16
+ 6e4: 97 01 movw r18, r14
+ 6e6: 0e 94 3c 09 call 0x1278 ; 0x1278 <__divmodsi4>
+ 6ea: c9 01 movw r24, r18
+ 6ec: da 01 movw r26, r20
+ 6ee: 01 97 sbiw r24, 0x01 ; 1
+ 6f0: a1 09 sbc r26, r1
+ 6f2: b1 09 sbc r27, r1
+ 6f4: 29 2f mov r18, r25
+ 6f6: 3a 2f mov r19, r26
+ 6f8: 4b 2f mov r20, r27
+ 6fa: 55 27 eor r21, r21
+ 6fc: 47 fd sbrc r20, 7
+ 6fe: 5a 95 dec r21
+ 700: 01 96 adiw r24, 0x01 ; 1
+ 702: a1 1d adc r26, r1
+ 704: b1 1d adc r27, r1
+ 706: 20 93 c5 00 sts 0x00C5, r18
+ 70a: 81 50 subi r24, 0x01 ; 1
+ 70c: 80 93 c4 00 sts 0x00C4, r24
+ 710: e1 ec ldi r30, 0xC1 ; 193
+ 712: f0 e0 ldi r31, 0x00 ; 0
+ 714: 80 81 ld r24, Z
+ 716: 80 61 ori r24, 0x10 ; 16
+ 718: 80 83 st Z, r24
+ 71a: 80 81 ld r24, Z
+ 71c: 88 60 ori r24, 0x08 ; 8
+ 71e: 80 83 st Z, r24
+ 720: 80 81 ld r24, Z
+ 722: 80 68 ori r24, 0x80 ; 128
+ 724: 80 83 st Z, r24
+ 726: 1f 91 pop r17
+ 728: 0f 91 pop r16
+ 72a: ff 90 pop r15
+ 72c: ef 90 pop r14
+ 72e: 08 95 ret
+
+00000730 <serialWrite>:
+ 730: 98 2f mov r25, r24
+ 732: 80 91 c0 00 lds r24, 0x00C0
+ 736: 85 ff sbrs r24, 5
+ 738: fc cf rjmp .-8 ; 0x732 <serialWrite+0x2>
+ 73a: 90 93 c6 00 sts 0x00C6, r25
+ 73e: 08 95 ret
+
+00000740 <serialAvailable>:
+ 740: 80 91 28 03 lds r24, 0x0328
+ 744: 90 91 29 03 lds r25, 0x0329
+ 748: 80 58 subi r24, 0x80 ; 128
+ 74a: 9f 4f sbci r25, 0xFF ; 255
+ 74c: 20 91 2a 03 lds r18, 0x032A
+ 750: 30 91 2b 03 lds r19, 0x032B
+ 754: 82 1b sub r24, r18
+ 756: 93 0b sbc r25, r19
+ 758: 60 e8 ldi r22, 0x80 ; 128
+ 75a: 70 e0 ldi r23, 0x00 ; 0
+ 75c: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 760: 08 95 ret
+
+00000762 <serialRead>:
+ 762: 40 91 2a 03 lds r20, 0x032A
+ 766: 50 91 2b 03 lds r21, 0x032B
+ 76a: 80 91 28 03 lds r24, 0x0328
+ 76e: 90 91 29 03 lds r25, 0x0329
+ 772: 84 17 cp r24, r20
+ 774: 95 07 cpc r25, r21
+ 776: 19 f4 brne .+6 ; 0x77e <serialRead+0x1c>
+ 778: 2f ef ldi r18, 0xFF ; 255
+ 77a: 3f ef ldi r19, 0xFF ; 255
+ 77c: 0f c0 rjmp .+30 ; 0x79c <serialRead+0x3a>
+ 77e: fa 01 movw r30, r20
+ 780: e4 5d subi r30, 0xD4 ; 212
+ 782: fc 4f sbci r31, 0xFC ; 252
+ 784: 20 81 ld r18, Z
+ 786: ca 01 movw r24, r20
+ 788: 01 96 adiw r24, 0x01 ; 1
+ 78a: 60 e8 ldi r22, 0x80 ; 128
+ 78c: 70 e0 ldi r23, 0x00 ; 0
+ 78e: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 792: 90 93 2b 03 sts 0x032B, r25
+ 796: 80 93 2a 03 sts 0x032A, r24
+ 79a: 30 e0 ldi r19, 0x00 ; 0
+ 79c: c9 01 movw r24, r18
+ 79e: 08 95 ret
+
+000007a0 <serialFlush>:
+ 7a0: 80 91 2a 03 lds r24, 0x032A
+ 7a4: 90 91 2b 03 lds r25, 0x032B
+ 7a8: 90 93 29 03 sts 0x0329, r25
+ 7ac: 80 93 28 03 sts 0x0328, r24
+ 7b0: 08 95 ret
+
+000007b2 <__vector_18>:
+ 7b2: 1f 92 push r1
+ 7b4: 0f 92 push r0
+ 7b6: 0f b6 in r0, 0x3f ; 63
+ 7b8: 0f 92 push r0
+ 7ba: 11 24 eor r1, r1
+ 7bc: 2f 93 push r18
+ 7be: 3f 93 push r19
+ 7c0: 4f 93 push r20
+ 7c2: 5f 93 push r21
+ 7c4: 6f 93 push r22
+ 7c6: 7f 93 push r23
+ 7c8: 8f 93 push r24
+ 7ca: 9f 93 push r25
+ 7cc: af 93 push r26
+ 7ce: bf 93 push r27
+ 7d0: ef 93 push r30
+ 7d2: ff 93 push r31
+ 7d4: 40 91 c6 00 lds r20, 0x00C6
+ 7d8: e0 91 28 03 lds r30, 0x0328
+ 7dc: f0 91 29 03 lds r31, 0x0329
+ 7e0: cf 01 movw r24, r30
+ 7e2: 01 96 adiw r24, 0x01 ; 1
+ 7e4: 60 e8 ldi r22, 0x80 ; 128
+ 7e6: 70 e0 ldi r23, 0x00 ; 0
+ 7e8: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 7ec: 9c 01 movw r18, r24
+ 7ee: 80 91 2a 03 lds r24, 0x032A
+ 7f2: 90 91 2b 03 lds r25, 0x032B
+ 7f6: 28 17 cp r18, r24
+ 7f8: 39 07 cpc r19, r25
+ 7fa: 39 f0 breq .+14 ; 0x80a <__vector_18+0x58>
+ 7fc: e4 5d subi r30, 0xD4 ; 212
+ 7fe: fc 4f sbci r31, 0xFC ; 252
+ 800: 40 83 st Z, r20
+ 802: 30 93 29 03 sts 0x0329, r19
+ 806: 20 93 28 03 sts 0x0328, r18
+ 80a: ff 91 pop r31
+ 80c: ef 91 pop r30
+ 80e: bf 91 pop r27
+ 810: af 91 pop r26
+ 812: 9f 91 pop r25
+ 814: 8f 91 pop r24
+ 816: 7f 91 pop r23
+ 818: 6f 91 pop r22
+ 81a: 5f 91 pop r21
+ 81c: 4f 91 pop r20
+ 81e: 3f 91 pop r19
+ 820: 2f 91 pop r18
+ 822: 0f 90 pop r0
+ 824: 0f be out 0x3f, r0 ; 63
+ 826: 0f 90 pop r0
+ 828: 1f 90 pop r1
+ 82a: 18 95 reti
+
+0000082c <_fpadd_parts>:
+ 82c: a0 e0 ldi r26, 0x00 ; 0
+ 82e: b0 e0 ldi r27, 0x00 ; 0
+ 830: ec e1 ldi r30, 0x1C ; 28
+ 832: f4 e0 ldi r31, 0x04 ; 4
+ 834: 0c 94 6b 09 jmp 0x12d6 ; 0x12d6 <__prologue_saves__>
+ 838: dc 01 movw r26, r24
+ 83a: 2b 01 movw r4, r22
+ 83c: fa 01 movw r30, r20
+ 83e: 9c 91 ld r25, X
+ 840: 92 30 cpi r25, 0x02 ; 2
+ 842: 08 f4 brcc .+2 ; 0x846 <_fpadd_parts+0x1a>
+ 844: 39 c1 rjmp .+626 ; 0xab8 <__stack+0x1b9>
+ 846: eb 01 movw r28, r22
+ 848: 88 81 ld r24, Y
+ 84a: 82 30 cpi r24, 0x02 ; 2
+ 84c: 08 f4 brcc .+2 ; 0x850 <_fpadd_parts+0x24>
+ 84e: 33 c1 rjmp .+614 ; 0xab6 <__stack+0x1b7>
+ 850: 94 30 cpi r25, 0x04 ; 4
+ 852: 69 f4 brne .+26 ; 0x86e <_fpadd_parts+0x42>
+ 854: 84 30 cpi r24, 0x04 ; 4
+ 856: 09 f0 breq .+2 ; 0x85a <_fpadd_parts+0x2e>
+ 858: 2f c1 rjmp .+606 ; 0xab8 <__stack+0x1b9>
+ 85a: 11 96 adiw r26, 0x01 ; 1
+ 85c: 9c 91 ld r25, X
+ 85e: 11 97 sbiw r26, 0x01 ; 1
+ 860: 89 81 ldd r24, Y+1 ; 0x01
+ 862: 98 17 cp r25, r24
+ 864: 09 f4 brne .+2 ; 0x868 <_fpadd_parts+0x3c>
+ 866: 28 c1 rjmp .+592 ; 0xab8 <__stack+0x1b9>
+ 868: a9 e1 ldi r26, 0x19 ; 25
+ 86a: b1 e0 ldi r27, 0x01 ; 1
+ 86c: 25 c1 rjmp .+586 ; 0xab8 <__stack+0x1b9>
+ 86e: 84 30 cpi r24, 0x04 ; 4
+ 870: 09 f4 brne .+2 ; 0x874 <_fpadd_parts+0x48>
+ 872: 21 c1 rjmp .+578 ; 0xab6 <__stack+0x1b7>
+ 874: 82 30 cpi r24, 0x02 ; 2
+ 876: a9 f4 brne .+42 ; 0x8a2 <_fpadd_parts+0x76>
+ 878: 92 30 cpi r25, 0x02 ; 2
+ 87a: 09 f0 breq .+2 ; 0x87e <_fpadd_parts+0x52>
+ 87c: 1d c1 rjmp .+570 ; 0xab8 <__stack+0x1b9>
+ 87e: 9a 01 movw r18, r20
+ 880: ad 01 movw r20, r26
+ 882: 88 e0 ldi r24, 0x08 ; 8
+ 884: ea 01 movw r28, r20
+ 886: 09 90 ld r0, Y+
+ 888: ae 01 movw r20, r28
+ 88a: e9 01 movw r28, r18
+ 88c: 09 92 st Y+, r0
+ 88e: 9e 01 movw r18, r28
+ 890: 81 50 subi r24, 0x01 ; 1
+ 892: c1 f7 brne .-16 ; 0x884 <_fpadd_parts+0x58>
+ 894: e2 01 movw r28, r4
+ 896: 89 81 ldd r24, Y+1 ; 0x01
+ 898: 11 96 adiw r26, 0x01 ; 1
+ 89a: 9c 91 ld r25, X
+ 89c: 89 23 and r24, r25
+ 89e: 81 83 std Z+1, r24 ; 0x01
+ 8a0: 08 c1 rjmp .+528 ; 0xab2 <__stack+0x1b3>
+ 8a2: 92 30 cpi r25, 0x02 ; 2
+ 8a4: 09 f4 brne .+2 ; 0x8a8 <_fpadd_parts+0x7c>
+ 8a6: 07 c1 rjmp .+526 ; 0xab6 <__stack+0x1b7>
+ 8a8: 12 96 adiw r26, 0x02 ; 2
+ 8aa: 2d 90 ld r2, X+
+ 8ac: 3c 90 ld r3, X
+ 8ae: 13 97 sbiw r26, 0x03 ; 3
+ 8b0: eb 01 movw r28, r22
+ 8b2: 8a 81 ldd r24, Y+2 ; 0x02
+ 8b4: 9b 81 ldd r25, Y+3 ; 0x03
+ 8b6: 14 96 adiw r26, 0x04 ; 4
+ 8b8: ad 90 ld r10, X+
+ 8ba: bd 90 ld r11, X+
+ 8bc: cd 90 ld r12, X+
+ 8be: dc 90 ld r13, X
+ 8c0: 17 97 sbiw r26, 0x07 ; 7
+ 8c2: ec 80 ldd r14, Y+4 ; 0x04
+ 8c4: fd 80 ldd r15, Y+5 ; 0x05
+ 8c6: 0e 81 ldd r16, Y+6 ; 0x06
+ 8c8: 1f 81 ldd r17, Y+7 ; 0x07
+ 8ca: 91 01 movw r18, r2
+ 8cc: 28 1b sub r18, r24
+ 8ce: 39 0b sbc r19, r25
+ 8d0: b9 01 movw r22, r18
+ 8d2: 37 ff sbrs r19, 7
+ 8d4: 04 c0 rjmp .+8 ; 0x8de <_fpadd_parts+0xb2>
+ 8d6: 66 27 eor r22, r22
+ 8d8: 77 27 eor r23, r23
+ 8da: 62 1b sub r22, r18
+ 8dc: 73 0b sbc r23, r19
+ 8de: 60 32 cpi r22, 0x20 ; 32
+ 8e0: 71 05 cpc r23, r1
+ 8e2: 0c f0 brlt .+2 ; 0x8e6 <_fpadd_parts+0xba>
+ 8e4: 61 c0 rjmp .+194 ; 0x9a8 <__stack+0xa9>
+ 8e6: 12 16 cp r1, r18
+ 8e8: 13 06 cpc r1, r19
+ 8ea: 6c f5 brge .+90 ; 0x946 <__stack+0x47>
+ 8ec: 37 01 movw r6, r14
+ 8ee: 48 01 movw r8, r16
+ 8f0: 06 2e mov r0, r22
+ 8f2: 04 c0 rjmp .+8 ; 0x8fc <_fpadd_parts+0xd0>
+ 8f4: 96 94 lsr r9
+ 8f6: 87 94 ror r8
+ 8f8: 77 94 ror r7
+ 8fa: 67 94 ror r6
+ 8fc: 0a 94 dec r0
+ 8fe: d2 f7 brpl .-12 ; 0x8f4 <_fpadd_parts+0xc8>
+ 900: 21 e0 ldi r18, 0x01 ; 1
+ 902: 30 e0 ldi r19, 0x00 ; 0
+ 904: 40 e0 ldi r20, 0x00 ; 0
+ 906: 50 e0 ldi r21, 0x00 ; 0
+ 908: 04 c0 rjmp .+8 ; 0x912 <__stack+0x13>
+ 90a: 22 0f add r18, r18
+ 90c: 33 1f adc r19, r19
+ 90e: 44 1f adc r20, r20
+ 910: 55 1f adc r21, r21
+ 912: 6a 95 dec r22
+ 914: d2 f7 brpl .-12 ; 0x90a <__stack+0xb>
+ 916: 21 50 subi r18, 0x01 ; 1
+ 918: 30 40 sbci r19, 0x00 ; 0
+ 91a: 40 40 sbci r20, 0x00 ; 0
+ 91c: 50 40 sbci r21, 0x00 ; 0
+ 91e: 2e 21 and r18, r14
+ 920: 3f 21 and r19, r15
+ 922: 40 23 and r20, r16
+ 924: 51 23 and r21, r17
+ 926: 21 15 cp r18, r1
+ 928: 31 05 cpc r19, r1
+ 92a: 41 05 cpc r20, r1
+ 92c: 51 05 cpc r21, r1
+ 92e: 21 f0 breq .+8 ; 0x938 <__stack+0x39>
+ 930: 21 e0 ldi r18, 0x01 ; 1
+ 932: 30 e0 ldi r19, 0x00 ; 0
+ 934: 40 e0 ldi r20, 0x00 ; 0
+ 936: 50 e0 ldi r21, 0x00 ; 0
+ 938: 79 01 movw r14, r18
+ 93a: 8a 01 movw r16, r20
+ 93c: e6 28 or r14, r6
+ 93e: f7 28 or r15, r7
+ 940: 08 29 or r16, r8
+ 942: 19 29 or r17, r9
+ 944: 3c c0 rjmp .+120 ; 0x9be <__stack+0xbf>
+ 946: 23 2b or r18, r19
+ 948: d1 f1 breq .+116 ; 0x9be <__stack+0xbf>
+ 94a: 26 0e add r2, r22
+ 94c: 37 1e adc r3, r23
+ 94e: 35 01 movw r6, r10
+ 950: 46 01 movw r8, r12
+ 952: 06 2e mov r0, r22
+ 954: 04 c0 rjmp .+8 ; 0x95e <__stack+0x5f>
+ 956: 96 94 lsr r9
+ 958: 87 94 ror r8
+ 95a: 77 94 ror r7
+ 95c: 67 94 ror r6
+ 95e: 0a 94 dec r0
+ 960: d2 f7 brpl .-12 ; 0x956 <__stack+0x57>
+ 962: 21 e0 ldi r18, 0x01 ; 1
+ 964: 30 e0 ldi r19, 0x00 ; 0
+ 966: 40 e0 ldi r20, 0x00 ; 0
+ 968: 50 e0 ldi r21, 0x00 ; 0
+ 96a: 04 c0 rjmp .+8 ; 0x974 <__stack+0x75>
+ 96c: 22 0f add r18, r18
+ 96e: 33 1f adc r19, r19
+ 970: 44 1f adc r20, r20
+ 972: 55 1f adc r21, r21
+ 974: 6a 95 dec r22
+ 976: d2 f7 brpl .-12 ; 0x96c <__stack+0x6d>
+ 978: 21 50 subi r18, 0x01 ; 1
+ 97a: 30 40 sbci r19, 0x00 ; 0
+ 97c: 40 40 sbci r20, 0x00 ; 0
+ 97e: 50 40 sbci r21, 0x00 ; 0
+ 980: 2a 21 and r18, r10
+ 982: 3b 21 and r19, r11
+ 984: 4c 21 and r20, r12
+ 986: 5d 21 and r21, r13
+ 988: 21 15 cp r18, r1
+ 98a: 31 05 cpc r19, r1
+ 98c: 41 05 cpc r20, r1
+ 98e: 51 05 cpc r21, r1
+ 990: 21 f0 breq .+8 ; 0x99a <__stack+0x9b>
+ 992: 21 e0 ldi r18, 0x01 ; 1
+ 994: 30 e0 ldi r19, 0x00 ; 0
+ 996: 40 e0 ldi r20, 0x00 ; 0
+ 998: 50 e0 ldi r21, 0x00 ; 0
+ 99a: 59 01 movw r10, r18
+ 99c: 6a 01 movw r12, r20
+ 99e: a6 28 or r10, r6
+ 9a0: b7 28 or r11, r7
+ 9a2: c8 28 or r12, r8
+ 9a4: d9 28 or r13, r9
+ 9a6: 0b c0 rjmp .+22 ; 0x9be <__stack+0xbf>
+ 9a8: 82 15 cp r24, r2
+ 9aa: 93 05 cpc r25, r3
+ 9ac: 2c f0 brlt .+10 ; 0x9b8 <__stack+0xb9>
+ 9ae: 1c 01 movw r2, r24
+ 9b0: aa 24 eor r10, r10
+ 9b2: bb 24 eor r11, r11
+ 9b4: 65 01 movw r12, r10
+ 9b6: 03 c0 rjmp .+6 ; 0x9be <__stack+0xbf>
+ 9b8: ee 24 eor r14, r14
+ 9ba: ff 24 eor r15, r15
+ 9bc: 87 01 movw r16, r14
+ 9be: 11 96 adiw r26, 0x01 ; 1
+ 9c0: 9c 91 ld r25, X
+ 9c2: d2 01 movw r26, r4
+ 9c4: 11 96 adiw r26, 0x01 ; 1
+ 9c6: 8c 91 ld r24, X
+ 9c8: 98 17 cp r25, r24
+ 9ca: 09 f4 brne .+2 ; 0x9ce <__stack+0xcf>
+ 9cc: 45 c0 rjmp .+138 ; 0xa58 <__stack+0x159>
+ 9ce: 99 23 and r25, r25
+ 9d0: 39 f0 breq .+14 ; 0x9e0 <__stack+0xe1>
+ 9d2: a8 01 movw r20, r16
+ 9d4: 97 01 movw r18, r14
+ 9d6: 2a 19 sub r18, r10
+ 9d8: 3b 09 sbc r19, r11
+ 9da: 4c 09 sbc r20, r12
+ 9dc: 5d 09 sbc r21, r13
+ 9de: 06 c0 rjmp .+12 ; 0x9ec <__stack+0xed>
+ 9e0: a6 01 movw r20, r12
+ 9e2: 95 01 movw r18, r10
+ 9e4: 2e 19 sub r18, r14
+ 9e6: 3f 09 sbc r19, r15
+ 9e8: 40 0b sbc r20, r16
+ 9ea: 51 0b sbc r21, r17
+ 9ec: 57 fd sbrc r21, 7
+ 9ee: 08 c0 rjmp .+16 ; 0xa00 <__stack+0x101>
+ 9f0: 11 82 std Z+1, r1 ; 0x01
+ 9f2: 33 82 std Z+3, r3 ; 0x03
+ 9f4: 22 82 std Z+2, r2 ; 0x02
+ 9f6: 24 83 std Z+4, r18 ; 0x04
+ 9f8: 35 83 std Z+5, r19 ; 0x05
+ 9fa: 46 83 std Z+6, r20 ; 0x06
+ 9fc: 57 83 std Z+7, r21 ; 0x07
+ 9fe: 1d c0 rjmp .+58 ; 0xa3a <__stack+0x13b>
+ a00: 81 e0 ldi r24, 0x01 ; 1
+ a02: 81 83 std Z+1, r24 ; 0x01
+ a04: 33 82 std Z+3, r3 ; 0x03
+ a06: 22 82 std Z+2, r2 ; 0x02
+ a08: 88 27 eor r24, r24
+ a0a: 99 27 eor r25, r25
+ a0c: dc 01 movw r26, r24
+ a0e: 82 1b sub r24, r18
+ a10: 93 0b sbc r25, r19
+ a12: a4 0b sbc r26, r20
+ a14: b5 0b sbc r27, r21
+ a16: 84 83 std Z+4, r24 ; 0x04
+ a18: 95 83 std Z+5, r25 ; 0x05
+ a1a: a6 83 std Z+6, r26 ; 0x06
+ a1c: b7 83 std Z+7, r27 ; 0x07
+ a1e: 0d c0 rjmp .+26 ; 0xa3a <__stack+0x13b>
+ a20: 22 0f add r18, r18
+ a22: 33 1f adc r19, r19
+ a24: 44 1f adc r20, r20
+ a26: 55 1f adc r21, r21
+ a28: 24 83 std Z+4, r18 ; 0x04
+ a2a: 35 83 std Z+5, r19 ; 0x05
+ a2c: 46 83 std Z+6, r20 ; 0x06
+ a2e: 57 83 std Z+7, r21 ; 0x07
+ a30: 82 81 ldd r24, Z+2 ; 0x02
+ a32: 93 81 ldd r25, Z+3 ; 0x03
+ a34: 01 97 sbiw r24, 0x01 ; 1
+ a36: 93 83 std Z+3, r25 ; 0x03
+ a38: 82 83 std Z+2, r24 ; 0x02
+ a3a: 24 81 ldd r18, Z+4 ; 0x04
+ a3c: 35 81 ldd r19, Z+5 ; 0x05
+ a3e: 46 81 ldd r20, Z+6 ; 0x06
+ a40: 57 81 ldd r21, Z+7 ; 0x07
+ a42: da 01 movw r26, r20
+ a44: c9 01 movw r24, r18
+ a46: 01 97 sbiw r24, 0x01 ; 1
+ a48: a1 09 sbc r26, r1
+ a4a: b1 09 sbc r27, r1
+ a4c: 8f 5f subi r24, 0xFF ; 255
+ a4e: 9f 4f sbci r25, 0xFF ; 255
+ a50: af 4f sbci r26, 0xFF ; 255
+ a52: bf 43 sbci r27, 0x3F ; 63
+ a54: 28 f3 brcs .-54 ; 0xa20 <__stack+0x121>
+ a56: 0b c0 rjmp .+22 ; 0xa6e <__stack+0x16f>
+ a58: 91 83 std Z+1, r25 ; 0x01
+ a5a: 33 82 std Z+3, r3 ; 0x03
+ a5c: 22 82 std Z+2, r2 ; 0x02
+ a5e: ea 0c add r14, r10
+ a60: fb 1c adc r15, r11
+ a62: 0c 1d adc r16, r12
+ a64: 1d 1d adc r17, r13
+ a66: e4 82 std Z+4, r14 ; 0x04
+ a68: f5 82 std Z+5, r15 ; 0x05
+ a6a: 06 83 std Z+6, r16 ; 0x06
+ a6c: 17 83 std Z+7, r17 ; 0x07
+ a6e: 83 e0 ldi r24, 0x03 ; 3
+ a70: 80 83 st Z, r24
+ a72: 24 81 ldd r18, Z+4 ; 0x04
+ a74: 35 81 ldd r19, Z+5 ; 0x05
+ a76: 46 81 ldd r20, Z+6 ; 0x06
+ a78: 57 81 ldd r21, Z+7 ; 0x07
+ a7a: 57 ff sbrs r21, 7
+ a7c: 1a c0 rjmp .+52 ; 0xab2 <__stack+0x1b3>
+ a7e: c9 01 movw r24, r18
+ a80: aa 27 eor r26, r26
+ a82: 97 fd sbrc r25, 7
+ a84: a0 95 com r26
+ a86: ba 2f mov r27, r26
+ a88: 81 70 andi r24, 0x01 ; 1
+ a8a: 90 70 andi r25, 0x00 ; 0
+ a8c: a0 70 andi r26, 0x00 ; 0
+ a8e: b0 70 andi r27, 0x00 ; 0
+ a90: 56 95 lsr r21
+ a92: 47 95 ror r20
+ a94: 37 95 ror r19
+ a96: 27 95 ror r18
+ a98: 82 2b or r24, r18
+ a9a: 93 2b or r25, r19
+ a9c: a4 2b or r26, r20
+ a9e: b5 2b or r27, r21
+ aa0: 84 83 std Z+4, r24 ; 0x04
+ aa2: 95 83 std Z+5, r25 ; 0x05
+ aa4: a6 83 std Z+6, r26 ; 0x06
+ aa6: b7 83 std Z+7, r27 ; 0x07
+ aa8: 82 81 ldd r24, Z+2 ; 0x02
+ aaa: 93 81 ldd r25, Z+3 ; 0x03
+ aac: 01 96 adiw r24, 0x01 ; 1
+ aae: 93 83 std Z+3, r25 ; 0x03
+ ab0: 82 83 std Z+2, r24 ; 0x02
+ ab2: df 01 movw r26, r30
+ ab4: 01 c0 rjmp .+2 ; 0xab8 <__stack+0x1b9>
+ ab6: d2 01 movw r26, r4
+ ab8: cd 01 movw r24, r26
+ aba: cd b7 in r28, 0x3d ; 61
+ abc: de b7 in r29, 0x3e ; 62
+ abe: e2 e1 ldi r30, 0x12 ; 18
+ ac0: 0c 94 87 09 jmp 0x130e ; 0x130e <__epilogue_restores__>
+
+00000ac4 <__subsf3>:
+ ac4: a0 e2 ldi r26, 0x20 ; 32
+ ac6: b0 e0 ldi r27, 0x00 ; 0
+ ac8: e8 e6 ldi r30, 0x68 ; 104
+ aca: f5 e0 ldi r31, 0x05 ; 5
+ acc: 0c 94 77 09 jmp 0x12ee ; 0x12ee <__prologue_saves__+0x18>
+ ad0: 69 83 std Y+1, r22 ; 0x01
+ ad2: 7a 83 std Y+2, r23 ; 0x02
+ ad4: 8b 83 std Y+3, r24 ; 0x03
+ ad6: 9c 83 std Y+4, r25 ; 0x04
+ ad8: 2d 83 std Y+5, r18 ; 0x05
+ ada: 3e 83 std Y+6, r19 ; 0x06
+ adc: 4f 83 std Y+7, r20 ; 0x07
+ ade: 58 87 std Y+8, r21 ; 0x08
+ ae0: e9 e0 ldi r30, 0x09 ; 9
+ ae2: ee 2e mov r14, r30
+ ae4: f1 2c mov r15, r1
+ ae6: ec 0e add r14, r28
+ ae8: fd 1e adc r15, r29
+ aea: ce 01 movw r24, r28
+ aec: 01 96 adiw r24, 0x01 ; 1
+ aee: b7 01 movw r22, r14
+ af0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ af4: 8e 01 movw r16, r28
+ af6: 0f 5e subi r16, 0xEF ; 239
+ af8: 1f 4f sbci r17, 0xFF ; 255
+ afa: ce 01 movw r24, r28
+ afc: 05 96 adiw r24, 0x05 ; 5
+ afe: b8 01 movw r22, r16
+ b00: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b04: 8a 89 ldd r24, Y+18 ; 0x12
+ b06: 91 e0 ldi r25, 0x01 ; 1
+ b08: 89 27 eor r24, r25
+ b0a: 8a 8b std Y+18, r24 ; 0x12
+ b0c: c7 01 movw r24, r14
+ b0e: b8 01 movw r22, r16
+ b10: ae 01 movw r20, r28
+ b12: 47 5e subi r20, 0xE7 ; 231
+ b14: 5f 4f sbci r21, 0xFF ; 255
+ b16: 0e 94 16 04 call 0x82c ; 0x82c <_fpadd_parts>
+ b1a: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ b1e: a0 96 adiw r28, 0x20 ; 32
+ b20: e6 e0 ldi r30, 0x06 ; 6
+ b22: 0c 94 93 09 jmp 0x1326 ; 0x1326 <__epilogue_restores__+0x18>
+
+00000b26 <__addsf3>:
+ b26: a0 e2 ldi r26, 0x20 ; 32
+ b28: b0 e0 ldi r27, 0x00 ; 0
+ b2a: e9 e9 ldi r30, 0x99 ; 153
+ b2c: f5 e0 ldi r31, 0x05 ; 5
+ b2e: 0c 94 77 09 jmp 0x12ee ; 0x12ee <__prologue_saves__+0x18>
+ b32: 69 83 std Y+1, r22 ; 0x01
+ b34: 7a 83 std Y+2, r23 ; 0x02
+ b36: 8b 83 std Y+3, r24 ; 0x03
+ b38: 9c 83 std Y+4, r25 ; 0x04
+ b3a: 2d 83 std Y+5, r18 ; 0x05
+ b3c: 3e 83 std Y+6, r19 ; 0x06
+ b3e: 4f 83 std Y+7, r20 ; 0x07
+ b40: 58 87 std Y+8, r21 ; 0x08
+ b42: f9 e0 ldi r31, 0x09 ; 9
+ b44: ef 2e mov r14, r31
+ b46: f1 2c mov r15, r1
+ b48: ec 0e add r14, r28
+ b4a: fd 1e adc r15, r29
+ b4c: ce 01 movw r24, r28
+ b4e: 01 96 adiw r24, 0x01 ; 1
+ b50: b7 01 movw r22, r14
+ b52: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b56: 8e 01 movw r16, r28
+ b58: 0f 5e subi r16, 0xEF ; 239
+ b5a: 1f 4f sbci r17, 0xFF ; 255
+ b5c: ce 01 movw r24, r28
+ b5e: 05 96 adiw r24, 0x05 ; 5
+ b60: b8 01 movw r22, r16
+ b62: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b66: c7 01 movw r24, r14
+ b68: b8 01 movw r22, r16
+ b6a: ae 01 movw r20, r28
+ b6c: 47 5e subi r20, 0xE7 ; 231
+ b6e: 5f 4f sbci r21, 0xFF ; 255
+ b70: 0e 94 16 04 call 0x82c ; 0x82c <_fpadd_parts>
+ b74: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ b78: a0 96 adiw r28, 0x20 ; 32
+ b7a: e6 e0 ldi r30, 0x06 ; 6
+ b7c: 0c 94 93 09 jmp 0x1326 ; 0x1326 <__epilogue_restores__+0x18>
+
+00000b80 <__mulsf3>:
+ b80: a0 e2 ldi r26, 0x20 ; 32
+ b82: b0 e0 ldi r27, 0x00 ; 0
+ b84: e6 ec ldi r30, 0xC6 ; 198
+ b86: f5 e0 ldi r31, 0x05 ; 5
+ b88: 0c 94 6b 09 jmp 0x12d6 ; 0x12d6 <__prologue_saves__>
+ b8c: 69 83 std Y+1, r22 ; 0x01
+ b8e: 7a 83 std Y+2, r23 ; 0x02
+ b90: 8b 83 std Y+3, r24 ; 0x03
+ b92: 9c 83 std Y+4, r25 ; 0x04
+ b94: 2d 83 std Y+5, r18 ; 0x05
+ b96: 3e 83 std Y+6, r19 ; 0x06
+ b98: 4f 83 std Y+7, r20 ; 0x07
+ b9a: 58 87 std Y+8, r21 ; 0x08
+ b9c: ce 01 movw r24, r28
+ b9e: 01 96 adiw r24, 0x01 ; 1
+ ba0: be 01 movw r22, r28
+ ba2: 67 5f subi r22, 0xF7 ; 247
+ ba4: 7f 4f sbci r23, 0xFF ; 255
+ ba6: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ baa: ce 01 movw r24, r28
+ bac: 05 96 adiw r24, 0x05 ; 5
+ bae: be 01 movw r22, r28
+ bb0: 6f 5e subi r22, 0xEF ; 239
+ bb2: 7f 4f sbci r23, 0xFF ; 255
+ bb4: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ bb8: 99 85 ldd r25, Y+9 ; 0x09
+ bba: 92 30 cpi r25, 0x02 ; 2
+ bbc: 88 f0 brcs .+34 ; 0xbe0 <__mulsf3+0x60>
+ bbe: 89 89 ldd r24, Y+17 ; 0x11
+ bc0: 82 30 cpi r24, 0x02 ; 2
+ bc2: c8 f0 brcs .+50 ; 0xbf6 <__mulsf3+0x76>
+ bc4: 94 30 cpi r25, 0x04 ; 4
+ bc6: 19 f4 brne .+6 ; 0xbce <__mulsf3+0x4e>
+ bc8: 82 30 cpi r24, 0x02 ; 2
+ bca: 51 f4 brne .+20 ; 0xbe0 <__mulsf3+0x60>
+ bcc: 04 c0 rjmp .+8 ; 0xbd6 <__mulsf3+0x56>
+ bce: 84 30 cpi r24, 0x04 ; 4
+ bd0: 29 f4 brne .+10 ; 0xbdc <__mulsf3+0x5c>
+ bd2: 92 30 cpi r25, 0x02 ; 2
+ bd4: 81 f4 brne .+32 ; 0xbf6 <__mulsf3+0x76>
+ bd6: 89 e1 ldi r24, 0x19 ; 25
+ bd8: 91 e0 ldi r25, 0x01 ; 1
+ bda: c6 c0 rjmp .+396 ; 0xd68 <__mulsf3+0x1e8>
+ bdc: 92 30 cpi r25, 0x02 ; 2
+ bde: 49 f4 brne .+18 ; 0xbf2 <__mulsf3+0x72>
+ be0: 20 e0 ldi r18, 0x00 ; 0
+ be2: 9a 85 ldd r25, Y+10 ; 0x0a
+ be4: 8a 89 ldd r24, Y+18 ; 0x12
+ be6: 98 13 cpse r25, r24
+ be8: 21 e0 ldi r18, 0x01 ; 1
+ bea: 2a 87 std Y+10, r18 ; 0x0a
+ bec: ce 01 movw r24, r28
+ bee: 09 96 adiw r24, 0x09 ; 9
+ bf0: bb c0 rjmp .+374 ; 0xd68 <__mulsf3+0x1e8>
+ bf2: 82 30 cpi r24, 0x02 ; 2
+ bf4: 49 f4 brne .+18 ; 0xc08 <__mulsf3+0x88>
+ bf6: 20 e0 ldi r18, 0x00 ; 0
+ bf8: 9a 85 ldd r25, Y+10 ; 0x0a
+ bfa: 8a 89 ldd r24, Y+18 ; 0x12
+ bfc: 98 13 cpse r25, r24
+ bfe: 21 e0 ldi r18, 0x01 ; 1
+ c00: 2a 8b std Y+18, r18 ; 0x12
+ c02: ce 01 movw r24, r28
+ c04: 41 96 adiw r24, 0x11 ; 17
+ c06: b0 c0 rjmp .+352 ; 0xd68 <__mulsf3+0x1e8>
+ c08: 2d 84 ldd r2, Y+13 ; 0x0d
+ c0a: 3e 84 ldd r3, Y+14 ; 0x0e
+ c0c: 4f 84 ldd r4, Y+15 ; 0x0f
+ c0e: 58 88 ldd r5, Y+16 ; 0x10
+ c10: 6d 88 ldd r6, Y+21 ; 0x15
+ c12: 7e 88 ldd r7, Y+22 ; 0x16
+ c14: 8f 88 ldd r8, Y+23 ; 0x17
+ c16: 98 8c ldd r9, Y+24 ; 0x18
+ c18: ee 24 eor r14, r14
+ c1a: ff 24 eor r15, r15
+ c1c: 87 01 movw r16, r14
+ c1e: aa 24 eor r10, r10
+ c20: bb 24 eor r11, r11
+ c22: 65 01 movw r12, r10
+ c24: 40 e0 ldi r20, 0x00 ; 0
+ c26: 50 e0 ldi r21, 0x00 ; 0
+ c28: 60 e0 ldi r22, 0x00 ; 0
+ c2a: 70 e0 ldi r23, 0x00 ; 0
+ c2c: e0 e0 ldi r30, 0x00 ; 0
+ c2e: f0 e0 ldi r31, 0x00 ; 0
+ c30: c1 01 movw r24, r2
+ c32: 81 70 andi r24, 0x01 ; 1
+ c34: 90 70 andi r25, 0x00 ; 0
+ c36: 89 2b or r24, r25
+ c38: e9 f0 breq .+58 ; 0xc74 <__mulsf3+0xf4>
+ c3a: e6 0c add r14, r6
+ c3c: f7 1c adc r15, r7
+ c3e: 08 1d adc r16, r8
+ c40: 19 1d adc r17, r9
+ c42: 9a 01 movw r18, r20
+ c44: ab 01 movw r20, r22
+ c46: 2a 0d add r18, r10
+ c48: 3b 1d adc r19, r11
+ c4a: 4c 1d adc r20, r12
+ c4c: 5d 1d adc r21, r13
+ c4e: 80 e0 ldi r24, 0x00 ; 0
+ c50: 90 e0 ldi r25, 0x00 ; 0
+ c52: a0 e0 ldi r26, 0x00 ; 0
+ c54: b0 e0 ldi r27, 0x00 ; 0
+ c56: e6 14 cp r14, r6
+ c58: f7 04 cpc r15, r7
+ c5a: 08 05 cpc r16, r8
+ c5c: 19 05 cpc r17, r9
+ c5e: 20 f4 brcc .+8 ; 0xc68 <__mulsf3+0xe8>
+ c60: 81 e0 ldi r24, 0x01 ; 1
+ c62: 90 e0 ldi r25, 0x00 ; 0
+ c64: a0 e0 ldi r26, 0x00 ; 0
+ c66: b0 e0 ldi r27, 0x00 ; 0
+ c68: ba 01 movw r22, r20
+ c6a: a9 01 movw r20, r18
+ c6c: 48 0f add r20, r24
+ c6e: 59 1f adc r21, r25
+ c70: 6a 1f adc r22, r26
+ c72: 7b 1f adc r23, r27
+ c74: aa 0c add r10, r10
+ c76: bb 1c adc r11, r11
+ c78: cc 1c adc r12, r12
+ c7a: dd 1c adc r13, r13
+ c7c: 97 fe sbrs r9, 7
+ c7e: 08 c0 rjmp .+16 ; 0xc90 <__mulsf3+0x110>
+ c80: 81 e0 ldi r24, 0x01 ; 1
+ c82: 90 e0 ldi r25, 0x00 ; 0
+ c84: a0 e0 ldi r26, 0x00 ; 0
+ c86: b0 e0 ldi r27, 0x00 ; 0
+ c88: a8 2a or r10, r24
+ c8a: b9 2a or r11, r25
+ c8c: ca 2a or r12, r26
+ c8e: db 2a or r13, r27
+ c90: 31 96 adiw r30, 0x01 ; 1
+ c92: e0 32 cpi r30, 0x20 ; 32
+ c94: f1 05 cpc r31, r1
+ c96: 49 f0 breq .+18 ; 0xcaa <__mulsf3+0x12a>
+ c98: 66 0c add r6, r6
+ c9a: 77 1c adc r7, r7
+ c9c: 88 1c adc r8, r8
+ c9e: 99 1c adc r9, r9
+ ca0: 56 94 lsr r5
+ ca2: 47 94 ror r4
+ ca4: 37 94 ror r3
+ ca6: 27 94 ror r2
+ ca8: c3 cf rjmp .-122 ; 0xc30 <__mulsf3+0xb0>
+ caa: fa 85 ldd r31, Y+10 ; 0x0a
+ cac: ea 89 ldd r30, Y+18 ; 0x12
+ cae: 2b 89 ldd r18, Y+19 ; 0x13
+ cb0: 3c 89 ldd r19, Y+20 ; 0x14
+ cb2: 8b 85 ldd r24, Y+11 ; 0x0b
+ cb4: 9c 85 ldd r25, Y+12 ; 0x0c
+ cb6: 28 0f add r18, r24
+ cb8: 39 1f adc r19, r25
+ cba: 2e 5f subi r18, 0xFE ; 254
+ cbc: 3f 4f sbci r19, 0xFF ; 255
+ cbe: 17 c0 rjmp .+46 ; 0xcee <__mulsf3+0x16e>
+ cc0: ca 01 movw r24, r20
+ cc2: 81 70 andi r24, 0x01 ; 1
+ cc4: 90 70 andi r25, 0x00 ; 0
+ cc6: 89 2b or r24, r25
+ cc8: 61 f0 breq .+24 ; 0xce2 <__mulsf3+0x162>
+ cca: 16 95 lsr r17
+ ccc: 07 95 ror r16
+ cce: f7 94 ror r15
+ cd0: e7 94 ror r14
+ cd2: 80 e0 ldi r24, 0x00 ; 0
+ cd4: 90 e0 ldi r25, 0x00 ; 0
+ cd6: a0 e0 ldi r26, 0x00 ; 0
+ cd8: b0 e8 ldi r27, 0x80 ; 128
+ cda: e8 2a or r14, r24
+ cdc: f9 2a or r15, r25
+ cde: 0a 2b or r16, r26
+ ce0: 1b 2b or r17, r27
+ ce2: 76 95 lsr r23
+ ce4: 67 95 ror r22
+ ce6: 57 95 ror r21
+ ce8: 47 95 ror r20
+ cea: 2f 5f subi r18, 0xFF ; 255
+ cec: 3f 4f sbci r19, 0xFF ; 255
+ cee: 77 fd sbrc r23, 7
+ cf0: e7 cf rjmp .-50 ; 0xcc0 <__mulsf3+0x140>
+ cf2: 0c c0 rjmp .+24 ; 0xd0c <__mulsf3+0x18c>
+ cf4: 44 0f add r20, r20
+ cf6: 55 1f adc r21, r21
+ cf8: 66 1f adc r22, r22
+ cfa: 77 1f adc r23, r23
+ cfc: 17 fd sbrc r17, 7
+ cfe: 41 60 ori r20, 0x01 ; 1
+ d00: ee 0c add r14, r14
+ d02: ff 1c adc r15, r15
+ d04: 00 1f adc r16, r16
+ d06: 11 1f adc r17, r17
+ d08: 21 50 subi r18, 0x01 ; 1
+ d0a: 30 40 sbci r19, 0x00 ; 0
+ d0c: 40 30 cpi r20, 0x00 ; 0
+ d0e: 90 e0 ldi r25, 0x00 ; 0
+ d10: 59 07 cpc r21, r25
+ d12: 90 e0 ldi r25, 0x00 ; 0
+ d14: 69 07 cpc r22, r25
+ d16: 90 e4 ldi r25, 0x40 ; 64
+ d18: 79 07 cpc r23, r25
+ d1a: 60 f3 brcs .-40 ; 0xcf4 <__mulsf3+0x174>
+ d1c: 2b 8f std Y+27, r18 ; 0x1b
+ d1e: 3c 8f std Y+28, r19 ; 0x1c
+ d20: db 01 movw r26, r22
+ d22: ca 01 movw r24, r20
+ d24: 8f 77 andi r24, 0x7F ; 127
+ d26: 90 70 andi r25, 0x00 ; 0
+ d28: a0 70 andi r26, 0x00 ; 0
+ d2a: b0 70 andi r27, 0x00 ; 0
+ d2c: 80 34 cpi r24, 0x40 ; 64
+ d2e: 91 05 cpc r25, r1
+ d30: a1 05 cpc r26, r1
+ d32: b1 05 cpc r27, r1
+ d34: 61 f4 brne .+24 ; 0xd4e <__mulsf3+0x1ce>
+ d36: 47 fd sbrc r20, 7
+ d38: 0a c0 rjmp .+20 ; 0xd4e <__mulsf3+0x1ce>
+ d3a: e1 14 cp r14, r1
+ d3c: f1 04 cpc r15, r1
+ d3e: 01 05 cpc r16, r1
+ d40: 11 05 cpc r17, r1
+ d42: 29 f0 breq .+10 ; 0xd4e <__mulsf3+0x1ce>
+ d44: 40 5c subi r20, 0xC0 ; 192
+ d46: 5f 4f sbci r21, 0xFF ; 255
+ d48: 6f 4f sbci r22, 0xFF ; 255
+ d4a: 7f 4f sbci r23, 0xFF ; 255
+ d4c: 40 78 andi r20, 0x80 ; 128
+ d4e: 1a 8e std Y+26, r1 ; 0x1a
+ d50: fe 17 cp r31, r30
+ d52: 11 f0 breq .+4 ; 0xd58 <__mulsf3+0x1d8>
+ d54: 81 e0 ldi r24, 0x01 ; 1
+ d56: 8a 8f std Y+26, r24 ; 0x1a
+ d58: 4d 8f std Y+29, r20 ; 0x1d
+ d5a: 5e 8f std Y+30, r21 ; 0x1e
+ d5c: 6f 8f std Y+31, r22 ; 0x1f
+ d5e: 78 a3 std Y+32, r23 ; 0x20
+ d60: 83 e0 ldi r24, 0x03 ; 3
+ d62: 89 8f std Y+25, r24 ; 0x19
+ d64: ce 01 movw r24, r28
+ d66: 49 96 adiw r24, 0x19 ; 25
+ d68: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ d6c: a0 96 adiw r28, 0x20 ; 32
+ d6e: e2 e1 ldi r30, 0x12 ; 18
+ d70: 0c 94 87 09 jmp 0x130e ; 0x130e <__epilogue_restores__>
+
+00000d74 <__divsf3>:
+ d74: a8 e1 ldi r26, 0x18 ; 24
+ d76: b0 e0 ldi r27, 0x00 ; 0
+ d78: e0 ec ldi r30, 0xC0 ; 192
+ d7a: f6 e0 ldi r31, 0x06 ; 6
+ d7c: 0c 94 73 09 jmp 0x12e6 ; 0x12e6 <__prologue_saves__+0x10>
+ d80: 69 83 std Y+1, r22 ; 0x01
+ d82: 7a 83 std Y+2, r23 ; 0x02
+ d84: 8b 83 std Y+3, r24 ; 0x03
+ d86: 9c 83 std Y+4, r25 ; 0x04
+ d88: 2d 83 std Y+5, r18 ; 0x05
+ d8a: 3e 83 std Y+6, r19 ; 0x06
+ d8c: 4f 83 std Y+7, r20 ; 0x07
+ d8e: 58 87 std Y+8, r21 ; 0x08
+ d90: b9 e0 ldi r27, 0x09 ; 9
+ d92: eb 2e mov r14, r27
+ d94: f1 2c mov r15, r1
+ d96: ec 0e add r14, r28
+ d98: fd 1e adc r15, r29
+ d9a: ce 01 movw r24, r28
+ d9c: 01 96 adiw r24, 0x01 ; 1
+ d9e: b7 01 movw r22, r14
+ da0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ da4: 8e 01 movw r16, r28
+ da6: 0f 5e subi r16, 0xEF ; 239
+ da8: 1f 4f sbci r17, 0xFF ; 255
+ daa: ce 01 movw r24, r28
+ dac: 05 96 adiw r24, 0x05 ; 5
+ dae: b8 01 movw r22, r16
+ db0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ db4: 29 85 ldd r18, Y+9 ; 0x09
+ db6: 22 30 cpi r18, 0x02 ; 2
+ db8: 08 f4 brcc .+2 ; 0xdbc <__divsf3+0x48>
+ dba: 7e c0 rjmp .+252 ; 0xeb8 <__divsf3+0x144>
+ dbc: 39 89 ldd r19, Y+17 ; 0x11
+ dbe: 32 30 cpi r19, 0x02 ; 2
+ dc0: 10 f4 brcc .+4 ; 0xdc6 <__divsf3+0x52>
+ dc2: b8 01 movw r22, r16
+ dc4: 7c c0 rjmp .+248 ; 0xebe <__divsf3+0x14a>
+ dc6: 8a 85 ldd r24, Y+10 ; 0x0a
+ dc8: 9a 89 ldd r25, Y+18 ; 0x12
+ dca: 89 27 eor r24, r25
+ dcc: 8a 87 std Y+10, r24 ; 0x0a
+ dce: 24 30 cpi r18, 0x04 ; 4
+ dd0: 11 f0 breq .+4 ; 0xdd6 <__divsf3+0x62>
+ dd2: 22 30 cpi r18, 0x02 ; 2
+ dd4: 31 f4 brne .+12 ; 0xde2 <__divsf3+0x6e>
+ dd6: 23 17 cp r18, r19
+ dd8: 09 f0 breq .+2 ; 0xddc <__divsf3+0x68>
+ dda: 6e c0 rjmp .+220 ; 0xeb8 <__divsf3+0x144>
+ ddc: 69 e1 ldi r22, 0x19 ; 25
+ dde: 71 e0 ldi r23, 0x01 ; 1
+ de0: 6e c0 rjmp .+220 ; 0xebe <__divsf3+0x14a>
+ de2: 34 30 cpi r19, 0x04 ; 4
+ de4: 39 f4 brne .+14 ; 0xdf4 <__divsf3+0x80>
+ de6: 1d 86 std Y+13, r1 ; 0x0d
+ de8: 1e 86 std Y+14, r1 ; 0x0e
+ dea: 1f 86 std Y+15, r1 ; 0x0f
+ dec: 18 8a std Y+16, r1 ; 0x10
+ dee: 1c 86 std Y+12, r1 ; 0x0c
+ df0: 1b 86 std Y+11, r1 ; 0x0b
+ df2: 04 c0 rjmp .+8 ; 0xdfc <__divsf3+0x88>
+ df4: 32 30 cpi r19, 0x02 ; 2
+ df6: 21 f4 brne .+8 ; 0xe00 <__divsf3+0x8c>
+ df8: 84 e0 ldi r24, 0x04 ; 4
+ dfa: 89 87 std Y+9, r24 ; 0x09
+ dfc: b7 01 movw r22, r14
+ dfe: 5f c0 rjmp .+190 ; 0xebe <__divsf3+0x14a>
+ e00: 2b 85 ldd r18, Y+11 ; 0x0b
+ e02: 3c 85 ldd r19, Y+12 ; 0x0c
+ e04: 8b 89 ldd r24, Y+19 ; 0x13
+ e06: 9c 89 ldd r25, Y+20 ; 0x14
+ e08: 28 1b sub r18, r24
+ e0a: 39 0b sbc r19, r25
+ e0c: 3c 87 std Y+12, r19 ; 0x0c
+ e0e: 2b 87 std Y+11, r18 ; 0x0b
+ e10: ed 84 ldd r14, Y+13 ; 0x0d
+ e12: fe 84 ldd r15, Y+14 ; 0x0e
+ e14: 0f 85 ldd r16, Y+15 ; 0x0f
+ e16: 18 89 ldd r17, Y+16 ; 0x10
+ e18: ad 88 ldd r10, Y+21 ; 0x15
+ e1a: be 88 ldd r11, Y+22 ; 0x16
+ e1c: cf 88 ldd r12, Y+23 ; 0x17
+ e1e: d8 8c ldd r13, Y+24 ; 0x18
+ e20: ea 14 cp r14, r10
+ e22: fb 04 cpc r15, r11
+ e24: 0c 05 cpc r16, r12
+ e26: 1d 05 cpc r17, r13
+ e28: 40 f4 brcc .+16 ; 0xe3a <__divsf3+0xc6>
+ e2a: ee 0c add r14, r14
+ e2c: ff 1c adc r15, r15
+ e2e: 00 1f adc r16, r16
+ e30: 11 1f adc r17, r17
+ e32: 21 50 subi r18, 0x01 ; 1
+ e34: 30 40 sbci r19, 0x00 ; 0
+ e36: 3c 87 std Y+12, r19 ; 0x0c
+ e38: 2b 87 std Y+11, r18 ; 0x0b
+ e3a: 20 e0 ldi r18, 0x00 ; 0
+ e3c: 30 e0 ldi r19, 0x00 ; 0
+ e3e: 40 e0 ldi r20, 0x00 ; 0
+ e40: 50 e0 ldi r21, 0x00 ; 0
+ e42: 80 e0 ldi r24, 0x00 ; 0
+ e44: 90 e0 ldi r25, 0x00 ; 0
+ e46: a0 e0 ldi r26, 0x00 ; 0
+ e48: b0 e4 ldi r27, 0x40 ; 64
+ e4a: 60 e0 ldi r22, 0x00 ; 0
+ e4c: 70 e0 ldi r23, 0x00 ; 0
+ e4e: ea 14 cp r14, r10
+ e50: fb 04 cpc r15, r11
+ e52: 0c 05 cpc r16, r12
+ e54: 1d 05 cpc r17, r13
+ e56: 40 f0 brcs .+16 ; 0xe68 <__divsf3+0xf4>
+ e58: 28 2b or r18, r24
+ e5a: 39 2b or r19, r25
+ e5c: 4a 2b or r20, r26
+ e5e: 5b 2b or r21, r27
+ e60: ea 18 sub r14, r10
+ e62: fb 08 sbc r15, r11
+ e64: 0c 09 sbc r16, r12
+ e66: 1d 09 sbc r17, r13
+ e68: b6 95 lsr r27
+ e6a: a7 95 ror r26
+ e6c: 97 95 ror r25
+ e6e: 87 95 ror r24
+ e70: ee 0c add r14, r14
+ e72: ff 1c adc r15, r15
+ e74: 00 1f adc r16, r16
+ e76: 11 1f adc r17, r17
+ e78: 6f 5f subi r22, 0xFF ; 255
+ e7a: 7f 4f sbci r23, 0xFF ; 255
+ e7c: 6f 31 cpi r22, 0x1F ; 31
+ e7e: 71 05 cpc r23, r1
+ e80: 31 f7 brne .-52 ; 0xe4e <__divsf3+0xda>
+ e82: da 01 movw r26, r20
+ e84: c9 01 movw r24, r18
+ e86: 8f 77 andi r24, 0x7F ; 127
+ e88: 90 70 andi r25, 0x00 ; 0
+ e8a: a0 70 andi r26, 0x00 ; 0
+ e8c: b0 70 andi r27, 0x00 ; 0
+ e8e: 80 34 cpi r24, 0x40 ; 64
+ e90: 91 05 cpc r25, r1
+ e92: a1 05 cpc r26, r1
+ e94: b1 05 cpc r27, r1
+ e96: 61 f4 brne .+24 ; 0xeb0 <__divsf3+0x13c>
+ e98: 27 fd sbrc r18, 7
+ e9a: 0a c0 rjmp .+20 ; 0xeb0 <__divsf3+0x13c>
+ e9c: e1 14 cp r14, r1
+ e9e: f1 04 cpc r15, r1
+ ea0: 01 05 cpc r16, r1
+ ea2: 11 05 cpc r17, r1
+ ea4: 29 f0 breq .+10 ; 0xeb0 <__divsf3+0x13c>
+ ea6: 20 5c subi r18, 0xC0 ; 192
+ ea8: 3f 4f sbci r19, 0xFF ; 255
+ eaa: 4f 4f sbci r20, 0xFF ; 255
+ eac: 5f 4f sbci r21, 0xFF ; 255
+ eae: 20 78 andi r18, 0x80 ; 128
+ eb0: 2d 87 std Y+13, r18 ; 0x0d
+ eb2: 3e 87 std Y+14, r19 ; 0x0e
+ eb4: 4f 87 std Y+15, r20 ; 0x0f
+ eb6: 58 8b std Y+16, r21 ; 0x10
+ eb8: be 01 movw r22, r28
+ eba: 67 5f subi r22, 0xF7 ; 247
+ ebc: 7f 4f sbci r23, 0xFF ; 255
+ ebe: cb 01 movw r24, r22
+ ec0: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ ec4: 68 96 adiw r28, 0x18 ; 24
+ ec6: ea e0 ldi r30, 0x0A ; 10
+ ec8: 0c 94 8f 09 jmp 0x131e ; 0x131e <__epilogue_restores__+0x10>
+
+00000ecc <__fixsfsi>:
+ ecc: ac e0 ldi r26, 0x0C ; 12
+ ece: b0 e0 ldi r27, 0x00 ; 0
+ ed0: ec e6 ldi r30, 0x6C ; 108
+ ed2: f7 e0 ldi r31, 0x07 ; 7
+ ed4: 0c 94 7b 09 jmp 0x12f6 ; 0x12f6 <__prologue_saves__+0x20>
+ ed8: 69 83 std Y+1, r22 ; 0x01
+ eda: 7a 83 std Y+2, r23 ; 0x02
+ edc: 8b 83 std Y+3, r24 ; 0x03
+ ede: 9c 83 std Y+4, r25 ; 0x04
+ ee0: ce 01 movw r24, r28
+ ee2: 01 96 adiw r24, 0x01 ; 1
+ ee4: be 01 movw r22, r28
+ ee6: 6b 5f subi r22, 0xFB ; 251
+ ee8: 7f 4f sbci r23, 0xFF ; 255
+ eea: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ eee: 8d 81 ldd r24, Y+5 ; 0x05
+ ef0: 82 30 cpi r24, 0x02 ; 2
+ ef2: 61 f1 breq .+88 ; 0xf4c <__fixsfsi+0x80>
+ ef4: 82 30 cpi r24, 0x02 ; 2
+ ef6: 50 f1 brcs .+84 ; 0xf4c <__fixsfsi+0x80>
+ ef8: 84 30 cpi r24, 0x04 ; 4
+ efa: 21 f4 brne .+8 ; 0xf04 <__fixsfsi+0x38>
+ efc: 8e 81 ldd r24, Y+6 ; 0x06
+ efe: 88 23 and r24, r24
+ f00: 51 f1 breq .+84 ; 0xf56 <__fixsfsi+0x8a>
+ f02: 2e c0 rjmp .+92 ; 0xf60 <__fixsfsi+0x94>
+ f04: 2f 81 ldd r18, Y+7 ; 0x07
+ f06: 38 85 ldd r19, Y+8 ; 0x08
+ f08: 37 fd sbrc r19, 7
+ f0a: 20 c0 rjmp .+64 ; 0xf4c <__fixsfsi+0x80>
+ f0c: 6e 81 ldd r22, Y+6 ; 0x06
+ f0e: 2f 31 cpi r18, 0x1F ; 31
+ f10: 31 05 cpc r19, r1
+ f12: 1c f0 brlt .+6 ; 0xf1a <__fixsfsi+0x4e>
+ f14: 66 23 and r22, r22
+ f16: f9 f0 breq .+62 ; 0xf56 <__fixsfsi+0x8a>
+ f18: 23 c0 rjmp .+70 ; 0xf60 <__fixsfsi+0x94>
+ f1a: 8e e1 ldi r24, 0x1E ; 30
+ f1c: 90 e0 ldi r25, 0x00 ; 0
+ f1e: 82 1b sub r24, r18
+ f20: 93 0b sbc r25, r19
+ f22: 29 85 ldd r18, Y+9 ; 0x09
+ f24: 3a 85 ldd r19, Y+10 ; 0x0a
+ f26: 4b 85 ldd r20, Y+11 ; 0x0b
+ f28: 5c 85 ldd r21, Y+12 ; 0x0c
+ f2a: 04 c0 rjmp .+8 ; 0xf34 <__fixsfsi+0x68>
+ f2c: 56 95 lsr r21
+ f2e: 47 95 ror r20
+ f30: 37 95 ror r19
+ f32: 27 95 ror r18
+ f34: 8a 95 dec r24
+ f36: d2 f7 brpl .-12 ; 0xf2c <__fixsfsi+0x60>
+ f38: 66 23 and r22, r22
+ f3a: b1 f0 breq .+44 ; 0xf68 <__fixsfsi+0x9c>
+ f3c: 50 95 com r21
+ f3e: 40 95 com r20
+ f40: 30 95 com r19
+ f42: 21 95 neg r18
+ f44: 3f 4f sbci r19, 0xFF ; 255
+ f46: 4f 4f sbci r20, 0xFF ; 255
+ f48: 5f 4f sbci r21, 0xFF ; 255
+ f4a: 0e c0 rjmp .+28 ; 0xf68 <__fixsfsi+0x9c>
+ f4c: 20 e0 ldi r18, 0x00 ; 0
+ f4e: 30 e0 ldi r19, 0x00 ; 0
+ f50: 40 e0 ldi r20, 0x00 ; 0
+ f52: 50 e0 ldi r21, 0x00 ; 0
+ f54: 09 c0 rjmp .+18 ; 0xf68 <__fixsfsi+0x9c>
+ f56: 2f ef ldi r18, 0xFF ; 255
+ f58: 3f ef ldi r19, 0xFF ; 255
+ f5a: 4f ef ldi r20, 0xFF ; 255
+ f5c: 5f e7 ldi r21, 0x7F ; 127
+ f5e: 04 c0 rjmp .+8 ; 0xf68 <__fixsfsi+0x9c>
+ f60: 20 e0 ldi r18, 0x00 ; 0
+ f62: 30 e0 ldi r19, 0x00 ; 0
+ f64: 40 e0 ldi r20, 0x00 ; 0
+ f66: 50 e8 ldi r21, 0x80 ; 128
+ f68: b9 01 movw r22, r18
+ f6a: ca 01 movw r24, r20
+ f6c: 2c 96 adiw r28, 0x0c ; 12
+ f6e: e2 e0 ldi r30, 0x02 ; 2
+ f70: 0c 94 97 09 jmp 0x132e ; 0x132e <__epilogue_restores__+0x20>
+
+00000f74 <__pack_f>:
+ f74: df 92 push r13
+ f76: ef 92 push r14
+ f78: ff 92 push r15
+ f7a: 0f 93 push r16
+ f7c: 1f 93 push r17
+ f7e: fc 01 movw r30, r24
+ f80: e4 80 ldd r14, Z+4 ; 0x04
+ f82: f5 80 ldd r15, Z+5 ; 0x05
+ f84: 06 81 ldd r16, Z+6 ; 0x06
+ f86: 17 81 ldd r17, Z+7 ; 0x07
+ f88: d1 80 ldd r13, Z+1 ; 0x01
+ f8a: 80 81 ld r24, Z
+ f8c: 82 30 cpi r24, 0x02 ; 2
+ f8e: 48 f4 brcc .+18 ; 0xfa2 <__pack_f+0x2e>
+ f90: 80 e0 ldi r24, 0x00 ; 0
+ f92: 90 e0 ldi r25, 0x00 ; 0
+ f94: a0 e1 ldi r26, 0x10 ; 16
+ f96: b0 e0 ldi r27, 0x00 ; 0
+ f98: e8 2a or r14, r24
+ f9a: f9 2a or r15, r25
+ f9c: 0a 2b or r16, r26
+ f9e: 1b 2b or r17, r27
+ fa0: a5 c0 rjmp .+330 ; 0x10ec <__pack_f+0x178>
+ fa2: 84 30 cpi r24, 0x04 ; 4
+ fa4: 09 f4 brne .+2 ; 0xfa8 <__pack_f+0x34>
+ fa6: 9f c0 rjmp .+318 ; 0x10e6 <__pack_f+0x172>
+ fa8: 82 30 cpi r24, 0x02 ; 2
+ faa: 21 f4 brne .+8 ; 0xfb4 <__pack_f+0x40>
+ fac: ee 24 eor r14, r14
+ fae: ff 24 eor r15, r15
+ fb0: 87 01 movw r16, r14
+ fb2: 05 c0 rjmp .+10 ; 0xfbe <__pack_f+0x4a>
+ fb4: e1 14 cp r14, r1
+ fb6: f1 04 cpc r15, r1
+ fb8: 01 05 cpc r16, r1
+ fba: 11 05 cpc r17, r1
+ fbc: 19 f4 brne .+6 ; 0xfc4 <__pack_f+0x50>
+ fbe: e0 e0 ldi r30, 0x00 ; 0
+ fc0: f0 e0 ldi r31, 0x00 ; 0
+ fc2: 96 c0 rjmp .+300 ; 0x10f0 <__pack_f+0x17c>
+ fc4: 62 81 ldd r22, Z+2 ; 0x02
+ fc6: 73 81 ldd r23, Z+3 ; 0x03
+ fc8: 9f ef ldi r25, 0xFF ; 255
+ fca: 62 38 cpi r22, 0x82 ; 130
+ fcc: 79 07 cpc r23, r25
+ fce: 0c f0 brlt .+2 ; 0xfd2 <__pack_f+0x5e>
+ fd0: 5b c0 rjmp .+182 ; 0x1088 <__pack_f+0x114>
+ fd2: 22 e8 ldi r18, 0x82 ; 130
+ fd4: 3f ef ldi r19, 0xFF ; 255
+ fd6: 26 1b sub r18, r22
+ fd8: 37 0b sbc r19, r23
+ fda: 2a 31 cpi r18, 0x1A ; 26
+ fdc: 31 05 cpc r19, r1
+ fde: 2c f0 brlt .+10 ; 0xfea <__pack_f+0x76>
+ fe0: 20 e0 ldi r18, 0x00 ; 0
+ fe2: 30 e0 ldi r19, 0x00 ; 0
+ fe4: 40 e0 ldi r20, 0x00 ; 0
+ fe6: 50 e0 ldi r21, 0x00 ; 0
+ fe8: 2a c0 rjmp .+84 ; 0x103e <__pack_f+0xca>
+ fea: b8 01 movw r22, r16
+ fec: a7 01 movw r20, r14
+ fee: 02 2e mov r0, r18
+ ff0: 04 c0 rjmp .+8 ; 0xffa <__pack_f+0x86>
+ ff2: 76 95 lsr r23
+ ff4: 67 95 ror r22
+ ff6: 57 95 ror r21
+ ff8: 47 95 ror r20
+ ffa: 0a 94 dec r0
+ ffc: d2 f7 brpl .-12 ; 0xff2 <__pack_f+0x7e>
+ ffe: 81 e0 ldi r24, 0x01 ; 1
+ 1000: 90 e0 ldi r25, 0x00 ; 0
+ 1002: a0 e0 ldi r26, 0x00 ; 0
+ 1004: b0 e0 ldi r27, 0x00 ; 0
+ 1006: 04 c0 rjmp .+8 ; 0x1010 <__pack_f+0x9c>
+ 1008: 88 0f add r24, r24
+ 100a: 99 1f adc r25, r25
+ 100c: aa 1f adc r26, r26
+ 100e: bb 1f adc r27, r27
+ 1010: 2a 95 dec r18
+ 1012: d2 f7 brpl .-12 ; 0x1008 <__pack_f+0x94>
+ 1014: 01 97 sbiw r24, 0x01 ; 1
+ 1016: a1 09 sbc r26, r1
+ 1018: b1 09 sbc r27, r1
+ 101a: 8e 21 and r24, r14
+ 101c: 9f 21 and r25, r15
+ 101e: a0 23 and r26, r16
+ 1020: b1 23 and r27, r17
+ 1022: 00 97 sbiw r24, 0x00 ; 0
+ 1024: a1 05 cpc r26, r1
+ 1026: b1 05 cpc r27, r1
+ 1028: 21 f0 breq .+8 ; 0x1032 <__pack_f+0xbe>
+ 102a: 81 e0 ldi r24, 0x01 ; 1
+ 102c: 90 e0 ldi r25, 0x00 ; 0
+ 102e: a0 e0 ldi r26, 0x00 ; 0
+ 1030: b0 e0 ldi r27, 0x00 ; 0
+ 1032: 9a 01 movw r18, r20
+ 1034: ab 01 movw r20, r22
+ 1036: 28 2b or r18, r24
+ 1038: 39 2b or r19, r25
+ 103a: 4a 2b or r20, r26
+ 103c: 5b 2b or r21, r27
+ 103e: da 01 movw r26, r20
+ 1040: c9 01 movw r24, r18
+ 1042: 8f 77 andi r24, 0x7F ; 127
+ 1044: 90 70 andi r25, 0x00 ; 0
+ 1046: a0 70 andi r26, 0x00 ; 0
+ 1048: b0 70 andi r27, 0x00 ; 0
+ 104a: 80 34 cpi r24, 0x40 ; 64
+ 104c: 91 05 cpc r25, r1
+ 104e: a1 05 cpc r26, r1
+ 1050: b1 05 cpc r27, r1
+ 1052: 39 f4 brne .+14 ; 0x1062 <__pack_f+0xee>
+ 1054: 27 ff sbrs r18, 7
+ 1056: 09 c0 rjmp .+18 ; 0x106a <__pack_f+0xf6>
+ 1058: 20 5c subi r18, 0xC0 ; 192
+ 105a: 3f 4f sbci r19, 0xFF ; 255
+ 105c: 4f 4f sbci r20, 0xFF ; 255
+ 105e: 5f 4f sbci r21, 0xFF ; 255
+ 1060: 04 c0 rjmp .+8 ; 0x106a <__pack_f+0xf6>
+ 1062: 21 5c subi r18, 0xC1 ; 193
+ 1064: 3f 4f sbci r19, 0xFF ; 255
+ 1066: 4f 4f sbci r20, 0xFF ; 255
+ 1068: 5f 4f sbci r21, 0xFF ; 255
+ 106a: e0 e0 ldi r30, 0x00 ; 0
+ 106c: f0 e0 ldi r31, 0x00 ; 0
+ 106e: 20 30 cpi r18, 0x00 ; 0
+ 1070: a0 e0 ldi r26, 0x00 ; 0
+ 1072: 3a 07 cpc r19, r26
+ 1074: a0 e0 ldi r26, 0x00 ; 0
+ 1076: 4a 07 cpc r20, r26
+ 1078: a0 e4 ldi r26, 0x40 ; 64
+ 107a: 5a 07 cpc r21, r26
+ 107c: 10 f0 brcs .+4 ; 0x1082 <__pack_f+0x10e>
+ 107e: e1 e0 ldi r30, 0x01 ; 1
+ 1080: f0 e0 ldi r31, 0x00 ; 0
+ 1082: 79 01 movw r14, r18
+ 1084: 8a 01 movw r16, r20
+ 1086: 27 c0 rjmp .+78 ; 0x10d6 <__pack_f+0x162>
+ 1088: 60 38 cpi r22, 0x80 ; 128
+ 108a: 71 05 cpc r23, r1
+ 108c: 64 f5 brge .+88 ; 0x10e6 <__pack_f+0x172>
+ 108e: fb 01 movw r30, r22
+ 1090: e1 58 subi r30, 0x81 ; 129
+ 1092: ff 4f sbci r31, 0xFF ; 255
+ 1094: d8 01 movw r26, r16
+ 1096: c7 01 movw r24, r14
+ 1098: 8f 77 andi r24, 0x7F ; 127
+ 109a: 90 70 andi r25, 0x00 ; 0
+ 109c: a0 70 andi r26, 0x00 ; 0
+ 109e: b0 70 andi r27, 0x00 ; 0
+ 10a0: 80 34 cpi r24, 0x40 ; 64
+ 10a2: 91 05 cpc r25, r1
+ 10a4: a1 05 cpc r26, r1
+ 10a6: b1 05 cpc r27, r1
+ 10a8: 39 f4 brne .+14 ; 0x10b8 <__pack_f+0x144>
+ 10aa: e7 fe sbrs r14, 7
+ 10ac: 0d c0 rjmp .+26 ; 0x10c8 <__pack_f+0x154>
+ 10ae: 80 e4 ldi r24, 0x40 ; 64
+ 10b0: 90 e0 ldi r25, 0x00 ; 0
+ 10b2: a0 e0 ldi r26, 0x00 ; 0
+ 10b4: b0 e0 ldi r27, 0x00 ; 0
+ 10b6: 04 c0 rjmp .+8 ; 0x10c0 <__pack_f+0x14c>
+ 10b8: 8f e3 ldi r24, 0x3F ; 63
+ 10ba: 90 e0 ldi r25, 0x00 ; 0
+ 10bc: a0 e0 ldi r26, 0x00 ; 0
+ 10be: b0 e0 ldi r27, 0x00 ; 0
+ 10c0: e8 0e add r14, r24
+ 10c2: f9 1e adc r15, r25
+ 10c4: 0a 1f adc r16, r26
+ 10c6: 1b 1f adc r17, r27
+ 10c8: 17 ff sbrs r17, 7
+ 10ca: 05 c0 rjmp .+10 ; 0x10d6 <__pack_f+0x162>
+ 10cc: 16 95 lsr r17
+ 10ce: 07 95 ror r16
+ 10d0: f7 94 ror r15
+ 10d2: e7 94 ror r14
+ 10d4: 31 96 adiw r30, 0x01 ; 1
+ 10d6: 87 e0 ldi r24, 0x07 ; 7
+ 10d8: 16 95 lsr r17
+ 10da: 07 95 ror r16
+ 10dc: f7 94 ror r15
+ 10de: e7 94 ror r14
+ 10e0: 8a 95 dec r24
+ 10e2: d1 f7 brne .-12 ; 0x10d8 <__pack_f+0x164>
+ 10e4: 05 c0 rjmp .+10 ; 0x10f0 <__pack_f+0x17c>
+ 10e6: ee 24 eor r14, r14
+ 10e8: ff 24 eor r15, r15
+ 10ea: 87 01 movw r16, r14
+ 10ec: ef ef ldi r30, 0xFF ; 255
+ 10ee: f0 e0 ldi r31, 0x00 ; 0
+ 10f0: 6e 2f mov r22, r30
+ 10f2: 67 95 ror r22
+ 10f4: 66 27 eor r22, r22
+ 10f6: 67 95 ror r22
+ 10f8: 90 2f mov r25, r16
+ 10fa: 9f 77 andi r25, 0x7F ; 127
+ 10fc: d7 94 ror r13
+ 10fe: dd 24 eor r13, r13
+ 1100: d7 94 ror r13
+ 1102: 8e 2f mov r24, r30
+ 1104: 86 95 lsr r24
+ 1106: 49 2f mov r20, r25
+ 1108: 46 2b or r20, r22
+ 110a: 58 2f mov r21, r24
+ 110c: 5d 29 or r21, r13
+ 110e: b7 01 movw r22, r14
+ 1110: ca 01 movw r24, r20
+ 1112: 1f 91 pop r17
+ 1114: 0f 91 pop r16
+ 1116: ff 90 pop r15
+ 1118: ef 90 pop r14
+ 111a: df 90 pop r13
+ 111c: 08 95 ret
+
+0000111e <__unpack_f>:
+ 111e: fc 01 movw r30, r24
+ 1120: db 01 movw r26, r22
+ 1122: 40 81 ld r20, Z
+ 1124: 51 81 ldd r21, Z+1 ; 0x01
+ 1126: 22 81 ldd r18, Z+2 ; 0x02
+ 1128: 62 2f mov r22, r18
+ 112a: 6f 77 andi r22, 0x7F ; 127
+ 112c: 70 e0 ldi r23, 0x00 ; 0
+ 112e: 22 1f adc r18, r18
+ 1130: 22 27 eor r18, r18
+ 1132: 22 1f adc r18, r18
+ 1134: 93 81 ldd r25, Z+3 ; 0x03
+ 1136: 89 2f mov r24, r25
+ 1138: 88 0f add r24, r24
+ 113a: 82 2b or r24, r18
+ 113c: 28 2f mov r18, r24
+ 113e: 30 e0 ldi r19, 0x00 ; 0
+ 1140: 99 1f adc r25, r25
+ 1142: 99 27 eor r25, r25
+ 1144: 99 1f adc r25, r25
+ 1146: 11 96 adiw r26, 0x01 ; 1
+ 1148: 9c 93 st X, r25
+ 114a: 11 97 sbiw r26, 0x01 ; 1
+ 114c: 21 15 cp r18, r1
+ 114e: 31 05 cpc r19, r1
+ 1150: a9 f5 brne .+106 ; 0x11bc <__unpack_f+0x9e>
+ 1152: 41 15 cp r20, r1
+ 1154: 51 05 cpc r21, r1
+ 1156: 61 05 cpc r22, r1
+ 1158: 71 05 cpc r23, r1
+ 115a: 11 f4 brne .+4 ; 0x1160 <__unpack_f+0x42>
+ 115c: 82 e0 ldi r24, 0x02 ; 2
+ 115e: 37 c0 rjmp .+110 ; 0x11ce <__unpack_f+0xb0>
+ 1160: 82 e8 ldi r24, 0x82 ; 130
+ 1162: 9f ef ldi r25, 0xFF ; 255
+ 1164: 13 96 adiw r26, 0x03 ; 3
+ 1166: 9c 93 st X, r25
+ 1168: 8e 93 st -X, r24
+ 116a: 12 97 sbiw r26, 0x02 ; 2
+ 116c: 9a 01 movw r18, r20
+ 116e: ab 01 movw r20, r22
+ 1170: 67 e0 ldi r22, 0x07 ; 7
+ 1172: 22 0f add r18, r18
+ 1174: 33 1f adc r19, r19
+ 1176: 44 1f adc r20, r20
+ 1178: 55 1f adc r21, r21
+ 117a: 6a 95 dec r22
+ 117c: d1 f7 brne .-12 ; 0x1172 <__unpack_f+0x54>
+ 117e: 83 e0 ldi r24, 0x03 ; 3
+ 1180: 8c 93 st X, r24
+ 1182: 0d c0 rjmp .+26 ; 0x119e <__unpack_f+0x80>
+ 1184: 22 0f add r18, r18
+ 1186: 33 1f adc r19, r19
+ 1188: 44 1f adc r20, r20
+ 118a: 55 1f adc r21, r21
+ 118c: 12 96 adiw r26, 0x02 ; 2
+ 118e: 8d 91 ld r24, X+
+ 1190: 9c 91 ld r25, X
+ 1192: 13 97 sbiw r26, 0x03 ; 3
+ 1194: 01 97 sbiw r24, 0x01 ; 1
+ 1196: 13 96 adiw r26, 0x03 ; 3
+ 1198: 9c 93 st X, r25
+ 119a: 8e 93 st -X, r24
+ 119c: 12 97 sbiw r26, 0x02 ; 2
+ 119e: 20 30 cpi r18, 0x00 ; 0
+ 11a0: 80 e0 ldi r24, 0x00 ; 0
+ 11a2: 38 07 cpc r19, r24
+ 11a4: 80 e0 ldi r24, 0x00 ; 0
+ 11a6: 48 07 cpc r20, r24
+ 11a8: 80 e4 ldi r24, 0x40 ; 64
+ 11aa: 58 07 cpc r21, r24
+ 11ac: 58 f3 brcs .-42 ; 0x1184 <__unpack_f+0x66>
+ 11ae: 14 96 adiw r26, 0x04 ; 4
+ 11b0: 2d 93 st X+, r18
+ 11b2: 3d 93 st X+, r19
+ 11b4: 4d 93 st X+, r20
+ 11b6: 5c 93 st X, r21
+ 11b8: 17 97 sbiw r26, 0x07 ; 7
+ 11ba: 08 95 ret
+ 11bc: 2f 3f cpi r18, 0xFF ; 255
+ 11be: 31 05 cpc r19, r1
+ 11c0: 79 f4 brne .+30 ; 0x11e0 <__unpack_f+0xc2>
+ 11c2: 41 15 cp r20, r1
+ 11c4: 51 05 cpc r21, r1
+ 11c6: 61 05 cpc r22, r1
+ 11c8: 71 05 cpc r23, r1
+ 11ca: 19 f4 brne .+6 ; 0x11d2 <__unpack_f+0xb4>
+ 11cc: 84 e0 ldi r24, 0x04 ; 4
+ 11ce: 8c 93 st X, r24
+ 11d0: 08 95 ret
+ 11d2: 64 ff sbrs r22, 4
+ 11d4: 03 c0 rjmp .+6 ; 0x11dc <__unpack_f+0xbe>
+ 11d6: 81 e0 ldi r24, 0x01 ; 1
+ 11d8: 8c 93 st X, r24
+ 11da: 12 c0 rjmp .+36 ; 0x1200 <__unpack_f+0xe2>
+ 11dc: 1c 92 st X, r1
+ 11de: 10 c0 rjmp .+32 ; 0x1200 <__unpack_f+0xe2>
+ 11e0: 2f 57 subi r18, 0x7F ; 127
+ 11e2: 30 40 sbci r19, 0x00 ; 0
+ 11e4: 13 96 adiw r26, 0x03 ; 3
+ 11e6: 3c 93 st X, r19
+ 11e8: 2e 93 st -X, r18
+ 11ea: 12 97 sbiw r26, 0x02 ; 2
+ 11ec: 83 e0 ldi r24, 0x03 ; 3
+ 11ee: 8c 93 st X, r24
+ 11f0: 87 e0 ldi r24, 0x07 ; 7
+ 11f2: 44 0f add r20, r20
+ 11f4: 55 1f adc r21, r21
+ 11f6: 66 1f adc r22, r22
+ 11f8: 77 1f adc r23, r23
+ 11fa: 8a 95 dec r24
+ 11fc: d1 f7 brne .-12 ; 0x11f2 <__unpack_f+0xd4>
+ 11fe: 70 64 ori r23, 0x40 ; 64
+ 1200: 14 96 adiw r26, 0x04 ; 4
+ 1202: 4d 93 st X+, r20
+ 1204: 5d 93 st X+, r21
+ 1206: 6d 93 st X+, r22
+ 1208: 7c 93 st X, r23
+ 120a: 17 97 sbiw r26, 0x07 ; 7
+ 120c: 08 95 ret
+
+0000120e <__divmodhi4>:
+ 120e: 97 fb bst r25, 7
+ 1210: 09 2e mov r0, r25
+ 1212: 07 26 eor r0, r23
+ 1214: 0a d0 rcall .+20 ; 0x122a <__divmodhi4_neg1>
+ 1216: 77 fd sbrc r23, 7
+ 1218: 04 d0 rcall .+8 ; 0x1222 <__divmodhi4_neg2>
+ 121a: 49 d0 rcall .+146 ; 0x12ae <__udivmodhi4>
+ 121c: 06 d0 rcall .+12 ; 0x122a <__divmodhi4_neg1>
+ 121e: 00 20 and r0, r0
+ 1220: 1a f4 brpl .+6 ; 0x1228 <__divmodhi4_exit>
+
+00001222 <__divmodhi4_neg2>:
+ 1222: 70 95 com r23
+ 1224: 61 95 neg r22
+ 1226: 7f 4f sbci r23, 0xFF ; 255
+
+00001228 <__divmodhi4_exit>:
+ 1228: 08 95 ret
+
+0000122a <__divmodhi4_neg1>:
+ 122a: f6 f7 brtc .-4 ; 0x1228 <__divmodhi4_exit>
+ 122c: 90 95 com r25
+ 122e: 81 95 neg r24
+ 1230: 9f 4f sbci r25, 0xFF ; 255
+ 1232: 08 95 ret
+
+00001234 <__udivmodsi4>:
+ 1234: a1 e2 ldi r26, 0x21 ; 33
+ 1236: 1a 2e mov r1, r26
+ 1238: aa 1b sub r26, r26
+ 123a: bb 1b sub r27, r27
+ 123c: fd 01 movw r30, r26
+ 123e: 0d c0 rjmp .+26 ; 0x125a <__udivmodsi4_ep>
+
+00001240 <__udivmodsi4_loop>:
+ 1240: aa 1f adc r26, r26
+ 1242: bb 1f adc r27, r27
+ 1244: ee 1f adc r30, r30
+ 1246: ff 1f adc r31, r31
+ 1248: a2 17 cp r26, r18
+ 124a: b3 07 cpc r27, r19
+ 124c: e4 07 cpc r30, r20
+ 124e: f5 07 cpc r31, r21
+ 1250: 20 f0 brcs .+8 ; 0x125a <__udivmodsi4_ep>
+ 1252: a2 1b sub r26, r18
+ 1254: b3 0b sbc r27, r19
+ 1256: e4 0b sbc r30, r20
+ 1258: f5 0b sbc r31, r21
+
+0000125a <__udivmodsi4_ep>:
+ 125a: 66 1f adc r22, r22
+ 125c: 77 1f adc r23, r23
+ 125e: 88 1f adc r24, r24
+ 1260: 99 1f adc r25, r25
+ 1262: 1a 94 dec r1
+ 1264: 69 f7 brne .-38 ; 0x1240 <__udivmodsi4_loop>
+ 1266: 60 95 com r22
+ 1268: 70 95 com r23
+ 126a: 80 95 com r24
+ 126c: 90 95 com r25
+ 126e: 9b 01 movw r18, r22
+ 1270: ac 01 movw r20, r24
+ 1272: bd 01 movw r22, r26
+ 1274: cf 01 movw r24, r30
+ 1276: 08 95 ret
+
+00001278 <__divmodsi4>:
+ 1278: 97 fb bst r25, 7
+ 127a: 09 2e mov r0, r25
+ 127c: 05 26 eor r0, r21
+ 127e: 0e d0 rcall .+28 ; 0x129c <__divmodsi4_neg1>
+ 1280: 57 fd sbrc r21, 7
+ 1282: 04 d0 rcall .+8 ; 0x128c <__divmodsi4_neg2>
+ 1284: d7 df rcall .-82 ; 0x1234 <__udivmodsi4>
+ 1286: 0a d0 rcall .+20 ; 0x129c <__divmodsi4_neg1>
+ 1288: 00 1c adc r0, r0
+ 128a: 38 f4 brcc .+14 ; 0x129a <__divmodsi4_exit>
+
+0000128c <__divmodsi4_neg2>:
+ 128c: 50 95 com r21
+ 128e: 40 95 com r20
+ 1290: 30 95 com r19
+ 1292: 21 95 neg r18
+ 1294: 3f 4f sbci r19, 0xFF ; 255
+ 1296: 4f 4f sbci r20, 0xFF ; 255
+ 1298: 5f 4f sbci r21, 0xFF ; 255
+
+0000129a <__divmodsi4_exit>:
+ 129a: 08 95 ret
+
+0000129c <__divmodsi4_neg1>:
+ 129c: f6 f7 brtc .-4 ; 0x129a <__divmodsi4_exit>
+ 129e: 90 95 com r25
+ 12a0: 80 95 com r24
+ 12a2: 70 95 com r23
+ 12a4: 61 95 neg r22
+ 12a6: 7f 4f sbci r23, 0xFF ; 255
+ 12a8: 8f 4f sbci r24, 0xFF ; 255
+ 12aa: 9f 4f sbci r25, 0xFF ; 255
+ 12ac: 08 95 ret
+
+000012ae <__udivmodhi4>:
+ 12ae: aa 1b sub r26, r26
+ 12b0: bb 1b sub r27, r27
+ 12b2: 51 e1 ldi r21, 0x11 ; 17
+ 12b4: 07 c0 rjmp .+14 ; 0x12c4 <__udivmodhi4_ep>
+
+000012b6 <__udivmodhi4_loop>:
+ 12b6: aa 1f adc r26, r26
+ 12b8: bb 1f adc r27, r27
+ 12ba: a6 17 cp r26, r22
+ 12bc: b7 07 cpc r27, r23
+ 12be: 10 f0 brcs .+4 ; 0x12c4 <__udivmodhi4_ep>
+ 12c0: a6 1b sub r26, r22
+ 12c2: b7 0b sbc r27, r23
+
+000012c4 <__udivmodhi4_ep>:
+ 12c4: 88 1f adc r24, r24
+ 12c6: 99 1f adc r25, r25
+ 12c8: 5a 95 dec r21
+ 12ca: a9 f7 brne .-22 ; 0x12b6 <__udivmodhi4_loop>
+ 12cc: 80 95 com r24
+ 12ce: 90 95 com r25
+ 12d0: bc 01 movw r22, r24
+ 12d2: cd 01 movw r24, r26
+ 12d4: 08 95 ret
+
+000012d6 <__prologue_saves__>:
+ 12d6: 2f 92 push r2
+ 12d8: 3f 92 push r3
+ 12da: 4f 92 push r4
+ 12dc: 5f 92 push r5
+ 12de: 6f 92 push r6
+ 12e0: 7f 92 push r7
+ 12e2: 8f 92 push r8
+ 12e4: 9f 92 push r9
+ 12e6: af 92 push r10
+ 12e8: bf 92 push r11
+ 12ea: cf 92 push r12
+ 12ec: df 92 push r13
+ 12ee: ef 92 push r14
+ 12f0: ff 92 push r15
+ 12f2: 0f 93 push r16
+ 12f4: 1f 93 push r17
+ 12f6: cf 93 push r28
+ 12f8: df 93 push r29
+ 12fa: cd b7 in r28, 0x3d ; 61
+ 12fc: de b7 in r29, 0x3e ; 62
+ 12fe: ca 1b sub r28, r26
+ 1300: db 0b sbc r29, r27
+ 1302: 0f b6 in r0, 0x3f ; 63
+ 1304: f8 94 cli
+ 1306: de bf out 0x3e, r29 ; 62
+ 1308: 0f be out 0x3f, r0 ; 63
+ 130a: cd bf out 0x3d, r28 ; 61
+ 130c: 09 94 ijmp
+
+0000130e <__epilogue_restores__>:
+ 130e: 2a 88 ldd r2, Y+18 ; 0x12
+ 1310: 39 88 ldd r3, Y+17 ; 0x11
+ 1312: 48 88 ldd r4, Y+16 ; 0x10
+ 1314: 5f 84 ldd r5, Y+15 ; 0x0f
+ 1316: 6e 84 ldd r6, Y+14 ; 0x0e
+ 1318: 7d 84 ldd r7, Y+13 ; 0x0d
+ 131a: 8c 84 ldd r8, Y+12 ; 0x0c
+ 131c: 9b 84 ldd r9, Y+11 ; 0x0b
+ 131e: aa 84 ldd r10, Y+10 ; 0x0a
+ 1320: b9 84 ldd r11, Y+9 ; 0x09
+ 1322: c8 84 ldd r12, Y+8 ; 0x08
+ 1324: df 80 ldd r13, Y+7 ; 0x07
+ 1326: ee 80 ldd r14, Y+6 ; 0x06
+ 1328: fd 80 ldd r15, Y+5 ; 0x05
+ 132a: 0c 81 ldd r16, Y+4 ; 0x04
+ 132c: 1b 81 ldd r17, Y+3 ; 0x03
+ 132e: aa 81 ldd r26, Y+2 ; 0x02
+ 1330: b9 81 ldd r27, Y+1 ; 0x01
+ 1332: ce 0f add r28, r30
+ 1334: d1 1d adc r29, r1
+ 1336: 0f b6 in r0, 0x3f ; 63
+ 1338: f8 94 cli
+ 133a: de bf out 0x3e, r29 ; 62
+ 133c: 0f be out 0x3f, r0 ; 63
+ 133e: cd bf out 0x3d, r28 ; 61
+ 1340: ed 01 movw r28, r26
+ 1342: 08 95 ret
+
+00001344 <__tablejump2__>:
+ 1344: ee 0f add r30, r30
+ 1346: ff 1f adc r31, r31
+
+00001348 <__tablejump__>:
+ 1348: 05 90 lpm r0, Z+
+ 134a: f4 91 lpm r31, Z+
+ 134c: e0 2d mov r30, r0
+ 134e: 09 94 ijmp
+
+00001350 <sin>:
+ 1350: 9f 93 push r25
+ 1352: 05 d0 rcall .+10 ; 0x135e <__fp_rempio2>
+ 1354: 0f 90 pop r0
+ 1356: 07 fc sbrc r0, 7
+ 1358: ee 5f subi r30, 0xFE ; 254
+ 135a: 28 c0 rjmp .+80 ; 0x13ac <__fp_sinus>
+ 135c: ce c0 rjmp .+412 ; 0x14fa <__fp_nan>
+
+0000135e <__fp_rempio2>:
+ 135e: 3f d0 rcall .+126 ; 0x13de <__fp_splitA>
+ 1360: e8 f3 brcs .-6 ; 0x135c <sin+0xc>
+ 1362: e8 94 clt
+ 1364: e0 e0 ldi r30, 0x00 ; 0
+ 1366: bb 27 eor r27, r27
+ 1368: 9f 57 subi r25, 0x7F ; 127
+ 136a: f0 f0 brcs .+60 ; 0x13a8 <__fp_rempio2+0x4a>
+ 136c: 2a ed ldi r18, 0xDA ; 218
+ 136e: 3f e0 ldi r19, 0x0F ; 15
+ 1370: 49 ec ldi r20, 0xC9 ; 201
+ 1372: 06 c0 rjmp .+12 ; 0x1380 <__fp_rempio2+0x22>
+ 1374: ee 0f add r30, r30
+ 1376: bb 0f add r27, r27
+ 1378: 66 1f adc r22, r22
+ 137a: 77 1f adc r23, r23
+ 137c: 88 1f adc r24, r24
+ 137e: 28 f0 brcs .+10 ; 0x138a <__fp_rempio2+0x2c>
+ 1380: b2 3a cpi r27, 0xA2 ; 162
+ 1382: 62 07 cpc r22, r18
+ 1384: 73 07 cpc r23, r19
+ 1386: 84 07 cpc r24, r20
+ 1388: 28 f0 brcs .+10 ; 0x1394 <__fp_rempio2+0x36>
+ 138a: b2 5a subi r27, 0xA2 ; 162
+ 138c: 62 0b sbc r22, r18
+ 138e: 73 0b sbc r23, r19
+ 1390: 84 0b sbc r24, r20
+ 1392: e3 95 inc r30
+ 1394: 9a 95 dec r25
+ 1396: 72 f7 brpl .-36 ; 0x1374 <__fp_rempio2+0x16>
+ 1398: 80 38 cpi r24, 0x80 ; 128
+ 139a: 30 f4 brcc .+12 ; 0x13a8 <__fp_rempio2+0x4a>
+ 139c: 9a 95 dec r25
+ 139e: bb 0f add r27, r27
+ 13a0: 66 1f adc r22, r22
+ 13a2: 77 1f adc r23, r23
+ 13a4: 88 1f adc r24, r24
+ 13a6: d2 f7 brpl .-12 ; 0x139c <__fp_rempio2+0x3e>
+ 13a8: 90 48 sbci r25, 0x80 ; 128
+ 13aa: 9b c0 rjmp .+310 ; 0x14e2 <__fp_mpack_finite>
+
+000013ac <__fp_sinus>:
+ 13ac: ef 93 push r30
+ 13ae: e0 ff sbrs r30, 0
+ 13b0: 06 c0 rjmp .+12 ; 0x13be <__fp_sinus+0x12>
+ 13b2: a2 ea ldi r26, 0xA2 ; 162
+ 13b4: 2a ed ldi r18, 0xDA ; 218
+ 13b6: 3f e0 ldi r19, 0x0F ; 15
+ 13b8: 49 ec ldi r20, 0xC9 ; 201
+ 13ba: 5f eb ldi r21, 0xBF ; 191
+ 13bc: 37 d0 rcall .+110 ; 0x142c <__addsf3x>
+ 13be: bf d0 rcall .+382 ; 0x153e <__fp_round>
+ 13c0: 0f 90 pop r0
+ 13c2: 03 94 inc r0
+ 13c4: 01 fc sbrc r0, 1
+ 13c6: 90 58 subi r25, 0x80 ; 128
+ 13c8: e8 e6 ldi r30, 0x68 ; 104
+ 13ca: f0 e0 ldi r31, 0x00 ; 0
+ 13cc: 99 c0 rjmp .+306 ; 0x1500 <__fp_powsodd>
+
+000013ce <__fp_split3>:
+ 13ce: 57 fd sbrc r21, 7
+ 13d0: 90 58 subi r25, 0x80 ; 128
+ 13d2: 44 0f add r20, r20
+ 13d4: 55 1f adc r21, r21
+ 13d6: 59 f0 breq .+22 ; 0x13ee <__fp_splitA+0x10>
+ 13d8: 5f 3f cpi r21, 0xFF ; 255
+ 13da: 71 f0 breq .+28 ; 0x13f8 <__fp_splitA+0x1a>
+ 13dc: 47 95 ror r20
+
+000013de <__fp_splitA>:
+ 13de: 88 0f add r24, r24
+ 13e0: 97 fb bst r25, 7
+ 13e2: 99 1f adc r25, r25
+ 13e4: 61 f0 breq .+24 ; 0x13fe <__fp_splitA+0x20>
+ 13e6: 9f 3f cpi r25, 0xFF ; 255
+ 13e8: 79 f0 breq .+30 ; 0x1408 <__fp_splitA+0x2a>
+ 13ea: 87 95 ror r24
+ 13ec: 08 95 ret
+ 13ee: 12 16 cp r1, r18
+ 13f0: 13 06 cpc r1, r19
+ 13f2: 14 06 cpc r1, r20
+ 13f4: 55 1f adc r21, r21
+ 13f6: f2 cf rjmp .-28 ; 0x13dc <__fp_split3+0xe>
+ 13f8: 46 95 lsr r20
+ 13fa: f1 df rcall .-30 ; 0x13de <__fp_splitA>
+ 13fc: 08 c0 rjmp .+16 ; 0x140e <__fp_splitA+0x30>
+ 13fe: 16 16 cp r1, r22
+ 1400: 17 06 cpc r1, r23
+ 1402: 18 06 cpc r1, r24
+ 1404: 99 1f adc r25, r25
+ 1406: f1 cf rjmp .-30 ; 0x13ea <__fp_splitA+0xc>
+ 1408: 86 95 lsr r24
+ 140a: 71 05 cpc r23, r1
+ 140c: 61 05 cpc r22, r1
+ 140e: 08 94 sec
+ 1410: 08 95 ret
+ 1412: 87 d0 rcall .+270 ; 0x1522 <__fp_pscA>
+ 1414: 30 f0 brcs .+12 ; 0x1422 <__fp_splitA+0x44>
+ 1416: 8c d0 rcall .+280 ; 0x1530 <__fp_pscB>
+ 1418: 20 f0 brcs .+8 ; 0x1422 <__fp_splitA+0x44>
+ 141a: 31 f4 brne .+12 ; 0x1428 <__fp_splitA+0x4a>
+ 141c: 9f 3f cpi r25, 0xFF ; 255
+ 141e: 11 f4 brne .+4 ; 0x1424 <__fp_splitA+0x46>
+ 1420: 1e f4 brtc .+6 ; 0x1428 <__fp_splitA+0x4a>
+ 1422: 6b c0 rjmp .+214 ; 0x14fa <__fp_nan>
+ 1424: 0e f4 brtc .+2 ; 0x1428 <__fp_splitA+0x4a>
+ 1426: e0 95 com r30
+ 1428: e7 fb bst r30, 7
+ 142a: 53 c0 rjmp .+166 ; 0x14d2 <__fp_inf>
+
+0000142c <__addsf3x>:
+ 142c: e9 2f mov r30, r25
+ 142e: cf df rcall .-98 ; 0x13ce <__fp_split3>
+ 1430: 80 f3 brcs .-32 ; 0x1412 <__fp_splitA+0x34>
+ 1432: ba 17 cp r27, r26
+ 1434: 62 07 cpc r22, r18
+ 1436: 73 07 cpc r23, r19
+ 1438: 84 07 cpc r24, r20
+ 143a: 95 07 cpc r25, r21
+ 143c: 18 f0 brcs .+6 ; 0x1444 <__addsf3x+0x18>
+ 143e: 71 f4 brne .+28 ; 0x145c <__addsf3x+0x30>
+ 1440: 9e f5 brtc .+102 ; 0x14a8 <__addsf3x+0x7c>
+ 1442: 8e c0 rjmp .+284 ; 0x1560 <__fp_zero>
+ 1444: 0e f4 brtc .+2 ; 0x1448 <__addsf3x+0x1c>
+ 1446: e0 95 com r30
+ 1448: 0b 2e mov r0, r27
+ 144a: ba 2f mov r27, r26
+ 144c: a0 2d mov r26, r0
+ 144e: 0b 01 movw r0, r22
+ 1450: b9 01 movw r22, r18
+ 1452: 90 01 movw r18, r0
+ 1454: 0c 01 movw r0, r24
+ 1456: ca 01 movw r24, r20
+ 1458: a0 01 movw r20, r0
+ 145a: 11 24 eor r1, r1
+ 145c: ff 27 eor r31, r31
+ 145e: 59 1b sub r21, r25
+ 1460: 99 f0 breq .+38 ; 0x1488 <__addsf3x+0x5c>
+ 1462: 59 3f cpi r21, 0xF9 ; 249
+ 1464: 50 f4 brcc .+20 ; 0x147a <__addsf3x+0x4e>
+ 1466: 50 3e cpi r21, 0xE0 ; 224
+ 1468: 68 f1 brcs .+90 ; 0x14c4 <__addsf3x+0x98>
+ 146a: 1a 16 cp r1, r26
+ 146c: f0 40 sbci r31, 0x00 ; 0
+ 146e: a2 2f mov r26, r18
+ 1470: 23 2f mov r18, r19
+ 1472: 34 2f mov r19, r20
+ 1474: 44 27 eor r20, r20
+ 1476: 58 5f subi r21, 0xF8 ; 248
+ 1478: f3 cf rjmp .-26 ; 0x1460 <__addsf3x+0x34>
+ 147a: 46 95 lsr r20
+ 147c: 37 95 ror r19
+ 147e: 27 95 ror r18
+ 1480: a7 95 ror r26
+ 1482: f0 40 sbci r31, 0x00 ; 0
+ 1484: 53 95 inc r21
+ 1486: c9 f7 brne .-14 ; 0x147a <__addsf3x+0x4e>
+ 1488: 7e f4 brtc .+30 ; 0x14a8 <__addsf3x+0x7c>
+ 148a: 1f 16 cp r1, r31
+ 148c: ba 0b sbc r27, r26
+ 148e: 62 0b sbc r22, r18
+ 1490: 73 0b sbc r23, r19
+ 1492: 84 0b sbc r24, r20
+ 1494: ba f0 brmi .+46 ; 0x14c4 <__addsf3x+0x98>
+ 1496: 91 50 subi r25, 0x01 ; 1
+ 1498: a1 f0 breq .+40 ; 0x14c2 <__addsf3x+0x96>
+ 149a: ff 0f add r31, r31
+ 149c: bb 1f adc r27, r27
+ 149e: 66 1f adc r22, r22
+ 14a0: 77 1f adc r23, r23
+ 14a2: 88 1f adc r24, r24
+ 14a4: c2 f7 brpl .-16 ; 0x1496 <__addsf3x+0x6a>
+ 14a6: 0e c0 rjmp .+28 ; 0x14c4 <__addsf3x+0x98>
+ 14a8: ba 0f add r27, r26
+ 14aa: 62 1f adc r22, r18
+ 14ac: 73 1f adc r23, r19
+ 14ae: 84 1f adc r24, r20
+ 14b0: 48 f4 brcc .+18 ; 0x14c4 <__addsf3x+0x98>
+ 14b2: 87 95 ror r24
+ 14b4: 77 95 ror r23
+ 14b6: 67 95 ror r22
+ 14b8: b7 95 ror r27
+ 14ba: f7 95 ror r31
+ 14bc: 9e 3f cpi r25, 0xFE ; 254
+ 14be: 08 f0 brcs .+2 ; 0x14c2 <__addsf3x+0x96>
+ 14c0: b3 cf rjmp .-154 ; 0x1428 <__fp_splitA+0x4a>
+ 14c2: 93 95 inc r25
+ 14c4: 88 0f add r24, r24
+ 14c6: 08 f0 brcs .+2 ; 0x14ca <__addsf3x+0x9e>
+ 14c8: 99 27 eor r25, r25
+ 14ca: ee 0f add r30, r30
+ 14cc: 97 95 ror r25
+ 14ce: 87 95 ror r24
+ 14d0: 08 95 ret
+
+000014d2 <__fp_inf>:
+ 14d2: 97 f9 bld r25, 7
+ 14d4: 9f 67 ori r25, 0x7F ; 127
+ 14d6: 80 e8 ldi r24, 0x80 ; 128
+ 14d8: 70 e0 ldi r23, 0x00 ; 0
+ 14da: 60 e0 ldi r22, 0x00 ; 0
+ 14dc: 08 95 ret
+
+000014de <__fp_mpack>:
+ 14de: 9f 3f cpi r25, 0xFF ; 255
+ 14e0: 31 f0 breq .+12 ; 0x14ee <__fp_mpack_finite+0xc>
+
+000014e2 <__fp_mpack_finite>:
+ 14e2: 91 50 subi r25, 0x01 ; 1
+ 14e4: 20 f4 brcc .+8 ; 0x14ee <__fp_mpack_finite+0xc>
+ 14e6: 87 95 ror r24
+ 14e8: 77 95 ror r23
+ 14ea: 67 95 ror r22
+ 14ec: b7 95 ror r27
+ 14ee: 88 0f add r24, r24
+ 14f0: 91 1d adc r25, r1
+ 14f2: 96 95 lsr r25
+ 14f4: 87 95 ror r24
+ 14f6: 97 f9 bld r25, 7
+ 14f8: 08 95 ret
+
+000014fa <__fp_nan>:
+ 14fa: 9f ef ldi r25, 0xFF ; 255
+ 14fc: 80 ec ldi r24, 0xC0 ; 192
+ 14fe: 08 95 ret
+
+00001500 <__fp_powsodd>:
+ 1500: 9f 93 push r25
+ 1502: 8f 93 push r24
+ 1504: 7f 93 push r23
+ 1506: 6f 93 push r22
+ 1508: ff 93 push r31
+ 150a: ef 93 push r30
+ 150c: 9b 01 movw r18, r22
+ 150e: ac 01 movw r20, r24
+ 1510: 37 db rcall .-2450 ; 0xb80 <__mulsf3>
+ 1512: ef 91 pop r30
+ 1514: ff 91 pop r31
+ 1516: 2b d0 rcall .+86 ; 0x156e <__fp_powser>
+ 1518: 2f 91 pop r18
+ 151a: 3f 91 pop r19
+ 151c: 4f 91 pop r20
+ 151e: 5f 91 pop r21
+ 1520: 2f cb rjmp .-2466 ; 0xb80 <__mulsf3>
+
+00001522 <__fp_pscA>:
+ 1522: 00 24 eor r0, r0
+ 1524: 0a 94 dec r0
+ 1526: 16 16 cp r1, r22
+ 1528: 17 06 cpc r1, r23
+ 152a: 18 06 cpc r1, r24
+ 152c: 09 06 cpc r0, r25
+ 152e: 08 95 ret
+
+00001530 <__fp_pscB>:
+ 1530: 00 24 eor r0, r0
+ 1532: 0a 94 dec r0
+ 1534: 12 16 cp r1, r18
+ 1536: 13 06 cpc r1, r19
+ 1538: 14 06 cpc r1, r20
+ 153a: 05 06 cpc r0, r21
+ 153c: 08 95 ret
+
+0000153e <__fp_round>:
+ 153e: 09 2e mov r0, r25
+ 1540: 03 94 inc r0
+ 1542: 00 0c add r0, r0
+ 1544: 11 f4 brne .+4 ; 0x154a <__fp_round+0xc>
+ 1546: 88 23 and r24, r24
+ 1548: 52 f0 brmi .+20 ; 0x155e <__fp_round+0x20>
+ 154a: bb 0f add r27, r27
+ 154c: 40 f4 brcc .+16 ; 0x155e <__fp_round+0x20>
+ 154e: bf 2b or r27, r31
+ 1550: 11 f4 brne .+4 ; 0x1556 <__fp_round+0x18>
+ 1552: 60 ff sbrs r22, 0
+ 1554: 04 c0 rjmp .+8 ; 0x155e <__fp_round+0x20>
+ 1556: 6f 5f subi r22, 0xFF ; 255
+ 1558: 7f 4f sbci r23, 0xFF ; 255
+ 155a: 8f 4f sbci r24, 0xFF ; 255
+ 155c: 9f 4f sbci r25, 0xFF ; 255
+ 155e: 08 95 ret
+
+00001560 <__fp_zero>:
+ 1560: e8 94 clt
+
+00001562 <__fp_szero>:
+ 1562: bb 27 eor r27, r27
+ 1564: 66 27 eor r22, r22
+ 1566: 77 27 eor r23, r23
+ 1568: cb 01 movw r24, r22
+ 156a: 97 f9 bld r25, 7
+ 156c: 08 95 ret
+
+0000156e <__fp_powser>:
+ 156e: df 93 push r29
+ 1570: cf 93 push r28
+ 1572: 1f 93 push r17
+ 1574: 0f 93 push r16
+ 1576: ff 92 push r15
+ 1578: ef 92 push r14
+ 157a: df 92 push r13
+ 157c: 7b 01 movw r14, r22
+ 157e: 8c 01 movw r16, r24
+ 1580: 68 94 set
+ 1582: 05 c0 rjmp .+10 ; 0x158e <__fp_powser+0x20>
+ 1584: da 2e mov r13, r26
+ 1586: ef 01 movw r28, r30
+ 1588: 21 d0 rcall .+66 ; 0x15cc <__mulsf3x>
+ 158a: fe 01 movw r30, r28
+ 158c: e8 94 clt
+ 158e: a5 91 lpm r26, Z+
+ 1590: 25 91 lpm r18, Z+
+ 1592: 35 91 lpm r19, Z+
+ 1594: 45 91 lpm r20, Z+
+ 1596: 55 91 lpm r21, Z+
+ 1598: ae f3 brts .-22 ; 0x1584 <__fp_powser+0x16>
+ 159a: ef 01 movw r28, r30
+ 159c: 47 df rcall .-370 ; 0x142c <__addsf3x>
+ 159e: fe 01 movw r30, r28
+ 15a0: 97 01 movw r18, r14
+ 15a2: a8 01 movw r20, r16
+ 15a4: da 94 dec r13
+ 15a6: 79 f7 brne .-34 ; 0x1586 <__fp_powser+0x18>
+ 15a8: df 90 pop r13
+ 15aa: ef 90 pop r14
+ 15ac: ff 90 pop r15
+ 15ae: 0f 91 pop r16
+ 15b0: 1f 91 pop r17
+ 15b2: cf 91 pop r28
+ 15b4: df 91 pop r29
+ 15b6: 08 95 ret
+ 15b8: b4 df rcall .-152 ; 0x1522 <__fp_pscA>
+ 15ba: 28 f0 brcs .+10 ; 0x15c6 <__fp_powser+0x58>
+ 15bc: b9 df rcall .-142 ; 0x1530 <__fp_pscB>
+ 15be: 18 f0 brcs .+6 ; 0x15c6 <__fp_powser+0x58>
+ 15c0: 95 23 and r25, r21
+ 15c2: 09 f0 breq .+2 ; 0x15c6 <__fp_powser+0x58>
+ 15c4: 86 cf rjmp .-244 ; 0x14d2 <__fp_inf>
+ 15c6: 99 cf rjmp .-206 ; 0x14fa <__fp_nan>
+ 15c8: 11 24 eor r1, r1
+ 15ca: cb cf rjmp .-106 ; 0x1562 <__fp_szero>
+
+000015cc <__mulsf3x>:
+ 15cc: 00 df rcall .-512 ; 0x13ce <__fp_split3>
+ 15ce: a0 f3 brcs .-24 ; 0x15b8 <__fp_powser+0x4a>
+
+000015d0 <__mulsf3_pse>:
+ 15d0: 95 9f mul r25, r21
+ 15d2: d1 f3 breq .-12 ; 0x15c8 <__fp_powser+0x5a>
+ 15d4: 95 0f add r25, r21
+ 15d6: 50 e0 ldi r21, 0x00 ; 0
+ 15d8: 55 1f adc r21, r21
+ 15da: 62 9f mul r22, r18
+ 15dc: f0 01 movw r30, r0
+ 15de: 72 9f mul r23, r18
+ 15e0: bb 27 eor r27, r27
+ 15e2: f0 0d add r31, r0
+ 15e4: b1 1d adc r27, r1
+ 15e6: 63 9f mul r22, r19
+ 15e8: aa 27 eor r26, r26
+ 15ea: f0 0d add r31, r0
+ 15ec: b1 1d adc r27, r1
+ 15ee: aa 1f adc r26, r26
+ 15f0: 64 9f mul r22, r20
+ 15f2: 66 27 eor r22, r22
+ 15f4: b0 0d add r27, r0
+ 15f6: a1 1d adc r26, r1
+ 15f8: 66 1f adc r22, r22
+ 15fa: 82 9f mul r24, r18
+ 15fc: 22 27 eor r18, r18
+ 15fe: b0 0d add r27, r0
+ 1600: a1 1d adc r26, r1
+ 1602: 62 1f adc r22, r18
+ 1604: 73 9f mul r23, r19
+ 1606: b0 0d add r27, r0
+ 1608: a1 1d adc r26, r1
+ 160a: 62 1f adc r22, r18
+ 160c: 83 9f mul r24, r19
+ 160e: a0 0d add r26, r0
+ 1610: 61 1d adc r22, r1
+ 1612: 22 1f adc r18, r18
+ 1614: 74 9f mul r23, r20
+ 1616: 33 27 eor r19, r19
+ 1618: a0 0d add r26, r0
+ 161a: 61 1d adc r22, r1
+ 161c: 23 1f adc r18, r19
+ 161e: 84 9f mul r24, r20
+ 1620: 60 0d add r22, r0
+ 1622: 21 1d adc r18, r1
+ 1624: 82 2f mov r24, r18
+ 1626: 76 2f mov r23, r22
+ 1628: 6a 2f mov r22, r26
+ 162a: 11 24 eor r1, r1
+ 162c: 9f 57 subi r25, 0x7F ; 127
+ 162e: 50 40 sbci r21, 0x00 ; 0
+ 1630: 8a f0 brmi .+34 ; 0x1654 <__mulsf3_pse+0x84>
+ 1632: e1 f0 breq .+56 ; 0x166c <__mulsf3_pse+0x9c>
+ 1634: 88 23 and r24, r24
+ 1636: 4a f0 brmi .+18 ; 0x164a <__mulsf3_pse+0x7a>
+ 1638: ee 0f add r30, r30
+ 163a: ff 1f adc r31, r31
+ 163c: bb 1f adc r27, r27
+ 163e: 66 1f adc r22, r22
+ 1640: 77 1f adc r23, r23
+ 1642: 88 1f adc r24, r24
+ 1644: 91 50 subi r25, 0x01 ; 1
+ 1646: 50 40 sbci r21, 0x00 ; 0
+ 1648: a9 f7 brne .-22 ; 0x1634 <__mulsf3_pse+0x64>
+ 164a: 9e 3f cpi r25, 0xFE ; 254
+ 164c: 51 05 cpc r21, r1
+ 164e: 70 f0 brcs .+28 ; 0x166c <__mulsf3_pse+0x9c>
+ 1650: 40 cf rjmp .-384 ; 0x14d2 <__fp_inf>
+ 1652: 87 cf rjmp .-242 ; 0x1562 <__fp_szero>
+ 1654: 5f 3f cpi r21, 0xFF ; 255
+ 1656: ec f3 brlt .-6 ; 0x1652 <__mulsf3_pse+0x82>
+ 1658: 98 3e cpi r25, 0xE8 ; 232
+ 165a: dc f3 brlt .-10 ; 0x1652 <__mulsf3_pse+0x82>
+ 165c: 86 95 lsr r24
+ 165e: 77 95 ror r23
+ 1660: 67 95 ror r22
+ 1662: b7 95 ror r27
+ 1664: f7 95 ror r31
+ 1666: e7 95 ror r30
+ 1668: 9f 5f subi r25, 0xFF ; 255
+ 166a: c1 f7 brne .-16 ; 0x165c <__mulsf3_pse+0x8c>
+ 166c: fe 2b or r31, r30
+ 166e: 88 0f add r24, r24
+ 1670: 91 1d adc r25, r1
+ 1672: 96 95 lsr r25
+ 1674: 87 95 ror r24
+ 1676: 97 f9 bld r25, 7
+ 1678: 08 95 ret
+
+0000167a <_exit>:
+ 167a: f8 94 cli
+
+0000167c <__stop_program>:
+ 167c: ff cf rjmp .-2 ; 0x167c <__stop_program>
diff --git a/electic_streaming2560/bin/Debug/electic_streaming.elf.map b/electic_streaming2560/bin/Debug/electic_streaming.elf.map
new file mode 100644
index 0000000..24ba79a
--- /dev/null
+++ b/electic_streaming2560/bin/Debug/electic_streaming.elf.map
@@ -0,0 +1,1643 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o (HardwareSerial::begin(long))
+../arduino_libs/core0022_2560.a(Print.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o) (Print::write(char const*))
+../arduino_libs/core0022_2560.a(WString.cpp.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (String::operator[](unsigned int) const)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ obj/Debug/main.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ obj/Debug/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o) (__do_global_ctors)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__fixunssfsi)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__subsf3)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ obj/Debug/main.o (__mulsf3)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ obj/Debug/main.o (__divsf3)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o) (__gesf2)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__ltsf2)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__floatsisf)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ obj/Debug/main.o (__fixsfsi)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o) (__floatunsisf)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o) (__clzsi2)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o) (__fpcmp_parts_f)
+/usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o) (__clz_tab)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ obj/Debug/main.o (sin)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o) (__fp_rempio2)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o) (__fp_sinus)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o) (__fp_splitA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o) (__addsf3x)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o) (__fp_mpack_finite)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o) (__fp_nan)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o) (__fp_powsodd)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o) (__fp_round)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o) (__fp_powser)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o) (__mulsf3x)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (malloc)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (realloc)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (atol)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (isspace)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (tolower)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (toupper)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o) (memcpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strcat)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strchr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strcmp)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strcpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strncmp)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strncpy)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strrchr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (strstr)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (itoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (ltoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o) (__mulsi_const_10)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o) (ultoa)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o) (__ctype_isfalse)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o) (strrev)
+
+Allocating common symbols
+Common symbol size file
+
+__brkval 0x2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__flp 0x2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00100000 xr
+data 0x00800200 0x0000fe00 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 0x800200
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_2560.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr6/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 0x38aa
+ *(.vectors)
+ .vectors 0x00000000 0xe4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ .progmem.gcc_fplib
+ 0x000000e4 0x1e /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ *(.progmem*)
+ 0x00000102 . = ALIGN (0x2)
+ 0x00000102 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x00000102 0x0 linker stubs
+ *(.trampolines*)
+ 0x00000102 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x00000102 __ctors_start = .
+ *(.ctors)
+ .ctors 0x00000102 0x2 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00000104 __ctors_end = .
+ 0x00000104 __dtors_start = .
+ *(.dtors)
+ 0x00000104 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x00000104 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ 0x00000104 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000104 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000114 0x1a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ 0x00000114 __do_copy_data
+ .init4 0x0000012e 0x10 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ 0x0000012e __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x0000013e 0x16 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ 0x0000013e __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000154 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ *(.init9)
+ *(.text)
+ .text 0x0000015c 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ 0x0000015c __vector_38
+ 0x0000015c __vector_22
+ 0x0000015c __vector_28
+ 0x0000015c __vector_1
+ 0x0000015c __vector_32
+ 0x0000015c __vector_34
+ 0x0000015c __vector_24
+ 0x0000015c __vector_12
+ 0x0000015c __vector_55
+ 0x0000015c __vector_46
+ 0x0000015c __bad_interrupt
+ 0x0000015c __vector_6
+ 0x0000015c __vector_31
+ 0x0000015c __vector_35
+ 0x0000015c __vector_39
+ 0x0000015c __vector_3
+ 0x0000015c __vector_23
+ 0x0000015c __vector_30
+ 0x0000015c __vector_45
+ 0x0000015c __vector_11
+ 0x0000015c __vector_13
+ 0x0000015c __vector_19
+ 0x0000015c __vector_56
+ 0x0000015c __vector_7
+ 0x0000015c __vector_49
+ 0x0000015c __vector_41
+ 0x0000015c __vector_43
+ 0x0000015c __vector_27
+ 0x0000015c __vector_5
+ 0x0000015c __vector_33
+ 0x0000015c __vector_47
+ 0x0000015c __vector_52
+ 0x0000015c __vector_37
+ 0x0000015c __vector_4
+ 0x0000015c __vector_44
+ 0x0000015c __vector_9
+ 0x0000015c __vector_2
+ 0x0000015c __vector_21
+ 0x0000015c __vector_15
+ 0x0000015c __vector_29
+ 0x0000015c __vector_40
+ 0x0000015c __vector_8
+ 0x0000015c __vector_26
+ 0x0000015c __vector_48
+ 0x0000015c __vector_14
+ 0x0000015c __vector_53
+ 0x0000015c __vector_10
+ 0x0000015c __vector_50
+ 0x0000015c __vector_16
+ 0x0000015c __vector_18
+ 0x0000015c __vector_20
+ 0x0000015c __vector_42
+ .text 0x00000160 0x2a2 obj/Debug/main.o
+ 0x00000160 __vector_17
+ 0x00000230 fill_sinewave()
+ 0x0000034a main
+ .text 0x00000402 0x0 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ .text 0x00000402 0x0 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ .text 0x00000402 0x0 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ .text 0x00000402 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ .text 0x00000402 0x58 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ 0x00000402 __fixunssfsi
+ .text 0x0000045a 0x354 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ 0x000006f2 __subsf3
+ 0x00000754 __addsf3
+ .text 0x000007ae 0x1f4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ 0x000007ae __mulsf3
+ .text 0x000009a2 0x158 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ 0x000009a2 __divsf3
+ .text 0x00000afa 0x60 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ 0x00000afa __gesf2
+ .text 0x00000b5a 0x60 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ 0x00000b5a __ltsf2
+ .text 0x00000bba 0xbc /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ 0x00000bba __floatsisf
+ .text 0x00000c76 0xa8 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ 0x00000c76 __fixsfsi
+ .text 0x00000d1e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ .text 0x00000d1e 0xf2 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ 0x00000d1e __floatunsisf
+ .text 0x00000e10 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ .text 0x00000e10 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ .text 0x00000e10 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ .text 0x00000e10 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ .text 0x00000e10 0x9e /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+ 0x00000e10 __clzsi2
+ .text 0x00000eae 0x1aa /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_pack_sf.o)
+ 0x00000eae __pack_f
+ .text 0x00001058 0xf0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_unpack_sf.o)
+ 0x00001058 __unpack_f
+ .text 0x00001148 0xb2 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fpcmp_parts_sf.o)
+ 0x00001148 __fpcmp_parts_f
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ .text 0x000011fa 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ 0x000011fa . = ALIGN (0x2)
+ *(.text.*)
+ .text.__vector_25
+ 0x000011fa 0x6a ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x000011fa __vector_25
+ .text.__vector_36
+ 0x00001264 0x6a ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001264 __vector_36
+ .text.__vector_51
+ 0x000012ce 0x6a ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x000012ce __vector_51
+ .text.__vector_54
+ 0x00001338 0x6a ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001338 __vector_54
+ .text._ZN14HardwareSerialC2EP11ring_bufferPVhS3_S3_S3_S3_hhhhh
+ 0x000013a2 0x60 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x000013a2 HardwareSerial::HardwareSerial(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)
+ .text._ZN14HardwareSerialC1EP11ring_bufferPVhS3_S3_S3_S3_hhhhh
+ 0x00001402 0x60 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001402 HardwareSerial::HardwareSerial(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)
+ .text._ZN14HardwareSerial5beginEl
+ 0x00001462 0xba ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001462 HardwareSerial::begin(long)
+ .text._ZN14HardwareSerial3endEv
+ 0x0000151c 0x54 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x0000151c HardwareSerial::end()
+ .text._ZN14HardwareSerial9availableEv
+ 0x00001570 0x22 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001570 HardwareSerial::available()
+ .text._ZN14HardwareSerial4peekEv
+ 0x00001592 0x34 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001592 HardwareSerial::peek()
+ .text._ZN14HardwareSerial4readEv
+ 0x000015c6 0x48 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x000015c6 HardwareSerial::read()
+ .text._ZN14HardwareSerial5flushEv
+ 0x0000160e 0x18 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x0000160e HardwareSerial::flush()
+ .text._ZN14HardwareSerial5writeEh
+ 0x00001626 0x26 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00001626 HardwareSerial::write(unsigned char)
+ .text._GLOBAL__I_rx_buffer
+ 0x0000164c 0x1a0 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ .text._ZN5Print5writeEPKc
+ 0x000017ec 0x30 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x000017ec Print::write(char const*)
+ .text._ZN5Print5writeEPKhj
+ 0x0000181c 0x3e ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x0000181c Print::write(unsigned char const*, unsigned int)
+ .text._ZN5Print5printEPKc
+ 0x0000185a 0x10 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x0000185a Print::print(char const*)
+ .text._ZN5Print5printERK6String
+ 0x0000186a 0x54 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x0000186a Print::print(String const&)
+ .text._ZN5Print11printNumberEmh
+ 0x000018be 0x134 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x000018be Print::printNumber(unsigned long, unsigned char)
+ .text._ZN5Print5printEmi
+ 0x000019f2 0x1e ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x000019f2 Print::print(unsigned long, int)
+ .text._ZN5Print5printEji
+ 0x00001a10 0x22 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001a10 Print::print(unsigned int, int)
+ .text._ZN5Print5printEhi
+ 0x00001a32 0x24 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001a32 Print::print(unsigned char, int)
+ .text._ZN5Print5printEli
+ 0x00001a56 0x6c ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001a56 Print::print(long, int)
+ .text._ZN5Print5printEii
+ 0x00001ac2 0x26 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001ac2 Print::print(int, int)
+ .text._ZN5Print5printEci
+ 0x00001ae8 0x28 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001ae8 Print::print(char, int)
+ .text._ZN5Print7printlnEv
+ 0x00001b10 0x2e ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001b10 Print::println()
+ .text._ZN5Print7printlnEmi
+ 0x00001b3e 0x16 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001b3e Print::println(unsigned long, int)
+ .text._ZN5Print7printlnEji
+ 0x00001b54 0x32 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001b54 Print::println(unsigned int, int)
+ .text._ZN5Print7printlnEhi
+ 0x00001b86 0x34 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001b86 Print::println(unsigned char, int)
+ .text._ZN5Print7printlnEPKc
+ 0x00001bba 0x16 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001bba Print::println(char const*)
+ .text._ZN5Print7printlnERK6String
+ 0x00001bd0 0x16 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001bd0 Print::println(String const&)
+ .text._ZN5Print7printlnEli
+ 0x00001be6 0x16 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001be6 Print::println(long, int)
+ .text._ZN5Print7printlnEii
+ 0x00001bfc 0x36 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001bfc Print::println(int, int)
+ .text._ZN5Print7printlnEci
+ 0x00001c32 0x38 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001c32 Print::println(char, int)
+ .text._ZN5Print10printFloatEdh
+ 0x00001c6a 0x118 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001c6a Print::printFloat(double, unsigned char)
+ .text._ZN5Print5printEdi
+ 0x00001d82 0x6 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001d82 Print::print(double, int)
+ .text._ZN5Print7printlnEdi
+ 0x00001d88 0x16 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00001d88 Print::println(double, int)
+ .text._ZNK6String6charAtEj
+ 0x00001d9e 0x10 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001d9e String::charAt(unsigned int) const
+ .text._ZN6String9setCharAtEjc
+ 0x00001dae 0x22 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001dae String::setCharAt(unsigned int, char)
+ .text._ZN6StringixEj
+ 0x00001dd0 0x2a ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001dd0 String::operator[](unsigned int)
+ .text._ZNK6StringixEj
+ 0x00001dfa 0x10 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001dfa String::operator[](unsigned int) const
+ .text._ZN6String5toIntEv
+ 0x00001e0a 0xc ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001e0a String::toInt()
+ .text._ZN6String11toCharArrayEPcj
+ 0x00001e16 0x44 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001e16 String::toCharArray(char*, unsigned int)
+ .text._ZN6String8getBytesEPhj
+ 0x00001e5a 0x44 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001e5a String::getBytes(unsigned char*, unsigned int)
+ .text._ZN6StringD1Ev
+ 0x00001e9e 0x20 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001e9e String::~String()
+ .text._ZNK6String10startsWithERKS_j
+ 0x00001ebe 0x3c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001ebe String::startsWith(String const&, unsigned int) const
+ .text._ZNK6String10startsWithERKS_
+ 0x00001efa 0x26 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001efa String::startsWith(String const&) const
+ .text._ZNK6String11lastIndexOfEcj
+ 0x00001f20 0x6e ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001f20 String::lastIndexOf(char, unsigned int) const
+ .text._ZNK6String11lastIndexOfEc
+ 0x00001f8e 0x10 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001f8e String::lastIndexOf(char) const
+ .text._ZNK6String7indexOfERKS_j
+ 0x00001f9e 0x3c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001f9e String::indexOf(String const&, unsigned int) const
+ .text._ZNK6String7indexOfERKS_
+ 0x00001fda 0xa ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001fda String::indexOf(String const&) const
+ .text._ZNK6String7indexOfEcj
+ 0x00001fe4 0x3c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00001fe4 String::indexOf(char, unsigned int) const
+ .text._ZNK6String7indexOfEc
+ 0x00002020 0xa ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002020 String::indexOf(char) const
+ .text._ZNK6String6equalsERKS_
+ 0x0000202a 0x32 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000202a String::equals(String const&) const
+ .text._ZNK6String8endsWithERKS_
+ 0x0000205c 0x3a ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000205c String::endsWith(String const&) const
+ .text._ZNK6StringgeERKS_
+ 0x00002096 0x28 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002096 String::operator>=(String const&) const
+ .text._ZNK6StringleERKS_
+ 0x000020be 0x22 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000020be String::operator<=(String const&) const
+ .text._ZNK6StringgtERKS_
+ 0x000020e0 0x22 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000020e0 String::operator>(String const&) const
+ .text._ZNK6StringltERKS_
+ 0x00002102 0x24 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002102 String::operator<(String const&) const
+ .text._ZNK6StringneERKS_
+ 0x00002126 0x30 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002126 String::operator!=(String const&) const
+ .text._ZNK6StringeqERKS_
+ 0x00002156 0x34 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002156 String::operator==(String const&) const
+ .text._ZNK6String9compareToERKS_
+ 0x0000218a 0x12 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000218a String::compareTo(String const&) const
+ .text._ZN6StringpLERKS_
+ 0x0000219c 0x70 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000219c String::operator+=(String const&)
+ .text._ZN6String6concatERKS_
+ 0x0000220c 0x6 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000220c String::concat(String const&)
+ .text._ZN6String9getBufferEj
+ 0x00002212 0x28 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002212 String::getBuffer(unsigned int)
+ .text._ZN6StringaSERKS_
+ 0x0000223a 0x60 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000223a String::operator=(String const&)
+ .text._ZN6StringC1Eh
+ 0x0000229a 0x34 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000229a String::String(unsigned char)
+ .text._ZN6StringC2Eh
+ 0x000022ce 0x34 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000022ce String::String(unsigned char)
+ .text._ZN6StringC1Ec
+ 0x00002302 0x34 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002302 String::String(char)
+ .text._ZN6StringC2Ec
+ 0x00002336 0x34 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002336 String::String(char)
+ .text._ZN6StringC1ERKS_
+ 0x0000236a 0x36 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000236a String::String(String const&)
+ .text._ZN6StringC2ERKS_
+ 0x000023a0 0x36 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000023a0 String::String(String const&)
+ .text._ZN6StringC1Emi
+ 0x000023d6 0x7e ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000023d6 String::String(unsigned long, int)
+ .text._ZN6StringC2Emi
+ 0x00002454 0x7e ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002454 String::String(unsigned long, int)
+ .text._ZN6StringC1Eji
+ 0x000024d2 0x7c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000024d2 String::String(unsigned int, int)
+ .text._ZN6StringC2Eji
+ 0x0000254e 0x7c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000254e String::String(unsigned int, int)
+ .text._ZN6StringC1EPKc
+ 0x000025ca 0x50 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000025ca String::String(char const*)
+ .text._ZNK6String11toUpperCaseEv
+ 0x0000261a 0x76 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000261a String::toUpperCase() const
+ .text._ZNK6String11toLowerCaseEv
+ 0x00002690 0x76 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002690 String::toLowerCase() const
+ .text._ZNK6String16equalsIgnoreCaseERKS_
+ 0x00002706 0x98 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002706 String::equalsIgnoreCase(String const&) const
+ .text._ZNK6String9substringEjj
+ 0x0000279e 0x6e ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000279e String::substring(unsigned int, unsigned int) const
+ .text._ZNK6String9substringEj
+ 0x0000280c 0x18 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x0000280c String::substring(unsigned int) const
+ .text._ZNK6String11lastIndexOfERKS_j
+ 0x00002824 0xc8 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002824 String::lastIndexOf(String const&, unsigned int) const
+ .text._ZNK6String11lastIndexOfERKS_
+ 0x000028ec 0x1c ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000028ec String::lastIndexOf(String const&) const
+ .text._ZNK6String4trimEv
+ 0x00002908 0xdc ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002908 String::trim() const
+ .text._ZN6String7replaceERKS_S1_
+ 0x000029e4 0x136 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x000029e4 String::replace(String const&, String const&)
+ .text._ZN6String7replaceEcc
+ 0x00002b1a 0x86 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002b1a String::replace(char, char)
+ .text._ZN6StringC2EPKc
+ 0x00002ba0 0x50 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002ba0 String::String(char const*)
+ .text._ZN6StringC1Eli
+ 0x00002bf0 0x7a ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002bf0 String::String(long, int)
+ .text._ZN6StringC2Eli
+ 0x00002c6a 0x7a ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002c6a String::String(long, int)
+ .text._ZN6StringC1Eii
+ 0x00002ce4 0x78 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002ce4 String::String(int, int)
+ .text._ZN6StringC2Eii
+ 0x00002d5c 0x78 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x00002d5c String::String(int, int)
+ .text.libgcc 0x00002dd4 0x26 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ 0x00002dd4 __divmodhi4
+ 0x00002dd4 _div
+ .text.libgcc 0x00002dfa 0x44 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ 0x00002dfa __udivmodsi4
+ .text.libgcc 0x00002e3e 0x36 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ 0x00002e3e __divmodsi4
+ .text.libgcc 0x00002e74 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ .text.libgcc 0x00002e74 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x00002e74 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ .text.libgcc 0x00002e74 0x28 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ 0x00002e74 __udivmodhi4
+ .text.libgcc 0x00002e9c 0x38 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ 0x00002e9c __prologue_saves__
+ .text.libgcc 0x00002ed4 0x36 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ 0x00002ed4 __epilogue_restores__
+ .text.libgcc 0x00002f0a 0xc /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ 0x00002f0a __tablejump2__
+ 0x00002f0e __tablejump__
+ .text.avr-libc.fplib
+ 0x00002f16 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ 0x00002f16 sin
+ .text.avr-libc.fplib
+ 0x00002f22 0x50 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ 0x00002f24 __fp_rempio2
+ .text.avr-libc.fplib
+ 0x00002f72 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ 0x00002f72 __fp_sinus
+ .text.avr-libc.fplib
+ 0x00002f94 0x44 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ 0x00002f94 __fp_split3
+ 0x00002fa4 __fp_splitA
+ .text.avr-libc.fplib
+ 0x00002fd8 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ 0x00002ff2 __addsf3x
+ .text.avr-libc.fplib
+ 0x00003098 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ 0x00003098 __fp_inf
+ .text.avr-libc.fplib
+ 0x000030a4 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ 0x000030a4 __fp_mpack
+ 0x000030a8 __fp_mpack_finite
+ .text.avr-libc.fplib
+ 0x000030c0 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ 0x000030c0 __fp_nan
+ .text.avr-libc.fplib
+ 0x000030c6 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ 0x000030c6 __fp_powsodd
+ .text.avr-libc.fplib
+ 0x000030e8 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ 0x000030e8 __fp_pscA
+ .text.avr-libc.fplib
+ 0x000030f6 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ 0x000030f6 __fp_pscB
+ .text.avr-libc.fplib
+ 0x00003104 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ 0x00003104 __fp_round
+ .text.avr-libc.fplib
+ 0x00003126 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ 0x00003126 __fp_zero
+ 0x00003128 __fp_szero
+ .text.avr-libc.fplib
+ 0x00003134 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ 0x00003134 __fp_powser
+ .text.avr-libc.fplib
+ 0x0000317e 0xc2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ 0x00003192 __mulsf3x
+ 0x00003196 __mulsf3_pse
+ .text.avr-libc
+ 0x00003240 0x20a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ 0x00003240 malloc
+ 0x0000339a free
+ .text.avr-libc
+ 0x0000344a 0x1b8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ 0x0000344a realloc
+ .text.avr-libc
+ 0x00003602 0x4e /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ 0x00003602 atol
+ .text.avr-libc
+ 0x00003650 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ 0x00003650 isspace
+ .text.avr-libc
+ 0x00003660 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ 0x00003660 tolower
+ .text.avr-libc
+ 0x00003670 0x10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ 0x00003670 toupper
+ .text.avr-libc
+ 0x00003680 0x12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ 0x00003680 memcpy
+ .text.avr-libc
+ 0x00003692 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ 0x00003692 strcat
+ .text.avr-libc
+ 0x000036a8 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ 0x000036a8 strchr
+ .text.avr-libc
+ 0x000036be 0x12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ 0x000036be strcmp
+ .text.avr-libc
+ 0x000036d0 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ 0x000036d0 strcpy
+ .text.avr-libc
+ 0x000036de 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ 0x000036de strncmp
+ .text.avr-libc
+ 0x000036fa 0x1e /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ 0x000036fa strncpy
+ .text.avr-libc
+ 0x00003718 0x16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ 0x00003718 strrchr
+ .text.avr-libc
+ 0x0000372e 0x34 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ 0x0000372e strstr
+ .text.avr-libc
+ 0x00003762 0x42 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ 0x00003762 itoa
+ .text.avr-libc
+ 0x000037a4 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ 0x000037a4 ltoa
+ .text.avr-libc
+ 0x0000380c 0x2a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ 0x0000380c __mulsi_const_10
+ .text.avr-libc
+ 0x00003836 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ 0x00003836 ultoa
+ .text.avr-libc
+ 0x00003880 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ 0x00003880 __ctype_isfalse
+ 0x00003884 __ctype_istrue
+ .text.avr-libc
+ 0x00003886 0x20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ 0x00003886 strrev
+ 0x000038a6 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x000038a6 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ 0x000038a6 exit
+ 0x000038a6 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x000038a6 0x4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x000038aa _etext = .
+
+.data 0x00800200 0x152 load address 0x000038aa
+ 0x00800200 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800200 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ .data 0x00800200 0x13 obj/Debug/main.o
+ .data 0x00800213 0x0 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ .data 0x00800213 0x2 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ .data 0x00800215 0x1 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ .data 0x00800216 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ .data 0x00800216 0x8 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ 0x00800216 __thenan_sf
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_pack_sf.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_unpack_sf.o)
+ .data 0x0080021e 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fpcmp_parts_sf.o)
+ .data 0x0080021e 0x100 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ 0x0080021e __clz_tab
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ .data 0x0080031e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ .data 0x0080031e 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ 0x0080031e __malloc_margin
+ 0x00800320 __malloc_heap_start
+ 0x00800322 __malloc_heap_end
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ .data 0x00800324 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ .rodata._ZTV14HardwareSerial
+ 0x00800324 0x12 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00800324 vtable for HardwareSerial
+ .rodata._ZTV6Stream
+ 0x00800336 0x12 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00800336 vtable for Stream
+ .rodata._ZTV5Print
+ 0x00800348 0xa ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x00800348 vtable for Print
+ *(.gnu.linkonce.d*)
+ 0x00800352 . = ALIGN (0x2)
+ 0x00800352 _edata = .
+ 0x00800352 PROVIDE (__data_end, .)
+
+.bss 0x00800352 0x465
+ 0x00800352 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800352 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ .bss 0x00800352 0x204 obj/Debug/main.o
+ 0x00800352 dd
+ 0x00800552 loopCount
+ 0x00800554 sample
+ .bss 0x00800556 0x0 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ .bss 0x00800556 0x0 ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ .bss 0x00800556 0x0 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_pack_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_unpack_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fpcmp_parts_sf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ .bss 0x00800556 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ *(.bss*)
+ .bss.rx_buffer
+ 0x00800556 0x84 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00800556 rx_buffer
+ .bss.rx_buffer1
+ 0x008005da 0x84 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x008005da rx_buffer1
+ .bss.rx_buffer2
+ 0x0080065e 0x84 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x0080065e rx_buffer2
+ .bss.rx_buffer3
+ 0x008006e2 0x84 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x008006e2 rx_buffer3
+ .bss.Serial 0x00800766 0x13 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00800766 Serial
+ .bss.Serial1 0x00800779 0x13 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x00800779 Serial1
+ .bss.Serial2 0x0080078c 0x13 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x0080078c Serial2
+ .bss.Serial3 0x0080079f 0x13 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0x0080079f Serial3
+ .bss._ZZN6StringixEjE19dummy_writable_char
+ 0x008007b2 0x1 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ *(COMMON)
+ COMMON 0x008007b3 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ 0x008007b3 __brkval
+ 0x008007b5 __flp
+ 0x008007b7 PROVIDE (__bss_end, .)
+ 0x000038aa __data_load_start = LOADADDR (.data)
+ 0x000039fc __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008007b7 0x0
+ 0x008007b7 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008007b7 PROVIDE (__noinit_end, .)
+ 0x008007b7 _end = .
+ 0x008007b7 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x8310
+ *(.stab)
+ .stab 0x00000000 0x768 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ .stab 0x00000768 0x75c obj/Debug/main.o
+ 0x768 (size before relaxing)
+ .stab 0x00000ec4 0xef4 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ 0xf00 (size before relaxing)
+ .stab 0x00001db8 0xffc ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ 0x1008 (size before relaxing)
+ .stab 0x00002db4 0x2250 ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ 0x225c (size before relaxing)
+ .stab 0x00005004 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ 0x84 (size before relaxing)
+ .stab 0x0000507c 0x21c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ 0x228 (size before relaxing)
+ .stab 0x00005298 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ 0x108 (size before relaxing)
+ .stab 0x00005394 0x1d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ 0x1e0 (size before relaxing)
+ .stab 0x00005568 0x4bc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ 0x4c8 (size before relaxing)
+ .stab 0x00005a24 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ 0x84 (size before relaxing)
+ .stab 0x00005a9c 0xe4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00005b80 0x54 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ 0x60 (size before relaxing)
+ .stab 0x00005bd4 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ 0x108 (size before relaxing)
+ .stab 0x00005cd0 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ 0x90 (size before relaxing)
+ .stab 0x00005d54 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ 0x90 (size before relaxing)
+ .stab 0x00005dd8 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ 0x108 (size before relaxing)
+ .stab 0x00005ed4 0x90 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ 0x9c (size before relaxing)
+ .stab 0x00005f64 0x1ec /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ 0x1f8 (size before relaxing)
+ .stab 0x00006150 0x4d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ 0x4e0 (size before relaxing)
+ .stab 0x00006624 0x6f0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ 0x6fc (size before relaxing)
+ .stab 0x00006d14 0x3b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ 0x5ac (size before relaxing)
+ .stab 0x000070c8 0x1e0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ 0x1ec (size before relaxing)
+ .stab 0x000072a8 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00007344 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ 0xa8 (size before relaxing)
+ .stab 0x000073e0 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ 0xa8 (size before relaxing)
+ .stab 0x0000747c 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ 0x90 (size before relaxing)
+ .stab 0x00007500 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ 0xa8 (size before relaxing)
+ .stab 0x0000759c 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00007638 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ 0x90 (size before relaxing)
+ .stab 0x000076bc 0x6c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ 0x78 (size before relaxing)
+ .stab 0x00007728 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ 0xcc (size before relaxing)
+ .stab 0x000077e8 0xcc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ 0xd8 (size before relaxing)
+ .stab 0x000078b4 0x9c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ 0xa8 (size before relaxing)
+ .stab 0x00007950 0x150 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ 0x15c (size before relaxing)
+ .stab 0x00007aa0 0x1b0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ 0x1bc (size before relaxing)
+ .stab 0x00007c50 0x294 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ 0x2a0 (size before relaxing)
+ .stab 0x00007ee4 0x114 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ 0x120 (size before relaxing)
+ .stab 0x00007ff8 0x1e0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ 0x1ec (size before relaxing)
+ .stab 0x000081d8 0x60 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ 0x6c (size before relaxing)
+ .stab 0x00008238 0xd8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ 0xe4 (size before relaxing)
+
+.stabstr 0x00000000 0x6497
+ *(.stabstr)
+ .stabstr 0x00000000 0x6497 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.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/Debug/electic_streaming.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+HardwareSerial::HardwareSerial(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) ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+HardwareSerial::HardwareSerial(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) ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+HardwareSerial::available() ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::begin(long) ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::end() ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+HardwareSerial::flush() ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+HardwareSerial::peek() ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+HardwareSerial::read() ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+HardwareSerial::write(unsigned char) ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+Print::print(String const&) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(char const*) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(char, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(double, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(int, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(long, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(unsigned char, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(unsigned int, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::print(unsigned long, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::printFloat(double, unsigned char) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::printNumber(unsigned long, unsigned char) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println() ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(String const&) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(char const*) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ obj/Debug/main.o
+Print::println(char, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(double, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(int, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(long, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(unsigned char, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(unsigned int, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::println(unsigned long, int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+Print::write(char const*) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+Print::write(unsigned char const*, unsigned int) ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+Serial ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+Serial1 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+Serial2 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+Serial3 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+String::String(String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(char const*) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(char const*) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(int, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(int, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(long, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(long, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned int, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned int, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned long, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::String(unsigned long, int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::charAt(unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::compareTo(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::concat(String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::endsWith(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::equals(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::equalsIgnoreCase(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::getBuffer(unsigned int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::getBytes(unsigned char*, unsigned int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::indexOf(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::indexOf(String const&, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::indexOf(char) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::indexOf(char, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::lastIndexOf(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::lastIndexOf(String const&, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::lastIndexOf(char) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::lastIndexOf(char, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator!=(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator+=(String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator<(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator<=(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator=(String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator==(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator>(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator>=(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator[](unsigned int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::operator[](unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+String::replace(String const&, String const&) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::replace(char, char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::setCharAt(unsigned int, char) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::startsWith(String const&) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::startsWith(String const&, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::substring(unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::substring(unsigned int, unsigned int) const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::toCharArray(char*, unsigned int) ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::toInt() ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::toLowerCase() const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::toUpperCase() const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::trim() const ../arduino_libs/core0022_2560.a(WString.cpp.o)
+String::~String() ../arduino_libs/core0022_2560.a(WString.cpp.o)
+__addsf3 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ obj/Debug/main.o
+__addsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__brkval /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__bss_end /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+__clz_tab /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+__clzsi2 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clzsi2.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+__ctors_end /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+__ctype_isfalse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+__ctype_istrue /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(cty_isfalse.o)
+__cxa_pure_virtual ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+__data_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__data_load_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__data_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__divmodhi4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+ obj/Debug/main.o
+__divmodsi4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+__divsf3 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ obj/Debug/main.o
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clear_bss.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+__do_copy_data /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_clz.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ obj/Debug/main.o
+__do_global_ctors /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+__epilogue_restores__ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ obj/Debug/main.o
+__fixunssfsi /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__floatsisf /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__floatunsisf /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__flp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__fp_inf /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+__fp_mpack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+__fp_mpack_finite /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+__fp_nan /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+__fp_powser /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+__fp_powsodd /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+__fp_pscA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+__fp_pscB /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+__fp_rempio2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+__fp_round /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+__fp_sinus /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+__fp_split3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+__fp_splitA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_rempio2.o)
+__fp_szero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+__fp_zero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(addsf3x.o)
+__fpcmp_parts_f /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fpcmp_parts_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+__gesf2 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__heap_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__ltsf2 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__malloc_heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+__malloc_heap_start /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+__malloc_margin /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+__mulsf3 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powsodd.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+ obj/Debug/main.o
+__mulsf3_pse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+__mulsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(fp_powser.o)
+__mulsi_const_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+__pack_f /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_usi_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_si_to_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__subsf3 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_fixunssfsi.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__tablejump2__ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_2560.a(Print.cpp.o)
+__unpack_f /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_lt_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_ge_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_addsub_sf.o)
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_11 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_17 obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_18 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_25 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_26 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_27 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_28 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_29 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_30 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_31 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_32 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_33 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_34 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_35 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_36 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_37 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_38 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_39 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_40 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_41 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_42 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_43 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_44 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_45 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_46 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_47 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_48 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_49 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_50 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_51 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_52 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_53 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_54 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_55 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_56 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+_div /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+atol /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(atol.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+dd obj/Debug/main.o
+exit /usr/lib/gcc/avr/4.3.5/avr6/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+fill_sinewave() obj/Debug/main.o
+free /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+isspace /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(isspace.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+itoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+loopCount obj/Debug/main.o
+ltoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+main obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/crtm2560.o
+malloc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(malloc.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+memcpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(memcpy.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+realloc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(realloc.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+rx_buffer ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+rx_buffer1 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+rx_buffer2 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+rx_buffer3 ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+sample obj/Debug/main.o
+sin /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libm.a(sin.o)
+ obj/Debug/main.o
+strcat /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcat.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strchr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strchr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strcmp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcmp.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strcpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strcpy.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strncmp /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncmp.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strncpy /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strncpy.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strrchr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrchr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+strrev /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strrev.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ltoa.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(itoa.o)
+strstr /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(strstr.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+tolower /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(tolower.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+toupper /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(toupper.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+ultoa /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr6/libc.a(ultoa.o)
+ ../arduino_libs/core0022_2560.a(WString.cpp.o)
+vtable for HardwareSerial ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
+vtable for Print ../arduino_libs/core0022_2560.a(Print.cpp.o)
+vtable for Stream ../arduino_libs/core0022_2560.a(HardwareSerial.cpp.o)
diff --git a/electic_streaming2560/bin/Release/electic_streaming.elf b/electic_streaming2560/bin/Release/electic_streaming.elf
new file mode 100755
index 0000000..be0b7e9
--- /dev/null
+++ b/electic_streaming2560/bin/Release/electic_streaming.elf
Binary files differ
diff --git a/electic_streaming2560/bin/Release/electic_streaming.elf.eep.hex b/electic_streaming2560/bin/Release/electic_streaming.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/electic_streaming2560/bin/Release/electic_streaming.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/electic_streaming2560/bin/Release/electic_streaming.elf.hex b/electic_streaming2560/bin/Release/electic_streaming.elf.hex
new file mode 100644
index 0000000..d3fe242
--- /dev/null
+++ b/electic_streaming2560/bin/Release/electic_streaming.elf.hex
@@ -0,0 +1,328 @@
+:100000000C9444000C946C000C946C000C946C00E8
+:100010000C946C000C946C000C946C000C946C00B0
+:100020000C946C000C946C000C946C000C946E009E
+:100030000C946C000C946C000C946C000C946C0090
+:100040000C946C000C946C000C9460030C946C0089
+:100050000C946C000C946C000C946C000C946C0070
+:100060000C946C000C946C0005A84CCDB2D44EB925
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803F3E0111241FBECFEFD8E02C
+:10009000DEBFCDBF11E0A0E0B1E0E4E3F4E102C0D7
+:1000A00005900D92A232B107D9F713E0A2E2B1E0B8
+:1000B00001C01D92AC3AB107E1F710E0C8E8D0E00A
+:1000C00004C02297FE010E947F08C638D107C9F7F5
+:1000D0000E9402010C94180A0C9400001F920F92C7
+:1000E0000FB60F9211242F933F934F935F936F930B
+:1000F0007F938F939F93AF93BF93CF93DF93EF93B0
+:10010000FF9385B190E2892785B9C0E0D0E0E09106
+:100110002403F0912503EE5DFE4F86E293E06081BB
+:100120000E9445018091240390912503019660E08F
+:1001300072E00E94E20790932503809324032196A6
+:1001400081E0C034D80719F786E293E060E00E94AE
+:100150004501FF91EF91DF91CF91BF91AF919F91B9
+:100160008F917F916F915F914F913F912F910F9060
+:100170000FBE0F901F901895AF92BF92CF92DF9253
+:10018000EF92FF920F931F93CF93DF93C2E2D1E0E0
+:100190000F2EF0E0AF2EF0E0BF2EF0E0CF2EF0E01B
+:1001A000DF2EF02DC601B5010E9483087B018C0172
+:1001B000C601B50128ED3FE049E45CE30E941A0561
+:1001C0005B016C01C801B70120E030E04EEF52E462
+:1001D0000E94470520E030E040E053E40E941A0509
+:1001E0000E944106699383E0C232D807D9F6DF91B5
+:1001F000CF911F910F91FF90EF90DF90CF90BF9024
+:10020000AF9008951F930E94BC0086E293E040E007
+:1002100052EC61E070E00E945201259A80E285B9BB
+:100220008091810088608093810080916F0082605E
+:1002300080936F0086E891E0909389008093880016
+:10024000789410E286E293E00E944F011816190696
+:10025000CCF785B1812785B986E293E00E944C01F5
+:10026000813681F786E293E060E071E00E94A601AA
+:1002700080918100856080938100E4CF87E191E0E7
+:1002800090932703809326030895862F0E941F03CF
+:1002900008950E94570308950E94380308950E940C
+:1002A00027030895CB01BA010E94E6020895DC01FC
+:1002B000ED91FC910190F081E02D09950895DC010C
+:1002C000ED91FC910190F081E02D099508950F9337
+:1002D0001F93CF93DF938C01EB0109C02196D801C6
+:1002E000ED91FC910190F081E02DC80109956881A4
+:1002F0006623A1F7DF91CF911F910F9108950F937E
+:100300001F938C01DC01ED91FC910190F081E02DB7
+:100310006DE00995D801ED91FC910190F081E02DFF
+:100320006AE0C80109951F910F9108950F931F93DB
+:100330008C01DC01ED91FC910190F081E02D09959B
+:10034000C8010E947F011F910F9108950F931F9381
+:100350008C010E946701C8010E947F011F910F91CB
+:1003600008950F931F938C01DC01ED91FC91019096
+:10037000F081E02D0995C8010E947F011F910F9126
+:1003800008952F923F924F925F926F927F928F9239
+:100390009F92AF92BF92CF92DF92EF92FF920F9314
+:1003A0001F93DF93CF93CDB7DEB7A0970FB6F89426
+:1003B000DEBF0FBECDBF1C016A017B014115510597
+:1003C0006105710549F4DC01ED91FC910190F0812A
+:1003D000E02D60E3099554C0882499245401422EED
+:1003E00055246624772401E010E00C0F1D1F080D32
+:1003F000191DC701B601A30192010E94F507F8017A
+:1004000060830894811C911CA11CB11CC701B6011A
+:10041000A30192010E94F507C901DA016C017D0177
+:10042000C114D104E104F104F1F681E0E82EF12CCD
+:10043000EC0EFD1EE80CF91C3E010894611C711CB9
+:10044000D501C4010197A109B1096C01C818D908E7
+:1004500014C0F601EE0DFF1D60816A3010F4605D7E
+:1004600001C0695CD101ED91FC910190F081E02D1A
+:10047000C10109950894E108F1086E147F0449F759
+:10048000A0960FB6F894DEBF0FBECDBFCF91DF911F
+:100490001F910F91FF90EF90DF90CF90BF90AF90A2
+:1004A0009F908F907F906F905F904F903F902F9094
+:1004B00008952AE00E94C10108950F931F938C01B3
+:1004C0000E945902C8010E947F011F910F91089557
+:1004D000AB0160E070E00E94590208950F931F93F2
+:1004E0008C01AB0160E070E00E945902C8010E94DB
+:1004F0007F011F910F910895EF92FF920F931F9329
+:10050000CF93DF93EC017A018B0177FF0FC0E88175
+:10051000F9810190F081E02D6DE20995109500952B
+:10052000F094E094E11CF11C011D111D2AE0B801BA
+:10053000A701CE010E94C101DF91CF911F910F91C0
+:10054000FF90EF9008950F931F938C010E947C02FF
+:10055000C8010E947F011F910F910895AB0166278A
+:1005600057FD6095762F0E947C0208950F931F938C
+:100570008C01AB01662757FD6095762F0E947C02A7
+:10058000C8010E947F011F910F910895DC01211580
+:10059000310541F4ED91FC910190F081E02D642F43
+:1005A000099508952A30310519F40E947C020895B6
+:1005B0000E94C10108950F931F938C010E94C602EF
+:1005C000C8010E947F011F910F910895EF92FF9241
+:1005D0000F931F937B018C0122E030E040E050E05C
+:1005E0000E941708205C3D4B404F5F4FCA01B90184
+:1005F000A80197010E941708C901DA010197A10912
+:10060000B109292F3A2F4B2F552747FD5A950196AF
+:10061000A11DB11D2093C50081508093C400E1EC61
+:10062000F0E0808180618083808188608083808128
+:10063000806880831F910F91FF90EF900895982F0D
+:100640008091C00085FFFCCF9093C60008958091F3
+:1006500028039091290380589F4F20912A033091BD
+:100660002B03821B930B60E870E00E94E207089561
+:1006700040912A0350912B038091280390912903E4
+:100680008417950719F42FEF3FEF0FC0FA01E45DCF
+:10069000FC4F2081CA01019660E870E00E94E207E9
+:1006A00090932B0380932A0330E0C9010895809131
+:1006B0002A0390912B039093290380932803089594
+:1006C0001F920F920FB60F9211242F933F934F93C7
+:1006D0005F936F937F938F939F93AF93BF93EF93AA
+:1006E000FF934091C600E0912803F0912903CF01C8
+:1006F000019660E870E00E94E2079C0180912A0365
+:1007000090912B032817390739F0E45DFC4F4083A3
+:100710003093290320932803FF91EF91BF91AF916C
+:100720009F918F917F916F915F914F913F912F9109
+:100730000F900FBE0F901F901895A0E0B0E0E3EA75
+:10074000F3E00C944608DC012B01FA019C919230F5
+:1007500008F439C1EB018881823008F433C1943048
+:1007600069F4843009F02FC111969C911197898109
+:10077000981709F428C1A9E1B1E025C1843009F432
+:1007800021C18230A9F4923009F01DC19A01AD0156
+:1007900088E0EA010990AE01E90109929E018150C9
+:1007A000C1F7E201898111969C918923818308C157
+:1007B000923009F407C112962D903C901397EB01EB
+:1007C0008A819B811496AD90BD90CD90DC90179757
+:1007D000EC80FD800E811F819101281B390BB9012E
+:1007E00037FF04C066277727621B730B60327105E1
+:1007F0000CF061C0121613066CF537014801062E85
+:1008000004C096948794779467940A94D2F721E071
+:1008100030E040E050E004C0220F331F441F551F5A
+:100820006A95D2F721503040404050402E213F2160
+:1008300040235123211531054105510521F021E0C7
+:1008400030E040E050E079018A01E628F7280829E5
+:1008500019293CC0232BD1F1260E371E3501460144
+:10086000062E04C096948794779467940A94D2F7DE
+:1008700021E030E040E050E004C0220F331F441F6D
+:10088000551F6A95D2F721503040404050402A21F0
+:100890003B214C215D21211531054105510521F0F8
+:1008A00021E030E040E050E059016A01A628B72875
+:1008B000C828D9280BC0821593052CF01C01AA2446
+:1008C000BB24650103C0EE24FF24870111969C918F
+:1008D000D20111968C91981709F445C0992339F0EB
+:1008E000A80197012A193B094C095D0906C0A60118
+:1008F00095012E193F09400B510B57FD08C011827D
+:100900003382228224833583468357831DC081E04E
+:1009100081833382228288279927DC01821B930BF3
+:10092000A40BB50B84839583A683B7830DC0220FD8
+:10093000331F441F551F2483358346835783828189
+:1009400093810197938382832481358146815781E6
+:10095000DA01C9010197A109B1098F5F9F4FAF4F1C
+:10096000BF4328F30BC0918333822282EA0CFB1C25
+:100970000C1D1D1DE482F5820683178383E08083AE
+:10098000248135814681578157FF1AC0C901AA27A2
+:1009900097FDA095BA2F81709070A070B070569599
+:1009A000479537952795822B932BA42BB52B8483C2
+:1009B0009583A683B78382819381019693838283F3
+:1009C000DF0101C0D201CD01CDB7DEB7E2E10C9469
+:1009D0006208A0E2B0E0EFEEF4E00C945208698304
+:1009E0007A838B839C832D833E834F835887E9E0F2
+:1009F000EE2EF12CEC0EFD1ECE010196B7010E94E9
+:100A00006A078E010F5E1F4FCE010596B8010E9446
+:100A10006A078A8991E089278A8BC701B801AE01EC
+:100A2000475E5F4F0E949D030E949506A096E6E0F8
+:100A30000C946E08A0E2B0E0E0E2F5E00C945208FD
+:100A400069837A838B839C832D833E834F8358876E
+:100A5000F9E0EF2EF12CEC0EFD1ECE010196B70150
+:100A60000E946A078E010F5E1F4FCE010596B801E6
+:100A70000E946A07C701B801AE01475E5F4F0E943E
+:100A80009D030E949506A096E6E00C946E08A0E2F5
+:100A9000B0E0EDE4F5E00C94460869837A838B833B
+:100AA0009C832D833E834F835887CE010196BE01E0
+:100AB000675F7F4F0E946A07CE010596BE016F5E99
+:100AC0007F4F0E946A079985923088F08989823029
+:100AD000C8F0943019F4823051F404C0843029F401
+:100AE000923081F489E191E0C6C0923049F420E06F
+:100AF0009A858A89981321E02A87CE010996BBC07E
+:100B0000823049F420E09A858A89981321E02A8B63
+:100B1000CE014196B0C02D843E844F8458886D88A4
+:100B20007E888F88988CEE24FF248701AA24BB241A
+:100B3000650140E050E060E070E0E0E0F0E0C1011D
+:100B400081709070892BE9F0E60CF71C081D191DC7
+:100B50009A01AB012A0D3B1D4C1D5D1D80E090E00C
+:100B6000A0E0B0E0E614F7040805190520F481E0E0
+:100B700090E0A0E0B0E0BA01A901480F591F6A1F38
+:100B80007B1FAA0CBB1CCC1CDD1C97FE08C081E09F
+:100B900090E0A0E0B0E0A82AB92ACA2ADB2A319660
+:100BA000E032F10549F0660C771C881C991C5694BC
+:100BB000479437942794C3CFFA85EA892B893C89D7
+:100BC0008B859C85280F391F2E5F3F4F17C0CA01A8
+:100BD00081709070892B61F016950795F794E794D2
+:100BE00080E090E0A0E0B0E8E82AF92A0A2B1B2B6D
+:100BF00076956795579547952F5F3F4F77FDE7CFE0
+:100C00000CC0440F551F661F771F17FD4160EE0C87
+:100C1000FF1C001F111F21503040403090E0590749
+:100C200090E0690790E4790760F32B8F3C8FDB013C
+:100C3000CA018F779070A070B07080349105A105C3
+:100C4000B10561F447FD0AC0E114F1040105110585
+:100C500029F0405C5F4F6F4F7F4F40781A8EFE1730
+:100C600011F081E08A8F4D8F5E8F6F8F78A383E0C4
+:100C7000898FCE0149960E949506A096E2E10C94D8
+:100C80006208ACE0B0E0E7E4F6E00C945608698353
+:100C90007A838B839C83CE010196BE016B5F7F4F6D
+:100CA0000E946A078D81823061F1823050F1843078
+:100CB00021F48E81882351F12EC02F81388537FD94
+:100CC00020C06E812F3131051CF06623F9F023C05E
+:100CD0008EE190E0821B930B29853A854B855C85DC
+:100CE00004C056954795379527958A95D2F7662380
+:100CF000B1F050954095309521953F4F4F4F5F4F44
+:100D00000EC020E030E040E050E009C02FEF3FEFA0
+:100D10004FEF5FE704C020E030E040E050E8B90169
+:100D2000CA012C96E2E00C947208DF92EF92FF92D7
+:100D30000F931F93FC01E480F58006811781D18019
+:100D40008081823048F480E090E0A0E1B0E0E82AC1
+:100D5000F92A0A2B1B2BA5C0843009F49FC08230CE
+:100D600021F4EE24FF24870105C0E114F1040105FC
+:100D7000110519F4E0E0F0E096C0628173819FEF05
+:100D8000623879070CF05BC022E83FEF261B370B77
+:100D90002A3131052CF020E030E040E050E02AC05C
+:100DA000B801A701022E04C076956795579547951F
+:100DB0000A94D2F781E090E0A0E0B0E004C0880F90
+:100DC000991FAA1FBB1F2A95D2F70197A109B10944
+:100DD0008E219F21A023B1230097A105B10521F009
+:100DE00081E090E0A0E0B0E09A01AB01282B392B24
+:100DF0004A2B5B2BDA01C9018F779070A070B0701D
+:100E000080349105A105B10539F427FF09C0205CA4
+:100E10003F4F4F4F5F4F04C0215C3F4F4F4F5F4FDD
+:100E2000E0E0F0E02030A0E03A07A0E04A07A0E4CC
+:100E30005A0710F0E1E0F0E079018A0127C060383C
+:100E4000710564F5FB01E158FF4FD801C7018F77A9
+:100E50009070A070B07080349105A105B10539F48F
+:100E6000E7FE0DC080E490E0A0E0B0E004C08FE3B6
+:100E700090E0A0E0B0E0E80EF91E0A1F1B1F17FF6C
+:100E800005C016950795F794E794319687E0169577
+:100E90000795F794E7948A95D1F705C0EE24FF24CF
+:100EA0008701EFEFF0E06E2F679566276795902F2B
+:100EB0009F77D794DD24D7948E2F8695492F462B84
+:100EC000582F5D29B701CA011F910F91FF90EF9034
+:100ED000DF900895FC01DB01408151812281622F66
+:100EE0006F7770E0221F2227221F9381892F880F9E
+:100EF000822B282F30E0991F9927991F11969C93D8
+:100F0000119721153105A9F54115510561057105A7
+:100F100011F482E037C082E89FEF13969C938E9382
+:100F200012979A01AB0167E0220F331F441F551F30
+:100F30006A95D1F783E08C930DC0220F331F441FB5
+:100F4000551F12968D919C911397019713969C9320
+:100F50008E931297203080E0380780E0480780E4C5
+:100F6000580758F314962D933D934D935C93179720
+:100F700008952F3F310579F441155105610571053B
+:100F800019F484E08C93089564FF03C081E08C938E
+:100F900012C01C9210C02F57304013963C932E93D2
+:100FA000129783E08C9387E0440F551F661F771FCD
+:100FB0008A95D1F7706414964D935D936D937C93ED
+:100FC0001797089597FB092E07260AD077FD04D0BE
+:100FD00049D006D000201AF4709561957F4F08958E
+:100FE000F6F7909581959F4F0895A1E21A2EAA1BBE
+:100FF000BB1BFD010DC0AA1FBB1FEE1FFF1FA217C9
+:10100000B307E407F50720F0A21BB30BE40BF50BC5
+:10101000661F771F881F991F1A9469F7609570954E
+:10102000809590959B01AC01BD01CF01089597FB80
+:10103000092E05260ED057FD04D0D7DF0AD0001C9C
+:1010400038F450954095309521953F4F4F4F5F4F65
+:101050000895F6F790958095709561957F4F8F4F25
+:101060009F4F0895AA1BBB1B51E107C0AA1FBB1FBE
+:10107000A617B70710F0A61BB70B881F991F5A9524
+:10108000A9F780959095BC01CD0108952F923F92CC
+:101090004F925F926F927F928F929F92AF92BF9288
+:1010A000CF92DF92EF92FF920F931F93CF93DF9334
+:1010B000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE91
+:1010C000CDBF09942A88398848885F846E847D84DE
+:1010D0008C849B84AA84B984C884DF80EE80FD80E0
+:1010E0000C811B81AA81B981CE0FD11D0FB6F89456
+:1010F000DEBF0FBECDBFED010895EE0FFF1F0590BF
+:10110000F491E02D09949F9305D00F9007FCEE5FBA
+:1011100028C0CEC03FD0E8F3E894E0E0BB279F575B
+:10112000F0F02AED3FE049EC06C0EE0FBB0F661F62
+:10113000771F881F28F0B23A62077307840728F0E8
+:10114000B25A620B730B840BE3959A9572F7803851
+:1011500030F49A95BB0F661F771F881FD2F790480F
+:101160009BC0EF93E0FF06C0A2EA2AED3FE049EC06
+:101170005FEB37D0BFD00F90039401FC9058E8E6A6
+:10118000F0E099C057FD9058440F551F59F05F3F4C
+:1011900071F04795880F97FB991F61F09F3F79F099
+:1011A00087950895121613061406551FF2CF46951B
+:1011B000F1DF08C0161617061806991FF1CF86959D
+:1011C000710561050894089587D030F08CD020F027
+:1011D00031F49F3F11F41EF46BC00EF4E095E7FB71
+:1011E00053C0E92FCFDF80F3BA1762077307840774
+:1011F000950718F071F49EF58EC00EF4E0950B2E55
+:10120000BA2FA02D0B01B90190010C01CA01A00158
+:101210001124FF27591B99F0593F50F4503E68F1B3
+:101220001A16F040A22F232F342F4427585FF3CFF4
+:10123000469537952795A795F0405395C9F77EF4C5
+:101240001F16BA0B620B730B840BBAF09150A1F00E
+:10125000FF0FBB1F661F771F881FC2F70EC0BA0F94
+:10126000621F731F841F48F4879577956795B7951C
+:10127000F7959E3F08F0B3CF9395880F08F0992714
+:10128000EE0F97958795089597F99F6780E870E02E
+:1012900060E008959F3F31F0915020F48795779555
+:1012A0006795B795880F911D9695879597F908953D
+:1012B0009FEF80EC08959F938F937F936F93FF939D
+:1012C000EF939B01AC01E3DBEF91FF912BD02F91CA
+:1012D0003F914F915F91DBCB00240A9416161706BD
+:1012E00018060906089500240A9412161306140617
+:1012F00005060895092E0394000C11F4882352F07A
+:10130000BB0F40F4BF2B11F460FF04C06F5F7F4F31
+:101310008F4F9F4F0895E894BB2766277727CB010F
+:1013200097F90895DF93CF931F930F93FF92EF9256
+:10133000DF927B018C01689405C0DA2EEF0121D089
+:10134000FE01E894A5912591359145915591AEF313
+:10135000EF0147DFFE019701A801DA9479F7DF90EA
+:10136000EF90FF900F911F91CF91DF910895B4DF1F
+:1013700028F0B9DF18F0952309F086CF99CF112412
+:10138000CBCF00DFA0F3959FD1F3950F50E0551F11
+:10139000629FF001729FBB27F00DB11D639FAA27CA
+:1013A000F00DB11DAA1F649F6627B00DA11D661F19
+:1013B000829F2227B00DA11D621F739FB00DA11D3A
+:1013C000621F839FA00D611D221F749F3327A00DF4
+:1013D000611D231F849F600D211D822F762F6A2F90
+:1013E00011249F5750408AF0E1F088234AF0EE0F15
+:1013F000FF1FBB1F661F771F881F91505040A9F722
+:101400009E3F510570F040CF87CF5F3FECF3983E91
+:10141000DCF3869577956795B795F795E7959F5F88
+:10142000C1F7FE2B880F911D9695879597F9089522
+:04143000F894FFCF5E
+:1014340057656C636F6D6520746F20656C656374AC
+:101444006963000000000045010000000000000086
+:02145400000096
+:00000001FF
diff --git a/electic_streaming2560/bin/Release/electic_streaming.elf.lss b/electic_streaming2560/bin/Release/electic_streaming.elf.lss
new file mode 100644
index 0000000..06e1adb
--- /dev/null
+++ b/electic_streaming2560/bin/Release/electic_streaming.elf.lss
@@ -0,0 +1,2665 @@
+
+bin/Release/electic_streaming.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000022 00800100 00001434 000014c8 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00001434 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000028a 00800122 00800122 000014ea 2**0
+ ALLOC
+ 3 .stab 00001cd4 00000000 00000000 000014ec 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 0000030d 00000000 00000000 000031c0 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_aranges 00000060 00000000 00000000 000034cd 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_pubnames 000002a7 00000000 00000000 0000352d 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_info 00000d0b 00000000 00000000 000037d4 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_abbrev 000003f7 00000000 00000000 000044df 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_line 00000689 00000000 00000000 000048d6 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame 00000210 00000000 00000000 00004f60 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str 00000420 00000000 00000000 00005170 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc 0000075a 00000000 00000000 00005590 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 6e 00 jmp 0xdc ; 0xdc <__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 60 03 jmp 0x6c0 ; 0x6c0 <__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 <__subsf3>
+ 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: 3e 01 movw r6, 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: e4 e3 ldi r30, 0x34 ; 52
+ 9c: f4 e1 ldi r31, 0x14 ; 20
+ 9e: 02 c0 rjmp .+4 ; 0xa4 <.do_copy_data_start>
+
+000000a0 <.do_copy_data_loop>:
+ a0: 05 90 lpm r0, Z+
+ a2: 0d 92 st X+, r0
+
+000000a4 <.do_copy_data_start>:
+ a4: a2 32 cpi r26, 0x22 ; 34
+ a6: b1 07 cpc r27, r17
+ a8: d9 f7 brne .-10 ; 0xa0 <.do_copy_data_loop>
+
+000000aa <__do_clear_bss>:
+ aa: 13 e0 ldi r17, 0x03 ; 3
+ ac: a2 e2 ldi r26, 0x22 ; 34
+ 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: ac 3a cpi r26, 0xAC ; 172
+ 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_start>
+
+000000c2 <.do_global_ctors_loop>:
+ c2: 22 97 sbiw r28, 0x02 ; 2
+ c4: fe 01 movw r30, r28
+ c6: 0e 94 7f 08 call 0x10fe ; 0x10fe <__tablejump__>
+
+000000ca <.do_global_ctors_start>:
+ ca: c6 38 cpi r28, 0x86 ; 134
+ cc: d1 07 cpc r29, r17
+ ce: c9 f7 brne .-14 ; 0xc2 <.do_global_ctors_loop>
+ d0: 0e 94 02 01 call 0x204 ; 0x204 <main>
+ d4: 0c 94 18 0a jmp 0x1430 ; 0x1430 <_exit>
+
+000000d8 <__bad_interrupt>:
+ d8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000dc <__vector_11>:
+ dc: 1f 92 push r1
+ de: 0f 92 push r0
+ e0: 0f b6 in r0, 0x3f ; 63
+ e2: 0f 92 push r0
+ e4: 11 24 eor r1, r1
+ e6: 2f 93 push r18
+ e8: 3f 93 push r19
+ ea: 4f 93 push r20
+ ec: 5f 93 push r21
+ ee: 6f 93 push r22
+ f0: 7f 93 push r23
+ f2: 8f 93 push r24
+ f4: 9f 93 push r25
+ f6: af 93 push r26
+ f8: bf 93 push r27
+ fa: cf 93 push r28
+ fc: df 93 push r29
+ fe: ef 93 push r30
+ 100: ff 93 push r31
+ 102: 85 b1 in r24, 0x05 ; 5
+ 104: 90 e2 ldi r25, 0x20 ; 32
+ 106: 89 27 eor r24, r25
+ 108: 85 b9 out 0x05, r24 ; 5
+ 10a: c0 e0 ldi r28, 0x00 ; 0
+ 10c: d0 e0 ldi r29, 0x00 ; 0
+ 10e: e0 91 24 03 lds r30, 0x0324
+ 112: f0 91 25 03 lds r31, 0x0325
+ 116: ee 5d subi r30, 0xDE ; 222
+ 118: fe 4f sbci r31, 0xFE ; 254
+ 11a: 86 e2 ldi r24, 0x26 ; 38
+ 11c: 93 e0 ldi r25, 0x03 ; 3
+ 11e: 60 81 ld r22, Z
+ 120: 0e 94 45 01 call 0x28a ; 0x28a <_ZN14HardwareSerial5writeEh>
+ 124: 80 91 24 03 lds r24, 0x0324
+ 128: 90 91 25 03 lds r25, 0x0325
+ 12c: 01 96 adiw r24, 0x01 ; 1
+ 12e: 60 e0 ldi r22, 0x00 ; 0
+ 130: 72 e0 ldi r23, 0x02 ; 2
+ 132: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 136: 90 93 25 03 sts 0x0325, r25
+ 13a: 80 93 24 03 sts 0x0324, r24
+ 13e: 21 96 adiw r28, 0x01 ; 1
+ 140: 81 e0 ldi r24, 0x01 ; 1
+ 142: c0 34 cpi r28, 0x40 ; 64
+ 144: d8 07 cpc r29, r24
+ 146: 19 f7 brne .-58 ; 0x10e <__vector_11+0x32>
+ 148: 86 e2 ldi r24, 0x26 ; 38
+ 14a: 93 e0 ldi r25, 0x03 ; 3
+ 14c: 60 e0 ldi r22, 0x00 ; 0
+ 14e: 0e 94 45 01 call 0x28a ; 0x28a <_ZN14HardwareSerial5writeEh>
+ 152: ff 91 pop r31
+ 154: ef 91 pop r30
+ 156: df 91 pop r29
+ 158: cf 91 pop r28
+ 15a: bf 91 pop r27
+ 15c: af 91 pop r26
+ 15e: 9f 91 pop r25
+ 160: 8f 91 pop r24
+ 162: 7f 91 pop r23
+ 164: 6f 91 pop r22
+ 166: 5f 91 pop r21
+ 168: 4f 91 pop r20
+ 16a: 3f 91 pop r19
+ 16c: 2f 91 pop r18
+ 16e: 0f 90 pop r0
+ 170: 0f be out 0x3f, r0 ; 63
+ 172: 0f 90 pop r0
+ 174: 1f 90 pop r1
+ 176: 18 95 reti
+
+00000178 <_Z13fill_sinewavev>:
+ 178: af 92 push r10
+ 17a: bf 92 push r11
+ 17c: cf 92 push r12
+ 17e: df 92 push r13
+ 180: ef 92 push r14
+ 182: ff 92 push r15
+ 184: 0f 93 push r16
+ 186: 1f 93 push r17
+ 188: cf 93 push r28
+ 18a: df 93 push r29
+ 18c: c2 e2 ldi r28, 0x22 ; 34
+ 18e: d1 e0 ldi r29, 0x01 ; 1
+ 190: 0f 2e mov r0, r31
+ 192: f0 e0 ldi r31, 0x00 ; 0
+ 194: af 2e mov r10, r31
+ 196: f0 e0 ldi r31, 0x00 ; 0
+ 198: bf 2e mov r11, r31
+ 19a: f0 e0 ldi r31, 0x00 ; 0
+ 19c: cf 2e mov r12, r31
+ 19e: f0 e0 ldi r31, 0x00 ; 0
+ 1a0: df 2e mov r13, r31
+ 1a2: f0 2d mov r31, r0
+ 1a4: c6 01 movw r24, r12
+ 1a6: b5 01 movw r22, r10
+ 1a8: 0e 94 83 08 call 0x1106 ; 0x1106 <sin>
+ 1ac: 7b 01 movw r14, r22
+ 1ae: 8c 01 movw r16, r24
+ 1b0: c6 01 movw r24, r12
+ 1b2: b5 01 movw r22, r10
+ 1b4: 28 ed ldi r18, 0xD8 ; 216
+ 1b6: 3f e0 ldi r19, 0x0F ; 15
+ 1b8: 49 e4 ldi r20, 0x49 ; 73
+ 1ba: 5c e3 ldi r21, 0x3C ; 60
+ 1bc: 0e 94 1a 05 call 0xa34 ; 0xa34 <__addsf3>
+ 1c0: 5b 01 movw r10, r22
+ 1c2: 6c 01 movw r12, r24
+ 1c4: c8 01 movw r24, r16
+ 1c6: b7 01 movw r22, r14
+ 1c8: 20 e0 ldi r18, 0x00 ; 0
+ 1ca: 30 e0 ldi r19, 0x00 ; 0
+ 1cc: 4e ef ldi r20, 0xFE ; 254
+ 1ce: 52 e4 ldi r21, 0x42 ; 66
+ 1d0: 0e 94 47 05 call 0xa8e ; 0xa8e <__mulsf3>
+ 1d4: 20 e0 ldi r18, 0x00 ; 0
+ 1d6: 30 e0 ldi r19, 0x00 ; 0
+ 1d8: 40 e0 ldi r20, 0x00 ; 0
+ 1da: 53 e4 ldi r21, 0x43 ; 67
+ 1dc: 0e 94 1a 05 call 0xa34 ; 0xa34 <__addsf3>
+ 1e0: 0e 94 41 06 call 0xc82 ; 0xc82 <__fixsfsi>
+ 1e4: 69 93 st Y+, r22
+ 1e6: 83 e0 ldi r24, 0x03 ; 3
+ 1e8: c2 32 cpi r28, 0x22 ; 34
+ 1ea: d8 07 cpc r29, r24
+ 1ec: d9 f6 brne .-74 ; 0x1a4 <_Z13fill_sinewavev+0x2c>
+ 1ee: df 91 pop r29
+ 1f0: cf 91 pop r28
+ 1f2: 1f 91 pop r17
+ 1f4: 0f 91 pop r16
+ 1f6: ff 90 pop r15
+ 1f8: ef 90 pop r14
+ 1fa: df 90 pop r13
+ 1fc: cf 90 pop r12
+ 1fe: bf 90 pop r11
+ 200: af 90 pop r10
+ 202: 08 95 ret
+
+00000204 <main>:
+ 204: 1f 93 push r17
+ 206: 0e 94 bc 00 call 0x178 ; 0x178 <_Z13fill_sinewavev>
+ 20a: 86 e2 ldi r24, 0x26 ; 38
+ 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 52 01 call 0x2a4 ; 0x2a4 <_ZN14HardwareSerial5beginEl>
+ 21a: 25 9a sbi 0x04, 5 ; 4
+ 21c: 80 e2 ldi r24, 0x20 ; 32
+ 21e: 85 b9 out 0x05, r24 ; 5
+ 220: 80 91 81 00 lds r24, 0x0081
+ 224: 88 60 ori r24, 0x08 ; 8
+ 226: 80 93 81 00 sts 0x0081, r24
+ 22a: 80 91 6f 00 lds r24, 0x006F
+ 22e: 82 60 ori r24, 0x02 ; 2
+ 230: 80 93 6f 00 sts 0x006F, r24
+ 234: 86 e8 ldi r24, 0x86 ; 134
+ 236: 91 e0 ldi r25, 0x01 ; 1
+ 238: 90 93 89 00 sts 0x0089, r25
+ 23c: 80 93 88 00 sts 0x0088, r24
+ 240: 78 94 sei
+ 242: 10 e2 ldi r17, 0x20 ; 32
+ 244: 86 e2 ldi r24, 0x26 ; 38
+ 246: 93 e0 ldi r25, 0x03 ; 3
+ 248: 0e 94 4f 01 call 0x29e ; 0x29e <_ZN14HardwareSerial9availableEv>
+ 24c: 18 16 cp r1, r24
+ 24e: 19 06 cpc r1, r25
+ 250: cc f7 brge .-14 ; 0x244 <main+0x40>
+ 252: 85 b1 in r24, 0x05 ; 5
+ 254: 81 27 eor r24, r17
+ 256: 85 b9 out 0x05, r24 ; 5
+ 258: 86 e2 ldi r24, 0x26 ; 38
+ 25a: 93 e0 ldi r25, 0x03 ; 3
+ 25c: 0e 94 4c 01 call 0x298 ; 0x298 <_ZN14HardwareSerial4readEv>
+ 260: 81 36 cpi r24, 0x61 ; 97
+ 262: 81 f7 brne .-32 ; 0x244 <main+0x40>
+ 264: 86 e2 ldi r24, 0x26 ; 38
+ 266: 93 e0 ldi r25, 0x03 ; 3
+ 268: 60 e0 ldi r22, 0x00 ; 0
+ 26a: 71 e0 ldi r23, 0x01 ; 1
+ 26c: 0e 94 a6 01 call 0x34c ; 0x34c <_ZN5Print7printlnEPKc>
+ 270: 80 91 81 00 lds r24, 0x0081
+ 274: 85 60 ori r24, 0x05 ; 5
+ 276: 80 93 81 00 sts 0x0081, r24
+ 27a: e4 cf rjmp .-56 ; 0x244 <main+0x40>
+
+0000027c <_GLOBAL__I__ZN14HardwareSerial5beginEl>:
+ 27c: 87 e1 ldi r24, 0x17 ; 23
+ 27e: 91 e0 ldi r25, 0x01 ; 1
+ 280: 90 93 27 03 sts 0x0327, r25
+ 284: 80 93 26 03 sts 0x0326, r24
+ 288: 08 95 ret
+
+0000028a <_ZN14HardwareSerial5writeEh>:
+ 28a: 86 2f mov r24, r22
+ 28c: 0e 94 1f 03 call 0x63e ; 0x63e <serialWrite>
+ 290: 08 95 ret
+
+00000292 <_ZN14HardwareSerial5flushEv>:
+ 292: 0e 94 57 03 call 0x6ae ; 0x6ae <serialFlush>
+ 296: 08 95 ret
+
+00000298 <_ZN14HardwareSerial4readEv>:
+ 298: 0e 94 38 03 call 0x670 ; 0x670 <serialRead>
+ 29c: 08 95 ret
+
+0000029e <_ZN14HardwareSerial9availableEv>:
+ 29e: 0e 94 27 03 call 0x64e ; 0x64e <serialAvailable>
+ 2a2: 08 95 ret
+
+000002a4 <_ZN14HardwareSerial5beginEl>:
+ 2a4: cb 01 movw r24, r22
+ 2a6: ba 01 movw r22, r20
+ 2a8: 0e 94 e6 02 call 0x5cc ; 0x5cc <beginSerial>
+ 2ac: 08 95 ret
+
+000002ae <_ZN5Print5printEh>:
+ 2ae: dc 01 movw r26, r24
+ 2b0: ed 91 ld r30, X+
+ 2b2: fc 91 ld r31, X
+ 2b4: 01 90 ld r0, Z+
+ 2b6: f0 81 ld r31, Z
+ 2b8: e0 2d mov r30, r0
+ 2ba: 09 95 icall
+ 2bc: 08 95 ret
+
+000002be <_ZN5Print5printEc>:
+ 2be: dc 01 movw r26, r24
+ 2c0: ed 91 ld r30, X+
+ 2c2: fc 91 ld r31, X
+ 2c4: 01 90 ld r0, Z+
+ 2c6: f0 81 ld r31, Z
+ 2c8: e0 2d mov r30, r0
+ 2ca: 09 95 icall
+ 2cc: 08 95 ret
+
+000002ce <_ZN5Print5printEPKc>:
+ 2ce: 0f 93 push r16
+ 2d0: 1f 93 push r17
+ 2d2: cf 93 push r28
+ 2d4: df 93 push r29
+ 2d6: 8c 01 movw r16, r24
+ 2d8: eb 01 movw r28, r22
+ 2da: 09 c0 rjmp .+18 ; 0x2ee <_ZN5Print5printEPKc+0x20>
+ 2dc: 21 96 adiw r28, 0x01 ; 1
+ 2de: d8 01 movw r26, r16
+ 2e0: ed 91 ld r30, X+
+ 2e2: fc 91 ld r31, X
+ 2e4: 01 90 ld r0, Z+
+ 2e6: f0 81 ld r31, Z
+ 2e8: e0 2d mov r30, r0
+ 2ea: c8 01 movw r24, r16
+ 2ec: 09 95 icall
+ 2ee: 68 81 ld r22, Y
+ 2f0: 66 23 and r22, r22
+ 2f2: a1 f7 brne .-24 ; 0x2dc <_ZN5Print5printEPKc+0xe>
+ 2f4: df 91 pop r29
+ 2f6: cf 91 pop r28
+ 2f8: 1f 91 pop r17
+ 2fa: 0f 91 pop r16
+ 2fc: 08 95 ret
+
+000002fe <_ZN5Print7printlnEv>:
+ 2fe: 0f 93 push r16
+ 300: 1f 93 push r17
+ 302: 8c 01 movw r16, r24
+ 304: dc 01 movw r26, r24
+ 306: ed 91 ld r30, X+
+ 308: fc 91 ld r31, X
+ 30a: 01 90 ld r0, Z+
+ 30c: f0 81 ld r31, Z
+ 30e: e0 2d mov r30, r0
+ 310: 6d e0 ldi r22, 0x0D ; 13
+ 312: 09 95 icall
+ 314: d8 01 movw r26, r16
+ 316: ed 91 ld r30, X+
+ 318: fc 91 ld r31, X
+ 31a: 01 90 ld r0, Z+
+ 31c: f0 81 ld r31, Z
+ 31e: e0 2d mov r30, r0
+ 320: 6a e0 ldi r22, 0x0A ; 10
+ 322: c8 01 movw r24, r16
+ 324: 09 95 icall
+ 326: 1f 91 pop r17
+ 328: 0f 91 pop r16
+ 32a: 08 95 ret
+
+0000032c <_ZN5Print7printlnEc>:
+ 32c: 0f 93 push r16
+ 32e: 1f 93 push r17
+ 330: 8c 01 movw r16, r24
+ 332: dc 01 movw r26, r24
+ 334: ed 91 ld r30, X+
+ 336: fc 91 ld r31, X
+ 338: 01 90 ld r0, Z+
+ 33a: f0 81 ld r31, Z
+ 33c: e0 2d mov r30, r0
+ 33e: 09 95 icall
+ 340: c8 01 movw r24, r16
+ 342: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 346: 1f 91 pop r17
+ 348: 0f 91 pop r16
+ 34a: 08 95 ret
+
+0000034c <_ZN5Print7printlnEPKc>:
+ 34c: 0f 93 push r16
+ 34e: 1f 93 push r17
+ 350: 8c 01 movw r16, r24
+ 352: 0e 94 67 01 call 0x2ce ; 0x2ce <_ZN5Print5printEPKc>
+ 356: c8 01 movw r24, r16
+ 358: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 35c: 1f 91 pop r17
+ 35e: 0f 91 pop r16
+ 360: 08 95 ret
+
+00000362 <_ZN5Print7printlnEh>:
+ 362: 0f 93 push r16
+ 364: 1f 93 push r17
+ 366: 8c 01 movw r16, r24
+ 368: dc 01 movw r26, r24
+ 36a: ed 91 ld r30, X+
+ 36c: fc 91 ld r31, X
+ 36e: 01 90 ld r0, Z+
+ 370: f0 81 ld r31, Z
+ 372: e0 2d mov r30, r0
+ 374: 09 95 icall
+ 376: c8 01 movw r24, r16
+ 378: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 37c: 1f 91 pop r17
+ 37e: 0f 91 pop r16
+ 380: 08 95 ret
+
+00000382 <_ZN5Print11printNumberEmh>:
+ 382: 2f 92 push r2
+ 384: 3f 92 push r3
+ 386: 4f 92 push r4
+ 388: 5f 92 push r5
+ 38a: 6f 92 push r6
+ 38c: 7f 92 push r7
+ 38e: 8f 92 push r8
+ 390: 9f 92 push r9
+ 392: af 92 push r10
+ 394: bf 92 push r11
+ 396: cf 92 push r12
+ 398: df 92 push r13
+ 39a: ef 92 push r14
+ 39c: ff 92 push r15
+ 39e: 0f 93 push r16
+ 3a0: 1f 93 push r17
+ 3a2: df 93 push r29
+ 3a4: cf 93 push r28
+ 3a6: cd b7 in r28, 0x3d ; 61
+ 3a8: de b7 in r29, 0x3e ; 62
+ 3aa: a0 97 sbiw r28, 0x20 ; 32
+ 3ac: 0f b6 in r0, 0x3f ; 63
+ 3ae: f8 94 cli
+ 3b0: de bf out 0x3e, r29 ; 62
+ 3b2: 0f be out 0x3f, r0 ; 63
+ 3b4: cd bf out 0x3d, r28 ; 61
+ 3b6: 1c 01 movw r2, r24
+ 3b8: 6a 01 movw r12, r20
+ 3ba: 7b 01 movw r14, r22
+ 3bc: 41 15 cp r20, r1
+ 3be: 51 05 cpc r21, r1
+ 3c0: 61 05 cpc r22, r1
+ 3c2: 71 05 cpc r23, r1
+ 3c4: 49 f4 brne .+18 ; 0x3d8 <_ZN5Print11printNumberEmh+0x56>
+ 3c6: dc 01 movw r26, r24
+ 3c8: ed 91 ld r30, X+
+ 3ca: fc 91 ld r31, X
+ 3cc: 01 90 ld r0, Z+
+ 3ce: f0 81 ld r31, Z
+ 3d0: e0 2d mov r30, r0
+ 3d2: 60 e3 ldi r22, 0x30 ; 48
+ 3d4: 09 95 icall
+ 3d6: 54 c0 rjmp .+168 ; 0x480 <_ZN5Print11printNumberEmh+0xfe>
+ 3d8: 88 24 eor r8, r8
+ 3da: 99 24 eor r9, r9
+ 3dc: 54 01 movw r10, r8
+ 3de: 42 2e mov r4, r18
+ 3e0: 55 24 eor r5, r5
+ 3e2: 66 24 eor r6, r6
+ 3e4: 77 24 eor r7, r7
+ 3e6: 01 e0 ldi r16, 0x01 ; 1
+ 3e8: 10 e0 ldi r17, 0x00 ; 0
+ 3ea: 0c 0f add r16, r28
+ 3ec: 1d 1f adc r17, r29
+ 3ee: 08 0d add r16, r8
+ 3f0: 19 1d adc r17, r9
+ 3f2: c7 01 movw r24, r14
+ 3f4: b6 01 movw r22, r12
+ 3f6: a3 01 movw r20, r6
+ 3f8: 92 01 movw r18, r4
+ 3fa: 0e 94 f5 07 call 0xfea ; 0xfea <__udivmodsi4>
+ 3fe: f8 01 movw r30, r16
+ 400: 60 83 st Z, r22
+ 402: 08 94 sec
+ 404: 81 1c adc r8, r1
+ 406: 91 1c adc r9, r1
+ 408: a1 1c adc r10, r1
+ 40a: b1 1c adc r11, r1
+ 40c: c7 01 movw r24, r14
+ 40e: b6 01 movw r22, r12
+ 410: a3 01 movw r20, r6
+ 412: 92 01 movw r18, r4
+ 414: 0e 94 f5 07 call 0xfea ; 0xfea <__udivmodsi4>
+ 418: c9 01 movw r24, r18
+ 41a: da 01 movw r26, r20
+ 41c: 6c 01 movw r12, r24
+ 41e: 7d 01 movw r14, r26
+ 420: c1 14 cp r12, r1
+ 422: d1 04 cpc r13, r1
+ 424: e1 04 cpc r14, r1
+ 426: f1 04 cpc r15, r1
+ 428: f1 f6 brne .-68 ; 0x3e6 <_ZN5Print11printNumberEmh+0x64>
+ 42a: 81 e0 ldi r24, 0x01 ; 1
+ 42c: e8 2e mov r14, r24
+ 42e: f1 2c mov r15, r1
+ 430: ec 0e add r14, r28
+ 432: fd 1e adc r15, r29
+ 434: e8 0c add r14, r8
+ 436: f9 1c adc r15, r9
+ 438: 3e 01 movw r6, r28
+ 43a: 08 94 sec
+ 43c: 61 1c adc r6, r1
+ 43e: 71 1c adc r7, r1
+ 440: d5 01 movw r26, r10
+ 442: c4 01 movw r24, r8
+ 444: 01 97 sbiw r24, 0x01 ; 1
+ 446: a1 09 sbc r26, r1
+ 448: b1 09 sbc r27, r1
+ 44a: 6c 01 movw r12, r24
+ 44c: c8 18 sub r12, r8
+ 44e: d9 08 sbc r13, r9
+ 450: 14 c0 rjmp .+40 ; 0x47a <_ZN5Print11printNumberEmh+0xf8>
+ 452: f6 01 movw r30, r12
+ 454: ee 0d add r30, r14
+ 456: ff 1d adc r31, r15
+ 458: 60 81 ld r22, Z
+ 45a: 6a 30 cpi r22, 0x0A ; 10
+ 45c: 10 f4 brcc .+4 ; 0x462 <_ZN5Print11printNumberEmh+0xe0>
+ 45e: 60 5d subi r22, 0xD0 ; 208
+ 460: 01 c0 rjmp .+2 ; 0x464 <_ZN5Print11printNumberEmh+0xe2>
+ 462: 69 5c subi r22, 0xC9 ; 201
+ 464: d1 01 movw r26, r2
+ 466: ed 91 ld r30, X+
+ 468: fc 91 ld r31, X
+ 46a: 01 90 ld r0, Z+
+ 46c: f0 81 ld r31, Z
+ 46e: e0 2d mov r30, r0
+ 470: c1 01 movw r24, r2
+ 472: 09 95 icall
+ 474: 08 94 sec
+ 476: e1 08 sbc r14, r1
+ 478: f1 08 sbc r15, r1
+ 47a: 6e 14 cp r6, r14
+ 47c: 7f 04 cpc r7, r15
+ 47e: 49 f7 brne .-46 ; 0x452 <_ZN5Print11printNumberEmh+0xd0>
+ 480: a0 96 adiw r28, 0x20 ; 32
+ 482: 0f b6 in r0, 0x3f ; 63
+ 484: f8 94 cli
+ 486: de bf out 0x3e, r29 ; 62
+ 488: 0f be out 0x3f, r0 ; 63
+ 48a: cd bf out 0x3d, r28 ; 61
+ 48c: cf 91 pop r28
+ 48e: df 91 pop r29
+ 490: 1f 91 pop r17
+ 492: 0f 91 pop r16
+ 494: ff 90 pop r15
+ 496: ef 90 pop r14
+ 498: df 90 pop r13
+ 49a: cf 90 pop r12
+ 49c: bf 90 pop r11
+ 49e: af 90 pop r10
+ 4a0: 9f 90 pop r9
+ 4a2: 8f 90 pop r8
+ 4a4: 7f 90 pop r7
+ 4a6: 6f 90 pop r6
+ 4a8: 5f 90 pop r5
+ 4aa: 4f 90 pop r4
+ 4ac: 3f 90 pop r3
+ 4ae: 2f 90 pop r2
+ 4b0: 08 95 ret
+
+000004b2 <_ZN5Print5printEm>:
+ 4b2: 2a e0 ldi r18, 0x0A ; 10
+ 4b4: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 4b8: 08 95 ret
+
+000004ba <_ZN5Print7printlnEm>:
+ 4ba: 0f 93 push r16
+ 4bc: 1f 93 push r17
+ 4be: 8c 01 movw r16, r24
+ 4c0: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4c4: c8 01 movw r24, r16
+ 4c6: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 4ca: 1f 91 pop r17
+ 4cc: 0f 91 pop r16
+ 4ce: 08 95 ret
+
+000004d0 <_ZN5Print5printEj>:
+ 4d0: ab 01 movw r20, r22
+ 4d2: 60 e0 ldi r22, 0x00 ; 0
+ 4d4: 70 e0 ldi r23, 0x00 ; 0
+ 4d6: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4da: 08 95 ret
+
+000004dc <_ZN5Print7printlnEj>:
+ 4dc: 0f 93 push r16
+ 4de: 1f 93 push r17
+ 4e0: 8c 01 movw r16, r24
+ 4e2: ab 01 movw r20, r22
+ 4e4: 60 e0 ldi r22, 0x00 ; 0
+ 4e6: 70 e0 ldi r23, 0x00 ; 0
+ 4e8: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4ec: c8 01 movw r24, r16
+ 4ee: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 4f2: 1f 91 pop r17
+ 4f4: 0f 91 pop r16
+ 4f6: 08 95 ret
+
+000004f8 <_ZN5Print5printEl>:
+ 4f8: ef 92 push r14
+ 4fa: ff 92 push r15
+ 4fc: 0f 93 push r16
+ 4fe: 1f 93 push r17
+ 500: cf 93 push r28
+ 502: df 93 push r29
+ 504: ec 01 movw r28, r24
+ 506: 7a 01 movw r14, r20
+ 508: 8b 01 movw r16, r22
+ 50a: 77 ff sbrs r23, 7
+ 50c: 0f c0 rjmp .+30 ; 0x52c <_ZN5Print5printEl+0x34>
+ 50e: e8 81 ld r30, Y
+ 510: f9 81 ldd r31, Y+1 ; 0x01
+ 512: 01 90 ld r0, Z+
+ 514: f0 81 ld r31, Z
+ 516: e0 2d mov r30, r0
+ 518: 6d e2 ldi r22, 0x2D ; 45
+ 51a: 09 95 icall
+ 51c: 10 95 com r17
+ 51e: 00 95 com r16
+ 520: f0 94 com r15
+ 522: e0 94 com r14
+ 524: e1 1c adc r14, r1
+ 526: f1 1c adc r15, r1
+ 528: 01 1d adc r16, r1
+ 52a: 11 1d adc r17, r1
+ 52c: 2a e0 ldi r18, 0x0A ; 10
+ 52e: b8 01 movw r22, r16
+ 530: a7 01 movw r20, r14
+ 532: ce 01 movw r24, r28
+ 534: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 538: df 91 pop r29
+ 53a: cf 91 pop r28
+ 53c: 1f 91 pop r17
+ 53e: 0f 91 pop r16
+ 540: ff 90 pop r15
+ 542: ef 90 pop r14
+ 544: 08 95 ret
+
+00000546 <_ZN5Print7printlnEl>:
+ 546: 0f 93 push r16
+ 548: 1f 93 push r17
+ 54a: 8c 01 movw r16, r24
+ 54c: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 550: c8 01 movw r24, r16
+ 552: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 556: 1f 91 pop r17
+ 558: 0f 91 pop r16
+ 55a: 08 95 ret
+
+0000055c <_ZN5Print5printEi>:
+ 55c: ab 01 movw r20, r22
+ 55e: 66 27 eor r22, r22
+ 560: 57 fd sbrc r21, 7
+ 562: 60 95 com r22
+ 564: 76 2f mov r23, r22
+ 566: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 56a: 08 95 ret
+
+0000056c <_ZN5Print7printlnEi>:
+ 56c: 0f 93 push r16
+ 56e: 1f 93 push r17
+ 570: 8c 01 movw r16, r24
+ 572: ab 01 movw r20, r22
+ 574: 66 27 eor r22, r22
+ 576: 57 fd sbrc r21, 7
+ 578: 60 95 com r22
+ 57a: 76 2f mov r23, r22
+ 57c: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 580: c8 01 movw r24, r16
+ 582: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 586: 1f 91 pop r17
+ 588: 0f 91 pop r16
+ 58a: 08 95 ret
+
+0000058c <_ZN5Print5printEli>:
+ 58c: dc 01 movw r26, r24
+ 58e: 21 15 cp r18, r1
+ 590: 31 05 cpc r19, r1
+ 592: 41 f4 brne .+16 ; 0x5a4 <_ZN5Print5printEli+0x18>
+ 594: ed 91 ld r30, X+
+ 596: fc 91 ld r31, X
+ 598: 01 90 ld r0, Z+
+ 59a: f0 81 ld r31, Z
+ 59c: e0 2d mov r30, r0
+ 59e: 64 2f mov r22, r20
+ 5a0: 09 95 icall
+ 5a2: 08 95 ret
+ 5a4: 2a 30 cpi r18, 0x0A ; 10
+ 5a6: 31 05 cpc r19, r1
+ 5a8: 19 f4 brne .+6 ; 0x5b0 <_ZN5Print5printEli+0x24>
+ 5aa: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 5ae: 08 95 ret
+ 5b0: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 5b4: 08 95 ret
+
+000005b6 <_ZN5Print7printlnEli>:
+ 5b6: 0f 93 push r16
+ 5b8: 1f 93 push r17
+ 5ba: 8c 01 movw r16, r24
+ 5bc: 0e 94 c6 02 call 0x58c ; 0x58c <_ZN5Print5printEli>
+ 5c0: c8 01 movw r24, r16
+ 5c2: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 5c6: 1f 91 pop r17
+ 5c8: 0f 91 pop r16
+ 5ca: 08 95 ret
+
+000005cc <beginSerial>:
+ 5cc: ef 92 push r14
+ 5ce: ff 92 push r15
+ 5d0: 0f 93 push r16
+ 5d2: 1f 93 push r17
+ 5d4: 7b 01 movw r14, r22
+ 5d6: 8c 01 movw r16, r24
+ 5d8: 22 e0 ldi r18, 0x02 ; 2
+ 5da: 30 e0 ldi r19, 0x00 ; 0
+ 5dc: 40 e0 ldi r20, 0x00 ; 0
+ 5de: 50 e0 ldi r21, 0x00 ; 0
+ 5e0: 0e 94 17 08 call 0x102e ; 0x102e <__divmodsi4>
+ 5e4: 20 5c subi r18, 0xC0 ; 192
+ 5e6: 3d 4b sbci r19, 0xBD ; 189
+ 5e8: 40 4f sbci r20, 0xF0 ; 240
+ 5ea: 5f 4f sbci r21, 0xFF ; 255
+ 5ec: ca 01 movw r24, r20
+ 5ee: b9 01 movw r22, r18
+ 5f0: a8 01 movw r20, r16
+ 5f2: 97 01 movw r18, r14
+ 5f4: 0e 94 17 08 call 0x102e ; 0x102e <__divmodsi4>
+ 5f8: c9 01 movw r24, r18
+ 5fa: da 01 movw r26, r20
+ 5fc: 01 97 sbiw r24, 0x01 ; 1
+ 5fe: a1 09 sbc r26, r1
+ 600: b1 09 sbc r27, r1
+ 602: 29 2f mov r18, r25
+ 604: 3a 2f mov r19, r26
+ 606: 4b 2f mov r20, r27
+ 608: 55 27 eor r21, r21
+ 60a: 47 fd sbrc r20, 7
+ 60c: 5a 95 dec r21
+ 60e: 01 96 adiw r24, 0x01 ; 1
+ 610: a1 1d adc r26, r1
+ 612: b1 1d adc r27, r1
+ 614: 20 93 c5 00 sts 0x00C5, r18
+ 618: 81 50 subi r24, 0x01 ; 1
+ 61a: 80 93 c4 00 sts 0x00C4, r24
+ 61e: e1 ec ldi r30, 0xC1 ; 193
+ 620: f0 e0 ldi r31, 0x00 ; 0
+ 622: 80 81 ld r24, Z
+ 624: 80 61 ori r24, 0x10 ; 16
+ 626: 80 83 st Z, r24
+ 628: 80 81 ld r24, Z
+ 62a: 88 60 ori r24, 0x08 ; 8
+ 62c: 80 83 st Z, r24
+ 62e: 80 81 ld r24, Z
+ 630: 80 68 ori r24, 0x80 ; 128
+ 632: 80 83 st Z, r24
+ 634: 1f 91 pop r17
+ 636: 0f 91 pop r16
+ 638: ff 90 pop r15
+ 63a: ef 90 pop r14
+ 63c: 08 95 ret
+
+0000063e <serialWrite>:
+ 63e: 98 2f mov r25, r24
+ 640: 80 91 c0 00 lds r24, 0x00C0
+ 644: 85 ff sbrs r24, 5
+ 646: fc cf rjmp .-8 ; 0x640 <serialWrite+0x2>
+ 648: 90 93 c6 00 sts 0x00C6, r25
+ 64c: 08 95 ret
+
+0000064e <serialAvailable>:
+ 64e: 80 91 28 03 lds r24, 0x0328
+ 652: 90 91 29 03 lds r25, 0x0329
+ 656: 80 58 subi r24, 0x80 ; 128
+ 658: 9f 4f sbci r25, 0xFF ; 255
+ 65a: 20 91 2a 03 lds r18, 0x032A
+ 65e: 30 91 2b 03 lds r19, 0x032B
+ 662: 82 1b sub r24, r18
+ 664: 93 0b sbc r25, r19
+ 666: 60 e8 ldi r22, 0x80 ; 128
+ 668: 70 e0 ldi r23, 0x00 ; 0
+ 66a: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 66e: 08 95 ret
+
+00000670 <serialRead>:
+ 670: 40 91 2a 03 lds r20, 0x032A
+ 674: 50 91 2b 03 lds r21, 0x032B
+ 678: 80 91 28 03 lds r24, 0x0328
+ 67c: 90 91 29 03 lds r25, 0x0329
+ 680: 84 17 cp r24, r20
+ 682: 95 07 cpc r25, r21
+ 684: 19 f4 brne .+6 ; 0x68c <serialRead+0x1c>
+ 686: 2f ef ldi r18, 0xFF ; 255
+ 688: 3f ef ldi r19, 0xFF ; 255
+ 68a: 0f c0 rjmp .+30 ; 0x6aa <serialRead+0x3a>
+ 68c: fa 01 movw r30, r20
+ 68e: e4 5d subi r30, 0xD4 ; 212
+ 690: fc 4f sbci r31, 0xFC ; 252
+ 692: 20 81 ld r18, Z
+ 694: ca 01 movw r24, r20
+ 696: 01 96 adiw r24, 0x01 ; 1
+ 698: 60 e8 ldi r22, 0x80 ; 128
+ 69a: 70 e0 ldi r23, 0x00 ; 0
+ 69c: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 6a0: 90 93 2b 03 sts 0x032B, r25
+ 6a4: 80 93 2a 03 sts 0x032A, r24
+ 6a8: 30 e0 ldi r19, 0x00 ; 0
+ 6aa: c9 01 movw r24, r18
+ 6ac: 08 95 ret
+
+000006ae <serialFlush>:
+ 6ae: 80 91 2a 03 lds r24, 0x032A
+ 6b2: 90 91 2b 03 lds r25, 0x032B
+ 6b6: 90 93 29 03 sts 0x0329, r25
+ 6ba: 80 93 28 03 sts 0x0328, r24
+ 6be: 08 95 ret
+
+000006c0 <__vector_18>:
+ 6c0: 1f 92 push r1
+ 6c2: 0f 92 push r0
+ 6c4: 0f b6 in r0, 0x3f ; 63
+ 6c6: 0f 92 push r0
+ 6c8: 11 24 eor r1, r1
+ 6ca: 2f 93 push r18
+ 6cc: 3f 93 push r19
+ 6ce: 4f 93 push r20
+ 6d0: 5f 93 push r21
+ 6d2: 6f 93 push r22
+ 6d4: 7f 93 push r23
+ 6d6: 8f 93 push r24
+ 6d8: 9f 93 push r25
+ 6da: af 93 push r26
+ 6dc: bf 93 push r27
+ 6de: ef 93 push r30
+ 6e0: ff 93 push r31
+ 6e2: 40 91 c6 00 lds r20, 0x00C6
+ 6e6: e0 91 28 03 lds r30, 0x0328
+ 6ea: f0 91 29 03 lds r31, 0x0329
+ 6ee: cf 01 movw r24, r30
+ 6f0: 01 96 adiw r24, 0x01 ; 1
+ 6f2: 60 e8 ldi r22, 0x80 ; 128
+ 6f4: 70 e0 ldi r23, 0x00 ; 0
+ 6f6: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 6fa: 9c 01 movw r18, r24
+ 6fc: 80 91 2a 03 lds r24, 0x032A
+ 700: 90 91 2b 03 lds r25, 0x032B
+ 704: 28 17 cp r18, r24
+ 706: 39 07 cpc r19, r25
+ 708: 39 f0 breq .+14 ; 0x718 <__vector_18+0x58>
+ 70a: e4 5d subi r30, 0xD4 ; 212
+ 70c: fc 4f sbci r31, 0xFC ; 252
+ 70e: 40 83 st Z, r20
+ 710: 30 93 29 03 sts 0x0329, r19
+ 714: 20 93 28 03 sts 0x0328, r18
+ 718: ff 91 pop r31
+ 71a: ef 91 pop r30
+ 71c: bf 91 pop r27
+ 71e: af 91 pop r26
+ 720: 9f 91 pop r25
+ 722: 8f 91 pop r24
+ 724: 7f 91 pop r23
+ 726: 6f 91 pop r22
+ 728: 5f 91 pop r21
+ 72a: 4f 91 pop r20
+ 72c: 3f 91 pop r19
+ 72e: 2f 91 pop r18
+ 730: 0f 90 pop r0
+ 732: 0f be out 0x3f, r0 ; 63
+ 734: 0f 90 pop r0
+ 736: 1f 90 pop r1
+ 738: 18 95 reti
+
+0000073a <_fpadd_parts>:
+ 73a: a0 e0 ldi r26, 0x00 ; 0
+ 73c: b0 e0 ldi r27, 0x00 ; 0
+ 73e: e3 ea ldi r30, 0xA3 ; 163
+ 740: f3 e0 ldi r31, 0x03 ; 3
+ 742: 0c 94 46 08 jmp 0x108c ; 0x108c <__prologue_saves__>
+ 746: dc 01 movw r26, r24
+ 748: 2b 01 movw r4, r22
+ 74a: fa 01 movw r30, r20
+ 74c: 9c 91 ld r25, X
+ 74e: 92 30 cpi r25, 0x02 ; 2
+ 750: 08 f4 brcc .+2 ; 0x754 <_fpadd_parts+0x1a>
+ 752: 39 c1 rjmp .+626 ; 0x9c6 <__stack+0xc7>
+ 754: eb 01 movw r28, r22
+ 756: 88 81 ld r24, Y
+ 758: 82 30 cpi r24, 0x02 ; 2
+ 75a: 08 f4 brcc .+2 ; 0x75e <_fpadd_parts+0x24>
+ 75c: 33 c1 rjmp .+614 ; 0x9c4 <__stack+0xc5>
+ 75e: 94 30 cpi r25, 0x04 ; 4
+ 760: 69 f4 brne .+26 ; 0x77c <_fpadd_parts+0x42>
+ 762: 84 30 cpi r24, 0x04 ; 4
+ 764: 09 f0 breq .+2 ; 0x768 <_fpadd_parts+0x2e>
+ 766: 2f c1 rjmp .+606 ; 0x9c6 <__stack+0xc7>
+ 768: 11 96 adiw r26, 0x01 ; 1
+ 76a: 9c 91 ld r25, X
+ 76c: 11 97 sbiw r26, 0x01 ; 1
+ 76e: 89 81 ldd r24, Y+1 ; 0x01
+ 770: 98 17 cp r25, r24
+ 772: 09 f4 brne .+2 ; 0x776 <_fpadd_parts+0x3c>
+ 774: 28 c1 rjmp .+592 ; 0x9c6 <__stack+0xc7>
+ 776: a9 e1 ldi r26, 0x19 ; 25
+ 778: b1 e0 ldi r27, 0x01 ; 1
+ 77a: 25 c1 rjmp .+586 ; 0x9c6 <__stack+0xc7>
+ 77c: 84 30 cpi r24, 0x04 ; 4
+ 77e: 09 f4 brne .+2 ; 0x782 <_fpadd_parts+0x48>
+ 780: 21 c1 rjmp .+578 ; 0x9c4 <__stack+0xc5>
+ 782: 82 30 cpi r24, 0x02 ; 2
+ 784: a9 f4 brne .+42 ; 0x7b0 <_fpadd_parts+0x76>
+ 786: 92 30 cpi r25, 0x02 ; 2
+ 788: 09 f0 breq .+2 ; 0x78c <_fpadd_parts+0x52>
+ 78a: 1d c1 rjmp .+570 ; 0x9c6 <__stack+0xc7>
+ 78c: 9a 01 movw r18, r20
+ 78e: ad 01 movw r20, r26
+ 790: 88 e0 ldi r24, 0x08 ; 8
+ 792: ea 01 movw r28, r20
+ 794: 09 90 ld r0, Y+
+ 796: ae 01 movw r20, r28
+ 798: e9 01 movw r28, r18
+ 79a: 09 92 st Y+, r0
+ 79c: 9e 01 movw r18, r28
+ 79e: 81 50 subi r24, 0x01 ; 1
+ 7a0: c1 f7 brne .-16 ; 0x792 <_fpadd_parts+0x58>
+ 7a2: e2 01 movw r28, r4
+ 7a4: 89 81 ldd r24, Y+1 ; 0x01
+ 7a6: 11 96 adiw r26, 0x01 ; 1
+ 7a8: 9c 91 ld r25, X
+ 7aa: 89 23 and r24, r25
+ 7ac: 81 83 std Z+1, r24 ; 0x01
+ 7ae: 08 c1 rjmp .+528 ; 0x9c0 <__stack+0xc1>
+ 7b0: 92 30 cpi r25, 0x02 ; 2
+ 7b2: 09 f4 brne .+2 ; 0x7b6 <_fpadd_parts+0x7c>
+ 7b4: 07 c1 rjmp .+526 ; 0x9c4 <__stack+0xc5>
+ 7b6: 12 96 adiw r26, 0x02 ; 2
+ 7b8: 2d 90 ld r2, X+
+ 7ba: 3c 90 ld r3, X
+ 7bc: 13 97 sbiw r26, 0x03 ; 3
+ 7be: eb 01 movw r28, r22
+ 7c0: 8a 81 ldd r24, Y+2 ; 0x02
+ 7c2: 9b 81 ldd r25, Y+3 ; 0x03
+ 7c4: 14 96 adiw r26, 0x04 ; 4
+ 7c6: ad 90 ld r10, X+
+ 7c8: bd 90 ld r11, X+
+ 7ca: cd 90 ld r12, X+
+ 7cc: dc 90 ld r13, X
+ 7ce: 17 97 sbiw r26, 0x07 ; 7
+ 7d0: ec 80 ldd r14, Y+4 ; 0x04
+ 7d2: fd 80 ldd r15, Y+5 ; 0x05
+ 7d4: 0e 81 ldd r16, Y+6 ; 0x06
+ 7d6: 1f 81 ldd r17, Y+7 ; 0x07
+ 7d8: 91 01 movw r18, r2
+ 7da: 28 1b sub r18, r24
+ 7dc: 39 0b sbc r19, r25
+ 7de: b9 01 movw r22, r18
+ 7e0: 37 ff sbrs r19, 7
+ 7e2: 04 c0 rjmp .+8 ; 0x7ec <_fpadd_parts+0xb2>
+ 7e4: 66 27 eor r22, r22
+ 7e6: 77 27 eor r23, r23
+ 7e8: 62 1b sub r22, r18
+ 7ea: 73 0b sbc r23, r19
+ 7ec: 60 32 cpi r22, 0x20 ; 32
+ 7ee: 71 05 cpc r23, r1
+ 7f0: 0c f0 brlt .+2 ; 0x7f4 <_fpadd_parts+0xba>
+ 7f2: 61 c0 rjmp .+194 ; 0x8b6 <_fpadd_parts+0x17c>
+ 7f4: 12 16 cp r1, r18
+ 7f6: 13 06 cpc r1, r19
+ 7f8: 6c f5 brge .+90 ; 0x854 <_fpadd_parts+0x11a>
+ 7fa: 37 01 movw r6, r14
+ 7fc: 48 01 movw r8, r16
+ 7fe: 06 2e mov r0, r22
+ 800: 04 c0 rjmp .+8 ; 0x80a <_fpadd_parts+0xd0>
+ 802: 96 94 lsr r9
+ 804: 87 94 ror r8
+ 806: 77 94 ror r7
+ 808: 67 94 ror r6
+ 80a: 0a 94 dec r0
+ 80c: d2 f7 brpl .-12 ; 0x802 <_fpadd_parts+0xc8>
+ 80e: 21 e0 ldi r18, 0x01 ; 1
+ 810: 30 e0 ldi r19, 0x00 ; 0
+ 812: 40 e0 ldi r20, 0x00 ; 0
+ 814: 50 e0 ldi r21, 0x00 ; 0
+ 816: 04 c0 rjmp .+8 ; 0x820 <_fpadd_parts+0xe6>
+ 818: 22 0f add r18, r18
+ 81a: 33 1f adc r19, r19
+ 81c: 44 1f adc r20, r20
+ 81e: 55 1f adc r21, r21
+ 820: 6a 95 dec r22
+ 822: d2 f7 brpl .-12 ; 0x818 <_fpadd_parts+0xde>
+ 824: 21 50 subi r18, 0x01 ; 1
+ 826: 30 40 sbci r19, 0x00 ; 0
+ 828: 40 40 sbci r20, 0x00 ; 0
+ 82a: 50 40 sbci r21, 0x00 ; 0
+ 82c: 2e 21 and r18, r14
+ 82e: 3f 21 and r19, r15
+ 830: 40 23 and r20, r16
+ 832: 51 23 and r21, r17
+ 834: 21 15 cp r18, r1
+ 836: 31 05 cpc r19, r1
+ 838: 41 05 cpc r20, r1
+ 83a: 51 05 cpc r21, r1
+ 83c: 21 f0 breq .+8 ; 0x846 <_fpadd_parts+0x10c>
+ 83e: 21 e0 ldi r18, 0x01 ; 1
+ 840: 30 e0 ldi r19, 0x00 ; 0
+ 842: 40 e0 ldi r20, 0x00 ; 0
+ 844: 50 e0 ldi r21, 0x00 ; 0
+ 846: 79 01 movw r14, r18
+ 848: 8a 01 movw r16, r20
+ 84a: e6 28 or r14, r6
+ 84c: f7 28 or r15, r7
+ 84e: 08 29 or r16, r8
+ 850: 19 29 or r17, r9
+ 852: 3c c0 rjmp .+120 ; 0x8cc <_fpadd_parts+0x192>
+ 854: 23 2b or r18, r19
+ 856: d1 f1 breq .+116 ; 0x8cc <_fpadd_parts+0x192>
+ 858: 26 0e add r2, r22
+ 85a: 37 1e adc r3, r23
+ 85c: 35 01 movw r6, r10
+ 85e: 46 01 movw r8, r12
+ 860: 06 2e mov r0, r22
+ 862: 04 c0 rjmp .+8 ; 0x86c <_fpadd_parts+0x132>
+ 864: 96 94 lsr r9
+ 866: 87 94 ror r8
+ 868: 77 94 ror r7
+ 86a: 67 94 ror r6
+ 86c: 0a 94 dec r0
+ 86e: d2 f7 brpl .-12 ; 0x864 <_fpadd_parts+0x12a>
+ 870: 21 e0 ldi r18, 0x01 ; 1
+ 872: 30 e0 ldi r19, 0x00 ; 0
+ 874: 40 e0 ldi r20, 0x00 ; 0
+ 876: 50 e0 ldi r21, 0x00 ; 0
+ 878: 04 c0 rjmp .+8 ; 0x882 <_fpadd_parts+0x148>
+ 87a: 22 0f add r18, r18
+ 87c: 33 1f adc r19, r19
+ 87e: 44 1f adc r20, r20
+ 880: 55 1f adc r21, r21
+ 882: 6a 95 dec r22
+ 884: d2 f7 brpl .-12 ; 0x87a <_fpadd_parts+0x140>
+ 886: 21 50 subi r18, 0x01 ; 1
+ 888: 30 40 sbci r19, 0x00 ; 0
+ 88a: 40 40 sbci r20, 0x00 ; 0
+ 88c: 50 40 sbci r21, 0x00 ; 0
+ 88e: 2a 21 and r18, r10
+ 890: 3b 21 and r19, r11
+ 892: 4c 21 and r20, r12
+ 894: 5d 21 and r21, r13
+ 896: 21 15 cp r18, r1
+ 898: 31 05 cpc r19, r1
+ 89a: 41 05 cpc r20, r1
+ 89c: 51 05 cpc r21, r1
+ 89e: 21 f0 breq .+8 ; 0x8a8 <_fpadd_parts+0x16e>
+ 8a0: 21 e0 ldi r18, 0x01 ; 1
+ 8a2: 30 e0 ldi r19, 0x00 ; 0
+ 8a4: 40 e0 ldi r20, 0x00 ; 0
+ 8a6: 50 e0 ldi r21, 0x00 ; 0
+ 8a8: 59 01 movw r10, r18
+ 8aa: 6a 01 movw r12, r20
+ 8ac: a6 28 or r10, r6
+ 8ae: b7 28 or r11, r7
+ 8b0: c8 28 or r12, r8
+ 8b2: d9 28 or r13, r9
+ 8b4: 0b c0 rjmp .+22 ; 0x8cc <_fpadd_parts+0x192>
+ 8b6: 82 15 cp r24, r2
+ 8b8: 93 05 cpc r25, r3
+ 8ba: 2c f0 brlt .+10 ; 0x8c6 <_fpadd_parts+0x18c>
+ 8bc: 1c 01 movw r2, r24
+ 8be: aa 24 eor r10, r10
+ 8c0: bb 24 eor r11, r11
+ 8c2: 65 01 movw r12, r10
+ 8c4: 03 c0 rjmp .+6 ; 0x8cc <_fpadd_parts+0x192>
+ 8c6: ee 24 eor r14, r14
+ 8c8: ff 24 eor r15, r15
+ 8ca: 87 01 movw r16, r14
+ 8cc: 11 96 adiw r26, 0x01 ; 1
+ 8ce: 9c 91 ld r25, X
+ 8d0: d2 01 movw r26, r4
+ 8d2: 11 96 adiw r26, 0x01 ; 1
+ 8d4: 8c 91 ld r24, X
+ 8d6: 98 17 cp r25, r24
+ 8d8: 09 f4 brne .+2 ; 0x8dc <_fpadd_parts+0x1a2>
+ 8da: 45 c0 rjmp .+138 ; 0x966 <__stack+0x67>
+ 8dc: 99 23 and r25, r25
+ 8de: 39 f0 breq .+14 ; 0x8ee <_fpadd_parts+0x1b4>
+ 8e0: a8 01 movw r20, r16
+ 8e2: 97 01 movw r18, r14
+ 8e4: 2a 19 sub r18, r10
+ 8e6: 3b 09 sbc r19, r11
+ 8e8: 4c 09 sbc r20, r12
+ 8ea: 5d 09 sbc r21, r13
+ 8ec: 06 c0 rjmp .+12 ; 0x8fa <_fpadd_parts+0x1c0>
+ 8ee: a6 01 movw r20, r12
+ 8f0: 95 01 movw r18, r10
+ 8f2: 2e 19 sub r18, r14
+ 8f4: 3f 09 sbc r19, r15
+ 8f6: 40 0b sbc r20, r16
+ 8f8: 51 0b sbc r21, r17
+ 8fa: 57 fd sbrc r21, 7
+ 8fc: 08 c0 rjmp .+16 ; 0x90e <__stack+0xf>
+ 8fe: 11 82 std Z+1, r1 ; 0x01
+ 900: 33 82 std Z+3, r3 ; 0x03
+ 902: 22 82 std Z+2, r2 ; 0x02
+ 904: 24 83 std Z+4, r18 ; 0x04
+ 906: 35 83 std Z+5, r19 ; 0x05
+ 908: 46 83 std Z+6, r20 ; 0x06
+ 90a: 57 83 std Z+7, r21 ; 0x07
+ 90c: 1d c0 rjmp .+58 ; 0x948 <__stack+0x49>
+ 90e: 81 e0 ldi r24, 0x01 ; 1
+ 910: 81 83 std Z+1, r24 ; 0x01
+ 912: 33 82 std Z+3, r3 ; 0x03
+ 914: 22 82 std Z+2, r2 ; 0x02
+ 916: 88 27 eor r24, r24
+ 918: 99 27 eor r25, r25
+ 91a: dc 01 movw r26, r24
+ 91c: 82 1b sub r24, r18
+ 91e: 93 0b sbc r25, r19
+ 920: a4 0b sbc r26, r20
+ 922: b5 0b sbc r27, r21
+ 924: 84 83 std Z+4, r24 ; 0x04
+ 926: 95 83 std Z+5, r25 ; 0x05
+ 928: a6 83 std Z+6, r26 ; 0x06
+ 92a: b7 83 std Z+7, r27 ; 0x07
+ 92c: 0d c0 rjmp .+26 ; 0x948 <__stack+0x49>
+ 92e: 22 0f add r18, r18
+ 930: 33 1f adc r19, r19
+ 932: 44 1f adc r20, r20
+ 934: 55 1f adc r21, r21
+ 936: 24 83 std Z+4, r18 ; 0x04
+ 938: 35 83 std Z+5, r19 ; 0x05
+ 93a: 46 83 std Z+6, r20 ; 0x06
+ 93c: 57 83 std Z+7, r21 ; 0x07
+ 93e: 82 81 ldd r24, Z+2 ; 0x02
+ 940: 93 81 ldd r25, Z+3 ; 0x03
+ 942: 01 97 sbiw r24, 0x01 ; 1
+ 944: 93 83 std Z+3, r25 ; 0x03
+ 946: 82 83 std Z+2, r24 ; 0x02
+ 948: 24 81 ldd r18, Z+4 ; 0x04
+ 94a: 35 81 ldd r19, Z+5 ; 0x05
+ 94c: 46 81 ldd r20, Z+6 ; 0x06
+ 94e: 57 81 ldd r21, Z+7 ; 0x07
+ 950: da 01 movw r26, r20
+ 952: c9 01 movw r24, r18
+ 954: 01 97 sbiw r24, 0x01 ; 1
+ 956: a1 09 sbc r26, r1
+ 958: b1 09 sbc r27, r1
+ 95a: 8f 5f subi r24, 0xFF ; 255
+ 95c: 9f 4f sbci r25, 0xFF ; 255
+ 95e: af 4f sbci r26, 0xFF ; 255
+ 960: bf 43 sbci r27, 0x3F ; 63
+ 962: 28 f3 brcs .-54 ; 0x92e <__stack+0x2f>
+ 964: 0b c0 rjmp .+22 ; 0x97c <__stack+0x7d>
+ 966: 91 83 std Z+1, r25 ; 0x01
+ 968: 33 82 std Z+3, r3 ; 0x03
+ 96a: 22 82 std Z+2, r2 ; 0x02
+ 96c: ea 0c add r14, r10
+ 96e: fb 1c adc r15, r11
+ 970: 0c 1d adc r16, r12
+ 972: 1d 1d adc r17, r13
+ 974: e4 82 std Z+4, r14 ; 0x04
+ 976: f5 82 std Z+5, r15 ; 0x05
+ 978: 06 83 std Z+6, r16 ; 0x06
+ 97a: 17 83 std Z+7, r17 ; 0x07
+ 97c: 83 e0 ldi r24, 0x03 ; 3
+ 97e: 80 83 st Z, r24
+ 980: 24 81 ldd r18, Z+4 ; 0x04
+ 982: 35 81 ldd r19, Z+5 ; 0x05
+ 984: 46 81 ldd r20, Z+6 ; 0x06
+ 986: 57 81 ldd r21, Z+7 ; 0x07
+ 988: 57 ff sbrs r21, 7
+ 98a: 1a c0 rjmp .+52 ; 0x9c0 <__stack+0xc1>
+ 98c: c9 01 movw r24, r18
+ 98e: aa 27 eor r26, r26
+ 990: 97 fd sbrc r25, 7
+ 992: a0 95 com r26
+ 994: ba 2f mov r27, r26
+ 996: 81 70 andi r24, 0x01 ; 1
+ 998: 90 70 andi r25, 0x00 ; 0
+ 99a: a0 70 andi r26, 0x00 ; 0
+ 99c: b0 70 andi r27, 0x00 ; 0
+ 99e: 56 95 lsr r21
+ 9a0: 47 95 ror r20
+ 9a2: 37 95 ror r19
+ 9a4: 27 95 ror r18
+ 9a6: 82 2b or r24, r18
+ 9a8: 93 2b or r25, r19
+ 9aa: a4 2b or r26, r20
+ 9ac: b5 2b or r27, r21
+ 9ae: 84 83 std Z+4, r24 ; 0x04
+ 9b0: 95 83 std Z+5, r25 ; 0x05
+ 9b2: a6 83 std Z+6, r26 ; 0x06
+ 9b4: b7 83 std Z+7, r27 ; 0x07
+ 9b6: 82 81 ldd r24, Z+2 ; 0x02
+ 9b8: 93 81 ldd r25, Z+3 ; 0x03
+ 9ba: 01 96 adiw r24, 0x01 ; 1
+ 9bc: 93 83 std Z+3, r25 ; 0x03
+ 9be: 82 83 std Z+2, r24 ; 0x02
+ 9c0: df 01 movw r26, r30
+ 9c2: 01 c0 rjmp .+2 ; 0x9c6 <__stack+0xc7>
+ 9c4: d2 01 movw r26, r4
+ 9c6: cd 01 movw r24, r26
+ 9c8: cd b7 in r28, 0x3d ; 61
+ 9ca: de b7 in r29, 0x3e ; 62
+ 9cc: e2 e1 ldi r30, 0x12 ; 18
+ 9ce: 0c 94 62 08 jmp 0x10c4 ; 0x10c4 <__epilogue_restores__>
+
+000009d2 <__subsf3>:
+ 9d2: a0 e2 ldi r26, 0x20 ; 32
+ 9d4: b0 e0 ldi r27, 0x00 ; 0
+ 9d6: ef ee ldi r30, 0xEF ; 239
+ 9d8: f4 e0 ldi r31, 0x04 ; 4
+ 9da: 0c 94 52 08 jmp 0x10a4 ; 0x10a4 <__prologue_saves__+0x18>
+ 9de: 69 83 std Y+1, r22 ; 0x01
+ 9e0: 7a 83 std Y+2, r23 ; 0x02
+ 9e2: 8b 83 std Y+3, r24 ; 0x03
+ 9e4: 9c 83 std Y+4, r25 ; 0x04
+ 9e6: 2d 83 std Y+5, r18 ; 0x05
+ 9e8: 3e 83 std Y+6, r19 ; 0x06
+ 9ea: 4f 83 std Y+7, r20 ; 0x07
+ 9ec: 58 87 std Y+8, r21 ; 0x08
+ 9ee: e9 e0 ldi r30, 0x09 ; 9
+ 9f0: ee 2e mov r14, r30
+ 9f2: f1 2c mov r15, r1
+ 9f4: ec 0e add r14, r28
+ 9f6: fd 1e adc r15, r29
+ 9f8: ce 01 movw r24, r28
+ 9fa: 01 96 adiw r24, 0x01 ; 1
+ 9fc: b7 01 movw r22, r14
+ 9fe: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a02: 8e 01 movw r16, r28
+ a04: 0f 5e subi r16, 0xEF ; 239
+ a06: 1f 4f sbci r17, 0xFF ; 255
+ a08: ce 01 movw r24, r28
+ a0a: 05 96 adiw r24, 0x05 ; 5
+ a0c: b8 01 movw r22, r16
+ a0e: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a12: 8a 89 ldd r24, Y+18 ; 0x12
+ a14: 91 e0 ldi r25, 0x01 ; 1
+ a16: 89 27 eor r24, r25
+ a18: 8a 8b std Y+18, r24 ; 0x12
+ a1a: c7 01 movw r24, r14
+ a1c: b8 01 movw r22, r16
+ a1e: ae 01 movw r20, r28
+ a20: 47 5e subi r20, 0xE7 ; 231
+ a22: 5f 4f sbci r21, 0xFF ; 255
+ a24: 0e 94 9d 03 call 0x73a ; 0x73a <_fpadd_parts>
+ a28: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ a2c: a0 96 adiw r28, 0x20 ; 32
+ a2e: e6 e0 ldi r30, 0x06 ; 6
+ a30: 0c 94 6e 08 jmp 0x10dc ; 0x10dc <__epilogue_restores__+0x18>
+
+00000a34 <__addsf3>:
+ a34: a0 e2 ldi r26, 0x20 ; 32
+ a36: b0 e0 ldi r27, 0x00 ; 0
+ a38: e0 e2 ldi r30, 0x20 ; 32
+ a3a: f5 e0 ldi r31, 0x05 ; 5
+ a3c: 0c 94 52 08 jmp 0x10a4 ; 0x10a4 <__prologue_saves__+0x18>
+ a40: 69 83 std Y+1, r22 ; 0x01
+ a42: 7a 83 std Y+2, r23 ; 0x02
+ a44: 8b 83 std Y+3, r24 ; 0x03
+ a46: 9c 83 std Y+4, r25 ; 0x04
+ a48: 2d 83 std Y+5, r18 ; 0x05
+ a4a: 3e 83 std Y+6, r19 ; 0x06
+ a4c: 4f 83 std Y+7, r20 ; 0x07
+ a4e: 58 87 std Y+8, r21 ; 0x08
+ a50: f9 e0 ldi r31, 0x09 ; 9
+ a52: ef 2e mov r14, r31
+ a54: f1 2c mov r15, r1
+ a56: ec 0e add r14, r28
+ a58: fd 1e adc r15, r29
+ a5a: ce 01 movw r24, r28
+ a5c: 01 96 adiw r24, 0x01 ; 1
+ a5e: b7 01 movw r22, r14
+ a60: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a64: 8e 01 movw r16, r28
+ a66: 0f 5e subi r16, 0xEF ; 239
+ a68: 1f 4f sbci r17, 0xFF ; 255
+ a6a: ce 01 movw r24, r28
+ a6c: 05 96 adiw r24, 0x05 ; 5
+ a6e: b8 01 movw r22, r16
+ a70: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a74: c7 01 movw r24, r14
+ a76: b8 01 movw r22, r16
+ a78: ae 01 movw r20, r28
+ a7a: 47 5e subi r20, 0xE7 ; 231
+ a7c: 5f 4f sbci r21, 0xFF ; 255
+ a7e: 0e 94 9d 03 call 0x73a ; 0x73a <_fpadd_parts>
+ a82: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ a86: a0 96 adiw r28, 0x20 ; 32
+ a88: e6 e0 ldi r30, 0x06 ; 6
+ a8a: 0c 94 6e 08 jmp 0x10dc ; 0x10dc <__epilogue_restores__+0x18>
+
+00000a8e <__mulsf3>:
+ a8e: a0 e2 ldi r26, 0x20 ; 32
+ a90: b0 e0 ldi r27, 0x00 ; 0
+ a92: ed e4 ldi r30, 0x4D ; 77
+ a94: f5 e0 ldi r31, 0x05 ; 5
+ a96: 0c 94 46 08 jmp 0x108c ; 0x108c <__prologue_saves__>
+ a9a: 69 83 std Y+1, r22 ; 0x01
+ a9c: 7a 83 std Y+2, r23 ; 0x02
+ a9e: 8b 83 std Y+3, r24 ; 0x03
+ aa0: 9c 83 std Y+4, r25 ; 0x04
+ aa2: 2d 83 std Y+5, r18 ; 0x05
+ aa4: 3e 83 std Y+6, r19 ; 0x06
+ aa6: 4f 83 std Y+7, r20 ; 0x07
+ aa8: 58 87 std Y+8, r21 ; 0x08
+ aaa: ce 01 movw r24, r28
+ aac: 01 96 adiw r24, 0x01 ; 1
+ aae: be 01 movw r22, r28
+ ab0: 67 5f subi r22, 0xF7 ; 247
+ ab2: 7f 4f sbci r23, 0xFF ; 255
+ ab4: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ab8: ce 01 movw r24, r28
+ aba: 05 96 adiw r24, 0x05 ; 5
+ abc: be 01 movw r22, r28
+ abe: 6f 5e subi r22, 0xEF ; 239
+ ac0: 7f 4f sbci r23, 0xFF ; 255
+ ac2: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ac6: 99 85 ldd r25, Y+9 ; 0x09
+ ac8: 92 30 cpi r25, 0x02 ; 2
+ aca: 88 f0 brcs .+34 ; 0xaee <__mulsf3+0x60>
+ acc: 89 89 ldd r24, Y+17 ; 0x11
+ ace: 82 30 cpi r24, 0x02 ; 2
+ ad0: c8 f0 brcs .+50 ; 0xb04 <__mulsf3+0x76>
+ ad2: 94 30 cpi r25, 0x04 ; 4
+ ad4: 19 f4 brne .+6 ; 0xadc <__mulsf3+0x4e>
+ ad6: 82 30 cpi r24, 0x02 ; 2
+ ad8: 51 f4 brne .+20 ; 0xaee <__mulsf3+0x60>
+ ada: 04 c0 rjmp .+8 ; 0xae4 <__mulsf3+0x56>
+ adc: 84 30 cpi r24, 0x04 ; 4
+ ade: 29 f4 brne .+10 ; 0xaea <__mulsf3+0x5c>
+ ae0: 92 30 cpi r25, 0x02 ; 2
+ ae2: 81 f4 brne .+32 ; 0xb04 <__mulsf3+0x76>
+ ae4: 89 e1 ldi r24, 0x19 ; 25
+ ae6: 91 e0 ldi r25, 0x01 ; 1
+ ae8: c6 c0 rjmp .+396 ; 0xc76 <__mulsf3+0x1e8>
+ aea: 92 30 cpi r25, 0x02 ; 2
+ aec: 49 f4 brne .+18 ; 0xb00 <__mulsf3+0x72>
+ aee: 20 e0 ldi r18, 0x00 ; 0
+ af0: 9a 85 ldd r25, Y+10 ; 0x0a
+ af2: 8a 89 ldd r24, Y+18 ; 0x12
+ af4: 98 13 cpse r25, r24
+ af6: 21 e0 ldi r18, 0x01 ; 1
+ af8: 2a 87 std Y+10, r18 ; 0x0a
+ afa: ce 01 movw r24, r28
+ afc: 09 96 adiw r24, 0x09 ; 9
+ afe: bb c0 rjmp .+374 ; 0xc76 <__mulsf3+0x1e8>
+ b00: 82 30 cpi r24, 0x02 ; 2
+ b02: 49 f4 brne .+18 ; 0xb16 <__mulsf3+0x88>
+ b04: 20 e0 ldi r18, 0x00 ; 0
+ b06: 9a 85 ldd r25, Y+10 ; 0x0a
+ b08: 8a 89 ldd r24, Y+18 ; 0x12
+ b0a: 98 13 cpse r25, r24
+ b0c: 21 e0 ldi r18, 0x01 ; 1
+ b0e: 2a 8b std Y+18, r18 ; 0x12
+ b10: ce 01 movw r24, r28
+ b12: 41 96 adiw r24, 0x11 ; 17
+ b14: b0 c0 rjmp .+352 ; 0xc76 <__mulsf3+0x1e8>
+ b16: 2d 84 ldd r2, Y+13 ; 0x0d
+ b18: 3e 84 ldd r3, Y+14 ; 0x0e
+ b1a: 4f 84 ldd r4, Y+15 ; 0x0f
+ b1c: 58 88 ldd r5, Y+16 ; 0x10
+ b1e: 6d 88 ldd r6, Y+21 ; 0x15
+ b20: 7e 88 ldd r7, Y+22 ; 0x16
+ b22: 8f 88 ldd r8, Y+23 ; 0x17
+ b24: 98 8c ldd r9, Y+24 ; 0x18
+ b26: ee 24 eor r14, r14
+ b28: ff 24 eor r15, r15
+ b2a: 87 01 movw r16, r14
+ b2c: aa 24 eor r10, r10
+ b2e: bb 24 eor r11, r11
+ b30: 65 01 movw r12, r10
+ b32: 40 e0 ldi r20, 0x00 ; 0
+ b34: 50 e0 ldi r21, 0x00 ; 0
+ b36: 60 e0 ldi r22, 0x00 ; 0
+ b38: 70 e0 ldi r23, 0x00 ; 0
+ b3a: e0 e0 ldi r30, 0x00 ; 0
+ b3c: f0 e0 ldi r31, 0x00 ; 0
+ b3e: c1 01 movw r24, r2
+ b40: 81 70 andi r24, 0x01 ; 1
+ b42: 90 70 andi r25, 0x00 ; 0
+ b44: 89 2b or r24, r25
+ b46: e9 f0 breq .+58 ; 0xb82 <__mulsf3+0xf4>
+ b48: e6 0c add r14, r6
+ b4a: f7 1c adc r15, r7
+ b4c: 08 1d adc r16, r8
+ b4e: 19 1d adc r17, r9
+ b50: 9a 01 movw r18, r20
+ b52: ab 01 movw r20, r22
+ b54: 2a 0d add r18, r10
+ b56: 3b 1d adc r19, r11
+ b58: 4c 1d adc r20, r12
+ b5a: 5d 1d adc r21, r13
+ b5c: 80 e0 ldi r24, 0x00 ; 0
+ b5e: 90 e0 ldi r25, 0x00 ; 0
+ b60: a0 e0 ldi r26, 0x00 ; 0
+ b62: b0 e0 ldi r27, 0x00 ; 0
+ b64: e6 14 cp r14, r6
+ b66: f7 04 cpc r15, r7
+ b68: 08 05 cpc r16, r8
+ b6a: 19 05 cpc r17, r9
+ b6c: 20 f4 brcc .+8 ; 0xb76 <__mulsf3+0xe8>
+ b6e: 81 e0 ldi r24, 0x01 ; 1
+ b70: 90 e0 ldi r25, 0x00 ; 0
+ b72: a0 e0 ldi r26, 0x00 ; 0
+ b74: b0 e0 ldi r27, 0x00 ; 0
+ b76: ba 01 movw r22, r20
+ b78: a9 01 movw r20, r18
+ b7a: 48 0f add r20, r24
+ b7c: 59 1f adc r21, r25
+ b7e: 6a 1f adc r22, r26
+ b80: 7b 1f adc r23, r27
+ b82: aa 0c add r10, r10
+ b84: bb 1c adc r11, r11
+ b86: cc 1c adc r12, r12
+ b88: dd 1c adc r13, r13
+ b8a: 97 fe sbrs r9, 7
+ b8c: 08 c0 rjmp .+16 ; 0xb9e <__mulsf3+0x110>
+ b8e: 81 e0 ldi r24, 0x01 ; 1
+ b90: 90 e0 ldi r25, 0x00 ; 0
+ b92: a0 e0 ldi r26, 0x00 ; 0
+ b94: b0 e0 ldi r27, 0x00 ; 0
+ b96: a8 2a or r10, r24
+ b98: b9 2a or r11, r25
+ b9a: ca 2a or r12, r26
+ b9c: db 2a or r13, r27
+ b9e: 31 96 adiw r30, 0x01 ; 1
+ ba0: e0 32 cpi r30, 0x20 ; 32
+ ba2: f1 05 cpc r31, r1
+ ba4: 49 f0 breq .+18 ; 0xbb8 <__mulsf3+0x12a>
+ ba6: 66 0c add r6, r6
+ ba8: 77 1c adc r7, r7
+ baa: 88 1c adc r8, r8
+ bac: 99 1c adc r9, r9
+ bae: 56 94 lsr r5
+ bb0: 47 94 ror r4
+ bb2: 37 94 ror r3
+ bb4: 27 94 ror r2
+ bb6: c3 cf rjmp .-122 ; 0xb3e <__mulsf3+0xb0>
+ bb8: fa 85 ldd r31, Y+10 ; 0x0a
+ bba: ea 89 ldd r30, Y+18 ; 0x12
+ bbc: 2b 89 ldd r18, Y+19 ; 0x13
+ bbe: 3c 89 ldd r19, Y+20 ; 0x14
+ bc0: 8b 85 ldd r24, Y+11 ; 0x0b
+ bc2: 9c 85 ldd r25, Y+12 ; 0x0c
+ bc4: 28 0f add r18, r24
+ bc6: 39 1f adc r19, r25
+ bc8: 2e 5f subi r18, 0xFE ; 254
+ bca: 3f 4f sbci r19, 0xFF ; 255
+ bcc: 17 c0 rjmp .+46 ; 0xbfc <__mulsf3+0x16e>
+ bce: ca 01 movw r24, r20
+ bd0: 81 70 andi r24, 0x01 ; 1
+ bd2: 90 70 andi r25, 0x00 ; 0
+ bd4: 89 2b or r24, r25
+ bd6: 61 f0 breq .+24 ; 0xbf0 <__mulsf3+0x162>
+ bd8: 16 95 lsr r17
+ bda: 07 95 ror r16
+ bdc: f7 94 ror r15
+ bde: e7 94 ror r14
+ be0: 80 e0 ldi r24, 0x00 ; 0
+ be2: 90 e0 ldi r25, 0x00 ; 0
+ be4: a0 e0 ldi r26, 0x00 ; 0
+ be6: b0 e8 ldi r27, 0x80 ; 128
+ be8: e8 2a or r14, r24
+ bea: f9 2a or r15, r25
+ bec: 0a 2b or r16, r26
+ bee: 1b 2b or r17, r27
+ bf0: 76 95 lsr r23
+ bf2: 67 95 ror r22
+ bf4: 57 95 ror r21
+ bf6: 47 95 ror r20
+ bf8: 2f 5f subi r18, 0xFF ; 255
+ bfa: 3f 4f sbci r19, 0xFF ; 255
+ bfc: 77 fd sbrc r23, 7
+ bfe: e7 cf rjmp .-50 ; 0xbce <__mulsf3+0x140>
+ c00: 0c c0 rjmp .+24 ; 0xc1a <__mulsf3+0x18c>
+ c02: 44 0f add r20, r20
+ c04: 55 1f adc r21, r21
+ c06: 66 1f adc r22, r22
+ c08: 77 1f adc r23, r23
+ c0a: 17 fd sbrc r17, 7
+ c0c: 41 60 ori r20, 0x01 ; 1
+ c0e: ee 0c add r14, r14
+ c10: ff 1c adc r15, r15
+ c12: 00 1f adc r16, r16
+ c14: 11 1f adc r17, r17
+ c16: 21 50 subi r18, 0x01 ; 1
+ c18: 30 40 sbci r19, 0x00 ; 0
+ c1a: 40 30 cpi r20, 0x00 ; 0
+ c1c: 90 e0 ldi r25, 0x00 ; 0
+ c1e: 59 07 cpc r21, r25
+ c20: 90 e0 ldi r25, 0x00 ; 0
+ c22: 69 07 cpc r22, r25
+ c24: 90 e4 ldi r25, 0x40 ; 64
+ c26: 79 07 cpc r23, r25
+ c28: 60 f3 brcs .-40 ; 0xc02 <__mulsf3+0x174>
+ c2a: 2b 8f std Y+27, r18 ; 0x1b
+ c2c: 3c 8f std Y+28, r19 ; 0x1c
+ c2e: db 01 movw r26, r22
+ c30: ca 01 movw r24, r20
+ c32: 8f 77 andi r24, 0x7F ; 127
+ c34: 90 70 andi r25, 0x00 ; 0
+ c36: a0 70 andi r26, 0x00 ; 0
+ c38: b0 70 andi r27, 0x00 ; 0
+ c3a: 80 34 cpi r24, 0x40 ; 64
+ c3c: 91 05 cpc r25, r1
+ c3e: a1 05 cpc r26, r1
+ c40: b1 05 cpc r27, r1
+ c42: 61 f4 brne .+24 ; 0xc5c <__mulsf3+0x1ce>
+ c44: 47 fd sbrc r20, 7
+ c46: 0a c0 rjmp .+20 ; 0xc5c <__mulsf3+0x1ce>
+ c48: e1 14 cp r14, r1
+ c4a: f1 04 cpc r15, r1
+ c4c: 01 05 cpc r16, r1
+ c4e: 11 05 cpc r17, r1
+ c50: 29 f0 breq .+10 ; 0xc5c <__mulsf3+0x1ce>
+ c52: 40 5c subi r20, 0xC0 ; 192
+ c54: 5f 4f sbci r21, 0xFF ; 255
+ c56: 6f 4f sbci r22, 0xFF ; 255
+ c58: 7f 4f sbci r23, 0xFF ; 255
+ c5a: 40 78 andi r20, 0x80 ; 128
+ c5c: 1a 8e std Y+26, r1 ; 0x1a
+ c5e: fe 17 cp r31, r30
+ c60: 11 f0 breq .+4 ; 0xc66 <__mulsf3+0x1d8>
+ c62: 81 e0 ldi r24, 0x01 ; 1
+ c64: 8a 8f std Y+26, r24 ; 0x1a
+ c66: 4d 8f std Y+29, r20 ; 0x1d
+ c68: 5e 8f std Y+30, r21 ; 0x1e
+ c6a: 6f 8f std Y+31, r22 ; 0x1f
+ c6c: 78 a3 std Y+32, r23 ; 0x20
+ c6e: 83 e0 ldi r24, 0x03 ; 3
+ c70: 89 8f std Y+25, r24 ; 0x19
+ c72: ce 01 movw r24, r28
+ c74: 49 96 adiw r24, 0x19 ; 25
+ c76: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ c7a: a0 96 adiw r28, 0x20 ; 32
+ c7c: e2 e1 ldi r30, 0x12 ; 18
+ c7e: 0c 94 62 08 jmp 0x10c4 ; 0x10c4 <__epilogue_restores__>
+
+00000c82 <__fixsfsi>:
+ c82: ac e0 ldi r26, 0x0C ; 12
+ c84: b0 e0 ldi r27, 0x00 ; 0
+ c86: e7 e4 ldi r30, 0x47 ; 71
+ c88: f6 e0 ldi r31, 0x06 ; 6
+ c8a: 0c 94 56 08 jmp 0x10ac ; 0x10ac <__prologue_saves__+0x20>
+ c8e: 69 83 std Y+1, r22 ; 0x01
+ c90: 7a 83 std Y+2, r23 ; 0x02
+ c92: 8b 83 std Y+3, r24 ; 0x03
+ c94: 9c 83 std Y+4, r25 ; 0x04
+ c96: ce 01 movw r24, r28
+ c98: 01 96 adiw r24, 0x01 ; 1
+ c9a: be 01 movw r22, r28
+ c9c: 6b 5f subi r22, 0xFB ; 251
+ c9e: 7f 4f sbci r23, 0xFF ; 255
+ ca0: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ca4: 8d 81 ldd r24, Y+5 ; 0x05
+ ca6: 82 30 cpi r24, 0x02 ; 2
+ ca8: 61 f1 breq .+88 ; 0xd02 <__fixsfsi+0x80>
+ caa: 82 30 cpi r24, 0x02 ; 2
+ cac: 50 f1 brcs .+84 ; 0xd02 <__fixsfsi+0x80>
+ cae: 84 30 cpi r24, 0x04 ; 4
+ cb0: 21 f4 brne .+8 ; 0xcba <__fixsfsi+0x38>
+ cb2: 8e 81 ldd r24, Y+6 ; 0x06
+ cb4: 88 23 and r24, r24
+ cb6: 51 f1 breq .+84 ; 0xd0c <__fixsfsi+0x8a>
+ cb8: 2e c0 rjmp .+92 ; 0xd16 <__fixsfsi+0x94>
+ cba: 2f 81 ldd r18, Y+7 ; 0x07
+ cbc: 38 85 ldd r19, Y+8 ; 0x08
+ cbe: 37 fd sbrc r19, 7
+ cc0: 20 c0 rjmp .+64 ; 0xd02 <__fixsfsi+0x80>
+ cc2: 6e 81 ldd r22, Y+6 ; 0x06
+ cc4: 2f 31 cpi r18, 0x1F ; 31
+ cc6: 31 05 cpc r19, r1
+ cc8: 1c f0 brlt .+6 ; 0xcd0 <__fixsfsi+0x4e>
+ cca: 66 23 and r22, r22
+ ccc: f9 f0 breq .+62 ; 0xd0c <__fixsfsi+0x8a>
+ cce: 23 c0 rjmp .+70 ; 0xd16 <__fixsfsi+0x94>
+ cd0: 8e e1 ldi r24, 0x1E ; 30
+ cd2: 90 e0 ldi r25, 0x00 ; 0
+ cd4: 82 1b sub r24, r18
+ cd6: 93 0b sbc r25, r19
+ cd8: 29 85 ldd r18, Y+9 ; 0x09
+ cda: 3a 85 ldd r19, Y+10 ; 0x0a
+ cdc: 4b 85 ldd r20, Y+11 ; 0x0b
+ cde: 5c 85 ldd r21, Y+12 ; 0x0c
+ ce0: 04 c0 rjmp .+8 ; 0xcea <__fixsfsi+0x68>
+ ce2: 56 95 lsr r21
+ ce4: 47 95 ror r20
+ ce6: 37 95 ror r19
+ ce8: 27 95 ror r18
+ cea: 8a 95 dec r24
+ cec: d2 f7 brpl .-12 ; 0xce2 <__fixsfsi+0x60>
+ cee: 66 23 and r22, r22
+ cf0: b1 f0 breq .+44 ; 0xd1e <__fixsfsi+0x9c>
+ cf2: 50 95 com r21
+ cf4: 40 95 com r20
+ cf6: 30 95 com r19
+ cf8: 21 95 neg r18
+ cfa: 3f 4f sbci r19, 0xFF ; 255
+ cfc: 4f 4f sbci r20, 0xFF ; 255
+ cfe: 5f 4f sbci r21, 0xFF ; 255
+ d00: 0e c0 rjmp .+28 ; 0xd1e <__fixsfsi+0x9c>
+ d02: 20 e0 ldi r18, 0x00 ; 0
+ d04: 30 e0 ldi r19, 0x00 ; 0
+ d06: 40 e0 ldi r20, 0x00 ; 0
+ d08: 50 e0 ldi r21, 0x00 ; 0
+ d0a: 09 c0 rjmp .+18 ; 0xd1e <__fixsfsi+0x9c>
+ d0c: 2f ef ldi r18, 0xFF ; 255
+ d0e: 3f ef ldi r19, 0xFF ; 255
+ d10: 4f ef ldi r20, 0xFF ; 255
+ d12: 5f e7 ldi r21, 0x7F ; 127
+ d14: 04 c0 rjmp .+8 ; 0xd1e <__fixsfsi+0x9c>
+ d16: 20 e0 ldi r18, 0x00 ; 0
+ d18: 30 e0 ldi r19, 0x00 ; 0
+ d1a: 40 e0 ldi r20, 0x00 ; 0
+ d1c: 50 e8 ldi r21, 0x80 ; 128
+ d1e: b9 01 movw r22, r18
+ d20: ca 01 movw r24, r20
+ d22: 2c 96 adiw r28, 0x0c ; 12
+ d24: e2 e0 ldi r30, 0x02 ; 2
+ d26: 0c 94 72 08 jmp 0x10e4 ; 0x10e4 <__epilogue_restores__+0x20>
+
+00000d2a <__pack_f>:
+ d2a: df 92 push r13
+ d2c: ef 92 push r14
+ d2e: ff 92 push r15
+ d30: 0f 93 push r16
+ d32: 1f 93 push r17
+ d34: fc 01 movw r30, r24
+ d36: e4 80 ldd r14, Z+4 ; 0x04
+ d38: f5 80 ldd r15, Z+5 ; 0x05
+ d3a: 06 81 ldd r16, Z+6 ; 0x06
+ d3c: 17 81 ldd r17, Z+7 ; 0x07
+ d3e: d1 80 ldd r13, Z+1 ; 0x01
+ d40: 80 81 ld r24, Z
+ d42: 82 30 cpi r24, 0x02 ; 2
+ d44: 48 f4 brcc .+18 ; 0xd58 <__pack_f+0x2e>
+ d46: 80 e0 ldi r24, 0x00 ; 0
+ d48: 90 e0 ldi r25, 0x00 ; 0
+ d4a: a0 e1 ldi r26, 0x10 ; 16
+ d4c: b0 e0 ldi r27, 0x00 ; 0
+ d4e: e8 2a or r14, r24
+ d50: f9 2a or r15, r25
+ d52: 0a 2b or r16, r26
+ d54: 1b 2b or r17, r27
+ d56: a5 c0 rjmp .+330 ; 0xea2 <__pack_f+0x178>
+ d58: 84 30 cpi r24, 0x04 ; 4
+ d5a: 09 f4 brne .+2 ; 0xd5e <__pack_f+0x34>
+ d5c: 9f c0 rjmp .+318 ; 0xe9c <__pack_f+0x172>
+ d5e: 82 30 cpi r24, 0x02 ; 2
+ d60: 21 f4 brne .+8 ; 0xd6a <__pack_f+0x40>
+ d62: ee 24 eor r14, r14
+ d64: ff 24 eor r15, r15
+ d66: 87 01 movw r16, r14
+ d68: 05 c0 rjmp .+10 ; 0xd74 <__pack_f+0x4a>
+ d6a: e1 14 cp r14, r1
+ d6c: f1 04 cpc r15, r1
+ d6e: 01 05 cpc r16, r1
+ d70: 11 05 cpc r17, r1
+ d72: 19 f4 brne .+6 ; 0xd7a <__pack_f+0x50>
+ d74: e0 e0 ldi r30, 0x00 ; 0
+ d76: f0 e0 ldi r31, 0x00 ; 0
+ d78: 96 c0 rjmp .+300 ; 0xea6 <__pack_f+0x17c>
+ d7a: 62 81 ldd r22, Z+2 ; 0x02
+ d7c: 73 81 ldd r23, Z+3 ; 0x03
+ d7e: 9f ef ldi r25, 0xFF ; 255
+ d80: 62 38 cpi r22, 0x82 ; 130
+ d82: 79 07 cpc r23, r25
+ d84: 0c f0 brlt .+2 ; 0xd88 <__pack_f+0x5e>
+ d86: 5b c0 rjmp .+182 ; 0xe3e <__pack_f+0x114>
+ d88: 22 e8 ldi r18, 0x82 ; 130
+ d8a: 3f ef ldi r19, 0xFF ; 255
+ d8c: 26 1b sub r18, r22
+ d8e: 37 0b sbc r19, r23
+ d90: 2a 31 cpi r18, 0x1A ; 26
+ d92: 31 05 cpc r19, r1
+ d94: 2c f0 brlt .+10 ; 0xda0 <__pack_f+0x76>
+ d96: 20 e0 ldi r18, 0x00 ; 0
+ d98: 30 e0 ldi r19, 0x00 ; 0
+ d9a: 40 e0 ldi r20, 0x00 ; 0
+ d9c: 50 e0 ldi r21, 0x00 ; 0
+ d9e: 2a c0 rjmp .+84 ; 0xdf4 <__pack_f+0xca>
+ da0: b8 01 movw r22, r16
+ da2: a7 01 movw r20, r14
+ da4: 02 2e mov r0, r18
+ da6: 04 c0 rjmp .+8 ; 0xdb0 <__pack_f+0x86>
+ da8: 76 95 lsr r23
+ daa: 67 95 ror r22
+ dac: 57 95 ror r21
+ dae: 47 95 ror r20
+ db0: 0a 94 dec r0
+ db2: d2 f7 brpl .-12 ; 0xda8 <__pack_f+0x7e>
+ db4: 81 e0 ldi r24, 0x01 ; 1
+ db6: 90 e0 ldi r25, 0x00 ; 0
+ db8: a0 e0 ldi r26, 0x00 ; 0
+ dba: b0 e0 ldi r27, 0x00 ; 0
+ dbc: 04 c0 rjmp .+8 ; 0xdc6 <__pack_f+0x9c>
+ dbe: 88 0f add r24, r24
+ dc0: 99 1f adc r25, r25
+ dc2: aa 1f adc r26, r26
+ dc4: bb 1f adc r27, r27
+ dc6: 2a 95 dec r18
+ dc8: d2 f7 brpl .-12 ; 0xdbe <__pack_f+0x94>
+ dca: 01 97 sbiw r24, 0x01 ; 1
+ dcc: a1 09 sbc r26, r1
+ dce: b1 09 sbc r27, r1
+ dd0: 8e 21 and r24, r14
+ dd2: 9f 21 and r25, r15
+ dd4: a0 23 and r26, r16
+ dd6: b1 23 and r27, r17
+ dd8: 00 97 sbiw r24, 0x00 ; 0
+ dda: a1 05 cpc r26, r1
+ ddc: b1 05 cpc r27, r1
+ dde: 21 f0 breq .+8 ; 0xde8 <__pack_f+0xbe>
+ de0: 81 e0 ldi r24, 0x01 ; 1
+ de2: 90 e0 ldi r25, 0x00 ; 0
+ de4: a0 e0 ldi r26, 0x00 ; 0
+ de6: b0 e0 ldi r27, 0x00 ; 0
+ de8: 9a 01 movw r18, r20
+ dea: ab 01 movw r20, r22
+ dec: 28 2b or r18, r24
+ dee: 39 2b or r19, r25
+ df0: 4a 2b or r20, r26
+ df2: 5b 2b or r21, r27
+ df4: da 01 movw r26, r20
+ df6: c9 01 movw r24, r18
+ df8: 8f 77 andi r24, 0x7F ; 127
+ dfa: 90 70 andi r25, 0x00 ; 0
+ dfc: a0 70 andi r26, 0x00 ; 0
+ dfe: b0 70 andi r27, 0x00 ; 0
+ e00: 80 34 cpi r24, 0x40 ; 64
+ e02: 91 05 cpc r25, r1
+ e04: a1 05 cpc r26, r1
+ e06: b1 05 cpc r27, r1
+ e08: 39 f4 brne .+14 ; 0xe18 <__pack_f+0xee>
+ e0a: 27 ff sbrs r18, 7
+ e0c: 09 c0 rjmp .+18 ; 0xe20 <__pack_f+0xf6>
+ e0e: 20 5c subi r18, 0xC0 ; 192
+ e10: 3f 4f sbci r19, 0xFF ; 255
+ e12: 4f 4f sbci r20, 0xFF ; 255
+ e14: 5f 4f sbci r21, 0xFF ; 255
+ e16: 04 c0 rjmp .+8 ; 0xe20 <__pack_f+0xf6>
+ e18: 21 5c subi r18, 0xC1 ; 193
+ e1a: 3f 4f sbci r19, 0xFF ; 255
+ e1c: 4f 4f sbci r20, 0xFF ; 255
+ e1e: 5f 4f sbci r21, 0xFF ; 255
+ e20: e0 e0 ldi r30, 0x00 ; 0
+ e22: f0 e0 ldi r31, 0x00 ; 0
+ e24: 20 30 cpi r18, 0x00 ; 0
+ e26: a0 e0 ldi r26, 0x00 ; 0
+ e28: 3a 07 cpc r19, r26
+ e2a: a0 e0 ldi r26, 0x00 ; 0
+ e2c: 4a 07 cpc r20, r26
+ e2e: a0 e4 ldi r26, 0x40 ; 64
+ e30: 5a 07 cpc r21, r26
+ e32: 10 f0 brcs .+4 ; 0xe38 <__pack_f+0x10e>
+ e34: e1 e0 ldi r30, 0x01 ; 1
+ e36: f0 e0 ldi r31, 0x00 ; 0
+ e38: 79 01 movw r14, r18
+ e3a: 8a 01 movw r16, r20
+ e3c: 27 c0 rjmp .+78 ; 0xe8c <__pack_f+0x162>
+ e3e: 60 38 cpi r22, 0x80 ; 128
+ e40: 71 05 cpc r23, r1
+ e42: 64 f5 brge .+88 ; 0xe9c <__pack_f+0x172>
+ e44: fb 01 movw r30, r22
+ e46: e1 58 subi r30, 0x81 ; 129
+ e48: ff 4f sbci r31, 0xFF ; 255
+ e4a: d8 01 movw r26, r16
+ e4c: c7 01 movw r24, r14
+ e4e: 8f 77 andi r24, 0x7F ; 127
+ e50: 90 70 andi r25, 0x00 ; 0
+ e52: a0 70 andi r26, 0x00 ; 0
+ e54: b0 70 andi r27, 0x00 ; 0
+ e56: 80 34 cpi r24, 0x40 ; 64
+ e58: 91 05 cpc r25, r1
+ e5a: a1 05 cpc r26, r1
+ e5c: b1 05 cpc r27, r1
+ e5e: 39 f4 brne .+14 ; 0xe6e <__pack_f+0x144>
+ e60: e7 fe sbrs r14, 7
+ e62: 0d c0 rjmp .+26 ; 0xe7e <__pack_f+0x154>
+ e64: 80 e4 ldi r24, 0x40 ; 64
+ e66: 90 e0 ldi r25, 0x00 ; 0
+ e68: a0 e0 ldi r26, 0x00 ; 0
+ e6a: b0 e0 ldi r27, 0x00 ; 0
+ e6c: 04 c0 rjmp .+8 ; 0xe76 <__pack_f+0x14c>
+ e6e: 8f e3 ldi r24, 0x3F ; 63
+ e70: 90 e0 ldi r25, 0x00 ; 0
+ e72: a0 e0 ldi r26, 0x00 ; 0
+ e74: b0 e0 ldi r27, 0x00 ; 0
+ e76: e8 0e add r14, r24
+ e78: f9 1e adc r15, r25
+ e7a: 0a 1f adc r16, r26
+ e7c: 1b 1f adc r17, r27
+ e7e: 17 ff sbrs r17, 7
+ e80: 05 c0 rjmp .+10 ; 0xe8c <__pack_f+0x162>
+ e82: 16 95 lsr r17
+ e84: 07 95 ror r16
+ e86: f7 94 ror r15
+ e88: e7 94 ror r14
+ e8a: 31 96 adiw r30, 0x01 ; 1
+ e8c: 87 e0 ldi r24, 0x07 ; 7
+ e8e: 16 95 lsr r17
+ e90: 07 95 ror r16
+ e92: f7 94 ror r15
+ e94: e7 94 ror r14
+ e96: 8a 95 dec r24
+ e98: d1 f7 brne .-12 ; 0xe8e <__pack_f+0x164>
+ e9a: 05 c0 rjmp .+10 ; 0xea6 <__pack_f+0x17c>
+ e9c: ee 24 eor r14, r14
+ e9e: ff 24 eor r15, r15
+ ea0: 87 01 movw r16, r14
+ ea2: ef ef ldi r30, 0xFF ; 255
+ ea4: f0 e0 ldi r31, 0x00 ; 0
+ ea6: 6e 2f mov r22, r30
+ ea8: 67 95 ror r22
+ eaa: 66 27 eor r22, r22
+ eac: 67 95 ror r22
+ eae: 90 2f mov r25, r16
+ eb0: 9f 77 andi r25, 0x7F ; 127
+ eb2: d7 94 ror r13
+ eb4: dd 24 eor r13, r13
+ eb6: d7 94 ror r13
+ eb8: 8e 2f mov r24, r30
+ eba: 86 95 lsr r24
+ ebc: 49 2f mov r20, r25
+ ebe: 46 2b or r20, r22
+ ec0: 58 2f mov r21, r24
+ ec2: 5d 29 or r21, r13
+ ec4: b7 01 movw r22, r14
+ ec6: ca 01 movw r24, r20
+ ec8: 1f 91 pop r17
+ eca: 0f 91 pop r16
+ ecc: ff 90 pop r15
+ ece: ef 90 pop r14
+ ed0: df 90 pop r13
+ ed2: 08 95 ret
+
+00000ed4 <__unpack_f>:
+ ed4: fc 01 movw r30, r24
+ ed6: db 01 movw r26, r22
+ ed8: 40 81 ld r20, Z
+ eda: 51 81 ldd r21, Z+1 ; 0x01
+ edc: 22 81 ldd r18, Z+2 ; 0x02
+ ede: 62 2f mov r22, r18
+ ee0: 6f 77 andi r22, 0x7F ; 127
+ ee2: 70 e0 ldi r23, 0x00 ; 0
+ ee4: 22 1f adc r18, r18
+ ee6: 22 27 eor r18, r18
+ ee8: 22 1f adc r18, r18
+ eea: 93 81 ldd r25, Z+3 ; 0x03
+ eec: 89 2f mov r24, r25
+ eee: 88 0f add r24, r24
+ ef0: 82 2b or r24, r18
+ ef2: 28 2f mov r18, r24
+ ef4: 30 e0 ldi r19, 0x00 ; 0
+ ef6: 99 1f adc r25, r25
+ ef8: 99 27 eor r25, r25
+ efa: 99 1f adc r25, r25
+ efc: 11 96 adiw r26, 0x01 ; 1
+ efe: 9c 93 st X, r25
+ f00: 11 97 sbiw r26, 0x01 ; 1
+ f02: 21 15 cp r18, r1
+ f04: 31 05 cpc r19, r1
+ f06: a9 f5 brne .+106 ; 0xf72 <__unpack_f+0x9e>
+ f08: 41 15 cp r20, r1
+ f0a: 51 05 cpc r21, r1
+ f0c: 61 05 cpc r22, r1
+ f0e: 71 05 cpc r23, r1
+ f10: 11 f4 brne .+4 ; 0xf16 <__unpack_f+0x42>
+ f12: 82 e0 ldi r24, 0x02 ; 2
+ f14: 37 c0 rjmp .+110 ; 0xf84 <__unpack_f+0xb0>
+ f16: 82 e8 ldi r24, 0x82 ; 130
+ f18: 9f ef ldi r25, 0xFF ; 255
+ f1a: 13 96 adiw r26, 0x03 ; 3
+ f1c: 9c 93 st X, r25
+ f1e: 8e 93 st -X, r24
+ f20: 12 97 sbiw r26, 0x02 ; 2
+ f22: 9a 01 movw r18, r20
+ f24: ab 01 movw r20, r22
+ f26: 67 e0 ldi r22, 0x07 ; 7
+ f28: 22 0f add r18, r18
+ f2a: 33 1f adc r19, r19
+ f2c: 44 1f adc r20, r20
+ f2e: 55 1f adc r21, r21
+ f30: 6a 95 dec r22
+ f32: d1 f7 brne .-12 ; 0xf28 <__unpack_f+0x54>
+ f34: 83 e0 ldi r24, 0x03 ; 3
+ f36: 8c 93 st X, r24
+ f38: 0d c0 rjmp .+26 ; 0xf54 <__unpack_f+0x80>
+ f3a: 22 0f add r18, r18
+ f3c: 33 1f adc r19, r19
+ f3e: 44 1f adc r20, r20
+ f40: 55 1f adc r21, r21
+ f42: 12 96 adiw r26, 0x02 ; 2
+ f44: 8d 91 ld r24, X+
+ f46: 9c 91 ld r25, X
+ f48: 13 97 sbiw r26, 0x03 ; 3
+ f4a: 01 97 sbiw r24, 0x01 ; 1
+ f4c: 13 96 adiw r26, 0x03 ; 3
+ f4e: 9c 93 st X, r25
+ f50: 8e 93 st -X, r24
+ f52: 12 97 sbiw r26, 0x02 ; 2
+ f54: 20 30 cpi r18, 0x00 ; 0
+ f56: 80 e0 ldi r24, 0x00 ; 0
+ f58: 38 07 cpc r19, r24
+ f5a: 80 e0 ldi r24, 0x00 ; 0
+ f5c: 48 07 cpc r20, r24
+ f5e: 80 e4 ldi r24, 0x40 ; 64
+ f60: 58 07 cpc r21, r24
+ f62: 58 f3 brcs .-42 ; 0xf3a <__unpack_f+0x66>
+ f64: 14 96 adiw r26, 0x04 ; 4
+ f66: 2d 93 st X+, r18
+ f68: 3d 93 st X+, r19
+ f6a: 4d 93 st X+, r20
+ f6c: 5c 93 st X, r21
+ f6e: 17 97 sbiw r26, 0x07 ; 7
+ f70: 08 95 ret
+ f72: 2f 3f cpi r18, 0xFF ; 255
+ f74: 31 05 cpc r19, r1
+ f76: 79 f4 brne .+30 ; 0xf96 <__unpack_f+0xc2>
+ f78: 41 15 cp r20, r1
+ f7a: 51 05 cpc r21, r1
+ f7c: 61 05 cpc r22, r1
+ f7e: 71 05 cpc r23, r1
+ f80: 19 f4 brne .+6 ; 0xf88 <__unpack_f+0xb4>
+ f82: 84 e0 ldi r24, 0x04 ; 4
+ f84: 8c 93 st X, r24
+ f86: 08 95 ret
+ f88: 64 ff sbrs r22, 4
+ f8a: 03 c0 rjmp .+6 ; 0xf92 <__unpack_f+0xbe>
+ f8c: 81 e0 ldi r24, 0x01 ; 1
+ f8e: 8c 93 st X, r24
+ f90: 12 c0 rjmp .+36 ; 0xfb6 <__unpack_f+0xe2>
+ f92: 1c 92 st X, r1
+ f94: 10 c0 rjmp .+32 ; 0xfb6 <__unpack_f+0xe2>
+ f96: 2f 57 subi r18, 0x7F ; 127
+ f98: 30 40 sbci r19, 0x00 ; 0
+ f9a: 13 96 adiw r26, 0x03 ; 3
+ f9c: 3c 93 st X, r19
+ f9e: 2e 93 st -X, r18
+ fa0: 12 97 sbiw r26, 0x02 ; 2
+ fa2: 83 e0 ldi r24, 0x03 ; 3
+ fa4: 8c 93 st X, r24
+ fa6: 87 e0 ldi r24, 0x07 ; 7
+ fa8: 44 0f add r20, r20
+ faa: 55 1f adc r21, r21
+ fac: 66 1f adc r22, r22
+ fae: 77 1f adc r23, r23
+ fb0: 8a 95 dec r24
+ fb2: d1 f7 brne .-12 ; 0xfa8 <__unpack_f+0xd4>
+ fb4: 70 64 ori r23, 0x40 ; 64
+ fb6: 14 96 adiw r26, 0x04 ; 4
+ fb8: 4d 93 st X+, r20
+ fba: 5d 93 st X+, r21
+ fbc: 6d 93 st X+, r22
+ fbe: 7c 93 st X, r23
+ fc0: 17 97 sbiw r26, 0x07 ; 7
+ fc2: 08 95 ret
+
+00000fc4 <__divmodhi4>:
+ fc4: 97 fb bst r25, 7
+ fc6: 09 2e mov r0, r25
+ fc8: 07 26 eor r0, r23
+ fca: 0a d0 rcall .+20 ; 0xfe0 <__divmodhi4_neg1>
+ fcc: 77 fd sbrc r23, 7
+ fce: 04 d0 rcall .+8 ; 0xfd8 <__divmodhi4_neg2>
+ fd0: 49 d0 rcall .+146 ; 0x1064 <__udivmodhi4>
+ fd2: 06 d0 rcall .+12 ; 0xfe0 <__divmodhi4_neg1>
+ fd4: 00 20 and r0, r0
+ fd6: 1a f4 brpl .+6 ; 0xfde <__divmodhi4_exit>
+
+00000fd8 <__divmodhi4_neg2>:
+ fd8: 70 95 com r23
+ fda: 61 95 neg r22
+ fdc: 7f 4f sbci r23, 0xFF ; 255
+
+00000fde <__divmodhi4_exit>:
+ fde: 08 95 ret
+
+00000fe0 <__divmodhi4_neg1>:
+ fe0: f6 f7 brtc .-4 ; 0xfde <__divmodhi4_exit>
+ fe2: 90 95 com r25
+ fe4: 81 95 neg r24
+ fe6: 9f 4f sbci r25, 0xFF ; 255
+ fe8: 08 95 ret
+
+00000fea <__udivmodsi4>:
+ fea: a1 e2 ldi r26, 0x21 ; 33
+ fec: 1a 2e mov r1, r26
+ fee: aa 1b sub r26, r26
+ ff0: bb 1b sub r27, r27
+ ff2: fd 01 movw r30, r26
+ ff4: 0d c0 rjmp .+26 ; 0x1010 <__udivmodsi4_ep>
+
+00000ff6 <__udivmodsi4_loop>:
+ ff6: aa 1f adc r26, r26
+ ff8: bb 1f adc r27, r27
+ ffa: ee 1f adc r30, r30
+ ffc: ff 1f adc r31, r31
+ ffe: a2 17 cp r26, r18
+ 1000: b3 07 cpc r27, r19
+ 1002: e4 07 cpc r30, r20
+ 1004: f5 07 cpc r31, r21
+ 1006: 20 f0 brcs .+8 ; 0x1010 <__udivmodsi4_ep>
+ 1008: a2 1b sub r26, r18
+ 100a: b3 0b sbc r27, r19
+ 100c: e4 0b sbc r30, r20
+ 100e: f5 0b sbc r31, r21
+
+00001010 <__udivmodsi4_ep>:
+ 1010: 66 1f adc r22, r22
+ 1012: 77 1f adc r23, r23
+ 1014: 88 1f adc r24, r24
+ 1016: 99 1f adc r25, r25
+ 1018: 1a 94 dec r1
+ 101a: 69 f7 brne .-38 ; 0xff6 <__udivmodsi4_loop>
+ 101c: 60 95 com r22
+ 101e: 70 95 com r23
+ 1020: 80 95 com r24
+ 1022: 90 95 com r25
+ 1024: 9b 01 movw r18, r22
+ 1026: ac 01 movw r20, r24
+ 1028: bd 01 movw r22, r26
+ 102a: cf 01 movw r24, r30
+ 102c: 08 95 ret
+
+0000102e <__divmodsi4>:
+ 102e: 97 fb bst r25, 7
+ 1030: 09 2e mov r0, r25
+ 1032: 05 26 eor r0, r21
+ 1034: 0e d0 rcall .+28 ; 0x1052 <__divmodsi4_neg1>
+ 1036: 57 fd sbrc r21, 7
+ 1038: 04 d0 rcall .+8 ; 0x1042 <__divmodsi4_neg2>
+ 103a: d7 df rcall .-82 ; 0xfea <__udivmodsi4>
+ 103c: 0a d0 rcall .+20 ; 0x1052 <__divmodsi4_neg1>
+ 103e: 00 1c adc r0, r0
+ 1040: 38 f4 brcc .+14 ; 0x1050 <__divmodsi4_exit>
+
+00001042 <__divmodsi4_neg2>:
+ 1042: 50 95 com r21
+ 1044: 40 95 com r20
+ 1046: 30 95 com r19
+ 1048: 21 95 neg r18
+ 104a: 3f 4f sbci r19, 0xFF ; 255
+ 104c: 4f 4f sbci r20, 0xFF ; 255
+ 104e: 5f 4f sbci r21, 0xFF ; 255
+
+00001050 <__divmodsi4_exit>:
+ 1050: 08 95 ret
+
+00001052 <__divmodsi4_neg1>:
+ 1052: f6 f7 brtc .-4 ; 0x1050 <__divmodsi4_exit>
+ 1054: 90 95 com r25
+ 1056: 80 95 com r24
+ 1058: 70 95 com r23
+ 105a: 61 95 neg r22
+ 105c: 7f 4f sbci r23, 0xFF ; 255
+ 105e: 8f 4f sbci r24, 0xFF ; 255
+ 1060: 9f 4f sbci r25, 0xFF ; 255
+ 1062: 08 95 ret
+
+00001064 <__udivmodhi4>:
+ 1064: aa 1b sub r26, r26
+ 1066: bb 1b sub r27, r27
+ 1068: 51 e1 ldi r21, 0x11 ; 17
+ 106a: 07 c0 rjmp .+14 ; 0x107a <__udivmodhi4_ep>
+
+0000106c <__udivmodhi4_loop>:
+ 106c: aa 1f adc r26, r26
+ 106e: bb 1f adc r27, r27
+ 1070: a6 17 cp r26, r22
+ 1072: b7 07 cpc r27, r23
+ 1074: 10 f0 brcs .+4 ; 0x107a <__udivmodhi4_ep>
+ 1076: a6 1b sub r26, r22
+ 1078: b7 0b sbc r27, r23
+
+0000107a <__udivmodhi4_ep>:
+ 107a: 88 1f adc r24, r24
+ 107c: 99 1f adc r25, r25
+ 107e: 5a 95 dec r21
+ 1080: a9 f7 brne .-22 ; 0x106c <__udivmodhi4_loop>
+ 1082: 80 95 com r24
+ 1084: 90 95 com r25
+ 1086: bc 01 movw r22, r24
+ 1088: cd 01 movw r24, r26
+ 108a: 08 95 ret
+
+0000108c <__prologue_saves__>:
+ 108c: 2f 92 push r2
+ 108e: 3f 92 push r3
+ 1090: 4f 92 push r4
+ 1092: 5f 92 push r5
+ 1094: 6f 92 push r6
+ 1096: 7f 92 push r7
+ 1098: 8f 92 push r8
+ 109a: 9f 92 push r9
+ 109c: af 92 push r10
+ 109e: bf 92 push r11
+ 10a0: cf 92 push r12
+ 10a2: df 92 push r13
+ 10a4: ef 92 push r14
+ 10a6: ff 92 push r15
+ 10a8: 0f 93 push r16
+ 10aa: 1f 93 push r17
+ 10ac: cf 93 push r28
+ 10ae: df 93 push r29
+ 10b0: cd b7 in r28, 0x3d ; 61
+ 10b2: de b7 in r29, 0x3e ; 62
+ 10b4: ca 1b sub r28, r26
+ 10b6: db 0b sbc r29, r27
+ 10b8: 0f b6 in r0, 0x3f ; 63
+ 10ba: f8 94 cli
+ 10bc: de bf out 0x3e, r29 ; 62
+ 10be: 0f be out 0x3f, r0 ; 63
+ 10c0: cd bf out 0x3d, r28 ; 61
+ 10c2: 09 94 ijmp
+
+000010c4 <__epilogue_restores__>:
+ 10c4: 2a 88 ldd r2, Y+18 ; 0x12
+ 10c6: 39 88 ldd r3, Y+17 ; 0x11
+ 10c8: 48 88 ldd r4, Y+16 ; 0x10
+ 10ca: 5f 84 ldd r5, Y+15 ; 0x0f
+ 10cc: 6e 84 ldd r6, Y+14 ; 0x0e
+ 10ce: 7d 84 ldd r7, Y+13 ; 0x0d
+ 10d0: 8c 84 ldd r8, Y+12 ; 0x0c
+ 10d2: 9b 84 ldd r9, Y+11 ; 0x0b
+ 10d4: aa 84 ldd r10, Y+10 ; 0x0a
+ 10d6: b9 84 ldd r11, Y+9 ; 0x09
+ 10d8: c8 84 ldd r12, Y+8 ; 0x08
+ 10da: df 80 ldd r13, Y+7 ; 0x07
+ 10dc: ee 80 ldd r14, Y+6 ; 0x06
+ 10de: fd 80 ldd r15, Y+5 ; 0x05
+ 10e0: 0c 81 ldd r16, Y+4 ; 0x04
+ 10e2: 1b 81 ldd r17, Y+3 ; 0x03
+ 10e4: aa 81 ldd r26, Y+2 ; 0x02
+ 10e6: b9 81 ldd r27, Y+1 ; 0x01
+ 10e8: ce 0f add r28, r30
+ 10ea: d1 1d adc r29, r1
+ 10ec: 0f b6 in r0, 0x3f ; 63
+ 10ee: f8 94 cli
+ 10f0: de bf out 0x3e, r29 ; 62
+ 10f2: 0f be out 0x3f, r0 ; 63
+ 10f4: cd bf out 0x3d, r28 ; 61
+ 10f6: ed 01 movw r28, r26
+ 10f8: 08 95 ret
+
+000010fa <__tablejump2__>:
+ 10fa: ee 0f add r30, r30
+ 10fc: ff 1f adc r31, r31
+
+000010fe <__tablejump__>:
+ 10fe: 05 90 lpm r0, Z+
+ 1100: f4 91 lpm r31, Z+
+ 1102: e0 2d mov r30, r0
+ 1104: 09 94 ijmp
+
+00001106 <sin>:
+ 1106: 9f 93 push r25
+ 1108: 05 d0 rcall .+10 ; 0x1114 <__fp_rempio2>
+ 110a: 0f 90 pop r0
+ 110c: 07 fc sbrc r0, 7
+ 110e: ee 5f subi r30, 0xFE ; 254
+ 1110: 28 c0 rjmp .+80 ; 0x1162 <__fp_sinus>
+ 1112: ce c0 rjmp .+412 ; 0x12b0 <__fp_nan>
+
+00001114 <__fp_rempio2>:
+ 1114: 3f d0 rcall .+126 ; 0x1194 <__fp_splitA>
+ 1116: e8 f3 brcs .-6 ; 0x1112 <sin+0xc>
+ 1118: e8 94 clt
+ 111a: e0 e0 ldi r30, 0x00 ; 0
+ 111c: bb 27 eor r27, r27
+ 111e: 9f 57 subi r25, 0x7F ; 127
+ 1120: f0 f0 brcs .+60 ; 0x115e <__fp_rempio2+0x4a>
+ 1122: 2a ed ldi r18, 0xDA ; 218
+ 1124: 3f e0 ldi r19, 0x0F ; 15
+ 1126: 49 ec ldi r20, 0xC9 ; 201
+ 1128: 06 c0 rjmp .+12 ; 0x1136 <__fp_rempio2+0x22>
+ 112a: ee 0f add r30, r30
+ 112c: bb 0f add r27, r27
+ 112e: 66 1f adc r22, r22
+ 1130: 77 1f adc r23, r23
+ 1132: 88 1f adc r24, r24
+ 1134: 28 f0 brcs .+10 ; 0x1140 <__fp_rempio2+0x2c>
+ 1136: b2 3a cpi r27, 0xA2 ; 162
+ 1138: 62 07 cpc r22, r18
+ 113a: 73 07 cpc r23, r19
+ 113c: 84 07 cpc r24, r20
+ 113e: 28 f0 brcs .+10 ; 0x114a <__fp_rempio2+0x36>
+ 1140: b2 5a subi r27, 0xA2 ; 162
+ 1142: 62 0b sbc r22, r18
+ 1144: 73 0b sbc r23, r19
+ 1146: 84 0b sbc r24, r20
+ 1148: e3 95 inc r30
+ 114a: 9a 95 dec r25
+ 114c: 72 f7 brpl .-36 ; 0x112a <__fp_rempio2+0x16>
+ 114e: 80 38 cpi r24, 0x80 ; 128
+ 1150: 30 f4 brcc .+12 ; 0x115e <__fp_rempio2+0x4a>
+ 1152: 9a 95 dec r25
+ 1154: bb 0f add r27, r27
+ 1156: 66 1f adc r22, r22
+ 1158: 77 1f adc r23, r23
+ 115a: 88 1f adc r24, r24
+ 115c: d2 f7 brpl .-12 ; 0x1152 <__fp_rempio2+0x3e>
+ 115e: 90 48 sbci r25, 0x80 ; 128
+ 1160: 9b c0 rjmp .+310 ; 0x1298 <__fp_mpack_finite>
+
+00001162 <__fp_sinus>:
+ 1162: ef 93 push r30
+ 1164: e0 ff sbrs r30, 0
+ 1166: 06 c0 rjmp .+12 ; 0x1174 <__fp_sinus+0x12>
+ 1168: a2 ea ldi r26, 0xA2 ; 162
+ 116a: 2a ed ldi r18, 0xDA ; 218
+ 116c: 3f e0 ldi r19, 0x0F ; 15
+ 116e: 49 ec ldi r20, 0xC9 ; 201
+ 1170: 5f eb ldi r21, 0xBF ; 191
+ 1172: 37 d0 rcall .+110 ; 0x11e2 <__addsf3x>
+ 1174: bf d0 rcall .+382 ; 0x12f4 <__fp_round>
+ 1176: 0f 90 pop r0
+ 1178: 03 94 inc r0
+ 117a: 01 fc sbrc r0, 1
+ 117c: 90 58 subi r25, 0x80 ; 128
+ 117e: e8 e6 ldi r30, 0x68 ; 104
+ 1180: f0 e0 ldi r31, 0x00 ; 0
+ 1182: 99 c0 rjmp .+306 ; 0x12b6 <__fp_powsodd>
+
+00001184 <__fp_split3>:
+ 1184: 57 fd sbrc r21, 7
+ 1186: 90 58 subi r25, 0x80 ; 128
+ 1188: 44 0f add r20, r20
+ 118a: 55 1f adc r21, r21
+ 118c: 59 f0 breq .+22 ; 0x11a4 <__fp_splitA+0x10>
+ 118e: 5f 3f cpi r21, 0xFF ; 255
+ 1190: 71 f0 breq .+28 ; 0x11ae <__fp_splitA+0x1a>
+ 1192: 47 95 ror r20
+
+00001194 <__fp_splitA>:
+ 1194: 88 0f add r24, r24
+ 1196: 97 fb bst r25, 7
+ 1198: 99 1f adc r25, r25
+ 119a: 61 f0 breq .+24 ; 0x11b4 <__fp_splitA+0x20>
+ 119c: 9f 3f cpi r25, 0xFF ; 255
+ 119e: 79 f0 breq .+30 ; 0x11be <__fp_splitA+0x2a>
+ 11a0: 87 95 ror r24
+ 11a2: 08 95 ret
+ 11a4: 12 16 cp r1, r18
+ 11a6: 13 06 cpc r1, r19
+ 11a8: 14 06 cpc r1, r20
+ 11aa: 55 1f adc r21, r21
+ 11ac: f2 cf rjmp .-28 ; 0x1192 <__fp_split3+0xe>
+ 11ae: 46 95 lsr r20
+ 11b0: f1 df rcall .-30 ; 0x1194 <__fp_splitA>
+ 11b2: 08 c0 rjmp .+16 ; 0x11c4 <__fp_splitA+0x30>
+ 11b4: 16 16 cp r1, r22
+ 11b6: 17 06 cpc r1, r23
+ 11b8: 18 06 cpc r1, r24
+ 11ba: 99 1f adc r25, r25
+ 11bc: f1 cf rjmp .-30 ; 0x11a0 <__fp_splitA+0xc>
+ 11be: 86 95 lsr r24
+ 11c0: 71 05 cpc r23, r1
+ 11c2: 61 05 cpc r22, r1
+ 11c4: 08 94 sec
+ 11c6: 08 95 ret
+ 11c8: 87 d0 rcall .+270 ; 0x12d8 <__fp_pscA>
+ 11ca: 30 f0 brcs .+12 ; 0x11d8 <__fp_splitA+0x44>
+ 11cc: 8c d0 rcall .+280 ; 0x12e6 <__fp_pscB>
+ 11ce: 20 f0 brcs .+8 ; 0x11d8 <__fp_splitA+0x44>
+ 11d0: 31 f4 brne .+12 ; 0x11de <__fp_splitA+0x4a>
+ 11d2: 9f 3f cpi r25, 0xFF ; 255
+ 11d4: 11 f4 brne .+4 ; 0x11da <__fp_splitA+0x46>
+ 11d6: 1e f4 brtc .+6 ; 0x11de <__fp_splitA+0x4a>
+ 11d8: 6b c0 rjmp .+214 ; 0x12b0 <__fp_nan>
+ 11da: 0e f4 brtc .+2 ; 0x11de <__fp_splitA+0x4a>
+ 11dc: e0 95 com r30
+ 11de: e7 fb bst r30, 7
+ 11e0: 53 c0 rjmp .+166 ; 0x1288 <__fp_inf>
+
+000011e2 <__addsf3x>:
+ 11e2: e9 2f mov r30, r25
+ 11e4: cf df rcall .-98 ; 0x1184 <__fp_split3>
+ 11e6: 80 f3 brcs .-32 ; 0x11c8 <__fp_splitA+0x34>
+ 11e8: ba 17 cp r27, r26
+ 11ea: 62 07 cpc r22, r18
+ 11ec: 73 07 cpc r23, r19
+ 11ee: 84 07 cpc r24, r20
+ 11f0: 95 07 cpc r25, r21
+ 11f2: 18 f0 brcs .+6 ; 0x11fa <__addsf3x+0x18>
+ 11f4: 71 f4 brne .+28 ; 0x1212 <__addsf3x+0x30>
+ 11f6: 9e f5 brtc .+102 ; 0x125e <__addsf3x+0x7c>
+ 11f8: 8e c0 rjmp .+284 ; 0x1316 <__fp_zero>
+ 11fa: 0e f4 brtc .+2 ; 0x11fe <__addsf3x+0x1c>
+ 11fc: e0 95 com r30
+ 11fe: 0b 2e mov r0, r27
+ 1200: ba 2f mov r27, r26
+ 1202: a0 2d mov r26, r0
+ 1204: 0b 01 movw r0, r22
+ 1206: b9 01 movw r22, r18
+ 1208: 90 01 movw r18, r0
+ 120a: 0c 01 movw r0, r24
+ 120c: ca 01 movw r24, r20
+ 120e: a0 01 movw r20, r0
+ 1210: 11 24 eor r1, r1
+ 1212: ff 27 eor r31, r31
+ 1214: 59 1b sub r21, r25
+ 1216: 99 f0 breq .+38 ; 0x123e <__addsf3x+0x5c>
+ 1218: 59 3f cpi r21, 0xF9 ; 249
+ 121a: 50 f4 brcc .+20 ; 0x1230 <__addsf3x+0x4e>
+ 121c: 50 3e cpi r21, 0xE0 ; 224
+ 121e: 68 f1 brcs .+90 ; 0x127a <__addsf3x+0x98>
+ 1220: 1a 16 cp r1, r26
+ 1222: f0 40 sbci r31, 0x00 ; 0
+ 1224: a2 2f mov r26, r18
+ 1226: 23 2f mov r18, r19
+ 1228: 34 2f mov r19, r20
+ 122a: 44 27 eor r20, r20
+ 122c: 58 5f subi r21, 0xF8 ; 248
+ 122e: f3 cf rjmp .-26 ; 0x1216 <__addsf3x+0x34>
+ 1230: 46 95 lsr r20
+ 1232: 37 95 ror r19
+ 1234: 27 95 ror r18
+ 1236: a7 95 ror r26
+ 1238: f0 40 sbci r31, 0x00 ; 0
+ 123a: 53 95 inc r21
+ 123c: c9 f7 brne .-14 ; 0x1230 <__addsf3x+0x4e>
+ 123e: 7e f4 brtc .+30 ; 0x125e <__addsf3x+0x7c>
+ 1240: 1f 16 cp r1, r31
+ 1242: ba 0b sbc r27, r26
+ 1244: 62 0b sbc r22, r18
+ 1246: 73 0b sbc r23, r19
+ 1248: 84 0b sbc r24, r20
+ 124a: ba f0 brmi .+46 ; 0x127a <__addsf3x+0x98>
+ 124c: 91 50 subi r25, 0x01 ; 1
+ 124e: a1 f0 breq .+40 ; 0x1278 <__addsf3x+0x96>
+ 1250: ff 0f add r31, r31
+ 1252: bb 1f adc r27, r27
+ 1254: 66 1f adc r22, r22
+ 1256: 77 1f adc r23, r23
+ 1258: 88 1f adc r24, r24
+ 125a: c2 f7 brpl .-16 ; 0x124c <__addsf3x+0x6a>
+ 125c: 0e c0 rjmp .+28 ; 0x127a <__addsf3x+0x98>
+ 125e: ba 0f add r27, r26
+ 1260: 62 1f adc r22, r18
+ 1262: 73 1f adc r23, r19
+ 1264: 84 1f adc r24, r20
+ 1266: 48 f4 brcc .+18 ; 0x127a <__addsf3x+0x98>
+ 1268: 87 95 ror r24
+ 126a: 77 95 ror r23
+ 126c: 67 95 ror r22
+ 126e: b7 95 ror r27
+ 1270: f7 95 ror r31
+ 1272: 9e 3f cpi r25, 0xFE ; 254
+ 1274: 08 f0 brcs .+2 ; 0x1278 <__addsf3x+0x96>
+ 1276: b3 cf rjmp .-154 ; 0x11de <__fp_splitA+0x4a>
+ 1278: 93 95 inc r25
+ 127a: 88 0f add r24, r24
+ 127c: 08 f0 brcs .+2 ; 0x1280 <__addsf3x+0x9e>
+ 127e: 99 27 eor r25, r25
+ 1280: ee 0f add r30, r30
+ 1282: 97 95 ror r25
+ 1284: 87 95 ror r24
+ 1286: 08 95 ret
+
+00001288 <__fp_inf>:
+ 1288: 97 f9 bld r25, 7
+ 128a: 9f 67 ori r25, 0x7F ; 127
+ 128c: 80 e8 ldi r24, 0x80 ; 128
+ 128e: 70 e0 ldi r23, 0x00 ; 0
+ 1290: 60 e0 ldi r22, 0x00 ; 0
+ 1292: 08 95 ret
+
+00001294 <__fp_mpack>:
+ 1294: 9f 3f cpi r25, 0xFF ; 255
+ 1296: 31 f0 breq .+12 ; 0x12a4 <__fp_mpack_finite+0xc>
+
+00001298 <__fp_mpack_finite>:
+ 1298: 91 50 subi r25, 0x01 ; 1
+ 129a: 20 f4 brcc .+8 ; 0x12a4 <__fp_mpack_finite+0xc>
+ 129c: 87 95 ror r24
+ 129e: 77 95 ror r23
+ 12a0: 67 95 ror r22
+ 12a2: b7 95 ror r27
+ 12a4: 88 0f add r24, r24
+ 12a6: 91 1d adc r25, r1
+ 12a8: 96 95 lsr r25
+ 12aa: 87 95 ror r24
+ 12ac: 97 f9 bld r25, 7
+ 12ae: 08 95 ret
+
+000012b0 <__fp_nan>:
+ 12b0: 9f ef ldi r25, 0xFF ; 255
+ 12b2: 80 ec ldi r24, 0xC0 ; 192
+ 12b4: 08 95 ret
+
+000012b6 <__fp_powsodd>:
+ 12b6: 9f 93 push r25
+ 12b8: 8f 93 push r24
+ 12ba: 7f 93 push r23
+ 12bc: 6f 93 push r22
+ 12be: ff 93 push r31
+ 12c0: ef 93 push r30
+ 12c2: 9b 01 movw r18, r22
+ 12c4: ac 01 movw r20, r24
+ 12c6: e3 db rcall .-2106 ; 0xa8e <__mulsf3>
+ 12c8: ef 91 pop r30
+ 12ca: ff 91 pop r31
+ 12cc: 2b d0 rcall .+86 ; 0x1324 <__fp_powser>
+ 12ce: 2f 91 pop r18
+ 12d0: 3f 91 pop r19
+ 12d2: 4f 91 pop r20
+ 12d4: 5f 91 pop r21
+ 12d6: db cb rjmp .-2122 ; 0xa8e <__mulsf3>
+
+000012d8 <__fp_pscA>:
+ 12d8: 00 24 eor r0, r0
+ 12da: 0a 94 dec r0
+ 12dc: 16 16 cp r1, r22
+ 12de: 17 06 cpc r1, r23
+ 12e0: 18 06 cpc r1, r24
+ 12e2: 09 06 cpc r0, r25
+ 12e4: 08 95 ret
+
+000012e6 <__fp_pscB>:
+ 12e6: 00 24 eor r0, r0
+ 12e8: 0a 94 dec r0
+ 12ea: 12 16 cp r1, r18
+ 12ec: 13 06 cpc r1, r19
+ 12ee: 14 06 cpc r1, r20
+ 12f0: 05 06 cpc r0, r21
+ 12f2: 08 95 ret
+
+000012f4 <__fp_round>:
+ 12f4: 09 2e mov r0, r25
+ 12f6: 03 94 inc r0
+ 12f8: 00 0c add r0, r0
+ 12fa: 11 f4 brne .+4 ; 0x1300 <__fp_round+0xc>
+ 12fc: 88 23 and r24, r24
+ 12fe: 52 f0 brmi .+20 ; 0x1314 <__fp_round+0x20>
+ 1300: bb 0f add r27, r27
+ 1302: 40 f4 brcc .+16 ; 0x1314 <__fp_round+0x20>
+ 1304: bf 2b or r27, r31
+ 1306: 11 f4 brne .+4 ; 0x130c <__fp_round+0x18>
+ 1308: 60 ff sbrs r22, 0
+ 130a: 04 c0 rjmp .+8 ; 0x1314 <__fp_round+0x20>
+ 130c: 6f 5f subi r22, 0xFF ; 255
+ 130e: 7f 4f sbci r23, 0xFF ; 255
+ 1310: 8f 4f sbci r24, 0xFF ; 255
+ 1312: 9f 4f sbci r25, 0xFF ; 255
+ 1314: 08 95 ret
+
+00001316 <__fp_zero>:
+ 1316: e8 94 clt
+
+00001318 <__fp_szero>:
+ 1318: bb 27 eor r27, r27
+ 131a: 66 27 eor r22, r22
+ 131c: 77 27 eor r23, r23
+ 131e: cb 01 movw r24, r22
+ 1320: 97 f9 bld r25, 7
+ 1322: 08 95 ret
+
+00001324 <__fp_powser>:
+ 1324: df 93 push r29
+ 1326: cf 93 push r28
+ 1328: 1f 93 push r17
+ 132a: 0f 93 push r16
+ 132c: ff 92 push r15
+ 132e: ef 92 push r14
+ 1330: df 92 push r13
+ 1332: 7b 01 movw r14, r22
+ 1334: 8c 01 movw r16, r24
+ 1336: 68 94 set
+ 1338: 05 c0 rjmp .+10 ; 0x1344 <__fp_powser+0x20>
+ 133a: da 2e mov r13, r26
+ 133c: ef 01 movw r28, r30
+ 133e: 21 d0 rcall .+66 ; 0x1382 <__mulsf3x>
+ 1340: fe 01 movw r30, r28
+ 1342: e8 94 clt
+ 1344: a5 91 lpm r26, Z+
+ 1346: 25 91 lpm r18, Z+
+ 1348: 35 91 lpm r19, Z+
+ 134a: 45 91 lpm r20, Z+
+ 134c: 55 91 lpm r21, Z+
+ 134e: ae f3 brts .-22 ; 0x133a <__fp_powser+0x16>
+ 1350: ef 01 movw r28, r30
+ 1352: 47 df rcall .-370 ; 0x11e2 <__addsf3x>
+ 1354: fe 01 movw r30, r28
+ 1356: 97 01 movw r18, r14
+ 1358: a8 01 movw r20, r16
+ 135a: da 94 dec r13
+ 135c: 79 f7 brne .-34 ; 0x133c <__fp_powser+0x18>
+ 135e: df 90 pop r13
+ 1360: ef 90 pop r14
+ 1362: ff 90 pop r15
+ 1364: 0f 91 pop r16
+ 1366: 1f 91 pop r17
+ 1368: cf 91 pop r28
+ 136a: df 91 pop r29
+ 136c: 08 95 ret
+ 136e: b4 df rcall .-152 ; 0x12d8 <__fp_pscA>
+ 1370: 28 f0 brcs .+10 ; 0x137c <__fp_powser+0x58>
+ 1372: b9 df rcall .-142 ; 0x12e6 <__fp_pscB>
+ 1374: 18 f0 brcs .+6 ; 0x137c <__fp_powser+0x58>
+ 1376: 95 23 and r25, r21
+ 1378: 09 f0 breq .+2 ; 0x137c <__fp_powser+0x58>
+ 137a: 86 cf rjmp .-244 ; 0x1288 <__fp_inf>
+ 137c: 99 cf rjmp .-206 ; 0x12b0 <__fp_nan>
+ 137e: 11 24 eor r1, r1
+ 1380: cb cf rjmp .-106 ; 0x1318 <__fp_szero>
+
+00001382 <__mulsf3x>:
+ 1382: 00 df rcall .-512 ; 0x1184 <__fp_split3>
+ 1384: a0 f3 brcs .-24 ; 0x136e <__fp_powser+0x4a>
+
+00001386 <__mulsf3_pse>:
+ 1386: 95 9f mul r25, r21
+ 1388: d1 f3 breq .-12 ; 0x137e <__fp_powser+0x5a>
+ 138a: 95 0f add r25, r21
+ 138c: 50 e0 ldi r21, 0x00 ; 0
+ 138e: 55 1f adc r21, r21
+ 1390: 62 9f mul r22, r18
+ 1392: f0 01 movw r30, r0
+ 1394: 72 9f mul r23, r18
+ 1396: bb 27 eor r27, r27
+ 1398: f0 0d add r31, r0
+ 139a: b1 1d adc r27, r1
+ 139c: 63 9f mul r22, r19
+ 139e: aa 27 eor r26, r26
+ 13a0: f0 0d add r31, r0
+ 13a2: b1 1d adc r27, r1
+ 13a4: aa 1f adc r26, r26
+ 13a6: 64 9f mul r22, r20
+ 13a8: 66 27 eor r22, r22
+ 13aa: b0 0d add r27, r0
+ 13ac: a1 1d adc r26, r1
+ 13ae: 66 1f adc r22, r22
+ 13b0: 82 9f mul r24, r18
+ 13b2: 22 27 eor r18, r18
+ 13b4: b0 0d add r27, r0
+ 13b6: a1 1d adc r26, r1
+ 13b8: 62 1f adc r22, r18
+ 13ba: 73 9f mul r23, r19
+ 13bc: b0 0d add r27, r0
+ 13be: a1 1d adc r26, r1
+ 13c0: 62 1f adc r22, r18
+ 13c2: 83 9f mul r24, r19
+ 13c4: a0 0d add r26, r0
+ 13c6: 61 1d adc r22, r1
+ 13c8: 22 1f adc r18, r18
+ 13ca: 74 9f mul r23, r20
+ 13cc: 33 27 eor r19, r19
+ 13ce: a0 0d add r26, r0
+ 13d0: 61 1d adc r22, r1
+ 13d2: 23 1f adc r18, r19
+ 13d4: 84 9f mul r24, r20
+ 13d6: 60 0d add r22, r0
+ 13d8: 21 1d adc r18, r1
+ 13da: 82 2f mov r24, r18
+ 13dc: 76 2f mov r23, r22
+ 13de: 6a 2f mov r22, r26
+ 13e0: 11 24 eor r1, r1
+ 13e2: 9f 57 subi r25, 0x7F ; 127
+ 13e4: 50 40 sbci r21, 0x00 ; 0
+ 13e6: 8a f0 brmi .+34 ; 0x140a <__mulsf3_pse+0x84>
+ 13e8: e1 f0 breq .+56 ; 0x1422 <__mulsf3_pse+0x9c>
+ 13ea: 88 23 and r24, r24
+ 13ec: 4a f0 brmi .+18 ; 0x1400 <__mulsf3_pse+0x7a>
+ 13ee: ee 0f add r30, r30
+ 13f0: ff 1f adc r31, r31
+ 13f2: bb 1f adc r27, r27
+ 13f4: 66 1f adc r22, r22
+ 13f6: 77 1f adc r23, r23
+ 13f8: 88 1f adc r24, r24
+ 13fa: 91 50 subi r25, 0x01 ; 1
+ 13fc: 50 40 sbci r21, 0x00 ; 0
+ 13fe: a9 f7 brne .-22 ; 0x13ea <__mulsf3_pse+0x64>
+ 1400: 9e 3f cpi r25, 0xFE ; 254
+ 1402: 51 05 cpc r21, r1
+ 1404: 70 f0 brcs .+28 ; 0x1422 <__mulsf3_pse+0x9c>
+ 1406: 40 cf rjmp .-384 ; 0x1288 <__fp_inf>
+ 1408: 87 cf rjmp .-242 ; 0x1318 <__fp_szero>
+ 140a: 5f 3f cpi r21, 0xFF ; 255
+ 140c: ec f3 brlt .-6 ; 0x1408 <__mulsf3_pse+0x82>
+ 140e: 98 3e cpi r25, 0xE8 ; 232
+ 1410: dc f3 brlt .-10 ; 0x1408 <__mulsf3_pse+0x82>
+ 1412: 86 95 lsr r24
+ 1414: 77 95 ror r23
+ 1416: 67 95 ror r22
+ 1418: b7 95 ror r27
+ 141a: f7 95 ror r31
+ 141c: e7 95 ror r30
+ 141e: 9f 5f subi r25, 0xFF ; 255
+ 1420: c1 f7 brne .-16 ; 0x1412 <__mulsf3_pse+0x8c>
+ 1422: fe 2b or r31, r30
+ 1424: 88 0f add r24, r24
+ 1426: 91 1d adc r25, r1
+ 1428: 96 95 lsr r25
+ 142a: 87 95 ror r24
+ 142c: 97 f9 bld r25, 7
+ 142e: 08 95 ret
+
+00001430 <_exit>:
+ 1430: f8 94 cli
+
+00001432 <__stop_program>:
+ 1432: ff cf rjmp .-2 ; 0x1432 <__stop_program>
diff --git a/electic_streaming2560/bin/Release/electic_streaming.elf.map b/electic_streaming2560/bin/Release/electic_streaming.elf.map
new file mode 100644
index 0000000..c007630
--- /dev/null
+++ b/electic_streaming2560/bin/Release/electic_streaming.elf.map
@@ -0,0 +1,897 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o (Serial)
+../arduino_libs/core328p.a(Print.cpp.o)
+ obj/Release/main.o (Print::println(char const*))
+../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o) (beginSerial)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/main.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ ../arduino_libs/core328p.a(Print.cpp.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ obj/Release/main.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ obj/Release/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o) (__do_global_ctors)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/main.o (__addsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/main.o (__mulsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/main.o (__fixsfsi)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Release/main.o (sin)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_rempio2)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_sinus)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_splitA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__addsf3x)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_mpack_finite)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_nan)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_powsodd)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_round)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o) (__fp_powser)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o) (__mulsf3x)
+
+Allocating common symbols
+Common symbol size file
+
+rx_buffer 0x80 ../arduino_libs/core328p.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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/main.o
+LOAD ../arduino_libs/core328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x1434
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ .progmem.gcc_fplib
+ 0x00000068 0x1e /usr/lib/gcc/avr/4.3.5/../../../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/core328p.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.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000088 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000088 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000094 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x00000094 __do_copy_data
+ .init4 0x000000aa 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000aa __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000ba 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ 0x000000ba __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000d0 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000d8 0x4 /usr/lib/gcc/avr/4.3.5/../../../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 0x1a0 obj/Release/main.o
+ 0x000000dc __vector_11
+ 0x00000178 fill_sinewave()
+ 0x00000204 main
+ .text 0x0000027c 0x32 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x0000028a HardwareSerial::write(unsigned char)
+ 0x00000292 HardwareSerial::flush()
+ 0x00000298 HardwareSerial::read()
+ 0x0000029e HardwareSerial::available()
+ 0x000002a4 HardwareSerial::begin(long)
+ .text 0x000002ae 0x31e ../arduino_libs/core328p.a(Print.cpp.o)
+ 0x000002ae Print::print(unsigned char)
+ 0x000002be Print::print(char)
+ 0x000002ce Print::print(char const*)
+ 0x000002fe Print::println()
+ 0x0000032c Print::println(char)
+ 0x0000034c Print::println(char const*)
+ 0x00000362 Print::println(unsigned char)
+ 0x00000382 Print::printNumber(unsigned long, unsigned char)
+ 0x000004b2 Print::print(unsigned long)
+ 0x000004ba Print::println(unsigned long)
+ 0x000004d0 Print::print(unsigned int)
+ 0x000004dc Print::println(unsigned int)
+ 0x000004f8 Print::print(long)
+ 0x00000546 Print::println(long)
+ 0x0000055c Print::print(int)
+ 0x0000056c Print::println(int)
+ 0x0000058c Print::print(long, int)
+ 0x000005b6 Print::println(long, int)
+ .text 0x000005cc 0x16e ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x000005cc beginSerial
+ 0x0000063e serialWrite
+ 0x0000064e serialAvailable
+ 0x00000670 serialRead
+ 0x000006ae serialFlush
+ 0x000006c0 __vector_18
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text 0x0000073a 0x354 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ 0x000009d2 __subsf3
+ 0x00000a34 __addsf3
+ .text 0x00000a8e 0x1f4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ 0x00000a8e __mulsf3
+ .text 0x00000c82 0xa8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ 0x00000c82 __fixsfsi
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .text 0x00000d2a 0x1aa /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ 0x00000d2a __pack_f
+ .text 0x00000ed4 0xf0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ 0x00000ed4 __unpack_f
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x00000fc4 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000fc4 0x26 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ 0x00000fc4 __divmodhi4
+ 0x00000fc4 _div
+ .text.libgcc 0x00000fea 0x44 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00000fea __udivmodsi4
+ .text.libgcc 0x0000102e 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000102e __divmodsi4
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x00001064 0x28 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00001064 __udivmodhi4
+ .text.libgcc 0x0000108c 0x38 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ 0x0000108c __prologue_saves__
+ .text.libgcc 0x000010c4 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ 0x000010c4 __epilogue_restores__
+ .text.libgcc 0x000010fa 0xc /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ 0x000010fa __tablejump2__
+ 0x000010fe __tablejump__
+ .text.avr-libc.fplib
+ 0x00001106 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x00001106 sin
+ .text.avr-libc.fplib
+ 0x00001112 0x50 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x00001114 __fp_rempio2
+ .text.avr-libc.fplib
+ 0x00001162 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x00001162 __fp_sinus
+ .text.avr-libc.fplib
+ 0x00001184 0x44 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x00001184 __fp_split3
+ 0x00001194 __fp_splitA
+ .text.avr-libc.fplib
+ 0x000011c8 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x000011e2 __addsf3x
+ .text.avr-libc.fplib
+ 0x00001288 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x00001288 __fp_inf
+ .text.avr-libc.fplib
+ 0x00001294 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0x00001294 __fp_mpack
+ 0x00001298 __fp_mpack_finite
+ .text.avr-libc.fplib
+ 0x000012b0 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x000012b0 __fp_nan
+ .text.avr-libc.fplib
+ 0x000012b6 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x000012b6 __fp_powsodd
+ .text.avr-libc.fplib
+ 0x000012d8 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x000012d8 __fp_pscA
+ .text.avr-libc.fplib
+ 0x000012e6 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x000012e6 __fp_pscB
+ .text.avr-libc.fplib
+ 0x000012f4 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x000012f4 __fp_round
+ .text.avr-libc.fplib
+ 0x00001316 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x00001316 __fp_zero
+ 0x00001318 __fp_szero
+ .text.avr-libc.fplib
+ 0x00001324 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x00001324 __fp_powser
+ .text.avr-libc.fplib
+ 0x0000136e 0xc2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x00001382 __mulsf3x
+ 0x00001386 __mulsf3_pse
+ 0x00001430 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00001430 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x00001430 exit
+ 0x00001430 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00001430 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00001434 _etext = .
+
+.data 0x00800100 0x22 load address 0x00001434
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x13 obj/Release/main.o
+ .data 0x00800113 0x6 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x00800113 vtable for HardwareSerial
+ .data 0x00800119 0x0 ../arduino_libs/core328p.a(Print.cpp.o)
+ .data 0x00800119 0x0 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x00800119 0x8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ 0x00800119 __thenan_sf
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800122 . = ALIGN (0x2)
+ *fill* 0x00800121 0x1 00
+ 0x00800122 _edata = .
+ 0x00800122 PROVIDE (__data_end, .)
+
+.bss 0x00800122 0x28a
+ 0x00800122 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800122 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800122 0x204 obj/Release/main.o
+ 0x00800122 dd
+ 0x00800322 loopCount
+ 0x00800324 sample
+ .bss 0x00800326 0x2 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x00800326 Serial
+ .bss 0x00800328 0x0 ../arduino_libs/core328p.a(Print.cpp.o)
+ .bss 0x00800328 0x4 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x00800328 rx_buffer_head
+ 0x0080032a rx_buffer_tail
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x0080032c 0x80 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x0080032c rx_buffer
+ 0x008003ac PROVIDE (__bss_end, .)
+ 0x00001434 __data_load_start = LOADADDR (.data)
+ 0x00001456 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008003ac 0x0
+ 0x008003ac PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008003ac PROVIDE (__noinit_end, .)
+ 0x008003ac _end = .
+ 0x008003ac PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x1cd4
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x84 (size before relaxing)
+ .stab 0x0000072c 0x21c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x228 (size before relaxing)
+ .stab 0x00000948 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x108 (size before relaxing)
+ .stab 0x00000a44 0x1d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x1e0 (size before relaxing)
+ .stab 0x00000c18 0x4bc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x4c8 (size before relaxing)
+ .stab 0x000010d4 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x84 (size before relaxing)
+ .stab 0x0000114c 0xe4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00001230 0x54 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x60 (size before relaxing)
+ .stab 0x00001284 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001380 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001404 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001488 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001584 0x90 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x9c (size before relaxing)
+ .stab 0x00001614 0x1ec /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x1f8 (size before relaxing)
+ .stab 0x00001800 0x4d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x4e0 (size before relaxing)
+
+.stabstr 0x00000000 0x30d
+ *(.stabstr)
+ .stabstr 0x00000000 0x30d /usr/lib/gcc/avr/4.3.5/../../../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/core328p.a(HardwareSerial.cpp.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_aranges
+ 0x00000040 0x20 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_pubnames
+ 0x00000000 0x2a7
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0xa2 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_pubnames
+ 0x000000a2 0x15c ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_pubnames
+ 0x000001fe 0xa9 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_info 0x00000000 0xd0b
+ *(.debug_info)
+ .debug_info 0x00000000 0x2f0 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_info 0x000002f0 0x890 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_info 0x00000b80 0x18b ../arduino_libs/core328p.a(wiring_serial.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x3f7
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x18e ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_abbrev 0x0000018e 0x183 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_abbrev 0x00000311 0xe6 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_line 0x00000000 0x689
+ *(.debug_line)
+ .debug_line 0x00000000 0x1b5 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_line 0x000001b5 0x364 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_line 0x00000519 0x170 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_frame 0x00000000 0x210
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x70 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_frame 0x00000070 0x130 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_frame 0x000001a0 0x70 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_str 0x00000000 0x420
+ *(.debug_str)
+ .debug_str 0x00000000 0x1a7 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x203 (size before relaxing)
+ .debug_str 0x000001a7 0x1b9 ../arduino_libs/core328p.a(Print.cpp.o)
+ 0x246 (size before relaxing)
+ .debug_str 0x00000360 0xc0 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x12c (size before relaxing)
+
+.debug_loc 0x00000000 0x75a
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xa9 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_loc 0x000000a9 0x621 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_loc 0x000006ca 0x90 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Release/electic_streaming.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+HardwareSerial::available() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::begin(long) ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::flush() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+HardwareSerial::read() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::write(unsigned char) ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+Print::print(char const*) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(long, int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::printNumber(unsigned long, unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println() ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(char const*) ../arduino_libs/core328p.a(Print.cpp.o)
+ obj/Release/main.o
+Print::println(char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(long, int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned long) ../arduino_libs/core328p.a(Print.cpp.o)
+Serial ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__addsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/main.o
+__addsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__ctors_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ obj/Release/main.o
+__divmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__do_global_ctors /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+__epilogue_restores__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/main.o
+__fp_inf /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_mpack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+__fp_mpack_finite /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_nan /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_powser /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+__fp_powsodd /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_pscA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_pscB /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_rempio2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_round /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_sinus /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_split3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_splitA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_szero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__fp_zero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__mulsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ obj/Release/main.o
+__mulsf3_pse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__mulsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+__pack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__tablejump2__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+__unpack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+beginSerial ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+dd obj/Release/main.o
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+fill_sinewave() obj/Release/main.o
+loopCount obj/Release/main.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+rx_buffer ../arduino_libs/core328p.a(wiring_serial.c.o)
+rx_buffer_head ../arduino_libs/core328p.a(wiring_serial.c.o)
+rx_buffer_tail ../arduino_libs/core328p.a(wiring_serial.c.o)
+sample obj/Release/main.o
+serialAvailable ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialFlush ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialRead ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialWrite ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+sin /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Release/main.o
+vtable for HardwareSerial ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
diff --git a/electic_streaming2560/burn b/electic_streaming2560/burn
new file mode 100755
index 0000000..2bcc76e
--- /dev/null
+++ b/electic_streaming2560/burn
@@ -0,0 +1 @@
+avrdude -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -F -u -U flash:w:bin/Release/electic_streaming.elf.hex
diff --git a/electic_streaming2560/electic_streaming2560.cbp b/electic_streaming2560/electic_streaming2560.cbp
new file mode 100644
index 0000000..a82c869
--- /dev/null
+++ b/electic_streaming2560/electic_streaming2560.cbp
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="electic_streaming2560" />
+ <Option pch_mode="2" />
+ <Option compiler="avrgcc" />
+ <Build>
+ <Target title="Debug">
+ <Option output="bin/Debug/electic_streaming.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Debug/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-g" />
+ </Compiler>
+ </Target>
+ <Target title="Release">
+ <Option output="bin/Release/electic_streaming.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Release/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-Os" />
+ </Compiler>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add option="-mmcu=atmega2560" />
+ <Add option="-DF_CPU=16000000UL" />
+ <Add directory="../arduinoSrc0022" />
+ <Add directory="../arduino libs/NewSoftSerial" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=atmega2560" />
+ <Add option="-Wl,-Map=$(TARGET_OUTPUT_FILE).map,--cref" />
+ <Add library="../arduino_libs/core0022_2560.a" />
+ </Linker>
+ <ExtraCommands>
+ <Add after="avr-size $(TARGET_OUTPUT_FILE)" />
+ <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
+ <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
+ <Add after="avr-objdump -h -S $(TARGET_OUTPUT_FILE) &gt; $(TARGET_OUTPUT_FILE).lss" />
+ <Add after="./burn" />
+ </ExtraCommands>
+ <Unit filename="../ArduinoLib328p/HardwareSerial.h" />
+ <Unit filename="../ArduinoLib328p/Print.h" />
+ <Unit filename="../ArduinoLib328p/Stream.h" />
+ <Unit filename="../ArduinoLib328p/WCharacter.h" />
+ <Unit filename="../ArduinoLib328p/WConstants.h" />
+ <Unit filename="../ArduinoLib328p/WProgram.h" />
+ <Unit filename="../ArduinoLib328p/WString.h" />
+ <Unit filename="../ArduinoLib328p/binary.h" />
+ <Unit filename="../ArduinoLib328p/pins_arduino.h" />
+ <Unit filename="../ArduinoLib328p/wiring.h" />
+ <Unit filename="../ArduinoLib328p/wiring_private.h" />
+ <Unit filename="main.cpp" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ <lib_finder disable_auto="1" />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/electic_streaming2560/electic_streaming2560.layout b/electic_streaming2560/electic_streaming2560.layout
new file mode 100644
index 0000000..a159301
--- /dev/null
+++ b/electic_streaming2560/electic_streaming2560.layout
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Debug" />
+ <File name="main.cpp" open="1" top="0" tabpos="1">
+ <Cursor position="0" topLine="0" />
+ </File>
+</CodeBlocks_layout_file>
diff --git a/electic_streaming2560/main.c b/electic_streaming2560/main.c
new file mode 100644
index 0000000..5cdf3a6
--- /dev/null
+++ b/electic_streaming2560/main.c
@@ -0,0 +1,83 @@
+/* test streaming sample data
+ * bluetooth
+ * TJR 141011
+
+ want: 1 second
+ 16M / 1024 prescale =
+
+ */
+
+#include <stdlib.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+//include <avr/signal.h>
+#include <avr/pgmspace.h>
+
+#include <math.h>
+
+#include "uart.h"
+
+//#include "HardwareSerial.h"
+
+#define SAMPLES 512
+
+#ifndef F_CPU
+#define F_CPU 16000000UL
+#endif
+#define UART_BAUD_RATE 57600
+
+//unsigned char dd[SAMPLES]; // ram buffer
+int enabled=0;
+int loopCount=0;
+int sample=0;
+
+int main(void)
+{
+ Serial.begin(57600);
+
+ //uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ PORTB = (1 << 5); //turn on to start
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ OCR1A = 1562; // Set CTC compare value to 1Hz at 1MHz AVR clock, with a prescaler of 64
+ sei(); // Enable global interrupts
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ //fill_sinewave();
+ unsigned int c;
+ /* while(1) {
+ c = uart_getc();
+ if (!( c & UART_NO_DATA ))
+ {
+ uart_putc( (unsigned char)c );
+ if ((unsigned char)c=="a") {
+ uart_puts_P("Welcome to electic");
+ enabled=1;
+ }
+ }
+ }
+ */
+}
+
+ISR(TIMER1_COMPA_vect)
+{
+ if (enabled) PORTB ^= (1 << 5);
+
+}
+/*
+void fill_sinewave(){
+ float pi = 3.141592;
+ float fcnt=0;
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ int bb;
+http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#index for (int i = 0; i <= (SAMPLES-1); i++){ // with 50 periods sinewawe
+ fd= 127*sin(fcnt); // fundamental tone
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ bb=127+fd; // add dc offset to sinewawe
+ dd[i]=bb; // write value into array
+
+ }
+}
+*/
+
diff --git a/electic_streaming2560/main.cpp b/electic_streaming2560/main.cpp
new file mode 100644
index 0000000..71c276e
--- /dev/null
+++ b/electic_streaming2560/main.cpp
@@ -0,0 +1,80 @@
+extern "C" void __cxa_pure_virtual(void); //for C++ defines
+
+/*
+Electric data access template
+
+TJR 191011
+
+Uses Arduino c++ libraries in vanilla AVR environment
+
+Explanation
+http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#index
+
+*/
+#define SAMPLES 512 //size of ram buffer
+#define PACKETSIZE 320 //size of output packet
+
+#include <WProgram.h> //import main Arduino header file
+
+
+byte dd[SAMPLES]; // ram buffer
+int loopCount=0;
+int sample=0;
+
+void fill_sinewave(){
+ /*
+ 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;
+ 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
+ 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
+ }
+}
+
+int main(){
+
+ //init(); -- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ fill_sinewave();
+ Serial.begin(115200);
+
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ PORTB = (1 << 5); //turn on to start
+ 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) {
+ if (Serial.available() > 0) {
+ PORTB ^= (1 << 5);
+ byte in=Serial.read();
+ if (in=='a') {
+ Serial.println("Welcome to electic");
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ }
+ }
+ }
+}
+
+ISR(TIMER1_COMPA_vect)
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ for (int i=0;i<PACKETSIZE;i++) {
+ Serial.write(dd[sample]);
+ sample=(sample+1)%SAMPLES;
+ }
+ Serial.write((byte)0);
+}
+
+
diff --git a/electic_streaming2560/obj/Debug/main.o b/electic_streaming2560/obj/Debug/main.o
new file mode 100644
index 0000000..8db2978
--- /dev/null
+++ b/electic_streaming2560/obj/Debug/main.o
Binary files differ
diff --git a/electic_streaming2560/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o b/electic_streaming2560/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o
new file mode 100644
index 0000000..ea6ef49
--- /dev/null
+++ b/electic_streaming2560/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o
Binary files differ
diff --git a/electic_streaming2560/obj/Release/main.o b/electic_streaming2560/obj/Release/main.o
new file mode 100644
index 0000000..17796a5
--- /dev/null
+++ b/electic_streaming2560/obj/Release/main.o
Binary files differ
diff --git a/electic_streaming2560/obj/Release/uart.o b/electic_streaming2560/obj/Release/uart.o
new file mode 100644
index 0000000..6401727
--- /dev/null
+++ b/electic_streaming2560/obj/Release/uart.o
Binary files differ
diff --git a/electic_streaming2560/uart.c b/electic_streaming2560/uart.c
new file mode 100644
index 0000000..6034070
--- /dev/null
+++ b/electic_streaming2560/uart.c
@@ -0,0 +1,651 @@
+/*************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.c,v 1.6.2.2 2009/11/29 08:56:12 Peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4.6 or higher
+Hardware: any AVR with built-in UART,
+License: GNU General Public License
+
+DESCRIPTION:
+ An interrupt is generated when the UART has finished transmitting or
+ receiving a byte. The interrupt handling routines use circular buffers
+ for buffering received and transmitted data.
+
+ The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE variables define
+ the buffer size in bytes. Note that these variables must be a
+ power of 2.
+
+USAGE:
+ Refere to the header file uart.h for a description of the routines.
+ See also example test_uart.c.
+
+NOTES:
+ Based on Atmel Application Note AVR306
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+*************************************************************************/
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "uart.h"
+
+
+/*
+ * constants and macros
+ */
+
+/* size of RX/TX buffers */
+#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1)
+#define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1)
+
+#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
+#error RX buffer size is not a power of 2
+#endif
+#if ( UART_TX_BUFFER_SIZE & UART_TX_BUFFER_MASK )
+#error TX buffer size is not a power of 2
+#endif
+
+#if defined(__AVR_AT90S2313__) \
+ || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
+ || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
+ || defined(__AVR_ATmega103__)
+ /* old AVR classic or ATmega103 with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS USR
+ #define UART0_CONTROL UCR
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
+ /* old AVR classic with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
+ || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) \
+ || defined(__AVR_ATmega323__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega163__)
+ /* ATmega163 with one UART */
+ #define ATMEGA_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega162__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_UART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_UART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_UART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega161__)
+ /* ATmega with UART */
+ #error "AVR ATmega161 currently not supported by this libaray !"
+#elif defined(__AVR_ATmega169__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATtiny2313__)
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RX
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_UDRE
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega329__) ||defined(__AVR_ATmega3290__) ||\
+ defined(__AVR_ATmega649__) ||defined(__AVR_ATmega6490__) ||\
+ defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
+ defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega640__)
+/* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega644__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#else
+ #error "no UART definition for MCU available"
+#endif
+
+
+/*
+ * module global variables
+ */
+static volatile unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART_TxHead;
+static volatile unsigned char UART_TxTail;
+static volatile unsigned char UART_RxHead;
+static volatile unsigned char UART_RxTail;
+static volatile unsigned char UART_LastRxError;
+
+#if defined( ATMEGA_USART1 )
+static volatile unsigned char UART1_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART1_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART1_TxHead;
+static volatile unsigned char UART1_TxTail;
+static volatile unsigned char UART1_RxHead;
+static volatile unsigned char UART1_RxTail;
+static volatile unsigned char UART1_LastRxError;
+#endif
+
+
+
+SIGNAL(UART0_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART Receive Complete interrupt
+Purpose: called when the UART has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART0_STATUS;
+ data = UART0_DATA;
+
+ /* */
+#if defined( AT90_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART0 )
+ lastRxError = (usr & (_BV(FE0)|_BV(DOR0)) );
+#elif defined ( ATMEGA_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#endif
+
+ /* calculate buffer index */
+ tmphead = ( UART_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART_RxHead = tmphead;
+ /* store received data in buffer */
+ UART_RxBuf[tmphead] = data;
+ }
+ UART_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART0_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART Data Register Empty interrupt
+Purpose: called when the UART is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART_TxHead != UART_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART0_CONTROL &= ~_BV(UART0_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart_init()
+Purpose: initialize UART and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart_init(unsigned int baudrate)
+{
+ UART_TxHead = 0;
+ UART_TxTail = 0;
+ UART_RxHead = 0;
+ UART_RxTail = 0;
+
+#if defined( AT90_UART )
+ /* set baud rate */
+ UBRR = (unsigned char)baudrate;
+
+ /* enable UART receiver and transmmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
+
+#elif defined (ATMEGA_USART)
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRH = (unsigned char)(baudrate>>8);
+ UBRRL = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL
+ UCSRC = (1<<URSEL)|(3<<UCSZ0);
+ #else
+ UCSRC = (3<<UCSZ0);
+ #endif
+
+#elif defined (ATMEGA_USART0 )
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X0); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR0H = (unsigned char)(baudrate>>8);
+ UBRR0L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL0
+ UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
+ #else
+ UCSR0C = (3<<UCSZ00);
+ #endif
+
+#elif defined ( ATMEGA_UART )
+ /* set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRHI = (unsigned char)(baudrate>>8);
+ UBRR = (unsigned char) baudrate;
+
+ /* Enable UART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+#endif
+
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART_RxHead == UART_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART_RxBuf[tmptail];
+
+ return (UART_LastRxError << 8) + data;
+
+}/* uart_getc */
+
+
+/*************************************************************************
+Function: uart_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART_TxBuf[tmphead] = data;
+ UART_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART0_CONTROL |= _BV(UART0_UDRIE);
+
+}/* uart_putc */
+
+
+/*************************************************************************
+Function: uart_puts()
+Purpose: transmit string to UART
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts(const char *s )
+{
+ while (*s)
+ uart_putc(*s++);
+
+}/* uart_puts */
+
+
+/*************************************************************************
+Function: uart_puts_p()
+Purpose: transmit string from program memory to UART
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart_putc(c);
+
+}/* uart_puts_p */
+
+
+/*
+ * these functions are only for ATmegas with two USART
+ */
+#if defined( ATMEGA_USART1 )
+
+SIGNAL(UART1_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART1 Receive Complete interrupt
+Purpose: called when the UART1 has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART1_STATUS;
+ data = UART1_DATA;
+
+ /* */
+ lastRxError = (usr & (_BV(FE1)|_BV(DOR1)) );
+
+ /* calculate buffer index */
+ tmphead = ( UART1_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART1_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART1_RxHead = tmphead;
+ /* store received data in buffer */
+ UART1_RxBuf[tmphead] = data;
+ }
+ UART1_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART1_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART1 Data Register Empty interrupt
+Purpose: called when the UART1 is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART1_TxHead != UART1_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART1_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART1_CONTROL &= ~_BV(UART1_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart1_init()
+Purpose: initialize UART1 and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart1_init(unsigned int baudrate)
+{
+ UART1_TxHead = 0;
+ UART1_TxTail = 0;
+ UART1_RxHead = 0;
+ UART1_RxTail = 0;
+
+
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART1_STATUS = (1<<U2X1); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR1H = (unsigned char)(baudrate>>8);
+ UBRR1L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL1
+ UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
+ #else
+ UCSR1C = (3<<UCSZ10);
+ #endif
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart1_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart1_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART1_RxHead == UART1_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART1_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART1_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART1_RxBuf[tmptail];
+
+ return (UART1_LastRxError << 8) + data;
+
+}/* uart1_getc */
+
+
+/*************************************************************************
+Function: uart1_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART1_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART1_TxBuf[tmphead] = data;
+ UART1_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART1_CONTROL |= _BV(UART1_UDRIE);
+
+}/* uart1_putc */
+
+
+/*************************************************************************
+Function: uart1_puts()
+Purpose: transmit string to UART1
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts(const char *s )
+{
+ while (*s)
+ uart1_putc(*s++);
+
+}/* uart1_puts */
+
+
+/*************************************************************************
+Function: uart1_puts_p()
+Purpose: transmit string from program memory to UART1
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart1_putc(c);
+
+}/* uart1_puts_p */
+
+
+#endif
diff --git a/electic_streaming2560/uart.h b/electic_streaming2560/uart.h
new file mode 100644
index 0000000..579c77d
--- /dev/null
+++ b/electic_streaming2560/uart.h
@@ -0,0 +1,195 @@
+#ifndef UART_H
+#define UART_H
+/************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.h,v 1.8.2.1 2007/07/01 11:14:38 peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4
+Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
+License: GNU General Public License
+Usage: see Doxygen manual
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+************************************************************************/
+
+/**
+ * @defgroup pfleury_uart UART Library
+ * @code #include <uart.h> @endcode
+ *
+ * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
+ *
+ * This library can be used to transmit and receive data through the built in UART.
+ *
+ * An interrupt is generated when the UART has finished transmitting or
+ * receiving a byte. The interrupt handling routines use circular buffers
+ * for buffering received and transmitted data.
+ *
+ * The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
+ * the size of the circular buffers in bytes. Note that these constants must be a power of 2.
+ * You may need to adapt this constants to your target and your application by adding
+ * CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
+ *
+ * @note Based on Atmel Application Note AVR306
+ * @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
+ */
+
+/**@{*/
+
+
+#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
+#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
+#endif
+
+
+/*
+** constants and macros
+*/
+
+/** @brief UART Baudrate Expression
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
+
+/** @brief UART Baudrate Expression for ATmega double speed mode
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
+
+
+/** Size of the circular receive buffer, must be power of 2 */
+#ifndef UART_RX_BUFFER_SIZE
+#define UART_RX_BUFFER_SIZE 32
+#endif
+/** Size of the circular transmit buffer, must be power of 2 */
+#ifndef UART_TX_BUFFER_SIZE
+#define UART_TX_BUFFER_SIZE 32
+#endif
+
+/* test if the size of the circular buffers fits into SRAM */
+#if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
+#error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
+#endif
+
+/*
+** high byte error return code of uart_getc()
+*/
+#define UART_FRAME_ERROR 0x0800 /* Framing Error by UART */
+#define UART_OVERRUN_ERROR 0x0400 /* Overrun condition by UART */
+#define UART_BUFFER_OVERFLOW 0x0200 /* receive ringbuffer overflow */
+#define UART_NO_DATA 0x0100 /* no receive data available */
+
+
+/*
+** function prototypes
+*/
+
+/**
+ @brief Initialize UART and set baudrate
+ @param baudrate Specify baudrate using macro UART_BAUD_SELECT()
+ @return none
+*/
+extern void uart_init(unsigned int baudrate);
+
+
+/**
+ * @brief Get received byte from ringbuffer
+ *
+ * Returns in the lower byte the received character and in the
+ * higher byte the last receive error.
+ * UART_NO_DATA is returned when no data is available.
+ *
+ * @param void
+ * @return lower byte: received byte from ringbuffer
+ * @return higher byte: last receive status
+ * - \b 0 successfully received data from UART
+ * - \b UART_NO_DATA
+ * <br>no receive data available
+ * - \b UART_BUFFER_OVERFLOW
+ * <br>Receive ringbuffer overflow.
+ * We are not reading the receive buffer fast enough,
+ * one or more received character have been dropped
+ * - \b UART_OVERRUN_ERROR
+ * <br>Overrun condition by UART.
+ * A character already present in the UART UDR register was
+ * not read by the interrupt handler before the next character arrived,
+ * one or more received characters have been dropped.
+ * - \b UART_FRAME_ERROR
+ * <br>Framing Error by UART
+ */
+extern unsigned int uart_getc(void);
+
+
+/**
+ * @brief Put byte to ringbuffer for transmitting via UART
+ * @param data byte to be transmitted
+ * @return none
+ */
+extern void uart_putc(unsigned char data);
+
+
+/**
+ * @brief Put string to ringbuffer for transmitting via UART
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s string to be transmitted
+ * @return none
+ */
+extern void uart_puts(const char *s );
+
+
+/**
+ * @brief Put string from program memory to ringbuffer for transmitting via UART.
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s program memory string to be transmitted
+ * @return none
+ * @see uart_puts_P
+ */
+extern void uart_puts_p(const char *s );
+
+/**
+ * @brief Macro to automatically put a string constant into program memory
+ */
+#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
+
+
+
+/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
+extern void uart1_init(unsigned int baudrate);
+/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
+extern unsigned int uart1_getc(void);
+/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
+extern void uart1_putc(unsigned char data);
+/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
+extern void uart1_puts(const char *s );
+/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
+extern void uart1_puts_p(const char *s );
+/** @brief Macro to automatically put a string constant into program memory */
+#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
+
+/**@}*/
+
+
+#endif
+// UART_H
+
diff --git a/electic_streaming328p/bin/Debug/electic_streaming.elf b/electic_streaming328p/bin/Debug/electic_streaming.elf
new file mode 100755
index 0000000..3006415
--- /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..30ee594
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.hex
@@ -0,0 +1,364 @@
+:100000000C9444000C946C000C946C000C946C00E8
+:100010000C946C000C946C000C946C000C946C00B0
+:100020000C946C000C946C000C946C000C946E009E
+:100030000C946C000C946C000C946C000C946C0090
+:100040000C946C000C946C000C94D9030C946C0010
+:100050000C946C000C946C000C946C000C946C0070
+:100060000C946C000C946C0005A84CCDB2D44EB925
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803FB70111241FBECFEFD8E0B3
+:10009000DEBFCDBF11E0A0E0B1E0EEE7F6E102C0C7
+:1000A00005900D92A232B107D9F713E0A2E2B1E0B8
+:1000B00001C01D92AC3AB107E1F710E0C8E8D0E00A
+:1000C00004C02297FE010E94A409C638D107C9F7CF
+:1000D0000E945C010C943D0B0C9400001F920F9247
+:1000E0000FB60F9211242F933F934F935F936F930B
+:1000F0007F938F939F93AF93BF93EF93FF93DF9380
+:10010000CF9300D0CDB7DEB7A5E2B0E0E5E2F0E0F6
+:10011000908180E289278C931A82198220C0809175
+:10012000240390912503FC01EE5DFE4F208186E2C1
+:1001300093E0622F0E94BE018091240390912503D9
+:10014000019620E032E0B9010E940709909325034F
+:100150008093240389819A8101969A838983898176
+:100160009A8121E080349207D4F286E293E060E045
+:100170000E94BE010F900F90CF91DF91FF91EF9100
+:10018000BF91AF919F918F917F916F915F914F91AF
+:100190003F912F910F900FBE0F901F901895DF93F6
+:1001A000CF93CDB7DEB764970FB6F894DEBF0FBE1E
+:1001B000CDBF88ED9FE0A9E4B0E4898B9A8BAB8B2F
+:1001C000BC8B80E090E0A0E0B0E08D879E87AF8799
+:1001D000B88B29893A894B895C89CA01B9010E9487
+:1001E0009305DC01CB01BC01CD0120E030E040E013
+:1001F00054E40E94BA06DC01CB018D839E83AF8359
+:10020000B8871A82198248C08D859E85AF85B889C6
+:10021000BC01CD010E94A809DC01CB01BC01CD01CC
+:1002200020E030E04EEF52E40E94C005DC01CB013B
+:1002300089879A87AB87BC876D857E858F859889EE
+:100240002D813E814F8158850E949305DC01CB01B1
+:100250008D879E87AF87B88B69857A858B859C85CE
+:1002600020E030E040E053E40E949305DC01CB0144
+:10027000BC01CD010E946607DC01CB019C838B830E
+:1002800089819A812B81FC01EE5DFE4F208389815B
+:100290009A8101969A83898389819A8122E08030AC
+:1002A00092070CF4B1CF64960FB6F894DEBF0FBE80
+:1002B000CDBFCF91DF910895DF93CF9300D0CDB71D
+:1002C000DEB70E94CF0086E293E040E052EC61E0AE
+:1002D00070E00E94CB01A4E2B0E0E4E2F0E08081B3
+:1002E00080628C93E5E2F0E080E28083A1E8B0E0F8
+:1002F000E1E8F0E0808188608C93AFE6B0E0EFE663
+:10030000F0E0808182608C93E8E8F0E086E891E09C
+:1003100091838083789486E293E00E94C8011A82D8
+:100320001816190614F481E08A838A81882399F3C8
+:10033000A5E2B0E0E5E2F0E0908180E289278C93CD
+:1003400086E293E00E94C50189838981813619F78D
+:1003500086E293E020E031E0B9010E941F02A1E8AB
+:10036000B0E0E1E8F0E0808185608C93D4CF87E154
+:1003700091E090932703809326030895862F0E948F
+:10038000980308950E94D00308950E94B103089530
+:100390000E94A0030895CB01BA010E945F03089553
+:1003A000DC01ED91FC910190F081E02D099508951B
+:1003B000DC01ED91FC910190F081E02D099508950B
+:1003C0000F931F93CF93DF938C01EB0109C021960C
+:1003D000D801ED91FC910190F081E02DC8010995C3
+:1003E00068816623A1F7DF91CF911F910F91089546
+:1003F0000F931F938C01DC01ED91FC910190F08132
+:10040000E02D6DE00995D801ED91FC910190F0810E
+:10041000E02D6AE0C80109951F910F9108950F938F
+:100420001F938C01DC01ED91FC910190F081E02D96
+:100430000995C8010E94F8011F910F9108950F932B
+:100440001F938C010E94E001C8010E94F8011F91D6
+:100450000F9108950F931F938C01DC01ED91FC9196
+:100460000190F081E02D0995C8010E94F8011F91CB
+:100470000F9108952F923F924F925F926F927F92C9
+:100480008F929F92AF92BF92CF92DF92EF92FF92A4
+:100490000F931F93DF93CF93CDB7DEB7A0970FB61F
+:1004A000F894DEBF0FBECDBF1C016A017B01411570
+:1004B00051056105710549F4DC01ED91FC91019054
+:1004C000F081E02D60E3099554C0882499245401FB
+:1004D000422E55246624772401E010E00C0F1D1FE6
+:1004E000080D191DC701B601A30192010E941A0946
+:1004F000F80160830894811C911CA11CB11CC701E8
+:10050000B601A30192010E941A09C901DA016C0126
+:100510007D01C114D104E104F104F1F681E0E82E7B
+:10052000F12CEC0EFD1EE80CF91C3E010894611C38
+:10053000711CD501C4010197A109B1096C01C8184A
+:10054000D90814C0F601EE0DFF1D60816A3010F469
+:10055000605D01C0695CD101ED91FC910190F08179
+:10056000E02DC10109950894E108F1086E147F049B
+:1005700049F7A0960FB6F894DEBF0FBECDBFCF915E
+:10058000DF911F910F91FF90EF90DF90CF90BF9080
+:10059000AF909F908F907F906F905F904F903F9023
+:1005A0002F9008952AE00E943A0208950F931F9316
+:1005B0008C010E94D202C8010E94F8011F910F9184
+:1005C0000895AB0160E070E00E94D20208950F939D
+:1005D0001F938C01AB0160E070E00E94D202C80161
+:1005E0000E94F8011F910F910895EF92FF920F93CF
+:1005F0001F93CF93DF93EC017A018B0177FF0FC03C
+:10060000E881F9810190F081E02D6DE20995109566
+:100610000095F094E094E11CF11C011D111D2AE0ED
+:10062000B801A701CE010E943A02DF91CF911F913C
+:100630000F91FF90EF9008950F931F938C010E94EC
+:10064000F502C8010E94F8011F910F910895AB01B6
+:10065000662757FD6095762F0E94F50208950F9347
+:100660001F938C01AB01662757FD6095762F0E9482
+:10067000F502C8010E94F8011F910F910895DC0155
+:100680002115310541F4ED91FC910190F081E02DAF
+:10069000642F099508952A30310519F40E94F50256
+:1006A00008950E943A0208950F931F938C010E94AF
+:1006B0003F03C8010E94F8011F910F910895EF9226
+:1006C000FF920F931F937B018C0122E030E040E00A
+:1006D00050E00E943C09205C3D4B404F5F4FCA01F7
+:1006E000B901A80197010E943C09C901DA010197EB
+:1006F000A109B109292F3A2F4B2F552747FD5A95AC
+:100700000196A11DB11D2093C50081508093C400A6
+:10071000E1ECF0E08081806180838081886080836B
+:100720008081806880831F910F91FF90EF900895E2
+:10073000982F8091C00085FFFCCF9093C60008954C
+:10074000809128039091290380589F4F20912A037C
+:1007500030912B03821B930B60E870E00E94070925
+:10076000089540912A0350912B0380912803909182
+:1007700029038417950719F42FEF3FEF0FC0FA01F3
+:10078000E45DFC4F2081CA01019660E870E00E94A0
+:10079000070990932B0380932A0330E0C901089541
+:1007A00080912A0390912B0390932903809328032F
+:1007B00008951F920F920FB60F9211242F933F931B
+:1007C0004F935F936F937F938F939F93AF93BF9359
+:1007D000EF93FF934091C600E0912803F091290325
+:1007E000CF01019660E870E00E9407099C018091AA
+:1007F0002A0390912B032817390739F0E45DFC4F49
+:1008000040833093290320932803FF91EF91BF91F8
+:10081000AF919F918F917F916F915F914F913F9198
+:100820002F910F900FBE0F901F901895A0E0B0E091
+:10083000ECE1F4E00C946B09DC012B01FA019C91D2
+:10084000923008F439C1EB018881823008F433C159
+:10085000943069F4843009F02FC111969C9111975E
+:100860008981981709F428C1A9E1B1E025C1843034
+:1008700009F421C18230A9F4923009F01DC19A0116
+:10088000AD0188E0EA010990AE01E90109929E01FB
+:100890008150C1F7E201898111969C91892381835E
+:1008A00008C1923009F407C112962D903C9013971D
+:1008B000EB018A819B811496AD90BD90CD90DC9028
+:1008C0001797EC80FD800E811F819101281B390B49
+:1008D000B90137FF04C066277727621B730B6032AC
+:1008E00071050CF061C0121613066CF53701480152
+:1008F000062E04C096948794779467940A94D2F74E
+:1009000021E030E040E050E004C0220F331F441FDC
+:10091000551F6A95D2F721503040404050402E215B
+:100920003F2140235123211531054105510521F077
+:1009300021E030E040E050E079018A01E628F72824
+:10094000082919293CC0232BD1F1260E371E350169
+:100950004601062E04C096948794779467940A946F
+:10096000D2F721E030E040E050E004C0220F331F16
+:10097000441F551F6A95D2F72150304040405040E7
+:100980002A213B214C215D212115310541055105CD
+:1009900021F021E030E040E050E059016A01A62852
+:1009A000B728C828D9280BC0821593052CF01C0144
+:1009B000AA24BB24650103C0EE24FF2487011196FD
+:1009C0009C91D20111968C91981709F445C09923F6
+:1009D00039F0A80197012A193B094C095D0906C0A5
+:1009E000A60195012E193F09400B510B57FD08C078
+:1009F00011823382228224833583468357831DC02C
+:100A000081E081833382228288279927DC01821B3F
+:100A1000930BA40BB50B84839583A683B7830DC07A
+:100A2000220F331F441F551F24833583468357836A
+:100A300082819381019793838283248135814681CA
+:100A40005781DA01C9010197A109B1098F5F9F4F51
+:100A5000AF4FBF4328F30BC0918333822282EA0C4D
+:100A6000FB1C0C1D1D1DE482F5820683178383E0A9
+:100A70008083248135814681578157FF1AC0C9017F
+:100A8000AA2797FDA095BA2F81709070A070B070C2
+:100A90005695479537952795822B932BA42BB52BED
+:100AA00084839583A683B783828193810196938300
+:100AB0008283DF0101C0D201CD01CDB7DEB7E2E113
+:100AC0000C948709A0E2B0E0E8E6F5E00C94770921
+:100AD00069837A838B839C832D833E834F835887DE
+:100AE000E9E0EE2EF12CEC0EFD1ECE010196B701D1
+:100AF0000E948F088E010F5E1F4FCE010596B80130
+:100B00000E948F088A8991E089278A8BC701B801E2
+:100B1000AE01475E5F4F0E9416040E94BA07A0967E
+:100B2000E6E00C949309A0E2B0E0E9E9F5E00C946A
+:100B3000770969837A838B839C832D833E834F83DC
+:100B40005887F9E0EF2EF12CEC0EFD1ECE01019638
+:100B5000B7010E948F088E010F5E1F4FCE010596D0
+:100B6000B8010E948F08C701B801AE01475E5F4F10
+:100B70000E9416040E94BA07A096E6E00C9493091E
+:100B8000A0E2B0E0E6ECF5E00C946B0969837A83AF
+:100B90008B839C832D833E834F835887CE010196A0
+:100BA000BE01675F7F4F0E948F08CE010596BE0190
+:100BB0006F5E7F4F0E948F089985923088F08989F7
+:100BC0008230C8F0943019F4823051F404C084307B
+:100BD00029F4923081F489E191E0C6C0923049F461
+:100BE00020E09A858A89981321E02A87CE01099608
+:100BF000BBC0823049F420E09A858A89981321E0AD
+:100C00002A8BCE014196B0C02D843E844F845888F3
+:100C10006D887E888F88988CEE24FF248701AA2413
+:100C2000BB24650140E050E060E070E0E0E0F0E00F
+:100C3000C10181709070892BE9F0E60CF71C081D4A
+:100C4000191D9A01AB012A0D3B1D4C1D5D1D80E055
+:100C500090E0A0E0B0E0E614F7040805190520F4E0
+:100C600081E090E0A0E0B0E0BA01A901480F591F6F
+:100C70006A1F7B1FAA0CBB1CCC1CDD1C97FE08C086
+:100C800081E090E0A0E0B0E0A82AB92ACA2ADB2AD5
+:100C90003196E032F10549F0660C771C881C991CEE
+:100CA0005694479437942794C3CFFA85EA892B89C1
+:100CB0003C898B859C85280F391F2E5F3F4F17C0BD
+:100CC000CA0181709070892B61F016950795F79491
+:100CD000E79480E090E0A0E0B0E8E82AF92A0A2B47
+:100CE0001B2B76956795579547952F5F3F4F77FD5F
+:100CF000E7CF0CC0440F551F661F771F17FD4160DB
+:100D0000EE0CFF1C001F111F21503040403090E0BE
+:100D1000590790E0690790E4790760F32B8F3C8FC7
+:100D2000DB01CA018F779070A070B070803491059C
+:100D3000A105B10561F447FD0AC0E114F104010504
+:100D4000110529F0405C5F4F6F4F7F4F40781A8E3E
+:100D5000FE1711F081E08A8F4D8F5E8F6F8F78A321
+:100D600083E0898FCE0149960E94BA07A096E2E1FE
+:100D70000C948709A8E1B0E0E0ECF6E00C9473096C
+:100D800069837A838B839C832D833E834F8358872B
+:100D9000B9E0EB2EF12CEC0EFD1ECE010196B70151
+:100DA0000E948F088E010F5E1F4FCE010596B8017D
+:100DB0000E948F082985223008F47EC0398932309C
+:100DC00010F4B8017CC08A859A8989278A872430E3
+:100DD00011F0223031F4231709F06EC069E171E09F
+:100DE0006EC0343039F41D861E861F86188A1C8614
+:100DF0001B8604C0323021F484E08987B7015FC0CC
+:100E00002B853C858B899C89281B390B3C872B873C
+:100E1000ED84FE840F851889AD88BE88CF88D88C74
+:100E2000EA14FB040C051D0540F4EE0CFF1C001F2A
+:100E3000111F215030403C872B8720E030E040E0FC
+:100E400050E080E090E0A0E0B0E460E070E0EA1400
+:100E5000FB040C051D0540F0282B392B4A2B5B2B7E
+:100E6000EA18FB080C091D09B695A7959795879573
+:100E7000EE0CFF1C001F111F6F5F7F4F6F3171055C
+:100E800031F7DA01C9018F779070A070B0708034AB
+:100E90009105A105B10561F427FD0AC0E114F10433
+:100EA0000105110529F0205C3F4F4F4F5F4F20781F
+:100EB0002D873E874F87588BBE01675F7F4FCB01E1
+:100EC0000E94BA076896EAE00C948F09ACE0B0E0A3
+:100ED000ECE6F7E00C947B0969837A838B839C832F
+:100EE000CE010196BE016B5F7F4F0E948F088D81FE
+:100EF000823061F1823050F1843021F48E81882378
+:100F000051F12EC02F81388537FD20C06E812F31E1
+:100F100031051CF06623F9F023C08EE190E0821BBE
+:100F2000930B29853A854B855C8504C0569547957A
+:100F3000379527958A95D2F76623B1F0509540955D
+:100F4000309521953F4F4F4F5F4F0EC020E030E06E
+:100F500040E050E009C02FEF3FEF4FEF5FE704C0E4
+:100F600020E030E040E050E8B901CA012C96E2E010
+:100F70000C949709DF92EF92FF920F931F93FC015D
+:100F8000E480F58006811781D1808081823048F429
+:100F900080E090E0A0E1B0E0E82AF92A0A2B1B2BC0
+:100FA000A5C0843009F49FC0823021F4EE24FF24D0
+:100FB000870105C0E114F1040105110519F4E0E011
+:100FC000F0E096C0628173819FEF623879070CF080
+:100FD0005BC022E83FEF261B370B2A3131052CF08E
+:100FE00020E030E040E050E02AC0B801A701022E26
+:100FF00004C076956795579547950A94D2F781E096
+:1010000090E0A0E0B0E004C0880F991FAA1FBB1FAA
+:101010002A95D2F70197A109B1098E219F21A0231A
+:10102000B1230097A105B10521F081E090E0A0E097
+:10103000B0E09A01AB01282B392B4A2B5B2BDA014C
+:10104000C9018F779070A070B07080349105A105B0
+:10105000B10539F427FF09C0205C3F4F4F4F5F4F68
+:1010600004C0215C3F4F4F4F5F4FE0E0F0E0203085
+:10107000A0E03A07A0E04A07A0E45A0710F0E1E038
+:10108000F0E079018A0127C06038710564F5FB0141
+:10109000E158FF4FD801C7018F779070A070B070F2
+:1010A00080349105A105B10539F4E7FE0DC080E457
+:1010B00090E0A0E0B0E004C08FE390E0A0E0B0E0FA
+:1010C000E80EF91E0A1F1B1F17FF05C0169507958E
+:1010D000F794E794319687E016950795F794E7948F
+:1010E0008A95D1F705C0EE24FF248701EFEFF0E0E9
+:1010F0006E2F679566276795902F9F77D794DD248D
+:10110000D7948E2F8695492F462B582F5D29B701EE
+:10111000CA011F910F91FF90EF90DF900895FC019D
+:10112000DB01408151812281622F6F7770E0221FA5
+:101130002227221F9381892F880F822B282F30E0AE
+:10114000991F9927991F11969C9311972115310585
+:10115000A9F5411551056105710511F482E037C00B
+:1011600082E89FEF13969C938E9312979A01AB019E
+:1011700067E0220F331F441F551F6A95D1F783E0A4
+:101180008C930DC0220F331F441F551F12968D9153
+:101190009C911397019713969C938E9312972030EE
+:1011A00080E0380780E0480780E4580758F3149639
+:1011B0002D933D934D935C93179708952F3F3105E1
+:1011C00079F4411551056105710519F484E08C939A
+:1011D000089564FF03C081E08C9312C01C9210C07C
+:1011E0002F57304013963C932E93129783E08C93A5
+:1011F00087E0440F551F661F771F8A95D1F77064EB
+:1012000014964D935D936D937C931797089597FB78
+:10121000092E07260AD077FD04D049D006D0002039
+:101220001AF4709561957F4F0895F6F79095819522
+:101230009F4F0895A1E21A2EAA1BBB1BFD010DC0F2
+:10124000AA1FBB1FEE1FFF1FA217B307E407F50776
+:1012500020F0A21BB30BE40BF50B661F771F881F52
+:10126000991F1A9469F760957095809590959B01E8
+:10127000AC01BD01CF01089597FB092E05260ED0C4
+:1012800057FD04D0D7DF0AD0001C38F450954095A4
+:10129000309521953F4F4F4F5F4F0895F6F790954A
+:1012A0008095709561957F4F8F4F9F4F0895AA1B32
+:1012B000BB1B51E107C0AA1FBB1FA617B70710F041
+:1012C000A61BB70B881F991F5A95A9F78095909573
+:1012D000BC01CD0108952F923F924F925F926F9281
+:1012E0007F928F929F92AF92BF92CF92DF92EF92B6
+:1012F000FF920F931F93CF93DF93CDB7DEB7CA1B37
+:10130000DB0B0FB6F894DEBF0FBECDBF09942A8861
+:10131000398848885F846E847D848C849B84AA8409
+:10132000B984C884DF80EE80FD800C811B81AA8196
+:10133000B981CE0FD11D0FB6F894DEBF0FBECDBF61
+:10134000ED010895EE0FFF1F0590F491E02D099433
+:101350009F9305D00F9007FCEE5F28C0CEC03FD012
+:10136000E8F3E894E0E0BB279F57F0F02AED3FE078
+:1013700049EC06C0EE0FBB0F661F771F881F28F0D1
+:10138000B23A62077307840728F0B25A620B730BF4
+:10139000840BE3959A9572F7803830F49A95BB0FD9
+:1013A000661F771F881FD2F790489BC0EF93E0FF1E
+:1013B00006C0A2EA2AED3FE049EC5FEB37D0BFD090
+:1013C0000F90039401FC9058E8E6F0E099C057FDB7
+:1013D0009058440F551F59F05F3F71F04795880FA3
+:1013E00097FB991F61F09F3F79F08795089512163A
+:1013F00013061406551FF2CF4695F1DF08C01616E6
+:1014000017061806991FF1CF869571056105089496
+:10141000089587D030F08CD020F031F49F3F11F444
+:101420001EF46BC00EF4E095E7FB53C0E92FCFDF4D
+:1014300080F3BA17620773078407950718F071F4F1
+:101440009EF58EC00EF4E0950B2EBA2FA02D0B0149
+:10145000B90190010C01CA01A0011124FF27591BF9
+:1014600099F0593F50F4503E68F11A16F040A22FFF
+:10147000232F342F4427585FF3CF46953795279570
+:10148000A795F0405395C9F77EF41F16BA0B620B6F
+:10149000730B840BBAF09150A1F0FF0FBB1F661FB6
+:1014A000771F881FC2F70EC0BA0F621F731F841FF9
+:1014B00048F4879577956795B795F7959E3F08F01F
+:1014C000B3CF9395880F08F09927EE0F97958795DE
+:1014D000089597F99F6780E870E060E008959F3F66
+:1014E00031F0915020F4879577956795B795880FDF
+:1014F000911D9695879597F908959FEF80EC089533
+:101500009F938F937F936F93FF93EF939B01AC0116
+:1015100037DBEF91FF912BD02F913F914F915F914E
+:101520002FCB00240A9416161706180609060895EC
+:1015300000240A9412161306140605060895092EAF
+:101540000394000C11F4882352F0BB0F40F4BF2B1E
+:1015500011F460FF04C06F5F7F4F8F4F9F4F08955E
+:10156000E894BB2766277727CB0197F90895DF9387
+:10157000CF931F930F93FF92EF92DF927B018C0129
+:10158000689405C0DA2EEF0121D0FE01E894A59100
+:101590002591359145915591AEF3EF0147DFFE015D
+:1015A0009701A801DA9479F7DF90EF90FF900F91FF
+:1015B0001F91CF91DF910895B4DF28F0B9DF18F0C3
+:1015C000952309F086CF99CF1124CBCF00DFA0F36C
+:1015D000959FD1F3950F50E0551F629FF001729FC8
+:1015E000BB27F00DB11D639FAA27F00DB11DAA1FE7
+:1015F000649F6627B00DA11D661F829F2227B00D34
+:10160000A11D621F739FB00DA11D621F839FA00DBE
+:10161000611D221F749F3327A00D611D231F849F0E
+:10162000600D211D822F762F6A2F11249F57504065
+:101630008AF0E1F088234AF0EE0FFF1FBB1F661F00
+:10164000771F881F91505040A9F79E3F510570F0B9
+:1016500040CF87CF5F3FECF3983EDCF386957795DC
+:101660006795B795F795E7959F5FC1F7FE2B880FB4
+:0E167000911D9695879597F90895F894FFCFF0
+:10167E0057656C636F6D6520746F20656C65637460
+:10168E0069630000000000BE0100000000000000C1
+:02169E0000004A
+: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..922bd60
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.lss
@@ -0,0 +1,3038 @@
+
+bin/Debug/electic_streaming.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000022 00800100 0000167e 00001712 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 0000167e 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000028a 00800122 00800122 00001734 2**0
+ ALLOC
+ 3 .stab 000023d0 00000000 00000000 00001734 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00001c16 00000000 00000000 00003b04 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_aranges 00000060 00000000 00000000 0000571a 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_pubnames 000002a7 00000000 00000000 0000577a 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_info 00000d0b 00000000 00000000 00005a21 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_abbrev 000003f7 00000000 00000000 0000672c 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_line 00000689 00000000 00000000 00006b23 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame 00000210 00000000 00000000 000071ac 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str 00000420 00000000 00000000 000073bc 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc 0000075a 00000000 00000000 000077dc 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 6e 00 jmp 0xdc ; 0xdc <__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 d9 03 jmp 0x7b2 ; 0x7b2 <__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: b7 01 movw r22, r14
+
+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: ee e7 ldi r30, 0x7E ; 126
+ 9c: f6 e1 ldi r31, 0x16 ; 22
+ 9e: 02 c0 rjmp .+4 ; 0xa4 <.do_copy_data_start>
+
+000000a0 <.do_copy_data_loop>:
+ a0: 05 90 lpm r0, Z+
+ a2: 0d 92 st X+, r0
+
+000000a4 <.do_copy_data_start>:
+ a4: a2 32 cpi r26, 0x22 ; 34
+ a6: b1 07 cpc r27, r17
+ a8: d9 f7 brne .-10 ; 0xa0 <.do_copy_data_loop>
+
+000000aa <__do_clear_bss>:
+ aa: 13 e0 ldi r17, 0x03 ; 3
+ ac: a2 e2 ldi r26, 0x22 ; 34
+ 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: ac 3a cpi r26, 0xAC ; 172
+ 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_start>
+
+000000c2 <.do_global_ctors_loop>:
+ c2: 22 97 sbiw r28, 0x02 ; 2
+ c4: fe 01 movw r30, r28
+ c6: 0e 94 a4 09 call 0x1348 ; 0x1348 <__tablejump__>
+
+000000ca <.do_global_ctors_start>:
+ ca: c6 38 cpi r28, 0x86 ; 134
+ cc: d1 07 cpc r29, r17
+ ce: c9 f7 brne .-14 ; 0xc2 <.do_global_ctors_loop>
+ d0: 0e 94 5c 01 call 0x2b8 ; 0x2b8 <main>
+ d4: 0c 94 3d 0b jmp 0x167a ; 0x167a <_exit>
+
+000000d8 <__bad_interrupt>:
+ d8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000dc <__vector_11>:
+ }
+ }
+ }
+}
+
+ISR(TIMER1_COMPA_vect)
+ dc: 1f 92 push r1
+ de: 0f 92 push r0
+ e0: 0f b6 in r0, 0x3f ; 63
+ e2: 0f 92 push r0
+ e4: 11 24 eor r1, r1
+ e6: 2f 93 push r18
+ e8: 3f 93 push r19
+ ea: 4f 93 push r20
+ ec: 5f 93 push r21
+ ee: 6f 93 push r22
+ f0: 7f 93 push r23
+ f2: 8f 93 push r24
+ f4: 9f 93 push r25
+ f6: af 93 push r26
+ f8: bf 93 push r27
+ fa: ef 93 push r30
+ fc: ff 93 push r31
+ fe: df 93 push r29
+ 100: cf 93 push r28
+ 102: 00 d0 rcall .+0 ; 0x104 <__vector_11+0x28>
+ 104: cd b7 in r28, 0x3d ; 61
+ 106: de b7 in r29, 0x3e ; 62
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ 108: a5 e2 ldi r26, 0x25 ; 37
+ 10a: b0 e0 ldi r27, 0x00 ; 0
+ 10c: e5 e2 ldi r30, 0x25 ; 37
+ 10e: f0 e0 ldi r31, 0x00 ; 0
+ 110: 90 81 ld r25, Z
+ 112: 80 e2 ldi r24, 0x20 ; 32
+ 114: 89 27 eor r24, r25
+ 116: 8c 93 st X, r24
+ for (int i=0;i<PACKETSIZE;i++) {
+ 118: 1a 82 std Y+2, r1 ; 0x02
+ 11a: 19 82 std Y+1, r1 ; 0x01
+ 11c: 20 c0 rjmp .+64 ; 0x15e <__vector_11+0x82>
+ Serial.write(dd[sample]);
+ 11e: 80 91 24 03 lds r24, 0x0324
+ 122: 90 91 25 03 lds r25, 0x0325
+ 126: fc 01 movw r30, r24
+ 128: ee 5d subi r30, 0xDE ; 222
+ 12a: fe 4f sbci r31, 0xFE ; 254
+ 12c: 20 81 ld r18, Z
+ 12e: 86 e2 ldi r24, 0x26 ; 38
+ 130: 93 e0 ldi r25, 0x03 ; 3
+ 132: 62 2f mov r22, r18
+ 134: 0e 94 be 01 call 0x37c ; 0x37c <_ZN14HardwareSerial5writeEh>
+ sample=(sample+1)%SAMPLES;
+ 138: 80 91 24 03 lds r24, 0x0324
+ 13c: 90 91 25 03 lds r25, 0x0325
+ 140: 01 96 adiw r24, 0x01 ; 1
+ 142: 20 e0 ldi r18, 0x00 ; 0
+ 144: 32 e0 ldi r19, 0x02 ; 2
+ 146: b9 01 movw r22, r18
+ 148: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 14c: 90 93 25 03 sts 0x0325, r25
+ 150: 80 93 24 03 sts 0x0324, r24
+
+ISR(TIMER1_COMPA_vect)
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ for (int i=0;i<PACKETSIZE;i++) {
+ 154: 89 81 ldd r24, Y+1 ; 0x01
+ 156: 9a 81 ldd r25, Y+2 ; 0x02
+ 158: 01 96 adiw r24, 0x01 ; 1
+ 15a: 9a 83 std Y+2, r25 ; 0x02
+ 15c: 89 83 std Y+1, r24 ; 0x01
+ 15e: 89 81 ldd r24, Y+1 ; 0x01
+ 160: 9a 81 ldd r25, Y+2 ; 0x02
+ 162: 21 e0 ldi r18, 0x01 ; 1
+ 164: 80 34 cpi r24, 0x40 ; 64
+ 166: 92 07 cpc r25, r18
+ 168: d4 f2 brlt .-76 ; 0x11e <__vector_11+0x42>
+ Serial.write(dd[sample]);
+ sample=(sample+1)%SAMPLES;
+ }
+ Serial.write((byte)0);
+ 16a: 86 e2 ldi r24, 0x26 ; 38
+ 16c: 93 e0 ldi r25, 0x03 ; 3
+ 16e: 60 e0 ldi r22, 0x00 ; 0
+ 170: 0e 94 be 01 call 0x37c ; 0x37c <_ZN14HardwareSerial5writeEh>
+}
+ 174: 0f 90 pop r0
+ 176: 0f 90 pop r0
+ 178: cf 91 pop r28
+ 17a: df 91 pop r29
+ 17c: ff 91 pop r31
+ 17e: ef 91 pop r30
+ 180: bf 91 pop r27
+ 182: af 91 pop r26
+ 184: 9f 91 pop r25
+ 186: 8f 91 pop r24
+ 188: 7f 91 pop r23
+ 18a: 6f 91 pop r22
+ 18c: 5f 91 pop r21
+ 18e: 4f 91 pop r20
+ 190: 3f 91 pop r19
+ 192: 2f 91 pop r18
+ 194: 0f 90 pop r0
+ 196: 0f be out 0x3f, r0 ; 63
+ 198: 0f 90 pop r0
+ 19a: 1f 90 pop r1
+ 19c: 18 95 reti
+
+0000019e <_Z13fill_sinewavev>:
+
+byte dd[SAMPLES]; // ram buffer
+int loopCount=0;
+int sample=0;
+
+void fill_sinewave(){
+ 19e: df 93 push r29
+ 1a0: cf 93 push r28
+ 1a2: cd b7 in r28, 0x3d ; 61
+ 1a4: de b7 in r29, 0x3e ; 62
+ 1a6: 64 97 sbiw r28, 0x14 ; 20
+ 1a8: 0f b6 in r0, 0x3f ; 63
+ 1aa: f8 94 cli
+ 1ac: de bf out 0x3e, r29 ; 62
+ 1ae: 0f be out 0x3f, r0 ; 63
+ 1b0: 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;
+ 1b2: 88 ed ldi r24, 0xD8 ; 216
+ 1b4: 9f e0 ldi r25, 0x0F ; 15
+ 1b6: a9 e4 ldi r26, 0x49 ; 73
+ 1b8: b0 e4 ldi r27, 0x40 ; 64
+ 1ba: 89 8b std Y+17, r24 ; 0x11
+ 1bc: 9a 8b std Y+18, r25 ; 0x12
+ 1be: ab 8b std Y+19, r26 ; 0x13
+ 1c0: bc 8b std Y+20, r27 ; 0x14
+ float fcnt=0;
+ 1c2: 80 e0 ldi r24, 0x00 ; 0
+ 1c4: 90 e0 ldi r25, 0x00 ; 0
+ 1c6: a0 e0 ldi r26, 0x00 ; 0
+ 1c8: b0 e0 ldi r27, 0x00 ; 0
+ 1ca: 8d 87 std Y+13, r24 ; 0x0d
+ 1cc: 9e 87 std Y+14, r25 ; 0x0e
+ 1ce: af 87 std Y+15, r26 ; 0x0f
+ 1d0: b8 8b std Y+16, r27 ; 0x10
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ 1d2: 29 89 ldd r18, Y+17 ; 0x11
+ 1d4: 3a 89 ldd r19, Y+18 ; 0x12
+ 1d6: 4b 89 ldd r20, Y+19 ; 0x13
+ 1d8: 5c 89 ldd r21, Y+20 ; 0x14
+ 1da: ca 01 movw r24, r20
+ 1dc: b9 01 movw r22, r18
+ 1de: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 1e2: dc 01 movw r26, r24
+ 1e4: cb 01 movw r24, r22
+ 1e6: bc 01 movw r22, r24
+ 1e8: cd 01 movw r24, r26
+ 1ea: 20 e0 ldi r18, 0x00 ; 0
+ 1ec: 30 e0 ldi r19, 0x00 ; 0
+ 1ee: 40 e0 ldi r20, 0x00 ; 0
+ 1f0: 54 e4 ldi r21, 0x44 ; 68
+ 1f2: 0e 94 ba 06 call 0xd74 ; 0xd74 <__divsf3>
+ 1f6: dc 01 movw r26, r24
+ 1f8: cb 01 movw r24, r22
+ 1fa: 8d 83 std Y+5, r24 ; 0x05
+ 1fc: 9e 83 std Y+6, r25 ; 0x06
+ 1fe: af 83 std Y+7, r26 ; 0x07
+ 200: b8 87 std Y+8, r27 ; 0x08
+ int bb;
+ for (int i = 0; i <SAMPLES ; i++){ // with 50 periods sinewawe
+ 202: 1a 82 std Y+2, r1 ; 0x02
+ 204: 19 82 std Y+1, r1 ; 0x01
+ 206: 48 c0 rjmp .+144 ; 0x298 <_Z13fill_sinewavev+0xfa>
+ fd= 127*sin(fcnt); // fundamental tone
+ 208: 8d 85 ldd r24, Y+13 ; 0x0d
+ 20a: 9e 85 ldd r25, Y+14 ; 0x0e
+ 20c: af 85 ldd r26, Y+15 ; 0x0f
+ 20e: b8 89 ldd r27, Y+16 ; 0x10
+ 210: bc 01 movw r22, r24
+ 212: cd 01 movw r24, r26
+ 214: 0e 94 a8 09 call 0x1350 ; 0x1350 <sin>
+ 218: dc 01 movw r26, r24
+ 21a: cb 01 movw r24, r22
+ 21c: bc 01 movw r22, r24
+ 21e: cd 01 movw r24, r26
+ 220: 20 e0 ldi r18, 0x00 ; 0
+ 222: 30 e0 ldi r19, 0x00 ; 0
+ 224: 4e ef ldi r20, 0xFE ; 254
+ 226: 52 e4 ldi r21, 0x42 ; 66
+ 228: 0e 94 c0 05 call 0xb80 ; 0xb80 <__mulsf3>
+ 22c: dc 01 movw r26, r24
+ 22e: cb 01 movw r24, r22
+ 230: 89 87 std Y+9, r24 ; 0x09
+ 232: 9a 87 std Y+10, r25 ; 0x0a
+ 234: ab 87 std Y+11, r26 ; 0x0b
+ 236: bc 87 std Y+12, r27 ; 0x0c
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ 238: 6d 85 ldd r22, Y+13 ; 0x0d
+ 23a: 7e 85 ldd r23, Y+14 ; 0x0e
+ 23c: 8f 85 ldd r24, Y+15 ; 0x0f
+ 23e: 98 89 ldd r25, Y+16 ; 0x10
+ 240: 2d 81 ldd r18, Y+5 ; 0x05
+ 242: 3e 81 ldd r19, Y+6 ; 0x06
+ 244: 4f 81 ldd r20, Y+7 ; 0x07
+ 246: 58 85 ldd r21, Y+8 ; 0x08
+ 248: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 24c: dc 01 movw r26, r24
+ 24e: cb 01 movw r24, r22
+ 250: 8d 87 std Y+13, r24 ; 0x0d
+ 252: 9e 87 std Y+14, r25 ; 0x0e
+ 254: af 87 std Y+15, r26 ; 0x0f
+ 256: b8 8b std Y+16, r27 ; 0x10
+ bb=128+fd; // add dc offset to sinewawe
+ 258: 69 85 ldd r22, Y+9 ; 0x09
+ 25a: 7a 85 ldd r23, Y+10 ; 0x0a
+ 25c: 8b 85 ldd r24, Y+11 ; 0x0b
+ 25e: 9c 85 ldd r25, Y+12 ; 0x0c
+ 260: 20 e0 ldi r18, 0x00 ; 0
+ 262: 30 e0 ldi r19, 0x00 ; 0
+ 264: 40 e0 ldi r20, 0x00 ; 0
+ 266: 53 e4 ldi r21, 0x43 ; 67
+ 268: 0e 94 93 05 call 0xb26 ; 0xb26 <__addsf3>
+ 26c: dc 01 movw r26, r24
+ 26e: cb 01 movw r24, r22
+ 270: bc 01 movw r22, r24
+ 272: cd 01 movw r24, r26
+ 274: 0e 94 66 07 call 0xecc ; 0xecc <__fixsfsi>
+ 278: dc 01 movw r26, r24
+ 27a: cb 01 movw r24, r22
+ 27c: 9c 83 std Y+4, r25 ; 0x04
+ 27e: 8b 83 std Y+3, r24 ; 0x03
+ dd[i]=bb; // write value into array
+ 280: 89 81 ldd r24, Y+1 ; 0x01
+ 282: 9a 81 ldd r25, Y+2 ; 0x02
+ 284: 2b 81 ldd r18, Y+3 ; 0x03
+ 286: fc 01 movw r30, r24
+ 288: ee 5d subi r30, 0xDE ; 222
+ 28a: fe 4f sbci r31, 0xFE ; 254
+ 28c: 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
+ 28e: 89 81 ldd r24, Y+1 ; 0x01
+ 290: 9a 81 ldd r25, Y+2 ; 0x02
+ 292: 01 96 adiw r24, 0x01 ; 1
+ 294: 9a 83 std Y+2, r25 ; 0x02
+ 296: 89 83 std Y+1, r24 ; 0x01
+ 298: 89 81 ldd r24, Y+1 ; 0x01
+ 29a: 9a 81 ldd r25, Y+2 ; 0x02
+ 29c: 22 e0 ldi r18, 0x02 ; 2
+ 29e: 80 30 cpi r24, 0x00 ; 0
+ 2a0: 92 07 cpc r25, r18
+ 2a2: 0c f4 brge .+2 ; 0x2a6 <_Z13fill_sinewavev+0x108>
+ 2a4: b1 cf rjmp .-158 ; 0x208 <_Z13fill_sinewavev+0x6a>
+ 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
+ }
+}
+ 2a6: 64 96 adiw r28, 0x14 ; 20
+ 2a8: 0f b6 in r0, 0x3f ; 63
+ 2aa: f8 94 cli
+ 2ac: de bf out 0x3e, r29 ; 62
+ 2ae: 0f be out 0x3f, r0 ; 63
+ 2b0: cd bf out 0x3d, r28 ; 61
+ 2b2: cf 91 pop r28
+ 2b4: df 91 pop r29
+ 2b6: 08 95 ret
+
+000002b8 <main>:
+
+int main(){
+ 2b8: df 93 push r29
+ 2ba: cf 93 push r28
+ 2bc: 00 d0 rcall .+0 ; 0x2be <main+0x6>
+ 2be: cd b7 in r28, 0x3d ; 61
+ 2c0: 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();
+ 2c2: 0e 94 cf 00 call 0x19e ; 0x19e <_Z13fill_sinewavev>
+ Serial.begin(115200);
+ 2c6: 86 e2 ldi r24, 0x26 ; 38
+ 2c8: 93 e0 ldi r25, 0x03 ; 3
+ 2ca: 40 e0 ldi r20, 0x00 ; 0
+ 2cc: 52 ec ldi r21, 0xC2 ; 194
+ 2ce: 61 e0 ldi r22, 0x01 ; 1
+ 2d0: 70 e0 ldi r23, 0x00 ; 0
+ 2d2: 0e 94 cb 01 call 0x396 ; 0x396 <_ZN14HardwareSerial5beginEl>
+
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ 2d6: a4 e2 ldi r26, 0x24 ; 36
+ 2d8: b0 e0 ldi r27, 0x00 ; 0
+ 2da: e4 e2 ldi r30, 0x24 ; 36
+ 2dc: f0 e0 ldi r31, 0x00 ; 0
+ 2de: 80 81 ld r24, Z
+ 2e0: 80 62 ori r24, 0x20 ; 32
+ 2e2: 8c 93 st X, r24
+ PORTB = (1 << 5); //turn on to start
+ 2e4: e5 e2 ldi r30, 0x25 ; 37
+ 2e6: f0 e0 ldi r31, 0x00 ; 0
+ 2e8: 80 e2 ldi r24, 0x20 ; 32
+ 2ea: 80 83 st Z, r24
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ 2ec: a1 e8 ldi r26, 0x81 ; 129
+ 2ee: b0 e0 ldi r27, 0x00 ; 0
+ 2f0: e1 e8 ldi r30, 0x81 ; 129
+ 2f2: f0 e0 ldi r31, 0x00 ; 0
+ 2f4: 80 81 ld r24, Z
+ 2f6: 88 60 ori r24, 0x08 ; 8
+ 2f8: 8c 93 st X, r24
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ 2fa: af e6 ldi r26, 0x6F ; 111
+ 2fc: b0 e0 ldi r27, 0x00 ; 0
+ 2fe: ef e6 ldi r30, 0x6F ; 111
+ 300: f0 e0 ldi r31, 0x00 ; 0
+ 302: 80 81 ld r24, Z
+ 304: 82 60 ori r24, 0x02 ; 2
+ 306: 8c 93 st X, r24
+ OCR1A = 390; // Set CTC compare value: final speed = CPU clocks / prescaler / CTC 15625=1Hz
+ 308: e8 e8 ldi r30, 0x88 ; 136
+ 30a: f0 e0 ldi r31, 0x00 ; 0
+ 30c: 86 e8 ldi r24, 0x86 ; 134
+ 30e: 91 e0 ldi r25, 0x01 ; 1
+ 310: 91 83 std Z+1, r25 ; 0x01
+ 312: 80 83 st Z, r24
+ sei(); // Enable global interrupts
+ 314: 78 94 sei
+
+ while(1) {
+ if (Serial.available() > 0) {
+ 316: 86 e2 ldi r24, 0x26 ; 38
+ 318: 93 e0 ldi r25, 0x03 ; 3
+ 31a: 0e 94 c8 01 call 0x390 ; 0x390 <_ZN14HardwareSerial9availableEv>
+ 31e: 1a 82 std Y+2, r1 ; 0x02
+ 320: 18 16 cp r1, r24
+ 322: 19 06 cpc r1, r25
+ 324: 14 f4 brge .+4 ; 0x32a <main+0x72>
+ 326: 81 e0 ldi r24, 0x01 ; 1
+ 328: 8a 83 std Y+2, r24 ; 0x02
+ 32a: 8a 81 ldd r24, Y+2 ; 0x02
+ 32c: 88 23 and r24, r24
+ 32e: 99 f3 breq .-26 ; 0x316 <main+0x5e>
+ PORTB ^= (1 << 5);
+ 330: a5 e2 ldi r26, 0x25 ; 37
+ 332: b0 e0 ldi r27, 0x00 ; 0
+ 334: e5 e2 ldi r30, 0x25 ; 37
+ 336: f0 e0 ldi r31, 0x00 ; 0
+ 338: 90 81 ld r25, Z
+ 33a: 80 e2 ldi r24, 0x20 ; 32
+ 33c: 89 27 eor r24, r25
+ 33e: 8c 93 st X, r24
+ byte in=Serial.read();
+ 340: 86 e2 ldi r24, 0x26 ; 38
+ 342: 93 e0 ldi r25, 0x03 ; 3
+ 344: 0e 94 c5 01 call 0x38a ; 0x38a <_ZN14HardwareSerial4readEv>
+ 348: 89 83 std Y+1, r24 ; 0x01
+ if (in=='a') {
+ 34a: 89 81 ldd r24, Y+1 ; 0x01
+ 34c: 81 36 cpi r24, 0x61 ; 97
+ 34e: 19 f7 brne .-58 ; 0x316 <main+0x5e>
+ Serial.println("Welcome to electic");
+ 350: 86 e2 ldi r24, 0x26 ; 38
+ 352: 93 e0 ldi r25, 0x03 ; 3
+ 354: 20 e0 ldi r18, 0x00 ; 0
+ 356: 31 e0 ldi r19, 0x01 ; 1
+ 358: b9 01 movw r22, r18
+ 35a: 0e 94 1f 02 call 0x43e ; 0x43e <_ZN5Print7printlnEPKc>
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ 35e: a1 e8 ldi r26, 0x81 ; 129
+ 360: b0 e0 ldi r27, 0x00 ; 0
+ 362: e1 e8 ldi r30, 0x81 ; 129
+ 364: f0 e0 ldi r31, 0x00 ; 0
+ 366: 80 81 ld r24, Z
+ 368: 85 60 ori r24, 0x05 ; 5
+ 36a: 8c 93 st X, r24
+ 36c: d4 cf rjmp .-88 ; 0x316 <main+0x5e>
+
+0000036e <_GLOBAL__I__ZN14HardwareSerial5beginEl>:
+ 36e: 87 e1 ldi r24, 0x17 ; 23
+ 370: 91 e0 ldi r25, 0x01 ; 1
+ 372: 90 93 27 03 sts 0x0327, r25
+ 376: 80 93 26 03 sts 0x0326, r24
+ 37a: 08 95 ret
+
+0000037c <_ZN14HardwareSerial5writeEh>:
+ 37c: 86 2f mov r24, r22
+ 37e: 0e 94 98 03 call 0x730 ; 0x730 <serialWrite>
+ 382: 08 95 ret
+
+00000384 <_ZN14HardwareSerial5flushEv>:
+ 384: 0e 94 d0 03 call 0x7a0 ; 0x7a0 <serialFlush>
+ 388: 08 95 ret
+
+0000038a <_ZN14HardwareSerial4readEv>:
+ 38a: 0e 94 b1 03 call 0x762 ; 0x762 <serialRead>
+ 38e: 08 95 ret
+
+00000390 <_ZN14HardwareSerial9availableEv>:
+ 390: 0e 94 a0 03 call 0x740 ; 0x740 <serialAvailable>
+ 394: 08 95 ret
+
+00000396 <_ZN14HardwareSerial5beginEl>:
+ 396: cb 01 movw r24, r22
+ 398: ba 01 movw r22, r20
+ 39a: 0e 94 5f 03 call 0x6be ; 0x6be <beginSerial>
+ 39e: 08 95 ret
+
+000003a0 <_ZN5Print5printEh>:
+ 3a0: dc 01 movw r26, r24
+ 3a2: ed 91 ld r30, X+
+ 3a4: fc 91 ld r31, X
+ 3a6: 01 90 ld r0, Z+
+ 3a8: f0 81 ld r31, Z
+ 3aa: e0 2d mov r30, r0
+ 3ac: 09 95 icall
+ 3ae: 08 95 ret
+
+000003b0 <_ZN5Print5printEc>:
+ 3b0: dc 01 movw r26, r24
+ 3b2: ed 91 ld r30, X+
+ 3b4: fc 91 ld r31, X
+ 3b6: 01 90 ld r0, Z+
+ 3b8: f0 81 ld r31, Z
+ 3ba: e0 2d mov r30, r0
+ 3bc: 09 95 icall
+ 3be: 08 95 ret
+
+000003c0 <_ZN5Print5printEPKc>:
+ 3c0: 0f 93 push r16
+ 3c2: 1f 93 push r17
+ 3c4: cf 93 push r28
+ 3c6: df 93 push r29
+ 3c8: 8c 01 movw r16, r24
+ 3ca: eb 01 movw r28, r22
+ 3cc: 09 c0 rjmp .+18 ; 0x3e0 <_ZN5Print5printEPKc+0x20>
+ 3ce: 21 96 adiw r28, 0x01 ; 1
+ 3d0: d8 01 movw r26, r16
+ 3d2: ed 91 ld r30, X+
+ 3d4: fc 91 ld r31, X
+ 3d6: 01 90 ld r0, Z+
+ 3d8: f0 81 ld r31, Z
+ 3da: e0 2d mov r30, r0
+ 3dc: c8 01 movw r24, r16
+ 3de: 09 95 icall
+ 3e0: 68 81 ld r22, Y
+ 3e2: 66 23 and r22, r22
+ 3e4: a1 f7 brne .-24 ; 0x3ce <_ZN5Print5printEPKc+0xe>
+ 3e6: df 91 pop r29
+ 3e8: cf 91 pop r28
+ 3ea: 1f 91 pop r17
+ 3ec: 0f 91 pop r16
+ 3ee: 08 95 ret
+
+000003f0 <_ZN5Print7printlnEv>:
+ 3f0: 0f 93 push r16
+ 3f2: 1f 93 push r17
+ 3f4: 8c 01 movw r16, r24
+ 3f6: dc 01 movw r26, r24
+ 3f8: ed 91 ld r30, X+
+ 3fa: fc 91 ld r31, X
+ 3fc: 01 90 ld r0, Z+
+ 3fe: f0 81 ld r31, Z
+ 400: e0 2d mov r30, r0
+ 402: 6d e0 ldi r22, 0x0D ; 13
+ 404: 09 95 icall
+ 406: d8 01 movw r26, r16
+ 408: ed 91 ld r30, X+
+ 40a: fc 91 ld r31, X
+ 40c: 01 90 ld r0, Z+
+ 40e: f0 81 ld r31, Z
+ 410: e0 2d mov r30, r0
+ 412: 6a e0 ldi r22, 0x0A ; 10
+ 414: c8 01 movw r24, r16
+ 416: 09 95 icall
+ 418: 1f 91 pop r17
+ 41a: 0f 91 pop r16
+ 41c: 08 95 ret
+
+0000041e <_ZN5Print7printlnEc>:
+ 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: 09 95 icall
+ 432: c8 01 movw r24, r16
+ 434: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 438: 1f 91 pop r17
+ 43a: 0f 91 pop r16
+ 43c: 08 95 ret
+
+0000043e <_ZN5Print7printlnEPKc>:
+ 43e: 0f 93 push r16
+ 440: 1f 93 push r17
+ 442: 8c 01 movw r16, r24
+ 444: 0e 94 e0 01 call 0x3c0 ; 0x3c0 <_ZN5Print5printEPKc>
+ 448: c8 01 movw r24, r16
+ 44a: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 44e: 1f 91 pop r17
+ 450: 0f 91 pop r16
+ 452: 08 95 ret
+
+00000454 <_ZN5Print7printlnEh>:
+ 454: 0f 93 push r16
+ 456: 1f 93 push r17
+ 458: 8c 01 movw r16, r24
+ 45a: dc 01 movw r26, r24
+ 45c: ed 91 ld r30, X+
+ 45e: fc 91 ld r31, X
+ 460: 01 90 ld r0, Z+
+ 462: f0 81 ld r31, Z
+ 464: e0 2d mov r30, r0
+ 466: 09 95 icall
+ 468: c8 01 movw r24, r16
+ 46a: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 46e: 1f 91 pop r17
+ 470: 0f 91 pop r16
+ 472: 08 95 ret
+
+00000474 <_ZN5Print11printNumberEmh>:
+ 474: 2f 92 push r2
+ 476: 3f 92 push r3
+ 478: 4f 92 push r4
+ 47a: 5f 92 push r5
+ 47c: 6f 92 push r6
+ 47e: 7f 92 push r7
+ 480: 8f 92 push r8
+ 482: 9f 92 push r9
+ 484: af 92 push r10
+ 486: bf 92 push r11
+ 488: cf 92 push r12
+ 48a: df 92 push r13
+ 48c: ef 92 push r14
+ 48e: ff 92 push r15
+ 490: 0f 93 push r16
+ 492: 1f 93 push r17
+ 494: df 93 push r29
+ 496: cf 93 push r28
+ 498: cd b7 in r28, 0x3d ; 61
+ 49a: de b7 in r29, 0x3e ; 62
+ 49c: a0 97 sbiw r28, 0x20 ; 32
+ 49e: 0f b6 in r0, 0x3f ; 63
+ 4a0: f8 94 cli
+ 4a2: de bf out 0x3e, r29 ; 62
+ 4a4: 0f be out 0x3f, r0 ; 63
+ 4a6: cd bf out 0x3d, r28 ; 61
+ 4a8: 1c 01 movw r2, r24
+ 4aa: 6a 01 movw r12, r20
+ 4ac: 7b 01 movw r14, r22
+ 4ae: 41 15 cp r20, r1
+ 4b0: 51 05 cpc r21, r1
+ 4b2: 61 05 cpc r22, r1
+ 4b4: 71 05 cpc r23, r1
+ 4b6: 49 f4 brne .+18 ; 0x4ca <_ZN5Print11printNumberEmh+0x56>
+ 4b8: dc 01 movw r26, r24
+ 4ba: ed 91 ld r30, X+
+ 4bc: fc 91 ld r31, X
+ 4be: 01 90 ld r0, Z+
+ 4c0: f0 81 ld r31, Z
+ 4c2: e0 2d mov r30, r0
+ 4c4: 60 e3 ldi r22, 0x30 ; 48
+ 4c6: 09 95 icall
+ 4c8: 54 c0 rjmp .+168 ; 0x572 <_ZN5Print11printNumberEmh+0xfe>
+ 4ca: 88 24 eor r8, r8
+ 4cc: 99 24 eor r9, r9
+ 4ce: 54 01 movw r10, r8
+ 4d0: 42 2e mov r4, r18
+ 4d2: 55 24 eor r5, r5
+ 4d4: 66 24 eor r6, r6
+ 4d6: 77 24 eor r7, r7
+ 4d8: 01 e0 ldi r16, 0x01 ; 1
+ 4da: 10 e0 ldi r17, 0x00 ; 0
+ 4dc: 0c 0f add r16, r28
+ 4de: 1d 1f adc r17, r29
+ 4e0: 08 0d add r16, r8
+ 4e2: 19 1d adc r17, r9
+ 4e4: c7 01 movw r24, r14
+ 4e6: b6 01 movw r22, r12
+ 4e8: a3 01 movw r20, r6
+ 4ea: 92 01 movw r18, r4
+ 4ec: 0e 94 1a 09 call 0x1234 ; 0x1234 <__udivmodsi4>
+ 4f0: f8 01 movw r30, r16
+ 4f2: 60 83 st Z, r22
+ 4f4: 08 94 sec
+ 4f6: 81 1c adc r8, r1
+ 4f8: 91 1c adc r9, r1
+ 4fa: a1 1c adc r10, r1
+ 4fc: b1 1c adc r11, r1
+ 4fe: c7 01 movw r24, r14
+ 500: b6 01 movw r22, r12
+ 502: a3 01 movw r20, r6
+ 504: 92 01 movw r18, r4
+ 506: 0e 94 1a 09 call 0x1234 ; 0x1234 <__udivmodsi4>
+ 50a: c9 01 movw r24, r18
+ 50c: da 01 movw r26, r20
+ 50e: 6c 01 movw r12, r24
+ 510: 7d 01 movw r14, r26
+ 512: c1 14 cp r12, r1
+ 514: d1 04 cpc r13, r1
+ 516: e1 04 cpc r14, r1
+ 518: f1 04 cpc r15, r1
+ 51a: f1 f6 brne .-68 ; 0x4d8 <_ZN5Print11printNumberEmh+0x64>
+ 51c: 81 e0 ldi r24, 0x01 ; 1
+ 51e: e8 2e mov r14, r24
+ 520: f1 2c mov r15, r1
+ 522: ec 0e add r14, r28
+ 524: fd 1e adc r15, r29
+ 526: e8 0c add r14, r8
+ 528: f9 1c adc r15, r9
+ 52a: 3e 01 movw r6, r28
+ 52c: 08 94 sec
+ 52e: 61 1c adc r6, r1
+ 530: 71 1c adc r7, r1
+ 532: d5 01 movw r26, r10
+ 534: c4 01 movw r24, r8
+ 536: 01 97 sbiw r24, 0x01 ; 1
+ 538: a1 09 sbc r26, r1
+ 53a: b1 09 sbc r27, r1
+ 53c: 6c 01 movw r12, r24
+ 53e: c8 18 sub r12, r8
+ 540: d9 08 sbc r13, r9
+ 542: 14 c0 rjmp .+40 ; 0x56c <_ZN5Print11printNumberEmh+0xf8>
+ 544: f6 01 movw r30, r12
+ 546: ee 0d add r30, r14
+ 548: ff 1d adc r31, r15
+ 54a: 60 81 ld r22, Z
+ 54c: 6a 30 cpi r22, 0x0A ; 10
+ 54e: 10 f4 brcc .+4 ; 0x554 <_ZN5Print11printNumberEmh+0xe0>
+ 550: 60 5d subi r22, 0xD0 ; 208
+ 552: 01 c0 rjmp .+2 ; 0x556 <_ZN5Print11printNumberEmh+0xe2>
+ 554: 69 5c subi r22, 0xC9 ; 201
+ 556: d1 01 movw r26, r2
+ 558: ed 91 ld r30, X+
+ 55a: fc 91 ld r31, X
+ 55c: 01 90 ld r0, Z+
+ 55e: f0 81 ld r31, Z
+ 560: e0 2d mov r30, r0
+ 562: c1 01 movw r24, r2
+ 564: 09 95 icall
+ 566: 08 94 sec
+ 568: e1 08 sbc r14, r1
+ 56a: f1 08 sbc r15, r1
+ 56c: 6e 14 cp r6, r14
+ 56e: 7f 04 cpc r7, r15
+ 570: 49 f7 brne .-46 ; 0x544 <_ZN5Print11printNumberEmh+0xd0>
+ 572: a0 96 adiw r28, 0x20 ; 32
+ 574: 0f b6 in r0, 0x3f ; 63
+ 576: f8 94 cli
+ 578: de bf out 0x3e, r29 ; 62
+ 57a: 0f be out 0x3f, r0 ; 63
+ 57c: cd bf out 0x3d, r28 ; 61
+ 57e: cf 91 pop r28
+ 580: df 91 pop r29
+ 582: 1f 91 pop r17
+ 584: 0f 91 pop r16
+ 586: ff 90 pop r15
+ 588: ef 90 pop r14
+ 58a: df 90 pop r13
+ 58c: cf 90 pop r12
+ 58e: bf 90 pop r11
+ 590: af 90 pop r10
+ 592: 9f 90 pop r9
+ 594: 8f 90 pop r8
+ 596: 7f 90 pop r7
+ 598: 6f 90 pop r6
+ 59a: 5f 90 pop r5
+ 59c: 4f 90 pop r4
+ 59e: 3f 90 pop r3
+ 5a0: 2f 90 pop r2
+ 5a2: 08 95 ret
+
+000005a4 <_ZN5Print5printEm>:
+ 5a4: 2a e0 ldi r18, 0x0A ; 10
+ 5a6: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 5aa: 08 95 ret
+
+000005ac <_ZN5Print7printlnEm>:
+ 5ac: 0f 93 push r16
+ 5ae: 1f 93 push r17
+ 5b0: 8c 01 movw r16, r24
+ 5b2: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5b6: c8 01 movw r24, r16
+ 5b8: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 5bc: 1f 91 pop r17
+ 5be: 0f 91 pop r16
+ 5c0: 08 95 ret
+
+000005c2 <_ZN5Print5printEj>:
+ 5c2: ab 01 movw r20, r22
+ 5c4: 60 e0 ldi r22, 0x00 ; 0
+ 5c6: 70 e0 ldi r23, 0x00 ; 0
+ 5c8: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5cc: 08 95 ret
+
+000005ce <_ZN5Print7printlnEj>:
+ 5ce: 0f 93 push r16
+ 5d0: 1f 93 push r17
+ 5d2: 8c 01 movw r16, r24
+ 5d4: ab 01 movw r20, r22
+ 5d6: 60 e0 ldi r22, 0x00 ; 0
+ 5d8: 70 e0 ldi r23, 0x00 ; 0
+ 5da: 0e 94 d2 02 call 0x5a4 ; 0x5a4 <_ZN5Print5printEm>
+ 5de: c8 01 movw r24, r16
+ 5e0: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 5e4: 1f 91 pop r17
+ 5e6: 0f 91 pop r16
+ 5e8: 08 95 ret
+
+000005ea <_ZN5Print5printEl>:
+ 5ea: ef 92 push r14
+ 5ec: ff 92 push r15
+ 5ee: 0f 93 push r16
+ 5f0: 1f 93 push r17
+ 5f2: cf 93 push r28
+ 5f4: df 93 push r29
+ 5f6: ec 01 movw r28, r24
+ 5f8: 7a 01 movw r14, r20
+ 5fa: 8b 01 movw r16, r22
+ 5fc: 77 ff sbrs r23, 7
+ 5fe: 0f c0 rjmp .+30 ; 0x61e <_ZN5Print5printEl+0x34>
+ 600: e8 81 ld r30, Y
+ 602: f9 81 ldd r31, Y+1 ; 0x01
+ 604: 01 90 ld r0, Z+
+ 606: f0 81 ld r31, Z
+ 608: e0 2d mov r30, r0
+ 60a: 6d e2 ldi r22, 0x2D ; 45
+ 60c: 09 95 icall
+ 60e: 10 95 com r17
+ 610: 00 95 com r16
+ 612: f0 94 com r15
+ 614: e0 94 com r14
+ 616: e1 1c adc r14, r1
+ 618: f1 1c adc r15, r1
+ 61a: 01 1d adc r16, r1
+ 61c: 11 1d adc r17, r1
+ 61e: 2a e0 ldi r18, 0x0A ; 10
+ 620: b8 01 movw r22, r16
+ 622: a7 01 movw r20, r14
+ 624: ce 01 movw r24, r28
+ 626: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 62a: df 91 pop r29
+ 62c: cf 91 pop r28
+ 62e: 1f 91 pop r17
+ 630: 0f 91 pop r16
+ 632: ff 90 pop r15
+ 634: ef 90 pop r14
+ 636: 08 95 ret
+
+00000638 <_ZN5Print7printlnEl>:
+ 638: 0f 93 push r16
+ 63a: 1f 93 push r17
+ 63c: 8c 01 movw r16, r24
+ 63e: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 642: c8 01 movw r24, r16
+ 644: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 648: 1f 91 pop r17
+ 64a: 0f 91 pop r16
+ 64c: 08 95 ret
+
+0000064e <_ZN5Print5printEi>:
+ 64e: ab 01 movw r20, r22
+ 650: 66 27 eor r22, r22
+ 652: 57 fd sbrc r21, 7
+ 654: 60 95 com r22
+ 656: 76 2f mov r23, r22
+ 658: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 65c: 08 95 ret
+
+0000065e <_ZN5Print7printlnEi>:
+ 65e: 0f 93 push r16
+ 660: 1f 93 push r17
+ 662: 8c 01 movw r16, r24
+ 664: ab 01 movw r20, r22
+ 666: 66 27 eor r22, r22
+ 668: 57 fd sbrc r21, 7
+ 66a: 60 95 com r22
+ 66c: 76 2f mov r23, r22
+ 66e: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 672: c8 01 movw r24, r16
+ 674: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 678: 1f 91 pop r17
+ 67a: 0f 91 pop r16
+ 67c: 08 95 ret
+
+0000067e <_ZN5Print5printEli>:
+ 67e: dc 01 movw r26, r24
+ 680: 21 15 cp r18, r1
+ 682: 31 05 cpc r19, r1
+ 684: 41 f4 brne .+16 ; 0x696 <_ZN5Print5printEli+0x18>
+ 686: ed 91 ld r30, X+
+ 688: fc 91 ld r31, X
+ 68a: 01 90 ld r0, Z+
+ 68c: f0 81 ld r31, Z
+ 68e: e0 2d mov r30, r0
+ 690: 64 2f mov r22, r20
+ 692: 09 95 icall
+ 694: 08 95 ret
+ 696: 2a 30 cpi r18, 0x0A ; 10
+ 698: 31 05 cpc r19, r1
+ 69a: 19 f4 brne .+6 ; 0x6a2 <_ZN5Print5printEli+0x24>
+ 69c: 0e 94 f5 02 call 0x5ea ; 0x5ea <_ZN5Print5printEl>
+ 6a0: 08 95 ret
+ 6a2: 0e 94 3a 02 call 0x474 ; 0x474 <_ZN5Print11printNumberEmh>
+ 6a6: 08 95 ret
+
+000006a8 <_ZN5Print7printlnEli>:
+ 6a8: 0f 93 push r16
+ 6aa: 1f 93 push r17
+ 6ac: 8c 01 movw r16, r24
+ 6ae: 0e 94 3f 03 call 0x67e ; 0x67e <_ZN5Print5printEli>
+ 6b2: c8 01 movw r24, r16
+ 6b4: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <_ZN5Print7printlnEv>
+ 6b8: 1f 91 pop r17
+ 6ba: 0f 91 pop r16
+ 6bc: 08 95 ret
+
+000006be <beginSerial>:
+ 6be: ef 92 push r14
+ 6c0: ff 92 push r15
+ 6c2: 0f 93 push r16
+ 6c4: 1f 93 push r17
+ 6c6: 7b 01 movw r14, r22
+ 6c8: 8c 01 movw r16, r24
+ 6ca: 22 e0 ldi r18, 0x02 ; 2
+ 6cc: 30 e0 ldi r19, 0x00 ; 0
+ 6ce: 40 e0 ldi r20, 0x00 ; 0
+ 6d0: 50 e0 ldi r21, 0x00 ; 0
+ 6d2: 0e 94 3c 09 call 0x1278 ; 0x1278 <__divmodsi4>
+ 6d6: 20 5c subi r18, 0xC0 ; 192
+ 6d8: 3d 4b sbci r19, 0xBD ; 189
+ 6da: 40 4f sbci r20, 0xF0 ; 240
+ 6dc: 5f 4f sbci r21, 0xFF ; 255
+ 6de: ca 01 movw r24, r20
+ 6e0: b9 01 movw r22, r18
+ 6e2: a8 01 movw r20, r16
+ 6e4: 97 01 movw r18, r14
+ 6e6: 0e 94 3c 09 call 0x1278 ; 0x1278 <__divmodsi4>
+ 6ea: c9 01 movw r24, r18
+ 6ec: da 01 movw r26, r20
+ 6ee: 01 97 sbiw r24, 0x01 ; 1
+ 6f0: a1 09 sbc r26, r1
+ 6f2: b1 09 sbc r27, r1
+ 6f4: 29 2f mov r18, r25
+ 6f6: 3a 2f mov r19, r26
+ 6f8: 4b 2f mov r20, r27
+ 6fa: 55 27 eor r21, r21
+ 6fc: 47 fd sbrc r20, 7
+ 6fe: 5a 95 dec r21
+ 700: 01 96 adiw r24, 0x01 ; 1
+ 702: a1 1d adc r26, r1
+ 704: b1 1d adc r27, r1
+ 706: 20 93 c5 00 sts 0x00C5, r18
+ 70a: 81 50 subi r24, 0x01 ; 1
+ 70c: 80 93 c4 00 sts 0x00C4, r24
+ 710: e1 ec ldi r30, 0xC1 ; 193
+ 712: f0 e0 ldi r31, 0x00 ; 0
+ 714: 80 81 ld r24, Z
+ 716: 80 61 ori r24, 0x10 ; 16
+ 718: 80 83 st Z, r24
+ 71a: 80 81 ld r24, Z
+ 71c: 88 60 ori r24, 0x08 ; 8
+ 71e: 80 83 st Z, r24
+ 720: 80 81 ld r24, Z
+ 722: 80 68 ori r24, 0x80 ; 128
+ 724: 80 83 st Z, r24
+ 726: 1f 91 pop r17
+ 728: 0f 91 pop r16
+ 72a: ff 90 pop r15
+ 72c: ef 90 pop r14
+ 72e: 08 95 ret
+
+00000730 <serialWrite>:
+ 730: 98 2f mov r25, r24
+ 732: 80 91 c0 00 lds r24, 0x00C0
+ 736: 85 ff sbrs r24, 5
+ 738: fc cf rjmp .-8 ; 0x732 <serialWrite+0x2>
+ 73a: 90 93 c6 00 sts 0x00C6, r25
+ 73e: 08 95 ret
+
+00000740 <serialAvailable>:
+ 740: 80 91 28 03 lds r24, 0x0328
+ 744: 90 91 29 03 lds r25, 0x0329
+ 748: 80 58 subi r24, 0x80 ; 128
+ 74a: 9f 4f sbci r25, 0xFF ; 255
+ 74c: 20 91 2a 03 lds r18, 0x032A
+ 750: 30 91 2b 03 lds r19, 0x032B
+ 754: 82 1b sub r24, r18
+ 756: 93 0b sbc r25, r19
+ 758: 60 e8 ldi r22, 0x80 ; 128
+ 75a: 70 e0 ldi r23, 0x00 ; 0
+ 75c: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 760: 08 95 ret
+
+00000762 <serialRead>:
+ 762: 40 91 2a 03 lds r20, 0x032A
+ 766: 50 91 2b 03 lds r21, 0x032B
+ 76a: 80 91 28 03 lds r24, 0x0328
+ 76e: 90 91 29 03 lds r25, 0x0329
+ 772: 84 17 cp r24, r20
+ 774: 95 07 cpc r25, r21
+ 776: 19 f4 brne .+6 ; 0x77e <serialRead+0x1c>
+ 778: 2f ef ldi r18, 0xFF ; 255
+ 77a: 3f ef ldi r19, 0xFF ; 255
+ 77c: 0f c0 rjmp .+30 ; 0x79c <serialRead+0x3a>
+ 77e: fa 01 movw r30, r20
+ 780: e4 5d subi r30, 0xD4 ; 212
+ 782: fc 4f sbci r31, 0xFC ; 252
+ 784: 20 81 ld r18, Z
+ 786: ca 01 movw r24, r20
+ 788: 01 96 adiw r24, 0x01 ; 1
+ 78a: 60 e8 ldi r22, 0x80 ; 128
+ 78c: 70 e0 ldi r23, 0x00 ; 0
+ 78e: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 792: 90 93 2b 03 sts 0x032B, r25
+ 796: 80 93 2a 03 sts 0x032A, r24
+ 79a: 30 e0 ldi r19, 0x00 ; 0
+ 79c: c9 01 movw r24, r18
+ 79e: 08 95 ret
+
+000007a0 <serialFlush>:
+ 7a0: 80 91 2a 03 lds r24, 0x032A
+ 7a4: 90 91 2b 03 lds r25, 0x032B
+ 7a8: 90 93 29 03 sts 0x0329, r25
+ 7ac: 80 93 28 03 sts 0x0328, r24
+ 7b0: 08 95 ret
+
+000007b2 <__vector_18>:
+ 7b2: 1f 92 push r1
+ 7b4: 0f 92 push r0
+ 7b6: 0f b6 in r0, 0x3f ; 63
+ 7b8: 0f 92 push r0
+ 7ba: 11 24 eor r1, r1
+ 7bc: 2f 93 push r18
+ 7be: 3f 93 push r19
+ 7c0: 4f 93 push r20
+ 7c2: 5f 93 push r21
+ 7c4: 6f 93 push r22
+ 7c6: 7f 93 push r23
+ 7c8: 8f 93 push r24
+ 7ca: 9f 93 push r25
+ 7cc: af 93 push r26
+ 7ce: bf 93 push r27
+ 7d0: ef 93 push r30
+ 7d2: ff 93 push r31
+ 7d4: 40 91 c6 00 lds r20, 0x00C6
+ 7d8: e0 91 28 03 lds r30, 0x0328
+ 7dc: f0 91 29 03 lds r31, 0x0329
+ 7e0: cf 01 movw r24, r30
+ 7e2: 01 96 adiw r24, 0x01 ; 1
+ 7e4: 60 e8 ldi r22, 0x80 ; 128
+ 7e6: 70 e0 ldi r23, 0x00 ; 0
+ 7e8: 0e 94 07 09 call 0x120e ; 0x120e <__divmodhi4>
+ 7ec: 9c 01 movw r18, r24
+ 7ee: 80 91 2a 03 lds r24, 0x032A
+ 7f2: 90 91 2b 03 lds r25, 0x032B
+ 7f6: 28 17 cp r18, r24
+ 7f8: 39 07 cpc r19, r25
+ 7fa: 39 f0 breq .+14 ; 0x80a <__vector_18+0x58>
+ 7fc: e4 5d subi r30, 0xD4 ; 212
+ 7fe: fc 4f sbci r31, 0xFC ; 252
+ 800: 40 83 st Z, r20
+ 802: 30 93 29 03 sts 0x0329, r19
+ 806: 20 93 28 03 sts 0x0328, r18
+ 80a: ff 91 pop r31
+ 80c: ef 91 pop r30
+ 80e: bf 91 pop r27
+ 810: af 91 pop r26
+ 812: 9f 91 pop r25
+ 814: 8f 91 pop r24
+ 816: 7f 91 pop r23
+ 818: 6f 91 pop r22
+ 81a: 5f 91 pop r21
+ 81c: 4f 91 pop r20
+ 81e: 3f 91 pop r19
+ 820: 2f 91 pop r18
+ 822: 0f 90 pop r0
+ 824: 0f be out 0x3f, r0 ; 63
+ 826: 0f 90 pop r0
+ 828: 1f 90 pop r1
+ 82a: 18 95 reti
+
+0000082c <_fpadd_parts>:
+ 82c: a0 e0 ldi r26, 0x00 ; 0
+ 82e: b0 e0 ldi r27, 0x00 ; 0
+ 830: ec e1 ldi r30, 0x1C ; 28
+ 832: f4 e0 ldi r31, 0x04 ; 4
+ 834: 0c 94 6b 09 jmp 0x12d6 ; 0x12d6 <__prologue_saves__>
+ 838: dc 01 movw r26, r24
+ 83a: 2b 01 movw r4, r22
+ 83c: fa 01 movw r30, r20
+ 83e: 9c 91 ld r25, X
+ 840: 92 30 cpi r25, 0x02 ; 2
+ 842: 08 f4 brcc .+2 ; 0x846 <_fpadd_parts+0x1a>
+ 844: 39 c1 rjmp .+626 ; 0xab8 <__stack+0x1b9>
+ 846: eb 01 movw r28, r22
+ 848: 88 81 ld r24, Y
+ 84a: 82 30 cpi r24, 0x02 ; 2
+ 84c: 08 f4 brcc .+2 ; 0x850 <_fpadd_parts+0x24>
+ 84e: 33 c1 rjmp .+614 ; 0xab6 <__stack+0x1b7>
+ 850: 94 30 cpi r25, 0x04 ; 4
+ 852: 69 f4 brne .+26 ; 0x86e <_fpadd_parts+0x42>
+ 854: 84 30 cpi r24, 0x04 ; 4
+ 856: 09 f0 breq .+2 ; 0x85a <_fpadd_parts+0x2e>
+ 858: 2f c1 rjmp .+606 ; 0xab8 <__stack+0x1b9>
+ 85a: 11 96 adiw r26, 0x01 ; 1
+ 85c: 9c 91 ld r25, X
+ 85e: 11 97 sbiw r26, 0x01 ; 1
+ 860: 89 81 ldd r24, Y+1 ; 0x01
+ 862: 98 17 cp r25, r24
+ 864: 09 f4 brne .+2 ; 0x868 <_fpadd_parts+0x3c>
+ 866: 28 c1 rjmp .+592 ; 0xab8 <__stack+0x1b9>
+ 868: a9 e1 ldi r26, 0x19 ; 25
+ 86a: b1 e0 ldi r27, 0x01 ; 1
+ 86c: 25 c1 rjmp .+586 ; 0xab8 <__stack+0x1b9>
+ 86e: 84 30 cpi r24, 0x04 ; 4
+ 870: 09 f4 brne .+2 ; 0x874 <_fpadd_parts+0x48>
+ 872: 21 c1 rjmp .+578 ; 0xab6 <__stack+0x1b7>
+ 874: 82 30 cpi r24, 0x02 ; 2
+ 876: a9 f4 brne .+42 ; 0x8a2 <_fpadd_parts+0x76>
+ 878: 92 30 cpi r25, 0x02 ; 2
+ 87a: 09 f0 breq .+2 ; 0x87e <_fpadd_parts+0x52>
+ 87c: 1d c1 rjmp .+570 ; 0xab8 <__stack+0x1b9>
+ 87e: 9a 01 movw r18, r20
+ 880: ad 01 movw r20, r26
+ 882: 88 e0 ldi r24, 0x08 ; 8
+ 884: ea 01 movw r28, r20
+ 886: 09 90 ld r0, Y+
+ 888: ae 01 movw r20, r28
+ 88a: e9 01 movw r28, r18
+ 88c: 09 92 st Y+, r0
+ 88e: 9e 01 movw r18, r28
+ 890: 81 50 subi r24, 0x01 ; 1
+ 892: c1 f7 brne .-16 ; 0x884 <_fpadd_parts+0x58>
+ 894: e2 01 movw r28, r4
+ 896: 89 81 ldd r24, Y+1 ; 0x01
+ 898: 11 96 adiw r26, 0x01 ; 1
+ 89a: 9c 91 ld r25, X
+ 89c: 89 23 and r24, r25
+ 89e: 81 83 std Z+1, r24 ; 0x01
+ 8a0: 08 c1 rjmp .+528 ; 0xab2 <__stack+0x1b3>
+ 8a2: 92 30 cpi r25, 0x02 ; 2
+ 8a4: 09 f4 brne .+2 ; 0x8a8 <_fpadd_parts+0x7c>
+ 8a6: 07 c1 rjmp .+526 ; 0xab6 <__stack+0x1b7>
+ 8a8: 12 96 adiw r26, 0x02 ; 2
+ 8aa: 2d 90 ld r2, X+
+ 8ac: 3c 90 ld r3, X
+ 8ae: 13 97 sbiw r26, 0x03 ; 3
+ 8b0: eb 01 movw r28, r22
+ 8b2: 8a 81 ldd r24, Y+2 ; 0x02
+ 8b4: 9b 81 ldd r25, Y+3 ; 0x03
+ 8b6: 14 96 adiw r26, 0x04 ; 4
+ 8b8: ad 90 ld r10, X+
+ 8ba: bd 90 ld r11, X+
+ 8bc: cd 90 ld r12, X+
+ 8be: dc 90 ld r13, X
+ 8c0: 17 97 sbiw r26, 0x07 ; 7
+ 8c2: ec 80 ldd r14, Y+4 ; 0x04
+ 8c4: fd 80 ldd r15, Y+5 ; 0x05
+ 8c6: 0e 81 ldd r16, Y+6 ; 0x06
+ 8c8: 1f 81 ldd r17, Y+7 ; 0x07
+ 8ca: 91 01 movw r18, r2
+ 8cc: 28 1b sub r18, r24
+ 8ce: 39 0b sbc r19, r25
+ 8d0: b9 01 movw r22, r18
+ 8d2: 37 ff sbrs r19, 7
+ 8d4: 04 c0 rjmp .+8 ; 0x8de <_fpadd_parts+0xb2>
+ 8d6: 66 27 eor r22, r22
+ 8d8: 77 27 eor r23, r23
+ 8da: 62 1b sub r22, r18
+ 8dc: 73 0b sbc r23, r19
+ 8de: 60 32 cpi r22, 0x20 ; 32
+ 8e0: 71 05 cpc r23, r1
+ 8e2: 0c f0 brlt .+2 ; 0x8e6 <_fpadd_parts+0xba>
+ 8e4: 61 c0 rjmp .+194 ; 0x9a8 <__stack+0xa9>
+ 8e6: 12 16 cp r1, r18
+ 8e8: 13 06 cpc r1, r19
+ 8ea: 6c f5 brge .+90 ; 0x946 <__stack+0x47>
+ 8ec: 37 01 movw r6, r14
+ 8ee: 48 01 movw r8, r16
+ 8f0: 06 2e mov r0, r22
+ 8f2: 04 c0 rjmp .+8 ; 0x8fc <_fpadd_parts+0xd0>
+ 8f4: 96 94 lsr r9
+ 8f6: 87 94 ror r8
+ 8f8: 77 94 ror r7
+ 8fa: 67 94 ror r6
+ 8fc: 0a 94 dec r0
+ 8fe: d2 f7 brpl .-12 ; 0x8f4 <_fpadd_parts+0xc8>
+ 900: 21 e0 ldi r18, 0x01 ; 1
+ 902: 30 e0 ldi r19, 0x00 ; 0
+ 904: 40 e0 ldi r20, 0x00 ; 0
+ 906: 50 e0 ldi r21, 0x00 ; 0
+ 908: 04 c0 rjmp .+8 ; 0x912 <__stack+0x13>
+ 90a: 22 0f add r18, r18
+ 90c: 33 1f adc r19, r19
+ 90e: 44 1f adc r20, r20
+ 910: 55 1f adc r21, r21
+ 912: 6a 95 dec r22
+ 914: d2 f7 brpl .-12 ; 0x90a <__stack+0xb>
+ 916: 21 50 subi r18, 0x01 ; 1
+ 918: 30 40 sbci r19, 0x00 ; 0
+ 91a: 40 40 sbci r20, 0x00 ; 0
+ 91c: 50 40 sbci r21, 0x00 ; 0
+ 91e: 2e 21 and r18, r14
+ 920: 3f 21 and r19, r15
+ 922: 40 23 and r20, r16
+ 924: 51 23 and r21, r17
+ 926: 21 15 cp r18, r1
+ 928: 31 05 cpc r19, r1
+ 92a: 41 05 cpc r20, r1
+ 92c: 51 05 cpc r21, r1
+ 92e: 21 f0 breq .+8 ; 0x938 <__stack+0x39>
+ 930: 21 e0 ldi r18, 0x01 ; 1
+ 932: 30 e0 ldi r19, 0x00 ; 0
+ 934: 40 e0 ldi r20, 0x00 ; 0
+ 936: 50 e0 ldi r21, 0x00 ; 0
+ 938: 79 01 movw r14, r18
+ 93a: 8a 01 movw r16, r20
+ 93c: e6 28 or r14, r6
+ 93e: f7 28 or r15, r7
+ 940: 08 29 or r16, r8
+ 942: 19 29 or r17, r9
+ 944: 3c c0 rjmp .+120 ; 0x9be <__stack+0xbf>
+ 946: 23 2b or r18, r19
+ 948: d1 f1 breq .+116 ; 0x9be <__stack+0xbf>
+ 94a: 26 0e add r2, r22
+ 94c: 37 1e adc r3, r23
+ 94e: 35 01 movw r6, r10
+ 950: 46 01 movw r8, r12
+ 952: 06 2e mov r0, r22
+ 954: 04 c0 rjmp .+8 ; 0x95e <__stack+0x5f>
+ 956: 96 94 lsr r9
+ 958: 87 94 ror r8
+ 95a: 77 94 ror r7
+ 95c: 67 94 ror r6
+ 95e: 0a 94 dec r0
+ 960: d2 f7 brpl .-12 ; 0x956 <__stack+0x57>
+ 962: 21 e0 ldi r18, 0x01 ; 1
+ 964: 30 e0 ldi r19, 0x00 ; 0
+ 966: 40 e0 ldi r20, 0x00 ; 0
+ 968: 50 e0 ldi r21, 0x00 ; 0
+ 96a: 04 c0 rjmp .+8 ; 0x974 <__stack+0x75>
+ 96c: 22 0f add r18, r18
+ 96e: 33 1f adc r19, r19
+ 970: 44 1f adc r20, r20
+ 972: 55 1f adc r21, r21
+ 974: 6a 95 dec r22
+ 976: d2 f7 brpl .-12 ; 0x96c <__stack+0x6d>
+ 978: 21 50 subi r18, 0x01 ; 1
+ 97a: 30 40 sbci r19, 0x00 ; 0
+ 97c: 40 40 sbci r20, 0x00 ; 0
+ 97e: 50 40 sbci r21, 0x00 ; 0
+ 980: 2a 21 and r18, r10
+ 982: 3b 21 and r19, r11
+ 984: 4c 21 and r20, r12
+ 986: 5d 21 and r21, r13
+ 988: 21 15 cp r18, r1
+ 98a: 31 05 cpc r19, r1
+ 98c: 41 05 cpc r20, r1
+ 98e: 51 05 cpc r21, r1
+ 990: 21 f0 breq .+8 ; 0x99a <__stack+0x9b>
+ 992: 21 e0 ldi r18, 0x01 ; 1
+ 994: 30 e0 ldi r19, 0x00 ; 0
+ 996: 40 e0 ldi r20, 0x00 ; 0
+ 998: 50 e0 ldi r21, 0x00 ; 0
+ 99a: 59 01 movw r10, r18
+ 99c: 6a 01 movw r12, r20
+ 99e: a6 28 or r10, r6
+ 9a0: b7 28 or r11, r7
+ 9a2: c8 28 or r12, r8
+ 9a4: d9 28 or r13, r9
+ 9a6: 0b c0 rjmp .+22 ; 0x9be <__stack+0xbf>
+ 9a8: 82 15 cp r24, r2
+ 9aa: 93 05 cpc r25, r3
+ 9ac: 2c f0 brlt .+10 ; 0x9b8 <__stack+0xb9>
+ 9ae: 1c 01 movw r2, r24
+ 9b0: aa 24 eor r10, r10
+ 9b2: bb 24 eor r11, r11
+ 9b4: 65 01 movw r12, r10
+ 9b6: 03 c0 rjmp .+6 ; 0x9be <__stack+0xbf>
+ 9b8: ee 24 eor r14, r14
+ 9ba: ff 24 eor r15, r15
+ 9bc: 87 01 movw r16, r14
+ 9be: 11 96 adiw r26, 0x01 ; 1
+ 9c0: 9c 91 ld r25, X
+ 9c2: d2 01 movw r26, r4
+ 9c4: 11 96 adiw r26, 0x01 ; 1
+ 9c6: 8c 91 ld r24, X
+ 9c8: 98 17 cp r25, r24
+ 9ca: 09 f4 brne .+2 ; 0x9ce <__stack+0xcf>
+ 9cc: 45 c0 rjmp .+138 ; 0xa58 <__stack+0x159>
+ 9ce: 99 23 and r25, r25
+ 9d0: 39 f0 breq .+14 ; 0x9e0 <__stack+0xe1>
+ 9d2: a8 01 movw r20, r16
+ 9d4: 97 01 movw r18, r14
+ 9d6: 2a 19 sub r18, r10
+ 9d8: 3b 09 sbc r19, r11
+ 9da: 4c 09 sbc r20, r12
+ 9dc: 5d 09 sbc r21, r13
+ 9de: 06 c0 rjmp .+12 ; 0x9ec <__stack+0xed>
+ 9e0: a6 01 movw r20, r12
+ 9e2: 95 01 movw r18, r10
+ 9e4: 2e 19 sub r18, r14
+ 9e6: 3f 09 sbc r19, r15
+ 9e8: 40 0b sbc r20, r16
+ 9ea: 51 0b sbc r21, r17
+ 9ec: 57 fd sbrc r21, 7
+ 9ee: 08 c0 rjmp .+16 ; 0xa00 <__stack+0x101>
+ 9f0: 11 82 std Z+1, r1 ; 0x01
+ 9f2: 33 82 std Z+3, r3 ; 0x03
+ 9f4: 22 82 std Z+2, r2 ; 0x02
+ 9f6: 24 83 std Z+4, r18 ; 0x04
+ 9f8: 35 83 std Z+5, r19 ; 0x05
+ 9fa: 46 83 std Z+6, r20 ; 0x06
+ 9fc: 57 83 std Z+7, r21 ; 0x07
+ 9fe: 1d c0 rjmp .+58 ; 0xa3a <__stack+0x13b>
+ a00: 81 e0 ldi r24, 0x01 ; 1
+ a02: 81 83 std Z+1, r24 ; 0x01
+ a04: 33 82 std Z+3, r3 ; 0x03
+ a06: 22 82 std Z+2, r2 ; 0x02
+ a08: 88 27 eor r24, r24
+ a0a: 99 27 eor r25, r25
+ a0c: dc 01 movw r26, r24
+ a0e: 82 1b sub r24, r18
+ a10: 93 0b sbc r25, r19
+ a12: a4 0b sbc r26, r20
+ a14: b5 0b sbc r27, r21
+ a16: 84 83 std Z+4, r24 ; 0x04
+ a18: 95 83 std Z+5, r25 ; 0x05
+ a1a: a6 83 std Z+6, r26 ; 0x06
+ a1c: b7 83 std Z+7, r27 ; 0x07
+ a1e: 0d c0 rjmp .+26 ; 0xa3a <__stack+0x13b>
+ a20: 22 0f add r18, r18
+ a22: 33 1f adc r19, r19
+ a24: 44 1f adc r20, r20
+ a26: 55 1f adc r21, r21
+ a28: 24 83 std Z+4, r18 ; 0x04
+ a2a: 35 83 std Z+5, r19 ; 0x05
+ a2c: 46 83 std Z+6, r20 ; 0x06
+ a2e: 57 83 std Z+7, r21 ; 0x07
+ a30: 82 81 ldd r24, Z+2 ; 0x02
+ a32: 93 81 ldd r25, Z+3 ; 0x03
+ a34: 01 97 sbiw r24, 0x01 ; 1
+ a36: 93 83 std Z+3, r25 ; 0x03
+ a38: 82 83 std Z+2, r24 ; 0x02
+ a3a: 24 81 ldd r18, Z+4 ; 0x04
+ a3c: 35 81 ldd r19, Z+5 ; 0x05
+ a3e: 46 81 ldd r20, Z+6 ; 0x06
+ a40: 57 81 ldd r21, Z+7 ; 0x07
+ a42: da 01 movw r26, r20
+ a44: c9 01 movw r24, r18
+ a46: 01 97 sbiw r24, 0x01 ; 1
+ a48: a1 09 sbc r26, r1
+ a4a: b1 09 sbc r27, r1
+ a4c: 8f 5f subi r24, 0xFF ; 255
+ a4e: 9f 4f sbci r25, 0xFF ; 255
+ a50: af 4f sbci r26, 0xFF ; 255
+ a52: bf 43 sbci r27, 0x3F ; 63
+ a54: 28 f3 brcs .-54 ; 0xa20 <__stack+0x121>
+ a56: 0b c0 rjmp .+22 ; 0xa6e <__stack+0x16f>
+ a58: 91 83 std Z+1, r25 ; 0x01
+ a5a: 33 82 std Z+3, r3 ; 0x03
+ a5c: 22 82 std Z+2, r2 ; 0x02
+ a5e: ea 0c add r14, r10
+ a60: fb 1c adc r15, r11
+ a62: 0c 1d adc r16, r12
+ a64: 1d 1d adc r17, r13
+ a66: e4 82 std Z+4, r14 ; 0x04
+ a68: f5 82 std Z+5, r15 ; 0x05
+ a6a: 06 83 std Z+6, r16 ; 0x06
+ a6c: 17 83 std Z+7, r17 ; 0x07
+ a6e: 83 e0 ldi r24, 0x03 ; 3
+ a70: 80 83 st Z, r24
+ a72: 24 81 ldd r18, Z+4 ; 0x04
+ a74: 35 81 ldd r19, Z+5 ; 0x05
+ a76: 46 81 ldd r20, Z+6 ; 0x06
+ a78: 57 81 ldd r21, Z+7 ; 0x07
+ a7a: 57 ff sbrs r21, 7
+ a7c: 1a c0 rjmp .+52 ; 0xab2 <__stack+0x1b3>
+ a7e: c9 01 movw r24, r18
+ a80: aa 27 eor r26, r26
+ a82: 97 fd sbrc r25, 7
+ a84: a0 95 com r26
+ a86: ba 2f mov r27, r26
+ a88: 81 70 andi r24, 0x01 ; 1
+ a8a: 90 70 andi r25, 0x00 ; 0
+ a8c: a0 70 andi r26, 0x00 ; 0
+ a8e: b0 70 andi r27, 0x00 ; 0
+ a90: 56 95 lsr r21
+ a92: 47 95 ror r20
+ a94: 37 95 ror r19
+ a96: 27 95 ror r18
+ a98: 82 2b or r24, r18
+ a9a: 93 2b or r25, r19
+ a9c: a4 2b or r26, r20
+ a9e: b5 2b or r27, r21
+ aa0: 84 83 std Z+4, r24 ; 0x04
+ aa2: 95 83 std Z+5, r25 ; 0x05
+ aa4: a6 83 std Z+6, r26 ; 0x06
+ aa6: b7 83 std Z+7, r27 ; 0x07
+ aa8: 82 81 ldd r24, Z+2 ; 0x02
+ aaa: 93 81 ldd r25, Z+3 ; 0x03
+ aac: 01 96 adiw r24, 0x01 ; 1
+ aae: 93 83 std Z+3, r25 ; 0x03
+ ab0: 82 83 std Z+2, r24 ; 0x02
+ ab2: df 01 movw r26, r30
+ ab4: 01 c0 rjmp .+2 ; 0xab8 <__stack+0x1b9>
+ ab6: d2 01 movw r26, r4
+ ab8: cd 01 movw r24, r26
+ aba: cd b7 in r28, 0x3d ; 61
+ abc: de b7 in r29, 0x3e ; 62
+ abe: e2 e1 ldi r30, 0x12 ; 18
+ ac0: 0c 94 87 09 jmp 0x130e ; 0x130e <__epilogue_restores__>
+
+00000ac4 <__subsf3>:
+ ac4: a0 e2 ldi r26, 0x20 ; 32
+ ac6: b0 e0 ldi r27, 0x00 ; 0
+ ac8: e8 e6 ldi r30, 0x68 ; 104
+ aca: f5 e0 ldi r31, 0x05 ; 5
+ acc: 0c 94 77 09 jmp 0x12ee ; 0x12ee <__prologue_saves__+0x18>
+ ad0: 69 83 std Y+1, r22 ; 0x01
+ ad2: 7a 83 std Y+2, r23 ; 0x02
+ ad4: 8b 83 std Y+3, r24 ; 0x03
+ ad6: 9c 83 std Y+4, r25 ; 0x04
+ ad8: 2d 83 std Y+5, r18 ; 0x05
+ ada: 3e 83 std Y+6, r19 ; 0x06
+ adc: 4f 83 std Y+7, r20 ; 0x07
+ ade: 58 87 std Y+8, r21 ; 0x08
+ ae0: e9 e0 ldi r30, 0x09 ; 9
+ ae2: ee 2e mov r14, r30
+ ae4: f1 2c mov r15, r1
+ ae6: ec 0e add r14, r28
+ ae8: fd 1e adc r15, r29
+ aea: ce 01 movw r24, r28
+ aec: 01 96 adiw r24, 0x01 ; 1
+ aee: b7 01 movw r22, r14
+ af0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ af4: 8e 01 movw r16, r28
+ af6: 0f 5e subi r16, 0xEF ; 239
+ af8: 1f 4f sbci r17, 0xFF ; 255
+ afa: ce 01 movw r24, r28
+ afc: 05 96 adiw r24, 0x05 ; 5
+ afe: b8 01 movw r22, r16
+ b00: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b04: 8a 89 ldd r24, Y+18 ; 0x12
+ b06: 91 e0 ldi r25, 0x01 ; 1
+ b08: 89 27 eor r24, r25
+ b0a: 8a 8b std Y+18, r24 ; 0x12
+ b0c: c7 01 movw r24, r14
+ b0e: b8 01 movw r22, r16
+ b10: ae 01 movw r20, r28
+ b12: 47 5e subi r20, 0xE7 ; 231
+ b14: 5f 4f sbci r21, 0xFF ; 255
+ b16: 0e 94 16 04 call 0x82c ; 0x82c <_fpadd_parts>
+ b1a: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ b1e: a0 96 adiw r28, 0x20 ; 32
+ b20: e6 e0 ldi r30, 0x06 ; 6
+ b22: 0c 94 93 09 jmp 0x1326 ; 0x1326 <__epilogue_restores__+0x18>
+
+00000b26 <__addsf3>:
+ b26: a0 e2 ldi r26, 0x20 ; 32
+ b28: b0 e0 ldi r27, 0x00 ; 0
+ b2a: e9 e9 ldi r30, 0x99 ; 153
+ b2c: f5 e0 ldi r31, 0x05 ; 5
+ b2e: 0c 94 77 09 jmp 0x12ee ; 0x12ee <__prologue_saves__+0x18>
+ b32: 69 83 std Y+1, r22 ; 0x01
+ b34: 7a 83 std Y+2, r23 ; 0x02
+ b36: 8b 83 std Y+3, r24 ; 0x03
+ b38: 9c 83 std Y+4, r25 ; 0x04
+ b3a: 2d 83 std Y+5, r18 ; 0x05
+ b3c: 3e 83 std Y+6, r19 ; 0x06
+ b3e: 4f 83 std Y+7, r20 ; 0x07
+ b40: 58 87 std Y+8, r21 ; 0x08
+ b42: f9 e0 ldi r31, 0x09 ; 9
+ b44: ef 2e mov r14, r31
+ b46: f1 2c mov r15, r1
+ b48: ec 0e add r14, r28
+ b4a: fd 1e adc r15, r29
+ b4c: ce 01 movw r24, r28
+ b4e: 01 96 adiw r24, 0x01 ; 1
+ b50: b7 01 movw r22, r14
+ b52: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b56: 8e 01 movw r16, r28
+ b58: 0f 5e subi r16, 0xEF ; 239
+ b5a: 1f 4f sbci r17, 0xFF ; 255
+ b5c: ce 01 movw r24, r28
+ b5e: 05 96 adiw r24, 0x05 ; 5
+ b60: b8 01 movw r22, r16
+ b62: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ b66: c7 01 movw r24, r14
+ b68: b8 01 movw r22, r16
+ b6a: ae 01 movw r20, r28
+ b6c: 47 5e subi r20, 0xE7 ; 231
+ b6e: 5f 4f sbci r21, 0xFF ; 255
+ b70: 0e 94 16 04 call 0x82c ; 0x82c <_fpadd_parts>
+ b74: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ b78: a0 96 adiw r28, 0x20 ; 32
+ b7a: e6 e0 ldi r30, 0x06 ; 6
+ b7c: 0c 94 93 09 jmp 0x1326 ; 0x1326 <__epilogue_restores__+0x18>
+
+00000b80 <__mulsf3>:
+ b80: a0 e2 ldi r26, 0x20 ; 32
+ b82: b0 e0 ldi r27, 0x00 ; 0
+ b84: e6 ec ldi r30, 0xC6 ; 198
+ b86: f5 e0 ldi r31, 0x05 ; 5
+ b88: 0c 94 6b 09 jmp 0x12d6 ; 0x12d6 <__prologue_saves__>
+ b8c: 69 83 std Y+1, r22 ; 0x01
+ b8e: 7a 83 std Y+2, r23 ; 0x02
+ b90: 8b 83 std Y+3, r24 ; 0x03
+ b92: 9c 83 std Y+4, r25 ; 0x04
+ b94: 2d 83 std Y+5, r18 ; 0x05
+ b96: 3e 83 std Y+6, r19 ; 0x06
+ b98: 4f 83 std Y+7, r20 ; 0x07
+ b9a: 58 87 std Y+8, r21 ; 0x08
+ b9c: ce 01 movw r24, r28
+ b9e: 01 96 adiw r24, 0x01 ; 1
+ ba0: be 01 movw r22, r28
+ ba2: 67 5f subi r22, 0xF7 ; 247
+ ba4: 7f 4f sbci r23, 0xFF ; 255
+ ba6: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ baa: ce 01 movw r24, r28
+ bac: 05 96 adiw r24, 0x05 ; 5
+ bae: be 01 movw r22, r28
+ bb0: 6f 5e subi r22, 0xEF ; 239
+ bb2: 7f 4f sbci r23, 0xFF ; 255
+ bb4: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ bb8: 99 85 ldd r25, Y+9 ; 0x09
+ bba: 92 30 cpi r25, 0x02 ; 2
+ bbc: 88 f0 brcs .+34 ; 0xbe0 <__mulsf3+0x60>
+ bbe: 89 89 ldd r24, Y+17 ; 0x11
+ bc0: 82 30 cpi r24, 0x02 ; 2
+ bc2: c8 f0 brcs .+50 ; 0xbf6 <__mulsf3+0x76>
+ bc4: 94 30 cpi r25, 0x04 ; 4
+ bc6: 19 f4 brne .+6 ; 0xbce <__mulsf3+0x4e>
+ bc8: 82 30 cpi r24, 0x02 ; 2
+ bca: 51 f4 brne .+20 ; 0xbe0 <__mulsf3+0x60>
+ bcc: 04 c0 rjmp .+8 ; 0xbd6 <__mulsf3+0x56>
+ bce: 84 30 cpi r24, 0x04 ; 4
+ bd0: 29 f4 brne .+10 ; 0xbdc <__mulsf3+0x5c>
+ bd2: 92 30 cpi r25, 0x02 ; 2
+ bd4: 81 f4 brne .+32 ; 0xbf6 <__mulsf3+0x76>
+ bd6: 89 e1 ldi r24, 0x19 ; 25
+ bd8: 91 e0 ldi r25, 0x01 ; 1
+ bda: c6 c0 rjmp .+396 ; 0xd68 <__mulsf3+0x1e8>
+ bdc: 92 30 cpi r25, 0x02 ; 2
+ bde: 49 f4 brne .+18 ; 0xbf2 <__mulsf3+0x72>
+ be0: 20 e0 ldi r18, 0x00 ; 0
+ be2: 9a 85 ldd r25, Y+10 ; 0x0a
+ be4: 8a 89 ldd r24, Y+18 ; 0x12
+ be6: 98 13 cpse r25, r24
+ be8: 21 e0 ldi r18, 0x01 ; 1
+ bea: 2a 87 std Y+10, r18 ; 0x0a
+ bec: ce 01 movw r24, r28
+ bee: 09 96 adiw r24, 0x09 ; 9
+ bf0: bb c0 rjmp .+374 ; 0xd68 <__mulsf3+0x1e8>
+ bf2: 82 30 cpi r24, 0x02 ; 2
+ bf4: 49 f4 brne .+18 ; 0xc08 <__mulsf3+0x88>
+ bf6: 20 e0 ldi r18, 0x00 ; 0
+ bf8: 9a 85 ldd r25, Y+10 ; 0x0a
+ bfa: 8a 89 ldd r24, Y+18 ; 0x12
+ bfc: 98 13 cpse r25, r24
+ bfe: 21 e0 ldi r18, 0x01 ; 1
+ c00: 2a 8b std Y+18, r18 ; 0x12
+ c02: ce 01 movw r24, r28
+ c04: 41 96 adiw r24, 0x11 ; 17
+ c06: b0 c0 rjmp .+352 ; 0xd68 <__mulsf3+0x1e8>
+ c08: 2d 84 ldd r2, Y+13 ; 0x0d
+ c0a: 3e 84 ldd r3, Y+14 ; 0x0e
+ c0c: 4f 84 ldd r4, Y+15 ; 0x0f
+ c0e: 58 88 ldd r5, Y+16 ; 0x10
+ c10: 6d 88 ldd r6, Y+21 ; 0x15
+ c12: 7e 88 ldd r7, Y+22 ; 0x16
+ c14: 8f 88 ldd r8, Y+23 ; 0x17
+ c16: 98 8c ldd r9, Y+24 ; 0x18
+ c18: ee 24 eor r14, r14
+ c1a: ff 24 eor r15, r15
+ c1c: 87 01 movw r16, r14
+ c1e: aa 24 eor r10, r10
+ c20: bb 24 eor r11, r11
+ c22: 65 01 movw r12, r10
+ c24: 40 e0 ldi r20, 0x00 ; 0
+ c26: 50 e0 ldi r21, 0x00 ; 0
+ c28: 60 e0 ldi r22, 0x00 ; 0
+ c2a: 70 e0 ldi r23, 0x00 ; 0
+ c2c: e0 e0 ldi r30, 0x00 ; 0
+ c2e: f0 e0 ldi r31, 0x00 ; 0
+ c30: c1 01 movw r24, r2
+ c32: 81 70 andi r24, 0x01 ; 1
+ c34: 90 70 andi r25, 0x00 ; 0
+ c36: 89 2b or r24, r25
+ c38: e9 f0 breq .+58 ; 0xc74 <__mulsf3+0xf4>
+ c3a: e6 0c add r14, r6
+ c3c: f7 1c adc r15, r7
+ c3e: 08 1d adc r16, r8
+ c40: 19 1d adc r17, r9
+ c42: 9a 01 movw r18, r20
+ c44: ab 01 movw r20, r22
+ c46: 2a 0d add r18, r10
+ c48: 3b 1d adc r19, r11
+ c4a: 4c 1d adc r20, r12
+ c4c: 5d 1d adc r21, r13
+ c4e: 80 e0 ldi r24, 0x00 ; 0
+ c50: 90 e0 ldi r25, 0x00 ; 0
+ c52: a0 e0 ldi r26, 0x00 ; 0
+ c54: b0 e0 ldi r27, 0x00 ; 0
+ c56: e6 14 cp r14, r6
+ c58: f7 04 cpc r15, r7
+ c5a: 08 05 cpc r16, r8
+ c5c: 19 05 cpc r17, r9
+ c5e: 20 f4 brcc .+8 ; 0xc68 <__mulsf3+0xe8>
+ c60: 81 e0 ldi r24, 0x01 ; 1
+ c62: 90 e0 ldi r25, 0x00 ; 0
+ c64: a0 e0 ldi r26, 0x00 ; 0
+ c66: b0 e0 ldi r27, 0x00 ; 0
+ c68: ba 01 movw r22, r20
+ c6a: a9 01 movw r20, r18
+ c6c: 48 0f add r20, r24
+ c6e: 59 1f adc r21, r25
+ c70: 6a 1f adc r22, r26
+ c72: 7b 1f adc r23, r27
+ c74: aa 0c add r10, r10
+ c76: bb 1c adc r11, r11
+ c78: cc 1c adc r12, r12
+ c7a: dd 1c adc r13, r13
+ c7c: 97 fe sbrs r9, 7
+ c7e: 08 c0 rjmp .+16 ; 0xc90 <__mulsf3+0x110>
+ c80: 81 e0 ldi r24, 0x01 ; 1
+ c82: 90 e0 ldi r25, 0x00 ; 0
+ c84: a0 e0 ldi r26, 0x00 ; 0
+ c86: b0 e0 ldi r27, 0x00 ; 0
+ c88: a8 2a or r10, r24
+ c8a: b9 2a or r11, r25
+ c8c: ca 2a or r12, r26
+ c8e: db 2a or r13, r27
+ c90: 31 96 adiw r30, 0x01 ; 1
+ c92: e0 32 cpi r30, 0x20 ; 32
+ c94: f1 05 cpc r31, r1
+ c96: 49 f0 breq .+18 ; 0xcaa <__mulsf3+0x12a>
+ c98: 66 0c add r6, r6
+ c9a: 77 1c adc r7, r7
+ c9c: 88 1c adc r8, r8
+ c9e: 99 1c adc r9, r9
+ ca0: 56 94 lsr r5
+ ca2: 47 94 ror r4
+ ca4: 37 94 ror r3
+ ca6: 27 94 ror r2
+ ca8: c3 cf rjmp .-122 ; 0xc30 <__mulsf3+0xb0>
+ caa: fa 85 ldd r31, Y+10 ; 0x0a
+ cac: ea 89 ldd r30, Y+18 ; 0x12
+ cae: 2b 89 ldd r18, Y+19 ; 0x13
+ cb0: 3c 89 ldd r19, Y+20 ; 0x14
+ cb2: 8b 85 ldd r24, Y+11 ; 0x0b
+ cb4: 9c 85 ldd r25, Y+12 ; 0x0c
+ cb6: 28 0f add r18, r24
+ cb8: 39 1f adc r19, r25
+ cba: 2e 5f subi r18, 0xFE ; 254
+ cbc: 3f 4f sbci r19, 0xFF ; 255
+ cbe: 17 c0 rjmp .+46 ; 0xcee <__mulsf3+0x16e>
+ cc0: ca 01 movw r24, r20
+ cc2: 81 70 andi r24, 0x01 ; 1
+ cc4: 90 70 andi r25, 0x00 ; 0
+ cc6: 89 2b or r24, r25
+ cc8: 61 f0 breq .+24 ; 0xce2 <__mulsf3+0x162>
+ cca: 16 95 lsr r17
+ ccc: 07 95 ror r16
+ cce: f7 94 ror r15
+ cd0: e7 94 ror r14
+ cd2: 80 e0 ldi r24, 0x00 ; 0
+ cd4: 90 e0 ldi r25, 0x00 ; 0
+ cd6: a0 e0 ldi r26, 0x00 ; 0
+ cd8: b0 e8 ldi r27, 0x80 ; 128
+ cda: e8 2a or r14, r24
+ cdc: f9 2a or r15, r25
+ cde: 0a 2b or r16, r26
+ ce0: 1b 2b or r17, r27
+ ce2: 76 95 lsr r23
+ ce4: 67 95 ror r22
+ ce6: 57 95 ror r21
+ ce8: 47 95 ror r20
+ cea: 2f 5f subi r18, 0xFF ; 255
+ cec: 3f 4f sbci r19, 0xFF ; 255
+ cee: 77 fd sbrc r23, 7
+ cf0: e7 cf rjmp .-50 ; 0xcc0 <__mulsf3+0x140>
+ cf2: 0c c0 rjmp .+24 ; 0xd0c <__mulsf3+0x18c>
+ cf4: 44 0f add r20, r20
+ cf6: 55 1f adc r21, r21
+ cf8: 66 1f adc r22, r22
+ cfa: 77 1f adc r23, r23
+ cfc: 17 fd sbrc r17, 7
+ cfe: 41 60 ori r20, 0x01 ; 1
+ d00: ee 0c add r14, r14
+ d02: ff 1c adc r15, r15
+ d04: 00 1f adc r16, r16
+ d06: 11 1f adc r17, r17
+ d08: 21 50 subi r18, 0x01 ; 1
+ d0a: 30 40 sbci r19, 0x00 ; 0
+ d0c: 40 30 cpi r20, 0x00 ; 0
+ d0e: 90 e0 ldi r25, 0x00 ; 0
+ d10: 59 07 cpc r21, r25
+ d12: 90 e0 ldi r25, 0x00 ; 0
+ d14: 69 07 cpc r22, r25
+ d16: 90 e4 ldi r25, 0x40 ; 64
+ d18: 79 07 cpc r23, r25
+ d1a: 60 f3 brcs .-40 ; 0xcf4 <__mulsf3+0x174>
+ d1c: 2b 8f std Y+27, r18 ; 0x1b
+ d1e: 3c 8f std Y+28, r19 ; 0x1c
+ d20: db 01 movw r26, r22
+ d22: ca 01 movw r24, r20
+ d24: 8f 77 andi r24, 0x7F ; 127
+ d26: 90 70 andi r25, 0x00 ; 0
+ d28: a0 70 andi r26, 0x00 ; 0
+ d2a: b0 70 andi r27, 0x00 ; 0
+ d2c: 80 34 cpi r24, 0x40 ; 64
+ d2e: 91 05 cpc r25, r1
+ d30: a1 05 cpc r26, r1
+ d32: b1 05 cpc r27, r1
+ d34: 61 f4 brne .+24 ; 0xd4e <__mulsf3+0x1ce>
+ d36: 47 fd sbrc r20, 7
+ d38: 0a c0 rjmp .+20 ; 0xd4e <__mulsf3+0x1ce>
+ d3a: e1 14 cp r14, r1
+ d3c: f1 04 cpc r15, r1
+ d3e: 01 05 cpc r16, r1
+ d40: 11 05 cpc r17, r1
+ d42: 29 f0 breq .+10 ; 0xd4e <__mulsf3+0x1ce>
+ d44: 40 5c subi r20, 0xC0 ; 192
+ d46: 5f 4f sbci r21, 0xFF ; 255
+ d48: 6f 4f sbci r22, 0xFF ; 255
+ d4a: 7f 4f sbci r23, 0xFF ; 255
+ d4c: 40 78 andi r20, 0x80 ; 128
+ d4e: 1a 8e std Y+26, r1 ; 0x1a
+ d50: fe 17 cp r31, r30
+ d52: 11 f0 breq .+4 ; 0xd58 <__mulsf3+0x1d8>
+ d54: 81 e0 ldi r24, 0x01 ; 1
+ d56: 8a 8f std Y+26, r24 ; 0x1a
+ d58: 4d 8f std Y+29, r20 ; 0x1d
+ d5a: 5e 8f std Y+30, r21 ; 0x1e
+ d5c: 6f 8f std Y+31, r22 ; 0x1f
+ d5e: 78 a3 std Y+32, r23 ; 0x20
+ d60: 83 e0 ldi r24, 0x03 ; 3
+ d62: 89 8f std Y+25, r24 ; 0x19
+ d64: ce 01 movw r24, r28
+ d66: 49 96 adiw r24, 0x19 ; 25
+ d68: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ d6c: a0 96 adiw r28, 0x20 ; 32
+ d6e: e2 e1 ldi r30, 0x12 ; 18
+ d70: 0c 94 87 09 jmp 0x130e ; 0x130e <__epilogue_restores__>
+
+00000d74 <__divsf3>:
+ d74: a8 e1 ldi r26, 0x18 ; 24
+ d76: b0 e0 ldi r27, 0x00 ; 0
+ d78: e0 ec ldi r30, 0xC0 ; 192
+ d7a: f6 e0 ldi r31, 0x06 ; 6
+ d7c: 0c 94 73 09 jmp 0x12e6 ; 0x12e6 <__prologue_saves__+0x10>
+ d80: 69 83 std Y+1, r22 ; 0x01
+ d82: 7a 83 std Y+2, r23 ; 0x02
+ d84: 8b 83 std Y+3, r24 ; 0x03
+ d86: 9c 83 std Y+4, r25 ; 0x04
+ d88: 2d 83 std Y+5, r18 ; 0x05
+ d8a: 3e 83 std Y+6, r19 ; 0x06
+ d8c: 4f 83 std Y+7, r20 ; 0x07
+ d8e: 58 87 std Y+8, r21 ; 0x08
+ d90: b9 e0 ldi r27, 0x09 ; 9
+ d92: eb 2e mov r14, r27
+ d94: f1 2c mov r15, r1
+ d96: ec 0e add r14, r28
+ d98: fd 1e adc r15, r29
+ d9a: ce 01 movw r24, r28
+ d9c: 01 96 adiw r24, 0x01 ; 1
+ d9e: b7 01 movw r22, r14
+ da0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ da4: 8e 01 movw r16, r28
+ da6: 0f 5e subi r16, 0xEF ; 239
+ da8: 1f 4f sbci r17, 0xFF ; 255
+ daa: ce 01 movw r24, r28
+ dac: 05 96 adiw r24, 0x05 ; 5
+ dae: b8 01 movw r22, r16
+ db0: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ db4: 29 85 ldd r18, Y+9 ; 0x09
+ db6: 22 30 cpi r18, 0x02 ; 2
+ db8: 08 f4 brcc .+2 ; 0xdbc <__divsf3+0x48>
+ dba: 7e c0 rjmp .+252 ; 0xeb8 <__divsf3+0x144>
+ dbc: 39 89 ldd r19, Y+17 ; 0x11
+ dbe: 32 30 cpi r19, 0x02 ; 2
+ dc0: 10 f4 brcc .+4 ; 0xdc6 <__divsf3+0x52>
+ dc2: b8 01 movw r22, r16
+ dc4: 7c c0 rjmp .+248 ; 0xebe <__divsf3+0x14a>
+ dc6: 8a 85 ldd r24, Y+10 ; 0x0a
+ dc8: 9a 89 ldd r25, Y+18 ; 0x12
+ dca: 89 27 eor r24, r25
+ dcc: 8a 87 std Y+10, r24 ; 0x0a
+ dce: 24 30 cpi r18, 0x04 ; 4
+ dd0: 11 f0 breq .+4 ; 0xdd6 <__divsf3+0x62>
+ dd2: 22 30 cpi r18, 0x02 ; 2
+ dd4: 31 f4 brne .+12 ; 0xde2 <__divsf3+0x6e>
+ dd6: 23 17 cp r18, r19
+ dd8: 09 f0 breq .+2 ; 0xddc <__divsf3+0x68>
+ dda: 6e c0 rjmp .+220 ; 0xeb8 <__divsf3+0x144>
+ ddc: 69 e1 ldi r22, 0x19 ; 25
+ dde: 71 e0 ldi r23, 0x01 ; 1
+ de0: 6e c0 rjmp .+220 ; 0xebe <__divsf3+0x14a>
+ de2: 34 30 cpi r19, 0x04 ; 4
+ de4: 39 f4 brne .+14 ; 0xdf4 <__divsf3+0x80>
+ de6: 1d 86 std Y+13, r1 ; 0x0d
+ de8: 1e 86 std Y+14, r1 ; 0x0e
+ dea: 1f 86 std Y+15, r1 ; 0x0f
+ dec: 18 8a std Y+16, r1 ; 0x10
+ dee: 1c 86 std Y+12, r1 ; 0x0c
+ df0: 1b 86 std Y+11, r1 ; 0x0b
+ df2: 04 c0 rjmp .+8 ; 0xdfc <__divsf3+0x88>
+ df4: 32 30 cpi r19, 0x02 ; 2
+ df6: 21 f4 brne .+8 ; 0xe00 <__divsf3+0x8c>
+ df8: 84 e0 ldi r24, 0x04 ; 4
+ dfa: 89 87 std Y+9, r24 ; 0x09
+ dfc: b7 01 movw r22, r14
+ dfe: 5f c0 rjmp .+190 ; 0xebe <__divsf3+0x14a>
+ e00: 2b 85 ldd r18, Y+11 ; 0x0b
+ e02: 3c 85 ldd r19, Y+12 ; 0x0c
+ e04: 8b 89 ldd r24, Y+19 ; 0x13
+ e06: 9c 89 ldd r25, Y+20 ; 0x14
+ e08: 28 1b sub r18, r24
+ e0a: 39 0b sbc r19, r25
+ e0c: 3c 87 std Y+12, r19 ; 0x0c
+ e0e: 2b 87 std Y+11, r18 ; 0x0b
+ e10: ed 84 ldd r14, Y+13 ; 0x0d
+ e12: fe 84 ldd r15, Y+14 ; 0x0e
+ e14: 0f 85 ldd r16, Y+15 ; 0x0f
+ e16: 18 89 ldd r17, Y+16 ; 0x10
+ e18: ad 88 ldd r10, Y+21 ; 0x15
+ e1a: be 88 ldd r11, Y+22 ; 0x16
+ e1c: cf 88 ldd r12, Y+23 ; 0x17
+ e1e: d8 8c ldd r13, Y+24 ; 0x18
+ e20: ea 14 cp r14, r10
+ e22: fb 04 cpc r15, r11
+ e24: 0c 05 cpc r16, r12
+ e26: 1d 05 cpc r17, r13
+ e28: 40 f4 brcc .+16 ; 0xe3a <__divsf3+0xc6>
+ e2a: ee 0c add r14, r14
+ e2c: ff 1c adc r15, r15
+ e2e: 00 1f adc r16, r16
+ e30: 11 1f adc r17, r17
+ e32: 21 50 subi r18, 0x01 ; 1
+ e34: 30 40 sbci r19, 0x00 ; 0
+ e36: 3c 87 std Y+12, r19 ; 0x0c
+ e38: 2b 87 std Y+11, r18 ; 0x0b
+ e3a: 20 e0 ldi r18, 0x00 ; 0
+ e3c: 30 e0 ldi r19, 0x00 ; 0
+ e3e: 40 e0 ldi r20, 0x00 ; 0
+ e40: 50 e0 ldi r21, 0x00 ; 0
+ e42: 80 e0 ldi r24, 0x00 ; 0
+ e44: 90 e0 ldi r25, 0x00 ; 0
+ e46: a0 e0 ldi r26, 0x00 ; 0
+ e48: b0 e4 ldi r27, 0x40 ; 64
+ e4a: 60 e0 ldi r22, 0x00 ; 0
+ e4c: 70 e0 ldi r23, 0x00 ; 0
+ e4e: ea 14 cp r14, r10
+ e50: fb 04 cpc r15, r11
+ e52: 0c 05 cpc r16, r12
+ e54: 1d 05 cpc r17, r13
+ e56: 40 f0 brcs .+16 ; 0xe68 <__divsf3+0xf4>
+ e58: 28 2b or r18, r24
+ e5a: 39 2b or r19, r25
+ e5c: 4a 2b or r20, r26
+ e5e: 5b 2b or r21, r27
+ e60: ea 18 sub r14, r10
+ e62: fb 08 sbc r15, r11
+ e64: 0c 09 sbc r16, r12
+ e66: 1d 09 sbc r17, r13
+ e68: b6 95 lsr r27
+ e6a: a7 95 ror r26
+ e6c: 97 95 ror r25
+ e6e: 87 95 ror r24
+ e70: ee 0c add r14, r14
+ e72: ff 1c adc r15, r15
+ e74: 00 1f adc r16, r16
+ e76: 11 1f adc r17, r17
+ e78: 6f 5f subi r22, 0xFF ; 255
+ e7a: 7f 4f sbci r23, 0xFF ; 255
+ e7c: 6f 31 cpi r22, 0x1F ; 31
+ e7e: 71 05 cpc r23, r1
+ e80: 31 f7 brne .-52 ; 0xe4e <__divsf3+0xda>
+ e82: da 01 movw r26, r20
+ e84: c9 01 movw r24, r18
+ e86: 8f 77 andi r24, 0x7F ; 127
+ e88: 90 70 andi r25, 0x00 ; 0
+ e8a: a0 70 andi r26, 0x00 ; 0
+ e8c: b0 70 andi r27, 0x00 ; 0
+ e8e: 80 34 cpi r24, 0x40 ; 64
+ e90: 91 05 cpc r25, r1
+ e92: a1 05 cpc r26, r1
+ e94: b1 05 cpc r27, r1
+ e96: 61 f4 brne .+24 ; 0xeb0 <__divsf3+0x13c>
+ e98: 27 fd sbrc r18, 7
+ e9a: 0a c0 rjmp .+20 ; 0xeb0 <__divsf3+0x13c>
+ e9c: e1 14 cp r14, r1
+ e9e: f1 04 cpc r15, r1
+ ea0: 01 05 cpc r16, r1
+ ea2: 11 05 cpc r17, r1
+ ea4: 29 f0 breq .+10 ; 0xeb0 <__divsf3+0x13c>
+ ea6: 20 5c subi r18, 0xC0 ; 192
+ ea8: 3f 4f sbci r19, 0xFF ; 255
+ eaa: 4f 4f sbci r20, 0xFF ; 255
+ eac: 5f 4f sbci r21, 0xFF ; 255
+ eae: 20 78 andi r18, 0x80 ; 128
+ eb0: 2d 87 std Y+13, r18 ; 0x0d
+ eb2: 3e 87 std Y+14, r19 ; 0x0e
+ eb4: 4f 87 std Y+15, r20 ; 0x0f
+ eb6: 58 8b std Y+16, r21 ; 0x10
+ eb8: be 01 movw r22, r28
+ eba: 67 5f subi r22, 0xF7 ; 247
+ ebc: 7f 4f sbci r23, 0xFF ; 255
+ ebe: cb 01 movw r24, r22
+ ec0: 0e 94 ba 07 call 0xf74 ; 0xf74 <__pack_f>
+ ec4: 68 96 adiw r28, 0x18 ; 24
+ ec6: ea e0 ldi r30, 0x0A ; 10
+ ec8: 0c 94 8f 09 jmp 0x131e ; 0x131e <__epilogue_restores__+0x10>
+
+00000ecc <__fixsfsi>:
+ ecc: ac e0 ldi r26, 0x0C ; 12
+ ece: b0 e0 ldi r27, 0x00 ; 0
+ ed0: ec e6 ldi r30, 0x6C ; 108
+ ed2: f7 e0 ldi r31, 0x07 ; 7
+ ed4: 0c 94 7b 09 jmp 0x12f6 ; 0x12f6 <__prologue_saves__+0x20>
+ ed8: 69 83 std Y+1, r22 ; 0x01
+ eda: 7a 83 std Y+2, r23 ; 0x02
+ edc: 8b 83 std Y+3, r24 ; 0x03
+ ede: 9c 83 std Y+4, r25 ; 0x04
+ ee0: ce 01 movw r24, r28
+ ee2: 01 96 adiw r24, 0x01 ; 1
+ ee4: be 01 movw r22, r28
+ ee6: 6b 5f subi r22, 0xFB ; 251
+ ee8: 7f 4f sbci r23, 0xFF ; 255
+ eea: 0e 94 8f 08 call 0x111e ; 0x111e <__unpack_f>
+ eee: 8d 81 ldd r24, Y+5 ; 0x05
+ ef0: 82 30 cpi r24, 0x02 ; 2
+ ef2: 61 f1 breq .+88 ; 0xf4c <__fixsfsi+0x80>
+ ef4: 82 30 cpi r24, 0x02 ; 2
+ ef6: 50 f1 brcs .+84 ; 0xf4c <__fixsfsi+0x80>
+ ef8: 84 30 cpi r24, 0x04 ; 4
+ efa: 21 f4 brne .+8 ; 0xf04 <__fixsfsi+0x38>
+ efc: 8e 81 ldd r24, Y+6 ; 0x06
+ efe: 88 23 and r24, r24
+ f00: 51 f1 breq .+84 ; 0xf56 <__fixsfsi+0x8a>
+ f02: 2e c0 rjmp .+92 ; 0xf60 <__fixsfsi+0x94>
+ f04: 2f 81 ldd r18, Y+7 ; 0x07
+ f06: 38 85 ldd r19, Y+8 ; 0x08
+ f08: 37 fd sbrc r19, 7
+ f0a: 20 c0 rjmp .+64 ; 0xf4c <__fixsfsi+0x80>
+ f0c: 6e 81 ldd r22, Y+6 ; 0x06
+ f0e: 2f 31 cpi r18, 0x1F ; 31
+ f10: 31 05 cpc r19, r1
+ f12: 1c f0 brlt .+6 ; 0xf1a <__fixsfsi+0x4e>
+ f14: 66 23 and r22, r22
+ f16: f9 f0 breq .+62 ; 0xf56 <__fixsfsi+0x8a>
+ f18: 23 c0 rjmp .+70 ; 0xf60 <__fixsfsi+0x94>
+ f1a: 8e e1 ldi r24, 0x1E ; 30
+ f1c: 90 e0 ldi r25, 0x00 ; 0
+ f1e: 82 1b sub r24, r18
+ f20: 93 0b sbc r25, r19
+ f22: 29 85 ldd r18, Y+9 ; 0x09
+ f24: 3a 85 ldd r19, Y+10 ; 0x0a
+ f26: 4b 85 ldd r20, Y+11 ; 0x0b
+ f28: 5c 85 ldd r21, Y+12 ; 0x0c
+ f2a: 04 c0 rjmp .+8 ; 0xf34 <__fixsfsi+0x68>
+ f2c: 56 95 lsr r21
+ f2e: 47 95 ror r20
+ f30: 37 95 ror r19
+ f32: 27 95 ror r18
+ f34: 8a 95 dec r24
+ f36: d2 f7 brpl .-12 ; 0xf2c <__fixsfsi+0x60>
+ f38: 66 23 and r22, r22
+ f3a: b1 f0 breq .+44 ; 0xf68 <__fixsfsi+0x9c>
+ f3c: 50 95 com r21
+ f3e: 40 95 com r20
+ f40: 30 95 com r19
+ f42: 21 95 neg r18
+ f44: 3f 4f sbci r19, 0xFF ; 255
+ f46: 4f 4f sbci r20, 0xFF ; 255
+ f48: 5f 4f sbci r21, 0xFF ; 255
+ f4a: 0e c0 rjmp .+28 ; 0xf68 <__fixsfsi+0x9c>
+ f4c: 20 e0 ldi r18, 0x00 ; 0
+ f4e: 30 e0 ldi r19, 0x00 ; 0
+ f50: 40 e0 ldi r20, 0x00 ; 0
+ f52: 50 e0 ldi r21, 0x00 ; 0
+ f54: 09 c0 rjmp .+18 ; 0xf68 <__fixsfsi+0x9c>
+ f56: 2f ef ldi r18, 0xFF ; 255
+ f58: 3f ef ldi r19, 0xFF ; 255
+ f5a: 4f ef ldi r20, 0xFF ; 255
+ f5c: 5f e7 ldi r21, 0x7F ; 127
+ f5e: 04 c0 rjmp .+8 ; 0xf68 <__fixsfsi+0x9c>
+ f60: 20 e0 ldi r18, 0x00 ; 0
+ f62: 30 e0 ldi r19, 0x00 ; 0
+ f64: 40 e0 ldi r20, 0x00 ; 0
+ f66: 50 e8 ldi r21, 0x80 ; 128
+ f68: b9 01 movw r22, r18
+ f6a: ca 01 movw r24, r20
+ f6c: 2c 96 adiw r28, 0x0c ; 12
+ f6e: e2 e0 ldi r30, 0x02 ; 2
+ f70: 0c 94 97 09 jmp 0x132e ; 0x132e <__epilogue_restores__+0x20>
+
+00000f74 <__pack_f>:
+ f74: df 92 push r13
+ f76: ef 92 push r14
+ f78: ff 92 push r15
+ f7a: 0f 93 push r16
+ f7c: 1f 93 push r17
+ f7e: fc 01 movw r30, r24
+ f80: e4 80 ldd r14, Z+4 ; 0x04
+ f82: f5 80 ldd r15, Z+5 ; 0x05
+ f84: 06 81 ldd r16, Z+6 ; 0x06
+ f86: 17 81 ldd r17, Z+7 ; 0x07
+ f88: d1 80 ldd r13, Z+1 ; 0x01
+ f8a: 80 81 ld r24, Z
+ f8c: 82 30 cpi r24, 0x02 ; 2
+ f8e: 48 f4 brcc .+18 ; 0xfa2 <__pack_f+0x2e>
+ f90: 80 e0 ldi r24, 0x00 ; 0
+ f92: 90 e0 ldi r25, 0x00 ; 0
+ f94: a0 e1 ldi r26, 0x10 ; 16
+ f96: b0 e0 ldi r27, 0x00 ; 0
+ f98: e8 2a or r14, r24
+ f9a: f9 2a or r15, r25
+ f9c: 0a 2b or r16, r26
+ f9e: 1b 2b or r17, r27
+ fa0: a5 c0 rjmp .+330 ; 0x10ec <__pack_f+0x178>
+ fa2: 84 30 cpi r24, 0x04 ; 4
+ fa4: 09 f4 brne .+2 ; 0xfa8 <__pack_f+0x34>
+ fa6: 9f c0 rjmp .+318 ; 0x10e6 <__pack_f+0x172>
+ fa8: 82 30 cpi r24, 0x02 ; 2
+ faa: 21 f4 brne .+8 ; 0xfb4 <__pack_f+0x40>
+ fac: ee 24 eor r14, r14
+ fae: ff 24 eor r15, r15
+ fb0: 87 01 movw r16, r14
+ fb2: 05 c0 rjmp .+10 ; 0xfbe <__pack_f+0x4a>
+ fb4: e1 14 cp r14, r1
+ fb6: f1 04 cpc r15, r1
+ fb8: 01 05 cpc r16, r1
+ fba: 11 05 cpc r17, r1
+ fbc: 19 f4 brne .+6 ; 0xfc4 <__pack_f+0x50>
+ fbe: e0 e0 ldi r30, 0x00 ; 0
+ fc0: f0 e0 ldi r31, 0x00 ; 0
+ fc2: 96 c0 rjmp .+300 ; 0x10f0 <__pack_f+0x17c>
+ fc4: 62 81 ldd r22, Z+2 ; 0x02
+ fc6: 73 81 ldd r23, Z+3 ; 0x03
+ fc8: 9f ef ldi r25, 0xFF ; 255
+ fca: 62 38 cpi r22, 0x82 ; 130
+ fcc: 79 07 cpc r23, r25
+ fce: 0c f0 brlt .+2 ; 0xfd2 <__pack_f+0x5e>
+ fd0: 5b c0 rjmp .+182 ; 0x1088 <__pack_f+0x114>
+ fd2: 22 e8 ldi r18, 0x82 ; 130
+ fd4: 3f ef ldi r19, 0xFF ; 255
+ fd6: 26 1b sub r18, r22
+ fd8: 37 0b sbc r19, r23
+ fda: 2a 31 cpi r18, 0x1A ; 26
+ fdc: 31 05 cpc r19, r1
+ fde: 2c f0 brlt .+10 ; 0xfea <__pack_f+0x76>
+ fe0: 20 e0 ldi r18, 0x00 ; 0
+ fe2: 30 e0 ldi r19, 0x00 ; 0
+ fe4: 40 e0 ldi r20, 0x00 ; 0
+ fe6: 50 e0 ldi r21, 0x00 ; 0
+ fe8: 2a c0 rjmp .+84 ; 0x103e <__pack_f+0xca>
+ fea: b8 01 movw r22, r16
+ fec: a7 01 movw r20, r14
+ fee: 02 2e mov r0, r18
+ ff0: 04 c0 rjmp .+8 ; 0xffa <__pack_f+0x86>
+ ff2: 76 95 lsr r23
+ ff4: 67 95 ror r22
+ ff6: 57 95 ror r21
+ ff8: 47 95 ror r20
+ ffa: 0a 94 dec r0
+ ffc: d2 f7 brpl .-12 ; 0xff2 <__pack_f+0x7e>
+ ffe: 81 e0 ldi r24, 0x01 ; 1
+ 1000: 90 e0 ldi r25, 0x00 ; 0
+ 1002: a0 e0 ldi r26, 0x00 ; 0
+ 1004: b0 e0 ldi r27, 0x00 ; 0
+ 1006: 04 c0 rjmp .+8 ; 0x1010 <__pack_f+0x9c>
+ 1008: 88 0f add r24, r24
+ 100a: 99 1f adc r25, r25
+ 100c: aa 1f adc r26, r26
+ 100e: bb 1f adc r27, r27
+ 1010: 2a 95 dec r18
+ 1012: d2 f7 brpl .-12 ; 0x1008 <__pack_f+0x94>
+ 1014: 01 97 sbiw r24, 0x01 ; 1
+ 1016: a1 09 sbc r26, r1
+ 1018: b1 09 sbc r27, r1
+ 101a: 8e 21 and r24, r14
+ 101c: 9f 21 and r25, r15
+ 101e: a0 23 and r26, r16
+ 1020: b1 23 and r27, r17
+ 1022: 00 97 sbiw r24, 0x00 ; 0
+ 1024: a1 05 cpc r26, r1
+ 1026: b1 05 cpc r27, r1
+ 1028: 21 f0 breq .+8 ; 0x1032 <__pack_f+0xbe>
+ 102a: 81 e0 ldi r24, 0x01 ; 1
+ 102c: 90 e0 ldi r25, 0x00 ; 0
+ 102e: a0 e0 ldi r26, 0x00 ; 0
+ 1030: b0 e0 ldi r27, 0x00 ; 0
+ 1032: 9a 01 movw r18, r20
+ 1034: ab 01 movw r20, r22
+ 1036: 28 2b or r18, r24
+ 1038: 39 2b or r19, r25
+ 103a: 4a 2b or r20, r26
+ 103c: 5b 2b or r21, r27
+ 103e: da 01 movw r26, r20
+ 1040: c9 01 movw r24, r18
+ 1042: 8f 77 andi r24, 0x7F ; 127
+ 1044: 90 70 andi r25, 0x00 ; 0
+ 1046: a0 70 andi r26, 0x00 ; 0
+ 1048: b0 70 andi r27, 0x00 ; 0
+ 104a: 80 34 cpi r24, 0x40 ; 64
+ 104c: 91 05 cpc r25, r1
+ 104e: a1 05 cpc r26, r1
+ 1050: b1 05 cpc r27, r1
+ 1052: 39 f4 brne .+14 ; 0x1062 <__pack_f+0xee>
+ 1054: 27 ff sbrs r18, 7
+ 1056: 09 c0 rjmp .+18 ; 0x106a <__pack_f+0xf6>
+ 1058: 20 5c subi r18, 0xC0 ; 192
+ 105a: 3f 4f sbci r19, 0xFF ; 255
+ 105c: 4f 4f sbci r20, 0xFF ; 255
+ 105e: 5f 4f sbci r21, 0xFF ; 255
+ 1060: 04 c0 rjmp .+8 ; 0x106a <__pack_f+0xf6>
+ 1062: 21 5c subi r18, 0xC1 ; 193
+ 1064: 3f 4f sbci r19, 0xFF ; 255
+ 1066: 4f 4f sbci r20, 0xFF ; 255
+ 1068: 5f 4f sbci r21, 0xFF ; 255
+ 106a: e0 e0 ldi r30, 0x00 ; 0
+ 106c: f0 e0 ldi r31, 0x00 ; 0
+ 106e: 20 30 cpi r18, 0x00 ; 0
+ 1070: a0 e0 ldi r26, 0x00 ; 0
+ 1072: 3a 07 cpc r19, r26
+ 1074: a0 e0 ldi r26, 0x00 ; 0
+ 1076: 4a 07 cpc r20, r26
+ 1078: a0 e4 ldi r26, 0x40 ; 64
+ 107a: 5a 07 cpc r21, r26
+ 107c: 10 f0 brcs .+4 ; 0x1082 <__pack_f+0x10e>
+ 107e: e1 e0 ldi r30, 0x01 ; 1
+ 1080: f0 e0 ldi r31, 0x00 ; 0
+ 1082: 79 01 movw r14, r18
+ 1084: 8a 01 movw r16, r20
+ 1086: 27 c0 rjmp .+78 ; 0x10d6 <__pack_f+0x162>
+ 1088: 60 38 cpi r22, 0x80 ; 128
+ 108a: 71 05 cpc r23, r1
+ 108c: 64 f5 brge .+88 ; 0x10e6 <__pack_f+0x172>
+ 108e: fb 01 movw r30, r22
+ 1090: e1 58 subi r30, 0x81 ; 129
+ 1092: ff 4f sbci r31, 0xFF ; 255
+ 1094: d8 01 movw r26, r16
+ 1096: c7 01 movw r24, r14
+ 1098: 8f 77 andi r24, 0x7F ; 127
+ 109a: 90 70 andi r25, 0x00 ; 0
+ 109c: a0 70 andi r26, 0x00 ; 0
+ 109e: b0 70 andi r27, 0x00 ; 0
+ 10a0: 80 34 cpi r24, 0x40 ; 64
+ 10a2: 91 05 cpc r25, r1
+ 10a4: a1 05 cpc r26, r1
+ 10a6: b1 05 cpc r27, r1
+ 10a8: 39 f4 brne .+14 ; 0x10b8 <__pack_f+0x144>
+ 10aa: e7 fe sbrs r14, 7
+ 10ac: 0d c0 rjmp .+26 ; 0x10c8 <__pack_f+0x154>
+ 10ae: 80 e4 ldi r24, 0x40 ; 64
+ 10b0: 90 e0 ldi r25, 0x00 ; 0
+ 10b2: a0 e0 ldi r26, 0x00 ; 0
+ 10b4: b0 e0 ldi r27, 0x00 ; 0
+ 10b6: 04 c0 rjmp .+8 ; 0x10c0 <__pack_f+0x14c>
+ 10b8: 8f e3 ldi r24, 0x3F ; 63
+ 10ba: 90 e0 ldi r25, 0x00 ; 0
+ 10bc: a0 e0 ldi r26, 0x00 ; 0
+ 10be: b0 e0 ldi r27, 0x00 ; 0
+ 10c0: e8 0e add r14, r24
+ 10c2: f9 1e adc r15, r25
+ 10c4: 0a 1f adc r16, r26
+ 10c6: 1b 1f adc r17, r27
+ 10c8: 17 ff sbrs r17, 7
+ 10ca: 05 c0 rjmp .+10 ; 0x10d6 <__pack_f+0x162>
+ 10cc: 16 95 lsr r17
+ 10ce: 07 95 ror r16
+ 10d0: f7 94 ror r15
+ 10d2: e7 94 ror r14
+ 10d4: 31 96 adiw r30, 0x01 ; 1
+ 10d6: 87 e0 ldi r24, 0x07 ; 7
+ 10d8: 16 95 lsr r17
+ 10da: 07 95 ror r16
+ 10dc: f7 94 ror r15
+ 10de: e7 94 ror r14
+ 10e0: 8a 95 dec r24
+ 10e2: d1 f7 brne .-12 ; 0x10d8 <__pack_f+0x164>
+ 10e4: 05 c0 rjmp .+10 ; 0x10f0 <__pack_f+0x17c>
+ 10e6: ee 24 eor r14, r14
+ 10e8: ff 24 eor r15, r15
+ 10ea: 87 01 movw r16, r14
+ 10ec: ef ef ldi r30, 0xFF ; 255
+ 10ee: f0 e0 ldi r31, 0x00 ; 0
+ 10f0: 6e 2f mov r22, r30
+ 10f2: 67 95 ror r22
+ 10f4: 66 27 eor r22, r22
+ 10f6: 67 95 ror r22
+ 10f8: 90 2f mov r25, r16
+ 10fa: 9f 77 andi r25, 0x7F ; 127
+ 10fc: d7 94 ror r13
+ 10fe: dd 24 eor r13, r13
+ 1100: d7 94 ror r13
+ 1102: 8e 2f mov r24, r30
+ 1104: 86 95 lsr r24
+ 1106: 49 2f mov r20, r25
+ 1108: 46 2b or r20, r22
+ 110a: 58 2f mov r21, r24
+ 110c: 5d 29 or r21, r13
+ 110e: b7 01 movw r22, r14
+ 1110: ca 01 movw r24, r20
+ 1112: 1f 91 pop r17
+ 1114: 0f 91 pop r16
+ 1116: ff 90 pop r15
+ 1118: ef 90 pop r14
+ 111a: df 90 pop r13
+ 111c: 08 95 ret
+
+0000111e <__unpack_f>:
+ 111e: fc 01 movw r30, r24
+ 1120: db 01 movw r26, r22
+ 1122: 40 81 ld r20, Z
+ 1124: 51 81 ldd r21, Z+1 ; 0x01
+ 1126: 22 81 ldd r18, Z+2 ; 0x02
+ 1128: 62 2f mov r22, r18
+ 112a: 6f 77 andi r22, 0x7F ; 127
+ 112c: 70 e0 ldi r23, 0x00 ; 0
+ 112e: 22 1f adc r18, r18
+ 1130: 22 27 eor r18, r18
+ 1132: 22 1f adc r18, r18
+ 1134: 93 81 ldd r25, Z+3 ; 0x03
+ 1136: 89 2f mov r24, r25
+ 1138: 88 0f add r24, r24
+ 113a: 82 2b or r24, r18
+ 113c: 28 2f mov r18, r24
+ 113e: 30 e0 ldi r19, 0x00 ; 0
+ 1140: 99 1f adc r25, r25
+ 1142: 99 27 eor r25, r25
+ 1144: 99 1f adc r25, r25
+ 1146: 11 96 adiw r26, 0x01 ; 1
+ 1148: 9c 93 st X, r25
+ 114a: 11 97 sbiw r26, 0x01 ; 1
+ 114c: 21 15 cp r18, r1
+ 114e: 31 05 cpc r19, r1
+ 1150: a9 f5 brne .+106 ; 0x11bc <__unpack_f+0x9e>
+ 1152: 41 15 cp r20, r1
+ 1154: 51 05 cpc r21, r1
+ 1156: 61 05 cpc r22, r1
+ 1158: 71 05 cpc r23, r1
+ 115a: 11 f4 brne .+4 ; 0x1160 <__unpack_f+0x42>
+ 115c: 82 e0 ldi r24, 0x02 ; 2
+ 115e: 37 c0 rjmp .+110 ; 0x11ce <__unpack_f+0xb0>
+ 1160: 82 e8 ldi r24, 0x82 ; 130
+ 1162: 9f ef ldi r25, 0xFF ; 255
+ 1164: 13 96 adiw r26, 0x03 ; 3
+ 1166: 9c 93 st X, r25
+ 1168: 8e 93 st -X, r24
+ 116a: 12 97 sbiw r26, 0x02 ; 2
+ 116c: 9a 01 movw r18, r20
+ 116e: ab 01 movw r20, r22
+ 1170: 67 e0 ldi r22, 0x07 ; 7
+ 1172: 22 0f add r18, r18
+ 1174: 33 1f adc r19, r19
+ 1176: 44 1f adc r20, r20
+ 1178: 55 1f adc r21, r21
+ 117a: 6a 95 dec r22
+ 117c: d1 f7 brne .-12 ; 0x1172 <__unpack_f+0x54>
+ 117e: 83 e0 ldi r24, 0x03 ; 3
+ 1180: 8c 93 st X, r24
+ 1182: 0d c0 rjmp .+26 ; 0x119e <__unpack_f+0x80>
+ 1184: 22 0f add r18, r18
+ 1186: 33 1f adc r19, r19
+ 1188: 44 1f adc r20, r20
+ 118a: 55 1f adc r21, r21
+ 118c: 12 96 adiw r26, 0x02 ; 2
+ 118e: 8d 91 ld r24, X+
+ 1190: 9c 91 ld r25, X
+ 1192: 13 97 sbiw r26, 0x03 ; 3
+ 1194: 01 97 sbiw r24, 0x01 ; 1
+ 1196: 13 96 adiw r26, 0x03 ; 3
+ 1198: 9c 93 st X, r25
+ 119a: 8e 93 st -X, r24
+ 119c: 12 97 sbiw r26, 0x02 ; 2
+ 119e: 20 30 cpi r18, 0x00 ; 0
+ 11a0: 80 e0 ldi r24, 0x00 ; 0
+ 11a2: 38 07 cpc r19, r24
+ 11a4: 80 e0 ldi r24, 0x00 ; 0
+ 11a6: 48 07 cpc r20, r24
+ 11a8: 80 e4 ldi r24, 0x40 ; 64
+ 11aa: 58 07 cpc r21, r24
+ 11ac: 58 f3 brcs .-42 ; 0x1184 <__unpack_f+0x66>
+ 11ae: 14 96 adiw r26, 0x04 ; 4
+ 11b0: 2d 93 st X+, r18
+ 11b2: 3d 93 st X+, r19
+ 11b4: 4d 93 st X+, r20
+ 11b6: 5c 93 st X, r21
+ 11b8: 17 97 sbiw r26, 0x07 ; 7
+ 11ba: 08 95 ret
+ 11bc: 2f 3f cpi r18, 0xFF ; 255
+ 11be: 31 05 cpc r19, r1
+ 11c0: 79 f4 brne .+30 ; 0x11e0 <__unpack_f+0xc2>
+ 11c2: 41 15 cp r20, r1
+ 11c4: 51 05 cpc r21, r1
+ 11c6: 61 05 cpc r22, r1
+ 11c8: 71 05 cpc r23, r1
+ 11ca: 19 f4 brne .+6 ; 0x11d2 <__unpack_f+0xb4>
+ 11cc: 84 e0 ldi r24, 0x04 ; 4
+ 11ce: 8c 93 st X, r24
+ 11d0: 08 95 ret
+ 11d2: 64 ff sbrs r22, 4
+ 11d4: 03 c0 rjmp .+6 ; 0x11dc <__unpack_f+0xbe>
+ 11d6: 81 e0 ldi r24, 0x01 ; 1
+ 11d8: 8c 93 st X, r24
+ 11da: 12 c0 rjmp .+36 ; 0x1200 <__unpack_f+0xe2>
+ 11dc: 1c 92 st X, r1
+ 11de: 10 c0 rjmp .+32 ; 0x1200 <__unpack_f+0xe2>
+ 11e0: 2f 57 subi r18, 0x7F ; 127
+ 11e2: 30 40 sbci r19, 0x00 ; 0
+ 11e4: 13 96 adiw r26, 0x03 ; 3
+ 11e6: 3c 93 st X, r19
+ 11e8: 2e 93 st -X, r18
+ 11ea: 12 97 sbiw r26, 0x02 ; 2
+ 11ec: 83 e0 ldi r24, 0x03 ; 3
+ 11ee: 8c 93 st X, r24
+ 11f0: 87 e0 ldi r24, 0x07 ; 7
+ 11f2: 44 0f add r20, r20
+ 11f4: 55 1f adc r21, r21
+ 11f6: 66 1f adc r22, r22
+ 11f8: 77 1f adc r23, r23
+ 11fa: 8a 95 dec r24
+ 11fc: d1 f7 brne .-12 ; 0x11f2 <__unpack_f+0xd4>
+ 11fe: 70 64 ori r23, 0x40 ; 64
+ 1200: 14 96 adiw r26, 0x04 ; 4
+ 1202: 4d 93 st X+, r20
+ 1204: 5d 93 st X+, r21
+ 1206: 6d 93 st X+, r22
+ 1208: 7c 93 st X, r23
+ 120a: 17 97 sbiw r26, 0x07 ; 7
+ 120c: 08 95 ret
+
+0000120e <__divmodhi4>:
+ 120e: 97 fb bst r25, 7
+ 1210: 09 2e mov r0, r25
+ 1212: 07 26 eor r0, r23
+ 1214: 0a d0 rcall .+20 ; 0x122a <__divmodhi4_neg1>
+ 1216: 77 fd sbrc r23, 7
+ 1218: 04 d0 rcall .+8 ; 0x1222 <__divmodhi4_neg2>
+ 121a: 49 d0 rcall .+146 ; 0x12ae <__udivmodhi4>
+ 121c: 06 d0 rcall .+12 ; 0x122a <__divmodhi4_neg1>
+ 121e: 00 20 and r0, r0
+ 1220: 1a f4 brpl .+6 ; 0x1228 <__divmodhi4_exit>
+
+00001222 <__divmodhi4_neg2>:
+ 1222: 70 95 com r23
+ 1224: 61 95 neg r22
+ 1226: 7f 4f sbci r23, 0xFF ; 255
+
+00001228 <__divmodhi4_exit>:
+ 1228: 08 95 ret
+
+0000122a <__divmodhi4_neg1>:
+ 122a: f6 f7 brtc .-4 ; 0x1228 <__divmodhi4_exit>
+ 122c: 90 95 com r25
+ 122e: 81 95 neg r24
+ 1230: 9f 4f sbci r25, 0xFF ; 255
+ 1232: 08 95 ret
+
+00001234 <__udivmodsi4>:
+ 1234: a1 e2 ldi r26, 0x21 ; 33
+ 1236: 1a 2e mov r1, r26
+ 1238: aa 1b sub r26, r26
+ 123a: bb 1b sub r27, r27
+ 123c: fd 01 movw r30, r26
+ 123e: 0d c0 rjmp .+26 ; 0x125a <__udivmodsi4_ep>
+
+00001240 <__udivmodsi4_loop>:
+ 1240: aa 1f adc r26, r26
+ 1242: bb 1f adc r27, r27
+ 1244: ee 1f adc r30, r30
+ 1246: ff 1f adc r31, r31
+ 1248: a2 17 cp r26, r18
+ 124a: b3 07 cpc r27, r19
+ 124c: e4 07 cpc r30, r20
+ 124e: f5 07 cpc r31, r21
+ 1250: 20 f0 brcs .+8 ; 0x125a <__udivmodsi4_ep>
+ 1252: a2 1b sub r26, r18
+ 1254: b3 0b sbc r27, r19
+ 1256: e4 0b sbc r30, r20
+ 1258: f5 0b sbc r31, r21
+
+0000125a <__udivmodsi4_ep>:
+ 125a: 66 1f adc r22, r22
+ 125c: 77 1f adc r23, r23
+ 125e: 88 1f adc r24, r24
+ 1260: 99 1f adc r25, r25
+ 1262: 1a 94 dec r1
+ 1264: 69 f7 brne .-38 ; 0x1240 <__udivmodsi4_loop>
+ 1266: 60 95 com r22
+ 1268: 70 95 com r23
+ 126a: 80 95 com r24
+ 126c: 90 95 com r25
+ 126e: 9b 01 movw r18, r22
+ 1270: ac 01 movw r20, r24
+ 1272: bd 01 movw r22, r26
+ 1274: cf 01 movw r24, r30
+ 1276: 08 95 ret
+
+00001278 <__divmodsi4>:
+ 1278: 97 fb bst r25, 7
+ 127a: 09 2e mov r0, r25
+ 127c: 05 26 eor r0, r21
+ 127e: 0e d0 rcall .+28 ; 0x129c <__divmodsi4_neg1>
+ 1280: 57 fd sbrc r21, 7
+ 1282: 04 d0 rcall .+8 ; 0x128c <__divmodsi4_neg2>
+ 1284: d7 df rcall .-82 ; 0x1234 <__udivmodsi4>
+ 1286: 0a d0 rcall .+20 ; 0x129c <__divmodsi4_neg1>
+ 1288: 00 1c adc r0, r0
+ 128a: 38 f4 brcc .+14 ; 0x129a <__divmodsi4_exit>
+
+0000128c <__divmodsi4_neg2>:
+ 128c: 50 95 com r21
+ 128e: 40 95 com r20
+ 1290: 30 95 com r19
+ 1292: 21 95 neg r18
+ 1294: 3f 4f sbci r19, 0xFF ; 255
+ 1296: 4f 4f sbci r20, 0xFF ; 255
+ 1298: 5f 4f sbci r21, 0xFF ; 255
+
+0000129a <__divmodsi4_exit>:
+ 129a: 08 95 ret
+
+0000129c <__divmodsi4_neg1>:
+ 129c: f6 f7 brtc .-4 ; 0x129a <__divmodsi4_exit>
+ 129e: 90 95 com r25
+ 12a0: 80 95 com r24
+ 12a2: 70 95 com r23
+ 12a4: 61 95 neg r22
+ 12a6: 7f 4f sbci r23, 0xFF ; 255
+ 12a8: 8f 4f sbci r24, 0xFF ; 255
+ 12aa: 9f 4f sbci r25, 0xFF ; 255
+ 12ac: 08 95 ret
+
+000012ae <__udivmodhi4>:
+ 12ae: aa 1b sub r26, r26
+ 12b0: bb 1b sub r27, r27
+ 12b2: 51 e1 ldi r21, 0x11 ; 17
+ 12b4: 07 c0 rjmp .+14 ; 0x12c4 <__udivmodhi4_ep>
+
+000012b6 <__udivmodhi4_loop>:
+ 12b6: aa 1f adc r26, r26
+ 12b8: bb 1f adc r27, r27
+ 12ba: a6 17 cp r26, r22
+ 12bc: b7 07 cpc r27, r23
+ 12be: 10 f0 brcs .+4 ; 0x12c4 <__udivmodhi4_ep>
+ 12c0: a6 1b sub r26, r22
+ 12c2: b7 0b sbc r27, r23
+
+000012c4 <__udivmodhi4_ep>:
+ 12c4: 88 1f adc r24, r24
+ 12c6: 99 1f adc r25, r25
+ 12c8: 5a 95 dec r21
+ 12ca: a9 f7 brne .-22 ; 0x12b6 <__udivmodhi4_loop>
+ 12cc: 80 95 com r24
+ 12ce: 90 95 com r25
+ 12d0: bc 01 movw r22, r24
+ 12d2: cd 01 movw r24, r26
+ 12d4: 08 95 ret
+
+000012d6 <__prologue_saves__>:
+ 12d6: 2f 92 push r2
+ 12d8: 3f 92 push r3
+ 12da: 4f 92 push r4
+ 12dc: 5f 92 push r5
+ 12de: 6f 92 push r6
+ 12e0: 7f 92 push r7
+ 12e2: 8f 92 push r8
+ 12e4: 9f 92 push r9
+ 12e6: af 92 push r10
+ 12e8: bf 92 push r11
+ 12ea: cf 92 push r12
+ 12ec: df 92 push r13
+ 12ee: ef 92 push r14
+ 12f0: ff 92 push r15
+ 12f2: 0f 93 push r16
+ 12f4: 1f 93 push r17
+ 12f6: cf 93 push r28
+ 12f8: df 93 push r29
+ 12fa: cd b7 in r28, 0x3d ; 61
+ 12fc: de b7 in r29, 0x3e ; 62
+ 12fe: ca 1b sub r28, r26
+ 1300: db 0b sbc r29, r27
+ 1302: 0f b6 in r0, 0x3f ; 63
+ 1304: f8 94 cli
+ 1306: de bf out 0x3e, r29 ; 62
+ 1308: 0f be out 0x3f, r0 ; 63
+ 130a: cd bf out 0x3d, r28 ; 61
+ 130c: 09 94 ijmp
+
+0000130e <__epilogue_restores__>:
+ 130e: 2a 88 ldd r2, Y+18 ; 0x12
+ 1310: 39 88 ldd r3, Y+17 ; 0x11
+ 1312: 48 88 ldd r4, Y+16 ; 0x10
+ 1314: 5f 84 ldd r5, Y+15 ; 0x0f
+ 1316: 6e 84 ldd r6, Y+14 ; 0x0e
+ 1318: 7d 84 ldd r7, Y+13 ; 0x0d
+ 131a: 8c 84 ldd r8, Y+12 ; 0x0c
+ 131c: 9b 84 ldd r9, Y+11 ; 0x0b
+ 131e: aa 84 ldd r10, Y+10 ; 0x0a
+ 1320: b9 84 ldd r11, Y+9 ; 0x09
+ 1322: c8 84 ldd r12, Y+8 ; 0x08
+ 1324: df 80 ldd r13, Y+7 ; 0x07
+ 1326: ee 80 ldd r14, Y+6 ; 0x06
+ 1328: fd 80 ldd r15, Y+5 ; 0x05
+ 132a: 0c 81 ldd r16, Y+4 ; 0x04
+ 132c: 1b 81 ldd r17, Y+3 ; 0x03
+ 132e: aa 81 ldd r26, Y+2 ; 0x02
+ 1330: b9 81 ldd r27, Y+1 ; 0x01
+ 1332: ce 0f add r28, r30
+ 1334: d1 1d adc r29, r1
+ 1336: 0f b6 in r0, 0x3f ; 63
+ 1338: f8 94 cli
+ 133a: de bf out 0x3e, r29 ; 62
+ 133c: 0f be out 0x3f, r0 ; 63
+ 133e: cd bf out 0x3d, r28 ; 61
+ 1340: ed 01 movw r28, r26
+ 1342: 08 95 ret
+
+00001344 <__tablejump2__>:
+ 1344: ee 0f add r30, r30
+ 1346: ff 1f adc r31, r31
+
+00001348 <__tablejump__>:
+ 1348: 05 90 lpm r0, Z+
+ 134a: f4 91 lpm r31, Z+
+ 134c: e0 2d mov r30, r0
+ 134e: 09 94 ijmp
+
+00001350 <sin>:
+ 1350: 9f 93 push r25
+ 1352: 05 d0 rcall .+10 ; 0x135e <__fp_rempio2>
+ 1354: 0f 90 pop r0
+ 1356: 07 fc sbrc r0, 7
+ 1358: ee 5f subi r30, 0xFE ; 254
+ 135a: 28 c0 rjmp .+80 ; 0x13ac <__fp_sinus>
+ 135c: ce c0 rjmp .+412 ; 0x14fa <__fp_nan>
+
+0000135e <__fp_rempio2>:
+ 135e: 3f d0 rcall .+126 ; 0x13de <__fp_splitA>
+ 1360: e8 f3 brcs .-6 ; 0x135c <sin+0xc>
+ 1362: e8 94 clt
+ 1364: e0 e0 ldi r30, 0x00 ; 0
+ 1366: bb 27 eor r27, r27
+ 1368: 9f 57 subi r25, 0x7F ; 127
+ 136a: f0 f0 brcs .+60 ; 0x13a8 <__fp_rempio2+0x4a>
+ 136c: 2a ed ldi r18, 0xDA ; 218
+ 136e: 3f e0 ldi r19, 0x0F ; 15
+ 1370: 49 ec ldi r20, 0xC9 ; 201
+ 1372: 06 c0 rjmp .+12 ; 0x1380 <__fp_rempio2+0x22>
+ 1374: ee 0f add r30, r30
+ 1376: bb 0f add r27, r27
+ 1378: 66 1f adc r22, r22
+ 137a: 77 1f adc r23, r23
+ 137c: 88 1f adc r24, r24
+ 137e: 28 f0 brcs .+10 ; 0x138a <__fp_rempio2+0x2c>
+ 1380: b2 3a cpi r27, 0xA2 ; 162
+ 1382: 62 07 cpc r22, r18
+ 1384: 73 07 cpc r23, r19
+ 1386: 84 07 cpc r24, r20
+ 1388: 28 f0 brcs .+10 ; 0x1394 <__fp_rempio2+0x36>
+ 138a: b2 5a subi r27, 0xA2 ; 162
+ 138c: 62 0b sbc r22, r18
+ 138e: 73 0b sbc r23, r19
+ 1390: 84 0b sbc r24, r20
+ 1392: e3 95 inc r30
+ 1394: 9a 95 dec r25
+ 1396: 72 f7 brpl .-36 ; 0x1374 <__fp_rempio2+0x16>
+ 1398: 80 38 cpi r24, 0x80 ; 128
+ 139a: 30 f4 brcc .+12 ; 0x13a8 <__fp_rempio2+0x4a>
+ 139c: 9a 95 dec r25
+ 139e: bb 0f add r27, r27
+ 13a0: 66 1f adc r22, r22
+ 13a2: 77 1f adc r23, r23
+ 13a4: 88 1f adc r24, r24
+ 13a6: d2 f7 brpl .-12 ; 0x139c <__fp_rempio2+0x3e>
+ 13a8: 90 48 sbci r25, 0x80 ; 128
+ 13aa: 9b c0 rjmp .+310 ; 0x14e2 <__fp_mpack_finite>
+
+000013ac <__fp_sinus>:
+ 13ac: ef 93 push r30
+ 13ae: e0 ff sbrs r30, 0
+ 13b0: 06 c0 rjmp .+12 ; 0x13be <__fp_sinus+0x12>
+ 13b2: a2 ea ldi r26, 0xA2 ; 162
+ 13b4: 2a ed ldi r18, 0xDA ; 218
+ 13b6: 3f e0 ldi r19, 0x0F ; 15
+ 13b8: 49 ec ldi r20, 0xC9 ; 201
+ 13ba: 5f eb ldi r21, 0xBF ; 191
+ 13bc: 37 d0 rcall .+110 ; 0x142c <__addsf3x>
+ 13be: bf d0 rcall .+382 ; 0x153e <__fp_round>
+ 13c0: 0f 90 pop r0
+ 13c2: 03 94 inc r0
+ 13c4: 01 fc sbrc r0, 1
+ 13c6: 90 58 subi r25, 0x80 ; 128
+ 13c8: e8 e6 ldi r30, 0x68 ; 104
+ 13ca: f0 e0 ldi r31, 0x00 ; 0
+ 13cc: 99 c0 rjmp .+306 ; 0x1500 <__fp_powsodd>
+
+000013ce <__fp_split3>:
+ 13ce: 57 fd sbrc r21, 7
+ 13d0: 90 58 subi r25, 0x80 ; 128
+ 13d2: 44 0f add r20, r20
+ 13d4: 55 1f adc r21, r21
+ 13d6: 59 f0 breq .+22 ; 0x13ee <__fp_splitA+0x10>
+ 13d8: 5f 3f cpi r21, 0xFF ; 255
+ 13da: 71 f0 breq .+28 ; 0x13f8 <__fp_splitA+0x1a>
+ 13dc: 47 95 ror r20
+
+000013de <__fp_splitA>:
+ 13de: 88 0f add r24, r24
+ 13e0: 97 fb bst r25, 7
+ 13e2: 99 1f adc r25, r25
+ 13e4: 61 f0 breq .+24 ; 0x13fe <__fp_splitA+0x20>
+ 13e6: 9f 3f cpi r25, 0xFF ; 255
+ 13e8: 79 f0 breq .+30 ; 0x1408 <__fp_splitA+0x2a>
+ 13ea: 87 95 ror r24
+ 13ec: 08 95 ret
+ 13ee: 12 16 cp r1, r18
+ 13f0: 13 06 cpc r1, r19
+ 13f2: 14 06 cpc r1, r20
+ 13f4: 55 1f adc r21, r21
+ 13f6: f2 cf rjmp .-28 ; 0x13dc <__fp_split3+0xe>
+ 13f8: 46 95 lsr r20
+ 13fa: f1 df rcall .-30 ; 0x13de <__fp_splitA>
+ 13fc: 08 c0 rjmp .+16 ; 0x140e <__fp_splitA+0x30>
+ 13fe: 16 16 cp r1, r22
+ 1400: 17 06 cpc r1, r23
+ 1402: 18 06 cpc r1, r24
+ 1404: 99 1f adc r25, r25
+ 1406: f1 cf rjmp .-30 ; 0x13ea <__fp_splitA+0xc>
+ 1408: 86 95 lsr r24
+ 140a: 71 05 cpc r23, r1
+ 140c: 61 05 cpc r22, r1
+ 140e: 08 94 sec
+ 1410: 08 95 ret
+ 1412: 87 d0 rcall .+270 ; 0x1522 <__fp_pscA>
+ 1414: 30 f0 brcs .+12 ; 0x1422 <__fp_splitA+0x44>
+ 1416: 8c d0 rcall .+280 ; 0x1530 <__fp_pscB>
+ 1418: 20 f0 brcs .+8 ; 0x1422 <__fp_splitA+0x44>
+ 141a: 31 f4 brne .+12 ; 0x1428 <__fp_splitA+0x4a>
+ 141c: 9f 3f cpi r25, 0xFF ; 255
+ 141e: 11 f4 brne .+4 ; 0x1424 <__fp_splitA+0x46>
+ 1420: 1e f4 brtc .+6 ; 0x1428 <__fp_splitA+0x4a>
+ 1422: 6b c0 rjmp .+214 ; 0x14fa <__fp_nan>
+ 1424: 0e f4 brtc .+2 ; 0x1428 <__fp_splitA+0x4a>
+ 1426: e0 95 com r30
+ 1428: e7 fb bst r30, 7
+ 142a: 53 c0 rjmp .+166 ; 0x14d2 <__fp_inf>
+
+0000142c <__addsf3x>:
+ 142c: e9 2f mov r30, r25
+ 142e: cf df rcall .-98 ; 0x13ce <__fp_split3>
+ 1430: 80 f3 brcs .-32 ; 0x1412 <__fp_splitA+0x34>
+ 1432: ba 17 cp r27, r26
+ 1434: 62 07 cpc r22, r18
+ 1436: 73 07 cpc r23, r19
+ 1438: 84 07 cpc r24, r20
+ 143a: 95 07 cpc r25, r21
+ 143c: 18 f0 brcs .+6 ; 0x1444 <__addsf3x+0x18>
+ 143e: 71 f4 brne .+28 ; 0x145c <__addsf3x+0x30>
+ 1440: 9e f5 brtc .+102 ; 0x14a8 <__addsf3x+0x7c>
+ 1442: 8e c0 rjmp .+284 ; 0x1560 <__fp_zero>
+ 1444: 0e f4 brtc .+2 ; 0x1448 <__addsf3x+0x1c>
+ 1446: e0 95 com r30
+ 1448: 0b 2e mov r0, r27
+ 144a: ba 2f mov r27, r26
+ 144c: a0 2d mov r26, r0
+ 144e: 0b 01 movw r0, r22
+ 1450: b9 01 movw r22, r18
+ 1452: 90 01 movw r18, r0
+ 1454: 0c 01 movw r0, r24
+ 1456: ca 01 movw r24, r20
+ 1458: a0 01 movw r20, r0
+ 145a: 11 24 eor r1, r1
+ 145c: ff 27 eor r31, r31
+ 145e: 59 1b sub r21, r25
+ 1460: 99 f0 breq .+38 ; 0x1488 <__addsf3x+0x5c>
+ 1462: 59 3f cpi r21, 0xF9 ; 249
+ 1464: 50 f4 brcc .+20 ; 0x147a <__addsf3x+0x4e>
+ 1466: 50 3e cpi r21, 0xE0 ; 224
+ 1468: 68 f1 brcs .+90 ; 0x14c4 <__addsf3x+0x98>
+ 146a: 1a 16 cp r1, r26
+ 146c: f0 40 sbci r31, 0x00 ; 0
+ 146e: a2 2f mov r26, r18
+ 1470: 23 2f mov r18, r19
+ 1472: 34 2f mov r19, r20
+ 1474: 44 27 eor r20, r20
+ 1476: 58 5f subi r21, 0xF8 ; 248
+ 1478: f3 cf rjmp .-26 ; 0x1460 <__addsf3x+0x34>
+ 147a: 46 95 lsr r20
+ 147c: 37 95 ror r19
+ 147e: 27 95 ror r18
+ 1480: a7 95 ror r26
+ 1482: f0 40 sbci r31, 0x00 ; 0
+ 1484: 53 95 inc r21
+ 1486: c9 f7 brne .-14 ; 0x147a <__addsf3x+0x4e>
+ 1488: 7e f4 brtc .+30 ; 0x14a8 <__addsf3x+0x7c>
+ 148a: 1f 16 cp r1, r31
+ 148c: ba 0b sbc r27, r26
+ 148e: 62 0b sbc r22, r18
+ 1490: 73 0b sbc r23, r19
+ 1492: 84 0b sbc r24, r20
+ 1494: ba f0 brmi .+46 ; 0x14c4 <__addsf3x+0x98>
+ 1496: 91 50 subi r25, 0x01 ; 1
+ 1498: a1 f0 breq .+40 ; 0x14c2 <__addsf3x+0x96>
+ 149a: ff 0f add r31, r31
+ 149c: bb 1f adc r27, r27
+ 149e: 66 1f adc r22, r22
+ 14a0: 77 1f adc r23, r23
+ 14a2: 88 1f adc r24, r24
+ 14a4: c2 f7 brpl .-16 ; 0x1496 <__addsf3x+0x6a>
+ 14a6: 0e c0 rjmp .+28 ; 0x14c4 <__addsf3x+0x98>
+ 14a8: ba 0f add r27, r26
+ 14aa: 62 1f adc r22, r18
+ 14ac: 73 1f adc r23, r19
+ 14ae: 84 1f adc r24, r20
+ 14b0: 48 f4 brcc .+18 ; 0x14c4 <__addsf3x+0x98>
+ 14b2: 87 95 ror r24
+ 14b4: 77 95 ror r23
+ 14b6: 67 95 ror r22
+ 14b8: b7 95 ror r27
+ 14ba: f7 95 ror r31
+ 14bc: 9e 3f cpi r25, 0xFE ; 254
+ 14be: 08 f0 brcs .+2 ; 0x14c2 <__addsf3x+0x96>
+ 14c0: b3 cf rjmp .-154 ; 0x1428 <__fp_splitA+0x4a>
+ 14c2: 93 95 inc r25
+ 14c4: 88 0f add r24, r24
+ 14c6: 08 f0 brcs .+2 ; 0x14ca <__addsf3x+0x9e>
+ 14c8: 99 27 eor r25, r25
+ 14ca: ee 0f add r30, r30
+ 14cc: 97 95 ror r25
+ 14ce: 87 95 ror r24
+ 14d0: 08 95 ret
+
+000014d2 <__fp_inf>:
+ 14d2: 97 f9 bld r25, 7
+ 14d4: 9f 67 ori r25, 0x7F ; 127
+ 14d6: 80 e8 ldi r24, 0x80 ; 128
+ 14d8: 70 e0 ldi r23, 0x00 ; 0
+ 14da: 60 e0 ldi r22, 0x00 ; 0
+ 14dc: 08 95 ret
+
+000014de <__fp_mpack>:
+ 14de: 9f 3f cpi r25, 0xFF ; 255
+ 14e0: 31 f0 breq .+12 ; 0x14ee <__fp_mpack_finite+0xc>
+
+000014e2 <__fp_mpack_finite>:
+ 14e2: 91 50 subi r25, 0x01 ; 1
+ 14e4: 20 f4 brcc .+8 ; 0x14ee <__fp_mpack_finite+0xc>
+ 14e6: 87 95 ror r24
+ 14e8: 77 95 ror r23
+ 14ea: 67 95 ror r22
+ 14ec: b7 95 ror r27
+ 14ee: 88 0f add r24, r24
+ 14f0: 91 1d adc r25, r1
+ 14f2: 96 95 lsr r25
+ 14f4: 87 95 ror r24
+ 14f6: 97 f9 bld r25, 7
+ 14f8: 08 95 ret
+
+000014fa <__fp_nan>:
+ 14fa: 9f ef ldi r25, 0xFF ; 255
+ 14fc: 80 ec ldi r24, 0xC0 ; 192
+ 14fe: 08 95 ret
+
+00001500 <__fp_powsodd>:
+ 1500: 9f 93 push r25
+ 1502: 8f 93 push r24
+ 1504: 7f 93 push r23
+ 1506: 6f 93 push r22
+ 1508: ff 93 push r31
+ 150a: ef 93 push r30
+ 150c: 9b 01 movw r18, r22
+ 150e: ac 01 movw r20, r24
+ 1510: 37 db rcall .-2450 ; 0xb80 <__mulsf3>
+ 1512: ef 91 pop r30
+ 1514: ff 91 pop r31
+ 1516: 2b d0 rcall .+86 ; 0x156e <__fp_powser>
+ 1518: 2f 91 pop r18
+ 151a: 3f 91 pop r19
+ 151c: 4f 91 pop r20
+ 151e: 5f 91 pop r21
+ 1520: 2f cb rjmp .-2466 ; 0xb80 <__mulsf3>
+
+00001522 <__fp_pscA>:
+ 1522: 00 24 eor r0, r0
+ 1524: 0a 94 dec r0
+ 1526: 16 16 cp r1, r22
+ 1528: 17 06 cpc r1, r23
+ 152a: 18 06 cpc r1, r24
+ 152c: 09 06 cpc r0, r25
+ 152e: 08 95 ret
+
+00001530 <__fp_pscB>:
+ 1530: 00 24 eor r0, r0
+ 1532: 0a 94 dec r0
+ 1534: 12 16 cp r1, r18
+ 1536: 13 06 cpc r1, r19
+ 1538: 14 06 cpc r1, r20
+ 153a: 05 06 cpc r0, r21
+ 153c: 08 95 ret
+
+0000153e <__fp_round>:
+ 153e: 09 2e mov r0, r25
+ 1540: 03 94 inc r0
+ 1542: 00 0c add r0, r0
+ 1544: 11 f4 brne .+4 ; 0x154a <__fp_round+0xc>
+ 1546: 88 23 and r24, r24
+ 1548: 52 f0 brmi .+20 ; 0x155e <__fp_round+0x20>
+ 154a: bb 0f add r27, r27
+ 154c: 40 f4 brcc .+16 ; 0x155e <__fp_round+0x20>
+ 154e: bf 2b or r27, r31
+ 1550: 11 f4 brne .+4 ; 0x1556 <__fp_round+0x18>
+ 1552: 60 ff sbrs r22, 0
+ 1554: 04 c0 rjmp .+8 ; 0x155e <__fp_round+0x20>
+ 1556: 6f 5f subi r22, 0xFF ; 255
+ 1558: 7f 4f sbci r23, 0xFF ; 255
+ 155a: 8f 4f sbci r24, 0xFF ; 255
+ 155c: 9f 4f sbci r25, 0xFF ; 255
+ 155e: 08 95 ret
+
+00001560 <__fp_zero>:
+ 1560: e8 94 clt
+
+00001562 <__fp_szero>:
+ 1562: bb 27 eor r27, r27
+ 1564: 66 27 eor r22, r22
+ 1566: 77 27 eor r23, r23
+ 1568: cb 01 movw r24, r22
+ 156a: 97 f9 bld r25, 7
+ 156c: 08 95 ret
+
+0000156e <__fp_powser>:
+ 156e: df 93 push r29
+ 1570: cf 93 push r28
+ 1572: 1f 93 push r17
+ 1574: 0f 93 push r16
+ 1576: ff 92 push r15
+ 1578: ef 92 push r14
+ 157a: df 92 push r13
+ 157c: 7b 01 movw r14, r22
+ 157e: 8c 01 movw r16, r24
+ 1580: 68 94 set
+ 1582: 05 c0 rjmp .+10 ; 0x158e <__fp_powser+0x20>
+ 1584: da 2e mov r13, r26
+ 1586: ef 01 movw r28, r30
+ 1588: 21 d0 rcall .+66 ; 0x15cc <__mulsf3x>
+ 158a: fe 01 movw r30, r28
+ 158c: e8 94 clt
+ 158e: a5 91 lpm r26, Z+
+ 1590: 25 91 lpm r18, Z+
+ 1592: 35 91 lpm r19, Z+
+ 1594: 45 91 lpm r20, Z+
+ 1596: 55 91 lpm r21, Z+
+ 1598: ae f3 brts .-22 ; 0x1584 <__fp_powser+0x16>
+ 159a: ef 01 movw r28, r30
+ 159c: 47 df rcall .-370 ; 0x142c <__addsf3x>
+ 159e: fe 01 movw r30, r28
+ 15a0: 97 01 movw r18, r14
+ 15a2: a8 01 movw r20, r16
+ 15a4: da 94 dec r13
+ 15a6: 79 f7 brne .-34 ; 0x1586 <__fp_powser+0x18>
+ 15a8: df 90 pop r13
+ 15aa: ef 90 pop r14
+ 15ac: ff 90 pop r15
+ 15ae: 0f 91 pop r16
+ 15b0: 1f 91 pop r17
+ 15b2: cf 91 pop r28
+ 15b4: df 91 pop r29
+ 15b6: 08 95 ret
+ 15b8: b4 df rcall .-152 ; 0x1522 <__fp_pscA>
+ 15ba: 28 f0 brcs .+10 ; 0x15c6 <__fp_powser+0x58>
+ 15bc: b9 df rcall .-142 ; 0x1530 <__fp_pscB>
+ 15be: 18 f0 brcs .+6 ; 0x15c6 <__fp_powser+0x58>
+ 15c0: 95 23 and r25, r21
+ 15c2: 09 f0 breq .+2 ; 0x15c6 <__fp_powser+0x58>
+ 15c4: 86 cf rjmp .-244 ; 0x14d2 <__fp_inf>
+ 15c6: 99 cf rjmp .-206 ; 0x14fa <__fp_nan>
+ 15c8: 11 24 eor r1, r1
+ 15ca: cb cf rjmp .-106 ; 0x1562 <__fp_szero>
+
+000015cc <__mulsf3x>:
+ 15cc: 00 df rcall .-512 ; 0x13ce <__fp_split3>
+ 15ce: a0 f3 brcs .-24 ; 0x15b8 <__fp_powser+0x4a>
+
+000015d0 <__mulsf3_pse>:
+ 15d0: 95 9f mul r25, r21
+ 15d2: d1 f3 breq .-12 ; 0x15c8 <__fp_powser+0x5a>
+ 15d4: 95 0f add r25, r21
+ 15d6: 50 e0 ldi r21, 0x00 ; 0
+ 15d8: 55 1f adc r21, r21
+ 15da: 62 9f mul r22, r18
+ 15dc: f0 01 movw r30, r0
+ 15de: 72 9f mul r23, r18
+ 15e0: bb 27 eor r27, r27
+ 15e2: f0 0d add r31, r0
+ 15e4: b1 1d adc r27, r1
+ 15e6: 63 9f mul r22, r19
+ 15e8: aa 27 eor r26, r26
+ 15ea: f0 0d add r31, r0
+ 15ec: b1 1d adc r27, r1
+ 15ee: aa 1f adc r26, r26
+ 15f0: 64 9f mul r22, r20
+ 15f2: 66 27 eor r22, r22
+ 15f4: b0 0d add r27, r0
+ 15f6: a1 1d adc r26, r1
+ 15f8: 66 1f adc r22, r22
+ 15fa: 82 9f mul r24, r18
+ 15fc: 22 27 eor r18, r18
+ 15fe: b0 0d add r27, r0
+ 1600: a1 1d adc r26, r1
+ 1602: 62 1f adc r22, r18
+ 1604: 73 9f mul r23, r19
+ 1606: b0 0d add r27, r0
+ 1608: a1 1d adc r26, r1
+ 160a: 62 1f adc r22, r18
+ 160c: 83 9f mul r24, r19
+ 160e: a0 0d add r26, r0
+ 1610: 61 1d adc r22, r1
+ 1612: 22 1f adc r18, r18
+ 1614: 74 9f mul r23, r20
+ 1616: 33 27 eor r19, r19
+ 1618: a0 0d add r26, r0
+ 161a: 61 1d adc r22, r1
+ 161c: 23 1f adc r18, r19
+ 161e: 84 9f mul r24, r20
+ 1620: 60 0d add r22, r0
+ 1622: 21 1d adc r18, r1
+ 1624: 82 2f mov r24, r18
+ 1626: 76 2f mov r23, r22
+ 1628: 6a 2f mov r22, r26
+ 162a: 11 24 eor r1, r1
+ 162c: 9f 57 subi r25, 0x7F ; 127
+ 162e: 50 40 sbci r21, 0x00 ; 0
+ 1630: 8a f0 brmi .+34 ; 0x1654 <__mulsf3_pse+0x84>
+ 1632: e1 f0 breq .+56 ; 0x166c <__mulsf3_pse+0x9c>
+ 1634: 88 23 and r24, r24
+ 1636: 4a f0 brmi .+18 ; 0x164a <__mulsf3_pse+0x7a>
+ 1638: ee 0f add r30, r30
+ 163a: ff 1f adc r31, r31
+ 163c: bb 1f adc r27, r27
+ 163e: 66 1f adc r22, r22
+ 1640: 77 1f adc r23, r23
+ 1642: 88 1f adc r24, r24
+ 1644: 91 50 subi r25, 0x01 ; 1
+ 1646: 50 40 sbci r21, 0x00 ; 0
+ 1648: a9 f7 brne .-22 ; 0x1634 <__mulsf3_pse+0x64>
+ 164a: 9e 3f cpi r25, 0xFE ; 254
+ 164c: 51 05 cpc r21, r1
+ 164e: 70 f0 brcs .+28 ; 0x166c <__mulsf3_pse+0x9c>
+ 1650: 40 cf rjmp .-384 ; 0x14d2 <__fp_inf>
+ 1652: 87 cf rjmp .-242 ; 0x1562 <__fp_szero>
+ 1654: 5f 3f cpi r21, 0xFF ; 255
+ 1656: ec f3 brlt .-6 ; 0x1652 <__mulsf3_pse+0x82>
+ 1658: 98 3e cpi r25, 0xE8 ; 232
+ 165a: dc f3 brlt .-10 ; 0x1652 <__mulsf3_pse+0x82>
+ 165c: 86 95 lsr r24
+ 165e: 77 95 ror r23
+ 1660: 67 95 ror r22
+ 1662: b7 95 ror r27
+ 1664: f7 95 ror r31
+ 1666: e7 95 ror r30
+ 1668: 9f 5f subi r25, 0xFF ; 255
+ 166a: c1 f7 brne .-16 ; 0x165c <__mulsf3_pse+0x8c>
+ 166c: fe 2b or r31, r30
+ 166e: 88 0f add r24, r24
+ 1670: 91 1d adc r25, r1
+ 1672: 96 95 lsr r25
+ 1674: 87 95 ror r24
+ 1676: 97 f9 bld r25, 7
+ 1678: 08 95 ret
+
+0000167a <_exit>:
+ 167a: f8 94 cli
+
+0000167c <__stop_program>:
+ 167c: ff cf rjmp .-2 ; 0x167c <__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..76ef832
--- /dev/null
+++ b/electic_streaming328p/bin/Debug/electic_streaming.elf.map
@@ -0,0 +1,912 @@
+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 (Print::println(char const*))
+../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o) (beginSerial)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ obj/Debug/main.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ obj/Debug/main.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ obj/Debug/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o) (__do_global_ctors)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Debug/main.o (__addsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ obj/Debug/main.o (__mulsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ obj/Debug/main.o (__divsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Debug/main.o (__fixsfsi)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Debug/main.o (sin)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_rempio2)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_sinus)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_splitA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__addsf3x)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_mpack_finite)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_nan)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_powsodd)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_round)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o) (__fp_powser)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Debug/main.o
+LOAD ../arduino_libs/core0022_328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x167e
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ .progmem.gcc_fplib
+ 0x00000068 0x1e /usr/lib/gcc/avr/4.3.5/../../../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.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000088 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000088 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000094 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x00000094 __do_copy_data
+ .init4 0x000000aa 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000aa __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000ba 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ 0x000000ba __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000d0 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000d8 0x4 /usr/lib/gcc/avr/4.3.5/../../../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 0x292 obj/Debug/main.o
+ 0x000000dc __vector_11
+ 0x0000019e fill_sinewave()
+ 0x000002b8 main
+ .text 0x0000036e 0x32 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x0000037c HardwareSerial::write(unsigned char)
+ 0x00000384 HardwareSerial::flush()
+ 0x0000038a HardwareSerial::read()
+ 0x00000390 HardwareSerial::available()
+ 0x00000396 HardwareSerial::begin(long)
+ .text 0x000003a0 0x31e ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ 0x000003a0 Print::print(unsigned char)
+ 0x000003b0 Print::print(char)
+ 0x000003c0 Print::print(char const*)
+ 0x000003f0 Print::println()
+ 0x0000041e Print::println(char)
+ 0x0000043e Print::println(char const*)
+ 0x00000454 Print::println(unsigned char)
+ 0x00000474 Print::printNumber(unsigned long, unsigned char)
+ 0x000005a4 Print::print(unsigned long)
+ 0x000005ac Print::println(unsigned long)
+ 0x000005c2 Print::print(unsigned int)
+ 0x000005ce Print::println(unsigned int)
+ 0x000005ea Print::print(long)
+ 0x00000638 Print::println(long)
+ 0x0000064e Print::print(int)
+ 0x0000065e Print::println(int)
+ 0x0000067e Print::print(long, int)
+ 0x000006a8 Print::println(long, int)
+ .text 0x000006be 0x16e ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x000006be beginSerial
+ 0x00000730 serialWrite
+ 0x00000740 serialAvailable
+ 0x00000762 serialRead
+ 0x000007a0 serialFlush
+ 0x000007b2 __vector_18
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000082c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text 0x0000082c 0x354 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ 0x00000ac4 __subsf3
+ 0x00000b26 __addsf3
+ .text 0x00000b80 0x1f4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ 0x00000b80 __mulsf3
+ .text 0x00000d74 0x158 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ 0x00000d74 __divsf3
+ .text 0x00000ecc 0xa8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ 0x00000ecc __fixsfsi
+ .text 0x00000f74 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00000f74 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00000f74 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .text 0x00000f74 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .text 0x00000f74 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .text 0x00000f74 0x1aa /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ 0x00000f74 __pack_f
+ .text 0x0000111e 0xf0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ 0x0000111e __unpack_f
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .text 0x0000120e 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x0000120e . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000120e 0x26 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000120e __divmodhi4
+ 0x0000120e _div
+ .text.libgcc 0x00001234 0x44 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00001234 __udivmodsi4
+ .text.libgcc 0x00001278 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ 0x00001278 __divmodsi4
+ .text.libgcc 0x000012ae 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x000012ae 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x000012ae 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x000012ae 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x000012ae 0x28 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ 0x000012ae __udivmodhi4
+ .text.libgcc 0x000012d6 0x38 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ 0x000012d6 __prologue_saves__
+ .text.libgcc 0x0000130e 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ 0x0000130e __epilogue_restores__
+ .text.libgcc 0x00001344 0xc /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ 0x00001344 __tablejump2__
+ 0x00001348 __tablejump__
+ .text.avr-libc.fplib
+ 0x00001350 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x00001350 sin
+ .text.avr-libc.fplib
+ 0x0000135c 0x50 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x0000135e __fp_rempio2
+ .text.avr-libc.fplib
+ 0x000013ac 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x000013ac __fp_sinus
+ .text.avr-libc.fplib
+ 0x000013ce 0x44 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x000013ce __fp_split3
+ 0x000013de __fp_splitA
+ .text.avr-libc.fplib
+ 0x00001412 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x0000142c __addsf3x
+ .text.avr-libc.fplib
+ 0x000014d2 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x000014d2 __fp_inf
+ .text.avr-libc.fplib
+ 0x000014de 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0x000014de __fp_mpack
+ 0x000014e2 __fp_mpack_finite
+ .text.avr-libc.fplib
+ 0x000014fa 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x000014fa __fp_nan
+ .text.avr-libc.fplib
+ 0x00001500 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x00001500 __fp_powsodd
+ .text.avr-libc.fplib
+ 0x00001522 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x00001522 __fp_pscA
+ .text.avr-libc.fplib
+ 0x00001530 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x00001530 __fp_pscB
+ .text.avr-libc.fplib
+ 0x0000153e 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x0000153e __fp_round
+ .text.avr-libc.fplib
+ 0x00001560 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x00001560 __fp_zero
+ 0x00001562 __fp_szero
+ .text.avr-libc.fplib
+ 0x0000156e 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x0000156e __fp_powser
+ .text.avr-libc.fplib
+ 0x000015b8 0xc2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x000015cc __mulsf3x
+ 0x000015d0 __mulsf3_pse
+ 0x0000167a . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000167a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x0000167a exit
+ 0x0000167a _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000167a 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x0000167e _etext = .
+
+.data 0x00800100 0x22 load address 0x0000167e
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x13 obj/Debug/main.o
+ .data 0x00800113 0x6 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x00800113 vtable for HardwareSerial
+ .data 0x00800119 0x0 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .data 0x00800119 0x0 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x00800119 0x8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ 0x00800119 __thenan_sf
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800122 . = ALIGN (0x2)
+ *fill* 0x00800121 0x1 00
+ 0x00800122 _edata = .
+ 0x00800122 PROVIDE (__data_end, .)
+
+.bss 0x00800122 0x28a
+ 0x00800122 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800122 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800122 0x204 obj/Debug/main.o
+ 0x00800122 dd
+ 0x00800322 loopCount
+ 0x00800324 sample
+ .bss 0x00800326 0x2 ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+ 0x00800326 Serial
+ .bss 0x00800328 0x0 ../arduino_libs/core0022_328p.a(Print.cpp.o)
+ .bss 0x00800328 0x4 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x00800328 rx_buffer_head
+ 0x0080032a rx_buffer_tail
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x0080032c 0x80 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ 0x0080032c rx_buffer
+ 0x008003ac PROVIDE (__bss_end, .)
+ 0x0000167e __data_load_start = LOADADDR (.data)
+ 0x000016a0 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008003ac 0x0
+ 0x008003ac PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008003ac PROVIDE (__noinit_end, .)
+ 0x008003ac _end = .
+ 0x008003ac PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x23d0
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x6fc obj/Debug/main.o
+ 0x708 (size before relaxing)
+ .stab 0x00000db0 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x84 (size before relaxing)
+ .stab 0x00000e28 0x21c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x228 (size before relaxing)
+ .stab 0x00001044 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001140 0x1d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x1e0 (size before relaxing)
+ .stab 0x00001314 0x4bc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x4c8 (size before relaxing)
+ .stab 0x000017d0 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x84 (size before relaxing)
+ .stab 0x00001848 0xe4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0xf0 (size before relaxing)
+ .stab 0x0000192c 0x54 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x60 (size before relaxing)
+ .stab 0x00001980 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001a7c 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001b00 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001b84 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001c80 0x90 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x9c (size before relaxing)
+ .stab 0x00001d10 0x1ec /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x1f8 (size before relaxing)
+ .stab 0x00001efc 0x4d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x4e0 (size before relaxing)
+
+.stabstr 0x00000000 0x1c16
+ *(.stabstr)
+ .stabstr 0x00000000 0x1c16 /usr/lib/gcc/avr/4.3.5/../../../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.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Debug/main.o
+__addsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__ctors_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ obj/Debug/main.o
+__divmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+__divsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ obj/Debug/main.o
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/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.3.5/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.3.5/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.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core0022_328p.a(HardwareSerial.cpp.o)
+__epilogue_restores__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Debug/main.o
+__fp_inf /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_mpack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+__fp_mpack_finite /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_nan /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_powser /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+__fp_powsodd /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_pscA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_pscB /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_rempio2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_round /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_sinus /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_split3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_splitA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_szero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__fp_zero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__mulsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ obj/Debug/main.o
+__mulsf3_pse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__mulsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+__pack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__tablejump2__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core0022_328p.a(Print.cpp.o)
+__unpack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_div_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 obj/Debug/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 ../arduino_libs/core0022_328p.a(wiring_serial.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.3.5/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.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../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.3.5/../../../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.3.5/../../../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/bin/Release/electic_streaming.elf b/electic_streaming328p/bin/Release/electic_streaming.elf
new file mode 100755
index 0000000..be0b7e9
--- /dev/null
+++ b/electic_streaming328p/bin/Release/electic_streaming.elf
Binary files differ
diff --git a/electic_streaming328p/bin/Release/electic_streaming.elf.eep.hex b/electic_streaming328p/bin/Release/electic_streaming.elf.eep.hex
new file mode 100644
index 0000000..1996e8f
--- /dev/null
+++ b/electic_streaming328p/bin/Release/electic_streaming.elf.eep.hex
@@ -0,0 +1 @@
+:00000001FF
diff --git a/electic_streaming328p/bin/Release/electic_streaming.elf.hex b/electic_streaming328p/bin/Release/electic_streaming.elf.hex
new file mode 100644
index 0000000..d3fe242
--- /dev/null
+++ b/electic_streaming328p/bin/Release/electic_streaming.elf.hex
@@ -0,0 +1,328 @@
+:100000000C9444000C946C000C946C000C946C00E8
+:100010000C946C000C946C000C946C000C946C00B0
+:100020000C946C000C946C000C946C000C946E009E
+:100030000C946C000C946C000C946C000C946C0090
+:100040000C946C000C946C000C9460030C946C0089
+:100050000C946C000C946C000C946C000C946C0070
+:100060000C946C000C946C0005A84CCDB2D44EB925
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803F3E0111241FBECFEFD8E02C
+:10009000DEBFCDBF11E0A0E0B1E0E4E3F4E102C0D7
+:1000A00005900D92A232B107D9F713E0A2E2B1E0B8
+:1000B00001C01D92AC3AB107E1F710E0C8E8D0E00A
+:1000C00004C02297FE010E947F08C638D107C9F7F5
+:1000D0000E9402010C94180A0C9400001F920F92C7
+:1000E0000FB60F9211242F933F934F935F936F930B
+:1000F0007F938F939F93AF93BF93CF93DF93EF93B0
+:10010000FF9385B190E2892785B9C0E0D0E0E09106
+:100110002403F0912503EE5DFE4F86E293E06081BB
+:100120000E9445018091240390912503019660E08F
+:1001300072E00E94E20790932503809324032196A6
+:1001400081E0C034D80719F786E293E060E00E94AE
+:100150004501FF91EF91DF91CF91BF91AF919F91B9
+:100160008F917F916F915F914F913F912F910F9060
+:100170000FBE0F901F901895AF92BF92CF92DF9253
+:10018000EF92FF920F931F93CF93DF93C2E2D1E0E0
+:100190000F2EF0E0AF2EF0E0BF2EF0E0CF2EF0E01B
+:1001A000DF2EF02DC601B5010E9483087B018C0172
+:1001B000C601B50128ED3FE049E45CE30E941A0561
+:1001C0005B016C01C801B70120E030E04EEF52E462
+:1001D0000E94470520E030E040E053E40E941A0509
+:1001E0000E944106699383E0C232D807D9F6DF91B5
+:1001F000CF911F910F91FF90EF90DF90CF90BF9024
+:10020000AF9008951F930E94BC0086E293E040E007
+:1002100052EC61E070E00E945201259A80E285B9BB
+:100220008091810088608093810080916F0082605E
+:1002300080936F0086E891E0909389008093880016
+:10024000789410E286E293E00E944F011816190696
+:10025000CCF785B1812785B986E293E00E944C01F5
+:10026000813681F786E293E060E071E00E94A601AA
+:1002700080918100856080938100E4CF87E191E0E7
+:1002800090932703809326030895862F0E941F03CF
+:1002900008950E94570308950E94380308950E940C
+:1002A00027030895CB01BA010E94E6020895DC01FC
+:1002B000ED91FC910190F081E02D09950895DC010C
+:1002C000ED91FC910190F081E02D099508950F9337
+:1002D0001F93CF93DF938C01EB0109C02196D801C6
+:1002E000ED91FC910190F081E02DC80109956881A4
+:1002F0006623A1F7DF91CF911F910F9108950F937E
+:100300001F938C01DC01ED91FC910190F081E02DB7
+:100310006DE00995D801ED91FC910190F081E02DFF
+:100320006AE0C80109951F910F9108950F931F93DB
+:100330008C01DC01ED91FC910190F081E02D09959B
+:10034000C8010E947F011F910F9108950F931F9381
+:100350008C010E946701C8010E947F011F910F91CB
+:1003600008950F931F938C01DC01ED91FC91019096
+:10037000F081E02D0995C8010E947F011F910F9126
+:1003800008952F923F924F925F926F927F928F9239
+:100390009F92AF92BF92CF92DF92EF92FF920F9314
+:1003A0001F93DF93CF93CDB7DEB7A0970FB6F89426
+:1003B000DEBF0FBECDBF1C016A017B014115510597
+:1003C0006105710549F4DC01ED91FC910190F0812A
+:1003D000E02D60E3099554C0882499245401422EED
+:1003E00055246624772401E010E00C0F1D1F080D32
+:1003F000191DC701B601A30192010E94F507F8017A
+:1004000060830894811C911CA11CB11CC701B6011A
+:10041000A30192010E94F507C901DA016C017D0177
+:10042000C114D104E104F104F1F681E0E82EF12CCD
+:10043000EC0EFD1EE80CF91C3E010894611C711CB9
+:10044000D501C4010197A109B1096C01C818D908E7
+:1004500014C0F601EE0DFF1D60816A3010F4605D7E
+:1004600001C0695CD101ED91FC910190F081E02D1A
+:10047000C10109950894E108F1086E147F0449F759
+:10048000A0960FB6F894DEBF0FBECDBFCF91DF911F
+:100490001F910F91FF90EF90DF90CF90BF90AF90A2
+:1004A0009F908F907F906F905F904F903F902F9094
+:1004B00008952AE00E94C10108950F931F938C01B3
+:1004C0000E945902C8010E947F011F910F91089557
+:1004D000AB0160E070E00E94590208950F931F93F2
+:1004E0008C01AB0160E070E00E945902C8010E94DB
+:1004F0007F011F910F910895EF92FF920F931F9329
+:10050000CF93DF93EC017A018B0177FF0FC0E88175
+:10051000F9810190F081E02D6DE20995109500952B
+:10052000F094E094E11CF11C011D111D2AE0B801BA
+:10053000A701CE010E94C101DF91CF911F910F91C0
+:10054000FF90EF9008950F931F938C010E947C02FF
+:10055000C8010E947F011F910F910895AB0166278A
+:1005600057FD6095762F0E947C0208950F931F938C
+:100570008C01AB01662757FD6095762F0E947C02A7
+:10058000C8010E947F011F910F910895DC01211580
+:10059000310541F4ED91FC910190F081E02D642F43
+:1005A000099508952A30310519F40E947C020895B6
+:1005B0000E94C10108950F931F938C010E94C602EF
+:1005C000C8010E947F011F910F910895EF92FF9241
+:1005D0000F931F937B018C0122E030E040E050E05C
+:1005E0000E941708205C3D4B404F5F4FCA01B90184
+:1005F000A80197010E941708C901DA010197A10912
+:10060000B109292F3A2F4B2F552747FD5A950196AF
+:10061000A11DB11D2093C50081508093C400E1EC61
+:10062000F0E0808180618083808188608083808128
+:10063000806880831F910F91FF90EF900895982F0D
+:100640008091C00085FFFCCF9093C60008958091F3
+:1006500028039091290380589F4F20912A033091BD
+:100660002B03821B930B60E870E00E94E207089561
+:1006700040912A0350912B038091280390912903E4
+:100680008417950719F42FEF3FEF0FC0FA01E45DCF
+:10069000FC4F2081CA01019660E870E00E94E207E9
+:1006A00090932B0380932A0330E0C9010895809131
+:1006B0002A0390912B039093290380932803089594
+:1006C0001F920F920FB60F9211242F933F934F93C7
+:1006D0005F936F937F938F939F93AF93BF93EF93AA
+:1006E000FF934091C600E0912803F0912903CF01C8
+:1006F000019660E870E00E94E2079C0180912A0365
+:1007000090912B032817390739F0E45DFC4F4083A3
+:100710003093290320932803FF91EF91BF91AF916C
+:100720009F918F917F916F915F914F913F912F9109
+:100730000F900FBE0F901F901895A0E0B0E0E3EA75
+:10074000F3E00C944608DC012B01FA019C919230F5
+:1007500008F439C1EB018881823008F433C1943048
+:1007600069F4843009F02FC111969C911197898109
+:10077000981709F428C1A9E1B1E025C1843009F432
+:1007800021C18230A9F4923009F01DC19A01AD0156
+:1007900088E0EA010990AE01E90109929E018150C9
+:1007A000C1F7E201898111969C918923818308C157
+:1007B000923009F407C112962D903C901397EB01EB
+:1007C0008A819B811496AD90BD90CD90DC90179757
+:1007D000EC80FD800E811F819101281B390BB9012E
+:1007E00037FF04C066277727621B730B60327105E1
+:1007F0000CF061C0121613066CF537014801062E85
+:1008000004C096948794779467940A94D2F721E071
+:1008100030E040E050E004C0220F331F441F551F5A
+:100820006A95D2F721503040404050402E213F2160
+:1008300040235123211531054105510521F021E0C7
+:1008400030E040E050E079018A01E628F7280829E5
+:1008500019293CC0232BD1F1260E371E3501460144
+:10086000062E04C096948794779467940A94D2F7DE
+:1008700021E030E040E050E004C0220F331F441F6D
+:10088000551F6A95D2F721503040404050402A21F0
+:100890003B214C215D21211531054105510521F0F8
+:1008A00021E030E040E050E059016A01A628B72875
+:1008B000C828D9280BC0821593052CF01C01AA2446
+:1008C000BB24650103C0EE24FF24870111969C918F
+:1008D000D20111968C91981709F445C0992339F0EB
+:1008E000A80197012A193B094C095D0906C0A60118
+:1008F00095012E193F09400B510B57FD08C011827D
+:100900003382228224833583468357831DC081E04E
+:1009100081833382228288279927DC01821B930BF3
+:10092000A40BB50B84839583A683B7830DC0220FD8
+:10093000331F441F551F2483358346835783828189
+:1009400093810197938382832481358146815781E6
+:10095000DA01C9010197A109B1098F5F9F4FAF4F1C
+:10096000BF4328F30BC0918333822282EA0CFB1C25
+:100970000C1D1D1DE482F5820683178383E08083AE
+:10098000248135814681578157FF1AC0C901AA27A2
+:1009900097FDA095BA2F81709070A070B070569599
+:1009A000479537952795822B932BA42BB52B8483C2
+:1009B0009583A683B78382819381019693838283F3
+:1009C000DF0101C0D201CD01CDB7DEB7E2E10C9469
+:1009D0006208A0E2B0E0EFEEF4E00C945208698304
+:1009E0007A838B839C832D833E834F835887E9E0F2
+:1009F000EE2EF12CEC0EFD1ECE010196B7010E94E9
+:100A00006A078E010F5E1F4FCE010596B8010E9446
+:100A10006A078A8991E089278A8BC701B801AE01EC
+:100A2000475E5F4F0E949D030E949506A096E6E0F8
+:100A30000C946E08A0E2B0E0E0E2F5E00C945208FD
+:100A400069837A838B839C832D833E834F8358876E
+:100A5000F9E0EF2EF12CEC0EFD1ECE010196B70150
+:100A60000E946A078E010F5E1F4FCE010596B801E6
+:100A70000E946A07C701B801AE01475E5F4F0E943E
+:100A80009D030E949506A096E6E00C946E08A0E2F5
+:100A9000B0E0EDE4F5E00C94460869837A838B833B
+:100AA0009C832D833E834F835887CE010196BE01E0
+:100AB000675F7F4F0E946A07CE010596BE016F5E99
+:100AC0007F4F0E946A079985923088F08989823029
+:100AD000C8F0943019F4823051F404C0843029F401
+:100AE000923081F489E191E0C6C0923049F420E06F
+:100AF0009A858A89981321E02A87CE010996BBC07E
+:100B0000823049F420E09A858A89981321E02A8B63
+:100B1000CE014196B0C02D843E844F8458886D88A4
+:100B20007E888F88988CEE24FF248701AA24BB241A
+:100B3000650140E050E060E070E0E0E0F0E0C1011D
+:100B400081709070892BE9F0E60CF71C081D191DC7
+:100B50009A01AB012A0D3B1D4C1D5D1D80E090E00C
+:100B6000A0E0B0E0E614F7040805190520F481E0E0
+:100B700090E0A0E0B0E0BA01A901480F591F6A1F38
+:100B80007B1FAA0CBB1CCC1CDD1C97FE08C081E09F
+:100B900090E0A0E0B0E0A82AB92ACA2ADB2A319660
+:100BA000E032F10549F0660C771C881C991C5694BC
+:100BB000479437942794C3CFFA85EA892B893C89D7
+:100BC0008B859C85280F391F2E5F3F4F17C0CA01A8
+:100BD00081709070892B61F016950795F794E794D2
+:100BE00080E090E0A0E0B0E8E82AF92A0A2B1B2B6D
+:100BF00076956795579547952F5F3F4F77FDE7CFE0
+:100C00000CC0440F551F661F771F17FD4160EE0C87
+:100C1000FF1C001F111F21503040403090E0590749
+:100C200090E0690790E4790760F32B8F3C8FDB013C
+:100C3000CA018F779070A070B07080349105A105C3
+:100C4000B10561F447FD0AC0E114F1040105110585
+:100C500029F0405C5F4F6F4F7F4F40781A8EFE1730
+:100C600011F081E08A8F4D8F5E8F6F8F78A383E0C4
+:100C7000898FCE0149960E949506A096E2E10C94D8
+:100C80006208ACE0B0E0E7E4F6E00C945608698353
+:100C90007A838B839C83CE010196BE016B5F7F4F6D
+:100CA0000E946A078D81823061F1823050F1843078
+:100CB00021F48E81882351F12EC02F81388537FD94
+:100CC00020C06E812F3131051CF06623F9F023C05E
+:100CD0008EE190E0821B930B29853A854B855C85DC
+:100CE00004C056954795379527958A95D2F7662380
+:100CF000B1F050954095309521953F4F4F4F5F4F44
+:100D00000EC020E030E040E050E009C02FEF3FEFA0
+:100D10004FEF5FE704C020E030E040E050E8B90169
+:100D2000CA012C96E2E00C947208DF92EF92FF92D7
+:100D30000F931F93FC01E480F58006811781D18019
+:100D40008081823048F480E090E0A0E1B0E0E82AC1
+:100D5000F92A0A2B1B2BA5C0843009F49FC08230CE
+:100D600021F4EE24FF24870105C0E114F1040105FC
+:100D7000110519F4E0E0F0E096C0628173819FEF05
+:100D8000623879070CF05BC022E83FEF261B370B77
+:100D90002A3131052CF020E030E040E050E02AC05C
+:100DA000B801A701022E04C076956795579547951F
+:100DB0000A94D2F781E090E0A0E0B0E004C0880F90
+:100DC000991FAA1FBB1F2A95D2F70197A109B10944
+:100DD0008E219F21A023B1230097A105B10521F009
+:100DE00081E090E0A0E0B0E09A01AB01282B392B24
+:100DF0004A2B5B2BDA01C9018F779070A070B0701D
+:100E000080349105A105B10539F427FF09C0205CA4
+:100E10003F4F4F4F5F4F04C0215C3F4F4F4F5F4FDD
+:100E2000E0E0F0E02030A0E03A07A0E04A07A0E4CC
+:100E30005A0710F0E1E0F0E079018A0127C060383C
+:100E4000710564F5FB01E158FF4FD801C7018F77A9
+:100E50009070A070B07080349105A105B10539F48F
+:100E6000E7FE0DC080E490E0A0E0B0E004C08FE3B6
+:100E700090E0A0E0B0E0E80EF91E0A1F1B1F17FF6C
+:100E800005C016950795F794E794319687E0169577
+:100E90000795F794E7948A95D1F705C0EE24FF24CF
+:100EA0008701EFEFF0E06E2F679566276795902F2B
+:100EB0009F77D794DD24D7948E2F8695492F462B84
+:100EC000582F5D29B701CA011F910F91FF90EF9034
+:100ED000DF900895FC01DB01408151812281622F66
+:100EE0006F7770E0221F2227221F9381892F880F9E
+:100EF000822B282F30E0991F9927991F11969C93D8
+:100F0000119721153105A9F54115510561057105A7
+:100F100011F482E037C082E89FEF13969C938E9382
+:100F200012979A01AB0167E0220F331F441F551F30
+:100F30006A95D1F783E08C930DC0220F331F441FB5
+:100F4000551F12968D919C911397019713969C9320
+:100F50008E931297203080E0380780E0480780E4C5
+:100F6000580758F314962D933D934D935C93179720
+:100F700008952F3F310579F441155105610571053B
+:100F800019F484E08C93089564FF03C081E08C938E
+:100F900012C01C9210C02F57304013963C932E93D2
+:100FA000129783E08C9387E0440F551F661F771FCD
+:100FB0008A95D1F7706414964D935D936D937C93ED
+:100FC0001797089597FB092E07260AD077FD04D0BE
+:100FD00049D006D000201AF4709561957F4F08958E
+:100FE000F6F7909581959F4F0895A1E21A2EAA1BBE
+:100FF000BB1BFD010DC0AA1FBB1FEE1FFF1FA217C9
+:10100000B307E407F50720F0A21BB30BE40BF50BC5
+:10101000661F771F881F991F1A9469F7609570954E
+:10102000809590959B01AC01BD01CF01089597FB80
+:10103000092E05260ED057FD04D0D7DF0AD0001C9C
+:1010400038F450954095309521953F4F4F4F5F4F65
+:101050000895F6F790958095709561957F4F8F4F25
+:101060009F4F0895AA1BBB1B51E107C0AA1FBB1FBE
+:10107000A617B70710F0A61BB70B881F991F5A9524
+:10108000A9F780959095BC01CD0108952F923F92CC
+:101090004F925F926F927F928F929F92AF92BF9288
+:1010A000CF92DF92EF92FF920F931F93CF93DF9334
+:1010B000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE91
+:1010C000CDBF09942A88398848885F846E847D84DE
+:1010D0008C849B84AA84B984C884DF80EE80FD80E0
+:1010E0000C811B81AA81B981CE0FD11D0FB6F89456
+:1010F000DEBF0FBECDBFED010895EE0FFF1F0590BF
+:10110000F491E02D09949F9305D00F9007FCEE5FBA
+:1011100028C0CEC03FD0E8F3E894E0E0BB279F575B
+:10112000F0F02AED3FE049EC06C0EE0FBB0F661F62
+:10113000771F881F28F0B23A62077307840728F0E8
+:10114000B25A620B730B840BE3959A9572F7803851
+:1011500030F49A95BB0F661F771F881FD2F790480F
+:101160009BC0EF93E0FF06C0A2EA2AED3FE049EC06
+:101170005FEB37D0BFD00F90039401FC9058E8E6A6
+:10118000F0E099C057FD9058440F551F59F05F3F4C
+:1011900071F04795880F97FB991F61F09F3F79F099
+:1011A00087950895121613061406551FF2CF46951B
+:1011B000F1DF08C0161617061806991FF1CF86959D
+:1011C000710561050894089587D030F08CD020F027
+:1011D00031F49F3F11F41EF46BC00EF4E095E7FB71
+:1011E00053C0E92FCFDF80F3BA1762077307840774
+:1011F000950718F071F49EF58EC00EF4E0950B2E55
+:10120000BA2FA02D0B01B90190010C01CA01A00158
+:101210001124FF27591B99F0593F50F4503E68F1B3
+:101220001A16F040A22F232F342F4427585FF3CFF4
+:10123000469537952795A795F0405395C9F77EF4C5
+:101240001F16BA0B620B730B840BBAF09150A1F00E
+:10125000FF0FBB1F661F771F881FC2F70EC0BA0F94
+:10126000621F731F841F48F4879577956795B7951C
+:10127000F7959E3F08F0B3CF9395880F08F0992714
+:10128000EE0F97958795089597F99F6780E870E02E
+:1012900060E008959F3F31F0915020F48795779555
+:1012A0006795B795880F911D9695879597F908953D
+:1012B0009FEF80EC08959F938F937F936F93FF939D
+:1012C000EF939B01AC01E3DBEF91FF912BD02F91CA
+:1012D0003F914F915F91DBCB00240A9416161706BD
+:1012E00018060906089500240A9412161306140617
+:1012F00005060895092E0394000C11F4882352F07A
+:10130000BB0F40F4BF2B11F460FF04C06F5F7F4F31
+:101310008F4F9F4F0895E894BB2766277727CB010F
+:1013200097F90895DF93CF931F930F93FF92EF9256
+:10133000DF927B018C01689405C0DA2EEF0121D089
+:10134000FE01E894A5912591359145915591AEF313
+:10135000EF0147DFFE019701A801DA9479F7DF90EA
+:10136000EF90FF900F911F91CF91DF910895B4DF1F
+:1013700028F0B9DF18F0952309F086CF99CF112412
+:10138000CBCF00DFA0F3959FD1F3950F50E0551F11
+:10139000629FF001729FBB27F00DB11D639FAA27CA
+:1013A000F00DB11DAA1F649F6627B00DA11D661F19
+:1013B000829F2227B00DA11D621F739FB00DA11D3A
+:1013C000621F839FA00D611D221F749F3327A00DF4
+:1013D000611D231F849F600D211D822F762F6A2F90
+:1013E00011249F5750408AF0E1F088234AF0EE0F15
+:1013F000FF1FBB1F661F771F881F91505040A9F722
+:101400009E3F510570F040CF87CF5F3FECF3983E91
+:10141000DCF3869577956795B795F795E7959F5F88
+:10142000C1F7FE2B880F911D9695879597F9089522
+:04143000F894FFCF5E
+:1014340057656C636F6D6520746F20656C656374AC
+:101444006963000000000045010000000000000086
+:02145400000096
+:00000001FF
diff --git a/electic_streaming328p/bin/Release/electic_streaming.elf.lss b/electic_streaming328p/bin/Release/electic_streaming.elf.lss
new file mode 100644
index 0000000..06e1adb
--- /dev/null
+++ b/electic_streaming328p/bin/Release/electic_streaming.elf.lss
@@ -0,0 +1,2665 @@
+
+bin/Release/electic_streaming.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000022 00800100 00001434 000014c8 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00001434 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000028a 00800122 00800122 000014ea 2**0
+ ALLOC
+ 3 .stab 00001cd4 00000000 00000000 000014ec 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 0000030d 00000000 00000000 000031c0 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 5 .debug_aranges 00000060 00000000 00000000 000034cd 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 6 .debug_pubnames 000002a7 00000000 00000000 0000352d 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 7 .debug_info 00000d0b 00000000 00000000 000037d4 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 8 .debug_abbrev 000003f7 00000000 00000000 000044df 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 9 .debug_line 00000689 00000000 00000000 000048d6 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame 00000210 00000000 00000000 00004f60 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str 00000420 00000000 00000000 00005170 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc 0000075a 00000000 00000000 00005590 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 6e 00 jmp 0xdc ; 0xdc <__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 60 03 jmp 0x6c0 ; 0x6c0 <__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 <__subsf3>
+ 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: 3e 01 movw r6, 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: e4 e3 ldi r30, 0x34 ; 52
+ 9c: f4 e1 ldi r31, 0x14 ; 20
+ 9e: 02 c0 rjmp .+4 ; 0xa4 <.do_copy_data_start>
+
+000000a0 <.do_copy_data_loop>:
+ a0: 05 90 lpm r0, Z+
+ a2: 0d 92 st X+, r0
+
+000000a4 <.do_copy_data_start>:
+ a4: a2 32 cpi r26, 0x22 ; 34
+ a6: b1 07 cpc r27, r17
+ a8: d9 f7 brne .-10 ; 0xa0 <.do_copy_data_loop>
+
+000000aa <__do_clear_bss>:
+ aa: 13 e0 ldi r17, 0x03 ; 3
+ ac: a2 e2 ldi r26, 0x22 ; 34
+ 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: ac 3a cpi r26, 0xAC ; 172
+ 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_start>
+
+000000c2 <.do_global_ctors_loop>:
+ c2: 22 97 sbiw r28, 0x02 ; 2
+ c4: fe 01 movw r30, r28
+ c6: 0e 94 7f 08 call 0x10fe ; 0x10fe <__tablejump__>
+
+000000ca <.do_global_ctors_start>:
+ ca: c6 38 cpi r28, 0x86 ; 134
+ cc: d1 07 cpc r29, r17
+ ce: c9 f7 brne .-14 ; 0xc2 <.do_global_ctors_loop>
+ d0: 0e 94 02 01 call 0x204 ; 0x204 <main>
+ d4: 0c 94 18 0a jmp 0x1430 ; 0x1430 <_exit>
+
+000000d8 <__bad_interrupt>:
+ d8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000dc <__vector_11>:
+ dc: 1f 92 push r1
+ de: 0f 92 push r0
+ e0: 0f b6 in r0, 0x3f ; 63
+ e2: 0f 92 push r0
+ e4: 11 24 eor r1, r1
+ e6: 2f 93 push r18
+ e8: 3f 93 push r19
+ ea: 4f 93 push r20
+ ec: 5f 93 push r21
+ ee: 6f 93 push r22
+ f0: 7f 93 push r23
+ f2: 8f 93 push r24
+ f4: 9f 93 push r25
+ f6: af 93 push r26
+ f8: bf 93 push r27
+ fa: cf 93 push r28
+ fc: df 93 push r29
+ fe: ef 93 push r30
+ 100: ff 93 push r31
+ 102: 85 b1 in r24, 0x05 ; 5
+ 104: 90 e2 ldi r25, 0x20 ; 32
+ 106: 89 27 eor r24, r25
+ 108: 85 b9 out 0x05, r24 ; 5
+ 10a: c0 e0 ldi r28, 0x00 ; 0
+ 10c: d0 e0 ldi r29, 0x00 ; 0
+ 10e: e0 91 24 03 lds r30, 0x0324
+ 112: f0 91 25 03 lds r31, 0x0325
+ 116: ee 5d subi r30, 0xDE ; 222
+ 118: fe 4f sbci r31, 0xFE ; 254
+ 11a: 86 e2 ldi r24, 0x26 ; 38
+ 11c: 93 e0 ldi r25, 0x03 ; 3
+ 11e: 60 81 ld r22, Z
+ 120: 0e 94 45 01 call 0x28a ; 0x28a <_ZN14HardwareSerial5writeEh>
+ 124: 80 91 24 03 lds r24, 0x0324
+ 128: 90 91 25 03 lds r25, 0x0325
+ 12c: 01 96 adiw r24, 0x01 ; 1
+ 12e: 60 e0 ldi r22, 0x00 ; 0
+ 130: 72 e0 ldi r23, 0x02 ; 2
+ 132: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 136: 90 93 25 03 sts 0x0325, r25
+ 13a: 80 93 24 03 sts 0x0324, r24
+ 13e: 21 96 adiw r28, 0x01 ; 1
+ 140: 81 e0 ldi r24, 0x01 ; 1
+ 142: c0 34 cpi r28, 0x40 ; 64
+ 144: d8 07 cpc r29, r24
+ 146: 19 f7 brne .-58 ; 0x10e <__vector_11+0x32>
+ 148: 86 e2 ldi r24, 0x26 ; 38
+ 14a: 93 e0 ldi r25, 0x03 ; 3
+ 14c: 60 e0 ldi r22, 0x00 ; 0
+ 14e: 0e 94 45 01 call 0x28a ; 0x28a <_ZN14HardwareSerial5writeEh>
+ 152: ff 91 pop r31
+ 154: ef 91 pop r30
+ 156: df 91 pop r29
+ 158: cf 91 pop r28
+ 15a: bf 91 pop r27
+ 15c: af 91 pop r26
+ 15e: 9f 91 pop r25
+ 160: 8f 91 pop r24
+ 162: 7f 91 pop r23
+ 164: 6f 91 pop r22
+ 166: 5f 91 pop r21
+ 168: 4f 91 pop r20
+ 16a: 3f 91 pop r19
+ 16c: 2f 91 pop r18
+ 16e: 0f 90 pop r0
+ 170: 0f be out 0x3f, r0 ; 63
+ 172: 0f 90 pop r0
+ 174: 1f 90 pop r1
+ 176: 18 95 reti
+
+00000178 <_Z13fill_sinewavev>:
+ 178: af 92 push r10
+ 17a: bf 92 push r11
+ 17c: cf 92 push r12
+ 17e: df 92 push r13
+ 180: ef 92 push r14
+ 182: ff 92 push r15
+ 184: 0f 93 push r16
+ 186: 1f 93 push r17
+ 188: cf 93 push r28
+ 18a: df 93 push r29
+ 18c: c2 e2 ldi r28, 0x22 ; 34
+ 18e: d1 e0 ldi r29, 0x01 ; 1
+ 190: 0f 2e mov r0, r31
+ 192: f0 e0 ldi r31, 0x00 ; 0
+ 194: af 2e mov r10, r31
+ 196: f0 e0 ldi r31, 0x00 ; 0
+ 198: bf 2e mov r11, r31
+ 19a: f0 e0 ldi r31, 0x00 ; 0
+ 19c: cf 2e mov r12, r31
+ 19e: f0 e0 ldi r31, 0x00 ; 0
+ 1a0: df 2e mov r13, r31
+ 1a2: f0 2d mov r31, r0
+ 1a4: c6 01 movw r24, r12
+ 1a6: b5 01 movw r22, r10
+ 1a8: 0e 94 83 08 call 0x1106 ; 0x1106 <sin>
+ 1ac: 7b 01 movw r14, r22
+ 1ae: 8c 01 movw r16, r24
+ 1b0: c6 01 movw r24, r12
+ 1b2: b5 01 movw r22, r10
+ 1b4: 28 ed ldi r18, 0xD8 ; 216
+ 1b6: 3f e0 ldi r19, 0x0F ; 15
+ 1b8: 49 e4 ldi r20, 0x49 ; 73
+ 1ba: 5c e3 ldi r21, 0x3C ; 60
+ 1bc: 0e 94 1a 05 call 0xa34 ; 0xa34 <__addsf3>
+ 1c0: 5b 01 movw r10, r22
+ 1c2: 6c 01 movw r12, r24
+ 1c4: c8 01 movw r24, r16
+ 1c6: b7 01 movw r22, r14
+ 1c8: 20 e0 ldi r18, 0x00 ; 0
+ 1ca: 30 e0 ldi r19, 0x00 ; 0
+ 1cc: 4e ef ldi r20, 0xFE ; 254
+ 1ce: 52 e4 ldi r21, 0x42 ; 66
+ 1d0: 0e 94 47 05 call 0xa8e ; 0xa8e <__mulsf3>
+ 1d4: 20 e0 ldi r18, 0x00 ; 0
+ 1d6: 30 e0 ldi r19, 0x00 ; 0
+ 1d8: 40 e0 ldi r20, 0x00 ; 0
+ 1da: 53 e4 ldi r21, 0x43 ; 67
+ 1dc: 0e 94 1a 05 call 0xa34 ; 0xa34 <__addsf3>
+ 1e0: 0e 94 41 06 call 0xc82 ; 0xc82 <__fixsfsi>
+ 1e4: 69 93 st Y+, r22
+ 1e6: 83 e0 ldi r24, 0x03 ; 3
+ 1e8: c2 32 cpi r28, 0x22 ; 34
+ 1ea: d8 07 cpc r29, r24
+ 1ec: d9 f6 brne .-74 ; 0x1a4 <_Z13fill_sinewavev+0x2c>
+ 1ee: df 91 pop r29
+ 1f0: cf 91 pop r28
+ 1f2: 1f 91 pop r17
+ 1f4: 0f 91 pop r16
+ 1f6: ff 90 pop r15
+ 1f8: ef 90 pop r14
+ 1fa: df 90 pop r13
+ 1fc: cf 90 pop r12
+ 1fe: bf 90 pop r11
+ 200: af 90 pop r10
+ 202: 08 95 ret
+
+00000204 <main>:
+ 204: 1f 93 push r17
+ 206: 0e 94 bc 00 call 0x178 ; 0x178 <_Z13fill_sinewavev>
+ 20a: 86 e2 ldi r24, 0x26 ; 38
+ 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 52 01 call 0x2a4 ; 0x2a4 <_ZN14HardwareSerial5beginEl>
+ 21a: 25 9a sbi 0x04, 5 ; 4
+ 21c: 80 e2 ldi r24, 0x20 ; 32
+ 21e: 85 b9 out 0x05, r24 ; 5
+ 220: 80 91 81 00 lds r24, 0x0081
+ 224: 88 60 ori r24, 0x08 ; 8
+ 226: 80 93 81 00 sts 0x0081, r24
+ 22a: 80 91 6f 00 lds r24, 0x006F
+ 22e: 82 60 ori r24, 0x02 ; 2
+ 230: 80 93 6f 00 sts 0x006F, r24
+ 234: 86 e8 ldi r24, 0x86 ; 134
+ 236: 91 e0 ldi r25, 0x01 ; 1
+ 238: 90 93 89 00 sts 0x0089, r25
+ 23c: 80 93 88 00 sts 0x0088, r24
+ 240: 78 94 sei
+ 242: 10 e2 ldi r17, 0x20 ; 32
+ 244: 86 e2 ldi r24, 0x26 ; 38
+ 246: 93 e0 ldi r25, 0x03 ; 3
+ 248: 0e 94 4f 01 call 0x29e ; 0x29e <_ZN14HardwareSerial9availableEv>
+ 24c: 18 16 cp r1, r24
+ 24e: 19 06 cpc r1, r25
+ 250: cc f7 brge .-14 ; 0x244 <main+0x40>
+ 252: 85 b1 in r24, 0x05 ; 5
+ 254: 81 27 eor r24, r17
+ 256: 85 b9 out 0x05, r24 ; 5
+ 258: 86 e2 ldi r24, 0x26 ; 38
+ 25a: 93 e0 ldi r25, 0x03 ; 3
+ 25c: 0e 94 4c 01 call 0x298 ; 0x298 <_ZN14HardwareSerial4readEv>
+ 260: 81 36 cpi r24, 0x61 ; 97
+ 262: 81 f7 brne .-32 ; 0x244 <main+0x40>
+ 264: 86 e2 ldi r24, 0x26 ; 38
+ 266: 93 e0 ldi r25, 0x03 ; 3
+ 268: 60 e0 ldi r22, 0x00 ; 0
+ 26a: 71 e0 ldi r23, 0x01 ; 1
+ 26c: 0e 94 a6 01 call 0x34c ; 0x34c <_ZN5Print7printlnEPKc>
+ 270: 80 91 81 00 lds r24, 0x0081
+ 274: 85 60 ori r24, 0x05 ; 5
+ 276: 80 93 81 00 sts 0x0081, r24
+ 27a: e4 cf rjmp .-56 ; 0x244 <main+0x40>
+
+0000027c <_GLOBAL__I__ZN14HardwareSerial5beginEl>:
+ 27c: 87 e1 ldi r24, 0x17 ; 23
+ 27e: 91 e0 ldi r25, 0x01 ; 1
+ 280: 90 93 27 03 sts 0x0327, r25
+ 284: 80 93 26 03 sts 0x0326, r24
+ 288: 08 95 ret
+
+0000028a <_ZN14HardwareSerial5writeEh>:
+ 28a: 86 2f mov r24, r22
+ 28c: 0e 94 1f 03 call 0x63e ; 0x63e <serialWrite>
+ 290: 08 95 ret
+
+00000292 <_ZN14HardwareSerial5flushEv>:
+ 292: 0e 94 57 03 call 0x6ae ; 0x6ae <serialFlush>
+ 296: 08 95 ret
+
+00000298 <_ZN14HardwareSerial4readEv>:
+ 298: 0e 94 38 03 call 0x670 ; 0x670 <serialRead>
+ 29c: 08 95 ret
+
+0000029e <_ZN14HardwareSerial9availableEv>:
+ 29e: 0e 94 27 03 call 0x64e ; 0x64e <serialAvailable>
+ 2a2: 08 95 ret
+
+000002a4 <_ZN14HardwareSerial5beginEl>:
+ 2a4: cb 01 movw r24, r22
+ 2a6: ba 01 movw r22, r20
+ 2a8: 0e 94 e6 02 call 0x5cc ; 0x5cc <beginSerial>
+ 2ac: 08 95 ret
+
+000002ae <_ZN5Print5printEh>:
+ 2ae: dc 01 movw r26, r24
+ 2b0: ed 91 ld r30, X+
+ 2b2: fc 91 ld r31, X
+ 2b4: 01 90 ld r0, Z+
+ 2b6: f0 81 ld r31, Z
+ 2b8: e0 2d mov r30, r0
+ 2ba: 09 95 icall
+ 2bc: 08 95 ret
+
+000002be <_ZN5Print5printEc>:
+ 2be: dc 01 movw r26, r24
+ 2c0: ed 91 ld r30, X+
+ 2c2: fc 91 ld r31, X
+ 2c4: 01 90 ld r0, Z+
+ 2c6: f0 81 ld r31, Z
+ 2c8: e0 2d mov r30, r0
+ 2ca: 09 95 icall
+ 2cc: 08 95 ret
+
+000002ce <_ZN5Print5printEPKc>:
+ 2ce: 0f 93 push r16
+ 2d0: 1f 93 push r17
+ 2d2: cf 93 push r28
+ 2d4: df 93 push r29
+ 2d6: 8c 01 movw r16, r24
+ 2d8: eb 01 movw r28, r22
+ 2da: 09 c0 rjmp .+18 ; 0x2ee <_ZN5Print5printEPKc+0x20>
+ 2dc: 21 96 adiw r28, 0x01 ; 1
+ 2de: d8 01 movw r26, r16
+ 2e0: ed 91 ld r30, X+
+ 2e2: fc 91 ld r31, X
+ 2e4: 01 90 ld r0, Z+
+ 2e6: f0 81 ld r31, Z
+ 2e8: e0 2d mov r30, r0
+ 2ea: c8 01 movw r24, r16
+ 2ec: 09 95 icall
+ 2ee: 68 81 ld r22, Y
+ 2f0: 66 23 and r22, r22
+ 2f2: a1 f7 brne .-24 ; 0x2dc <_ZN5Print5printEPKc+0xe>
+ 2f4: df 91 pop r29
+ 2f6: cf 91 pop r28
+ 2f8: 1f 91 pop r17
+ 2fa: 0f 91 pop r16
+ 2fc: 08 95 ret
+
+000002fe <_ZN5Print7printlnEv>:
+ 2fe: 0f 93 push r16
+ 300: 1f 93 push r17
+ 302: 8c 01 movw r16, r24
+ 304: dc 01 movw r26, r24
+ 306: ed 91 ld r30, X+
+ 308: fc 91 ld r31, X
+ 30a: 01 90 ld r0, Z+
+ 30c: f0 81 ld r31, Z
+ 30e: e0 2d mov r30, r0
+ 310: 6d e0 ldi r22, 0x0D ; 13
+ 312: 09 95 icall
+ 314: d8 01 movw r26, r16
+ 316: ed 91 ld r30, X+
+ 318: fc 91 ld r31, X
+ 31a: 01 90 ld r0, Z+
+ 31c: f0 81 ld r31, Z
+ 31e: e0 2d mov r30, r0
+ 320: 6a e0 ldi r22, 0x0A ; 10
+ 322: c8 01 movw r24, r16
+ 324: 09 95 icall
+ 326: 1f 91 pop r17
+ 328: 0f 91 pop r16
+ 32a: 08 95 ret
+
+0000032c <_ZN5Print7printlnEc>:
+ 32c: 0f 93 push r16
+ 32e: 1f 93 push r17
+ 330: 8c 01 movw r16, r24
+ 332: dc 01 movw r26, r24
+ 334: ed 91 ld r30, X+
+ 336: fc 91 ld r31, X
+ 338: 01 90 ld r0, Z+
+ 33a: f0 81 ld r31, Z
+ 33c: e0 2d mov r30, r0
+ 33e: 09 95 icall
+ 340: c8 01 movw r24, r16
+ 342: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 346: 1f 91 pop r17
+ 348: 0f 91 pop r16
+ 34a: 08 95 ret
+
+0000034c <_ZN5Print7printlnEPKc>:
+ 34c: 0f 93 push r16
+ 34e: 1f 93 push r17
+ 350: 8c 01 movw r16, r24
+ 352: 0e 94 67 01 call 0x2ce ; 0x2ce <_ZN5Print5printEPKc>
+ 356: c8 01 movw r24, r16
+ 358: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 35c: 1f 91 pop r17
+ 35e: 0f 91 pop r16
+ 360: 08 95 ret
+
+00000362 <_ZN5Print7printlnEh>:
+ 362: 0f 93 push r16
+ 364: 1f 93 push r17
+ 366: 8c 01 movw r16, r24
+ 368: dc 01 movw r26, r24
+ 36a: ed 91 ld r30, X+
+ 36c: fc 91 ld r31, X
+ 36e: 01 90 ld r0, Z+
+ 370: f0 81 ld r31, Z
+ 372: e0 2d mov r30, r0
+ 374: 09 95 icall
+ 376: c8 01 movw r24, r16
+ 378: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 37c: 1f 91 pop r17
+ 37e: 0f 91 pop r16
+ 380: 08 95 ret
+
+00000382 <_ZN5Print11printNumberEmh>:
+ 382: 2f 92 push r2
+ 384: 3f 92 push r3
+ 386: 4f 92 push r4
+ 388: 5f 92 push r5
+ 38a: 6f 92 push r6
+ 38c: 7f 92 push r7
+ 38e: 8f 92 push r8
+ 390: 9f 92 push r9
+ 392: af 92 push r10
+ 394: bf 92 push r11
+ 396: cf 92 push r12
+ 398: df 92 push r13
+ 39a: ef 92 push r14
+ 39c: ff 92 push r15
+ 39e: 0f 93 push r16
+ 3a0: 1f 93 push r17
+ 3a2: df 93 push r29
+ 3a4: cf 93 push r28
+ 3a6: cd b7 in r28, 0x3d ; 61
+ 3a8: de b7 in r29, 0x3e ; 62
+ 3aa: a0 97 sbiw r28, 0x20 ; 32
+ 3ac: 0f b6 in r0, 0x3f ; 63
+ 3ae: f8 94 cli
+ 3b0: de bf out 0x3e, r29 ; 62
+ 3b2: 0f be out 0x3f, r0 ; 63
+ 3b4: cd bf out 0x3d, r28 ; 61
+ 3b6: 1c 01 movw r2, r24
+ 3b8: 6a 01 movw r12, r20
+ 3ba: 7b 01 movw r14, r22
+ 3bc: 41 15 cp r20, r1
+ 3be: 51 05 cpc r21, r1
+ 3c0: 61 05 cpc r22, r1
+ 3c2: 71 05 cpc r23, r1
+ 3c4: 49 f4 brne .+18 ; 0x3d8 <_ZN5Print11printNumberEmh+0x56>
+ 3c6: dc 01 movw r26, r24
+ 3c8: ed 91 ld r30, X+
+ 3ca: fc 91 ld r31, X
+ 3cc: 01 90 ld r0, Z+
+ 3ce: f0 81 ld r31, Z
+ 3d0: e0 2d mov r30, r0
+ 3d2: 60 e3 ldi r22, 0x30 ; 48
+ 3d4: 09 95 icall
+ 3d6: 54 c0 rjmp .+168 ; 0x480 <_ZN5Print11printNumberEmh+0xfe>
+ 3d8: 88 24 eor r8, r8
+ 3da: 99 24 eor r9, r9
+ 3dc: 54 01 movw r10, r8
+ 3de: 42 2e mov r4, r18
+ 3e0: 55 24 eor r5, r5
+ 3e2: 66 24 eor r6, r6
+ 3e4: 77 24 eor r7, r7
+ 3e6: 01 e0 ldi r16, 0x01 ; 1
+ 3e8: 10 e0 ldi r17, 0x00 ; 0
+ 3ea: 0c 0f add r16, r28
+ 3ec: 1d 1f adc r17, r29
+ 3ee: 08 0d add r16, r8
+ 3f0: 19 1d adc r17, r9
+ 3f2: c7 01 movw r24, r14
+ 3f4: b6 01 movw r22, r12
+ 3f6: a3 01 movw r20, r6
+ 3f8: 92 01 movw r18, r4
+ 3fa: 0e 94 f5 07 call 0xfea ; 0xfea <__udivmodsi4>
+ 3fe: f8 01 movw r30, r16
+ 400: 60 83 st Z, r22
+ 402: 08 94 sec
+ 404: 81 1c adc r8, r1
+ 406: 91 1c adc r9, r1
+ 408: a1 1c adc r10, r1
+ 40a: b1 1c adc r11, r1
+ 40c: c7 01 movw r24, r14
+ 40e: b6 01 movw r22, r12
+ 410: a3 01 movw r20, r6
+ 412: 92 01 movw r18, r4
+ 414: 0e 94 f5 07 call 0xfea ; 0xfea <__udivmodsi4>
+ 418: c9 01 movw r24, r18
+ 41a: da 01 movw r26, r20
+ 41c: 6c 01 movw r12, r24
+ 41e: 7d 01 movw r14, r26
+ 420: c1 14 cp r12, r1
+ 422: d1 04 cpc r13, r1
+ 424: e1 04 cpc r14, r1
+ 426: f1 04 cpc r15, r1
+ 428: f1 f6 brne .-68 ; 0x3e6 <_ZN5Print11printNumberEmh+0x64>
+ 42a: 81 e0 ldi r24, 0x01 ; 1
+ 42c: e8 2e mov r14, r24
+ 42e: f1 2c mov r15, r1
+ 430: ec 0e add r14, r28
+ 432: fd 1e adc r15, r29
+ 434: e8 0c add r14, r8
+ 436: f9 1c adc r15, r9
+ 438: 3e 01 movw r6, r28
+ 43a: 08 94 sec
+ 43c: 61 1c adc r6, r1
+ 43e: 71 1c adc r7, r1
+ 440: d5 01 movw r26, r10
+ 442: c4 01 movw r24, r8
+ 444: 01 97 sbiw r24, 0x01 ; 1
+ 446: a1 09 sbc r26, r1
+ 448: b1 09 sbc r27, r1
+ 44a: 6c 01 movw r12, r24
+ 44c: c8 18 sub r12, r8
+ 44e: d9 08 sbc r13, r9
+ 450: 14 c0 rjmp .+40 ; 0x47a <_ZN5Print11printNumberEmh+0xf8>
+ 452: f6 01 movw r30, r12
+ 454: ee 0d add r30, r14
+ 456: ff 1d adc r31, r15
+ 458: 60 81 ld r22, Z
+ 45a: 6a 30 cpi r22, 0x0A ; 10
+ 45c: 10 f4 brcc .+4 ; 0x462 <_ZN5Print11printNumberEmh+0xe0>
+ 45e: 60 5d subi r22, 0xD0 ; 208
+ 460: 01 c0 rjmp .+2 ; 0x464 <_ZN5Print11printNumberEmh+0xe2>
+ 462: 69 5c subi r22, 0xC9 ; 201
+ 464: d1 01 movw r26, r2
+ 466: ed 91 ld r30, X+
+ 468: fc 91 ld r31, X
+ 46a: 01 90 ld r0, Z+
+ 46c: f0 81 ld r31, Z
+ 46e: e0 2d mov r30, r0
+ 470: c1 01 movw r24, r2
+ 472: 09 95 icall
+ 474: 08 94 sec
+ 476: e1 08 sbc r14, r1
+ 478: f1 08 sbc r15, r1
+ 47a: 6e 14 cp r6, r14
+ 47c: 7f 04 cpc r7, r15
+ 47e: 49 f7 brne .-46 ; 0x452 <_ZN5Print11printNumberEmh+0xd0>
+ 480: a0 96 adiw r28, 0x20 ; 32
+ 482: 0f b6 in r0, 0x3f ; 63
+ 484: f8 94 cli
+ 486: de bf out 0x3e, r29 ; 62
+ 488: 0f be out 0x3f, r0 ; 63
+ 48a: cd bf out 0x3d, r28 ; 61
+ 48c: cf 91 pop r28
+ 48e: df 91 pop r29
+ 490: 1f 91 pop r17
+ 492: 0f 91 pop r16
+ 494: ff 90 pop r15
+ 496: ef 90 pop r14
+ 498: df 90 pop r13
+ 49a: cf 90 pop r12
+ 49c: bf 90 pop r11
+ 49e: af 90 pop r10
+ 4a0: 9f 90 pop r9
+ 4a2: 8f 90 pop r8
+ 4a4: 7f 90 pop r7
+ 4a6: 6f 90 pop r6
+ 4a8: 5f 90 pop r5
+ 4aa: 4f 90 pop r4
+ 4ac: 3f 90 pop r3
+ 4ae: 2f 90 pop r2
+ 4b0: 08 95 ret
+
+000004b2 <_ZN5Print5printEm>:
+ 4b2: 2a e0 ldi r18, 0x0A ; 10
+ 4b4: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 4b8: 08 95 ret
+
+000004ba <_ZN5Print7printlnEm>:
+ 4ba: 0f 93 push r16
+ 4bc: 1f 93 push r17
+ 4be: 8c 01 movw r16, r24
+ 4c0: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4c4: c8 01 movw r24, r16
+ 4c6: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 4ca: 1f 91 pop r17
+ 4cc: 0f 91 pop r16
+ 4ce: 08 95 ret
+
+000004d0 <_ZN5Print5printEj>:
+ 4d0: ab 01 movw r20, r22
+ 4d2: 60 e0 ldi r22, 0x00 ; 0
+ 4d4: 70 e0 ldi r23, 0x00 ; 0
+ 4d6: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4da: 08 95 ret
+
+000004dc <_ZN5Print7printlnEj>:
+ 4dc: 0f 93 push r16
+ 4de: 1f 93 push r17
+ 4e0: 8c 01 movw r16, r24
+ 4e2: ab 01 movw r20, r22
+ 4e4: 60 e0 ldi r22, 0x00 ; 0
+ 4e6: 70 e0 ldi r23, 0x00 ; 0
+ 4e8: 0e 94 59 02 call 0x4b2 ; 0x4b2 <_ZN5Print5printEm>
+ 4ec: c8 01 movw r24, r16
+ 4ee: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 4f2: 1f 91 pop r17
+ 4f4: 0f 91 pop r16
+ 4f6: 08 95 ret
+
+000004f8 <_ZN5Print5printEl>:
+ 4f8: ef 92 push r14
+ 4fa: ff 92 push r15
+ 4fc: 0f 93 push r16
+ 4fe: 1f 93 push r17
+ 500: cf 93 push r28
+ 502: df 93 push r29
+ 504: ec 01 movw r28, r24
+ 506: 7a 01 movw r14, r20
+ 508: 8b 01 movw r16, r22
+ 50a: 77 ff sbrs r23, 7
+ 50c: 0f c0 rjmp .+30 ; 0x52c <_ZN5Print5printEl+0x34>
+ 50e: e8 81 ld r30, Y
+ 510: f9 81 ldd r31, Y+1 ; 0x01
+ 512: 01 90 ld r0, Z+
+ 514: f0 81 ld r31, Z
+ 516: e0 2d mov r30, r0
+ 518: 6d e2 ldi r22, 0x2D ; 45
+ 51a: 09 95 icall
+ 51c: 10 95 com r17
+ 51e: 00 95 com r16
+ 520: f0 94 com r15
+ 522: e0 94 com r14
+ 524: e1 1c adc r14, r1
+ 526: f1 1c adc r15, r1
+ 528: 01 1d adc r16, r1
+ 52a: 11 1d adc r17, r1
+ 52c: 2a e0 ldi r18, 0x0A ; 10
+ 52e: b8 01 movw r22, r16
+ 530: a7 01 movw r20, r14
+ 532: ce 01 movw r24, r28
+ 534: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 538: df 91 pop r29
+ 53a: cf 91 pop r28
+ 53c: 1f 91 pop r17
+ 53e: 0f 91 pop r16
+ 540: ff 90 pop r15
+ 542: ef 90 pop r14
+ 544: 08 95 ret
+
+00000546 <_ZN5Print7printlnEl>:
+ 546: 0f 93 push r16
+ 548: 1f 93 push r17
+ 54a: 8c 01 movw r16, r24
+ 54c: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 550: c8 01 movw r24, r16
+ 552: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 556: 1f 91 pop r17
+ 558: 0f 91 pop r16
+ 55a: 08 95 ret
+
+0000055c <_ZN5Print5printEi>:
+ 55c: ab 01 movw r20, r22
+ 55e: 66 27 eor r22, r22
+ 560: 57 fd sbrc r21, 7
+ 562: 60 95 com r22
+ 564: 76 2f mov r23, r22
+ 566: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 56a: 08 95 ret
+
+0000056c <_ZN5Print7printlnEi>:
+ 56c: 0f 93 push r16
+ 56e: 1f 93 push r17
+ 570: 8c 01 movw r16, r24
+ 572: ab 01 movw r20, r22
+ 574: 66 27 eor r22, r22
+ 576: 57 fd sbrc r21, 7
+ 578: 60 95 com r22
+ 57a: 76 2f mov r23, r22
+ 57c: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 580: c8 01 movw r24, r16
+ 582: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 586: 1f 91 pop r17
+ 588: 0f 91 pop r16
+ 58a: 08 95 ret
+
+0000058c <_ZN5Print5printEli>:
+ 58c: dc 01 movw r26, r24
+ 58e: 21 15 cp r18, r1
+ 590: 31 05 cpc r19, r1
+ 592: 41 f4 brne .+16 ; 0x5a4 <_ZN5Print5printEli+0x18>
+ 594: ed 91 ld r30, X+
+ 596: fc 91 ld r31, X
+ 598: 01 90 ld r0, Z+
+ 59a: f0 81 ld r31, Z
+ 59c: e0 2d mov r30, r0
+ 59e: 64 2f mov r22, r20
+ 5a0: 09 95 icall
+ 5a2: 08 95 ret
+ 5a4: 2a 30 cpi r18, 0x0A ; 10
+ 5a6: 31 05 cpc r19, r1
+ 5a8: 19 f4 brne .+6 ; 0x5b0 <_ZN5Print5printEli+0x24>
+ 5aa: 0e 94 7c 02 call 0x4f8 ; 0x4f8 <_ZN5Print5printEl>
+ 5ae: 08 95 ret
+ 5b0: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN5Print11printNumberEmh>
+ 5b4: 08 95 ret
+
+000005b6 <_ZN5Print7printlnEli>:
+ 5b6: 0f 93 push r16
+ 5b8: 1f 93 push r17
+ 5ba: 8c 01 movw r16, r24
+ 5bc: 0e 94 c6 02 call 0x58c ; 0x58c <_ZN5Print5printEli>
+ 5c0: c8 01 movw r24, r16
+ 5c2: 0e 94 7f 01 call 0x2fe ; 0x2fe <_ZN5Print7printlnEv>
+ 5c6: 1f 91 pop r17
+ 5c8: 0f 91 pop r16
+ 5ca: 08 95 ret
+
+000005cc <beginSerial>:
+ 5cc: ef 92 push r14
+ 5ce: ff 92 push r15
+ 5d0: 0f 93 push r16
+ 5d2: 1f 93 push r17
+ 5d4: 7b 01 movw r14, r22
+ 5d6: 8c 01 movw r16, r24
+ 5d8: 22 e0 ldi r18, 0x02 ; 2
+ 5da: 30 e0 ldi r19, 0x00 ; 0
+ 5dc: 40 e0 ldi r20, 0x00 ; 0
+ 5de: 50 e0 ldi r21, 0x00 ; 0
+ 5e0: 0e 94 17 08 call 0x102e ; 0x102e <__divmodsi4>
+ 5e4: 20 5c subi r18, 0xC0 ; 192
+ 5e6: 3d 4b sbci r19, 0xBD ; 189
+ 5e8: 40 4f sbci r20, 0xF0 ; 240
+ 5ea: 5f 4f sbci r21, 0xFF ; 255
+ 5ec: ca 01 movw r24, r20
+ 5ee: b9 01 movw r22, r18
+ 5f0: a8 01 movw r20, r16
+ 5f2: 97 01 movw r18, r14
+ 5f4: 0e 94 17 08 call 0x102e ; 0x102e <__divmodsi4>
+ 5f8: c9 01 movw r24, r18
+ 5fa: da 01 movw r26, r20
+ 5fc: 01 97 sbiw r24, 0x01 ; 1
+ 5fe: a1 09 sbc r26, r1
+ 600: b1 09 sbc r27, r1
+ 602: 29 2f mov r18, r25
+ 604: 3a 2f mov r19, r26
+ 606: 4b 2f mov r20, r27
+ 608: 55 27 eor r21, r21
+ 60a: 47 fd sbrc r20, 7
+ 60c: 5a 95 dec r21
+ 60e: 01 96 adiw r24, 0x01 ; 1
+ 610: a1 1d adc r26, r1
+ 612: b1 1d adc r27, r1
+ 614: 20 93 c5 00 sts 0x00C5, r18
+ 618: 81 50 subi r24, 0x01 ; 1
+ 61a: 80 93 c4 00 sts 0x00C4, r24
+ 61e: e1 ec ldi r30, 0xC1 ; 193
+ 620: f0 e0 ldi r31, 0x00 ; 0
+ 622: 80 81 ld r24, Z
+ 624: 80 61 ori r24, 0x10 ; 16
+ 626: 80 83 st Z, r24
+ 628: 80 81 ld r24, Z
+ 62a: 88 60 ori r24, 0x08 ; 8
+ 62c: 80 83 st Z, r24
+ 62e: 80 81 ld r24, Z
+ 630: 80 68 ori r24, 0x80 ; 128
+ 632: 80 83 st Z, r24
+ 634: 1f 91 pop r17
+ 636: 0f 91 pop r16
+ 638: ff 90 pop r15
+ 63a: ef 90 pop r14
+ 63c: 08 95 ret
+
+0000063e <serialWrite>:
+ 63e: 98 2f mov r25, r24
+ 640: 80 91 c0 00 lds r24, 0x00C0
+ 644: 85 ff sbrs r24, 5
+ 646: fc cf rjmp .-8 ; 0x640 <serialWrite+0x2>
+ 648: 90 93 c6 00 sts 0x00C6, r25
+ 64c: 08 95 ret
+
+0000064e <serialAvailable>:
+ 64e: 80 91 28 03 lds r24, 0x0328
+ 652: 90 91 29 03 lds r25, 0x0329
+ 656: 80 58 subi r24, 0x80 ; 128
+ 658: 9f 4f sbci r25, 0xFF ; 255
+ 65a: 20 91 2a 03 lds r18, 0x032A
+ 65e: 30 91 2b 03 lds r19, 0x032B
+ 662: 82 1b sub r24, r18
+ 664: 93 0b sbc r25, r19
+ 666: 60 e8 ldi r22, 0x80 ; 128
+ 668: 70 e0 ldi r23, 0x00 ; 0
+ 66a: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 66e: 08 95 ret
+
+00000670 <serialRead>:
+ 670: 40 91 2a 03 lds r20, 0x032A
+ 674: 50 91 2b 03 lds r21, 0x032B
+ 678: 80 91 28 03 lds r24, 0x0328
+ 67c: 90 91 29 03 lds r25, 0x0329
+ 680: 84 17 cp r24, r20
+ 682: 95 07 cpc r25, r21
+ 684: 19 f4 brne .+6 ; 0x68c <serialRead+0x1c>
+ 686: 2f ef ldi r18, 0xFF ; 255
+ 688: 3f ef ldi r19, 0xFF ; 255
+ 68a: 0f c0 rjmp .+30 ; 0x6aa <serialRead+0x3a>
+ 68c: fa 01 movw r30, r20
+ 68e: e4 5d subi r30, 0xD4 ; 212
+ 690: fc 4f sbci r31, 0xFC ; 252
+ 692: 20 81 ld r18, Z
+ 694: ca 01 movw r24, r20
+ 696: 01 96 adiw r24, 0x01 ; 1
+ 698: 60 e8 ldi r22, 0x80 ; 128
+ 69a: 70 e0 ldi r23, 0x00 ; 0
+ 69c: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 6a0: 90 93 2b 03 sts 0x032B, r25
+ 6a4: 80 93 2a 03 sts 0x032A, r24
+ 6a8: 30 e0 ldi r19, 0x00 ; 0
+ 6aa: c9 01 movw r24, r18
+ 6ac: 08 95 ret
+
+000006ae <serialFlush>:
+ 6ae: 80 91 2a 03 lds r24, 0x032A
+ 6b2: 90 91 2b 03 lds r25, 0x032B
+ 6b6: 90 93 29 03 sts 0x0329, r25
+ 6ba: 80 93 28 03 sts 0x0328, r24
+ 6be: 08 95 ret
+
+000006c0 <__vector_18>:
+ 6c0: 1f 92 push r1
+ 6c2: 0f 92 push r0
+ 6c4: 0f b6 in r0, 0x3f ; 63
+ 6c6: 0f 92 push r0
+ 6c8: 11 24 eor r1, r1
+ 6ca: 2f 93 push r18
+ 6cc: 3f 93 push r19
+ 6ce: 4f 93 push r20
+ 6d0: 5f 93 push r21
+ 6d2: 6f 93 push r22
+ 6d4: 7f 93 push r23
+ 6d6: 8f 93 push r24
+ 6d8: 9f 93 push r25
+ 6da: af 93 push r26
+ 6dc: bf 93 push r27
+ 6de: ef 93 push r30
+ 6e0: ff 93 push r31
+ 6e2: 40 91 c6 00 lds r20, 0x00C6
+ 6e6: e0 91 28 03 lds r30, 0x0328
+ 6ea: f0 91 29 03 lds r31, 0x0329
+ 6ee: cf 01 movw r24, r30
+ 6f0: 01 96 adiw r24, 0x01 ; 1
+ 6f2: 60 e8 ldi r22, 0x80 ; 128
+ 6f4: 70 e0 ldi r23, 0x00 ; 0
+ 6f6: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__divmodhi4>
+ 6fa: 9c 01 movw r18, r24
+ 6fc: 80 91 2a 03 lds r24, 0x032A
+ 700: 90 91 2b 03 lds r25, 0x032B
+ 704: 28 17 cp r18, r24
+ 706: 39 07 cpc r19, r25
+ 708: 39 f0 breq .+14 ; 0x718 <__vector_18+0x58>
+ 70a: e4 5d subi r30, 0xD4 ; 212
+ 70c: fc 4f sbci r31, 0xFC ; 252
+ 70e: 40 83 st Z, r20
+ 710: 30 93 29 03 sts 0x0329, r19
+ 714: 20 93 28 03 sts 0x0328, r18
+ 718: ff 91 pop r31
+ 71a: ef 91 pop r30
+ 71c: bf 91 pop r27
+ 71e: af 91 pop r26
+ 720: 9f 91 pop r25
+ 722: 8f 91 pop r24
+ 724: 7f 91 pop r23
+ 726: 6f 91 pop r22
+ 728: 5f 91 pop r21
+ 72a: 4f 91 pop r20
+ 72c: 3f 91 pop r19
+ 72e: 2f 91 pop r18
+ 730: 0f 90 pop r0
+ 732: 0f be out 0x3f, r0 ; 63
+ 734: 0f 90 pop r0
+ 736: 1f 90 pop r1
+ 738: 18 95 reti
+
+0000073a <_fpadd_parts>:
+ 73a: a0 e0 ldi r26, 0x00 ; 0
+ 73c: b0 e0 ldi r27, 0x00 ; 0
+ 73e: e3 ea ldi r30, 0xA3 ; 163
+ 740: f3 e0 ldi r31, 0x03 ; 3
+ 742: 0c 94 46 08 jmp 0x108c ; 0x108c <__prologue_saves__>
+ 746: dc 01 movw r26, r24
+ 748: 2b 01 movw r4, r22
+ 74a: fa 01 movw r30, r20
+ 74c: 9c 91 ld r25, X
+ 74e: 92 30 cpi r25, 0x02 ; 2
+ 750: 08 f4 brcc .+2 ; 0x754 <_fpadd_parts+0x1a>
+ 752: 39 c1 rjmp .+626 ; 0x9c6 <__stack+0xc7>
+ 754: eb 01 movw r28, r22
+ 756: 88 81 ld r24, Y
+ 758: 82 30 cpi r24, 0x02 ; 2
+ 75a: 08 f4 brcc .+2 ; 0x75e <_fpadd_parts+0x24>
+ 75c: 33 c1 rjmp .+614 ; 0x9c4 <__stack+0xc5>
+ 75e: 94 30 cpi r25, 0x04 ; 4
+ 760: 69 f4 brne .+26 ; 0x77c <_fpadd_parts+0x42>
+ 762: 84 30 cpi r24, 0x04 ; 4
+ 764: 09 f0 breq .+2 ; 0x768 <_fpadd_parts+0x2e>
+ 766: 2f c1 rjmp .+606 ; 0x9c6 <__stack+0xc7>
+ 768: 11 96 adiw r26, 0x01 ; 1
+ 76a: 9c 91 ld r25, X
+ 76c: 11 97 sbiw r26, 0x01 ; 1
+ 76e: 89 81 ldd r24, Y+1 ; 0x01
+ 770: 98 17 cp r25, r24
+ 772: 09 f4 brne .+2 ; 0x776 <_fpadd_parts+0x3c>
+ 774: 28 c1 rjmp .+592 ; 0x9c6 <__stack+0xc7>
+ 776: a9 e1 ldi r26, 0x19 ; 25
+ 778: b1 e0 ldi r27, 0x01 ; 1
+ 77a: 25 c1 rjmp .+586 ; 0x9c6 <__stack+0xc7>
+ 77c: 84 30 cpi r24, 0x04 ; 4
+ 77e: 09 f4 brne .+2 ; 0x782 <_fpadd_parts+0x48>
+ 780: 21 c1 rjmp .+578 ; 0x9c4 <__stack+0xc5>
+ 782: 82 30 cpi r24, 0x02 ; 2
+ 784: a9 f4 brne .+42 ; 0x7b0 <_fpadd_parts+0x76>
+ 786: 92 30 cpi r25, 0x02 ; 2
+ 788: 09 f0 breq .+2 ; 0x78c <_fpadd_parts+0x52>
+ 78a: 1d c1 rjmp .+570 ; 0x9c6 <__stack+0xc7>
+ 78c: 9a 01 movw r18, r20
+ 78e: ad 01 movw r20, r26
+ 790: 88 e0 ldi r24, 0x08 ; 8
+ 792: ea 01 movw r28, r20
+ 794: 09 90 ld r0, Y+
+ 796: ae 01 movw r20, r28
+ 798: e9 01 movw r28, r18
+ 79a: 09 92 st Y+, r0
+ 79c: 9e 01 movw r18, r28
+ 79e: 81 50 subi r24, 0x01 ; 1
+ 7a0: c1 f7 brne .-16 ; 0x792 <_fpadd_parts+0x58>
+ 7a2: e2 01 movw r28, r4
+ 7a4: 89 81 ldd r24, Y+1 ; 0x01
+ 7a6: 11 96 adiw r26, 0x01 ; 1
+ 7a8: 9c 91 ld r25, X
+ 7aa: 89 23 and r24, r25
+ 7ac: 81 83 std Z+1, r24 ; 0x01
+ 7ae: 08 c1 rjmp .+528 ; 0x9c0 <__stack+0xc1>
+ 7b0: 92 30 cpi r25, 0x02 ; 2
+ 7b2: 09 f4 brne .+2 ; 0x7b6 <_fpadd_parts+0x7c>
+ 7b4: 07 c1 rjmp .+526 ; 0x9c4 <__stack+0xc5>
+ 7b6: 12 96 adiw r26, 0x02 ; 2
+ 7b8: 2d 90 ld r2, X+
+ 7ba: 3c 90 ld r3, X
+ 7bc: 13 97 sbiw r26, 0x03 ; 3
+ 7be: eb 01 movw r28, r22
+ 7c0: 8a 81 ldd r24, Y+2 ; 0x02
+ 7c2: 9b 81 ldd r25, Y+3 ; 0x03
+ 7c4: 14 96 adiw r26, 0x04 ; 4
+ 7c6: ad 90 ld r10, X+
+ 7c8: bd 90 ld r11, X+
+ 7ca: cd 90 ld r12, X+
+ 7cc: dc 90 ld r13, X
+ 7ce: 17 97 sbiw r26, 0x07 ; 7
+ 7d0: ec 80 ldd r14, Y+4 ; 0x04
+ 7d2: fd 80 ldd r15, Y+5 ; 0x05
+ 7d4: 0e 81 ldd r16, Y+6 ; 0x06
+ 7d6: 1f 81 ldd r17, Y+7 ; 0x07
+ 7d8: 91 01 movw r18, r2
+ 7da: 28 1b sub r18, r24
+ 7dc: 39 0b sbc r19, r25
+ 7de: b9 01 movw r22, r18
+ 7e0: 37 ff sbrs r19, 7
+ 7e2: 04 c0 rjmp .+8 ; 0x7ec <_fpadd_parts+0xb2>
+ 7e4: 66 27 eor r22, r22
+ 7e6: 77 27 eor r23, r23
+ 7e8: 62 1b sub r22, r18
+ 7ea: 73 0b sbc r23, r19
+ 7ec: 60 32 cpi r22, 0x20 ; 32
+ 7ee: 71 05 cpc r23, r1
+ 7f0: 0c f0 brlt .+2 ; 0x7f4 <_fpadd_parts+0xba>
+ 7f2: 61 c0 rjmp .+194 ; 0x8b6 <_fpadd_parts+0x17c>
+ 7f4: 12 16 cp r1, r18
+ 7f6: 13 06 cpc r1, r19
+ 7f8: 6c f5 brge .+90 ; 0x854 <_fpadd_parts+0x11a>
+ 7fa: 37 01 movw r6, r14
+ 7fc: 48 01 movw r8, r16
+ 7fe: 06 2e mov r0, r22
+ 800: 04 c0 rjmp .+8 ; 0x80a <_fpadd_parts+0xd0>
+ 802: 96 94 lsr r9
+ 804: 87 94 ror r8
+ 806: 77 94 ror r7
+ 808: 67 94 ror r6
+ 80a: 0a 94 dec r0
+ 80c: d2 f7 brpl .-12 ; 0x802 <_fpadd_parts+0xc8>
+ 80e: 21 e0 ldi r18, 0x01 ; 1
+ 810: 30 e0 ldi r19, 0x00 ; 0
+ 812: 40 e0 ldi r20, 0x00 ; 0
+ 814: 50 e0 ldi r21, 0x00 ; 0
+ 816: 04 c0 rjmp .+8 ; 0x820 <_fpadd_parts+0xe6>
+ 818: 22 0f add r18, r18
+ 81a: 33 1f adc r19, r19
+ 81c: 44 1f adc r20, r20
+ 81e: 55 1f adc r21, r21
+ 820: 6a 95 dec r22
+ 822: d2 f7 brpl .-12 ; 0x818 <_fpadd_parts+0xde>
+ 824: 21 50 subi r18, 0x01 ; 1
+ 826: 30 40 sbci r19, 0x00 ; 0
+ 828: 40 40 sbci r20, 0x00 ; 0
+ 82a: 50 40 sbci r21, 0x00 ; 0
+ 82c: 2e 21 and r18, r14
+ 82e: 3f 21 and r19, r15
+ 830: 40 23 and r20, r16
+ 832: 51 23 and r21, r17
+ 834: 21 15 cp r18, r1
+ 836: 31 05 cpc r19, r1
+ 838: 41 05 cpc r20, r1
+ 83a: 51 05 cpc r21, r1
+ 83c: 21 f0 breq .+8 ; 0x846 <_fpadd_parts+0x10c>
+ 83e: 21 e0 ldi r18, 0x01 ; 1
+ 840: 30 e0 ldi r19, 0x00 ; 0
+ 842: 40 e0 ldi r20, 0x00 ; 0
+ 844: 50 e0 ldi r21, 0x00 ; 0
+ 846: 79 01 movw r14, r18
+ 848: 8a 01 movw r16, r20
+ 84a: e6 28 or r14, r6
+ 84c: f7 28 or r15, r7
+ 84e: 08 29 or r16, r8
+ 850: 19 29 or r17, r9
+ 852: 3c c0 rjmp .+120 ; 0x8cc <_fpadd_parts+0x192>
+ 854: 23 2b or r18, r19
+ 856: d1 f1 breq .+116 ; 0x8cc <_fpadd_parts+0x192>
+ 858: 26 0e add r2, r22
+ 85a: 37 1e adc r3, r23
+ 85c: 35 01 movw r6, r10
+ 85e: 46 01 movw r8, r12
+ 860: 06 2e mov r0, r22
+ 862: 04 c0 rjmp .+8 ; 0x86c <_fpadd_parts+0x132>
+ 864: 96 94 lsr r9
+ 866: 87 94 ror r8
+ 868: 77 94 ror r7
+ 86a: 67 94 ror r6
+ 86c: 0a 94 dec r0
+ 86e: d2 f7 brpl .-12 ; 0x864 <_fpadd_parts+0x12a>
+ 870: 21 e0 ldi r18, 0x01 ; 1
+ 872: 30 e0 ldi r19, 0x00 ; 0
+ 874: 40 e0 ldi r20, 0x00 ; 0
+ 876: 50 e0 ldi r21, 0x00 ; 0
+ 878: 04 c0 rjmp .+8 ; 0x882 <_fpadd_parts+0x148>
+ 87a: 22 0f add r18, r18
+ 87c: 33 1f adc r19, r19
+ 87e: 44 1f adc r20, r20
+ 880: 55 1f adc r21, r21
+ 882: 6a 95 dec r22
+ 884: d2 f7 brpl .-12 ; 0x87a <_fpadd_parts+0x140>
+ 886: 21 50 subi r18, 0x01 ; 1
+ 888: 30 40 sbci r19, 0x00 ; 0
+ 88a: 40 40 sbci r20, 0x00 ; 0
+ 88c: 50 40 sbci r21, 0x00 ; 0
+ 88e: 2a 21 and r18, r10
+ 890: 3b 21 and r19, r11
+ 892: 4c 21 and r20, r12
+ 894: 5d 21 and r21, r13
+ 896: 21 15 cp r18, r1
+ 898: 31 05 cpc r19, r1
+ 89a: 41 05 cpc r20, r1
+ 89c: 51 05 cpc r21, r1
+ 89e: 21 f0 breq .+8 ; 0x8a8 <_fpadd_parts+0x16e>
+ 8a0: 21 e0 ldi r18, 0x01 ; 1
+ 8a2: 30 e0 ldi r19, 0x00 ; 0
+ 8a4: 40 e0 ldi r20, 0x00 ; 0
+ 8a6: 50 e0 ldi r21, 0x00 ; 0
+ 8a8: 59 01 movw r10, r18
+ 8aa: 6a 01 movw r12, r20
+ 8ac: a6 28 or r10, r6
+ 8ae: b7 28 or r11, r7
+ 8b0: c8 28 or r12, r8
+ 8b2: d9 28 or r13, r9
+ 8b4: 0b c0 rjmp .+22 ; 0x8cc <_fpadd_parts+0x192>
+ 8b6: 82 15 cp r24, r2
+ 8b8: 93 05 cpc r25, r3
+ 8ba: 2c f0 brlt .+10 ; 0x8c6 <_fpadd_parts+0x18c>
+ 8bc: 1c 01 movw r2, r24
+ 8be: aa 24 eor r10, r10
+ 8c0: bb 24 eor r11, r11
+ 8c2: 65 01 movw r12, r10
+ 8c4: 03 c0 rjmp .+6 ; 0x8cc <_fpadd_parts+0x192>
+ 8c6: ee 24 eor r14, r14
+ 8c8: ff 24 eor r15, r15
+ 8ca: 87 01 movw r16, r14
+ 8cc: 11 96 adiw r26, 0x01 ; 1
+ 8ce: 9c 91 ld r25, X
+ 8d0: d2 01 movw r26, r4
+ 8d2: 11 96 adiw r26, 0x01 ; 1
+ 8d4: 8c 91 ld r24, X
+ 8d6: 98 17 cp r25, r24
+ 8d8: 09 f4 brne .+2 ; 0x8dc <_fpadd_parts+0x1a2>
+ 8da: 45 c0 rjmp .+138 ; 0x966 <__stack+0x67>
+ 8dc: 99 23 and r25, r25
+ 8de: 39 f0 breq .+14 ; 0x8ee <_fpadd_parts+0x1b4>
+ 8e0: a8 01 movw r20, r16
+ 8e2: 97 01 movw r18, r14
+ 8e4: 2a 19 sub r18, r10
+ 8e6: 3b 09 sbc r19, r11
+ 8e8: 4c 09 sbc r20, r12
+ 8ea: 5d 09 sbc r21, r13
+ 8ec: 06 c0 rjmp .+12 ; 0x8fa <_fpadd_parts+0x1c0>
+ 8ee: a6 01 movw r20, r12
+ 8f0: 95 01 movw r18, r10
+ 8f2: 2e 19 sub r18, r14
+ 8f4: 3f 09 sbc r19, r15
+ 8f6: 40 0b sbc r20, r16
+ 8f8: 51 0b sbc r21, r17
+ 8fa: 57 fd sbrc r21, 7
+ 8fc: 08 c0 rjmp .+16 ; 0x90e <__stack+0xf>
+ 8fe: 11 82 std Z+1, r1 ; 0x01
+ 900: 33 82 std Z+3, r3 ; 0x03
+ 902: 22 82 std Z+2, r2 ; 0x02
+ 904: 24 83 std Z+4, r18 ; 0x04
+ 906: 35 83 std Z+5, r19 ; 0x05
+ 908: 46 83 std Z+6, r20 ; 0x06
+ 90a: 57 83 std Z+7, r21 ; 0x07
+ 90c: 1d c0 rjmp .+58 ; 0x948 <__stack+0x49>
+ 90e: 81 e0 ldi r24, 0x01 ; 1
+ 910: 81 83 std Z+1, r24 ; 0x01
+ 912: 33 82 std Z+3, r3 ; 0x03
+ 914: 22 82 std Z+2, r2 ; 0x02
+ 916: 88 27 eor r24, r24
+ 918: 99 27 eor r25, r25
+ 91a: dc 01 movw r26, r24
+ 91c: 82 1b sub r24, r18
+ 91e: 93 0b sbc r25, r19
+ 920: a4 0b sbc r26, r20
+ 922: b5 0b sbc r27, r21
+ 924: 84 83 std Z+4, r24 ; 0x04
+ 926: 95 83 std Z+5, r25 ; 0x05
+ 928: a6 83 std Z+6, r26 ; 0x06
+ 92a: b7 83 std Z+7, r27 ; 0x07
+ 92c: 0d c0 rjmp .+26 ; 0x948 <__stack+0x49>
+ 92e: 22 0f add r18, r18
+ 930: 33 1f adc r19, r19
+ 932: 44 1f adc r20, r20
+ 934: 55 1f adc r21, r21
+ 936: 24 83 std Z+4, r18 ; 0x04
+ 938: 35 83 std Z+5, r19 ; 0x05
+ 93a: 46 83 std Z+6, r20 ; 0x06
+ 93c: 57 83 std Z+7, r21 ; 0x07
+ 93e: 82 81 ldd r24, Z+2 ; 0x02
+ 940: 93 81 ldd r25, Z+3 ; 0x03
+ 942: 01 97 sbiw r24, 0x01 ; 1
+ 944: 93 83 std Z+3, r25 ; 0x03
+ 946: 82 83 std Z+2, r24 ; 0x02
+ 948: 24 81 ldd r18, Z+4 ; 0x04
+ 94a: 35 81 ldd r19, Z+5 ; 0x05
+ 94c: 46 81 ldd r20, Z+6 ; 0x06
+ 94e: 57 81 ldd r21, Z+7 ; 0x07
+ 950: da 01 movw r26, r20
+ 952: c9 01 movw r24, r18
+ 954: 01 97 sbiw r24, 0x01 ; 1
+ 956: a1 09 sbc r26, r1
+ 958: b1 09 sbc r27, r1
+ 95a: 8f 5f subi r24, 0xFF ; 255
+ 95c: 9f 4f sbci r25, 0xFF ; 255
+ 95e: af 4f sbci r26, 0xFF ; 255
+ 960: bf 43 sbci r27, 0x3F ; 63
+ 962: 28 f3 brcs .-54 ; 0x92e <__stack+0x2f>
+ 964: 0b c0 rjmp .+22 ; 0x97c <__stack+0x7d>
+ 966: 91 83 std Z+1, r25 ; 0x01
+ 968: 33 82 std Z+3, r3 ; 0x03
+ 96a: 22 82 std Z+2, r2 ; 0x02
+ 96c: ea 0c add r14, r10
+ 96e: fb 1c adc r15, r11
+ 970: 0c 1d adc r16, r12
+ 972: 1d 1d adc r17, r13
+ 974: e4 82 std Z+4, r14 ; 0x04
+ 976: f5 82 std Z+5, r15 ; 0x05
+ 978: 06 83 std Z+6, r16 ; 0x06
+ 97a: 17 83 std Z+7, r17 ; 0x07
+ 97c: 83 e0 ldi r24, 0x03 ; 3
+ 97e: 80 83 st Z, r24
+ 980: 24 81 ldd r18, Z+4 ; 0x04
+ 982: 35 81 ldd r19, Z+5 ; 0x05
+ 984: 46 81 ldd r20, Z+6 ; 0x06
+ 986: 57 81 ldd r21, Z+7 ; 0x07
+ 988: 57 ff sbrs r21, 7
+ 98a: 1a c0 rjmp .+52 ; 0x9c0 <__stack+0xc1>
+ 98c: c9 01 movw r24, r18
+ 98e: aa 27 eor r26, r26
+ 990: 97 fd sbrc r25, 7
+ 992: a0 95 com r26
+ 994: ba 2f mov r27, r26
+ 996: 81 70 andi r24, 0x01 ; 1
+ 998: 90 70 andi r25, 0x00 ; 0
+ 99a: a0 70 andi r26, 0x00 ; 0
+ 99c: b0 70 andi r27, 0x00 ; 0
+ 99e: 56 95 lsr r21
+ 9a0: 47 95 ror r20
+ 9a2: 37 95 ror r19
+ 9a4: 27 95 ror r18
+ 9a6: 82 2b or r24, r18
+ 9a8: 93 2b or r25, r19
+ 9aa: a4 2b or r26, r20
+ 9ac: b5 2b or r27, r21
+ 9ae: 84 83 std Z+4, r24 ; 0x04
+ 9b0: 95 83 std Z+5, r25 ; 0x05
+ 9b2: a6 83 std Z+6, r26 ; 0x06
+ 9b4: b7 83 std Z+7, r27 ; 0x07
+ 9b6: 82 81 ldd r24, Z+2 ; 0x02
+ 9b8: 93 81 ldd r25, Z+3 ; 0x03
+ 9ba: 01 96 adiw r24, 0x01 ; 1
+ 9bc: 93 83 std Z+3, r25 ; 0x03
+ 9be: 82 83 std Z+2, r24 ; 0x02
+ 9c0: df 01 movw r26, r30
+ 9c2: 01 c0 rjmp .+2 ; 0x9c6 <__stack+0xc7>
+ 9c4: d2 01 movw r26, r4
+ 9c6: cd 01 movw r24, r26
+ 9c8: cd b7 in r28, 0x3d ; 61
+ 9ca: de b7 in r29, 0x3e ; 62
+ 9cc: e2 e1 ldi r30, 0x12 ; 18
+ 9ce: 0c 94 62 08 jmp 0x10c4 ; 0x10c4 <__epilogue_restores__>
+
+000009d2 <__subsf3>:
+ 9d2: a0 e2 ldi r26, 0x20 ; 32
+ 9d4: b0 e0 ldi r27, 0x00 ; 0
+ 9d6: ef ee ldi r30, 0xEF ; 239
+ 9d8: f4 e0 ldi r31, 0x04 ; 4
+ 9da: 0c 94 52 08 jmp 0x10a4 ; 0x10a4 <__prologue_saves__+0x18>
+ 9de: 69 83 std Y+1, r22 ; 0x01
+ 9e0: 7a 83 std Y+2, r23 ; 0x02
+ 9e2: 8b 83 std Y+3, r24 ; 0x03
+ 9e4: 9c 83 std Y+4, r25 ; 0x04
+ 9e6: 2d 83 std Y+5, r18 ; 0x05
+ 9e8: 3e 83 std Y+6, r19 ; 0x06
+ 9ea: 4f 83 std Y+7, r20 ; 0x07
+ 9ec: 58 87 std Y+8, r21 ; 0x08
+ 9ee: e9 e0 ldi r30, 0x09 ; 9
+ 9f0: ee 2e mov r14, r30
+ 9f2: f1 2c mov r15, r1
+ 9f4: ec 0e add r14, r28
+ 9f6: fd 1e adc r15, r29
+ 9f8: ce 01 movw r24, r28
+ 9fa: 01 96 adiw r24, 0x01 ; 1
+ 9fc: b7 01 movw r22, r14
+ 9fe: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a02: 8e 01 movw r16, r28
+ a04: 0f 5e subi r16, 0xEF ; 239
+ a06: 1f 4f sbci r17, 0xFF ; 255
+ a08: ce 01 movw r24, r28
+ a0a: 05 96 adiw r24, 0x05 ; 5
+ a0c: b8 01 movw r22, r16
+ a0e: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a12: 8a 89 ldd r24, Y+18 ; 0x12
+ a14: 91 e0 ldi r25, 0x01 ; 1
+ a16: 89 27 eor r24, r25
+ a18: 8a 8b std Y+18, r24 ; 0x12
+ a1a: c7 01 movw r24, r14
+ a1c: b8 01 movw r22, r16
+ a1e: ae 01 movw r20, r28
+ a20: 47 5e subi r20, 0xE7 ; 231
+ a22: 5f 4f sbci r21, 0xFF ; 255
+ a24: 0e 94 9d 03 call 0x73a ; 0x73a <_fpadd_parts>
+ a28: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ a2c: a0 96 adiw r28, 0x20 ; 32
+ a2e: e6 e0 ldi r30, 0x06 ; 6
+ a30: 0c 94 6e 08 jmp 0x10dc ; 0x10dc <__epilogue_restores__+0x18>
+
+00000a34 <__addsf3>:
+ a34: a0 e2 ldi r26, 0x20 ; 32
+ a36: b0 e0 ldi r27, 0x00 ; 0
+ a38: e0 e2 ldi r30, 0x20 ; 32
+ a3a: f5 e0 ldi r31, 0x05 ; 5
+ a3c: 0c 94 52 08 jmp 0x10a4 ; 0x10a4 <__prologue_saves__+0x18>
+ a40: 69 83 std Y+1, r22 ; 0x01
+ a42: 7a 83 std Y+2, r23 ; 0x02
+ a44: 8b 83 std Y+3, r24 ; 0x03
+ a46: 9c 83 std Y+4, r25 ; 0x04
+ a48: 2d 83 std Y+5, r18 ; 0x05
+ a4a: 3e 83 std Y+6, r19 ; 0x06
+ a4c: 4f 83 std Y+7, r20 ; 0x07
+ a4e: 58 87 std Y+8, r21 ; 0x08
+ a50: f9 e0 ldi r31, 0x09 ; 9
+ a52: ef 2e mov r14, r31
+ a54: f1 2c mov r15, r1
+ a56: ec 0e add r14, r28
+ a58: fd 1e adc r15, r29
+ a5a: ce 01 movw r24, r28
+ a5c: 01 96 adiw r24, 0x01 ; 1
+ a5e: b7 01 movw r22, r14
+ a60: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a64: 8e 01 movw r16, r28
+ a66: 0f 5e subi r16, 0xEF ; 239
+ a68: 1f 4f sbci r17, 0xFF ; 255
+ a6a: ce 01 movw r24, r28
+ a6c: 05 96 adiw r24, 0x05 ; 5
+ a6e: b8 01 movw r22, r16
+ a70: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ a74: c7 01 movw r24, r14
+ a76: b8 01 movw r22, r16
+ a78: ae 01 movw r20, r28
+ a7a: 47 5e subi r20, 0xE7 ; 231
+ a7c: 5f 4f sbci r21, 0xFF ; 255
+ a7e: 0e 94 9d 03 call 0x73a ; 0x73a <_fpadd_parts>
+ a82: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ a86: a0 96 adiw r28, 0x20 ; 32
+ a88: e6 e0 ldi r30, 0x06 ; 6
+ a8a: 0c 94 6e 08 jmp 0x10dc ; 0x10dc <__epilogue_restores__+0x18>
+
+00000a8e <__mulsf3>:
+ a8e: a0 e2 ldi r26, 0x20 ; 32
+ a90: b0 e0 ldi r27, 0x00 ; 0
+ a92: ed e4 ldi r30, 0x4D ; 77
+ a94: f5 e0 ldi r31, 0x05 ; 5
+ a96: 0c 94 46 08 jmp 0x108c ; 0x108c <__prologue_saves__>
+ a9a: 69 83 std Y+1, r22 ; 0x01
+ a9c: 7a 83 std Y+2, r23 ; 0x02
+ a9e: 8b 83 std Y+3, r24 ; 0x03
+ aa0: 9c 83 std Y+4, r25 ; 0x04
+ aa2: 2d 83 std Y+5, r18 ; 0x05
+ aa4: 3e 83 std Y+6, r19 ; 0x06
+ aa6: 4f 83 std Y+7, r20 ; 0x07
+ aa8: 58 87 std Y+8, r21 ; 0x08
+ aaa: ce 01 movw r24, r28
+ aac: 01 96 adiw r24, 0x01 ; 1
+ aae: be 01 movw r22, r28
+ ab0: 67 5f subi r22, 0xF7 ; 247
+ ab2: 7f 4f sbci r23, 0xFF ; 255
+ ab4: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ab8: ce 01 movw r24, r28
+ aba: 05 96 adiw r24, 0x05 ; 5
+ abc: be 01 movw r22, r28
+ abe: 6f 5e subi r22, 0xEF ; 239
+ ac0: 7f 4f sbci r23, 0xFF ; 255
+ ac2: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ac6: 99 85 ldd r25, Y+9 ; 0x09
+ ac8: 92 30 cpi r25, 0x02 ; 2
+ aca: 88 f0 brcs .+34 ; 0xaee <__mulsf3+0x60>
+ acc: 89 89 ldd r24, Y+17 ; 0x11
+ ace: 82 30 cpi r24, 0x02 ; 2
+ ad0: c8 f0 brcs .+50 ; 0xb04 <__mulsf3+0x76>
+ ad2: 94 30 cpi r25, 0x04 ; 4
+ ad4: 19 f4 brne .+6 ; 0xadc <__mulsf3+0x4e>
+ ad6: 82 30 cpi r24, 0x02 ; 2
+ ad8: 51 f4 brne .+20 ; 0xaee <__mulsf3+0x60>
+ ada: 04 c0 rjmp .+8 ; 0xae4 <__mulsf3+0x56>
+ adc: 84 30 cpi r24, 0x04 ; 4
+ ade: 29 f4 brne .+10 ; 0xaea <__mulsf3+0x5c>
+ ae0: 92 30 cpi r25, 0x02 ; 2
+ ae2: 81 f4 brne .+32 ; 0xb04 <__mulsf3+0x76>
+ ae4: 89 e1 ldi r24, 0x19 ; 25
+ ae6: 91 e0 ldi r25, 0x01 ; 1
+ ae8: c6 c0 rjmp .+396 ; 0xc76 <__mulsf3+0x1e8>
+ aea: 92 30 cpi r25, 0x02 ; 2
+ aec: 49 f4 brne .+18 ; 0xb00 <__mulsf3+0x72>
+ aee: 20 e0 ldi r18, 0x00 ; 0
+ af0: 9a 85 ldd r25, Y+10 ; 0x0a
+ af2: 8a 89 ldd r24, Y+18 ; 0x12
+ af4: 98 13 cpse r25, r24
+ af6: 21 e0 ldi r18, 0x01 ; 1
+ af8: 2a 87 std Y+10, r18 ; 0x0a
+ afa: ce 01 movw r24, r28
+ afc: 09 96 adiw r24, 0x09 ; 9
+ afe: bb c0 rjmp .+374 ; 0xc76 <__mulsf3+0x1e8>
+ b00: 82 30 cpi r24, 0x02 ; 2
+ b02: 49 f4 brne .+18 ; 0xb16 <__mulsf3+0x88>
+ b04: 20 e0 ldi r18, 0x00 ; 0
+ b06: 9a 85 ldd r25, Y+10 ; 0x0a
+ b08: 8a 89 ldd r24, Y+18 ; 0x12
+ b0a: 98 13 cpse r25, r24
+ b0c: 21 e0 ldi r18, 0x01 ; 1
+ b0e: 2a 8b std Y+18, r18 ; 0x12
+ b10: ce 01 movw r24, r28
+ b12: 41 96 adiw r24, 0x11 ; 17
+ b14: b0 c0 rjmp .+352 ; 0xc76 <__mulsf3+0x1e8>
+ b16: 2d 84 ldd r2, Y+13 ; 0x0d
+ b18: 3e 84 ldd r3, Y+14 ; 0x0e
+ b1a: 4f 84 ldd r4, Y+15 ; 0x0f
+ b1c: 58 88 ldd r5, Y+16 ; 0x10
+ b1e: 6d 88 ldd r6, Y+21 ; 0x15
+ b20: 7e 88 ldd r7, Y+22 ; 0x16
+ b22: 8f 88 ldd r8, Y+23 ; 0x17
+ b24: 98 8c ldd r9, Y+24 ; 0x18
+ b26: ee 24 eor r14, r14
+ b28: ff 24 eor r15, r15
+ b2a: 87 01 movw r16, r14
+ b2c: aa 24 eor r10, r10
+ b2e: bb 24 eor r11, r11
+ b30: 65 01 movw r12, r10
+ b32: 40 e0 ldi r20, 0x00 ; 0
+ b34: 50 e0 ldi r21, 0x00 ; 0
+ b36: 60 e0 ldi r22, 0x00 ; 0
+ b38: 70 e0 ldi r23, 0x00 ; 0
+ b3a: e0 e0 ldi r30, 0x00 ; 0
+ b3c: f0 e0 ldi r31, 0x00 ; 0
+ b3e: c1 01 movw r24, r2
+ b40: 81 70 andi r24, 0x01 ; 1
+ b42: 90 70 andi r25, 0x00 ; 0
+ b44: 89 2b or r24, r25
+ b46: e9 f0 breq .+58 ; 0xb82 <__mulsf3+0xf4>
+ b48: e6 0c add r14, r6
+ b4a: f7 1c adc r15, r7
+ b4c: 08 1d adc r16, r8
+ b4e: 19 1d adc r17, r9
+ b50: 9a 01 movw r18, r20
+ b52: ab 01 movw r20, r22
+ b54: 2a 0d add r18, r10
+ b56: 3b 1d adc r19, r11
+ b58: 4c 1d adc r20, r12
+ b5a: 5d 1d adc r21, r13
+ b5c: 80 e0 ldi r24, 0x00 ; 0
+ b5e: 90 e0 ldi r25, 0x00 ; 0
+ b60: a0 e0 ldi r26, 0x00 ; 0
+ b62: b0 e0 ldi r27, 0x00 ; 0
+ b64: e6 14 cp r14, r6
+ b66: f7 04 cpc r15, r7
+ b68: 08 05 cpc r16, r8
+ b6a: 19 05 cpc r17, r9
+ b6c: 20 f4 brcc .+8 ; 0xb76 <__mulsf3+0xe8>
+ b6e: 81 e0 ldi r24, 0x01 ; 1
+ b70: 90 e0 ldi r25, 0x00 ; 0
+ b72: a0 e0 ldi r26, 0x00 ; 0
+ b74: b0 e0 ldi r27, 0x00 ; 0
+ b76: ba 01 movw r22, r20
+ b78: a9 01 movw r20, r18
+ b7a: 48 0f add r20, r24
+ b7c: 59 1f adc r21, r25
+ b7e: 6a 1f adc r22, r26
+ b80: 7b 1f adc r23, r27
+ b82: aa 0c add r10, r10
+ b84: bb 1c adc r11, r11
+ b86: cc 1c adc r12, r12
+ b88: dd 1c adc r13, r13
+ b8a: 97 fe sbrs r9, 7
+ b8c: 08 c0 rjmp .+16 ; 0xb9e <__mulsf3+0x110>
+ b8e: 81 e0 ldi r24, 0x01 ; 1
+ b90: 90 e0 ldi r25, 0x00 ; 0
+ b92: a0 e0 ldi r26, 0x00 ; 0
+ b94: b0 e0 ldi r27, 0x00 ; 0
+ b96: a8 2a or r10, r24
+ b98: b9 2a or r11, r25
+ b9a: ca 2a or r12, r26
+ b9c: db 2a or r13, r27
+ b9e: 31 96 adiw r30, 0x01 ; 1
+ ba0: e0 32 cpi r30, 0x20 ; 32
+ ba2: f1 05 cpc r31, r1
+ ba4: 49 f0 breq .+18 ; 0xbb8 <__mulsf3+0x12a>
+ ba6: 66 0c add r6, r6
+ ba8: 77 1c adc r7, r7
+ baa: 88 1c adc r8, r8
+ bac: 99 1c adc r9, r9
+ bae: 56 94 lsr r5
+ bb0: 47 94 ror r4
+ bb2: 37 94 ror r3
+ bb4: 27 94 ror r2
+ bb6: c3 cf rjmp .-122 ; 0xb3e <__mulsf3+0xb0>
+ bb8: fa 85 ldd r31, Y+10 ; 0x0a
+ bba: ea 89 ldd r30, Y+18 ; 0x12
+ bbc: 2b 89 ldd r18, Y+19 ; 0x13
+ bbe: 3c 89 ldd r19, Y+20 ; 0x14
+ bc0: 8b 85 ldd r24, Y+11 ; 0x0b
+ bc2: 9c 85 ldd r25, Y+12 ; 0x0c
+ bc4: 28 0f add r18, r24
+ bc6: 39 1f adc r19, r25
+ bc8: 2e 5f subi r18, 0xFE ; 254
+ bca: 3f 4f sbci r19, 0xFF ; 255
+ bcc: 17 c0 rjmp .+46 ; 0xbfc <__mulsf3+0x16e>
+ bce: ca 01 movw r24, r20
+ bd0: 81 70 andi r24, 0x01 ; 1
+ bd2: 90 70 andi r25, 0x00 ; 0
+ bd4: 89 2b or r24, r25
+ bd6: 61 f0 breq .+24 ; 0xbf0 <__mulsf3+0x162>
+ bd8: 16 95 lsr r17
+ bda: 07 95 ror r16
+ bdc: f7 94 ror r15
+ bde: e7 94 ror r14
+ be0: 80 e0 ldi r24, 0x00 ; 0
+ be2: 90 e0 ldi r25, 0x00 ; 0
+ be4: a0 e0 ldi r26, 0x00 ; 0
+ be6: b0 e8 ldi r27, 0x80 ; 128
+ be8: e8 2a or r14, r24
+ bea: f9 2a or r15, r25
+ bec: 0a 2b or r16, r26
+ bee: 1b 2b or r17, r27
+ bf0: 76 95 lsr r23
+ bf2: 67 95 ror r22
+ bf4: 57 95 ror r21
+ bf6: 47 95 ror r20
+ bf8: 2f 5f subi r18, 0xFF ; 255
+ bfa: 3f 4f sbci r19, 0xFF ; 255
+ bfc: 77 fd sbrc r23, 7
+ bfe: e7 cf rjmp .-50 ; 0xbce <__mulsf3+0x140>
+ c00: 0c c0 rjmp .+24 ; 0xc1a <__mulsf3+0x18c>
+ c02: 44 0f add r20, r20
+ c04: 55 1f adc r21, r21
+ c06: 66 1f adc r22, r22
+ c08: 77 1f adc r23, r23
+ c0a: 17 fd sbrc r17, 7
+ c0c: 41 60 ori r20, 0x01 ; 1
+ c0e: ee 0c add r14, r14
+ c10: ff 1c adc r15, r15
+ c12: 00 1f adc r16, r16
+ c14: 11 1f adc r17, r17
+ c16: 21 50 subi r18, 0x01 ; 1
+ c18: 30 40 sbci r19, 0x00 ; 0
+ c1a: 40 30 cpi r20, 0x00 ; 0
+ c1c: 90 e0 ldi r25, 0x00 ; 0
+ c1e: 59 07 cpc r21, r25
+ c20: 90 e0 ldi r25, 0x00 ; 0
+ c22: 69 07 cpc r22, r25
+ c24: 90 e4 ldi r25, 0x40 ; 64
+ c26: 79 07 cpc r23, r25
+ c28: 60 f3 brcs .-40 ; 0xc02 <__mulsf3+0x174>
+ c2a: 2b 8f std Y+27, r18 ; 0x1b
+ c2c: 3c 8f std Y+28, r19 ; 0x1c
+ c2e: db 01 movw r26, r22
+ c30: ca 01 movw r24, r20
+ c32: 8f 77 andi r24, 0x7F ; 127
+ c34: 90 70 andi r25, 0x00 ; 0
+ c36: a0 70 andi r26, 0x00 ; 0
+ c38: b0 70 andi r27, 0x00 ; 0
+ c3a: 80 34 cpi r24, 0x40 ; 64
+ c3c: 91 05 cpc r25, r1
+ c3e: a1 05 cpc r26, r1
+ c40: b1 05 cpc r27, r1
+ c42: 61 f4 brne .+24 ; 0xc5c <__mulsf3+0x1ce>
+ c44: 47 fd sbrc r20, 7
+ c46: 0a c0 rjmp .+20 ; 0xc5c <__mulsf3+0x1ce>
+ c48: e1 14 cp r14, r1
+ c4a: f1 04 cpc r15, r1
+ c4c: 01 05 cpc r16, r1
+ c4e: 11 05 cpc r17, r1
+ c50: 29 f0 breq .+10 ; 0xc5c <__mulsf3+0x1ce>
+ c52: 40 5c subi r20, 0xC0 ; 192
+ c54: 5f 4f sbci r21, 0xFF ; 255
+ c56: 6f 4f sbci r22, 0xFF ; 255
+ c58: 7f 4f sbci r23, 0xFF ; 255
+ c5a: 40 78 andi r20, 0x80 ; 128
+ c5c: 1a 8e std Y+26, r1 ; 0x1a
+ c5e: fe 17 cp r31, r30
+ c60: 11 f0 breq .+4 ; 0xc66 <__mulsf3+0x1d8>
+ c62: 81 e0 ldi r24, 0x01 ; 1
+ c64: 8a 8f std Y+26, r24 ; 0x1a
+ c66: 4d 8f std Y+29, r20 ; 0x1d
+ c68: 5e 8f std Y+30, r21 ; 0x1e
+ c6a: 6f 8f std Y+31, r22 ; 0x1f
+ c6c: 78 a3 std Y+32, r23 ; 0x20
+ c6e: 83 e0 ldi r24, 0x03 ; 3
+ c70: 89 8f std Y+25, r24 ; 0x19
+ c72: ce 01 movw r24, r28
+ c74: 49 96 adiw r24, 0x19 ; 25
+ c76: 0e 94 95 06 call 0xd2a ; 0xd2a <__pack_f>
+ c7a: a0 96 adiw r28, 0x20 ; 32
+ c7c: e2 e1 ldi r30, 0x12 ; 18
+ c7e: 0c 94 62 08 jmp 0x10c4 ; 0x10c4 <__epilogue_restores__>
+
+00000c82 <__fixsfsi>:
+ c82: ac e0 ldi r26, 0x0C ; 12
+ c84: b0 e0 ldi r27, 0x00 ; 0
+ c86: e7 e4 ldi r30, 0x47 ; 71
+ c88: f6 e0 ldi r31, 0x06 ; 6
+ c8a: 0c 94 56 08 jmp 0x10ac ; 0x10ac <__prologue_saves__+0x20>
+ c8e: 69 83 std Y+1, r22 ; 0x01
+ c90: 7a 83 std Y+2, r23 ; 0x02
+ c92: 8b 83 std Y+3, r24 ; 0x03
+ c94: 9c 83 std Y+4, r25 ; 0x04
+ c96: ce 01 movw r24, r28
+ c98: 01 96 adiw r24, 0x01 ; 1
+ c9a: be 01 movw r22, r28
+ c9c: 6b 5f subi r22, 0xFB ; 251
+ c9e: 7f 4f sbci r23, 0xFF ; 255
+ ca0: 0e 94 6a 07 call 0xed4 ; 0xed4 <__unpack_f>
+ ca4: 8d 81 ldd r24, Y+5 ; 0x05
+ ca6: 82 30 cpi r24, 0x02 ; 2
+ ca8: 61 f1 breq .+88 ; 0xd02 <__fixsfsi+0x80>
+ caa: 82 30 cpi r24, 0x02 ; 2
+ cac: 50 f1 brcs .+84 ; 0xd02 <__fixsfsi+0x80>
+ cae: 84 30 cpi r24, 0x04 ; 4
+ cb0: 21 f4 brne .+8 ; 0xcba <__fixsfsi+0x38>
+ cb2: 8e 81 ldd r24, Y+6 ; 0x06
+ cb4: 88 23 and r24, r24
+ cb6: 51 f1 breq .+84 ; 0xd0c <__fixsfsi+0x8a>
+ cb8: 2e c0 rjmp .+92 ; 0xd16 <__fixsfsi+0x94>
+ cba: 2f 81 ldd r18, Y+7 ; 0x07
+ cbc: 38 85 ldd r19, Y+8 ; 0x08
+ cbe: 37 fd sbrc r19, 7
+ cc0: 20 c0 rjmp .+64 ; 0xd02 <__fixsfsi+0x80>
+ cc2: 6e 81 ldd r22, Y+6 ; 0x06
+ cc4: 2f 31 cpi r18, 0x1F ; 31
+ cc6: 31 05 cpc r19, r1
+ cc8: 1c f0 brlt .+6 ; 0xcd0 <__fixsfsi+0x4e>
+ cca: 66 23 and r22, r22
+ ccc: f9 f0 breq .+62 ; 0xd0c <__fixsfsi+0x8a>
+ cce: 23 c0 rjmp .+70 ; 0xd16 <__fixsfsi+0x94>
+ cd0: 8e e1 ldi r24, 0x1E ; 30
+ cd2: 90 e0 ldi r25, 0x00 ; 0
+ cd4: 82 1b sub r24, r18
+ cd6: 93 0b sbc r25, r19
+ cd8: 29 85 ldd r18, Y+9 ; 0x09
+ cda: 3a 85 ldd r19, Y+10 ; 0x0a
+ cdc: 4b 85 ldd r20, Y+11 ; 0x0b
+ cde: 5c 85 ldd r21, Y+12 ; 0x0c
+ ce0: 04 c0 rjmp .+8 ; 0xcea <__fixsfsi+0x68>
+ ce2: 56 95 lsr r21
+ ce4: 47 95 ror r20
+ ce6: 37 95 ror r19
+ ce8: 27 95 ror r18
+ cea: 8a 95 dec r24
+ cec: d2 f7 brpl .-12 ; 0xce2 <__fixsfsi+0x60>
+ cee: 66 23 and r22, r22
+ cf0: b1 f0 breq .+44 ; 0xd1e <__fixsfsi+0x9c>
+ cf2: 50 95 com r21
+ cf4: 40 95 com r20
+ cf6: 30 95 com r19
+ cf8: 21 95 neg r18
+ cfa: 3f 4f sbci r19, 0xFF ; 255
+ cfc: 4f 4f sbci r20, 0xFF ; 255
+ cfe: 5f 4f sbci r21, 0xFF ; 255
+ d00: 0e c0 rjmp .+28 ; 0xd1e <__fixsfsi+0x9c>
+ d02: 20 e0 ldi r18, 0x00 ; 0
+ d04: 30 e0 ldi r19, 0x00 ; 0
+ d06: 40 e0 ldi r20, 0x00 ; 0
+ d08: 50 e0 ldi r21, 0x00 ; 0
+ d0a: 09 c0 rjmp .+18 ; 0xd1e <__fixsfsi+0x9c>
+ d0c: 2f ef ldi r18, 0xFF ; 255
+ d0e: 3f ef ldi r19, 0xFF ; 255
+ d10: 4f ef ldi r20, 0xFF ; 255
+ d12: 5f e7 ldi r21, 0x7F ; 127
+ d14: 04 c0 rjmp .+8 ; 0xd1e <__fixsfsi+0x9c>
+ d16: 20 e0 ldi r18, 0x00 ; 0
+ d18: 30 e0 ldi r19, 0x00 ; 0
+ d1a: 40 e0 ldi r20, 0x00 ; 0
+ d1c: 50 e8 ldi r21, 0x80 ; 128
+ d1e: b9 01 movw r22, r18
+ d20: ca 01 movw r24, r20
+ d22: 2c 96 adiw r28, 0x0c ; 12
+ d24: e2 e0 ldi r30, 0x02 ; 2
+ d26: 0c 94 72 08 jmp 0x10e4 ; 0x10e4 <__epilogue_restores__+0x20>
+
+00000d2a <__pack_f>:
+ d2a: df 92 push r13
+ d2c: ef 92 push r14
+ d2e: ff 92 push r15
+ d30: 0f 93 push r16
+ d32: 1f 93 push r17
+ d34: fc 01 movw r30, r24
+ d36: e4 80 ldd r14, Z+4 ; 0x04
+ d38: f5 80 ldd r15, Z+5 ; 0x05
+ d3a: 06 81 ldd r16, Z+6 ; 0x06
+ d3c: 17 81 ldd r17, Z+7 ; 0x07
+ d3e: d1 80 ldd r13, Z+1 ; 0x01
+ d40: 80 81 ld r24, Z
+ d42: 82 30 cpi r24, 0x02 ; 2
+ d44: 48 f4 brcc .+18 ; 0xd58 <__pack_f+0x2e>
+ d46: 80 e0 ldi r24, 0x00 ; 0
+ d48: 90 e0 ldi r25, 0x00 ; 0
+ d4a: a0 e1 ldi r26, 0x10 ; 16
+ d4c: b0 e0 ldi r27, 0x00 ; 0
+ d4e: e8 2a or r14, r24
+ d50: f9 2a or r15, r25
+ d52: 0a 2b or r16, r26
+ d54: 1b 2b or r17, r27
+ d56: a5 c0 rjmp .+330 ; 0xea2 <__pack_f+0x178>
+ d58: 84 30 cpi r24, 0x04 ; 4
+ d5a: 09 f4 brne .+2 ; 0xd5e <__pack_f+0x34>
+ d5c: 9f c0 rjmp .+318 ; 0xe9c <__pack_f+0x172>
+ d5e: 82 30 cpi r24, 0x02 ; 2
+ d60: 21 f4 brne .+8 ; 0xd6a <__pack_f+0x40>
+ d62: ee 24 eor r14, r14
+ d64: ff 24 eor r15, r15
+ d66: 87 01 movw r16, r14
+ d68: 05 c0 rjmp .+10 ; 0xd74 <__pack_f+0x4a>
+ d6a: e1 14 cp r14, r1
+ d6c: f1 04 cpc r15, r1
+ d6e: 01 05 cpc r16, r1
+ d70: 11 05 cpc r17, r1
+ d72: 19 f4 brne .+6 ; 0xd7a <__pack_f+0x50>
+ d74: e0 e0 ldi r30, 0x00 ; 0
+ d76: f0 e0 ldi r31, 0x00 ; 0
+ d78: 96 c0 rjmp .+300 ; 0xea6 <__pack_f+0x17c>
+ d7a: 62 81 ldd r22, Z+2 ; 0x02
+ d7c: 73 81 ldd r23, Z+3 ; 0x03
+ d7e: 9f ef ldi r25, 0xFF ; 255
+ d80: 62 38 cpi r22, 0x82 ; 130
+ d82: 79 07 cpc r23, r25
+ d84: 0c f0 brlt .+2 ; 0xd88 <__pack_f+0x5e>
+ d86: 5b c0 rjmp .+182 ; 0xe3e <__pack_f+0x114>
+ d88: 22 e8 ldi r18, 0x82 ; 130
+ d8a: 3f ef ldi r19, 0xFF ; 255
+ d8c: 26 1b sub r18, r22
+ d8e: 37 0b sbc r19, r23
+ d90: 2a 31 cpi r18, 0x1A ; 26
+ d92: 31 05 cpc r19, r1
+ d94: 2c f0 brlt .+10 ; 0xda0 <__pack_f+0x76>
+ d96: 20 e0 ldi r18, 0x00 ; 0
+ d98: 30 e0 ldi r19, 0x00 ; 0
+ d9a: 40 e0 ldi r20, 0x00 ; 0
+ d9c: 50 e0 ldi r21, 0x00 ; 0
+ d9e: 2a c0 rjmp .+84 ; 0xdf4 <__pack_f+0xca>
+ da0: b8 01 movw r22, r16
+ da2: a7 01 movw r20, r14
+ da4: 02 2e mov r0, r18
+ da6: 04 c0 rjmp .+8 ; 0xdb0 <__pack_f+0x86>
+ da8: 76 95 lsr r23
+ daa: 67 95 ror r22
+ dac: 57 95 ror r21
+ dae: 47 95 ror r20
+ db0: 0a 94 dec r0
+ db2: d2 f7 brpl .-12 ; 0xda8 <__pack_f+0x7e>
+ db4: 81 e0 ldi r24, 0x01 ; 1
+ db6: 90 e0 ldi r25, 0x00 ; 0
+ db8: a0 e0 ldi r26, 0x00 ; 0
+ dba: b0 e0 ldi r27, 0x00 ; 0
+ dbc: 04 c0 rjmp .+8 ; 0xdc6 <__pack_f+0x9c>
+ dbe: 88 0f add r24, r24
+ dc0: 99 1f adc r25, r25
+ dc2: aa 1f adc r26, r26
+ dc4: bb 1f adc r27, r27
+ dc6: 2a 95 dec r18
+ dc8: d2 f7 brpl .-12 ; 0xdbe <__pack_f+0x94>
+ dca: 01 97 sbiw r24, 0x01 ; 1
+ dcc: a1 09 sbc r26, r1
+ dce: b1 09 sbc r27, r1
+ dd0: 8e 21 and r24, r14
+ dd2: 9f 21 and r25, r15
+ dd4: a0 23 and r26, r16
+ dd6: b1 23 and r27, r17
+ dd8: 00 97 sbiw r24, 0x00 ; 0
+ dda: a1 05 cpc r26, r1
+ ddc: b1 05 cpc r27, r1
+ dde: 21 f0 breq .+8 ; 0xde8 <__pack_f+0xbe>
+ de0: 81 e0 ldi r24, 0x01 ; 1
+ de2: 90 e0 ldi r25, 0x00 ; 0
+ de4: a0 e0 ldi r26, 0x00 ; 0
+ de6: b0 e0 ldi r27, 0x00 ; 0
+ de8: 9a 01 movw r18, r20
+ dea: ab 01 movw r20, r22
+ dec: 28 2b or r18, r24
+ dee: 39 2b or r19, r25
+ df0: 4a 2b or r20, r26
+ df2: 5b 2b or r21, r27
+ df4: da 01 movw r26, r20
+ df6: c9 01 movw r24, r18
+ df8: 8f 77 andi r24, 0x7F ; 127
+ dfa: 90 70 andi r25, 0x00 ; 0
+ dfc: a0 70 andi r26, 0x00 ; 0
+ dfe: b0 70 andi r27, 0x00 ; 0
+ e00: 80 34 cpi r24, 0x40 ; 64
+ e02: 91 05 cpc r25, r1
+ e04: a1 05 cpc r26, r1
+ e06: b1 05 cpc r27, r1
+ e08: 39 f4 brne .+14 ; 0xe18 <__pack_f+0xee>
+ e0a: 27 ff sbrs r18, 7
+ e0c: 09 c0 rjmp .+18 ; 0xe20 <__pack_f+0xf6>
+ e0e: 20 5c subi r18, 0xC0 ; 192
+ e10: 3f 4f sbci r19, 0xFF ; 255
+ e12: 4f 4f sbci r20, 0xFF ; 255
+ e14: 5f 4f sbci r21, 0xFF ; 255
+ e16: 04 c0 rjmp .+8 ; 0xe20 <__pack_f+0xf6>
+ e18: 21 5c subi r18, 0xC1 ; 193
+ e1a: 3f 4f sbci r19, 0xFF ; 255
+ e1c: 4f 4f sbci r20, 0xFF ; 255
+ e1e: 5f 4f sbci r21, 0xFF ; 255
+ e20: e0 e0 ldi r30, 0x00 ; 0
+ e22: f0 e0 ldi r31, 0x00 ; 0
+ e24: 20 30 cpi r18, 0x00 ; 0
+ e26: a0 e0 ldi r26, 0x00 ; 0
+ e28: 3a 07 cpc r19, r26
+ e2a: a0 e0 ldi r26, 0x00 ; 0
+ e2c: 4a 07 cpc r20, r26
+ e2e: a0 e4 ldi r26, 0x40 ; 64
+ e30: 5a 07 cpc r21, r26
+ e32: 10 f0 brcs .+4 ; 0xe38 <__pack_f+0x10e>
+ e34: e1 e0 ldi r30, 0x01 ; 1
+ e36: f0 e0 ldi r31, 0x00 ; 0
+ e38: 79 01 movw r14, r18
+ e3a: 8a 01 movw r16, r20
+ e3c: 27 c0 rjmp .+78 ; 0xe8c <__pack_f+0x162>
+ e3e: 60 38 cpi r22, 0x80 ; 128
+ e40: 71 05 cpc r23, r1
+ e42: 64 f5 brge .+88 ; 0xe9c <__pack_f+0x172>
+ e44: fb 01 movw r30, r22
+ e46: e1 58 subi r30, 0x81 ; 129
+ e48: ff 4f sbci r31, 0xFF ; 255
+ e4a: d8 01 movw r26, r16
+ e4c: c7 01 movw r24, r14
+ e4e: 8f 77 andi r24, 0x7F ; 127
+ e50: 90 70 andi r25, 0x00 ; 0
+ e52: a0 70 andi r26, 0x00 ; 0
+ e54: b0 70 andi r27, 0x00 ; 0
+ e56: 80 34 cpi r24, 0x40 ; 64
+ e58: 91 05 cpc r25, r1
+ e5a: a1 05 cpc r26, r1
+ e5c: b1 05 cpc r27, r1
+ e5e: 39 f4 brne .+14 ; 0xe6e <__pack_f+0x144>
+ e60: e7 fe sbrs r14, 7
+ e62: 0d c0 rjmp .+26 ; 0xe7e <__pack_f+0x154>
+ e64: 80 e4 ldi r24, 0x40 ; 64
+ e66: 90 e0 ldi r25, 0x00 ; 0
+ e68: a0 e0 ldi r26, 0x00 ; 0
+ e6a: b0 e0 ldi r27, 0x00 ; 0
+ e6c: 04 c0 rjmp .+8 ; 0xe76 <__pack_f+0x14c>
+ e6e: 8f e3 ldi r24, 0x3F ; 63
+ e70: 90 e0 ldi r25, 0x00 ; 0
+ e72: a0 e0 ldi r26, 0x00 ; 0
+ e74: b0 e0 ldi r27, 0x00 ; 0
+ e76: e8 0e add r14, r24
+ e78: f9 1e adc r15, r25
+ e7a: 0a 1f adc r16, r26
+ e7c: 1b 1f adc r17, r27
+ e7e: 17 ff sbrs r17, 7
+ e80: 05 c0 rjmp .+10 ; 0xe8c <__pack_f+0x162>
+ e82: 16 95 lsr r17
+ e84: 07 95 ror r16
+ e86: f7 94 ror r15
+ e88: e7 94 ror r14
+ e8a: 31 96 adiw r30, 0x01 ; 1
+ e8c: 87 e0 ldi r24, 0x07 ; 7
+ e8e: 16 95 lsr r17
+ e90: 07 95 ror r16
+ e92: f7 94 ror r15
+ e94: e7 94 ror r14
+ e96: 8a 95 dec r24
+ e98: d1 f7 brne .-12 ; 0xe8e <__pack_f+0x164>
+ e9a: 05 c0 rjmp .+10 ; 0xea6 <__pack_f+0x17c>
+ e9c: ee 24 eor r14, r14
+ e9e: ff 24 eor r15, r15
+ ea0: 87 01 movw r16, r14
+ ea2: ef ef ldi r30, 0xFF ; 255
+ ea4: f0 e0 ldi r31, 0x00 ; 0
+ ea6: 6e 2f mov r22, r30
+ ea8: 67 95 ror r22
+ eaa: 66 27 eor r22, r22
+ eac: 67 95 ror r22
+ eae: 90 2f mov r25, r16
+ eb0: 9f 77 andi r25, 0x7F ; 127
+ eb2: d7 94 ror r13
+ eb4: dd 24 eor r13, r13
+ eb6: d7 94 ror r13
+ eb8: 8e 2f mov r24, r30
+ eba: 86 95 lsr r24
+ ebc: 49 2f mov r20, r25
+ ebe: 46 2b or r20, r22
+ ec0: 58 2f mov r21, r24
+ ec2: 5d 29 or r21, r13
+ ec4: b7 01 movw r22, r14
+ ec6: ca 01 movw r24, r20
+ ec8: 1f 91 pop r17
+ eca: 0f 91 pop r16
+ ecc: ff 90 pop r15
+ ece: ef 90 pop r14
+ ed0: df 90 pop r13
+ ed2: 08 95 ret
+
+00000ed4 <__unpack_f>:
+ ed4: fc 01 movw r30, r24
+ ed6: db 01 movw r26, r22
+ ed8: 40 81 ld r20, Z
+ eda: 51 81 ldd r21, Z+1 ; 0x01
+ edc: 22 81 ldd r18, Z+2 ; 0x02
+ ede: 62 2f mov r22, r18
+ ee0: 6f 77 andi r22, 0x7F ; 127
+ ee2: 70 e0 ldi r23, 0x00 ; 0
+ ee4: 22 1f adc r18, r18
+ ee6: 22 27 eor r18, r18
+ ee8: 22 1f adc r18, r18
+ eea: 93 81 ldd r25, Z+3 ; 0x03
+ eec: 89 2f mov r24, r25
+ eee: 88 0f add r24, r24
+ ef0: 82 2b or r24, r18
+ ef2: 28 2f mov r18, r24
+ ef4: 30 e0 ldi r19, 0x00 ; 0
+ ef6: 99 1f adc r25, r25
+ ef8: 99 27 eor r25, r25
+ efa: 99 1f adc r25, r25
+ efc: 11 96 adiw r26, 0x01 ; 1
+ efe: 9c 93 st X, r25
+ f00: 11 97 sbiw r26, 0x01 ; 1
+ f02: 21 15 cp r18, r1
+ f04: 31 05 cpc r19, r1
+ f06: a9 f5 brne .+106 ; 0xf72 <__unpack_f+0x9e>
+ f08: 41 15 cp r20, r1
+ f0a: 51 05 cpc r21, r1
+ f0c: 61 05 cpc r22, r1
+ f0e: 71 05 cpc r23, r1
+ f10: 11 f4 brne .+4 ; 0xf16 <__unpack_f+0x42>
+ f12: 82 e0 ldi r24, 0x02 ; 2
+ f14: 37 c0 rjmp .+110 ; 0xf84 <__unpack_f+0xb0>
+ f16: 82 e8 ldi r24, 0x82 ; 130
+ f18: 9f ef ldi r25, 0xFF ; 255
+ f1a: 13 96 adiw r26, 0x03 ; 3
+ f1c: 9c 93 st X, r25
+ f1e: 8e 93 st -X, r24
+ f20: 12 97 sbiw r26, 0x02 ; 2
+ f22: 9a 01 movw r18, r20
+ f24: ab 01 movw r20, r22
+ f26: 67 e0 ldi r22, 0x07 ; 7
+ f28: 22 0f add r18, r18
+ f2a: 33 1f adc r19, r19
+ f2c: 44 1f adc r20, r20
+ f2e: 55 1f adc r21, r21
+ f30: 6a 95 dec r22
+ f32: d1 f7 brne .-12 ; 0xf28 <__unpack_f+0x54>
+ f34: 83 e0 ldi r24, 0x03 ; 3
+ f36: 8c 93 st X, r24
+ f38: 0d c0 rjmp .+26 ; 0xf54 <__unpack_f+0x80>
+ f3a: 22 0f add r18, r18
+ f3c: 33 1f adc r19, r19
+ f3e: 44 1f adc r20, r20
+ f40: 55 1f adc r21, r21
+ f42: 12 96 adiw r26, 0x02 ; 2
+ f44: 8d 91 ld r24, X+
+ f46: 9c 91 ld r25, X
+ f48: 13 97 sbiw r26, 0x03 ; 3
+ f4a: 01 97 sbiw r24, 0x01 ; 1
+ f4c: 13 96 adiw r26, 0x03 ; 3
+ f4e: 9c 93 st X, r25
+ f50: 8e 93 st -X, r24
+ f52: 12 97 sbiw r26, 0x02 ; 2
+ f54: 20 30 cpi r18, 0x00 ; 0
+ f56: 80 e0 ldi r24, 0x00 ; 0
+ f58: 38 07 cpc r19, r24
+ f5a: 80 e0 ldi r24, 0x00 ; 0
+ f5c: 48 07 cpc r20, r24
+ f5e: 80 e4 ldi r24, 0x40 ; 64
+ f60: 58 07 cpc r21, r24
+ f62: 58 f3 brcs .-42 ; 0xf3a <__unpack_f+0x66>
+ f64: 14 96 adiw r26, 0x04 ; 4
+ f66: 2d 93 st X+, r18
+ f68: 3d 93 st X+, r19
+ f6a: 4d 93 st X+, r20
+ f6c: 5c 93 st X, r21
+ f6e: 17 97 sbiw r26, 0x07 ; 7
+ f70: 08 95 ret
+ f72: 2f 3f cpi r18, 0xFF ; 255
+ f74: 31 05 cpc r19, r1
+ f76: 79 f4 brne .+30 ; 0xf96 <__unpack_f+0xc2>
+ f78: 41 15 cp r20, r1
+ f7a: 51 05 cpc r21, r1
+ f7c: 61 05 cpc r22, r1
+ f7e: 71 05 cpc r23, r1
+ f80: 19 f4 brne .+6 ; 0xf88 <__unpack_f+0xb4>
+ f82: 84 e0 ldi r24, 0x04 ; 4
+ f84: 8c 93 st X, r24
+ f86: 08 95 ret
+ f88: 64 ff sbrs r22, 4
+ f8a: 03 c0 rjmp .+6 ; 0xf92 <__unpack_f+0xbe>
+ f8c: 81 e0 ldi r24, 0x01 ; 1
+ f8e: 8c 93 st X, r24
+ f90: 12 c0 rjmp .+36 ; 0xfb6 <__unpack_f+0xe2>
+ f92: 1c 92 st X, r1
+ f94: 10 c0 rjmp .+32 ; 0xfb6 <__unpack_f+0xe2>
+ f96: 2f 57 subi r18, 0x7F ; 127
+ f98: 30 40 sbci r19, 0x00 ; 0
+ f9a: 13 96 adiw r26, 0x03 ; 3
+ f9c: 3c 93 st X, r19
+ f9e: 2e 93 st -X, r18
+ fa0: 12 97 sbiw r26, 0x02 ; 2
+ fa2: 83 e0 ldi r24, 0x03 ; 3
+ fa4: 8c 93 st X, r24
+ fa6: 87 e0 ldi r24, 0x07 ; 7
+ fa8: 44 0f add r20, r20
+ faa: 55 1f adc r21, r21
+ fac: 66 1f adc r22, r22
+ fae: 77 1f adc r23, r23
+ fb0: 8a 95 dec r24
+ fb2: d1 f7 brne .-12 ; 0xfa8 <__unpack_f+0xd4>
+ fb4: 70 64 ori r23, 0x40 ; 64
+ fb6: 14 96 adiw r26, 0x04 ; 4
+ fb8: 4d 93 st X+, r20
+ fba: 5d 93 st X+, r21
+ fbc: 6d 93 st X+, r22
+ fbe: 7c 93 st X, r23
+ fc0: 17 97 sbiw r26, 0x07 ; 7
+ fc2: 08 95 ret
+
+00000fc4 <__divmodhi4>:
+ fc4: 97 fb bst r25, 7
+ fc6: 09 2e mov r0, r25
+ fc8: 07 26 eor r0, r23
+ fca: 0a d0 rcall .+20 ; 0xfe0 <__divmodhi4_neg1>
+ fcc: 77 fd sbrc r23, 7
+ fce: 04 d0 rcall .+8 ; 0xfd8 <__divmodhi4_neg2>
+ fd0: 49 d0 rcall .+146 ; 0x1064 <__udivmodhi4>
+ fd2: 06 d0 rcall .+12 ; 0xfe0 <__divmodhi4_neg1>
+ fd4: 00 20 and r0, r0
+ fd6: 1a f4 brpl .+6 ; 0xfde <__divmodhi4_exit>
+
+00000fd8 <__divmodhi4_neg2>:
+ fd8: 70 95 com r23
+ fda: 61 95 neg r22
+ fdc: 7f 4f sbci r23, 0xFF ; 255
+
+00000fde <__divmodhi4_exit>:
+ fde: 08 95 ret
+
+00000fe0 <__divmodhi4_neg1>:
+ fe0: f6 f7 brtc .-4 ; 0xfde <__divmodhi4_exit>
+ fe2: 90 95 com r25
+ fe4: 81 95 neg r24
+ fe6: 9f 4f sbci r25, 0xFF ; 255
+ fe8: 08 95 ret
+
+00000fea <__udivmodsi4>:
+ fea: a1 e2 ldi r26, 0x21 ; 33
+ fec: 1a 2e mov r1, r26
+ fee: aa 1b sub r26, r26
+ ff0: bb 1b sub r27, r27
+ ff2: fd 01 movw r30, r26
+ ff4: 0d c0 rjmp .+26 ; 0x1010 <__udivmodsi4_ep>
+
+00000ff6 <__udivmodsi4_loop>:
+ ff6: aa 1f adc r26, r26
+ ff8: bb 1f adc r27, r27
+ ffa: ee 1f adc r30, r30
+ ffc: ff 1f adc r31, r31
+ ffe: a2 17 cp r26, r18
+ 1000: b3 07 cpc r27, r19
+ 1002: e4 07 cpc r30, r20
+ 1004: f5 07 cpc r31, r21
+ 1006: 20 f0 brcs .+8 ; 0x1010 <__udivmodsi4_ep>
+ 1008: a2 1b sub r26, r18
+ 100a: b3 0b sbc r27, r19
+ 100c: e4 0b sbc r30, r20
+ 100e: f5 0b sbc r31, r21
+
+00001010 <__udivmodsi4_ep>:
+ 1010: 66 1f adc r22, r22
+ 1012: 77 1f adc r23, r23
+ 1014: 88 1f adc r24, r24
+ 1016: 99 1f adc r25, r25
+ 1018: 1a 94 dec r1
+ 101a: 69 f7 brne .-38 ; 0xff6 <__udivmodsi4_loop>
+ 101c: 60 95 com r22
+ 101e: 70 95 com r23
+ 1020: 80 95 com r24
+ 1022: 90 95 com r25
+ 1024: 9b 01 movw r18, r22
+ 1026: ac 01 movw r20, r24
+ 1028: bd 01 movw r22, r26
+ 102a: cf 01 movw r24, r30
+ 102c: 08 95 ret
+
+0000102e <__divmodsi4>:
+ 102e: 97 fb bst r25, 7
+ 1030: 09 2e mov r0, r25
+ 1032: 05 26 eor r0, r21
+ 1034: 0e d0 rcall .+28 ; 0x1052 <__divmodsi4_neg1>
+ 1036: 57 fd sbrc r21, 7
+ 1038: 04 d0 rcall .+8 ; 0x1042 <__divmodsi4_neg2>
+ 103a: d7 df rcall .-82 ; 0xfea <__udivmodsi4>
+ 103c: 0a d0 rcall .+20 ; 0x1052 <__divmodsi4_neg1>
+ 103e: 00 1c adc r0, r0
+ 1040: 38 f4 brcc .+14 ; 0x1050 <__divmodsi4_exit>
+
+00001042 <__divmodsi4_neg2>:
+ 1042: 50 95 com r21
+ 1044: 40 95 com r20
+ 1046: 30 95 com r19
+ 1048: 21 95 neg r18
+ 104a: 3f 4f sbci r19, 0xFF ; 255
+ 104c: 4f 4f sbci r20, 0xFF ; 255
+ 104e: 5f 4f sbci r21, 0xFF ; 255
+
+00001050 <__divmodsi4_exit>:
+ 1050: 08 95 ret
+
+00001052 <__divmodsi4_neg1>:
+ 1052: f6 f7 brtc .-4 ; 0x1050 <__divmodsi4_exit>
+ 1054: 90 95 com r25
+ 1056: 80 95 com r24
+ 1058: 70 95 com r23
+ 105a: 61 95 neg r22
+ 105c: 7f 4f sbci r23, 0xFF ; 255
+ 105e: 8f 4f sbci r24, 0xFF ; 255
+ 1060: 9f 4f sbci r25, 0xFF ; 255
+ 1062: 08 95 ret
+
+00001064 <__udivmodhi4>:
+ 1064: aa 1b sub r26, r26
+ 1066: bb 1b sub r27, r27
+ 1068: 51 e1 ldi r21, 0x11 ; 17
+ 106a: 07 c0 rjmp .+14 ; 0x107a <__udivmodhi4_ep>
+
+0000106c <__udivmodhi4_loop>:
+ 106c: aa 1f adc r26, r26
+ 106e: bb 1f adc r27, r27
+ 1070: a6 17 cp r26, r22
+ 1072: b7 07 cpc r27, r23
+ 1074: 10 f0 brcs .+4 ; 0x107a <__udivmodhi4_ep>
+ 1076: a6 1b sub r26, r22
+ 1078: b7 0b sbc r27, r23
+
+0000107a <__udivmodhi4_ep>:
+ 107a: 88 1f adc r24, r24
+ 107c: 99 1f adc r25, r25
+ 107e: 5a 95 dec r21
+ 1080: a9 f7 brne .-22 ; 0x106c <__udivmodhi4_loop>
+ 1082: 80 95 com r24
+ 1084: 90 95 com r25
+ 1086: bc 01 movw r22, r24
+ 1088: cd 01 movw r24, r26
+ 108a: 08 95 ret
+
+0000108c <__prologue_saves__>:
+ 108c: 2f 92 push r2
+ 108e: 3f 92 push r3
+ 1090: 4f 92 push r4
+ 1092: 5f 92 push r5
+ 1094: 6f 92 push r6
+ 1096: 7f 92 push r7
+ 1098: 8f 92 push r8
+ 109a: 9f 92 push r9
+ 109c: af 92 push r10
+ 109e: bf 92 push r11
+ 10a0: cf 92 push r12
+ 10a2: df 92 push r13
+ 10a4: ef 92 push r14
+ 10a6: ff 92 push r15
+ 10a8: 0f 93 push r16
+ 10aa: 1f 93 push r17
+ 10ac: cf 93 push r28
+ 10ae: df 93 push r29
+ 10b0: cd b7 in r28, 0x3d ; 61
+ 10b2: de b7 in r29, 0x3e ; 62
+ 10b4: ca 1b sub r28, r26
+ 10b6: db 0b sbc r29, r27
+ 10b8: 0f b6 in r0, 0x3f ; 63
+ 10ba: f8 94 cli
+ 10bc: de bf out 0x3e, r29 ; 62
+ 10be: 0f be out 0x3f, r0 ; 63
+ 10c0: cd bf out 0x3d, r28 ; 61
+ 10c2: 09 94 ijmp
+
+000010c4 <__epilogue_restores__>:
+ 10c4: 2a 88 ldd r2, Y+18 ; 0x12
+ 10c6: 39 88 ldd r3, Y+17 ; 0x11
+ 10c8: 48 88 ldd r4, Y+16 ; 0x10
+ 10ca: 5f 84 ldd r5, Y+15 ; 0x0f
+ 10cc: 6e 84 ldd r6, Y+14 ; 0x0e
+ 10ce: 7d 84 ldd r7, Y+13 ; 0x0d
+ 10d0: 8c 84 ldd r8, Y+12 ; 0x0c
+ 10d2: 9b 84 ldd r9, Y+11 ; 0x0b
+ 10d4: aa 84 ldd r10, Y+10 ; 0x0a
+ 10d6: b9 84 ldd r11, Y+9 ; 0x09
+ 10d8: c8 84 ldd r12, Y+8 ; 0x08
+ 10da: df 80 ldd r13, Y+7 ; 0x07
+ 10dc: ee 80 ldd r14, Y+6 ; 0x06
+ 10de: fd 80 ldd r15, Y+5 ; 0x05
+ 10e0: 0c 81 ldd r16, Y+4 ; 0x04
+ 10e2: 1b 81 ldd r17, Y+3 ; 0x03
+ 10e4: aa 81 ldd r26, Y+2 ; 0x02
+ 10e6: b9 81 ldd r27, Y+1 ; 0x01
+ 10e8: ce 0f add r28, r30
+ 10ea: d1 1d adc r29, r1
+ 10ec: 0f b6 in r0, 0x3f ; 63
+ 10ee: f8 94 cli
+ 10f0: de bf out 0x3e, r29 ; 62
+ 10f2: 0f be out 0x3f, r0 ; 63
+ 10f4: cd bf out 0x3d, r28 ; 61
+ 10f6: ed 01 movw r28, r26
+ 10f8: 08 95 ret
+
+000010fa <__tablejump2__>:
+ 10fa: ee 0f add r30, r30
+ 10fc: ff 1f adc r31, r31
+
+000010fe <__tablejump__>:
+ 10fe: 05 90 lpm r0, Z+
+ 1100: f4 91 lpm r31, Z+
+ 1102: e0 2d mov r30, r0
+ 1104: 09 94 ijmp
+
+00001106 <sin>:
+ 1106: 9f 93 push r25
+ 1108: 05 d0 rcall .+10 ; 0x1114 <__fp_rempio2>
+ 110a: 0f 90 pop r0
+ 110c: 07 fc sbrc r0, 7
+ 110e: ee 5f subi r30, 0xFE ; 254
+ 1110: 28 c0 rjmp .+80 ; 0x1162 <__fp_sinus>
+ 1112: ce c0 rjmp .+412 ; 0x12b0 <__fp_nan>
+
+00001114 <__fp_rempio2>:
+ 1114: 3f d0 rcall .+126 ; 0x1194 <__fp_splitA>
+ 1116: e8 f3 brcs .-6 ; 0x1112 <sin+0xc>
+ 1118: e8 94 clt
+ 111a: e0 e0 ldi r30, 0x00 ; 0
+ 111c: bb 27 eor r27, r27
+ 111e: 9f 57 subi r25, 0x7F ; 127
+ 1120: f0 f0 brcs .+60 ; 0x115e <__fp_rempio2+0x4a>
+ 1122: 2a ed ldi r18, 0xDA ; 218
+ 1124: 3f e0 ldi r19, 0x0F ; 15
+ 1126: 49 ec ldi r20, 0xC9 ; 201
+ 1128: 06 c0 rjmp .+12 ; 0x1136 <__fp_rempio2+0x22>
+ 112a: ee 0f add r30, r30
+ 112c: bb 0f add r27, r27
+ 112e: 66 1f adc r22, r22
+ 1130: 77 1f adc r23, r23
+ 1132: 88 1f adc r24, r24
+ 1134: 28 f0 brcs .+10 ; 0x1140 <__fp_rempio2+0x2c>
+ 1136: b2 3a cpi r27, 0xA2 ; 162
+ 1138: 62 07 cpc r22, r18
+ 113a: 73 07 cpc r23, r19
+ 113c: 84 07 cpc r24, r20
+ 113e: 28 f0 brcs .+10 ; 0x114a <__fp_rempio2+0x36>
+ 1140: b2 5a subi r27, 0xA2 ; 162
+ 1142: 62 0b sbc r22, r18
+ 1144: 73 0b sbc r23, r19
+ 1146: 84 0b sbc r24, r20
+ 1148: e3 95 inc r30
+ 114a: 9a 95 dec r25
+ 114c: 72 f7 brpl .-36 ; 0x112a <__fp_rempio2+0x16>
+ 114e: 80 38 cpi r24, 0x80 ; 128
+ 1150: 30 f4 brcc .+12 ; 0x115e <__fp_rempio2+0x4a>
+ 1152: 9a 95 dec r25
+ 1154: bb 0f add r27, r27
+ 1156: 66 1f adc r22, r22
+ 1158: 77 1f adc r23, r23
+ 115a: 88 1f adc r24, r24
+ 115c: d2 f7 brpl .-12 ; 0x1152 <__fp_rempio2+0x3e>
+ 115e: 90 48 sbci r25, 0x80 ; 128
+ 1160: 9b c0 rjmp .+310 ; 0x1298 <__fp_mpack_finite>
+
+00001162 <__fp_sinus>:
+ 1162: ef 93 push r30
+ 1164: e0 ff sbrs r30, 0
+ 1166: 06 c0 rjmp .+12 ; 0x1174 <__fp_sinus+0x12>
+ 1168: a2 ea ldi r26, 0xA2 ; 162
+ 116a: 2a ed ldi r18, 0xDA ; 218
+ 116c: 3f e0 ldi r19, 0x0F ; 15
+ 116e: 49 ec ldi r20, 0xC9 ; 201
+ 1170: 5f eb ldi r21, 0xBF ; 191
+ 1172: 37 d0 rcall .+110 ; 0x11e2 <__addsf3x>
+ 1174: bf d0 rcall .+382 ; 0x12f4 <__fp_round>
+ 1176: 0f 90 pop r0
+ 1178: 03 94 inc r0
+ 117a: 01 fc sbrc r0, 1
+ 117c: 90 58 subi r25, 0x80 ; 128
+ 117e: e8 e6 ldi r30, 0x68 ; 104
+ 1180: f0 e0 ldi r31, 0x00 ; 0
+ 1182: 99 c0 rjmp .+306 ; 0x12b6 <__fp_powsodd>
+
+00001184 <__fp_split3>:
+ 1184: 57 fd sbrc r21, 7
+ 1186: 90 58 subi r25, 0x80 ; 128
+ 1188: 44 0f add r20, r20
+ 118a: 55 1f adc r21, r21
+ 118c: 59 f0 breq .+22 ; 0x11a4 <__fp_splitA+0x10>
+ 118e: 5f 3f cpi r21, 0xFF ; 255
+ 1190: 71 f0 breq .+28 ; 0x11ae <__fp_splitA+0x1a>
+ 1192: 47 95 ror r20
+
+00001194 <__fp_splitA>:
+ 1194: 88 0f add r24, r24
+ 1196: 97 fb bst r25, 7
+ 1198: 99 1f adc r25, r25
+ 119a: 61 f0 breq .+24 ; 0x11b4 <__fp_splitA+0x20>
+ 119c: 9f 3f cpi r25, 0xFF ; 255
+ 119e: 79 f0 breq .+30 ; 0x11be <__fp_splitA+0x2a>
+ 11a0: 87 95 ror r24
+ 11a2: 08 95 ret
+ 11a4: 12 16 cp r1, r18
+ 11a6: 13 06 cpc r1, r19
+ 11a8: 14 06 cpc r1, r20
+ 11aa: 55 1f adc r21, r21
+ 11ac: f2 cf rjmp .-28 ; 0x1192 <__fp_split3+0xe>
+ 11ae: 46 95 lsr r20
+ 11b0: f1 df rcall .-30 ; 0x1194 <__fp_splitA>
+ 11b2: 08 c0 rjmp .+16 ; 0x11c4 <__fp_splitA+0x30>
+ 11b4: 16 16 cp r1, r22
+ 11b6: 17 06 cpc r1, r23
+ 11b8: 18 06 cpc r1, r24
+ 11ba: 99 1f adc r25, r25
+ 11bc: f1 cf rjmp .-30 ; 0x11a0 <__fp_splitA+0xc>
+ 11be: 86 95 lsr r24
+ 11c0: 71 05 cpc r23, r1
+ 11c2: 61 05 cpc r22, r1
+ 11c4: 08 94 sec
+ 11c6: 08 95 ret
+ 11c8: 87 d0 rcall .+270 ; 0x12d8 <__fp_pscA>
+ 11ca: 30 f0 brcs .+12 ; 0x11d8 <__fp_splitA+0x44>
+ 11cc: 8c d0 rcall .+280 ; 0x12e6 <__fp_pscB>
+ 11ce: 20 f0 brcs .+8 ; 0x11d8 <__fp_splitA+0x44>
+ 11d0: 31 f4 brne .+12 ; 0x11de <__fp_splitA+0x4a>
+ 11d2: 9f 3f cpi r25, 0xFF ; 255
+ 11d4: 11 f4 brne .+4 ; 0x11da <__fp_splitA+0x46>
+ 11d6: 1e f4 brtc .+6 ; 0x11de <__fp_splitA+0x4a>
+ 11d8: 6b c0 rjmp .+214 ; 0x12b0 <__fp_nan>
+ 11da: 0e f4 brtc .+2 ; 0x11de <__fp_splitA+0x4a>
+ 11dc: e0 95 com r30
+ 11de: e7 fb bst r30, 7
+ 11e0: 53 c0 rjmp .+166 ; 0x1288 <__fp_inf>
+
+000011e2 <__addsf3x>:
+ 11e2: e9 2f mov r30, r25
+ 11e4: cf df rcall .-98 ; 0x1184 <__fp_split3>
+ 11e6: 80 f3 brcs .-32 ; 0x11c8 <__fp_splitA+0x34>
+ 11e8: ba 17 cp r27, r26
+ 11ea: 62 07 cpc r22, r18
+ 11ec: 73 07 cpc r23, r19
+ 11ee: 84 07 cpc r24, r20
+ 11f0: 95 07 cpc r25, r21
+ 11f2: 18 f0 brcs .+6 ; 0x11fa <__addsf3x+0x18>
+ 11f4: 71 f4 brne .+28 ; 0x1212 <__addsf3x+0x30>
+ 11f6: 9e f5 brtc .+102 ; 0x125e <__addsf3x+0x7c>
+ 11f8: 8e c0 rjmp .+284 ; 0x1316 <__fp_zero>
+ 11fa: 0e f4 brtc .+2 ; 0x11fe <__addsf3x+0x1c>
+ 11fc: e0 95 com r30
+ 11fe: 0b 2e mov r0, r27
+ 1200: ba 2f mov r27, r26
+ 1202: a0 2d mov r26, r0
+ 1204: 0b 01 movw r0, r22
+ 1206: b9 01 movw r22, r18
+ 1208: 90 01 movw r18, r0
+ 120a: 0c 01 movw r0, r24
+ 120c: ca 01 movw r24, r20
+ 120e: a0 01 movw r20, r0
+ 1210: 11 24 eor r1, r1
+ 1212: ff 27 eor r31, r31
+ 1214: 59 1b sub r21, r25
+ 1216: 99 f0 breq .+38 ; 0x123e <__addsf3x+0x5c>
+ 1218: 59 3f cpi r21, 0xF9 ; 249
+ 121a: 50 f4 brcc .+20 ; 0x1230 <__addsf3x+0x4e>
+ 121c: 50 3e cpi r21, 0xE0 ; 224
+ 121e: 68 f1 brcs .+90 ; 0x127a <__addsf3x+0x98>
+ 1220: 1a 16 cp r1, r26
+ 1222: f0 40 sbci r31, 0x00 ; 0
+ 1224: a2 2f mov r26, r18
+ 1226: 23 2f mov r18, r19
+ 1228: 34 2f mov r19, r20
+ 122a: 44 27 eor r20, r20
+ 122c: 58 5f subi r21, 0xF8 ; 248
+ 122e: f3 cf rjmp .-26 ; 0x1216 <__addsf3x+0x34>
+ 1230: 46 95 lsr r20
+ 1232: 37 95 ror r19
+ 1234: 27 95 ror r18
+ 1236: a7 95 ror r26
+ 1238: f0 40 sbci r31, 0x00 ; 0
+ 123a: 53 95 inc r21
+ 123c: c9 f7 brne .-14 ; 0x1230 <__addsf3x+0x4e>
+ 123e: 7e f4 brtc .+30 ; 0x125e <__addsf3x+0x7c>
+ 1240: 1f 16 cp r1, r31
+ 1242: ba 0b sbc r27, r26
+ 1244: 62 0b sbc r22, r18
+ 1246: 73 0b sbc r23, r19
+ 1248: 84 0b sbc r24, r20
+ 124a: ba f0 brmi .+46 ; 0x127a <__addsf3x+0x98>
+ 124c: 91 50 subi r25, 0x01 ; 1
+ 124e: a1 f0 breq .+40 ; 0x1278 <__addsf3x+0x96>
+ 1250: ff 0f add r31, r31
+ 1252: bb 1f adc r27, r27
+ 1254: 66 1f adc r22, r22
+ 1256: 77 1f adc r23, r23
+ 1258: 88 1f adc r24, r24
+ 125a: c2 f7 brpl .-16 ; 0x124c <__addsf3x+0x6a>
+ 125c: 0e c0 rjmp .+28 ; 0x127a <__addsf3x+0x98>
+ 125e: ba 0f add r27, r26
+ 1260: 62 1f adc r22, r18
+ 1262: 73 1f adc r23, r19
+ 1264: 84 1f adc r24, r20
+ 1266: 48 f4 brcc .+18 ; 0x127a <__addsf3x+0x98>
+ 1268: 87 95 ror r24
+ 126a: 77 95 ror r23
+ 126c: 67 95 ror r22
+ 126e: b7 95 ror r27
+ 1270: f7 95 ror r31
+ 1272: 9e 3f cpi r25, 0xFE ; 254
+ 1274: 08 f0 brcs .+2 ; 0x1278 <__addsf3x+0x96>
+ 1276: b3 cf rjmp .-154 ; 0x11de <__fp_splitA+0x4a>
+ 1278: 93 95 inc r25
+ 127a: 88 0f add r24, r24
+ 127c: 08 f0 brcs .+2 ; 0x1280 <__addsf3x+0x9e>
+ 127e: 99 27 eor r25, r25
+ 1280: ee 0f add r30, r30
+ 1282: 97 95 ror r25
+ 1284: 87 95 ror r24
+ 1286: 08 95 ret
+
+00001288 <__fp_inf>:
+ 1288: 97 f9 bld r25, 7
+ 128a: 9f 67 ori r25, 0x7F ; 127
+ 128c: 80 e8 ldi r24, 0x80 ; 128
+ 128e: 70 e0 ldi r23, 0x00 ; 0
+ 1290: 60 e0 ldi r22, 0x00 ; 0
+ 1292: 08 95 ret
+
+00001294 <__fp_mpack>:
+ 1294: 9f 3f cpi r25, 0xFF ; 255
+ 1296: 31 f0 breq .+12 ; 0x12a4 <__fp_mpack_finite+0xc>
+
+00001298 <__fp_mpack_finite>:
+ 1298: 91 50 subi r25, 0x01 ; 1
+ 129a: 20 f4 brcc .+8 ; 0x12a4 <__fp_mpack_finite+0xc>
+ 129c: 87 95 ror r24
+ 129e: 77 95 ror r23
+ 12a0: 67 95 ror r22
+ 12a2: b7 95 ror r27
+ 12a4: 88 0f add r24, r24
+ 12a6: 91 1d adc r25, r1
+ 12a8: 96 95 lsr r25
+ 12aa: 87 95 ror r24
+ 12ac: 97 f9 bld r25, 7
+ 12ae: 08 95 ret
+
+000012b0 <__fp_nan>:
+ 12b0: 9f ef ldi r25, 0xFF ; 255
+ 12b2: 80 ec ldi r24, 0xC0 ; 192
+ 12b4: 08 95 ret
+
+000012b6 <__fp_powsodd>:
+ 12b6: 9f 93 push r25
+ 12b8: 8f 93 push r24
+ 12ba: 7f 93 push r23
+ 12bc: 6f 93 push r22
+ 12be: ff 93 push r31
+ 12c0: ef 93 push r30
+ 12c2: 9b 01 movw r18, r22
+ 12c4: ac 01 movw r20, r24
+ 12c6: e3 db rcall .-2106 ; 0xa8e <__mulsf3>
+ 12c8: ef 91 pop r30
+ 12ca: ff 91 pop r31
+ 12cc: 2b d0 rcall .+86 ; 0x1324 <__fp_powser>
+ 12ce: 2f 91 pop r18
+ 12d0: 3f 91 pop r19
+ 12d2: 4f 91 pop r20
+ 12d4: 5f 91 pop r21
+ 12d6: db cb rjmp .-2122 ; 0xa8e <__mulsf3>
+
+000012d8 <__fp_pscA>:
+ 12d8: 00 24 eor r0, r0
+ 12da: 0a 94 dec r0
+ 12dc: 16 16 cp r1, r22
+ 12de: 17 06 cpc r1, r23
+ 12e0: 18 06 cpc r1, r24
+ 12e2: 09 06 cpc r0, r25
+ 12e4: 08 95 ret
+
+000012e6 <__fp_pscB>:
+ 12e6: 00 24 eor r0, r0
+ 12e8: 0a 94 dec r0
+ 12ea: 12 16 cp r1, r18
+ 12ec: 13 06 cpc r1, r19
+ 12ee: 14 06 cpc r1, r20
+ 12f0: 05 06 cpc r0, r21
+ 12f2: 08 95 ret
+
+000012f4 <__fp_round>:
+ 12f4: 09 2e mov r0, r25
+ 12f6: 03 94 inc r0
+ 12f8: 00 0c add r0, r0
+ 12fa: 11 f4 brne .+4 ; 0x1300 <__fp_round+0xc>
+ 12fc: 88 23 and r24, r24
+ 12fe: 52 f0 brmi .+20 ; 0x1314 <__fp_round+0x20>
+ 1300: bb 0f add r27, r27
+ 1302: 40 f4 brcc .+16 ; 0x1314 <__fp_round+0x20>
+ 1304: bf 2b or r27, r31
+ 1306: 11 f4 brne .+4 ; 0x130c <__fp_round+0x18>
+ 1308: 60 ff sbrs r22, 0
+ 130a: 04 c0 rjmp .+8 ; 0x1314 <__fp_round+0x20>
+ 130c: 6f 5f subi r22, 0xFF ; 255
+ 130e: 7f 4f sbci r23, 0xFF ; 255
+ 1310: 8f 4f sbci r24, 0xFF ; 255
+ 1312: 9f 4f sbci r25, 0xFF ; 255
+ 1314: 08 95 ret
+
+00001316 <__fp_zero>:
+ 1316: e8 94 clt
+
+00001318 <__fp_szero>:
+ 1318: bb 27 eor r27, r27
+ 131a: 66 27 eor r22, r22
+ 131c: 77 27 eor r23, r23
+ 131e: cb 01 movw r24, r22
+ 1320: 97 f9 bld r25, 7
+ 1322: 08 95 ret
+
+00001324 <__fp_powser>:
+ 1324: df 93 push r29
+ 1326: cf 93 push r28
+ 1328: 1f 93 push r17
+ 132a: 0f 93 push r16
+ 132c: ff 92 push r15
+ 132e: ef 92 push r14
+ 1330: df 92 push r13
+ 1332: 7b 01 movw r14, r22
+ 1334: 8c 01 movw r16, r24
+ 1336: 68 94 set
+ 1338: 05 c0 rjmp .+10 ; 0x1344 <__fp_powser+0x20>
+ 133a: da 2e mov r13, r26
+ 133c: ef 01 movw r28, r30
+ 133e: 21 d0 rcall .+66 ; 0x1382 <__mulsf3x>
+ 1340: fe 01 movw r30, r28
+ 1342: e8 94 clt
+ 1344: a5 91 lpm r26, Z+
+ 1346: 25 91 lpm r18, Z+
+ 1348: 35 91 lpm r19, Z+
+ 134a: 45 91 lpm r20, Z+
+ 134c: 55 91 lpm r21, Z+
+ 134e: ae f3 brts .-22 ; 0x133a <__fp_powser+0x16>
+ 1350: ef 01 movw r28, r30
+ 1352: 47 df rcall .-370 ; 0x11e2 <__addsf3x>
+ 1354: fe 01 movw r30, r28
+ 1356: 97 01 movw r18, r14
+ 1358: a8 01 movw r20, r16
+ 135a: da 94 dec r13
+ 135c: 79 f7 brne .-34 ; 0x133c <__fp_powser+0x18>
+ 135e: df 90 pop r13
+ 1360: ef 90 pop r14
+ 1362: ff 90 pop r15
+ 1364: 0f 91 pop r16
+ 1366: 1f 91 pop r17
+ 1368: cf 91 pop r28
+ 136a: df 91 pop r29
+ 136c: 08 95 ret
+ 136e: b4 df rcall .-152 ; 0x12d8 <__fp_pscA>
+ 1370: 28 f0 brcs .+10 ; 0x137c <__fp_powser+0x58>
+ 1372: b9 df rcall .-142 ; 0x12e6 <__fp_pscB>
+ 1374: 18 f0 brcs .+6 ; 0x137c <__fp_powser+0x58>
+ 1376: 95 23 and r25, r21
+ 1378: 09 f0 breq .+2 ; 0x137c <__fp_powser+0x58>
+ 137a: 86 cf rjmp .-244 ; 0x1288 <__fp_inf>
+ 137c: 99 cf rjmp .-206 ; 0x12b0 <__fp_nan>
+ 137e: 11 24 eor r1, r1
+ 1380: cb cf rjmp .-106 ; 0x1318 <__fp_szero>
+
+00001382 <__mulsf3x>:
+ 1382: 00 df rcall .-512 ; 0x1184 <__fp_split3>
+ 1384: a0 f3 brcs .-24 ; 0x136e <__fp_powser+0x4a>
+
+00001386 <__mulsf3_pse>:
+ 1386: 95 9f mul r25, r21
+ 1388: d1 f3 breq .-12 ; 0x137e <__fp_powser+0x5a>
+ 138a: 95 0f add r25, r21
+ 138c: 50 e0 ldi r21, 0x00 ; 0
+ 138e: 55 1f adc r21, r21
+ 1390: 62 9f mul r22, r18
+ 1392: f0 01 movw r30, r0
+ 1394: 72 9f mul r23, r18
+ 1396: bb 27 eor r27, r27
+ 1398: f0 0d add r31, r0
+ 139a: b1 1d adc r27, r1
+ 139c: 63 9f mul r22, r19
+ 139e: aa 27 eor r26, r26
+ 13a0: f0 0d add r31, r0
+ 13a2: b1 1d adc r27, r1
+ 13a4: aa 1f adc r26, r26
+ 13a6: 64 9f mul r22, r20
+ 13a8: 66 27 eor r22, r22
+ 13aa: b0 0d add r27, r0
+ 13ac: a1 1d adc r26, r1
+ 13ae: 66 1f adc r22, r22
+ 13b0: 82 9f mul r24, r18
+ 13b2: 22 27 eor r18, r18
+ 13b4: b0 0d add r27, r0
+ 13b6: a1 1d adc r26, r1
+ 13b8: 62 1f adc r22, r18
+ 13ba: 73 9f mul r23, r19
+ 13bc: b0 0d add r27, r0
+ 13be: a1 1d adc r26, r1
+ 13c0: 62 1f adc r22, r18
+ 13c2: 83 9f mul r24, r19
+ 13c4: a0 0d add r26, r0
+ 13c6: 61 1d adc r22, r1
+ 13c8: 22 1f adc r18, r18
+ 13ca: 74 9f mul r23, r20
+ 13cc: 33 27 eor r19, r19
+ 13ce: a0 0d add r26, r0
+ 13d0: 61 1d adc r22, r1
+ 13d2: 23 1f adc r18, r19
+ 13d4: 84 9f mul r24, r20
+ 13d6: 60 0d add r22, r0
+ 13d8: 21 1d adc r18, r1
+ 13da: 82 2f mov r24, r18
+ 13dc: 76 2f mov r23, r22
+ 13de: 6a 2f mov r22, r26
+ 13e0: 11 24 eor r1, r1
+ 13e2: 9f 57 subi r25, 0x7F ; 127
+ 13e4: 50 40 sbci r21, 0x00 ; 0
+ 13e6: 8a f0 brmi .+34 ; 0x140a <__mulsf3_pse+0x84>
+ 13e8: e1 f0 breq .+56 ; 0x1422 <__mulsf3_pse+0x9c>
+ 13ea: 88 23 and r24, r24
+ 13ec: 4a f0 brmi .+18 ; 0x1400 <__mulsf3_pse+0x7a>
+ 13ee: ee 0f add r30, r30
+ 13f0: ff 1f adc r31, r31
+ 13f2: bb 1f adc r27, r27
+ 13f4: 66 1f adc r22, r22
+ 13f6: 77 1f adc r23, r23
+ 13f8: 88 1f adc r24, r24
+ 13fa: 91 50 subi r25, 0x01 ; 1
+ 13fc: 50 40 sbci r21, 0x00 ; 0
+ 13fe: a9 f7 brne .-22 ; 0x13ea <__mulsf3_pse+0x64>
+ 1400: 9e 3f cpi r25, 0xFE ; 254
+ 1402: 51 05 cpc r21, r1
+ 1404: 70 f0 brcs .+28 ; 0x1422 <__mulsf3_pse+0x9c>
+ 1406: 40 cf rjmp .-384 ; 0x1288 <__fp_inf>
+ 1408: 87 cf rjmp .-242 ; 0x1318 <__fp_szero>
+ 140a: 5f 3f cpi r21, 0xFF ; 255
+ 140c: ec f3 brlt .-6 ; 0x1408 <__mulsf3_pse+0x82>
+ 140e: 98 3e cpi r25, 0xE8 ; 232
+ 1410: dc f3 brlt .-10 ; 0x1408 <__mulsf3_pse+0x82>
+ 1412: 86 95 lsr r24
+ 1414: 77 95 ror r23
+ 1416: 67 95 ror r22
+ 1418: b7 95 ror r27
+ 141a: f7 95 ror r31
+ 141c: e7 95 ror r30
+ 141e: 9f 5f subi r25, 0xFF ; 255
+ 1420: c1 f7 brne .-16 ; 0x1412 <__mulsf3_pse+0x8c>
+ 1422: fe 2b or r31, r30
+ 1424: 88 0f add r24, r24
+ 1426: 91 1d adc r25, r1
+ 1428: 96 95 lsr r25
+ 142a: 87 95 ror r24
+ 142c: 97 f9 bld r25, 7
+ 142e: 08 95 ret
+
+00001430 <_exit>:
+ 1430: f8 94 cli
+
+00001432 <__stop_program>:
+ 1432: ff cf rjmp .-2 ; 0x1432 <__stop_program>
diff --git a/electic_streaming328p/bin/Release/electic_streaming.elf.map b/electic_streaming328p/bin/Release/electic_streaming.elf.map
new file mode 100644
index 0000000..c007630
--- /dev/null
+++ b/electic_streaming328p/bin/Release/electic_streaming.elf.map
@@ -0,0 +1,897 @@
+Archive member included because of file (symbol)
+
+../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o (Serial)
+../arduino_libs/core328p.a(Print.cpp.o)
+ obj/Release/main.o (Print::println(char const*))
+../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o) (beginSerial)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ obj/Release/main.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ ../arduino_libs/core328p.a(Print.cpp.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ obj/Release/main.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ obj/Release/main.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o) (__do_global_ctors)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/main.o (__addsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ obj/Release/main.o (__mulsf3)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/main.o (__fixsfsi)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__thenan_sf)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o) (__tablejump__)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__pack_f)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o) (__unpack_f)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Release/main.o (sin)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_rempio2)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o) (__fp_sinus)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_splitA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__addsf3x)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_mpack_finite)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o) (__fp_nan)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_powsodd)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o) (__fp_round)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o) (__fp_powser)
+/usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o) (__mulsf3x)
+
+Allocating common symbols
+Common symbol size file
+
+rx_buffer 0x80 ../arduino_libs/core328p.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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD obj/Release/main.o
+LOAD ../arduino_libs/core328p.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x1434
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ .progmem.gcc_fplib
+ 0x00000068 0x1e /usr/lib/gcc/avr/4.3.5/../../../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/core328p.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.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000088 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000088 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000094 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ 0x00000094 __do_copy_data
+ .init4 0x000000aa 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x000000aa __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ .init6 0x000000ba 0x16 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ 0x000000ba __do_global_ctors
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x000000d0 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x000000d8 0x4 /usr/lib/gcc/avr/4.3.5/../../../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 0x1a0 obj/Release/main.o
+ 0x000000dc __vector_11
+ 0x00000178 fill_sinewave()
+ 0x00000204 main
+ .text 0x0000027c 0x32 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x0000028a HardwareSerial::write(unsigned char)
+ 0x00000292 HardwareSerial::flush()
+ 0x00000298 HardwareSerial::read()
+ 0x0000029e HardwareSerial::available()
+ 0x000002a4 HardwareSerial::begin(long)
+ .text 0x000002ae 0x31e ../arduino_libs/core328p.a(Print.cpp.o)
+ 0x000002ae Print::print(unsigned char)
+ 0x000002be Print::print(char)
+ 0x000002ce Print::print(char const*)
+ 0x000002fe Print::println()
+ 0x0000032c Print::println(char)
+ 0x0000034c Print::println(char const*)
+ 0x00000362 Print::println(unsigned char)
+ 0x00000382 Print::printNumber(unsigned long, unsigned char)
+ 0x000004b2 Print::print(unsigned long)
+ 0x000004ba Print::println(unsigned long)
+ 0x000004d0 Print::print(unsigned int)
+ 0x000004dc Print::println(unsigned int)
+ 0x000004f8 Print::print(long)
+ 0x00000546 Print::println(long)
+ 0x0000055c Print::print(int)
+ 0x0000056c Print::println(int)
+ 0x0000058c Print::print(long, int)
+ 0x000005b6 Print::println(long, int)
+ .text 0x000005cc 0x16e ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x000005cc beginSerial
+ 0x0000063e serialWrite
+ 0x0000064e serialAvailable
+ 0x00000670 serialRead
+ 0x000006ae serialFlush
+ 0x000006c0 __vector_18
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000073a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text 0x0000073a 0x354 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ 0x000009d2 __subsf3
+ 0x00000a34 __addsf3
+ .text 0x00000a8e 0x1f4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ 0x00000a8e __mulsf3
+ .text 0x00000c82 0xa8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ 0x00000c82 __fixsfsi
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .text 0x00000d2a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .text 0x00000d2a 0x1aa /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ 0x00000d2a __pack_f
+ .text 0x00000ed4 0xf0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ 0x00000ed4 __unpack_f
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .text 0x00000fc4 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x00000fc4 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000fc4 0x26 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ 0x00000fc4 __divmodhi4
+ 0x00000fc4 _div
+ .text.libgcc 0x00000fea 0x44 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00000fea __udivmodsi4
+ .text.libgcc 0x0000102e 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000102e __divmodsi4
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x00001064 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x00001064 0x28 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00001064 __udivmodhi4
+ .text.libgcc 0x0000108c 0x38 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ 0x0000108c __prologue_saves__
+ .text.libgcc 0x000010c4 0x36 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ 0x000010c4 __epilogue_restores__
+ .text.libgcc 0x000010fa 0xc /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ 0x000010fa __tablejump2__
+ 0x000010fe __tablejump__
+ .text.avr-libc.fplib
+ 0x00001106 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x00001106 sin
+ .text.avr-libc.fplib
+ 0x00001112 0x50 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x00001114 __fp_rempio2
+ .text.avr-libc.fplib
+ 0x00001162 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x00001162 __fp_sinus
+ .text.avr-libc.fplib
+ 0x00001184 0x44 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x00001184 __fp_split3
+ 0x00001194 __fp_splitA
+ .text.avr-libc.fplib
+ 0x000011c8 0xc0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x000011e2 __addsf3x
+ .text.avr-libc.fplib
+ 0x00001288 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x00001288 __fp_inf
+ .text.avr-libc.fplib
+ 0x00001294 0x1c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0x00001294 __fp_mpack
+ 0x00001298 __fp_mpack_finite
+ .text.avr-libc.fplib
+ 0x000012b0 0x6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x000012b0 __fp_nan
+ .text.avr-libc.fplib
+ 0x000012b6 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x000012b6 __fp_powsodd
+ .text.avr-libc.fplib
+ 0x000012d8 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x000012d8 __fp_pscA
+ .text.avr-libc.fplib
+ 0x000012e6 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x000012e6 __fp_pscB
+ .text.avr-libc.fplib
+ 0x000012f4 0x22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x000012f4 __fp_round
+ .text.avr-libc.fplib
+ 0x00001316 0xe /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x00001316 __fp_zero
+ 0x00001318 __fp_szero
+ .text.avr-libc.fplib
+ 0x00001324 0x4a /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x00001324 __fp_powser
+ .text.avr-libc.fplib
+ 0x0000136e 0xc2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x00001382 __mulsf3x
+ 0x00001386 __mulsf3_pse
+ 0x00001430 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00001430 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x00001430 exit
+ 0x00001430 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00001430 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00001434 _etext = .
+
+.data 0x00800100 0x22 load address 0x00001434
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x13 obj/Release/main.o
+ .data 0x00800113 0x6 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x00800113 vtable for HardwareSerial
+ .data 0x00800119 0x0 ../arduino_libs/core328p.a(Print.cpp.o)
+ .data 0x00800119 0x0 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .data 0x00800119 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .data 0x00800119 0x8 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ 0x00800119 __thenan_sf
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .data 0x00800121 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800122 . = ALIGN (0x2)
+ *fill* 0x00800121 0x1 00
+ 0x00800122 _edata = .
+ 0x00800122 PROVIDE (__data_end, .)
+
+.bss 0x00800122 0x28a
+ 0x00800122 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800122 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800122 0x204 obj/Release/main.o
+ 0x00800122 dd
+ 0x00800322 loopCount
+ 0x00800324 sample
+ .bss 0x00800326 0x2 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x00800326 Serial
+ .bss 0x00800328 0x0 ../arduino_libs/core328p.a(Print.cpp.o)
+ .bss 0x00800328 0x4 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x00800328 rx_buffer_head
+ 0x0080032a rx_buffer_tail
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ .bss 0x0080032c 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x0080032c 0x80 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x0080032c rx_buffer
+ 0x008003ac PROVIDE (__bss_end, .)
+ 0x00001434 __data_load_start = LOADADDR (.data)
+ 0x00001456 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x008003ac 0x0
+ 0x008003ac PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x008003ac PROVIDE (__noinit_end, .)
+ 0x008003ac _end = .
+ 0x008003ac PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x1cd4
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ 0x84 (size before relaxing)
+ .stab 0x0000072c 0x21c /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ 0x228 (size before relaxing)
+ .stab 0x00000948 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ 0x108 (size before relaxing)
+ .stab 0x00000a44 0x1d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x1e0 (size before relaxing)
+ .stab 0x00000c18 0x4bc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x4c8 (size before relaxing)
+ .stab 0x000010d4 0x78 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x84 (size before relaxing)
+ .stab 0x0000114c 0xe4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ 0xf0 (size before relaxing)
+ .stab 0x00001230 0x54 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x60 (size before relaxing)
+ .stab 0x00001284 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001380 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001404 0x84 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x90 (size before relaxing)
+ .stab 0x00001488 0xfc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x108 (size before relaxing)
+ .stab 0x00001584 0x90 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x9c (size before relaxing)
+ .stab 0x00001614 0x1ec /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ 0x1f8 (size before relaxing)
+ .stab 0x00001800 0x4d4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x4e0 (size before relaxing)
+
+.stabstr 0x00000000 0x30d
+ *(.stabstr)
+ .stabstr 0x00000000 0x30d /usr/lib/gcc/avr/4.3.5/../../../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/core328p.a(HardwareSerial.cpp.o)
+ .debug_aranges
+ 0x00000020 0x20 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_aranges
+ 0x00000040 0x20 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_pubnames
+ 0x00000000 0x2a7
+ *(.debug_pubnames)
+ .debug_pubnames
+ 0x00000000 0xa2 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_pubnames
+ 0x000000a2 0x15c ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_pubnames
+ 0x000001fe 0xa9 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_info 0x00000000 0xd0b
+ *(.debug_info)
+ .debug_info 0x00000000 0x2f0 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_info 0x000002f0 0x890 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_info 0x00000b80 0x18b ../arduino_libs/core328p.a(wiring_serial.c.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev 0x00000000 0x3f7
+ *(.debug_abbrev)
+ .debug_abbrev 0x00000000 0x18e ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_abbrev 0x0000018e 0x183 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_abbrev 0x00000311 0xe6 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_line 0x00000000 0x689
+ *(.debug_line)
+ .debug_line 0x00000000 0x1b5 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_line 0x000001b5 0x364 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_line 0x00000519 0x170 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_frame 0x00000000 0x210
+ *(.debug_frame)
+ .debug_frame 0x00000000 0x70 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_frame 0x00000070 0x130 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_frame 0x000001a0 0x70 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_str 0x00000000 0x420
+ *(.debug_str)
+ .debug_str 0x00000000 0x1a7 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ 0x203 (size before relaxing)
+ .debug_str 0x000001a7 0x1b9 ../arduino_libs/core328p.a(Print.cpp.o)
+ 0x246 (size before relaxing)
+ .debug_str 0x00000360 0xc0 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ 0x12c (size before relaxing)
+
+.debug_loc 0x00000000 0x75a
+ *(.debug_loc)
+ .debug_loc 0x00000000 0xa9 ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ .debug_loc 0x000000a9 0x621 ../arduino_libs/core328p.a(Print.cpp.o)
+ .debug_loc 0x000006ca 0x90 ../arduino_libs/core328p.a(wiring_serial.c.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(bin/Release/electic_streaming.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol File
+HardwareSerial::available() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::begin(long) ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::flush() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+HardwareSerial::read() ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+HardwareSerial::write(unsigned char) ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+Print::print(char const*) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(long, int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::print(unsigned long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::printNumber(unsigned long, unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println() ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(char const*) ../arduino_libs/core328p.a(Print.cpp.o)
+ obj/Release/main.o
+Print::println(char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(long) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(long, int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned char) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned int) ../arduino_libs/core328p.a(Print.cpp.o)
+Print::println(unsigned long) ../arduino_libs/core328p.a(Print.cpp.o)
+Serial ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__addsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+ obj/Release/main.o
+__addsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__bad_interrupt /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__bss_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__bss_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+__ctors_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__ctors_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__data_end /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_load_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__data_start /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+__divmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ obj/Release/main.o
+__divmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+__do_clear_bss /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__do_copy_data /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_copy_data.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+ obj/Release/main.o
+__do_global_ctors /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+__epilogue_restores__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__fixsfsi /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ obj/Release/main.o
+__fp_inf /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_mpack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+__fp_mpack_finite /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_mpack.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_nan /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_powser /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+__fp_powsodd /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_pscA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_pscB /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_rempio2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_round /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+__fp_sinus /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_sinus.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+__fp_split3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__fp_splitA /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_rempio2.o)
+__fp_szero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__fp_zero /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(addsf3x.o)
+__heap_end /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__init /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__mulsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powsodd.o)
+ obj/Release/main.o
+__mulsf3_pse /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+__mulsf3x /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(fp_powser.o)
+__pack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_pack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__prologue_saves__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__stack /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__subsf3 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__tablejump2__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+__tablejump__ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_tablejump.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_ctors.o)
+__thenan_sf /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_thenan_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__udivmodhi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodhi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+__udivmodsi4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_udivmodsi4.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodsi4.o)
+ ../arduino_libs/core328p.a(Print.cpp.o)
+__unpack_f /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_unpack_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_sf_to_si.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_mul_sf.o)
+ /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_addsub_sf.o)
+__vector_1 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_10 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_11 obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_12 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_13 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_14 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_15 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_16 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_17 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_18 ../arduino_libs/core328p.a(wiring_serial.c.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_19 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_2 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_20 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_21 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_22 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_23 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_24 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_25 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_3 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_5 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_6 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_7 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_9 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vector_default /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+__vectors /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+_div /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_divmodhi4.o)
+_exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+beginSerial ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+dd obj/Release/main.o
+exit /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+fill_sinewave() obj/Release/main.o
+loopCount obj/Release/main.o
+main obj/Release/main.o
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+rx_buffer ../arduino_libs/core328p.a(wiring_serial.c.o)
+rx_buffer_head ../arduino_libs/core328p.a(wiring_serial.c.o)
+rx_buffer_tail ../arduino_libs/core328p.a(wiring_serial.c.o)
+sample obj/Release/main.o
+serialAvailable ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialFlush ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialRead ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+serialWrite ../arduino_libs/core328p.a(wiring_serial.c.o)
+ ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
+sin /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libm.a(sin.o)
+ obj/Release/main.o
+vtable for HardwareSerial ../arduino_libs/core328p.a(HardwareSerial.cpp.o)
diff --git a/electic_streaming328p/burn b/electic_streaming328p/burn
new file mode 100755
index 0000000..232002e
--- /dev/null
+++ b/electic_streaming328p/burn
@@ -0,0 +1 @@
+avrdude -p m328p -c arduino -P /dev/rfcomm0 -b 19200 -F -u -U flash:w:bin/Release/electic_streaming.elf.hex
diff --git a/electic_streaming328p/electic_streaming328p.cbp b/electic_streaming328p/electic_streaming328p.cbp
new file mode 100644
index 0000000..3989454
--- /dev/null
+++ b/electic_streaming328p/electic_streaming328p.cbp
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="electic_streaming328p" />
+ <Option pch_mode="2" />
+ <Option compiler="avrgcc" />
+ <Build>
+ <Target title="Debug">
+ <Option output="bin/Debug/electic_streaming.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Debug/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-g" />
+ </Compiler>
+ </Target>
+ <Target title="Release">
+ <Option output="bin/Release/electic_streaming.elf" prefix_auto="1" extension_auto="0" />
+ <Option object_output="obj/Release/" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-Os" />
+ </Compiler>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add option="-mmcu=atmega328p" />
+ <Add option="-DF_CPU=16000000UL" />
+ <Add directory="../arduinoSrc0022" />
+ <Add directory="../arduino libs/NewSoftSerial" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=atmega328p" />
+ <Add option="-Wl,-Map=$(TARGET_OUTPUT_FILE).map,--cref" />
+ <Add library="../arduino_libs/core0022_328p.a" />
+ </Linker>
+ <ExtraCommands>
+ <Add after="avr-size $(TARGET_OUTPUT_FILE)" />
+ <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
+ <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
+ <Add after="avr-objdump -h -S $(TARGET_OUTPUT_FILE) &gt; $(TARGET_OUTPUT_FILE).lss" />
+ <Add after="./burn" />
+ </ExtraCommands>
+ <Unit filename="../ArduinoLib328p/HardwareSerial.h" />
+ <Unit filename="../ArduinoLib328p/Print.h" />
+ <Unit filename="../ArduinoLib328p/Stream.h" />
+ <Unit filename="../ArduinoLib328p/WCharacter.h" />
+ <Unit filename="../ArduinoLib328p/WConstants.h" />
+ <Unit filename="../ArduinoLib328p/WProgram.h" />
+ <Unit filename="../ArduinoLib328p/WString.h" />
+ <Unit filename="../ArduinoLib328p/binary.h" />
+ <Unit filename="../ArduinoLib328p/pins_arduino.h" />
+ <Unit filename="../ArduinoLib328p/wiring.h" />
+ <Unit filename="../ArduinoLib328p/wiring_private.h" />
+ <Unit filename="main.cpp" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ <lib_finder disable_auto="1" />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/electic_streaming328p/electic_streaming328p.depend b/electic_streaming328p/electic_streaming328p.depend
new file mode 100644
index 0000000..983075d
--- /dev/null
+++ b/electic_streaming328p/electic_streaming328p.depend
@@ -0,0 +1,43 @@
+# depslib dependency file v1.0
+1319455566 source:/home/tim/workspace/electic_AVR/electic_streaming328p/main.cpp
+ <WProgram.h>
+
+1319028644 /home/tim/workspace/electic_AVR/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_AVR/arduinoSrc0022/wiring.h
+ <avr/io.h>
+ <stdlib.h>
+ "binary.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/binary.h
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WCharacter.h
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/WString.h
+ <stdlib.h>
+ <string.h>
+ <ctype.h>
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/HardwareSerial.h
+ <inttypes.h>
+ "Stream.h"
+ "usb_api.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Stream.h
+ <inttypes.h>
+ "Print.h"
+
+1319028644 /home/tim/workspace/electic_AVR/arduinoSrc0022/Print.h
+ <inttypes.h>
+ <stdio.h>
+ "WString.h"
+
diff --git a/electic_streaming328p/electic_streaming328p.layout b/electic_streaming328p/electic_streaming328p.layout
new file mode 100644
index 0000000..7f7e0e5
--- /dev/null
+++ b/electic_streaming328p/electic_streaming328p.layout
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Debug" />
+ <File name="main.cpp" open="1" top="1" tabpos="0">
+ <Cursor position="442" topLine="0" />
+ </File>
+</CodeBlocks_layout_file>
diff --git a/electic_streaming328p/main.c b/electic_streaming328p/main.c
new file mode 100644
index 0000000..5cdf3a6
--- /dev/null
+++ b/electic_streaming328p/main.c
@@ -0,0 +1,83 @@
+/* test streaming sample data
+ * bluetooth
+ * TJR 141011
+
+ want: 1 second
+ 16M / 1024 prescale =
+
+ */
+
+#include <stdlib.h>
+#include <avr/io.h>
+#include <avr/interrupt.h>
+//include <avr/signal.h>
+#include <avr/pgmspace.h>
+
+#include <math.h>
+
+#include "uart.h"
+
+//#include "HardwareSerial.h"
+
+#define SAMPLES 512
+
+#ifndef F_CPU
+#define F_CPU 16000000UL
+#endif
+#define UART_BAUD_RATE 57600
+
+//unsigned char dd[SAMPLES]; // ram buffer
+int enabled=0;
+int loopCount=0;
+int sample=0;
+
+int main(void)
+{
+ Serial.begin(57600);
+
+ //uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ PORTB = (1 << 5); //turn on to start
+ TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
+ TIMSK1 |= (1 << OCIE1A); // Enable CTC interrupt
+ OCR1A = 1562; // Set CTC compare value to 1Hz at 1MHz AVR clock, with a prescaler of 64
+ sei(); // Enable global interrupts
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ //fill_sinewave();
+ unsigned int c;
+ /* while(1) {
+ c = uart_getc();
+ if (!( c & UART_NO_DATA ))
+ {
+ uart_putc( (unsigned char)c );
+ if ((unsigned char)c=="a") {
+ uart_puts_P("Welcome to electic");
+ enabled=1;
+ }
+ }
+ }
+ */
+}
+
+ISR(TIMER1_COMPA_vect)
+{
+ if (enabled) PORTB ^= (1 << 5);
+
+}
+/*
+void fill_sinewave(){
+ float pi = 3.141592;
+ float fcnt=0;
+ float fd;
+ float dx=2 * pi / SAMPLES; // fill the 512 byte bufferarry
+ int bb;
+http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#index for (int i = 0; i <= (SAMPLES-1); i++){ // with 50 periods sinewawe
+ fd= 127*sin(fcnt); // fundamental tone
+ fcnt=fcnt+dx; // in the range of 0 to 2xpi and 1/512 increments
+ bb=127+fd; // add dc offset to sinewawe
+ dd[i]=bb; // write value into array
+
+ }
+}
+*/
+
diff --git a/electic_streaming328p/main.cpp b/electic_streaming328p/main.cpp
new file mode 100644
index 0000000..71c276e
--- /dev/null
+++ b/electic_streaming328p/main.cpp
@@ -0,0 +1,80 @@
+extern "C" void __cxa_pure_virtual(void); //for C++ defines
+
+/*
+Electric data access template
+
+TJR 191011
+
+Uses Arduino c++ libraries in vanilla AVR environment
+
+Explanation
+http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#index
+
+*/
+#define SAMPLES 512 //size of ram buffer
+#define PACKETSIZE 320 //size of output packet
+
+#include <WProgram.h> //import main Arduino header file
+
+
+byte dd[SAMPLES]; // ram buffer
+int loopCount=0;
+int sample=0;
+
+void fill_sinewave(){
+ /*
+ 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;
+ 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
+ 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
+ }
+}
+
+int main(){
+
+ //init(); -- init Arduino library - delay, PWM setup messes with timers, millis(), micros() etc don't work without it
+ fill_sinewave();
+ Serial.begin(115200);
+
+ DDRB |= (1 << 5); // port B bit 6 = arduino pin 13
+ PORTB = (1 << 5); //turn on to start
+ 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) {
+ if (Serial.available() > 0) {
+ PORTB ^= (1 << 5);
+ byte in=Serial.read();
+ if (in=='a') {
+ Serial.println("Welcome to electic");
+ TCCR1B |= ((1<<CS10)|(1 << CS12)); // Set up timer at Fcpu/1024
+ }
+ }
+ }
+}
+
+ISR(TIMER1_COMPA_vect)
+{
+ //if (enabled)
+ PORTB ^= (1 << 5);
+ for (int i=0;i<PACKETSIZE;i++) {
+ Serial.write(dd[sample]);
+ sample=(sample+1)%SAMPLES;
+ }
+ Serial.write((byte)0);
+}
+
+
diff --git a/electic_streaming328p/obj/Debug/main.o b/electic_streaming328p/obj/Debug/main.o
new file mode 100644
index 0000000..5b8339e
--- /dev/null
+++ b/electic_streaming328p/obj/Debug/main.o
Binary files differ
diff --git a/electic_streaming328p/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o b/electic_streaming328p/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o
new file mode 100644
index 0000000..ea6ef49
--- /dev/null
+++ b/electic_streaming328p/obj/Release/arduino libs/NewSoftSerial/NewSoftSerial.o
Binary files differ
diff --git a/electic_streaming328p/obj/Release/main.o b/electic_streaming328p/obj/Release/main.o
new file mode 100644
index 0000000..17796a5
--- /dev/null
+++ b/electic_streaming328p/obj/Release/main.o
Binary files differ
diff --git a/electic_streaming328p/obj/Release/uart.o b/electic_streaming328p/obj/Release/uart.o
new file mode 100644
index 0000000..6401727
--- /dev/null
+++ b/electic_streaming328p/obj/Release/uart.o
Binary files differ
diff --git a/electic_streaming328p/uart.c b/electic_streaming328p/uart.c
new file mode 100644
index 0000000..6034070
--- /dev/null
+++ b/electic_streaming328p/uart.c
@@ -0,0 +1,651 @@
+/*************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.c,v 1.6.2.2 2009/11/29 08:56:12 Peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4.6 or higher
+Hardware: any AVR with built-in UART,
+License: GNU General Public License
+
+DESCRIPTION:
+ An interrupt is generated when the UART has finished transmitting or
+ receiving a byte. The interrupt handling routines use circular buffers
+ for buffering received and transmitted data.
+
+ The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE variables define
+ the buffer size in bytes. Note that these variables must be a
+ power of 2.
+
+USAGE:
+ Refere to the header file uart.h for a description of the routines.
+ See also example test_uart.c.
+
+NOTES:
+ Based on Atmel Application Note AVR306
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+*************************************************************************/
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "uart.h"
+
+
+/*
+ * constants and macros
+ */
+
+/* size of RX/TX buffers */
+#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1)
+#define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1)
+
+#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
+#error RX buffer size is not a power of 2
+#endif
+#if ( UART_TX_BUFFER_SIZE & UART_TX_BUFFER_MASK )
+#error TX buffer size is not a power of 2
+#endif
+
+#if defined(__AVR_AT90S2313__) \
+ || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
+ || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
+ || defined(__AVR_ATmega103__)
+ /* old AVR classic or ATmega103 with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS USR
+ #define UART0_CONTROL UCR
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
+ /* old AVR classic with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
+ || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) \
+ || defined(__AVR_ATmega323__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega163__)
+ /* ATmega163 with one UART */
+ #define ATMEGA_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega162__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_UART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_UART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_UART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega161__)
+ /* ATmega with UART */
+ #error "AVR ATmega161 currently not supported by this libaray !"
+#elif defined(__AVR_ATmega169__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATtiny2313__)
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RX
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_UDRE
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega329__) ||defined(__AVR_ATmega3290__) ||\
+ defined(__AVR_ATmega649__) ||defined(__AVR_ATmega6490__) ||\
+ defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
+ defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega640__)
+/* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega644__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#else
+ #error "no UART definition for MCU available"
+#endif
+
+
+/*
+ * module global variables
+ */
+static volatile unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART_TxHead;
+static volatile unsigned char UART_TxTail;
+static volatile unsigned char UART_RxHead;
+static volatile unsigned char UART_RxTail;
+static volatile unsigned char UART_LastRxError;
+
+#if defined( ATMEGA_USART1 )
+static volatile unsigned char UART1_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART1_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART1_TxHead;
+static volatile unsigned char UART1_TxTail;
+static volatile unsigned char UART1_RxHead;
+static volatile unsigned char UART1_RxTail;
+static volatile unsigned char UART1_LastRxError;
+#endif
+
+
+
+SIGNAL(UART0_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART Receive Complete interrupt
+Purpose: called when the UART has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART0_STATUS;
+ data = UART0_DATA;
+
+ /* */
+#if defined( AT90_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART0 )
+ lastRxError = (usr & (_BV(FE0)|_BV(DOR0)) );
+#elif defined ( ATMEGA_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#endif
+
+ /* calculate buffer index */
+ tmphead = ( UART_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART_RxHead = tmphead;
+ /* store received data in buffer */
+ UART_RxBuf[tmphead] = data;
+ }
+ UART_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART0_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART Data Register Empty interrupt
+Purpose: called when the UART is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART_TxHead != UART_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART0_CONTROL &= ~_BV(UART0_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart_init()
+Purpose: initialize UART and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart_init(unsigned int baudrate)
+{
+ UART_TxHead = 0;
+ UART_TxTail = 0;
+ UART_RxHead = 0;
+ UART_RxTail = 0;
+
+#if defined( AT90_UART )
+ /* set baud rate */
+ UBRR = (unsigned char)baudrate;
+
+ /* enable UART receiver and transmmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
+
+#elif defined (ATMEGA_USART)
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRH = (unsigned char)(baudrate>>8);
+ UBRRL = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL
+ UCSRC = (1<<URSEL)|(3<<UCSZ0);
+ #else
+ UCSRC = (3<<UCSZ0);
+ #endif
+
+#elif defined (ATMEGA_USART0 )
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X0); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR0H = (unsigned char)(baudrate>>8);
+ UBRR0L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL0
+ UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
+ #else
+ UCSR0C = (3<<UCSZ00);
+ #endif
+
+#elif defined ( ATMEGA_UART )
+ /* set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRHI = (unsigned char)(baudrate>>8);
+ UBRR = (unsigned char) baudrate;
+
+ /* Enable UART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+#endif
+
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART_RxHead == UART_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART_RxBuf[tmptail];
+
+ return (UART_LastRxError << 8) + data;
+
+}/* uart_getc */
+
+
+/*************************************************************************
+Function: uart_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART_TxBuf[tmphead] = data;
+ UART_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART0_CONTROL |= _BV(UART0_UDRIE);
+
+}/* uart_putc */
+
+
+/*************************************************************************
+Function: uart_puts()
+Purpose: transmit string to UART
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts(const char *s )
+{
+ while (*s)
+ uart_putc(*s++);
+
+}/* uart_puts */
+
+
+/*************************************************************************
+Function: uart_puts_p()
+Purpose: transmit string from program memory to UART
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart_putc(c);
+
+}/* uart_puts_p */
+
+
+/*
+ * these functions are only for ATmegas with two USART
+ */
+#if defined( ATMEGA_USART1 )
+
+SIGNAL(UART1_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART1 Receive Complete interrupt
+Purpose: called when the UART1 has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART1_STATUS;
+ data = UART1_DATA;
+
+ /* */
+ lastRxError = (usr & (_BV(FE1)|_BV(DOR1)) );
+
+ /* calculate buffer index */
+ tmphead = ( UART1_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART1_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART1_RxHead = tmphead;
+ /* store received data in buffer */
+ UART1_RxBuf[tmphead] = data;
+ }
+ UART1_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART1_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART1 Data Register Empty interrupt
+Purpose: called when the UART1 is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART1_TxHead != UART1_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART1_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART1_CONTROL &= ~_BV(UART1_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart1_init()
+Purpose: initialize UART1 and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart1_init(unsigned int baudrate)
+{
+ UART1_TxHead = 0;
+ UART1_TxTail = 0;
+ UART1_RxHead = 0;
+ UART1_RxTail = 0;
+
+
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART1_STATUS = (1<<U2X1); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR1H = (unsigned char)(baudrate>>8);
+ UBRR1L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL1
+ UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
+ #else
+ UCSR1C = (3<<UCSZ10);
+ #endif
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart1_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart1_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART1_RxHead == UART1_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART1_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART1_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART1_RxBuf[tmptail];
+
+ return (UART1_LastRxError << 8) + data;
+
+}/* uart1_getc */
+
+
+/*************************************************************************
+Function: uart1_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART1_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART1_TxBuf[tmphead] = data;
+ UART1_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART1_CONTROL |= _BV(UART1_UDRIE);
+
+}/* uart1_putc */
+
+
+/*************************************************************************
+Function: uart1_puts()
+Purpose: transmit string to UART1
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts(const char *s )
+{
+ while (*s)
+ uart1_putc(*s++);
+
+}/* uart1_puts */
+
+
+/*************************************************************************
+Function: uart1_puts_p()
+Purpose: transmit string from program memory to UART1
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart1_putc(c);
+
+}/* uart1_puts_p */
+
+
+#endif
diff --git a/electic_streaming328p/uart.h b/electic_streaming328p/uart.h
new file mode 100644
index 0000000..579c77d
--- /dev/null
+++ b/electic_streaming328p/uart.h
@@ -0,0 +1,195 @@
+#ifndef UART_H
+#define UART_H
+/************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.h,v 1.8.2.1 2007/07/01 11:14:38 peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4
+Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
+License: GNU General Public License
+Usage: see Doxygen manual
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+************************************************************************/
+
+/**
+ * @defgroup pfleury_uart UART Library
+ * @code #include <uart.h> @endcode
+ *
+ * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
+ *
+ * This library can be used to transmit and receive data through the built in UART.
+ *
+ * An interrupt is generated when the UART has finished transmitting or
+ * receiving a byte. The interrupt handling routines use circular buffers
+ * for buffering received and transmitted data.
+ *
+ * The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
+ * the size of the circular buffers in bytes. Note that these constants must be a power of 2.
+ * You may need to adapt this constants to your target and your application by adding
+ * CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
+ *
+ * @note Based on Atmel Application Note AVR306
+ * @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
+ */
+
+/**@{*/
+
+
+#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
+#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
+#endif
+
+
+/*
+** constants and macros
+*/
+
+/** @brief UART Baudrate Expression
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
+
+/** @brief UART Baudrate Expression for ATmega double speed mode
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
+
+
+/** Size of the circular receive buffer, must be power of 2 */
+#ifndef UART_RX_BUFFER_SIZE
+#define UART_RX_BUFFER_SIZE 32
+#endif
+/** Size of the circular transmit buffer, must be power of 2 */
+#ifndef UART_TX_BUFFER_SIZE
+#define UART_TX_BUFFER_SIZE 32
+#endif
+
+/* test if the size of the circular buffers fits into SRAM */
+#if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
+#error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
+#endif
+
+/*
+** high byte error return code of uart_getc()
+*/
+#define UART_FRAME_ERROR 0x0800 /* Framing Error by UART */
+#define UART_OVERRUN_ERROR 0x0400 /* Overrun condition by UART */
+#define UART_BUFFER_OVERFLOW 0x0200 /* receive ringbuffer overflow */
+#define UART_NO_DATA 0x0100 /* no receive data available */
+
+
+/*
+** function prototypes
+*/
+
+/**
+ @brief Initialize UART and set baudrate
+ @param baudrate Specify baudrate using macro UART_BAUD_SELECT()
+ @return none
+*/
+extern void uart_init(unsigned int baudrate);
+
+
+/**
+ * @brief Get received byte from ringbuffer
+ *
+ * Returns in the lower byte the received character and in the
+ * higher byte the last receive error.
+ * UART_NO_DATA is returned when no data is available.
+ *
+ * @param void
+ * @return lower byte: received byte from ringbuffer
+ * @return higher byte: last receive status
+ * - \b 0 successfully received data from UART
+ * - \b UART_NO_DATA
+ * <br>no receive data available
+ * - \b UART_BUFFER_OVERFLOW
+ * <br>Receive ringbuffer overflow.
+ * We are not reading the receive buffer fast enough,
+ * one or more received character have been dropped
+ * - \b UART_OVERRUN_ERROR
+ * <br>Overrun condition by UART.
+ * A character already present in the UART UDR register was
+ * not read by the interrupt handler before the next character arrived,
+ * one or more received characters have been dropped.
+ * - \b UART_FRAME_ERROR
+ * <br>Framing Error by UART
+ */
+extern unsigned int uart_getc(void);
+
+
+/**
+ * @brief Put byte to ringbuffer for transmitting via UART
+ * @param data byte to be transmitted
+ * @return none
+ */
+extern void uart_putc(unsigned char data);
+
+
+/**
+ * @brief Put string to ringbuffer for transmitting via UART
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s string to be transmitted
+ * @return none
+ */
+extern void uart_puts(const char *s );
+
+
+/**
+ * @brief Put string from program memory to ringbuffer for transmitting via UART.
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s program memory string to be transmitted
+ * @return none
+ * @see uart_puts_P
+ */
+extern void uart_puts_p(const char *s );
+
+/**
+ * @brief Macro to automatically put a string constant into program memory
+ */
+#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
+
+
+
+/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
+extern void uart1_init(unsigned int baudrate);
+/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
+extern unsigned int uart1_getc(void);
+/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
+extern void uart1_putc(unsigned char data);
+/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
+extern void uart1_puts(const char *s );
+/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
+extern void uart1_puts_p(const char *s );
+/** @brief Macro to automatically put a string constant into program memory */
+#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
+
+/**@}*/
+
+
+#endif
+// UART_H
+
diff --git a/pyBTlatency/data.csv b/pyBTlatency/data.csv
new file mode 100644
index 0000000..1504122
--- /dev/null
+++ b/pyBTlatency/data.csv
@@ -0,0 +1,273 @@
+1,30.3130149841
+2,30.266046524
+3,18.2421207428
+4,26.2129306793
+5,14.181137085
+6,14.1448974609
+7,22.0949649811
+8,22.0680236816
+9,34.1081619263
+10,26.113986969
+11,14.007806778
+12,13.9241218567
+13,37.878036499
+14,26.3149738312
+15,29.8190116882
+16,33.7929725647
+17,29.7651290894
+18,29.7210216522
+19,37.693977356
+20,21.6670036316
+21,25.6350040436
+22,21.6040611267
+23,33.6339473724
+24,37.5781059265
+25,33.497095108
+26,33.5021018982
+27,29.8700332642
+28,17.4090862274
+29,25.6390571594
+30,25.3450870514
+31,33.3127975464
+32,21.3208198547
+33,21.2409496307
+34,21.2080478668
+35,17.1990394592
+36,17.1542167664
+37,29.5670032501
+38,25.0899791718
+39,21.0540294647
+40,21.0130214691
+41,32.9830646515
+42,32.9620838165
+43,32.9170227051
+44,32.8879356384
+45,28.8469791412
+46,12.8281116486
+47,36.7929935455
+48,36.7569923401
+49,25.2001285553
+50,36.7019176483
+51,32.6690673828
+52,16.6251659393
+53,16.4601802826
+54,40.44008255
+55,24.4138240814
+56,20.3850269318
+57,20.4360485077
+58,20.3251838684
+59,20.2879905701
+60,16.2439346313
+61,12.1982097626
+62,40.1718616486
+63,36.1449718475
+64,32.0980548859
+65,36.0779762268
+66,32.0618152618
+67,31.9979190826
+68,15.9630775452
+69,27.9338359833
+70,27.909040451
+71,23.8749980927
+72,19.6979045868
+73,15.6791210175
+74,19.6318626404
+75,19.5999145508
+76,15.5699253082
+77,27.8098583221
+78,27.5139808655
+79,27.4858474731
+80,27.4469852448
+81,47.413110733
+82,27.4319648743
+83,31.3360691071
+84,31.289100647
+85,27.2679328918
+86,11.2209320068
+87,15.1789188385
+88,15.1429176331
+89,23.1158733368
+90,43.0879592896
+91,15.0589942932
+92,19.012928009
+93,18.9869403839
+94,14.9610042572
+95,26.9198417664
+96,26.8959999084
+97,26.8709659576
+98,27.1520614624
+99,34.8029136658
+100,30.7700634003
+101,30.7288169861
+102,30.7869911194
+103,26.6790390015
+104,14.6460533142
+105,14.6119594574
+106,10.5571746826
+107,38.52891922
+108,22.4850177765
+109,18.4650421143
+110,18.4240341187
+111,14.6698951721
+112,14.3640041351
+113,22.2890377045
+114,26.2551307678
+115,22.5651264191
+116,22.2029685974
+117,34.1799259186
+118,30.1148891449
+119,18.1159973145
+120,18.5198783875
+121,14.0218734741
+122,25.9819030762
+123,21.9371318817
+124,18.2650089264
+125,17.865896225
+126,29.846906662
+127,29.7980308533
+128,29.767036438
+129,37.7280712128
+130,37.7049446106
+131,25.6690979004
+132,25.6311893463
+133,21.5921401978
+134,21.586894989
+135,33.5450172424
+136,29.4809341431
+137,25.4421234131
+138,25.4051685333
+139,25.3939628601
+140,33.3528518677
+141,37.3191833496
+142,37.2848510742
+143,33.2579612732
+144,17.1318054199
+145,13.1001472473
+146,13.1058692932
+147,37.0061397552
+148,36.9720458984
+149,21.1579799652
+150,21.5148925781
+151,28.8708209991
+152,28.8369655609
+153,16.8070793152
+154,16.7751312256
+155,12.7379894257
+156,12.7182006836
+157,36.6802215576
+158,24.6520042419
+159,16.6220664978
+160,16.5860652924
+161,16.6299343109
+162,24.5158672333
+163,28.4719467163
+164,28.4419059753
+165,24.4300365448
+166,20.3931331635
+167,28.3679962158
+168,32.3250293732
+169,28.2909870148
+170,16.2661075592
+171,32.2349071503
+172,24.206161499
+173,20.1749801636
+174,24.1351127625
+175,16.1159038544
+176,16.077041626
+177,16.0491466522
+178,15.9809589386
+179,11.9609832764
+180,23.9500999451
+181,27.8978347778
+182,23.866891861
+183,24.0590572357
+184,43.8001155853
+185,27.7750492096
+186,27.7662277222
+187,27.7001857758
+188,27.6761054993
+189,31.653881073
+190,23.6141681671
+191,23.5819816589
+192,19.5620059967
+193,39.6220684052
+194,11.4760398865
+195,15.4480934143
+196,11.4259719849
+197,15.3779983521
+198,27.3518562317
+199,35.3291034698
+200,35.2900028229
+201,31.2540531158
+202,19.2320346832
+203,19.1941261292
+204,19.5569992065
+205,27.5411605835
+206,23.1919288635
+207,35.0711345673
+208,35.0461006165
+209,17.5909996033
+210,17.5619125366
+211,33.5268974304
+212,33.4920883179
+213,13.4539604187
+214,33.4391593933
+215,33.4239006042
+216,17.3580646515
+217,21.3449001312
+218,21.2988853455
+219,17.2870159149
+220,29.2420387268
+221,25.2139568329
+222,25.1939296722
+223,21.1520195007
+224,21.1160182953
+225,33.0967903137
+226,33.0729484558
+227,33.0522060394
+228,29.0069580078
+229,29.0150642395
+230,24.8689651489
+231,24.8470306396
+232,32.8149795532
+233,32.7858924866
+234,16.7510509491
+235,32.723903656
+236,28.7230014801
+237,24.6651172638
+238,36.6241931915
+239,24.7559547424
+240,16.6809558868
+241,20.5368995667
+242,32.4828624725
+243,28.4669399261
+244,32.4280261993
+245,12.3970508575
+246,12.3620033264
+247,32.3278903961
+248,20.3189849854
+249,28.265953064
+250,32.2458744049
+251,32.2079658508
+252,20.1652050018
+253,28.1429290771
+254,28.2340049744
+255,24.2369174957
+256,36.1320972443
+257,16.0238742828
+258,19.9890136719
+259,19.9639797211
+260,15.8739089966
+261,15.8429145813
+262,15.8050060272
+263,39.7820472717
+264,35.8531475067
+265,19.7279453278
+266,11.6970539093
+267,31.6641330719
+268,31.6400527954
+269,15.615940094
+270,23.5850811005
+271,27.5309085846
+272,23.5090255737
+273,23.4949588776
diff --git a/pyBTlatency/pyBTlatency.py b/pyBTlatency/pyBTlatency.py
new file mode 100755
index 0000000..c80a77b
--- /dev/null
+++ b/pyBTlatency/pyBTlatency.py
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+
+import time
+import serial
+import signal
+import sys, csv
+
+readings=[]
+f=open('data.csv','w')
+
+
+serIn = serial.Serial(
+ port='/dev/rfcomm0',
+ baudrate=38400
+)
+serOut = serial.Serial(
+ port='/dev/ttyUSB0',
+ baudrate=9600
+)
+
+def signal_handler(signal, frame):
+ total=0
+ for i in readings:
+ total+=i;
+ print len(readings),"readings, average:",(total/len(readings))*1000,"ms"
+ serOut.close()
+ serIn.close()
+ f.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+tStart=time.time()
+serIn.write('a')
+while time.time()-tStart<2.0:
+ if serIn.inWaiting() >0:
+ print serIn.read()
+
+while 1:
+ #print "testing.."
+ finished = False
+ serOut.write("0")
+ tStart=time.time()
+ while time.time()-tStart<1.0:
+ if serIn.inWaiting() >0:
+ r=time.time()-tStart
+ readings.append(r)
+ i=serIn.read()
+ print i,r*1000,"ms"
+ f.write(str(len(readings))+","+str(r*1000)+"\n")
+ #time.sleep(1000)
+
+
+ \ No newline at end of file
diff --git a/pyBTlatency/pySerialGraph.py b/pyBTlatency/pySerialGraph.py
new file mode 100755
index 0000000..61b2ed9
--- /dev/null
+++ b/pyBTlatency/pySerialGraph.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+
+import time
+import serial
+import signal
+import sys, csv
+import pygame
+
+class Serial(serial.PosixSerial,serial.FileLike):
+ #workaround for python 2.6 seriall behavior, http://code.google.com/p/python-on-a-chip/issues/detail?id=110
+ pass
+
+ser = Serial(
+ port='/dev/ttyUSB0',
+ baudrate=115200,
+)
+
+def signal_handler(signal, frame):
+ print "closing serial port"
+ ser.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+tStart=time.time()
+waiting=True
+print "Starting..."
+while waiting:
+ ser.write('a') #start comms
+ time.sleep(0.1);
+ while time.time()-tStart<1.0 and waiting :
+ if ser.inWaiting() >0:
+ print ser.readline()
+ waiting=False
+ time.sleep(0.1);
+ if waiting:
+ print "Timeout,restarting..."
+ tStart=time.time()
+window = pygame.display.set_mode((640, 512))
+y=127
+times=[]
+tSec=40;
+while 1:
+ if ser.inWaiting() >0:
+ i=ser.readline(eol=chr(0))
+ #print "received packet:",len(i),"bytes"
+ pygame.draw.rect(window,(0,0,0),(0,0, 640,512))
+ for x in range(0,len(i)-1): #skip end char
+ y1=ord(i[x])
+ pygame.draw.line(window, (255, 255, 255), (x*2, y*2), ((x*2)+2, y1*2))
+ y=y1
+
+ tNow=time.time();
+ times.append(tNow-tStart);
+ tStart=tNow
+ if len(times)>320:
+ times.pop(0)
+ for x in range(0,len(times)-1): #skip end char
+ pygame.draw.line(window, (255, 0, 0), (x*2, 512-(255*times[x]*tSec)), ((x*2)+2, 512-(255*times[x]*tSec)) )
+ pygame.display.flip()
+
+ time.sleep(0.01)
+
+
+ \ No newline at end of file
diff --git a/pyDMM/pyDMM.py b/pyDMM/pyDMM.py
new file mode 100755
index 0000000..0b77041
--- /dev/null
+++ b/pyDMM/pyDMM.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+import time,serial,signal,sys,struct
+
+serIn = serial.Serial(
+ port='/dev/rfcomm0',
+ baudrate=38400
+)
+
+def signal_handler(signal, frame):
+ print "closing",serIn.port
+ serIn.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+S=struct.Struct('<HIH')
+while 1:
+ r=bytearray()
+ remaining=8
+ while remaining > 0:
+ if serIn.inWaiting() >0:
+ r.extend(serIn.read())
+ remaining=8-len(r)
+ #time.sleep(1) #doesn't work for some reason
+ print S.unpack_from(buffer(r))
diff --git a/pyDMM/pyRFCLIENT.py b/pyDMM/pyRFCLIENT.py
new file mode 100755
index 0000000..33656c9
--- /dev/null
+++ b/pyDMM/pyRFCLIENT.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+import signal,sys
+from bluetooth import *
+
+# Create the client socket
+client_socket=BluetoothSocket( RFCOMM )
+bt_addr = "00:18:E4:0C:68:08" #electic
+#bt_addr = "00:18:E4:0B:F5:06" #herge-1
+bt_port = 1
+client_socket.connect((bt_addr,bt_port))
+
+def signal_handler(signal, frame):
+ print "closing bluetooth"
+ client_socket.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+S=struct.Struct('<HIH')
+while(1):
+ data=bytearray()
+ while len(data) < 9:
+ data.extend(client_socket.recv(8))
+ print S.unpack_from(buffer(data))
+ #while 1:
+ # print client_socket.recv()
diff --git a/pyDMM/pyRFSERVER.py b/pyDMM/pyRFSERVER.py
new file mode 100755
index 0000000..a33f706
--- /dev/null
+++ b/pyDMM/pyRFSERVER.py
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+import time,signal,sys
+from bluetooth import *
+
+server_socket=BluetoothSocket( RFCOMM )
+
+server_socket.bind(("", 2 ))
+server_socket.listen(1)
+
+def signal_handler(signal, frame):
+ print "closing bluetooth"
+ server_socket.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+
+
+client_socket, address = server_socket.accept()
+
+
+while 1:
+ client_socket.send("abcd")
+ time.sleep(0.5)
+
+#data = client_socket.recv(1024)
+
+#print "received [%s]" % data
+
+#client_socket.close()
+#server_socket.close()
diff --git a/pybluez/advanced/inquiry-with-rssi.py b/pybluez/advanced/inquiry-with-rssi.py
new file mode 100644
index 0000000..814f7ed
--- /dev/null
+++ b/pybluez/advanced/inquiry-with-rssi.py
@@ -0,0 +1,148 @@
+# performs a simple device inquiry, followed by a remote name request of each
+# discovered device
+
+import os
+import sys
+import struct
+import bluetooth._bluetooth as bluez
+
+def printpacket(pkt):
+ for c in pkt:
+ sys.stdout.write("%02x " % struct.unpack("B",c)[0])
+ print
+
+
+def read_inquiry_mode(sock):
+ """returns the current mode, or -1 on failure"""
+ # save current filter
+ old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14)
+
+ # Setup socket filter to receive only events related to the
+ # read_inquiry_mode command
+ flt = bluez.hci_filter_new()
+ opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL,
+ bluez.OCF_READ_INQUIRY_MODE)
+ bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT)
+ bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE);
+ bluez.hci_filter_set_opcode(flt, opcode)
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt )
+
+ # first read the current inquiry mode.
+ bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL,
+ bluez.OCF_READ_INQUIRY_MODE )
+
+ pkt = sock.recv(255)
+
+ status,mode = struct.unpack("xxxxxxBB", pkt)
+ if status != 0: mode = -1
+
+ # restore old filter
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter )
+ return mode
+
+def write_inquiry_mode(sock, mode):
+ """returns 0 on success, -1 on failure"""
+ # save current filter
+ old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14)
+
+ # Setup socket filter to receive only events related to the
+ # write_inquiry_mode command
+ flt = bluez.hci_filter_new()
+ opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL,
+ bluez.OCF_WRITE_INQUIRY_MODE)
+ bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT)
+ bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE);
+ bluez.hci_filter_set_opcode(flt, opcode)
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt )
+
+ # send the command!
+ bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL,
+ bluez.OCF_WRITE_INQUIRY_MODE, struct.pack("B", mode) )
+
+ pkt = sock.recv(255)
+
+ status = struct.unpack("xxxxxxB", pkt)[0]
+
+ # restore old filter
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter )
+ if status != 0: return -1
+ return 0
+
+def device_inquiry_with_with_rssi(sock):
+ # save current filter
+ old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14)
+
+ # perform a device inquiry on bluetooth device #0
+ # The inquiry should last 8 * 1.28 = 10.24 seconds
+ # before the inquiry is performed, bluez should flush its cache of
+ # previously discovered devices
+ flt = bluez.hci_filter_new()
+ bluez.hci_filter_all_events(flt)
+ bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT)
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt )
+
+ duration = 4
+ max_responses = 255
+ cmd_pkt = struct.pack("BBBBB", 0x33, 0x8b, 0x9e, duration, max_responses)
+ bluez.hci_send_cmd(sock, bluez.OGF_LINK_CTL, bluez.OCF_INQUIRY, cmd_pkt)
+
+ results = []
+
+ done = False
+ while not done:
+ pkt = sock.recv(255)
+ ptype, event, plen = struct.unpack("BBB", pkt[:3])
+ if event == bluez.EVT_INQUIRY_RESULT_WITH_RSSI:
+ pkt = pkt[3:]
+ nrsp = struct.unpack("B", pkt[0])[0]
+ for i in range(nrsp):
+ addr = bluez.ba2str( pkt[1+6*i:1+6*i+6] )
+ rssi = struct.unpack("b", pkt[1+13*nrsp+i])[0]
+ results.append( ( addr, rssi ) )
+ print "[%s] RSSI: [%d]" % (addr, rssi)
+ elif event == bluez.EVT_INQUIRY_COMPLETE:
+ done = True
+ elif event == bluez.EVT_CMD_STATUS:
+ status, ncmd, opcode = struct.unpack("BBH", pkt[3:7])
+ if status != 0:
+ print "uh oh..."
+ printpacket(pkt[3:7])
+ done = True
+ else:
+ print "unrecognized packet type 0x%02x" % ptype
+
+
+ # restore old filter
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter )
+
+ return results
+
+dev_id = 0
+try:
+ sock = bluez.hci_open_dev(dev_id)
+except:
+ print "error accessing bluetooth device..."
+ sys.exit(1)
+
+try:
+ mode = read_inquiry_mode(sock)
+except Exception, e:
+ print "error reading inquiry mode. "
+ print "Are you sure this a bluetooth 1.2 device?"
+ print e
+ sys.exit(1)
+print "current inquiry mode is %d" % mode
+
+if mode != 1:
+ print "writing inquiry mode..."
+ try:
+ result = write_inquiry_mode(sock, 1)
+ except Exception, e:
+ print "error writing inquiry mode. Are you sure you're root?"
+ print e
+ sys.exit(1)
+ if result != 0:
+ print "error while setting inquiry mode"
+ print "result: %d" % result
+
+device_inquiry_with_with_rssi(sock)
diff --git a/pybluez/advanced/l2-mtu.py b/pybluez/advanced/l2-mtu.py
new file mode 100644
index 0000000..1ffe04c
--- /dev/null
+++ b/pybluez/advanced/l2-mtu.py
@@ -0,0 +1,60 @@
+import sys
+import struct
+import bluetooth
+
+def usage():
+ print "usage: l2-mtu < server | client > [options]"
+ print ""
+ print "l2-mtu server to start in server mode"
+ print "l2-mtu client <addr> to start in client mode and connect to addr"
+ sys.exit(2)
+
+if len(sys.argv) < 2: usage()
+
+mode = sys.argv[1]
+if mode not in [ "client", "server" ]: usage()
+
+if mode == "server":
+ server_sock=bluetooth.BluetoothSocket( bluetooth.L2CAP )
+ server_sock.bind(("",0x1001))
+ server_sock.listen(1)
+ while True:
+ print "waiting for incoming connection"
+ client_sock,address = server_sock.accept()
+ print "Accepted connection from %s" % str(address)
+
+ bluetooth.set_l2cap_mtu( client_sock, 65535 )
+
+ print "waiting for data"
+ total = 0
+ while True:
+ try:
+ data = client_sock.recv(65535)
+ except bluetooth.BluetoothError, e:
+ break
+ if len(data) == 0: break
+ print "received packet of size %d" % len(data)
+
+ client_sock.close()
+
+ print "connection closed"
+
+ server_sock.close()
+else:
+ sock=bluetooth.BluetoothSocket(bluetooth.L2CAP)
+
+ bt_addr = sys.argv[2]
+ print "trying to connect to %s:1001" % bt_addr
+ port = 0x1001
+ sock.connect((bt_addr, port))
+
+ print "connected. Adjusting link parameters."
+ bluetooth.set_l2cap_mtu( sock, 65535 )
+
+ totalsent = 0
+ for i in range(1, 65535, 100):
+ pkt = "0" * i
+ sent = sock.send(pkt)
+ print "sent packet of size %d (tried %d)" % (sent, len(pkt))
+
+ sock.close()
diff --git a/pybluez/advanced/l2-unreliable-client.py b/pybluez/advanced/l2-unreliable-client.py
new file mode 100644
index 0000000..5b10a48
--- /dev/null
+++ b/pybluez/advanced/l2-unreliable-client.py
@@ -0,0 +1,76 @@
+import sys
+import fcntl
+import struct
+import array
+import bluetooth
+import bluetooth._bluetooth as bt # low level bluetooth wrappers.
+
+def __get_acl_conn_handle(sock, addr):
+ hci_fd = sock.fileno()
+ reqstr = struct.pack( "6sB17s", bt.str2ba(addr), bt.ACL_LINK, "\0" * 17)
+ request = array.array( "c", reqstr )
+ fcntl.ioctl( hci_fd, bt.HCIGETCONNINFO, request, 1 )
+ handle = struct.unpack("8xH14x", request.tostring())[0]
+ return handle
+
+def write_flush_timeout( addr, timeout ):
+ hci_sock = bt.hci_open_dev()
+ # get the ACL connection handle to the remote device
+ handle = __get_acl_conn_handle(hci_sock, addr)
+ pkt = struct.pack("HH", handle, bt.htobs(timeout))
+ response = bt.hci_send_req(hci_sock, bt.OGF_HOST_CTL,
+ 0x0028, bt.EVT_CMD_COMPLETE, 3, pkt)
+ status = struct.unpack("B", response[0])[0]
+ rhandle = struct.unpack("H", response[1:3])[0]
+ assert rhandle == handle
+ assert status == 0
+
+def read_flush_timeout( addr ):
+ hci_sock = bt.hci_open_dev()
+ # get the ACL connection handle to the remote device
+ handle = __get_acl_conn_handle(hci_sock, addr)
+ pkt = struct.pack("H", handle)
+ response = bt.hci_send_req(hci_sock, bt.OGF_HOST_CTL,
+ 0x0027, bt.EVT_CMD_COMPLETE, 5, pkt)
+ status = struct.unpack("B", response[0])[0]
+ rhandle = struct.unpack("H", response[1:3])[0]
+ assert rhandle == handle
+ assert status == 0
+ fto = struct.unpack("H", response[3:5])[0]
+ return fto
+
+# Create the client socket
+sock=bluetooth.BluetoothSocket(bluetooth.L2CAP)
+
+if len(sys.argv) < 4:
+ print "usage: l2capclient.py <addr> <timeout> <num_packets>"
+ print " address - device that l2-unreliable-server is running on"
+ print " timeout - wait timeout * 0.625ms before dropping unACK'd packets"
+ print " num_packets - number of 627-byte packets to send on connect"
+ sys.exit(2)
+
+bt_addr=sys.argv[1]
+timeout = int(sys.argv[2])
+num_packets = int(sys.argv[3])
+
+print "trying to connect to %s:1001" % bt_addr
+port = 0x1001
+sock.connect((bt_addr, port))
+
+print "connected. Adjusting link parameters."
+print "current flush timeout is %d ms" % read_flush_timeout( bt_addr )
+try:
+ write_flush_timeout( bt_addr, timeout )
+except bt.error, e:
+ print "error setting flush timeout. are you sure you're superuser?"
+ print e
+ sys.exit(1)
+print "new flush timeout is %d ms" % read_flush_timeout( bt_addr )
+
+totalsent = 0
+for i in range(num_packets):
+ pkt = "0" * 672
+ totalsent += sock.send(pkt)
+print "sent %d bytes total" % totalsent
+
+sock.close()
diff --git a/pybluez/advanced/l2-unreliable-server.py b/pybluez/advanced/l2-unreliable-server.py
new file mode 100644
index 0000000..d827775
--- /dev/null
+++ b/pybluez/advanced/l2-unreliable-server.py
@@ -0,0 +1,34 @@
+import sys
+import bluetooth
+
+if len(sys.argv) < 2:
+ print "usage: l2-unreliable-server"
+ sys.exit(2)
+
+timeout = int(sys.argv[1])
+assert timeout >= 0
+
+server_sock=bluetooth.BluetoothSocket( bluetooth.L2CAP )
+server_sock.bind(("",0x1001))
+server_sock.listen(1)
+while True:
+ print "waiting for incoming connection"
+ client_sock,address = server_sock.accept()
+ print "Accepted connection from %s" % str(address)
+
+ print "waiting for data"
+ total = 0
+ while True:
+ try:
+ data = client_sock.recv(1024)
+ except bluetooth.BluetoothError, e:
+ break
+ if len(data) == 0: break
+ total += len(data)
+ print "total byte read: %d" % total
+
+ client_sock.close()
+
+ print "connection closed"
+
+server_sock.close()
diff --git a/pybluez/advanced/read-local-bdaddr.py b/pybluez/advanced/read-local-bdaddr.py
new file mode 100644
index 0000000..410a681
--- /dev/null
+++ b/pybluez/advanced/read-local-bdaddr.py
@@ -0,0 +1,35 @@
+import os
+import sys
+import struct
+import bluetooth._bluetooth as _bt
+
+def read_local_bdaddr(hci_sock):
+ old_filter = hci_sock.getsockopt( _bt.SOL_HCI, _bt.HCI_FILTER, 14)
+ flt = _bt.hci_filter_new()
+ opcode = _bt.cmd_opcode_pack(_bt.OGF_INFO_PARAM,
+ _bt.OCF_READ_BD_ADDR)
+ _bt.hci_filter_set_ptype(flt, _bt.HCI_EVENT_PKT)
+ _bt.hci_filter_set_event(flt, _bt.EVT_CMD_COMPLETE);
+ _bt.hci_filter_set_opcode(flt, opcode)
+ hci_sock.setsockopt( _bt.SOL_HCI, _bt.HCI_FILTER, flt )
+
+ _bt.hci_send_cmd(hci_sock, _bt.OGF_INFO_PARAM, _bt.OCF_READ_BD_ADDR )
+
+ pkt = hci_sock.recv(255)
+
+ status,raw_bdaddr = struct.unpack("xxxxxxB6s", pkt)
+ assert status == 0
+
+ t = [ "%X" % ord(b) for b in raw_bdaddr ]
+ t.reverse()
+ bdaddr = ":".join(t)
+
+ # restore old filter
+ hci_sock.setsockopt( _bt.SOL_HCI, _bt.HCI_FILTER, old_filter )
+ return bdaddr
+
+if __name__ == "__main__":
+ dev_id = 0
+ hci_sock = _bt.hci_open_dev(dev_id)
+ bdaddr = read_local_bdaddr(hci_sock)
+ print bdaddr
diff --git a/pybluez/advanced/write-inquiry-scan.py b/pybluez/advanced/write-inquiry-scan.py
new file mode 100644
index 0000000..54793b7
--- /dev/null
+++ b/pybluez/advanced/write-inquiry-scan.py
@@ -0,0 +1,90 @@
+import os
+import sys
+import struct
+import bluetooth._bluetooth as bluez
+
+def read_inquiry_scan_activity(sock):
+ """returns the current inquiry scan interval and window,
+ or -1 on failure"""
+ # save current filter
+ old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14)
+
+ # Setup socket filter to receive only events related to the
+ # read_inquiry_mode command
+ flt = bluez.hci_filter_new()
+ opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL,
+ bluez.OCF_READ_INQ_ACTIVITY)
+ bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT)
+ bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE);
+ bluez.hci_filter_set_opcode(flt, opcode)
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt )
+
+ # first read the current inquiry mode.
+ bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL,
+ bluez.OCF_READ_INQ_ACTIVITY )
+
+ pkt = sock.recv(255)
+
+ status,interval,window = struct.unpack("!xxxxxxBHH", pkt)
+ interval = bluez.btohs(interval)
+ interval = (interval >> 8) | ( (interval & 0xFF) << 8 )
+ window = (window >> 8) | ( (window & 0xFF) << 8 )
+ if status != 0: mode = -1
+
+ # restore old filter
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter )
+ return interval, window
+
+def write_inquiry_scan_activity(sock, interval, window):
+ """returns 0 on success, -1 on failure"""
+ # save current filter
+ old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14)
+
+ # Setup socket filter to receive only events related to the
+ # write_inquiry_mode command
+ flt = bluez.hci_filter_new()
+ opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL,
+ bluez.OCF_WRITE_INQ_ACTIVITY)
+ bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT)
+ bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE);
+ bluez.hci_filter_set_opcode(flt, opcode)
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt )
+
+ # send the command!
+ bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL,
+ bluez.OCF_WRITE_INQ_ACTIVITY, struct.pack("HH",
+ interval, window) )
+
+ pkt = sock.recv(255)
+
+ status = struct.unpack("xxxxxxB", pkt)[0]
+
+ # restore old filter
+ sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter )
+ if status != 0: return -1
+ return 0
+
+dev_id = 0
+try:
+ sock = bluez.hci_open_dev(dev_id)
+except:
+ print "error accessing bluetooth device..."
+ sys.exit(1)
+
+try:
+ interval, window = read_inquiry_scan_activity(sock)
+except Exception, e:
+ print "error reading inquiry scan activity. "
+ print e
+ sys.exit(1)
+print "current inquiry scan interval: %d (0x%X) window: %d (0x%X)" % \
+ (interval, interval, window, window)
+
+if len(sys.argv) == 3:
+ interval = int(sys.argv[1])
+ window = int(sys.argv[2])
+ print "target interval: %d window %d" % (interval, window)
+ write_inquiry_scan_activity(sock, interval, window)
+ interval, window = read_inquiry_scan_activity(sock)
+ print "current inquiry scan interval: %d (0x%X) window: %d (0x%X)" % \
+ (interval, interval, window, window)
diff --git a/pybluez/bluezchat/bluezchat.glade b/pybluez/bluezchat/bluezchat.glade
new file mode 100644
index 0000000..b3f37eb
--- /dev/null
+++ b/pybluez/bluezchat/bluezchat.glade
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+<glade-interface>
+ <widget class="GtkWindow" id="bluezchat_window">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">bluez chat</property>
+ <property name="default_width">240</property>
+ <property name="default_height">320</property>
+ <signal name="delete_event" handler="gtk_main_quit"/>
+ <signal name="destroy_event" handler="gtk_main_quit"/>
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="devices_tv">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <signal name="cursor_changed" handler="on_devices_tv_cursor_changed"/>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkButton" id="quit_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Quit</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_quit_button_clicked"/>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="scan_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">S_can</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_scan_button_clicked"/>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="chat_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Chat</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_chat_button_clicked"/>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTextView" id="main_text">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">text:</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="input_tb">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">*</property>
+ </widget>
+ <packing>
+ <property name="padding">3</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="send_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Send</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_send_button_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
diff --git a/pybluez/bluezchat/bluezchat.py b/pybluez/bluezchat/bluezchat.py
new file mode 100755
index 0000000..5021eb3
--- /dev/null
+++ b/pybluez/bluezchat/bluezchat.py
@@ -0,0 +1,191 @@
+#!/usr/bin/python
+
+""" A simple graphical chat client to demonstrate the use of pybluez.
+
+Opens a l2cap socket and listens on PSM 0x1001
+
+Provides the ability to scan for nearby bluetooth devices and establish chat
+sessions with them.
+"""
+
+
+import os
+import sys
+import time
+
+import gtk
+import gobject
+import gtk.glade
+
+import bluetooth
+
+GLADEFILE="bluezchat.glade"
+
+# *****************
+
+def alert(text, buttons=gtk.BUTTONS_NONE, type=gtk.MESSAGE_INFO):
+ md = gtk.MessageDialog(buttons=buttons, type=type)
+ md.label.set_text(text)
+ md.run()
+ md.destroy()
+
+class BluezChatGui:
+ def __init__(self):
+ self.main_window_xml = gtk.glade.XML(GLADEFILE, "bluezchat_window")
+
+ # connect our signal handlers
+ dic = { "on_quit_button_clicked" : self.quit_button_clicked,
+ "on_send_button_clicked" : self.send_button_clicked,
+ "on_chat_button_clicked" : self.chat_button_clicked,
+ "on_scan_button_clicked" : self.scan_button_clicked,
+ "on_devices_tv_cursor_changed" : self.devices_tv_cursor_changed
+ }
+
+ self.main_window_xml.signal_autoconnect(dic)
+
+ # prepare the floor listbox
+ self.devices_tv = self.main_window_xml.get_widget("devices_tv")
+ self.discovered = gtk.ListStore(gobject.TYPE_STRING,
+ gobject.TYPE_STRING)
+ self.devices_tv.set_model(self.discovered)
+ renderer = gtk.CellRendererText()
+ column1=gtk.TreeViewColumn("addr", renderer, text=0)
+ column2=gtk.TreeViewColumn("name", renderer, text=1)
+ self.devices_tv.append_column(column1)
+ self.devices_tv.append_column(column2)
+
+ self.quit_button = self.main_window_xml.get_widget("quit_button")
+ self.scan_button = self.main_window_xml.get_widget("scan_button")
+ self.chat_button = self.main_window_xml.get_widget("chat_button")
+ self.send_button = self.main_window_xml.get_widget("send_button")
+ self.main_text = self.main_window_xml.get_widget("main_text")
+ self.text_buffer = self.main_text.get_buffer()
+
+ self.input_tb = self.main_window_xml.get_widget("input_tb")
+
+ self.listed_devs = []
+
+ self.chat_button.set_sensitive(False)
+
+ self.peers = {}
+ self.sources = {}
+ self.addresses = {}
+
+ # the listening sockets
+ self.server_sock = None
+
+# --- gui signal handlers
+
+ def quit_button_clicked(self, widget):
+ gtk.main_quit()
+
+ def scan_button_clicked(self, widget):
+ self.quit_button.set_sensitive(False)
+ self.scan_button.set_sensitive(False)
+# self.chat_button.set_sensitive(False)
+
+ self.discovered.clear()
+ for addr, name in bluetooth.discover_devices (lookup_names = True):
+ self.discovered.append ((addr, name))
+
+ self.quit_button.set_sensitive(True)
+ self.scan_button.set_sensitive(True)
+# self.chat_button.set_sensitive(True)
+
+ def send_button_clicked(self, widget):
+ text = self.input_tb.get_text()
+ if len(text) == 0: return
+
+ for addr, sock in self.peers.items():
+ sock.send(text)
+
+ self.input_tb.set_text("")
+ self.add_text("\nme - %s" % text)
+
+ def chat_button_clicked(self, widget):
+ (model, iter) = self.devices_tv.get_selection().get_selected()
+ if iter is not None:
+ addr = model.get_value(iter, 0)
+ if addr not in self.peers:
+ self.add_text("\nconnecting to %s" % addr)
+ self.connect(addr)
+ else:
+ self.add_text("\nAlready connected to %s!" % addr)
+
+ def devices_tv_cursor_changed(self, widget):
+ (model, iter) = self.devices_tv.get_selection().get_selected()
+ if iter is not None:
+ self.chat_button.set_sensitive(True)
+ else:
+ self.chat_button.set_sensitive(False)
+
+# --- network events
+
+ def incoming_connection(self, source, condition):
+ sock, info = self.server_sock.accept()
+ address, psm = info
+
+ self.add_text("\naccepted connection from %s" % str(address))
+
+ # add new connection to list of peers
+ self.peers[address] = sock
+ self.addresses[sock] = address
+
+ source = gobject.io_add_watch (sock, gobject.IO_IN, self.data_ready)
+ self.sources[address] = source
+ return True
+
+ def data_ready(self, sock, condition):
+ address = self.addresses[sock]
+ data = sock.recv(1024)
+
+ if len(data) == 0:
+ self.add_text("\nlost connection with %s" % address)
+ gobject.source_remove(self.sources[address])
+ del self.sources[address]
+ del self.peers[address]
+ del self.addresses[sock]
+ sock.close()
+ else:
+ self.add_text("\n%s - %s" % (address, str(data)))
+ return True
+
+# --- other stuff
+
+ def cleanup(self):
+ self.hci_sock.close()
+
+ def connect(self, addr):
+ sock = bluetooth.BluetoothSocket (bluetooth.L2CAP)
+ try:
+ sock.connect((addr, 0x1001))
+ except bluez.error, e:
+ self.add_text("\n%s" % str(e))
+ sock.close()
+ return
+
+ self.peers[addr] = sock
+ source = gobject.io_add_watch (sock, gobject.IO_IN, self.data_ready)
+ self.sources[addr] = source
+ self.addresses[sock] = addr
+
+
+ def add_text(self, text):
+ self.text_buffer.insert(self.text_buffer.get_end_iter(), text)
+
+ def start_server(self):
+ self.server_sock = bluetooth.BluetoothSocket (bluetooth.L2CAP)
+ self.server_sock.bind(("",0x1001))
+ self.server_sock.listen(1)
+
+ gobject.io_add_watch(self.server_sock,
+ gobject.IO_IN, self.incoming_connection)
+
+ def run(self):
+ self.text_buffer.insert(self.text_buffer.get_end_iter(), "loading..")
+ self.start_server()
+ gtk.main()
+
+if __name__ == "__main__":
+ gui = BluezChatGui()
+ gui.run()
diff --git a/pybluez/simple/asynchronous-inquiry.py b/pybluez/simple/asynchronous-inquiry.py
new file mode 100644
index 0000000..abbd70c
--- /dev/null
+++ b/pybluez/simple/asynchronous-inquiry.py
@@ -0,0 +1,65 @@
+# file: asynchronous-inquiry.py
+# auth: Albert Huang <albert@csail.mit.edu>
+# desc: demonstration of how to do asynchronous device discovery by subclassing
+# the DeviceDiscoverer class
+# $Id: asynchronous-inquiry.py 405 2006-05-06 00:39:50Z albert $
+#
+# XXX Linux only (5/5/2006)
+
+import bluetooth
+import select
+
+class MyDiscoverer(bluetooth.DeviceDiscoverer):
+
+ def pre_inquiry(self):
+ self.done = False
+
+ def device_discovered(self, address, device_class, name):
+ print "%s - %s" % (address, name)
+
+ # get some information out of the device class and display it.
+ # voodoo magic specified at:
+ #
+ # https://www.bluetooth.org/foundry/assignnumb/document/baseband
+ major_classes = ( "Miscellaneous",
+ "Computer",
+ "Phone",
+ "LAN/Network Access point",
+ "Audio/Video",
+ "Peripheral",
+ "Imaging" )
+ major_class = (device_class >> 8) & 0xf
+ if major_class < 7:
+ print " %s" % major_classes[major_class]
+ else:
+ print " Uncategorized"
+
+ print " services:"
+ service_classes = ( (16, "positioning"),
+ (17, "networking"),
+ (18, "rendering"),
+ (19, "capturing"),
+ (20, "object transfer"),
+ (21, "audio"),
+ (22, "telephony"),
+ (23, "information"))
+
+ for bitpos, classname in service_classes:
+ if device_class & (1 << (bitpos-1)):
+ print " %s" % classname
+
+ def inquiry_complete(self):
+ self.done = True
+
+d = MyDiscoverer()
+d.find_devices(lookup_names = True)
+
+readfiles = [ d, ]
+
+while True:
+ rfds = select.select( readfiles, [], [] )[0]
+
+ if d in rfds:
+ d.process_event()
+
+ if d.done: break
diff --git a/pybluez/simple/inquiry.py b/pybluez/simple/inquiry.py
new file mode 100644
index 0000000..8f77887
--- /dev/null
+++ b/pybluez/simple/inquiry.py
@@ -0,0 +1,17 @@
+# file: inquiry.py
+# auth: Albert Huang <albert@csail.mit.edu>
+# desc: performs a simple device inquiry followed by a remote name request of
+# each discovered device
+# $Id: inquiry.py 401 2006-05-05 19:07:48Z albert $
+#
+
+import bluetooth
+
+print "performing inquiry..."
+
+nearby_devices = bluetooth.discover_devices(lookup_names = True)
+
+print "found %d devices" % len(nearby_devices)
+
+for addr, name in nearby_devices:
+ print " %s - %s" % (addr, name)
diff --git a/pybluez/simple/l2capclient.py b/pybluez/simple/l2capclient.py
new file mode 100644
index 0000000..930e431
--- /dev/null
+++ b/pybluez/simple/l2capclient.py
@@ -0,0 +1,28 @@
+# file: l2capclient.py
+# desc: Demo L2CAP client for bluetooth module.
+# $Id: l2capclient.py 524 2007-08-15 04:04:52Z albert $
+
+import sys
+import bluetooth
+
+sock=bluetooth.BluetoothSocket(bluetooth.L2CAP)
+
+if len(sys.argv) < 2:
+ print "usage: l2capclient.py <addr>"
+ sys.exit(2)
+
+bt_addr=sys.argv[1]
+port = 0x1001
+
+print "trying to connect to %s on PSM 0x%X" % (bt_addr, port)
+
+sock.connect((bt_addr, port))
+
+print "connected. type stuff"
+while True:
+ data = raw_input()
+ if(len(data) == 0): break
+ sock.send(data)
+
+sock.close()
+
diff --git a/pybluez/simple/l2capserver.py b/pybluez/simple/l2capserver.py
new file mode 100644
index 0000000..40ad7d6
--- /dev/null
+++ b/pybluez/simple/l2capserver.py
@@ -0,0 +1,32 @@
+# file: l2capclient.py
+# desc: Demo L2CAP server for pybluez.
+# $Id: l2capserver.py 524 2007-08-15 04:04:52Z albert $
+
+import bluetooth
+
+server_sock=bluetooth.BluetoothSocket( bluetooth.L2CAP )
+
+port = 0x1001
+
+server_sock.bind(("",port))
+server_sock.listen(1)
+
+#uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ef"
+#bluetooth.advertise_service( server_sock, "SampleServerL2CAP",
+# service_id = uuid,
+# service_classes = [ uuid ]
+# )
+
+client_sock,address = server_sock.accept()
+print "Accepted connection from ",address
+
+data = client_sock.recv(1024)
+print "Data received:", data
+
+while data:
+ client_sock.send('Echo =>' + data)
+ data = client_sock.recv(1024)
+ print "Data received:",data
+
+client_sock.close()
+server_sock.close()
diff --git a/pybluez/simple/rfcomm-client.py b/pybluez/simple/rfcomm-client.py
new file mode 100644
index 0000000..4da12af
--- /dev/null
+++ b/pybluez/simple/rfcomm-client.py
@@ -0,0 +1,45 @@
+# file: rfcomm-client.py
+# auth: Albert Huang <albert@csail.mit.edu>
+# desc: simple demonstration of a client application that uses RFCOMM sockets
+# intended for use with rfcomm-server
+#
+# $Id: rfcomm-client.py 424 2006-08-24 03:35:54Z albert $
+
+from bluetooth import *
+import sys
+
+addr = None
+
+if len(sys.argv) < 2:
+ print "no device specified. Searching all nearby bluetooth devices for"
+ print "the SampleServer service"
+else:
+ addr = sys.argv[1]
+ print "Searching for SampleServer on %s" % addr
+
+# search for the SampleServer service
+uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
+service_matches = find_service( uuid = uuid, address = addr )
+
+if len(service_matches) == 0:
+ print "couldn't find the SampleServer service =("
+ sys.exit(0)
+
+first_match = service_matches[0]
+port = first_match["port"]
+name = first_match["name"]
+host = first_match["host"]
+
+print "connecting to \"%s\" on %s" % (name, host)
+
+# Create the client socket
+sock=BluetoothSocket( RFCOMM )
+sock.connect((host, port))
+
+print "connected. type stuff"
+while True:
+ data = raw_input()
+ if len(data) == 0: break
+ sock.send(data)
+
+sock.close()
diff --git a/pybluez/simple/rfcomm-server.py b/pybluez/simple/rfcomm-server.py
new file mode 100644
index 0000000..1fb555f
--- /dev/null
+++ b/pybluez/simple/rfcomm-server.py
@@ -0,0 +1,41 @@
+# file: rfcomm-server.py
+# auth: Albert Huang <albert@csail.mit.edu>
+# desc: simple demonstration of a server application that uses RFCOMM sockets
+#
+# $Id: rfcomm-server.py 518 2007-08-10 07:20:07Z albert $
+
+from bluetooth import *
+
+server_sock=BluetoothSocket( RFCOMM )
+server_sock.bind(("",PORT_ANY))
+server_sock.listen(1)
+
+port = server_sock.getsockname()[1]
+
+uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
+
+advertise_service( server_sock, "SampleServer",
+ service_id = uuid,
+ service_classes = [ uuid, SERIAL_PORT_CLASS ],
+ profiles = [ SERIAL_PORT_PROFILE ],
+# protocols = [ OBEX_UUID ]
+ )
+
+print "Waiting for connection on RFCOMM channel %d" % port
+
+client_sock, client_info = server_sock.accept()
+print "Accepted connection from ", client_info
+
+try:
+ while True:
+ data = client_sock.recv(1024)
+ if len(data) == 0: break
+ print "received [%s]" % data
+except IOError:
+ pass
+
+print "disconnected"
+
+client_sock.close()
+server_sock.close()
+print "all done"
diff --git a/pybluez/simple/sdp-browse.py b/pybluez/simple/sdp-browse.py
new file mode 100644
index 0000000..9d24b7a
--- /dev/null
+++ b/pybluez/simple/sdp-browse.py
@@ -0,0 +1,35 @@
+# file: sdp-browse.py
+# auth: Albert Huang <albert@csail.mit.edu>
+# desc: displays services being advertised on a specified bluetooth device
+# $Id: sdp-browse.py 393 2006-02-24 20:30:15Z albert $
+
+import sys
+import bluetooth
+
+if len(sys.argv) < 2:
+ print "usage: sdp-browse <addr>"
+ print " addr can be a bluetooth address, \"localhost\", or \"all\""
+ sys.exit(2)
+
+target = sys.argv[1]
+if target == "all": target = None
+
+services = bluetooth.find_service(address=target)
+
+if len(services) > 0:
+ print "found %d services on %s" % (len(services), sys.argv[1])
+ print
+else:
+ print "no services found"
+
+for svc in services:
+ print "Service Name: %s" % svc["name"]
+ print " Host: %s" % svc["host"]
+ print " Description: %s" % svc["description"]
+ print " Provided By: %s" % svc["provider"]
+ print " Protocol: %s" % svc["protocol"]
+ print " channel/PSM: %s" % svc["port"]
+ print " svc classes: %s "% svc["service-classes"]
+ print " profiles: %s "% svc["profiles"]
+ print " service id: %s "% svc["service-id"]
+ print
diff --git a/timer1/Makefile b/timer1/Makefile
new file mode 100644
index 0000000..9b5504e
--- /dev/null
+++ b/timer1/Makefile
@@ -0,0 +1,152 @@
+PRG = $(wildcard *.c)
+OBJ = $(PRG:.c=.o)
+#MCU_TARGET = at90s2313
+#MCU_TARGET = at90s2333
+#MCU_TARGET = at90s4414
+#MCU_TARGET = at90s4433
+#MCU_TARGET = at90s4434
+#MCU_TARGET = at90s8515
+#MCU_TARGET = at90s8535
+#MCU_TARGET = atmega128
+#MCU_TARGET = atmega1280
+#MCU_TARGET = atmega1281
+#MCU_TARGET = atmega1284p
+#MCU_TARGET = atmega16
+#MCU_TARGET = atmega163
+#MCU_TARGET = atmega164p
+#MCU_TARGET = atmega165
+#MCU_TARGET = atmega165p
+#MCU_TARGET = atmega168
+MCU_TARGET = atmega328p
+#MCU_TARGET = atmega169
+#MCU_TARGET = atmega169p
+#MCU_TARGET = atmega2560
+#MCU_TARGET = atmega2561
+#MCU_TARGET = atmega32
+#MCU_TARGET = atmega324p
+#MCU_TARGET = atmega325
+#MCU_TARGET = atmega3250
+#MCU_TARGET = atmega329
+#MCU_TARGET = atmega3290
+#MCU_TARGET = atmega48
+#MCU_TARGET = atmega64
+#MCU_TARGET = atmega640
+#MCU_TARGET = atmega644
+#MCU_TARGET = atmega644p
+#MCU_TARGET = atmega645
+#MCU_TARGET = atmega6450
+#MCU_TARGET = atmega649
+#MCU_TARGET = atmega6490
+#MCU_TARGET = atmega8
+#MCU_TARGET = atmega8515
+#MCU_TARGET = atmega8535
+#MCU_TARGET = atmega88
+#MCU_TARGET = attiny2313
+#MCU_TARGET = attiny24
+#MCU_TARGET = attiny25
+#MCU_TARGET = attiny26
+#MCU_TARGET = attiny261
+#MCU_TARGET = attiny44
+#MCU_TARGET = attiny45
+#MCU_TARGET = attiny461
+#MCU_TARGET = attiny84
+#MCU_TARGET = attiny85
+#MCU_TARGET = attiny861
+OPTIMIZE = -O2
+
+DEFS =
+LIBS =
+
+# You should not have to change anything below here.
+
+CC = avr-gcc
+AVRDUDE = avrdude
+AVRDUDE_FLAGS = -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -F
+AVRDUDE_WRITE_FLASH = -u -U flash:w:timer1.hex
+
+
+# Override is only needed by avr-lib build system.
+
+override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS) -std=c99
+override LDFLAGS = -Wl,-Map,$(PRG).map
+
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+
+all: $(PRG).elf lst text eeprom
+
+$(PRG).elf: $(OBJ)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
+
+# dependency:
+#*.o: *.c
+
+clean:
+ rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak
+ rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
+
+#burn:
+# avrdude -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -F -u -U flash:w:timer1.hex
+
+lst: $(PRG).lst
+
+%.lst: %.elf
+ $(OBJDUMP) -h -S $< > $@
+
+# Rules for building the .text rom images
+
+text: hex bin srec
+
+hex: $(PRG).hex
+bin: $(PRG).bin
+srec: $(PRG).srec
+
+%.hex: %.elf
+ $(OBJCOPY) -j .text -j .data -O ihex $< $@
+
+%.srec: %.elf
+ $(OBJCOPY) -j .text -j .data -O srec $< $@
+
+%.bin: %.elf
+ $(OBJCOPY) -j .text -j .data -O binary $< $@
+
+# Rules for building the .eeprom rom images
+
+eeprom: ehex ebin esrec
+
+ehex: $(PRG)_eeprom.hex
+ebin: $(PRG)_eeprom.bin
+esrec: $(PRG)_eeprom.srec
+
+%_eeprom.hex: %.elf
+ $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ \
+ || { echo empty $@ not generated; exit 0; }
+
+%_eeprom.srec: %.elf
+ $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ \
+ || { echo empty $@ not generated; exit 0; }
+
+%_eeprom.bin: %.elf
+ $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ \
+ || { echo empty $@ not generated; exit 0; }
+
+# Every thing below here is used by avr-libc's build system and can be ignored
+# by the casual user.
+
+FIG2DEV = fig2dev
+EXTRA_CLEAN_FILES = *.hex *.bin *.srec
+
+dox: eps png pdf
+
+eps: $(PRG).eps
+png: $(PRG).png
+pdf: $(PRG).pdf
+
+%.eps: %.fig
+ $(FIG2DEV) -L eps $< $@
+
+%.pdf: %.fig
+ $(FIG2DEV) -L pdf $< $@
+
+%.png: %.fig
+ $(FIG2DEV) -L png $< $@
diff --git a/timer1/burn b/timer1/burn
new file mode 100755
index 0000000..04da938
--- /dev/null
+++ b/timer1/burn
@@ -0,0 +1 @@
+avrdude -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -F -u -U flash:w:timer1.hex
diff --git a/timer1/uart.c b/timer1/uart.c
new file mode 100644
index 0000000..6034070
--- /dev/null
+++ b/timer1/uart.c
@@ -0,0 +1,651 @@
+/*************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.c,v 1.6.2.2 2009/11/29 08:56:12 Peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4.6 or higher
+Hardware: any AVR with built-in UART,
+License: GNU General Public License
+
+DESCRIPTION:
+ An interrupt is generated when the UART has finished transmitting or
+ receiving a byte. The interrupt handling routines use circular buffers
+ for buffering received and transmitted data.
+
+ The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE variables define
+ the buffer size in bytes. Note that these variables must be a
+ power of 2.
+
+USAGE:
+ Refere to the header file uart.h for a description of the routines.
+ See also example test_uart.c.
+
+NOTES:
+ Based on Atmel Application Note AVR306
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+*************************************************************************/
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include "uart.h"
+
+
+/*
+ * constants and macros
+ */
+
+/* size of RX/TX buffers */
+#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1)
+#define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1)
+
+#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
+#error RX buffer size is not a power of 2
+#endif
+#if ( UART_TX_BUFFER_SIZE & UART_TX_BUFFER_MASK )
+#error TX buffer size is not a power of 2
+#endif
+
+#if defined(__AVR_AT90S2313__) \
+ || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
+ || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
+ || defined(__AVR_ATmega103__)
+ /* old AVR classic or ATmega103 with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS USR
+ #define UART0_CONTROL UCR
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
+ /* old AVR classic with one UART */
+ #define AT90_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
+ || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) \
+ || defined(__AVR_ATmega323__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega163__)
+ /* ATmega163 with one UART */
+ #define ATMEGA_UART
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega162__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_UART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_UART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_UART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega161__)
+ /* ATmega with UART */
+ #error "AVR ATmega161 currently not supported by this libaray !"
+#elif defined(__AVR_ATmega169__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATtiny2313__)
+ #define ATMEGA_USART
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RX
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_UDRE
+ #define UART0_STATUS UCSRA
+ #define UART0_CONTROL UCSRB
+ #define UART0_DATA UDR
+ #define UART0_UDRIE UDRIE
+#elif defined(__AVR_ATmega329__) ||defined(__AVR_ATmega3290__) ||\
+ defined(__AVR_ATmega649__) ||defined(__AVR_ATmega6490__) ||\
+ defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
+ defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_UART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega640__)
+/* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART0_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART0_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#elif defined(__AVR_ATmega644__)
+ /* ATmega with one USART */
+ #define ATMEGA_USART0
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__)
+ /* ATmega with two USART */
+ #define ATMEGA_USART0
+ #define ATMEGA_USART1
+ #define UART0_RECEIVE_INTERRUPT SIG_USART_RECV
+ #define UART1_RECEIVE_INTERRUPT SIG_USART1_RECV
+ #define UART0_TRANSMIT_INTERRUPT SIG_USART_DATA
+ #define UART1_TRANSMIT_INTERRUPT SIG_USART1_DATA
+ #define UART0_STATUS UCSR0A
+ #define UART0_CONTROL UCSR0B
+ #define UART0_DATA UDR0
+ #define UART0_UDRIE UDRIE0
+ #define UART1_STATUS UCSR1A
+ #define UART1_CONTROL UCSR1B
+ #define UART1_DATA UDR1
+ #define UART1_UDRIE UDRIE1
+#else
+ #error "no UART definition for MCU available"
+#endif
+
+
+/*
+ * module global variables
+ */
+static volatile unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART_TxHead;
+static volatile unsigned char UART_TxTail;
+static volatile unsigned char UART_RxHead;
+static volatile unsigned char UART_RxTail;
+static volatile unsigned char UART_LastRxError;
+
+#if defined( ATMEGA_USART1 )
+static volatile unsigned char UART1_TxBuf[UART_TX_BUFFER_SIZE];
+static volatile unsigned char UART1_RxBuf[UART_RX_BUFFER_SIZE];
+static volatile unsigned char UART1_TxHead;
+static volatile unsigned char UART1_TxTail;
+static volatile unsigned char UART1_RxHead;
+static volatile unsigned char UART1_RxTail;
+static volatile unsigned char UART1_LastRxError;
+#endif
+
+
+
+SIGNAL(UART0_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART Receive Complete interrupt
+Purpose: called when the UART has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART0_STATUS;
+ data = UART0_DATA;
+
+ /* */
+#if defined( AT90_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#elif defined( ATMEGA_USART0 )
+ lastRxError = (usr & (_BV(FE0)|_BV(DOR0)) );
+#elif defined ( ATMEGA_UART )
+ lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
+#endif
+
+ /* calculate buffer index */
+ tmphead = ( UART_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART_RxHead = tmphead;
+ /* store received data in buffer */
+ UART_RxBuf[tmphead] = data;
+ }
+ UART_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART0_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART Data Register Empty interrupt
+Purpose: called when the UART is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART_TxHead != UART_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART0_CONTROL &= ~_BV(UART0_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart_init()
+Purpose: initialize UART and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart_init(unsigned int baudrate)
+{
+ UART_TxHead = 0;
+ UART_TxTail = 0;
+ UART_RxHead = 0;
+ UART_RxTail = 0;
+
+#if defined( AT90_UART )
+ /* set baud rate */
+ UBRR = (unsigned char)baudrate;
+
+ /* enable UART receiver and transmmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
+
+#elif defined (ATMEGA_USART)
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRH = (unsigned char)(baudrate>>8);
+ UBRRL = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL
+ UCSRC = (1<<URSEL)|(3<<UCSZ0);
+ #else
+ UCSRC = (3<<UCSZ0);
+ #endif
+
+#elif defined (ATMEGA_USART0 )
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X0); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR0H = (unsigned char)(baudrate>>8);
+ UBRR0L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL0
+ UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
+ #else
+ UCSR0C = (3<<UCSZ00);
+ #endif
+
+#elif defined ( ATMEGA_UART )
+ /* set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART0_STATUS = (1<<U2X); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRRHI = (unsigned char)(baudrate>>8);
+ UBRR = (unsigned char) baudrate;
+
+ /* Enable UART receiver and transmitter and receive complete interrupt */
+ UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
+
+#endif
+
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART_RxHead == UART_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART_RxBuf[tmptail];
+
+ return (UART_LastRxError << 8) + data;
+
+}/* uart_getc */
+
+
+/*************************************************************************
+Function: uart_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART_TxBuf[tmphead] = data;
+ UART_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART0_CONTROL |= _BV(UART0_UDRIE);
+
+}/* uart_putc */
+
+
+/*************************************************************************
+Function: uart_puts()
+Purpose: transmit string to UART
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts(const char *s )
+{
+ while (*s)
+ uart_putc(*s++);
+
+}/* uart_puts */
+
+
+/*************************************************************************
+Function: uart_puts_p()
+Purpose: transmit string from program memory to UART
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart_putc(c);
+
+}/* uart_puts_p */
+
+
+/*
+ * these functions are only for ATmegas with two USART
+ */
+#if defined( ATMEGA_USART1 )
+
+SIGNAL(UART1_RECEIVE_INTERRUPT)
+/*************************************************************************
+Function: UART1 Receive Complete interrupt
+Purpose: called when the UART1 has received a character
+**************************************************************************/
+{
+ unsigned char tmphead;
+ unsigned char data;
+ unsigned char usr;
+ unsigned char lastRxError;
+
+
+ /* read UART status register and UART data register */
+ usr = UART1_STATUS;
+ data = UART1_DATA;
+
+ /* */
+ lastRxError = (usr & (_BV(FE1)|_BV(DOR1)) );
+
+ /* calculate buffer index */
+ tmphead = ( UART1_RxHead + 1) & UART_RX_BUFFER_MASK;
+
+ if ( tmphead == UART1_RxTail ) {
+ /* error: receive buffer overflow */
+ lastRxError = UART_BUFFER_OVERFLOW >> 8;
+ }else{
+ /* store new index */
+ UART1_RxHead = tmphead;
+ /* store received data in buffer */
+ UART1_RxBuf[tmphead] = data;
+ }
+ UART1_LastRxError = lastRxError;
+}
+
+
+SIGNAL(UART1_TRANSMIT_INTERRUPT)
+/*************************************************************************
+Function: UART1 Data Register Empty interrupt
+Purpose: called when the UART1 is ready to transmit the next byte
+**************************************************************************/
+{
+ unsigned char tmptail;
+
+
+ if ( UART1_TxHead != UART1_TxTail) {
+ /* calculate and store new buffer index */
+ tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
+ UART1_TxTail = tmptail;
+ /* get one byte from buffer and write it to UART */
+ UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
+ }else{
+ /* tx buffer empty, disable UDRE interrupt */
+ UART1_CONTROL &= ~_BV(UART1_UDRIE);
+ }
+}
+
+
+/*************************************************************************
+Function: uart1_init()
+Purpose: initialize UART1 and set baudrate
+Input: baudrate using macro UART_BAUD_SELECT()
+Returns: none
+**************************************************************************/
+void uart1_init(unsigned int baudrate)
+{
+ UART1_TxHead = 0;
+ UART1_TxTail = 0;
+ UART1_RxHead = 0;
+ UART1_RxTail = 0;
+
+
+ /* Set baud rate */
+ if ( baudrate & 0x8000 )
+ {
+ UART1_STATUS = (1<<U2X1); //Enable 2x speed
+ baudrate &= ~0x8000;
+ }
+ UBRR1H = (unsigned char)(baudrate>>8);
+ UBRR1L = (unsigned char) baudrate;
+
+ /* Enable USART receiver and transmitter and receive complete interrupt */
+ UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
+
+ /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
+ #ifdef URSEL1
+ UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
+ #else
+ UCSR1C = (3<<UCSZ10);
+ #endif
+}/* uart_init */
+
+
+/*************************************************************************
+Function: uart1_getc()
+Purpose: return byte from ringbuffer
+Returns: lower byte: received byte from ringbuffer
+ higher byte: last receive error
+**************************************************************************/
+unsigned int uart1_getc(void)
+{
+ unsigned char tmptail;
+ unsigned char data;
+
+
+ if ( UART1_RxHead == UART1_RxTail ) {
+ return UART_NO_DATA; /* no data available */
+ }
+
+ /* calculate /store buffer index */
+ tmptail = (UART1_RxTail + 1) & UART_RX_BUFFER_MASK;
+ UART1_RxTail = tmptail;
+
+ /* get data from receive buffer */
+ data = UART1_RxBuf[tmptail];
+
+ return (UART1_LastRxError << 8) + data;
+
+}/* uart1_getc */
+
+
+/*************************************************************************
+Function: uart1_putc()
+Purpose: write byte to ringbuffer for transmitting via UART
+Input: byte to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_putc(unsigned char data)
+{
+ unsigned char tmphead;
+
+
+ tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
+
+ while ( tmphead == UART1_TxTail ){
+ ;/* wait for free space in buffer */
+ }
+
+ UART1_TxBuf[tmphead] = data;
+ UART1_TxHead = tmphead;
+
+ /* enable UDRE interrupt */
+ UART1_CONTROL |= _BV(UART1_UDRIE);
+
+}/* uart1_putc */
+
+
+/*************************************************************************
+Function: uart1_puts()
+Purpose: transmit string to UART1
+Input: string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts(const char *s )
+{
+ while (*s)
+ uart1_putc(*s++);
+
+}/* uart1_puts */
+
+
+/*************************************************************************
+Function: uart1_puts_p()
+Purpose: transmit string from program memory to UART1
+Input: program memory string to be transmitted
+Returns: none
+**************************************************************************/
+void uart1_puts_p(const char *progmem_s )
+{
+ register char c;
+
+ while ( (c = pgm_read_byte(progmem_s++)) )
+ uart1_putc(c);
+
+}/* uart1_puts_p */
+
+
+#endif
diff --git a/timer1/uart.c.map b/timer1/uart.c.map
new file mode 100644
index 0000000..4ed7372
--- /dev/null
+++ b/timer1/uart.c.map
@@ -0,0 +1,355 @@
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o (exit)
+/usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ uart.o (__do_clear_bss)
+
+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.3.5/../../../avr/lib/avr5/crtm328p.o
+LOAD uart.o
+LOAD /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.5/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 0x21e
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ 0x00000068 . = ALIGN (0x2)
+ 0x00000068 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x00000068 0x0 linker stubs
+ *(.trampolines*)
+ 0x00000068 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x00000068 __ctors_start = .
+ *(.ctors)
+ 0x00000068 __ctors_end = .
+ 0x00000068 __dtors_start = .
+ *(.dtors)
+ 0x00000068 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x00000068 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x00000068 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000068 0xc /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000074 0x10 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x00000074 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000084 0x8 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ *(.init9)
+ *(.text)
+ .text 0x0000008c 0x4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ 0x0000008c __vector_22
+ 0x0000008c __vector_1
+ 0x0000008c __vector_24
+ 0x0000008c __vector_12
+ 0x0000008c __bad_interrupt
+ 0x0000008c __vector_6
+ 0x0000008c __vector_3
+ 0x0000008c __vector_23
+ 0x0000008c __vector_25
+ 0x0000008c __vector_11
+ 0x0000008c __vector_13
+ 0x0000008c __vector_17
+ 0x0000008c __vector_19
+ 0x0000008c __vector_7
+ 0x0000008c __vector_5
+ 0x0000008c __vector_4
+ 0x0000008c __vector_9
+ 0x0000008c __vector_2
+ 0x0000008c __vector_21
+ 0x0000008c __vector_15
+ 0x0000008c __vector_8
+ 0x0000008c __vector_14
+ 0x0000008c __vector_10
+ 0x0000008c __vector_16
+ 0x0000008c __vector_18
+ 0x0000008c __vector_20
+ .text 0x00000090 0x18a uart.o
+ 0x00000090 SIG_USART_RECV
+ 0x000000e8 SIG_USART_DATA
+ 0x0000013c uart_init
+ 0x00000170 uart_getc
+ 0x000001ac uart_putc
+ 0x000001d8 uart_puts
+ 0x000001f6 uart_puts_p
+ .text 0x0000021a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text 0x0000021a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x0000021a . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000021a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000021a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ 0x0000021a . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000021a 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ 0x0000021a exit
+ 0x0000021a _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000021a 0x4 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x0000021e _etext = .
+
+.data 0x00800100 0x0 load address 0x0000021e
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .data 0x00800100 0x0 uart.o
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800100 . = ALIGN (0x2)
+ 0x00800100 _edata = .
+ 0x00800100 PROVIDE (__data_end, .)
+
+.bss 0x00800100 0x45
+ 0x00800100 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800100 0x0 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .bss 0x00800100 0x45 uart.o
+ .bss 0x00800145 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_exit.o)
+ .bss 0x00800145 0x0 /usr/lib/gcc/avr/4.3.5/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ 0x00800145 PROVIDE (__bss_end, .)
+ 0x0000021e __data_load_start = LOADADDR (.data)
+ 0x0000021e __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x00800145 0x0
+ 0x00800145 PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x00800145 PROVIDE (__noinit_end, .)
+ 0x00800145 _end = .
+ 0x00800145 PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x1014
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.5/../../../avr/lib/avr5/crtm328p.o
+ .stab 0x000006b4 0x960 uart.o
+ 0x96c (size before relaxing)
+
+.stabstr 0x00000000 0xb45
+ *(.stabstr)
+ .stabstr 0x00000000 0xb45 /usr/lib/gcc/avr/4.3.5/../../../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(uart.c.elf elf32-avr)
+LOAD linker stubs
diff --git a/timer1/uart.h b/timer1/uart.h
new file mode 100644
index 0000000..7f4f0be
--- /dev/null
+++ b/timer1/uart.h
@@ -0,0 +1,194 @@
+#ifndef UART_H
+#define UART_H
+/************************************************************************
+Title: Interrupt UART library with receive/transmit circular buffers
+Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
+File: $Id: uart.h,v 1.8.2.1 2007/07/01 11:14:38 peter Exp $
+Software: AVR-GCC 4.1, AVR Libc 1.4
+Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
+License: GNU General Public License
+Usage: see Doxygen manual
+
+LICENSE:
+ Copyright (C) 2006 Peter Fleury
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program 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 General Public License for more details.
+
+************************************************************************/
+
+/**
+ * @defgroup pfleury_uart UART Library
+ * @code #include <uart.h> @endcode
+ *
+ * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
+ *
+ * This library can be used to transmit and receive data through the built in UART.
+ *
+ * An interrupt is generated when the UART has finished transmitting or
+ * receiving a byte. The interrupt handling routines use circular buffers
+ * for buffering received and transmitted data.
+ *
+ * The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
+ * the size of the circular buffers in bytes. Note that these constants must be a power of 2.
+ * You may need to adapt this constants to your target and your application by adding
+ * CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
+ *
+ * @note Based on Atmel Application Note AVR306
+ * @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
+ */
+
+/**@{*/
+
+
+#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
+#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
+#endif
+
+
+/*
+** constants and macros
+*/
+
+/** @brief UART Baudrate Expression
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
+
+/** @brief UART Baudrate Expression for ATmega double speed mode
+ * @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
+ * @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
+ */
+#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
+
+
+/** Size of the circular receive buffer, must be power of 2 */
+#ifndef UART_RX_BUFFER_SIZE
+#define UART_RX_BUFFER_SIZE 32
+#endif
+/** Size of the circular transmit buffer, must be power of 2 */
+#ifndef UART_TX_BUFFER_SIZE
+#define UART_TX_BUFFER_SIZE 32
+#endif
+
+/* test if the size of the circular buffers fits into SRAM */
+#if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
+#error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
+#endif
+
+/*
+** high byte error return code of uart_getc()
+*/
+#define UART_FRAME_ERROR 0x0800 /* Framing Error by UART */
+#define UART_OVERRUN_ERROR 0x0400 /* Overrun condition by UART */
+#define UART_BUFFER_OVERFLOW 0x0200 /* receive ringbuffer overflow */
+#define UART_NO_DATA 0x0100 /* no receive data available */
+
+
+/*
+** function prototypes
+*/
+
+/**
+ @brief Initialize UART and set baudrate
+ @param baudrate Specify baudrate using macro UART_BAUD_SELECT()
+ @return none
+*/
+extern void uart_init(unsigned int baudrate);
+
+
+/**
+ * @brief Get received byte from ringbuffer
+ *
+ * Returns in the lower byte the received character and in the
+ * higher byte the last receive error.
+ * UART_NO_DATA is returned when no data is available.
+ *
+ * @param void
+ * @return lower byte: received byte from ringbuffer
+ * @return higher byte: last receive status
+ * - \b 0 successfully received data from UART
+ * - \b UART_NO_DATA
+ * <br>no receive data available
+ * - \b UART_BUFFER_OVERFLOW
+ * <br>Receive ringbuffer overflow.
+ * We are not reading the receive buffer fast enough,
+ * one or more received character have been dropped
+ * - \b UART_OVERRUN_ERROR
+ * <br>Overrun condition by UART.
+ * A character already present in the UART UDR register was
+ * not read by the interrupt handler before the next character arrived,
+ * one or more received characters have been dropped.
+ * - \b UART_FRAME_ERROR
+ * <br>Framing Error by UART
+ */
+extern unsigned int uart_getc(void);
+
+
+/**
+ * @brief Put byte to ringbuffer for transmitting via UART
+ * @param data byte to be transmitted
+ * @return none
+ */
+extern void uart_putc(unsigned char data);
+
+
+/**
+ * @brief Put string to ringbuffer for transmitting via UART
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s string to be transmitted
+ * @return none
+ */
+extern void uart_puts(const char *s );
+
+
+/**
+ * @brief Put string from program memory to ringbuffer for transmitting via UART.
+ *
+ * The string is buffered by the uart library in a circular buffer
+ * and one character at a time is transmitted to the UART using interrupts.
+ * Blocks if it can not write the whole string into the circular buffer.
+ *
+ * @param s program memory string to be transmitted
+ * @return none
+ * @see uart_puts_P
+ */
+extern void uart_puts_p(const char *s );
+
+/**
+ * @brief Macro to automatically put a string constant into program memory
+ */
+#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
+
+
+
+/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
+extern void uart1_init(unsigned int baudrate);
+/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
+extern unsigned int uart1_getc(void);
+/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
+extern void uart1_putc(unsigned char data);
+/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
+extern void uart1_puts(const char *s );
+/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
+extern void uart1_puts_p(const char *s );
+/** @brief Macro to automatically put a string constant into program memory */
+#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
+
+/**@}*/
+
+
+#endif // UART_H
+
diff --git a/timer1/uart.o b/timer1/uart.o
new file mode 100644
index 0000000..d2cebd3
--- /dev/null
+++ b/timer1/uart.o
Binary files differ