commit c9e951f98d29aaee4a2f760186470722a797c16c
Author: Enzo Niro <enzo.niro@inrae.fr>
Date:   Fri Sep 27 07:36:40 2024 +0200

    Version 0.6 :
    Ajout des ports USART0/1/2/3/4
    -> Peut lire et écrire, retourner le nombre d'octets disponibles par port.
    -> Seul les leds de Debug sont utilisées dans la fonction debugLedsTest() pour le moment
    -> Les fonctions sont disponibles dans hardware_uart.h

diff --git a/Version 0.6/RS232_MUX.X/.generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0 b/Version 0.6/RS232_MUX.X/.generated_files/flags/default/189e35e8b80d1055f943337af00f1a3eb5a3e3f0
new file mode 100644
index 0000000..834c2a7
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/.generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407 b/Version 0.6/RS232_MUX.X/.generated_files/flags/default/c23a79e077f40f861ae8b9b0a728ca7712177407
new file mode 100644
index 0000000..5550768
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709 b/Version 0.6/RS232_MUX.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
new file mode 100644
index 0000000..e69de29
diff --git a/Version 0.6/RS232_MUX.X/Makefile b/Version 0.6/RS232_MUX.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/build/default/production/main.o b/Version 0.6/RS232_MUX.X/build/default/production/main.o
new file mode 100644
index 0000000..0e91d8f
Binary files /dev/null and b/Version 0.6/RS232_MUX.X/build/default/production/main.o differ
diff --git a/Version 0.6/RS232_MUX.X/build/default/production/main.o.d b/Version 0.6/RS232_MUX.X/build/default/production/main.o.d
new file mode 100644
index 0000000..f937a7d
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/build/default/production/main.o.d	
@@ -0,0 +1,70 @@
+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\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\math.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h \
+ hardware_uart.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.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\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\math.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h:
+
+hardware_uart.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
diff --git a/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf
new file mode 100644
index 0000000..5ddd00e
Binary files /dev/null and b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.elf differ
diff --git a/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex
new file mode 100644
index 0000000..659212e
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.hex	
@@ -0,0 +1,135 @@
+:100000000C9477000C94C4030C94C4030C94C403A4
+:100010000C94C4030C94C4030C94C4030C94C40344
+:100020000C94C4030C94C4030C94C4030C94C40334
+:100030000C94C4030C94C4030C94C4030C94C40324
+:100040000C94C4030C94C4030C94C4030C94790260
+:100050000C94C4030C94C4030C94C4030C94C40304
+:100060000C94C4030C94C4030C94C4030C94C403F4
+:100070000C94C4030C94C4030C94C4030C94C502E4
+:100080000C94C4030C94C4030C94C4030C94C403D4
+:100090000C94C4030C9411030C94C4030C94C40377
+:1000A0000C94C4030C94C4030C94C4030C94C403B4
+:1000B0000C94C4030C94C4030C94C4030C94C403A4
+:1000C0000C94C4030C94C4030C94C4030C94C40394
+:1000D0000C949F020C94C4030C94C4030C94EB0284
+:1000E0000C94C4030C94C4037000750F8000112499
+:1000F0001FBECFEFCDBFDFE7DEBFE8EEF0E040E0B0
+:1001000017C0B591A59135912591059107FD0CC0BA
+:1001100095918591EF01F92FE82F05900D92A21787
+:10012000B307D9F7FE0104C01D92A217B307E1F788
+:10013000ED3EF40731F70E94A1000C94B403F8944B
+:02014000FFCFEF
+:10014200CF93DF93CDB7DEB7CB5FD109CDBFDEBF93
+:1001520081E08093600494E288ED84BF909368000C
+:100162004DE040930004E0E0F8E020E137E2208730
+:10017200318790E8958380ED868340932004E0E602
+:10018200F8E0208731879583868340934004E0E23C
+:10019200F8E0208731879583868340938004E0E8E6
+:1001A200F8E020873187958386834093A004E0E4BA
+:1001B200F8E0208731879583868378940E944202F3
+:1001C200812C912CA12CB12CC12CD12CE12CF12C05
+:1001D20000E010E0C550DF4F1882CB5FD0400F2EF9
+:1001E200F0E66F2EF4E07F2EF02D0F2EF5E42F2E89
+:1001F200F02D0F2EF6E43F2EF02D0F2EF7E44F2EAA
+:10020200F02D0F2EF8E45F2EF02DF301948181E0A2
+:100212008927848320920208309262084092220841
+:1002220050928208F9E4F0934208EDE0F5E780810C
+:100232009181892B59F00E943703E1E0F0E0EC0F45
+:10024200FD1FE00FF11F80830F5F1F4FEAE0F4E70D
+:1002520080819181892B61F00E945003E3E3F0E0F9
+:10026200EC0FFD1FEE0DFF1D8083FFEFEF1AFF0A5B
+:100272008091077390910873892B61F00E94690342
+:10028200E5E6F0E0EC0FFD1FEC0DFD1D80832FEF86
+:10029200C21AD20A8091047290910572892B61F080
+:1002A2000E948203E7E9F0E0EC0FFD1FEA0DFB1D5F
+:1002B20080838FEFA81AB80A809101719091027120
+:1002C200892B61F00E949B03E9ECF0E0EC0FFD1F2B
+:1002D200E80DF91D80839FEF891A990A898182347A
+:1002E20061F48A81843449F419821A8200E010E0B0
+:1002F200C550DF4F1882CB5FD0408BA9823469F49E
+:100302008CA9843451F41BAA1CAAE12CF12CE1E043
+:10031200C550DF4FE883CB5FD040A6968FADA6973E
+:10032200823499F4A7968FADA797843471F4A69678
+:100332001FAEA697A7961FAEA797C12CD12CF2E0AD
+:10034200C550DF4FF883CB5FD040C956DF4F88815D
+:10035200C759D0408234C9F4C856DF4F8881C85982
+:10036200D040843491F4C956DF4F1882C759D04027
+:10037200C856DF4F1882C859D040A12CB12C23E0B7
+:10038200C550DF4F2883CB5FD040C753DF4F8881F2
+:10039200C95CD0408234C9F4C653DF4F8881CA5C3D
+:1003A200D040843491F4C753DF4F1882C95CD040E7
+:1003B200C653DF4F1882CA5CD040812C912C84E056
+:1003C200C550DF4F8883CB5FD0400230110514F057
+:1003D20000E010E092E0E916F10414F0E12CF12CB7
+:1003E200E2E0CE16D10414F0C12CD12CF2E0AF160B
+:1003F200B10414F0A12CB12C22E08216910414F065
+:10040200812C912CC550DF4F8881CB5FD040813049
+:1004120081F028F08230B9F08330F9F028C09FE7EC
+:10042200EFE4F2E19150E040F040E1F700C000005B
+:10043200ECCE2FEF8EE994E2215080409040E1F71C
+:1004420000C00000E2CEEFEFFDE329E4E150F0400E
+:100452002040E1F700C00000D8CE8FEF9BE7E2E931
+:1004620081509040E040E1F700C00000CECEFFEFA7
+:1004720029EB8BEDF15020408040E1F700C00000F5
+:02048200C4CEE6
+:10048400CF93DF93CDB7DEB72A97CDBFDEBF8AE027
+:10049400EEE7F7E8DE01119601900D928A95E1F7F7
+:1004A400DE0111969E01255F3F4F94E08CE0ED91B3
+:1004B400FD9194834FE75FE462E141505040604016
+:1004C400E1F700C0000084834FE75FE462E141503C
+:1004D40050406040E1F700C000001482A217B30747
+:0E04E40031F72A96CDBFDEBFDF91CF9108958C
+:1004F2001F921FB61F9211242F938F939F93EF93F6
+:10050200FF932091000880910D7590910E75FC016A
+:10051200E45FFB48218310920C748F3F910528F40D
+:10052200019680930D7590930E75FF91EF919F91B7
+:0C0532008F912F911F901FBE1F901895F5
+:10053E001F921FB61F9211242F938F939F93EF93A9
+:10054E00FF932091600880910A7490910B74FC01C6
+:10055E00E75FFC482183109209738F3F910528F4C1
+:10056E00019680930A7490930B74FF91EF919F9173
+:0C057E008F912F911F901FBE1F901895A9
+:10058A001F921FB61F9211242F938F939F93EF935D
+:10059A00FF93209120088091077390910873FC01C2
+:1005AA00EA5FFD482183109206728F3F910528F475
+:1005BA0001968093077390930873FF91EF919F912F
+:0C05CA008F912F911F901FBE1F9018955D
+:1005D6001F921FB61F9211242F938F939F93EF9311
+:1005E600FF93209180088091047290910572FC011E
+:1005F600ED5FFE482183109203718F3F910528F429
+:1006060001968093047290930572FF91EF919F91EA
+:0C0616008F912F911F901FBE1F90189510
+:100622001F921FB61F9211242F938F939F93EF93C4
+:10063200FF93209140088091017190910271FC0119
+:10064200E050F0492183109200708F3F910528F409
+:1006520001968093017190930271FF91EF919F91A6
+:0C0662008F912F911F901FBE1F901895C4
+:10066E0080910D74EDE0F4E72CE035E791819193E4
+:10067E00E217F307D9F720910D7530910E752115FC
+:10068E00310531F02150310920930D7530930E75DF
+:02069E000895BD
+:1006A00080910A73EAE0F3E729E034E791819193BE
+:1006B000E217F307D9F720910A7430910B742115D2
+:1006C000310531F02150310920930A7430930B74B5
+:0206D00008958B
+:1006D20080910772E7E0F2E726E033E79181919398
+:1006E200E217F307D9F720910773309108732115A8
+:1006F200310531F02150310920930773309308738B
+:02070200089558
+:1007040080910471E4E0F1E723E032E79181919371
+:10071400E217F307D9F7209104723091057221157D
+:10072400310531F021503109209304723093057260
+:02073400089526
+:1007360080910170E1E0F0E720E031E7918191934B
+:10074600E217F307D9F72091017130910271211553
+:10075600310531F021503109209301713093027136
+:020766000895F4
+:10076800EC010E94C9030E94C803CE010E94CA037B
+:06077800CE010E94C60341
+:0A077E000004200440048004A004DD
+:040788000C940000CD
+:04078C000E949F0028
+:020790000895CA
+:020792000895C8
+:020794000895C6
+:00000001FF
diff --git a/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map
new file mode 100644
index 0000000..8d942d2
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/dist/default/production/RS232_MUX.X.production.map	
@@ -0,0 +1,642 @@
+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/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       0x24 build/default/production/main.o
+ .text.txWrite0
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable0
+                0x0000000000000000        0xa build/default/production/main.o
+ .text.initPort1
+                0x0000000000000000       0x24 build/default/production/main.o
+ .text.txWrite1
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable1
+                0x0000000000000000        0xa build/default/production/main.o
+ .text.initPort2
+                0x0000000000000000       0x24 build/default/production/main.o
+ .text.txWrite2
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable2
+                0x0000000000000000        0xa build/default/production/main.o
+ .text.initPort3
+                0x0000000000000000       0x24 build/default/production/main.o
+ .text.txWrite3
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable3
+                0x0000000000000000        0xa build/default/production/main.o
+ .text.initPort4
+                0x0000000000000000       0x24 build/default/production/main.o
+ .text.txWrite4
+                0x0000000000000000        0x6 build/default/production/main.o
+ .text.portAvailable4
+                0x0000000000000000        0xa build/default/production/main.o
+ .text.bootSequence
+                0x0000000000000000        0x6 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/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       0xf8
+ *(.debug_aranges)
+ .debug_aranges
+                0x0000000000000000       0xf8 build/default/production/main.o
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info     0x0000000000000000     0x4544
+ *(.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     0x1330 build/default/production/main.o
+
+.debug_abbrev   0x0000000000000000     0x32bf
+ *(.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      0x351 build/default/production/main.o
+
+.debug_line     0x0000000000000000      0xa7e
+ *(.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      0x88b build/default/production/main.o
+
+.debug_frame    0x0000000000000000      0x25c
+ *(.debug_frame)
+ .debug_frame   0x0000000000000000      0x25c build/default/production/main.o
+
+.debug_str      0x0000000000000000     0x1568
+ *(.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       0x2f build/default/production/main.o
+
+.debug_loc      0x0000000000000000      0x59a
+ *(.debug_loc)
+ .debug_loc     0x0000000000000000      0x59a 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      0x148
+ *(.debug_ranges)
+ .debug_ranges  0x0000000000000000      0x148 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.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      0x342
+ .text.main     0x0000000000000142      0x342 build/default/production/main.o
+                0x0000000000000142                main
+
+.text.debugLedsTest
+                0x0000000000000484       0x6e
+ .text.debugLedsTest
+                0x0000000000000484       0x6e build/default/production/main.o
+                0x0000000000000484                debugLedsTest
+
+.text.__vector_19
+                0x00000000000004f2       0x4c
+ .text.__vector_19
+                0x00000000000004f2       0x4c build/default/production/main.o
+                0x00000000000004f2                __vector_19
+
+.text.__vector_52
+                0x000000000000053e       0x4c
+ .text.__vector_52
+                0x000000000000053e       0x4c build/default/production/main.o
+                0x000000000000053e                __vector_52
+
+.text.__vector_31
+                0x000000000000058a       0x4c
+ .text.__vector_31
+                0x000000000000058a       0x4c build/default/production/main.o
+                0x000000000000058a                __vector_31
+
+.text.__vector_55
+                0x00000000000005d6       0x4c
+ .text.__vector_55
+                0x00000000000005d6       0x4c build/default/production/main.o
+                0x00000000000005d6                __vector_55
+
+.text.__vector_37
+                0x0000000000000622       0x4c
+ .text.__vector_37
+                0x0000000000000622       0x4c build/default/production/main.o
+                0x0000000000000622                __vector_37
+
+.text.rxRead0   0x000000000000066e       0x32
+ .text.rxRead0  0x000000000000066e       0x32 build/default/production/main.o
+                0x000000000000066e                rxRead0
+
+.text.rxRead1   0x00000000000006a0       0x32
+ .text.rxRead1  0x00000000000006a0       0x32 build/default/production/main.o
+                0x00000000000006a0                rxRead1
+
+.text.rxRead2   0x00000000000006d2       0x32
+ .text.rxRead2  0x00000000000006d2       0x32 build/default/production/main.o
+                0x00000000000006d2                rxRead2
+
+.text.rxRead3   0x0000000000000704       0x32
+ .text.rxRead3  0x0000000000000704       0x32 build/default/production/main.o
+                0x0000000000000704                rxRead3
+
+.text.rxRead4   0x0000000000000736       0x32
+ .text.rxRead4  0x0000000000000736       0x32 build/default/production/main.o
+                0x0000000000000736                rxRead4
+
+.text.exit      0x0000000000000768       0x16
+ .text.exit     0x0000000000000768       0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000768                exit
+
+.rodata         0x000000000080877e        0xa load address 0x000000000000077e
+ .rodata        0x000000000080877e        0xa build/default/production/main.o
+
+.text           0x0000000000000788        0x4
+ .text          0x0000000000000788        0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000788                __vector_38
+                0x0000000000000788                __vector_22
+                0x0000000000000788                __vector_28
+                0x0000000000000788                __vector_1
+                0x0000000000000788                __vector_32
+                0x0000000000000788                __vector_34
+                0x0000000000000788                __vector_24
+                0x0000000000000788                __vector_12
+                0x0000000000000788                __vector_46
+                0x0000000000000788                __bad_interrupt
+                0x0000000000000788                __vector_6
+                0x0000000000000788                __vector_35
+                0x0000000000000788                __vector_39
+                0x0000000000000788                __vector_3
+                0x0000000000000788                __vector_23
+                0x0000000000000788                __vector_30
+                0x0000000000000788                __vector_45
+                0x0000000000000788                __vector_25
+                0x0000000000000788                __vector_11
+                0x0000000000000788                __vector_54
+                0x0000000000000788                __vector_13
+                0x0000000000000788                __vector_17
+                0x0000000000000788                __vector_56
+                0x0000000000000788                __vector_7
+                0x0000000000000788                __vector_49
+                0x0000000000000788                __vector_41
+                0x0000000000000788                __vector_43
+                0x0000000000000788                __vector_27
+                0x0000000000000788                __vector_5
+                0x0000000000000788                __vector_33
+                0x0000000000000788                __vector_47
+                0x0000000000000788                __vector_4
+                0x0000000000000788                __vector_44
+                0x0000000000000788                __vector_51
+                0x0000000000000788                __vector_9
+                0x0000000000000788                __vector_2
+                0x0000000000000788                __vector_21
+                0x0000000000000788                __vector_15
+                0x0000000000000788                __vector_36
+                0x0000000000000788                __vector_29
+                0x0000000000000788                __vector_40
+                0x0000000000000788                __vector_8
+                0x0000000000000788                __vector_26
+                0x0000000000000788                __vector_48
+                0x0000000000000788                __vector_14
+                0x0000000000000788                __vector_57
+                0x0000000000000788                __vector_53
+                0x0000000000000788                __vector_10
+                0x0000000000000788                __vector_50
+                0x0000000000000788                __vector_16
+                0x0000000000000788                __vector_18
+                0x0000000000000788                __vector_20
+                0x0000000000000788                __vector_42
+
+.text._Exit     0x000000000000078c        0x4
+ .text._Exit    0x000000000000078c        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                0x000000000000078c                _Exit
+
+.text.__dummy_fini
+                0x0000000000000790        0x2
+ .text.__dummy_fini
+                0x0000000000000790        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000790                _fini
+
+.text.__dummy_funcs_on_exit
+                0x0000000000000792        0x2
+ .text.__dummy_funcs_on_exit
+                0x0000000000000792        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000792                __funcs_on_exit
+
+.text.__dummy_simulator_exit
+                0x0000000000000794        0x2
+ .text.__dummy_simulator_exit
+                0x0000000000000794        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000794                __simulator_exit
diff --git a/Version 0.6/RS232_MUX.X/dist/default/production/memoryfile.xml b/Version 0.6/RS232_MUX.X/dist/default/production/memoryfile.xml
new file mode 100644
index 0000000..ac2d789
--- /dev/null
+++ b/Version 0.6/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>1942</used>                     
+      <free>30826</free>                     
+    </memory>                              
+    <memory name="data">                 
+      <units>bytes</units>                 
+      <length>4096</length>                 
+      <used>1295</used>                     
+      <free>2801</free>                     
+    </memory>                              
+  </executable>                            
+</project>                                 
diff --git a/Version 0.6/RS232_MUX.X/hardware_uart.h b/Version 0.6/RS232_MUX.X/hardware_uart.h
new file mode 100644
index 0000000..a1126e0
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/hardware_uart.h	
@@ -0,0 +1,514 @@
+/* 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 
+ */
+
+
+#ifndef XC_HEADER_TEMPLATE_H
+#define	XC_HEADER_TEMPLATE_H
+
+#include <xc.h> // include processor files - each processor file is guarded. 
+#include <stdbool.h>
+
+
+
+//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
+
+
+
+#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...
+};
+
+
+RXREAD RX0, RX1, RX2, RX3, RX4;
+
+
+
+
+
+/**
+ <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(250);
+        port->OUT = 0x0C;
+        _delay_ms(250);
+        port->OUT = 0x00;
+    }
+}
+
+
+
+/////////////////////////////////////////////////
+//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>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort0(uint32_t bauds, bool enableDebug)
+{
+    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
+}
+
+
+/**
+ <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
+{
+    USART0.TXDATAL = b;
+}
+
+
+/**
+ <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
+{
+    uint8_t result = RX0._rxBuf[0]; //get byte in order (FIFO)
+    
+    for(uint8_t j = 0; j < 255; j++) //shift bytes
+    {
+        RX0._rxBuf[j] = RX0._rxBuf[j+1];
+    }
+    if(RX0.bytesAvailable > 0)
+        RX0.bytesAvailable--; //remove 1 byte
+    
+    return result;
+}
+
+
+/**
+ <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>
+ */
+uint16_t portAvailable0(void)
+{
+    return RX0.bytesAvailable;
+}
+
+
+ISR(USART0_RXC_vect)
+{
+    //while((USART0.RXDATAH & 0x80) == 0x80);
+    RX0._rxReicv = USART0.RXDATAL; //read buffer
+    RX0._rxBuf[RX0.bytesAvailable] = RX0._rxReicv; //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
+}
+
+
+
+
+
+/////////////////////////////////////////////////
+//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>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort1(uint32_t bauds, bool enableDebug)
+{
+    
+    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 = 0x80; //enable RX complete interrupt
+    USART3.CTRLB = 0xD0; //Enable TX and RX sending
+}
+
+
+
+/**
+ <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
+{
+    USART3.TXDATAL = b;
+}
+
+
+/**
+ <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
+{
+    uint8_t result = RX1._rxBuf[0]; //get byte in order (FIFO)
+    
+    for(uint8_t j = 0; j < 255; j++) //shift bytes
+    {
+        RX1._rxBuf[j] = RX1._rxBuf[j+1];
+    }
+    if(RX1.bytesAvailable > 0)
+        RX1.bytesAvailable--; //remove 1 byte
+    
+    return result;
+}
+
+
+/**
+ <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>
+ */
+uint16_t portAvailable1(void)
+{
+    return RX1.bytesAvailable;
+}
+
+
+
+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
+}
+
+
+/////////////////////////////////////////////////
+//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>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort2(uint32_t bauds, bool enableDebug)
+{
+    
+    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 = 0x80; //enable RX complete interrupt
+    USART1.CTRLB = 0xD0; //Enable TX and RX sending
+}
+
+
+
+/**
+ <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
+{
+    USART1.TXDATAL = b;
+}
+
+
+/**
+ <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
+{
+    uint8_t result = RX2._rxBuf[0]; //get byte in order (FIFO)
+    
+    for(uint8_t j = 0; j < 255; j++) //shift bytes
+    {
+        RX2._rxBuf[j] = RX2._rxBuf[j+1];
+    }
+    if(RX2.bytesAvailable > 0)
+        RX2.bytesAvailable--; //remove 1 byte
+    
+    return result;
+}
+
+
+/**
+ <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>
+ */
+uint16_t portAvailable2(void)
+{
+    return RX2.bytesAvailable;
+}
+
+
+
+
+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
+}
+
+/////////////////////////////////////////////////
+//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>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort3(uint32_t bauds, bool enableDebug)
+{
+    
+    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 = 0x80; //enable RX complete interrupt
+    USART4.CTRLB = 0xD0; //Enable TX and RX sending
+}
+
+
+
+/**
+ <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
+{
+    USART4.TXDATAL = b;
+}
+
+/**
+ <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
+{
+    uint8_t result = RX3._rxBuf[0]; //get byte in order (FIFO)
+    
+    for(uint8_t j = 0; j < 255; j++) //shift bytes
+    {
+        RX3._rxBuf[j] = RX3._rxBuf[j+1];
+    }
+    if(RX3.bytesAvailable > 0)
+        RX3.bytesAvailable--; //remove 1 byte
+    
+    return result;
+}
+
+
+/**
+ <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>
+ */
+uint16_t portAvailable3(void)
+{
+    return RX3.bytesAvailable;
+}
+
+
+
+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
+}
+
+/////////////////////////////////////////////////
+//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>Don't forget to call sei() function after called all initPortx() functions !</p></b>
+ */
+void initPort4(uint32_t bauds, bool enableDebug)
+{
+    
+    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 = 0x80; //enable RX complete interrupt
+    USART2.CTRLB = 0xD0; //Enable TX and RX sending
+}
+
+
+
+/**
+ <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
+{
+    USART2.TXDATAL = b;
+}
+
+/**
+ <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
+{
+    uint8_t result = RX4._rxBuf[0]; //get byte in order (FIFO)
+    
+    for(uint8_t j = 0; j < 255; j++) //shift bytes
+    {
+        RX4._rxBuf[j] = RX4._rxBuf[j+1];
+    }
+    if(RX4.bytesAvailable > 0)
+        RX4.bytesAvailable--; //remove 1 byte
+    
+    return result;
+}
+
+
+/**
+ <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>
+ */
+uint16_t portAvailable4(void)
+{
+    return RX4.bytesAvailable;
+}
+
+
+
+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
+}
+
+#ifdef	__cplusplus
+}
+#endif /* __cplusplus */
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/Version 0.6/RS232_MUX.X/main.c b/Version 0.6/RS232_MUX.X/main.c
new file mode 100644
index 0000000..387bd4d
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/main.c	
@@ -0,0 +1,240 @@
+/*
+ * File:   main.c
+ * Author: eniro
+ *
+ * Created on March 25, 2024, 3:51 PM
+ */
+
+#define F_CPU 24000000UL
+
+#include <xc.h>
+#include <util/delay.h>
+#include <avr/interrupt.h>
+
+#include "hardware_uart.h"
+
+
+
+//USART setup
+#define UART_BAUD_VALUE     10000 // 10000 is equivalent as 9600 bauds according to datasheet
+#define USART0_REG          0x3 
+
+
+//OSC. setup
+#define FREQSEL     0x9
+#define _FREQSEL_REG_WR     ((FREQSEL) << 2)
+#define _USART0_REG_WR      (USART0_REG & 0x7)
+
+
+
+
+//////////////////////////////////////////////////////////////
+//Prototypes
+/*
+//USART0 functions
+void txWrite0(uint8_t b); //Write 1 byte to the buffer USART0
+uint8_t rxRead0(void); //read 1 byte from buffer USART0
+//USART1 functions
+void txWrite1(uint8_t b); //Write 1 byte to the buffer USART1
+uint8_t rxRead1(void); //read 1 byte from buffer USART1
+//USART2 functions
+void txWrite2(uint8_t b); //Write 1 byte to the buffer USART2
+uint8_t rxRead2(void); //read 1 byte from buffer USART2
+//USART3 functions
+void txWrite3(uint8_t b); //Write 1 byte to the buffer USART3
+uint8_t rxRead3(void); //read 1 byte from buffer USART3
+//USART4 functions
+void txWrite4(uint8_t b); //Write 1 byte to the buffer USART4
+uint8_t rxRead4(void); //read 1 byte from buffer USART4
+*/
+void bootSequence(void);
+
+
+int main(void) {
+    
+    
+
+    
+    uint8_t localBuf0[50], localBuf1[50], localBuf2[50], localBuf3[50], localBuf4[50];
+    uint8_t delay_mux = 0;
+    int k0 = 0;
+    int k1 = 0;
+    int k2 = 0;
+    int k3 = 0;
+    int k4 = 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
+    
+    
+    initPort0(UART_BAUD_VALUE, true); //init master port with debug leds
+    initPort1(UART_BAUD_VALUE, true); //init vcom1 port with debug leds
+    initPort2(UART_BAUD_VALUE, true); //init vcom2 port with debug leds
+    initPort3(UART_BAUD_VALUE, true); //init vcom3 port with debug leds
+    initPort4(UART_BAUD_VALUE, true); //init vcom4 port  with debug leds 
+    sei(); //never forget to enable global interrupt mask !
+    
+    
+    bootSequence(); //Launch leds sequence
+    
+   
+    
+    while(1)
+    {
+        
+        
+        PORTD.OUT ^= 0x01;
+        txWrite0(0x45);
+        txWrite1(0x46);
+        txWrite2(0x47);
+        txWrite3(0x48);
+        txWrite4(0x49);
+        
+    
+        
+        
+        if(portAvailable0() > 0) //check if we have bytes to read
+        {
+            localBuf0[k0] = rxRead0(); //store byte into buffer
+            k0++; //increment to next byte
+        }
+        
+        if(portAvailable1() > 0) //check if we have bytes to read
+        {
+            localBuf1[k1] = rxRead1(); //store byte into buffer
+            k1++; //increment to next byte
+        }
+        
+        if(portAvailable2() > 0) //check if we have bytes to read
+        {
+            localBuf2[k2] = rxRead2(); //store byte into buffer
+            k2++; //increment to next byte
+        }
+        
+        if(portAvailable3() > 0) //check if we have bytes to read
+        {
+            localBuf3[k3] = rxRead3(); //store byte into buffer
+            k3++; //increment to next byte
+        }
+        
+        if(portAvailable4() > 0) //check if we have bytes to read
+        {
+            localBuf4[k4] = rxRead4(); //store byte into buffer
+            k4++; //increment to next byte
+        }
+        
+                
+        if(localBuf0[0] == 0x42 && localBuf0[1] == 0x44) 
+        {
+            //Clear buffer
+            localBuf0[0] = 0x00;
+            localBuf0[1] = 0x00;
+            k0 = 0;
+            delay_mux = 0;
+        }
+        
+        if(localBuf1[0] == 0x42 && localBuf1[1] == 0x44) 
+        {
+            //Clear buffer
+            localBuf1[0] = 0x00;
+            localBuf1[1] = 0x00;
+            k1 = 0;
+            delay_mux = 1;
+        }
+        
+        if(localBuf2[0] == 0x42 && localBuf2[1] == 0x44) 
+        {
+            //Clear buffer
+            localBuf2[0] = 0x00;
+            localBuf2[1] = 0x00;
+            k2 = 0;
+            delay_mux = 2;
+        }
+        
+        if(localBuf3[0] == 0x42 && localBuf3[1] == 0x44) 
+        {
+            //Clear buffer
+            localBuf3[0] = 0x00;
+            localBuf3[1] = 0x00;
+            k3 = 0;
+            delay_mux = 3;
+        }
+        
+        if(localBuf4[0] == 0x42 && localBuf4[1] == 0x44) 
+        {
+            //Clear buffer
+            localBuf4[0] = 0x00;
+            localBuf4[1] = 0x00;
+            k4 = 0;
+            delay_mux = 4;
+        }
+        
+        //Just in case if bytes does not match, clear counter
+        if(k0 >= 2)
+            k0 = 0;
+        
+        if(k1 >= 2)
+            k1 = 0;
+        
+        if(k2 >= 2)
+            k2 = 0;
+        
+        if(k3 >= 2)
+            k3 = 0;
+        
+        if(k4 >= 2)
+            k4 = 0;
+        
+        switch(delay_mux)
+        {
+            case 0:
+                _delay_ms(250);
+                break;
+                
+            case 1:
+                _delay_ms(500);
+                break;
+                
+            case 2:
+                _delay_ms(1000);
+                break;
+                
+            case 3:
+                _delay_ms(2000);
+                break;
+                
+            default:
+                _delay_ms(3000);
+        }
+        
+    }
+    
+    
+    
+        
+    return 0;
+}
+
+
+
+
+///////////////////////////////////////////////////////////
+//Functions / macros
+
+
+void bootSequence(void)
+{
+    debugLedsTest();
+}
+
+
+
+
+
+
+
+
+
diff --git a/Version 0.6/RS232_MUX.X/nbproject/Makefile-default.mk b/Version 0.6/RS232_MUX.X/nbproject/Makefile-default.mk
new file mode 100644
index 0000000..8956481
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/nbproject/Makefile-genesis.properties b/Version 0.6/RS232_MUX.X/nbproject/Makefile-genesis.properties
new file mode 100644
index 0000000..cc0fe38
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/nbproject/Makefile-genesis.properties	
@@ -0,0 +1,13 @@
+#
+#Fri Apr 26 13:57:12 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=8f47f1e80c4d4bb953af785a4083c05e
+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 0.6/RS232_MUX.X/nbproject/Makefile-impl.mk b/Version 0.6/RS232_MUX.X/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..36e8491
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/nbproject/Makefile-local-default.mk b/Version 0.6/RS232_MUX.X/nbproject/Makefile-local-default.mk
new file mode 100644
index 0000000..3222869
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/nbproject/Makefile-variables.mk b/Version 0.6/RS232_MUX.X/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..e7c8ba8
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/nbproject/configurations.xml b/Version 0.6/RS232_MUX.X/nbproject/configurations.xml
new file mode 100644
index 0000000..f574b90
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/nbproject/configurations.xml	
@@ -0,0 +1,302 @@
+<?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>
+    </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="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"/>
+      </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="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 0.6/RS232_MUX.X/nbproject/private/configurations.xml b/Version 0.6/RS232_MUX.X/nbproject/private/configurations.xml
new file mode 100644
index 0000000..e39eaac
--- /dev/null
+++ b/Version 0.6/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 0.6/RS232_MUX.X/nbproject/private/private.xml b/Version 0.6/RS232_MUX.X/nbproject/private/private.xml
new file mode 100644
index 0000000..c00453a
--- /dev/null
+++ b/Version 0.6/RS232_MUX.X/nbproject/private/private.xml	
@@ -0,0 +1,9 @@
+<?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="0"/>
+    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group>
+            <file>file:/C:/Users/eniro/MPLABXProjects/RS232_MUX.X/main.c</file>
+        </group>
+    </open-files>
+</project-private>
diff --git a/Version 0.6/RS232_MUX.X/nbproject/project.xml b/Version 0.6/RS232_MUX.X/nbproject/project.xml
new file mode 100644
index 0000000..fb10da3
--- /dev/null
+++ b/Version 0.6/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>
