commit d2006889e1248191bfe107ab4b5d7cebbb59d632
Author: Enzo Niro <enzo.niro@inrae.fr>
Date:   Fri Sep 27 08:01:55 2024 +0200

    TL16C754_training.X :
    Ajout d'un code d'exemple pour cause de modification de la carte. (+Photo du prototype inclu)

diff --git a/TL16C754_training.X/.generated_files/flags/default/1cd200f2b56e838de0534bf899fba8efc82480a3 b/TL16C754_training.X/.generated_files/flags/default/1cd200f2b56e838de0534bf899fba8efc82480a3
new file mode 100644
index 0000000..9db1973
--- /dev/null
+++ b/TL16C754_training.X/.generated_files/flags/default/1cd200f2b56e838de0534bf899fba8efc82480a3
@@ -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\TL16C754_training.X\main.c
\ No newline at end of file
diff --git a/TL16C754_training.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709 b/TL16C754_training.X/.generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
new file mode 100644
index 0000000..e69de29
diff --git a/TL16C754_training.X/.generated_files/flags/default/fc9ad4e586b01e7fe44a0ddff77856f6939de4ce b/TL16C754_training.X/.generated_files/flags/default/fc9ad4e586b01e7fe44a0ddff77856f6939de4ce
new file mode 100644
index 0000000..866fbab
--- /dev/null
+++ b/TL16C754_training.X/.generated_files/flags/default/fc9ad4e586b01e7fe44a0ddff77856f6939de4ce
@@ -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\TL16C754_training.X\main.c
\ No newline at end of file
diff --git a/TL16C754_training.X/Makefile b/TL16C754_training.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/TL16C754_training.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/TL16C754_training.X/TL16C_CFG.h b/TL16C754_training.X/TL16C_CFG.h
new file mode 100644
index 0000000..c380bb1
--- /dev/null
+++ b/TL16C754_training.X/TL16C_CFG.h
@@ -0,0 +1,107 @@
+// TL16C setup depending on clock frequency used
+
+#ifndef TL16C_CFG_H
+#define	TL16C_CFG_H
+
+#include <xc.h> // include processor files - each processor file is guarded. 
+
+//////////////////////////////////
+//TL16C Setup
+
+//#define TL16C_8MHZ_CLK
+#define TL16C_16MHZ_CLK
+//#define TL16C_24MHZ_CLK
+
+//////////////////////////////////
+
+
+enum uartType_index {
+    UART_A = 0,
+    UART_B,
+    UART_C,
+    UART_D,
+};
+
+enum dataWord_index {
+    DATA_5BITS = 0,
+    DATA_6BITS,
+    DATA_7BITS,
+    DATA_8BITS,
+};
+
+enum speedBus_index {
+    BAUDS_9600 = 0,
+    BAUDS_19200,
+    BAUDS_38400,
+};
+
+enum stopBit_index {
+    ONE_STOPBIT = 0,
+    TWO_STOPBIT,
+};
+
+enum parity_index {
+    NO_PARITY = 0,
+    ODD_PARITY,
+    EVEN_PARITY,
+};
+
+
+
+
+
+#define DLAB_ERF_EN_BIT  0x80
+
+//Parity param.s
+#define PARITY_NONE      0
+#define PARITY_ODD       1
+#define PARITY_EVEN      3
+//Stop bit param.s
+#define STOPBIT_ONE      0
+#define STOPBIT_TWO      1
+//Word data bit param.s
+#define WORD_5BITS       0
+#define WORD_6BITS       1
+#define WORD_7BITS       2
+#define WORD_8BITS       3
+
+///////////////////////////
+//Divisor Latch values
+
+
+
+
+//According to 8MHz
+#ifdef TL16C_8MHZ_CLK
+
+#define DL_9600_BAUDS    52
+#define DL_19200_BAUDS   26
+#define DL_38400_BAUDS   13
+
+#else
+#ifdef TL16C_16MHZ_CLK
+
+#define DL_9600_BAUDS    104
+#define DL_19200_BAUDS   52
+#define DL_38400_BAUDS   26
+
+#else
+#ifdef TL16C_24MHZ_CLK
+
+#define DL_9600_BAUDS    156
+#define DL_19200_BAUDS   78
+#define DL_38400_BAUDS   39
+
+#else
+#error "Please choose a configuration for baud speed"
+#define DL_9600_BAUDS    0x0
+#define DL_19200_BAUDS   0x0
+#define DL_38400_BAUDS   0x0
+#define CPU_FREQ_SET     0x0
+
+#endif //24MHZ
+#endif //16MHZ
+#endif //8MHZ
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/TL16C754_training.X/TL16C_addr.h b/TL16C754_training.X/TL16C_addr.h
new file mode 100644
index 0000000..c36cd8f
--- /dev/null
+++ b/TL16C754_training.X/TL16C_addr.h
@@ -0,0 +1,43 @@
+
+#ifndef TLE16C_ADDR_H
+#define	TLE16C_ADDR_H
+
+
+#define LCR_REG     0x3 //Static register
+
+///////////////////////////////////////////
+// READ Registers
+
+#define RHR_REG         0x0
+#define IIR_REG         0x2
+#define LSR_REG         0x5
+#define MSR_REG         0x6
+#define FIFORDY_REG     0x7
+
+///////////////////////////////////////////
+// WRITE Registers
+
+#define THR_REG     0x0
+#define FCR_REG     0x2
+
+///////////////////////////////////////////
+// READ/WRITE Registers
+
+#define IER_REG         0x1
+#define LCR_REG         0x3
+#define MCR_REG         0x4
+#define SPR_REG         0x7
+#define DLL_REG         0x0
+#define DLH_REG         0x1
+#define EFR_REG         0x2
+#define XON1_REG        0x4
+#define XON2_REG        0x5
+#define XOFF1_REG       0x6
+#define XOFF2_REG       0x7
+#define TCR_REG         0x6
+#define TLR_REG         0x7
+
+
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/TL16C754_training.X/build/default/debug/main.o b/TL16C754_training.X/build/default/debug/main.o
new file mode 100644
index 0000000..fdf02f2
Binary files /dev/null and b/TL16C754_training.X/build/default/debug/main.o differ
diff --git a/TL16C754_training.X/build/default/debug/main.o.d b/TL16C754_training.X/build/default/debug/main.o.d
new file mode 100644
index 0000000..26a1f36
--- /dev/null
+++ b/TL16C754_training.X/build/default/debug/main.o.d
@@ -0,0 +1,80 @@
+build/default/debug/main.o.d build/default/debug/main.o: main.c \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
+ C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h \
+ macros_def.h TL16C_addr.h TL16C_CFG.h
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
+
+C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h:
+
+macros_def.h:
+
+TL16C_addr.h:
+
+TL16C_CFG.h:
diff --git a/TL16C754_training.X/build/default/production/main.o b/TL16C754_training.X/build/default/production/main.o
new file mode 100644
index 0000000..98b71c2
Binary files /dev/null and b/TL16C754_training.X/build/default/production/main.o differ
diff --git a/TL16C754_training.X/build/default/production/main.o.d b/TL16C754_training.X/build/default/production/main.o.d
new file mode 100644
index 0000000..52a8f05
--- /dev/null
+++ b/TL16C754_training.X/build/default/production/main.o.d
@@ -0,0 +1,80 @@
+build/default/production/main.o.d build/default/production/main.o: main.c \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
+ C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h \
+ c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h \
+ macros_def.h TL16C_addr.h TL16C_CFG.h
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\xc.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\cci.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
+
+C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/include/avr/ioavr32da48.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\builtins.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdlib.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\interrupt.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\eeprom.h:
+
+c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stddef.h:
+
+macros_def.h:
+
+TL16C_addr.h:
+
+TL16C_CFG.h:
diff --git a/TL16C754_training.X/carte_prototype.jpg b/TL16C754_training.X/carte_prototype.jpg
new file mode 100644
index 0000000..82ec5a2
Binary files /dev/null and b/TL16C754_training.X/carte_prototype.jpg differ
diff --git a/TL16C754_training.X/defmplabxtrace.log b/TL16C754_training.X/defmplabxtrace.log
new file mode 100644
index 0000000..e69de29
diff --git a/TL16C754_training.X/defmplabxtrace.log.inx b/TL16C754_training.X/defmplabxtrace.log.inx
new file mode 100644
index 0000000..29197e3
Binary files /dev/null and b/TL16C754_training.X/defmplabxtrace.log.inx differ
diff --git a/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.elf b/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.elf
new file mode 100644
index 0000000..dda0698
Binary files /dev/null and b/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.elf differ
diff --git a/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.map b/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.map
new file mode 100644
index 0000000..fb69929
--- /dev/null
+++ b/TL16C754_training.X/dist/default/debug/TL16C754_training.X.debug.map
@@ -0,0 +1,631 @@
+Archive member included to satisfy reference by file (symbol)
+
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                              build/default/debug/main.o (__do_clear_bss)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                              C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o (exit)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o) (_Exit)
+c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                              c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o) (_exit)
+
+Discarded input sections
+
+ .data          0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .bss           0x0000000000000000        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ .text          0x0000000000000000        0x0 build/default/debug/main.o
+ .data          0x0000000000000000        0x0 build/default/debug/main.o
+ .bss           0x0000000000000000        0x0 build/default/debug/main.o
+ .text.initExtClock
+                0x0000000000000000       0x20 build/default/debug/main.o
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x73 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .text          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .data          0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .bss           0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.mul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.div
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc   0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.prologue
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .stack.descriptors
+                0x0000000000000000       0x13 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.builtins
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fmul
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ .text.libgcc.fixed
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x0000000000000000 0x0000000000008000 xr
+data             0x0000000000807000 0x0000000000001000 rw !x
+eeprom           0x0000000000810000 0x0000000000000200 rw !x
+fuse             0x0000000000820000 0x0000000000000010 rw !x
+lock             0x0000000000830000 0x0000000000000400 rw !x
+signature        0x0000000000840000 0x0000000000000400 rw !x
+user_signatures  0x0000000000850000 0x0000000000000400 rw !x
+bootrow          0x0000000000860000 0x0000000000000400 rw !x
+*default*        0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x807000
+                0x0000000000008000                __RODATA_PM_OFFSET__ = 0x8000
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000001                __MPLAB_BUILD = 0x1
+LOAD build/default/debug/main.o
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+END GROUP
+                0x0000000000000001                __MPLAB_DEBUG = 0x1
+                0x0000000000000001                __DEBUG = 0x1
+START GROUP
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
+LOAD c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a
+LOAD C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3\libavr32da48.a
+END GROUP
+                [0x0000000000000000]                __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
+                [0x0000000000807000]                __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x802000
+                [0x0000000000008000]                __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
+                [0x0000000000001000]                __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
+                [0x0000000000000200]                __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
+                [0x0000000000000010]                __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
+                0x0000000000000400                __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
+                0x0000000000000400                __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000000400                __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
+                0x0000000000008000                __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
+                0x0000000000000400                __BOOTROW_REGION_LENGTH__ = DEFINED (__BOOTROW_REGION_LENGTH__)?__BOOTROW_REGION_LENGTH__:0x400
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x0000000000000000      0x142
+ *(.vectors)
+ .vectors       0x0000000000000000       0xe8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000000                __vector_default
+                0x0000000000000000                __vectors
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.dinit)
+ .dinit         0x00000000000000e8        0x5 data_init
+                0x00000000000000ee                . = ALIGN (0x2)
+ *fill*         0x00000000000000ed        0x1 
+                0x00000000000000ee                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000000000000ee        0x0 linker stubs
+ *(.trampolines*)
+                0x00000000000000ee                __trampolines_end = .
+ *libprintf_flt.a:*(.progmem.data)
+ *libc.a:*(.progmem.data)
+                0x00000000000000ee                . = ALIGN (0x2)
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000000000000ee                __ctors_start = .
+ *(.ctors)
+                0x00000000000000ee                __ctors_end = .
+                0x00000000000000ee                __dtors_start = .
+ *(.dtors)
+                0x00000000000000ee                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000000000000ee        0x0 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x00000000000000ee                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000000000000ee        0xc C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x00000000000000fa       0x3c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_copy_data.o)
+                0x00000000000000fa                __do_copy_data
+                0x0000000000000128                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000000000000136        0x8 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+ *(.init9)
+                0x000000000000013e                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x000000000000013e        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+                0x000000000000013e                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x000000000000013e        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+ *(.fini0)
+                0x0000000000000142                _etext = .
+
+.data           0x0000000000807000        0x0 load address 0x0000000000000142
+                [!provide]                        PROVIDE (__data_start, .)
+ *(.gnu.linkonce.d*)
+                0x0000000000807000                . = ALIGN (0x2)
+                0x0000000000807000                _edata = .
+                [!provide]                        PROVIDE (__data_end, .)
+
+.bss            0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__bss_start, .)
+ *(COMMON)
+                [!provide]                        PROVIDE (__bss_end, .)
+                0x0000000000000142                __data_load_start = LOADADDR (.data)
+                0x0000000000000142                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x0000000000807000        0x0
+                [!provide]                        PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                [!provide]                        PROVIDE (__noinit_end, .)
+                0x0000000000807000                _end = .
+
+.eeprom         0x0000000000810000        0x0
+ *(.eeprom*)
+                0x0000000000810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.user_signatures
+ *(.user_signatures*)
+
+.bootrow
+ *(.bootrow*)
+
+.stab
+ *(.stab)
+
+.stabstr
+ *(.stabstr)
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment        0x0000000000000000       0x5b
+ *(.comment)
+ .comment       0x0000000000000000       0x2f build/default/debug/main.o
+                                         0x30 (size before relaxing)
+ .comment       0x000000000000002f       0x2c c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                                         0x2d (size before relaxing)
+ .comment       0x000000000000005b       0x2d c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.stack.descriptors.hdr
+                0x0000000000000000       0x2a
+ .stack.descriptors.hdr
+                0x0000000000000000        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .stack.descriptors.hdr
+                0x000000000000000e        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+ .stack.descriptors.hdr
+                0x000000000000001c        0xe c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
+
+.note.GNU-stack
+                0x0000000000000000        0x0
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+ .note.GNU-stack
+                0x0000000000000000        0x0 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+
+.note.gnu.build-id
+ *(.note.gnu.build-id)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges  0x0000000000000000       0x90
+ *(.debug_aranges)
+ .debug_aranges
+                0x0000000000000000       0x90 build/default/debug/main.o
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info     0x0000000000000000     0x4f3f
+ *(.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     0x1d2b build/default/debug/main.o
+
+.debug_abbrev   0x0000000000000000     0x316d
+ *(.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      0x1ff build/default/debug/main.o
+
+.debug_line     0x0000000000000000      0xc6a
+ *(.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      0xa77 build/default/debug/main.o
+
+.debug_frame    0x0000000000000000      0x268
+ *(.debug_frame)
+ .debug_frame   0x0000000000000000      0x268 build/default/debug/main.o
+
+.debug_str      0x0000000000000000     0x15f1
+ *(.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       0xb8 build/default/debug/main.o
+
+.debug_loc      0x0000000000000000      0x85c
+ *(.debug_loc)
+ .debug_loc     0x0000000000000000      0x85c build/default/debug/main.o
+
+.debug_macinfo
+ *(.debug_macinfo)
+
+.debug_weaknames
+ *(.debug_weaknames)
+
+.debug_funcnames
+ *(.debug_funcnames)
+
+.debug_typenames
+ *(.debug_typenames)
+
+.debug_varnames
+ *(.debug_varnames)
+
+.debug_pubtypes
+ *(.debug_pubtypes)
+
+.debug_ranges   0x0000000000000000       0x80
+ *(.debug_ranges)
+ .debug_ranges  0x0000000000000000       0x80 build/default/debug/main.o
+
+.debug_macro
+ *(.debug_macro)
+OUTPUT(dist/default/debug/TL16C754_training.X.debug.elf elf32-avr)
+LOAD linker stubs
+LOAD data_init
+
+.note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c
+ .note.gnu.avr.deviceinfo
+                0x0000000000000000       0x3c C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+
+.bss.LCR_DEBUG  0x0000000000807000        0x1
+ .bss.LCR_DEBUG
+                0x0000000000807000        0x1 build/default/debug/main.o
+                0x0000000000807000                LCR_DEBUG
+
+.bss.DLH_DEBUG  0x0000000000807001        0x1
+ .bss.DLH_DEBUG
+                0x0000000000807001        0x1 build/default/debug/main.o
+                0x0000000000807001                DLH_DEBUG
+
+.bss.DLL_DEBUG  0x0000000000807002        0x1
+ .bss.DLL_DEBUG
+                0x0000000000807002        0x1 build/default/debug/main.o
+                0x0000000000807002                DLL_DEBUG
+
+.text.main      0x0000000000000142      0x226
+ .text.main     0x0000000000000142      0x226 build/default/debug/main.o
+                0x0000000000000142                main
+
+.text.initUartA
+                0x0000000000000368      0x114
+ .text.initUartA
+                0x0000000000000368      0x114 build/default/debug/main.o
+                0x0000000000000368                initUartA
+
+.text.initUartB
+                0x000000000000047c      0x114
+ .text.initUartB
+                0x000000000000047c      0x114 build/default/debug/main.o
+                0x000000000000047c                initUartB
+
+.text.initUartC
+                0x0000000000000590      0x114
+ .text.initUartC
+                0x0000000000000590      0x114 build/default/debug/main.o
+                0x0000000000000590                initUartC
+
+.text.initUartD
+                0x00000000000006a4      0x114
+ .text.initUartD
+                0x00000000000006a4      0x114 build/default/debug/main.o
+                0x00000000000006a4                initUartD
+
+.text.readPortA
+                0x00000000000007b8       0x60
+ .text.readPortA
+                0x00000000000007b8       0x60 build/default/debug/main.o
+                0x00000000000007b8                readPortA
+
+.text.readPortB
+                0x0000000000000818       0x60
+ .text.readPortB
+                0x0000000000000818       0x60 build/default/debug/main.o
+                0x0000000000000818                readPortB
+
+.text.readPortC
+                0x0000000000000878       0x60
+ .text.readPortC
+                0x0000000000000878       0x60 build/default/debug/main.o
+                0x0000000000000878                readPortC
+
+.text.readPortD
+                0x00000000000008d8       0x60
+ .text.readPortD
+                0x00000000000008d8       0x60 build/default/debug/main.o
+                0x00000000000008d8                readPortD
+
+.text.writePortA
+                0x0000000000000938       0x5a
+ .text.writePortA
+                0x0000000000000938       0x5a build/default/debug/main.o
+                0x0000000000000938                writePortA
+
+.text.writePortB
+                0x0000000000000992       0x5a
+ .text.writePortB
+                0x0000000000000992       0x5a build/default/debug/main.o
+                0x0000000000000992                writePortB
+
+.text.writePortC
+                0x00000000000009ec       0x5a
+ .text.writePortC
+                0x00000000000009ec       0x5a build/default/debug/main.o
+                0x00000000000009ec                writePortC
+
+.text.writePortD
+                0x0000000000000a46       0x5a
+ .text.writePortD
+                0x0000000000000a46       0x5a build/default/debug/main.o
+                0x0000000000000a46                writePortD
+
+.text.setWait   0x0000000000000aa0       0x16
+ .text.setWait  0x0000000000000aa0       0x16 build/default/debug/main.o
+                0x0000000000000aa0                setWait
+
+.text.exit      0x0000000000000ab6       0x16
+ .text.exit     0x0000000000000ab6       0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ab6                exit
+
+.text           0x0000000000000acc        0x4
+ .text          0x0000000000000acc        0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000acc                __vector_38
+                0x0000000000000acc                __vector_22
+                0x0000000000000acc                __vector_28
+                0x0000000000000acc                __vector_1
+                0x0000000000000acc                __vector_32
+                0x0000000000000acc                __vector_34
+                0x0000000000000acc                __vector_24
+                0x0000000000000acc                __vector_12
+                0x0000000000000acc                __vector_55
+                0x0000000000000acc                __vector_46
+                0x0000000000000acc                __bad_interrupt
+                0x0000000000000acc                __vector_6
+                0x0000000000000acc                __vector_31
+                0x0000000000000acc                __vector_35
+                0x0000000000000acc                __vector_39
+                0x0000000000000acc                __vector_3
+                0x0000000000000acc                __vector_23
+                0x0000000000000acc                __vector_30
+                0x0000000000000acc                __vector_45
+                0x0000000000000acc                __vector_25
+                0x0000000000000acc                __vector_11
+                0x0000000000000acc                __vector_54
+                0x0000000000000acc                __vector_13
+                0x0000000000000acc                __vector_17
+                0x0000000000000acc                __vector_19
+                0x0000000000000acc                __vector_56
+                0x0000000000000acc                __vector_7
+                0x0000000000000acc                __vector_49
+                0x0000000000000acc                __vector_41
+                0x0000000000000acc                __vector_43
+                0x0000000000000acc                __vector_27
+                0x0000000000000acc                __vector_5
+                0x0000000000000acc                __vector_33
+                0x0000000000000acc                __vector_47
+                0x0000000000000acc                __vector_52
+                0x0000000000000acc                __vector_37
+                0x0000000000000acc                __vector_4
+                0x0000000000000acc                __vector_44
+                0x0000000000000acc                __vector_51
+                0x0000000000000acc                __vector_9
+                0x0000000000000acc                __vector_2
+                0x0000000000000acc                __vector_21
+                0x0000000000000acc                __vector_15
+                0x0000000000000acc                __vector_36
+                0x0000000000000acc                __vector_29
+                0x0000000000000acc                __vector_40
+                0x0000000000000acc                __vector_8
+                0x0000000000000acc                __vector_26
+                0x0000000000000acc                __vector_48
+                0x0000000000000acc                __vector_14
+                0x0000000000000acc                __vector_57
+                0x0000000000000acc                __vector_53
+                0x0000000000000acc                __vector_10
+                0x0000000000000acc                __vector_50
+                0x0000000000000acc                __vector_16
+                0x0000000000000acc                __vector_18
+                0x0000000000000acc                __vector_20
+                0x0000000000000acc                __vector_42
+
+.text._Exit     0x0000000000000ad0        0x4
+ .text._Exit    0x0000000000000ad0        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                0x0000000000000ad0                _Exit
+
+.text.__dummy_fini
+                0x0000000000000ad4        0x2
+ .text.__dummy_fini
+                0x0000000000000ad4        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad4                _fini
+
+.text.__dummy_funcs_on_exit
+                0x0000000000000ad6        0x2
+ .text.__dummy_funcs_on_exit
+                0x0000000000000ad6        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad6                __funcs_on_exit
+
+.text.__dummy_simulator_exit
+                0x0000000000000ad8        0x2
+ .text.__dummy_simulator_exit
+                0x0000000000000ad8        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad8                __simulator_exit
diff --git a/TL16C754_training.X/dist/default/debug/memoryfile.xml b/TL16C754_training.X/dist/default/debug/memoryfile.xml
new file mode 100644
index 0000000..107a881
--- /dev/null
+++ b/TL16C754_training.X/dist/default/debug/memoryfile.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<project>                                  
+  <executable name="dist/default/debug/TL16C754_training.X.debug.elf">                 
+    <memory name="program">              
+      <units>bytes</units>                 
+      <length>32768</length>                 
+      <used>2778</used>                     
+      <free>29990</free>                     
+    </memory>                              
+    <memory name="data">                 
+      <units>bytes</units>                 
+      <length>4096</length>                 
+      <used>3</used>                     
+      <free>4093</free>                     
+    </memory>                              
+  </executable>                            
+</project>                                 
diff --git a/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.elf b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.elf
new file mode 100644
index 0000000..c3652bc
Binary files /dev/null and b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.elf differ
diff --git a/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.hex b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.hex
new file mode 100644
index 0000000..e30ce9c
--- /dev/null
+++ b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.hex
@@ -0,0 +1,186 @@
+:100000000C9477000C9466050C9466050C946605B8
+:100010000C9466050C9466050C9466050C946605B4
+:100020000C9466050C9466050C9466050C946605A4
+:100030000C9466050C9466050C9466050C94660594
+:100040000C9466050C9466050C9466050C94660584
+:100050000C9466050C9466050C9466050C94660574
+:100060000C9466050C9466050C9466050C94660564
+:100070000C9466050C9466050C9466050C94660554
+:100080000C9466050C9466050C9466050C94660544
+:100090000C9466050C9466050C9466050C94660534
+:1000A0000C9466050C9466050C9466050C94660524
+:1000B0000C9466050C9466050C9466050C94660514
+:1000C0000C9466050C9466050C9466050C94660504
+:1000D0000C9466050C9466050C9466050C946605F4
+:1000E0000C9466050C946605700070038000112462
+:1000F0001FBECFEFCDBFDFE7DEBFE8EEF0E040E0B0
+:1001000017C0B591A59135912591059107FD0CC0BA
+:1001100095918591EF01F92FE82F05900D92A21787
+:10012000B307D9F7FE0104C01D92A217B307E1F788
+:10013000ED3EF40731F70E94A1000C945B05F894A2
+:02014000FFCFEF
+:10014200CF93DF93CDB7DEB7DA95CDBFDEBF88E8B8
+:1001520093E10E945005FE013196CE018F5B9F4FC5
+:1001620011928E179F07E1F7FE01EF5BFF4FCE0161
+:100172008F579F4F11928E179F07E1F7FE01EF579E
+:10018200FF4FCE018F539F4F11928E179F07E1F7BA
+:10019200FE01EF53FF4FCE018F5F9E4F11928E17DC
+:1001A2009F07E1F79CE188ED84BF9093680000E827
+:1001B20014E0D8018C9187608C93E0E2F4E08081B6
+:1001C2008063808380818F6080838C9188608C9330
+:1001D2008481816084838481826084838481846059
+:1001E2008483848188608483848180618483848120
+:1001F2008062848314968C911497886014968C93F1
+:1002020084E690E00E945005F8018481876F848320
+:10021200000020E040E063E081E00E94B40120E0C1
+:1002220040E063E081E00E943E0220E040E063E0C3
+:1002320081E00E94C80220E040E063E081E00E9489
+:10024200520384EF91E00E945005E12CF12C00E072
+:1002520010E085E00E94DC0380FF18C080E00E946D
+:10026200DC03E1E0F0E0EC0FFD1FE10FF11D808304
+:100272001F5F103408F010E0E1E0F0E0EC0FFD1F2A
+:10028200E10FF11D8081883F09F4000085E00E94A2
+:100292000C0480FF18C080E00E940C04E1E4F0E04E
+:1002A200EC0FFD1FE00FF11D80830F5F003408F09B
+:1002B20000E0E1E4F0E0EC0FFD1FE00FF11D8081B2
+:1002C200883F09F4000085E00E943C0480FF19C0C9
+:1002D20080E00E943C04E1E8F0E0EC0FFD1FEF0D2E
+:1002E200F11D8083F394FFE3FF1508F4F12CE1E89C
+:1002F200F0E0EC0FFD1FEF0DF11D8081883F09F446
+:10030200000085E00E946C0480FF19C080E00E941A
+:100312006C04E1ECF0E0EC0FFD1FEE0DF11D8083AB
+:10032200E3948FE38E1508F4E12CE1ECF0E0EC0F9E
+:10033200FD1FEE0DF11D8081883F09F400008091C0
+:100342000070811101C0000080910270811101C012
+:10035200000080910170811101C000008AE090E0EC
+:060362000E94500576CF59
+:10036800DF92EF92FF920F931F93CF93DF93CDB756
+:10037800DEB72C97CDBFDEBFF82E062F142FE22E46
+:10038800198281E08A8392E09B8393E09C8328E62C
+:100398002D8324E32E832AE12F83188689879A8761
+:1003A8001B868C8783E00E94DC03D82E84E190E0D2
+:1003B8000E94500563E08D2D80680E949C0484E1B2
+:1003C80090E00E94500561E080E00E949C0484E176
+:1003D80090E00E94500582E08F1528F0FE01EF0D95
+:1003E800F11D858101C08AE160E00E949C0484E1DE
+:1003F80090E00E94500583E00E94DC038F77043070
+:1004080028F4FE01E00FF11D918101C093E0892BD2
+:1004180091E09E1538F0FE01EE0DF11D9385990FC0
+:10042800990F01C094E0982B133040F4FE01E10FBE
+:10043800F11D8085880F880F880F01C088E163E06F
+:10044800892B0E949C0484E190E00E94500562E0A0
+:1004580081E00E949C0484E190E00E9450052C9663
+:10046800CDBFDEBFDF91CF911F910F91FF90EF902D
+:04047800DF90089574
+:10047C00DF92EF92FF920F931F93CF93DF93CDB741
+:10048C00DEB72C97CDBFDEBFF82E062F142FE22E31
+:10049C00198281E08A8392E09B8393E09C8328E617
+:1004AC002D8324E32E832AE12F83188689879A874C
+:1004BC001B868C8783E00E940C04D82E84E190E08C
+:1004CC000E94500563E08D2D80680E94C90484E170
+:1004DC0090E00E94500561E080E00E94C90484E134
+:1004EC0090E00E94500582E08F1528F0FE01EF0D80
+:1004FC00F11D858101C08AE160E00E94C90484E19C
+:10050C0090E00E94500583E00E940C048F77043029
+:10051C0028F4FE01E00FF11D918101C093E0892BBD
+:10052C0091E09E1538F0FE01EE0DF11D9385990FAB
+:10053C00990F01C094E0982B133040F4FE01E10FA9
+:10054C00F11D8085880F880F880F01C088E163E05A
+:10055C00892B0E94C90484E190E00E94500562E05E
+:10056C0081E00E94C90484E190E00E9450052C9621
+:10057C00CDBFDEBFDF91CF911F910F91FF90EF9018
+:04058C00DF9008955F
+:10059000DF92EF92FF920F931F93CF93DF93CDB72C
+:1005A000DEB72C97CDBFDEBFF82E062F142FE22E1C
+:1005B000198281E08A8392E09B8393E09C8328E602
+:1005C0002D8324E32E832AE12F83188689879A8737
+:1005D0001B868C8783E00E943C04D82E84E190E047
+:1005E0000E94500563E08D2D80680E94F60484E12E
+:1005F00090E00E94500561E080E00E94F60484E1F2
+:1006000090E00E94500582E08F1528F0FE01EF0D6A
+:10061000F11D858101C08AE160E00E94F60484E159
+:1006200090E00E94500583E00E943C048F770430E4
+:1006300028F4FE01E00FF11D918101C093E0892BA8
+:1006400091E09E1538F0FE01EE0DF11D9385990F96
+:10065000990F01C094E0982B133040F4FE01E10F94
+:10066000F11D8085880F880F880F01C088E163E045
+:10067000892B0E94F60484E190E00E94500562E01C
+:1006800081E00E94F60484E190E00E9450052C96DF
+:10069000CDBFDEBFDF91CF911F910F91FF90EF9003
+:0406A000DF9008954A
+:1006A400DF92EF92FF920F931F93CF93DF93CDB717
+:1006B400DEB72C97CDBFDEBFF82E062F142FE22E07
+:1006C400198281E08A8392E09B8393E09C8328E6ED
+:1006D4002D8324E32E832AE12F83188689879A8722
+:1006E4001B868C8783E00E946C04D82E84E190E002
+:1006F4000E94500563E08D2D80680E94230584E1EB
+:1007040090E00E94500561E080E00E94230584E1AE
+:1007140090E00E94500582E08F1528F0FE01EF0D55
+:10072400F11D858101C08AE160E00E94230584E116
+:1007340090E00E94500583E00E946C048F7704309F
+:1007440028F4FE01E00FF11D918101C093E0892B93
+:1007540091E09E1538F0FE01EE0DF11D9385990F81
+:10076400990F01C094E0982B133040F4FE01E10F7F
+:10077400F11D8085880F880F880F01C088E163E030
+:10078400892B0E94230584E190E00E94500562E0D9
+:1007940081E00E94230584E190E00E9450052C969C
+:1007A400CDBFDEBFDF91CF911F910F91FF90EF90EE
+:0407B400DF90089535
+:1007B8000F931F93CF93DF9300E614E0F8011082A4
+:1007C80080938404C0E2D4E08C818E7F8C8383E0A4
+:1007D80090E00E9450058C818F7D8C8383E090E0AF
+:1007E8000E945005F801108583E090E00E945005B2
+:1007F8008C8180628C8383E090E00E9450058C811C
+:1008080081608C83812FDF91CF911F910F91089583
+:100818000F931F93CF93DF9300E614E0F801108243
+:1008280080938404C0E2D4E08C818D7F8C8383E044
+:1008380090E00E9450058C818F7D8C8383E090E04E
+:100848000E945005F801108583E090E00E94500551
+:100858008C8180628C8383E090E00E9450058C81BB
+:1008680082608C83812FDF91CF911F910F91089522
+:100878000F931F93CF93DF9300E614E0F8011082E3
+:1008880080938404C0E2D4E08C818B7F8C8383E0E6
+:1008980090E00E9450058C818F7D8C8383E090E0EE
+:1008A8000E945005F801108583E090E00E945005F1
+:1008B8008C8180628C8383E090E00E9450058C815B
+:1008C80084608C83812FDF91CF911F910F910895C0
+:1008D8000F931F93CF93DF9300E614E0F801108283
+:1008E80080938404C0E2D4E08C81877F8C8383E08A
+:1008F80090E00E9450058C818F7D8C8383E090E08E
+:100908000E945005F801108583E090E00E94500590
+:100918008C8180628C8383E090E00E9450058C81FA
+:1009280088608C83812FDF91CF911F910F9108955B
+:100938000F931F93CF93DF9300E614E09FEFF80126
+:100948009083609384048483C0E2D4E08C818E7F9A
+:100958008C8383E090E00E9450058C818F7E8C838D
+:1009680083E090E00E9450058C8180618C8383E055
+:1009780090E00E9450058C8181608C83F801108280
+:0A098800DF91CF911F910F910895A8
+:100992000F931F93CF93DF9300E614E09FEFF801CC
+:1009A2009083609384048483C0E2D4E08C818D7F41
+:1009B2008C8383E090E00E9450058C818F7E8C8333
+:1009C20083E090E00E9450058C8180618C8383E0FB
+:1009D20090E00E9450058C8182608C83F801108225
+:0A09E200DF91CF911F910F9108954E
+:1009EC000F931F93CF93DF9300E614E09FEFF80172
+:1009FC009083609384048483C0E2D4E08C818B7FE9
+:100A0C008C8383E090E00E9450058C818F7E8C83D8
+:100A1C0083E090E00E9450058C8180618C8383E0A0
+:100A2C0090E00E9450058C8184608C83F8011082C8
+:0A0A3C00DF91CF911F910F910895F3
+:100A46000F931F93CF93DF9300E614E09FEFF80117
+:100A56009083609384048483C0E2D4E08C81877F92
+:100A66008C8383E090E00E9450058C818F7E8C837E
+:100A760083E090E00E9450058C8180618C8383E046
+:100A860090E00E9450058C8188608C83F80110826A
+:0A0A9600DF91CF911F910F91089599
+:100AA000009741F020E030E000002F5F3F4F8217B9
+:060AB0009307D1F7089541
+:100AB600EC010E946B050E946A05CE010E946C053E
+:060AC600CE010E9468054C
+:040ACC000C94000086
+:040AD0000E949F00E1
+:020AD400089583
+:020AD600089581
+:020AD80008957F
+:00000001FF
diff --git a/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.map b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.map
new file mode 100644
index 0000000..f41a281
--- /dev/null
+++ b/TL16C754_training.X/dist/default/production/TL16C754_training.X.production.map
@@ -0,0 +1,629 @@
+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.initExtClock
+                0x0000000000000000       0x20 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       0x90
+ *(.debug_aranges)
+ .debug_aranges
+                0x0000000000000000       0x90 build/default/production/main.o
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info     0x0000000000000000     0x4f32
+ *(.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     0x1d1e build/default/production/main.o
+
+.debug_abbrev   0x0000000000000000     0x316d
+ *(.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      0x1ff build/default/production/main.o
+
+.debug_line     0x0000000000000000      0xc6a
+ *(.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      0xa77 build/default/production/main.o
+
+.debug_frame    0x0000000000000000      0x268
+ *(.debug_frame)
+ .debug_frame   0x0000000000000000      0x268 build/default/production/main.o
+
+.debug_str      0x0000000000000000     0x15f1
+ *(.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       0xb8 build/default/production/main.o
+
+.debug_loc      0x0000000000000000      0x85c
+ *(.debug_loc)
+ .debug_loc     0x0000000000000000      0x85c 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       0x80
+ *(.debug_ranges)
+ .debug_ranges  0x0000000000000000       0x80 build/default/production/main.o
+
+.debug_macro
+ *(.debug_macro)
+OUTPUT(dist/default/production/TL16C754_training.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.LCR_DEBUG  0x0000000000807000        0x1
+ .bss.LCR_DEBUG
+                0x0000000000807000        0x1 build/default/production/main.o
+                0x0000000000807000                LCR_DEBUG
+
+.bss.DLH_DEBUG  0x0000000000807001        0x1
+ .bss.DLH_DEBUG
+                0x0000000000807001        0x1 build/default/production/main.o
+                0x0000000000807001                DLH_DEBUG
+
+.bss.DLL_DEBUG  0x0000000000807002        0x1
+ .bss.DLL_DEBUG
+                0x0000000000807002        0x1 build/default/production/main.o
+                0x0000000000807002                DLL_DEBUG
+
+.text.main      0x0000000000000142      0x226
+ .text.main     0x0000000000000142      0x226 build/default/production/main.o
+                0x0000000000000142                main
+
+.text.initUartA
+                0x0000000000000368      0x114
+ .text.initUartA
+                0x0000000000000368      0x114 build/default/production/main.o
+                0x0000000000000368                initUartA
+
+.text.initUartB
+                0x000000000000047c      0x114
+ .text.initUartB
+                0x000000000000047c      0x114 build/default/production/main.o
+                0x000000000000047c                initUartB
+
+.text.initUartC
+                0x0000000000000590      0x114
+ .text.initUartC
+                0x0000000000000590      0x114 build/default/production/main.o
+                0x0000000000000590                initUartC
+
+.text.initUartD
+                0x00000000000006a4      0x114
+ .text.initUartD
+                0x00000000000006a4      0x114 build/default/production/main.o
+                0x00000000000006a4                initUartD
+
+.text.readPortA
+                0x00000000000007b8       0x60
+ .text.readPortA
+                0x00000000000007b8       0x60 build/default/production/main.o
+                0x00000000000007b8                readPortA
+
+.text.readPortB
+                0x0000000000000818       0x60
+ .text.readPortB
+                0x0000000000000818       0x60 build/default/production/main.o
+                0x0000000000000818                readPortB
+
+.text.readPortC
+                0x0000000000000878       0x60
+ .text.readPortC
+                0x0000000000000878       0x60 build/default/production/main.o
+                0x0000000000000878                readPortC
+
+.text.readPortD
+                0x00000000000008d8       0x60
+ .text.readPortD
+                0x00000000000008d8       0x60 build/default/production/main.o
+                0x00000000000008d8                readPortD
+
+.text.writePortA
+                0x0000000000000938       0x5a
+ .text.writePortA
+                0x0000000000000938       0x5a build/default/production/main.o
+                0x0000000000000938                writePortA
+
+.text.writePortB
+                0x0000000000000992       0x5a
+ .text.writePortB
+                0x0000000000000992       0x5a build/default/production/main.o
+                0x0000000000000992                writePortB
+
+.text.writePortC
+                0x00000000000009ec       0x5a
+ .text.writePortC
+                0x00000000000009ec       0x5a build/default/production/main.o
+                0x00000000000009ec                writePortC
+
+.text.writePortD
+                0x0000000000000a46       0x5a
+ .text.writePortD
+                0x0000000000000a46       0x5a build/default/production/main.o
+                0x0000000000000a46                writePortD
+
+.text.setWait   0x0000000000000aa0       0x16
+ .text.setWait  0x0000000000000aa0       0x16 build/default/production/main.o
+                0x0000000000000aa0                setWait
+
+.text.exit      0x0000000000000ab6       0x16
+ .text.exit     0x0000000000000ab6       0x16 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ab6                exit
+
+.text           0x0000000000000acc        0x4
+ .text          0x0000000000000acc        0x4 C:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/AVR-Dx_DFP/2.4.286/xc8/avr/lib/avrxmega3/crtavr32da48.o
+                0x0000000000000acc                __vector_38
+                0x0000000000000acc                __vector_22
+                0x0000000000000acc                __vector_28
+                0x0000000000000acc                __vector_1
+                0x0000000000000acc                __vector_32
+                0x0000000000000acc                __vector_34
+                0x0000000000000acc                __vector_24
+                0x0000000000000acc                __vector_12
+                0x0000000000000acc                __vector_55
+                0x0000000000000acc                __vector_46
+                0x0000000000000acc                __bad_interrupt
+                0x0000000000000acc                __vector_6
+                0x0000000000000acc                __vector_31
+                0x0000000000000acc                __vector_35
+                0x0000000000000acc                __vector_39
+                0x0000000000000acc                __vector_3
+                0x0000000000000acc                __vector_23
+                0x0000000000000acc                __vector_30
+                0x0000000000000acc                __vector_45
+                0x0000000000000acc                __vector_25
+                0x0000000000000acc                __vector_11
+                0x0000000000000acc                __vector_54
+                0x0000000000000acc                __vector_13
+                0x0000000000000acc                __vector_17
+                0x0000000000000acc                __vector_19
+                0x0000000000000acc                __vector_56
+                0x0000000000000acc                __vector_7
+                0x0000000000000acc                __vector_49
+                0x0000000000000acc                __vector_41
+                0x0000000000000acc                __vector_43
+                0x0000000000000acc                __vector_27
+                0x0000000000000acc                __vector_5
+                0x0000000000000acc                __vector_33
+                0x0000000000000acc                __vector_47
+                0x0000000000000acc                __vector_52
+                0x0000000000000acc                __vector_37
+                0x0000000000000acc                __vector_4
+                0x0000000000000acc                __vector_44
+                0x0000000000000acc                __vector_51
+                0x0000000000000acc                __vector_9
+                0x0000000000000acc                __vector_2
+                0x0000000000000acc                __vector_21
+                0x0000000000000acc                __vector_15
+                0x0000000000000acc                __vector_36
+                0x0000000000000acc                __vector_29
+                0x0000000000000acc                __vector_40
+                0x0000000000000acc                __vector_8
+                0x0000000000000acc                __vector_26
+                0x0000000000000acc                __vector_48
+                0x0000000000000acc                __vector_14
+                0x0000000000000acc                __vector_57
+                0x0000000000000acc                __vector_53
+                0x0000000000000acc                __vector_10
+                0x0000000000000acc                __vector_50
+                0x0000000000000acc                __vector_16
+                0x0000000000000acc                __vector_18
+                0x0000000000000acc                __vector_20
+                0x0000000000000acc                __vector_42
+
+.text._Exit     0x0000000000000ad0        0x4
+ .text._Exit    0x0000000000000ad0        0x4 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(_Exit.o)
+                0x0000000000000ad0                _Exit
+
+.text.__dummy_fini
+                0x0000000000000ad4        0x2
+ .text.__dummy_fini
+                0x0000000000000ad4        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad4                _fini
+
+.text.__dummy_funcs_on_exit
+                0x0000000000000ad6        0x2
+ .text.__dummy_funcs_on_exit
+                0x0000000000000ad6        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad6                __funcs_on_exit
+
+.text.__dummy_simulator_exit
+                0x0000000000000ad8        0x2
+ .text.__dummy_simulator_exit
+                0x0000000000000ad8        0x2 c:/program files/microchip/xc8/v2.46/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a(exit.o)
+                0x0000000000000ad8                __simulator_exit
diff --git a/TL16C754_training.X/dist/default/production/memoryfile.xml b/TL16C754_training.X/dist/default/production/memoryfile.xml
new file mode 100644
index 0000000..ef59d05
--- /dev/null
+++ b/TL16C754_training.X/dist/default/production/memoryfile.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<project>                                  
+  <executable name="dist/default/production/TL16C754_training.X.production.elf">                 
+    <memory name="program">              
+      <units>bytes</units>                 
+      <length>32768</length>                 
+      <used>2778</used>                     
+      <free>29990</free>                     
+    </memory>                              
+    <memory name="data">                 
+      <units>bytes</units>                 
+      <length>4096</length>                 
+      <used>3</used>                     
+      <free>4093</free>                     
+    </memory>                              
+  </executable>                            
+</project>                                 
diff --git a/TL16C754_training.X/macros_def.h b/TL16C754_training.X/macros_def.h
new file mode 100644
index 0000000..7fed71d
--- /dev/null
+++ b/TL16C754_training.X/macros_def.h
@@ -0,0 +1,91 @@
+/* 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:   
+ * Author: 
+ * Comments:
+ * Revision history: 
+ */
+
+// This is a guard condition so that contents of this file are not included
+// more than once.  
+#ifndef MACROS_DEF_HEADER_H
+#define	MACROS_DEF_HEADER_H
+
+#include <xc.h> // include processor files - each processor file is guarded.  
+
+
+
+
+
+//Data pins
+#define DATAWRITE(x)        PORTD.OUT = x
+#define DATADIR(x)          PORTD.DIR = x
+#define DATAREAD            PORTD.IN
+
+//Address pins
+#define ADDRWRITE(x)        PORTE.OUT = x
+#define ADDR_ENABLE         PORTE.DIR |= 0x07
+
+
+//Controls pins
+#define ENABLE_POW_SUPPLY_PIN   PORTF.DIR |= 0x01
+#define ENABLE_WR_RD_PINS       PORTB.DIR |= 0x30
+#define ENABLE_CS_PINS          PORTB.DIR |= 0x0F
+#define ENABLE_RESET_PIN        PORTE.DIR |= 0x08
+#define POWER_ON                PORTF.OUT |= 0x01
+#define POWER_OFF               PORTF.OUT &= ~(0x01)
+#define SETRST                  PORTE.OUT |= 0x08
+#define SETWR                   PORTB.OUT |= 0x10
+#define SETRD                   PORTB.OUT |= 0x20
+#define SETCSA                  PORTB.OUT |= 0x01
+#define SETCSB                  PORTB.OUT |= 0x02
+#define SETCSC                  PORTB.OUT |= 0x04
+#define SETCSD                  PORTB.OUT |= 0x08
+#define CLRRST                  PORTE.OUT |= ~(0x08)
+#define CLRWR                   PORTB.OUT &= ~(0x10)
+#define CLRRD                   PORTB.OUT &= ~(0x20)
+#define CLRCSA                  PORTB.OUT &= ~(0x01)
+#define CLRCSB                  PORTB.OUT &= ~(0x02)
+#define CLRCSC                  PORTB.OUT &= ~(0x04)
+#define CLRCSD                  PORTB.OUT &= ~(0x08)
+
+
+
+//////////////////////////////////////////////////
+//For uC
+enum prescaler_index {
+    DIV1 = 0,
+    DIV2,
+    DIV4,
+    DIV8,
+    DIV16,
+    DIV64,
+    DIV256,
+    DIV1024,
+};
+
+
+
+
+#endif	/* XC_HEADER_TEMPLATE_H */
+
diff --git a/TL16C754_training.X/main.c b/TL16C754_training.X/main.c
new file mode 100644
index 0000000..97832fd
--- /dev/null
+++ b/TL16C754_training.X/main.c
@@ -0,0 +1,622 @@
+/*
+ * File:   newmain.c
+ * Author: eniro
+ *
+ * Created on May 27, 2024, 3:32 PM
+ */
+
+
+#define F_CPU 24000000UL
+
+#include <xc.h>
+#include <math.h>
+#include <stdlib.h>
+#include <util/delay.h>
+#include <avr/interrupt.h>
+#include <avr/eeprom.h>
+#include "macros_def.h"
+#include "TL16C_addr.h"
+#include "TL16C_CFG.h"
+
+
+//OSC. setup
+#define FREQSEL             0x7   //16MHz
+#define _FREQSEL_REG_WR     ((FREQSEL) << 2)
+
+
+
+//////////////////////////////////////
+//prototypes functions
+
+void initUartA(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initUartB(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initUartC(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+void initUartD(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit);
+
+void writePortA(uint8_t reg, uint8_t addr);
+void writePortB(uint8_t reg, uint8_t addr);
+void writePortC(uint8_t reg, uint8_t addr);
+void writePortD(uint8_t reg, uint8_t addr);
+uint8_t readPortA(uint8_t addr);
+uint8_t readPortB(uint8_t addr);
+uint8_t readPortC(uint8_t addr);
+uint8_t readPortD(uint8_t addr);
+
+void initExtClock(uint8_t prescaler, uint16_t cnt); //set an external clock on PA0
+void setWait(uint16_t cnt); //fast delay
+
+
+uint8_t DLL_DEBUG, DLH_DEBUG, LCR_DEBUG;
+
+//////////////////////////////////////
+
+
+
+
+int main(void) {
+    
+    uint8_t ctrlReg;
+    uint8_t bufferA[64], bufferB[64], bufferC[64], bufferD[64];
+    uint8_t counterA = 0, counterB = 0, counterC = 0, counterD = 0;
+    
+    setWait(5000);
+    
+    
+    for(int i = 0; i < 64; i++)
+    {
+        bufferA[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferB[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferC[i] = 0;
+    }
+    for(int i = 0; i < 64; i++)
+    {
+        bufferD[i] = 0;
+    }
+    
+    _PROTECTED_WRITE(CLKCTRL.OSCHFCTRLA, _FREQSEL_REG_WR); //switch to 24 MHz
+    
+    //initExtClock(DIV1, 0x0000); //Set clock out with prescaler
+    
+    //Enable pins (Port direction)
+    ADDR_ENABLE;        //Address pins
+    ENABLE_WR_RD_PINS;  //Read and Write pins
+    ENABLE_CS_PINS;     //Chip select pins
+    ENABLE_RESET_PIN;   //Reset pin
+    
+    //////////////////////////////////////////////////////////////
+    //Remember to put high level on cs pins to disable devices...
+    SETCSA;
+    SETCSB;
+    SETCSC;
+    SETCSD;
+    //Also don't forget IOR and IOW
+    SETWR;
+    SETRD;
+    //////////////////////////////////////////////////////////////
+    
+    
+    /*ENABLE_POW_SUPPLY_PIN;
+    POWER_OFF;
+    _delay_ms(500);
+    POWER_ON;
+    _delay_ms(500);*/
+    
+    
+ 
+    
+    ////////////////////////////////////////
+    //init TL16C IC
+    SETRST; 
+    //_delay_ms(10);
+    setWait(100);
+    CLRRST;
+    ////////////////////////////////////////
+    
+    asm("nop"); //wait a little bit for reset sequence back on boot
+    
+    
+    //uint16_t wordTemp;
+    /*uint8_t regVal; //temp value for reading register and change it's value without clearing it
+    regVal = readPortA(LCR_REG); 
+    writePortA(0x9D, LCR_REG); //set LCR[7] = 1 -> enable divisor latch mode
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    //wordTemp = busSpeed >> 8;
+    writePortA(0, DLH_REG); //Always 0x00 in our cfg... 
+    LCR_DEBUG = readPortA(DLH_REG);
+    writePortA(104, DLL_REG); //Set speed... 
+    LCR_DEBUG = readPortA(DLL_REG);
+    _delay_ms(1);
+    writePortA(3, LCR_REG); 
+    LCR_DEBUG = readPortA(LCR_REG);
+    _delay_ms(1);
+    writePortA(0x01, FCR_REG); //enable FIFO
+    _delay_ms(250); //wait a bit
+    */
+    
+    initUartA(BAUDS_19200, DATA_8BITS, NO_PARITY, ONE_STOPBIT);
+    initUartB(BAUDS_19200, DATA_8BITS, NO_PARITY, ONE_STOPBIT);
+    initUartC(BAUDS_19200, DATA_8BITS, NO_PARITY, ONE_STOPBIT);
+    initUartD(BAUDS_19200, DATA_8BITS, NO_PARITY, ONE_STOPBIT);
+    //ctrlReg = readPortA(LSR_REG);
+    //ctrlReg = readPortA(RHR_REG);
+    /*ctrlReg = readPortB(LSR_REG);
+    ctrlReg = readPortB(RHR_REG);
+    ctrlReg = readPortC(LSR_REG);
+    ctrlReg = readPortC(RHR_REG);
+    ctrlReg = readPortD(LSR_REG);
+    ctrlReg = readPortD(RHR_REG);*/
+    //_delay_ms(1000);
+    setWait(500);
+    ctrlReg = 0;
+    
+    while(1)
+    {
+        //Tx send
+        /*writePortA(0x42, THR_REG);
+        writePortA(0x55, THR_REG);
+        writePortA(0x43, THR_REG);
+        writePortA(0x60, THR_REG);
+        writePortA(0x97, THR_REG);
+        writePortA(0x54, THR_REG);
+        writePortA(0x26, THR_REG);
+        writePortA(0x08, THR_REG);*/
+        
+        
+        ////////////////////////////////////////////////////////
+        //Read UART A
+        
+        ctrlReg = readPortA(LSR_REG);
+        
+        if((ctrlReg & 0x01) == 0x01) //Check if one byte available
+        {
+            bufferA[counterA] = readPortA(RHR_REG); 
+            counterA++; 
+            if(counterA >= 64)
+                counterA = 0;
+            
+            if(bufferA[counterA] == 0xF8)
+                asm("nop");
+                          
+            ctrlReg = 0;
+        }
+        
+       
+        ////////////////////////////////////////////////////////
+        //Read UART B
+        
+        ctrlReg = readPortB(LSR_REG);
+        
+        if((ctrlReg & 0x01) == 0x01) //Check if one byte available
+        {
+            bufferB[counterB] = readPortB(RHR_REG); 
+            counterB++; 
+            if(counterB >= 64)
+                counterB = 0;
+            
+            if(bufferB[counterB] == 0xF8)
+                asm("nop");
+                          
+            ctrlReg = 0;
+        }
+        
+        
+        ////////////////////////////////////////////////////////
+        //Read UART C
+        
+        ctrlReg = readPortC(LSR_REG);
+        
+        if((ctrlReg & 0x01) == 0x01) //Check if one byte available
+        {
+            bufferC[counterC] = readPortC(RHR_REG); 
+            counterC++; 
+            if(counterC >= 64)
+                counterC = 0;
+            
+            if(bufferC[counterC] == 0xF8)
+                asm("nop");
+                          
+            ctrlReg = 0;
+        }
+        
+        ////////////////////////////////////////////////////////
+        //Read UART D
+        
+        ctrlReg = readPortD(LSR_REG);
+        
+        if((ctrlReg & 0x01) == 0x01) //Check if one byte available
+        {
+            bufferD[counterD] = readPortD(RHR_REG); 
+            counterD++; 
+            if(counterD >= 64)
+                counterD = 0;
+            
+            if(bufferD[counterD] == 0xF8)
+                asm("nop");
+                          
+            ctrlReg = 0;
+        }
+        
+        
+        
+        if(LCR_DEBUG == 0x00)
+        asm("nop");
+    
+        if(DLL_DEBUG == 0x00)
+            asm("nop");
+
+        if(DLH_DEBUG == 0x00)
+            asm("nop");
+    
+        
+        setWait(10);
+        //_delay_ms(1);
+    }
+    
+    
+    return 0;
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//functions
+
+
+//////////////////////////////////////
+//High level functions
+
+void initUartA(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    uint8_t wordValues[] = {DATA_5BITS, DATA_6BITS, DATA_7BITS, DATA_8BITS};
+    uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    uint8_t parityValues[] = {PARITY_NONE, PARITY_ODD, PARITY_EVEN};
+    uint8_t stopBitValues[] = {STOPBIT_ONE, STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortA(LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    regVal |= DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortA(regVal, LCR_REG); //switch Mode
+    //_delay_ms(1);
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortA(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    //_delay_ms(1);
+    setWait(20);
+    writePortA(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    //_delay_ms(1);
+    setWait(20);
+    
+    regVal = readPortA(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    regVal |= dataBits > 3 ? DATA_8BITS : wordValues[dataBits]; //set 8bits mode
+    regVal |= (stopBit > 1 ? STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    regVal |= (parity > 2 ? PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    writePortA(regVal, LCR_REG);
+    //_delay_ms(1);
+    setWait(20);
+    writePortA(0x01, FCR_REG); //enable FIFO
+    //_delay_ms(250); //wait a bit
+    setWait(20);
+}
+
+
+void initUartB(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    uint8_t wordValues[] = {DATA_5BITS, DATA_6BITS, DATA_7BITS, DATA_8BITS};
+    uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    uint8_t parityValues[] = {PARITY_NONE, PARITY_ODD, PARITY_EVEN};
+    uint8_t stopBitValues[] = {STOPBIT_ONE, STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortB(LCR_REG);
+    setWait(20);
+    regVal |= DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortB(regVal, LCR_REG); //switch Mode
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortB(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    setWait(20);
+    writePortB(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    setWait(20);
+    
+    regVal = readPortB(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    regVal |= dataBits > 3 ? DATA_8BITS : wordValues[dataBits]; //set 8bits mode
+    regVal |= (stopBit > 1 ? STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    regVal |= (parity > 2 ? PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    writePortB(regVal, LCR_REG);
+    setWait(20);
+    writePortB(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+void initUartC(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    uint8_t wordValues[] = {DATA_5BITS, DATA_6BITS, DATA_7BITS, DATA_8BITS};
+    uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    uint8_t parityValues[] = {PARITY_NONE, PARITY_ODD, PARITY_EVEN};
+    uint8_t stopBitValues[] = {STOPBIT_ONE, STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortC(LCR_REG);
+    setWait(20);
+    regVal |= DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortC(regVal, LCR_REG); //switch Mode
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortC(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    setWait(20);
+    writePortC(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    setWait(20);
+    
+    regVal = readPortC(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    regVal |= dataBits > 3 ? DATA_8BITS : wordValues[dataBits]; //set 8bits mode
+    regVal |= (stopBit > 1 ? STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    regVal |= (parity > 2 ? PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    writePortC(regVal, LCR_REG);
+    setWait(20);
+    writePortC(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+
+void initUartD(uint8_t busSpeed, uint8_t dataBits, uint8_t parity, uint8_t stopBit)
+{
+    
+    uint8_t regVal; //temp value for reading register and change it's value without clearing it
+    //void (*callFuncWR)();
+    //uint8_t (*callFuncRD)();
+    //uint16_t addrWriteFunc[] = {&writePortA, &writePortB, &writePortC, &writePortD};
+    //uint16_t addrReadFunc[] = {&readPortA, &readPortB, &readPortC, &readPortD};
+    uint8_t wordValues[] = {DATA_5BITS, DATA_6BITS, DATA_7BITS, DATA_8BITS};
+    uint8_t baudsValues[] = {DL_9600_BAUDS, DL_19200_BAUDS, DL_38400_BAUDS};
+    uint8_t parityValues[] = {PARITY_NONE, PARITY_ODD, PARITY_EVEN};
+    uint8_t stopBitValues[] = {STOPBIT_ONE, STOPBIT_TWO};
+    
+    //callFuncWR = uart_type > 3 ? writePortD : addrWriteFunc[uart_type];
+    //callFuncRD = uart_type > 3 ? writePortD : addrReadFunc[uart_type];
+    
+    
+    //Read register first...
+    regVal = readPortD(LCR_REG);
+    setWait(20);
+    regVal |= DLAB_ERF_EN_BIT; //set LCR[7] = 1 -> enable divisor latch mode
+    writePortD(regVal, LCR_REG); //switch Mode
+    setWait(20);
+    //Set bus speed (according of 8MHz OSC. -> DL = Fosc/(16*Fbauds*DIV)); 
+    //DIV = 1 or 4 (see TL16C datasheet p.14), we use here DIV = 1 
+    writePortD(0x00, DLH_REG); //Always 0x00 in our cfg... MAX 12MHz
+    setWait(20);
+    writePortD(busSpeed > 2 ? DL_38400_BAUDS : baudsValues[busSpeed], DLL_REG);
+    setWait(20);
+    
+    regVal = readPortD(LCR_REG);
+    regVal &= ~(DLAB_ERF_EN_BIT); //set LCR[7] = 0 -> disable divisor latch mode
+    
+    regVal |= dataBits > 3 ? DATA_8BITS : wordValues[dataBits]; //set 8bits mode
+    regVal |= (stopBit > 1 ? STOPBIT_TWO : stopBitValues[stopBit]) << 2; //set stop bits
+    regVal |= (parity > 2 ? PARITY_EVEN : parityValues[parity]) << 3; //set stop bits
+    writePortD(regVal, LCR_REG);
+    setWait(20);
+    writePortD(0x01, FCR_REG); //enable FIFO
+    setWait(20);
+}
+
+
+
+
+
+
+
+//set an external clock on PA0
+void initExtClock(uint8_t prescaler, uint16_t cnt)
+{
+    TCA0.SINGLE.CMP0 = cnt; //set number of count that define period
+    TCA0.SINGLE.CTRLA = 0x01 | ((prescaler & 0x7) << 1) ; //enable with DIVn prescaler
+    TCA0.SINGLE.CTRLB = 0x11; //Freq mode and enable CMP0 bit for waveform output
+    PORTA.DIR |= 0x01; // PA0 OUTPUT
+}
+
+
+
+///////////////////////////////////////////////////////
+//write functions
+
+
+
+void writePortA(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSA; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSA; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortB(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSB; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSB; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortC(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSC; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSC; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+void writePortD(uint8_t reg, uint8_t addr)
+{
+    DATADIR(0xFF); //set I/O on write mode
+    ADDRWRITE(addr); //search uartn register
+    DATAWRITE(reg); //write data
+    CLRCSD; //enable uartA call
+    setWait(3);
+    CLRWR; //enable write mode
+    setWait(3);
+    SETWR; //disable write mode
+    setWait(3);
+    SETCSD; //disable uartA call
+    DATADIR(0x00); //set input mode (to reduce power consumption)
+}
+
+
+///////////////////////////////////////////////////////
+//read functions
+
+
+uint8_t readPortA(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSA; //enable uartA call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSA; //hang up uartA call
+    return result;
+}
+
+uint8_t readPortB(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSB; //enable uartB call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSB; //hang up uartB call
+    return result;
+}
+
+uint8_t readPortC(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSC; //enable uartC call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSC; //hang up uartC call
+    return result;
+}
+
+uint8_t readPortD(uint8_t addr)
+{
+    uint8_t result;
+    DATADIR(0x00); //set I/O on read mode
+    ADDRWRITE(addr); //search uartn register
+    CLRCSD; //enable uartD call
+    setWait(3);
+    CLRRD; //enable read mode
+    setWait(3);
+    result = PORTD.IN; //set I/O on read mode
+    setWait(3);
+    SETRD; //disable read mode
+    setWait(3);
+    SETCSD; //hang up uartD call
+    return result;
+}
+
+
+
+
+
+
+
+void setWait(uint16_t cnt)
+{
+    uint16_t k = 0;
+    while(k < cnt)
+    {
+        asm("nop");
+        k++;
+    }
+}
\ No newline at end of file
diff --git a/TL16C754_training.X/nbproject/Makefile-default.mk b/TL16C754_training.X/nbproject/Makefile-default.mk
new file mode 100644
index 0000000..9ac75df
--- /dev/null
+++ b/TL16C754_training.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}/TL16C754_training.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+else
+IMAGE_TYPE=production
+OUTPUT_SUFFIX=hex
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=${DISTDIR}/TL16C754_training.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}/TL16C754_training.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/1cd200f2b56e838de0534bf899fba8efc82480a3 .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/fc9ad4e586b01e7fe44a0ddff77856f6939de4ce .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}/TL16C754_training.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}/TL16C754_training.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}/TL16C754_training.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  -o ${DISTDIR}/TL16C754_training.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}/TL16C754_training.X.${IMAGE_TYPE}.hex 
+	
+	
+else
+${DISTDIR}/TL16C754_training.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}/TL16C754_training.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}/TL16C754_training.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  -o ${DISTDIR}/TL16C754_training.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}/TL16C754_training.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/TL16C754_training.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/TL16C754_training.X/nbproject/Makefile-genesis.properties b/TL16C754_training.X/nbproject/Makefile-genesis.properties
new file mode 100644
index 0000000..e4c375e
--- /dev/null
+++ b/TL16C754_training.X/nbproject/Makefile-genesis.properties
@@ -0,0 +1,13 @@
+#
+#Tue Jun 18 10:48:46 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=e0b496d230471d2c1de161be1f027604
+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\\TL16C754_training.X
+host.platform=windows
diff --git a/TL16C754_training.X/nbproject/Makefile-impl.mk b/TL16C754_training.X/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..7856379
--- /dev/null
+++ b/TL16C754_training.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=TL16C754_training.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/TL16C754_training.X/nbproject/Makefile-local-default.mk b/TL16C754_training.X/nbproject/Makefile-local-default.mk
new file mode 100644
index 0000000..3222869
--- /dev/null
+++ b/TL16C754_training.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/TL16C754_training.X/nbproject/Makefile-variables.mk b/TL16C754_training.X/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..9efc15a
--- /dev/null
+++ b/TL16C754_training.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=TL16C754_training.X.production.hex
+CND_ARTIFACT_PATH_default=dist/default/production/TL16C754_training.X.production.hex
diff --git a/TL16C754_training.X/nbproject/configurations.xml b/TL16C754_training.X/nbproject/configurations.xml
new file mode 100644
index 0000000..0b53f1d
--- /dev/null
+++ b/TL16C754_training.X/nbproject/configurations.xml
@@ -0,0 +1,177 @@
+<?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>macros_def.h</itemPath>
+      <itemPath>TL16C_addr.h</itemPath>
+      <itemPath>TL16C_CFG.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="debugoptions.useswbreakpoints" value="true"/>
+      </PK5Tool>
+      <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/TL16C754_training.X/nbproject/private/configurations.xml b/TL16C754_training.X/nbproject/private/configurations.xml
new file mode 100644
index 0000000..e39eaac
--- /dev/null
+++ b/TL16C754_training.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/TL16C754_training.X/nbproject/private/private.xml b/TL16C754_training.X/nbproject/private/private.xml
new file mode 100644
index 0000000..ce52284
--- /dev/null
+++ b/TL16C754_training.X/nbproject/private/private.xml
@@ -0,0 +1,12 @@
+<?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/TL16C754_training.X/main.c</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/TL16C754_training.X/macros_def.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/TL16C754_training.X/TL16C_addr.h</file>
+            <file>file:/C:/Users/eniro/MPLABXProjects/TL16C754_training.X/TL16C_CFG.h</file>
+        </group>
+    </open-files>
+</project-private>
diff --git a/TL16C754_training.X/nbproject/project.xml b/TL16C754_training.X/nbproject/project.xml
new file mode 100644
index 0000000..ed3fd52
--- /dev/null
+++ b/TL16C754_training.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>TL16C754_training</name>
+            <creation-uuid>2b54265f-c498-4010-bcaf-5e75b90427f6</creation-uuid>
+            <make-project-type>0</make-project-type>
+            <sourceEncoding>ISO-8859-1</sourceEncoding>
+            <make-dep-projects/>
+            <sourceRootList/>
+            <confList>
+                <confElem>
+                    <name>default</name>
+                    <type>2</type>
+                </confElem>
+            </confList>
+            <formatting>
+                <project-formatting-style>false</project-formatting-style>
+            </formatting>
+        </data>
+    </configuration>
+</project>
diff --git a/TL16C754_training.X/queuelogs/debugtool.txt b/TL16C754_training.X/queuelogs/debugtool.txt
new file mode 100644
index 0000000..6219e9d
--- /dev/null
+++ b/TL16C754_training.X/queuelogs/debugtool.txt
@@ -0,0 +1,17 @@
+5632 1718718592217 GEN4_CONNECT_DIAGNOSTICS:MPLABCommTool is null
+
+5632 1718718592217 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Pre:EndDebugSession
+5632 1718718592217 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload
+5632 1718718592217 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 null
+5632 1718718592217 GEN4_TO_CONTROLLER_LOG:GEN4_DEBUG_INT_LOG_AVR32DA48 Payload End
+5632 1718718592217 XXXX 1718718592217, Thread 5632: XXXX 1718718592217, Entering Thread 5632: Commands::runScriptBasic, script name = ExitDebugMode, timeOut = -1 ms  
+5632 1718718592223 XXXX 1718718592223, Thread 5632: com.Send returned false 
+5632 1718718592223 XXXX 1718718592223, Thread 5632: transfer: exception after writeHeaderAndGetResult null 
+5632 1718718592223 XXXX 1718718592223, Thread 5632: XXXX 1718718592223, Entering Thread 5632: ToolCommUsb::recoverFromProtocolError, type = NO_SCRIPT  
+5632 1718718592223 XXXX 1718718592223, Thread 5632: Send Abort Script Engine Command 
+5632 1718718592223 XXXX 1718718592223, Thread 5632: XXXX 1718718592223, Entering Thread 5632: ToolCommUsb::killScriptEngine  
+5632 1718718592230 XXXX 1718718592230, Thread 5632: com.Send returned false 
+5632 1718718592230 XXXX 1718718592230, Thread 5632: Failed sending Abort Script Engine Command. Set nuclear option = true 
+5632 1718718592230 XXXX 1718718592230, Thread 5632: About to nuke 
+5632 1718718592230 XXXX 1718718592230, Thread 5632: XXXX 1718718592230, Entering Thread 5632: ToolCommUsb::nuclearOption  
+5632 1718718592235 XXXX 1718718592235, Thread 5632: com.Send returned false 
