commit 95a3914fbb8c937b287c238949f5fcb0d329edd8
Author: Enzo Niro <enzo.niro@inrae.fr>
Date:   Fri Sep 27 08:06:30 2024 +0200

    Version 1.2 :
    
    Mise à jour majeures :
    - Ajout du support TL16C754C sur les ports VCOM (hardware_TL16C754C.h)
    - Ajout d'une priorité sur les ports
    Mise à jour mineures :
    - Remplacement d'un Timer interrupt par un Hardware Timer (pour limiter les conflits d'interruptions avec celle du port USART MCOM)
    - Le port maître (MCOM) est sur le Port 2 (USART1 port dans l'AVR32DA48) -> Possibilité de choisir le port 1/2/3/4, qui définira les fonctions macros (INIT_PORT(w,x,y,z), TX_WRITE(x), RX_READ, PORT_AVAILABLE)…

diff --git a/Version 1.2/RS232_MUX.X/.generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0 b/Version 1.2/RS232_MUX.X/.generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0
new file mode 100644
index 0000000..834c2a7
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/.generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0	
@@ -0,0 +1 @@
+ $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1 -g -DDEBUG  -gdwarf-2  -x c -D__$(MP_PROCESSOR_OPTION)__   -mdfp="${DFP_DIR}/xc8"  -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -DXPRJ_default=$(CND_CONF)  $(COMPARISON_BUILD)  -gdwarf-3 -mno-const-data-in-progmem    C:\Users\eniro\MPLABXProjects\RS232_MUX.X\main.c
\ No newline at end of file
diff --git a/Version 1.2/RS232_MUX.X/.generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407 b/Version 1.2/RS232_MUX.X/.generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407
new file mode 100644
index 0000000..5550768
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/.generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407	
@@ -0,0 +1 @@
+ $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -x c -D__$(MP_PROCESSOR_OPTION)__   -mdfp="${DFP_DIR}/xc8"  -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -DXPRJ_default=$(CND_CONF)  $(COMPARISON_BUILD)  -gdwarf-3 -mno-const-data-in-progmem    C:\Users\eniro\MPLABXProjects\RS232_MUX.X\main.c
\ No newline at end of file
diff --git a/Version 1.2/RS232_MUX.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709 b/Version 1.2/RS232_MUX.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
new file mode 100644
index 0000000..e69de29
diff --git a/Version 1.2/RS232_MUX.X/Makefile b/Version 1.2/RS232_MUX.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/Makefile	
@@ -0,0 +1,113 @@
+#
+#  There exist several targets which are by default empty and which can be 
+#  used for execution of your targets. These targets are usually executed 
+#  before and after some main targets. They are: 
+#
+#     .build-pre:              called before 'build' target
+#     .build-post:             called after 'build' target
+#     .clean-pre:              called before 'clean' target
+#     .clean-post:             called after 'clean' target
+#     .clobber-pre:            called before 'clobber' target
+#     .clobber-post:           called after 'clobber' target
+#     .all-pre:                called before 'all' target
+#     .all-post:               called after 'all' target
+#     .help-pre:               called before 'help' target
+#     .help-post:              called after 'help' target
+#
+#  Targets beginning with '.' are not intended to be called on their own.
+#
+#  Main targets can be executed directly, and they are:
+#  
+#     build                    build a specific configuration
+#     clean                    remove built files from a configuration
+#     clobber                  remove all built files
+#     all                      build all configurations
+#     help                     print help mesage
+#  
+#  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
+#  .help-impl are implemented in nbproject/makefile-impl.mk.
+#
+#  Available make variables:
+#
+#     CND_BASEDIR                base directory for relative paths
+#     CND_DISTDIR                default top distribution directory (build artifacts)
+#     CND_BUILDDIR               default top build directory (object files, ...)
+#     CONF                       name of current configuration
+#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)
+#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)
+#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)
+#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)
+#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)
+#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)
+#
+# NOCDDL
+
+
+# Environment 
+MKDIR=mkdir
+CP=cp
+CCADMIN=CCadmin
+RANLIB=ranlib
+
+
+# build
+build: .build-post
+
+.build-pre:
+# Add your pre 'build' code here...
+
+.build-post: .build-impl
+# Add your post 'build' code here...
+
+
+# clean
+clean: .clean-post
+
+.clean-pre:
+# Add your pre 'clean' code here...
+# WARNING: the IDE does not call this target since it takes a long time to
+# simply run make. Instead, the IDE removes the configuration directories
+# under build and dist directly without calling make.
+# This target is left here so people can do a clean when running a clean
+# outside the IDE.
+
+.clean-post: .clean-impl
+# Add your post 'clean' code here...
+
+
+# clobber
+clobber: .clobber-post
+
+.clobber-pre:
+# Add your pre 'clobber' code here...
+
+.clobber-post: .clobber-impl
+# Add your post 'clobber' code here...
+
+
+# all
+all: .all-post
+
+.all-pre:
+# Add your pre 'all' code here...
+
+.all-post: .all-impl
+# Add your post 'all' code here...
+
+
+# help
+help: .help-post
+
+.help-pre:
+# Add your pre 'help' code here...
+
+.help-post: .help-impl
+# Add your post 'help' code here...
+
+
+
+# include project implementation makefile
+include nbproject/Makefile-impl.mk
+
+# include project make variables
+include nbproject/Makefile-variables.mk
diff --git a/Version 1.2/RS232_MUX.X/build/default/debug/main.o b/Version 1.2/RS232_MUX.X/build/default/debug/main.o
new file mode 100644
index 0000000..08318e7
Binary files /dev/null and b/Version 1.2/RS232_MUX.X/build/default/debug/main.o differ
diff --git a/Version 1.2/RS232_MUX.X/build/default/debug/main.o.d b/Version 1.2/RS232_MUX.X/build/default/debug/main.o.d
new file mode 100644
index 0000000..354f12a
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/build/default/debug/main.o.d	
@@ -0,0 +1,91 @@
+build/default/debug/main.o.d build/default/debug/main.o: main.c \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
+ C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h \
+ hardware_uart.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
+ hardware_timer.h hardware_TL16C754C.h hardware_config.h parameters.h \
+ frame_definitions.h
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
+
+C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h:
+
+hardware_uart.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
+
+hardware_timer.h:
+
+hardware_TL16C754C.h:
+
+hardware_config.h:
+
+parameters.h:
+
+frame_definitions.h:
diff --git a/Version 1.2/RS232_MUX.X/build/default/production/main.o b/Version 1.2/RS232_MUX.X/build/default/production/main.o
new file mode 100644
index 0000000..e790634
Binary files /dev/null and b/Version 1.2/RS232_MUX.X/build/default/production/main.o differ
diff --git a/Version 1.2/RS232_MUX.X/build/default/production/main.o.d b/Version 1.2/RS232_MUX.X/build/default/production/main.o.d
new file mode 100644
index 0000000..641ced1
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/build/default/production/main.o.d	
@@ -0,0 +1,91 @@
+build/default/production/main.o.d build/default/production/main.o: main.c \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
+ C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h \
+ hardware_uart.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
+ hardware_timer.h hardware_TL16C754C.h hardware_config.h parameters.h \
+ frame_definitions.h
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
+
+C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h:
+
+hardware_uart.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
+
+hardware_timer.h:
+
+hardware_TL16C754C.h:
+
+hardware_config.h:
+
+parameters.h:
+
+frame_definitions.h:
diff --git a/Version 1.2/RS232_MUX.X/defmplabxtrace.log b/Version 1.2/RS232_MUX.X/defmplabxtrace.log
new file mode 100644
index 0000000..e69de29
diff --git a/Version 1.2/RS232_MUX.X/defmplabxtrace.log.inx b/Version 1.2/RS232_MUX.X/defmplabxtrace.log.inx
new file mode 100644
index 0000000..29197e3
Binary files /dev/null and b/Version 1.2/RS232_MUX.X/defmplabxtrace.log.inx differ
diff --git a/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.elf b/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.elf
new file mode 100644
index 0000000..9eea0df
Binary files /dev/null and b/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.elf differ
diff --git a/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.map b/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.map
new file mode 100644
index 0000000..4291a96
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/dist/default/debug/RS232_MUX.X.debug.map	
@@ -0,0 +1,863 @@
+Archive member included to satisfy reference by file (symbol)
+
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                              build/default/debug/main.o (__do_clear_bss)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                              C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o (exit)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o) (_Exit)
+C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+                              build/default/debug/main.o (eeprom_read_byte)
+C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+                              build/default/debug/main.o (eeprom_write_byte)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o) (_exit)
+
+Discarded input sections
+
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .text          0x0000000000000000        0x0 build/default/debug/main.o
+ .data          0x0000000000000000        0x0 build/default/debug/main.o
+ .bss           0x0000000000000000        0x0 build/default/debug/main.o
+ .text.initPort0
+                0x0000000000000000       0x32 build/default/debug/main.o
+ .text.txWrite0
+                0x0000000000000000       0x20 build/default/debug/main.o
+ .text.rxRead0  0x0000000000000000       0x20 build/default/debug/main.o
+ .text.portAvailable0
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.initPort1
+                0x0000000000000000       0x3c build/default/debug/main.o
+ .text.txWrite1
+                0x0000000000000000       0x20 build/default/debug/main.o
+ .text.rxRead1  0x0000000000000000       0x20 build/default/debug/main.o
+ .text.portAvailable1
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.portAvailable2
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.initPort3
+                0x0000000000000000       0x3c build/default/debug/main.o
+ .text.txWrite3
+                0x0000000000000000       0x20 build/default/debug/main.o
+ .text.rxRead3  0x0000000000000000       0x20 build/default/debug/main.o
+ .text.portAvailable3
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.initPort4
+                0x0000000000000000       0x3c build/default/debug/main.o
+ .text.txWrite4
+                0x0000000000000000       0x20 build/default/debug/main.o
+ .text.rxRead4  0x0000000000000000       0x20 build/default/debug/main.o
+ .text.portAvailable4
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.clearTimerFlag
+                0x0000000000000000        0x8 build/default/debug/main.o
+ .text.getEEPROMCfg
+                0x0000000000000000       0xac build/default/debug/main.o
+ .text.getDebugLedsConfiguration
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .text.readConfiguration
+                0x0000000000000000       0xae build/default/debug/main.o
+ .text.debugLedsTest
+                0x0000000000000000       0x32 build/default/debug/main.o
+ .text.bootSequence
+                0x0000000000000000        0x6 build/default/debug/main.o
+ .bss.global_parity
+                0x0000000000000000        0x1 build/default/debug/main.o
+ .bss.eepromDebugLeds
+                0x0000000000000000        0x2 build/default/debug/main.o
+ .bss.eepromVCOM
+                0x0000000000000000        0x8 build/default/debug/main.o
+ .bss._timerFlag
+                0x0000000000000000        0x1 build/default/debug/main.o
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x73 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .text          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .text.avrlibc  0x0000000000000000       0x10 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .stack.descriptors
+                0x0000000000000000       0x38 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_line    0x0000000000000000       0x79 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_info    0x0000000000000000       0xac C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_abbrev  0x0000000000000000       0x14 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_aranges
+                0x0000000000000000       0x20 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .text          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .text.avrlibc  0x0000000000000000       0x30 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .stack.descriptors
+                0x0000000000000000       0x3d C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_line    0x0000000000000000       0xd9 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_info    0x0000000000000000       0xac C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_abbrev  0x0000000000000000       0x14 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_aranges
+                0x0000000000000000       0x20 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x0000000000000000 0x0000000000008000 xr
+data             0x0000000000807000 0x0000000000001000 rw !x
+eeprom           0x0000000000810000 0x0000000000000200 rw !x
+fuse             0x0000000000820000 0x0000000000000010 rw !x
+lock             0x0000000000830000 0x0000000000000400 rw !x
+signature        0x0000000000840000 0x0000000000000400 rw !x
+user_signatures  0x0000000000850000 0x0000000000000400 rw !x
+bootrow          0x0000000000860000 0x0000000000000400 rw !x
+*default*        0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x807000
+                0x0000000000008000                __RODATA_PM_OFFSET__ = 0x8000
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000001                __MPLAB_BUILD = 0x1
+LOAD build/default/debug/main.o
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+END GROUP
+                0x0000000000000001                __MPLAB_DEBUG = 0x1
+                0x0000000000000001                __DEBUG = 0x1
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a
+END GROUP
+                [0x0000000000000000]                __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
+                [0x0000000000807000]                __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x802000
+                [0x0000000000008000]                __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
+                [0x0000000000001000]                __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
+                [0x0000000000000200]                __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
+                [0x0000000000000010]                __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
+                0x0000000000000400                __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
+                0x0000000000000400                __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000000400                __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000008000                __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
+                0x0000000000000400                __BOOTROW_REGION_LENGTH__ = DEFINED (__BOOTROW_REGION_LENGTH__)?__BOOTROW_REGION_LENGTH__:0x400
+
+.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           0x0000000000000000      0x142
+ *(.vectors)
+ .vectors       0x0000000000000000       0xe8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000000                __vector_default
+                0x0000000000000000                __vectors
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.dinit)
+ .dinit         0x00000000000000e8        0x5 data_init
+                0x00000000000000ee                . = ALIGN (0x2)
+ *fill*         0x00000000000000ed        0x1 
+                0x00000000000000ee                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000000000000ee        0x0 linker stubs
+ *(.trampolines*)
+                0x00000000000000ee                __trampolines_end = .
+ *libprintf_flt.a:*(.progmem.data)
+ *libc.a:*(.progmem.data)
+                0x00000000000000ee                . = ALIGN (0x2)
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000000000000ee                __ctors_start = .
+ *(.ctors)
+                0x00000000000000ee                __ctors_end = .
+                0x00000000000000ee                __dtors_start = .
+ *(.dtors)
+                0x00000000000000ee                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000000000000ee        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x00000000000000ee                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000000000000ee        0xc C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x00000000000000fa       0x3c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                0x00000000000000fa                __do_copy_data
+                0x0000000000000128                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000000000000136        0x8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init9)
+                0x000000000000013e                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x000000000000013e        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                0x000000000000013e                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x000000000000013e        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ *(.fini0)
+                0x0000000000000142                _etext = .
+
+.data           0x0000000000807000        0x0 load address 0x0000000000000142
+                [!provide]                        PROVIDE (__data_start, .)
+ *(.gnu.linkonce.d*)
+                0x0000000000807000                . = ALIGN (0x2)
+                0x0000000000807000                _edata = .
+                [!provide]                        PROVIDE (__data_end, .)
+
+.bss            0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__bss_start, .)
+ *(COMMON)
+                [!provide]                        PROVIDE (__bss_end, .)
+                0x0000000000000142                __data_load_start = LOADADDR (.data)
+                0x0000000000000142                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                [!provide]                        PROVIDE (__noinit_end, .)
+                0x0000000000807000                _end = .
+
+.eeprom         0x0000000000810000        0x0
+ *(.eeprom*)
+                0x0000000000810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.user_signatures
+ *(.user_signatures*)
+
+.bootrow
+ *(.bootrow*)
+
+.stab
+ *(.stab)
+
+.stabstr
+ *(.stabstr)
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment        0x0000000000000000       0x5b
+ *(.comment)
+ .comment       0x0000000000000000       0x2f build/default/debug/main.o
+                                         0x30 (size before relaxing)
+ .comment       0x000000000000002f       0x2c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                                         0x2d (size before relaxing)
+ .comment       0x000000000000005b       0x2d c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.stack.descriptors.hdr
+                0x0000000000000000       0x2a
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors.hdr
+                0x000000000000000e        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors.hdr
+                0x000000000000001c        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+.note.GNU-stack
+                0x0000000000000000        0x0
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.note.gnu.build-id
+ *(.note.gnu.build-id)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges  0x0000000000000000      0x210
+ *(.debug_aranges)
+ .debug_aranges
+                0x0000000000000000      0x210 build/default/debug/main.o
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info     0x0000000000000000     0x61db
+ *(.debug_info .gnu.linkonce.wi.*)
+ .debug_info    0x0000000000000000     0x3214 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_info    0x0000000000003214     0x2fc7 build/default/debug/main.o
+
+.debug_abbrev   0x0000000000000000     0x33d8
+ *(.debug_abbrev)
+ .debug_abbrev  0x0000000000000000     0x2f6e C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_abbrev  0x0000000000002f6e      0x46a build/default/debug/main.o
+
+.debug_line     0x0000000000000000     0x1616
+ *(.debug_line .debug_line.* .debug_line_end)
+ .debug_line    0x0000000000000000      0x1f3 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_line    0x00000000000001f3     0x1423 build/default/debug/main.o
+
+.debug_frame    0x0000000000000000      0x63c
+ *(.debug_frame)
+ .debug_frame   0x0000000000000000      0x63c build/default/debug/main.o
+
+.debug_str      0x0000000000000000     0x1610
+ *(.debug_str)
+ .debug_str     0x0000000000000000     0x1539 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_str     0x0000000000001539       0xd7 build/default/debug/main.o
+
+.debug_loc      0x0000000000000000     0x111b
+ *(.debug_loc)
+ .debug_loc     0x0000000000000000     0x111b build/default/debug/main.o
+
+.debug_macinfo
+ *(.debug_macinfo)
+
+.debug_weaknames
+ *(.debug_weaknames)
+
+.debug_funcnames
+ *(.debug_funcnames)
+
+.debug_typenames
+ *(.debug_typenames)
+
+.debug_varnames
+ *(.debug_varnames)
+
+.debug_pubtypes
+ *(.debug_pubtypes)
+
+.debug_ranges   0x0000000000000000      0x200
+ *(.debug_ranges)
+ .debug_ranges  0x0000000000000000      0x200 build/default/debug/main.o
+
+.debug_macro
+ *(.debug_macro)
+OUTPUT(dist/default/debug/RS232_MUX.X.debug.elf elf32-avr)
+LOAD linker stubs
+LOAD data_init
+
+.note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c
+ .note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+
+.bss.global_n   0x000000000080760f        0x1
+ .bss.global_n  0x000000000080760f        0x1 build/default/debug/main.o
+                0x000000000080760f                global_n
+
+.bss.global_debugBuffer
+                0x000000000080750f      0x100
+ .bss.global_debugBuffer
+                0x000000000080750f      0x100 build/default/debug/main.o
+                0x000000000080750f                global_debugBuffer
+
+.bss._RX4       0x0000000000807000      0x103
+ .bss._RX4      0x0000000000807000      0x103 build/default/debug/main.o
+                0x0000000000807000                _RX4
+
+.bss._RX3       0x0000000000807103      0x103
+ .bss._RX3      0x0000000000807103      0x103 build/default/debug/main.o
+                0x0000000000807103                _RX3
+
+.bss._RX2       0x0000000000807206      0x103
+ .bss._RX2      0x0000000000807206      0x103 build/default/debug/main.o
+                0x0000000000807206                _RX2
+
+.bss._RX1       0x0000000000807309      0x103
+ .bss._RX1      0x0000000000807309      0x103 build/default/debug/main.o
+                0x0000000000807309                _RX1
+
+.bss._RX0       0x000000000080740c      0x103
+ .bss._RX0      0x000000000080740c      0x103 build/default/debug/main.o
+                0x000000000080740c                _RX0
+
+.text.main      0x0000000000000142      0x48c
+ .text.main     0x0000000000000142      0x48c build/default/debug/main.o
+                0x0000000000000142                main
+
+.text.senseDebugLeds
+                0x00000000000005ce       0xfe
+ .text.senseDebugLeds
+                0x00000000000005ce       0xfe build/default/debug/main.o
+                0x00000000000005ce                senseDebugLeds
+
+.text.VCOM_sendframe
+                0x00000000000006cc       0xe6
+ .text.VCOM_sendframe
+                0x00000000000006cc       0xe6 build/default/debug/main.o
+                0x00000000000006cc                VCOM_sendframe
+
+.text.initPortA
+                0x00000000000007b2       0x8e
+ .text.initPortA
+                0x00000000000007b2       0x8e build/default/debug/main.o
+                0x00000000000007b2                initPortA
+
+.text.initPortB
+                0x0000000000000840       0x8e
+ .text.initPortB
+                0x0000000000000840       0x8e build/default/debug/main.o
+                0x0000000000000840                initPortB
+
+.text.initPortC
+                0x00000000000008ce       0x8e
+ .text.initPortC
+                0x00000000000008ce       0x8e build/default/debug/main.o
+                0x00000000000008ce                initPortC
+
+.text.initPortD
+                0x000000000000095c       0x8e
+ .text.initPortD
+                0x000000000000095c       0x8e build/default/debug/main.o
+                0x000000000000095c                initPortD
+
+.text.MCOM_sendframe
+                0x00000000000009ea       0x66
+ .text.MCOM_sendframe
+                0x00000000000009ea       0x66 build/default/debug/main.o
+                0x00000000000009ea                MCOM_sendframe
+
+.text.readPortA
+                0x0000000000000a50       0x60
+ .text.readPortA
+                0x0000000000000a50       0x60 build/default/debug/main.o
+                0x0000000000000a50                readPortA
+
+.text.readPortB
+                0x0000000000000ab0       0x60
+ .text.readPortB
+                0x0000000000000ab0       0x60 build/default/debug/main.o
+                0x0000000000000ab0                readPortB
+
+.text.readPortC
+                0x0000000000000b10       0x60
+ .text.readPortC
+                0x0000000000000b10       0x60 build/default/debug/main.o
+                0x0000000000000b10                readPortC
+
+.text.readPortD
+                0x0000000000000b70       0x60
+ .text.readPortD
+                0x0000000000000b70       0x60 build/default/debug/main.o
+                0x0000000000000b70                readPortD
+
+.text.getPriority
+                0x0000000000000bd0       0x5c
+ .text.getPriority
+                0x0000000000000bd0       0x5c build/default/debug/main.o
+                0x0000000000000bd0                getPriority
+
+.text.writePortA
+                0x0000000000000c2c       0x5a
+ .text.writePortA
+                0x0000000000000c2c       0x5a build/default/debug/main.o
+                0x0000000000000c2c                writePortA
+
+.text.writePortB
+                0x0000000000000c86       0x5a
+ .text.writePortB
+                0x0000000000000c86       0x5a build/default/debug/main.o
+                0x0000000000000c86                writePortB
+
+.text.writePortC
+                0x0000000000000ce0       0x5a
+ .text.writePortC
+                0x0000000000000ce0       0x5a build/default/debug/main.o
+                0x0000000000000ce0                writePortC
+
+.text.writePortD
+                0x0000000000000d3a       0x5a
+ .text.writePortD
+                0x0000000000000d3a       0x5a build/default/debug/main.o
+                0x0000000000000d3a                writePortD
+
+.text.__vector_19
+                0x0000000000000d94       0x3e
+ .text.__vector_19
+                0x0000000000000d94       0x3e build/default/debug/main.o
+                0x0000000000000d94                __vector_19
+
+.text.__vector_52
+                0x0000000000000dd2       0x3e
+ .text.__vector_52
+                0x0000000000000dd2       0x3e build/default/debug/main.o
+                0x0000000000000dd2                __vector_52
+
+.text.__vector_31
+                0x0000000000000e10       0x3e
+ .text.__vector_31
+                0x0000000000000e10       0x3e build/default/debug/main.o
+                0x0000000000000e10                __vector_31
+
+.text.__vector_55
+                0x0000000000000e4e       0x3e
+ .text.__vector_55
+                0x0000000000000e4e       0x3e build/default/debug/main.o
+                0x0000000000000e4e                __vector_55
+
+.text.__vector_37
+                0x0000000000000e8c       0x3e
+ .text.__vector_37
+                0x0000000000000e8c       0x3e build/default/debug/main.o
+                0x0000000000000e8c                __vector_37
+
+.text.initPort2
+                0x0000000000000eca       0x3c
+ .text.initPort2
+                0x0000000000000eca       0x3c build/default/debug/main.o
+                0x0000000000000eca                initPort2
+
+.text.txWrite2  0x0000000000000f06       0x20
+ .text.txWrite2
+                0x0000000000000f06       0x20 build/default/debug/main.o
+                0x0000000000000f06                txWrite2
+
+.text.rxRead2   0x0000000000000f26       0x20
+ .text.rxRead2  0x0000000000000f26       0x20 build/default/debug/main.o
+                0x0000000000000f26                rxRead2
+
+.text.setWait   0x0000000000000f46       0x16
+ .text.setWait  0x0000000000000f46       0x16 build/default/debug/main.o
+                0x0000000000000f46                setWait
+
+.text.exit      0x0000000000000f5c       0x16
+ .text.exit     0x0000000000000f5c       0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000f5c                exit
+
+.text.timerInit
+                0x0000000000000f72       0x12
+ .text.timerInit
+                0x0000000000000f72       0x12 build/default/debug/main.o
+                0x0000000000000f72                timerInit
+
+.rodata         0x0000000000808f84        0xe load address 0x0000000000000f84
+ .rodata        0x0000000000808f84        0xe build/default/debug/main.o
+
+.text.portA_available
+                0x0000000000000f92        0xa
+ .text.portA_available
+                0x0000000000000f92        0xa build/default/debug/main.o
+                0x0000000000000f92                portA_available
+
+.text.portB_available
+                0x0000000000000f9c        0xa
+ .text.portB_available
+                0x0000000000000f9c        0xa build/default/debug/main.o
+                0x0000000000000f9c                portB_available
+
+.text.portC_available
+                0x0000000000000fa6        0xa
+ .text.portC_available
+                0x0000000000000fa6        0xa build/default/debug/main.o
+                0x0000000000000fa6                portC_available
+
+.text.portD_available
+                0x0000000000000fb0        0xa
+ .text.portD_available
+                0x0000000000000fb0        0xa build/default/debug/main.o
+                0x0000000000000fb0                portD_available
+
+.text.getTimerFlag
+                0x0000000000000fba        0x8
+ .text.getTimerFlag
+                0x0000000000000fba        0x8 build/default/debug/main.o
+                0x0000000000000fba                getTimerFlag
+
+.text.txWriteA  0x0000000000000fc2        0x8
+ .text.txWriteA
+                0x0000000000000fc2        0x8 build/default/debug/main.o
+                0x0000000000000fc2                txWriteA
+
+.text.txWriteB  0x0000000000000fca        0x8
+ .text.txWriteB
+                0x0000000000000fca        0x8 build/default/debug/main.o
+                0x0000000000000fca                txWriteB
+
+.text.txWriteC  0x0000000000000fd2        0x8
+ .text.txWriteC
+                0x0000000000000fd2        0x8 build/default/debug/main.o
+                0x0000000000000fd2                txWriteC
+
+.text.txWriteD  0x0000000000000fda        0x8
+ .text.txWriteD
+                0x0000000000000fda        0x8 build/default/debug/main.o
+                0x0000000000000fda                txWriteD
+
+.text.rxReadA   0x0000000000000fe2        0x8
+ .text.rxReadA  0x0000000000000fe2        0x8 build/default/debug/main.o
+                0x0000000000000fe2                rxReadA
+
+.text.rxReadB   0x0000000000000fea        0x8
+ .text.rxReadB  0x0000000000000fea        0x8 build/default/debug/main.o
+                0x0000000000000fea                rxReadB
+
+.text.rxReadC   0x0000000000000ff2        0x8
+ .text.rxReadC  0x0000000000000ff2        0x8 build/default/debug/main.o
+                0x0000000000000ff2                rxReadC
+
+.text.rxReadD   0x0000000000000ffa        0x8
+ .text.rxReadD  0x0000000000000ffa        0x8 build/default/debug/main.o
+                0x0000000000000ffa                rxReadD
+
+.text           0x0000000000001002        0x4
+ .text          0x0000000000001002        0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000001002                __vector_38
+                0x0000000000001002                __vector_22
+                0x0000000000001002                __vector_28
+                0x0000000000001002                __vector_1
+                0x0000000000001002                __vector_32
+                0x0000000000001002                __vector_34
+                0x0000000000001002                __vector_24
+                0x0000000000001002                __vector_12
+                0x0000000000001002                __vector_46
+                0x0000000000001002                __bad_interrupt
+                0x0000000000001002                __vector_6
+                0x0000000000001002                __vector_35
+                0x0000000000001002                __vector_39
+                0x0000000000001002                __vector_3
+                0x0000000000001002                __vector_23
+                0x0000000000001002                __vector_30
+                0x0000000000001002                __vector_45
+                0x0000000000001002                __vector_25
+                0x0000000000001002                __vector_11
+                0x0000000000001002                __vector_54
+                0x0000000000001002                __vector_13
+                0x0000000000001002                __vector_17
+                0x0000000000001002                __vector_56
+                0x0000000000001002                __vector_7
+                0x0000000000001002                __vector_49
+                0x0000000000001002                __vector_41
+                0x0000000000001002                __vector_43
+                0x0000000000001002                __vector_27
+                0x0000000000001002                __vector_5
+                0x0000000000001002                __vector_33
+                0x0000000000001002                __vector_47
+                0x0000000000001002                __vector_4
+                0x0000000000001002                __vector_44
+                0x0000000000001002                __vector_51
+                0x0000000000001002                __vector_9
+                0x0000000000001002                __vector_2
+                0x0000000000001002                __vector_21
+                0x0000000000001002                __vector_15
+                0x0000000000001002                __vector_36
+                0x0000000000001002                __vector_29
+                0x0000000000001002                __vector_40
+                0x0000000000001002                __vector_8
+                0x0000000000001002                __vector_26
+                0x0000000000001002                __vector_48
+                0x0000000000001002                __vector_14
+                0x0000000000001002                __vector_57
+                0x0000000000001002                __vector_53
+                0x0000000000001002                __vector_10
+                0x0000000000001002                __vector_50
+                0x0000000000001002                __vector_16
+                0x0000000000001002                __vector_18
+                0x0000000000001002                __vector_20
+                0x0000000000001002                __vector_42
+
+.text._Exit     0x0000000000001006        0x4
+ .text._Exit    0x0000000000001006        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                0x0000000000001006                _Exit
+
+.text.__dummy_fini
+                0x000000000000100a        0x2
+ .text.__dummy_fini
+                0x000000000000100a        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100a                _fini
+
+.text.__dummy_funcs_on_exit
+                0x000000000000100c        0x2
+ .text.__dummy_funcs_on_exit
+                0x000000000000100c        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100c                __funcs_on_exit
+
+.text.__dummy_simulator_exit
+                0x000000000000100e        0x2
+ .text.__dummy_simulator_exit
+                0x000000000000100e        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100e                __simulator_exit
diff --git a/Version 1.2/RS232_MUX.X/dist/default/debug/memoryfile.xml b/Version 1.2/RS232_MUX.X/dist/default/debug/memoryfile.xml
new file mode 100644
index 0000000..b507f5b
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/dist/default/debug/memoryfile.xml	
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<project>                                  
+  <executable name="dist/default/debug/RS232_MUX.X.debug.elf">                 
+    <memory name="program">              
+      <units>bytes</units>                 
+      <length>32768</length>                 
+      <used>4112</used>                     
+      <free>28656</free>                     
+    </memory>                              
+    <memory name="data">                 
+      <units>bytes</units>                 
+      <length>4096</length>                 
+      <used>1552</used>                     
+      <free>2544</free>                     
+    </memory>                              
+  </executable>                            
+</project>                                 
diff --git a/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf
new file mode 100644
index 0000000..1066b4b
Binary files /dev/null and b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf differ
diff --git a/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex
new file mode 100644
index 0000000..5d94a0f
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex	
@@ -0,0 +1,276 @@
+:100000000C9477000C9401080C9401080C940108DE
+:100010000C9401080C9401080C9401080C9401083C
+:100020000C9401080C9401080C9401080C9401082C
+:100030000C9401080C9401080C9401080C9401081C
+:100040000C9401080C9401080C9401080C94CA0645
+:100050000C9401080C9401080C9401080C940108FC
+:100060000C9401080C9401080C9401080C940108EC
+:100070000C9401080C9401080C9401080C940807D6
+:100080000C9401080C9401080C9401080C940108CC
+:100090000C9401080C9446070C9401080C94010878
+:1000A0000C9401080C9401080C9401080C940108AC
+:1000B0000C9401080C9401080C9401080C9401089C
+:1000C0000C9401080C9401080C9401080C9401088C
+:1000D0000C94E9060C9401080C9401080C94270771
+:1000E0000C9401080C940108700076108000112413
+:1000F0001FBECFEFCDBFDFE7DEBFE8EEF0E040E0B0
+:1001000017C0B591A59135912591059107FD0CC0BA
+:1001100095918591EF01F92FE82F05900D92A21787
+:10012000B307D9F7FE0104C01D92A217B307E1F788
+:10013000ED3EF40731F70E94A1000C94AE07F8944D
+:02014000FFCFEF
+:10014200CF93DF93CDB7DEB7CC54D140CDBFDEBF66
+:10015200CF5BDE4F1882C154D140FE01EE5BFE4FF1
+:1001620085E0DF011D928A95E9F7C95BDE4F1882AF
+:1001720019821A821B82C754D14088E893E10E94F7
+:10018200A307FE01EF5BFF4FCE018F579F4F1192E6
+:10019200E817F907E1F7FE01EF57FF4FCE018F5342
+:1001A2009F4F1192E817F907E1F7FE01EF53FF4F56
+:1001B200CE018F5F9E4F1192E817F907E1F7FE011A
+:1001C200EF5FFE4FCE018F5B9E4F1192E817F9074A
+:1001D200E1F794E288ED84BF9093680000E814E0B0
+:1001E200F801808187608083E0E2F4E080818063AF
+:1001F200808380818F608083D8018C9188608C930A
+:100202008481816084838481826084838481846028
+:1002120084838481886084838481806184838481EF
+:100222008062848314968C911497886014968C93C0
+:1002320084E690E00E94A307F8018481877F84838B
+:1002420085E090E00E94A30720E040E063E088E6BA
+:100252000E94D90320E040E063E088E60E94200487
+:1002620020E040E063E088E60E94670420E040E08E
+:1002720063E088E60E94AE0400E020E043E061E42F
+:1002820073E080E090E00E94650784EF91E00E94B5
+:10029200A30780E69AEE0E94B90778948FE38093D1
+:1002A200000410E0812C912CA12CB12CC55BDE4FF7
+:1002B20018821982CB54D140C12CD12CE12CF12CC3
+:1002C200212C312C412C6624639406C0143020F07A
+:1002D20000000000000000005394F7E05F1201C02C
+:1002E20000000E94C907882389F0CE5BDE4F688236
+:1002F200C254D1400E94F107E1E4F0E0EC0FFD1F8F
+:10030200E00FF11D80830F5FC12CD12C0E94CE071C
+:100312008823A9F0CD5BDE4F6882C354D1400E948E
+:10032200F507E1E8F0E0EC0FFD1FE40DF11D80831D
+:100332004394C55BDE4F18821982CB54D1400E9490
+:10034200D307882389F0CC5BDE4F6882C454D14046
+:100352000E94F907E1ECF0E0EC0FFD1FE30DF11D47
+:1003620080833394A12CB12C0E94D807882389F072
+:10037200CB5BDE4F6882C554D1400E94FD07E1E0AD
+:10038200F1E0EC0FFD1FE20DF11D80832394812C1F
+:10039200912CA7E0B3E78C918823B1F0CA5BDE4FC2
+:1003A2006882C654D1400E949307E1E0F0E0EC0F6E
+:1003B200FD1FE70DF11D808373940E94DD078111FB
+:1003C20008C0E12CF12C38C00E94DD07882381F19E
+:1003D20002C0E12CF12C772019F0BFEFEB1AFB0AD7
+:1003E200002319F0EFEFCE1ADE0A442069F0C55B54
+:1003F200DE4F88819981CB54D1400196C55BDE4F97
+:1004020088839983CB54D140332019F09FEFA91AE6
+:10041200B90A222019F0AFEF8A1A9A0ABE016E5B5E
+:100422007E4FCE018F5B9E4F0E94E70260920B0AC5
+:10043200B6E0EB16F10418F4EFE3E71540F4672D8C
+:10044200CE0101960E946603E12CF12C712C111150
+:1004520024C0F6E0CF16D10418F4003408F473C0B7
+:1004620044E0BE01695B7E4F80E00E94E805182FE0
+:10047200843020F00000000000000000CF5BDE4F5F
+:100482006882C154D14040E0602FCE018F5B9F4F04
+:100492000E94F504C12CD12C00E0113069F5C55B36
+:1004A200DE4F88819981CB54D140069720F49FE397
+:1004B200941508F06EC044E0BE01695B7E4F862D44
+:1004C2000E94E805182F843020F000000000000090
+:1004D2000000CF5BDE4F6882C154D140462D642DAF
+:1004E200CE018F579F4F0E94F504C55BDE4F1882E5
+:1004F2001982CB54D140412C123029F5A6E0AA161C
+:10050200B10420F4BFE3B31508F043C044E0BE01D8
+:10051200695B7E4F82E00E94E805182F843020F04C
+:100522000000000000000000CF5BDE4F6882C15473
+:10053200D14042E0632DCE018F539F4F0E94F504BC
+:10054200A12CB12C312C133021F5E6E08E1691044A
+:1005520018F4FFE3F215E8F444E0BE01695B7E4F54
+:1005620083E00E94E805182F843020F0000000008C
+:1005720000000000CF5BDE4F6882C154D14043E0EF
+:10058200622DCE018F5F9E4F0E94F504812C912C2B
+:10059200212C011105C0C95BDE4F1882C754D1401E
+:1005A200411005C0C85BDE4F1882C854D1403110DB
+:1005B20005C0C75BDE4F1882C954D140211086CED8
+:0C05C200C65BDE4F1882CA54D14080CEC8
+:1005CE00FB01DC012C91222359F0A0E0B4E014963B
+:1005DE002C911497206214962C93DC011C9208C067
+:1005EE00A0E0B4E014968C9114978F7D14968C93A2
+:1005FE008481882351F0A0E0B4E014968C91149776
+:10060E00806114968C93148208C0A0E0B4E0149616
+:10061E008C9114978F7E14968C938081882351F041
+:10062E00A0E0B4E014968C911497816014968C938C
+:10063E00108208C0A0E0B4E014968C9114978E7FBF
+:10064E0014968C938181882351F0A0E0B4E0149627
+:10065E008C911497826014968C93118208C0A0E03E
+:10066E00B4E014968C9114978D7F14968C9382819E
+:10067E00882351F0A0E0B4E014968C911497846016
+:10068E0014968C93128208C0A0E0B4E014968C915C
+:10069E0014978B7F14968C938381882351F0A0E05E
+:1006AE00B4E014968C911497886014968C931382F0
+:0E06BE000895E0E0F4E08481877F848308954E
+:1006CC00CF92DF92EF92FF920F931F93CF93DF9312
+:1006DC00CDB7DEB72897CDBFDEBFAC0188E0EAE826
+:1006EC00FFE8DE01119601900D928A95E1F7DA018F
+:1006FC00EFE0F5E72FE036E79D919193E217F307D2
+:10070C00D9F780910F76823009F400008091107532
+:10071C00833009F40000FA0180818230C1F58281B6
+:10072C008432A9F58381843291F5862F90E0E80F0D
+:10073C00F91F319720812D3051F50297DA01A80F5E
+:10074C00B91F8C918A3019F5FA018181815481830A
+:10075C00833010F490E002C083E090E0880F991F82
+:10076C00FE01E80FF91FC180D280862F90E002971E
+:10077C0005976CF08A010C5F1F4F7D01F801819188
+:10078C008F0190E0F60109950E151F05B9F7289613
+:10079C00CDBFDEBFDF91CF911F910F91FF90EF90F6
+:0607AC00DF90CF900895DC
+:1007B2000F931F93CF93DF93082FD62F142FC22F9F
+:1007C20083E00E94280584E190E00E94A30763E091
+:1007D20080E80E94160684E190E00E94A30761E08F
+:1007E20080E00E94160684E190E00E94A30760E088
+:1007F200802F0E94160684E190E00E94A30783E006
+:100802000E9428058F77CC0FCC0F110F110F110FFB
+:10081200C12B8D2B63E08C2B0E94160684E190E0A5
+:100822000E94A30762E081E00E94160684E190E044
+:0E0832000E94A307DF91CF911F910F910895AF
+:100840000F931F93CF93DF93082FD62F142FC22F10
+:1008500083E00E94580584E190E00E94A30763E0D2
+:1008600080E80E94430684E190E00E94A30761E0D3
+:1008700080E00E94430684E190E00E94A30760E0CC
+:10088000802F0E94430684E190E00E94A30783E04A
+:100890000E9458058F77CC0FCC0F110F110F110F3D
+:1008A000C12B8D2B63E08C2B0E94430684E190E0EA
+:1008B0000E94A30762E081E00E94430684E190E089
+:0E08C0000E94A307DF91CF911F910F91089521
+:1008CE000F931F93CF93DF93082FD62F142FC22F82
+:1008DE0083E00E94880584E190E00E94A30763E014
+:1008EE0080E80E94700684E190E00E94A30761E018
+:1008FE0080E00E94700684E190E00E94A30760E011
+:10090E00802F0E94700684E190E00E94A30783E08E
+:10091E000E9488058F77CC0FCC0F110F110F110F7E
+:10092E00C12B8D2B63E08C2B0E94700684E190E02E
+:10093E000E94A30762E081E00E94700684E190E0CD
+:0E094E000E94A307DF91CF911F910F91089592
+:10095C000F931F93CF93DF93082FD62F142FC22FF3
+:10096C0083E00E94B80584E190E00E94A30763E055
+:10097C0080E80E949D0684E190E00E94A30761E05C
+:10098C0080E00E949D0684E190E00E94A30760E055
+:10099C00802F0E949D0684E190E00E94A30783E0D3
+:1009AC000E94B8058F77CC0FCC0F110F110F110FC0
+:1009BC00C12B8D2B63E08C2B0E949D0684E190E073
+:1009CC000E94A30762E081E00E949D0684E190E012
+:0E09DC000E94A307DF91CF911F910F91089504
+:1009EA00EF92FF920F931F93CF93DF937C01162F01
+:1009FA00C42F82E00E94830781E48C0F0E94830740
+:100A0A0084E20E94830784E20E948307112371F023
+:100A1A00E7011150012F10E00F5F1F4F0E0D1F1D30
+:100A2A0089910E948307C017D107D1F78AE00E94F3
+:100A3A0083078DE00E948307DF91CF911F910F9169
+:060A4A00FF90EF900895FB
+:100A50000F931F93CF93DF9300E614E0F801108209
+:100A600080938404C0E2D4E08C818E7F8C8383E009
+:100A700090E00E94A3078C818F7D8C8383E090E0BF
+:100A80000E94A307F801108583E090E00E94A3076D
+:100A90008C8180628C8383E090E00E94A3078C812C
+:100AA00081608C83812FDF91CF911F910F910895E9
+:100AB0000F931F93CF93DF9300E614E0F8011082A9
+:100AC00080938404C0E2D4E08C818D7F8C8383E0AA
+:100AD00090E00E94A3078C818F7D8C8383E090E05F
+:100AE0000E94A307F801108583E090E00E94A3070D
+:100AF0008C8180628C8383E090E00E94A3078C81CC
+:100B000082608C83812FDF91CF911F910F91089587
+:100B10000F931F93CF93DF9300E614E0F801108248
+:100B200080938404C0E2D4E08C818B7F8C8383E04B
+:100B300090E00E94A3078C818F7D8C8383E090E0FE
+:100B40000E94A307F801108583E090E00E94A307AC
+:100B50008C8180628C8383E090E00E94A3078C816B
+:100B600084608C83812FDF91CF911F910F91089525
+:100B70000F931F93CF93DF9300E614E0F8011082E8
+:100B800080938404C0E2D4E08C81877F8C8383E0EF
+:100B900090E00E94A3078C818F7D8C8383E090E09E
+:100BA0000E94A307F801108583E090E00E94A3074C
+:100BB0008C8180628C8383E090E00E94A3078C810B
+:100BC00088608C83812FDF91CF911F910F910895C1
+:100BD000442331F1FB012FEF240F30E02F5F3F4F13
+:100BE000260F371F90819F5F9193E217F307D1F78C
+:100BF000FB01E80FF11D1082423080F0FB013196BD
+:100C000091E080E03191DB01A80FB11D2C912317F9
+:100C100008F4892F9F5F4913F5CF089580E0089568
+:0C0C2000FB01E80FF11D108280E0089538
+:100C2C000F931F93CF93DF9300E614E09FEFF8012F
+:100C3C009083609384048483C0E2D4E08C818E7FA3
+:100C4C008C8383E090E00E94A3078C818F7E8C8341
+:100C5C0083E090E00E94A3078C8180618C8383E009
+:100C6C0090E00E94A3078C8181608C83F801108234
+:0A0C7C00DF91CF911F910F910895B1
+:100C86000F931F93CF93DF9300E614E09FEFF801D5
+:100C96009083609384048483C0E2D4E08C818D7F4A
+:100CA6008C8383E090E00E94A3078C818F7E8C83E7
+:100CB60083E090E00E94A3078C8180618C8383E0AF
+:100CC60090E00E94A3078C8182608C83F8011082D9
+:0A0CD600DF91CF911F910F91089557
+:100CE0000F931F93CF93DF9300E614E09FEFF8017B
+:100CF0009083609384048483C0E2D4E08C818B7FF2
+:100D00008C8383E090E00E94A3078C818F7E8C838C
+:100D100083E090E00E94A3078C8180618C8383E054
+:100D200090E00E94A3078C8184608C83F80110827C
+:0A0D3000DF91CF911F910F910895FC
+:100D3A000F931F93CF93DF9300E614E09FEFF80120
+:100D4A009083609384048483C0E2D4E08C81877F9B
+:100D5A008C8383E090E00E94A3078C818F7E8C8332
+:100D6A0083E090E00E94A3078C8180618C8383E0FA
+:100D7A0090E00E94A3078C8188608C83F80110821E
+:0A0D8A00DF91CF911F910F910895A2
+:100D94008F938FB78F93AF93BF93EF93FF93ADE090
+:100DA400B5E7EC91F0E080910008E45FFB488183B3
+:100DB4008C918F3F21F0FD0180818F5F8083FF91B3
+:0E0DC400EF91BF91AF918F918FBF8F911895D6
+:100DD2008F938FB78F93AF93BF93EF93FF93AAE055
+:100DE200B4E7EC91F0E080916008E75FFC48818312
+:100DF2008C918F3F21F0FD0180818F5F8083FF9175
+:0E0E0200EF91BF91AF918F918FBF8F91189597
+:100E10008F938FB78F93AF93BF93EF93FF93A7E019
+:100E2000B3E7EC91F0E080912008EA5FFD48818310
+:100E30008C918F3F21F0FD0180818F5F8083FF9136
+:0E0E4000EF91BF91AF918F918FBF8F91189559
+:100E4E008F938FB78F93AF93BF93EF93FF93A4E0DE
+:100E5E00B2E7EC91F0E080918008ED5FFE4881836F
+:100E6E008C918F3F21F0FD0180818F5F8083FF91F8
+:0E0E7E00EF91BF91AF918F918FBF8F9118951B
+:100E8C008F938FB78F93AF93BF93EF93FF93A1E0A3
+:100E9C00B1E7EC91F0E080914008E050F04981839B
+:100EAC008C918F3F21F0FD0180818F5F8083FF91BA
+:0E0EBC00EF91BF91AF918F918FBF8F911895DD
+:100ECA000F931F93502FE0E4F4E0308131603083B8
+:100EDA00E0E2F8E06087718790E8958390ED968369
+:100EEA00022F000F000F000F402B80E1589F800156
+:0C0EFA001124042B07831F910F91089511
+:100F0600E0E2F8E0948195FFFDCF80932208E0E2CD
+:100F1600F8E0848186FFFDCF80E48093240808955D
+:100F260080910773882329F0E7E0F3E780818150F9
+:100F36008083E0910773F0E0EA5FFD4881810895C0
+:100F4600009741F020E030E000002F5F3F4F82170E
+:060F56009307D1F7089596
+:100F5C00EC010E9406080E940508CE010E940708B9
+:060F6C00CE010E94030803
+:100F7200E0E0FAE097A386A383E0808311821186E2
+:020F82000895D0
+:0E0F8400680034001A00E107E507E907ED07F1
+:0A0F920085E00E9428058170089593
+:0A0F9C0085E00E9458058170089559
+:0A0FA60085E00E948805817008951F
+:0A0FB00085E00E94B80581700895E5
+:080FBA0080910B0A817008957B
+:080FC20060E00E94160608958C
+:080FCA0060E00E944306089557
+:080FD20060E00E947006089522
+:080FDA0060E00E949D060895ED
+:080FE20080E00E94280508953B
+:080FEA0080E00E945805089503
+:080FF20080E00E9488050895CB
+:080FFA0080E00E94B805089593
+:041002000C9400004A
+:041006000E949F00A5
+:02100A00089547
+:02100C00089545
+:02100E00089543
+:00000001FF
diff --git a/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map
new file mode 100644
index 0000000..46d1ead
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map	
@@ -0,0 +1,861 @@
+Archive member included to satisfy reference by file (symbol)
+
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                              build/default/production/main.o (__do_clear_bss)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                              C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o (exit)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o) (_Exit)
+C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+                              build/default/production/main.o (eeprom_read_byte)
+C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+                              build/default/production/main.o (eeprom_write_byte)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o) (_exit)
+
+Discarded input sections
+
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .text          0x0000000000000000        0x0 build/default/production/main.o
+ .data          0x0000000000000000        0x0 build/default/production/main.o
+ .bss           0x0000000000000000        0x0 build/default/production/main.o
+ .text.initPort0
+                0x0000000000000000       0x32 build/default/production/main.o
+ .text.txWrite0
+                0x0000000000000000       0x20 build/default/production/main.o
+ .text.rxRead0  0x0000000000000000       0x20 build/default/production/main.o
+ .text.portAvailable0
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.initPort1
+                0x0000000000000000       0x3c build/default/production/main.o
+ .text.txWrite1
+                0x0000000000000000       0x20 build/default/production/main.o
+ .text.rxRead1  0x0000000000000000       0x20 build/default/production/main.o
+ .text.portAvailable1
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable2
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.initPort3
+                0x0000000000000000       0x3c build/default/production/main.o
+ .text.txWrite3
+                0x0000000000000000       0x20 build/default/production/main.o
+ .text.rxRead3  0x0000000000000000       0x20 build/default/production/main.o
+ .text.portAvailable3
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.initPort4
+                0x0000000000000000       0x3c build/default/production/main.o
+ .text.txWrite4
+                0x0000000000000000       0x20 build/default/production/main.o
+ .text.rxRead4  0x0000000000000000       0x20 build/default/production/main.o
+ .text.portAvailable4
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.clearTimerFlag
+                0x0000000000000000        0x8 build/default/production/main.o
+ .text.getEEPROMCfg
+                0x0000000000000000       0xac build/default/production/main.o
+ .text.getDebugLedsConfiguration
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.readConfiguration
+                0x0000000000000000       0xae build/default/production/main.o
+ .text.debugLedsTest
+                0x0000000000000000       0x32 build/default/production/main.o
+ .text.bootSequence
+                0x0000000000000000        0x6 build/default/production/main.o
+ .bss.global_parity
+                0x0000000000000000        0x1 build/default/production/main.o
+ .bss.eepromDebugLeds
+                0x0000000000000000        0x2 build/default/production/main.o
+ .bss.eepromVCOM
+                0x0000000000000000        0x8 build/default/production/main.o
+ .bss._timerFlag
+                0x0000000000000000        0x1 build/default/production/main.o
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x73 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .text          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .text.avrlibc  0x0000000000000000       0x10 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .stack.descriptors
+                0x0000000000000000       0x38 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_line    0x0000000000000000       0x79 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_info    0x0000000000000000       0xac C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_abbrev  0x0000000000000000       0x14 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .debug_aranges
+                0x0000000000000000       0x20 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eerd_byte.o)
+ .text          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .text.avrlibc  0x0000000000000000       0x30 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .stack.descriptors
+                0x0000000000000000       0x3d C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_line    0x0000000000000000       0xd9 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_info    0x0000000000000000       0xac C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_abbrev  0x0000000000000000       0x14 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .debug_aranges
+                0x0000000000000000       0x20 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a(eewr_byte.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x0000000000000000 0x0000000000008000 xr
+data             0x0000000000807000 0x0000000000001000 rw !x
+eeprom           0x0000000000810000 0x0000000000000200 rw !x
+fuse             0x0000000000820000 0x0000000000000010 rw !x
+lock             0x0000000000830000 0x0000000000000400 rw !x
+signature        0x0000000000840000 0x0000000000000400 rw !x
+user_signatures  0x0000000000850000 0x0000000000000400 rw !x
+bootrow          0x0000000000860000 0x0000000000000400 rw !x
+*default*        0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x807000
+                0x0000000000008000                __RODATA_PM_OFFSET__ = 0x8000
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000001                __MPLAB_BUILD = 0x1
+LOAD build/default/production/main.o
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+END GROUP
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a
+END GROUP
+                [0x0000000000000000]                __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
+                [0x0000000000807000]                __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x802000
+                [0x0000000000008000]                __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
+                [0x0000000000001000]                __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
+                [0x0000000000000200]                __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
+                [0x0000000000000010]                __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
+                0x0000000000000400                __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
+                0x0000000000000400                __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000000400                __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000008000                __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
+                0x0000000000000400                __BOOTROW_REGION_LENGTH__ = DEFINED (__BOOTROW_REGION_LENGTH__)?__BOOTROW_REGION_LENGTH__:0x400
+
+.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           0x0000000000000000      0x142
+ *(.vectors)
+ .vectors       0x0000000000000000       0xe8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000000                __vector_default
+                0x0000000000000000                __vectors
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.dinit)
+ .dinit         0x00000000000000e8        0x5 data_init
+                0x00000000000000ee                . = ALIGN (0x2)
+ *fill*         0x00000000000000ed        0x1 
+                0x00000000000000ee                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000000000000ee        0x0 linker stubs
+ *(.trampolines*)
+                0x00000000000000ee                __trampolines_end = .
+ *libprintf_flt.a:*(.progmem.data)
+ *libc.a:*(.progmem.data)
+                0x00000000000000ee                . = ALIGN (0x2)
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000000000000ee                __ctors_start = .
+ *(.ctors)
+                0x00000000000000ee                __ctors_end = .
+                0x00000000000000ee                __dtors_start = .
+ *(.dtors)
+                0x00000000000000ee                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000000000000ee        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x00000000000000ee                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000000000000ee        0xc C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x00000000000000fa       0x3c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                0x00000000000000fa                __do_copy_data
+                0x0000000000000128                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000000000000136        0x8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init9)
+                0x000000000000013e                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x000000000000013e        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                0x000000000000013e                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x000000000000013e        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ *(.fini0)
+                0x0000000000000142                _etext = .
+
+.data           0x0000000000807000        0x0 load address 0x0000000000000142
+                [!provide]                        PROVIDE (__data_start, .)
+ *(.gnu.linkonce.d*)
+                0x0000000000807000                . = ALIGN (0x2)
+                0x0000000000807000                _edata = .
+                [!provide]                        PROVIDE (__data_end, .)
+
+.bss            0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__bss_start, .)
+ *(COMMON)
+                [!provide]                        PROVIDE (__bss_end, .)
+                0x0000000000000142                __data_load_start = LOADADDR (.data)
+                0x0000000000000142                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                [!provide]                        PROVIDE (__noinit_end, .)
+                0x0000000000807000                _end = .
+
+.eeprom         0x0000000000810000        0x0
+ *(.eeprom*)
+                0x0000000000810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.user_signatures
+ *(.user_signatures*)
+
+.bootrow
+ *(.bootrow*)
+
+.stab
+ *(.stab)
+
+.stabstr
+ *(.stabstr)
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment        0x0000000000000000       0x5b
+ *(.comment)
+ .comment       0x0000000000000000       0x2f build/default/production/main.o
+                                         0x30 (size before relaxing)
+ .comment       0x000000000000002f       0x2c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                                         0x2d (size before relaxing)
+ .comment       0x000000000000005b       0x2d c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.stack.descriptors.hdr
+                0x0000000000000000       0x2a
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors.hdr
+                0x000000000000000e        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors.hdr
+                0x000000000000001c        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+.note.GNU-stack
+                0x0000000000000000        0x0
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.note.gnu.build-id
+ *(.note.gnu.build-id)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges  0x0000000000000000      0x210
+ *(.debug_aranges)
+ .debug_aranges
+                0x0000000000000000      0x210 build/default/production/main.o
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info     0x0000000000000000     0x61ce
+ *(.debug_info .gnu.linkonce.wi.*)
+ .debug_info    0x0000000000000000     0x3214 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_info    0x0000000000003214     0x2fba build/default/production/main.o
+
+.debug_abbrev   0x0000000000000000     0x33d8
+ *(.debug_abbrev)
+ .debug_abbrev  0x0000000000000000     0x2f6e C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_abbrev  0x0000000000002f6e      0x46a build/default/production/main.o
+
+.debug_line     0x0000000000000000     0x1616
+ *(.debug_line .debug_line.* .debug_line_end)
+ .debug_line    0x0000000000000000      0x1f3 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_line    0x00000000000001f3     0x1423 build/default/production/main.o
+
+.debug_frame    0x0000000000000000      0x63c
+ *(.debug_frame)
+ .debug_frame   0x0000000000000000      0x63c build/default/production/main.o
+
+.debug_str      0x0000000000000000     0x1610
+ *(.debug_str)
+ .debug_str     0x0000000000000000     0x1539 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .debug_str     0x0000000000001539       0xd7 build/default/production/main.o
+
+.debug_loc      0x0000000000000000     0x111b
+ *(.debug_loc)
+ .debug_loc     0x0000000000000000     0x111b build/default/production/main.o
+
+.debug_macinfo
+ *(.debug_macinfo)
+
+.debug_weaknames
+ *(.debug_weaknames)
+
+.debug_funcnames
+ *(.debug_funcnames)
+
+.debug_typenames
+ *(.debug_typenames)
+
+.debug_varnames
+ *(.debug_varnames)
+
+.debug_pubtypes
+ *(.debug_pubtypes)
+
+.debug_ranges   0x0000000000000000      0x200
+ *(.debug_ranges)
+ .debug_ranges  0x0000000000000000      0x200 build/default/production/main.o
+
+.debug_macro
+ *(.debug_macro)
+OUTPUT(dist/default/production/RS232_MUX.X.production.elf elf32-avr)
+LOAD linker stubs
+LOAD data_init
+
+.note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c
+ .note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+
+.bss.global_n   0x000000000080760f        0x1
+ .bss.global_n  0x000000000080760f        0x1 build/default/production/main.o
+                0x000000000080760f                global_n
+
+.bss.global_debugBuffer
+                0x000000000080750f      0x100
+ .bss.global_debugBuffer
+                0x000000000080750f      0x100 build/default/production/main.o
+                0x000000000080750f                global_debugBuffer
+
+.bss._RX4       0x0000000000807000      0x103
+ .bss._RX4      0x0000000000807000      0x103 build/default/production/main.o
+                0x0000000000807000                _RX4
+
+.bss._RX3       0x0000000000807103      0x103
+ .bss._RX3      0x0000000000807103      0x103 build/default/production/main.o
+                0x0000000000807103                _RX3
+
+.bss._RX2       0x0000000000807206      0x103
+ .bss._RX2      0x0000000000807206      0x103 build/default/production/main.o
+                0x0000000000807206                _RX2
+
+.bss._RX1       0x0000000000807309      0x103
+ .bss._RX1      0x0000000000807309      0x103 build/default/production/main.o
+                0x0000000000807309                _RX1
+
+.bss._RX0       0x000000000080740c      0x103
+ .bss._RX0      0x000000000080740c      0x103 build/default/production/main.o
+                0x000000000080740c                _RX0
+
+.text.main      0x0000000000000142      0x48c
+ .text.main     0x0000000000000142      0x48c build/default/production/main.o
+                0x0000000000000142                main
+
+.text.senseDebugLeds
+                0x00000000000005ce       0xfe
+ .text.senseDebugLeds
+                0x00000000000005ce       0xfe build/default/production/main.o
+                0x00000000000005ce                senseDebugLeds
+
+.text.VCOM_sendframe
+                0x00000000000006cc       0xe6
+ .text.VCOM_sendframe
+                0x00000000000006cc       0xe6 build/default/production/main.o
+                0x00000000000006cc                VCOM_sendframe
+
+.text.initPortA
+                0x00000000000007b2       0x8e
+ .text.initPortA
+                0x00000000000007b2       0x8e build/default/production/main.o
+                0x00000000000007b2                initPortA
+
+.text.initPortB
+                0x0000000000000840       0x8e
+ .text.initPortB
+                0x0000000000000840       0x8e build/default/production/main.o
+                0x0000000000000840                initPortB
+
+.text.initPortC
+                0x00000000000008ce       0x8e
+ .text.initPortC
+                0x00000000000008ce       0x8e build/default/production/main.o
+                0x00000000000008ce                initPortC
+
+.text.initPortD
+                0x000000000000095c       0x8e
+ .text.initPortD
+                0x000000000000095c       0x8e build/default/production/main.o
+                0x000000000000095c                initPortD
+
+.text.MCOM_sendframe
+                0x00000000000009ea       0x66
+ .text.MCOM_sendframe
+                0x00000000000009ea       0x66 build/default/production/main.o
+                0x00000000000009ea                MCOM_sendframe
+
+.text.readPortA
+                0x0000000000000a50       0x60
+ .text.readPortA
+                0x0000000000000a50       0x60 build/default/production/main.o
+                0x0000000000000a50                readPortA
+
+.text.readPortB
+                0x0000000000000ab0       0x60
+ .text.readPortB
+                0x0000000000000ab0       0x60 build/default/production/main.o
+                0x0000000000000ab0                readPortB
+
+.text.readPortC
+                0x0000000000000b10       0x60
+ .text.readPortC
+                0x0000000000000b10       0x60 build/default/production/main.o
+                0x0000000000000b10                readPortC
+
+.text.readPortD
+                0x0000000000000b70       0x60
+ .text.readPortD
+                0x0000000000000b70       0x60 build/default/production/main.o
+                0x0000000000000b70                readPortD
+
+.text.getPriority
+                0x0000000000000bd0       0x5c
+ .text.getPriority
+                0x0000000000000bd0       0x5c build/default/production/main.o
+                0x0000000000000bd0                getPriority
+
+.text.writePortA
+                0x0000000000000c2c       0x5a
+ .text.writePortA
+                0x0000000000000c2c       0x5a build/default/production/main.o
+                0x0000000000000c2c                writePortA
+
+.text.writePortB
+                0x0000000000000c86       0x5a
+ .text.writePortB
+                0x0000000000000c86       0x5a build/default/production/main.o
+                0x0000000000000c86                writePortB
+
+.text.writePortC
+                0x0000000000000ce0       0x5a
+ .text.writePortC
+                0x0000000000000ce0       0x5a build/default/production/main.o
+                0x0000000000000ce0                writePortC
+
+.text.writePortD
+                0x0000000000000d3a       0x5a
+ .text.writePortD
+                0x0000000000000d3a       0x5a build/default/production/main.o
+                0x0000000000000d3a                writePortD
+
+.text.__vector_19
+                0x0000000000000d94       0x3e
+ .text.__vector_19
+                0x0000000000000d94       0x3e build/default/production/main.o
+                0x0000000000000d94                __vector_19
+
+.text.__vector_52
+                0x0000000000000dd2       0x3e
+ .text.__vector_52
+                0x0000000000000dd2       0x3e build/default/production/main.o
+                0x0000000000000dd2                __vector_52
+
+.text.__vector_31
+                0x0000000000000e10       0x3e
+ .text.__vector_31
+                0x0000000000000e10       0x3e build/default/production/main.o
+                0x0000000000000e10                __vector_31
+
+.text.__vector_55
+                0x0000000000000e4e       0x3e
+ .text.__vector_55
+                0x0000000000000e4e       0x3e build/default/production/main.o
+                0x0000000000000e4e                __vector_55
+
+.text.__vector_37
+                0x0000000000000e8c       0x3e
+ .text.__vector_37
+                0x0000000000000e8c       0x3e build/default/production/main.o
+                0x0000000000000e8c                __vector_37
+
+.text.initPort2
+                0x0000000000000eca       0x3c
+ .text.initPort2
+                0x0000000000000eca       0x3c build/default/production/main.o
+                0x0000000000000eca                initPort2
+
+.text.txWrite2  0x0000000000000f06       0x20
+ .text.txWrite2
+                0x0000000000000f06       0x20 build/default/production/main.o
+                0x0000000000000f06                txWrite2
+
+.text.rxRead2   0x0000000000000f26       0x20
+ .text.rxRead2  0x0000000000000f26       0x20 build/default/production/main.o
+                0x0000000000000f26                rxRead2
+
+.text.setWait   0x0000000000000f46       0x16
+ .text.setWait  0x0000000000000f46       0x16 build/default/production/main.o
+                0x0000000000000f46                setWait
+
+.text.exit      0x0000000000000f5c       0x16
+ .text.exit     0x0000000000000f5c       0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000f5c                exit
+
+.text.timerInit
+                0x0000000000000f72       0x12
+ .text.timerInit
+                0x0000000000000f72       0x12 build/default/production/main.o
+                0x0000000000000f72                timerInit
+
+.rodata         0x0000000000808f84        0xe load address 0x0000000000000f84
+ .rodata        0x0000000000808f84        0xe build/default/production/main.o
+
+.text.portA_available
+                0x0000000000000f92        0xa
+ .text.portA_available
+                0x0000000000000f92        0xa build/default/production/main.o
+                0x0000000000000f92                portA_available
+
+.text.portB_available
+                0x0000000000000f9c        0xa
+ .text.portB_available
+                0x0000000000000f9c        0xa build/default/production/main.o
+                0x0000000000000f9c                portB_available
+
+.text.portC_available
+                0x0000000000000fa6        0xa
+ .text.portC_available
+                0x0000000000000fa6        0xa build/default/production/main.o
+                0x0000000000000fa6                portC_available
+
+.text.portD_available
+                0x0000000000000fb0        0xa
+ .text.portD_available
+                0x0000000000000fb0        0xa build/default/production/main.o
+                0x0000000000000fb0                portD_available
+
+.text.getTimerFlag
+                0x0000000000000fba        0x8
+ .text.getTimerFlag
+                0x0000000000000fba        0x8 build/default/production/main.o
+                0x0000000000000fba                getTimerFlag
+
+.text.txWriteA  0x0000000000000fc2        0x8
+ .text.txWriteA
+                0x0000000000000fc2        0x8 build/default/production/main.o
+                0x0000000000000fc2                txWriteA
+
+.text.txWriteB  0x0000000000000fca        0x8
+ .text.txWriteB
+                0x0000000000000fca        0x8 build/default/production/main.o
+                0x0000000000000fca                txWriteB
+
+.text.txWriteC  0x0000000000000fd2        0x8
+ .text.txWriteC
+                0x0000000000000fd2        0x8 build/default/production/main.o
+                0x0000000000000fd2                txWriteC
+
+.text.txWriteD  0x0000000000000fda        0x8
+ .text.txWriteD
+                0x0000000000000fda        0x8 build/default/production/main.o
+                0x0000000000000fda                txWriteD
+
+.text.rxReadA   0x0000000000000fe2        0x8
+ .text.rxReadA  0x0000000000000fe2        0x8 build/default/production/main.o
+                0x0000000000000fe2                rxReadA
+
+.text.rxReadB   0x0000000000000fea        0x8
+ .text.rxReadB  0x0000000000000fea        0x8 build/default/production/main.o
+                0x0000000000000fea                rxReadB
+
+.text.rxReadC   0x0000000000000ff2        0x8
+ .text.rxReadC  0x0000000000000ff2        0x8 build/default/production/main.o
+                0x0000000000000ff2                rxReadC
+
+.text.rxReadD   0x0000000000000ffa        0x8
+ .text.rxReadD  0x0000000000000ffa        0x8 build/default/production/main.o
+                0x0000000000000ffa                rxReadD
+
+.text           0x0000000000001002        0x4
+ .text          0x0000000000001002        0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000001002                __vector_38
+                0x0000000000001002                __vector_22
+                0x0000000000001002                __vector_28
+                0x0000000000001002                __vector_1
+                0x0000000000001002                __vector_32
+                0x0000000000001002                __vector_34
+                0x0000000000001002                __vector_24
+                0x0000000000001002                __vector_12
+                0x0000000000001002                __vector_46
+                0x0000000000001002                __bad_interrupt
+                0x0000000000001002                __vector_6
+                0x0000000000001002                __vector_35
+                0x0000000000001002                __vector_39
+                0x0000000000001002                __vector_3
+                0x0000000000001002                __vector_23
+                0x0000000000001002                __vector_30
+                0x0000000000001002                __vector_45
+                0x0000000000001002                __vector_25
+                0x0000000000001002                __vector_11
+                0x0000000000001002                __vector_54
+                0x0000000000001002                __vector_13
+                0x0000000000001002                __vector_17
+                0x0000000000001002                __vector_56
+                0x0000000000001002                __vector_7
+                0x0000000000001002                __vector_49
+                0x0000000000001002                __vector_41
+                0x0000000000001002                __vector_43
+                0x0000000000001002                __vector_27
+                0x0000000000001002                __vector_5
+                0x0000000000001002                __vector_33
+                0x0000000000001002                __vector_47
+                0x0000000000001002                __vector_4
+                0x0000000000001002                __vector_44
+                0x0000000000001002                __vector_51
+                0x0000000000001002                __vector_9
+                0x0000000000001002                __vector_2
+                0x0000000000001002                __vector_21
+                0x0000000000001002                __vector_15
+                0x0000000000001002                __vector_36
+                0x0000000000001002                __vector_29
+                0x0000000000001002                __vector_40
+                0x0000000000001002                __vector_8
+                0x0000000000001002                __vector_26
+                0x0000000000001002                __vector_48
+                0x0000000000001002                __vector_14
+                0x0000000000001002                __vector_57
+                0x0000000000001002                __vector_53
+                0x0000000000001002                __vector_10
+                0x0000000000001002                __vector_50
+                0x0000000000001002                __vector_16
+                0x0000000000001002                __vector_18
+                0x0000000000001002                __vector_20
+                0x0000000000001002                __vector_42
+
+.text._Exit     0x0000000000001006        0x4
+ .text._Exit    0x0000000000001006        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                0x0000000000001006                _Exit
+
+.text.__dummy_fini
+                0x000000000000100a        0x2
+ .text.__dummy_fini
+                0x000000000000100a        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100a                _fini
+
+.text.__dummy_funcs_on_exit
+                0x000000000000100c        0x2
+ .text.__dummy_funcs_on_exit
+                0x000000000000100c        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100c                __funcs_on_exit
+
+.text.__dummy_simulator_exit
+                0x000000000000100e        0x2
+ .text.__dummy_simulator_exit
+                0x000000000000100e        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x000000000000100e                __simulator_exit
diff --git a/Version 1.2/RS232_MUX.X/dist/default/production/memoryfile.xml b/Version 1.2/RS232_MUX.X/dist/default/production/memoryfile.xml
new file mode 100644
index 0000000..07f7fc9
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/dist/default/production/memoryfile.xml	
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<project>                                  
+  <executable name="dist/default/production/RS232_MUX.X.production.elf">                 
+    <memory name="program">              
+      <units>bytes</units>                 
+      <length>32768</length>                 
+      <used>4112</used>                     
+      <free>28656</free>                     
+    </memory>                              
+    <memory name="data">                 
+      <units>bytes</units>                 
+      <length>4096</length>                 
+      <used>1552</used>                     
+      <free>2544</free>                     
+    </memory>                              
+  </executable>                            
+</project>                                 
diff --git a/Version 1.2/RS232_MUX.X/frame_definitions.h b/Version 1.2/RS232_MUX.X/frame_definitions.h
new file mode 100644
index 0000000..2eb31c4
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/frame_definitions.h	
@@ -0,0 +1,17 @@
+#ifndef FRAME_DEFINITIONS
+#define	FRAME_DEFINITIONS
+
+//Frame structure
+// STX ADDR(n + FRAME_ADDR) DATA CR_CHAR LF_CHAR
+
+#define STX                 0x02
+#define CR_CHAR             0x0D 
+#define LF_CHAR             0x0A
+#define FRAME_ADDR_1        '$'
+#define FRAME_ADDR_2        '$'
+
+
+#define CESAR_SHIFT         65 //Identifier will be A B C D [65 66 67 68] then we must move them to 0 1 2 3
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/hardware_TL16C754C.h b/Version 1.2/RS232_MUX.X/hardware_TL16C754C.h
new file mode 100644
index 0000000..1ed9fb5
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/hardware_TL16C754C.h	
@@ -0,0 +1,632 @@
+/* Microchip Technology Inc. and its subsidiaries.  You may use this software 
+ * and any derivatives exclusively with Microchip products. 
+ * 
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".  NO WARRANTIES, WHETHER 
+ * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED 
+ * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A 
+ * PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION 
+ * WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 
+ *
+ * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+ * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+ * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS 
+ * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE 
+ * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS 
+ * IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF 
+ * ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE 
+ * TERMS. 
+ */
+
+/* 
+ * File: hardware_TL16C754C.h  
+ * Author: Enzo Niro
+ * Comments: Library for MUX232 to handle TL16C754C chip
+ * Revision history: 1.0
+ */
+
+
+#ifndef RS232_HARDWARETL16_H
+#define	RS232_HARDWARETL16_H
+
+#include <xc.h> // include processor files - each processor file is guarded. 
+
+
+
+
+//////////////////////////////////////
+//prototypes functions
+
+
+//////////////////////////
+//High level functions
+
+void initPortA(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initPortB(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initPortC(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initPortD(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+
+//Send bytes throught serial port
+void txWriteA(uint8_t b);
+void txWriteB(uint8_t b);
+void txWriteC(uint8_t b);
+void txWriteD(uint8_t b);
+
+//Receive bytes from serial port
+uint8_t rxReadA(void);
+uint8_t rxReadB(void);
+uint8_t rxReadC(void);
+uint8_t rxReadD(void);
+
+//RX buffer control
+
+//available functions
+bool portA_available();
+bool portB_available();
+bool portC_available();
+bool portD_available();
+
+//parity functions
+
+/*
+ 
+ TODO : Implement functions...
+ 
+ */
+
+
+//////////////////////////
+//Low level functions
+
+
+void writePortA(uint8_t reg, uint8_t addr);
+void writePortB(uint8_t reg, uint8_t addr);
+void writePortC(uint8_t reg, uint8_t addr);
+void writePortD(uint8_t reg, uint8_t addr);
+uint8_t readPortA(uint8_t addr);
+uint8_t readPortB(uint8_t addr);
+uint8_t readPortC(uint8_t addr);
+uint8_t readPortD(uint8_t addr);
+
+
+void setWait(uint16_t cnt); //fast delay
+
+
+//////////////////////////////////////////////////////////
+//Values definitions (not supposed to use it directly)
+
+#define DLAB_ERF_EN_BIT     0x80
+
+
+#define LCR_REG             0x3 //Static register
+
+///////////////////////////////////////////
+// READ Registers
+
+#define RHR_REG         0x0
+#define IIR_REG         0x2
+#define LSR_REG         0x5
+#define MSR_REG         0x6
+#define FIFORDY_REG     0x7
+
+///////////////////////////////////////////
+// WRITE Registers
+
+#define THR_REG     0x0
+#define FCR_REG     0x2
+
+///////////////////////////////////////////
+// READ/WRITE Registers
+
+#define IER_REG         0x1
+#define LCR_REG         0x3
+#define MCR_REG         0x4
+#define SPR_REG         0x7
+#define DLL_REG         0x0
+#define DLH_REG         0x1
+#define EFR_REG         0x2
+#define XON1_REG        0x4
+#define XON2_REG        0x5
+#define XOFF1_REG       0x6
+#define XOFF2_REG       0x7
+#define TCR_REG         0x6
+#define TLR_REG         0x7
+
+
+
+
+///////////////////////////////////////////////////////
+//CTRL, ADDR and DATA buses
+
+//Data pins
+#define DATAWRITE(x)        PORTD.OUT = x
+#define DATADIR(x)          PORTD.DIR = x
+#define DATAREAD            PORTD.IN
+
+//Address pins
+#define ADDRWRITE(x)        PORTE.OUT = x
+#define ADDR_ENABLE         PORTE.DIR |= 0x07
+
+
+//Controls pins
+#define ENABLE_POW_SUPPLY_PIN   PORTF.DIR |= 0x01
+#define ENABLE_WR_RD_PINS       PORTB.DIR |= 0x30
+#define ENABLE_CS_PINS          PORTB.DIR |= 0x0F
+#define ENABLE_RESET_PIN        PORTE.DIR |= 0x08
+#define POWER_ON                PORTF.OUT |= 0x01
+#define POWER_OFF               PORTF.OUT &= ~(0x01)
+#define SETRST                  PORTE.OUT |= 0x08
+#define SETWR                   PORTB.OUT |= 0x10
+#define SETRD                   PORTB.OUT |= 0x20
+#define SETCSA                  PORTB.OUT |= 0x01
+#define SETCSB                  PORTB.OUT |= 0x02
+#define SETCSC                  PORTB.OUT |= 0x04
+#define SETCSD                  PORTB.OUT |= 0x08
+#define CLRRST                  PORTE.OUT &= ~(0x08)
+#define CLRWR                   PORTB.OUT &= ~(0x10)
+#define CLRRD                   PORTB.OUT &= ~(0x20)
+#define CLRCSA                  PORTB.OUT &= ~(0x01)
+#define CLRCSB                  PORTB.OUT &= ~(0x02)
+#define CLRCSC                  PORTB.OUT &= ~(0x04)
+#define CLRCSD                  PORTB.OUT &= ~(0x08)
+
+///////////////////////////////////////////////////////////////////////////////
+//Functions
+
+//////////////////////////////////////
+//High level functions
+
+void initPortA(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal = 0; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    //uint8_t wordValues[] = {TL16C_WORD_5BITS, TL16C_WORD_6BITS, TL16C_WORD_7BITS, TL16C_WORD_8BITS};
+    //uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    //uint8_t parityValues[] = {TL16C_PARITY_NONE, TL16C_PARITY_ODD, TL16C_PARITY_EVEN};
+    //uint8_t stopBitValues[] = {TL16C_STOPBIT_ONE, TL16C_STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortA(LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    regVal = DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortA(regVal, LCR_REG); //switch Mode
+    //_delay_ms(1);
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortA(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    //_delay_ms(1);
+    setWait(20);
+    //writePortA(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    writePortA(busSpeed, DLL_REG);
+    //_delay_ms(1);
+    setWait(20);
+    
+    regVal = readPortA(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    //regVal |= dataBits > 3 ? TL16C_WORD_8BITS : wordValues[dataBits]; //set 8bits mode
+    //regVal |= (stopBit > 1 ? TL16C_STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    //regVal |= (parity > 2 ? TL16C_PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    regVal |= dataBits; //set 8bits mode
+    regVal |= stopBit << 2; //set stop bits
+    regVal |= parity << 3; //set stop bits
+    writePortA(regVal, LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    writePortA(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+void initPortB(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal = 0; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    //uint8_t wordValues[] = {TL16C_WORD_5BITS, TL16C_WORD_6BITS, TL16C_WORD_7BITS, TL16C_WORD_8BITS};
+    //uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    //uint8_t parityValues[] = {TL16C_PARITY_NONE, TL16C_PARITY_ODD, TL16C_PARITY_EVEN};
+    //uint8_t stopBitValues[] = {TL16C_STOPBIT_ONE, TL16C_STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortB(LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    regVal = DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortB(regVal, LCR_REG); //switch Mode
+    //_delay_ms(1);
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortB(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    //_delay_ms(1);
+    setWait(20);
+    //writePortA(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    writePortB(busSpeed, DLL_REG);
+    //_delay_ms(1);
+    setWait(20);
+    
+    regVal = readPortB(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    //regVal |= dataBits > 3 ? TL16C_WORD_8BITS : wordValues[dataBits]; //set 8bits mode
+    //regVal |= (stopBit > 1 ? TL16C_STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    //regVal |= (parity > 2 ? TL16C_PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    regVal |= dataBits; //set 8bits mode
+    regVal |= stopBit << 2; //set stop bits
+    regVal |= parity << 3; //set stop bits
+    writePortB(regVal, LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    writePortB(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+void initPortC(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    uint8_t regVal = 0; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    //uint8_t wordValues[] = {TL16C_WORD_5BITS, TL16C_WORD_6BITS, TL16C_WORD_7BITS, TL16C_WORD_8BITS};
+    //uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    //uint8_t parityValues[] = {TL16C_PARITY_NONE, TL16C_PARITY_ODD, TL16C_PARITY_EVEN};
+    //uint8_t stopBitValues[] = {TL16C_STOPBIT_ONE, TL16C_STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortC(LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    regVal = DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortC(regVal, LCR_REG); //switch Mode
+    //_delay_ms(1);
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortC(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    //_delay_ms(1);
+    setWait(20);
+    //writePortA(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    writePortC(busSpeed, DLL_REG);
+    //_delay_ms(1);
+    setWait(20);
+    
+    regVal = readPortC(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    //regVal |= dataBits > 3 ? TL16C_WORD_8BITS : wordValues[dataBits]; //set 8bits mode
+    //regVal |= (stopBit > 1 ? TL16C_STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    //regVal |= (parity > 2 ? TL16C_PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    regVal |= dataBits; //set 8bits mode
+    regVal |= stopBit << 2; //set stop bits
+    regVal |= parity << 3; //set stop bits
+    writePortC(regVal, LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    writePortC(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+
+void initPortD(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    uint8_t regVal = 0; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    //uint8_t wordValues[] = {TL16C_WORD_5BITS, TL16C_WORD_6BITS, TL16C_WORD_7BITS, TL16C_WORD_8BITS};
+    //uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    //uint8_t parityValues[] = {TL16C_PARITY_NONE, TL16C_PARITY_ODD, TL16C_PARITY_EVEN};
+    //uint8_t stopBitValues[] = {TL16C_STOPBIT_ONE, TL16C_STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortD(LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    regVal = DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortD(regVal, LCR_REG); //switch Mode (and clear default cfg...)
+    //_delay_ms(1);
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortD(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    //_delay_ms(1);
+    setWait(20);
+    //writePortA(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    writePortD(busSpeed, DLL_REG);
+    //_delay_ms(1);
+    setWait(20);
+    
+    regVal = readPortD(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    //regVal |= dataBits > 3 ? TL16C_WORD_8BITS : wordValues[dataBits]; //set 8bits mode
+    //regVal |= (stopBit > 1 ? TL16C_STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    //regVal |= (parity > 2 ? TL16C_PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    regVal |= dataBits; //set 8bits mode
+    regVal |= stopBit << 2; //set stop bits
+    regVal |= parity << 3; //set stop bits
+    writePortD(regVal, LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    writePortD(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+
+//////////////////////////////////////////////
+//UART send/reiceive
+
+void txWriteA(uint8_t b)
+{
+    writePortA(b, THR_REG); //write to Transmit Holding (that goes into TX FIFO buffer)
+}
+
+
+void txWriteB(uint8_t b)
+{
+    writePortB(b, THR_REG); //write to Transmit Holding (that goes into TX FIFO buffer)
+}
+
+
+void txWriteC(uint8_t b)
+{
+    writePortC(b, THR_REG); //write to Transmit Holding (that goes into TX FIFO buffer)
+}
+
+
+void txWriteD(uint8_t b)
+{
+    writePortD(b, THR_REG); //write to Transmit Holding (that goes into TX FIFO buffer)
+}
+
+
+
+uint8_t rxReadA(void)
+{
+    return readPortA(RHR_REG); //read Receive Holding (from RX FIFO buffer)
+}
+
+
+uint8_t rxReadB(void)
+{
+    return readPortB(RHR_REG); //read Receive Holding (from RX FIFO buffer)
+}
+
+
+uint8_t rxReadC(void)
+{
+    return readPortC(RHR_REG); //read Receive Holding (from RX FIFO buffer)
+}
+
+
+uint8_t rxReadD(void)
+{
+    return readPortD(RHR_REG); //read Receive Holding (from RX FIFO buffer)
+}
+
+
+////////////////////////////////////////
+//RX buf state functions
+
+bool portA_available()
+{
+    return (readPortA(LSR_REG) & 0x01); //check if RX FIFO buffer has at least one byte available
+}
+
+
+bool portB_available()
+{
+    return (readPortB(LSR_REG) & 0x01); //check if RX FIFO buffer has at least one byte available
+}
+
+
+bool portC_available()
+{
+    return (readPortC(LSR_REG) & 0x01); //check if RX FIFO buffer has at least one byte available
+}
+
+
+bool portD_available()
+{
+    return (readPortD(LSR_REG) & 0x01); //check if RX FIFO buffer has at least one byte available
+}
+
+
+
+
+
+
+
+///////////////////////////////////////////////////////
+//write functions
+
+
+
+void writePortA(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSA; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSA; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortB(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSB; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSB; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortC(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSC; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSC; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortD(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSD; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSD; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+
+///////////////////////////////////////////////////////
+//read functions
+
+
+uint8_t readPortA(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSA; //enable uartA call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSA; //hang up uartA call
+    return result;
+}
+
+uint8_t readPortB(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSB; //enable uartB call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSB; //hang up uartB call
+    return result;
+}
+
+uint8_t readPortC(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSC; //enable uartC call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSC; //hang up uartC call
+    return result;
+}
+
+uint8_t readPortD(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSD; //enable uartD call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSD; //hang up uartD call
+    return result;
+}
+
+
+
+
+
+///////////////////////////////////////////
+//Miscellaneous functions
+
+void setWait(uint16_t cnt)
+{
+    uint16_t k = 0;
+    while(k < cnt)
+    {
+        asm("nop");
+        k++;
+    }
+}
+
+
+
+
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/hardware_config.h b/Version 1.2/RS232_MUX.X/hardware_config.h
new file mode 100644
index 0000000..4d631a1
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/hardware_config.h	
@@ -0,0 +1,238 @@
+/* 
+ * File: hardware_config.h
+ * Author: Enzo Niro
+ * Comments: Board configuration library for MUX232
+ * Revision history: 1.0
+ */
+
+// This is a guard condition so that contents of this file are not included
+// more than once.  
+#ifndef HARDWARE_CFG_H
+#define	HARDWARE_CFG_H
+
+#include <xc.h> // include processor files - each processor file is guarded.  
+#include "parameters.h"
+
+
+
+
+typedef struct eepromPort eepromPort;
+struct eepromPort
+{
+    uint8_t regA; // register A for speed and parity configuration
+    uint8_t regB; // register B for Data structure and stop bits
+};
+
+typedef struct cfgPort cfgPort;
+struct cfgPort
+{
+    uint16_t baud; // Port speed
+    uint8_t parity; // Parity for frame structure
+    uint8_t dataByte; // Data byte structure
+    uint8_t stopBit; // Stop bits for frame structure
+    uint8_t debugLed;
+};
+
+//EEPROM data structure (for reading registers)
+eepromPort eepromVCOM[4], eepromDebugLeds;
+
+
+
+
+
+//Values registers
+
+#define F5BIT_MODE                  0x00
+#define F6BIT_MODE                  0x01
+#define F7BIT_MODE                  0x02
+#define F8BIT_MODE                  0x03
+
+#define AVR32_NO_PARITY             0x00
+#define AVR32_ODD_PARITY            0x01        //0x03
+#define AVR32_EVEN_PARITY           0x03        //0x02
+#define TL16C_NO_PARITY             0x00
+#define TL16C_ODD_PARITY            0x01        //0x03
+#define TL16C_EVEN_PARITY           0x03        //0x02
+
+
+#define ONE_STOPBIT                 0x00
+#define TWO_STOPBITS                0x01
+
+
+
+
+
+
+///////////////////////////
+//Divisor Latch values
+
+//According to 8MHz
+#ifdef TL16C_8MHZ_CLK
+
+#define DL_9600_BAUDS    52
+#define DL_19200_BAUDS   26
+#define DL_38400_BAUDS   13
+
+#else
+#ifdef TL16C_16MHZ_CLK
+
+#define DL_9600_BAUDS    104
+#define DL_19200_BAUDS   52
+#define DL_38400_BAUDS   26
+
+#else
+#ifdef TL16C_24MHZ_CLK
+
+#define DL_9600_BAUDS    156
+#define DL_19200_BAUDS   78
+#define DL_38400_BAUDS   39
+
+#else
+#error "Please choose a configuration for baud speed"
+#define DL_9600_BAUDS    0x0
+#define DL_19200_BAUDS   0x0
+#define DL_38400_BAUDS   0x0
+#define CPU_FREQ_SET     0x0
+
+#endif //24MHZ
+#endif //16MHZ
+#endif //8MHZ
+
+
+
+//EEPROM addresses
+
+enum ADDR_BAUDS
+{
+    ADDR_BAUD_9600 = 0,
+    ADDR_BAUD_19200,
+    ADDR_BAUD_38400,
+};
+
+enum ADDR_PARITY
+{
+    ADDR_PARITY_NONE = 0,
+    ADDR_PARITY_EVEN,
+    ADDR_PARITY_ODD,
+};
+
+enum ADDR_DATA
+{
+    ADDR_DATA_F5 = 0,
+    ADDR_DATA_F6,
+    ADDR_DATA_F7,
+    ADDR_DATA_F8,
+};
+
+enum ADDR_STOPBIT
+{
+    ADDR_STOP_ONE = 0,
+    ADDR_STOP_TWO,
+};
+
+#define DEFAULT_ADDR_BAUD               ADDR_BAUD_9600
+#define DEFAULT_ADDR_PARITY             ADDR_PARITY_NONE
+#define DEFAULT_ADDR_DATA               ADDR_DATA_F8
+#define DEFAULT_ADDR_STOP               ADDR_STOP_ONE
+#define DEFAULT_VALUE_DEBUG_LED         0x1F
+
+#define EEPROM_DEBUG_LED_ADDR           0x8
+
+
+
+
+
+
+
+
+//////////////////////////////////////////////////
+//TODO Move theses functions out of this lib...
+void getEEPROMCfg(void);
+uint8_t getDebugLedsConfiguration(void);
+void readConfiguration(cfgPort *cfg, uint8_t n);
+//////////////////////////////////////////////////
+
+
+
+
+
+
+
+
+
+
+/**
+ <p><b>void getEEPROMCfg(void)</b></p>
+ <p><b>Read eeprom values stored for all serial ports</b></p>
+ */
+void getEEPROMCfg(void)
+{
+    uint8_t i = 0, j = 0;
+    while(j < 8)
+    {
+        //Read at first bytes
+        eepromVCOM[i].regA = eeprom_read_byte(j);
+        eepromVCOM[i].regB = eeprom_read_byte(j+1);
+        //Then check if writing default values is necessary
+        if(eepromVCOM[i].regA == 0xFF)
+        {
+            eepromVCOM[i].regA = (DEFAULT_ADDR_BAUD << 4) | (DEFAULT_ADDR_PARITY);
+            eeprom_write_byte(j, (DEFAULT_ADDR_BAUD << 4) | (DEFAULT_ADDR_PARITY));
+        }
+        if(eepromVCOM[i].regB == 0xFF)
+        {
+            eepromVCOM[i].regB = (DEFAULT_ADDR_DATA << 4) | (DEFAULT_ADDR_STOP);
+            eeprom_write_byte(j+1, (DEFAULT_ADDR_DATA << 4) | (DEFAULT_ADDR_STOP));
+        }
+        i++;
+        j+=2;
+    }
+    
+    //And finally, check debug leds value
+    eepromDebugLeds.regA = eeprom_read_byte(EEPROM_DEBUG_LED_ADDR);
+    if(eepromDebugLeds.regA == 0xFF)
+    {
+        eepromDebugLeds.regA = DEFAULT_VALUE_DEBUG_LED;
+        eeprom_write_byte(EEPROM_DEBUG_LED_ADDR, DEFAULT_VALUE_DEBUG_LED);
+    }
+        
+    
+}
+
+/**
+ <p><b>uint8_t getDebugLedsConfiguration(void)</b></p>
+ <p><b>Get leds configuration for debug (TX/RX) of each serial port</b></p>
+ <p><b>             Return : uint8_t -> state of each leds [VCOM4 VCOM3 VCOM2 VCOM1 MCOM]</b></p>
+ */
+uint8_t getDebugLedsConfiguration(void)
+{
+    return eepromDebugLeds.regA;
+}
+
+
+
+
+/**
+ <p><b>void readConfiguration(cfgPort *cfg, uint8_t n)</b></p>
+ <p><b>Get configuration with eeprom read values</b></p>
+ <p><b>             cfgPort -> Serial port configuration</b></p>
+ <p><b>             n -> Serial port to configure</b></p>
+ */
+void readConfiguration(cfgPort *cfg, uint8_t n)
+{
+    //BAUD value register for these frequencies in this order :
+    //2400, 4800, 9600, 19200, 38400, 57600, 115200
+    uint16_t speedCfg[] = { DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS };
+    uint8_t parityCfg[] = { TL16C_NO_PARITY, TL16C_EVEN_PARITY, TL16C_ODD_PARITY };
+    uint8_t dataCfg[] = { F5BIT_MODE, F6BIT_MODE, F7BIT_MODE, F8BIT_MODE };
+    uint8_t stopCfg[] = { ONE_STOPBIT, TWO_STOPBITS };
+    
+    cfg->baud = speedCfg[(eepromVCOM[n].regA >> 4)];
+    cfg->parity = parityCfg[(eepromVCOM[n].regA & 0xF)];
+    cfg->dataByte = dataCfg[(eepromVCOM[n].regB >> 4)];
+    cfg->stopBit = stopCfg[(eepromVCOM[n].regB & 0xF)];
+}
+
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/hardware_timer.h b/Version 1.2/RS232_MUX.X/hardware_timer.h
new file mode 100644
index 0000000..3e11c23
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/hardware_timer.h	
@@ -0,0 +1,108 @@
+/* Microchip Technology Inc. and its subsidiaries.  You may use this software 
+ * and any derivatives exclusively with Microchip products. 
+ * 
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".  NO WARRANTIES, WHETHER 
+ * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED 
+ * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A 
+ * PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION 
+ * WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 
+ *
+ * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+ * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+ * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS 
+ * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE 
+ * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS 
+ * IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF 
+ * ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE 
+ * TERMS. 
+ */
+
+/* 
+ * File: hardware_timer.h
+ * Author: Enzo Niro 
+ * Comments: Library made for RS232 MUX board
+ * Revision history: 1.0
+ */
+
+// This is a guard condition so that contents of this file are not included
+// more than once.  
+#ifndef RS232_HARDWARETIMER_H
+#define	RS232_HARDWARETIMER_H
+
+#include <xc.h> // include processor files - each processor file is guarded.  
+
+
+#define CLK_DIV1            0x00
+#define CLK_DIV2            0x01
+#define CLK_DIV4            0x02
+#define CLK_DIV8            0x03
+#define CLK_DIV16           0x04
+#define CLK_DIV64           0x05
+#define CLK_DIV256          0x06
+#define CLK_DIV1024         0x07
+
+#define SEL_CLK             CLK_DIV2
+
+#ifdef	__cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+    
+    //////////////////////////////////////////////
+    //prototypes
+    void timerInterruptInit(uint16_t maxCounts);
+    bool getTimerFlag(void);
+    void clearTimerFlag(void);
+    
+    //////////////////////////////////////////////
+    
+    
+    
+    //uint32_t _timerA0Cnt = 0;
+    bool _timerFlag = false;
+    
+    
+    //Hardware timer init
+    void timerInit(uint16_t maxCounts)
+    {
+        //Init Timer interrupt type A
+        //To avoid fast interruption that slow main program, divide clock by 2 !
+        //We use here timer interrupt 0 in normal mode
+        
+        //At first, define the timer period
+        TCA0.SINGLE.PERH = maxCounts >> 8;
+        TCA0.SINGLE.PERL = maxCounts & 0xFF;
+        TCA0.SINGLE.CTRLA = (SEL_CLK << 1) | 1; //Enable and CLK_DIV2
+        TCA0.SINGLE.CTRLB = 0x00; //Set Normal operation for timer, no autolock, no waveform output
+        TCA0.SINGLE.EVCTRL = 0x00; //No specific action and counter event input
+        //TCA0.SINGLE.INTCTRL = 0x01; //Set interrupt on timer overflow
+    }
+    
+    //Get flag status
+    bool getTimerFlag(void)
+    {
+        return (TCA0.SINGLE.INTFLAGS & 0x01); //get flag
+    }
+    
+    //Clear the flag
+    void clearTimerFlag(void)
+    {
+        TCA0.SINGLE.INTFLAGS = 1; //Clear by writing one on that register
+    }
+    
+    //Timer interrupt callback
+    /*ISR(TCA0_OVF_vect)
+    {
+        _timerFlag = true;
+        TCA0.SINGLE.INTFLAGS = 1; //Must clear the flag by writing 1 on this bit (datasheet p.232)
+    }*/
+    
+
+#ifdef	__cplusplus
+}
+#endif /* __cplusplus */
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/hardware_uart.h b/Version 1.2/RS232_MUX.X/hardware_uart.h
new file mode 100644
index 0000000..9fc9a01
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/hardware_uart.h	
@@ -0,0 +1,586 @@
+/* Microchip Technology Inc. and its subsidiaries.  You may use this software 
+ * and any derivatives exclusively with Microchip products. 
+ * 
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".  NO WARRANTIES, WHETHER 
+ * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED 
+ * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A 
+ * PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION 
+ * WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 
+ *
+ * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+ * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+ * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS 
+ * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE 
+ * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS 
+ * IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF 
+ * ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE 
+ * TERMS. 
+ */
+
+/* 
+ * File:   hardware_uart.h
+ * Author: Enzo Niro
+ * Comments: Library made for RS232 MUX board
+ * Revision history: V1.0 
+ */
+
+
+/*
+ TODO list:
+ * Put TXDATAH in write when F9BIT mode enabled ?
+ 
+ 
+ 
+ */
+
+
+
+#ifndef RS232_HARDWAREUART_H
+#define	RS232_HARDWAREUART_H
+
+#include <xc.h> // include processor files - each processor file is guarded. 
+#include <stdbool.h>
+#include <avr/interrupt.h>
+#include <avr/eeprom.h>
+
+///////////////////////////////////////////////////////////////
+//Definitions
+
+
+
+
+
+//According to AVR32DA48 pins
+
+#define USART0_PORT_PINS    0x01
+#define USART0_DEBUG_LED    0x0C
+
+#define USART1_PORT_PINS    0x01
+#define USART1_DEBUG_LED    0x0C
+
+#define USART2_PORT_PINS    0x01
+#define USART2_DEBUG_LED    0x0C
+
+#define USART3_PORT_PINS    0x01
+#define USART3_DEBUG_LED    0x0C
+
+#define USART4_PORT_PINS    0x01
+#define USART4_DEBUG_LED    0x0C
+
+//Port index for debug leds
+#define USART0_INDEX    0
+#define USART1_INDEX    1
+#define USART2_INDEX    2
+#define USART3_INDEX    3
+#define USART4_INDEX    4
+
+
+#ifdef	__cplusplus
+extern "C" {
+#endif /* __cplusplus */
+    
+    
+    
+    
+//////////////////////////////////////////////
+//prototypes
+
+    
+
+
+void initPort0(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity);
+void txWrite0(uint8_t b); //write one byte
+uint8_t rxRead0(void); //Read one byte from buffer
+uint8_t portAvailable0(void);
+
+void initPort1(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity);
+void txWrite1(uint8_t b); //write one byte
+uint8_t rxRead1(void); //Read one byte from buffer
+uint8_t portAvailable1(void);
+
+void initPort2(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity);
+void txWrite2(uint8_t b); //write one byte
+uint8_t rxRead2(void); //Read one byte from buffer
+uint8_t portAvailable2(void);
+
+void initPort3(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity);
+void txWrite3(uint8_t b); //write one byte
+uint8_t rxRead3(void); //Read one byte from buffer
+uint8_t portAvailable3(void);
+
+void initPort4(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity);
+void txWrite4(uint8_t b); //write one byte
+uint8_t rxRead4(void); //Read one byte from buffer
+uint8_t portAvailable4(void);
+
+    
+//////////////////////////////////////////////
+    
+    
+    
+///////////////////////////////////////////////////////////////
+//Global Vars
+
+typedef struct RXREAD RXREAD;
+struct RXREAD
+{
+    uint8_t _rxReicv; // temp byte
+    uint8_t _rxBuf[256]; //back end serial buffer
+    uint8_t bytesAvailable; //show if bytes available...
+    uint8_t _tempBytes;
+};
+
+
+
+
+
+//RX structure for reading buffers from serial ports
+volatile RXREAD _RX0, _RX1, _RX2, _RX3, _RX4;
+
+
+
+///////////////////////////////////////////////////////////////
+//Functions
+
+
+/////////////////////////////////////////////////
+//For Master port (USART0)
+
+/**
+ <p><b>void initPort0(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort0(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    /*if(enableDebug)
+        PORTA.DIR = USART0_PORT_PINS | USART0_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTA.DIR = USART0_PORT_PINS; //Set TX/RX IO
+    */
+    USART0.BAUD = bauds; 
+    USART0.CTRLA = 0x80; //enable RX complete interrupt
+    USART0.CTRLB = 0xD0; //Enable TX and RX sending
+    USART0.CTRLC = (parity << 4) | (stopBit << 3) | chSize;
+}
+
+
+/**
+ <p><b>void txWrite0(uint8_t b)</b></p>
+ <p><b>Write a byte throught MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+
+void txWrite0(uint8_t b) //write one byte
+{
+    while((USART0.STATUS & 0x20) != 0x20);
+    USART0.TXDATAL = b;
+    while((USART0.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART0.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead0(void)</b></p>
+ <p><b>Read a byte from MASTER PORT</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead0(void) //Read one byte from buffer
+{    
+    if(_RX0.bytesAvailable > 0)
+        _RX0.bytesAvailable--;
+    
+    return _RX0._rxBuf[_RX0.bytesAvailable];
+    //_hasRead[USART0_INDEX] = true;
+    //return USART0.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable0(void)</b></p>
+ <p><b>Get number of bytes available into the MASTER PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable0(void)
+{
+    return _RX0.bytesAvailable;
+    //return ((USART0.RXDATAH & 0x80) >> 7);
+}
+
+
+ISR(USART0_RXC_vect)
+{
+    //USART0.CTRLA = 0x80;
+    //_RX0._rxReicv = USART0.RXDATAL; //read buffer
+    _RX0._rxBuf[_RX0.bytesAvailable] = USART0.RXDATAL; //Add one byte to the buffer
+    //_RX0._rxReicv = 0x00; //clear value
+    if(_RX0.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX0.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+}
+
+/*ISR(USART0_DRE_vect)
+{
+    _RX0.bytesAvailable = _RX0._tempBytes;
+    USART0.CTRLA = 0x80; //Clear DRE interrupt
+    _hasRead[USART0_INDEX] = true;
+}*/
+
+
+
+
+/////////////////////////////////////////////////
+//For Virtual port 1 (USART3)
+
+
+/**
+ <p><b>void initPort1(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort1(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    /*if(enableDebug)
+        PORTB.DIR = USART3_PORT_PINS | USART3_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTB.DIR = USART3_PORT_PINS; //Set TX/RX IO
+    */
+    PORTB.DIR |= USART3_PORT_PINS; //Set TX/RX IO
+    USART3.BAUD = bauds; 
+    USART3.CTRLA = 0x80; //enable RX complete interrupt
+    USART3.CTRLB = 0xD0; //Enable TX and RX sending
+    USART3.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite1(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM1</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite1(uint8_t b) //Write one byte
+{
+    while((USART3.STATUS & 0x20) != 0x20);
+    USART3.TXDATAL = b;
+    while((USART3.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART3.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead1(void)</b></p>
+ <p><b>Read a byte from VCOM1</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead1(void) //Read one byte from buffer
+{
+    
+    if(_RX1.bytesAvailable > 0)
+        _RX1.bytesAvailable--;
+    
+    return _RX1._rxBuf[_RX1.bytesAvailable];
+    
+    
+    /*_hasRead[USART3_INDEX] = true;
+    return USART3.RXDATAL;*/
+}
+
+
+/**
+ <p><b>uint16_t portAvailable1(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM1 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable1(void)
+{
+    return _RX1.bytesAvailable;
+    //return ((USART3.STATUS & 0x80) >> 7);
+}
+
+
+
+ISR(USART3_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    _RX1._rxBuf[_RX1.bytesAvailable] = USART3.RXDATAL; //Add one byte to the buffer
+    if(_RX1.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX1.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+}
+
+
+/////////////////////////////////////////////////
+//For Virtual port 2 (USART1)
+
+
+/**
+ <p><b>void initPort2(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort2(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    /*if(enableDebug)
+        PORTC.DIR = USART1_PORT_PINS | USART1_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTC.DIR = USART1_PORT_PINS; //Set TX/RX IO
+    */
+    PORTC.DIR |= USART1_PORT_PINS; //Set TX/RX IO
+    USART1.BAUD = bauds; 
+    USART1.CTRLA = 0x80; //enable RX complete interrupt
+    USART1.CTRLB = 0xD0; //Enable TX and RX sending
+    USART1.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite2(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM2</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite2(uint8_t b) //Virtual Port 2
+{
+    while((USART1.STATUS & 0x20) != 0x20);
+    USART1.TXDATAL = b;
+    while((USART1.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART1.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead2(void)</b></p>
+ <p><b>Read a byte from VCOM2</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead2(void) //Read one byte from buffer
+{
+    
+    if(_RX2.bytesAvailable > 0)
+        _RX2.bytesAvailable--;
+    
+    return _RX2._rxBuf[_RX2.bytesAvailable];
+    
+    
+    /*_hasRead[USART1_INDEX] = true;
+    return USART1.RXDATAL;*/
+}
+
+
+/**
+ <p><b>uint16_t portAvailable2(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM2 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable2(void)
+{
+    return _RX2.bytesAvailable;
+}
+
+
+
+
+ISR(USART1_RXC_vect)
+{
+    _RX2._rxBuf[_RX2.bytesAvailable] = USART1.RXDATAL; //Add one byte to the buffer
+    if(_RX2.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX2.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+}
+
+/////////////////////////////////////////////////
+//For Virtual port 3 (USART4)
+
+
+/**
+ <p><b>void initPort3(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort3(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    /*if(enableDebug)
+        PORTE.DIR = USART4_PORT_PINS | USART4_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTE.DIR = USART4_PORT_PINS; //Set TX/RX IO
+    */
+    PORTE.DIR |= USART4_PORT_PINS; //Set TX/RX IO
+    USART4.BAUD = bauds; 
+    USART4.CTRLA = 0x80; //enable RX complete interrupt
+    USART4.CTRLB = 0xD0; //Enable TX and RX sending
+    USART4.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite3(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM3</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite3(uint8_t b) //Write one byte
+{
+    while((USART4.STATUS & 0x20) != 0x20);
+    USART4.TXDATAL = b;
+    while((USART4.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART4.STATUS = 0x40; //clear the flag for next transmission
+}
+
+/**
+ <p><b>uint8_t rxRead3(void)</b></p>
+ <p><b>Read a byte from VCOM3</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead3(void) //Read one byte from buffer
+{
+    
+    if(_RX3.bytesAvailable > 0)
+        _RX3.bytesAvailable--;
+    
+    return _RX3._rxBuf[_RX3.bytesAvailable];
+    
+    
+    /*_hasRead[USART4_INDEX] = true;
+    return USART4.RXDATAL;*/
+}
+
+
+/**
+ <p><b>uint16_t portAvailable3(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM3 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable3(void)
+{
+    return _RX3.bytesAvailable;
+}
+
+
+
+ISR(USART4_RXC_vect)
+{
+    _RX3._rxBuf[_RX3.bytesAvailable] = USART4.RXDATAL; //Add one byte to the buffer
+    if(_RX3.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX3.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+}
+
+
+
+
+
+
+/////////////////////////////////////////////////
+//For Virtual port 4 (USART2)
+
+
+/**
+ <p><b>void initPort4(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort4(uint32_t bauds, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    /*if(enableDebug)
+        PORTF.DIR = USART2_PORT_PINS | USART2_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTF.DIR = USART2_PORT_PINS; //Set TX/RX IO
+    */
+    PORTF.DIR |= USART2_PORT_PINS; //Set TX/RX IO
+    USART2.BAUD = bauds; 
+    USART2.CTRLA = 0x80; //enable RX complete interrupt
+    USART2.CTRLB = 0xD0; //Enable TX and RX sending
+    USART2.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite4(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM4</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite4(uint8_t b) //Virtual Port 4
+{
+    while((USART2.STATUS & 0x20) != 0x20);
+    USART2.TXDATAL = b;
+    while((USART2.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART2.STATUS = 0x40; //clear the flag for next transmission
+}
+
+/**
+ <p><b>uint8_t rxRead4(void)</b></p>
+ <p><b>Read a byte from VCOM4</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead4(void) //Read one byte from buffer
+{
+    
+    if(_RX4.bytesAvailable > 0)
+        _RX4.bytesAvailable--;
+    
+    return _RX4._rxBuf[_RX4.bytesAvailable];
+    
+    /*_hasRead[USART2_INDEX] = true;
+    return USART2.RXDATAL;*/
+}
+
+
+/**
+ <p><b>uint16_t portAvailable4(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM4 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable4(void)
+{
+    return _RX4.bytesAvailable;
+}
+
+
+
+ISR(USART2_RXC_vect)
+{
+    _RX4._rxBuf[_RX4.bytesAvailable] = USART2.RXDATAL; //Add one byte to the buffer
+    if(_RX4.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX4.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+}
+
+#ifdef	__cplusplus
+}
+#endif /* __cplusplus */
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/hardware_uart_OLD.h b/Version 1.2/RS232_MUX.X/hardware_uart_OLD.h
new file mode 100644
index 0000000..d2ad0ce
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/hardware_uart_OLD.h	
@@ -0,0 +1,794 @@
+/* Microchip Technology Inc. and its subsidiaries.  You may use this software 
+ * and any derivatives exclusively with Microchip products. 
+ * 
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".  NO WARRANTIES, WHETHER 
+ * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED 
+ * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A 
+ * PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION 
+ * WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 
+ *
+ * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+ * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+ * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS 
+ * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE 
+ * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS 
+ * IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF 
+ * ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE 
+ * TERMS. 
+ */
+
+/* 
+ * File:   hardware_uart.h
+ * Author: Enzo Niro
+ * Comments: Library made for RS232 MUX board
+ * Revision history: V1.0 
+ */
+
+
+/*
+ TODO list:
+ * Put TXDATAH in write when F9BIT mode enabled
+ 
+ 
+ 
+ */
+
+
+
+#ifndef RS232_HARDWAREUART_H
+#define	RS232_HARDWAREUART_H
+
+#include <xc.h> // include processor files - each processor file is guarded. 
+#include <stdbool.h>
+#include <avr/interrupt.h>
+#include <avr/eeprom.h>
+
+///////////////////////////////////////////////////////////////
+//Definitions
+
+//Values registers
+
+#define F5BIT_MODE           0x00
+#define F6BIT_MODE           0x01
+#define F7BIT_MODE           0x02
+#define F8BIT_MODE           0x03
+#define F9LBIT_MODE          0x06
+#define F9HBIT_MODE          0x07
+
+#define NO_PARITY           0x00
+#define EVEN_PARITY         0x02
+#define ODD_PARITY          0x03
+
+#define ONE_STOPBIT         0x00
+#define TWO_STOPBITS        0x01
+
+
+//EEPROM addresses
+
+#define ADDR_BAUD_2400           0x0
+#define ADDR_BAUD_4800           0x1
+#define ADDR_BAUD_9600           0x2
+#define ADDR_BAUD_19200          0x3
+#define ADDR_BAUD_38400          0x4
+#define ADDR_BAUD_57600          0x5
+#define ADDR_BAUD_115200         0x6
+
+#define ADDR_PARITY_NONE         0x0
+#define ADDR_PARITY_EVEN         0x1
+#define ADDR_PARITY_ODD          0x2
+
+#define ADDR_DATA_F5             0x0
+#define ADDR_DATA_F6             0x1
+#define ADDR_DATA_F7             0x2
+#define ADDR_DATA_F8             0x3
+#define ADDR_DATA_F9L            0x4
+#define ADDR_DATA_F9H            0x5
+
+#define ADDR_STOP_ONE            0x0
+#define ADDR_STOP_TWO            0x1
+
+
+#define DEFAULT_ADDR_BAUD        ADDR_BAUD_9600
+#define DEFAULT_ADDR_PARITY      ADDR_PARITY_NONE
+#define DEFAULT_ADDR_DATA        ADDR_DATA_F8
+#define DEFAULT_ADDR_STOP        ADDR_STOP_ONE
+#define DEFAULT_VALUE_DEBUG_LED  0x1F
+
+#define EEPROM_DEBUG_LED_ADDR   0x8
+
+
+
+//According to AVR32DA48 pins
+
+#define USART0_PORT_PINS    0x01
+#define USART0_DEBUG_LED    0x0C
+
+#define USART1_PORT_PINS    0x01
+#define USART1_DEBUG_LED    0x0C
+
+#define USART2_PORT_PINS    0x01
+#define USART2_DEBUG_LED    0x0C
+
+#define USART3_PORT_PINS    0x01
+#define USART3_DEBUG_LED    0x0C
+
+#define USART4_PORT_PINS    0x01
+#define USART4_DEBUG_LED    0x0C
+
+//Port index for debug leds
+#define USART0_INDEX    0
+#define USART1_INDEX    1
+#define USART2_INDEX    2
+#define USART3_INDEX    3
+#define USART4_INDEX    4
+
+
+#ifdef	__cplusplus
+extern "C" {
+#endif /* __cplusplus */
+    
+    
+    
+///////////////////////////////////////////////////////////////
+//Global Vars
+
+typedef struct RXREAD RXREAD;
+struct RXREAD
+{
+    uint8_t _rxReicv; // temp byte
+    uint8_t _rxBuf[256]; //back end serial buffer
+    uint16_t bytesAvailable; //show if bytes available...
+};
+
+
+typedef struct eepromPort eepromPort;
+struct eepromPort
+{
+    uint8_t regA; // register A for speed and parity configuration
+    uint8_t regB; // register B for Data structure and stop bits
+};
+
+typedef struct cfgPort cfgPort;
+struct cfgPort
+{
+    uint16_t baud; // Port speed
+    uint8_t parity; // Parity for frame structure
+    uint8_t dataByte; // Data byte structure
+    uint8_t stopBit; // Stop bits for frame structure
+    uint8_t debugLed;
+};
+
+//EEPROM data structure (for reading registers)
+eepromPort eepromVCOM[4], eepromDebugLeds;
+
+
+//RX structure for reading buffers from serial ports
+volatile RXREAD _RX0, _RX1, _RX2, _RX3, _RX4;
+volatile bool _hasWritten[] = {false, false, false, false, false};
+volatile bool _hasRead[] = {false, false, false, false, false};
+
+
+///////////////////////////////////////////////////////////////
+//Functions
+
+
+/**
+ <p><b>void getEEPROMCfg(void)</b></p>
+ <p><b>Read eeprom values stored for all serial ports</b></p>
+ */
+void getEEPROMCfg(void)
+{
+    uint8_t i = 0, j = 0;
+    while(j < 8)
+    {
+        //Read at first bytes
+        eepromVCOM[i].regA = eeprom_read_byte(j);
+        eepromVCOM[i].regB = eeprom_read_byte(j+1);
+        //Then check if writing default values is necessary
+        if(eepromVCOM[i].regA == 0xFF)
+        {
+            eepromVCOM[i].regA = (DEFAULT_ADDR_BAUD << 4) | (DEFAULT_ADDR_PARITY);
+            eeprom_write_byte(j, (DEFAULT_ADDR_BAUD << 4) | (DEFAULT_ADDR_PARITY));
+        }
+        if(eepromVCOM[i].regB == 0xFF)
+        {
+            eepromVCOM[i].regB = (DEFAULT_ADDR_DATA << 4) | (DEFAULT_ADDR_STOP);
+            eeprom_write_byte(j+1, (DEFAULT_ADDR_DATA << 4) | (DEFAULT_ADDR_STOP));
+        }
+        i++;
+        j+=2;
+    }
+    
+    //And finally, check debug leds value
+    eepromDebugLeds.regA = eeprom_read_byte(EEPROM_DEBUG_LED_ADDR);
+    if(eepromDebugLeds.regA == 0xFF)
+    {
+        eepromDebugLeds.regA = DEFAULT_VALUE_DEBUG_LED;
+        eeprom_write_byte(EEPROM_DEBUG_LED_ADDR, DEFAULT_VALUE_DEBUG_LED);
+    }
+        
+    
+}
+
+/**
+ <p><b>uint8_t getDebugLedsConfiguration(void)</b></p>
+ <p><b>Get leds configuration for debug (TX/RX) of each serial port</b></p>
+ <p><b>             Return : uint8_t -> state of each leds [VCOM4 VCOM3 VCOM2 VCOM1 MCOM]</b></p>
+ */
+uint8_t getDebugLedsConfiguration(void)
+{
+    return eepromDebugLeds.regA;
+}
+
+
+
+
+/**
+ <p><b>void readConfiguration(cfgPort *cfg, uint8_t n)</b></p>
+ <p><b>Get configuration with eeprom read values</b></p>
+ <p><b>             cfgPort -> Serial port configuration</b></p>
+ <p><b>             n -> Serial port to configure</b></p>
+ */
+void readConfiguration(cfgPort *cfg, uint8_t n)
+{
+    //BAUD value register for these frequencies in this order :
+    //2400, 4800, 9600, 19200, 38400, 57600, 115200
+    uint16_t speedCfg[] = { 40000, 20000, 10000, 5000, 2500, 1667, 833 };
+    uint8_t parityCfg[] = { NO_PARITY, EVEN_PARITY, ODD_PARITY };
+    uint8_t dataCfg[] = { F5BIT_MODE, F6BIT_MODE, F7BIT_MODE, F8BIT_MODE, F9LBIT_MODE, F9HBIT_MODE };
+    uint8_t stopCfg[] = { ONE_STOPBIT, TWO_STOPBITS };
+    
+    cfg->baud = speedCfg[(eepromVCOM[n].regA >> 4)];
+    cfg->parity = parityCfg[(eepromVCOM[n].regA & 0xF)];
+    cfg->dataByte = dataCfg[(eepromVCOM[n].regB >> 4)];
+    cfg->stopBit = stopCfg[(eepromVCOM[n].regB & 0xF)];
+}
+
+
+
+/**
+ <p><b>void debugLedsTest(void)</b></p>
+ <p><b>Debug leds test sequence</b></p>
+ */
+
+
+void debugLedsTest(void)
+{
+    PORT_t *port;
+    uint16_t addrPorts[] = {&PORTA, &PORTB, &PORTC, &PORTE, &PORTF };
+    for(int i = 0; i < 5; i++)
+    {
+        port = addrPorts[i];
+        port->OUT = 0x04;
+        _delay_ms(125);
+        port->OUT = 0x0C;
+        _delay_ms(125);
+        port->OUT = 0x00;
+    }
+}
+
+/**
+ <p><b>void senseDebugLeds(void)</b></p>
+ <p><b>Call this to update leds status</b></p>
+ */
+void senseDebugLeds(void)
+{
+    ///////////////////////////
+    //Check Master Port
+    if(_hasWritten[USART0_INDEX])
+    {
+        PORTA.OUT |= 0x04;
+        _hasWritten[USART0_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= 0xFB;
+    
+    if(_hasRead[USART0_INDEX])
+    {
+        PORTA.OUT |= 0x08;
+        _hasRead[USART0_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= 0xF7;
+    
+    ///////////////////////////
+    //Check VCOM1
+    if(_hasWritten[USART3_INDEX])
+    {
+        PORTC.OUT |= 0x04;
+        _hasWritten[USART3_INDEX] = false;
+    }
+    else
+        PORTC.OUT &= 0xFB;
+    
+    if(_hasRead[USART3_INDEX])
+    {
+        PORTC.OUT |= 0x08;
+        _hasRead[USART3_INDEX] = false;
+    }
+    else
+        PORTC.OUT &= 0xF7;
+    
+    ///////////////////////////
+    //Check VCOM2
+    if(_hasWritten[USART1_INDEX])
+    {
+        PORTF.OUT |= 0x04;
+        _hasWritten[USART1_INDEX] = false;
+    }
+    else
+        PORTF.OUT &= 0xFB;
+    
+    if(_hasRead[USART1_INDEX])
+    {
+        PORTF.OUT |= 0x08;
+        _hasRead[USART1_INDEX] = false;
+    }
+    else
+        PORTF.OUT &= 0xF7;
+    
+    ///////////////////////////
+    //Check VCOM3
+    if(_hasWritten[USART4_INDEX])
+    {
+        PORTB.OUT |= 0x04;
+        _hasWritten[USART4_INDEX] = false;
+    }
+    else
+    {
+        PORTB.OUT &= 0xFB;
+    }
+        
+    
+    if(_hasRead[USART4_INDEX])
+    {
+        PORTB.OUT |= 0x08;
+        _hasRead[USART4_INDEX] = false;
+    }
+    else
+        PORTB.OUT &= 0xF7;
+    
+    
+    ///////////////////////////
+    //Check VCOM4
+    if(_hasWritten[USART2_INDEX])
+    {
+        PORTE.OUT |= 0x04;
+        _hasWritten[USART2_INDEX] = false;
+    }
+    else
+        PORTE.OUT &= 0xFB;
+    
+    if(_hasRead[USART2_INDEX])
+    {
+        PORTE.OUT |= 0x08;
+        _hasRead[USART2_INDEX] = false;
+    }
+    else
+        PORTE.OUT &= 0xF7;
+}
+
+
+/////////////////////////////////////////////////
+//For Master port (USART0)
+
+/**
+ <p><b>void initPort0(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort0(uint32_t bauds, bool enableDebug, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    if(enableDebug)
+        PORTA.DIR = USART0_PORT_PINS | USART0_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTA.DIR = USART0_PORT_PINS; //Set TX/RX IO
+    
+    USART0.BAUD = bauds; 
+    USART0.CTRLA = 0x00; //disable RX complete interrupt
+    USART0.CTRLB = 0xD0; //Enable TX and RX sending
+    USART0.CTRLC = (parity << 4) | (stopBit << 3) | chSize;
+}
+
+
+/**
+ <p><b>void txWrite0(uint8_t b)</b></p>
+ <p><b>Write a byte throught MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+
+void txWrite0(uint8_t b) //write one byte
+{
+    while((USART0.STATUS & 0x20) != 0x20);
+    USART0.TXDATAL = b;
+    _hasWritten[USART0_INDEX] = true;
+    while((USART0.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART0.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead0(void)</b></p>
+ <p><b>Read a byte from MASTER PORT</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead0(void) //Read one byte from buffer
+{    
+    _hasRead[USART0_INDEX] = true;
+    return USART0.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable0(void)</b></p>
+ <p><b>Get number of bytes available into the MASTER PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable0(void)
+{
+    return ((USART0.RXDATAH & 0x80) >> 7);
+}
+
+
+/*ISR(USART0_RXC_vect)
+{
+    //_RX0._rxReicv = USART0.RXDATAL; //read buffer
+    _RX0._rxBuf[_RX0.bytesAvailable] = USART0.RXDATAL; //Add one byte to the buffer
+    //_RX0._rxReicv = 0x00; //clear value
+    if(_RX0.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX0.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+    _hasRead[USART0_INDEX] = true;
+}*/
+
+
+
+
+
+/////////////////////////////////////////////////
+//For Virtual port 1 (USART3)
+
+
+/**
+ <p><b>void initPort1(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort1(uint32_t bauds, bool enableDebug, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    if(enableDebug)
+        PORTB.DIR = USART3_PORT_PINS | USART3_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTB.DIR = USART3_PORT_PINS; //Set TX/RX IO
+    
+    USART3.BAUD = bauds; 
+    USART3.CTRLA = 0x00; //disable RX complete interrupt
+    USART3.CTRLB = 0xD0; //Enable TX and RX sending
+    USART3.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite1(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM1</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite1(uint8_t b) //Write one byte
+{
+    while((USART3.STATUS & 0x20) != 0x20);
+    USART3.TXDATAL = b;
+    _hasWritten[USART3_INDEX] = true;
+    while((USART3.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART3.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead1(void)</b></p>
+ <p><b>Read a byte from VCOM1</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead1(void) //Read one byte from buffer
+{
+    _hasRead[USART3_INDEX] = true;
+    return USART3.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable1(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM1 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable1(void)
+{
+    return ((USART3.STATUS & 0x80) >> 7);
+}
+
+
+
+/*ISR(USART3_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    _RX1._rxReicv = USART3.RXDATAL; //read buffer
+    _RX1._rxBuf[_RX1.bytesAvailable] = _RX1._rxReicv; //Add one byte to the buffer
+    _RX1._rxReicv = 0x00; //clear value
+    if(_RX1.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX1.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+    
+    _hasRead[USART3_INDEX] = true;
+}
+*/
+
+/////////////////////////////////////////////////
+//For Virtual port 2 (USART1)
+
+
+/**
+ <p><b>void initPort2(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort2(uint32_t bauds, bool enableDebug, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    if(enableDebug)
+        PORTC.DIR = USART1_PORT_PINS | USART1_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTC.DIR = USART1_PORT_PINS; //Set TX/RX IO
+    
+    
+    USART1.BAUD = bauds; 
+    USART1.CTRLA = 0x00; //enable RX complete interrupt
+    USART1.CTRLB = 0xD0; //Enable TX and RX sending
+    USART1.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite2(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM2</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite2(uint8_t b) //Virtual Port 2
+{
+    while((USART1.STATUS & 0x20) != 0x20);
+    USART1.TXDATAL = b;
+    _hasWritten[USART1_INDEX] = true;
+    while((USART1.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART1.STATUS = 0x40; //clear the flag for next transmission
+}
+
+
+/**
+ <p><b>uint8_t rxRead2(void)</b></p>
+ <p><b>Read a byte from VCOM2</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead2(void) //Read one byte from buffer
+{
+    _hasRead[USART1_INDEX] = true;
+    return USART1.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable2(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM2 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable2(void)
+{
+    return ((USART1.STATUS & 0x80) >> 7);
+}
+
+
+
+
+/*ISR(USART1_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    _RX2._rxReicv = USART1.RXDATAL; //read buffer
+    _RX2._rxBuf[_RX2.bytesAvailable] = _RX2._rxReicv; //Add one byte to the buffer
+    _RX2._rxReicv = 0x00; //clear value
+    if(_RX2.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX2.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+    _hasRead[USART1_INDEX] = true;
+}
+*/
+/////////////////////////////////////////////////
+//For Virtual port 3 (USART4)
+
+
+/**
+ <p><b>void initPort3(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort3(uint32_t bauds, bool enableDebug, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    if(enableDebug)
+        PORTE.DIR = USART4_PORT_PINS | USART4_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTE.DIR = USART4_PORT_PINS; //Set TX/RX IO
+    
+    
+    
+    USART4.BAUD = bauds; 
+    USART4.CTRLA = 0x00; //enable RX complete interrupt
+    USART4.CTRLB = 0xD0; //Enable TX and RX sending
+    USART4.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite3(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM3</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite3(uint8_t b) //Write one byte
+{
+    while((USART4.STATUS & 0x20) != 0x20);
+    USART4.TXDATAL = b;
+    _hasWritten[USART4_INDEX] = true;
+    while((USART4.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART4.STATUS = 0x40; //clear the flag for next transmission
+}
+
+/**
+ <p><b>uint8_t rxRead3(void)</b></p>
+ <p><b>Read a byte from VCOM3</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead3(void) //Read one byte from buffer
+{
+    _hasRead[USART4_INDEX] = true;
+    return USART4.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable3(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM3 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable3(void)
+{
+    return ((USART4.STATUS & 0x80) >> 7);
+}
+
+
+/*
+ISR(USART4_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    _RX3._rxReicv = USART4.RXDATAL; //read buffer
+    _RX3._rxBuf[_RX3.bytesAvailable] = _RX3._rxReicv; //Add one byte to the buffer
+    _RX3._rxReicv = 0x00; //clear value
+    if(_RX3.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX3.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+    _hasRead[USART4_INDEX] = true;
+}*/
+
+
+
+
+
+
+/////////////////////////////////////////////////
+//For Virtual port 4 (USART2)
+
+
+/**
+ <p><b>void initPort4(uint32_t bauds)</b></p>
+ <p><b>Init MASTER PORT</b></p>
+ <p><b>Parameters : uint8_t bauds -> Set bauds speed</b></p>
+ <p><b>             bool enableDebug -> Enable debug leds</b></p>
+ <p><b>             uint8_t chSize -> Data bits</b></p>
+ <p><b>             uint8_t stopBit -> How many stop bits</b></p>
+ <p><b>             uint8_t parity -> Parity type (ODD, EVEN, DISABLED)</b></p>
+ <p><b>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort4(uint32_t bauds, bool enableDebug, uint8_t chSize, bool stopBit, uint8_t parity)
+{
+    
+    if(enableDebug)
+        PORTF.DIR = USART2_PORT_PINS | USART2_DEBUG_LED; //Set TX/RX IO and RX/TX debug leds for USART0
+    else
+        PORTF.DIR = USART2_PORT_PINS; //Set TX/RX IO
+    
+    
+    USART2.BAUD = bauds; 
+    USART2.CTRLA = 0x00; //enable RX complete interrupt
+    USART2.CTRLB = 0xD0; //Enable TX and RX sending
+    USART2.CTRLC = (parity << 4) | (stopBit << 3) | chSize; //set serial port cfg
+}
+
+
+
+/**
+ <p><b>void txWrite4(uint8_t b)</b></p>
+ <p><b>Write a byte throught VCOM4</b></p>
+ <p><b>Parameters : uint8_t b -> Byte to write</b></p>
+ */
+void txWrite4(uint8_t b) //Virtual Port 4
+{
+    while((USART2.STATUS & 0x20) != 0x20);
+    USART2.TXDATAL = b;
+    _hasWritten[USART2_INDEX] = true;
+    while((USART2.STATUS & 0x40) != 0x40); //check when we transmit all the bits
+    USART2.STATUS = 0x40; //clear the flag for next transmission
+}
+
+/**
+ <p><b>uint8_t rxRead4(void)</b></p>
+ <p><b>Read a byte from VCOM4</b></p>
+ <p><b>Return : uint8_t result -> Byte to read</b></p>
+ */
+uint8_t rxRead4(void) //Read one byte from buffer
+{
+    _hasRead[USART2_INDEX] = true;
+    return USART2.RXDATAL;
+}
+
+
+/**
+ <p><b>uint16_t portAvailable4(void)</b></p>
+ <p><b>Get number of bytes available into the VCOM4 PORT's buffer</b></p>
+ <p><b>Return : uint16_t bytesAvailable -> Number of bytes</b></p>
+ */
+uint8_t portAvailable4(void)
+{
+    return ((USART2.STATUS & 0x80) >> 7);
+}
+
+
+/*
+ISR(USART2_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    _RX4._rxReicv = USART2.RXDATAL; //read buffer
+    _RX4._rxBuf[_RX4.bytesAvailable] = _RX4._rxReicv; //Add one byte to the buffer
+    _RX4._rxReicv = 0x00; //clear value
+    if(_RX4.bytesAvailable < 255) //ensure not to overflow buffer size...
+        _RX4.bytesAvailable++; //a new byte is available into the buffer
+        //PORTA.OUT ^= 0x3; //debug led
+    _hasRead[USART2_INDEX] = true;
+}*/
+
+#ifdef	__cplusplus
+}
+#endif /* __cplusplus */
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/main.c b/Version 1.2/RS232_MUX.X/main.c
new file mode 100644
index 0000000..ad306f4
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/main.c	
@@ -0,0 +1,694 @@
+/*
+ * File:   main.c
+ * Author: eniro
+ * Version : 0.9
+ *
+ * Created on March 25, 2024, 3:51 PM
+ */
+
+
+
+/*
+ 
+ TODO LIST :
+ * 
+ * 
+ * Remap all pins !!!
+ * 
+ * Select UART1 as master port
+ * 
+ * Rename VCOMA/2/3/4 as VCOMA/B/C/D ?
+ 
+ */
+
+#define F_CPU 24000000UL
+
+#include <xc.h>
+#include <math.h>
+#include <stdlib.h>
+#include <util/delay.h>
+#include <avr/interrupt.h>
+#include <avr/eeprom.h>
+
+#include "hardware_uart.h"
+#include "hardware_timer.h"
+#include "hardware_TL16C754C.h"
+#include "hardware_config.h"
+#include "frame_definitions.h"
+#include "parameters.h"
+
+//USART setup
+
+//To calculate BAUD value register -> BAUD = 64*FCLK/(16*FBAUDS)
+#define UART_BAUD_VALUE     833 // 10000 is equivalent as 9600 bauds (on 24MHz clock) according to datasheet
+#define USART0_REG          0x3 
+#define BOOT_MSG            "RS232-MUX\r\n"
+
+
+
+//OSC. setup
+#define FREQSEL     0x9
+#define _FREQSEL_REG_WR     ((FREQSEL) << 2)
+#define _USART0_REG_WR      (USART0_REG & 0x7)
+
+
+
+
+
+
+enum portIndex {
+    PORT_VCOMA_INDEX = 0,
+    PORT_VCOMB_INDEX,
+    PORT_VCOMC_INDEX,
+    PORT_VCOMD_INDEX,
+    PORT_MCOM_INDEX,
+};
+
+
+//////////////////////////////////////////////////////////////
+//Prototypes
+
+void bootSequence(void);
+void MCOM_sendframe(uint8_t *data, uint8_t n, uint8_t port);
+void VCOM_sendframe(uint8_t *data, uint8_t n);
+void senseDebugLeds(bool *hasWritten, bool *hasRead);
+uint8_t getPriority(uint8_t chosen_com, uint8_t *ports_list, uint8_t n);
+
+//reset watchdog counter
+#define WATCHDOG_RESET      asm("WDR")
+
+uint8_t global_debugBuffer[256];
+uint8_t global_n = 0;
+uint8_t global_parity;
+
+
+
+
+
+
+#ifdef USE_PORT_1
+#define INIT_PORT(w,x,y,z)               initPort1(w,x,y,z)
+#define TX_WRITE(x)                     txWrite1(x)
+#define RX_READ                         rxRead1()
+#define PORT_AVAILABLE                  portAvailable1()
+#else
+#ifdef USE_PORT_2
+#define INIT_PORT(w,x,y,z)               initPort2(w,x,y,z)
+#define TX_WRITE(x)                     txWrite2(x)
+#define RX_READ                         rxRead2()
+#define PORT_AVAILABLE                  portAvailable2()
+#else
+#ifdef USE_PORT_3
+#define INIT_PORT(w,x,y,z)               initPort3(w,x,y,z)
+#define TX_WRITE(x)                     txWrite3(x)
+#define RX_READ                         rxRead3()
+#define PORT_AVAILABLE                  portAvailable3()
+#else
+#ifdef USE_PORT_4
+#define INIT_PORT(w,x,y,z)               initPort4(w,x,y,z)
+#define TX_WRITE(x)                     txWrite4(x)
+#define RX_READ                         rxRead4()
+#define PORT_AVAILABLE                  portAvailable4()
+#else
+#error "Please choose an uart port..."
+#endif
+#endif
+#endif
+#endif
+
+
+int main(void) {
+    
+    
+    uint8_t ctrlReg;
+    uint8_t masterBuffer[64], bufferA[64], bufferB[64], bufferC[64], bufferD[64];
+    uint8_t VCOMAIndex = 0, VCOMBIndex = 0, VCOMCIndex = 0, VCOMDIndex = 0, MCOMIndex;
+    uint16_t MCOM_counter = 0;
+    uint16_t VCOMA_counter = 0;
+    uint16_t VCOMB_counter = 0;
+    uint16_t VCOMC_counter = 0;
+    uint16_t VCOMD_counter = 0;
+    uint8_t debug;
+    
+    bool writtenStatus = false;
+    bool readStatus[] = {false, false, false, false, false};
+    //local timer counter for local process (blink led, ect...)
+    
+    uint8_t vcom_priority[] = {0, 0, 0, 0}; //VCOM priority to send on master port
+    uint8_t vcom_choose = PORT_VCOMA_INDEX;
+    
+    setWait(5000);
+    
+    
+    for(int i = 0; i < 64; i++)
+    {
+        bufferA[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferB[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferC[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferD[i] = 0;
+    }
+    
+    _PROTECTED_WRITE(CLKCTRL.OSCHFCTRLA, _FREQSEL_REG_WR); //switch to 24 MHz
+    
+    
+    
+    //Enable pins (Port direction)
+    ADDR_ENABLE;        //Address pins
+    ENABLE_WR_RD_PINS;  //Read and Write pins
+    ENABLE_CS_PINS;     //Chip select pins
+    ENABLE_RESET_PIN;   //Reset pin
+    
+    //////////////////////////////////////////////////////////////
+    //Remember to put high level on cs pins to disable devices...
+    SETCSA;
+    SETCSB;
+    SETCSC;
+    SETCSD;
+    //Also don't forget IOR and IOW
+    SETWR;
+    SETRD;
+    //////////////////////////////////////////////////////////////
+    
+    
+    ////////////////////////////////////////
+    //init TL16C IC
+    SETRST; 
+    //_delay_ms(10);
+    setWait(100);
+    CLRRST;
+    setWait(5);
+    ////////////////////////////////////////
+    
+    //Init virtual COM ports
+    //TODO : Set EEPROM CFG here
+    initPortA(DL_9600_BAUDS, F8BIT_MODE, TL16C_NO_PARITY, ONE_STOPBIT);
+    initPortB(DL_9600_BAUDS, F8BIT_MODE, TL16C_NO_PARITY, ONE_STOPBIT);
+    initPortC(DL_9600_BAUDS, F8BIT_MODE, TL16C_NO_PARITY, ONE_STOPBIT);
+    initPortD(DL_9600_BAUDS, F8BIT_MODE, TL16C_NO_PARITY, ONE_STOPBIT);
+    
+    //Master Port
+    INIT_PORT(UART_BAUD_VALUE, F8BIT_MODE, ONE_STOPBIT, AVR32_NO_PARITY);
+    
+    setWait(500);
+    ctrlReg = 0;
+    
+    
+    timerInit(60000); //10 ms interrupt
+    sei(); //never forget to enable global interrupt mask !
+    
+    PORTA.DIR = 0x3F;
+    
+    
+    
+    while(1)
+    {
+        if(vcom_choose > 3)
+        {
+                asm("nop");
+                asm("nop");
+                asm("nop");
+                asm("nop");
+        }
+        debug++;
+        
+        if(debug == 0x07)
+            asm("nop");
+        
+        ////////////////////////////////////////////////////////
+        //Read UART A
+        
+        
+        if(portA_available()) //Check if one byte available
+        {
+            readStatus[PORT_VCOMA_INDEX] = true;
+            bufferA[VCOMAIndex] = rxReadA(); 
+            VCOMAIndex++; 
+            //if(VCOMAIndex > 64)
+            //    VCOMAIndex = 0;
+            VCOMA_counter = 0; //for frame timeout
+        }
+        
+        ////////////////////////////////////////////////////////
+        //Read UART B
+        
+        
+        if(portB_available()) //Check if one byte available
+        {
+            readStatus[PORT_VCOMB_INDEX] = true;
+            bufferB[VCOMBIndex] = rxReadB();
+            VCOMBIndex++; 
+            //if(VCOMBIndex > 64)
+            //    VCOMBIndex = 0;
+            VCOMB_counter = 0; //for frame timeout  
+        }
+        
+        
+        ////////////////////////////////////////////////////////
+        //Read UART C
+        
+        
+        if(portC_available()) //Check if one byte available
+        {
+            readStatus[PORT_VCOMC_INDEX] = true;
+            bufferC[VCOMCIndex] = rxReadC();
+            VCOMCIndex++; 
+            //if(VCOMCIndex > 64)
+            //    VCOMCIndex = 0;
+            VCOMC_counter = 0; //for frame timeout 
+        }
+        
+        
+        
+        ////////////////////////////////////////////////////////
+        //Read UART D
+        
+        
+        if(portD_available()) //Check if one byte available
+        {
+            readStatus[PORT_VCOMD_INDEX] = true;
+            bufferD[VCOMDIndex] = rxReadD();
+            VCOMDIndex++; 
+            //if(VCOMDIndex > 64)
+            //    VCOMDIndex = 0;
+            VCOMD_counter = 0; //for frame timeout
+        }
+        
+        
+        ////////////////////////////////////////////////////////
+        //Read UART Master
+        
+        
+        if(PORT_AVAILABLE > 0) //check if we have bytes to read
+        {
+            readStatus[PORT_MCOM_INDEX] = true;
+            masterBuffer[MCOMIndex] = RX_READ; //store byte into buffer
+            MCOMIndex++; //increment to next byte
+            //if(MCOMIndex > 64)
+            //    MCOMIndex = 0;
+            MCOM_counter = 0; //refresh timeout counter
+        }
+        
+        
+        
+
+        //Timed process (for leds, etc...)
+        if(getTimerFlag())
+        {
+            /////////////////////////////////////////////////////////
+            //Timeout process
+
+            //For master port
+            if(MCOMIndex > 0)
+                MCOM_counter++;
+
+            //For virtual port 1
+            if(VCOMAIndex > 0)
+                VCOMA_counter++;
+
+            //For virtual port 2
+            if(VCOMBIndex > 0)
+                VCOMB_counter++;
+
+            //For virtual port 3
+            if(VCOMCIndex > 0)
+                VCOMC_counter++;
+
+            //For virtual port 4
+            if(VCOMDIndex > 0)
+                VCOMD_counter++;
+            
+            
+            senseDebugLeds(&writtenStatus, readStatus);
+            clearTimerFlag();
+        }
+        
+        
+            
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready from master
+        if(MCOM_counter > SERIAL_PORT_TIMEOUT_COUNT || MCOMIndex >= 64)
+        {         
+            
+            
+            
+            //Send buffer to VCOM
+            VCOM_sendframe(masterBuffer, MCOMIndex);
+            MCOMIndex = 0; //reset index buffer
+            MCOM_counter = 0; //reset counter
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready from VCOMA
+        
+        if(vcom_choose == PORT_VCOMA_INDEX)
+        {
+            if(VCOMA_counter > SERIAL_PORT_TIMEOUT_COUNT || VCOMAIndex >= 64)
+            {
+
+                vcom_choose = getPriority(vcom_choose, vcom_priority, MAX_VCOM_PORTS); //Calculate next port to send
+
+                if(vcom_choose > 3)
+                {
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                }
+                
+                writtenStatus = true;//Say a wrote has been made
+                //Send buffer to VCOM
+                MCOM_sendframe(bufferA, VCOMAIndex, PORT_VCOMA_INDEX);
+                VCOMAIndex = 0; //reset index buffer
+                VCOMA_counter = 0; //reset counter
+            }
+        }
+        
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready from VCOMB
+        if(vcom_choose == PORT_VCOMB_INDEX)
+        {
+            if(VCOMB_counter > SERIAL_PORT_TIMEOUT_COUNT || VCOMBIndex >= 64)
+            {
+
+                vcom_choose = getPriority(vcom_choose, vcom_priority, MAX_VCOM_PORTS); //Calculate next port to send
+
+                if(vcom_choose > 3)
+                {
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                }
+                
+                writtenStatus = true;//Say a wrote has been made
+                //Send buffer to VCOM
+                MCOM_sendframe(bufferB, VCOMBIndex, PORT_VCOMB_INDEX);
+                VCOMBIndex = 0; //reset index buffer
+                VCOMB_counter = 0; //reset counter
+            }
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready from VCOMC
+        if(vcom_choose == PORT_VCOMC_INDEX)
+        {
+            if(VCOMC_counter > SERIAL_PORT_TIMEOUT_COUNT || VCOMCIndex >= 64)
+            {
+
+                vcom_choose = getPriority(vcom_choose, vcom_priority, MAX_VCOM_PORTS); //Calculate next port to send
+                if(vcom_choose > 3)
+                {
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                }
+
+                writtenStatus = true;//Say a wrote has been made
+                //Send buffer to VCOM
+                MCOM_sendframe(bufferC, VCOMCIndex, PORT_VCOMC_INDEX);
+                VCOMCIndex = 0; //reset index buffer
+                VCOMC_counter = 0; //reset counter
+            }
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready from VCOMD
+        if(vcom_choose == PORT_VCOMD_INDEX)
+        {
+            if(VCOMD_counter > SERIAL_PORT_TIMEOUT_COUNT || VCOMDIndex >= 64)
+            {
+
+                vcom_choose = getPriority(vcom_choose, vcom_priority, MAX_VCOM_PORTS); //Calculate next port to send
+                if(vcom_choose > 3)
+                {
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                    asm("nop");
+                }
+
+                writtenStatus = true; //Say a wrote has been made
+                //Send buffer to VCOM
+                MCOM_sendframe(bufferD, VCOMDIndex, PORT_VCOMD_INDEX);
+                VCOMDIndex = 0; //reset index buffer
+                VCOMD_counter = 0; //reset counter
+            }
+        }
+        
+        ///////////////////////////////////////////////////////////
+        //Priority check
+        
+        //Check if buffer is empty, then put port at lowest priority !
+        
+        if(VCOMAIndex == 0) //no buffer ?
+        {
+            vcom_priority[PORT_VCOMA_INDEX] = 0; //no priority
+        }
+        
+        
+        if(VCOMBIndex == 0) //no buffer ?
+        {
+            vcom_priority[PORT_VCOMB_INDEX] = 0; //no priority
+        }
+        
+        
+        if(VCOMCIndex == 0) //no buffer ?
+        {
+            vcom_priority[PORT_VCOMC_INDEX] = 0; //no priority
+        }
+        
+        
+        if(VCOMDIndex == 0) //no buffer ?
+        {
+            vcom_priority[PORT_VCOMD_INDEX] = 0; //no priority
+        }
+        
+        
+    }
+    
+    
+        
+    return 0;
+}
+
+
+
+
+///////////////////////////////////////////////////////////
+//Functions / macros
+
+//Send a frame from virtual port to master port
+
+void MCOM_sendframe(uint8_t *data, uint8_t n, uint8_t port)
+{
+    //////////////////////////
+    //Send frame
+    
+    TX_WRITE(0x02); //STX
+    TX_WRITE(port + CESAR_SHIFT); //Which virtual port called master port ?
+    TX_WRITE(FRAME_ADDR_1); //ADDR
+    TX_WRITE(FRAME_ADDR_2); //ADDR
+    
+    for(uint8_t i = 0; i < n; i++) //DATA
+        TX_WRITE(data[i]);
+    
+    TX_WRITE(LF_CHAR); //End of frame
+    TX_WRITE(CR_CHAR); //End of frame
+    //////////////////////////
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////
+//Send a frame from master port to virtual port (that calculate whose port to send ?)
+
+void VCOM_sendframe(uint8_t *data, uint8_t n)
+{
+    uint16_t addrFunctions[] = {&txWriteA, &txWriteB, &txWriteC, &txWriteD }; //list of available functions addresses
+    void (*localTxWrite)(); //function pointer
+
+    ////////////////////////////////
+    //To debugger read section
+    
+    
+    
+    for(int i = 0; i < 256; i++)
+        global_debugBuffer[i] = data[i];
+    
+    if(global_n == 0x02)
+    {
+        asm("nop");
+    }
+    if(global_debugBuffer[1] == 0x03)
+    {
+        asm("nop");
+    }
+    ////////////////////////////////
+    
+    //At first, check if first byte is the start of text
+    if(data[0] == STX)
+    {
+        if(data[2] == FRAME_ADDR_1 && data[3] == FRAME_ADDR_2) //check if we have the MUX address identifier
+        {    
+            if(data[n-1] == CR_CHAR) //check the end of text (second byte)
+            {
+                if(data[n-2] == LF_CHAR) //check the end of text (first byte)
+                {
+                    data[1]-=CESAR_SHIFT; //convert port index to buffer equivalent
+                    localTxWrite = addrFunctions[(data[1] < 3) ? data[1] : 3 ]; //data[3]
+                    for(int i = 4; i < n-2; i++) //send frame without (STX + FRAME_ADDR_B1 + FRAME_ADDR_B2 + LF_CHAR + CR_CHAR)
+                    {
+                        localTxWrite(data[i]);
+                    }
+                    
+                }
+            }
+        }
+    }
+}
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////
+//Get VCOM port priority to avoid filling hardware buffer and lost data...
+
+uint8_t getPriority(uint8_t chosen_com, uint8_t *ports_list, uint8_t n)
+{
+    uint8_t i = 0; //a little bit useful for timing
+    
+    for(i = 0; i < n; i++) //at first increment priority
+        ports_list[i]++;
+    
+    ports_list[chosen_com] = 0; //reset priority on this port
+    
+    chosen_com = 0; //load first port
+    for(i = 1; i < n; i++) //calculate priority
+    {
+        if(ports_list[i] > ports_list[chosen_com]) //priority level larger than actual port ?
+            chosen_com = i; //then choose this port
+    }
+        
+    
+    
+    return chosen_com; //port result according to priority
+}
+
+
+
+
+void bootSequence(void)
+{
+    debugLedsTest();
+}
+
+
+
+
+/**
+ <p><b>void debugLedsTest(void)</b></p>
+ <p><b>Debug leds test sequence</b></p>
+ */
+void debugLedsTest(void)
+{
+
+    PORTA.OUT = 1;
+    for(int i = 0; i < 6; i++)
+    {
+        PORTA.OUT <<= 1;
+        _delay_ms(125);
+    }
+    PORTA.OUT = 0;
+}
+
+/**
+ <p><b>void senseDebugLeds(void)</b></p>
+ <p><b>Call this to update leds status</b></p>
+ */
+void senseDebugLeds(bool *hasWritten, bool *hasRead)
+{
+    
+
+    
+    ///////////////////////////
+    //Check Master Port
+    if(*hasWritten)
+    {
+        PORTA.OUT |= 0x20;
+        *hasWritten = false;
+    }
+    else
+        PORTA.OUT &= ~(0x20);
+    
+    if(hasRead[PORT_MCOM_INDEX])
+    {
+        PORTA.OUT |= 0x10;
+        hasRead[PORT_MCOM_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= ~(0x10);
+    
+    ///////////////////////////
+    //Check VCOMA
+    if(hasRead[PORT_VCOMA_INDEX])
+    {
+        PORTA.OUT |= 0x01;
+        hasRead[PORT_VCOMA_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= ~(0x01);
+    
+    ///////////////////////////
+    //Check VCOMB
+    if(hasRead[PORT_VCOMB_INDEX])
+    {
+        PORTA.OUT |= 0x02;
+        hasRead[PORT_VCOMB_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= ~(0x02);
+    
+    ///////////////////////////
+    //Check VCOMC
+    if(hasRead[PORT_VCOMC_INDEX])
+    {
+        PORTA.OUT |= 0x04;
+        hasRead[PORT_VCOMC_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= ~(0x04);
+    
+    
+    ///////////////////////////
+    //Check VCOMD
+    if(hasRead[PORT_VCOMD_INDEX])
+    {
+        PORTA.OUT |= 0x08;
+        hasRead[PORT_VCOMD_INDEX] = false;
+    }
+    else
+        PORTA.OUT &= ~(0x08);
+}
+
+
+
+
+
+
+
+
diff --git a/Version 1.2/RS232_MUX.X/nbproject/Makefile-default.mk b/Version 1.2/RS232_MUX.X/nbproject/Makefile-default.mk
new file mode 100644
index 0000000..8956481
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/Makefile-default.mk	
@@ -0,0 +1,154 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a -pre and a -post target defined where you can add customized code.
+#
+# This makefile implements configuration specific macros and targets.
+
+
+# Include project Makefile
+ifeq "${IGNORE_LOCAL}" "TRUE"
+# do not include local makefile. User is passing all local related variables already
+else
+include Makefile
+# Include makefile containing local settings
+ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk"
+include nbproject/Makefile-local-default.mk
+endif
+endif
+
+# Environment
+MKDIR=gnumkdir -p
+RM=rm -f 
+MV=mv 
+CP=cp 
+
+# Macros
+CND_CONF=default
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+IMAGE_TYPE=debug
+OUTPUT_SUFFIX=elf
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+else
+IMAGE_TYPE=production
+OUTPUT_SUFFIX=hex
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+endif
+
+ifeq ($(COMPARE_BUILD), true)
+COMPARISON_BUILD=-mafrlcsj
+else
+COMPARISON_BUILD=
+endif
+
+# Object Directory
+OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
+
+# Distribution Directory
+DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
+
+# Source Files Quoted if spaced
+SOURCEFILES_QUOTED_IF_SPACED=main.c
+
+# Object Files Quoted if spaced
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o
+POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d
+
+# Object Files
+OBJECTFILES=${OBJECTDIR}/main.o
+
+# Source Files
+SOURCEFILES=main.c
+
+
+
+CFLAGS=
+ASFLAGS=
+LDLIBSOPTIONS=
+
+############# Tool locations ##########################################
+# If you copy a project from one host to another, the path where the  #
+# compiler is installed may be different.                             #
+# If you open this project with MPLAB X in the new host, this         #
+# makefile will be regenerated and the paths will be corrected.       #
+#######################################################################
+# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build
+FIXDEPS=fixDeps
+
+.build-conf:  ${BUILD_SUBPROJECTS}
+ifneq ($(INFORMATION_MESSAGE), )
+	@echo $(INFORMATION_MESSAGE)
+endif
+	${MAKE}  -f nbproject/Makefile-default.mk ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+
+MP_PROCESSOR_OPTION=AVR32DA48
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: compile
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${OBJECTDIR}/main.o: main.c  .generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
+	@${MKDIR} "${OBJECTDIR}" 
+	@${RM} ${OBJECTDIR}/main.o.d 
+	@${RM} ${OBJECTDIR}/main.o 
+	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1 -g -DDEBUG  -gdwarf-2  -x c -D__$(MP_PROCESSOR_OPTION)__   -mdfp="${DFP_DIR}/xc8"  -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -DXPRJ_default=$(CND_CONF)  $(COMPARISON_BUILD)  -gdwarf-3 -mno-const-data-in-progmem     -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c 
+	
+else
+${OBJECTDIR}/main.o: main.c  .generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
+	@${MKDIR} "${OBJECTDIR}" 
+	@${RM} ${OBJECTDIR}/main.o.d 
+	@${RM} ${OBJECTDIR}/main.o 
+	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -x c -D__$(MP_PROCESSOR_OPTION)__   -mdfp="${DFP_DIR}/xc8"  -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -DXPRJ_default=$(CND_CONF)  $(COMPARISON_BUILD)  -gdwarf-3 -mno-const-data-in-progmem     -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c 
+	
+endif
+
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: assemble
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+else
+endif
+
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: assembleWithPreprocess
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+else
+endif
+
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: link
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk    
+	@${MKDIR} ${DISTDIR} 
+	${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.map  -D__DEBUG=1  -DXPRJ_default=$(CND_CONF)  -Wl,--defsym=__MPLAB_BUILD=1   -mdfp="${DFP_DIR}/xc8"   -gdwarf-2 -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -gdwarf-3 -mno-const-data-in-progmem     $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  -o ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}  ${OBJECTFILES_QUOTED_IF_SPACED}      -Wl,--start-group  -Wl,-lm -Wl,--end-group  -Wl,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1
+	@${RM} ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.hex 
+	
+	
+else
+${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk   
+	@${MKDIR} ${DISTDIR} 
+	${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.map  -DXPRJ_default=$(CND_CONF)  -Wl,--defsym=__MPLAB_BUILD=1   -mdfp="${DFP_DIR}/xc8"  -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -Wall -gdwarf-3 -mno-const-data-in-progmem     $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  -o ${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  ${OBJECTFILES_QUOTED_IF_SPACED}      -Wl,--start-group  -Wl,-lm -Wl,--end-group 
+	${MP_CC_DIR}\\avr-objcopy -O ihex "${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/RS232_MUX.X.${IMAGE_TYPE}.hex"
+	
+endif
+
+
+# Subprojects
+.build-subprojects:
+
+
+# Subprojects
+.clean-subprojects:
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+	${RM} -r ${OBJECTDIR}
+	${RM} -r ${DISTDIR}
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+DEPFILES=$(wildcard ${POSSIBLE_DEPFILES})
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif
diff --git a/Version 1.2/RS232_MUX.X/nbproject/Makefile-genesis.properties b/Version 1.2/RS232_MUX.X/nbproject/Makefile-genesis.properties
new file mode 100644
index 0000000..4f643e9
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/Makefile-genesis.properties	
@@ -0,0 +1,13 @@
+#
+#Wed Jun 26 15:58:13 CEST 2024
+default.languagetoolchain.version=2.46
+default.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v6.20\\packs\\Microchip\\AVR-Dx_DFP\\2.4.286
+default.com-microchip-mplab-mdbcore-PK5Tool-PK5ToolImpl.md5=8ed9aa4326bfc0c1a849e697826741b7
+conf.ids=default
+default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc8\\v2.46\\bin
+host.id=18cy-2f4f-c2
+configurations-xml=c5470dece96e306284920a92eda10cb5
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321
+default.com-microchip-mplab-nbide-toolchain-xc8-XC8LanguageToolchain.md5=bf89cdcdd6c0a49174fe4b605ef2b42d
+proj.dir=C\:\\Users\\eniro\\MPLABXProjects\\RS232_MUX.X
+host.platform=windows
diff --git a/Version 1.2/RS232_MUX.X/nbproject/Makefile-impl.mk b/Version 1.2/RS232_MUX.X/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..36e8491
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/Makefile-impl.mk	
@@ -0,0 +1,69 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a pre- and a post- target defined where you can add customization code.
+#
+# This makefile implements macros and targets common to all configurations.
+#
+# NOCDDL
+
+
+# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
+# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
+# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
+# and .clean-reqprojects-conf unless SUB has the value 'no'
+SUB_no=NO
+SUBPROJECTS=${SUB_${SUB}}
+BUILD_SUBPROJECTS_=.build-subprojects
+BUILD_SUBPROJECTS_NO=
+BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
+CLEAN_SUBPROJECTS_=.clean-subprojects
+CLEAN_SUBPROJECTS_NO=
+CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
+
+
+# Project Name
+PROJECTNAME=RS232_MUX.X
+
+# Active Configuration
+DEFAULTCONF=default
+CONF=${DEFAULTCONF}
+
+# All Configurations
+ALLCONFS=default 
+
+
+# build
+.build-impl: .build-pre
+	${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf
+
+
+# clean
+.clean-impl: .clean-pre
+	${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf
+
+# clobber
+.clobber-impl: .clobber-pre .depcheck-impl
+	    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
+
+
+
+# all
+.all-impl: .all-pre .depcheck-impl
+	    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
+
+
+
+# dependency checking support
+.depcheck-impl:
+#	@echo "# This code depends on make tool being used" >.dep.inc
+#	@if [ -n "${MAKE_VERSION}" ]; then \
+#	    echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
+#	    echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
+#	    echo "include \$${DEPFILES}" >>.dep.inc; \
+#	    echo "endif" >>.dep.inc; \
+#	else \
+#	    echo ".KEEP_STATE:" >>.dep.inc; \
+#	    echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
+#	fi
diff --git a/Version 1.2/RS232_MUX.X/nbproject/Makefile-local-default.mk b/Version 1.2/RS232_MUX.X/nbproject/Makefile-local-default.mk
new file mode 100644
index 0000000..3222869
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/Makefile-local-default.mk	
@@ -0,0 +1,37 @@
+#
+# Generated Makefile - do not edit!
+#
+#
+# This file contains information about the location of compilers and other tools.
+# If you commmit this file into your revision control server, you will be able to 
+# to checkout the project and build it from the command line with make. However,
+# if more than one person works on the same project, then this file might show
+# conflicts since different users are bound to have compilers in different places.
+# In that case you might choose to not commit this file and let MPLAB X recreate this file
+# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at
+# least once so the file gets created and the project can be built. Finally, you can also
+# avoid using this file at all if you are only building from the command line with make.
+# You can invoke make with the values of the macros:
+# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...  
+#
+SHELL=cmd.exe
+PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/
+# Adding MPLAB X bin directory to path.
+PATH:=C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
+# Path to java used to run MPLAB X when this makefile was created
+MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.20\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
+OS_CURRENT="$(shell uname -s)"
+MP_CC="C:\Program Files\Microchip\xc8\v2.46\bin\xc8-cc.exe"
+# MP_CPPC is not defined
+# MP_BC is not defined
+MP_AS="C:\Program Files\Microchip\xc8\v2.46\bin\xc8-cc.exe"
+MP_LD="C:\Program Files\Microchip\xc8\v2.46\bin\xc8-cc.exe"
+MP_AR="C:\Program Files\Microchip\xc8\v2.46\bin\xc8-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\Program Files\Microchip\xc8\v2.46\bin"
+# MP_CPPC_DIR is not defined
+# MP_BC_DIR is not defined
+MP_AS_DIR="C:\Program Files\Microchip\xc8\v2.46\bin"
+MP_LD_DIR="C:\Program Files\Microchip\xc8\v2.46\bin"
+MP_AR_DIR="C:\Program Files\Microchip\xc8\v2.46\bin"
+DFP_DIR=C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286
diff --git a/Version 1.2/RS232_MUX.X/nbproject/Makefile-variables.mk b/Version 1.2/RS232_MUX.X/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..e7c8ba8
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/Makefile-variables.mk	
@@ -0,0 +1,10 @@
+#
+# Generated - do not edit!
+#
+# NOCDDL
+#
+CND_BASEDIR=`pwd`
+# default configuration
+CND_ARTIFACT_DIR_default=dist/default/production
+CND_ARTIFACT_NAME_default=RS232_MUX.X.production.hex
+CND_ARTIFACT_PATH_default=dist/default/production/RS232_MUX.X.production.hex
diff --git a/Version 1.2/RS232_MUX.X/nbproject/configurations.xml b/Version 1.2/RS232_MUX.X/nbproject/configurations.xml
new file mode 100644
index 0000000..d844531
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/configurations.xml	
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configurationDescriptor version="65">
+  <logicalFolder name="root" displayName="root" projectFiles="true">
+    <logicalFolder name="HeaderFiles"
+                   displayName="Header Files"
+                   projectFiles="true">
+    </logicalFolder>
+    <logicalFolder name="ExternalFiles"
+                   displayName="Important Files"
+                   projectFiles="true">
+      <itemPath>Makefile</itemPath>
+    </logicalFolder>
+    <logicalFolder name="LinkerScript"
+                   displayName="Linker Files"
+                   projectFiles="true">
+    </logicalFolder>
+    <logicalFolder name="SourceFiles"
+                   displayName="Source Files"
+                   projectFiles="true">
+      <itemPath>main.c</itemPath>
+      <itemPath>hardware_uart.h</itemPath>
+      <itemPath>hardware_timer.h</itemPath>
+      <itemPath>frame_definitions.h</itemPath>
+      <itemPath>hardware_uart_OLD.h</itemPath>
+      <itemPath>parameters.h</itemPath>
+      <itemPath>hardware_TL16C754C.h</itemPath>
+      <itemPath>trash_code_unused.txt</itemPath>
+      <itemPath>hardware_config.h</itemPath>
+    </logicalFolder>
+  </logicalFolder>
+  <projectmakefile>Makefile</projectmakefile>
+  <confs>
+    <conf name="default" type="2">
+      <toolsSet>
+        <developmentServer>localhost</developmentServer>
+        <targetDevice>AVR32DA48</targetDevice>
+        <targetHeader></targetHeader>
+        <targetPluginBoard></targetPluginBoard>
+        <platformTool>PK5Tool</platformTool>
+        <languageToolchain>XC8</languageToolchain>
+        <languageToolchainVersion>2.46</languageToolchainVersion>
+        <platform>3</platform>
+      </toolsSet>
+      <packs>
+        <pack name="AVR-Dx_DFP" vendor="Microchip" version="2.4.286"/>
+      </packs>
+      <ScriptingSettings>
+      </ScriptingSettings>
+      <compileType>
+        <linkerTool>
+          <linkerLibItems>
+          </linkerLibItems>
+        </linkerTool>
+        <archiverTool>
+        </archiverTool>
+        <loading>
+          <useAlternateLoadableFile>false</useAlternateLoadableFile>
+          <parseOnProdLoad>false</parseOnProdLoad>
+          <alternateLoadableFile></alternateLoadableFile>
+        </loading>
+        <subordinates>
+        </subordinates>
+      </compileType>
+      <makeCustomizationType>
+        <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
+        <makeUseCleanTarget>false</makeUseCleanTarget>
+        <makeCustomizationPreStep></makeCustomizationPreStep>
+        <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
+        <makeCustomizationPostStep></makeCustomizationPostStep>
+        <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
+        <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
+        <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
+      </makeCustomizationType>
+      <HI-TECH-COMP>
+        <property key="additional-warnings" value="true"/>
+        <property key="asmlist" value="true"/>
+        <property key="call-prologues" value="false"/>
+        <property key="default-bitfield-type" value="true"/>
+        <property key="default-char-type" value="true"/>
+        <property key="define-macros" value=""/>
+        <property key="disable-optimizations" value="false"/>
+        <property key="extra-include-directories" value=""/>
+        <property key="favor-optimization-for" value="-speed,+space"/>
+        <property key="garbage-collect-data" value="true"/>
+        <property key="garbage-collect-functions" value="true"/>
+        <property key="identifier-length" value="255"/>
+        <property key="local-generation" value="false"/>
+        <property key="operation-mode" value="free"/>
+        <property key="opt-xc8-compiler-strict_ansi" value="false"/>
+        <property key="optimization-assembler" value="true"/>
+        <property key="optimization-assembler-files" value="true"/>
+        <property key="optimization-debug" value="false"/>
+        <property key="optimization-invariant-enable" value="false"/>
+        <property key="optimization-invariant-value" value="16"/>
+        <property key="optimization-level" value="-O1"/>
+        <property key="optimization-speed" value="false"/>
+        <property key="optimization-stable-enable" value="false"/>
+        <property key="preprocess-assembler" value="true"/>
+        <property key="short-enums" value="true"/>
+        <property key="tentative-definitions" value="-fno-common"/>
+        <property key="undefine-macros" value=""/>
+        <property key="use-cci" value="false"/>
+        <property key="use-iar" value="false"/>
+        <property key="verbose" value="false"/>
+        <property key="warning-level" value="-3"/>
+        <property key="what-to-do" value="ignore"/>
+      </HI-TECH-COMP>
+      <HI-TECH-LINK>
+        <property key="additional-options-checksum" value=""/>
+        <property key="additional-options-checksumAVR" value=""/>
+        <property key="additional-options-code-offset" value=""/>
+        <property key="additional-options-command-line" value=""/>
+        <property key="additional-options-errata" value=""/>
+        <property key="additional-options-extend-address" value="false"/>
+        <property key="additional-options-trace-type" value=""/>
+        <property key="additional-options-use-response-files" value="false"/>
+        <property key="backup-reset-condition-flags" value="false"/>
+        <property key="calibrate-oscillator" value="false"/>
+        <property key="calibrate-oscillator-value" value="0x3400"/>
+        <property key="clear-bss" value="true"/>
+        <property key="code-model-external" value="wordwrite"/>
+        <property key="code-model-rom" value=""/>
+        <property key="create-html-files" value="false"/>
+        <property key="data-model-ram" value=""/>
+        <property key="data-model-size-of-double" value="24"/>
+        <property key="data-model-size-of-double-gcc" value="no-short-double"/>
+        <property key="data-model-size-of-float" value="24"/>
+        <property key="data-model-size-of-float-gcc" value="no-short-float"/>
+        <property key="display-class-usage" value="false"/>
+        <property key="display-hex-usage" value="false"/>
+        <property key="display-overall-usage" value="true"/>
+        <property key="display-psect-usage" value="false"/>
+        <property key="extra-lib-directories" value=""/>
+        <property key="fill-flash-options-addr" value=""/>
+        <property key="fill-flash-options-const" value=""/>
+        <property key="fill-flash-options-how" value="0"/>
+        <property key="fill-flash-options-inc-const" value="1"/>
+        <property key="fill-flash-options-increment" value=""/>
+        <property key="fill-flash-options-seq" value=""/>
+        <property key="fill-flash-options-what" value="0"/>
+        <property key="format-hex-file-for-download" value="false"/>
+        <property key="initialize-data" value="true"/>
+        <property key="input-libraries" value="libm"/>
+        <property key="keep-generated-startup.as" value="false"/>
+        <property key="link-in-c-library" value="true"/>
+        <property key="link-in-c-library-gcc" value=""/>
+        <property key="link-in-peripheral-library" value="false"/>
+        <property key="managed-stack" value="false"/>
+        <property key="opt-xc8-linker-file" value="false"/>
+        <property key="opt-xc8-linker-link_startup" value="false"/>
+        <property key="opt-xc8-linker-serial" value=""/>
+        <property key="program-the-device-with-default-config-words" value="false"/>
+        <property key="remove-unused-sections" value="true"/>
+      </HI-TECH-LINK>
+      <PK5Tool>
+        <property key="AutoSelectMemRanges" value="auto"/>
+        <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
+        <property key="ToolFirmwareFilePath"
+                  value="Press to browse for a specific firmware version"/>
+        <property key="ToolFirmwareOption.UpdateOptions"
+                  value="ToolFirmwareOption.UseLatest"/>
+        <property key="ToolFirmwareToolPack"
+                  value="Press to select which tool pack to use"/>
+        <property key="communication.activationmode" value="nohv"/>
+        <property key="communication.interface" value="updi"/>
+        <property key="communication.interface.jtag" value="2wire"/>
+        <property key="communication.speed" value="0,500"/>
+        <property key="debugoptions.debug-startup" value="Use system settings"/>
+        <property key="debugoptions.reset-behaviour" value="Use system settings"/>
+        <property key="debugoptions.useswbreakpoints" value="true"/>
+        <property key="event.recorder.debugger.behavior" value="Running"/>
+        <property key="event.recorder.enabled" value="false"/>
+        <property key="event.recorder.scvd.files" value=""/>
+        <property key="hwtoolclock.frcindebug" value="false"/>
+        <property key="lastid" value=""/>
+        <property key="memories.aux" value="false"/>
+        <property key="memories.bootflash" value="true"/>
+        <property key="memories.configurationmemory" value="true"/>
+        <property key="memories.configurationmemory2" value="true"/>
+        <property key="memories.dataflash" value="true"/>
+        <property key="memories.eeprom" value="true"/>
+        <property key="memories.exclude.configurationmemory" value="true"/>
+        <property key="memories.flashdata" value="true"/>
+        <property key="memories.id" value="true"/>
+        <property key="memories.instruction.ram.ranges"
+                  value="${memories.instruction.ram.ranges}"/>
+        <property key="memories.programmemory" value="true"/>
+        <property key="memories.programmemory.ranges" value="0-3fff"/>
+        <property key="poweroptions.powerenable" value="false"/>
+        <property key="programmerToGoFilePath"
+                  value="C:/Users/eniro/MPLABXProjects/RS232_MUX.X/debug/default/RS232_MUX_ptg"/>
+        <property key="programmerToGoImageName" value="RS232_MUX_ptg"/>
+        <property key="programoptions.donoteraseauxmem" value="false"/>
+        <property key="programoptions.eraseb4program" value="true"/>
+        <property key="programoptions.ledbrightness" value="5"/>
+        <property key="programoptions.pgcconfig" value="pull down"/>
+        <property key="programoptions.pgcresistor.value" value="4.7"/>
+        <property key="programoptions.pgdconfig" value="pull down"/>
+        <property key="programoptions.pgdresistor.value" value="4.7"/>
+        <property key="programoptions.pgmentry.voltage" value="low"/>
+        <property key="programoptions.pgmspeed" value="Med"/>
+        <property key="programoptions.preservedataflash" value="false"/>
+        <property key="programoptions.preserveeeprom" value="false"/>
+        <property key="programoptions.preserveeeprom.ranges" value="1400-15ff"/>
+        <property key="programoptions.preserveprogram.ranges" value=""/>
+        <property key="programoptions.preserveprogramrange" value="false"/>
+        <property key="programoptions.preserveuserid" value="false"/>
+        <property key="programoptions.program.otpconfig" value="false"/>
+        <property key="programoptions.programcalmem" value="false"/>
+        <property key="programoptions.programuserotp" value="false"/>
+        <property key="programoptions.smart.program" value="When debugging only"/>
+        <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>
+        <property key="ptgProgramImage" value="true"/>
+        <property key="ptgSendImage" value="true"/>
+        <property key="toolpack.updateoptions"
+                  value="toolpack.updateoptions.uselatestoolpack"/>
+        <property key="toolpack.updateoptions.packversion"
+                  value="Press to select which tool pack to use"/>
+        <property key="voltagevalue" value="5.0"/>
+      </PK5Tool>
+      <Tool>
+        <property key="AutoSelectMemRanges" value="auto"/>
+        <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
+        <property key="ToolFirmwareFilePath"
+                  value="Press to browse for a specific firmware version"/>
+        <property key="ToolFirmwareOption.UpdateOptions"
+                  value="ToolFirmwareOption.UseLatest"/>
+        <property key="ToolFirmwareToolPack"
+                  value="Press to select which tool pack to use"/>
+        <property key="communication.activationmode" value="nohv"/>
+        <property key="communication.interface" value="updi"/>
+        <property key="communication.interface.jtag" value="2wire"/>
+        <property key="communication.speed" value="0,500"/>
+        <property key="debugoptions.debug-startup" value="Use system settings"/>
+        <property key="debugoptions.reset-behaviour" value="Use system settings"/>
+        <property key="debugoptions.useswbreakpoints" value="false"/>
+        <property key="event.recorder.debugger.behavior" value="Running"/>
+        <property key="event.recorder.enabled" value="false"/>
+        <property key="event.recorder.scvd.files" value=""/>
+        <property key="hwtoolclock.frcindebug" value="false"/>
+        <property key="lastid" value=""/>
+        <property key="memories.aux" value="false"/>
+        <property key="memories.bootflash" value="true"/>
+        <property key="memories.configurationmemory" value="true"/>
+        <property key="memories.configurationmemory2" value="true"/>
+        <property key="memories.dataflash" value="true"/>
+        <property key="memories.eeprom" value="true"/>
+        <property key="memories.exclude.configurationmemory" value="true"/>
+        <property key="memories.flashdata" value="true"/>
+        <property key="memories.id" value="true"/>
+        <property key="memories.instruction.ram.ranges"
+                  value="${memories.instruction.ram.ranges}"/>
+        <property key="memories.programmemory" value="true"/>
+        <property key="memories.programmemory.ranges" value="0-3fff"/>
+        <property key="poweroptions.powerenable" value="false"/>
+        <property key="programmerToGoFilePath"
+                  value="C:/Users/eniro/MPLABXProjects/RS232_MUX.X/debug/default/RS232_MUX_ptg"/>
+        <property key="programmerToGoImageName" value="RS232_MUX_ptg"/>
+        <property key="programoptions.donoteraseauxmem" value="false"/>
+        <property key="programoptions.eraseb4program" value="true"/>
+        <property key="programoptions.ledbrightness" value="5"/>
+        <property key="programoptions.pgcconfig" value="pull down"/>
+        <property key="programoptions.pgcresistor.value" value="4.7"/>
+        <property key="programoptions.pgdconfig" value="pull down"/>
+        <property key="programoptions.pgdresistor.value" value="4.7"/>
+        <property key="programoptions.pgmentry.voltage" value="low"/>
+        <property key="programoptions.pgmspeed" value="Med"/>
+        <property key="programoptions.preservedataflash" value="false"/>
+        <property key="programoptions.preserveeeprom" value="false"/>
+        <property key="programoptions.preserveeeprom.ranges" value="1400-15ff"/>
+        <property key="programoptions.preserveprogram.ranges" value=""/>
+        <property key="programoptions.preserveprogramrange" value="false"/>
+        <property key="programoptions.preserveuserid" value="false"/>
+        <property key="programoptions.program.otpconfig" value="false"/>
+        <property key="programoptions.programcalmem" value="false"/>
+        <property key="programoptions.programuserotp" value="false"/>
+        <property key="programoptions.smart.program" value="When debugging only"/>
+        <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>
+        <property key="ptgProgramImage" value="true"/>
+        <property key="ptgSendImage" value="true"/>
+        <property key="toolpack.updateoptions"
+                  value="toolpack.updateoptions.uselatestoolpack"/>
+        <property key="toolpack.updateoptions.packversion"
+                  value="Press to select which tool pack to use"/>
+        <property key="voltagevalue" value="5.0"/>
+      </Tool>
+      <XC8-CO>
+        <property key="coverage-enable" value=""/>
+        <property key="stack-guidance" value="false"/>
+      </XC8-CO>
+      <XC8-config-global>
+        <property key="advanced-elf" value="true"/>
+        <property key="constdata-progmem" value="false"/>
+        <property key="gcc-opt-driver-new" value="true"/>
+        <property key="gcc-opt-std" value="-std=c99"/>
+        <property key="gcc-output-file-format" value="dwarf-3"/>
+        <property key="mapped-progmem" value="false"/>
+        <property key="omit-pack-options" value="false"/>
+        <property key="omit-pack-options-new" value="1"/>
+        <property key="output-file-format" value="-mcof,+elf"/>
+        <property key="smart-io-format" value=""/>
+        <property key="stack-size-high" value="auto"/>
+        <property key="stack-size-low" value="auto"/>
+        <property key="stack-size-main" value="auto"/>
+        <property key="stack-type" value="compiled"/>
+        <property key="user-pack-device-support" value=""/>
+        <property key="wpo-lto" value="false"/>
+      </XC8-config-global>
+    </conf>
+  </confs>
+</configurationDescriptor>
diff --git a/Version 1.2/RS232_MUX.X/nbproject/private/configurations.xml b/Version 1.2/RS232_MUX.X/nbproject/private/configurations.xml
new file mode 100644
index 0000000..e39eaac
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/private/configurations.xml	
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configurationDescriptor version="65">
+  <projectmakefile>Makefile</projectmakefile>
+  <defaultConf>0</defaultConf>
+  <confs>
+    <conf name="default" type="2">
+      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>9036:=&lt;rev>0100:=&lt;man>Microchip Technology Incorporated:=&lt;prod>MPLAB PICkit 5:=&lt;sn>020026702RYN001776:=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN>
+      <languageToolchainDir>C:\Program Files\Microchip\xc8\v2.46\bin</languageToolchainDir>
+      <mdbdebugger version="1">
+        <placeholder1>place holder 1</placeholder1>
+        <placeholder2>place holder 2</placeholder2>
+      </mdbdebugger>
+      <runprofile version="6">
+        <args></args>
+        <rundir></rundir>
+        <buildfirst>true</buildfirst>
+        <console-type>0</console-type>
+        <terminal-type>0</terminal-type>
+        <remove-instrumentation>0</remove-instrumentation>
+        <environment>
+        </environment>
+      </runprofile>
+    </conf>
+  </confs>
+</configurationDescriptor>
diff --git a/Version 1.2/RS232_MUX.X/nbproject/private/private.xml b/Version 1.2/RS232_MUX.X/nbproject/private/private.xml
new file mode 100644
index 0000000..41b1d35
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/private/private.xml	
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="1">
+        <file>
+            <url>main.c</url>
+            <bookmark id="1">
+                <name/>
+                <line>120</line>
+                <key/>
+            </bookmark>
+        </file>
+    </editor-bookmarks>
+    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/frame_definitions.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/hardware_config.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/trash_code_unused.txt</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/main.c</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/hardware_timer.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/hardware_TL16C754C.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/hardware_uart.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/parameters.h</file>
+        </group>
+    </open-files>
+</project-private>
diff --git a/Version 1.2/RS232_MUX.X/nbproject/project.xml b/Version 1.2/RS232_MUX.X/nbproject/project.xml
new file mode 100644
index 0000000..fb10da3
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/nbproject/project.xml	
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>com.microchip.mplab.nbide.embedded.makeproject</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/make-project/1">
+            <name>RS232_MUX</name>
+            <creation-uuid>6e316bd3-a53c-40f5-8c8f-4890b26d6f44</creation-uuid>
+            <make-project-type>0</make-project-type>
+            <sourceEncoding>ISO-8859-1</sourceEncoding>
+            <make-dep-projects/>
+            <sourceRootList/>
+            <confList>
+                <confElem>
+                    <name>default</name>
+                    <type>2</type>
+                </confElem>
+            </confList>
+            <formatting>
+                <project-formatting-style>false</project-formatting-style>
+            </formatting>
+        </data>
+    </configuration>
+</project>
diff --git a/Version 1.2/RS232_MUX.X/parameters.h b/Version 1.2/RS232_MUX.X/parameters.h
new file mode 100644
index 0000000..197b1c4
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/parameters.h	
@@ -0,0 +1,70 @@
+/* Microchip Technology Inc. and its subsidiaries.  You may use this software 
+ * and any derivatives exclusively with Microchip products. 
+ * 
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".  NO WARRANTIES, WHETHER 
+ * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED 
+ * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A 
+ * PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION 
+ * WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 
+ *
+ * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+ * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+ * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS 
+ * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE 
+ * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS 
+ * IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF 
+ * ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE 
+ * TERMS. 
+ */
+
+/* 
+ * File: parameters.h
+ * Author: Enzo Niro
+ * Comments: App. parameters
+ * Revision history: 1.0
+ */
+
+// This is a guard condition so that contents of this file are not included
+// more than once.  
+#ifndef PARAMETERS_H
+#define	PARAMETERS_H
+
+#include <xc.h> // include processor files - each processor file is guarded.  
+
+
+
+//////////////////////////////////
+//TL16C Setup
+
+//Set XTal used with the IC
+
+//#define TL16C_8MHZ_CLK
+#define TL16C_16MHZ_CLK
+//#define TL16C_24MHZ_CLK
+
+//////////////////////////////////
+
+//////////////////////////////////
+//AVR32 UART PORT Setup
+
+//Set XTal used with the IC
+
+//#define USE_PORT_1
+#define USE_PORT_2
+//#define USE_PORT_3
+//#define USE_PORT_4
+
+
+//////////////////////////////////
+
+#define MAX_VCOM_PORTS                  4
+
+//How much count we need to send buffer ? (Each count made every TIMEBASE_COUNT in ms)
+#define SERIAL_PORT_TIMEOUT_COUNT       5
+
+#define TIMEBASE_COUNT                  1 //in ms -> Increment counters of ports' timeout
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 1.2/RS232_MUX.X/queuelogs/debugtool.txt b/Version 1.2/RS232_MUX.X/queuelogs/debugtool.txt
new file mode 100644
index 0000000..5123715
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/queuelogs/debugtool.txt	
@@ -0,0 +1,1066 @@
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591546 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591546 XXXX 1719394591546, Thread 34716: XXXX 1719394591546, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591546 XXXX 1719394591546, Thread 34716: XXXX 1719394591546, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591548 XXXX 1719394591548, Thread 34716: XXXX 1719394591548, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591548 XXXX 1719394591548, Thread 34716: XXXX 1719394591548, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591548 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591548 XXXX 1719394591548, Thread 34716: XXXX 1719394591548, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591548 XXXX 1719394591548, Thread 34716: XXXX 1719394591548, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591550 XXXX 1719394591550, Thread 34716: XXXX 1719394591550, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591550 XXXX 1719394591550, Thread 34716: XXXX 1719394591550, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591550 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591550 XXXX 1719394591550, Thread 34716: XXXX 1719394591550, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591550 XXXX 1719394591550, Thread 34716: XXXX 1719394591550, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591552 XXXX 1719394591552, Thread 34716: XXXX 1719394591552, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591552 XXXX 1719394591552, Thread 34716: XXXX 1719394591552, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7f75
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb4
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 64
+34716 1719394591552 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591552 XXXX 1719394591552, Thread 34716: XXXX 1719394591552, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591552 XXXX 1719394591552, Thread 34716: XXXX 1719394591552, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x40 bytes long  
+34716 1719394591567 XXXX 1719394591567, Thread 34716: XXXX 1719394591567, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591567 XXXX 1719394591567, Thread 34716: XXXX 1719394591567, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591567 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591567 XXXX 1719394591567, Thread 34716: XXXX 1719394591567, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591567 XXXX 1719394591567, Thread 34716: XXXX 1719394591567, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591569 XXXX 1719394591569, Thread 34716: XXXX 1719394591569, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591569 XXXX 1719394591569, Thread 34716: XXXX 1719394591569, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591569 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591569 XXXX 1719394591569, Thread 34716: XXXX 1719394591569, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591569 XXXX 1719394591569, Thread 34716: XXXX 1719394591569, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591570 XXXX 1719394591570, Thread 34716: XXXX 1719394591570, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591570 XXXX 1719394591570, Thread 34716: XXXX 1719394591570, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591570 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591570 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591570 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591570 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591571 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591571 XXXX 1719394591571, Thread 34716: XXXX 1719394591571, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591571 XXXX 1719394591571, Thread 34716: XXXX 1719394591571, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591572 XXXX 1719394591572, Thread 34716: XXXX 1719394591572, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591572 XXXX 1719394591572, Thread 34716: XXXX 1719394591572, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591572 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591572 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591572 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591572 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591573 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591573 XXXX 1719394591573, Thread 34716: XXXX 1719394591573, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591573 XXXX 1719394591573, Thread 34716: XXXX 1719394591573, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591580 XXXX 1719394591580, Thread 34716: XXXX 1719394591580, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591580 XXXX 1719394591580, Thread 34716: XXXX 1719394591580, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7eb5
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7ef4
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 64
+34716 1719394591580 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591580 XXXX 1719394591580, Thread 34716: XXXX 1719394591580, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591581 XXXX 1719394591581, Thread 34716: XXXX 1719394591581, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x40 bytes long  
+34716 1719394591594 XXXX 1719394591594, Thread 34716: XXXX 1719394591594, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591594 XXXX 1719394591594, Thread 34716: XXXX 1719394591594, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591594 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591594 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591594 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591594 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591595 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591595 XXXX 1719394591595, Thread 34716: XXXX 1719394591595, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591595 XXXX 1719394591595, Thread 34716: XXXX 1719394591595, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591596 XXXX 1719394591596, Thread 34716: XXXX 1719394591596, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591596 XXXX 1719394591596, Thread 34716: XXXX 1719394591596, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591596 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591596 XXXX 1719394591596, Thread 34716: XXXX 1719394591596, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591596 XXXX 1719394591596, Thread 34716: XXXX 1719394591596, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591598 XXXX 1719394591598, Thread 34716: XXXX 1719394591598, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591598 XXXX 1719394591598, Thread 34716: XXXX 1719394591598, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591598 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591598 XXXX 1719394591598, Thread 34716: XXXX 1719394591598, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591598 XXXX 1719394591598, Thread 34716: XXXX 1719394591598, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591600 XXXX 1719394591600, Thread 34716: XXXX 1719394591600, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591600 XXXX 1719394591600, Thread 34716: XXXX 1719394591600, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591600 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591600 XXXX 1719394591600, Thread 34716: XXXX 1719394591600, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591600 XXXX 1719394591600, Thread 34716: XXXX 1719394591600, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591602 XXXX 1719394591602, Thread 34716: XXXX 1719394591602, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591602 XXXX 1719394591602, Thread 34716: XXXX 1719394591602, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 6
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 6
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+34716 1719394591602 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591603 XXXX 1719394591603, Thread 34716: XXXX 1719394591603, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591603 XXXX 1719394591603, Thread 34716: XXXX 1719394591603, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+34716 1719394591604 XXXX 1719394591604, Thread 34716: XXXX 1719394591604, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591604 XXXX 1719394591604, Thread 34716: XXXX 1719394591604, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591604 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591604 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591604 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591604 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591605 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591605 XXXX 1719394591605, Thread 34716: XXXX 1719394591605, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591605 XXXX 1719394591605, Thread 34716: XXXX 1719394591605, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591606 XXXX 1719394591606, Thread 34716: XXXX 1719394591606, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591606 XXXX 1719394591606, Thread 34716: XXXX 1719394591606, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591606 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591607 XXXX 1719394591607, Thread 34716: XXXX 1719394591607, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591607 XXXX 1719394591607, Thread 34716: XXXX 1719394591607, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591608 XXXX 1719394591608, Thread 34716: XXXX 1719394591608, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591608 XXXX 1719394591608, Thread 34716: XXXX 1719394591608, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591608 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591608 XXXX 1719394591608, Thread 34716: XXXX 1719394591608, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591608 XXXX 1719394591608, Thread 34716: XXXX 1719394591608, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591610 XXXX 1719394591610, Thread 34716: XXXX 1719394591610, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591610 XXXX 1719394591610, Thread 34716: XXXX 1719394591610, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591610 XXXX 1719394591610, Thread 34716: XXXX 1719394591610, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591610 XXXX 1719394591610, Thread 34716: XXXX 1719394591610, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591612 XXXX 1719394591612, Thread 34716: XXXX 1719394591612, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591612 XXXX 1719394591612, Thread 34716: XXXX 1719394591612, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 10
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 11
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591613 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591613 XXXX 1719394591613, Thread 34716: XXXX 1719394591613, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591613 XXXX 1719394591613, Thread 34716: XXXX 1719394591613, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591614 XXXX 1719394591614, Thread 34716: XXXX 1719394591614, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591614 XXXX 1719394591614, Thread 34716: XXXX 1719394591614, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591614 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591614 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591614 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591614 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591615 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591615 XXXX 1719394591615, Thread 34716: XXXX 1719394591615, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591615 XXXX 1719394591615, Thread 34716: XXXX 1719394591615, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591616 XXXX 1719394591616, Thread 34716: XXXX 1719394591616, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591616 XXXX 1719394591616, Thread 34716: XXXX 1719394591616, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591616 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591616 XXXX 1719394591616, Thread 34716: XXXX 1719394591616, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591616 XXXX 1719394591616, Thread 34716: XXXX 1719394591616, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591618 XXXX 1719394591618, Thread 34716: XXXX 1719394591618, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591618 XXXX 1719394591618, Thread 34716: XXXX 1719394591618, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591618 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591618 XXXX 1719394591618, Thread 34716: XXXX 1719394591618, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591618 XXXX 1719394591618, Thread 34716: XXXX 1719394591618, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591620 XXXX 1719394591620, Thread 34716: XXXX 1719394591620, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591620 XXXX 1719394591620, Thread 34716: XXXX 1719394591620, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591620 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591620 XXXX 1719394591620, Thread 34716: XXXX 1719394591620, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591620 XXXX 1719394591620, Thread 34716: XXXX 1719394591620, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591622 XXXX 1719394591622, Thread 34716: XXXX 1719394591622, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591622 XXXX 1719394591622, Thread 34716: XXXX 1719394591622, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591622 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591622 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591622 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591622 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7eb0
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7eb0
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+34716 1719394591623 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591623 XXXX 1719394591623, Thread 34716: XXXX 1719394591623, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591623 XXXX 1719394591623, Thread 34716: XXXX 1719394591623, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+34716 1719394591624 XXXX 1719394591624, Thread 34716: XXXX 1719394591624, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591624 XXXX 1719394591624, Thread 34716: XXXX 1719394591624, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591624 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591624 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591624 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591624 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591625 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591625 XXXX 1719394591625, Thread 34716: XXXX 1719394591625, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591625 XXXX 1719394591625, Thread 34716: XXXX 1719394591625, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591626 XXXX 1719394591626, Thread 34716: XXXX 1719394591626, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591626 XXXX 1719394591626, Thread 34716: XXXX 1719394591626, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591626 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591626 XXXX 1719394591626, Thread 34716: XXXX 1719394591626, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591626 XXXX 1719394591626, Thread 34716: XXXX 1719394591626, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591628 XXXX 1719394591628, Thread 34716: XXXX 1719394591628, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591628 XXXX 1719394591628, Thread 34716: XXXX 1719394591628, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591628 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591628 XXXX 1719394591628, Thread 34716: XXXX 1719394591628, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591628 XXXX 1719394591628, Thread 34716: XXXX 1719394591628, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591630 XXXX 1719394591630, Thread 34716: XXXX 1719394591630, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591630 XXXX 1719394591630, Thread 34716: XXXX 1719394591630, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1c
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 1d
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591630 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591630 XXXX 1719394591630, Thread 34716: XXXX 1719394591630, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591630 XXXX 1719394591630, Thread 34716: XXXX 1719394591630, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591632 XXXX 1719394591632, Thread 34716: XXXX 1719394591632, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591632 XXXX 1719394591632, Thread 34716: XXXX 1719394591632, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34716 1719394591632 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 NMMR
+34716 1719394591633 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 8
+34716 1719394591633 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 9
+34716 1719394591633 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 2
+34716 1719394591633 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34716 1719394591633 XXXX 1719394591633, Thread 34716: XXXX 1719394591633, Entering Thread 34716: Commands::runScriptWithUpload, script name = ReadMem8  
+34716 1719394591633 XXXX 1719394591633, Thread 34716: XXXX 1719394591633, Entering Thread 34716: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x2 bytes long  
+34716 1719394591634 XXXX 1719394591634, Thread 34716: XXXX 1719394591634, Exiting Thread 34716: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34716 1719394591634 XXXX 1719394591634, Thread 34716: XXXX 1719394591634, Exiting Thread 34716: Commands::runScriptWithUpload  
+34716 1719394591634 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34716 1719394591634 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34716 1719394591634 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34716 1719394591634 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb5
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb5
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597150 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597150 XXXX 1719394597150, Thread 36227: XXXX 1719394597150, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597150 XXXX 1719394597150, Thread 36227: XXXX 1719394597150, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597152 XXXX 1719394597152, Thread 36227: XXXX 1719394597152, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597152 XXXX 1719394597152, Thread 36227: XXXX 1719394597152, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597152 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597152 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597152 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597152 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb6
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb6
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597154 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597154 XXXX 1719394597154, Thread 36227: XXXX 1719394597154, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597154 XXXX 1719394597154, Thread 36227: XXXX 1719394597154, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597156 XXXX 1719394597156, Thread 36227: XXXX 1719394597156, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597156 XXXX 1719394597156, Thread 36227: XXXX 1719394597156, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597156 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597156 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597156 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597156 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb7
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb7
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597158 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597158 XXXX 1719394597158, Thread 36227: XXXX 1719394597158, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597158 XXXX 1719394597158, Thread 36227: XXXX 1719394597158, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597160 XXXX 1719394597160, Thread 36227: XXXX 1719394597160, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597160 XXXX 1719394597160, Thread 36227: XXXX 1719394597160, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597160 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597160 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597160 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597160 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb8
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb8
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597162 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597162 XXXX 1719394597162, Thread 36227: XXXX 1719394597162, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597162 XXXX 1719394597162, Thread 36227: XXXX 1719394597162, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597164 XXXX 1719394597164, Thread 36227: XXXX 1719394597164, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597164 XXXX 1719394597164, Thread 36227: XXXX 1719394597164, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb9
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fb9
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597166 XXXX 1719394597166, Thread 36227: XXXX 1719394597166, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597166 XXXX 1719394597166, Thread 36227: XXXX 1719394597166, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597168 XXXX 1719394597168, Thread 36227: XXXX 1719394597168, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597168 XXXX 1719394597168, Thread 36227: XXXX 1719394597168, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fba
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fba
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597170 XXXX 1719394597170, Thread 36227: XXXX 1719394597170, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597170 XXXX 1719394597170, Thread 36227: XXXX 1719394597170, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597172 XXXX 1719394597172, Thread 36227: XXXX 1719394597172, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597172 XXXX 1719394597172, Thread 36227: XXXX 1719394597172, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597172 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597172 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597172 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597172 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbb
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbb
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597174 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597174 XXXX 1719394597174, Thread 36227: XXXX 1719394597174, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597174 XXXX 1719394597174, Thread 36227: XXXX 1719394597174, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597176 XXXX 1719394597176, Thread 36227: XXXX 1719394597176, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597176 XXXX 1719394597176, Thread 36227: XXXX 1719394597176, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597176 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597176 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597176 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597176 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbc
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbc
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597177 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597177 XXXX 1719394597177, Thread 36227: XXXX 1719394597177, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597177 XXXX 1719394597177, Thread 36227: XXXX 1719394597177, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597179 XXXX 1719394597179, Thread 36227: XXXX 1719394597179, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597179 XXXX 1719394597179, Thread 36227: XXXX 1719394597179, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597179 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597179 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597179 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597179 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbd
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbd
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597180 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597180 XXXX 1719394597180, Thread 36227: XXXX 1719394597180, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597180 XXXX 1719394597180, Thread 36227: XXXX 1719394597180, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597182 XXXX 1719394597182, Thread 36227: XXXX 1719394597182, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597182 XXXX 1719394597182, Thread 36227: XXXX 1719394597182, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597182 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597182 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597182 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597182 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbe
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbe
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394597184 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394597184 XXXX 1719394597184, Thread 36227: XXXX 1719394597184, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394597184 XXXX 1719394597184, Thread 36227: XXXX 1719394597184, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394597186 XXXX 1719394597186, Thread 36227: XXXX 1719394597186, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394597186 XXXX 1719394597186, Thread 36227: XXXX 1719394597186, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394597186 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394597186 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394597186 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394597186 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbf
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fbf
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600045 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600045 XXXX 1719394600045, Thread 36227: XXXX 1719394600045, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600045 XXXX 1719394600045, Thread 36227: XXXX 1719394600045, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600046 XXXX 1719394600046, Thread 36227: XXXX 1719394600046, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600046 XXXX 1719394600046, Thread 36227: XXXX 1719394600046, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600046 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600046 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600046 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600046 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc0
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc0
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600048 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600048 XXXX 1719394600048, Thread 36227: XXXX 1719394600048, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600048 XXXX 1719394600048, Thread 36227: XXXX 1719394600048, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600050 XXXX 1719394600050, Thread 36227: XXXX 1719394600050, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600050 XXXX 1719394600050, Thread 36227: XXXX 1719394600050, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600050 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600050 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600050 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600050 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc1
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc1
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600052 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600052 XXXX 1719394600052, Thread 36227: XXXX 1719394600052, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600052 XXXX 1719394600052, Thread 36227: XXXX 1719394600052, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600053 XXXX 1719394600053, Thread 36227: XXXX 1719394600053, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600053 XXXX 1719394600053, Thread 36227: XXXX 1719394600053, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600053 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600053 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600053 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600053 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc2
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc2
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+34712 1719394600161 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34712 1719394600162 XXXX 1719394600162, Thread 34712: XXXX 1719394600162, Entering Thread 34712: Commands::runScriptWithUpload, script name = ReadMem8  
+34712 1719394600162 XXXX 1719394600162, Thread 34712: XXXX 1719394600162, Entering Thread 34712: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+34712 1719394600164 XXXX 1719394600164, Thread 34712: XXXX 1719394600164, Exiting Thread 34712: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34712 1719394600164 XXXX 1719394600164, Thread 34712: XXXX 1719394600164, Exiting Thread 34712: Commands::runScriptWithUpload  
+34712 1719394600164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34712 1719394600164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34712 1719394600164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34712 1719394600164 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc3
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc3
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+34712 1719394600166 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34712 1719394600166 XXXX 1719394600166, Thread 34712: XXXX 1719394600166, Entering Thread 34712: Commands::runScriptWithUpload, script name = ReadMem8  
+34712 1719394600166 XXXX 1719394600166, Thread 34712: XXXX 1719394600166, Entering Thread 34712: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+34712 1719394600168 XXXX 1719394600168, Thread 34712: XXXX 1719394600168, Exiting Thread 34712: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34712 1719394600168 XXXX 1719394600168, Thread 34712: XXXX 1719394600168, Exiting Thread 34712: Commands::runScriptWithUpload  
+34712 1719394600168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34712 1719394600168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34712 1719394600168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34712 1719394600168 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc4
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc4
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+34712 1719394600170 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+34712 1719394600170 XXXX 1719394600170, Thread 34712: XXXX 1719394600170, Entering Thread 34712: Commands::runScriptWithUpload, script name = ReadMem8  
+34712 1719394600170 XXXX 1719394600170, Thread 34712: XXXX 1719394600170, Entering Thread 34712: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+34712 1719394600171 XXXX 1719394600171, Thread 34712: XXXX 1719394600171, Exiting Thread 34712: ToolCommUsb::readTransfer,  cr.status = 0x0  
+34712 1719394600171 XXXX 1719394600171, Thread 34712: XXXX 1719394600171, Exiting Thread 34712: Commands::runScriptWithUpload  
+34712 1719394600171 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+34712 1719394600171 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+34712 1719394600171 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+34712 1719394600171 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc5
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc5
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600232 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600232 XXXX 1719394600232, Thread 36227: XXXX 1719394600232, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600232 XXXX 1719394600232, Thread 36227: XXXX 1719394600232, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600234 XXXX 1719394600234, Thread 36227: XXXX 1719394600234, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600234 XXXX 1719394600234, Thread 36227: XXXX 1719394600234, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600234 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600234 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600234 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600234 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc6
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc6
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600236 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600236 XXXX 1719394600236, Thread 36227: XXXX 1719394600236, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600236 XXXX 1719394600236, Thread 36227: XXXX 1719394600236, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600238 XXXX 1719394600238, Thread 36227: XXXX 1719394600238, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600238 XXXX 1719394600238, Thread 36227: XXXX 1719394600238, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600238 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600238 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600238 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600238 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc7
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc7
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600241 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600241 XXXX 1719394600241, Thread 36227: XXXX 1719394600241, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600241 XXXX 1719394600241, Thread 36227: XXXX 1719394600241, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600243 XXXX 1719394600243, Thread 36227: XXXX 1719394600243, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600243 XXXX 1719394600243, Thread 36227: XXXX 1719394600243, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600243 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600243 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600243 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600243 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc8
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc8
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600876 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600876 XXXX 1719394600876, Thread 36227: XXXX 1719394600876, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600876 XXXX 1719394600876, Thread 36227: XXXX 1719394600876, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600878 XXXX 1719394600878, Thread 36227: XXXX 1719394600878, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600878 XXXX 1719394600878, Thread 36227: XXXX 1719394600878, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600879 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600879 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600879 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600879 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc9
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fc9
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600883 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600883 XXXX 1719394600883, Thread 36227: XXXX 1719394600883, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600883 XXXX 1719394600883, Thread 36227: XXXX 1719394600883, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600885 XXXX 1719394600885, Thread 36227: XXXX 1719394600885, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600885 XXXX 1719394600885, Thread 36227: XXXX 1719394600885, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600885 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600885 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600885 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600885 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fca
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fca
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394600890 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394600890 XXXX 1719394600890, Thread 36227: XXXX 1719394600890, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394600890 XXXX 1719394600890, Thread 36227: XXXX 1719394600890, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394600892 XXXX 1719394600892, Thread 36227: XXXX 1719394600892, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394600892 XXXX 1719394600892, Thread 36227: XXXX 1719394600892, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394600892 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394600892 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394600892 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394600892 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcb
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcb
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394601251 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394601251 XXXX 1719394601251, Thread 36227: XXXX 1719394601251, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394601251 XXXX 1719394601251, Thread 36227: XXXX 1719394601251, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394601253 XXXX 1719394601253, Thread 36227: XXXX 1719394601253, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394601253 XXXX 1719394601253, Thread 36227: XXXX 1719394601253, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394601253 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394601253 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394601253 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394601253 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcc
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcc
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394601256 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394601256 XXXX 1719394601256, Thread 36227: XXXX 1719394601256, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394601256 XXXX 1719394601256, Thread 36227: XXXX 1719394601256, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394601258 XXXX 1719394601258, Thread 36227: XXXX 1719394601258, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394601258 XXXX 1719394601258, Thread 36227: XXXX 1719394601258, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394601258 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394601258 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394601258 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394601258 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcd
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcd
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394601260 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394601260 XXXX 1719394601260, Thread 36227: XXXX 1719394601260, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394601260 XXXX 1719394601260, Thread 36227: XXXX 1719394601260, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394601262 XXXX 1719394601262, Thread 36227: XXXX 1719394601262, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394601262 XXXX 1719394601262, Thread 36227: XXXX 1719394601262, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394601262 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394601262 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394601262 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394601262 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fce
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fce
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604610 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604610 XXXX 1719394604610, Thread 36227: XXXX 1719394604610, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604610 XXXX 1719394604610, Thread 36227: XXXX 1719394604610, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604612 XXXX 1719394604612, Thread 36227: XXXX 1719394604612, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604612 XXXX 1719394604612, Thread 36227: XXXX 1719394604612, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604612 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604661 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604661 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604661 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604661 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcf
+36227 1719394604662 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fcf
+36227 1719394604662 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604662 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604662 XXXX 1719394604662, Thread 36227: XXXX 1719394604662, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604662 XXXX 1719394604662, Thread 36227: XXXX 1719394604662, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604663 XXXX 1719394604663, Thread 36227: XXXX 1719394604663, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604663 XXXX 1719394604663, Thread 36227: XXXX 1719394604663, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604663 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604663 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604663 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604663 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd0
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd0
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604693 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604693 XXXX 1719394604693, Thread 36227: XXXX 1719394604693, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604693 XXXX 1719394604693, Thread 36227: XXXX 1719394604693, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604695 XXXX 1719394604695, Thread 36227: XXXX 1719394604695, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604695 XXXX 1719394604695, Thread 36227: XXXX 1719394604695, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604695 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604695 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604695 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604695 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd1
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd1
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604729 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604729 XXXX 1719394604729, Thread 36227: XXXX 1719394604729, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604729 XXXX 1719394604729, Thread 36227: XXXX 1719394604729, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604730 XXXX 1719394604730, Thread 36227: XXXX 1719394604730, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604730 XXXX 1719394604730, Thread 36227: XXXX 1719394604730, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604730 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604730 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604730 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604730 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd2
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd2
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604763 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604763 XXXX 1719394604763, Thread 36227: XXXX 1719394604763, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604763 XXXX 1719394604763, Thread 36227: XXXX 1719394604763, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604765 XXXX 1719394604765, Thread 36227: XXXX 1719394604765, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604765 XXXX 1719394604765, Thread 36227: XXXX 1719394604765, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604765 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604765 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604765 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604765 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd3
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd3
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604797 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604797 XXXX 1719394604797, Thread 36227: XXXX 1719394604797, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604797 XXXX 1719394604797, Thread 36227: XXXX 1719394604797, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604799 XXXX 1719394604799, Thread 36227: XXXX 1719394604799, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604799 XXXX 1719394604799, Thread 36227: XXXX 1719394604799, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604799 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604799 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604799 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604799 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd4
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd4
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604832 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604832 XXXX 1719394604832, Thread 36227: XXXX 1719394604832, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604832 XXXX 1719394604832, Thread 36227: XXXX 1719394604832, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604833 XXXX 1719394604833, Thread 36227: XXXX 1719394604833, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604833 XXXX 1719394604833, Thread 36227: XXXX 1719394604833, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604833 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604833 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604833 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604833 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd5
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd5
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604864 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604864 XXXX 1719394604864, Thread 36227: XXXX 1719394604864, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604864 XXXX 1719394604864, Thread 36227: XXXX 1719394604864, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604866 XXXX 1719394604866, Thread 36227: XXXX 1719394604866, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604866 XXXX 1719394604866, Thread 36227: XXXX 1719394604866, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604866 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604866 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604866 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604866 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd6
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd6
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604904 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604904 XXXX 1719394604904, Thread 36227: XXXX 1719394604904, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604904 XXXX 1719394604904, Thread 36227: XXXX 1719394604904, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604907 XXXX 1719394604907, Thread 36227: XXXX 1719394604907, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604907 XXXX 1719394604907, Thread 36227: XXXX 1719394604907, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604907 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604907 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604907 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604907 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd7
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd7
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604942 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604942 XXXX 1719394604942, Thread 36227: XXXX 1719394604942, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604942 XXXX 1719394604942, Thread 36227: XXXX 1719394604942, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604944 XXXX 1719394604944, Thread 36227: XXXX 1719394604944, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604944 XXXX 1719394604944, Thread 36227: XXXX 1719394604944, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604944 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604944 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604944 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604944 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:DebugReadTargetMemory
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 FileRegs
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd8
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 7fd8
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Length = 1
+36227 1719394604982 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+36227 1719394604982 XXXX 1719394604982, Thread 36227: XXXX 1719394604982, Entering Thread 36227: Commands::runScriptWithUpload, script name = ReadMem8  
+36227 1719394604982 XXXX 1719394604982, Thread 36227: XXXX 1719394604982, Entering Thread 36227: ToolCommUsb::readTransfer, sideData is 0x23 bytes long, transferDataLength is 0x1 bytes long  
+36227 1719394604984 XXXX 1719394604984, Thread 36227: XXXX 1719394604984, Exiting Thread 36227: ToolCommUsb::readTransfer,  cr.status = 0x0  
+36227 1719394604984 XXXX 1719394604984, Thread 36227: XXXX 1719394604984, Exiting Thread 36227: Commands::runScriptWithUpload  
+36227 1719394604984 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Post:DebugReadTargetMemory
+36227 1719394604984 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return Value
+36227 1719394604984 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 true
+36227 1719394604984 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Return End
+201 1719399232896 GEN4_CONNECT_DIAGNOSTICS:Calling Update on plug and play observer com.microchip.mplab.mdbcore.RI4Tool.RI4ToolBase$RI4PlugNPlayObserver@2011c384
+201 1719399232896 GEN4_CONNECT_DIAGNOSTICS:Entering plug and play Update(). Attached PID = 9036
+201 1719399232896 GEN4_CONNECT_DIAGNOSTICS:Entering MPLABCommEvent handler
+201 1719399232897 GEN4_CONNECT_DIAGNOSTICS:MPLABCommEvent.pid = 9036
+201 1719399232897 GEN4_CONNECT_DIAGNOSTICS:eventType = MPLABCOMM_TOOL_UNPLUGGED
+201 1719399232897 GEN4_CONNECT_DIAGNOSTICS:Exiting plug and play Update()
+38429 1719399233899 GEN4_CONNECT_DIAGNOSTICS:MPLABCommTool is null
+
+38429 1719399233899 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:EndDebugSession
+38429 1719399233899 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+38429 1719399233899 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 null
+38429 1719399233899 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+38429 1719399233899 XXXX 1719399233899, Thread 38429: XXXX 1719399233899, Entering Thread 38429: Commands::runScriptBasic, script name = ExitDebugMode, timeOut = -1 ms  
+38429 1719399234062 XXXX 1719399234062, Thread 38429: com.Send returned false 
+38429 1719399234063 XXXX 1719399234063, Thread 38429: transfer: exception after writeHeaderAndGetResult null 
+38429 1719399234083 XXXX 1719399234083, Thread 38429: XXXX 1719399234083, Entering Thread 38429: ToolCommUsb::recoverFromProtocolError, type = NO_SCRIPT  
+38429 1719399234083 XXXX 1719399234083, Thread 38429: Send Abort Script Engine Command 
+38429 1719399234083 XXXX 1719399234083, Thread 38429: XXXX 1719399234083, Entering Thread 38429: ToolCommUsb::killScriptEngine  
+38429 1719399234087 XXXX 1719399234087, Thread 38429: com.Send returned false 
+38429 1719399234087 XXXX 1719399234087, Thread 38429: Failed sending Abort Script Engine Command. Set nuclear option = true 
+38429 1719399234087 XXXX 1719399234087, Thread 38429: About to nuke 
+38429 1719399234087 XXXX 1719399234087, Thread 38429: XXXX 1719399234087, Entering Thread 38429: ToolCommUsb::nuclearOption  
+38429 1719399234091 XXXX 1719399234091, Thread 38429: com.Send returned false 
diff --git a/Version 1.2/RS232_MUX.X/trash_code_unused.txt b/Version 1.2/RS232_MUX.X/trash_code_unused.txt
new file mode 100644
index 0000000..be79f2a
--- /dev/null
+++ b/Version 1.2/RS232_MUX.X/trash_code_unused.txt	
@@ -0,0 +1,305 @@
+Section to put temporary code that we use in a close future....
+
+
+//////////////////////////////////////////////////////////////////////////
+//Start of code
+
+
+
+
+    ////////////////////////////////////////////////////////////
+    //Local variables
+    
+    const char *boot_msg = BOOT_MSG;
+    
+    cfgPort cfgVCOM1, cfgVCOM2, cfgVCOM3, cfgVCOM4;
+    uint8_t ledsCfg;
+    
+    
+    
+    //Output buffer
+    uint8_t MCOMBuf[256], VCOM1Buf[256], VCOM2Buf[256], VCOM3Buf[256], VCOM4Buf[256];
+    //Output buffer index 
+    uint8_t MCOMIndex = 0, VCOM1Index = 0, VCOM2Index = 0, VCOM3Index = 0, VCOM4Index = 0;
+    //local timer counter for local process (blink led, ect...)
+    uint32_t timerCnt = 0;
+    //local timer for counting how many cycles passed since we've got activity on serial port ?
+    uint32_t serialTimer = 0;
+    
+    //Counter to make a timeout if all data has passed
+    uint16_t MCOM_counter = 0;
+    uint16_t VCOM1_counter = 0;
+    uint16_t VCOM2_counter = 0;
+    uint16_t VCOM3_counter = 0;
+    uint16_t VCOM4_counter = 0;
+    
+    
+    for(int i = 0; i < 256; i++)
+    {
+        MCOMBuf[i] = 0;
+        VCOM1Buf[i] = 0;
+        VCOM2Buf[i] = 0;
+        VCOM3Buf[i] = 0;
+        VCOM4Buf[i] = 0;
+    }
+    
+   
+    PORTD.DIR = 0x01; // DEBUG LED
+    //PORTMUX.USARTROUTEA = _USART0_REG_WR; //set TX and RX on PD4 and PD5 pins
+    _PROTECTED_WRITE(CLKCTRL.OSCHFCTRLA, _FREQSEL_REG_WR); //switch to 24 MHz
+    
+    ///////////////////////////////////////////
+    //Prepare VCOM configuration
+    
+    //At first read EEPROM !
+    getEEPROMCfg(); //Get serial port configuration
+    ledsCfg = getDebugLedsConfiguration(); //get debug leds configuration
+    
+    //And then, read configuration for each port...
+    
+    readConfiguration(&cfgVCOM1, 0);
+    readConfiguration(&cfgVCOM2, 1);
+    readConfiguration(&cfgVCOM3, 2);
+    readConfiguration(&cfgVCOM4, 3);
+    
+    ///////////////////////////////////////////
+    //Interrupt & serial port setup
+    
+    //Set port with debug leds
+    
+    initPort1(UART_BAUD_VALUE, (ledsCfg & 0x1), F8BIT_MODE, ONE_STOPBIT, EVEN_PARITY);
+    
+    //initPort0(UART_BAUD_VALUE, (ledsCfg & 0x1), F8BIT_MODE, ONE_STOPBIT, EVEN_PARITY); //init master port with debug leds
+    //initPort1(cfgVCOM1.baud, (ledsCfg & 0x2) >> 1, cfgVCOM1.dataByte, cfgVCOM1.stopBit, cfgVCOM1.parity); //init vcom1 port with debug leds
+    //initPort2(cfgVCOM2.baud, (ledsCfg & 0x4) >> 2, cfgVCOM2.dataByte, cfgVCOM2.stopBit, cfgVCOM2.parity); //init vcom2 port with debug leds
+    //initPort3(cfgVCOM3.baud, (ledsCfg & 0x8) >> 3, cfgVCOM3.dataByte, cfgVCOM3.stopBit, cfgVCOM3.parity); //init vcom3 port with debug leds
+    //initPort4(cfgVCOM4.baud, (ledsCfg & 0x16) >> 4, cfgVCOM4.dataByte, cfgVCOM4.stopBit, cfgVCOM4.parity); //init vcom4 port  with debug leds     
+    //Timer init
+    //Setup for interrupt every 25ms
+    timerInterruptInit(0x2EE0);
+    
+    sei(); //never forget to enable global interrupt mask !
+    
+    ///////////////////////////////////////////
+    
+    //Debug led on boot sequence
+    WATCHDOG_RESET; //reset WD counter
+    bootSequence(); //Launch leds sequence
+    
+    
+    for(uint8_t i = 0; i < 11; i++)
+    {
+        txWrite0(boot_msg[i]);
+    }
+    
+    while(1)
+    {
+        WATCHDOG_RESET; //Always call this to prevent undesired boot...
+        
+        
+        ///////////////////////////////////////////////////////////////
+        //Master Port buffer read
+        
+        if(portAvailable0() > 0)
+        {
+            MCOMBuf[MCOMIndex] = rxRead0(); //store byte into buffer
+            MCOMIndex++; //increment to next byte
+            global_n = MCOMIndex;
+            MCOM_counter = 0; //refresh timeout counter
+        }
+
+            
+        
+        
+        ///////////////////////////////////////////////////////////////
+        //Virtual Port 1 buffer read
+        
+        if(portAvailable1() > 0) //check if we have bytes to read
+        {
+            VCOM1Buf[VCOM1Index] = rxRead1(); //store byte into buffer
+            VCOM1Index++; //increment to next byte
+            VCOM1_counter = 0; //refresh timeout counter
+        }
+
+        
+        
+        ///////////////////////////////////////////////////////////////
+        //Virtual Port 2 buffer read
+       
+        if(portAvailable2() > 0) //check if we have bytes to read
+        {
+            VCOM2Buf[VCOM2Index] = rxRead2(); //store byte into buffer
+            VCOM2Index++; //increment to next byte
+            VCOM2_counter = 0; //refresh timeout counter
+        }
+
+        
+        
+        ///////////////////////////////////////////////////////////////
+        //Virtual Port 3 buffer read
+
+        if(portAvailable3() > 0) //check if we have bytes to read
+        {
+            VCOM3Buf[VCOM3Index] = rxRead3(); //store byte into buffer
+            VCOM3Index++; //increment to next byte
+            VCOM3_counter = 0; //refresh timeout counter
+        }
+
+        
+        
+        
+        ///////////////////////////////////////////////////////////////
+        //Virtual Port 4 buffer read
+
+        if(portAvailable4() > 0) //check if we have bytes to read
+        {
+            VCOM4Buf[VCOM4Index] = rxRead4(); //store byte into buffer
+            VCOM4Index++; //increment to next byte
+            VCOM4_counter = 0; //refresh timeout counter
+        }
+        
+        ////////////////////////////////////////////////////////////////////////
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready
+        if(MCOM_counter > SERIAL_PORT_TIMEOUT_COUNT)
+        {         
+            //Send buffer to VCOM
+            MCOM_sendframe(MCOMBuf, MCOMIndex);
+            
+            //Clear the buffer
+            for(uint8_t i = 0; i < MCOMIndex; i++)
+            {
+                MCOMBuf[i] = 0;
+            }
+            MCOMIndex = 0; //reset index buffer
+            MCOM_counter = 0; //reset counter
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready
+        if(VCOM1_counter > SERIAL_PORT_TIMEOUT_COUNT)
+        {
+            //Send buffer to VCOM
+            VCOM_sendframe(VCOM1Buf, VCOM1Index, VCOM1_INDEX);
+            
+            //Clear the buffer
+            for(uint8_t i = 0; i < VCOM1Index; i++)
+            {
+                VCOM1Buf[i] = 0;
+            }
+            VCOM1Index = 0; //reset index buffer
+            VCOM1_counter = 0; //reset counter
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready
+        if(VCOM2_counter > SERIAL_PORT_TIMEOUT_COUNT)
+        {
+            //Send buffer to VCOM
+            VCOM_sendframe(VCOM2Buf, VCOM2Index, VCOM2_INDEX);
+            
+            //Clear the buffer
+            for(uint8_t i = 0; i < VCOM2Index; i++)
+            {
+                VCOM2Buf[i] = 0;
+            }
+            VCOM2Index = 0; //reset index buffer
+            VCOM2_counter = 0; //reset counter
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready
+        if(VCOM3_counter > SERIAL_PORT_TIMEOUT_COUNT)
+        {
+            //Send buffer to VCOM
+            VCOM_sendframe(VCOM3Buf, VCOM3Index, VCOM3_INDEX);
+            
+            //Clear the buffer
+            for(uint8_t i = 0; i < VCOM3Index; i++)
+            {
+                VCOM3Buf[i] = 0;
+            }
+            VCOM3Index = 0; //reset index buffer
+            VCOM3_counter = 0; //reset counter
+        }
+        
+        
+        ///////////////////////////////////////
+        //When buf is ready
+        if(VCOM4_counter > SERIAL_PORT_TIMEOUT_COUNT)
+        {
+            //Send buffer to VCOM
+            VCOM_sendframe(VCOM4Buf, VCOM4Index, VCOM4_INDEX);
+            
+            //Clear the buffer
+            for(uint8_t i = 0; i < VCOM4Index; i++)
+            {
+                VCOM4Buf[i] = 0;
+            }
+            VCOM4Index = 0; //reset index buffer
+            VCOM4_counter = 0; //reset counter
+        }
+        ////////////////////////////////////////////////////////////////////////
+        
+        //NOTE : Not sure that stuff will be useful...
+        //Just in case if bytes does not match, clear counter
+
+        
+        
+        //Refresh led status
+        if(abs(getTimerCounts() - timerCnt) >= 25)
+        {
+            senseDebugLeds(); //display leds status
+            timerCnt = getTimerCounts(); //refresh counter
+        }
+        
+        //count
+        if(abs(getTimerCounts() - serialTimer) >= TIMEBASE_COUNT)
+        {
+            //prevent incrementing counter if no bytes available...
+            
+            //For master port
+            if(MCOMIndex > 0)
+                MCOM_counter++;
+            
+            //For virtual port 1
+            if(VCOM1Index > 0)
+                VCOM1_counter++;
+            
+            //For virtual port 2
+            if(VCOM2Index > 0)
+                VCOM2_counter++;
+            
+            //For virtual port 3
+            if(VCOM3Index > 0)
+                VCOM3_counter++;
+            
+            //For virtual port 4
+            if(VCOM4Index > 0)
+                VCOM4_counter++;
+            
+            
+            if(MCOMIndex >= 255)
+            MCOMIndex = 0;
+        
+            if(VCOM1Index >= 255)
+                VCOM1Index = 0;
+        
+            if(VCOM2Index >= 255)
+                VCOM2Index = 0;
+        
+            if(VCOM3Index >= 255)
+                VCOM3Index = 0;
+        
+            if(VCOM4Index >= 255)
+                VCOM4Index = 0;
+            
+            
+            serialTimer = getTimerCounts(); //refresh counter
+        }
+    }
\ No newline at end of file
