aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Harrington <kb0iic@berzerkula.org>2019-07-27 22:16:27 -0500
committerWilliam Harrington <kb0iic@berzerkula.org>2019-07-27 22:16:27 -0500
commite6bffe23c87a9f6de8abdec747600f674b9cab62 (patch)
tree1da4dc68a918f969f3354f1d70c2aa58b588fabd
parent1dd364ccc6fb4447d89cbc965655b895def8e97b (diff)
Copy project files into repo
-rwxr-xr-xMakefile113
-rwxr-xr-xbeep.c15
-rwxr-xr-xbeep.h3
-rwxr-xr-xbuild/default/production/beep.i1756
-rwxr-xr-xbuild/default/production/beep.p1262
-rwxr-xr-xbuild/default/production/beep.p1.d4
-rwxr-xr-xbuild/default/production/ds3231.i1940
-rwxr-xr-xbuild/default/production/ds3231.p1693
-rwxr-xr-xbuild/default/production/ds3231.p1.d6
-rwxr-xr-xbuild/default/production/i2c.i1807
-rwxr-xr-xbuild/default/production/i2c.p1410
-rwxr-xr-xbuild/default/production/i2c.p1.d4
-rwxr-xr-xbuild/default/production/lcd.i1860
-rwxr-xr-xbuild/default/production/lcd.p1562
-rwxr-xr-xbuild/default/production/lcd.p1.d4
-rwxr-xr-xbuild/default/production/main.i2212
-rwxr-xr-xbuild/default/production/main.p1971
-rwxr-xr-xbuild/default/production/main.p1.d8
-rwxr-xr-xbuild/default/production/uart.i1811
-rwxr-xr-xbuild/default/production/uart.p1363
-rwxr-xr-xbuild/default/production/uart.p1.d4
-rwxr-xr-xconf.h34
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.cmf1054
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.elfbin0 -> 31403 bytes
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.hex365
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.hxl120
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.lst6004
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.map1822
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.mum9
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.obin0 -> 65755 bytes
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.rlfbin0 -> 435063 bytes
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.sdb481
-rwxr-xr-xdist/default/production/I2C_LCD.X.production.sym928
-rwxr-xr-xdist/default/production/__eeprom.d2
-rwxr-xr-xdist/default/production/__eeprom.i1895
-rwxr-xr-xdist/default/production/__eeprom.p1750
-rwxr-xr-xdist/default/production/doprnt.d2
-rwxr-xr-xdist/default/production/doprnt.i553
-rwxr-xr-xdist/default/production/doprnt.p1452
-rwxr-xr-xdist/default/production/memoryfile.xml17
-rwxr-xr-xds3231.c137
-rwxr-xr-xds3231.h11
-rwxr-xr-xi2c.c62
-rwxr-xr-xi2c.h7
-rwxr-xr-xlcd.c110
-rwxr-xr-xlcd.h12
-rwxr-xr-xmain.c298
-rwxr-xr-xmain.h56
-rwxr-xr-xnbproject/Makefile-default.mk241
-rwxr-xr-xnbproject/Makefile-genesis.properties9
-rwxr-xr-xnbproject/Makefile-impl.mk69
-rwxr-xr-xnbproject/Makefile-local-default.mk37
-rwxr-xr-xnbproject/Makefile-variables.mk13
-rwxr-xr-xnbproject/Package-default.bash73
-rwxr-xr-xnbproject/configurations.xml216
-rwxr-xr-xnbproject/private/SuppressibleMessageMemo.properties3
-rwxr-xr-xnbproject/private/configurations.xml25
-rwxr-xr-xnbproject/private/private.xml12
-rwxr-xr-xnbproject/project.xml27
-rwxr-xr-xterm.h26
-rwxr-xr-xuart.c70
-rwxr-xr-xuart.h4
62 files changed, 30814 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100755
index 0000000..fca8e2c
--- /dev/null
+++ b/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/beep.c b/beep.c
new file mode 100755
index 0000000..cbb4ba2
--- /dev/null
+++ b/beep.c
@@ -0,0 +1,15 @@
+#include "beep.h"
+
+/*4KHz Alarm to resonate for TDK buzzer*/
+void alarm(unsigned int numberOfBeeps) {
+ for (int i = 0; i < numberOfBeeps; i++) {
+ for (int j = 0; j < 250; j++) {
+ BEEP = 1;
+ __delay_us(375);
+ BEEP = 0;
+ __delay_us(125);
+ }
+
+ __delay_ms(500);
+ }
+} \ No newline at end of file
diff --git a/beep.h b/beep.h
new file mode 100755
index 0000000..e4cb8e2
--- /dev/null
+++ b/beep.h
@@ -0,0 +1,3 @@
+#include "conf.h"
+
+void alarm(unsigned int); \ No newline at end of file
diff --git a/build/default/production/beep.i b/build/default/production/beep.i
new file mode 100755
index 0000000..bcc2925
--- /dev/null
+++ b/build/default/production/beep.i
@@ -0,0 +1,1756 @@
+# 1 "beep.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "beep.c" 2
+# 1 "./beep.h" 1
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./beep.h" 2
+
+
+void alarm(unsigned int);
+# 1 "beep.c" 2
+
+
+
+void alarm(unsigned int numberOfBeeps) {
+ for (int i = 0; i < numberOfBeeps; i++) {
+ for (int j = 0; j < 250; j++) {
+ RD1 = 1;
+ _delay((unsigned long)((375)*(20000000/4000000.0)));
+ RD1 = 0;
+ _delay((unsigned long)((125)*(20000000/4000000.0)));
+ }
+
+ _delay((unsigned long)((500)*(20000000/4000.0)));
+ }
+}
diff --git a/build/default/production/beep.p1 b/build/default/production/beep.p1
new file mode 100755
index 0000000..b3f73f5
--- /dev/null
+++ b/build/default/production/beep.p1
@@ -0,0 +1,262 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"2752 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2752: extern volatile __bit RD1 __attribute__((address(0x41)));
+[v _RD1 `Vb ~T0 @X0 0 e@65 ]
+[v F842 `(v ~T0 @X0 1 tf1`ul ]
+"92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
+[v __delay `JF842 ~T0 @X0 0 e ]
+[p i __delay ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"4 beep.c
+[; ;beep.c: 4: void alarm(unsigned int numberOfBeeps) {
+[v _alarm `(v ~T0 @X0 1 ef1`ui ]
+{
+[e :U _alarm ]
+[v _numberOfBeeps `ui ~T0 @X0 1 r1 ]
+[f ]
+"5
+[; ;beep.c: 5: for (int i = 0; i < numberOfBeeps; i++) {
+{
+[v _i `i ~T0 @X0 1 a ]
+[e = _i -> 0 `i ]
+[e $U 99 ]
+[e :U 96 ]
+{
+"6
+[; ;beep.c: 6: for (int j = 0; j < 250; j++) {
+{
+[v _j `i ~T0 @X0 1 a ]
+[e = _j -> 0 `i ]
+[e $ < _j -> 250 `i 100 ]
+[e $U 101 ]
+[e :U 100 ]
+{
+"7
+[; ;beep.c: 7: RD1 = 1;
+[e = _RD1 -> -> 1 `i `b ]
+"8
+[; ;beep.c: 8: _delay((unsigned long)((375)*(20000000/4000000.0)));
+[e ( __delay (1 -> * -> -> 375 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
+"9
+[; ;beep.c: 9: RD1 = 0;
+[e = _RD1 -> -> 0 `i `b ]
+"10
+[; ;beep.c: 10: _delay((unsigned long)((125)*(20000000/4000000.0)));
+[e ( __delay (1 -> * -> -> 125 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
+"11
+[; ;beep.c: 11: }
+}
+[e ++ _j -> 1 `i ]
+[e $ < _j -> 250 `i 100 ]
+[e :U 101 ]
+}
+"13
+[; ;beep.c: 13: _delay((unsigned long)((500)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 500 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"14
+[; ;beep.c: 14: }
+}
+[e ++ _i -> 1 `i ]
+[e :U 99 ]
+[e $ < -> _i `ui _numberOfBeeps 96 ]
+[e :U 97 ]
+}
+"15
+[; ;beep.c: 15: }
+[e :UE 95 ]
+}
diff --git a/build/default/production/beep.p1.d b/build/default/production/beep.p1.d
new file mode 100755
index 0000000..32abf0a
--- /dev/null
+++ b/build/default/production/beep.p1.d
@@ -0,0 +1,4 @@
+build/default/production/beep.p1: \
+beep.c \
+beep.h \
+conf.h
diff --git a/build/default/production/ds3231.i b/build/default/production/ds3231.i
new file mode 100755
index 0000000..717d2e9
--- /dev/null
+++ b/build/default/production/ds3231.i
@@ -0,0 +1,1940 @@
+# 1 "ds3231.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "ds3231.c" 2
+# 15 "ds3231.c"
+# 1 "./ds3231.h" 1
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./ds3231.h" 2
+
+
+int BCD_2_DEC(int);
+int DEC_2_BCD(int);
+void Read_Alarms_Temp(void);
+void Set_Date(void);
+void Set_DayOfWeek(void);
+void Set_Time(void);
+void Set_Time_Date(void);
+void Update_Current_Date_Time(void);
+void Write_Alarms(void);
+# 15 "ds3231.c" 2
+
+# 1 "./i2c.h" 1
+void I2C_Master_Init(const unsigned long);
+void I2C_Master_Wait(void);
+void I2C_Master_Start(void);
+void I2C_Master_Repeated_Start(void);
+void I2C_Master_Stop(void);
+void I2C_Master_Write(unsigned);
+unsigned short I2C_Master_Read(unsigned short);
+# 16 "ds3231.c" 2
+
+# 1 "./main.h" 1
+
+unsigned int sec = 30;
+unsigned int min = 42;
+unsigned int hour = 21;
+unsigned int dayofweek = 7;
+unsigned int date = 27;
+unsigned int month = 7;
+unsigned int year = 19;
+unsigned int century = 20;
+unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+unsigned int alarm2_min, alarm2_hour;
+unsigned int status_reg, alarm1_status, alarm2_status;
+unsigned int control_reg;
+
+
+unsigned int temperature_lsb = 0;
+int temperature_msb = 0;
+unsigned char temp_sign = ' ';
+
+
+char* weekday;
+
+
+unsigned int sec_chg = 0;
+
+
+unsigned char sec_0, sec_1;
+unsigned char min_0, min_1;
+unsigned char hour_0, hour_1;
+unsigned char day_0, day_1;
+unsigned char month_0, month_1;
+unsigned char year_0, year_1;
+unsigned char temp_0, temp_1, temp_2;
+unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+ alarm1_hour_0, alarm1_hour_1;
+unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+
+
+char buf[40];
+
+
+void format_DateTimeChars(void);
+
+
+void format_Temperature(void);
+
+
+void getWeekDay(unsigned int);
+
+
+void Get_Alarm_Status(void);
+
+void display_Intro(void);
+void display_Lcd_Layout(void);
+
+void update_Display(void);
+# 17 "ds3231.c" 2
+
+
+int BCD_2_DEC(int to_convert) {
+ return (to_convert >> 4) * 10 + (to_convert & 0x0F);
+}
+
+int DEC_2_BCD(int to_convert) {
+ return ((to_convert / 10) << 4) + (to_convert % 10);
+}
+
+void Read_Alarms_Temp() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(0x07);
+ I2C_Master_Repeated_Start();
+
+
+ I2C_Master_Write(0xD1);
+ alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
+ alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
+ alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
+ I2C_Master_Read(1);
+ alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
+ alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
+ I2C_Master_Read(1);
+ control_reg = I2C_Master_Read(1);
+ status_reg = I2C_Master_Read(1);
+ I2C_Master_Read(1);
+
+ temperature_msb = I2C_Master_Read(1);
+
+ temperature_lsb = I2C_Master_Read(0);
+ I2C_Master_Stop();
+}
+
+void Set_Date() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(4);
+ I2C_Master_Write(DEC_2_BCD(date));
+ I2C_Master_Write(DEC_2_BCD(month));
+ I2C_Master_Write(DEC_2_BCD(year));
+ I2C_Master_Stop();
+}
+
+void Set_DayOfWeek() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(3);
+ I2C_Master_Write(dayofweek);
+ I2C_Master_Stop();
+}
+
+void Set_Time() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(0);
+ I2C_Master_Write(DEC_2_BCD(sec));
+ I2C_Master_Write(DEC_2_BCD(min));
+ I2C_Master_Write(DEC_2_BCD(hour));
+ I2C_Master_Stop();
+}
+
+void Set_Time_Date() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(0);
+ I2C_Master_Write(DEC_2_BCD(sec));
+ I2C_Master_Write(DEC_2_BCD(min));
+ I2C_Master_Write(DEC_2_BCD(hour));
+ I2C_Master_Write(1);
+ I2C_Master_Write(DEC_2_BCD(date));
+ I2C_Master_Write(DEC_2_BCD(month));
+ I2C_Master_Write(DEC_2_BCD(year));
+ I2C_Master_Stop();
+}
+
+void Update_Current_Date_Time() {
+
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(0);
+ I2C_Master_Repeated_Start();
+
+
+ I2C_Master_Write(0xD1);
+ sec = BCD_2_DEC(I2C_Master_Read(1));
+ min = BCD_2_DEC(I2C_Master_Read(1));
+ hour = BCD_2_DEC(I2C_Master_Read(1));
+ weekday = I2C_Master_Read(1);
+ date = BCD_2_DEC(I2C_Master_Read(1));
+ month = BCD_2_DEC(I2C_Master_Read(1));
+ year = BCD_2_DEC(I2C_Master_Read(1));
+ I2C_Master_Stop();
+
+
+
+ I2C_Master_Start();
+ I2C_Master_Write(0xD1);
+ I2C_Master_Read(1);
+ I2C_Master_Stop();
+}
+
+void Write_Alarms() {
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0);
+ I2C_Master_Write(7);
+ I2C_Master_Write(0);
+ I2C_Master_Write(DEC_2_BCD(alarm1_min));
+ I2C_Master_Write(DEC_2_BCD(alarm1_hour));
+ I2C_Master_Write(0x80);
+ I2C_Master_Write(DEC_2_BCD(alarm2_min));
+ I2C_Master_Write(DEC_2_BCD(alarm2_hour));
+ I2C_Master_Write(0x80);
+
+
+ I2C_Master_Write(4 | alarm1_status | (alarm2_status << 1));
+ I2C_Master_Write(0);
+ I2C_Master_Stop();
+ _delay((unsigned long)((200)*(20000000/4000.0)));
+}
diff --git a/build/default/production/ds3231.p1 b/build/default/production/ds3231.p1
new file mode 100755
index 0000000..0594743
--- /dev/null
+++ b/build/default/production/ds3231.p1
@@ -0,0 +1,693 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"3 ./i2c.h
+[; ;./i2c.h: 3: void I2C_Master_Start(void);
+[v _I2C_Master_Start `(v ~T0 @X0 0 ef ]
+"6
+[; ;./i2c.h: 6: void I2C_Master_Write(unsigned);
+[v _I2C_Master_Write `(v ~T0 @X0 0 ef1`ui ]
+"4
+[; ;./i2c.h: 4: void I2C_Master_Repeated_Start(void);
+[v _I2C_Master_Repeated_Start `(v ~T0 @X0 0 ef ]
+"7
+[; ;./i2c.h: 7: unsigned short I2C_Master_Read(unsigned short);
+[v _I2C_Master_Read `(us ~T0 @X0 0 ef1`us ]
+"5
+[; ;./i2c.h: 5: void I2C_Master_Stop(void);
+[v _I2C_Master_Stop `(v ~T0 @X0 0 ef ]
+[v F842 `(v ~T0 @X0 1 tf1`ul ]
+"92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
+[v __delay `JF842 ~T0 @X0 0 e ]
+[p i __delay ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"2 ./main.h
+[; ;./main.h: 2: unsigned int sec = 30;
+[v _sec `ui ~T0 @X0 1 e ]
+[i _sec
+-> -> 30 `i `ui
+]
+"3
+[; ;./main.h: 3: unsigned int min = 42;
+[v _min `ui ~T0 @X0 1 e ]
+[i _min
+-> -> 42 `i `ui
+]
+"4
+[; ;./main.h: 4: unsigned int hour = 21;
+[v _hour `ui ~T0 @X0 1 e ]
+[i _hour
+-> -> 21 `i `ui
+]
+"5
+[; ;./main.h: 5: unsigned int dayofweek = 7;
+[v _dayofweek `ui ~T0 @X0 1 e ]
+[i _dayofweek
+-> -> 7 `i `ui
+]
+"6
+[; ;./main.h: 6: unsigned int date = 27;
+[v _date `ui ~T0 @X0 1 e ]
+[i _date
+-> -> 27 `i `ui
+]
+"7
+[; ;./main.h: 7: unsigned int month = 7;
+[v _month `ui ~T0 @X0 1 e ]
+[i _month
+-> -> 7 `i `ui
+]
+"8
+[; ;./main.h: 8: unsigned int year = 19;
+[v _year `ui ~T0 @X0 1 e ]
+[i _year
+-> -> 19 `i `ui
+]
+"9
+[; ;./main.h: 9: unsigned int century = 20;
+[v _century `ui ~T0 @X0 1 e ]
+[i _century
+-> -> 20 `i `ui
+]
+"10
+[; ;./main.h: 10: unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+[v _alarm1_sec `ui ~T0 @X0 1 e ]
+[v _alarm1_min `ui ~T0 @X0 1 e ]
+[v _alarm1_hour `ui ~T0 @X0 1 e ]
+"11
+[; ;./main.h: 11: unsigned int alarm2_min, alarm2_hour;
+[v _alarm2_min `ui ~T0 @X0 1 e ]
+[v _alarm2_hour `ui ~T0 @X0 1 e ]
+"12
+[; ;./main.h: 12: unsigned int status_reg, alarm1_status, alarm2_status;
+[v _status_reg `ui ~T0 @X0 1 e ]
+[v _alarm1_status `ui ~T0 @X0 1 e ]
+[v _alarm2_status `ui ~T0 @X0 1 e ]
+"13
+[; ;./main.h: 13: unsigned int control_reg;
+[v _control_reg `ui ~T0 @X0 1 e ]
+"16
+[; ;./main.h: 16: unsigned int temperature_lsb = 0;
+[v _temperature_lsb `ui ~T0 @X0 1 e ]
+[i _temperature_lsb
+-> -> 0 `i `ui
+]
+"17
+[; ;./main.h: 17: int temperature_msb = 0;
+[v _temperature_msb `i ~T0 @X0 1 e ]
+[i _temperature_msb
+-> 0 `i
+]
+"18
+[; ;./main.h: 18: unsigned char temp_sign = ' ';
+[v _temp_sign `uc ~T0 @X0 1 e ]
+[i _temp_sign
+-> -> 32 `ui `uc
+]
+"21
+[; ;./main.h: 21: char* weekday;
+[v _weekday `*uc ~T0 @X0 1 e ]
+"24
+[; ;./main.h: 24: unsigned int sec_chg = 0;
+[v _sec_chg `ui ~T0 @X0 1 e ]
+[i _sec_chg
+-> -> 0 `i `ui
+]
+"27
+[; ;./main.h: 27: unsigned char sec_0, sec_1;
+[v _sec_0 `uc ~T0 @X0 1 e ]
+[v _sec_1 `uc ~T0 @X0 1 e ]
+"28
+[; ;./main.h: 28: unsigned char min_0, min_1;
+[v _min_0 `uc ~T0 @X0 1 e ]
+[v _min_1 `uc ~T0 @X0 1 e ]
+"29
+[; ;./main.h: 29: unsigned char hour_0, hour_1;
+[v _hour_0 `uc ~T0 @X0 1 e ]
+[v _hour_1 `uc ~T0 @X0 1 e ]
+"30
+[; ;./main.h: 30: unsigned char day_0, day_1;
+[v _day_0 `uc ~T0 @X0 1 e ]
+[v _day_1 `uc ~T0 @X0 1 e ]
+"31
+[; ;./main.h: 31: unsigned char month_0, month_1;
+[v _month_0 `uc ~T0 @X0 1 e ]
+[v _month_1 `uc ~T0 @X0 1 e ]
+"32
+[; ;./main.h: 32: unsigned char year_0, year_1;
+[v _year_0 `uc ~T0 @X0 1 e ]
+[v _year_1 `uc ~T0 @X0 1 e ]
+"33
+[; ;./main.h: 33: unsigned char temp_0, temp_1, temp_2;
+[v _temp_0 `uc ~T0 @X0 1 e ]
+[v _temp_1 `uc ~T0 @X0 1 e ]
+[v _temp_2 `uc ~T0 @X0 1 e ]
+"34
+[; ;./main.h: 34: unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+[v _alarm1_sec_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_sec_1 `uc ~T0 @X0 1 e ]
+[v _alarm1_min_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_min_1 `uc ~T0 @X0 1 e ]
+"35
+[; ;./main.h: 35: alarm1_hour_0, alarm1_hour_1;
+[v _alarm1_hour_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_hour_1 `uc ~T0 @X0 1 e ]
+"36
+[; ;./main.h: 36: unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+[v _alarm2_min_0 `uc ~T0 @X0 1 e ]
+[v _alarm2_min_1 `uc ~T0 @X0 1 e ]
+[v _alarm2_hour_0 `uc ~T0 @X0 1 e ]
+[v _alarm2_hour_1 `uc ~T0 @X0 1 e ]
+"39
+[; ;./main.h: 39: char buf[40];
+[v _buf `uc ~T0 @X0 -> 40 `i e ]
+"19 ds3231.c
+[; ;ds3231.c: 19: int BCD_2_DEC(int to_convert) {
+[v _BCD_2_DEC `(i ~T0 @X0 1 ef1`i ]
+{
+[e :U _BCD_2_DEC ]
+[v _to_convert `i ~T0 @X0 1 r1 ]
+[f ]
+"20
+[; ;ds3231.c: 20: return (to_convert >> 4) * 10 + (to_convert & 0x0F);
+[e ) + * >> _to_convert -> 4 `i -> 10 `i & _to_convert -> 15 `i ]
+[e $UE 95 ]
+"21
+[; ;ds3231.c: 21: }
+[e :UE 95 ]
+}
+"23
+[; ;ds3231.c: 23: int DEC_2_BCD(int to_convert) {
+[v _DEC_2_BCD `(i ~T0 @X0 1 ef1`i ]
+{
+[e :U _DEC_2_BCD ]
+[v _to_convert `i ~T0 @X0 1 r1 ]
+[f ]
+"24
+[; ;ds3231.c: 24: return ((to_convert / 10) << 4) + (to_convert % 10);
+[e ) + << / _to_convert -> 10 `i -> 4 `i % _to_convert -> 10 `i ]
+[e $UE 96 ]
+"25
+[; ;ds3231.c: 25: }
+[e :UE 96 ]
+}
+"27
+[; ;ds3231.c: 27: void Read_Alarms_Temp() {
+[v _Read_Alarms_Temp `(v ~T0 @X0 1 ef ]
+{
+[e :U _Read_Alarms_Temp ]
+[f ]
+"28
+[; ;ds3231.c: 28: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"29
+[; ;ds3231.c: 29: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"30
+[; ;ds3231.c: 30: I2C_Master_Write(0x07);
+[e ( _I2C_Master_Write (1 -> -> 7 `i `ui ]
+"31
+[; ;ds3231.c: 31: I2C_Master_Repeated_Start();
+[e ( _I2C_Master_Repeated_Start .. ]
+"34
+[; ;ds3231.c: 34: I2C_Master_Write(0xD1);
+[e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
+"35
+[; ;ds3231.c: 35: alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
+[e = _alarm1_sec -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"36
+[; ;ds3231.c: 36: alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
+[e = _alarm1_min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"37
+[; ;ds3231.c: 37: alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
+[e = _alarm1_hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"38
+[; ;ds3231.c: 38: I2C_Master_Read(1);
+[e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
+"39
+[; ;ds3231.c: 39: alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
+[e = _alarm2_min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"40
+[; ;ds3231.c: 40: alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
+[e = _alarm2_hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"41
+[; ;ds3231.c: 41: I2C_Master_Read(1);
+[e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
+"42
+[; ;ds3231.c: 42: control_reg = I2C_Master_Read(1);
+[e = _control_reg -> ( _I2C_Master_Read (1 -> -> 1 `i `us `ui ]
+"43
+[; ;ds3231.c: 43: status_reg = I2C_Master_Read(1);
+[e = _status_reg -> ( _I2C_Master_Read (1 -> -> 1 `i `us `ui ]
+"44
+[; ;ds3231.c: 44: I2C_Master_Read(1);
+[e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
+"46
+[; ;ds3231.c: 46: temperature_msb = I2C_Master_Read(1);
+[e = _temperature_msb -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i ]
+"48
+[; ;ds3231.c: 48: temperature_lsb = I2C_Master_Read(0);
+[e = _temperature_lsb -> ( _I2C_Master_Read (1 -> -> 0 `i `us `ui ]
+"49
+[; ;ds3231.c: 49: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"50
+[; ;ds3231.c: 50: }
+[e :UE 97 ]
+}
+"52
+[; ;ds3231.c: 52: void Set_Date() {
+[v _Set_Date `(v ~T0 @X0 1 ef ]
+{
+[e :U _Set_Date ]
+[f ]
+"53
+[; ;ds3231.c: 53: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"54
+[; ;ds3231.c: 54: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"55
+[; ;ds3231.c: 55: I2C_Master_Write(4);
+[e ( _I2C_Master_Write (1 -> -> 4 `i `ui ]
+"56
+[; ;ds3231.c: 56: I2C_Master_Write(DEC_2_BCD(date));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _date `i `ui ]
+"57
+[; ;ds3231.c: 57: I2C_Master_Write(DEC_2_BCD(month));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _month `i `ui ]
+"58
+[; ;ds3231.c: 58: I2C_Master_Write(DEC_2_BCD(year));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _year `i `ui ]
+"59
+[; ;ds3231.c: 59: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"60
+[; ;ds3231.c: 60: }
+[e :UE 98 ]
+}
+"62
+[; ;ds3231.c: 62: void Set_DayOfWeek() {
+[v _Set_DayOfWeek `(v ~T0 @X0 1 ef ]
+{
+[e :U _Set_DayOfWeek ]
+[f ]
+"63
+[; ;ds3231.c: 63: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"64
+[; ;ds3231.c: 64: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"65
+[; ;ds3231.c: 65: I2C_Master_Write(3);
+[e ( _I2C_Master_Write (1 -> -> 3 `i `ui ]
+"66
+[; ;ds3231.c: 66: I2C_Master_Write(dayofweek);
+[e ( _I2C_Master_Write (1 _dayofweek ]
+"67
+[; ;ds3231.c: 67: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"68
+[; ;ds3231.c: 68: }
+[e :UE 99 ]
+}
+"70
+[; ;ds3231.c: 70: void Set_Time() {
+[v _Set_Time `(v ~T0 @X0 1 ef ]
+{
+[e :U _Set_Time ]
+[f ]
+"71
+[; ;ds3231.c: 71: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"72
+[; ;ds3231.c: 72: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"73
+[; ;ds3231.c: 73: I2C_Master_Write(0);
+[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
+"74
+[; ;ds3231.c: 74: I2C_Master_Write(DEC_2_BCD(sec));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _sec `i `ui ]
+"75
+[; ;ds3231.c: 75: I2C_Master_Write(DEC_2_BCD(min));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _min `i `ui ]
+"76
+[; ;ds3231.c: 76: I2C_Master_Write(DEC_2_BCD(hour));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _hour `i `ui ]
+"77
+[; ;ds3231.c: 77: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"78
+[; ;ds3231.c: 78: }
+[e :UE 100 ]
+}
+"80
+[; ;ds3231.c: 80: void Set_Time_Date() {
+[v _Set_Time_Date `(v ~T0 @X0 1 ef ]
+{
+[e :U _Set_Time_Date ]
+[f ]
+"81
+[; ;ds3231.c: 81: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"82
+[; ;ds3231.c: 82: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"83
+[; ;ds3231.c: 83: I2C_Master_Write(0);
+[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
+"84
+[; ;ds3231.c: 84: I2C_Master_Write(DEC_2_BCD(sec));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _sec `i `ui ]
+"85
+[; ;ds3231.c: 85: I2C_Master_Write(DEC_2_BCD(min));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _min `i `ui ]
+"86
+[; ;ds3231.c: 86: I2C_Master_Write(DEC_2_BCD(hour));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _hour `i `ui ]
+"87
+[; ;ds3231.c: 87: I2C_Master_Write(1);
+[e ( _I2C_Master_Write (1 -> -> 1 `i `ui ]
+"88
+[; ;ds3231.c: 88: I2C_Master_Write(DEC_2_BCD(date));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _date `i `ui ]
+"89
+[; ;ds3231.c: 89: I2C_Master_Write(DEC_2_BCD(month));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _month `i `ui ]
+"90
+[; ;ds3231.c: 90: I2C_Master_Write(DEC_2_BCD(year));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _year `i `ui ]
+"91
+[; ;ds3231.c: 91: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"92
+[; ;ds3231.c: 92: }
+[e :UE 101 ]
+}
+"94
+[; ;ds3231.c: 94: void Update_Current_Date_Time() {
+[v _Update_Current_Date_Time `(v ~T0 @X0 1 ef ]
+{
+[e :U _Update_Current_Date_Time ]
+[f ]
+"96
+[; ;ds3231.c: 96: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"97
+[; ;ds3231.c: 97: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"98
+[; ;ds3231.c: 98: I2C_Master_Write(0);
+[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
+"99
+[; ;ds3231.c: 99: I2C_Master_Repeated_Start();
+[e ( _I2C_Master_Repeated_Start .. ]
+"102
+[; ;ds3231.c: 102: I2C_Master_Write(0xD1);
+[e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
+"103
+[; ;ds3231.c: 103: sec = BCD_2_DEC(I2C_Master_Read(1));
+[e = _sec -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"104
+[; ;ds3231.c: 104: min = BCD_2_DEC(I2C_Master_Read(1));
+[e = _min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"105
+[; ;ds3231.c: 105: hour = BCD_2_DEC(I2C_Master_Read(1));
+[e = _hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"106
+[; ;ds3231.c: 106: weekday = I2C_Master_Read(1);
+[e = _weekday -> ( _I2C_Master_Read (1 -> -> 1 `i `us `*uc ]
+"107
+[; ;ds3231.c: 107: date = BCD_2_DEC(I2C_Master_Read(1));
+[e = _date -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"108
+[; ;ds3231.c: 108: month = BCD_2_DEC(I2C_Master_Read(1));
+[e = _month -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"109
+[; ;ds3231.c: 109: year = BCD_2_DEC(I2C_Master_Read(1));
+[e = _year -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
+"110
+[; ;ds3231.c: 110: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"114
+[; ;ds3231.c: 114: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"115
+[; ;ds3231.c: 115: I2C_Master_Write(0xD1);
+[e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
+"116
+[; ;ds3231.c: 116: I2C_Master_Read(1);
+[e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
+"117
+[; ;ds3231.c: 117: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"118
+[; ;ds3231.c: 118: }
+[e :UE 102 ]
+}
+"120
+[; ;ds3231.c: 120: void Write_Alarms() {
+[v _Write_Alarms `(v ~T0 @X0 1 ef ]
+{
+[e :U _Write_Alarms ]
+[f ]
+"121
+[; ;ds3231.c: 121: I2C_Master_Start();
+[e ( _I2C_Master_Start .. ]
+"122
+[; ;ds3231.c: 122: I2C_Master_Write(0xD0);
+[e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
+"123
+[; ;ds3231.c: 123: I2C_Master_Write(7);
+[e ( _I2C_Master_Write (1 -> -> 7 `i `ui ]
+"124
+[; ;ds3231.c: 124: I2C_Master_Write(0);
+[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
+"125
+[; ;ds3231.c: 125: I2C_Master_Write(DEC_2_BCD(alarm1_min));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm1_min `i `ui ]
+"126
+[; ;ds3231.c: 126: I2C_Master_Write(DEC_2_BCD(alarm1_hour));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm1_hour `i `ui ]
+"127
+[; ;ds3231.c: 127: I2C_Master_Write(0x80);
+[e ( _I2C_Master_Write (1 -> -> 128 `i `ui ]
+"128
+[; ;ds3231.c: 128: I2C_Master_Write(DEC_2_BCD(alarm2_min));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm2_min `i `ui ]
+"129
+[; ;ds3231.c: 129: I2C_Master_Write(DEC_2_BCD(alarm2_hour));
+[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm2_hour `i `ui ]
+"130
+[; ;ds3231.c: 130: I2C_Master_Write(0x80);
+[e ( _I2C_Master_Write (1 -> -> 128 `i `ui ]
+"133
+[; ;ds3231.c: 133: I2C_Master_Write(4 | alarm1_status | (alarm2_status << 1));
+[e ( _I2C_Master_Write (1 | | -> -> 4 `i `ui _alarm1_status << _alarm2_status -> 1 `i ]
+"134
+[; ;ds3231.c: 134: I2C_Master_Write(0);
+[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
+"135
+[; ;ds3231.c: 135: I2C_Master_Stop();
+[e ( _I2C_Master_Stop .. ]
+"136
+[; ;ds3231.c: 136: _delay((unsigned long)((200)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 200 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"137
+[; ;ds3231.c: 137: }
+[e :UE 103 ]
+}
diff --git a/build/default/production/ds3231.p1.d b/build/default/production/ds3231.p1.d
new file mode 100755
index 0000000..4046f39
--- /dev/null
+++ b/build/default/production/ds3231.p1.d
@@ -0,0 +1,6 @@
+build/default/production/ds3231.p1: \
+ds3231.c \
+ds3231.h \
+conf.h \
+i2c.h \
+main.h
diff --git a/build/default/production/i2c.i b/build/default/production/i2c.i
new file mode 100755
index 0000000..2920dec
--- /dev/null
+++ b/build/default/production/i2c.i
@@ -0,0 +1,1807 @@
+# 1 "i2c.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "i2c.c" 2
+
+
+
+
+# 1 "./i2c.h" 1
+void I2C_Master_Init(const unsigned long);
+void I2C_Master_Wait(void);
+void I2C_Master_Start(void);
+void I2C_Master_Repeated_Start(void);
+void I2C_Master_Stop(void);
+void I2C_Master_Write(unsigned);
+unsigned short I2C_Master_Read(unsigned short);
+# 5 "i2c.c" 2
+
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 6 "i2c.c" 2
+
+
+void I2C_Master_Init(const unsigned long freq_K)
+{
+ TRISC3 = 1; TRISC4 = 1;
+
+ SSPCON = 0b00101000;
+ SSPCON2 = 0b00000000;
+
+ SSPADD = (20000000/(4*freq_K*100))-1;
+ SSPSTAT = 0b00000000;
+}
+
+void I2C_Master_Wait()
+{
+ while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ;
+}
+
+void I2C_Master_Start()
+{
+ I2C_Master_Wait();
+ SEN = 1;
+}
+
+void I2C_Master_Repeated_Start()
+{
+ I2C_Master_Wait();
+ RSEN = 1;
+}
+
+void I2C_Master_Stop()
+{
+ I2C_Master_Wait();
+ PEN = 1;
+}
+
+void I2C_Master_Write(unsigned data)
+{
+ I2C_Master_Wait();
+ SSPBUF = data;
+}
+
+unsigned short I2C_Master_Read(unsigned short ack)
+{
+ unsigned short incoming;
+ I2C_Master_Wait();
+ RCEN = 1;
+
+ I2C_Master_Wait();
+ incoming = SSPBUF;
+
+ I2C_Master_Wait();
+ ACKDT = (ack)?0:1;
+ ACKEN = 1;
+
+ return incoming;
+}
diff --git a/build/default/production/i2c.p1 b/build/default/production/i2c.p1
new file mode 100755
index 0000000..7ae1e28
--- /dev/null
+++ b/build/default/production/i2c.p1
@@ -0,0 +1,410 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"2968 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2968: extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+[v _TRISC3 `Vb ~T0 @X0 0 e@1083 ]
+"2971
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2971: extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+[v _TRISC4 `Vb ~T0 @X0 0 e@1084 ]
+"815
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 815: extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+[v _SSPCON `Vuc ~T0 @X0 0 e@20 ]
+"1754
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1754: extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+[v _SSPCON2 `Vuc ~T0 @X0 0 e@145 ]
+"1823
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1823: extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+[v _SSPADD `Vuc ~T0 @X0 0 e@147 ]
+"1830
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1830: extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+[v _SSPSTAT `Vuc ~T0 @X0 0 e@148 ]
+"2806
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2806: extern volatile __bit SEN __attribute__((address(0x488)));
+[v _SEN `Vb ~T0 @X0 0 e@1160 ]
+"2791
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2791: extern volatile __bit RSEN __attribute__((address(0x489)));
+[v _RSEN `Vb ~T0 @X0 0 e@1161 ]
+"2632
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2632: extern volatile __bit PEN __attribute__((address(0x48A)));
+[v _PEN `Vb ~T0 @X0 0 e@1162 ]
+"808
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 808: extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+[v _SSPBUF `Vuc ~T0 @X0 0 e@19 ]
+"2737
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2737: extern volatile __bit RCEN __attribute__((address(0x48B)));
+[v _RCEN `Vb ~T0 @X0 0 e@1163 ]
+"2374
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2374: extern volatile __bit ACKDT __attribute__((address(0x48D)));
+[v _ACKDT `Vb ~T0 @X0 0 e@1165 ]
+"2377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2377: extern volatile __bit ACKEN __attribute__((address(0x48C)));
+[v _ACKEN `Vb ~T0 @X0 0 e@1164 ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"8 i2c.c
+[; ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K)
+[v _I2C_Master_Init `(v ~T0 @X0 1 ef1`Cul ]
+"9
+[; ;i2c.c: 9: {
+{
+[e :U _I2C_Master_Init ]
+"8
+[; ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K)
+[v _freq_K `Cul ~T0 @X0 1 r1 ]
+"9
+[; ;i2c.c: 9: {
+[f ]
+"10
+[; ;i2c.c: 10: TRISC3 = 1; TRISC4 = 1;
+[e = _TRISC3 -> -> 1 `i `b ]
+[e = _TRISC4 -> -> 1 `i `b ]
+"12
+[; ;i2c.c: 12: SSPCON = 0b00101000;
+[e = _SSPCON -> -> 40 `i `uc ]
+"13
+[; ;i2c.c: 13: SSPCON2 = 0b00000000;
+[e = _SSPCON2 -> -> 0 `i `uc ]
+"15
+[; ;i2c.c: 15: SSPADD = (20000000/(4*freq_K*100))-1;
+[e = _SSPADD -> - / -> -> 20000000 `l `ul * * -> -> -> 4 `i `l `ul _freq_K -> -> -> 100 `i `l `ul -> -> -> 1 `i `l `ul `uc ]
+"16
+[; ;i2c.c: 16: SSPSTAT = 0b00000000;
+[e = _SSPSTAT -> -> 0 `i `uc ]
+"17
+[; ;i2c.c: 17: }
+[e :UE 95 ]
+}
+"19
+[; ;i2c.c: 19: void I2C_Master_Wait()
+[v _I2C_Master_Wait `(v ~T0 @X0 1 ef ]
+"20
+[; ;i2c.c: 20: {
+{
+[e :U _I2C_Master_Wait ]
+[f ]
+"21
+[; ;i2c.c: 21: while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ;
+[e $U 97 ]
+[e :U 98 ]
+[e :U 97 ]
+[e $ || != & -> _SSPCON2 `i -> 31 `i -> 0 `i != & -> _SSPSTAT `i -> 4 `i -> 0 `i 98 ]
+[e :U 99 ]
+"22
+[; ;i2c.c: 22: }
+[e :UE 96 ]
+}
+"24
+[; ;i2c.c: 24: void I2C_Master_Start()
+[v _I2C_Master_Start `(v ~T0 @X0 1 ef ]
+"25
+[; ;i2c.c: 25: {
+{
+[e :U _I2C_Master_Start ]
+[f ]
+"26
+[; ;i2c.c: 26: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"27
+[; ;i2c.c: 27: SEN = 1;
+[e = _SEN -> -> 1 `i `b ]
+"28
+[; ;i2c.c: 28: }
+[e :UE 100 ]
+}
+"30
+[; ;i2c.c: 30: void I2C_Master_Repeated_Start()
+[v _I2C_Master_Repeated_Start `(v ~T0 @X0 1 ef ]
+"31
+[; ;i2c.c: 31: {
+{
+[e :U _I2C_Master_Repeated_Start ]
+[f ]
+"32
+[; ;i2c.c: 32: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"33
+[; ;i2c.c: 33: RSEN = 1;
+[e = _RSEN -> -> 1 `i `b ]
+"34
+[; ;i2c.c: 34: }
+[e :UE 101 ]
+}
+"36
+[; ;i2c.c: 36: void I2C_Master_Stop()
+[v _I2C_Master_Stop `(v ~T0 @X0 1 ef ]
+"37
+[; ;i2c.c: 37: {
+{
+[e :U _I2C_Master_Stop ]
+[f ]
+"38
+[; ;i2c.c: 38: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"39
+[; ;i2c.c: 39: PEN = 1;
+[e = _PEN -> -> 1 `i `b ]
+"40
+[; ;i2c.c: 40: }
+[e :UE 102 ]
+}
+"42
+[; ;i2c.c: 42: void I2C_Master_Write(unsigned data)
+[v _I2C_Master_Write `(v ~T0 @X0 1 ef1`ui ]
+"43
+[; ;i2c.c: 43: {
+{
+[e :U _I2C_Master_Write ]
+"42
+[; ;i2c.c: 42: void I2C_Master_Write(unsigned data)
+[v _data `ui ~T0 @X0 1 r1 ]
+"43
+[; ;i2c.c: 43: {
+[f ]
+"44
+[; ;i2c.c: 44: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"45
+[; ;i2c.c: 45: SSPBUF = data;
+[e = _SSPBUF -> _data `uc ]
+"46
+[; ;i2c.c: 46: }
+[e :UE 103 ]
+}
+"48
+[; ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack)
+[v _I2C_Master_Read `(us ~T0 @X0 1 ef1`us ]
+"49
+[; ;i2c.c: 49: {
+{
+[e :U _I2C_Master_Read ]
+"48
+[; ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack)
+[v _ack `us ~T0 @X0 1 r1 ]
+"49
+[; ;i2c.c: 49: {
+[f ]
+"50
+[; ;i2c.c: 50: unsigned short incoming;
+[v _incoming `us ~T0 @X0 1 a ]
+"51
+[; ;i2c.c: 51: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"52
+[; ;i2c.c: 52: RCEN = 1;
+[e = _RCEN -> -> 1 `i `b ]
+"54
+[; ;i2c.c: 54: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"55
+[; ;i2c.c: 55: incoming = SSPBUF;
+[e = _incoming -> _SSPBUF `us ]
+"57
+[; ;i2c.c: 57: I2C_Master_Wait();
+[e ( _I2C_Master_Wait .. ]
+"58
+[; ;i2c.c: 58: ACKDT = (ack)?0:1;
+[e = _ACKDT -> ? != -> _ack `ui -> -> 0 `i `ui : -> 0 `i -> 1 `i `b ]
+"59
+[; ;i2c.c: 59: ACKEN = 1;
+[e = _ACKEN -> -> 1 `i `b ]
+"61
+[; ;i2c.c: 61: return incoming;
+[e ) _incoming ]
+[e $UE 104 ]
+"62
+[; ;i2c.c: 62: }
+[e :UE 104 ]
+}
diff --git a/build/default/production/i2c.p1.d b/build/default/production/i2c.p1.d
new file mode 100755
index 0000000..1883ca7
--- /dev/null
+++ b/build/default/production/i2c.p1.d
@@ -0,0 +1,4 @@
+build/default/production/i2c.p1: \
+i2c.c \
+i2c.h \
+conf.h
diff --git a/build/default/production/lcd.i b/build/default/production/lcd.i
new file mode 100755
index 0000000..370b6b7
--- /dev/null
+++ b/build/default/production/lcd.i
@@ -0,0 +1,1860 @@
+# 1 "lcd.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "lcd.c" 2
+# 1 "./lcd.h" 1
+void Lcd_Port(char);
+void Lcd_Cmd(char);
+void Lcd_Clear();
+void Lcd_Set_Cursor(char, char);
+void Lcd_Init();
+void Lcd_Write_Char(char);
+void Lcd_Write_String(char *);
+void Lcd_Shift_Right();
+void Lcd_Shift_Left();
+
+
+void Vfd_Set_Brightness(int);
+# 1 "lcd.c" 2
+
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 2 "lcd.c" 2
+
+
+
+
+void Lcd_Port(char a) {
+ if (a & 1)
+ RD4 = 1;
+ else
+ RD4 = 0;
+
+ if (a & 2)
+ RD5 = 1;
+ else
+ RD5 = 0;
+
+ if (a & 4)
+ RD6 = 1;
+ else
+ RD6 = 0;
+
+ if (a & 8)
+ RD7 = 1;
+ else
+ RD7 = 0;
+}
+
+void Lcd_Cmd(char a) {
+ RD2 = 0;
+ Lcd_Port(a);
+ RD3 = 1;
+ _delay((unsigned long)((4)*(20000000/4000.0)));
+ RD3 = 0;
+}
+
+void Lcd_Clear() {
+ Lcd_Cmd(0);
+ Lcd_Cmd(1);
+}
+
+void Lcd_Set_Cursor(char a, char b) {
+ char temp, z, y;
+ if (a == 1) {
+ temp = 0x80 + b - 1;
+ z = temp >> 4;
+ y = temp & 0x0F;
+ Lcd_Cmd(z);
+ Lcd_Cmd(y);
+ } else if (a == 2) {
+ temp = 0xC0 + b - 1;
+ z = temp >> 4;
+ y = temp & 0x0F;
+ Lcd_Cmd(z);
+ Lcd_Cmd(y);
+ }
+}
+
+void Lcd_Init() {
+ Lcd_Port(0x00);
+ _delay((unsigned long)((20)*(20000000/4000.0)));
+ Lcd_Cmd(0x03);
+ _delay((unsigned long)((5)*(20000000/4000.0)));
+ Lcd_Cmd(0x03);
+ _delay((unsigned long)((11)*(20000000/4000.0)));
+ Lcd_Cmd(0x03);
+
+ Lcd_Cmd(0x02);
+ Lcd_Cmd(0x02);
+ Lcd_Cmd(0x08);
+ Lcd_Cmd(0x00);
+ Lcd_Cmd(0x0C);
+ Lcd_Cmd(0x00);
+ Lcd_Cmd(0x06);
+}
+
+void Lcd_Write_Char(char a) {
+ char temp, y;
+ temp = a & 0x0F;
+ y = a & 0xF0;
+ RD2 = 1;
+ Lcd_Port(y >> 4);
+ RD3 = 1;
+ _delay((unsigned long)((40)*(20000000/4000000.0)));
+ RD3 = 0;
+ Lcd_Port(temp);
+ RD3 = 1;
+ _delay((unsigned long)((40)*(20000000/4000000.0)));
+ RD3 = 0;
+}
+
+void Lcd_Write_String(char *a) {
+ int i;
+ for (i = 0; a[i] != '\0'; i++)
+ Lcd_Write_Char(a[i]);
+}
+
+void Lcd_Shift_Right() {
+ Lcd_Cmd(0x01);
+ Lcd_Cmd(0x0C);
+}
+
+void Lcd_Shift_Left() {
+ Lcd_Cmd(0x01);
+ Lcd_Cmd(0x08);
+}
+
+
+void Vfd_Set_Brightness(int level) {
+
+}
diff --git a/build/default/production/lcd.p1 b/build/default/production/lcd.p1
new file mode 100755
index 0000000..cd257aa
--- /dev/null
+++ b/build/default/production/lcd.p1
@@ -0,0 +1,562 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"2761 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2761: extern volatile __bit RD4 __attribute__((address(0x44)));
+[v _RD4 `Vb ~T0 @X0 0 e@68 ]
+"2764
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2764: extern volatile __bit RD5 __attribute__((address(0x45)));
+[v _RD5 `Vb ~T0 @X0 0 e@69 ]
+"2767
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2767: extern volatile __bit RD6 __attribute__((address(0x46)));
+[v _RD6 `Vb ~T0 @X0 0 e@70 ]
+"2770
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2770: extern volatile __bit RD7 __attribute__((address(0x47)));
+[v _RD7 `Vb ~T0 @X0 0 e@71 ]
+"2755
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2755: extern volatile __bit RD2 __attribute__((address(0x42)));
+[v _RD2 `Vb ~T0 @X0 0 e@66 ]
+"2758
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2758: extern volatile __bit RD3 __attribute__((address(0x43)));
+[v _RD3 `Vb ~T0 @X0 0 e@67 ]
+[v F859 `(v ~T0 @X0 1 tf1`ul ]
+"92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
+[v __delay `JF859 ~T0 @X0 0 e ]
+[p i __delay ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"6 lcd.c
+[; ;lcd.c: 6: void Lcd_Port(char a) {
+[v _Lcd_Port `(v ~T0 @X0 1 ef1`uc ]
+{
+[e :U _Lcd_Port ]
+[v _a `uc ~T0 @X0 1 r1 ]
+[f ]
+"7
+[; ;lcd.c: 7: if (a & 1)
+[e $ ! != & -> _a `i -> 1 `i -> 0 `i 96 ]
+"8
+[; ;lcd.c: 8: RD4 = 1;
+[e = _RD4 -> -> 1 `i `b ]
+[e $U 97 ]
+"9
+[; ;lcd.c: 9: else
+[e :U 96 ]
+"10
+[; ;lcd.c: 10: RD4 = 0;
+[e = _RD4 -> -> 0 `i `b ]
+[e :U 97 ]
+"12
+[; ;lcd.c: 12: if (a & 2)
+[e $ ! != & -> _a `i -> 2 `i -> 0 `i 98 ]
+"13
+[; ;lcd.c: 13: RD5 = 1;
+[e = _RD5 -> -> 1 `i `b ]
+[e $U 99 ]
+"14
+[; ;lcd.c: 14: else
+[e :U 98 ]
+"15
+[; ;lcd.c: 15: RD5 = 0;
+[e = _RD5 -> -> 0 `i `b ]
+[e :U 99 ]
+"17
+[; ;lcd.c: 17: if (a & 4)
+[e $ ! != & -> _a `i -> 4 `i -> 0 `i 100 ]
+"18
+[; ;lcd.c: 18: RD6 = 1;
+[e = _RD6 -> -> 1 `i `b ]
+[e $U 101 ]
+"19
+[; ;lcd.c: 19: else
+[e :U 100 ]
+"20
+[; ;lcd.c: 20: RD6 = 0;
+[e = _RD6 -> -> 0 `i `b ]
+[e :U 101 ]
+"22
+[; ;lcd.c: 22: if (a & 8)
+[e $ ! != & -> _a `i -> 8 `i -> 0 `i 102 ]
+"23
+[; ;lcd.c: 23: RD7 = 1;
+[e = _RD7 -> -> 1 `i `b ]
+[e $U 103 ]
+"24
+[; ;lcd.c: 24: else
+[e :U 102 ]
+"25
+[; ;lcd.c: 25: RD7 = 0;
+[e = _RD7 -> -> 0 `i `b ]
+[e :U 103 ]
+"26
+[; ;lcd.c: 26: }
+[e :UE 95 ]
+}
+"28
+[; ;lcd.c: 28: void Lcd_Cmd(char a) {
+[v _Lcd_Cmd `(v ~T0 @X0 1 ef1`uc ]
+{
+[e :U _Lcd_Cmd ]
+[v _a `uc ~T0 @X0 1 r1 ]
+[f ]
+"29
+[; ;lcd.c: 29: RD2 = 0;
+[e = _RD2 -> -> 0 `i `b ]
+"30
+[; ;lcd.c: 30: Lcd_Port(a);
+[e ( _Lcd_Port (1 _a ]
+"31
+[; ;lcd.c: 31: RD3 = 1;
+[e = _RD3 -> -> 1 `i `b ]
+"32
+[; ;lcd.c: 32: _delay((unsigned long)((4)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 4 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"33
+[; ;lcd.c: 33: RD3 = 0;
+[e = _RD3 -> -> 0 `i `b ]
+"34
+[; ;lcd.c: 34: }
+[e :UE 104 ]
+}
+"36
+[; ;lcd.c: 36: void Lcd_Clear() {
+[v _Lcd_Clear `(v ~T0 @X0 1 ef ]
+{
+[e :U _Lcd_Clear ]
+[f ]
+"37
+[; ;lcd.c: 37: Lcd_Cmd(0);
+[e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
+"38
+[; ;lcd.c: 38: Lcd_Cmd(1);
+[e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
+"39
+[; ;lcd.c: 39: }
+[e :UE 105 ]
+}
+"41
+[; ;lcd.c: 41: void Lcd_Set_Cursor(char a, char b) {
+[v _Lcd_Set_Cursor `(v ~T0 @X0 1 ef2`uc`uc ]
+{
+[e :U _Lcd_Set_Cursor ]
+[v _a `uc ~T0 @X0 1 r1 ]
+[v _b `uc ~T0 @X0 1 r2 ]
+[f ]
+"42
+[; ;lcd.c: 42: char temp, z, y;
+[v _temp `uc ~T0 @X0 1 a ]
+[v _z `uc ~T0 @X0 1 a ]
+[v _y `uc ~T0 @X0 1 a ]
+"43
+[; ;lcd.c: 43: if (a == 1) {
+[e $ ! == -> _a `i -> 1 `i 107 ]
+{
+"44
+[; ;lcd.c: 44: temp = 0x80 + b - 1;
+[e = _temp -> - + -> 128 `i -> _b `i -> 1 `i `uc ]
+"45
+[; ;lcd.c: 45: z = temp >> 4;
+[e = _z -> >> -> _temp `i -> 4 `i `uc ]
+"46
+[; ;lcd.c: 46: y = temp & 0x0F;
+[e = _y -> & -> _temp `i -> 15 `i `uc ]
+"47
+[; ;lcd.c: 47: Lcd_Cmd(z);
+[e ( _Lcd_Cmd (1 _z ]
+"48
+[; ;lcd.c: 48: Lcd_Cmd(y);
+[e ( _Lcd_Cmd (1 _y ]
+"49
+[; ;lcd.c: 49: } else if (a == 2) {
+}
+[e $U 108 ]
+[e :U 107 ]
+[e $ ! == -> _a `i -> 2 `i 109 ]
+{
+"50
+[; ;lcd.c: 50: temp = 0xC0 + b - 1;
+[e = _temp -> - + -> 192 `i -> _b `i -> 1 `i `uc ]
+"51
+[; ;lcd.c: 51: z = temp >> 4;
+[e = _z -> >> -> _temp `i -> 4 `i `uc ]
+"52
+[; ;lcd.c: 52: y = temp & 0x0F;
+[e = _y -> & -> _temp `i -> 15 `i `uc ]
+"53
+[; ;lcd.c: 53: Lcd_Cmd(z);
+[e ( _Lcd_Cmd (1 _z ]
+"54
+[; ;lcd.c: 54: Lcd_Cmd(y);
+[e ( _Lcd_Cmd (1 _y ]
+"55
+[; ;lcd.c: 55: }
+}
+[e :U 109 ]
+[e :U 108 ]
+"56
+[; ;lcd.c: 56: }
+[e :UE 106 ]
+}
+"58
+[; ;lcd.c: 58: void Lcd_Init() {
+[v _Lcd_Init `(v ~T0 @X0 1 ef ]
+{
+[e :U _Lcd_Init ]
+[f ]
+"59
+[; ;lcd.c: 59: Lcd_Port(0x00);
+[e ( _Lcd_Port (1 -> -> 0 `i `uc ]
+"60
+[; ;lcd.c: 60: _delay((unsigned long)((20)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 20 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"61
+[; ;lcd.c: 61: Lcd_Cmd(0x03);
+[e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
+"62
+[; ;lcd.c: 62: _delay((unsigned long)((5)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 5 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"63
+[; ;lcd.c: 63: Lcd_Cmd(0x03);
+[e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
+"64
+[; ;lcd.c: 64: _delay((unsigned long)((11)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 11 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"65
+[; ;lcd.c: 65: Lcd_Cmd(0x03);
+[e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
+"67
+[; ;lcd.c: 67: Lcd_Cmd(0x02);
+[e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
+"68
+[; ;lcd.c: 68: Lcd_Cmd(0x02);
+[e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
+"69
+[; ;lcd.c: 69: Lcd_Cmd(0x08);
+[e ( _Lcd_Cmd (1 -> -> 8 `i `uc ]
+"70
+[; ;lcd.c: 70: Lcd_Cmd(0x00);
+[e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
+"71
+[; ;lcd.c: 71: Lcd_Cmd(0x0C);
+[e ( _Lcd_Cmd (1 -> -> 12 `i `uc ]
+"72
+[; ;lcd.c: 72: Lcd_Cmd(0x00);
+[e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
+"73
+[; ;lcd.c: 73: Lcd_Cmd(0x06);
+[e ( _Lcd_Cmd (1 -> -> 6 `i `uc ]
+"74
+[; ;lcd.c: 74: }
+[e :UE 110 ]
+}
+"76
+[; ;lcd.c: 76: void Lcd_Write_Char(char a) {
+[v _Lcd_Write_Char `(v ~T0 @X0 1 ef1`uc ]
+{
+[e :U _Lcd_Write_Char ]
+[v _a `uc ~T0 @X0 1 r1 ]
+[f ]
+"77
+[; ;lcd.c: 77: char temp, y;
+[v _temp `uc ~T0 @X0 1 a ]
+[v _y `uc ~T0 @X0 1 a ]
+"78
+[; ;lcd.c: 78: temp = a & 0x0F;
+[e = _temp -> & -> _a `i -> 15 `i `uc ]
+"79
+[; ;lcd.c: 79: y = a & 0xF0;
+[e = _y -> & -> _a `i -> 240 `i `uc ]
+"80
+[; ;lcd.c: 80: RD2 = 1;
+[e = _RD2 -> -> 1 `i `b ]
+"81
+[; ;lcd.c: 81: Lcd_Port(y >> 4);
+[e ( _Lcd_Port (1 -> >> -> _y `i -> 4 `i `uc ]
+"82
+[; ;lcd.c: 82: RD3 = 1;
+[e = _RD3 -> -> 1 `i `b ]
+"83
+[; ;lcd.c: 83: _delay((unsigned long)((40)*(20000000/4000000.0)));
+[e ( __delay (1 -> * -> -> 40 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
+"84
+[; ;lcd.c: 84: RD3 = 0;
+[e = _RD3 -> -> 0 `i `b ]
+"85
+[; ;lcd.c: 85: Lcd_Port(temp);
+[e ( _Lcd_Port (1 _temp ]
+"86
+[; ;lcd.c: 86: RD3 = 1;
+[e = _RD3 -> -> 1 `i `b ]
+"87
+[; ;lcd.c: 87: _delay((unsigned long)((40)*(20000000/4000000.0)));
+[e ( __delay (1 -> * -> -> 40 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
+"88
+[; ;lcd.c: 88: RD3 = 0;
+[e = _RD3 -> -> 0 `i `b ]
+"89
+[; ;lcd.c: 89: }
+[e :UE 111 ]
+}
+"91
+[; ;lcd.c: 91: void Lcd_Write_String(char *a) {
+[v _Lcd_Write_String `(v ~T0 @X0 1 ef1`*uc ]
+{
+[e :U _Lcd_Write_String ]
+[v _a `*uc ~T0 @X0 1 r1 ]
+[f ]
+"92
+[; ;lcd.c: 92: int i;
+[v _i `i ~T0 @X0 1 a ]
+"93
+[; ;lcd.c: 93: for (i = 0; a[i] != '\0'; i++)
+{
+[e = _i -> 0 `i ]
+[e $U 116 ]
+[e :U 113 ]
+"94
+[; ;lcd.c: 94: Lcd_Write_Char(a[i]);
+[e ( _Lcd_Write_Char (1 *U + _a * -> _i `x -> -> # *U _a `i `x ]
+[e ++ _i -> 1 `i ]
+[e :U 116 ]
+[e $ != -> *U + _a * -> _i `x -> -> # *U _a `i `x `ui -> 0 `ui 113 ]
+[e :U 114 ]
+}
+"95
+[; ;lcd.c: 95: }
+[e :UE 112 ]
+}
+"97
+[; ;lcd.c: 97: void Lcd_Shift_Right() {
+[v _Lcd_Shift_Right `(v ~T0 @X0 1 ef ]
+{
+[e :U _Lcd_Shift_Right ]
+[f ]
+"98
+[; ;lcd.c: 98: Lcd_Cmd(0x01);
+[e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
+"99
+[; ;lcd.c: 99: Lcd_Cmd(0x0C);
+[e ( _Lcd_Cmd (1 -> -> 12 `i `uc ]
+"100
+[; ;lcd.c: 100: }
+[e :UE 117 ]
+}
+"102
+[; ;lcd.c: 102: void Lcd_Shift_Left() {
+[v _Lcd_Shift_Left `(v ~T0 @X0 1 ef ]
+{
+[e :U _Lcd_Shift_Left ]
+[f ]
+"103
+[; ;lcd.c: 103: Lcd_Cmd(0x01);
+[e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
+"104
+[; ;lcd.c: 104: Lcd_Cmd(0x08);
+[e ( _Lcd_Cmd (1 -> -> 8 `i `uc ]
+"105
+[; ;lcd.c: 105: }
+[e :UE 118 ]
+}
+"108
+[; ;lcd.c: 108: void Vfd_Set_Brightness(int level) {
+[v _Vfd_Set_Brightness `(v ~T0 @X0 1 ef1`i ]
+{
+[e :U _Vfd_Set_Brightness ]
+[v _level `i ~T0 @X0 1 r1 ]
+[f ]
+"110
+[; ;lcd.c: 110: }
+[e :UE 119 ]
+}
diff --git a/build/default/production/lcd.p1.d b/build/default/production/lcd.p1.d
new file mode 100755
index 0000000..bfda697
--- /dev/null
+++ b/build/default/production/lcd.p1.d
@@ -0,0 +1,4 @@
+build/default/production/lcd.p1: \
+lcd.c \
+lcd.h \
+conf.h
diff --git a/build/default/production/main.i b/build/default/production/main.i
new file mode 100755
index 0000000..94710f3
--- /dev/null
+++ b/build/default/production/main.i
@@ -0,0 +1,2212 @@
+# 1 "main.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "main.c" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__size_t.h" 1 3
+
+
+
+typedef unsigned size_t;
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__null.h" 1 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdarg.h" 1 3
+
+
+
+
+
+
+typedef void * va_list[1];
+
+#pragma intrinsic(__va_start)
+extern void * __va_start(void);
+
+#pragma intrinsic(__va_arg)
+extern void * __va_arg(void *, ...);
+# 11 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+# 43 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+struct __prbuf
+{
+ char * ptr;
+ void (* func)(char);
+};
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 1 3
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 1 3
+# 29 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 3
+extern int errno;
+# 8 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 2 3
+
+
+
+
+extern void init_uart(void);
+
+extern char getch(void);
+extern char getche(void);
+extern void putch(char);
+extern void ungetch(char);
+
+extern __bit kbhit(void);
+
+
+
+extern char * cgets(char *);
+extern void cputs(const char *);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+extern int cprintf(char *, ...);
+#pragma printf_check(cprintf)
+
+
+
+extern int _doprnt(struct __prbuf *, const register char *, register va_list);
+# 180 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+#pragma printf_check(vprintf) const
+#pragma printf_check(vsprintf) const
+
+extern char * gets(char *);
+extern int puts(const char *);
+extern int scanf(const char *, ...) __attribute__((unsupported("scanf() is not supported by this compiler")));
+extern int sscanf(const char *, const char *, ...) __attribute__((unsupported("sscanf() is not supported by this compiler")));
+extern int vprintf(const char *, va_list) __attribute__((unsupported("vprintf() is not supported by this compiler")));
+extern int vsprintf(char *, const char *, va_list) __attribute__((unsupported("vsprintf() is not supported by this compiler")));
+extern int vscanf(const char *, va_list ap) __attribute__((unsupported("vscanf() is not supported by this compiler")));
+extern int vsscanf(const char *, const char *, va_list) __attribute__((unsupported("vsscanf() is not supported by this compiler")));
+
+#pragma printf_check(printf) const
+#pragma printf_check(sprintf) const
+extern int sprintf(char *, const char *, ...);
+extern int printf(const char *, ...);
+# 1 "main.c" 2
+
+
+
+
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 5 "main.c" 2
+
+# 1 "./main.h" 1
+
+unsigned int sec = 30;
+unsigned int min = 42;
+unsigned int hour = 21;
+unsigned int dayofweek = 7;
+unsigned int date = 27;
+unsigned int month = 7;
+unsigned int year = 19;
+unsigned int century = 20;
+unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+unsigned int alarm2_min, alarm2_hour;
+unsigned int status_reg, alarm1_status, alarm2_status;
+unsigned int control_reg;
+
+
+unsigned int temperature_lsb = 0;
+int temperature_msb = 0;
+unsigned char temp_sign = ' ';
+
+
+char* weekday;
+
+
+unsigned int sec_chg = 0;
+
+
+unsigned char sec_0, sec_1;
+unsigned char min_0, min_1;
+unsigned char hour_0, hour_1;
+unsigned char day_0, day_1;
+unsigned char month_0, month_1;
+unsigned char year_0, year_1;
+unsigned char temp_0, temp_1, temp_2;
+unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+ alarm1_hour_0, alarm1_hour_1;
+unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+
+
+char buf[40];
+
+
+void format_DateTimeChars(void);
+
+
+void format_Temperature(void);
+
+
+void getWeekDay(unsigned int);
+
+
+void Get_Alarm_Status(void);
+
+void display_Intro(void);
+void display_Lcd_Layout(void);
+
+void update_Display(void);
+# 6 "main.c" 2
+
+# 1 "./lcd.h" 1
+void Lcd_Port(char);
+void Lcd_Cmd(char);
+void Lcd_Clear();
+void Lcd_Set_Cursor(char, char);
+void Lcd_Init();
+void Lcd_Write_Char(char);
+void Lcd_Write_String(char *);
+void Lcd_Shift_Right();
+void Lcd_Shift_Left();
+
+
+void Vfd_Set_Brightness(int);
+# 7 "main.c" 2
+
+# 1 "./i2c.h" 1
+void I2C_Master_Init(const unsigned long);
+void I2C_Master_Wait(void);
+void I2C_Master_Start(void);
+void I2C_Master_Repeated_Start(void);
+void I2C_Master_Stop(void);
+void I2C_Master_Write(unsigned);
+unsigned short I2C_Master_Read(unsigned short);
+# 8 "main.c" 2
+
+# 1 "./ds3231.h" 1
+# 1 "./conf.h" 1
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./ds3231.h" 2
+
+
+int BCD_2_DEC(int);
+int DEC_2_BCD(int);
+void Read_Alarms_Temp(void);
+void Set_Date(void);
+void Set_DayOfWeek(void);
+void Set_Time(void);
+void Set_Time_Date(void);
+void Update_Current_Date_Time(void);
+void Write_Alarms(void);
+# 9 "main.c" 2
+
+# 1 "./beep.h" 1
+# 1 "./conf.h" 1
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./beep.h" 2
+
+
+void alarm(unsigned int);
+# 10 "main.c" 2
+
+
+
+
+
+
+
+int main() {
+ TRISC = 0x00;
+ PORTC = 0x00;
+
+ TRISD = 0x00;
+ PORTD = 0x00;
+# 33 "main.c"
+ I2C_Master_Init(100000);
+
+
+
+
+
+
+
+ Lcd_Init();
+
+
+
+
+
+
+
+ display_Intro();
+ display_Lcd_Layout();
+# 68 "main.c"
+ while (1) {
+
+
+
+ Update_Current_Date_Time();
+
+
+
+ Read_Alarms_Temp();
+
+
+ Get_Alarm_Status();
+
+
+
+ format_DateTimeChars();
+
+
+
+ format_Temperature();
+
+
+
+ getWeekDay(dayofweek);
+
+
+ if (sec_chg != sec) {
+
+ update_Display();
+
+
+ sec_chg = sec;
+# 121 "main.c"
+ }
+ }
+
+ return 0;
+}
+
+
+
+void format_DateTimeChars() {
+ sec_0 = sec % 10 + '0';
+ sec_1 = sec / 10 + '0';
+ min_0 = min % 10 + '0';
+ min_1 = min / 10 + '0';
+ hour_0 = hour % 10 + '0';
+ hour_1 = hour / 10 + '0';
+ day_0 = date % 10 + '0';
+ day_1 = date / 10 + '0';
+ month_0 = month % 10 + '0';
+ month_1 = month / 10 + '0';
+ year_0 = year % 10 + '0';
+ year_1 = year / 10 + '0';
+ alarm1_sec_0 = alarm1_sec % 10 + '0';
+ alarm1_sec_1 = alarm1_sec / 10 + '0';
+ alarm1_min_0 = alarm1_min % 10 + '0';
+ alarm1_min_1 = alarm1_min / 10 + '0';
+ alarm1_hour_0 = alarm1_hour % 10 + '0';
+ alarm1_hour_1 = alarm1_hour / 10 + '0';
+ alarm2_min_0 = alarm2_min % 10 + '0';
+ alarm2_min_1 = alarm2_min / 10 + '0';
+ alarm2_hour_0 = alarm2_hour % 10 + '0';
+ alarm2_hour_1 = alarm2_hour / 10 + '0';
+}
+
+
+
+void format_Temperature() {
+
+ if (temperature_msb < 0) {
+ temperature_msb *= -1;
+ temp_sign = '-';
+ } else {
+ temp_sign = '+';
+ }
+
+
+ temperature_lsb >>= 6;
+
+
+ temperature_lsb *= 25;
+
+ if (temperature_lsb == 0) {
+ temp_0 = '0';
+ }
+
+ if (temperature_lsb == 25) {
+ temp_0 = '2';
+ }
+
+ if (temperature_lsb == 50) {
+ temp_0 = '5';
+ }
+
+ if (temperature_lsb == 75) {
+ temp_0 = '7';
+ }
+
+ temp_1 = temperature_msb % 10 + '0';
+ temp_2 = temperature_msb / 10 + '0';
+}
+
+
+
+void getWeekDay(unsigned int dayofweek) {
+ switch (dayofweek) {
+ case 1:
+ weekday = "Sun";
+ break;
+ case 2:
+ weekday = "Mon";
+ break;
+ case 3:
+ weekday = "Tue";
+ break;
+ case 4:
+ weekday = "Wed";
+ break;
+ case 5:
+ weekday = "Thu";
+ break;
+ case 6:
+ weekday = "Fri";
+ break;
+ case 7:
+ weekday = "Sat";
+ break;
+ }
+}
+
+
+
+void Get_Alarm_Status() {
+ alarm1_status = control_reg & 0x01;
+ alarm2_status = (control_reg >> 1) & 0x01;
+}
+
+void display_Intro() {
+
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("RTC/LCD with PIC");
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(" Circuit Digest");
+ _delay((unsigned long)((2000)*(20000000/4000.0)));
+}
+
+void display_Lcd_Layout() {
+
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("HH:mm:ss -PP.P");
+ Lcd_Write_Char(0xDF);
+ Lcd_Write_Char('C');
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String("ddd, DD/MM/YY ");
+ _delay((unsigned long)((2000)*(20000000/4000.0)));
+}
+
+void update_Display() {
+
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_Char(hour_1);
+ Lcd_Write_Char(hour_0);
+
+
+ Lcd_Set_Cursor(1, 4);
+ Lcd_Write_Char(min_1);
+ Lcd_Write_Char(min_0);
+
+
+ Lcd_Set_Cursor(1, 7);
+ Lcd_Write_Char(sec_1);
+ Lcd_Write_Char(sec_0);
+
+
+ Lcd_Set_Cursor(2, 6);
+ Lcd_Write_Char(day_1);
+ Lcd_Write_Char(day_0);
+
+
+ Lcd_Set_Cursor(2, 9);
+ Lcd_Write_Char(month_1);
+ Lcd_Write_Char(month_0);
+
+
+ Lcd_Set_Cursor(2, 12);
+ Lcd_Write_Char(year_1);
+ Lcd_Write_Char(year_0);
+
+
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(weekday);
+
+
+ Lcd_Set_Cursor(1, 10);
+ Lcd_Write_Char(temp_sign);
+ Lcd_Write_Char(temp_2);
+ Lcd_Write_Char(temp_1);
+ Lcd_Set_Cursor(1, 14);
+ Lcd_Write_Char(temp_0);
+
+ if (min == 00 && sec == 00) {
+ alarm(2);
+ }
+
+ if (min == 30 && sec == 00) {
+ alarm(1);
+ }
+}
diff --git a/build/default/production/main.p1 b/build/default/production/main.p1
new file mode 100755
index 0000000..cf2668c
--- /dev/null
+++ b/build/default/production/main.p1
@@ -0,0 +1,971 @@
+Version 4.0 HI-TECH Software Intermediate Code
+[p mainexit ]
+"1437 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1437: extern volatile unsigned char TRISC __attribute__((address(0x087)));
+[v _TRISC `Vuc ~T0 @X0 0 e@135 ]
+"278
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 278: extern volatile unsigned char PORTC __attribute__((address(0x007)));
+[v _PORTC `Vuc ~T0 @X0 0 e@7 ]
+"1499
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1499: extern volatile unsigned char TRISD __attribute__((address(0x088)));
+[v _TRISD `Vuc ~T0 @X0 0 e@136 ]
+"340
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 340: extern volatile unsigned char PORTD __attribute__((address(0x008)));
+[v _PORTD `Vuc ~T0 @X0 0 e@8 ]
+"1 ./i2c.h
+[; ;./i2c.h: 1: void I2C_Master_Init(const unsigned long);
+[v _I2C_Master_Init `(v ~T0 @X0 0 ef1`Cul ]
+"5 ./lcd.h
+[; ;./lcd.h: 5: void Lcd_Init();
+[v _Lcd_Init `(v ~T0 @X0 0 e? ]
+"53 ./main.h
+[; ;./main.h: 53: void display_Intro(void);
+[v _display_Intro `(v ~T0 @X0 0 ef ]
+"54
+[; ;./main.h: 54: void display_Lcd_Layout(void);
+[v _display_Lcd_Layout `(v ~T0 @X0 0 ef ]
+"10 ./ds3231.h
+[; ;./ds3231.h: 10: void Update_Current_Date_Time(void);
+[v _Update_Current_Date_Time `(v ~T0 @X0 0 ef ]
+"5
+[; ;./ds3231.h: 5: void Read_Alarms_Temp(void);
+[v _Read_Alarms_Temp `(v ~T0 @X0 0 ef ]
+"51 ./main.h
+[; ;./main.h: 51: void Get_Alarm_Status(void);
+[v _Get_Alarm_Status `(v ~T0 @X0 0 ef ]
+"42
+[; ;./main.h: 42: void format_DateTimeChars(void);
+[v _format_DateTimeChars `(v ~T0 @X0 0 ef ]
+"45
+[; ;./main.h: 45: void format_Temperature(void);
+[v _format_Temperature `(v ~T0 @X0 0 ef ]
+"48
+[; ;./main.h: 48: void getWeekDay(unsigned int);
+[v _getWeekDay `(v ~T0 @X0 0 ef1`ui ]
+"56
+[; ;./main.h: 56: void update_Display(void);
+[v _update_Display `(v ~T0 @X0 0 ef ]
+"3 ./lcd.h
+[; ;./lcd.h: 3: void Lcd_Clear();
+[v _Lcd_Clear `(v ~T0 @X0 0 e? ]
+"4
+[; ;./lcd.h: 4: void Lcd_Set_Cursor(char, char);
+[v _Lcd_Set_Cursor `(v ~T0 @X0 0 ef2`uc`uc ]
+"7
+[; ;./lcd.h: 7: void Lcd_Write_String(char *);
+[v _Lcd_Write_String `(v ~T0 @X0 0 ef1`*uc ]
+[v F899 `(v ~T0 @X0 1 tf1`ul ]
+"92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
+[v __delay `JF899 ~T0 @X0 0 e ]
+[p i __delay ]
+"6 ./lcd.h
+[; ;./lcd.h: 6: void Lcd_Write_Char(char);
+[v _Lcd_Write_Char `(v ~T0 @X0 0 ef1`uc ]
+"3 ./beep.h
+[; ;./beep.h: 3: void alarm(unsigned int);
+[v _alarm `(v ~T0 @X0 0 ef1`ui ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"2 ./main.h
+[; ;./main.h: 2: unsigned int sec = 30;
+[v _sec `ui ~T0 @X0 1 e ]
+[i _sec
+-> -> 30 `i `ui
+]
+"3
+[; ;./main.h: 3: unsigned int min = 42;
+[v _min `ui ~T0 @X0 1 e ]
+[i _min
+-> -> 42 `i `ui
+]
+"4
+[; ;./main.h: 4: unsigned int hour = 21;
+[v _hour `ui ~T0 @X0 1 e ]
+[i _hour
+-> -> 21 `i `ui
+]
+"5
+[; ;./main.h: 5: unsigned int dayofweek = 7;
+[v _dayofweek `ui ~T0 @X0 1 e ]
+[i _dayofweek
+-> -> 7 `i `ui
+]
+"6
+[; ;./main.h: 6: unsigned int date = 27;
+[v _date `ui ~T0 @X0 1 e ]
+[i _date
+-> -> 27 `i `ui
+]
+"7
+[; ;./main.h: 7: unsigned int month = 7;
+[v _month `ui ~T0 @X0 1 e ]
+[i _month
+-> -> 7 `i `ui
+]
+"8
+[; ;./main.h: 8: unsigned int year = 19;
+[v _year `ui ~T0 @X0 1 e ]
+[i _year
+-> -> 19 `i `ui
+]
+"9
+[; ;./main.h: 9: unsigned int century = 20;
+[v _century `ui ~T0 @X0 1 e ]
+[i _century
+-> -> 20 `i `ui
+]
+"10
+[; ;./main.h: 10: unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+[v _alarm1_sec `ui ~T0 @X0 1 e ]
+[v _alarm1_min `ui ~T0 @X0 1 e ]
+[v _alarm1_hour `ui ~T0 @X0 1 e ]
+"11
+[; ;./main.h: 11: unsigned int alarm2_min, alarm2_hour;
+[v _alarm2_min `ui ~T0 @X0 1 e ]
+[v _alarm2_hour `ui ~T0 @X0 1 e ]
+"12
+[; ;./main.h: 12: unsigned int status_reg, alarm1_status, alarm2_status;
+[v _status_reg `ui ~T0 @X0 1 e ]
+[v _alarm1_status `ui ~T0 @X0 1 e ]
+[v _alarm2_status `ui ~T0 @X0 1 e ]
+"13
+[; ;./main.h: 13: unsigned int control_reg;
+[v _control_reg `ui ~T0 @X0 1 e ]
+"16
+[; ;./main.h: 16: unsigned int temperature_lsb = 0;
+[v _temperature_lsb `ui ~T0 @X0 1 e ]
+[i _temperature_lsb
+-> -> 0 `i `ui
+]
+"17
+[; ;./main.h: 17: int temperature_msb = 0;
+[v _temperature_msb `i ~T0 @X0 1 e ]
+[i _temperature_msb
+-> 0 `i
+]
+"18
+[; ;./main.h: 18: unsigned char temp_sign = ' ';
+[v _temp_sign `uc ~T0 @X0 1 e ]
+[i _temp_sign
+-> -> 32 `ui `uc
+]
+"21
+[; ;./main.h: 21: char* weekday;
+[v _weekday `*uc ~T0 @X0 1 e ]
+"24
+[; ;./main.h: 24: unsigned int sec_chg = 0;
+[v _sec_chg `ui ~T0 @X0 1 e ]
+[i _sec_chg
+-> -> 0 `i `ui
+]
+"27
+[; ;./main.h: 27: unsigned char sec_0, sec_1;
+[v _sec_0 `uc ~T0 @X0 1 e ]
+[v _sec_1 `uc ~T0 @X0 1 e ]
+"28
+[; ;./main.h: 28: unsigned char min_0, min_1;
+[v _min_0 `uc ~T0 @X0 1 e ]
+[v _min_1 `uc ~T0 @X0 1 e ]
+"29
+[; ;./main.h: 29: unsigned char hour_0, hour_1;
+[v _hour_0 `uc ~T0 @X0 1 e ]
+[v _hour_1 `uc ~T0 @X0 1 e ]
+"30
+[; ;./main.h: 30: unsigned char day_0, day_1;
+[v _day_0 `uc ~T0 @X0 1 e ]
+[v _day_1 `uc ~T0 @X0 1 e ]
+"31
+[; ;./main.h: 31: unsigned char month_0, month_1;
+[v _month_0 `uc ~T0 @X0 1 e ]
+[v _month_1 `uc ~T0 @X0 1 e ]
+"32
+[; ;./main.h: 32: unsigned char year_0, year_1;
+[v _year_0 `uc ~T0 @X0 1 e ]
+[v _year_1 `uc ~T0 @X0 1 e ]
+"33
+[; ;./main.h: 33: unsigned char temp_0, temp_1, temp_2;
+[v _temp_0 `uc ~T0 @X0 1 e ]
+[v _temp_1 `uc ~T0 @X0 1 e ]
+[v _temp_2 `uc ~T0 @X0 1 e ]
+"34
+[; ;./main.h: 34: unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+[v _alarm1_sec_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_sec_1 `uc ~T0 @X0 1 e ]
+[v _alarm1_min_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_min_1 `uc ~T0 @X0 1 e ]
+"35
+[; ;./main.h: 35: alarm1_hour_0, alarm1_hour_1;
+[v _alarm1_hour_0 `uc ~T0 @X0 1 e ]
+[v _alarm1_hour_1 `uc ~T0 @X0 1 e ]
+"36
+[; ;./main.h: 36: unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+[v _alarm2_min_0 `uc ~T0 @X0 1 e ]
+[v _alarm2_min_1 `uc ~T0 @X0 1 e ]
+[v _alarm2_hour_0 `uc ~T0 @X0 1 e ]
+[v _alarm2_hour_1 `uc ~T0 @X0 1 e ]
+"39
+[; ;./main.h: 39: char buf[40];
+[v _buf `uc ~T0 @X0 -> 40 `i e ]
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"4
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+[v $root$_main `(v ~T0 @X0 0 e ]
+"17 main.c
+[; ;main.c: 17: int main() {
+[v _main `(i ~T0 @X0 1 ef ]
+{
+[e :U _main ]
+[f ]
+"18
+[; ;main.c: 18: TRISC = 0x00;
+[e = _TRISC -> -> 0 `i `uc ]
+"19
+[; ;main.c: 19: PORTC = 0x00;
+[e = _PORTC -> -> 0 `i `uc ]
+"21
+[; ;main.c: 21: TRISD = 0x00;
+[e = _TRISD -> -> 0 `i `uc ]
+"22
+[; ;main.c: 22: PORTD = 0x00;
+[e = _PORTD -> -> 0 `i `uc ]
+"33
+[; ;main.c: 33: I2C_Master_Init(100000);
+[e ( _I2C_Master_Init (1 -> -> 100000 `l `ul ]
+"41
+[; ;main.c: 41: Lcd_Init();
+[e ( _Lcd_Init .. ]
+"49
+[; ;main.c: 49: display_Intro();
+[e ( _display_Intro .. ]
+"50
+[; ;main.c: 50: display_Lcd_Layout();
+[e ( _display_Lcd_Layout .. ]
+"68
+[; ;main.c: 68: while (1) {
+[e :U 98 ]
+{
+"72
+[; ;main.c: 72: Update_Current_Date_Time();
+[e ( _Update_Current_Date_Time .. ]
+"76
+[; ;main.c: 76: Read_Alarms_Temp();
+[e ( _Read_Alarms_Temp .. ]
+"79
+[; ;main.c: 79: Get_Alarm_Status();
+[e ( _Get_Alarm_Status .. ]
+"83
+[; ;main.c: 83: format_DateTimeChars();
+[e ( _format_DateTimeChars .. ]
+"87
+[; ;main.c: 87: format_Temperature();
+[e ( _format_Temperature .. ]
+"91
+[; ;main.c: 91: getWeekDay(dayofweek);
+[e ( _getWeekDay (1 _dayofweek ]
+"94
+[; ;main.c: 94: if (sec_chg != sec) {
+[e $ ! != _sec_chg _sec 100 ]
+{
+"96
+[; ;main.c: 96: update_Display();
+[e ( _update_Display .. ]
+"99
+[; ;main.c: 99: sec_chg = sec;
+[e = _sec_chg _sec ]
+"121
+[; ;main.c: 121: }
+}
+[e :U 100 ]
+"122
+[; ;main.c: 122: }
+}
+[e :U 97 ]
+[e $U 98 ]
+[e :U 99 ]
+"124
+[; ;main.c: 124: return 0;
+[e ) -> 0 `i ]
+[e $UE 96 ]
+"125
+[; ;main.c: 125: }
+[e :UE 96 ]
+}
+"129
+[; ;main.c: 129: void format_DateTimeChars() {
+[v _format_DateTimeChars `(v ~T0 @X0 1 ef ]
+{
+[e :U _format_DateTimeChars ]
+[f ]
+"130
+[; ;main.c: 130: sec_0 = sec % 10 + '0';
+[e = _sec_0 -> + % _sec -> -> 10 `i `ui -> 48 `ui `uc ]
+"131
+[; ;main.c: 131: sec_1 = sec / 10 + '0';
+[e = _sec_1 -> + / _sec -> -> 10 `i `ui -> 48 `ui `uc ]
+"132
+[; ;main.c: 132: min_0 = min % 10 + '0';
+[e = _min_0 -> + % _min -> -> 10 `i `ui -> 48 `ui `uc ]
+"133
+[; ;main.c: 133: min_1 = min / 10 + '0';
+[e = _min_1 -> + / _min -> -> 10 `i `ui -> 48 `ui `uc ]
+"134
+[; ;main.c: 134: hour_0 = hour % 10 + '0';
+[e = _hour_0 -> + % _hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"135
+[; ;main.c: 135: hour_1 = hour / 10 + '0';
+[e = _hour_1 -> + / _hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"136
+[; ;main.c: 136: day_0 = date % 10 + '0';
+[e = _day_0 -> + % _date -> -> 10 `i `ui -> 48 `ui `uc ]
+"137
+[; ;main.c: 137: day_1 = date / 10 + '0';
+[e = _day_1 -> + / _date -> -> 10 `i `ui -> 48 `ui `uc ]
+"138
+[; ;main.c: 138: month_0 = month % 10 + '0';
+[e = _month_0 -> + % _month -> -> 10 `i `ui -> 48 `ui `uc ]
+"139
+[; ;main.c: 139: month_1 = month / 10 + '0';
+[e = _month_1 -> + / _month -> -> 10 `i `ui -> 48 `ui `uc ]
+"140
+[; ;main.c: 140: year_0 = year % 10 + '0';
+[e = _year_0 -> + % _year -> -> 10 `i `ui -> 48 `ui `uc ]
+"141
+[; ;main.c: 141: year_1 = year / 10 + '0';
+[e = _year_1 -> + / _year -> -> 10 `i `ui -> 48 `ui `uc ]
+"142
+[; ;main.c: 142: alarm1_sec_0 = alarm1_sec % 10 + '0';
+[e = _alarm1_sec_0 -> + % _alarm1_sec -> -> 10 `i `ui -> 48 `ui `uc ]
+"143
+[; ;main.c: 143: alarm1_sec_1 = alarm1_sec / 10 + '0';
+[e = _alarm1_sec_1 -> + / _alarm1_sec -> -> 10 `i `ui -> 48 `ui `uc ]
+"144
+[; ;main.c: 144: alarm1_min_0 = alarm1_min % 10 + '0';
+[e = _alarm1_min_0 -> + % _alarm1_min -> -> 10 `i `ui -> 48 `ui `uc ]
+"145
+[; ;main.c: 145: alarm1_min_1 = alarm1_min / 10 + '0';
+[e = _alarm1_min_1 -> + / _alarm1_min -> -> 10 `i `ui -> 48 `ui `uc ]
+"146
+[; ;main.c: 146: alarm1_hour_0 = alarm1_hour % 10 + '0';
+[e = _alarm1_hour_0 -> + % _alarm1_hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"147
+[; ;main.c: 147: alarm1_hour_1 = alarm1_hour / 10 + '0';
+[e = _alarm1_hour_1 -> + / _alarm1_hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"148
+[; ;main.c: 148: alarm2_min_0 = alarm2_min % 10 + '0';
+[e = _alarm2_min_0 -> + % _alarm2_min -> -> 10 `i `ui -> 48 `ui `uc ]
+"149
+[; ;main.c: 149: alarm2_min_1 = alarm2_min / 10 + '0';
+[e = _alarm2_min_1 -> + / _alarm2_min -> -> 10 `i `ui -> 48 `ui `uc ]
+"150
+[; ;main.c: 150: alarm2_hour_0 = alarm2_hour % 10 + '0';
+[e = _alarm2_hour_0 -> + % _alarm2_hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"151
+[; ;main.c: 151: alarm2_hour_1 = alarm2_hour / 10 + '0';
+[e = _alarm2_hour_1 -> + / _alarm2_hour -> -> 10 `i `ui -> 48 `ui `uc ]
+"152
+[; ;main.c: 152: }
+[e :UE 101 ]
+}
+"156
+[; ;main.c: 156: void format_Temperature() {
+[v _format_Temperature `(v ~T0 @X0 1 ef ]
+{
+[e :U _format_Temperature ]
+[f ]
+"158
+[; ;main.c: 158: if (temperature_msb < 0) {
+[e $ ! < _temperature_msb -> 0 `i 103 ]
+{
+"159
+[; ;main.c: 159: temperature_msb *= -1;
+[e =* _temperature_msb -U -> 1 `i ]
+"160
+[; ;main.c: 160: temp_sign = '-';
+[e = _temp_sign -> -> 45 `ui `uc ]
+"161
+[; ;main.c: 161: } else {
+}
+[e $U 104 ]
+[e :U 103 ]
+{
+"162
+[; ;main.c: 162: temp_sign = '+';
+[e = _temp_sign -> -> 43 `ui `uc ]
+"163
+[; ;main.c: 163: }
+}
+[e :U 104 ]
+"166
+[; ;main.c: 166: temperature_lsb >>= 6;
+[e =>> _temperature_lsb -> -> 6 `i `ui ]
+"169
+[; ;main.c: 169: temperature_lsb *= 25;
+[e =* _temperature_lsb -> -> 25 `i `ui ]
+"171
+[; ;main.c: 171: if (temperature_lsb == 0) {
+[e $ ! == _temperature_lsb -> -> 0 `i `ui 105 ]
+{
+"172
+[; ;main.c: 172: temp_0 = '0';
+[e = _temp_0 -> -> 48 `ui `uc ]
+"173
+[; ;main.c: 173: }
+}
+[e :U 105 ]
+"175
+[; ;main.c: 175: if (temperature_lsb == 25) {
+[e $ ! == _temperature_lsb -> -> 25 `i `ui 106 ]
+{
+"176
+[; ;main.c: 176: temp_0 = '2';
+[e = _temp_0 -> -> 50 `ui `uc ]
+"177
+[; ;main.c: 177: }
+}
+[e :U 106 ]
+"179
+[; ;main.c: 179: if (temperature_lsb == 50) {
+[e $ ! == _temperature_lsb -> -> 50 `i `ui 107 ]
+{
+"180
+[; ;main.c: 180: temp_0 = '5';
+[e = _temp_0 -> -> 53 `ui `uc ]
+"181
+[; ;main.c: 181: }
+}
+[e :U 107 ]
+"183
+[; ;main.c: 183: if (temperature_lsb == 75) {
+[e $ ! == _temperature_lsb -> -> 75 `i `ui 108 ]
+{
+"184
+[; ;main.c: 184: temp_0 = '7';
+[e = _temp_0 -> -> 55 `ui `uc ]
+"185
+[; ;main.c: 185: }
+}
+[e :U 108 ]
+"187
+[; ;main.c: 187: temp_1 = temperature_msb % 10 + '0';
+[e = _temp_1 -> + -> % _temperature_msb -> 10 `i `ui -> 48 `ui `uc ]
+"188
+[; ;main.c: 188: temp_2 = temperature_msb / 10 + '0';
+[e = _temp_2 -> + -> / _temperature_msb -> 10 `i `ui -> 48 `ui `uc ]
+"189
+[; ;main.c: 189: }
+[e :UE 102 ]
+}
+"193
+[; ;main.c: 193: void getWeekDay(unsigned int dayofweek) {
+[v _getWeekDay `(v ~T0 @X0 1 ef1`ui ]
+{
+[e :U _getWeekDay ]
+[v _dayofweek `ui ~T0 @X0 1 r1 ]
+[f ]
+"194
+[; ;main.c: 194: switch (dayofweek) {
+[e $U 111 ]
+{
+"195
+[; ;main.c: 195: case 1:
+[e :U 112 ]
+"196
+[; ;main.c: 196: weekday = "Sun";
+[e = _weekday :s 1C ]
+"197
+[; ;main.c: 197: break;
+[e $U 110 ]
+"198
+[; ;main.c: 198: case 2:
+[e :U 113 ]
+"199
+[; ;main.c: 199: weekday = "Mon";
+[e = _weekday :s 2C ]
+"200
+[; ;main.c: 200: break;
+[e $U 110 ]
+"201
+[; ;main.c: 201: case 3:
+[e :U 114 ]
+"202
+[; ;main.c: 202: weekday = "Tue";
+[e = _weekday :s 3C ]
+"203
+[; ;main.c: 203: break;
+[e $U 110 ]
+"204
+[; ;main.c: 204: case 4:
+[e :U 115 ]
+"205
+[; ;main.c: 205: weekday = "Wed";
+[e = _weekday :s 4C ]
+"206
+[; ;main.c: 206: break;
+[e $U 110 ]
+"207
+[; ;main.c: 207: case 5:
+[e :U 116 ]
+"208
+[; ;main.c: 208: weekday = "Thu";
+[e = _weekday :s 5C ]
+"209
+[; ;main.c: 209: break;
+[e $U 110 ]
+"210
+[; ;main.c: 210: case 6:
+[e :U 117 ]
+"211
+[; ;main.c: 211: weekday = "Fri";
+[e = _weekday :s 6C ]
+"212
+[; ;main.c: 212: break;
+[e $U 110 ]
+"213
+[; ;main.c: 213: case 7:
+[e :U 118 ]
+"214
+[; ;main.c: 214: weekday = "Sat";
+[e = _weekday :s 7C ]
+"215
+[; ;main.c: 215: break;
+[e $U 110 ]
+"216
+[; ;main.c: 216: }
+}
+[e $U 110 ]
+[e :U 111 ]
+[e [\ _dayofweek , $ -> -> 1 `i `ui 112
+ , $ -> -> 2 `i `ui 113
+ , $ -> -> 3 `i `ui 114
+ , $ -> -> 4 `i `ui 115
+ , $ -> -> 5 `i `ui 116
+ , $ -> -> 6 `i `ui 117
+ , $ -> -> 7 `i `ui 118
+ 110 ]
+[e :U 110 ]
+"217
+[; ;main.c: 217: }
+[e :UE 109 ]
+}
+"221
+[; ;main.c: 221: void Get_Alarm_Status() {
+[v _Get_Alarm_Status `(v ~T0 @X0 1 ef ]
+{
+[e :U _Get_Alarm_Status ]
+[f ]
+"222
+[; ;main.c: 222: alarm1_status = control_reg & 0x01;
+[e = _alarm1_status & _control_reg -> -> 1 `i `ui ]
+"223
+[; ;main.c: 223: alarm2_status = (control_reg >> 1) & 0x01;
+[e = _alarm2_status & >> _control_reg -> 1 `i -> -> 1 `i `ui ]
+"224
+[; ;main.c: 224: }
+[e :UE 119 ]
+}
+"226
+[; ;main.c: 226: void display_Intro() {
+[v _display_Intro `(v ~T0 @X0 1 ef ]
+{
+[e :U _display_Intro ]
+[f ]
+"228
+[; ;main.c: 228: Lcd_Clear();
+[e ( _Lcd_Clear .. ]
+"229
+[; ;main.c: 229: Lcd_Set_Cursor(1, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
+"230
+[; ;main.c: 230: Lcd_Write_String("RTC/LCD with PIC");
+[e ( _Lcd_Write_String (1 :s 8C ]
+"231
+[; ;main.c: 231: Lcd_Set_Cursor(2, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
+"232
+[; ;main.c: 232: Lcd_Write_String(" Circuit Digest");
+[e ( _Lcd_Write_String (1 :s 9C ]
+"233
+[; ;main.c: 233: _delay((unsigned long)((2000)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 2000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"234
+[; ;main.c: 234: }
+[e :UE 120 ]
+}
+"236
+[; ;main.c: 236: void display_Lcd_Layout() {
+[v _display_Lcd_Layout `(v ~T0 @X0 1 ef ]
+{
+[e :U _display_Lcd_Layout ]
+[f ]
+"238
+[; ;main.c: 238: Lcd_Clear();
+[e ( _Lcd_Clear .. ]
+"239
+[; ;main.c: 239: Lcd_Set_Cursor(1, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
+"240
+[; ;main.c: 240: Lcd_Write_String("HH:mm:ss -PP.P");
+[e ( _Lcd_Write_String (1 :s 10C ]
+"241
+[; ;main.c: 241: Lcd_Write_Char(0xDF);
+[e ( _Lcd_Write_Char (1 -> -> 223 `i `uc ]
+"242
+[; ;main.c: 242: Lcd_Write_Char('C');
+[e ( _Lcd_Write_Char (1 -> -> 67 `ui `uc ]
+"243
+[; ;main.c: 243: Lcd_Set_Cursor(2, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
+"244
+[; ;main.c: 244: Lcd_Write_String("ddd, DD/MM/YY ");
+[e ( _Lcd_Write_String (1 :s 11C ]
+"245
+[; ;main.c: 245: _delay((unsigned long)((2000)*(20000000/4000.0)));
+[e ( __delay (1 -> * -> -> 2000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
+"246
+[; ;main.c: 246: }
+[e :UE 121 ]
+}
+"248
+[; ;main.c: 248: void update_Display() {
+[v _update_Display `(v ~T0 @X0 1 ef ]
+{
+[e :U _update_Display ]
+[f ]
+"250
+[; ;main.c: 250: Lcd_Set_Cursor(1, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
+"251
+[; ;main.c: 251: Lcd_Write_Char(hour_1);
+[e ( _Lcd_Write_Char (1 -> _hour_1 `uc ]
+"252
+[; ;main.c: 252: Lcd_Write_Char(hour_0);
+[e ( _Lcd_Write_Char (1 -> _hour_0 `uc ]
+"255
+[; ;main.c: 255: Lcd_Set_Cursor(1, 4);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 4 `i `uc ]
+"256
+[; ;main.c: 256: Lcd_Write_Char(min_1);
+[e ( _Lcd_Write_Char (1 -> _min_1 `uc ]
+"257
+[; ;main.c: 257: Lcd_Write_Char(min_0);
+[e ( _Lcd_Write_Char (1 -> _min_0 `uc ]
+"260
+[; ;main.c: 260: Lcd_Set_Cursor(1, 7);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 7 `i `uc ]
+"261
+[; ;main.c: 261: Lcd_Write_Char(sec_1);
+[e ( _Lcd_Write_Char (1 -> _sec_1 `uc ]
+"262
+[; ;main.c: 262: Lcd_Write_Char(sec_0);
+[e ( _Lcd_Write_Char (1 -> _sec_0 `uc ]
+"265
+[; ;main.c: 265: Lcd_Set_Cursor(2, 6);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 6 `i `uc ]
+"266
+[; ;main.c: 266: Lcd_Write_Char(day_1);
+[e ( _Lcd_Write_Char (1 -> _day_1 `uc ]
+"267
+[; ;main.c: 267: Lcd_Write_Char(day_0);
+[e ( _Lcd_Write_Char (1 -> _day_0 `uc ]
+"270
+[; ;main.c: 270: Lcd_Set_Cursor(2, 9);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 9 `i `uc ]
+"271
+[; ;main.c: 271: Lcd_Write_Char(month_1);
+[e ( _Lcd_Write_Char (1 -> _month_1 `uc ]
+"272
+[; ;main.c: 272: Lcd_Write_Char(month_0);
+[e ( _Lcd_Write_Char (1 -> _month_0 `uc ]
+"275
+[; ;main.c: 275: Lcd_Set_Cursor(2, 12);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 12 `i `uc ]
+"276
+[; ;main.c: 276: Lcd_Write_Char(year_1);
+[e ( _Lcd_Write_Char (1 -> _year_1 `uc ]
+"277
+[; ;main.c: 277: Lcd_Write_Char(year_0);
+[e ( _Lcd_Write_Char (1 -> _year_0 `uc ]
+"280
+[; ;main.c: 280: Lcd_Set_Cursor(2, 1);
+[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
+"281
+[; ;main.c: 281: Lcd_Write_String(weekday);
+[e ( _Lcd_Write_String (1 _weekday ]
+"284
+[; ;main.c: 284: Lcd_Set_Cursor(1, 10);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 10 `i `uc ]
+"285
+[; ;main.c: 285: Lcd_Write_Char(temp_sign);
+[e ( _Lcd_Write_Char (1 -> _temp_sign `uc ]
+"286
+[; ;main.c: 286: Lcd_Write_Char(temp_2);
+[e ( _Lcd_Write_Char (1 -> _temp_2 `uc ]
+"287
+[; ;main.c: 287: Lcd_Write_Char(temp_1);
+[e ( _Lcd_Write_Char (1 -> _temp_1 `uc ]
+"288
+[; ;main.c: 288: Lcd_Set_Cursor(1, 14);
+[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 14 `i `uc ]
+"289
+[; ;main.c: 289: Lcd_Write_Char(temp_0);
+[e ( _Lcd_Write_Char (1 -> _temp_0 `uc ]
+"291
+[; ;main.c: 291: if (min == 00 && sec == 00) {
+[e $ ! && == _min -> -> 0 `i `ui == _sec -> -> 0 `i `ui 123 ]
+{
+"292
+[; ;main.c: 292: alarm(2);
+[e ( _alarm (1 -> -> 2 `i `ui ]
+"293
+[; ;main.c: 293: }
+}
+[e :U 123 ]
+"295
+[; ;main.c: 295: if (min == 30 && sec == 00) {
+[e $ ! && == _min -> -> 30 `i `ui == _sec -> -> 0 `i `ui 124 ]
+{
+"296
+[; ;main.c: 296: alarm(1);
+[e ( _alarm (1 -> -> 1 `i `ui ]
+"297
+[; ;main.c: 297: }
+}
+[e :U 124 ]
+"298
+[; ;main.c: 298: }
+[e :UE 122 ]
+}
+[a 5C 84 104 117 0 ]
+[a 9C 32 67 105 114 99 117 105 116 32 68 105 103 101 115 116 0 ]
+[a 7C 83 97 116 0 ]
+[a 1C 83 117 110 0 ]
+[a 2C 77 111 110 0 ]
+[a 6C 70 114 105 0 ]
+[a 3C 84 117 101 0 ]
+[a 4C 87 101 100 0 ]
+[a 10C 72 72 58 109 109 58 115 115 32 45 80 80 46 80 0 ]
+[a 8C 82 84 67 47 76 67 68 32 119 105 116 104 32 80 73 67 0 ]
+[a 11C 100 100 100 44 32 68 68 47 77 77 47 89 89 32 32 0 ]
diff --git a/build/default/production/main.p1.d b/build/default/production/main.p1.d
new file mode 100755
index 0000000..36bbc29
--- /dev/null
+++ b/build/default/production/main.p1.d
@@ -0,0 +1,8 @@
+build/default/production/main.p1: \
+main.c \
+conf.h \
+main.h \
+lcd.h \
+i2c.h \
+ds3231.h \
+beep.h
diff --git a/build/default/production/uart.i b/build/default/production/uart.i
new file mode 100755
index 0000000..71a0d48
--- /dev/null
+++ b/build/default/production/uart.i
@@ -0,0 +1,1811 @@
+# 1 "uart.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "uart.c" 2
+
+
+# 1 "./uart.h" 1
+void Initialize_UART(void);
+void UART_send_char(char);
+char UART_get_char();
+void UART_send_string(char *);
+# 3 "uart.c" 2
+
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 4 "uart.c" 2
+
+
+void Initialize_UART(void) {
+
+ TRISC6 = 0;
+ TRISC7 = 1;
+
+
+
+
+ SPBRG = ((20000000 / 16) / 9600) - 1;
+ BRGH = 1;
+
+
+
+ SYNC = 0;
+ SPEN = 1;
+
+
+
+ TXEN = 1;
+ CREN = 1;
+
+
+
+ TX9 = 0;
+ RX9 = 0;
+
+}
+
+
+
+
+
+
+void UART_send_char(char bt) {
+ while (!TXIF);
+ TXREG = bt;
+}
+
+
+
+
+
+
+char UART_get_char() {
+ if (OERR)
+ {
+ CREN = 0;
+ CREN = 1;
+ }
+
+ while (!RCIF);
+
+ return RCREG;
+}
+
+
+
+
+
+
+void UART_send_string(char* st_pt) {
+ while (*st_pt)
+ UART_send_char(*st_pt++);
+}
diff --git a/build/default/production/uart.p1 b/build/default/production/uart.p1
new file mode 100755
index 0000000..ff18682
--- /dev/null
+++ b/build/default/production/uart.p1
@@ -0,0 +1,363 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"2977 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2977: extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+[v _TRISC6 `Vb ~T0 @X0 0 e@1086 ]
+"2980
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2980: extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+[v _TRISC7 `Vb ~T0 @X0 0 e@1087 ]
+"2080
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2080: extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+[v _SPBRG `Vuc ~T0 @X0 0 e@153 ]
+"2416
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2416: extern volatile __bit BRGH __attribute__((address(0x4C2)));
+[v _BRGH `Vb ~T0 @X0 0 e@1218 ]
+"2842
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2842: extern volatile __bit SYNC __attribute__((address(0x4C4)));
+[v _SYNC `Vb ~T0 @X0 0 e@1220 ]
+"2812
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2812: extern volatile __bit SPEN __attribute__((address(0xC7)));
+[v _SPEN `Vb ~T0 @X0 0 e@199 ]
+"3031
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 3031: extern volatile __bit TXEN __attribute__((address(0x4C5)));
+[v _TXEN `Vb ~T0 @X0 0 e@1221 ]
+"2515
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2515: extern volatile __bit CREN __attribute__((address(0xC4)));
+[v _CREN `Vb ~T0 @X0 0 e@196 ]
+"3022
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 3022: extern volatile __bit TX9 __attribute__((address(0x4C6)));
+[v _TX9 `Vb ~T0 @X0 0 e@1222 ]
+"2794
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2794: extern volatile __bit RX9 __attribute__((address(0xC6)));
+[v _RX9 `Vb ~T0 @X0 0 e@198 ]
+"3037
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 3037: extern volatile __bit TXIF __attribute__((address(0x64)));
+[v _TXIF `Vb ~T0 @X0 0 e@100 ]
+"1059
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1059: extern volatile unsigned char TXREG __attribute__((address(0x019)));
+[v _TXREG `Vuc ~T0 @X0 0 e@25 ]
+"2614
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2614: extern volatile __bit OERR __attribute__((address(0xC1)));
+[v _OERR `Vb ~T0 @X0 0 e@193 ]
+"2743
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2743: extern volatile __bit RCIF __attribute__((address(0x65)));
+[v _RCIF `Vb ~T0 @X0 0 e@101 ]
+"1066
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1066: extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+[v _RCREG `Vuc ~T0 @X0 0 e@26 ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"4 ./conf.h
+[p x FOSC = HS ]
+"5
+[p x WDTE = OFF ]
+"6
+[p x PWRTE = ON ]
+"7
+[p x BOREN = ON ]
+"8
+[p x LVP = OFF ]
+"9
+[p x CPD = OFF ]
+"10
+[p x WRT = OFF ]
+"11
+[p x CP = OFF ]
+"6 uart.c
+[; ;uart.c: 6: void Initialize_UART(void) {
+[v _Initialize_UART `(v ~T0 @X0 1 ef ]
+{
+[e :U _Initialize_UART ]
+[f ]
+"8
+[; ;uart.c: 8: TRISC6 = 0;
+[e = _TRISC6 -> -> 0 `i `b ]
+"9
+[; ;uart.c: 9: TRISC7 = 1;
+[e = _TRISC7 -> -> 1 `i `b ]
+"14
+[; ;uart.c: 14: SPBRG = ((20000000 / 16) / 9600) - 1;
+[e = _SPBRG -> - / / -> 20000000 `l -> -> 16 `i `l -> -> 9600 `i `l -> -> 1 `i `l `uc ]
+"15
+[; ;uart.c: 15: BRGH = 1;
+[e = _BRGH -> -> 1 `i `b ]
+"19
+[; ;uart.c: 19: SYNC = 0;
+[e = _SYNC -> -> 0 `i `b ]
+"20
+[; ;uart.c: 20: SPEN = 1;
+[e = _SPEN -> -> 1 `i `b ]
+"24
+[; ;uart.c: 24: TXEN = 1;
+[e = _TXEN -> -> 1 `i `b ]
+"25
+[; ;uart.c: 25: CREN = 1;
+[e = _CREN -> -> 1 `i `b ]
+"29
+[; ;uart.c: 29: TX9 = 0;
+[e = _TX9 -> -> 0 `i `b ]
+"30
+[; ;uart.c: 30: RX9 = 0;
+[e = _RX9 -> -> 0 `i `b ]
+"32
+[; ;uart.c: 32: }
+[e :UE 95 ]
+}
+"39
+[; ;uart.c: 39: void UART_send_char(char bt) {
+[v _UART_send_char `(v ~T0 @X0 1 ef1`uc ]
+{
+[e :U _UART_send_char ]
+[v _bt `uc ~T0 @X0 1 r1 ]
+[f ]
+"40
+[; ;uart.c: 40: while (!TXIF);
+[e $U 97 ]
+[e :U 98 ]
+[e :U 97 ]
+[e $ ! _TXIF 98 ]
+[e :U 99 ]
+"41
+[; ;uart.c: 41: TXREG = bt;
+[e = _TXREG -> _bt `uc ]
+"42
+[; ;uart.c: 42: }
+[e :UE 96 ]
+}
+"49
+[; ;uart.c: 49: char UART_get_char() {
+[v _UART_get_char `(uc ~T0 @X0 1 ef ]
+{
+[e :U _UART_get_char ]
+[f ]
+"50
+[; ;uart.c: 50: if (OERR)
+[e $ ! _OERR 101 ]
+"51
+[; ;uart.c: 51: {
+{
+"52
+[; ;uart.c: 52: CREN = 0;
+[e = _CREN -> -> 0 `i `b ]
+"53
+[; ;uart.c: 53: CREN = 1;
+[e = _CREN -> -> 1 `i `b ]
+"54
+[; ;uart.c: 54: }
+}
+[e :U 101 ]
+"56
+[; ;uart.c: 56: while (!RCIF);
+[e $U 102 ]
+[e :U 103 ]
+[e :U 102 ]
+[e $ ! _RCIF 103 ]
+[e :U 104 ]
+"58
+[; ;uart.c: 58: return RCREG;
+[e ) -> _RCREG `uc ]
+[e $UE 100 ]
+"59
+[; ;uart.c: 59: }
+[e :UE 100 ]
+}
+"66
+[; ;uart.c: 66: void UART_send_string(char* st_pt) {
+[v _UART_send_string `(v ~T0 @X0 1 ef1`*uc ]
+{
+[e :U _UART_send_string ]
+[v _st_pt `*uc ~T0 @X0 1 r1 ]
+[f ]
+"67
+[; ;uart.c: 67: while (*st_pt)
+[e $U 106 ]
+[e :U 107 ]
+"68
+[; ;uart.c: 68: UART_send_char(*st_pt++);
+[e ( _UART_send_char (1 *U ++ _st_pt * -> -> 1 `i `x -> -> # *U _st_pt `i `x ]
+[e :U 106 ]
+"67
+[; ;uart.c: 67: while (*st_pt)
+[e $ != -> *U _st_pt `i -> 0 `i 107 ]
+[e :U 108 ]
+"69
+[; ;uart.c: 69: }
+[e :UE 105 ]
+}
diff --git a/build/default/production/uart.p1.d b/build/default/production/uart.p1.d
new file mode 100755
index 0000000..063661b
--- /dev/null
+++ b/build/default/production/uart.p1.d
@@ -0,0 +1,4 @@
+build/default/production/uart.p1: \
+uart.c \
+uart.h \
+conf.h
diff --git a/conf.h b/conf.h
new file mode 100755
index 0000000..c63df84
--- /dev/null
+++ b/conf.h
@@ -0,0 +1,34 @@
+#include <xc.h>
+
+// BEGIN CONFIG
+#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
+#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT enabled)
+#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT disabled)
+#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
+#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
+#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
+#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
+#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
+// END CONFIG
+
+// Use internal crystal at 8MHz
+#define _XTAL_FREQ 20000000
+
+// Define baud rate of 9600
+#define Baud_rate 9600
+
+// HD44780
+#define RS RD2 // Register Select on RD2
+#define EN RD3 // Enable on RD3
+#define D4 RD4 // Data 4 on RD4
+#define D5 RD5 // Data 5 on RD5
+#define D6 RD6 // Data 6 on RD6
+#define D7 RD7 // Data 7 on RD7
+
+//Define Buttons
+#define SETB RE0
+#define DECR RE1
+#define INCR RE2
+
+//Define Buzz
+#define BEEP RD1 \ No newline at end of file
diff --git a/dist/default/production/I2C_LCD.X.production.cmf b/dist/default/production/I2C_LCD.X.production.cmf
new file mode 100755
index 0000000..9ec38ed
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.cmf
@@ -0,0 +1,1054 @@
+%CMF
+# %PSECTS Section
+# For each object file, details of its psects are enumerated here.
+# The begining of the section is indicated by %PSECTS. The first
+# line indicates the name of the first object file, e.g.
+# $foo.obj
+# Each line that follows describes a psect in that object file, until
+# the next object file. The lines that describe a psect have the
+# format:
+# <psect name> <class name> <space> <link address> <load addresses> <length> <delta>
+# All addresses and the length are given in unqualified hexadecimal
+# in delta units. Any other numeric values are decimal.
+%PSECTS
+$C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+end_init CODE 0 0 0 3 2
+config CONFIG 0 2007 2007 1 2
+$dist/default/production\I2C_LCD.X.production.o
+cinit CODE 0 7D3 7D3 2D 2
+text1 CODE 0 513 513 107 2
+text2 CODE 0 F28 F28 43 2
+text3 CODE 0 97 97 4F 2
+text4 CODE 0 2B8 2B8 81 2
+text5 CODE 0 FB5 FB5 4B 2
+text6 CODE 0 137 137 59 2
+text7 CODE 0 61A 61A 1B9 2
+text8 CODE 0 DCC DCC 32 2
+text9 CODE 0 E6C E6C 3C 2
+text10 CODE 0 EE7 EE7 41 2
+text11 CODE 0 DFE DFE 35 2
+text12 CODE 0 D9F D9F 2D 2
+text13 CODE 0 E33 E33 39 2
+text14 CODE 0 F6B F6B 4A 2
+text15 CODE 0 CDF CDF B 2
+text16 CODE 0 339 339 E3 2
+text17 CODE 0 41C 41C F7 2
+text18 CODE 0 CC6 CC6 8 2
+text19 CODE 0 CBF CBF 7 2
+text20 CODE 0 CB8 CB8 7 2
+text21 CODE 0 CB1 CB1 7 2
+text22 CODE 0 D73 D73 2C 2
+text23 CODE 0 CD6 CD6 9 2
+text24 CODE 0 74 74 23 2
+text25 CODE 0 D52 D52 21 2
+text26 CODE 0 190 190 5C 2
+text27 CODE 0 D38 D38 1A 2
+text28 CODE 0 D1E D1E 1A 2
+text29 CODE 0 E6 E6 51 2
+text30 CODE 0 EA8 EA8 3F 2
+text31 CODE 0 1EC 1EC 60 2
+text32 CODE 0 D08 D08 16 2
+maintext CODE 0 24C 24C 6C 2
+cstackCOMMON COMMON 1 70 70 E 1
+cstackBANK0 BANK0 1 4D 4D 15 1
+inittext CODE 0 CF7 CF7 11 2
+bssBANK0 BANK0 1 20 20 2D 1
+bssBANK1 BANK1 1 A0 A0 2E 1
+idataBANK0 CODE 0 CEA CEA D 2
+idataBANK1 CODE 0 70 70 4 2
+strings STRING 0 3 3 6C 2
+dataBANK0 BANK0 1 62 62 D 1
+dataBANK1 BANK1 1 CE CE 4 1
+clrtext CODE 0 CCE CCE 8 2
+# %UNUSED Section
+# This section enumerates the unused ranges of each CLASS. Each entry
+# is described on a single line as follows:
+# <class name> <range> <delta>
+# Addresses given in the range are in hexadecimal and units of delta.
+%UNUSED
+RAM 6F-6F 1
+RAM D2-EF 1
+RAM 110-16F 1
+RAM 190-1EF 1
+BANK0 6F-6F 1
+BANK1 D2-EF 1
+BANK2 110-16F 1
+BANK3 190-1EF 1
+CONST 6F-6F 2
+CONST 800-CB0 2
+CONST 1000-1FFF 2
+ENTRY 6F-6F 2
+ENTRY 800-CB0 2
+ENTRY 1000-1FFF 2
+IDLOC 2000-2003 2
+STACK 110-16F 1
+CODE 6F-6F 2
+CODE 800-CB0 2
+CODE 1000-1FFF 2
+SFR0 0-1F 1
+SFR1 80-9F 1
+SFR2 100-10F 1
+SFR3 180-18F 1
+EEDATA 2100-21FF 2
+STRCODE 6F-6F 2
+STRCODE 800-CB0 2
+STRCODE 1000-1FFF 2
+STRING 6F-6F 2
+STRING 800-CB0 2
+STRING 1000-1FFF 2
+# %LINETAB Section
+# This section enumerates the file/line to address mappings.
+# The beginning of the section is indicated by %LINETAB.
+# The first line indicates the name of the first object file, e.g.
+# $foo.obj
+# Each line that follows describes a single mapping until the next
+# object file. Mappings have the following format:
+# <address> <psect name> <class name> ><line number>:<file name>
+# The address is absolute and given given in unqualified hex
+# in delta units of the psect. All mappings within an object file
+# are in ascending order of addresses.
+# All other numeric values are in decimal.
+%LINETAB
+$dist/default/production\I2C_LCD.X.production.o
+7D3 cinit CODE >1340:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D3 cinit CODE >1343:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D3 cinit CODE >1557:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D4 cinit CODE >1558:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D5 cinit CODE >1559:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D6 cinit CODE >1560:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D7 cinit CODE >1561:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D8 cinit CODE >1562:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7D9 cinit CODE >1563:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7DA cinit CODE >1564:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7DB cinit CODE >1565:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7DC cinit CODE >1566:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E1 cinit CODE >1570:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E2 cinit CODE >1571:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E3 cinit CODE >1572:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E4 cinit CODE >1573:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E5 cinit CODE >1574:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E6 cinit CODE >1575:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E7 cinit CODE >1576:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E8 cinit CODE >1577:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7E9 cinit CODE >1578:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7EE cinit CODE >1597:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7EF cinit CODE >1598:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F0 cinit CODE >1599:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F1 cinit CODE >1600:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F6 cinit CODE >1603:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F7 cinit CODE >1604:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F8 cinit CODE >1605:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7F9 cinit CODE >1606:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7FC cinit CODE >1612:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7FC cinit CODE >1614:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+7FD cinit CODE >1615:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D08 text32 CODE >221:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+D08 text32 CODE >222:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+D10 text32 CODE >223:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+D1D text32 CODE >224:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+1EC text31 CODE >5:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+1EC text31 CODE >13:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+1F6 text31 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+1FC text31 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+1FE text31 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+200 text31 CODE >17:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+209 text31 CODE >18:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+20D text31 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+20E text31 CODE >21:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+217 text31 CODE >22:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+227 text31 CODE >23:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+235 text31 CODE >24:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+236 text31 CODE >26:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+23F text31 CODE >27:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+243 text31 CODE >29:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+24B text31 CODE >30:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+EA8 text30 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EA8 text30 CODE >119:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EB0 text30 CODE >121:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EB2 text30 CODE >122:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EC6 text30 CODE >123:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+ECF text30 CODE >124:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+ED8 text30 CODE >125:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EDE text30 CODE >128:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+EE6 text30 CODE >129:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+E6 text29 CODE >8:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+E6 text29 CODE >10:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+EA text29 CODE >12:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+EE text29 CODE >13:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+F1 text29 CODE >15:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+135 text29 CODE >16:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+136 text29 CODE >17:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D1E text28 CODE >6:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D1F text28 CODE >7:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D21 text28 CODE >8:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D25 text28 CODE >9:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D25 text28 CODE >10:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D28 text28 CODE >12:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D2A text28 CODE >13:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D2C text28 CODE >14:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D2C text28 CODE >15:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D2D text28 CODE >17:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D2F text28 CODE >18:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D31 text28 CODE >19:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D31 text28 CODE >20:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D32 text28 CODE >22:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D34 text28 CODE >23:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D36 text28 CODE >24:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D36 text28 CODE >25:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D37 text28 CODE >26:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D38 text27 CODE >28:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D39 text27 CODE >29:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D3C text27 CODE >30:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D42 text27 CODE >31:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D45 text27 CODE >32:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D4E text27 CODE >33:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D51 text27 CODE >34:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+190 text26 CODE >58:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+190 text26 CODE >59:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+196 text26 CODE >60:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+19F text26 CODE >61:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1A5 text26 CODE >62:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1AE text26 CODE >63:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1B4 text26 CODE >64:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1BD text26 CODE >65:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1C3 text26 CODE >67:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1C9 text26 CODE >68:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1CF text26 CODE >69:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1D5 text26 CODE >70:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1DB text26 CODE >71:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1E1 text26 CODE >72:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1E7 text26 CODE >73:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+1EB text26 CODE >74:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D52 text25 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D52 text25 CODE >43:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D54 text25 CODE >45:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D56 text25 CODE >46:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D5C text25 CODE >47:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D63 text25 CODE >48:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D6A text25 CODE >49:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D6E text25 CODE >52:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+D72 text25 CODE >53:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+74 text24 CODE >19:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+74 text24 CODE >20:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+96 text24 CODE >21:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+CD6 text23 CODE >19:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CD6 text23 CODE >21:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D73 text22 CODE >48:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D73 text22 CODE >51:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D78 text22 CODE >52:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D7B text22 CODE >54:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D80 text22 CODE >55:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D89 text22 CODE >57:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D8E text22 CODE >58:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D99 text22 CODE >59:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D9A text22 CODE >61:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+D9E text22 CODE >62:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB1 text21 CODE >30:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB1 text21 CODE >32:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB4 text21 CODE >33:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB7 text21 CODE >34:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB8 text20 CODE >24:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CB8 text20 CODE >26:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CBB text20 CODE >27:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CBE text20 CODE >28:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CBF text19 CODE >36:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CBF text19 CODE >38:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CC2 text19 CODE >39:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CC5 text19 CODE >40:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CC6 text18 CODE >42:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CC6 text18 CODE >44:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CC9 text18 CODE >45:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+CCD text18 CODE >46:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+41C text17 CODE >27:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+41C text17 CODE >28:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+421 text17 CODE >29:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+42A text17 CODE >30:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+433 text17 CODE >31:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+438 text17 CODE >34:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+441 text17 CODE >35:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+459 text17 CODE >36:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+471 text17 CODE >37:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+489 text17 CODE >38:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+492 text17 CODE >39:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4AA text17 CODE >40:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4C2 text17 CODE >41:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4CB text17 CODE >42:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4DA text17 CODE >43:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4E9 text17 CODE >44:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+4F2 text17 CODE >46:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+501 text17 CODE >48:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+50F text17 CODE >49:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+512 text17 CODE >50:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+339 text16 CODE >94:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+339 text16 CODE >96:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+33E text16 CODE >97:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+347 text16 CODE >98:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+34F text16 CODE >99:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+354 text16 CODE >102:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+35D text16 CODE >103:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+375 text16 CODE >104:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+38D text16 CODE >105:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+3A5 text16 CODE >106:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+3B4 text16 CODE >107:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+3CC text16 CODE >108:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+3E4 text16 CODE >109:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+3FC text16 CODE >110:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+401 text16 CODE >114:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+406 text16 CODE >115:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+40F text16 CODE >116:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+418 text16 CODE >117:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+41B text16 CODE >118:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+CDF text15 CODE >36:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+CDF text15 CODE >37:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+CE5 text15 CODE >38:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+CE9 text15 CODE >39:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F6B text14 CODE >41:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F6C text14 CODE >43:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F6F text14 CODE >44:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F74 text14 CODE >45:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F80 text14 CODE >46:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F85 text14 CODE >47:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F8B text14 CODE >48:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F8F text14 CODE >49:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F94 text14 CODE >50:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+F99 text14 CODE >51:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+FA5 text14 CODE >52:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+FAA text14 CODE >53:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+FB0 text14 CODE >54:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+FB4 text14 CODE >56:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E33 text13 CODE >76:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E34 text13 CODE >78:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E39 text13 CODE >79:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E3E text13 CODE >80:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E41 text13 CODE >81:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E4F text13 CODE >82:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E52 text13 CODE >83:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E57 text13 CODE >84:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E5A text13 CODE >85:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E60 text13 CODE >86:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E63 text13 CODE >87:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E68 text13 CODE >88:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+E6B text13 CODE >89:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D9F text12 CODE >91:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+D9F text12 CODE >93:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+DA1 text12 CODE >94:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+DFE text11 CODE >226:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+DFE text11 CODE >228:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E03 text11 CODE >229:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E0B text11 CODE >230:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E14 text11 CODE >231:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E1C text11 CODE >232:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E25 text11 CODE >233:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E32 text11 CODE >234:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+EE7 text10 CODE >236:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+EE7 text10 CODE >238:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+EEC text10 CODE >239:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+EF4 text10 CODE >240:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+EFD text10 CODE >241:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F03 text10 CODE >242:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F09 text10 CODE >243:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F11 text10 CODE >244:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F1A text10 CODE >245:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F27 text10 CODE >246:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E6C text9 CODE >5:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E6C text9 CODE >13:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E6E text9 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E72 text9 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E74 text9 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E76 text9 CODE >17:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E7D text9 CODE >18:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E81 text9 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E82 text9 CODE >21:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E89 text9 CODE >22:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E91 text9 CODE >23:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E97 text9 CODE >24:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E98 text9 CODE >26:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+E9F text9 CODE >27:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+EA3 text9 CODE >29:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+EA7 text9 CODE >30:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+DCC text8 CODE >5:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DCC text8 CODE >12:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DD0 text8 CODE >13:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DD2 text8 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DD4 text8 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DDB text8 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DDF text8 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DE0 text8 CODE >19:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DE8 text8 CODE >20:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DEE text8 CODE >21:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DF5 text8 CODE >22:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DF9 text8 CODE >24:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+DFD text8 CODE >25:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+61A text7 CODE >129:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+61A text7 CODE >130:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+630 text7 CODE >131:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+644 text7 CODE >132:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+658 text7 CODE >133:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+66C text7 CODE >134:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+680 text7 CODE >135:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+694 text7 CODE >136:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+6A8 text7 CODE >137:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+6BC text7 CODE >138:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+6D0 text7 CODE >139:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+6E4 text7 CODE >140:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+6F8 text7 CODE >141:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+70C text7 CODE >142:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+720 text7 CODE >143:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+734 text7 CODE >144:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+748 text7 CODE >145:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+75C text7 CODE >146:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+770 text7 CODE >147:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+784 text7 CODE >148:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+798 text7 CODE >149:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+7AC text7 CODE >150:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+7C0 text7 CODE >151:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+7D2 text7 CODE >152:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+137 text6 CODE >5:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+137 text6 CODE >13:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+138 text6 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+13A text6 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+13F text6 CODE >16:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+141 text6 CODE >18:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+143 text6 CODE >19:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+148 text6 CODE >20:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+14C text6 CODE >22:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+14E text6 CODE >23:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+152 text6 CODE >24:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+154 text6 CODE >25:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+156 text6 CODE >26:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+15D text6 CODE >27:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+161 text6 CODE >25:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+162 text6 CODE >30:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+169 text6 CODE >31:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+171 text6 CODE >32:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+177 text6 CODE >33:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+178 text6 CODE >35:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+17F text6 CODE >36:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+183 text6 CODE >38:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+186 text6 CODE >39:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+18B text6 CODE >40:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+18F text6 CODE >41:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+FB5 text5 CODE >5:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FB5 text5 CODE >12:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FB6 text5 CODE >13:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FB8 text5 CODE >14:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FBD text5 CODE >15:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FBF text5 CODE >17:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FC1 text5 CODE >18:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FC6 text5 CODE >19:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FCA text5 CODE >20:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FCC text5 CODE >21:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FCE text5 CODE >22:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FD5 text5 CODE >23:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FD9 text5 CODE >21:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FDA text5 CODE >26:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FE2 text5 CODE >27:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FE8 text5 CODE >28:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FEF text5 CODE >29:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FF3 text5 CODE >31:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FF6 text5 CODE >32:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FFB text5 CODE >33:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+FFF text5 CODE >34:C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+2B8 text4 CODE >156:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2B8 text4 CODE >158:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2BC text4 CODE >159:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2CF text4 CODE >160:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2D1 text4 CODE >162:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2D5 text4 CODE >166:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2DC text4 CODE >169:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2EF text4 CODE >171:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2F3 text4 CODE >172:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2F7 text4 CODE >175:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2FC text4 CODE >176:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+300 text4 CODE >179:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+305 text4 CODE >180:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+309 text4 CODE >183:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+30E text4 CODE >184:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+312 text4 CODE >187:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+326 text4 CODE >188:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+338 text4 CODE >189:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+97 text3 CODE >193:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+97 text3 CODE >194:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+98 text3 CODE >196:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+9E text3 CODE >197:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+9F text3 CODE >199:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+A5 text3 CODE >200:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+A6 text3 CODE >202:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+AC text3 CODE >203:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+AD text3 CODE >205:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+B3 text3 CODE >206:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+B4 text3 CODE >208:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+BA text3 CODE >209:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+BB text3 CODE >211:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+C1 text3 CODE >212:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+C2 text3 CODE >214:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+C8 text3 CODE >215:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+C9 text3 CODE >216:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+E5 text3 CODE >217:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+F28 text2 CODE >4:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F28 text2 CODE >5:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F2A text2 CODE >14:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F32 text2 CODE >6:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F34 text2 CODE >7:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F37 text2 CODE >8:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F3F text2 CODE >9:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F42 text2 CODE >10:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F46 text2 CODE >11:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F57 text2 CODE >13:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+F64 text2 CODE >14:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+513 text1 CODE >248:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+513 text1 CODE >250:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+51B text1 CODE >251:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+523 text1 CODE >252:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+52B text1 CODE >255:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+535 text1 CODE >256:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+53D text1 CODE >257:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+545 text1 CODE >260:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+54F text1 CODE >261:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+557 text1 CODE >262:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+55F text1 CODE >265:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+569 text1 CODE >266:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+571 text1 CODE >267:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+579 text1 CODE >270:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+583 text1 CODE >271:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+58B text1 CODE >272:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+593 text1 CODE >275:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+59D text1 CODE >276:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5A5 text1 CODE >277:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5AD text1 CODE >280:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5B5 text1 CODE >281:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5C0 text1 CODE >284:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5CA text1 CODE >285:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5D2 text1 CODE >286:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5DA text1 CODE >287:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5E2 text1 CODE >288:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5EC text1 CODE >289:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5F4 text1 CODE >291:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+5FE text1 CODE >292:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+607 text1 CODE >295:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+612 text1 CODE >296:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+619 text1 CODE >298:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+24C maintext CODE >17:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+24C maintext CODE >18:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+24F maintext CODE >19:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+252 maintext CODE >21:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+255 maintext CODE >22:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+258 maintext CODE >33:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+265 maintext CODE >41:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+26A maintext CODE >49:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+26F maintext CODE >50:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+274 maintext CODE >72:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+279 maintext CODE >76:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+27E maintext CODE >79:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+283 maintext CODE >83:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+288 maintext CODE >87:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+28D maintext CODE >91:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+296 maintext CODE >94:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2A6 maintext CODE >96:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+2AB maintext CODE >99:C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+CCE clrtext CODE >1584:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CCE clrtext CODE >1585:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CCF clrtext CODE >1586:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CCF clrtext CODE >1587:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD0 clrtext CODE >1588:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD1 clrtext CODE >1589:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD2 clrtext CODE >1590:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD3 clrtext CODE >1591:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD4 clrtext CODE >1592:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CD5 clrtext CODE >1593:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CF7 inittext CODE >1531:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CF7 inittext CODE >1532:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CF8 inittext CODE >1533:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CF9 inittext CODE >1534:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CFA inittext CODE >1535:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CFB inittext CODE >1542:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CFB inittext CODE >1543:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CFE inittext CODE >1544:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+CFF inittext CODE >1545:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D00 inittext CODE >1546:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D01 inittext CODE >1547:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D02 inittext CODE >1548:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D03 inittext CODE >1549:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D04 inittext CODE >1550:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D05 inittext CODE >1551:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D06 inittext CODE >1552:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+D07 inittext CODE >1553:C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+# %SYMTAB Section
+# An enumeration of all symbols in the program.
+# The beginning of the section is indicated by %SYMTAB.
+# Each line describes a single symbol as follows:
+# <label> <value> [-]<load-adj> <class> <space> <psect> <file-name>
+# The value and load-adj are both in unqualified hexadecimal.
+# All other numeric values are in decimal. The load-adj is the
+# quantity one needs to add to the symbol value in order to obtain the load
+# address of the symbol. This value may be signed. If the symbol
+# was defined in a psect then <psect> will be "-". File-name
+# is the name of the object file in which the symbol was defined.
+%SYMTAB
+___latbits 2 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___awdiv@counter 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of_display_Intro 1C66 0 CODE 0 text11 dist/default/production\I2C_LCD.X.production.o
+___lwmod@counter 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__LdataBANK0 0 0 ABS 0 dataBANK0 -
+__LdataBANK1 0 0 ABS 0 dataBANK1 -
+__Hspace_0 2008 0 ABS 0 - -
+__Hspace_1 D2 0 ABS 0 - -
+__Hspace_2 0 0 ABS 0 - -
+__Hspace_3 0 0 ABS 0 - -
+__HidataBANK0 0 0 ABS 0 idataBANK0 -
+__HidataBANK1 0 0 ABS 0 idataBANK1 -
+__size_of_format_Temperature 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_Lcd_Init 320 0 CODE 0 text26 dist/default/production\I2C_LCD.X.production.o
+_Lcd_Port 1A3C 0 CODE 0 text28 dist/default/production\I2C_LCD.X.production.o
+__Heeprom_data 0 0 EEDATA 3 eeprom_data -
+__end_of_Lcd_Init 3D8 0 CODE 0 text26 dist/default/production\I2C_LCD.X.production.o
+__end_of_Lcd_Port 1A70 0 CODE 0 text28 dist/default/production\I2C_LCD.X.production.o
+__Hstrings 0 0 ABS 0 strings -
+_BRGH 4C2 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_CREN C4 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_OERR C1 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RCEN 48B 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RCIF 65 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RSEN 489 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SPEN C7 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SYNC 4C4 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TXEN 4C5 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TXIF 64 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___sp 0 0 STACK 2 stack C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+_date 66 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+_hour 68 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+_main 498 0 CODE 0 maintext dist/default/production\I2C_LCD.X.production.o
+_year 62 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+btemp 7E 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_Lcd_Write_Char 1C66 0 CODE 0 text13 dist/default/production\I2C_LCD.X.production.o
+start 0 0 CODE 0 init C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+__size_of___awdiv 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of___awmod 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_main 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of___lldiv 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of___lwdiv 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of___lwmod 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+Lcd_Port@a 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Repeated_Start 1962 0 CODE 0 text21 dist/default/production\I2C_LCD.X.production.o
+?___lmul 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+?___wmul 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Write_Char@temp 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+I2C_Master_Read@ack 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_update_Display 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__LidataBANK0 0 0 ABS 0 idataBANK0 -
+__LidataBANK1 0 0 ABS 0 idataBANK1 -
+__Hpowerup 0 0 CODE 0 powerup -
+_Get_Alarm_Status 1A10 0 CODE 0 text32 dist/default/production\I2C_LCD.X.production.o
+___awmod@sign 76 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+_format_DateTimeChars C34 0 CODE 0 text7 dist/default/production\I2C_LCD.X.production.o
+intlevel0 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+intlevel1 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+intlevel2 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+intlevel3 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+intlevel4 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+intlevel5 0 0 ENTRY 0 functab C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+wtemp0 7E 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__end_of_Update_Current_Date_Time 838 0 CODE 0 text16 dist/default/production\I2C_LCD.X.production.o
+__Hfunctab 0 0 ENTRY 0 functab -
+_getWeekDay 12E 0 CODE 0 text3 dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Set_Cursor 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___awdiv@sign 76 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Hclrtext 0 0 ABS 0 clrtext -
+__end_of_Lcd_Write_Char 1CD8 0 CODE 0 text13 dist/default/production\I2C_LCD.X.production.o
+___wmul@multiplicand 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+alarm@i 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+alarm@j 77 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___awdiv@dividend 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of___lmul 1DCE 0 CODE 0 text30 dist/default/production\I2C_LCD.X.production.o
+__end_of___wmul 1AE6 0 CODE 0 text25 dist/default/production\I2C_LCD.X.production.o
+__Lmaintext 0 0 ABS 0 maintext -
+___awdiv@divisor 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___lwmod@divisor 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of___awdiv 320 0 CODE 0 text6 dist/default/production\I2C_LCD.X.production.o
+__end_of___awmod 2000 0 CODE 0 text5 dist/default/production\I2C_LCD.X.production.o
+__end_of___lldiv 498 0 CODE 0 text31 dist/default/production\I2C_LCD.X.production.o
+__end_of___lwdiv 1D50 0 CODE 0 text9 dist/default/production\I2C_LCD.X.production.o
+__end_of___lwmod 1BFC 0 CODE 0 text8 dist/default/production\I2C_LCD.X.production.o
+_control_reg 24 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+___stackhi 0 0 ABS 0 - C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+___stacklo 0 0 ABS 0 - C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+__end_of_Get_Alarm_Status 1A3C 0 CODE 0 text32 dist/default/production\I2C_LCD.X.production.o
+__end_of_getWeekDay 1CC 0 CODE 0 text3 dist/default/production\I2C_LCD.X.production.o
+___lwdiv@quotient 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_alarm 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+Lcd_Set_Cursor@temp 7A 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___lwmod@dividend 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___lldiv@counter 59 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+__size_of_Get_Alarm_Status 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+I2C_Master_Init@freq_K 5A 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+start_initialization FA6 0 CODE 0 cinit dist/default/production\I2C_LCD.X.production.o
+_alarm1_min_0 3B 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_min_1 3A 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_sec_0 3D 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_sec_1 3C 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+___lldiv@dividend 51 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_hour 2E 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm2_hour 2A 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_Lcd_Write_String 1B3E 0 CODE 0 text12 dist/default/production\I2C_LCD.X.production.o
+clear_ram0 199C 0 CODE 0 clrtext dist/default/production\I2C_LCD.X.production.o
+__pcstackBANK0 4D 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+_SSPADD 93 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SSPBUF 13 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SSPCON 14 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISC3 43B 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISC4 43C 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISC6 43E 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISC7 43F 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_alarm2_hour_0 35 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm2_hour_1 34 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+BCD_2_DEC@to_convert 76 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Cmd 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___int_sp 0 0 STACK 2 stack C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+__Hbank0 0 0 ABS 0 bank0 -
+__Hbank1 0 0 ABS 0 bank1 -
+__Hbank2 0 0 ABS 0 bank2 -
+__Hbank3 0 0 ABS 0 bank3 -
+__Hcinit 1000 0 CODE 0 cinit -
+__Hidloc 0 0 IDLOC 0 idloc -
+__Hstack 0 0 STACK 2 stack -
+__stringbase 24 0 STRING 0 strings dist/default/production\I2C_LCD.X.production.o
+___lwdiv@counter 77 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of_display_Lcd_Layout 1E50 0 CODE 0 text10 dist/default/production\I2C_LCD.X.production.o
+__Hmaintext 0 0 ABS 0 maintext -
+__Hcommon 0 0 ABS 0 common -
+__Hconfig 4010 0 CONFIG 0 config -
+?_BCD_2_DEC 76 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Lbank0 0 0 ABS 0 bank0 -
+__Lbank1 0 0 ABS 0 bank1 -
+__Lbank2 0 0 ABS 0 bank2 -
+__Lbank3 0 0 ABS 0 bank3 -
+__Lcinit FA6 0 CODE 0 cinit -
+__Lidloc 0 0 IDLOC 0 idloc -
+__Lstack 0 0 STACK 2 stack -
+_alarm1_hour_0 39 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_hour_1 38 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+__Linittext 0 0 ABS 0 inittext -
+__Habs1 0 0 ABS 0 abs1 -
+__Hcode 0 0 ABS 0 code -
+__Hinit 0 0 CODE 0 init -
+__Hsfr0 0 0 ABS 0 sfr0 -
+__Hsfr1 0 0 ABS 0 sfr1 -
+__Hsfr2 0 0 ABS 0 sfr2 -
+__Hsfr3 0 0 ABS 0 sfr3 -
+__Htext 0 0 ABS 0 text -
+__Labs1 0 0 ABS 0 abs1 -
+__Lcode 0 0 ABS 0 code -
+__Linit 0 0 CODE 0 init -
+__Lsfr0 0 0 ABS 0 sfr0 -
+__Lsfr1 0 0 ABS 0 sfr1 -
+__Lsfr2 0 0 ABS 0 sfr2 -
+__Lsfr3 0 0 ABS 0 sfr3 -
+__Ltext 0 0 ABS 0 text -
+getWeekDay@dayofweek 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___lmul 1D50 0 CODE 0 text30 dist/default/production\I2C_LCD.X.production.o
+___wmul 1AA4 0 CODE 0 text25 dist/default/production\I2C_LCD.X.production.o
+__LcstackBANK0 0 0 ABS 0 cstackBANK0 -
+__HcstackCOMMON 0 0 ABS 0 cstackCOMMON -
+_alarm2_status 26 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_PEN 48A 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD1 41 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD2 42 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD3 43 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD4 44 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD5 45 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD6 46 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RD7 47 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RX9 C6 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SEN 488 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TX9 4C6 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__S0 2008 0 ABS 0 - -
+__S1 D2 0 ABS 0 - -
+__S2 0 0 ABS 0 - -
+__S3 0 0 ABS 0 - -
+_min 6A 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+_sec 6C 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+_display_Lcd_Layout 1DCE 0 CODE 0 text10 dist/default/production\I2C_LCD.X.production.o
+_status_reg CC 0 BANK1 1 bssBANK1 dist/default/production\I2C_LCD.X.production.o
+_temp_sign 6E 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Start 1970 0 CODE 0 text20 dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Write 198C 0 CODE 0 text18 dist/default/production\I2C_LCD.X.production.o
+__end_of_Lcd_Write_String 1B98 0 CODE 0 text12 dist/default/production\I2C_LCD.X.production.o
+_update_Display A26 0 CODE 0 text1 dist/default/production\I2C_LCD.X.production.o
+__CFG_BOREN$ON 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__end_of_Lcd_Clear 19D4 0 CODE 0 text15 dist/default/production\I2C_LCD.X.production.o
+__Lintentry 0 0 CODE 0 intentry -
+___lldiv@divisor 4D 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Write_String 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__stringtab 6 0 STRING 0 strings dist/default/production\I2C_LCD.X.production.o
+_alarm1_status 28 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+I2C_Master_Write@data 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+_hour_0 48 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_hour_1 47 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+Lcd_Write_String@a 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Write_String@i 77 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+reset_vec 0 0 CODE 0 reset_vec C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+__size_of_Lcd_Clear 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__end_of_format_Temperature 672 0 CODE 0 text4 dist/default/production\I2C_LCD.X.production.o
+__pdataBANK0 62 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+__pdataBANK1 CE 0 BANK1 1 dataBANK1 dist/default/production\I2C_LCD.X.production.o
+__end_of_Lcd_Cmd 1AA4 0 CODE 0 text27 dist/default/production\I2C_LCD.X.production.o
+__size_of___lmul 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of___wmul 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__LbssBANK0 0 0 ABS 0 bssBANK0 -
+__LbssBANK1 0 0 ABS 0 bssBANK1 -
+___awmod@counter 75 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_getWeekDay 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__ptext10 1DCE 0 CODE 0 text10 dist/default/production\I2C_LCD.X.production.o
+__ptext11 1BFC 0 CODE 0 text11 dist/default/production\I2C_LCD.X.production.o
+__ptext12 1B3E 0 CODE 0 text12 dist/default/production\I2C_LCD.X.production.o
+__ptext13 1C66 0 CODE 0 text13 dist/default/production\I2C_LCD.X.production.o
+__ptext14 1ED6 0 CODE 0 text14 dist/default/production\I2C_LCD.X.production.o
+__ptext15 19BE 0 CODE 0 text15 dist/default/production\I2C_LCD.X.production.o
+__ptext16 672 0 CODE 0 text16 dist/default/production\I2C_LCD.X.production.o
+__ptext17 838 0 CODE 0 text17 dist/default/production\I2C_LCD.X.production.o
+__ptext18 198C 0 CODE 0 text18 dist/default/production\I2C_LCD.X.production.o
+__ptext19 197E 0 CODE 0 text19 dist/default/production\I2C_LCD.X.production.o
+__ptext20 1970 0 CODE 0 text20 dist/default/production\I2C_LCD.X.production.o
+__ptext21 1962 0 CODE 0 text21 dist/default/production\I2C_LCD.X.production.o
+__ptext22 1AE6 0 CODE 0 text22 dist/default/production\I2C_LCD.X.production.o
+__ptext23 19AC 0 CODE 0 text23 dist/default/production\I2C_LCD.X.production.o
+__ptext24 E8 0 CODE 0 text24 dist/default/production\I2C_LCD.X.production.o
+__ptext25 1AA4 0 CODE 0 text25 dist/default/production\I2C_LCD.X.production.o
+__ptext26 320 0 CODE 0 text26 dist/default/production\I2C_LCD.X.production.o
+__ptext27 1A70 0 CODE 0 text27 dist/default/production\I2C_LCD.X.production.o
+__ptext28 1A3C 0 CODE 0 text28 dist/default/production\I2C_LCD.X.production.o
+__ptext29 1CC 0 CODE 0 text29 dist/default/production\I2C_LCD.X.production.o
+__ptext30 1D50 0 CODE 0 text30 dist/default/production\I2C_LCD.X.production.o
+__ptext31 3D8 0 CODE 0 text31 dist/default/production\I2C_LCD.X.production.o
+__ptext32 1A10 0 CODE 0 text32 dist/default/production\I2C_LCD.X.production.o
+_Lcd_Clear 19BE 0 CODE 0 text15 dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Write_Char 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___awdiv 26E 0 CODE 0 text6 dist/default/production\I2C_LCD.X.production.o
+___awmod 1F6A 0 CODE 0 text5 dist/default/production\I2C_LCD.X.production.o
+_Lcd_Set_Cursor 1ED6 0 CODE 0 text14 dist/default/production\I2C_LCD.X.production.o
+_alarm2_min_0 37 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm2_min_1 36 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+___lldiv 3D8 0 CODE 0 text31 dist/default/production\I2C_LCD.X.production.o
+___lwdiv 1CD8 0 CODE 0 text9 dist/default/production\I2C_LCD.X.production.o
+___lwmod 1B98 0 CODE 0 text8 dist/default/production\I2C_LCD.X.production.o
+__pmaintext 498 0 CODE 0 maintext dist/default/production\I2C_LCD.X.production.o
+___lmul@multiplier 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Lcommon 0 0 ABS 0 common -
+__Lconfig 400E 0 CONFIG 0 config -
+__CFG_CP$OFF 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__CFG_WDTE$OFF 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__Hinittext 0 0 ABS 0 inittext -
+___wmul@multiplier 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_format_DateTimeChars 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_format_Temperature 570 0 CODE 0 text4 dist/default/production\I2C_LCD.X.production.o
+___lwdiv@divisor 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of_update_Display C34 0 CODE 0 text1 dist/default/production\I2C_LCD.X.production.o
+_temp_0 40 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_temp_1 3F 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_temp_2 3E 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+?_I2C_Master_Read 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+_Read_Alarms_Temp 838 0 CODE 0 text17 dist/default/production\I2C_LCD.X.production.o
+_sec_chg C8 0 BANK1 1 bssBANK1 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Init 26E 0 CODE 0 text29 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Read 1B3E 0 CODE 0 text22 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Stop 198C 0 CODE 0 text19 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Wait 19BE 0 CODE 0 text23 dist/default/production\I2C_LCD.X.production.o
+__end_of__stringtab 26 0 STRING 0 strings dist/default/production\I2C_LCD.X.production.o
+__end_of_format_DateTimeChars FA6 0 CODE 0 text7 dist/default/production\I2C_LCD.X.production.o
+__CFG_LVP$OFF 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_temperature_lsb 22 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_temperature_msb 20 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Start 197E 0 CODE 0 text20 dist/default/production\I2C_LCD.X.production.o
+__Lspace_0 0 0 ABS 0 - -
+__Lspace_1 0 0 ABS 0 - -
+__Lspace_2 0 0 ABS 0 - -
+__Lspace_3 0 0 ABS 0 - -
+__end_of_I2C_Master_Write 199C 0 CODE 0 text18 dist/default/production\I2C_LCD.X.production.o
+__end_of_I2C_Master_Repeated_Start 1970 0 CODE 0 text21 dist/default/production\I2C_LCD.X.production.o
+init_fetch0 19EE 0 CODE 0 inittext dist/default/production\I2C_LCD.X.production.o
+__HcstackBANK0 0 0 ABS 0 cstackBANK0 -
+_year_0 42 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_year_1 41 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+__Lend_init 0 0 CODE 0 end_init -
+__LcstackCOMMON 0 0 ABS 0 cstackCOMMON -
+__size_of_I2C_Master_Start 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_display_Intro 1BFC 0 CODE 0 text11 dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Write 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+end_of_initialization FF8 0 CODE 0 cinit dist/default/production\I2C_LCD.X.production.o
+__end_of_Lcd_Set_Cursor 1F6A 0 CODE 0 text14 dist/default/production\I2C_LCD.X.production.o
+__Hintentry 0 0 CODE 0 intentry -
+_Update_Current_Date_Time 672 0 CODE 0 text16 dist/default/production\I2C_LCD.X.production.o
+Lcd_Set_Cursor@a 77 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Set_Cursor@b 74 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Set_Cursor@y 79 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Set_Cursor@z 78 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+alarm@numberOfBeeps 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Lstrings 0 0 ABS 0 strings -
+___awdiv@quotient 77 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+?___awdiv 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+?___awmod 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+___lwdiv@dividend 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+?___lldiv 4D 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+?___lwdiv 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+?___lwmod 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Hreset_vec 0 0 CODE 0 reset_vec -
+__HbssBANK0 0 0 ABS 0 bssBANK0 -
+__HbssBANK1 0 0 ABS 0 bssBANK1 -
+___awmod@dividend 72 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__ptext1 A26 0 CODE 0 text1 dist/default/production\I2C_LCD.X.production.o
+__ptext2 1E50 0 CODE 0 text2 dist/default/production\I2C_LCD.X.production.o
+__ptext3 12E 0 CODE 0 text3 dist/default/production\I2C_LCD.X.production.o
+__ptext4 570 0 CODE 0 text4 dist/default/production\I2C_LCD.X.production.o
+__ptext5 1F6A 0 CODE 0 text5 dist/default/production\I2C_LCD.X.production.o
+__ptext6 26E 0 CODE 0 text6 dist/default/production\I2C_LCD.X.production.o
+__ptext7 C34 0 CODE 0 text7 dist/default/production\I2C_LCD.X.production.o
+__ptext8 1B98 0 CODE 0 text8 dist/default/production\I2C_LCD.X.production.o
+__ptext9 1CD8 0 CODE 0 text9 dist/default/production\I2C_LCD.X.production.o
+__Lpowerup 0 0 CODE 0 powerup -
+__Leeprom_data 0 0 EEDATA 3 eeprom_data -
+_I2C_Master_Init 1CC 0 CODE 0 text29 dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Read 1AE6 0 CODE 0 text22 dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Stop 197E 0 CODE 0 text19 dist/default/production\I2C_LCD.X.production.o
+_I2C_Master_Wait 19AC 0 CODE 0 text23 dist/default/production\I2C_LCD.X.production.o
+__Lreset_vec 0 0 CODE 0 reset_vec -
+__CFG_FOSC$HS 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__end_of__initialization FF8 0 CODE 0 cinit dist/default/production\I2C_LCD.X.production.o
+___awmod@divisor 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Lfunctab 0 0 ENTRY 0 functab -
+__end_of_BCD_2_DEC 12E 0 CODE 0 text24 dist/default/production\I2C_LCD.X.production.o
+Lcd_Cmd@a 73 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__end_of_Read_Alarms_Temp A26 0 CODE 0 text17 dist/default/production\I2C_LCD.X.production.o
+__pidataBANK0 19D4 0 CODE 0 idataBANK0 dist/default/production\I2C_LCD.X.production.o
+__pidataBANK1 E0 0 CODE 0 idataBANK1 dist/default/production\I2C_LCD.X.production.o
+__size_of_BCD_2_DEC 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+I2C_Master_Read@incoming 74 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__Lclrtext 0 0 ABS 0 clrtext -
+__size_of_display_Lcd_Layout 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Repeated_Start 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___lmul@product 79 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_Read_Alarms_Temp 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___lmul@multiplicand 74 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__CFG_PWRTE$ON 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+___lldiv@quotient 55 0 BANK0 1 cstackBANK0 dist/default/production\I2C_LCD.X.production.o
+__pcstackCOMMON 70 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+_weekday CA 0 BANK1 1 bssBANK1 dist/default/production\I2C_LCD.X.production.o
+_alarm1_min 30 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm1_sec 32 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_alarm2_min 2C 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_SSPCON2 91 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SSPSTAT 94 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Init 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_Lcd_Port 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__Hend_init 6 0 CODE 0 end_init -
+init_ram0 19F6 0 CODE 0 inittext dist/default/production\I2C_LCD.X.production.o
+_BCD_2_DEC E8 0 CODE 0 text24 dist/default/production\I2C_LCD.X.production.o
+__end_of_main 570 0 CODE 0 maintext dist/default/production\I2C_LCD.X.production.o
+_ACKDT 48D 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_ACKEN 48C 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__end_of_alarm 1ED6 0 CODE 0 text2 dist/default/production\I2C_LCD.X.production.o
+_PORTC 7 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_PORTD 8 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_RCREG 1A 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_SPBRG 99 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISC 87 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TRISD 88 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_TXREG 19 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__Hram 0 0 ABS 0 ram -
+__Lram 0 0 ABS 0 ram -
+_alarm 1E50 0 CODE 0 text2 dist/default/production\I2C_LCD.X.production.o
+_day_0 46 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_day_1 45 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+__size_of_display_Intro 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_min_0 4A 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_min_1 49 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_month 64 0 BANK0 1 dataBANK0 dist/default/production\I2C_LCD.X.production.o
+__CFG_CPD$OFF 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_sec_0 4C 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_sec_1 4B 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_Lcd_Cmd 1A70 0 CODE 0 text27 dist/default/production\I2C_LCD.X.production.o
+__HdataBANK0 0 0 ABS 0 dataBANK0 -
+__HdataBANK1 0 0 ABS 0 dataBANK1 -
+__initialization FA6 0 CODE 0 cinit dist/default/production\I2C_LCD.X.production.o
+__pbssBANK0 20 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+__pbssBANK1 A0 0 BANK1 1 bssBANK1 dist/default/production\I2C_LCD.X.production.o
+__CFG_WRT$OFF 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__pstrings 6 0 STRING 0 strings dist/default/production\I2C_LCD.X.production.o
+___wmul@product 74 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_Update_Current_Date_Time 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+_month_0 44 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+_month_1 43 0 BANK0 1 bssBANK0 dist/default/production\I2C_LCD.X.production.o
+Lcd_Write_Char@a 74 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+Lcd_Write_Char@y 73 0 COMMON 1 cstackCOMMON dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Init 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Read 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Stop 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+__size_of_I2C_Master_Wait 0 0 ABS 0 - dist/default/production\I2C_LCD.X.production.o
+# %SPLITSTAB Section
+# This section enumerates all the psect splits performed by the assembler.
+# The beginning of the section is indicated by %SPLITSTAB.
+# Each line is a record a particular split, where the parent psect is on
+# the left and the child on the right. Note that a child psect is always
+# split form the top of the parent psect. All splits from a given parent
+# are listed in the order in which they occurred.
+%SPLITSTAB
+# %DABS Section
+# This section contains a table of all usuage of the assember
+# directive DABS in the program. Each line has the following format:
+# <name> <space> <address> <size>
+# If the DABS was originally labelled then that shall be <name>,
+# otherwise name will be "-". The <space> number is in decimal.
+# <address> and <size> are in byte units as unqaulified hexadecimal
+%DABS
+- 1 7E 2
+# %SEGMENTS Section
+# This sections enumerates the segments of the program. Each segment
+# is described on a single line as follows:
+# <name> <space> <link address> <file address> <size> <delta>
+# Addresses and size are in unqualified hexadecimal. The link address
+# and size are in units of delta. The file address is in units of bytes.
+# All other numeric quantities are in decimal.
+%SEGMENTS
+cinit 0 7D3 FA6 2D 2
+text1 0 513 A26 107 2
+text2 0 F28 1E50 43 2
+text3 0 97 12E 4F 2
+text4 0 2B8 570 81 2
+text5 0 FB5 1F6A 4B 2
+text6 0 137 26E 59 2
+text7 0 61A C34 1B9 2
+text8 0 DCC 1B98 32 2
+text9 0 E6C 1CD8 3C 2
+text10 0 EE7 1DCE 41 2
+text11 0 DFE 1BFC 35 2
+text12 0 D9F 1B3E 2D 2
+text13 0 E33 1C66 39 2
+text14 0 F6B 1ED6 4A 2
+text15 0 CDF 19BE B 2
+text16 0 339 672 E3 2
+text17 0 41C 838 F7 2
+text18 0 CC6 198C 8 2
+text19 0 CBF 197E 7 2
+text20 0 CB8 1970 7 2
+text21 0 CB1 1962 7 2
+text22 0 D73 1AE6 2C 2
+text23 0 CD6 19AC 9 2
+text24 0 74 E8 23 2
+text25 0 D52 1AA4 21 2
+text26 0 190 320 5C 2
+text27 0 D38 1A70 1A 2
+text28 0 D1E 1A3C 1A 2
+text29 0 E6 1CC 51 2
+text30 0 EA8 1D50 3F 2
+text31 0 1EC 3D8 60 2
+text32 0 D08 1A10 16 2
+maintext 0 24C 498 6C 2
+cstackCOMMON 1 70 70 E 1
+inittext 0 CF7 19EE 11 2
+reset_vec 0 0 0 3 2
+bssBANK0 1 20 20 4F 1
+bssBANK1 1 A0 A0 32 1
+idataBANK0 0 CEA 19D4 D 2
+idataBANK1 0 70 E0 4 2
+strings 0 3 6 6C 2
+clrtext 0 CCE 199C 8 2
+config 0 2007 400E 1 2
diff --git a/dist/default/production/I2C_LCD.X.production.elf b/dist/default/production/I2C_LCD.X.production.elf
new file mode 100755
index 0000000..51a824e
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.elf
Binary files differ
diff --git a/dist/default/production/I2C_LCD.X.production.hex b/dist/default/production/I2C_LCD.X.production.hex
new file mode 100755
index 0000000..90f9c8d
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.hex
@@ -0,0 +1,365 @@
+:020000040000FA
+:100000000A128A11D32FFF1B0D2883137F18831721
+:100010000008840A0319FF0A080000308A00040857
+:10002000840A820700345234543443342F344C341D
+:10003000433444342034773469347434683420349D
+:1000400050344934433400346434643464342C34DC
+:100050002034443444342F344D344D342F34593407
+:100060005934203420340034203443346934723419
+:1000700063347534693474342034443469346734F7
+:100080006534733474340034483448343A346D344D
+:100090006D343A347334733420342D345034503446
+:1000A0002E345034003457346534643400345434BE
+:1000B00075346534003446347234693400344D3458
+:1000C0006F346E340034533475346E34003453342A
+:0E00D0006134743400345434683475340034B0
+:1000E00014340034073400340F307605F800003043
+:1000F0007705F900760E0F39F000770EF039F0042D
+:10010000770E0F39F100F030F11D0030F1040A30A4
+:10011000F2000030F3000A128A15522578087007A1
+:10012000F60079080318790A7107F7000800C92852
+:10013000513083160313CA008030CB0008004D30C5
+:1001400083160313CA008030CB00080045308316A5
+:100150000313CA008030CB0008004130831603131C
+:10016000CA008030CB000800593083160313CA0040
+:100170008030CB000800493083160313CA0080305A
+:10018000CB000800553083160313CA008030CB0023
+:1001900008007108003A0319CE28E5287008013AD2
+:1001A00003199828033A03199F28013A0319A6282E
+:1001B000073A0319AD28013A0319B428033A031981
+:1001C000BB28013A0319C228E52808008316031347
+:1001D0008715071628308312031394008316031320
+:1001E0009101831203135A08DE005B08DF005C08EC
+:1001F000E0005D08E10002300310DE0DDF0DE00DD0
+:10020000E10DFF3E031DFC286108F3006008F200C9
+:100210005F08F1005E08F0000030F7000030F600E3
+:100220000030F5006430F4000A128A15A8260A127C
+:100230008A11730883120313D0007208CF0071086B
+:10024000CE007008CD000130D4003130D3002D3005
+:10025000D2000030D1000A128A11EC21831203135C
+:100260004D08FF3E83160313930094010800F60126
+:10027000F11F4129F009F109F00A0319F10AF60109
+:10028000F60AF31F4C29F209F309F20A0319F30ADB
+:100290000130F4007408F606F701F80170087104E3
+:1002A00003198329F501F50AF11B622901300310B6
+:1002B000F00DF10DFF3E031D57290130F4007408C5
+:1002C000F507542901300310F70DF80DFF3E031D0B
+:1002D000632971087302031D6F2970087202031CE1
+:1002E00078297008F2027108031CF303F3027714F3
+:1002F00001300310F10CF00CFF3E031D7929013091
+:10030000F502031D6229760803198B29F709F809FC
+:10031000F70A0319F80A7808F1007708F0000800D6
+:1003200000300A128A151E250A128A118230F50041
+:10033000DD30F400F40B9A29F50B9A299F2903303C
+:100340000A128A1538250A128A112130F5007630F2
+:10035000F400F40BA929F50BA929000003300A12B7
+:100360008A1538250A128A114830F5006C30F400DD
+:10037000F40BB829F50BB829000003300A128A15CE
+:1003800038250A128A1102300A128A1538250A12F3
+:100390008A1102300A128A1538250A128A11083089
+:1003A0000A128A1538250A128A1100300A128A1593
+:1003B00038250A128A110C300A128A1538250A12B9
+:1003C0008A1100300A128A1538250A128A1106305D
+:1003D0000A128A1538250800003083120313D8004A
+:1003E0000030D7000030D6000030D50050084F0450
+:1003F0004E044D040319432AD901D90AD01B0E2AF1
+:100400000130FD000310CD0DCE0DCF0DD00DFD0B35
+:10041000022A0130FD007D08D907FE290130FD00C8
+:100420000310D50DD60DD70DD80DFD0B102A500891
+:100430005402031D252A4F085302031D252A4E0886
+:100440005202031D252A4D085102031C362A4D086D
+:10045000D1024E08031C4E0FD2024F08031C4F0F4F
+:10046000D3025008031C500FD4025514013003105E
+:10047000D00CCF0CCE0CCD0CFF3E031D372A013023
+:10048000D902031D0E2A5808D0005708CF0056087D
+:10049000CE005508CD000800831603138701831290
+:1004A0000313870183160313880183120313880142
+:1004B0000030DD000130DC008630DB00A030DA00E7
+:1004C0000A128A11E6200A128A110A128A11902150
+:1004D0000A128A110A128A15FE250A128A110A12B4
+:1004E0008A15E7260A128A110A128A1139230A127A
+:1004F0008A110A128A111C240A128A110A128A15F8
+:1005000008250A128A110A128A111A260A128A1159
+:100510000A128A11B8220A128A110730F00000303C
+:10052000F1000A128A1197200A128A11831203130A
+:100530006D08831603134906031DA42A83120313AF
+:100540006C088316031348060319742A0A128A11C9
+:1005500013250A128A11831203136D0883160313DD
+:10056000C900831203136C0883160313C800742A8E
+:1005700083120313A11FD12AFF30F000FF30F100D6
+:100580002108F3002008F2000A128A1552250A12E7
+:100590008A11710883120313A1007008A0002D3086
+:1005A000D22A2B30F9007908EE0006300310A30C94
+:1005B000A20CFF3E031DD62A1930F0000030F100D6
+:1005C0002308F3002208F2000A128A1552250A12A3
+:1005D0008A11710883120313A3007008A200220875
+:1005E0002304031DF72A3030F9007908C0001930C0
+:1005F00022062304031D002B3230F9007908C000C5
+:10060000323022062304031D092B3530F900790806
+:10061000C0004B3022062304031D122B3730F90093
+:100620007908C0000A30F0000030F1002108F30022
+:100630002008F2000A128A15B5270A128A117008DA
+:10064000303EF900790883120313BF000A30F0002E
+:100650000030F1002108F3002008F2000A128A118C
+:1006600037217008303EF900790883120313BE0069
+:1006700008000A128A15B8240A128A11D030F00034
+:100680000030F1000A128A15C6240A128A110030BD
+:10069000F000F1000A128A15C6240A128A110A1201
+:1006A0008A15B1240A128A11D130F0000030F1000D
+:1006B0000A128A15C6240A128A110130F00000308D
+:1006C000F1000A128A1573250A128A117108F700BF
+:1006D0007008F6000A128A1174200A128A1177082B
+:1006E00083120313ED007608EC000130F0000030B7
+:1006F000F1000A128A1573250A128A117108F7008F
+:100700007008F6000A128A1174200A128A117708FA
+:1007100083120313EB007608EA000130F00000308A
+:10072000F1000A128A1573250A128A117108F7005E
+:100730007008F6000A128A1174200A128A117708CA
+:1007400083120313E9007608E8000130F00000305E
+:10075000F1000A128A1573250A128A11700883168D
+:100760000313CA007108CB000130F0000030F10023
+:100770000A128A1573250A128A117108F700700887
+:10078000F6000A128A1174200A128A11770883125D
+:100790000313E7007608E6000130F0000030F100B6
+:1007A0000A128A1573250A128A117108F700700857
+:1007B000F6000A128A1174200A128A11770883122D
+:1007C0000313E5007608E4000130F0000030F1008A
+:1007D0000A128A1573250A128A117108F700700827
+:1007E000F6000A128A1174200A128A1177088312FD
+:1007F0000313E3007608E2000A128A15BF240A12E6
+:100800008A110A128A15B8240A128A11D130F0000E
+:100810000030F1000A128A15C6240A128A1101302A
+:10082000F0000030F1000A128A1573250A128A11AD
+:100830000A128A15BF2408000A128A15B8240A125F
+:100840008A11D030F0000030F1000A128A15C62457
+:100850000A128A110730F0000030F1000A128A15DE
+:10086000C6240A128A110A128A15B1240A128A11A0
+:10087000D130F0000030F1000A128A15C6240A12A5
+:100880008A110130F0000030F1000A128A15732538
+:100890000A128A117108F7007008F6000A128A110C
+:1008A00074200A128A11770883120313B3007608A2
+:1008B000B2000130F0000030F1000A128A157325F1
+:1008C0000A128A117108F7007008F6000A128A11DC
+:1008D00074200A128A11770883120313B100760874
+:1008E000B0000130F0000030F1000A128A157325C3
+:1008F0000A128A117108F7007008F6000A128A11AC
+:1009000074200A128A11770883120313AF00760845
+:10091000AE000130F0000030F1000A128A15732594
+:100920000A128A110130F0000030F1000A128A1513
+:1009300073250A128A117108F7007008F6000A126E
+:100940008A1174200A128A11770883120313AD00EA
+:100950007608AC000130F0000030F1000A128A1570
+:1009600073250A128A117108F7007008F6000A123E
+:100970008A1174200A128A11770883120313AB00BC
+:100980007608AA000130F0000030F1000A128A1542
+:1009900073250A128A110130F0000030F1000A12AA
+:1009A0008A1573250A128A11710883120313A50090
+:1009B0007008A4000130F0000030F1000A128A151E
+:1009C00073250A128A11710883160313CD0070086B
+:1009D000CC000130F0000030F1000A128A157325B6
+:1009E0000A128A110130F0000030F1000A128A1553
+:1009F00073250A128A11710883120313A10070086B
+:100A0000A0000030F000F1000A128A1573250A12C6
+:100A10008A11710883120313A3007008A2000A123E
+:100A20008A15BF240800F401F40A01300A128A155D
+:100A30006B270A128A118312031347080A128A15B8
+:100A400033260A128A118312031348080A128A15E0
+:100A500033260A128A110430FB007B08F4000130AF
+:100A60000A128A156B270A128A1183120313490886
+:100A70000A128A1533260A128A11831203134A08AE
+:100A80000A128A1533260A128A110730FB007B08E6
+:100A9000F40001300A128A156B270A128A11831298
+:100AA00003134B080A128A1533260A128A1183127D
+:100AB00003134C080A128A1533260A128A110630CB
+:100AC000FB007B08F40002300A128A156B270A1219
+:100AD0008A118312031345080A128A1533260A1253
+:100AE0008A118312031346080A128A1533260A1242
+:100AF0008A110930FB007B08F40002300A128A15C3
+:100B00006B270A128A118312031343080A128A15EB
+:100B100033260A128A118312031344080A128A1513
+:100B200033260A128A110C30FB007B08F4000230D5
+:100B30000A128A156B270A128A11831203134108BD
+:100B40000A128A1533260A128A11831203134208E5
+:100B50000A128A1533260A128A11F401F40A0230A5
+:100B60000A128A156B270A128A11831603134A0880
+:100B7000F5004B08F6000A128A159F250A128A1101
+:100B80000A30FB007B08F40001300A128A156B273B
+:100B90000A128A11831203136E080A128A15332669
+:100BA0000A128A11831203133E080A128A15332689
+:100BB0000A128A11831203133F080A128A15332678
+:100BC0000A128A110E30FB007B08F40001300A1271
+:100BD0008A156B270A128A118312031340080A121E
+:100BE0008A1533260A128A11831203136A086B04CA
+:100BF000031D072E6C086D04031D072E0230F00044
+:100C00000030F1000A128A1528270A128A111E30B4
+:100C1000831203136A066B04031D08006C086D043D
+:100C2000031D08000130F0000030F1000A128A159F
+:100C3000282708000A30F0000030F1008312031367
+:100C40006D08F3006C08F2000A128A15CC250A120E
+:100C50008A117008303EF800780883120313CC0024
+:100C60000A30F0000030F1006D08F3006C08F2006B
+:100C70000A128A156C260A128A117008303EF80092
+:100C8000780883120313CB000A30F0000030F10023
+:100C90006B08F3006A08F2000A128A15CC250A12C2
+:100CA0008A117008303EF800780883120313CA00D6
+:100CB0000A30F0000030F1006B08F3006A08F2001F
+:100CC0000A128A156C260A128A117008303EF80042
+:100CD000780883120313C9000A30F0000030F100D5
+:100CE0006908F3006808F2000A128A15CC250A1276
+:100CF0008A117008303EF800780883120313C80088
+:100D00000A30F0000030F1006908F3006808F200D2
+:100D10000A128A156C260A128A117008303EF800F1
+:100D2000780883120313C7000A30F0000030F10086
+:100D30006708F3006608F2000A128A15CC250A1229
+:100D40008A117008303EF800780883120313C60039
+:100D50000A30F0000030F1006708F3006608F20086
+:100D60000A128A156C260A128A117008303EF800A1
+:100D7000780883120313C5000A30F0000030F10038
+:100D80006508F3006408F2000A128A15CC250A12DD
+:100D90008A117008303EF800780883120313C400EB
+:100DA0000A30F0000030F1006508F3006408F2003A
+:100DB0000A128A156C260A128A117008303EF80051
+:100DC000780883120313C3000A30F0000030F100EA
+:100DD0006308F3006208F2000A128A15CC250A1291
+:100DE0008A117008303EF800780883120313C2009D
+:100DF0000A30F0000030F1006308F3006208F200EE
+:100E00000A128A156C260A128A117008303EF80000
+:100E1000780883120313C1000A30F0000030F1009B
+:100E20003308F3003208F2000A128A15CC250A12A0
+:100E30008A117008303EF800780883120313BD0051
+:100E40000A30F0000030F1003308F3003208F200FD
+:100E50000A128A156C260A128A117008303EF800B0
+:100E6000780883120313BC000A30F0000030F10050
+:100E70003108F3003008F2000A128A15CC250A1254
+:100E80008A117008303EF800780883120313BB0003
+:100E90000A30F0000030F1003108F3003008F200B1
+:100EA0000A128A156C260A128A117008303EF80060
+:100EB000780883120313BA000A30F0000030F10002
+:100EC0002F08F3002E08F2000A128A15CC250A1208
+:100ED0008A117008303EF800780883120313B900B5
+:100EE0000A30F0000030F1002F08F3002E08F20065
+:100EF0000A128A156C260A128A117008303EF80010
+:100F0000780883120313B8000A30F0000030F100B3
+:100F10002D08F3002C08F2000A128A15CC250A12BB
+:100F20008A117008303EF800780883120313B70066
+:100F30000A30F0000030F1002D08F3002C08F20018
+:100F40000A128A156C260A128A117008303EF800BF
+:100F5000780883120313B6000A30F0000030F10065
+:100F60002B08F3002A08F2000A128A15CC250A126F
+:100F70008A117008303EF800780883120313B50018
+:100F80000A30F0000030F1002B08F3002A08F200CC
+:100F90000A128A156C267008303EF8007808831211
+:100FA0000313B40008008313D230FD000030FE00AC
+:100FB0007030FF00CE3084000A128A15FB240A121A
+:100FC0008A116F30FD000C30FE00EA30FF00623005
+:100FD00084000A128A15FB240A128A11A0308400A8
+:100FE000CE300A128A15CE240A128A1120308400CB
+:100FF0004D300A128A15CE2483010A128A114C2A16
+:101962000A128A15D62483160313911408000A1248
+:101972008A15D62483160313111408000A128A1535
+:10198200D62483160313111508000A128A15D624C9
+:101992007008831203139300080064008001840A14
+:1019A2000406031900340406CF2C8316031311080E
+:1019B2001F39031DD62C141D0800D62C00300A1224
+:1019C2008A1538250A128A1501300A128A15382515
+:1019D200080013340034073400341B340034153447
+:1019E20000342A3400341E34003420347E088A0045
+:1019F2007F088200F7240A128A158000840A0408EC
+:101A02007D0603190034FF0A0319FE0AFB2C01307C
+:101A1200831203132405A80000302505A900250818
+:101A2200F1002408F0000310F10CF00C01307005F5
+:101A3200A60000307105A7000800F000701C252DDB
+:101A4200831203130816282D831203130812F01CA5
+:101A52002C2D88162D2D8812701D312D0817322D30
+:101A62000813F01D362D8817080088130800F300AC
+:101A720083120313081173080A128A151E250A120B
+:101A82008A158312031388151A30F200F830F10018
+:101A9200F10B492DF20B492D00008312031388111B
+:101AA2000800F401F501701C5C2D7208F40703189C
+:101AB200F50A7308F50701300310F20DF30DFF3E2E
+:101AC200031D5D2D01300310F10CF00CFF3E031DD0
+:101AD200642D70087104031D542D7508F1007408FB
+:101AE200F00008000A128A15D6240A128A158316F3
+:101AF200031391150A128A15D6240A128A15831223
+:101B020003131308F200F3017208F4007308F500DE
+:101B12000A128A15D6240A128A1570087104031D46
+:101B2200962D831603139116992D83160313911282
+:101B320011167508F1007408F0000800F701F801A9
+:101B420077087507840078080318780A76078312E5
+:101B52000313FF000A128A1103200A128A15003A9F
+:101B62000319080077087507840078080318780AB3
+:101B72007607FF000A128A1103200A128A150A1236
+:101B82008A1533260A128A150130F7070318F80A54
+:101B92000030F807A12D700871040319F92DF50121
+:101BA200F50AF11BE02D01300310F00DF10DFF3E9F
+:101BB200031DD52D0130F4007408F507D22D7108EC
+:101BC2007302031DE62D70087202031CEE2D7008CD
+:101BD200F2027108031CF303F30201300310F10C4B
+:101BE200F00CFF3E031DEF2D0130F502031DE02D29
+:101BF2007308F1007208F00008000A128A15DF2447
+:101C02000A128A15F401F40A01300A128A156B27A6
+:101C12000A128A150130F5008030F6000A128A1580
+:101C22009F250A128A15F401F40A02300A128A1553
+:101C32006B270A128A152230F5008030F6000A124C
+:101C42008A159F250A128A153330FD00BB30FC002D
+:101C5200DF30FB00FB0B2B2EFC0B2B2EFD0B2B2E58
+:101C6200322E0800F40074080F39F1007108F200F6
+:101C72007408F039F1007108F30083120313081598
+:101C82007308F10004300310F10CFF3E031D442ED3
+:101C920071080A128A151E250A128A158312031365
+:101CA20088154230F100F10B542E00008312031309
+:101CB200881172080A128A151E250A128A158312C1
+:101CC200031388154230F100F10B652E00008312D8
+:101CD200031388110800F501F60170087104031955
+:101CE200A32EF701F70AF11B822E01300310F00D2B
+:101CF200F10DFF3E031D772E0130F4007408F70743
+:101D0200742E01300310F50DF60DFF3E031D832ED8
+:101D120071087302031D8F2E70087202031C982E25
+:101D22007008F2027108031CF303F3027514013008
+:101D32000310F10CF00CFF3E031D992E0130F70247
+:101D4200031D822E7608F1007508F00008000030AD
+:101D5200FC000030FB000030FA000030F900701C7B
+:101D6200C62E7408F907750803110318013E031DF6
+:101D7200FA07760803110318013E031DFB077708D3
+:101D820003110318013E031DFC070130F800031084
+:101D9200F40DF50DF60DF70DF80BC82E01300310FA
+:101DA200F30CF20CF10CF00CFF3E031DD02E730865
+:101DB200720471047004031DB02E7C08F3007B08CA
+:101DC200F2007A08F1007908F00008000A128A1578
+:101DD200DF240A128A15F401F40A01300A128A1564
+:101DE2006B270A128A153230F5008030F6000A128B
+:101DF2008A159F250A128A15DF300A128A153326A0
+:101E02000A128A1543300A128A1533260A128A15D3
+:101E1200F401F40A02300A128A156B270A128A1593
+:101E22001230F5008030F6000A128A159F250A1238
+:101E32008A153330FD00BB30FC00DF30FB00FB0BAA
+:101E4200202FFC0B202FFD0B202F272F0800F50140
+:101E5200F60171087602031D302F7008750203180F
+:101E62000800F701F8018312031388140330F3000A
+:101E72006E30F200F20B3B2FF30B3B2F8312031356
+:101E82008810D030F200F20B442F0130F70703180C
+:101E9200F80A0030F8077808803AFF0080307F02A5
+:101EA200031D552FFA307702031C342F0D30F40036
+:101EB200AF30F300B630F200F20B5D2FF30B5D2F63
+:101EC200F40B5D2F00000130F5070318F60A00300D
+:101ED200F6072A2FF7007703031D902F74087F3E21
+:101EE200F5007508FA007A08F50004300310F50CC5
+:101EF200FF3E031D772F7508F6007608F8007A0872
+:101F02000F39F5007508F90078080A128A15382584
+:101F12000A128A1579080A128A1538250800023031
+:101F22007706031D08007408BF3EF5007508FA0025
+:101F32007A08F50004300310F50CFF3E031D9C2FB8
+:101F42007508F6007608F8007A080F39F50075086A
+:101F5200F90078080A128A1538250A128A157908B2
+:101F62000A128A1538250800F601F31FBF2FF2095D
+:101F7200F309F20A0319F30AF601F60AF11FC62F52
+:101F8200F009F109F00A0319F10A70087104031942
+:101F9200F32FF501F50AF11BDA2F01300310F00DD2
+:101FA200F10DFF3E031DCF2F0130F4007408F50739
+:101FB200CC2F71087302031DE02F70087202031CFC
+:101FC200E82F7008F2027108031CF303F3020130D8
+:101FD2000310F10CF00CFF3E031DE92F0130F50256
+:101FE200031DDA2F76080319FB2FF209F309F20A0F
+:0E1FF2000319F30A7308F1007208F0000800EA
+:02400E00723FFF
+:00000001FF
diff --git a/dist/default/production/I2C_LCD.X.production.hxl b/dist/default/production/I2C_LCD.X.production.hxl
new file mode 100755
index 0000000..69d01cf
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.hxl
@@ -0,0 +1,120 @@
+### HEXMate logfile and output summary ###
+### Memory Usage ###
+ Unused memory ranges:
+ DEh - DFh
+ 1000h - 193Fh
+ 1940h - 1961h
+ 2000h - 3FFFh
+ 4000h - 400Dh
+ 4010h - 403Fh
+
+ dist/default/production\I2C_LCD.X.production.hex ranges:
+ 0h - DDh
+ E0h - FFFh
+ 1962h - 1FFFh
+ 400Eh - 400Fh
+
+### Hex Memory Map ###
+ Legend:
+ - = Unused memory
+ F = Filled ROM
+ S = Stored serial code
+ A = Stored ASCII string
+ R = Reserved for checksum
+ C = Stored checksum result
+ T = Trailing code
+ & = Find & replace opcode
+ X = Find & delete opcode
+ 1 = dist/default/production\I2C_LCD.X.production.hex
+00000000: 1111111111111111111111111111111111111111111111111111111111111111
+00000040: 1111111111111111111111111111111111111111111111111111111111111111
+00000080: 1111111111111111111111111111111111111111111111111111111111111111
+000000C0: 111111111111111111111111111111--11111111111111111111111111111111
+00000100: 1111111111111111111111111111111111111111111111111111111111111111
+00000140: 1111111111111111111111111111111111111111111111111111111111111111
+00000180: 1111111111111111111111111111111111111111111111111111111111111111
+000001C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000200: 1111111111111111111111111111111111111111111111111111111111111111
+00000240: 1111111111111111111111111111111111111111111111111111111111111111
+00000280: 1111111111111111111111111111111111111111111111111111111111111111
+000002C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000300: 1111111111111111111111111111111111111111111111111111111111111111
+00000340: 1111111111111111111111111111111111111111111111111111111111111111
+00000380: 1111111111111111111111111111111111111111111111111111111111111111
+000003C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000400: 1111111111111111111111111111111111111111111111111111111111111111
+00000440: 1111111111111111111111111111111111111111111111111111111111111111
+00000480: 1111111111111111111111111111111111111111111111111111111111111111
+000004C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000500: 1111111111111111111111111111111111111111111111111111111111111111
+00000540: 1111111111111111111111111111111111111111111111111111111111111111
+00000580: 1111111111111111111111111111111111111111111111111111111111111111
+000005C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000600: 1111111111111111111111111111111111111111111111111111111111111111
+00000640: 1111111111111111111111111111111111111111111111111111111111111111
+00000680: 1111111111111111111111111111111111111111111111111111111111111111
+000006C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000700: 1111111111111111111111111111111111111111111111111111111111111111
+00000740: 1111111111111111111111111111111111111111111111111111111111111111
+00000780: 1111111111111111111111111111111111111111111111111111111111111111
+000007C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000800: 1111111111111111111111111111111111111111111111111111111111111111
+00000840: 1111111111111111111111111111111111111111111111111111111111111111
+00000880: 1111111111111111111111111111111111111111111111111111111111111111
+000008C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000900: 1111111111111111111111111111111111111111111111111111111111111111
+00000940: 1111111111111111111111111111111111111111111111111111111111111111
+00000980: 1111111111111111111111111111111111111111111111111111111111111111
+000009C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000A00: 1111111111111111111111111111111111111111111111111111111111111111
+00000A40: 1111111111111111111111111111111111111111111111111111111111111111
+00000A80: 1111111111111111111111111111111111111111111111111111111111111111
+00000AC0: 1111111111111111111111111111111111111111111111111111111111111111
+00000B00: 1111111111111111111111111111111111111111111111111111111111111111
+00000B40: 1111111111111111111111111111111111111111111111111111111111111111
+00000B80: 1111111111111111111111111111111111111111111111111111111111111111
+00000BC0: 1111111111111111111111111111111111111111111111111111111111111111
+00000C00: 1111111111111111111111111111111111111111111111111111111111111111
+00000C40: 1111111111111111111111111111111111111111111111111111111111111111
+00000C80: 1111111111111111111111111111111111111111111111111111111111111111
+00000CC0: 1111111111111111111111111111111111111111111111111111111111111111
+00000D00: 1111111111111111111111111111111111111111111111111111111111111111
+00000D40: 1111111111111111111111111111111111111111111111111111111111111111
+00000D80: 1111111111111111111111111111111111111111111111111111111111111111
+00000DC0: 1111111111111111111111111111111111111111111111111111111111111111
+00000E00: 1111111111111111111111111111111111111111111111111111111111111111
+00000E40: 1111111111111111111111111111111111111111111111111111111111111111
+00000E80: 1111111111111111111111111111111111111111111111111111111111111111
+00000EC0: 1111111111111111111111111111111111111111111111111111111111111111
+00000F00: 1111111111111111111111111111111111111111111111111111111111111111
+00000F40: 1111111111111111111111111111111111111111111111111111111111111111
+00000F80: 1111111111111111111111111111111111111111111111111111111111111111
+00000FC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001940: ----------------------------------111111111111111111111111111111
+00001980: 1111111111111111111111111111111111111111111111111111111111111111
+000019C0: 1111111111111111111111111111111111111111111111111111111111111111
+00001A00: 1111111111111111111111111111111111111111111111111111111111111111
+00001A40: 1111111111111111111111111111111111111111111111111111111111111111
+00001A80: 1111111111111111111111111111111111111111111111111111111111111111
+00001AC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001B00: 1111111111111111111111111111111111111111111111111111111111111111
+00001B40: 1111111111111111111111111111111111111111111111111111111111111111
+00001B80: 1111111111111111111111111111111111111111111111111111111111111111
+00001BC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001C00: 1111111111111111111111111111111111111111111111111111111111111111
+00001C40: 1111111111111111111111111111111111111111111111111111111111111111
+00001C80: 1111111111111111111111111111111111111111111111111111111111111111
+00001CC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001D00: 1111111111111111111111111111111111111111111111111111111111111111
+00001D40: 1111111111111111111111111111111111111111111111111111111111111111
+00001D80: 1111111111111111111111111111111111111111111111111111111111111111
+00001DC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001E00: 1111111111111111111111111111111111111111111111111111111111111111
+00001E40: 1111111111111111111111111111111111111111111111111111111111111111
+00001E80: 1111111111111111111111111111111111111111111111111111111111111111
+00001EC0: 1111111111111111111111111111111111111111111111111111111111111111
+00001F00: 1111111111111111111111111111111111111111111111111111111111111111
+00001F40: 1111111111111111111111111111111111111111111111111111111111111111
+00001F80: 1111111111111111111111111111111111111111111111111111111111111111
+00001FC0: 1111111111111111111111111111111111111111111111111111111111111111
+00004000: --------------11------------------------------------------------
diff --git a/dist/default/production/I2C_LCD.X.production.lst b/dist/default/production/I2C_LCD.X.production.lst
new file mode 100755
index 0000000..5a80686
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.lst
@@ -0,0 +1,6004 @@
+
+
+Microchip MPLAB XC8 Assembler V2.05 build -831301201
+ Sat Jul 27 21:52:44 2019
+
+Microchip MPLAB XC8 C Compiler v2.05 (Free license) build 20181220022703 Og1
+ 1 processor 16F877A
+ 2 opt pw 120
+ 3 opt flic
+ 4 psect idataBANK0,global,class=CODE,delta=2
+ 5 psect idataBANK1,global,class=CODE,delta=2
+ 6 psect strings,global,class=STRING,delta=2
+ 7 psect cinit,global,class=CODE,merge=1,delta=2
+ 8 psect bssBANK0,global,class=BANK0,space=1,delta=1
+ 9 psect dataBANK0,global,class=BANK0,space=1,delta=1
+ 10 psect bssBANK1,global,class=BANK1,space=1,delta=1
+ 11 psect dataBANK1,global,class=BANK1,space=1,delta=1
+ 12 psect inittext,global,class=CODE,delta=2
+ 13 psect clrtext,global,class=CODE,delta=2
+ 14 psect cstackCOMMON,global,class=COMMON,space=1,delta=1
+ 15 psect cstackBANK0,global,class=BANK0,space=1,delta=1
+ 16 psect maintext,global,class=CODE,split=1,delta=2
+ 17 psect text1,local,class=CODE,merge=1,delta=2
+ 18 psect text2,local,class=CODE,merge=1,delta=2
+ 19 psect text3,local,class=CODE,merge=1,delta=2
+ 20 psect text4,local,class=CODE,merge=1,delta=2
+ 21 psect text5,local,class=CODE,merge=1,delta=2,group=1
+ 22 psect text6,local,class=CODE,merge=1,delta=2,group=1
+ 23 psect text7,local,class=CODE,merge=1,delta=2
+ 24 psect text8,local,class=CODE,merge=1,delta=2,group=1
+ 25 psect text9,local,class=CODE,merge=1,delta=2,group=1
+ 26 psect text10,local,class=CODE,merge=1,delta=2
+ 27 psect text11,local,class=CODE,merge=1,delta=2
+ 28 psect text12,local,class=CODE,merge=1,delta=2
+ 29 psect text13,local,class=CODE,merge=1,delta=2
+ 30 psect text14,local,class=CODE,merge=1,delta=2
+ 31 psect text15,local,class=CODE,merge=1,delta=2
+ 32 psect text16,local,class=CODE,merge=1,delta=2
+ 33 psect text17,local,class=CODE,merge=1,delta=2
+ 34 psect text18,local,class=CODE,merge=1,delta=2
+ 35 psect text19,local,class=CODE,merge=1,delta=2
+ 36 psect text20,local,class=CODE,merge=1,delta=2
+ 37 psect text21,local,class=CODE,merge=1,delta=2
+ 38 psect text22,local,class=CODE,merge=1,delta=2
+ 39 psect text23,local,class=CODE,merge=1,delta=2
+ 40 psect text24,local,class=CODE,merge=1,delta=2
+ 41 psect text25,local,class=CODE,merge=1,delta=2,group=1
+ 42 psect text26,local,class=CODE,merge=1,delta=2
+ 43 psect text27,local,class=CODE,merge=1,delta=2
+ 44 psect text28,local,class=CODE,merge=1,delta=2
+ 45 psect text29,local,class=CODE,merge=1,delta=2
+ 46 psect text30,local,class=CODE,merge=1,delta=2,group=1
+ 47 psect text31,local,class=CODE,merge=1,delta=2,group=1
+ 48 psect text32,local,class=CODE,merge=1,delta=2
+ 49 dabs 1,0x7E,2
+ 50 0000
+ 51 ; Version 2.05
+ 52 ; Generated 20/12/2018 GMT
+ 53 ;
+ 54 ; Copyright © 2018, Microchip Technology Inc. and its subsidiaries ("Microchip")
+ 55 ; All rights reserved.
+ 56 ;
+ 57 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ + ip").
+ 58 ;
+ 59 ; Redistribution and use in source and binary forms, with or without modification, are
+ 60 ; permitted provided that the following conditions are met:
+ 61 ;
+ 62 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ + t of
+ 63 ; conditions and the following disclaimer.
+ 64 ;
+ 65 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ + list
+ 66 ; of conditions and the following disclaimer in the documentation and/or other
+ 67 ; materials provided with the distribution.
+ 68 ;
+ 69 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ + is
+ 70 ; software without specific prior written permission.
+ 71 ;
+ 72 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ 73 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ + OR
+ 74 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ + T,
+ 75 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
+ 76 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
+ 77 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ + RICT
+ 78 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ + SE OF
+ 79 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 80 ;
+ 81 ;
+ 82 ; Code-generator required, PIC16F877A Definitions
+ 83 ;
+ 84 ; SFR Addresses
+ 85 0000 ;#
+ 86 0001 ;#
+ 87 0002 ;#
+ 88 0003 ;#
+ 89 0004 ;#
+ 90 0005 ;#
+ 91 0006 ;#
+ 92 0007 ;#
+ 93 0008 ;#
+ 94 0009 ;#
+ 95 000A ;#
+ 96 000B ;#
+ 97 000C ;#
+ 98 000D ;#
+ 99 000E ;#
+ 100 000E ;#
+ 101 000F ;#
+ 102 0010 ;#
+ 103 0011 ;#
+ 104 0012 ;#
+ 105 0013 ;#
+ 106 0014 ;#
+ 107 0015 ;#
+ 108 0015 ;#
+ 109 0016 ;#
+ 110 0017 ;#
+ 111 0018 ;#
+ 112 0019 ;#
+ 113 001A ;#
+ 114 001B ;#
+ 115 001B ;#
+ 116 001C ;#
+ 117 001D ;#
+ 118 001E ;#
+ 119 001F ;#
+ 120 0081 ;#
+ 121 0085 ;#
+ 122 0086 ;#
+ 123 0087 ;#
+ 124 0088 ;#
+ 125 0089 ;#
+ 126 008C ;#
+ 127 008D ;#
+ 128 008E ;#
+ 129 0091 ;#
+ 130 0092 ;#
+ 131 0093 ;#
+ 132 0094 ;#
+ 133 0098 ;#
+ 134 0099 ;#
+ 135 009C ;#
+ 136 009D ;#
+ 137 009E ;#
+ 138 009F ;#
+ 139 010C ;#
+ 140 010D ;#
+ 141 010E ;#
+ 142 010F ;#
+ 143 018C ;#
+ 144 018D ;#
+ 145 0000 ;#
+ 146 0001 ;#
+ 147 0002 ;#
+ 148 0003 ;#
+ 149 0004 ;#
+ 150 0005 ;#
+ 151 0006 ;#
+ 152 0007 ;#
+ 153 0008 ;#
+ 154 0009 ;#
+ 155 000A ;#
+ 156 000B ;#
+ 157 000C ;#
+ 158 000D ;#
+ 159 000E ;#
+ 160 000E ;#
+ 161 000F ;#
+ 162 0010 ;#
+ 163 0011 ;#
+ 164 0012 ;#
+ 165 0013 ;#
+ 166 0014 ;#
+ 167 0015 ;#
+ 168 0015 ;#
+ 169 0016 ;#
+ 170 0017 ;#
+ 171 0018 ;#
+ 172 0019 ;#
+ 173 001A ;#
+ 174 001B ;#
+ 175 001B ;#
+ 176 001C ;#
+ 177 001D ;#
+ 178 001E ;#
+ 179 001F ;#
+ 180 0081 ;#
+ 181 0085 ;#
+ 182 0086 ;#
+ 183 0087 ;#
+ 184 0088 ;#
+ 185 0089 ;#
+ 186 008C ;#
+ 187 008D ;#
+ 188 008E ;#
+ 189 0091 ;#
+ 190 0092 ;#
+ 191 0093 ;#
+ 192 0094 ;#
+ 193 0098 ;#
+ 194 0099 ;#
+ 195 009C ;#
+ 196 009D ;#
+ 197 009E ;#
+ 198 009F ;#
+ 199 010C ;#
+ 200 010D ;#
+ 201 010E ;#
+ 202 010F ;#
+ 203 018C ;#
+ 204 018D ;#
+ 205 0000 ;#
+ 206 0001 ;#
+ 207 0002 ;#
+ 208 0003 ;#
+ 209 0004 ;#
+ 210 0005 ;#
+ 211 0006 ;#
+ 212 0007 ;#
+ 213 0008 ;#
+ 214 0009 ;#
+ 215 000A ;#
+ 216 000B ;#
+ 217 000C ;#
+ 218 000D ;#
+ 219 000E ;#
+ 220 000E ;#
+ 221 000F ;#
+ 222 0010 ;#
+ 223 0011 ;#
+ 224 0012 ;#
+ 225 0013 ;#
+ 226 0014 ;#
+ 227 0015 ;#
+ 228 0015 ;#
+ 229 0016 ;#
+ 230 0017 ;#
+ 231 0018 ;#
+ 232 0019 ;#
+ 233 001A ;#
+ 234 001B ;#
+ 235 001B ;#
+ 236 001C ;#
+ 237 001D ;#
+ 238 001E ;#
+ 239 001F ;#
+ 240 0081 ;#
+ 241 0085 ;#
+ 242 0086 ;#
+ 243 0087 ;#
+ 244 0088 ;#
+ 245 0089 ;#
+ 246 008C ;#
+ 247 008D ;#
+ 248 008E ;#
+ 249 0091 ;#
+ 250 0092 ;#
+ 251 0093 ;#
+ 252 0094 ;#
+ 253 0098 ;#
+ 254 0099 ;#
+ 255 009C ;#
+ 256 009D ;#
+ 257 009E ;#
+ 258 009F ;#
+ 259 010C ;#
+ 260 010D ;#
+ 261 010E ;#
+ 262 010F ;#
+ 263 018C ;#
+ 264 018D ;#
+ 265 0000 ;#
+ 266 0001 ;#
+ 267 0002 ;#
+ 268 0003 ;#
+ 269 0004 ;#
+ 270 0005 ;#
+ 271 0006 ;#
+ 272 0007 ;#
+ 273 0008 ;#
+ 274 0009 ;#
+ 275 000A ;#
+ 276 000B ;#
+ 277 000C ;#
+ 278 000D ;#
+ 279 000E ;#
+ 280 000E ;#
+ 281 000F ;#
+ 282 0010 ;#
+ 283 0011 ;#
+ 284 0012 ;#
+ 285 0013 ;#
+ 286 0014 ;#
+ 287 0015 ;#
+ 288 0015 ;#
+ 289 0016 ;#
+ 290 0017 ;#
+ 291 0018 ;#
+ 292 0019 ;#
+ 293 001A ;#
+ 294 001B ;#
+ 295 001B ;#
+ 296 001C ;#
+ 297 001D ;#
+ 298 001E ;#
+ 299 001F ;#
+ 300 0081 ;#
+ 301 0085 ;#
+ 302 0086 ;#
+ 303 0087 ;#
+ 304 0088 ;#
+ 305 0089 ;#
+ 306 008C ;#
+ 307 008D ;#
+ 308 008E ;#
+ 309 0091 ;#
+ 310 0092 ;#
+ 311 0093 ;#
+ 312 0094 ;#
+ 313 0098 ;#
+ 314 0099 ;#
+ 315 009C ;#
+ 316 009D ;#
+ 317 009E ;#
+ 318 009F ;#
+ 319 010C ;#
+ 320 010D ;#
+ 321 010E ;#
+ 322 010F ;#
+ 323 018C ;#
+ 324 018D ;#
+ 325 0000 ;#
+ 326 0001 ;#
+ 327 0002 ;#
+ 328 0003 ;#
+ 329 0004 ;#
+ 330 0005 ;#
+ 331 0006 ;#
+ 332 0007 ;#
+ 333 0008 ;#
+ 334 0009 ;#
+ 335 000A ;#
+ 336 000B ;#
+ 337 000C ;#
+ 338 000D ;#
+ 339 000E ;#
+ 340 000E ;#
+ 341 000F ;#
+ 342 0010 ;#
+ 343 0011 ;#
+ 344 0012 ;#
+ 345 0013 ;#
+ 346 0014 ;#
+ 347 0015 ;#
+ 348 0015 ;#
+ 349 0016 ;#
+ 350 0017 ;#
+ 351 0018 ;#
+ 352 0019 ;#
+ 353 001A ;#
+ 354 001B ;#
+ 355 001B ;#
+ 356 001C ;#
+ 357 001D ;#
+ 358 001E ;#
+ 359 001F ;#
+ 360 0081 ;#
+ 361 0085 ;#
+ 362 0086 ;#
+ 363 0087 ;#
+ 364 0088 ;#
+ 365 0089 ;#
+ 366 008C ;#
+ 367 008D ;#
+ 368 008E ;#
+ 369 0091 ;#
+ 370 0092 ;#
+ 371 0093 ;#
+ 372 0094 ;#
+ 373 0098 ;#
+ 374 0099 ;#
+ 375 009C ;#
+ 376 009D ;#
+ 377 009E ;#
+ 378 009F ;#
+ 379 010C ;#
+ 380 010D ;#
+ 381 010E ;#
+ 382 010F ;#
+ 383 018C ;#
+ 384 018D ;#
+ 385 0000 ;#
+ 386 0001 ;#
+ 387 0002 ;#
+ 388 0003 ;#
+ 389 0004 ;#
+ 390 0005 ;#
+ 391 0006 ;#
+ 392 0007 ;#
+ 393 0008 ;#
+ 394 0009 ;#
+ 395 000A ;#
+ 396 000B ;#
+ 397 000C ;#
+ 398 000D ;#
+ 399 000E ;#
+ 400 000E ;#
+ 401 000F ;#
+ 402 0010 ;#
+ 403 0011 ;#
+ 404 0012 ;#
+ 405 0013 ;#
+ 406 0014 ;#
+ 407 0015 ;#
+ 408 0015 ;#
+ 409 0016 ;#
+ 410 0017 ;#
+ 411 0018 ;#
+ 412 0019 ;#
+ 413 001A ;#
+ 414 001B ;#
+ 415 001B ;#
+ 416 001C ;#
+ 417 001D ;#
+ 418 001E ;#
+ 419 001F ;#
+ 420 0081 ;#
+ 421 0085 ;#
+ 422 0086 ;#
+ 423 0087 ;#
+ 424 0088 ;#
+ 425 0089 ;#
+ 426 008C ;#
+ 427 008D ;#
+ 428 008E ;#
+ 429 0091 ;#
+ 430 0092 ;#
+ 431 0093 ;#
+ 432 0094 ;#
+ 433 0098 ;#
+ 434 0099 ;#
+ 435 009C ;#
+ 436 009D ;#
+ 437 009E ;#
+ 438 009F ;#
+ 439 010C ;#
+ 440 010D ;#
+ 441 010E ;#
+ 442 010F ;#
+ 443 018C ;#
+ 444 018D ;#
+ 445 0000 ;#
+ 446 0001 ;#
+ 447 0002 ;#
+ 448 0003 ;#
+ 449 0004 ;#
+ 450 0005 ;#
+ 451 0006 ;#
+ 452 0007 ;#
+ 453 0008 ;#
+ 454 0009 ;#
+ 455 000A ;#
+ 456 000B ;#
+ 457 000C ;#
+ 458 000D ;#
+ 459 000E ;#
+ 460 000E ;#
+ 461 000F ;#
+ 462 0010 ;#
+ 463 0011 ;#
+ 464 0012 ;#
+ 465 0013 ;#
+ 466 0014 ;#
+ 467 0015 ;#
+ 468 0015 ;#
+ 469 0016 ;#
+ 470 0017 ;#
+ 471 0018 ;#
+ 472 0019 ;#
+ 473 001A ;#
+ 474 001B ;#
+ 475 001B ;#
+ 476 001C ;#
+ 477 001D ;#
+ 478 001E ;#
+ 479 001F ;#
+ 480 0081 ;#
+ 481 0085 ;#
+ 482 0086 ;#
+ 483 0087 ;#
+ 484 0088 ;#
+ 485 0089 ;#
+ 486 008C ;#
+ 487 008D ;#
+ 488 008E ;#
+ 489 0091 ;#
+ 490 0092 ;#
+ 491 0093 ;#
+ 492 0094 ;#
+ 493 0098 ;#
+ 494 0099 ;#
+ 495 009C ;#
+ 496 009D ;#
+ 497 009E ;#
+ 498 009F ;#
+ 499 010C ;#
+ 500 010D ;#
+ 501 010E ;#
+ 502 010F ;#
+ 503 018C ;#
+ 504 018D ;#
+ 505
+ 506 psect idataBANK0
+ 507 0CEA __pidataBANK0:
+ 508
+ 509 ;initializer for _year
+ 510 0CEA 3413 retlw 19
+ 511 0CEB 3400 retlw 0
+ 512
+ 513 ;initializer for _month
+ 514 0CEC 3407 retlw 7
+ 515 0CED 3400 retlw 0
+ 516
+ 517 ;initializer for _date
+ 518 0CEE 341B retlw 27
+ 519 0CEF 3400 retlw 0
+ 520
+ 521 ;initializer for _hour
+ 522 0CF0 3415 retlw 21
+ 523 0CF1 3400 retlw 0
+ 524
+ 525 ;initializer for _min
+ 526 0CF2 342A retlw 42
+ 527 0CF3 3400 retlw 0
+ 528
+ 529 ;initializer for _sec
+ 530 0CF4 341E retlw 30
+ 531 0CF5 3400 retlw 0
+ 532
+ 533 ;initializer for _temp_sign
+ 534 0CF6 3420 retlw 32
+ 535
+ 536 psect idataBANK1
+ 537 0070 __pidataBANK1:
+ 538
+ 539 ;initializer for _century
+ 540 0070 3414 retlw 20
+ 541 0071 3400 retlw 0
+ 542
+ 543 ;initializer for _dayofweek
+ 544 0072 3407 retlw 7
+ 545 0073 3400 retlw 0
+ 546 001A _RCREG set 26
+ 547 0019 _TXREG set 25
+ 548 0013 _SSPBUF set 19
+ 549 0014 _SSPCON set 20
+ 550 0008 _PORTD set 8
+ 551 0007 _PORTC set 7
+ 552 0041 _RD1 set 65
+ 553 0065 _RCIF set 101
+ 554 00C1 _OERR set 193
+ 555 0064 _TXIF set 100
+ 556 00C6 _RX9 set 198
+ 557 00C4 _CREN set 196
+ 558 00C7 _SPEN set 199
+ 559 0043 _RD3 set 67
+ 560 0042 _RD2 set 66
+ 561 0047 _RD7 set 71
+ 562 0046 _RD6 set 70
+ 563 0045 _RD5 set 69
+ 564 0044 _RD4 set 68
+ 565 0099 _SPBRG set 153
+ 566 0094 _SSPSTAT set 148
+ 567 0093 _SSPADD set 147
+ 568 0091 _SSPCON2 set 145
+ 569 0088 _TRISD set 136
+ 570 0087 _TRISC set 135
+ 571 04C6 _TX9 set 1222
+ 572 04C5 _TXEN set 1221
+ 573 04C4 _SYNC set 1220
+ 574 04C2 _BRGH set 1218
+ 575 043F _TRISC7 set 1087
+ 576 043E _TRISC6 set 1086
+ 577 048C _ACKEN set 1164
+ 578 048D _ACKDT set 1165
+ 579 048B _RCEN set 1163
+ 580 048A _PEN set 1162
+ 581 0489 _RSEN set 1161
+ 582 0488 _SEN set 1160
+ 583 043C _TRISC4 set 1084
+ 584 043B _TRISC3 set 1083
+ 585
+ 586 psect strings
+ 587 0003 __pstrings:
+ 588 0003 stringtab:
+ 589 0003 __stringtab:
+ 590
+ 591 ; String table - string pointers are 1 byte each
+ 592 0003 1BFF btfsc btemp+1,7
+ 593 0004 280D ljmp stringcode
+ 594 0005 1383 bcf 3,7
+ 595 0006 187F btfsc btemp+1,0
+ 596 0007 1783 bsf 3,7
+ 597 0008 0800 movf 0,w
+ 598 0009 0A84 incf 4,f
+ 599 000A 1903 skipnz
+ 600 000B 0AFF incf btemp+1,f
+ 601 000C 0008 return
+ 602 000D stringcode:
+ 603 000D stringdir:
+ 604 000D 3000 movlw high stringdir
+ 605 000E 008A movwf 10
+ 606 000F 0804 movf 4,w
+ 607 0010 0A84 incf 4,f
+ 608 0011 0782 addwf 2,f
+ 609 0012 __stringbase:
+ 610 0012 3400 retlw 0
+ 611 0013 __end_of__stringtab:
+ 612 0013 STR_8:
+ 613 0013 3452 retlw 82 ;'R'
+ 614 0014 3454 retlw 84 ;'T'
+ 615 0015 3443 retlw 67 ;'C'
+ 616 0016 342F retlw 47 ;'/'
+ 617 0017 344C retlw 76 ;'L'
+ 618 0018 3443 retlw 67 ;'C'
+ 619 0019 3444 retlw 68 ;'D'
+ 620 001A 3420 retlw 32 ;' '
+ 621 001B 3477 retlw 119 ;'w'
+ 622 001C 3469 retlw 105 ;'i'
+ 623 001D 3474 retlw 116 ;'t'
+ 624 001E 3468 retlw 104 ;'h'
+ 625 001F 3420 retlw 32 ;' '
+ 626 0020 3450 retlw 80 ;'P'
+ 627 0021 3449 retlw 73 ;'I'
+ 628 0022 3443 retlw 67 ;'C'
+ 629 0023 3400 retlw 0
+ 630 0024 STR_11:
+ 631 0024 3464 retlw 100 ;'d'
+ 632 0025 3464 retlw 100 ;'d'
+ 633 0026 3464 retlw 100 ;'d'
+ 634 0027 342C retlw 44 ;','
+ 635 0028 3420 retlw 32 ;' '
+ 636 0029 3444 retlw 68 ;'D'
+ 637 002A 3444 retlw 68 ;'D'
+ 638 002B 342F retlw 47 ;'/'
+ 639 002C 344D retlw 77 ;'M'
+ 640 002D 344D retlw 77 ;'M'
+ 641 002E 342F retlw 47 ;'/'
+ 642 002F 3459 retlw 89 ;'Y'
+ 643 0030 3459 retlw 89 ;'Y'
+ 644 0031 3420 retlw 32 ;' '
+ 645 0032 3420 retlw 32 ;' '
+ 646 0033 3400 retlw 0
+ 647 0034 STR_9:
+ 648 0034 3420 retlw 32 ;' '
+ 649 0035 3443 retlw 67 ;'C'
+ 650 0036 3469 retlw 105 ;'i'
+ 651 0037 3472 retlw 114 ;'r'
+ 652 0038 3463 retlw 99 ;'c'
+ 653 0039 3475 retlw 117 ;'u'
+ 654 003A 3469 retlw 105 ;'i'
+ 655 003B 3474 retlw 116 ;'t'
+ 656 003C 3420 retlw 32 ;' '
+ 657 003D 3444 retlw 68 ;'D'
+ 658 003E 3469 retlw 105 ;'i'
+ 659 003F 3467 retlw 103 ;'g'
+ 660 0040 3465 retlw 101 ;'e'
+ 661 0041 3473 retlw 115 ;'s'
+ 662 0042 3474 retlw 116 ;'t'
+ 663 0043 3400 retlw 0
+ 664 0044 STR_10:
+ 665 0044 3448 retlw 72 ;'H'
+ 666 0045 3448 retlw 72 ;'H'
+ 667 0046 343A retlw 58 ;':'
+ 668 0047 346D retlw 109 ;'m'
+ 669 0048 346D retlw 109 ;'m'
+ 670 0049 343A retlw 58 ;':'
+ 671 004A 3473 retlw 115 ;'s'
+ 672 004B 3473 retlw 115 ;'s'
+ 673 004C 3420 retlw 32 ;' '
+ 674 004D 342D retlw 45 ;'-'
+ 675 004E 3450 retlw 80 ;'P'
+ 676 004F 3450 retlw 80 ;'P'
+ 677 0050 342E retlw 46 ;'.'
+ 678 0051 3450 retlw 80 ;'P'
+ 679 0052 3400 retlw 0
+ 680 0053 STR_4:
+ 681 0053 3457 retlw 87 ;'W'
+ 682 0054 3465 retlw 101 ;'e'
+ 683 0055 3464 retlw 100 ;'d'
+ 684 0056 3400 retlw 0
+ 685 0057 STR_3:
+ 686 0057 3454 retlw 84 ;'T'
+ 687 0058 3475 retlw 117 ;'u'
+ 688 0059 3465 retlw 101 ;'e'
+ 689 005A 3400 retlw 0
+ 690 005B STR_6:
+ 691 005B 3446 retlw 70 ;'F'
+ 692 005C 3472 retlw 114 ;'r'
+ 693 005D 3469 retlw 105 ;'i'
+ 694 005E 3400 retlw 0
+ 695 005F STR_2:
+ 696 005F 344D retlw 77 ;'M'
+ 697 0060 346F retlw 111 ;'o'
+ 698 0061 346E retlw 110 ;'n'
+ 699 0062 3400 retlw 0
+ 700 0063 STR_1:
+ 701 0063 3453 retlw 83 ;'S'
+ 702 0064 3475 retlw 117 ;'u'
+ 703 0065 346E retlw 110 ;'n'
+ 704 0066 3400 retlw 0
+ 705 0067 STR_7:
+ 706 0067 3453 retlw 83 ;'S'
+ 707 0068 3461 retlw 97 ;'a'
+ 708 0069 3474 retlw 116 ;'t'
+ 709 006A 3400 retlw 0
+ 710 006B STR_5:
+ 711 006B 3454 retlw 84 ;'T'
+ 712 006C 3468 retlw 104 ;'h'
+ 713 006D 3475 retlw 117 ;'u'
+ 714 006E 3400 retlw 0
+ 715
+ 716 ; #config settings
+ 717 0000
+ 718 psect cinit
+ 719 07D3 start_initialization:
+ 720 07D3 __initialization:
+ 721
+ 722 ; Initialize objects allocated to BANK1
+ 723 07D3 1383 bcf 3,7 ;select IRP bank0
+ 724 07D4 30D2 movlw low (__pdataBANK1+4)
+ 725 07D5 00FD movwf btemp+-1
+ 726 07D6 3000 movlw high __pidataBANK1
+ 727 07D7 00FE movwf btemp
+ 728 07D8 3070 movlw low __pidataBANK1
+ 729 07D9 00FF movwf btemp+1
+ 730 07DA 30CE movlw low __pdataBANK1
+ 731 07DB 0084 movwf 4
+ 732 07DC 120A 158A 24FB 120A 118A fcall init_ram0
+ 733
+ 734 ; Initialize objects allocated to BANK0
+ 735 07E1 306F movlw low (__pdataBANK0+13)
+ 736 07E2 00FD movwf btemp+-1
+ 737 07E3 300C movlw high __pidataBANK0
+ 738 07E4 00FE movwf btemp
+ 739 07E5 30EA movlw low __pidataBANK0
+ 740 07E6 00FF movwf btemp+1
+ 741 07E7 3062 movlw low __pdataBANK0
+ 742 07E8 0084 movwf 4
+ 743 07E9 120A 158A 24FB 120A 118A fcall init_ram0
+ 744
+ 745 ; Clear objects allocated to BANK1
+ 746 07EE 30A0 movlw low __pbssBANK1
+ 747 07EF 0084 movwf 4
+ 748 07F0 30CE movlw low (__pbssBANK1+46)
+ 749 07F1 120A 158A 24CE 120A 118A fcall clear_ram0
+ 750
+ 751 ; Clear objects allocated to BANK0
+ 752 07F6 3020 movlw low __pbssBANK0
+ 753 07F7 0084 movwf 4
+ 754 07F8 304D movlw low (__pbssBANK0+45)
+ 755 07F9 120A 158A 24CE fcall clear_ram0
+ 756 07FC end_of_initialization:
+ 757 ;End of C runtime variable initialization code
+ 758
+ 759 07FC __end_of__initialization:
+ 760 07FC 0183 clrf 3
+ 761 07FD 120A 118A 2A4C ljmp _main ;jump to C main() function
+ 762
+ 763 psect bssBANK0
+ 764 0020 __pbssBANK0:
+ 765 0020 _temperature_msb:
+ 766 0020 ds 2
+ 767 0022 _temperature_lsb:
+ 768 0022 ds 2
+ 769 0024 _control_reg:
+ 770 0024 ds 2
+ 771 0026 _alarm2_status:
+ 772 0026 ds 2
+ 773 0028 _alarm1_status:
+ 774 0028 ds 2
+ 775 002A _alarm2_hour:
+ 776 002A ds 2
+ 777 002C _alarm2_min:
+ 778 002C ds 2
+ 779 002E _alarm1_hour:
+ 780 002E ds 2
+ 781 0030 _alarm1_min:
+ 782 0030 ds 2
+ 783 0032 _alarm1_sec:
+ 784 0032 ds 2
+ 785 0034 _alarm2_hour_1:
+ 786 0034 ds 1
+ 787 0035 _alarm2_hour_0:
+ 788 0035 ds 1
+ 789 0036 _alarm2_min_1:
+ 790 0036 ds 1
+ 791 0037 _alarm2_min_0:
+ 792 0037 ds 1
+ 793 0038 _alarm1_hour_1:
+ 794 0038 ds 1
+ 795 0039 _alarm1_hour_0:
+ 796 0039 ds 1
+ 797 003A _alarm1_min_1:
+ 798 003A ds 1
+ 799 003B _alarm1_min_0:
+ 800 003B ds 1
+ 801 003C _alarm1_sec_1:
+ 802 003C ds 1
+ 803 003D _alarm1_sec_0:
+ 804 003D ds 1
+ 805 003E _temp_2:
+ 806 003E ds 1
+ 807 003F _temp_1:
+ 808 003F ds 1
+ 809 0040 _temp_0:
+ 810 0040 ds 1
+ 811 0041 _year_1:
+ 812 0041 ds 1
+ 813 0042 _year_0:
+ 814 0042 ds 1
+ 815 0043 _month_1:
+ 816 0043 ds 1
+ 817 0044 _month_0:
+ 818 0044 ds 1
+ 819 0045 _day_1:
+ 820 0045 ds 1
+ 821 0046 _day_0:
+ 822 0046 ds 1
+ 823 0047 _hour_1:
+ 824 0047 ds 1
+ 825 0048 _hour_0:
+ 826 0048 ds 1
+ 827 0049 _min_1:
+ 828 0049 ds 1
+ 829 004A _min_0:
+ 830 004A ds 1
+ 831 004B _sec_1:
+ 832 004B ds 1
+ 833 004C _sec_0:
+ 834 004C ds 1
+ 835
+ 836 psect dataBANK0
+ 837 0062 __pdataBANK0:
+ 838 0062 _year:
+ 839 0062 ds 2
+ 840 0064 _month:
+ 841 0064 ds 2
+ 842 0066 _date:
+ 843 0066 ds 2
+ 844 0068 _hour:
+ 845 0068 ds 2
+ 846 006A _min:
+ 847 006A ds 2
+ 848 006C _sec:
+ 849 006C ds 2
+ 850 006E _temp_sign:
+ 851 006E ds 1
+ 852
+ 853 psect bssBANK1
+ 854 00A0 __pbssBANK1:
+ 855 00A0 _buf:
+ 856 00A0 ds 40
+ 857 00C8 _sec_chg:
+ 858 00C8 ds 2
+ 859 00CA _weekday:
+ 860 00CA ds 2
+ 861 00CC _status_reg:
+ 862 00CC ds 2
+ 863
+ 864 psect dataBANK1
+ 865 00CE __pdataBANK1:
+ 866 00CE _century:
+ 867 00CE ds 2
+ 868 00D0 _dayofweek:
+ 869 00D0 ds 2
+ 870
+ 871 psect inittext
+ 872 0CF7 init_fetch0:
+ 873 ; Called with low address in FSR and high address in W
+ 874
+ 875 0CF7 087E movf 126,w
+ 876 0CF8 008A movwf 10
+ 877 0CF9 087F movf 127,w
+ 878 0CFA 0082 movwf 2
+ 879 0CFB init_ram0:
+ 880 ;Called with:
+ 881 ; high address of idata address in btemp
+ 882 ; low address of idata address in btemp+1
+ 883 ; low address of data in FSR
+ 884 ; high address + 1 of data in btemp-1
+ 885
+ 886 0CFB 24F7 120A 158A fcall init_fetch0
+ 887 0CFE 0080 movwf 0
+ 888 0CFF 0A84 incf 4,f
+ 889 0D00 0804 movf 4,w
+ 890 0D01 067D xorwf 125,w
+ 891 0D02 1903 btfsc 3,2
+ 892 0D03 3400 retlw 0
+ 893 0D04 0AFF incf 127,f
+ 894 0D05 1903 btfsc 3,2
+ 895 0D06 0AFE incf 126,f
+ 896 0D07 2CFB goto init_ram0
+ 897
+ 898 psect clrtext
+ 899 0CCE clear_ram0:
+ 900 ; Called with FSR containing the base address, and
+ 901 ; W with the last address+1
+ 902
+ 903 0CCE 0064 clrwdt ;clear the watchdog before getting into this loop
+ 904 0CCF clrloop0:
+ 905 0CCF 0180 clrf 0 ;clear RAM location pointed to by FSR
+ 906 0CD0 0A84 incf 4,f ;increment pointer
+ 907 0CD1 0604 xorwf 4,w ;XOR with final address
+ 908 0CD2 1903 btfsc 3,2 ;have we reached the end yet?
+ 909 0CD3 3400 retlw 0 ;all done for this memory range, return
+ 910 0CD4 0604 xorwf 4,w ;XOR again to restore value
+ 911 0CD5 2CCF goto clrloop0 ;do the next byte
+ 912
+ 913 psect cstackCOMMON
+ 914 0070 __pcstackCOMMON:
+ 915 0070 ?_Lcd_Init:
+ 916 0070 ?_display_Intro:
+ 917 ; 1 bytes @ 0x0
+ 918
+ 919 0070 ?_display_Lcd_Layout:
+ 920 ; 1 bytes @ 0x0
+ 921
+ 922 0070 ?_Update_Current_Date_Time:
+ 923 ; 1 bytes @ 0x0
+ 924
+ 925 0070 ?_Read_Alarms_Temp:
+ 926 ; 1 bytes @ 0x0
+ 927
+ 928 0070 ?_Get_Alarm_Status:
+ 929 ; 1 bytes @ 0x0
+ 930
+ 931 0070 ??_Get_Alarm_Status:
+ 932 ; 1 bytes @ 0x0
+ 933
+ 934 0070 ?_format_DateTimeChars:
+ 935 ; 1 bytes @ 0x0
+ 936
+ 937 0070 ?_format_Temperature:
+ 938 ; 1 bytes @ 0x0
+ 939
+ 940 0070 ?_getWeekDay:
+ 941 ; 1 bytes @ 0x0
+ 942
+ 943 0070 ?_update_Display:
+ 944 ; 1 bytes @ 0x0
+ 945
+ 946 0070 ?_Lcd_Clear:
+ 947 ; 1 bytes @ 0x0
+ 948
+ 949 0070 ?_Lcd_Write_Char:
+ 950 ; 1 bytes @ 0x0
+ 951
+ 952 0070 ?_alarm:
+ 953 ; 1 bytes @ 0x0
+ 954
+ 955 0070 ?_Lcd_Port:
+ 956 ; 1 bytes @ 0x0
+ 957
+ 958 0070 ??_Lcd_Port:
+ 959 ; 1 bytes @ 0x0
+ 960
+ 961 0070 ?_Lcd_Cmd:
+ 962 ; 1 bytes @ 0x0
+ 963
+ 964 0070 ?_I2C_Master_Wait:
+ 965 ; 1 bytes @ 0x0
+ 966
+ 967 0070 ??_I2C_Master_Wait:
+ 968 ; 1 bytes @ 0x0
+ 969
+ 970 0070 ?_I2C_Master_Start:
+ 971 ; 1 bytes @ 0x0
+ 972
+ 973 0070 ??_I2C_Master_Start:
+ 974 ; 1 bytes @ 0x0
+ 975
+ 976 0070 ?_I2C_Master_Repeated_Start:
+ 977 ; 1 bytes @ 0x0
+ 978
+ 979 0070 ??_I2C_Master_Repeated_Start:
+ 980 ; 1 bytes @ 0x0
+ 981
+ 982 0070 ?_I2C_Master_Stop:
+ 983 ; 1 bytes @ 0x0
+ 984
+ 985 0070 ??_I2C_Master_Stop:
+ 986 ; 1 bytes @ 0x0
+ 987
+ 988 0070 ?_I2C_Master_Write:
+ 989 ; 1 bytes @ 0x0
+ 990
+ 991 0070 ?_main:
+ 992 ; 1 bytes @ 0x0
+ 993
+ 994 0070 ?_I2C_Master_Read:
+ 995 ; 2 bytes @ 0x0
+ 996
+ 997 0070 ?___wmul:
+ 998 ; 2 bytes @ 0x0
+ 999
+ 1000 0070 ?___awdiv:
+ 1001 ; 2 bytes @ 0x0
+ 1002
+ 1003 0070 ?___awmod:
+ 1004 ; 2 bytes @ 0x0
+ 1005
+ 1006 0070 ?___lwdiv:
+ 1007 ; 2 bytes @ 0x0
+ 1008
+ 1009 0070 ?___lwmod:
+ 1010 ; 2 bytes @ 0x0
+ 1011
+ 1012 0070 ?___lmul:
+ 1013 ; 2 bytes @ 0x0
+ 1014
+ 1015 0070 Lcd_Port@a:
+ 1016 ; 4 bytes @ 0x0
+ 1017
+ 1018 0070 getWeekDay@dayofweek:
+ 1019 ; 1 bytes @ 0x0
+ 1020
+ 1021 0070 I2C_Master_Write@data:
+ 1022 ; 2 bytes @ 0x0
+ 1023
+ 1024 0070 I2C_Master_Read@ack:
+ 1025 ; 2 bytes @ 0x0
+ 1026
+ 1027 0070 alarm@numberOfBeeps:
+ 1028 ; 2 bytes @ 0x0
+ 1029
+ 1030 0070 ___wmul@multiplier:
+ 1031 ; 2 bytes @ 0x0
+ 1032
+ 1033 0070 ___awdiv@divisor:
+ 1034 ; 2 bytes @ 0x0
+ 1035
+ 1036 0070 ___awmod@divisor:
+ 1037 ; 2 bytes @ 0x0
+ 1038
+ 1039 0070 ___lwdiv@divisor:
+ 1040 ; 2 bytes @ 0x0
+ 1041
+ 1042 0070 ___lwmod@divisor:
+ 1043 ; 2 bytes @ 0x0
+ 1044
+ 1045 0070 ___lmul@multiplier:
+ 1046 ; 2 bytes @ 0x0
+ 1047
+ 1048
+ 1049 ; 4 bytes @ 0x0
+ 1050 0070 ds 1
+ 1051 0071 ??_Lcd_Write_Char:
+ 1052 0071 ??_Lcd_Cmd:
+ 1053 ; 1 bytes @ 0x1
+ 1054
+ 1055
+ 1056 ; 1 bytes @ 0x1
+ 1057 0071 ds 1
+ 1058 0072 ??_getWeekDay:
+ 1059 0072 ??_alarm:
+ 1060 ; 1 bytes @ 0x2
+ 1061
+ 1062 0072 ??_I2C_Master_Write:
+ 1063 ; 1 bytes @ 0x2
+ 1064
+ 1065 0072 ??_I2C_Master_Read:
+ 1066 ; 1 bytes @ 0x2
+ 1067
+ 1068 0072 Lcd_Write_Char@temp:
+ 1069 ; 1 bytes @ 0x2
+ 1070
+ 1071 0072 ___wmul@multiplicand:
+ 1072 ; 1 bytes @ 0x2
+ 1073
+ 1074 0072 ___awdiv@dividend:
+ 1075 ; 2 bytes @ 0x2
+ 1076
+ 1077 0072 ___awmod@dividend:
+ 1078 ; 2 bytes @ 0x2
+ 1079
+ 1080 0072 ___lwdiv@dividend:
+ 1081 ; 2 bytes @ 0x2
+ 1082
+ 1083 0072 ___lwmod@dividend:
+ 1084 ; 2 bytes @ 0x2
+ 1085
+ 1086
+ 1087 ; 2 bytes @ 0x2
+ 1088 0072 ds 1
+ 1089 0073 Lcd_Cmd@a:
+ 1090 0073 Lcd_Write_Char@y:
+ 1091 ; 1 bytes @ 0x3
+ 1092
+ 1093
+ 1094 ; 1 bytes @ 0x3
+ 1095 0073 ds 1
+ 1096 0074 ??_Lcd_Init:
+ 1097 0074 ??_Lcd_Clear:
+ 1098 ; 1 bytes @ 0x4
+ 1099
+ 1100 0074 ?_Lcd_Set_Cursor:
+ 1101 ; 1 bytes @ 0x4
+ 1102
+ 1103 0074 ??___wmul:
+ 1104 ; 1 bytes @ 0x4
+ 1105
+ 1106 0074 ??___awdiv:
+ 1107 ; 1 bytes @ 0x4
+ 1108
+ 1109 0074 ??___awmod:
+ 1110 ; 1 bytes @ 0x4
+ 1111
+ 1112 0074 ??___lwdiv:
+ 1113 ; 1 bytes @ 0x4
+ 1114
+ 1115 0074 ??___lwmod:
+ 1116 ; 1 bytes @ 0x4
+ 1117
+ 1118 0074 Lcd_Set_Cursor@b:
+ 1119 ; 1 bytes @ 0x4
+ 1120
+ 1121 0074 Lcd_Write_Char@a:
+ 1122 ; 1 bytes @ 0x4
+ 1123
+ 1124 0074 I2C_Master_Read@incoming:
+ 1125 ; 1 bytes @ 0x4
+ 1126
+ 1127 0074 ___wmul@product:
+ 1128 ; 2 bytes @ 0x4
+ 1129
+ 1130 0074 ___lmul@multiplicand:
+ 1131 ; 2 bytes @ 0x4
+ 1132
+ 1133
+ 1134 ; 4 bytes @ 0x4
+ 1135 0074 ds 1
+ 1136 0075 ??_Lcd_Set_Cursor:
+ 1137 0075 ?_Lcd_Write_String:
+ 1138 ; 1 bytes @ 0x5
+ 1139
+ 1140 0075 ___awdiv@counter:
+ 1141 ; 1 bytes @ 0x5
+ 1142
+ 1143 0075 ___awmod@counter:
+ 1144 ; 1 bytes @ 0x5
+ 1145
+ 1146 0075 ___lwmod@counter:
+ 1147 ; 1 bytes @ 0x5
+ 1148
+ 1149 0075 Lcd_Write_String@a:
+ 1150 ; 1 bytes @ 0x5
+ 1151
+ 1152 0075 alarm@i:
+ 1153 ; 2 bytes @ 0x5
+ 1154
+ 1155 0075 ___lwdiv@quotient:
+ 1156 ; 2 bytes @ 0x5
+ 1157
+ 1158
+ 1159 ; 2 bytes @ 0x5
+ 1160 0075 ds 1
+ 1161 0076 ?_BCD_2_DEC:
+ 1162 0076 ___awdiv@sign:
+ 1163 ; 2 bytes @ 0x6
+ 1164
+ 1165 0076 ___awmod@sign:
+ 1166 ; 1 bytes @ 0x6
+ 1167
+ 1168 0076 BCD_2_DEC@to_convert:
+ 1169 ; 1 bytes @ 0x6
+ 1170
+ 1171
+ 1172 ; 2 bytes @ 0x6
+ 1173 0076 ds 1
+ 1174 0077 ??_Lcd_Write_String:
+ 1175 0077 Lcd_Set_Cursor@a:
+ 1176 ; 1 bytes @ 0x7
+ 1177
+ 1178 0077 ___lwdiv@counter:
+ 1179 ; 1 bytes @ 0x7
+ 1180
+ 1181 0077 Lcd_Write_String@i:
+ 1182 ; 1 bytes @ 0x7
+ 1183
+ 1184 0077 alarm@j:
+ 1185 ; 2 bytes @ 0x7
+ 1186
+ 1187 0077 ___awdiv@quotient:
+ 1188 ; 2 bytes @ 0x7
+ 1189
+ 1190
+ 1191 ; 2 bytes @ 0x7
+ 1192 0077 ds 1
+ 1193 0078 ??_format_DateTimeChars:
+ 1194 0078 ??_BCD_2_DEC:
+ 1195 ; 1 bytes @ 0x8
+ 1196
+ 1197 0078 ??___lmul:
+ 1198 ; 1 bytes @ 0x8
+ 1199
+ 1200 0078 Lcd_Set_Cursor@z:
+ 1201 ; 1 bytes @ 0x8
+ 1202
+ 1203
+ 1204 ; 1 bytes @ 0x8
+ 1205 0078 ds 1
+ 1206 0079 ??_format_Temperature:
+ 1207 0079 Lcd_Set_Cursor@y:
+ 1208 ; 1 bytes @ 0x9
+ 1209
+ 1210 0079 ___lmul@product:
+ 1211 ; 1 bytes @ 0x9
+ 1212
+ 1213
+ 1214 ; 4 bytes @ 0x9
+ 1215 0079 ds 1
+ 1216 007A ??_Update_Current_Date_Time:
+ 1217 007A ??_Read_Alarms_Temp:
+ 1218 ; 1 bytes @ 0xA
+ 1219
+ 1220 007A Lcd_Set_Cursor@temp:
+ 1221 ; 1 bytes @ 0xA
+ 1222
+ 1223
+ 1224 ; 1 bytes @ 0xA
+ 1225 007A ds 1
+ 1226 007B ??_display_Intro:
+ 1227 007B ??_display_Lcd_Layout:
+ 1228 ; 1 bytes @ 0xB
+ 1229
+ 1230 007B ??_update_Display:
+ 1231 ; 1 bytes @ 0xB
+ 1232
+ 1233
+ 1234 ; 1 bytes @ 0xB
+ 1235 007B ds 2
+ 1236 007D ??___lldiv:
+ 1237
+ 1238 ; 1 bytes @ 0xD
+ 1239 007D ds 1
+ 1240 007E ??_main:
+ 1241
+ 1242 psect cstackBANK0
+ 1243 004D __pcstackBANK0:
+ 1244 ; 1 bytes @ 0xE
+ 1245
+ 1246 004D ?___lldiv:
+ 1247 004D ___lldiv@divisor:
+ 1248 ; 4 bytes @ 0x0
+ 1249
+ 1250
+ 1251 ; 4 bytes @ 0x0
+ 1252 004D ds 4
+ 1253 0051 ___lldiv@dividend:
+ 1254
+ 1255 ; 4 bytes @ 0x4
+ 1256 0051 ds 4
+ 1257 0055 ___lldiv@quotient:
+ 1258
+ 1259 ; 4 bytes @ 0x8
+ 1260 0055 ds 4
+ 1261 0059 ___lldiv@counter:
+ 1262
+ 1263 ; 1 bytes @ 0xC
+ 1264 0059 ds 1
+ 1265 005A ?_I2C_Master_Init:
+ 1266 005A I2C_Master_Init@freq_K:
+ 1267 ; 1 bytes @ 0xD
+ 1268
+ 1269
+ 1270 ; 4 bytes @ 0xD
+ 1271 005A ds 4
+ 1272 005E ??_I2C_Master_Init:
+ 1273
+ 1274 ; 1 bytes @ 0x11
+ 1275 005E ds 4
+ 1276
+ 1277 psect maintext
+ 1278 024C __pmaintext:
+ 1279 ;;
+ 1280 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0
+ 1281 ;;
+ 1282 ;; *************** function _main *****************
+ 1283 ;; Defined at:
+ 1284 ;; line 17 in file "main.c"
+ 1285 ;; Parameters: Size Location Type
+ 1286 ;; None
+ 1287 ;; Auto vars: Size Location Type
+ 1288 ;; None
+ 1289 ;; Return value: Size Location Type
+ 1290 ;; 2 142[None ] int
+ 1291 ;; Registers used:
+ 1292 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ 1293 ;; Tracked objects:
+ 1294 ;; On entry : B00/0
+ 1295 ;; On exit : 0/0
+ 1296 ;; Unchanged: 0/0
+ 1297 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 1298 ;; Params: 0 0 0 0 0
+ 1299 ;; Locals: 0 0 0 0 0
+ 1300 ;; Temps: 0 0 0 0 0
+ 1301 ;; Totals: 0 0 0 0 0
+ 1302 ;;Total ram usage: 0 bytes
+ 1303 ;; Hardware stack levels required when called: 4
+ 1304 ;; This function calls:
+ 1305 ;; _Get_Alarm_Status
+ 1306 ;; _I2C_Master_Init
+ 1307 ;; _Lcd_Init
+ 1308 ;; _Read_Alarms_Temp
+ 1309 ;; _Update_Current_Date_Time
+ 1310 ;; _display_Intro
+ 1311 ;; _display_Lcd_Layout
+ 1312 ;; _format_DateTimeChars
+ 1313 ;; _format_Temperature
+ 1314 ;; _getWeekDay
+ 1315 ;; _update_Display
+ 1316 ;; This function is called by:
+ 1317 ;; Startup code after reset
+ 1318 ;; This function uses a non-reentrant model
+ 1319 ;;
+ 1320
+ 1321
+ 1322 ;psect for function _main
+ 1323 024C _main:
+ 1324
+ 1325 ;main.c: 18: TRISC = 0x00;
+ 1326
+ 1327 ;incstack = 0
+ 1328 ; Regs used in _main: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
+ 1329 024C 1683 bsf 3,5 ;RP0=1, select bank1
+ 1330 024D 1303 bcf 3,6 ;RP1=0, select bank1
+ 1331 024E 0187 clrf 7 ;volatile
+ 1332
+ 1333 ;main.c: 19: PORTC = 0x00;
+ 1334 024F 1283 bcf 3,5 ;RP0=0, select bank0
+ 1335 0250 1303 bcf 3,6 ;RP1=0, select bank0
+ 1336 0251 0187 clrf 7 ;volatile
+ 1337
+ 1338 ;main.c: 21: TRISD = 0x00;
+ 1339 0252 1683 bsf 3,5 ;RP0=1, select bank1
+ 1340 0253 1303 bcf 3,6 ;RP1=0, select bank1
+ 1341 0254 0188 clrf 8 ;volatile
+ 1342
+ 1343 ;main.c: 22: PORTD = 0x00;
+ 1344 0255 1283 bcf 3,5 ;RP0=0, select bank0
+ 1345 0256 1303 bcf 3,6 ;RP1=0, select bank0
+ 1346 0257 0188 clrf 8 ;volatile
+ 1347
+ 1348 ;main.c: 33: I2C_Master_Init(100000);
+ 1349 0258 3000 movlw 0
+ 1350 0259 00DD movwf I2C_Master_Init@freq_K+3
+ 1351 025A 3001 movlw 1
+ 1352 025B 00DC movwf I2C_Master_Init@freq_K+2
+ 1353 025C 3086 movlw 134
+ 1354 025D 00DB movwf I2C_Master_Init@freq_K+1
+ 1355 025E 30A0 movlw 160
+ 1356 025F 00DA movwf I2C_Master_Init@freq_K
+ 1357 0260 120A 118A 20E6 120A 118A fcall _I2C_Master_Init
+ 1358
+ 1359 ;main.c: 41: Lcd_Init();
+ 1360 0265 120A 118A 2190 120A 118A fcall _Lcd_Init
+ 1361
+ 1362 ;main.c: 49: display_Intro();
+ 1363 026A 120A 158A 25FE 120A 118A fcall _display_Intro
+ 1364
+ 1365 ;main.c: 50: display_Lcd_Layout();
+ 1366 026F 120A 158A 26E7 120A 118A fcall _display_Lcd_Layout
+ 1367 0274 l2092:
+ 1368
+ 1369 ;main.c: 72: Update_Current_Date_Time();
+ 1370 0274 120A 118A 2339 120A 118A fcall _Update_Current_Date_Time
+ 1371
+ 1372 ;main.c: 76: Read_Alarms_Temp();
+ 1373 0279 120A 118A 241C 120A 118A fcall _Read_Alarms_Temp
+ 1374
+ 1375 ;main.c: 79: Get_Alarm_Status();
+ 1376 027E 120A 158A 2508 120A 118A fcall _Get_Alarm_Status
+ 1377
+ 1378 ;main.c: 83: format_DateTimeChars();
+ 1379 0283 120A 118A 261A 120A 118A fcall _format_DateTimeChars
+ 1380
+ 1381 ;main.c: 87: format_Temperature();
+ 1382 0288 120A 118A 22B8 120A 118A fcall _format_Temperature
+ 1383 028D 3007 movlw 7
+ 1384 028E 00F0 movwf getWeekDay@dayofweek
+ 1385 028F 3000 movlw 0
+ 1386 0290 00F1 movwf getWeekDay@dayofweek+1
+ 1387 0291 120A 118A 2097 120A 118A fcall _getWeekDay
+ 1388
+ 1389 ;main.c: 94: if (sec_chg != sec) {
+ 1390 0296 1283 bcf 3,5 ;RP0=0, select bank0
+ 1391 0297 1303 bcf 3,6 ;RP1=0, select bank0
+ 1392 0298 086D movf _sec+1,w
+ 1393 0299 1683 bsf 3,5 ;RP0=1, select bank1
+ 1394 029A 1303 bcf 3,6 ;RP1=0, select bank1
+ 1395 029B 0649 xorwf (_sec_chg+1)^(0+128),w
+ 1396 029C 1D03 skipz
+ 1397 029D 2AA4 goto u1565
+ 1398 029E 1283 bcf 3,5 ;RP0=0, select bank0
+ 1399 029F 1303 bcf 3,6 ;RP1=0, select bank0
+ 1400 02A0 086C movf _sec,w
+ 1401 02A1 1683 bsf 3,5 ;RP0=1, select bank1
+ 1402 02A2 1303 bcf 3,6 ;RP1=0, select bank1
+ 1403 02A3 0648 xorwf _sec_chg^(0+128),w
+ 1404 02A4 u1565:
+ 1405 02A4 1903 skipnz
+ 1406 02A5 2A74 goto l2092
+ 1407
+ 1408 ;main.c: 96: update_Display();
+ 1409 02A6 120A 118A 2513 120A 118A fcall _update_Display
+ 1410
+ 1411 ;main.c: 99: sec_chg = sec;
+ 1412 02AB 1283 bcf 3,5 ;RP0=0, select bank0
+ 1413 02AC 1303 bcf 3,6 ;RP1=0, select bank0
+ 1414 02AD 086D movf _sec+1,w
+ 1415 02AE 1683 bsf 3,5 ;RP0=1, select bank1
+ 1416 02AF 1303 bcf 3,6 ;RP1=0, select bank1
+ 1417 02B0 00C9 movwf (_sec_chg+1)^(0+128)
+ 1418 02B1 1283 bcf 3,5 ;RP0=0, select bank0
+ 1419 02B2 1303 bcf 3,6 ;RP1=0, select bank0
+ 1420 02B3 086C movf _sec,w
+ 1421 02B4 1683 bsf 3,5 ;RP0=1, select bank1
+ 1422 02B5 1303 bcf 3,6 ;RP1=0, select bank1
+ 1423 02B6 00C8 movwf _sec_chg^(0+128)
+ 1424 02B7 2A74 goto l2092
+ 1425 02B8 __end_of_main:
+ 1426
+ 1427 psect text1
+ 1428 0513 __ptext1:
+ 1429 ;; *************** function _update_Display *****************
+ 1430 ;; Defined at:
+ 1431 ;; line 248 in file "main.c"
+ 1432 ;; Parameters: Size Location Type
+ 1433 ;; None
+ 1434 ;; Auto vars: Size Location Type
+ 1435 ;; None
+ 1436 ;; Return value: Size Location Type
+ 1437 ;; 1 wreg void
+ 1438 ;; Registers used:
+ 1439 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ 1440 ;; Tracked objects:
+ 1441 ;; On entry : 0/0
+ 1442 ;; On exit : 0/0
+ 1443 ;; Unchanged: 0/0
+ 1444 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 1445 ;; Params: 0 0 0 0 0
+ 1446 ;; Locals: 0 0 0 0 0
+ 1447 ;; Temps: 1 0 0 0 0
+ 1448 ;; Totals: 1 0 0 0 0
+ 1449 ;;Total ram usage: 1 bytes
+ 1450 ;; Hardware stack levels used: 1
+ 1451 ;; Hardware stack levels required when called: 3
+ 1452 ;; This function calls:
+ 1453 ;; _Lcd_Set_Cursor
+ 1454 ;; _Lcd_Write_Char
+ 1455 ;; _Lcd_Write_String
+ 1456 ;; _alarm
+ 1457 ;; This function is called by:
+ 1458 ;; _main
+ 1459 ;; This function uses a non-reentrant model
+ 1460 ;;
+ 1461
+ 1462
+ 1463 ;psect for function _update_Display
+ 1464 0513 _update_Display:
+ 1465
+ 1466 ;main.c: 250: Lcd_Set_Cursor(1, 1);
+ 1467
+ 1468 ;incstack = 0
+ 1469 ; Regs used in _update_Display: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
+ 1470 0513 01F4 clrf Lcd_Set_Cursor@b
+ 1471 0514 0AF4 incf Lcd_Set_Cursor@b,f
+ 1472 0515 3001 movlw 1
+ 1473 0516 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1474
+ 1475 ;main.c: 251: Lcd_Write_Char(hour_1);
+ 1476 051B 1283 bcf 3,5 ;RP0=0, select bank0
+ 1477 051C 1303 bcf 3,6 ;RP1=0, select bank0
+ 1478 051D 0847 movf _hour_1,w
+ 1479 051E 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1480
+ 1481 ;main.c: 252: Lcd_Write_Char(hour_0);
+ 1482 0523 1283 bcf 3,5 ;RP0=0, select bank0
+ 1483 0524 1303 bcf 3,6 ;RP1=0, select bank0
+ 1484 0525 0848 movf _hour_0,w
+ 1485 0526 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1486
+ 1487 ;main.c: 255: Lcd_Set_Cursor(1, 4);
+ 1488 052B 3004 movlw 4
+ 1489 052C 00FB movwf ??_update_Display
+ 1490 052D 087B movf ??_update_Display,w
+ 1491 052E 00F4 movwf Lcd_Set_Cursor@b
+ 1492 052F 3001 movlw 1
+ 1493 0530 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1494
+ 1495 ;main.c: 256: Lcd_Write_Char(min_1);
+ 1496 0535 1283 bcf 3,5 ;RP0=0, select bank0
+ 1497 0536 1303 bcf 3,6 ;RP1=0, select bank0
+ 1498 0537 0849 movf _min_1,w
+ 1499 0538 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1500
+ 1501 ;main.c: 257: Lcd_Write_Char(min_0);
+ 1502 053D 1283 bcf 3,5 ;RP0=0, select bank0
+ 1503 053E 1303 bcf 3,6 ;RP1=0, select bank0
+ 1504 053F 084A movf _min_0,w
+ 1505 0540 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1506
+ 1507 ;main.c: 260: Lcd_Set_Cursor(1, 7);
+ 1508 0545 3007 movlw 7
+ 1509 0546 00FB movwf ??_update_Display
+ 1510 0547 087B movf ??_update_Display,w
+ 1511 0548 00F4 movwf Lcd_Set_Cursor@b
+ 1512 0549 3001 movlw 1
+ 1513 054A 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1514
+ 1515 ;main.c: 261: Lcd_Write_Char(sec_1);
+ 1516 054F 1283 bcf 3,5 ;RP0=0, select bank0
+ 1517 0550 1303 bcf 3,6 ;RP1=0, select bank0
+ 1518 0551 084B movf _sec_1,w
+ 1519 0552 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1520
+ 1521 ;main.c: 262: Lcd_Write_Char(sec_0);
+ 1522 0557 1283 bcf 3,5 ;RP0=0, select bank0
+ 1523 0558 1303 bcf 3,6 ;RP1=0, select bank0
+ 1524 0559 084C movf _sec_0,w
+ 1525 055A 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1526
+ 1527 ;main.c: 265: Lcd_Set_Cursor(2, 6);
+ 1528 055F 3006 movlw 6
+ 1529 0560 00FB movwf ??_update_Display
+ 1530 0561 087B movf ??_update_Display,w
+ 1531 0562 00F4 movwf Lcd_Set_Cursor@b
+ 1532 0563 3002 movlw 2
+ 1533 0564 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1534
+ 1535 ;main.c: 266: Lcd_Write_Char(day_1);
+ 1536 0569 1283 bcf 3,5 ;RP0=0, select bank0
+ 1537 056A 1303 bcf 3,6 ;RP1=0, select bank0
+ 1538 056B 0845 movf _day_1,w
+ 1539 056C 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1540
+ 1541 ;main.c: 267: Lcd_Write_Char(day_0);
+ 1542 0571 1283 bcf 3,5 ;RP0=0, select bank0
+ 1543 0572 1303 bcf 3,6 ;RP1=0, select bank0
+ 1544 0573 0846 movf _day_0,w
+ 1545 0574 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1546
+ 1547 ;main.c: 270: Lcd_Set_Cursor(2, 9);
+ 1548 0579 3009 movlw 9
+ 1549 057A 00FB movwf ??_update_Display
+ 1550 057B 087B movf ??_update_Display,w
+ 1551 057C 00F4 movwf Lcd_Set_Cursor@b
+ 1552 057D 3002 movlw 2
+ 1553 057E 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1554
+ 1555 ;main.c: 271: Lcd_Write_Char(month_1);
+ 1556 0583 1283 bcf 3,5 ;RP0=0, select bank0
+ 1557 0584 1303 bcf 3,6 ;RP1=0, select bank0
+ 1558 0585 0843 movf _month_1,w
+ 1559 0586 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1560
+ 1561 ;main.c: 272: Lcd_Write_Char(month_0);
+ 1562 058B 1283 bcf 3,5 ;RP0=0, select bank0
+ 1563 058C 1303 bcf 3,6 ;RP1=0, select bank0
+ 1564 058D 0844 movf _month_0,w
+ 1565 058E 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1566
+ 1567 ;main.c: 275: Lcd_Set_Cursor(2, 12);
+ 1568 0593 300C movlw 12
+ 1569 0594 00FB movwf ??_update_Display
+ 1570 0595 087B movf ??_update_Display,w
+ 1571 0596 00F4 movwf Lcd_Set_Cursor@b
+ 1572 0597 3002 movlw 2
+ 1573 0598 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1574
+ 1575 ;main.c: 276: Lcd_Write_Char(year_1);
+ 1576 059D 1283 bcf 3,5 ;RP0=0, select bank0
+ 1577 059E 1303 bcf 3,6 ;RP1=0, select bank0
+ 1578 059F 0841 movf _year_1,w
+ 1579 05A0 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1580
+ 1581 ;main.c: 277: Lcd_Write_Char(year_0);
+ 1582 05A5 1283 bcf 3,5 ;RP0=0, select bank0
+ 1583 05A6 1303 bcf 3,6 ;RP1=0, select bank0
+ 1584 05A7 0842 movf _year_0,w
+ 1585 05A8 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1586
+ 1587 ;main.c: 280: Lcd_Set_Cursor(2, 1);
+ 1588 05AD 01F4 clrf Lcd_Set_Cursor@b
+ 1589 05AE 0AF4 incf Lcd_Set_Cursor@b,f
+ 1590 05AF 3002 movlw 2
+ 1591 05B0 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1592
+ 1593 ;main.c: 281: Lcd_Write_String(weekday);
+ 1594 05B5 1683 bsf 3,5 ;RP0=1, select bank1
+ 1595 05B6 1303 bcf 3,6 ;RP1=0, select bank1
+ 1596 05B7 084A movf _weekday^(0+128),w
+ 1597 05B8 00F5 movwf Lcd_Write_String@a
+ 1598 05B9 084B movf (_weekday+1)^(0+128),w
+ 1599 05BA 00F6 movwf Lcd_Write_String@a+1
+ 1600 05BB 120A 158A 259F 120A 118A fcall _Lcd_Write_String
+ 1601
+ 1602 ;main.c: 284: Lcd_Set_Cursor(1, 10);
+ 1603 05C0 300A movlw 10
+ 1604 05C1 00FB movwf ??_update_Display
+ 1605 05C2 087B movf ??_update_Display,w
+ 1606 05C3 00F4 movwf Lcd_Set_Cursor@b
+ 1607 05C4 3001 movlw 1
+ 1608 05C5 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1609
+ 1610 ;main.c: 285: Lcd_Write_Char(temp_sign);
+ 1611 05CA 1283 bcf 3,5 ;RP0=0, select bank0
+ 1612 05CB 1303 bcf 3,6 ;RP1=0, select bank0
+ 1613 05CC 086E movf _temp_sign,w
+ 1614 05CD 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1615
+ 1616 ;main.c: 286: Lcd_Write_Char(temp_2);
+ 1617 05D2 1283 bcf 3,5 ;RP0=0, select bank0
+ 1618 05D3 1303 bcf 3,6 ;RP1=0, select bank0
+ 1619 05D4 083E movf _temp_2,w
+ 1620 05D5 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1621
+ 1622 ;main.c: 287: Lcd_Write_Char(temp_1);
+ 1623 05DA 1283 bcf 3,5 ;RP0=0, select bank0
+ 1624 05DB 1303 bcf 3,6 ;RP1=0, select bank0
+ 1625 05DC 083F movf _temp_1,w
+ 1626 05DD 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1627
+ 1628 ;main.c: 288: Lcd_Set_Cursor(1, 14);
+ 1629 05E2 300E movlw 14
+ 1630 05E3 00FB movwf ??_update_Display
+ 1631 05E4 087B movf ??_update_Display,w
+ 1632 05E5 00F4 movwf Lcd_Set_Cursor@b
+ 1633 05E6 3001 movlw 1
+ 1634 05E7 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor
+ 1635
+ 1636 ;main.c: 289: Lcd_Write_Char(temp_0);
+ 1637 05EC 1283 bcf 3,5 ;RP0=0, select bank0
+ 1638 05ED 1303 bcf 3,6 ;RP1=0, select bank0
+ 1639 05EE 0840 movf _temp_0,w
+ 1640 05EF 120A 158A 2633 120A 118A fcall _Lcd_Write_Char
+ 1641
+ 1642 ;main.c: 291: if (min == 00 && sec == 00) {
+ 1643 05F4 1283 bcf 3,5 ;RP0=0, select bank0
+ 1644 05F5 1303 bcf 3,6 ;RP1=0, select bank0
+ 1645 05F6 086A movf _min,w
+ 1646 05F7 046B iorwf _min+1,w
+ 1647 05F8 1D03 btfss 3,2
+ 1648 05F9 2E07 goto l2072
+ 1649 05FA 086C movf _sec,w
+ 1650 05FB 046D iorwf _sec+1,w
+ 1651 05FC 1D03 btfss 3,2
+ 1652 05FD 2E07 goto l2072
+ 1653
+ 1654 ;main.c: 292: alarm(2);
+ 1655 05FE 3002 movlw 2
+ 1656 05FF 00F0 movwf alarm@numberOfBeeps
+ 1657 0600 3000 movlw 0
+ 1658 0601 00F1 movwf alarm@numberOfBeeps+1
+ 1659 0602 120A 158A 2728 120A 118A fcall _alarm
+ 1660 0607 l2072:
+ 1661
+ 1662 ;main.c: 295: if (min == 30 && sec == 00) {
+ 1663 0607 301E movlw 30
+ 1664 0608 1283 bcf 3,5 ;RP0=0, select bank0
+ 1665 0609 1303 bcf 3,6 ;RP1=0, select bank0
+ 1666 060A 066A xorwf _min,w
+ 1667 060B 046B iorwf _min+1,w
+ 1668 060C 1D03 btfss 3,2
+ 1669 060D 0008 return
+ 1670 060E 086C movf _sec,w
+ 1671 060F 046D iorwf _sec+1,w
+ 1672 0610 1D03 btfss 3,2
+ 1673 0611 0008 return
+ 1674
+ 1675 ;main.c: 296: alarm(1);
+ 1676 0612 3001 movlw 1
+ 1677 0613 00F0 movwf alarm@numberOfBeeps
+ 1678 0614 3000 movlw 0
+ 1679 0615 00F1 movwf alarm@numberOfBeeps+1
+ 1680 0616 120A 158A 2728 fcall _alarm
+ 1681 0619 0008 return
+ 1682 061A __end_of_update_Display:
+ 1683
+ 1684 psect text2
+ 1685 0F28 __ptext2:
+ 1686 ;; *************** function _alarm *****************
+ 1687 ;; Defined at:
+ 1688 ;; line 4 in file "beep.c"
+ 1689 ;; Parameters: Size Location Type
+ 1690 ;; numberOfBeep 2 0[COMMON] unsigned int
+ 1691 ;; Auto vars: Size Location Type
+ 1692 ;; j 2 7[COMMON] int
+ 1693 ;; i 2 5[COMMON] int
+ 1694 ;; Return value: Size Location Type
+ 1695 ;; 1 wreg void
+ 1696 ;; Registers used:
+ 1697 ;; wreg, status,2, btemp+1
+ 1698 ;; Tracked objects:
+ 1699 ;; On entry : 0/0
+ 1700 ;; On exit : 0/0
+ 1701 ;; Unchanged: 0/0
+ 1702 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 1703 ;; Params: 2 0 0 0 0
+ 1704 ;; Locals: 4 0 0 0 0
+ 1705 ;; Temps: 3 0 0 0 0
+ 1706 ;; Totals: 9 0 0 0 0
+ 1707 ;;Total ram usage: 9 bytes
+ 1708 ;; Hardware stack levels used: 1
+ 1709 ;; This function calls:
+ 1710 ;; Nothing
+ 1711 ;; This function is called by:
+ 1712 ;; _update_Display
+ 1713 ;; This function uses a non-reentrant model
+ 1714 ;;
+ 1715
+ 1716
+ 1717 ;psect for function _alarm
+ 1718 0F28 _alarm:
+ 1719
+ 1720 ;beep.c: 5: for (int i = 0; i < numberOfBeeps; i++) {
+ 1721
+ 1722 ;incstack = 0
+ 1723 ; Regs used in _alarm: [wreg+status,2+btemp+1]
+ 1724 0F28 01F5 clrf alarm@i
+ 1725 0F29 01F6 clrf alarm@i+1
+ 1726 0F2A l487:
+ 1727 0F2A 0871 movf alarm@numberOfBeeps+1,w
+ 1728 0F2B 0276 subwf alarm@i+1,w
+ 1729 0F2C 1D03 skipz
+ 1730 0F2D 2F30 goto u985
+ 1731 0F2E 0870 movf alarm@numberOfBeeps,w
+ 1732 0F2F 0275 subwf alarm@i,w
+ 1733 0F30 u985:
+ 1734 0F30 1803 btfsc 3,0
+ 1735 0F31 0008 return
+ 1736
+ 1737 ;beep.c: 6: for (int j = 0; j < 250; j++) {
+ 1738 0F32 01F7 clrf alarm@j
+ 1739 0F33 01F8 clrf alarm@j+1
+ 1740 0F34 l489:
+ 1741
+ 1742 ;beep.c: 7: RD1 = 1;
+ 1743 0F34 1283 bcf 3,5 ;RP0=0, select bank0
+ 1744 0F35 1303 bcf 3,6 ;RP1=0, select bank0
+ 1745 0F36 1488 bsf 8,1 ;volatile
+ 1746
+ 1747 ;beep.c: 8: _delay((unsigned long)((375)*(20000000/4000000.0)));
+ 1748 0F37 3003 movlw 3
+ 1749 0F38 00F3 movwf ??_alarm+1
+ 1750 0F39 306E movlw 110
+ 1751 0F3A 00F2 movwf ??_alarm
+ 1752 0F3B u1577:
+ 1753 0F3B 0BF2 decfsz ??_alarm,f
+ 1754 0F3C 2F3B goto u1577
+ 1755 0F3D 0BF3 decfsz ??_alarm+1,f
+ 1756 0F3E 2F3B goto u1577
+ 1757
+ 1758 ;beep.c: 9: RD1 = 0;
+ 1759 0F3F 1283 bcf 3,5 ;RP0=0, select bank0
+ 1760 0F40 1303 bcf 3,6 ;RP1=0, select bank0
+ 1761 0F41 1088 bcf 8,1 ;volatile
+ 1762
+ 1763 ;beep.c: 10: _delay((unsigned long)((125)*(20000000/4000000.0)));
+ 1764 0F42 30D0 movlw 208
+ 1765 0F43 00F2 movwf ??_alarm
+ 1766 0F44 u1587:
+ 1767 0F44 0BF2 decfsz ??_alarm,f
+ 1768 0F45 2F44 goto u1587
+ 1769
+ 1770 ;beep.c: 11: }
+ 1771 0F46 3001 movlw 1
+ 1772 0F47 07F7 addwf alarm@j,f
+ 1773 0F48 1803 skipnc
+ 1774 0F49 0AF8 incf alarm@j+1,f
+ 1775 0F4A 3000 movlw 0
+ 1776 0F4B 07F8 addwf alarm@j+1,f
+ 1777 0F4C 0878 movf alarm@j+1,w
+ 1778 0F4D 3A80 xorlw 128
+ 1779 0F4E 00FF movwf 127
+ 1780 0F4F 3080 movlw 128
+ 1781 0F50 027F subwf 127,w
+ 1782 0F51 1D03 skipz
+ 1783 0F52 2F55 goto u975
+ 1784 0F53 30FA movlw 250
+ 1785 0F54 0277 subwf alarm@j,w
+ 1786 0F55 u975:
+ 1787 0F55 1C03 skipc
+ 1788 0F56 2F34 goto l489
+ 1789
+ 1790 ;beep.c: 13: _delay((unsigned long)((500)*(20000000/4000.0)));
+ 1791 0F57 300D movlw 13
+ 1792 0F58 00F4 movwf ??_alarm+2
+ 1793 0F59 30AF movlw 175
+ 1794 0F5A 00F3 movwf ??_alarm+1
+ 1795 0F5B 30B6 movlw 182
+ 1796 0F5C 00F2 movwf ??_alarm
+ 1797 0F5D u1597:
+ 1798 0F5D 0BF2 decfsz ??_alarm,f
+ 1799 0F5E 2F5D goto u1597
+ 1800 0F5F 0BF3 decfsz ??_alarm+1,f
+ 1801 0F60 2F5D goto u1597
+ 1802 0F61 0BF4 decfsz ??_alarm+2,f
+ 1803 0F62 2F5D goto u1597
+ 1804 0F63 0000 nop
+ 1805
+ 1806 ;beep.c: 14: }
+ 1807 0F64 3001 movlw 1
+ 1808 0F65 07F5 addwf alarm@i,f
+ 1809 0F66 1803 skipnc
+ 1810 0F67 0AF6 incf alarm@i+1,f
+ 1811 0F68 3000 movlw 0
+ 1812 0F69 07F6 addwf alarm@i+1,f
+ 1813 0F6A 2F2A goto l487
+ 1814 0F6B __end_of_alarm:
+ 1815
+ 1816 psect text3
+ 1817 0097 __ptext3:
+ 1818 ;; *************** function _getWeekDay *****************
+ 1819 ;; Defined at:
+ 1820 ;; line 193 in file "main.c"
+ 1821 ;; Parameters: Size Location Type
+ 1822 ;; dayofweek 2 0[COMMON] unsigned int
+ 1823 ;; Auto vars: Size Location Type
+ 1824 ;; None
+ 1825 ;; Return value: Size Location Type
+ 1826 ;; 1 wreg void
+ 1827 ;; Registers used:
+ 1828 ;; wreg, fsr0l, fsr0h, status,2, status,0
+ 1829 ;; Tracked objects:
+ 1830 ;; On entry : 0/0
+ 1831 ;; On exit : 0/0
+ 1832 ;; Unchanged: 0/0
+ 1833 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 1834 ;; Params: 2 0 0 0 0
+ 1835 ;; Locals: 0 0 0 0 0
+ 1836 ;; Temps: 0 0 0 0 0
+ 1837 ;; Totals: 2 0 0 0 0
+ 1838 ;;Total ram usage: 2 bytes
+ 1839 ;; Hardware stack levels used: 1
+ 1840 ;; This function calls:
+ 1841 ;; Nothing
+ 1842 ;; This function is called by:
+ 1843 ;; _main
+ 1844 ;; This function uses a non-reentrant model
+ 1845 ;;
+ 1846
+ 1847
+ 1848 ;psect for function _getWeekDay
+ 1849 0097 _getWeekDay:
+ 1850
+ 1851 ;main.c: 194: switch (dayofweek) {
+ 1852
+ 1853 ;incstack = 0
+ 1854 ; Regs used in _getWeekDay: [wreg-fsr0h+status,2+status,0]
+ 1855 0097 28C9 goto l2044
+ 1856 0098 l2028:
+ 1857
+ 1858 ;main.c: 196: weekday = "Sun";
+ 1859 0098 3051 movlw (low ((STR_1-__stringbase)| (0+32768)))& (0+255)
+ 1860 0099 1683 bsf 3,5 ;RP0=1, select bank1
+ 1861 009A 1303 bcf 3,6 ;RP1=0, select bank1
+ 1862 009B 00CA movwf _weekday^(0+128)
+ 1863 009C 3080 movlw 128
+ 1864 009D 00CB movwf (_weekday+1)^(0+128)
+ 1865
+ 1866 ;main.c: 197: break;
+ 1867 009E 0008 return
+ 1868 009F l2030:
+ 1869
+ 1870 ;main.c: 199: weekday = "Mon";
+ 1871 009F 304D movlw (low ((STR_2-__stringbase)| (0+32768)))& (0+255)
+ 1872 00A0 1683 bsf 3,5 ;RP0=1, select bank1
+ 1873 00A1 1303 bcf 3,6 ;RP1=0, select bank1
+ 1874 00A2 00CA movwf _weekday^(0+128)
+ 1875 00A3 3080 movlw 128
+ 1876 00A4 00CB movwf (_weekday+1)^(0+128)
+ 1877
+ 1878 ;main.c: 200: break;
+ 1879 00A5 0008 return
+ 1880 00A6 l2032:
+ 1881
+ 1882 ;main.c: 202: weekday = "Tue";
+ 1883 00A6 3045 movlw (low ((STR_3-__stringbase)| (0+32768)))& (0+255)
+ 1884 00A7 1683 bsf 3,5 ;RP0=1, select bank1
+ 1885 00A8 1303 bcf 3,6 ;RP1=0, select bank1
+ 1886 00A9 00CA movwf _weekday^(0+128)
+ 1887 00AA 3080 movlw 128
+ 1888 00AB 00CB movwf (_weekday+1)^(0+128)
+ 1889
+ 1890 ;main.c: 203: break;
+ 1891 00AC 0008 return
+ 1892 00AD l2034:
+ 1893
+ 1894 ;main.c: 205: weekday = "Wed";
+ 1895 00AD 3041 movlw (low ((STR_4-__stringbase)| (0+32768)))& (0+255)
+ 1896 00AE 1683 bsf 3,5 ;RP0=1, select bank1
+ 1897 00AF 1303 bcf 3,6 ;RP1=0, select bank1
+ 1898 00B0 00CA movwf _weekday^(0+128)
+ 1899 00B1 3080 movlw 128
+ 1900 00B2 00CB movwf (_weekday+1)^(0+128)
+ 1901
+ 1902 ;main.c: 206: break;
+ 1903 00B3 0008 return
+ 1904 00B4 l2036:
+ 1905
+ 1906 ;main.c: 208: weekday = "Thu";
+ 1907 00B4 3059 movlw (low ((STR_5-__stringbase)| (0+32768)))& (0+255)
+ 1908 00B5 1683 bsf 3,5 ;RP0=1, select bank1
+ 1909 00B6 1303 bcf 3,6 ;RP1=0, select bank1
+ 1910 00B7 00CA movwf _weekday^(0+128)
+ 1911 00B8 3080 movlw 128
+ 1912 00B9 00CB movwf (_weekday+1)^(0+128)
+ 1913
+ 1914 ;main.c: 209: break;
+ 1915 00BA 0008 return
+ 1916 00BB l2038:
+ 1917
+ 1918 ;main.c: 211: weekday = "Fri";
+ 1919 00BB 3049 movlw (low ((STR_6-__stringbase)| (0+32768)))& (0+255)
+ 1920 00BC 1683 bsf 3,5 ;RP0=1, select bank1
+ 1921 00BD 1303 bcf 3,6 ;RP1=0, select bank1
+ 1922 00BE 00CA movwf _weekday^(0+128)
+ 1923 00BF 3080 movlw 128
+ 1924 00C0 00CB movwf (_weekday+1)^(0+128)
+ 1925
+ 1926 ;main.c: 212: break;
+ 1927 00C1 0008 return
+ 1928 00C2 l2040:
+ 1929
+ 1930 ;main.c: 214: weekday = "Sat";
+ 1931 00C2 3055 movlw (low ((STR_7-__stringbase)| (0+32768)))& (0+255)
+ 1932 00C3 1683 bsf 3,5 ;RP0=1, select bank1
+ 1933 00C4 1303 bcf 3,6 ;RP1=0, select bank1
+ 1934 00C5 00CA movwf _weekday^(0+128)
+ 1935 00C6 3080 movlw 128
+ 1936 00C7 00CB movwf (_weekday+1)^(0+128)
+ 1937
+ 1938 ;main.c: 215: break;
+ 1939 00C8 0008 return
+ 1940 00C9 l2044:
+ 1941
+ 1942 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw
+ + itches
+ 1943 ; Switch size 1, requested type "simple"
+ 1944 ; Number of cases is 1, Range of values is 0 to 0
+ 1945 ; switch strategies available:
+ 1946 ; Name Instructions Cycles
+ 1947 ; simple_byte 4 3 (average)
+ 1948 ; direct_byte 11 8 (fixed)
+ 1949 ; jumptable 260 6 (fixed)
+ 1950 ; Chosen strategy is simple_byte
+ 1951 00C9 0871 movf getWeekDay@dayofweek+1,w
+ 1952 00CA 3A00 xorlw 0 ; case 0
+ 1953 00CB 1903 skipnz
+ 1954 00CC 28CE goto l2146
+ 1955 00CD 28E5 goto l171
+ 1956 00CE l2146:
+ 1957
+ 1958 ; Switch size 1, requested type "simple"
+ 1959 ; Number of cases is 7, Range of values is 1 to 7
+ 1960 ; switch strategies available:
+ 1961 ; Name Instructions Cycles
+ 1962 ; simple_byte 22 12 (average)
+ 1963 ; direct_byte 32 11 (fixed)
+ 1964 ; jumptable 263 9 (fixed)
+ 1965 ; Chosen strategy is simple_byte
+ 1966 00CE 0870 movf getWeekDay@dayofweek,w
+ 1967 00CF 3A01 xorlw 1 ; case 1
+ 1968 00D0 1903 skipnz
+ 1969 00D1 2898 goto l2028
+ 1970 00D2 3A03 xorlw 3 ; case 2
+ 1971 00D3 1903 skipnz
+ 1972 00D4 289F goto l2030
+ 1973 00D5 3A01 xorlw 1 ; case 3
+ 1974 00D6 1903 skipnz
+ 1975 00D7 28A6 goto l2032
+ 1976 00D8 3A07 xorlw 7 ; case 4
+ 1977 00D9 1903 skipnz
+ 1978 00DA 28AD goto l2034
+ 1979 00DB 3A01 xorlw 1 ; case 5
+ 1980 00DC 1903 skipnz
+ 1981 00DD 28B4 goto l2036
+ 1982 00DE 3A03 xorlw 3 ; case 6
+ 1983 00DF 1903 skipnz
+ 1984 00E0 28BB goto l2038
+ 1985 00E1 3A01 xorlw 1 ; case 7
+ 1986 00E2 1903 skipnz
+ 1987 00E3 28C2 goto l2040
+ 1988 00E4 28E5 goto l171
+ 1989 00E5 l171:
+ 1990 00E5 0008 return
+ 1991 00E6 __end_of_getWeekDay:
+ 1992
+ 1993 psect text4
+ 1994 02B8 __ptext4:
+ 1995 ;; *************** function _format_Temperature *****************
+ 1996 ;; Defined at:
+ 1997 ;; line 156 in file "main.c"
+ 1998 ;; Parameters: Size Location Type
+ 1999 ;; None
+ 2000 ;; Auto vars: Size Location Type
+ 2001 ;; None
+ 2002 ;; Return value: Size Location Type
+ 2003 ;; 1 wreg void
+ 2004 ;; Registers used:
+ 2005 ;; wreg, status,2, status,0, pclath, cstack
+ 2006 ;; Tracked objects:
+ 2007 ;; On entry : 0/0
+ 2008 ;; On exit : 0/0
+ 2009 ;; Unchanged: 0/0
+ 2010 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 2011 ;; Params: 0 0 0 0 0
+ 2012 ;; Locals: 0 0 0 0 0
+ 2013 ;; Temps: 1 0 0 0 0
+ 2014 ;; Totals: 1 0 0 0 0
+ 2015 ;;Total ram usage: 1 bytes
+ 2016 ;; Hardware stack levels used: 1
+ 2017 ;; Hardware stack levels required when called: 1
+ 2018 ;; This function calls:
+ 2019 ;; ___awdiv
+ 2020 ;; ___awmod
+ 2021 ;; ___wmul
+ 2022 ;; This function is called by:
+ 2023 ;; _main
+ 2024 ;; This function uses a non-reentrant model
+ 2025 ;;
+ 2026
+ 2027
+ 2028 ;psect for function _format_Temperature
+ 2029 02B8 _format_Temperature:
+ 2030
+ 2031 ;main.c: 158: if (temperature_msb < 0) {
+ 2032
+ 2033 ;incstack = 0
+ 2034 ; Regs used in _format_Temperature: [wreg+status,2+status,0+pclath+cstack]
+ 2035 02B8 1283 bcf 3,5 ;RP0=0, select bank0
+ 2036 02B9 1303 bcf 3,6 ;RP1=0, select bank0
+ 2037 02BA 1FA1 btfss _temperature_msb+1,7
+ 2038 02BB 2AD1 goto l2000
+ 2039
+ 2040 ;main.c: 159: temperature_msb *= -1;
+ 2041 02BC 30FF movlw 255
+ 2042 02BD 00F0 movwf ___wmul@multiplier
+ 2043 02BE 30FF movlw 255
+ 2044 02BF 00F1 movwf ___wmul@multiplier+1
+ 2045 02C0 0821 movf _temperature_msb+1,w
+ 2046 02C1 00F3 movwf ___wmul@multiplicand+1
+ 2047 02C2 0820 movf _temperature_msb,w
+ 2048 02C3 00F2 movwf ___wmul@multiplicand
+ 2049 02C4 120A 158A 2552 120A 118A fcall ___wmul
+ 2050 02C9 0871 movf ?___wmul+1,w
+ 2051 02CA 1283 bcf 3,5 ;RP0=0, select bank0
+ 2052 02CB 1303 bcf 3,6 ;RP1=0, select bank0
+ 2053 02CC 00A1 movwf _temperature_msb+1
+ 2054 02CD 0870 movf ?___wmul,w
+ 2055 02CE 00A0 movwf _temperature_msb
+ 2056
+ 2057 ;main.c: 160: temp_sign = '-';
+ 2058 02CF 302D movlw 45
+ 2059 02D0 2AD2 goto L1
+ 2060 02D1 l2000:
+ 2061 ;main.c: 161: } else {
+ 2062
+ 2063
+ 2064 ;main.c: 162: temp_sign = '+';
+ 2065 02D1 302B movlw 43
+ 2066 02D2 L1:
+ 2067 02D2 00F9 movwf ??_format_Temperature
+ 2068 02D3 0879 movf ??_format_Temperature,w
+ 2069 02D4 00EE movwf _temp_sign
+ 2070
+ 2071 ;main.c: 166: temperature_lsb >>= 6;
+ 2072 02D5 3006 movlw 6
+ 2073 02D6 u1475:
+ 2074 02D6 1003 clrc
+ 2075 02D7 0CA3 rrf _temperature_lsb+1,f
+ 2076 02D8 0CA2 rrf _temperature_lsb,f
+ 2077 02D9 3EFF addlw -1
+ 2078 02DA 1D03 skipz
+ 2079 02DB 2AD6 goto u1475
+ 2080
+ 2081 ;main.c: 169: temperature_lsb *= 25;
+ 2082 02DC 3019 movlw 25
+ 2083 02DD 00F0 movwf ___wmul@multiplier
+ 2084 02DE 3000 movlw 0
+ 2085 02DF 00F1 movwf ___wmul@multiplier+1
+ 2086 02E0 0823 movf _temperature_lsb+1,w
+ 2087 02E1 00F3 movwf ___wmul@multiplicand+1
+ 2088 02E2 0822 movf _temperature_lsb,w
+ 2089 02E3 00F2 movwf ___wmul@multiplicand
+ 2090 02E4 120A 158A 2552 120A 118A fcall ___wmul
+ 2091 02E9 0871 movf ?___wmul+1,w
+ 2092 02EA 1283 bcf 3,5 ;RP0=0, select bank0
+ 2093 02EB 1303 bcf 3,6 ;RP1=0, select bank0
+ 2094 02EC 00A3 movwf _temperature_lsb+1
+ 2095 02ED 0870 movf ?___wmul,w
+ 2096 02EE 00A2 movwf _temperature_lsb
+ 2097
+ 2098 ;main.c: 171: if (temperature_lsb == 0) {
+ 2099 02EF 0822 movf _temperature_lsb,w
+ 2100 02F0 0423 iorwf _temperature_lsb+1,w
+ 2101 02F1 1D03 btfss 3,2
+ 2102 02F2 2AF7 goto l2010
+ 2103
+ 2104 ;main.c: 172: temp_0 = '0';
+ 2105 02F3 3030 movlw 48
+ 2106 02F4 00F9 movwf ??_format_Temperature
+ 2107 02F5 0879 movf ??_format_Temperature,w
+ 2108 02F6 00C0 movwf _temp_0
+ 2109 02F7 l2010:
+ 2110
+ 2111 ;main.c: 175: if (temperature_lsb == 25) {
+ 2112 02F7 3019 movlw 25
+ 2113 02F8 0622 xorwf _temperature_lsb,w
+ 2114 02F9 0423 iorwf _temperature_lsb+1,w
+ 2115 02FA 1D03 btfss 3,2
+ 2116 02FB 2B00 goto l2014
+ 2117
+ 2118 ;main.c: 176: temp_0 = '2';
+ 2119 02FC 3032 movlw 50
+ 2120 02FD 00F9 movwf ??_format_Temperature
+ 2121 02FE 0879 movf ??_format_Temperature,w
+ 2122 02FF 00C0 movwf _temp_0
+ 2123 0300 l2014:
+ 2124
+ 2125 ;main.c: 179: if (temperature_lsb == 50) {
+ 2126 0300 3032 movlw 50
+ 2127 0301 0622 xorwf _temperature_lsb,w
+ 2128 0302 0423 iorwf _temperature_lsb+1,w
+ 2129 0303 1D03 btfss 3,2
+ 2130 0304 2B09 goto l2018
+ 2131
+ 2132 ;main.c: 180: temp_0 = '5';
+ 2133 0305 3035 movlw 53
+ 2134 0306 00F9 movwf ??_format_Temperature
+ 2135 0307 0879 movf ??_format_Temperature,w
+ 2136 0308 00C0 movwf _temp_0
+ 2137 0309 l2018:
+ 2138
+ 2139 ;main.c: 183: if (temperature_lsb == 75) {
+ 2140 0309 304B movlw 75
+ 2141 030A 0622 xorwf _temperature_lsb,w
+ 2142 030B 0423 iorwf _temperature_lsb+1,w
+ 2143 030C 1D03 btfss 3,2
+ 2144 030D 2B12 goto l2022
+ 2145
+ 2146 ;main.c: 184: temp_0 = '7';
+ 2147 030E 3037 movlw 55
+ 2148 030F 00F9 movwf ??_format_Temperature
+ 2149 0310 0879 movf ??_format_Temperature,w
+ 2150 0311 00C0 movwf _temp_0
+ 2151 0312 l2022:
+ 2152
+ 2153 ;main.c: 187: temp_1 = temperature_msb % 10 + '0';
+ 2154 0312 300A movlw 10
+ 2155 0313 00F0 movwf ___awmod@divisor
+ 2156 0314 3000 movlw 0
+ 2157 0315 00F1 movwf ___awmod@divisor+1
+ 2158 0316 0821 movf _temperature_msb+1,w
+ 2159 0317 00F3 movwf ___awmod@dividend+1
+ 2160 0318 0820 movf _temperature_msb,w
+ 2161 0319 00F2 movwf ___awmod@dividend
+ 2162 031A 120A 158A 27B5 120A 118A fcall ___awmod
+ 2163 031F 0870 movf ?___awmod,w
+ 2164 0320 3E30 addlw 48
+ 2165 0321 00F9 movwf ??_format_Temperature
+ 2166 0322 0879 movf ??_format_Temperature,w
+ 2167 0323 1283 bcf 3,5 ;RP0=0, select bank0
+ 2168 0324 1303 bcf 3,6 ;RP1=0, select bank0
+ 2169 0325 00BF movwf _temp_1
+ 2170
+ 2171 ;main.c: 188: temp_2 = temperature_msb / 10 + '0';
+ 2172 0326 300A movlw 10
+ 2173 0327 00F0 movwf ___awdiv@divisor
+ 2174 0328 3000 movlw 0
+ 2175 0329 00F1 movwf ___awdiv@divisor+1
+ 2176 032A 0821 movf _temperature_msb+1,w
+ 2177 032B 00F3 movwf ___awdiv@dividend+1
+ 2178 032C 0820 movf _temperature_msb,w
+ 2179 032D 00F2 movwf ___awdiv@dividend
+ 2180 032E 120A 118A 2137 fcall ___awdiv
+ 2181 0331 0870 movf ?___awdiv,w
+ 2182 0332 3E30 addlw 48
+ 2183 0333 00F9 movwf ??_format_Temperature
+ 2184 0334 0879 movf ??_format_Temperature,w
+ 2185 0335 1283 bcf 3,5 ;RP0=0, select bank0
+ 2186 0336 1303 bcf 3,6 ;RP1=0, select bank0
+ 2187 0337 00BE movwf _temp_2
+ 2188 0338 0008 return
+ 2189 0339 __end_of_format_Temperature:
+ 2190
+ 2191 psect text5
+ 2192 0FB5 __ptext5:
+ 2193 ;; *************** function ___awmod *****************
+ 2194 ;; Defined at:
+ 2195 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c"
+ 2196 ;; Parameters: Size Location Type
+ 2197 ;; divisor 2 0[COMMON] int
+ 2198 ;; dividend 2 2[COMMON] int
+ 2199 ;; Auto vars: Size Location Type
+ 2200 ;; sign 1 6[COMMON] unsigned char
+ 2201 ;; counter 1 5[COMMON] unsigned char
+ 2202 ;; Return value: Size Location Type
+ 2203 ;; 2 0[COMMON] int
+ 2204 ;; Registers used:
+ 2205 ;; wreg, status,2, status,0
+ 2206 ;; Tracked objects:
+ 2207 ;; On entry : 0/0
+ 2208 ;; On exit : 0/0
+ 2209 ;; Unchanged: 0/0
+ 2210 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 2211 ;; Params: 4 0 0 0 0
+ 2212 ;; Locals: 2 0 0 0 0
+ 2213 ;; Temps: 1 0 0 0 0
+ 2214 ;; Totals: 7 0 0 0 0
+ 2215 ;;Total ram usage: 7 bytes
+ 2216 ;; Hardware stack levels used: 1
+ 2217 ;; This function calls:
+ 2218 ;; Nothing
+ 2219 ;; This function is called by:
+ 2220 ;; _format_Temperature
+ 2221 ;; _DEC_2_BCD
+ 2222 ;; This function uses a non-reentrant model
+ 2223 ;;
+ 2224
+ 2225
+ 2226 ;psect for function ___awmod
+ 2227 0FB5 ___awmod:
+ 2228
+ 2229 ;incstack = 0
+ 2230 ; Regs used in ___awmod: [wreg+status,2+status,0]
+ 2231 0FB5 01F6 clrf ___awmod@sign
+ 2232 0FB6 1FF3 btfss ___awmod@dividend+1,7
+ 2233 0FB7 2FBF goto l1866
+ 2234 0FB8 09F2 comf ___awmod@dividend,f
+ 2235 0FB9 09F3 comf ___awmod@dividend+1,f
+ 2236 0FBA 0AF2 incf ___awmod@dividend,f
+ 2237 0FBB 1903 skipnz
+ 2238 0FBC 0AF3 incf ___awmod@dividend+1,f
+ 2239 0FBD 01F6 clrf ___awmod@sign
+ 2240 0FBE 0AF6 incf ___awmod@sign,f
+ 2241 0FBF l1866:
+ 2242 0FBF 1FF1 btfss ___awmod@divisor+1,7
+ 2243 0FC0 2FC6 goto l1870
+ 2244 0FC1 09F0 comf ___awmod@divisor,f
+ 2245 0FC2 09F1 comf ___awmod@divisor+1,f
+ 2246 0FC3 0AF0 incf ___awmod@divisor,f
+ 2247 0FC4 1903 skipnz
+ 2248 0FC5 0AF1 incf ___awmod@divisor+1,f
+ 2249 0FC6 l1870:
+ 2250 0FC6 0870 movf ___awmod@divisor,w
+ 2251 0FC7 0471 iorwf ___awmod@divisor+1,w
+ 2252 0FC8 1903 btfsc 3,2
+ 2253 0FC9 2FF3 goto l1888
+ 2254 0FCA 01F5 clrf ___awmod@counter
+ 2255 0FCB 0AF5 incf ___awmod@counter,f
+ 2256 0FCC l1878:
+ 2257 0FCC 1BF1 btfsc ___awmod@divisor+1,7
+ 2258 0FCD 2FDA goto l1880
+ 2259 0FCE 3001 movlw 1
+ 2260 0FCF u1265:
+ 2261 0FCF 1003 clrc
+ 2262 0FD0 0DF0 rlf ___awmod@divisor,f
+ 2263 0FD1 0DF1 rlf ___awmod@divisor+1,f
+ 2264 0FD2 3EFF addlw -1
+ 2265 0FD3 1D03 skipz
+ 2266 0FD4 2FCF goto u1265
+ 2267 0FD5 3001 movlw 1
+ 2268 0FD6 00F4 movwf ??___awmod
+ 2269 0FD7 0874 movf ??___awmod,w
+ 2270 0FD8 07F5 addwf ___awmod@counter,f
+ 2271 0FD9 2FCC goto l1878
+ 2272 0FDA l1880:
+ 2273 0FDA 0871 movf ___awmod@divisor+1,w
+ 2274 0FDB 0273 subwf ___awmod@dividend+1,w
+ 2275 0FDC 1D03 skipz
+ 2276 0FDD 2FE0 goto u1285
+ 2277 0FDE 0870 movf ___awmod@divisor,w
+ 2278 0FDF 0272 subwf ___awmod@dividend,w
+ 2279 0FE0 u1285:
+ 2280 0FE0 1C03 skipc
+ 2281 0FE1 2FE8 goto l1884
+ 2282 0FE2 0870 movf ___awmod@divisor,w
+ 2283 0FE3 02F2 subwf ___awmod@dividend,f
+ 2284 0FE4 0871 movf ___awmod@divisor+1,w
+ 2285 0FE5 1C03 skipc
+ 2286 0FE6 03F3 decf ___awmod@dividend+1,f
+ 2287 0FE7 02F3 subwf ___awmod@dividend+1,f
+ 2288 0FE8 l1884:
+ 2289 0FE8 3001 movlw 1
+ 2290 0FE9 u1295:
+ 2291 0FE9 1003 clrc
+ 2292 0FEA 0CF1 rrf ___awmod@divisor+1,f
+ 2293 0FEB 0CF0 rrf ___awmod@divisor,f
+ 2294 0FEC 3EFF addlw -1
+ 2295 0FED 1D03 skipz
+ 2296 0FEE 2FE9 goto u1295
+ 2297 0FEF 3001 movlw 1
+ 2298 0FF0 02F5 subwf ___awmod@counter,f
+ 2299 0FF1 1D03 btfss 3,2
+ 2300 0FF2 2FDA goto l1880
+ 2301 0FF3 l1888:
+ 2302 0FF3 0876 movf ___awmod@sign,w
+ 2303 0FF4 1903 btfsc 3,2
+ 2304 0FF5 2FFB goto l1892
+ 2305 0FF6 09F2 comf ___awmod@dividend,f
+ 2306 0FF7 09F3 comf ___awmod@dividend+1,f
+ 2307 0FF8 0AF2 incf ___awmod@dividend,f
+ 2308 0FF9 1903 skipnz
+ 2309 0FFA 0AF3 incf ___awmod@dividend+1,f
+ 2310 0FFB l1892:
+ 2311 0FFB 0873 movf ___awmod@dividend+1,w
+ 2312 0FFC 00F1 movwf ?___awmod+1
+ 2313 0FFD 0872 movf ___awmod@dividend,w
+ 2314 0FFE 00F0 movwf ?___awmod
+ 2315 0FFF 0008 return
+ 2316 1000 __end_of___awmod:
+ 2317
+ 2318 psect text6
+ 2319 0137 __ptext6:
+ 2320 ;; *************** function ___awdiv *****************
+ 2321 ;; Defined at:
+ 2322 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c"
+ 2323 ;; Parameters: Size Location Type
+ 2324 ;; divisor 2 0[COMMON] int
+ 2325 ;; dividend 2 2[COMMON] int
+ 2326 ;; Auto vars: Size Location Type
+ 2327 ;; quotient 2 7[COMMON] int
+ 2328 ;; sign 1 6[COMMON] unsigned char
+ 2329 ;; counter 1 5[COMMON] unsigned char
+ 2330 ;; Return value: Size Location Type
+ 2331 ;; 2 0[COMMON] int
+ 2332 ;; Registers used:
+ 2333 ;; wreg, status,2, status,0
+ 2334 ;; Tracked objects:
+ 2335 ;; On entry : 0/0
+ 2336 ;; On exit : 0/0
+ 2337 ;; Unchanged: 0/0
+ 2338 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 2339 ;; Params: 4 0 0 0 0
+ 2340 ;; Locals: 4 0 0 0 0
+ 2341 ;; Temps: 1 0 0 0 0
+ 2342 ;; Totals: 9 0 0 0 0
+ 2343 ;;Total ram usage: 9 bytes
+ 2344 ;; Hardware stack levels used: 1
+ 2345 ;; This function calls:
+ 2346 ;; Nothing
+ 2347 ;; This function is called by:
+ 2348 ;; _format_Temperature
+ 2349 ;; _DEC_2_BCD
+ 2350 ;; This function uses a non-reentrant model
+ 2351 ;;
+ 2352
+ 2353
+ 2354 ;psect for function ___awdiv
+ 2355 0137 ___awdiv:
+ 2356
+ 2357 ;incstack = 0
+ 2358 ; Regs used in ___awdiv: [wreg+status,2+status,0]
+ 2359 0137 01F6 clrf ___awdiv@sign
+ 2360 0138 1FF1 btfss ___awdiv@divisor+1,7
+ 2361 0139 2941 goto l1822
+ 2362 013A 09F0 comf ___awdiv@divisor,f
+ 2363 013B 09F1 comf ___awdiv@divisor+1,f
+ 2364 013C 0AF0 incf ___awdiv@divisor,f
+ 2365 013D 1903 skipnz
+ 2366 013E 0AF1 incf ___awdiv@divisor+1,f
+ 2367 013F 01F6 clrf ___awdiv@sign
+ 2368 0140 0AF6 incf ___awdiv@sign,f
+ 2369 0141 l1822:
+ 2370 0141 1FF3 btfss ___awdiv@dividend+1,7
+ 2371 0142 294C goto l1828
+ 2372 0143 09F2 comf ___awdiv@dividend,f
+ 2373 0144 09F3 comf ___awdiv@dividend+1,f
+ 2374 0145 0AF2 incf ___awdiv@dividend,f
+ 2375 0146 1903 skipnz
+ 2376 0147 0AF3 incf ___awdiv@dividend+1,f
+ 2377 0148 3001 movlw 1
+ 2378 0149 00F4 movwf ??___awdiv
+ 2379 014A 0874 movf ??___awdiv,w
+ 2380 014B 06F6 xorwf ___awdiv@sign,f
+ 2381 014C l1828:
+ 2382 014C 01F7 clrf ___awdiv@quotient
+ 2383 014D 01F8 clrf ___awdiv@quotient+1
+ 2384 014E 0870 movf ___awdiv@divisor,w
+ 2385 014F 0471 iorwf ___awdiv@divisor+1,w
+ 2386 0150 1903 btfsc 3,2
+ 2387 0151 2983 goto l1850
+ 2388 0152 01F5 clrf ___awdiv@counter
+ 2389 0153 0AF5 incf ___awdiv@counter,f
+ 2390 0154 l1838:
+ 2391 0154 1BF1 btfsc ___awdiv@divisor+1,7
+ 2392 0155 2962 goto l1840
+ 2393 0156 3001 movlw 1
+ 2394 0157 u1165:
+ 2395 0157 1003 clrc
+ 2396 0158 0DF0 rlf ___awdiv@divisor,f
+ 2397 0159 0DF1 rlf ___awdiv@divisor+1,f
+ 2398 015A 3EFF addlw -1
+ 2399 015B 1D03 skipz
+ 2400 015C 2957 goto u1165
+ 2401 015D 3001 movlw 1
+ 2402 015E 00F4 movwf ??___awdiv
+ 2403 015F 0874 movf ??___awdiv,w
+ 2404 0160 07F5 addwf ___awdiv@counter,f
+ 2405 0161 2954 goto l1838
+ 2406 0162 l1840:
+ 2407 0162 3001 movlw 1
+ 2408 0163 u1185:
+ 2409 0163 1003 clrc
+ 2410 0164 0DF7 rlf ___awdiv@quotient,f
+ 2411 0165 0DF8 rlf ___awdiv@quotient+1,f
+ 2412 0166 3EFF addlw -1
+ 2413 0167 1D03 skipz
+ 2414 0168 2963 goto u1185
+ 2415 0169 0871 movf ___awdiv@divisor+1,w
+ 2416 016A 0273 subwf ___awdiv@dividend+1,w
+ 2417 016B 1D03 skipz
+ 2418 016C 296F goto u1195
+ 2419 016D 0870 movf ___awdiv@divisor,w
+ 2420 016E 0272 subwf ___awdiv@dividend,w
+ 2421 016F u1195:
+ 2422 016F 1C03 skipc
+ 2423 0170 2978 goto l1846
+ 2424 0171 0870 movf ___awdiv@divisor,w
+ 2425 0172 02F2 subwf ___awdiv@dividend,f
+ 2426 0173 0871 movf ___awdiv@divisor+1,w
+ 2427 0174 1C03 skipc
+ 2428 0175 03F3 decf ___awdiv@dividend+1,f
+ 2429 0176 02F3 subwf ___awdiv@dividend+1,f
+ 2430 0177 1477 bsf ___awdiv@quotient,0
+ 2431 0178 l1846:
+ 2432 0178 3001 movlw 1
+ 2433 0179 u1205:
+ 2434 0179 1003 clrc
+ 2435 017A 0CF1 rrf ___awdiv@divisor+1,f
+ 2436 017B 0CF0 rrf ___awdiv@divisor,f
+ 2437 017C 3EFF addlw -1
+ 2438 017D 1D03 skipz
+ 2439 017E 2979 goto u1205
+ 2440 017F 3001 movlw 1
+ 2441 0180 02F5 subwf ___awdiv@counter,f
+ 2442 0181 1D03 btfss 3,2
+ 2443 0182 2962 goto l1840
+ 2444 0183 l1850:
+ 2445 0183 0876 movf ___awdiv@sign,w
+ 2446 0184 1903 btfsc 3,2
+ 2447 0185 298B goto l1854
+ 2448 0186 09F7 comf ___awdiv@quotient,f
+ 2449 0187 09F8 comf ___awdiv@quotient+1,f
+ 2450 0188 0AF7 incf ___awdiv@quotient,f
+ 2451 0189 1903 skipnz
+ 2452 018A 0AF8 incf ___awdiv@quotient+1,f
+ 2453 018B l1854:
+ 2454 018B 0878 movf ___awdiv@quotient+1,w
+ 2455 018C 00F1 movwf ?___awdiv+1
+ 2456 018D 0877 movf ___awdiv@quotient,w
+ 2457 018E 00F0 movwf ?___awdiv
+ 2458 018F 0008 return
+ 2459 0190 __end_of___awdiv:
+ 2460
+ 2461 psect text7
+ 2462 061A __ptext7:
+ 2463 ;; *************** function _format_DateTimeChars *****************
+ 2464 ;; Defined at:
+ 2465 ;; line 129 in file "main.c"
+ 2466 ;; Parameters: Size Location Type
+ 2467 ;; None
+ 2468 ;; Auto vars: Size Location Type
+ 2469 ;; None
+ 2470 ;; Return value: Size Location Type
+ 2471 ;; 1 wreg void
+ 2472 ;; Registers used:
+ 2473 ;; wreg, status,2, status,0, pclath, cstack
+ 2474 ;; Tracked objects:
+ 2475 ;; On entry : 0/0
+ 2476 ;; On exit : 0/0
+ 2477 ;; Unchanged: 0/0
+ 2478 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 2479 ;; Params: 0 0 0 0 0
+ 2480 ;; Locals: 0 0 0 0 0
+ 2481 ;; Temps: 1 0 0 0 0
+ 2482 ;; Totals: 1 0 0 0 0
+ 2483 ;;Total ram usage: 1 bytes
+ 2484 ;; Hardware stack levels used: 1
+ 2485 ;; Hardware stack levels required when called: 1
+ 2486 ;; This function calls:
+ 2487 ;; ___lwdiv
+ 2488 ;; ___lwmod
+ 2489 ;; This function is called by:
+ 2490 ;; _main
+ 2491 ;; This function uses a non-reentrant model
+ 2492 ;;
+ 2493
+ 2494
+ 2495 ;psect for function _format_DateTimeChars
+ 2496 061A _format_DateTimeChars:
+ 2497
+ 2498 ;main.c: 130: sec_0 = sec % 10 + '0';
+ 2499
+ 2500 ;incstack = 0
+ 2501 ; Regs used in _format_DateTimeChars: [wreg+status,2+status,0+pclath+cstack]
+ 2502 061A 300A movlw 10
+ 2503 061B 00F0 movwf ___lwmod@divisor
+ 2504 061C 3000 movlw 0
+ 2505 061D 00F1 movwf ___lwmod@divisor+1
+ 2506 061E 1283 bcf 3,5 ;RP0=0, select bank0
+ 2507 061F 1303 bcf 3,6 ;RP1=0, select bank0
+ 2508 0620 086D movf _sec+1,w
+ 2509 0621 00F3 movwf ___lwmod@dividend+1
+ 2510 0622 086C movf _sec,w
+ 2511 0623 00F2 movwf ___lwmod@dividend
+ 2512 0624 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2513 0629 0870 movf ?___lwmod,w
+ 2514 062A 3E30 addlw 48
+ 2515 062B 00F8 movwf ??_format_DateTimeChars
+ 2516 062C 0878 movf ??_format_DateTimeChars,w
+ 2517 062D 1283 bcf 3,5 ;RP0=0, select bank0
+ 2518 062E 1303 bcf 3,6 ;RP1=0, select bank0
+ 2519 062F 00CC movwf _sec_0
+ 2520
+ 2521 ;main.c: 131: sec_1 = sec / 10 + '0';
+ 2522 0630 300A movlw 10
+ 2523 0631 00F0 movwf ___lwdiv@divisor
+ 2524 0632 3000 movlw 0
+ 2525 0633 00F1 movwf ___lwdiv@divisor+1
+ 2526 0634 086D movf _sec+1,w
+ 2527 0635 00F3 movwf ___lwdiv@dividend+1
+ 2528 0636 086C movf _sec,w
+ 2529 0637 00F2 movwf ___lwdiv@dividend
+ 2530 0638 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2531 063D 0870 movf ?___lwdiv,w
+ 2532 063E 3E30 addlw 48
+ 2533 063F 00F8 movwf ??_format_DateTimeChars
+ 2534 0640 0878 movf ??_format_DateTimeChars,w
+ 2535 0641 1283 bcf 3,5 ;RP0=0, select bank0
+ 2536 0642 1303 bcf 3,6 ;RP1=0, select bank0
+ 2537 0643 00CB movwf _sec_1
+ 2538
+ 2539 ;main.c: 132: min_0 = min % 10 + '0';
+ 2540 0644 300A movlw 10
+ 2541 0645 00F0 movwf ___lwmod@divisor
+ 2542 0646 3000 movlw 0
+ 2543 0647 00F1 movwf ___lwmod@divisor+1
+ 2544 0648 086B movf _min+1,w
+ 2545 0649 00F3 movwf ___lwmod@dividend+1
+ 2546 064A 086A movf _min,w
+ 2547 064B 00F2 movwf ___lwmod@dividend
+ 2548 064C 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2549 0651 0870 movf ?___lwmod,w
+ 2550 0652 3E30 addlw 48
+ 2551 0653 00F8 movwf ??_format_DateTimeChars
+ 2552 0654 0878 movf ??_format_DateTimeChars,w
+ 2553 0655 1283 bcf 3,5 ;RP0=0, select bank0
+ 2554 0656 1303 bcf 3,6 ;RP1=0, select bank0
+ 2555 0657 00CA movwf _min_0
+ 2556
+ 2557 ;main.c: 133: min_1 = min / 10 + '0';
+ 2558 0658 300A movlw 10
+ 2559 0659 00F0 movwf ___lwdiv@divisor
+ 2560 065A 3000 movlw 0
+ 2561 065B 00F1 movwf ___lwdiv@divisor+1
+ 2562 065C 086B movf _min+1,w
+ 2563 065D 00F3 movwf ___lwdiv@dividend+1
+ 2564 065E 086A movf _min,w
+ 2565 065F 00F2 movwf ___lwdiv@dividend
+ 2566 0660 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2567 0665 0870 movf ?___lwdiv,w
+ 2568 0666 3E30 addlw 48
+ 2569 0667 00F8 movwf ??_format_DateTimeChars
+ 2570 0668 0878 movf ??_format_DateTimeChars,w
+ 2571 0669 1283 bcf 3,5 ;RP0=0, select bank0
+ 2572 066A 1303 bcf 3,6 ;RP1=0, select bank0
+ 2573 066B 00C9 movwf _min_1
+ 2574
+ 2575 ;main.c: 134: hour_0 = hour % 10 + '0';
+ 2576 066C 300A movlw 10
+ 2577 066D 00F0 movwf ___lwmod@divisor
+ 2578 066E 3000 movlw 0
+ 2579 066F 00F1 movwf ___lwmod@divisor+1
+ 2580 0670 0869 movf _hour+1,w
+ 2581 0671 00F3 movwf ___lwmod@dividend+1
+ 2582 0672 0868 movf _hour,w
+ 2583 0673 00F2 movwf ___lwmod@dividend
+ 2584 0674 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2585 0679 0870 movf ?___lwmod,w
+ 2586 067A 3E30 addlw 48
+ 2587 067B 00F8 movwf ??_format_DateTimeChars
+ 2588 067C 0878 movf ??_format_DateTimeChars,w
+ 2589 067D 1283 bcf 3,5 ;RP0=0, select bank0
+ 2590 067E 1303 bcf 3,6 ;RP1=0, select bank0
+ 2591 067F 00C8 movwf _hour_0
+ 2592
+ 2593 ;main.c: 135: hour_1 = hour / 10 + '0';
+ 2594 0680 300A movlw 10
+ 2595 0681 00F0 movwf ___lwdiv@divisor
+ 2596 0682 3000 movlw 0
+ 2597 0683 00F1 movwf ___lwdiv@divisor+1
+ 2598 0684 0869 movf _hour+1,w
+ 2599 0685 00F3 movwf ___lwdiv@dividend+1
+ 2600 0686 0868 movf _hour,w
+ 2601 0687 00F2 movwf ___lwdiv@dividend
+ 2602 0688 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2603 068D 0870 movf ?___lwdiv,w
+ 2604 068E 3E30 addlw 48
+ 2605 068F 00F8 movwf ??_format_DateTimeChars
+ 2606 0690 0878 movf ??_format_DateTimeChars,w
+ 2607 0691 1283 bcf 3,5 ;RP0=0, select bank0
+ 2608 0692 1303 bcf 3,6 ;RP1=0, select bank0
+ 2609 0693 00C7 movwf _hour_1
+ 2610
+ 2611 ;main.c: 136: day_0 = date % 10 + '0';
+ 2612 0694 300A movlw 10
+ 2613 0695 00F0 movwf ___lwmod@divisor
+ 2614 0696 3000 movlw 0
+ 2615 0697 00F1 movwf ___lwmod@divisor+1
+ 2616 0698 0867 movf _date+1,w
+ 2617 0699 00F3 movwf ___lwmod@dividend+1
+ 2618 069A 0866 movf _date,w
+ 2619 069B 00F2 movwf ___lwmod@dividend
+ 2620 069C 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2621 06A1 0870 movf ?___lwmod,w
+ 2622 06A2 3E30 addlw 48
+ 2623 06A3 00F8 movwf ??_format_DateTimeChars
+ 2624 06A4 0878 movf ??_format_DateTimeChars,w
+ 2625 06A5 1283 bcf 3,5 ;RP0=0, select bank0
+ 2626 06A6 1303 bcf 3,6 ;RP1=0, select bank0
+ 2627 06A7 00C6 movwf _day_0
+ 2628
+ 2629 ;main.c: 137: day_1 = date / 10 + '0';
+ 2630 06A8 300A movlw 10
+ 2631 06A9 00F0 movwf ___lwdiv@divisor
+ 2632 06AA 3000 movlw 0
+ 2633 06AB 00F1 movwf ___lwdiv@divisor+1
+ 2634 06AC 0867 movf _date+1,w
+ 2635 06AD 00F3 movwf ___lwdiv@dividend+1
+ 2636 06AE 0866 movf _date,w
+ 2637 06AF 00F2 movwf ___lwdiv@dividend
+ 2638 06B0 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2639 06B5 0870 movf ?___lwdiv,w
+ 2640 06B6 3E30 addlw 48
+ 2641 06B7 00F8 movwf ??_format_DateTimeChars
+ 2642 06B8 0878 movf ??_format_DateTimeChars,w
+ 2643 06B9 1283 bcf 3,5 ;RP0=0, select bank0
+ 2644 06BA 1303 bcf 3,6 ;RP1=0, select bank0
+ 2645 06BB 00C5 movwf _day_1
+ 2646
+ 2647 ;main.c: 138: month_0 = month % 10 + '0';
+ 2648 06BC 300A movlw 10
+ 2649 06BD 00F0 movwf ___lwmod@divisor
+ 2650 06BE 3000 movlw 0
+ 2651 06BF 00F1 movwf ___lwmod@divisor+1
+ 2652 06C0 0865 movf _month+1,w
+ 2653 06C1 00F3 movwf ___lwmod@dividend+1
+ 2654 06C2 0864 movf _month,w
+ 2655 06C3 00F2 movwf ___lwmod@dividend
+ 2656 06C4 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2657 06C9 0870 movf ?___lwmod,w
+ 2658 06CA 3E30 addlw 48
+ 2659 06CB 00F8 movwf ??_format_DateTimeChars
+ 2660 06CC 0878 movf ??_format_DateTimeChars,w
+ 2661 06CD 1283 bcf 3,5 ;RP0=0, select bank0
+ 2662 06CE 1303 bcf 3,6 ;RP1=0, select bank0
+ 2663 06CF 00C4 movwf _month_0
+ 2664
+ 2665 ;main.c: 139: month_1 = month / 10 + '0';
+ 2666 06D0 300A movlw 10
+ 2667 06D1 00F0 movwf ___lwdiv@divisor
+ 2668 06D2 3000 movlw 0
+ 2669 06D3 00F1 movwf ___lwdiv@divisor+1
+ 2670 06D4 0865 movf _month+1,w
+ 2671 06D5 00F3 movwf ___lwdiv@dividend+1
+ 2672 06D6 0864 movf _month,w
+ 2673 06D7 00F2 movwf ___lwdiv@dividend
+ 2674 06D8 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2675 06DD 0870 movf ?___lwdiv,w
+ 2676 06DE 3E30 addlw 48
+ 2677 06DF 00F8 movwf ??_format_DateTimeChars
+ 2678 06E0 0878 movf ??_format_DateTimeChars,w
+ 2679 06E1 1283 bcf 3,5 ;RP0=0, select bank0
+ 2680 06E2 1303 bcf 3,6 ;RP1=0, select bank0
+ 2681 06E3 00C3 movwf _month_1
+ 2682
+ 2683 ;main.c: 140: year_0 = year % 10 + '0';
+ 2684 06E4 300A movlw 10
+ 2685 06E5 00F0 movwf ___lwmod@divisor
+ 2686 06E6 3000 movlw 0
+ 2687 06E7 00F1 movwf ___lwmod@divisor+1
+ 2688 06E8 0863 movf _year+1,w
+ 2689 06E9 00F3 movwf ___lwmod@dividend+1
+ 2690 06EA 0862 movf _year,w
+ 2691 06EB 00F2 movwf ___lwmod@dividend
+ 2692 06EC 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2693 06F1 0870 movf ?___lwmod,w
+ 2694 06F2 3E30 addlw 48
+ 2695 06F3 00F8 movwf ??_format_DateTimeChars
+ 2696 06F4 0878 movf ??_format_DateTimeChars,w
+ 2697 06F5 1283 bcf 3,5 ;RP0=0, select bank0
+ 2698 06F6 1303 bcf 3,6 ;RP1=0, select bank0
+ 2699 06F7 00C2 movwf _year_0
+ 2700
+ 2701 ;main.c: 141: year_1 = year / 10 + '0';
+ 2702 06F8 300A movlw 10
+ 2703 06F9 00F0 movwf ___lwdiv@divisor
+ 2704 06FA 3000 movlw 0
+ 2705 06FB 00F1 movwf ___lwdiv@divisor+1
+ 2706 06FC 0863 movf _year+1,w
+ 2707 06FD 00F3 movwf ___lwdiv@dividend+1
+ 2708 06FE 0862 movf _year,w
+ 2709 06FF 00F2 movwf ___lwdiv@dividend
+ 2710 0700 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2711 0705 0870 movf ?___lwdiv,w
+ 2712 0706 3E30 addlw 48
+ 2713 0707 00F8 movwf ??_format_DateTimeChars
+ 2714 0708 0878 movf ??_format_DateTimeChars,w
+ 2715 0709 1283 bcf 3,5 ;RP0=0, select bank0
+ 2716 070A 1303 bcf 3,6 ;RP1=0, select bank0
+ 2717 070B 00C1 movwf _year_1
+ 2718
+ 2719 ;main.c: 142: alarm1_sec_0 = alarm1_sec % 10 + '0';
+ 2720 070C 300A movlw 10
+ 2721 070D 00F0 movwf ___lwmod@divisor
+ 2722 070E 3000 movlw 0
+ 2723 070F 00F1 movwf ___lwmod@divisor+1
+ 2724 0710 0833 movf _alarm1_sec+1,w
+ 2725 0711 00F3 movwf ___lwmod@dividend+1
+ 2726 0712 0832 movf _alarm1_sec,w
+ 2727 0713 00F2 movwf ___lwmod@dividend
+ 2728 0714 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2729 0719 0870 movf ?___lwmod,w
+ 2730 071A 3E30 addlw 48
+ 2731 071B 00F8 movwf ??_format_DateTimeChars
+ 2732 071C 0878 movf ??_format_DateTimeChars,w
+ 2733 071D 1283 bcf 3,5 ;RP0=0, select bank0
+ 2734 071E 1303 bcf 3,6 ;RP1=0, select bank0
+ 2735 071F 00BD movwf _alarm1_sec_0
+ 2736
+ 2737 ;main.c: 143: alarm1_sec_1 = alarm1_sec / 10 + '0';
+ 2738 0720 300A movlw 10
+ 2739 0721 00F0 movwf ___lwdiv@divisor
+ 2740 0722 3000 movlw 0
+ 2741 0723 00F1 movwf ___lwdiv@divisor+1
+ 2742 0724 0833 movf _alarm1_sec+1,w
+ 2743 0725 00F3 movwf ___lwdiv@dividend+1
+ 2744 0726 0832 movf _alarm1_sec,w
+ 2745 0727 00F2 movwf ___lwdiv@dividend
+ 2746 0728 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2747 072D 0870 movf ?___lwdiv,w
+ 2748 072E 3E30 addlw 48
+ 2749 072F 00F8 movwf ??_format_DateTimeChars
+ 2750 0730 0878 movf ??_format_DateTimeChars,w
+ 2751 0731 1283 bcf 3,5 ;RP0=0, select bank0
+ 2752 0732 1303 bcf 3,6 ;RP1=0, select bank0
+ 2753 0733 00BC movwf _alarm1_sec_1
+ 2754
+ 2755 ;main.c: 144: alarm1_min_0 = alarm1_min % 10 + '0';
+ 2756 0734 300A movlw 10
+ 2757 0735 00F0 movwf ___lwmod@divisor
+ 2758 0736 3000 movlw 0
+ 2759 0737 00F1 movwf ___lwmod@divisor+1
+ 2760 0738 0831 movf _alarm1_min+1,w
+ 2761 0739 00F3 movwf ___lwmod@dividend+1
+ 2762 073A 0830 movf _alarm1_min,w
+ 2763 073B 00F2 movwf ___lwmod@dividend
+ 2764 073C 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2765 0741 0870 movf ?___lwmod,w
+ 2766 0742 3E30 addlw 48
+ 2767 0743 00F8 movwf ??_format_DateTimeChars
+ 2768 0744 0878 movf ??_format_DateTimeChars,w
+ 2769 0745 1283 bcf 3,5 ;RP0=0, select bank0
+ 2770 0746 1303 bcf 3,6 ;RP1=0, select bank0
+ 2771 0747 00BB movwf _alarm1_min_0
+ 2772
+ 2773 ;main.c: 145: alarm1_min_1 = alarm1_min / 10 + '0';
+ 2774 0748 300A movlw 10
+ 2775 0749 00F0 movwf ___lwdiv@divisor
+ 2776 074A 3000 movlw 0
+ 2777 074B 00F1 movwf ___lwdiv@divisor+1
+ 2778 074C 0831 movf _alarm1_min+1,w
+ 2779 074D 00F3 movwf ___lwdiv@dividend+1
+ 2780 074E 0830 movf _alarm1_min,w
+ 2781 074F 00F2 movwf ___lwdiv@dividend
+ 2782 0750 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2783 0755 0870 movf ?___lwdiv,w
+ 2784 0756 3E30 addlw 48
+ 2785 0757 00F8 movwf ??_format_DateTimeChars
+ 2786 0758 0878 movf ??_format_DateTimeChars,w
+ 2787 0759 1283 bcf 3,5 ;RP0=0, select bank0
+ 2788 075A 1303 bcf 3,6 ;RP1=0, select bank0
+ 2789 075B 00BA movwf _alarm1_min_1
+ 2790
+ 2791 ;main.c: 146: alarm1_hour_0 = alarm1_hour % 10 + '0';
+ 2792 075C 300A movlw 10
+ 2793 075D 00F0 movwf ___lwmod@divisor
+ 2794 075E 3000 movlw 0
+ 2795 075F 00F1 movwf ___lwmod@divisor+1
+ 2796 0760 082F movf _alarm1_hour+1,w
+ 2797 0761 00F3 movwf ___lwmod@dividend+1
+ 2798 0762 082E movf _alarm1_hour,w
+ 2799 0763 00F2 movwf ___lwmod@dividend
+ 2800 0764 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2801 0769 0870 movf ?___lwmod,w
+ 2802 076A 3E30 addlw 48
+ 2803 076B 00F8 movwf ??_format_DateTimeChars
+ 2804 076C 0878 movf ??_format_DateTimeChars,w
+ 2805 076D 1283 bcf 3,5 ;RP0=0, select bank0
+ 2806 076E 1303 bcf 3,6 ;RP1=0, select bank0
+ 2807 076F 00B9 movwf _alarm1_hour_0
+ 2808
+ 2809 ;main.c: 147: alarm1_hour_1 = alarm1_hour / 10 + '0';
+ 2810 0770 300A movlw 10
+ 2811 0771 00F0 movwf ___lwdiv@divisor
+ 2812 0772 3000 movlw 0
+ 2813 0773 00F1 movwf ___lwdiv@divisor+1
+ 2814 0774 082F movf _alarm1_hour+1,w
+ 2815 0775 00F3 movwf ___lwdiv@dividend+1
+ 2816 0776 082E movf _alarm1_hour,w
+ 2817 0777 00F2 movwf ___lwdiv@dividend
+ 2818 0778 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2819 077D 0870 movf ?___lwdiv,w
+ 2820 077E 3E30 addlw 48
+ 2821 077F 00F8 movwf ??_format_DateTimeChars
+ 2822 0780 0878 movf ??_format_DateTimeChars,w
+ 2823 0781 1283 bcf 3,5 ;RP0=0, select bank0
+ 2824 0782 1303 bcf 3,6 ;RP1=0, select bank0
+ 2825 0783 00B8 movwf _alarm1_hour_1
+ 2826
+ 2827 ;main.c: 148: alarm2_min_0 = alarm2_min % 10 + '0';
+ 2828 0784 300A movlw 10
+ 2829 0785 00F0 movwf ___lwmod@divisor
+ 2830 0786 3000 movlw 0
+ 2831 0787 00F1 movwf ___lwmod@divisor+1
+ 2832 0788 082D movf _alarm2_min+1,w
+ 2833 0789 00F3 movwf ___lwmod@dividend+1
+ 2834 078A 082C movf _alarm2_min,w
+ 2835 078B 00F2 movwf ___lwmod@dividend
+ 2836 078C 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2837 0791 0870 movf ?___lwmod,w
+ 2838 0792 3E30 addlw 48
+ 2839 0793 00F8 movwf ??_format_DateTimeChars
+ 2840 0794 0878 movf ??_format_DateTimeChars,w
+ 2841 0795 1283 bcf 3,5 ;RP0=0, select bank0
+ 2842 0796 1303 bcf 3,6 ;RP1=0, select bank0
+ 2843 0797 00B7 movwf _alarm2_min_0
+ 2844
+ 2845 ;main.c: 149: alarm2_min_1 = alarm2_min / 10 + '0';
+ 2846 0798 300A movlw 10
+ 2847 0799 00F0 movwf ___lwdiv@divisor
+ 2848 079A 3000 movlw 0
+ 2849 079B 00F1 movwf ___lwdiv@divisor+1
+ 2850 079C 082D movf _alarm2_min+1,w
+ 2851 079D 00F3 movwf ___lwdiv@dividend+1
+ 2852 079E 082C movf _alarm2_min,w
+ 2853 079F 00F2 movwf ___lwdiv@dividend
+ 2854 07A0 120A 158A 266C 120A 118A fcall ___lwdiv
+ 2855 07A5 0870 movf ?___lwdiv,w
+ 2856 07A6 3E30 addlw 48
+ 2857 07A7 00F8 movwf ??_format_DateTimeChars
+ 2858 07A8 0878 movf ??_format_DateTimeChars,w
+ 2859 07A9 1283 bcf 3,5 ;RP0=0, select bank0
+ 2860 07AA 1303 bcf 3,6 ;RP1=0, select bank0
+ 2861 07AB 00B6 movwf _alarm2_min_1
+ 2862
+ 2863 ;main.c: 150: alarm2_hour_0 = alarm2_hour % 10 + '0';
+ 2864 07AC 300A movlw 10
+ 2865 07AD 00F0 movwf ___lwmod@divisor
+ 2866 07AE 3000 movlw 0
+ 2867 07AF 00F1 movwf ___lwmod@divisor+1
+ 2868 07B0 082B movf _alarm2_hour+1,w
+ 2869 07B1 00F3 movwf ___lwmod@dividend+1
+ 2870 07B2 082A movf _alarm2_hour,w
+ 2871 07B3 00F2 movwf ___lwmod@dividend
+ 2872 07B4 120A 158A 25CC 120A 118A fcall ___lwmod
+ 2873 07B9 0870 movf ?___lwmod,w
+ 2874 07BA 3E30 addlw 48
+ 2875 07BB 00F8 movwf ??_format_DateTimeChars
+ 2876 07BC 0878 movf ??_format_DateTimeChars,w
+ 2877 07BD 1283 bcf 3,5 ;RP0=0, select bank0
+ 2878 07BE 1303 bcf 3,6 ;RP1=0, select bank0
+ 2879 07BF 00B5 movwf _alarm2_hour_0
+ 2880
+ 2881 ;main.c: 151: alarm2_hour_1 = alarm2_hour / 10 + '0';
+ 2882 07C0 300A movlw 10
+ 2883 07C1 00F0 movwf ___lwdiv@divisor
+ 2884 07C2 3000 movlw 0
+ 2885 07C3 00F1 movwf ___lwdiv@divisor+1
+ 2886 07C4 082B movf _alarm2_hour+1,w
+ 2887 07C5 00F3 movwf ___lwdiv@dividend+1
+ 2888 07C6 082A movf _alarm2_hour,w
+ 2889 07C7 00F2 movwf ___lwdiv@dividend
+ 2890 07C8 120A 158A 266C fcall ___lwdiv
+ 2891 07CB 0870 movf ?___lwdiv,w
+ 2892 07CC 3E30 addlw 48
+ 2893 07CD 00F8 movwf ??_format_DateTimeChars
+ 2894 07CE 0878 movf ??_format_DateTimeChars,w
+ 2895 07CF 1283 bcf 3,5 ;RP0=0, select bank0
+ 2896 07D0 1303 bcf 3,6 ;RP1=0, select bank0
+ 2897 07D1 00B4 movwf _alarm2_hour_1
+ 2898 07D2 0008 return
+ 2899 07D3 __end_of_format_DateTimeChars:
+ 2900
+ 2901 psect text8
+ 2902 0DCC __ptext8:
+ 2903 ;; *************** function ___lwmod *****************
+ 2904 ;; Defined at:
+ 2905 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c"
+ 2906 ;; Parameters: Size Location Type
+ 2907 ;; divisor 2 0[COMMON] unsigned int
+ 2908 ;; dividend 2 2[COMMON] unsigned int
+ 2909 ;; Auto vars: Size Location Type
+ 2910 ;; counter 1 5[COMMON] unsigned char
+ 2911 ;; Return value: Size Location Type
+ 2912 ;; 2 0[COMMON] unsigned int
+ 2913 ;; Registers used:
+ 2914 ;; wreg, status,2, status,0
+ 2915 ;; Tracked objects:
+ 2916 ;; On entry : 0/0
+ 2917 ;; On exit : 0/0
+ 2918 ;; Unchanged: 0/0
+ 2919 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 2920 ;; Params: 4 0 0 0 0
+ 2921 ;; Locals: 1 0 0 0 0
+ 2922 ;; Temps: 1 0 0 0 0
+ 2923 ;; Totals: 6 0 0 0 0
+ 2924 ;;Total ram usage: 6 bytes
+ 2925 ;; Hardware stack levels used: 1
+ 2926 ;; This function calls:
+ 2927 ;; Nothing
+ 2928 ;; This function is called by:
+ 2929 ;; _format_DateTimeChars
+ 2930 ;; This function uses a non-reentrant model
+ 2931 ;;
+ 2932
+ 2933
+ 2934 ;psect for function ___lwmod
+ 2935 0DCC ___lwmod:
+ 2936
+ 2937 ;incstack = 0
+ 2938 ; Regs used in ___lwmod: [wreg+status,2+status,0]
+ 2939 0DCC 0870 movf ___lwmod@divisor,w
+ 2940 0DCD 0471 iorwf ___lwmod@divisor+1,w
+ 2941 0DCE 1903 btfsc 3,2
+ 2942 0DCF 2DF9 goto l1940
+ 2943 0DD0 01F5 clrf ___lwmod@counter
+ 2944 0DD1 0AF5 incf ___lwmod@counter,f
+ 2945 0DD2 l1930:
+ 2946 0DD2 1BF1 btfsc ___lwmod@divisor+1,7
+ 2947 0DD3 2DE0 goto l1932
+ 2948 0DD4 3001 movlw 1
+ 2949 0DD5 u1405:
+ 2950 0DD5 1003 clrc
+ 2951 0DD6 0DF0 rlf ___lwmod@divisor,f
+ 2952 0DD7 0DF1 rlf ___lwmod@divisor+1,f
+ 2953 0DD8 3EFF addlw -1
+ 2954 0DD9 1D03 skipz
+ 2955 0DDA 2DD5 goto u1405
+ 2956 0DDB 3001 movlw 1
+ 2957 0DDC 00F4 movwf ??___lwmod
+ 2958 0DDD 0874 movf ??___lwmod,w
+ 2959 0DDE 07F5 addwf ___lwmod@counter,f
+ 2960 0DDF 2DD2 goto l1930
+ 2961 0DE0 l1932:
+ 2962 0DE0 0871 movf ___lwmod@divisor+1,w
+ 2963 0DE1 0273 subwf ___lwmod@dividend+1,w
+ 2964 0DE2 1D03 skipz
+ 2965 0DE3 2DE6 goto u1425
+ 2966 0DE4 0870 movf ___lwmod@divisor,w
+ 2967 0DE5 0272 subwf ___lwmod@dividend,w
+ 2968 0DE6 u1425:
+ 2969 0DE6 1C03 skipc
+ 2970 0DE7 2DEE goto l1936
+ 2971 0DE8 0870 movf ___lwmod@divisor,w
+ 2972 0DE9 02F2 subwf ___lwmod@dividend,f
+ 2973 0DEA 0871 movf ___lwmod@divisor+1,w
+ 2974 0DEB 1C03 skipc
+ 2975 0DEC 03F3 decf ___lwmod@dividend+1,f
+ 2976 0DED 02F3 subwf ___lwmod@dividend+1,f
+ 2977 0DEE l1936:
+ 2978 0DEE 3001 movlw 1
+ 2979 0DEF u1435:
+ 2980 0DEF 1003 clrc
+ 2981 0DF0 0CF1 rrf ___lwmod@divisor+1,f
+ 2982 0DF1 0CF0 rrf ___lwmod@divisor,f
+ 2983 0DF2 3EFF addlw -1
+ 2984 0DF3 1D03 skipz
+ 2985 0DF4 2DEF goto u1435
+ 2986 0DF5 3001 movlw 1
+ 2987 0DF6 02F5 subwf ___lwmod@counter,f
+ 2988 0DF7 1D03 btfss 3,2
+ 2989 0DF8 2DE0 goto l1932
+ 2990 0DF9 l1940:
+ 2991 0DF9 0873 movf ___lwmod@dividend+1,w
+ 2992 0DFA 00F1 movwf ?___lwmod+1
+ 2993 0DFB 0872 movf ___lwmod@dividend,w
+ 2994 0DFC 00F0 movwf ?___lwmod
+ 2995 0DFD 0008 return
+ 2996 0DFE __end_of___lwmod:
+ 2997
+ 2998 psect text9
+ 2999 0E6C __ptext9:
+ 3000 ;; *************** function ___lwdiv *****************
+ 3001 ;; Defined at:
+ 3002 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c"
+ 3003 ;; Parameters: Size Location Type
+ 3004 ;; divisor 2 0[COMMON] unsigned int
+ 3005 ;; dividend 2 2[COMMON] unsigned int
+ 3006 ;; Auto vars: Size Location Type
+ 3007 ;; quotient 2 5[COMMON] unsigned int
+ 3008 ;; counter 1 7[COMMON] unsigned char
+ 3009 ;; Return value: Size Location Type
+ 3010 ;; 2 0[COMMON] unsigned int
+ 3011 ;; Registers used:
+ 3012 ;; wreg, status,2, status,0
+ 3013 ;; Tracked objects:
+ 3014 ;; On entry : 0/0
+ 3015 ;; On exit : 0/0
+ 3016 ;; Unchanged: 0/0
+ 3017 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3018 ;; Params: 4 0 0 0 0
+ 3019 ;; Locals: 3 0 0 0 0
+ 3020 ;; Temps: 1 0 0 0 0
+ 3021 ;; Totals: 8 0 0 0 0
+ 3022 ;;Total ram usage: 8 bytes
+ 3023 ;; Hardware stack levels used: 1
+ 3024 ;; This function calls:
+ 3025 ;; Nothing
+ 3026 ;; This function is called by:
+ 3027 ;; _format_DateTimeChars
+ 3028 ;; This function uses a non-reentrant model
+ 3029 ;;
+ 3030
+ 3031
+ 3032 ;psect for function ___lwdiv
+ 3033 0E6C ___lwdiv:
+ 3034
+ 3035 ;incstack = 0
+ 3036 ; Regs used in ___lwdiv: [wreg+status,2+status,0]
+ 3037 0E6C 01F5 clrf ___lwdiv@quotient
+ 3038 0E6D 01F6 clrf ___lwdiv@quotient+1
+ 3039 0E6E 0870 movf ___lwdiv@divisor,w
+ 3040 0E6F 0471 iorwf ___lwdiv@divisor+1,w
+ 3041 0E70 1903 btfsc 3,2
+ 3042 0E71 2EA3 goto l1918
+ 3043 0E72 01F7 clrf ___lwdiv@counter
+ 3044 0E73 0AF7 incf ___lwdiv@counter,f
+ 3045 0E74 l1906:
+ 3046 0E74 1BF1 btfsc ___lwdiv@divisor+1,7
+ 3047 0E75 2E82 goto l1908
+ 3048 0E76 3001 movlw 1
+ 3049 0E77 u1335:
+ 3050 0E77 1003 clrc
+ 3051 0E78 0DF0 rlf ___lwdiv@divisor,f
+ 3052 0E79 0DF1 rlf ___lwdiv@divisor+1,f
+ 3053 0E7A 3EFF addlw -1
+ 3054 0E7B 1D03 skipz
+ 3055 0E7C 2E77 goto u1335
+ 3056 0E7D 3001 movlw 1
+ 3057 0E7E 00F4 movwf ??___lwdiv
+ 3058 0E7F 0874 movf ??___lwdiv,w
+ 3059 0E80 07F7 addwf ___lwdiv@counter,f
+ 3060 0E81 2E74 goto l1906
+ 3061 0E82 l1908:
+ 3062 0E82 3001 movlw 1
+ 3063 0E83 u1355:
+ 3064 0E83 1003 clrc
+ 3065 0E84 0DF5 rlf ___lwdiv@quotient,f
+ 3066 0E85 0DF6 rlf ___lwdiv@quotient+1,f
+ 3067 0E86 3EFF addlw -1
+ 3068 0E87 1D03 skipz
+ 3069 0E88 2E83 goto u1355
+ 3070 0E89 0871 movf ___lwdiv@divisor+1,w
+ 3071 0E8A 0273 subwf ___lwdiv@dividend+1,w
+ 3072 0E8B 1D03 skipz
+ 3073 0E8C 2E8F goto u1365
+ 3074 0E8D 0870 movf ___lwdiv@divisor,w
+ 3075 0E8E 0272 subwf ___lwdiv@dividend,w
+ 3076 0E8F u1365:
+ 3077 0E8F 1C03 skipc
+ 3078 0E90 2E98 goto l1914
+ 3079 0E91 0870 movf ___lwdiv@divisor,w
+ 3080 0E92 02F2 subwf ___lwdiv@dividend,f
+ 3081 0E93 0871 movf ___lwdiv@divisor+1,w
+ 3082 0E94 1C03 skipc
+ 3083 0E95 03F3 decf ___lwdiv@dividend+1,f
+ 3084 0E96 02F3 subwf ___lwdiv@dividend+1,f
+ 3085 0E97 1475 bsf ___lwdiv@quotient,0
+ 3086 0E98 l1914:
+ 3087 0E98 3001 movlw 1
+ 3088 0E99 u1375:
+ 3089 0E99 1003 clrc
+ 3090 0E9A 0CF1 rrf ___lwdiv@divisor+1,f
+ 3091 0E9B 0CF0 rrf ___lwdiv@divisor,f
+ 3092 0E9C 3EFF addlw -1
+ 3093 0E9D 1D03 skipz
+ 3094 0E9E 2E99 goto u1375
+ 3095 0E9F 3001 movlw 1
+ 3096 0EA0 02F7 subwf ___lwdiv@counter,f
+ 3097 0EA1 1D03 btfss 3,2
+ 3098 0EA2 2E82 goto l1908
+ 3099 0EA3 l1918:
+ 3100 0EA3 0876 movf ___lwdiv@quotient+1,w
+ 3101 0EA4 00F1 movwf ?___lwdiv+1
+ 3102 0EA5 0875 movf ___lwdiv@quotient,w
+ 3103 0EA6 00F0 movwf ?___lwdiv
+ 3104 0EA7 0008 return
+ 3105 0EA8 __end_of___lwdiv:
+ 3106
+ 3107 psect text10
+ 3108 0EE7 __ptext10:
+ 3109 ;; *************** function _display_Lcd_Layout *****************
+ 3110 ;; Defined at:
+ 3111 ;; line 236 in file "main.c"
+ 3112 ;; Parameters: Size Location Type
+ 3113 ;; None
+ 3114 ;; Auto vars: Size Location Type
+ 3115 ;; None
+ 3116 ;; Return value: Size Location Type
+ 3117 ;; 1 wreg void
+ 3118 ;; Registers used:
+ 3119 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ 3120 ;; Tracked objects:
+ 3121 ;; On entry : 0/0
+ 3122 ;; On exit : 0/0
+ 3123 ;; Unchanged: 0/0
+ 3124 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3125 ;; Params: 0 0 0 0 0
+ 3126 ;; Locals: 0 0 0 0 0
+ 3127 ;; Temps: 3 0 0 0 0
+ 3128 ;; Totals: 3 0 0 0 0
+ 3129 ;;Total ram usage: 3 bytes
+ 3130 ;; Hardware stack levels used: 1
+ 3131 ;; Hardware stack levels required when called: 3
+ 3132 ;; This function calls:
+ 3133 ;; _Lcd_Clear
+ 3134 ;; _Lcd_Set_Cursor
+ 3135 ;; _Lcd_Write_Char
+ 3136 ;; _Lcd_Write_String
+ 3137 ;; This function is called by:
+ 3138 ;; _main
+ 3139 ;; This function uses a non-reentrant model
+ 3140 ;;
+ 3141
+ 3142
+ 3143 ;psect for function _display_Lcd_Layout
+ 3144 0EE7 _display_Lcd_Layout:
+ 3145
+ 3146 ;main.c: 238: Lcd_Clear();
+ 3147
+ 3148 ;incstack = 0
+ 3149 ; Regs used in _display_Lcd_Layout: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
+ 3150 0EE7 120A 158A 24DF 120A 158A fcall _Lcd_Clear
+ 3151
+ 3152 ;main.c: 239: Lcd_Set_Cursor(1, 1);
+ 3153 0EEC 01F4 clrf Lcd_Set_Cursor@b
+ 3154 0EED 0AF4 incf Lcd_Set_Cursor@b,f
+ 3155 0EEE 3001 movlw 1
+ 3156 0EEF 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor
+ 3157
+ 3158 ;main.c: 240: Lcd_Write_String("HH:mm:ss -PP.P");
+ 3159 0EF4 3032 movlw (low ((STR_10-__stringbase)| (0+32768)))& (0+255)
+ 3160 0EF5 00F5 movwf Lcd_Write_String@a
+ 3161 0EF6 3080 movlw 128
+ 3162 0EF7 00F6 movwf Lcd_Write_String@a+1
+ 3163 0EF8 120A 158A 259F 120A 158A fcall _Lcd_Write_String
+ 3164
+ 3165 ;main.c: 241: Lcd_Write_Char(0xDF);
+ 3166 0EFD 30DF movlw 223
+ 3167 0EFE 120A 158A 2633 120A 158A fcall _Lcd_Write_Char
+ 3168
+ 3169 ;main.c: 242: Lcd_Write_Char('C');
+ 3170 0F03 3043 movlw 67
+ 3171 0F04 120A 158A 2633 120A 158A fcall _Lcd_Write_Char
+ 3172
+ 3173 ;main.c: 243: Lcd_Set_Cursor(2, 1);
+ 3174 0F09 01F4 clrf Lcd_Set_Cursor@b
+ 3175 0F0A 0AF4 incf Lcd_Set_Cursor@b,f
+ 3176 0F0B 3002 movlw 2
+ 3177 0F0C 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor
+ 3178
+ 3179 ;main.c: 244: Lcd_Write_String("ddd, DD/MM/YY ");
+ 3180 0F11 3012 movlw (low ((STR_11-__stringbase)| (0+32768)))& (0+255)
+ 3181 0F12 00F5 movwf Lcd_Write_String@a
+ 3182 0F13 3080 movlw 128
+ 3183 0F14 00F6 movwf Lcd_Write_String@a+1
+ 3184 0F15 120A 158A 259F 120A 158A fcall _Lcd_Write_String
+ 3185
+ 3186 ;main.c: 245: _delay((unsigned long)((2000)*(20000000/4000.0)));
+ 3187 0F1A 3033 movlw 51
+ 3188 0F1B 00FD movwf ??_display_Lcd_Layout+2
+ 3189 0F1C 30BB movlw 187
+ 3190 0F1D 00FC movwf ??_display_Lcd_Layout+1
+ 3191 0F1E 30DF movlw 223
+ 3192 0F1F 00FB movwf ??_display_Lcd_Layout
+ 3193 0F20 u1607:
+ 3194 0F20 0BFB decfsz ??_display_Lcd_Layout,f
+ 3195 0F21 2F20 goto u1607
+ 3196 0F22 0BFC decfsz ??_display_Lcd_Layout+1,f
+ 3197 0F23 2F20 goto u1607
+ 3198 0F24 0BFD decfsz ??_display_Lcd_Layout+2,f
+ 3199 0F25 2F20 goto u1607
+ 3200 0F26 2F27 nop2
+ 3201 0F27 0008 return
+ 3202 0F28 __end_of_display_Lcd_Layout:
+ 3203
+ 3204 psect text11
+ 3205 0DFE __ptext11:
+ 3206 ;; *************** function _display_Intro *****************
+ 3207 ;; Defined at:
+ 3208 ;; line 226 in file "main.c"
+ 3209 ;; Parameters: Size Location Type
+ 3210 ;; None
+ 3211 ;; Auto vars: Size Location Type
+ 3212 ;; None
+ 3213 ;; Return value: Size Location Type
+ 3214 ;; 1 wreg void
+ 3215 ;; Registers used:
+ 3216 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ 3217 ;; Tracked objects:
+ 3218 ;; On entry : 0/0
+ 3219 ;; On exit : 0/0
+ 3220 ;; Unchanged: 0/0
+ 3221 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3222 ;; Params: 0 0 0 0 0
+ 3223 ;; Locals: 0 0 0 0 0
+ 3224 ;; Temps: 3 0 0 0 0
+ 3225 ;; Totals: 3 0 0 0 0
+ 3226 ;;Total ram usage: 3 bytes
+ 3227 ;; Hardware stack levels used: 1
+ 3228 ;; Hardware stack levels required when called: 3
+ 3229 ;; This function calls:
+ 3230 ;; _Lcd_Clear
+ 3231 ;; _Lcd_Set_Cursor
+ 3232 ;; _Lcd_Write_String
+ 3233 ;; This function is called by:
+ 3234 ;; _main
+ 3235 ;; This function uses a non-reentrant model
+ 3236 ;;
+ 3237
+ 3238
+ 3239 ;psect for function _display_Intro
+ 3240 0DFE _display_Intro:
+ 3241
+ 3242 ;main.c: 228: Lcd_Clear();
+ 3243
+ 3244 ;incstack = 0
+ 3245 ; Regs used in _display_Intro: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
+ 3246 0DFE 120A 158A 24DF 120A 158A fcall _Lcd_Clear
+ 3247
+ 3248 ;main.c: 229: Lcd_Set_Cursor(1, 1);
+ 3249 0E03 01F4 clrf Lcd_Set_Cursor@b
+ 3250 0E04 0AF4 incf Lcd_Set_Cursor@b,f
+ 3251 0E05 3001 movlw 1
+ 3252 0E06 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor
+ 3253
+ 3254 ;main.c: 230: Lcd_Write_String("RTC/LCD with PIC");
+ 3255 0E0B 3001 movlw (low ((STR_8-__stringbase)| (0+32768)))& (0+255)
+ 3256 0E0C 00F5 movwf Lcd_Write_String@a
+ 3257 0E0D 3080 movlw 128
+ 3258 0E0E 00F6 movwf Lcd_Write_String@a+1
+ 3259 0E0F 120A 158A 259F 120A 158A fcall _Lcd_Write_String
+ 3260
+ 3261 ;main.c: 231: Lcd_Set_Cursor(2, 1);
+ 3262 0E14 01F4 clrf Lcd_Set_Cursor@b
+ 3263 0E15 0AF4 incf Lcd_Set_Cursor@b,f
+ 3264 0E16 3002 movlw 2
+ 3265 0E17 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor
+ 3266
+ 3267 ;main.c: 232: Lcd_Write_String(" Circuit Digest");
+ 3268 0E1C 3022 movlw (low ((STR_9-__stringbase)| (0+32768)))& (0+255)
+ 3269 0E1D 00F5 movwf Lcd_Write_String@a
+ 3270 0E1E 3080 movlw 128
+ 3271 0E1F 00F6 movwf Lcd_Write_String@a+1
+ 3272 0E20 120A 158A 259F 120A 158A fcall _Lcd_Write_String
+ 3273
+ 3274 ;main.c: 233: _delay((unsigned long)((2000)*(20000000/4000.0)));
+ 3275 0E25 3033 movlw 51
+ 3276 0E26 00FD movwf ??_display_Intro+2
+ 3277 0E27 30BB movlw 187
+ 3278 0E28 00FC movwf ??_display_Intro+1
+ 3279 0E29 30DF movlw 223
+ 3280 0E2A 00FB movwf ??_display_Intro
+ 3281 0E2B u1617:
+ 3282 0E2B 0BFB decfsz ??_display_Intro,f
+ 3283 0E2C 2E2B goto u1617
+ 3284 0E2D 0BFC decfsz ??_display_Intro+1,f
+ 3285 0E2E 2E2B goto u1617
+ 3286 0E2F 0BFD decfsz ??_display_Intro+2,f
+ 3287 0E30 2E2B goto u1617
+ 3288 0E31 2E32 nop2
+ 3289 0E32 0008 return
+ 3290 0E33 __end_of_display_Intro:
+ 3291
+ 3292 psect text12
+ 3293 0D9F __ptext12:
+ 3294 ;; *************** function _Lcd_Write_String *****************
+ 3295 ;; Defined at:
+ 3296 ;; line 91 in file "lcd.c"
+ 3297 ;; Parameters: Size Location Type
+ 3298 ;; a 2 5[COMMON] PTR unsigned char
+ 3299 ;; -> NULL(0), RAM(512), STR_11(16), STR_10(15),
+ 3300 ;; -> STR_9(16), STR_8(17), STR_7(4), STR_6(4),
+ 3301 ;; -> STR_5(4), STR_4(4), STR_3(4), STR_2(4),
+ 3302 ;; -> STR_1(4),
+ 3303 ;; Auto vars: Size Location Type
+ 3304 ;; i 2 7[COMMON] int
+ 3305 ;; Return value: Size Location Type
+ 3306 ;; 1 wreg void
+ 3307 ;; Registers used:
+ 3308 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ 3309 ;; Tracked objects:
+ 3310 ;; On entry : 0/0
+ 3311 ;; On exit : 0/0
+ 3312 ;; Unchanged: 0/0
+ 3313 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3314 ;; Params: 2 0 0 0 0
+ 3315 ;; Locals: 2 0 0 0 0
+ 3316 ;; Temps: 0 0 0 0 0
+ 3317 ;; Totals: 4 0 0 0 0
+ 3318 ;;Total ram usage: 4 bytes
+ 3319 ;; Hardware stack levels used: 1
+ 3320 ;; Hardware stack levels required when called: 2
+ 3321 ;; This function calls:
+ 3322 ;; _Lcd_Write_Char
+ 3323 ;; This function is called by:
+ 3324 ;; _display_Intro
+ 3325 ;; _display_Lcd_Layout
+ 3326 ;; _update_Display
+ 3327 ;; This function uses a non-reentrant model
+ 3328 ;;
+ 3329
+ 3330
+ 3331 ;psect for function _Lcd_Write_String
+ 3332 0D9F _Lcd_Write_String:
+ 3333
+ 3334 ;lcd.c: 92: int i;;lcd.c: 93: for (i = 0; a[i] != '\0'; i++)
+ 3335
+ 3336 ;incstack = 0
+ 3337 ; Regs used in _Lcd_Write_String: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
+ 3338 0D9F 01F7 clrf Lcd_Write_String@i
+ 3339 0DA0 01F8 clrf Lcd_Write_String@i+1
+ 3340 0DA1 l1722:
+ 3341 0DA1 0877 movf Lcd_Write_String@i,w
+ 3342 0DA2 0775 addwf Lcd_Write_String@a,w
+ 3343 0DA3 0084 movwf 4
+ 3344 0DA4 0878 movf Lcd_Write_String@i+1,w
+ 3345 0DA5 1803 skipnc
+ 3346 0DA6 0A78 incf Lcd_Write_String@i+1,w
+ 3347 0DA7 0776 addwf Lcd_Write_String@a+1,w
+ 3348 0DA8 1283 bcf 3,5 ;RP0=0, select bank0
+ 3349 0DA9 1303 bcf 3,6 ;RP1=0, select bank0
+ 3350 0DAA 00FF movwf 127
+ 3351 0DAB 120A 118A 2003 120A 158A fcall stringtab
+ 3352 0DB0 3A00 xorlw 0
+ 3353 0DB1 1903 btfsc 3,2
+ 3354 0DB2 0008 return
+ 3355
+ 3356 ;lcd.c: 94: Lcd_Write_Char(a[i]);
+ 3357 0DB3 0877 movf Lcd_Write_String@i,w
+ 3358 0DB4 0775 addwf Lcd_Write_String@a,w
+ 3359 0DB5 0084 movwf 4
+ 3360 0DB6 0878 movf Lcd_Write_String@i+1,w
+ 3361 0DB7 1803 skipnc
+ 3362 0DB8 0A78 incf Lcd_Write_String@i+1,w
+ 3363 0DB9 0776 addwf Lcd_Write_String@a+1,w
+ 3364 0DBA 00FF movwf 127
+ 3365 0DBB 120A 118A 2003 120A 158A fcall stringtab
+ 3366 0DC0 120A 158A 2633 120A 158A fcall _Lcd_Write_Char
+ 3367 0DC5 3001 movlw 1
+ 3368 0DC6 07F7 addwf Lcd_Write_String@i,f
+ 3369 0DC7 1803 skipnc
+ 3370 0DC8 0AF8 incf Lcd_Write_String@i+1,f
+ 3371 0DC9 3000 movlw 0
+ 3372 0DCA 07F8 addwf Lcd_Write_String@i+1,f
+ 3373 0DCB 2DA1 goto l1722
+ 3374 0DCC __end_of_Lcd_Write_String:
+ 3375
+ 3376 psect text13
+ 3377 0E33 __ptext13:
+ 3378 ;; *************** function _Lcd_Write_Char *****************
+ 3379 ;; Defined at:
+ 3380 ;; line 76 in file "lcd.c"
+ 3381 ;; Parameters: Size Location Type
+ 3382 ;; a 1 wreg unsigned char
+ 3383 ;; Auto vars: Size Location Type
+ 3384 ;; a 1 4[COMMON] unsigned char
+ 3385 ;; y 1 3[COMMON] unsigned char
+ 3386 ;; temp 1 2[COMMON] unsigned char
+ 3387 ;; Return value: Size Location Type
+ 3388 ;; 1 wreg void
+ 3389 ;; Registers used:
+ 3390 ;; wreg, status,2, status,0, pclath, cstack
+ 3391 ;; Tracked objects:
+ 3392 ;; On entry : 0/0
+ 3393 ;; On exit : 0/0
+ 3394 ;; Unchanged: 0/0
+ 3395 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3396 ;; Params: 0 0 0 0 0
+ 3397 ;; Locals: 3 0 0 0 0
+ 3398 ;; Temps: 1 0 0 0 0
+ 3399 ;; Totals: 4 0 0 0 0
+ 3400 ;;Total ram usage: 4 bytes
+ 3401 ;; Hardware stack levels used: 1
+ 3402 ;; Hardware stack levels required when called: 1
+ 3403 ;; This function calls:
+ 3404 ;; _Lcd_Port
+ 3405 ;; This function is called by:
+ 3406 ;; _display_Lcd_Layout
+ 3407 ;; _update_Display
+ 3408 ;; _Lcd_Write_String
+ 3409 ;; This function uses a non-reentrant model
+ 3410 ;;
+ 3411
+ 3412
+ 3413 ;psect for function _Lcd_Write_Char
+ 3414 0E33 _Lcd_Write_Char:
+ 3415
+ 3416 ;incstack = 0
+ 3417 ; Regs used in _Lcd_Write_Char: [wreg+status,2+status,0+pclath+cstack]
+ 3418 ;Lcd_Write_Char@a stored from wreg
+ 3419 0E33 00F4 movwf Lcd_Write_Char@a
+ 3420
+ 3421 ;lcd.c: 77: char temp, y;;lcd.c: 78: temp = a & 0x0F;
+ 3422 0E34 0874 movf Lcd_Write_Char@a,w
+ 3423 0E35 390F andlw 15
+ 3424 0E36 00F1 movwf ??_Lcd_Write_Char
+ 3425 0E37 0871 movf ??_Lcd_Write_Char,w
+ 3426 0E38 00F2 movwf Lcd_Write_Char@temp
+ 3427
+ 3428 ;lcd.c: 79: y = a & 0xF0;
+ 3429 0E39 0874 movf Lcd_Write_Char@a,w
+ 3430 0E3A 39F0 andlw 240
+ 3431 0E3B 00F1 movwf ??_Lcd_Write_Char
+ 3432 0E3C 0871 movf ??_Lcd_Write_Char,w
+ 3433 0E3D 00F3 movwf Lcd_Write_Char@y
+ 3434
+ 3435 ;lcd.c: 80: RD2 = 1;
+ 3436 0E3E 1283 bcf 3,5 ;RP0=0, select bank0
+ 3437 0E3F 1303 bcf 3,6 ;RP1=0, select bank0
+ 3438 0E40 1508 bsf 8,2 ;volatile
+ 3439
+ 3440 ;lcd.c: 81: Lcd_Port(y >> 4);
+ 3441 0E41 0873 movf Lcd_Write_Char@y,w
+ 3442 0E42 00F1 movwf ??_Lcd_Write_Char
+ 3443 0E43 3004 movlw 4
+ 3444 0E44 u855:
+ 3445 0E44 1003 clrc
+ 3446 0E45 0CF1 rrf ??_Lcd_Write_Char,f
+ 3447 0E46 3EFF addlw -1
+ 3448 0E47 1D03 skipz
+ 3449 0E48 2E44 goto u855
+ 3450 0E49 0871 movf ??_Lcd_Write_Char,w
+ 3451 0E4A 120A 158A 251E 120A 158A fcall _Lcd_Port
+ 3452
+ 3453 ;lcd.c: 82: RD3 = 1;
+ 3454 0E4F 1283 bcf 3,5 ;RP0=0, select bank0
+ 3455 0E50 1303 bcf 3,6 ;RP1=0, select bank0
+ 3456 0E51 1588 bsf 8,3 ;volatile
+ 3457
+ 3458 ;lcd.c: 83: _delay((unsigned long)((40)*(20000000/4000000.0)));
+ 3459 0E52 3042 movlw 66
+ 3460 0E53 00F1 movwf ??_Lcd_Write_Char
+ 3461 0E54 u1627:
+ 3462 0E54 0BF1 decfsz ??_Lcd_Write_Char,f
+ 3463 0E55 2E54 goto u1627
+ 3464 0E56 0000 nop
+ 3465
+ 3466 ;lcd.c: 84: RD3 = 0;
+ 3467 0E57 1283 bcf 3,5 ;RP0=0, select bank0
+ 3468 0E58 1303 bcf 3,6 ;RP1=0, select bank0
+ 3469 0E59 1188 bcf 8,3 ;volatile
+ 3470
+ 3471 ;lcd.c: 85: Lcd_Port(temp);
+ 3472 0E5A 0872 movf Lcd_Write_Char@temp,w
+ 3473 0E5B 120A 158A 251E 120A 158A fcall _Lcd_Port
+ 3474
+ 3475 ;lcd.c: 86: RD3 = 1;
+ 3476 0E60 1283 bcf 3,5 ;RP0=0, select bank0
+ 3477 0E61 1303 bcf 3,6 ;RP1=0, select bank0
+ 3478 0E62 1588 bsf 8,3 ;volatile
+ 3479
+ 3480 ;lcd.c: 87: _delay((unsigned long)((40)*(20000000/4000000.0)));
+ 3481 0E63 3042 movlw 66
+ 3482 0E64 00F1 movwf ??_Lcd_Write_Char
+ 3483 0E65 u1637:
+ 3484 0E65 0BF1 decfsz ??_Lcd_Write_Char,f
+ 3485 0E66 2E65 goto u1637
+ 3486 0E67 0000 nop
+ 3487
+ 3488 ;lcd.c: 88: RD3 = 0;
+ 3489 0E68 1283 bcf 3,5 ;RP0=0, select bank0
+ 3490 0E69 1303 bcf 3,6 ;RP1=0, select bank0
+ 3491 0E6A 1188 bcf 8,3 ;volatile
+ 3492 0E6B 0008 return
+ 3493 0E6C __end_of_Lcd_Write_Char:
+ 3494
+ 3495 psect text14
+ 3496 0F6B __ptext14:
+ 3497 ;; *************** function _Lcd_Set_Cursor *****************
+ 3498 ;; Defined at:
+ 3499 ;; line 41 in file "lcd.c"
+ 3500 ;; Parameters: Size Location Type
+ 3501 ;; a 1 wreg unsigned char
+ 3502 ;; b 1 4[COMMON] unsigned char
+ 3503 ;; Auto vars: Size Location Type
+ 3504 ;; a 1 7[COMMON] unsigned char
+ 3505 ;; temp 1 10[COMMON] unsigned char
+ 3506 ;; y 1 9[COMMON] unsigned char
+ 3507 ;; z 1 8[COMMON] unsigned char
+ 3508 ;; Return value: Size Location Type
+ 3509 ;; 1 wreg void
+ 3510 ;; Registers used:
+ 3511 ;; wreg, status,2, status,0, pclath, cstack
+ 3512 ;; Tracked objects:
+ 3513 ;; On entry : 0/0
+ 3514 ;; On exit : 0/0
+ 3515 ;; Unchanged: 0/0
+ 3516 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3517 ;; Params: 1 0 0 0 0
+ 3518 ;; Locals: 4 0 0 0 0
+ 3519 ;; Temps: 2 0 0 0 0
+ 3520 ;; Totals: 7 0 0 0 0
+ 3521 ;;Total ram usage: 7 bytes
+ 3522 ;; Hardware stack levels used: 1
+ 3523 ;; Hardware stack levels required when called: 2
+ 3524 ;; This function calls:
+ 3525 ;; _Lcd_Cmd
+ 3526 ;; This function is called by:
+ 3527 ;; _display_Intro
+ 3528 ;; _display_Lcd_Layout
+ 3529 ;; _update_Display
+ 3530 ;; This function uses a non-reentrant model
+ 3531 ;;
+ 3532
+ 3533
+ 3534 ;psect for function _Lcd_Set_Cursor
+ 3535 0F6B _Lcd_Set_Cursor:
+ 3536
+ 3537 ;incstack = 0
+ 3538 ; Regs used in _Lcd_Set_Cursor: [wreg+status,2+status,0+pclath+cstack]
+ 3539 ;Lcd_Set_Cursor@a stored from wreg
+ 3540 0F6B 00F7 movwf Lcd_Set_Cursor@a
+ 3541
+ 3542 ;lcd.c: 42: char temp, z, y;;lcd.c: 43: if (a == 1) {
+ 3543 0F6C 0377 decf Lcd_Set_Cursor@a,w
+ 3544 0F6D 1D03 btfss 3,2
+ 3545 0F6E 2F90 goto l1706
+ 3546
+ 3547 ;lcd.c: 44: temp = 0x80 + b - 1;
+ 3548 0F6F 0874 movf Lcd_Set_Cursor@b,w
+ 3549 0F70 3E7F addlw 127
+ 3550 0F71 00F5 movwf ??_Lcd_Set_Cursor
+ 3551 0F72 0875 movf ??_Lcd_Set_Cursor,w
+ 3552 0F73 00FA movwf Lcd_Set_Cursor@temp
+ 3553
+ 3554 ;lcd.c: 45: z = temp >> 4;
+ 3555 0F74 087A movf Lcd_Set_Cursor@temp,w
+ 3556 0F75 00F5 movwf ??_Lcd_Set_Cursor
+ 3557 0F76 3004 movlw 4
+ 3558 0F77 u935:
+ 3559 0F77 1003 clrc
+ 3560 0F78 0CF5 rrf ??_Lcd_Set_Cursor,f
+ 3561 0F79 3EFF addlw -1
+ 3562 0F7A 1D03 skipz
+ 3563 0F7B 2F77 goto u935
+ 3564 0F7C 0875 movf ??_Lcd_Set_Cursor,w
+ 3565 0F7D 00F6 movwf ??_Lcd_Set_Cursor+1
+ 3566 0F7E 0876 movf ??_Lcd_Set_Cursor+1,w
+ 3567 0F7F 00F8 movwf Lcd_Set_Cursor@z
+ 3568
+ 3569 ;lcd.c: 46: y = temp & 0x0F;
+ 3570 0F80 087A movf Lcd_Set_Cursor@temp,w
+ 3571 0F81 390F andlw 15
+ 3572 0F82 00F5 movwf ??_Lcd_Set_Cursor
+ 3573 0F83 0875 movf ??_Lcd_Set_Cursor,w
+ 3574 0F84 00F9 movwf Lcd_Set_Cursor@y
+ 3575
+ 3576 ;lcd.c: 47: Lcd_Cmd(z);
+ 3577 0F85 0878 movf Lcd_Set_Cursor@z,w
+ 3578 0F86 120A 158A 2538 120A 158A fcall _Lcd_Cmd
+ 3579
+ 3580 ;lcd.c: 48: Lcd_Cmd(y);
+ 3581 0F8B 0879 movf Lcd_Set_Cursor@y,w
+ 3582 0F8C 120A 158A 2538 fcall _Lcd_Cmd
+ 3583
+ 3584 ;lcd.c: 49: } else if (a == 2) {
+ 3585 0F8F 0008 return
+ 3586 0F90 l1706:
+ 3587 0F90 3002 movlw 2
+ 3588 0F91 0677 xorwf Lcd_Set_Cursor@a,w
+ 3589 0F92 1D03 btfss 3,2
+ 3590 0F93 0008 return
+ 3591
+ 3592 ;lcd.c: 50: temp = 0xC0 + b - 1;
+ 3593 0F94 0874 movf Lcd_Set_Cursor@b,w
+ 3594 0F95 3EBF addlw 191
+ 3595 0F96 00F5 movwf ??_Lcd_Set_Cursor
+ 3596 0F97 0875 movf ??_Lcd_Set_Cursor,w
+ 3597 0F98 00FA movwf Lcd_Set_Cursor@temp
+ 3598
+ 3599 ;lcd.c: 51: z = temp >> 4;
+ 3600 0F99 087A movf Lcd_Set_Cursor@temp,w
+ 3601 0F9A 00F5 movwf ??_Lcd_Set_Cursor
+ 3602 0F9B 3004 movlw 4
+ 3603 0F9C u955:
+ 3604 0F9C 1003 clrc
+ 3605 0F9D 0CF5 rrf ??_Lcd_Set_Cursor,f
+ 3606 0F9E 3EFF addlw -1
+ 3607 0F9F 1D03 skipz
+ 3608 0FA0 2F9C goto u955
+ 3609 0FA1 0875 movf ??_Lcd_Set_Cursor,w
+ 3610 0FA2 00F6 movwf ??_Lcd_Set_Cursor+1
+ 3611 0FA3 0876 movf ??_Lcd_Set_Cursor+1,w
+ 3612 0FA4 00F8 movwf Lcd_Set_Cursor@z
+ 3613
+ 3614 ;lcd.c: 52: y = temp & 0x0F;
+ 3615 0FA5 087A movf Lcd_Set_Cursor@temp,w
+ 3616 0FA6 390F andlw 15
+ 3617 0FA7 00F5 movwf ??_Lcd_Set_Cursor
+ 3618 0FA8 0875 movf ??_Lcd_Set_Cursor,w
+ 3619 0FA9 00F9 movwf Lcd_Set_Cursor@y
+ 3620
+ 3621 ;lcd.c: 53: Lcd_Cmd(z);
+ 3622 0FAA 0878 movf Lcd_Set_Cursor@z,w
+ 3623 0FAB 120A 158A 2538 120A 158A fcall _Lcd_Cmd
+ 3624
+ 3625 ;lcd.c: 54: Lcd_Cmd(y);
+ 3626 0FB0 0879 movf Lcd_Set_Cursor@y,w
+ 3627 0FB1 120A 158A 2538 fcall _Lcd_Cmd
+ 3628 0FB4 0008 return
+ 3629 0FB5 __end_of_Lcd_Set_Cursor:
+ 3630
+ 3631 psect text15
+ 3632 0CDF __ptext15:
+ 3633 ;; *************** function _Lcd_Clear *****************
+ 3634 ;; Defined at:
+ 3635 ;; line 36 in file "lcd.c"
+ 3636 ;; Parameters: Size Location Type
+ 3637 ;; None
+ 3638 ;; Auto vars: Size Location Type
+ 3639 ;; None
+ 3640 ;; Return value: Size Location Type
+ 3641 ;; 1 wreg void
+ 3642 ;; Registers used:
+ 3643 ;; wreg, status,2, status,0, pclath, cstack
+ 3644 ;; Tracked objects:
+ 3645 ;; On entry : 0/0
+ 3646 ;; On exit : 0/0
+ 3647 ;; Unchanged: 0/0
+ 3648 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3649 ;; Params: 0 0 0 0 0
+ 3650 ;; Locals: 0 0 0 0 0
+ 3651 ;; Temps: 0 0 0 0 0
+ 3652 ;; Totals: 0 0 0 0 0
+ 3653 ;;Total ram usage: 0 bytes
+ 3654 ;; Hardware stack levels used: 1
+ 3655 ;; Hardware stack levels required when called: 2
+ 3656 ;; This function calls:
+ 3657 ;; _Lcd_Cmd
+ 3658 ;; This function is called by:
+ 3659 ;; _display_Intro
+ 3660 ;; _display_Lcd_Layout
+ 3661 ;; This function uses a non-reentrant model
+ 3662 ;;
+ 3663
+ 3664
+ 3665 ;psect for function _Lcd_Clear
+ 3666 0CDF _Lcd_Clear:
+ 3667
+ 3668 ;lcd.c: 37: Lcd_Cmd(0);
+ 3669
+ 3670 ;incstack = 0
+ 3671 ; Regs used in _Lcd_Clear: [wreg+status,2+status,0+pclath+cstack]
+ 3672 0CDF 3000 movlw 0
+ 3673 0CE0 120A 158A 2538 120A 158A fcall _Lcd_Cmd
+ 3674
+ 3675 ;lcd.c: 38: Lcd_Cmd(1);
+ 3676 0CE5 3001 movlw 1
+ 3677 0CE6 120A 158A 2538 fcall _Lcd_Cmd
+ 3678 0CE9 0008 return
+ 3679 0CEA __end_of_Lcd_Clear:
+ 3680
+ 3681 psect text16
+ 3682 0339 __ptext16:
+ 3683 ;; *************** function _Update_Current_Date_Time *****************
+ 3684 ;; Defined at:
+ 3685 ;; line 94 in file "ds3231.c"
+ 3686 ;; Parameters: Size Location Type
+ 3687 ;; None
+ 3688 ;; Auto vars: Size Location Type
+ 3689 ;; None
+ 3690 ;; Return value: Size Location Type
+ 3691 ;; 1 wreg void
+ 3692 ;; Registers used:
+ 3693 ;; wreg, status,2, status,0, pclath, cstack
+ 3694 ;; Tracked objects:
+ 3695 ;; On entry : 0/0
+ 3696 ;; On exit : 0/0
+ 3697 ;; Unchanged: 0/0
+ 3698 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3699 ;; Params: 0 0 0 0 0
+ 3700 ;; Locals: 0 0 0 0 0
+ 3701 ;; Temps: 0 0 0 0 0
+ 3702 ;; Totals: 0 0 0 0 0
+ 3703 ;;Total ram usage: 0 bytes
+ 3704 ;; Hardware stack levels used: 1
+ 3705 ;; Hardware stack levels required when called: 2
+ 3706 ;; This function calls:
+ 3707 ;; _BCD_2_DEC
+ 3708 ;; _I2C_Master_Read
+ 3709 ;; _I2C_Master_Repeated_Start
+ 3710 ;; _I2C_Master_Start
+ 3711 ;; _I2C_Master_Stop
+ 3712 ;; _I2C_Master_Write
+ 3713 ;; This function is called by:
+ 3714 ;; _main
+ 3715 ;; This function uses a non-reentrant model
+ 3716 ;;
+ 3717
+ 3718
+ 3719 ;psect for function _Update_Current_Date_Time
+ 3720 0339 _Update_Current_Date_Time:
+ 3721
+ 3722 ;ds3231.c: 96: I2C_Master_Start();
+ 3723
+ 3724 ;incstack = 0
+ 3725 ; Regs used in _Update_Current_Date_Time: [wreg+status,2+status,0+pclath+cstack]
+ 3726 0339 120A 158A 24B8 120A 118A fcall _I2C_Master_Start
+ 3727
+ 3728 ;ds3231.c: 97: I2C_Master_Write(0xD0);
+ 3729 033E 30D0 movlw 208
+ 3730 033F 00F0 movwf I2C_Master_Write@data
+ 3731 0340 3000 movlw 0
+ 3732 0341 00F1 movwf I2C_Master_Write@data+1
+ 3733 0342 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3734
+ 3735 ;ds3231.c: 98: I2C_Master_Write(0);
+ 3736 0347 3000 movlw 0
+ 3737 0348 00F0 movwf I2C_Master_Write@data
+ 3738 0349 00F1 movwf I2C_Master_Write@data+1
+ 3739 034A 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3740
+ 3741 ;ds3231.c: 99: I2C_Master_Repeated_Start();
+ 3742 034F 120A 158A 24B1 120A 118A fcall _I2C_Master_Repeated_Start
+ 3743
+ 3744 ;ds3231.c: 102: I2C_Master_Write(0xD1);
+ 3745 0354 30D1 movlw 209
+ 3746 0355 00F0 movwf I2C_Master_Write@data
+ 3747 0356 3000 movlw 0
+ 3748 0357 00F1 movwf I2C_Master_Write@data+1
+ 3749 0358 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3750
+ 3751 ;ds3231.c: 103: sec = BCD_2_DEC(I2C_Master_Read(1));
+ 3752 035D 3001 movlw 1
+ 3753 035E 00F0 movwf I2C_Master_Read@ack
+ 3754 035F 3000 movlw 0
+ 3755 0360 00F1 movwf I2C_Master_Read@ack+1
+ 3756 0361 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3757 0366 0871 movf ?_I2C_Master_Read+1,w
+ 3758 0367 00F7 movwf BCD_2_DEC@to_convert+1
+ 3759 0368 0870 movf ?_I2C_Master_Read,w
+ 3760 0369 00F6 movwf BCD_2_DEC@to_convert
+ 3761 036A 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3762 036F 0877 movf ?_BCD_2_DEC+1,w
+ 3763 0370 1283 bcf 3,5 ;RP0=0, select bank0
+ 3764 0371 1303 bcf 3,6 ;RP1=0, select bank0
+ 3765 0372 00ED movwf _sec+1
+ 3766 0373 0876 movf ?_BCD_2_DEC,w
+ 3767 0374 00EC movwf _sec
+ 3768
+ 3769 ;ds3231.c: 104: min = BCD_2_DEC(I2C_Master_Read(1));
+ 3770 0375 3001 movlw 1
+ 3771 0376 00F0 movwf I2C_Master_Read@ack
+ 3772 0377 3000 movlw 0
+ 3773 0378 00F1 movwf I2C_Master_Read@ack+1
+ 3774 0379 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3775 037E 0871 movf ?_I2C_Master_Read+1,w
+ 3776 037F 00F7 movwf BCD_2_DEC@to_convert+1
+ 3777 0380 0870 movf ?_I2C_Master_Read,w
+ 3778 0381 00F6 movwf BCD_2_DEC@to_convert
+ 3779 0382 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3780 0387 0877 movf ?_BCD_2_DEC+1,w
+ 3781 0388 1283 bcf 3,5 ;RP0=0, select bank0
+ 3782 0389 1303 bcf 3,6 ;RP1=0, select bank0
+ 3783 038A 00EB movwf _min+1
+ 3784 038B 0876 movf ?_BCD_2_DEC,w
+ 3785 038C 00EA movwf _min
+ 3786
+ 3787 ;ds3231.c: 105: hour = BCD_2_DEC(I2C_Master_Read(1));
+ 3788 038D 3001 movlw 1
+ 3789 038E 00F0 movwf I2C_Master_Read@ack
+ 3790 038F 3000 movlw 0
+ 3791 0390 00F1 movwf I2C_Master_Read@ack+1
+ 3792 0391 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3793 0396 0871 movf ?_I2C_Master_Read+1,w
+ 3794 0397 00F7 movwf BCD_2_DEC@to_convert+1
+ 3795 0398 0870 movf ?_I2C_Master_Read,w
+ 3796 0399 00F6 movwf BCD_2_DEC@to_convert
+ 3797 039A 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3798 039F 0877 movf ?_BCD_2_DEC+1,w
+ 3799 03A0 1283 bcf 3,5 ;RP0=0, select bank0
+ 3800 03A1 1303 bcf 3,6 ;RP1=0, select bank0
+ 3801 03A2 00E9 movwf _hour+1
+ 3802 03A3 0876 movf ?_BCD_2_DEC,w
+ 3803 03A4 00E8 movwf _hour
+ 3804
+ 3805 ;ds3231.c: 106: weekday = I2C_Master_Read(1);
+ 3806 03A5 3001 movlw 1
+ 3807 03A6 00F0 movwf I2C_Master_Read@ack
+ 3808 03A7 3000 movlw 0
+ 3809 03A8 00F1 movwf I2C_Master_Read@ack+1
+ 3810 03A9 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3811 03AE 0870 movf ?_I2C_Master_Read,w
+ 3812 03AF 1683 bsf 3,5 ;RP0=1, select bank1
+ 3813 03B0 1303 bcf 3,6 ;RP1=0, select bank1
+ 3814 03B1 00CA movwf _weekday^(0+128)
+ 3815 03B2 0871 movf ?_I2C_Master_Read+1,w
+ 3816 03B3 00CB movwf (_weekday+1)^(0+128)
+ 3817
+ 3818 ;ds3231.c: 107: date = BCD_2_DEC(I2C_Master_Read(1));
+ 3819 03B4 3001 movlw 1
+ 3820 03B5 00F0 movwf I2C_Master_Read@ack
+ 3821 03B6 3000 movlw 0
+ 3822 03B7 00F1 movwf I2C_Master_Read@ack+1
+ 3823 03B8 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3824 03BD 0871 movf ?_I2C_Master_Read+1,w
+ 3825 03BE 00F7 movwf BCD_2_DEC@to_convert+1
+ 3826 03BF 0870 movf ?_I2C_Master_Read,w
+ 3827 03C0 00F6 movwf BCD_2_DEC@to_convert
+ 3828 03C1 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3829 03C6 0877 movf ?_BCD_2_DEC+1,w
+ 3830 03C7 1283 bcf 3,5 ;RP0=0, select bank0
+ 3831 03C8 1303 bcf 3,6 ;RP1=0, select bank0
+ 3832 03C9 00E7 movwf _date+1
+ 3833 03CA 0876 movf ?_BCD_2_DEC,w
+ 3834 03CB 00E6 movwf _date
+ 3835
+ 3836 ;ds3231.c: 108: month = BCD_2_DEC(I2C_Master_Read(1));
+ 3837 03CC 3001 movlw 1
+ 3838 03CD 00F0 movwf I2C_Master_Read@ack
+ 3839 03CE 3000 movlw 0
+ 3840 03CF 00F1 movwf I2C_Master_Read@ack+1
+ 3841 03D0 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3842 03D5 0871 movf ?_I2C_Master_Read+1,w
+ 3843 03D6 00F7 movwf BCD_2_DEC@to_convert+1
+ 3844 03D7 0870 movf ?_I2C_Master_Read,w
+ 3845 03D8 00F6 movwf BCD_2_DEC@to_convert
+ 3846 03D9 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3847 03DE 0877 movf ?_BCD_2_DEC+1,w
+ 3848 03DF 1283 bcf 3,5 ;RP0=0, select bank0
+ 3849 03E0 1303 bcf 3,6 ;RP1=0, select bank0
+ 3850 03E1 00E5 movwf _month+1
+ 3851 03E2 0876 movf ?_BCD_2_DEC,w
+ 3852 03E3 00E4 movwf _month
+ 3853
+ 3854 ;ds3231.c: 109: year = BCD_2_DEC(I2C_Master_Read(1));
+ 3855 03E4 3001 movlw 1
+ 3856 03E5 00F0 movwf I2C_Master_Read@ack
+ 3857 03E6 3000 movlw 0
+ 3858 03E7 00F1 movwf I2C_Master_Read@ack+1
+ 3859 03E8 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3860 03ED 0871 movf ?_I2C_Master_Read+1,w
+ 3861 03EE 00F7 movwf BCD_2_DEC@to_convert+1
+ 3862 03EF 0870 movf ?_I2C_Master_Read,w
+ 3863 03F0 00F6 movwf BCD_2_DEC@to_convert
+ 3864 03F1 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3865 03F6 0877 movf ?_BCD_2_DEC+1,w
+ 3866 03F7 1283 bcf 3,5 ;RP0=0, select bank0
+ 3867 03F8 1303 bcf 3,6 ;RP1=0, select bank0
+ 3868 03F9 00E3 movwf _year+1
+ 3869 03FA 0876 movf ?_BCD_2_DEC,w
+ 3870 03FB 00E2 movwf _year
+ 3871
+ 3872 ;ds3231.c: 110: I2C_Master_Stop();
+ 3873 03FC 120A 158A 24BF 120A 118A fcall _I2C_Master_Stop
+ 3874
+ 3875 ;ds3231.c: 114: I2C_Master_Start();
+ 3876 0401 120A 158A 24B8 120A 118A fcall _I2C_Master_Start
+ 3877
+ 3878 ;ds3231.c: 115: I2C_Master_Write(0xD1);
+ 3879 0406 30D1 movlw 209
+ 3880 0407 00F0 movwf I2C_Master_Write@data
+ 3881 0408 3000 movlw 0
+ 3882 0409 00F1 movwf I2C_Master_Write@data+1
+ 3883 040A 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3884
+ 3885 ;ds3231.c: 116: I2C_Master_Read(1);
+ 3886 040F 3001 movlw 1
+ 3887 0410 00F0 movwf I2C_Master_Read@ack
+ 3888 0411 3000 movlw 0
+ 3889 0412 00F1 movwf I2C_Master_Read@ack+1
+ 3890 0413 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3891
+ 3892 ;ds3231.c: 117: I2C_Master_Stop();
+ 3893 0418 120A 158A 24BF fcall _I2C_Master_Stop
+ 3894 041B 0008 return
+ 3895 041C __end_of_Update_Current_Date_Time:
+ 3896
+ 3897 psect text17
+ 3898 041C __ptext17:
+ 3899 ;; *************** function _Read_Alarms_Temp *****************
+ 3900 ;; Defined at:
+ 3901 ;; line 27 in file "ds3231.c"
+ 3902 ;; Parameters: Size Location Type
+ 3903 ;; None
+ 3904 ;; Auto vars: Size Location Type
+ 3905 ;; None
+ 3906 ;; Return value: Size Location Type
+ 3907 ;; 1 wreg void
+ 3908 ;; Registers used:
+ 3909 ;; wreg, status,2, status,0, pclath, cstack
+ 3910 ;; Tracked objects:
+ 3911 ;; On entry : 0/0
+ 3912 ;; On exit : 0/0
+ 3913 ;; Unchanged: 0/0
+ 3914 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 3915 ;; Params: 0 0 0 0 0
+ 3916 ;; Locals: 0 0 0 0 0
+ 3917 ;; Temps: 0 0 0 0 0
+ 3918 ;; Totals: 0 0 0 0 0
+ 3919 ;;Total ram usage: 0 bytes
+ 3920 ;; Hardware stack levels used: 1
+ 3921 ;; Hardware stack levels required when called: 2
+ 3922 ;; This function calls:
+ 3923 ;; _BCD_2_DEC
+ 3924 ;; _I2C_Master_Read
+ 3925 ;; _I2C_Master_Repeated_Start
+ 3926 ;; _I2C_Master_Start
+ 3927 ;; _I2C_Master_Stop
+ 3928 ;; _I2C_Master_Write
+ 3929 ;; This function is called by:
+ 3930 ;; _main
+ 3931 ;; This function uses a non-reentrant model
+ 3932 ;;
+ 3933
+ 3934
+ 3935 ;psect for function _Read_Alarms_Temp
+ 3936 041C _Read_Alarms_Temp:
+ 3937
+ 3938 ;ds3231.c: 28: I2C_Master_Start();
+ 3939
+ 3940 ;incstack = 0
+ 3941 ; Regs used in _Read_Alarms_Temp: [wreg+status,2+status,0+pclath+cstack]
+ 3942 041C 120A 158A 24B8 120A 118A fcall _I2C_Master_Start
+ 3943
+ 3944 ;ds3231.c: 29: I2C_Master_Write(0xD0);
+ 3945 0421 30D0 movlw 208
+ 3946 0422 00F0 movwf I2C_Master_Write@data
+ 3947 0423 3000 movlw 0
+ 3948 0424 00F1 movwf I2C_Master_Write@data+1
+ 3949 0425 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3950
+ 3951 ;ds3231.c: 30: I2C_Master_Write(0x07);
+ 3952 042A 3007 movlw 7
+ 3953 042B 00F0 movwf I2C_Master_Write@data
+ 3954 042C 3000 movlw 0
+ 3955 042D 00F1 movwf I2C_Master_Write@data+1
+ 3956 042E 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3957
+ 3958 ;ds3231.c: 31: I2C_Master_Repeated_Start();
+ 3959 0433 120A 158A 24B1 120A 118A fcall _I2C_Master_Repeated_Start
+ 3960
+ 3961 ;ds3231.c: 34: I2C_Master_Write(0xD1);
+ 3962 0438 30D1 movlw 209
+ 3963 0439 00F0 movwf I2C_Master_Write@data
+ 3964 043A 3000 movlw 0
+ 3965 043B 00F1 movwf I2C_Master_Write@data+1
+ 3966 043C 120A 158A 24C6 120A 118A fcall _I2C_Master_Write
+ 3967
+ 3968 ;ds3231.c: 35: alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
+ 3969 0441 3001 movlw 1
+ 3970 0442 00F0 movwf I2C_Master_Read@ack
+ 3971 0443 3000 movlw 0
+ 3972 0444 00F1 movwf I2C_Master_Read@ack+1
+ 3973 0445 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3974 044A 0871 movf ?_I2C_Master_Read+1,w
+ 3975 044B 00F7 movwf BCD_2_DEC@to_convert+1
+ 3976 044C 0870 movf ?_I2C_Master_Read,w
+ 3977 044D 00F6 movwf BCD_2_DEC@to_convert
+ 3978 044E 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3979 0453 0877 movf ?_BCD_2_DEC+1,w
+ 3980 0454 1283 bcf 3,5 ;RP0=0, select bank0
+ 3981 0455 1303 bcf 3,6 ;RP1=0, select bank0
+ 3982 0456 00B3 movwf _alarm1_sec+1
+ 3983 0457 0876 movf ?_BCD_2_DEC,w
+ 3984 0458 00B2 movwf _alarm1_sec
+ 3985
+ 3986 ;ds3231.c: 36: alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
+ 3987 0459 3001 movlw 1
+ 3988 045A 00F0 movwf I2C_Master_Read@ack
+ 3989 045B 3000 movlw 0
+ 3990 045C 00F1 movwf I2C_Master_Read@ack+1
+ 3991 045D 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 3992 0462 0871 movf ?_I2C_Master_Read+1,w
+ 3993 0463 00F7 movwf BCD_2_DEC@to_convert+1
+ 3994 0464 0870 movf ?_I2C_Master_Read,w
+ 3995 0465 00F6 movwf BCD_2_DEC@to_convert
+ 3996 0466 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 3997 046B 0877 movf ?_BCD_2_DEC+1,w
+ 3998 046C 1283 bcf 3,5 ;RP0=0, select bank0
+ 3999 046D 1303 bcf 3,6 ;RP1=0, select bank0
+ 4000 046E 00B1 movwf _alarm1_min+1
+ 4001 046F 0876 movf ?_BCD_2_DEC,w
+ 4002 0470 00B0 movwf _alarm1_min
+ 4003
+ 4004 ;ds3231.c: 37: alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
+ 4005 0471 3001 movlw 1
+ 4006 0472 00F0 movwf I2C_Master_Read@ack
+ 4007 0473 3000 movlw 0
+ 4008 0474 00F1 movwf I2C_Master_Read@ack+1
+ 4009 0475 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4010 047A 0871 movf ?_I2C_Master_Read+1,w
+ 4011 047B 00F7 movwf BCD_2_DEC@to_convert+1
+ 4012 047C 0870 movf ?_I2C_Master_Read,w
+ 4013 047D 00F6 movwf BCD_2_DEC@to_convert
+ 4014 047E 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 4015 0483 0877 movf ?_BCD_2_DEC+1,w
+ 4016 0484 1283 bcf 3,5 ;RP0=0, select bank0
+ 4017 0485 1303 bcf 3,6 ;RP1=0, select bank0
+ 4018 0486 00AF movwf _alarm1_hour+1
+ 4019 0487 0876 movf ?_BCD_2_DEC,w
+ 4020 0488 00AE movwf _alarm1_hour
+ 4021
+ 4022 ;ds3231.c: 38: I2C_Master_Read(1);
+ 4023 0489 3001 movlw 1
+ 4024 048A 00F0 movwf I2C_Master_Read@ack
+ 4025 048B 3000 movlw 0
+ 4026 048C 00F1 movwf I2C_Master_Read@ack+1
+ 4027 048D 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4028
+ 4029 ;ds3231.c: 39: alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
+ 4030 0492 3001 movlw 1
+ 4031 0493 00F0 movwf I2C_Master_Read@ack
+ 4032 0494 3000 movlw 0
+ 4033 0495 00F1 movwf I2C_Master_Read@ack+1
+ 4034 0496 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4035 049B 0871 movf ?_I2C_Master_Read+1,w
+ 4036 049C 00F7 movwf BCD_2_DEC@to_convert+1
+ 4037 049D 0870 movf ?_I2C_Master_Read,w
+ 4038 049E 00F6 movwf BCD_2_DEC@to_convert
+ 4039 049F 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 4040 04A4 0877 movf ?_BCD_2_DEC+1,w
+ 4041 04A5 1283 bcf 3,5 ;RP0=0, select bank0
+ 4042 04A6 1303 bcf 3,6 ;RP1=0, select bank0
+ 4043 04A7 00AD movwf _alarm2_min+1
+ 4044 04A8 0876 movf ?_BCD_2_DEC,w
+ 4045 04A9 00AC movwf _alarm2_min
+ 4046
+ 4047 ;ds3231.c: 40: alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
+ 4048 04AA 3001 movlw 1
+ 4049 04AB 00F0 movwf I2C_Master_Read@ack
+ 4050 04AC 3000 movlw 0
+ 4051 04AD 00F1 movwf I2C_Master_Read@ack+1
+ 4052 04AE 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4053 04B3 0871 movf ?_I2C_Master_Read+1,w
+ 4054 04B4 00F7 movwf BCD_2_DEC@to_convert+1
+ 4055 04B5 0870 movf ?_I2C_Master_Read,w
+ 4056 04B6 00F6 movwf BCD_2_DEC@to_convert
+ 4057 04B7 120A 118A 2074 120A 118A fcall _BCD_2_DEC
+ 4058 04BC 0877 movf ?_BCD_2_DEC+1,w
+ 4059 04BD 1283 bcf 3,5 ;RP0=0, select bank0
+ 4060 04BE 1303 bcf 3,6 ;RP1=0, select bank0
+ 4061 04BF 00AB movwf _alarm2_hour+1
+ 4062 04C0 0876 movf ?_BCD_2_DEC,w
+ 4063 04C1 00AA movwf _alarm2_hour
+ 4064
+ 4065 ;ds3231.c: 41: I2C_Master_Read(1);
+ 4066 04C2 3001 movlw 1
+ 4067 04C3 00F0 movwf I2C_Master_Read@ack
+ 4068 04C4 3000 movlw 0
+ 4069 04C5 00F1 movwf I2C_Master_Read@ack+1
+ 4070 04C6 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4071
+ 4072 ;ds3231.c: 42: control_reg = I2C_Master_Read(1);
+ 4073 04CB 3001 movlw 1
+ 4074 04CC 00F0 movwf I2C_Master_Read@ack
+ 4075 04CD 3000 movlw 0
+ 4076 04CE 00F1 movwf I2C_Master_Read@ack+1
+ 4077 04CF 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4078 04D4 0871 movf ?_I2C_Master_Read+1,w
+ 4079 04D5 1283 bcf 3,5 ;RP0=0, select bank0
+ 4080 04D6 1303 bcf 3,6 ;RP1=0, select bank0
+ 4081 04D7 00A5 movwf _control_reg+1
+ 4082 04D8 0870 movf ?_I2C_Master_Read,w
+ 4083 04D9 00A4 movwf _control_reg
+ 4084
+ 4085 ;ds3231.c: 43: status_reg = I2C_Master_Read(1);
+ 4086 04DA 3001 movlw 1
+ 4087 04DB 00F0 movwf I2C_Master_Read@ack
+ 4088 04DC 3000 movlw 0
+ 4089 04DD 00F1 movwf I2C_Master_Read@ack+1
+ 4090 04DE 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4091 04E3 0871 movf ?_I2C_Master_Read+1,w
+ 4092 04E4 1683 bsf 3,5 ;RP0=1, select bank1
+ 4093 04E5 1303 bcf 3,6 ;RP1=0, select bank1
+ 4094 04E6 00CD movwf (_status_reg+1)^(0+128)
+ 4095 04E7 0870 movf ?_I2C_Master_Read,w
+ 4096 04E8 00CC movwf _status_reg^(0+128)
+ 4097
+ 4098 ;ds3231.c: 44: I2C_Master_Read(1);
+ 4099 04E9 3001 movlw 1
+ 4100 04EA 00F0 movwf I2C_Master_Read@ack
+ 4101 04EB 3000 movlw 0
+ 4102 04EC 00F1 movwf I2C_Master_Read@ack+1
+ 4103 04ED 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4104
+ 4105 ;ds3231.c: 46: temperature_msb = I2C_Master_Read(1);
+ 4106 04F2 3001 movlw 1
+ 4107 04F3 00F0 movwf I2C_Master_Read@ack
+ 4108 04F4 3000 movlw 0
+ 4109 04F5 00F1 movwf I2C_Master_Read@ack+1
+ 4110 04F6 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4111 04FB 0871 movf ?_I2C_Master_Read+1,w
+ 4112 04FC 1283 bcf 3,5 ;RP0=0, select bank0
+ 4113 04FD 1303 bcf 3,6 ;RP1=0, select bank0
+ 4114 04FE 00A1 movwf _temperature_msb+1
+ 4115 04FF 0870 movf ?_I2C_Master_Read,w
+ 4116 0500 00A0 movwf _temperature_msb
+ 4117
+ 4118 ;ds3231.c: 48: temperature_lsb = I2C_Master_Read(0);
+ 4119 0501 3000 movlw 0
+ 4120 0502 00F0 movwf I2C_Master_Read@ack
+ 4121 0503 00F1 movwf I2C_Master_Read@ack+1
+ 4122 0504 120A 158A 2573 120A 118A fcall _I2C_Master_Read
+ 4123 0509 0871 movf ?_I2C_Master_Read+1,w
+ 4124 050A 1283 bcf 3,5 ;RP0=0, select bank0
+ 4125 050B 1303 bcf 3,6 ;RP1=0, select bank0
+ 4126 050C 00A3 movwf _temperature_lsb+1
+ 4127 050D 0870 movf ?_I2C_Master_Read,w
+ 4128 050E 00A2 movwf _temperature_lsb
+ 4129
+ 4130 ;ds3231.c: 49: I2C_Master_Stop();
+ 4131 050F 120A 158A 24BF fcall _I2C_Master_Stop
+ 4132 0512 0008 return
+ 4133 0513 __end_of_Read_Alarms_Temp:
+ 4134
+ 4135 psect text18
+ 4136 0CC6 __ptext18:
+ 4137 ;; *************** function _I2C_Master_Write *****************
+ 4138 ;; Defined at:
+ 4139 ;; line 42 in file "i2c.c"
+ 4140 ;; Parameters: Size Location Type
+ 4141 ;; data 2 0[COMMON] unsigned int
+ 4142 ;; Auto vars: Size Location Type
+ 4143 ;; None
+ 4144 ;; Return value: Size Location Type
+ 4145 ;; 1 wreg void
+ 4146 ;; Registers used:
+ 4147 ;; wreg, status,2, status,0, pclath, cstack
+ 4148 ;; Tracked objects:
+ 4149 ;; On entry : 0/0
+ 4150 ;; On exit : 0/0
+ 4151 ;; Unchanged: 0/0
+ 4152 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4153 ;; Params: 2 0 0 0 0
+ 4154 ;; Locals: 0 0 0 0 0
+ 4155 ;; Temps: 0 0 0 0 0
+ 4156 ;; Totals: 2 0 0 0 0
+ 4157 ;;Total ram usage: 2 bytes
+ 4158 ;; Hardware stack levels used: 1
+ 4159 ;; Hardware stack levels required when called: 1
+ 4160 ;; This function calls:
+ 4161 ;; _I2C_Master_Wait
+ 4162 ;; This function is called by:
+ 4163 ;; _Read_Alarms_Temp
+ 4164 ;; _Update_Current_Date_Time
+ 4165 ;; _Set_Date
+ 4166 ;; _Set_DayOfWeek
+ 4167 ;; _Set_Time
+ 4168 ;; _Set_Time_Date
+ 4169 ;; _Write_Alarms
+ 4170 ;; This function uses a non-reentrant model
+ 4171 ;;
+ 4172
+ 4173
+ 4174 ;psect for function _I2C_Master_Write
+ 4175 0CC6 _I2C_Master_Write:
+ 4176
+ 4177 ;i2c.c: 42: void I2C_Master_Write(unsigned data);i2c.c: 43: {;i2c.c: 44: I2C_Master_Wa
+ + it();
+ 4178
+ 4179 ;incstack = 0
+ 4180 ; Regs used in _I2C_Master_Write: [wreg+status,2+status,0+pclath+cstack]
+ 4181 0CC6 120A 158A 24D6 fcall _I2C_Master_Wait
+ 4182
+ 4183 ;i2c.c: 45: SSPBUF = data;
+ 4184 0CC9 0870 movf I2C_Master_Write@data,w
+ 4185 0CCA 1283 bcf 3,5 ;RP0=0, select bank0
+ 4186 0CCB 1303 bcf 3,6 ;RP1=0, select bank0
+ 4187 0CCC 0093 movwf 19 ;volatile
+ 4188 0CCD 0008 return
+ 4189 0CCE __end_of_I2C_Master_Write:
+ 4190
+ 4191 psect text19
+ 4192 0CBF __ptext19:
+ 4193 ;; *************** function _I2C_Master_Stop *****************
+ 4194 ;; Defined at:
+ 4195 ;; line 36 in file "i2c.c"
+ 4196 ;; Parameters: Size Location Type
+ 4197 ;; None
+ 4198 ;; Auto vars: Size Location Type
+ 4199 ;; None
+ 4200 ;; Return value: Size Location Type
+ 4201 ;; 1 wreg void
+ 4202 ;; Registers used:
+ 4203 ;; wreg, status,2, status,0, pclath, cstack
+ 4204 ;; Tracked objects:
+ 4205 ;; On entry : 0/0
+ 4206 ;; On exit : 0/0
+ 4207 ;; Unchanged: 0/0
+ 4208 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4209 ;; Params: 0 0 0 0 0
+ 4210 ;; Locals: 0 0 0 0 0
+ 4211 ;; Temps: 0 0 0 0 0
+ 4212 ;; Totals: 0 0 0 0 0
+ 4213 ;;Total ram usage: 0 bytes
+ 4214 ;; Hardware stack levels used: 1
+ 4215 ;; Hardware stack levels required when called: 1
+ 4216 ;; This function calls:
+ 4217 ;; _I2C_Master_Wait
+ 4218 ;; This function is called by:
+ 4219 ;; _Read_Alarms_Temp
+ 4220 ;; _Update_Current_Date_Time
+ 4221 ;; _Set_Date
+ 4222 ;; _Set_DayOfWeek
+ 4223 ;; _Set_Time
+ 4224 ;; _Set_Time_Date
+ 4225 ;; _Write_Alarms
+ 4226 ;; This function uses a non-reentrant model
+ 4227 ;;
+ 4228
+ 4229
+ 4230 ;psect for function _I2C_Master_Stop
+ 4231 0CBF _I2C_Master_Stop:
+ 4232
+ 4233 ;i2c.c: 38: I2C_Master_Wait();
+ 4234
+ 4235 ;incstack = 0
+ 4236 ; Regs used in _I2C_Master_Stop: [wreg+status,2+status,0+pclath+cstack]
+ 4237 0CBF 120A 158A 24D6 fcall _I2C_Master_Wait
+ 4238
+ 4239 ;i2c.c: 39: PEN = 1;
+ 4240 0CC2 1683 bsf 3,5 ;RP0=1, select bank1
+ 4241 0CC3 1303 bcf 3,6 ;RP1=0, select bank1
+ 4242 0CC4 1511 bsf 17,2 ;volatile
+ 4243 0CC5 0008 return
+ 4244 0CC6 __end_of_I2C_Master_Stop:
+ 4245
+ 4246 psect text20
+ 4247 0CB8 __ptext20:
+ 4248 ;; *************** function _I2C_Master_Start *****************
+ 4249 ;; Defined at:
+ 4250 ;; line 24 in file "i2c.c"
+ 4251 ;; Parameters: Size Location Type
+ 4252 ;; None
+ 4253 ;; Auto vars: Size Location Type
+ 4254 ;; None
+ 4255 ;; Return value: Size Location Type
+ 4256 ;; 1 wreg void
+ 4257 ;; Registers used:
+ 4258 ;; wreg, status,2, status,0, pclath, cstack
+ 4259 ;; Tracked objects:
+ 4260 ;; On entry : 0/0
+ 4261 ;; On exit : 0/0
+ 4262 ;; Unchanged: 0/0
+ 4263 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4264 ;; Params: 0 0 0 0 0
+ 4265 ;; Locals: 0 0 0 0 0
+ 4266 ;; Temps: 0 0 0 0 0
+ 4267 ;; Totals: 0 0 0 0 0
+ 4268 ;;Total ram usage: 0 bytes
+ 4269 ;; Hardware stack levels used: 1
+ 4270 ;; Hardware stack levels required when called: 1
+ 4271 ;; This function calls:
+ 4272 ;; _I2C_Master_Wait
+ 4273 ;; This function is called by:
+ 4274 ;; _Read_Alarms_Temp
+ 4275 ;; _Update_Current_Date_Time
+ 4276 ;; _Set_Date
+ 4277 ;; _Set_DayOfWeek
+ 4278 ;; _Set_Time
+ 4279 ;; _Set_Time_Date
+ 4280 ;; _Write_Alarms
+ 4281 ;; This function uses a non-reentrant model
+ 4282 ;;
+ 4283
+ 4284
+ 4285 ;psect for function _I2C_Master_Start
+ 4286 0CB8 _I2C_Master_Start:
+ 4287
+ 4288 ;i2c.c: 26: I2C_Master_Wait();
+ 4289
+ 4290 ;incstack = 0
+ 4291 ; Regs used in _I2C_Master_Start: [wreg+status,2+status,0+pclath+cstack]
+ 4292 0CB8 120A 158A 24D6 fcall _I2C_Master_Wait
+ 4293
+ 4294 ;i2c.c: 27: SEN = 1;
+ 4295 0CBB 1683 bsf 3,5 ;RP0=1, select bank1
+ 4296 0CBC 1303 bcf 3,6 ;RP1=0, select bank1
+ 4297 0CBD 1411 bsf 17,0 ;volatile
+ 4298 0CBE 0008 return
+ 4299 0CBF __end_of_I2C_Master_Start:
+ 4300
+ 4301 psect text21
+ 4302 0CB1 __ptext21:
+ 4303 ;; *************** function _I2C_Master_Repeated_Start *****************
+ 4304 ;; Defined at:
+ 4305 ;; line 30 in file "i2c.c"
+ 4306 ;; Parameters: Size Location Type
+ 4307 ;; None
+ 4308 ;; Auto vars: Size Location Type
+ 4309 ;; None
+ 4310 ;; Return value: Size Location Type
+ 4311 ;; 1 wreg void
+ 4312 ;; Registers used:
+ 4313 ;; wreg, status,2, status,0, pclath, cstack
+ 4314 ;; Tracked objects:
+ 4315 ;; On entry : 0/0
+ 4316 ;; On exit : 0/0
+ 4317 ;; Unchanged: 0/0
+ 4318 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4319 ;; Params: 0 0 0 0 0
+ 4320 ;; Locals: 0 0 0 0 0
+ 4321 ;; Temps: 0 0 0 0 0
+ 4322 ;; Totals: 0 0 0 0 0
+ 4323 ;;Total ram usage: 0 bytes
+ 4324 ;; Hardware stack levels used: 1
+ 4325 ;; Hardware stack levels required when called: 1
+ 4326 ;; This function calls:
+ 4327 ;; _I2C_Master_Wait
+ 4328 ;; This function is called by:
+ 4329 ;; _Read_Alarms_Temp
+ 4330 ;; _Update_Current_Date_Time
+ 4331 ;; This function uses a non-reentrant model
+ 4332 ;;
+ 4333
+ 4334
+ 4335 ;psect for function _I2C_Master_Repeated_Start
+ 4336 0CB1 _I2C_Master_Repeated_Start:
+ 4337
+ 4338 ;i2c.c: 32: I2C_Master_Wait();
+ 4339
+ 4340 ;incstack = 0
+ 4341 ; Regs used in _I2C_Master_Repeated_Start: [wreg+status,2+status,0+pclath+cstack]
+ 4342 0CB1 120A 158A 24D6 fcall _I2C_Master_Wait
+ 4343
+ 4344 ;i2c.c: 33: RSEN = 1;
+ 4345 0CB4 1683 bsf 3,5 ;RP0=1, select bank1
+ 4346 0CB5 1303 bcf 3,6 ;RP1=0, select bank1
+ 4347 0CB6 1491 bsf 17,1 ;volatile
+ 4348 0CB7 0008 return
+ 4349 0CB8 __end_of_I2C_Master_Repeated_Start:
+ 4350
+ 4351 psect text22
+ 4352 0D73 __ptext22:
+ 4353 ;; *************** function _I2C_Master_Read *****************
+ 4354 ;; Defined at:
+ 4355 ;; line 48 in file "i2c.c"
+ 4356 ;; Parameters: Size Location Type
+ 4357 ;; ack 2 0[COMMON] unsigned short
+ 4358 ;; Auto vars: Size Location Type
+ 4359 ;; incoming 2 4[COMMON] unsigned short
+ 4360 ;; Return value: Size Location Type
+ 4361 ;; 2 0[COMMON] unsigned short
+ 4362 ;; Registers used:
+ 4363 ;; wreg, status,2, status,0, pclath, cstack
+ 4364 ;; Tracked objects:
+ 4365 ;; On entry : 0/0
+ 4366 ;; On exit : 0/0
+ 4367 ;; Unchanged: 0/0
+ 4368 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4369 ;; Params: 2 0 0 0 0
+ 4370 ;; Locals: 2 0 0 0 0
+ 4371 ;; Temps: 2 0 0 0 0
+ 4372 ;; Totals: 6 0 0 0 0
+ 4373 ;;Total ram usage: 6 bytes
+ 4374 ;; Hardware stack levels used: 1
+ 4375 ;; Hardware stack levels required when called: 1
+ 4376 ;; This function calls:
+ 4377 ;; _I2C_Master_Wait
+ 4378 ;; This function is called by:
+ 4379 ;; _Read_Alarms_Temp
+ 4380 ;; _Update_Current_Date_Time
+ 4381 ;; This function uses a non-reentrant model
+ 4382 ;;
+ 4383
+ 4384
+ 4385 ;psect for function _I2C_Master_Read
+ 4386 0D73 _I2C_Master_Read:
+ 4387
+ 4388 ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack);i2c.c: 49: {;i2c.c: 50:
+ + unsigned short incoming;;i2c.c: 51: I2C_Master_Wait();
+ 4389
+ 4390 ;incstack = 0
+ 4391 ; Regs used in _I2C_Master_Read: [wreg+status,2+status,0+pclath+cstack]
+ 4392 0D73 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait
+ 4393
+ 4394 ;i2c.c: 52: RCEN = 1;
+ 4395 0D78 1683 bsf 3,5 ;RP0=1, select bank1
+ 4396 0D79 1303 bcf 3,6 ;RP1=0, select bank1
+ 4397 0D7A 1591 bsf 17,3 ;volatile
+ 4398
+ 4399 ;i2c.c: 54: I2C_Master_Wait();
+ 4400 0D7B 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait
+ 4401
+ 4402 ;i2c.c: 55: incoming = SSPBUF;
+ 4403 0D80 1283 bcf 3,5 ;RP0=0, select bank0
+ 4404 0D81 1303 bcf 3,6 ;RP1=0, select bank0
+ 4405 0D82 0813 movf 19,w ;volatile
+ 4406 0D83 00F2 movwf ??_I2C_Master_Read
+ 4407 0D84 01F3 clrf ??_I2C_Master_Read+1
+ 4408 0D85 0872 movf ??_I2C_Master_Read,w
+ 4409 0D86 00F4 movwf I2C_Master_Read@incoming
+ 4410 0D87 0873 movf ??_I2C_Master_Read+1,w
+ 4411 0D88 00F5 movwf I2C_Master_Read@incoming+1
+ 4412
+ 4413 ;i2c.c: 57: I2C_Master_Wait();
+ 4414 0D89 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait
+ 4415
+ 4416 ;i2c.c: 58: ACKDT = (ack)?0:1;
+ 4417 0D8E 0870 movf I2C_Master_Read@ack,w
+ 4418 0D8F 0471 iorwf I2C_Master_Read@ack+1,w
+ 4419 0D90 1D03 btfss 3,2
+ 4420 0D91 2D96 goto u990
+ 4421 0D92 1683 bsf 3,5 ;RP0=1, select bank1
+ 4422 0D93 1303 bcf 3,6 ;RP1=0, select bank1
+ 4423 0D94 1691 bsf 17,5 ;volatile
+ 4424 0D95 2D99 goto l1766
+ 4425 0D96 u990:
+ 4426 0D96 1683 bsf 3,5 ;RP0=1, select bank1
+ 4427 0D97 1303 bcf 3,6 ;RP1=0, select bank1
+ 4428 0D98 1291 bcf 17,5 ;volatile
+ 4429 0D99 l1766:
+ 4430
+ 4431 ;i2c.c: 59: ACKEN = 1;
+ 4432 0D99 1611 bsf 17,4 ;volatile
+ 4433
+ 4434 ;i2c.c: 61: return incoming;
+ 4435 0D9A 0875 movf I2C_Master_Read@incoming+1,w
+ 4436 0D9B 00F1 movwf ?_I2C_Master_Read+1
+ 4437 0D9C 0874 movf I2C_Master_Read@incoming,w
+ 4438 0D9D 00F0 movwf ?_I2C_Master_Read
+ 4439 0D9E 0008 return
+ 4440 0D9F __end_of_I2C_Master_Read:
+ 4441
+ 4442 psect text23
+ 4443 0CD6 __ptext23:
+ 4444 ;; *************** function _I2C_Master_Wait *****************
+ 4445 ;; Defined at:
+ 4446 ;; line 19 in file "i2c.c"
+ 4447 ;; Parameters: Size Location Type
+ 4448 ;; None
+ 4449 ;; Auto vars: Size Location Type
+ 4450 ;; None
+ 4451 ;; Return value: Size Location Type
+ 4452 ;; 1 wreg void
+ 4453 ;; Registers used:
+ 4454 ;; wreg, status,2
+ 4455 ;; Tracked objects:
+ 4456 ;; On entry : 0/0
+ 4457 ;; On exit : 0/0
+ 4458 ;; Unchanged: 0/0
+ 4459 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4460 ;; Params: 0 0 0 0 0
+ 4461 ;; Locals: 0 0 0 0 0
+ 4462 ;; Temps: 0 0 0 0 0
+ 4463 ;; Totals: 0 0 0 0 0
+ 4464 ;;Total ram usage: 0 bytes
+ 4465 ;; Hardware stack levels used: 1
+ 4466 ;; This function calls:
+ 4467 ;; Nothing
+ 4468 ;; This function is called by:
+ 4469 ;; _I2C_Master_Start
+ 4470 ;; _I2C_Master_Repeated_Start
+ 4471 ;; _I2C_Master_Stop
+ 4472 ;; _I2C_Master_Write
+ 4473 ;; _I2C_Master_Read
+ 4474 ;; This function uses a non-reentrant model
+ 4475 ;;
+ 4476
+ 4477
+ 4478 ;psect for function _I2C_Master_Wait
+ 4479 0CD6 _I2C_Master_Wait:
+ 4480 0CD6 l1676:
+ 4481 ;i2c.c: 21: while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ;
+ 4482
+ 4483 ;incstack = 0
+ 4484 ; Regs used in _I2C_Master_Wait: [wreg+status,2]
+ 4485
+ 4486 0CD6 1683 bsf 3,5 ;RP0=1, select bank1
+ 4487 0CD7 1303 bcf 3,6 ;RP1=0, select bank1
+ 4488 0CD8 0811 movf 17,w ;volatile
+ 4489 0CD9 391F andlw 31
+ 4490 0CDA 1D03 btfss 3,2
+ 4491 0CDB 2CD6 goto l1676
+ 4492 0CDC 1D14 btfss 20,2 ;volatile
+ 4493 0CDD 0008 return
+ 4494 0CDE 2CD6 goto l1676
+ 4495 0CDF __end_of_I2C_Master_Wait:
+ 4496
+ 4497 psect text24
+ 4498 0074 __ptext24:
+ 4499 ;; *************** function _BCD_2_DEC *****************
+ 4500 ;; Defined at:
+ 4501 ;; line 19 in file "ds3231.c"
+ 4502 ;; Parameters: Size Location Type
+ 4503 ;; to_convert 2 6[COMMON] int
+ 4504 ;; Auto vars: Size Location Type
+ 4505 ;; None
+ 4506 ;; Return value: Size Location Type
+ 4507 ;; 2 6[COMMON] int
+ 4508 ;; Registers used:
+ 4509 ;; wreg, status,2, status,0, pclath, cstack
+ 4510 ;; Tracked objects:
+ 4511 ;; On entry : 0/0
+ 4512 ;; On exit : 0/0
+ 4513 ;; Unchanged: 0/0
+ 4514 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4515 ;; Params: 2 0 0 0 0
+ 4516 ;; Locals: 0 0 0 0 0
+ 4517 ;; Temps: 2 0 0 0 0
+ 4518 ;; Totals: 4 0 0 0 0
+ 4519 ;;Total ram usage: 4 bytes
+ 4520 ;; Hardware stack levels used: 1
+ 4521 ;; Hardware stack levels required when called: 1
+ 4522 ;; This function calls:
+ 4523 ;; ___wmul
+ 4524 ;; This function is called by:
+ 4525 ;; _Read_Alarms_Temp
+ 4526 ;; _Update_Current_Date_Time
+ 4527 ;; This function uses a non-reentrant model
+ 4528 ;;
+ 4529
+ 4530
+ 4531 ;psect for function _BCD_2_DEC
+ 4532 0074 _BCD_2_DEC:
+ 4533
+ 4534 ;ds3231.c: 20: return (to_convert >> 4) * 10 + (to_convert & 0x0F);
+ 4535
+ 4536 ;incstack = 0
+ 4537 ; Regs used in _BCD_2_DEC: [wreg+status,2+status,0+pclath+cstack]
+ 4538 0074 300F movlw 15
+ 4539 0075 0576 andwf BCD_2_DEC@to_convert,w
+ 4540 0076 00F8 movwf ??_BCD_2_DEC
+ 4541 0077 3000 movlw 0
+ 4542 0078 0577 andwf BCD_2_DEC@to_convert+1,w
+ 4543 0079 00F9 movwf ??_BCD_2_DEC+1
+ 4544 007A 0E76 swapf BCD_2_DEC@to_convert,w
+ 4545 007B 390F andlw 15
+ 4546 007C 00F0 movwf ___wmul@multiplier
+ 4547 007D 0E77 swapf BCD_2_DEC@to_convert+1,w
+ 4548 007E 39F0 andlw 240
+ 4549 007F 04F0 iorwf ___wmul@multiplier,f
+ 4550 0080 0E77 swapf BCD_2_DEC@to_convert+1,w
+ 4551 0081 390F andlw 15
+ 4552 0082 00F1 movwf ___wmul@multiplier+1
+ 4553 0083 30F0 movlw 240
+ 4554 0084 1DF1 btfss ___wmul@multiplier+1,3
+ 4555 0085 3000 movlw 0
+ 4556 0086 04F1 iorwf ___wmul@multiplier+1,f
+ 4557 0087 300A movlw 10
+ 4558 0088 00F2 movwf ___wmul@multiplicand
+ 4559 0089 3000 movlw 0
+ 4560 008A 00F3 movwf ___wmul@multiplicand+1
+ 4561 008B 120A 158A 2552 fcall ___wmul
+ 4562 008E 0878 movf ??_BCD_2_DEC,w
+ 4563 008F 0770 addwf ?___wmul,w
+ 4564 0090 00F6 movwf ?_BCD_2_DEC
+ 4565 0091 0879 movf ??_BCD_2_DEC+1,w
+ 4566 0092 1803 skipnc
+ 4567 0093 0A79 incf ??_BCD_2_DEC+1,w
+ 4568 0094 0771 addwf ?___wmul+1,w
+ 4569 0095 00F7 movwf ?_BCD_2_DEC+1
+ 4570 0096 0008 return
+ 4571 0097 __end_of_BCD_2_DEC:
+ 4572
+ 4573 psect text25
+ 4574 0D52 __ptext25:
+ 4575 ;; *************** function ___wmul *****************
+ 4576 ;; Defined at:
+ 4577 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c"
+ 4578 ;; Parameters: Size Location Type
+ 4579 ;; multiplier 2 0[COMMON] unsigned int
+ 4580 ;; multiplicand 2 2[COMMON] unsigned int
+ 4581 ;; Auto vars: Size Location Type
+ 4582 ;; product 2 4[COMMON] unsigned int
+ 4583 ;; Return value: Size Location Type
+ 4584 ;; 2 0[COMMON] unsigned int
+ 4585 ;; Registers used:
+ 4586 ;; wreg, status,2, status,0
+ 4587 ;; Tracked objects:
+ 4588 ;; On entry : 0/0
+ 4589 ;; On exit : 0/0
+ 4590 ;; Unchanged: 0/0
+ 4591 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4592 ;; Params: 4 0 0 0 0
+ 4593 ;; Locals: 2 0 0 0 0
+ 4594 ;; Temps: 0 0 0 0 0
+ 4595 ;; Totals: 6 0 0 0 0
+ 4596 ;;Total ram usage: 6 bytes
+ 4597 ;; Hardware stack levels used: 1
+ 4598 ;; This function calls:
+ 4599 ;; Nothing
+ 4600 ;; This function is called by:
+ 4601 ;; _format_Temperature
+ 4602 ;; _BCD_2_DEC
+ 4603 ;; This function uses a non-reentrant model
+ 4604 ;;
+ 4605
+ 4606
+ 4607 ;psect for function ___wmul
+ 4608 0D52 ___wmul:
+ 4609
+ 4610 ;incstack = 0
+ 4611 ; Regs used in ___wmul: [wreg+status,2+status,0]
+ 4612 0D52 01F4 clrf ___wmul@product
+ 4613 0D53 01F5 clrf ___wmul@product+1
+ 4614 0D54 l1682:
+ 4615 0D54 1C70 btfss ___wmul@multiplier,0
+ 4616 0D55 2D5C goto l578
+ 4617 0D56 0872 movf ___wmul@multiplicand,w
+ 4618 0D57 07F4 addwf ___wmul@product,f
+ 4619 0D58 1803 skipnc
+ 4620 0D59 0AF5 incf ___wmul@product+1,f
+ 4621 0D5A 0873 movf ___wmul@multiplicand+1,w
+ 4622 0D5B 07F5 addwf ___wmul@product+1,f
+ 4623 0D5C l578:
+ 4624 0D5C 3001 movlw 1
+ 4625 0D5D u895:
+ 4626 0D5D 1003 clrc
+ 4627 0D5E 0DF2 rlf ___wmul@multiplicand,f
+ 4628 0D5F 0DF3 rlf ___wmul@multiplicand+1,f
+ 4629 0D60 3EFF addlw -1
+ 4630 0D61 1D03 skipz
+ 4631 0D62 2D5D goto u895
+ 4632 0D63 3001 movlw 1
+ 4633 0D64 u905:
+ 4634 0D64 1003 clrc
+ 4635 0D65 0CF1 rrf ___wmul@multiplier+1,f
+ 4636 0D66 0CF0 rrf ___wmul@multiplier,f
+ 4637 0D67 3EFF addlw -1
+ 4638 0D68 1D03 skipz
+ 4639 0D69 2D64 goto u905
+ 4640 0D6A 0870 movf ___wmul@multiplier,w
+ 4641 0D6B 0471 iorwf ___wmul@multiplier+1,w
+ 4642 0D6C 1D03 btfss 3,2
+ 4643 0D6D 2D54 goto l1682
+ 4644 0D6E 0875 movf ___wmul@product+1,w
+ 4645 0D6F 00F1 movwf ?___wmul+1
+ 4646 0D70 0874 movf ___wmul@product,w
+ 4647 0D71 00F0 movwf ?___wmul
+ 4648 0D72 0008 return
+ 4649 0D73 __end_of___wmul:
+ 4650
+ 4651 psect text26
+ 4652 0190 __ptext26:
+ 4653 ;; *************** function _Lcd_Init *****************
+ 4654 ;; Defined at:
+ 4655 ;; line 58 in file "lcd.c"
+ 4656 ;; Parameters: Size Location Type
+ 4657 ;; None
+ 4658 ;; Auto vars: Size Location Type
+ 4659 ;; None
+ 4660 ;; Return value: Size Location Type
+ 4661 ;; 1 wreg void
+ 4662 ;; Registers used:
+ 4663 ;; wreg, status,2, status,0, pclath, cstack
+ 4664 ;; Tracked objects:
+ 4665 ;; On entry : 0/0
+ 4666 ;; On exit : 0/0
+ 4667 ;; Unchanged: 0/0
+ 4668 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4669 ;; Params: 0 0 0 0 0
+ 4670 ;; Locals: 0 0 0 0 0
+ 4671 ;; Temps: 2 0 0 0 0
+ 4672 ;; Totals: 2 0 0 0 0
+ 4673 ;;Total ram usage: 2 bytes
+ 4674 ;; Hardware stack levels used: 1
+ 4675 ;; Hardware stack levels required when called: 2
+ 4676 ;; This function calls:
+ 4677 ;; _Lcd_Cmd
+ 4678 ;; _Lcd_Port
+ 4679 ;; This function is called by:
+ 4680 ;; _main
+ 4681 ;; This function uses a non-reentrant model
+ 4682 ;;
+ 4683
+ 4684
+ 4685 ;psect for function _Lcd_Init
+ 4686 0190 _Lcd_Init:
+ 4687
+ 4688 ;lcd.c: 59: Lcd_Port(0x00);
+ 4689
+ 4690 ;incstack = 0
+ 4691 ; Regs used in _Lcd_Init: [wreg+status,2+status,0+pclath+cstack]
+ 4692 0190 3000 movlw 0
+ 4693 0191 120A 158A 251E 120A 118A fcall _Lcd_Port
+ 4694
+ 4695 ;lcd.c: 60: _delay((unsigned long)((20)*(20000000/4000.0)));
+ 4696 0196 3082 movlw 130
+ 4697 0197 00F5 movwf ??_Lcd_Init+1
+ 4698 0198 30DD movlw 221
+ 4699 0199 00F4 movwf ??_Lcd_Init
+ 4700 019A u1647:
+ 4701 019A 0BF4 decfsz ??_Lcd_Init,f
+ 4702 019B 299A goto u1647
+ 4703 019C 0BF5 decfsz ??_Lcd_Init+1,f
+ 4704 019D 299A goto u1647
+ 4705 019E 299F nop2
+ 4706
+ 4707 ;lcd.c: 61: Lcd_Cmd(0x03);
+ 4708 019F 3003 movlw 3
+ 4709 01A0 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4710
+ 4711 ;lcd.c: 62: _delay((unsigned long)((5)*(20000000/4000.0)));
+ 4712 01A5 3021 movlw 33
+ 4713 01A6 00F5 movwf ??_Lcd_Init+1
+ 4714 01A7 3076 movlw 118
+ 4715 01A8 00F4 movwf ??_Lcd_Init
+ 4716 01A9 u1657:
+ 4717 01A9 0BF4 decfsz ??_Lcd_Init,f
+ 4718 01AA 29A9 goto u1657
+ 4719 01AB 0BF5 decfsz ??_Lcd_Init+1,f
+ 4720 01AC 29A9 goto u1657
+ 4721 01AD 0000 nop
+ 4722
+ 4723 ;lcd.c: 63: Lcd_Cmd(0x03);
+ 4724 01AE 3003 movlw 3
+ 4725 01AF 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4726
+ 4727 ;lcd.c: 64: _delay((unsigned long)((11)*(20000000/4000.0)));
+ 4728 01B4 3048 movlw 72
+ 4729 01B5 00F5 movwf ??_Lcd_Init+1
+ 4730 01B6 306C movlw 108
+ 4731 01B7 00F4 movwf ??_Lcd_Init
+ 4732 01B8 u1667:
+ 4733 01B8 0BF4 decfsz ??_Lcd_Init,f
+ 4734 01B9 29B8 goto u1667
+ 4735 01BA 0BF5 decfsz ??_Lcd_Init+1,f
+ 4736 01BB 29B8 goto u1667
+ 4737 01BC 0000 nop
+ 4738
+ 4739 ;lcd.c: 65: Lcd_Cmd(0x03);
+ 4740 01BD 3003 movlw 3
+ 4741 01BE 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4742
+ 4743 ;lcd.c: 67: Lcd_Cmd(0x02);
+ 4744 01C3 3002 movlw 2
+ 4745 01C4 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4746
+ 4747 ;lcd.c: 68: Lcd_Cmd(0x02);
+ 4748 01C9 3002 movlw 2
+ 4749 01CA 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4750
+ 4751 ;lcd.c: 69: Lcd_Cmd(0x08);
+ 4752 01CF 3008 movlw 8
+ 4753 01D0 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4754
+ 4755 ;lcd.c: 70: Lcd_Cmd(0x00);
+ 4756 01D5 3000 movlw 0
+ 4757 01D6 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4758
+ 4759 ;lcd.c: 71: Lcd_Cmd(0x0C);
+ 4760 01DB 300C movlw 12
+ 4761 01DC 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4762
+ 4763 ;lcd.c: 72: Lcd_Cmd(0x00);
+ 4764 01E1 3000 movlw 0
+ 4765 01E2 120A 158A 2538 120A 118A fcall _Lcd_Cmd
+ 4766
+ 4767 ;lcd.c: 73: Lcd_Cmd(0x06);
+ 4768 01E7 3006 movlw 6
+ 4769 01E8 120A 158A 2538 fcall _Lcd_Cmd
+ 4770 01EB 0008 return
+ 4771 01EC __end_of_Lcd_Init:
+ 4772
+ 4773 psect text27
+ 4774 0D38 __ptext27:
+ 4775 ;; *************** function _Lcd_Cmd *****************
+ 4776 ;; Defined at:
+ 4777 ;; line 28 in file "lcd.c"
+ 4778 ;; Parameters: Size Location Type
+ 4779 ;; a 1 wreg unsigned char
+ 4780 ;; Auto vars: Size Location Type
+ 4781 ;; a 1 3[COMMON] unsigned char
+ 4782 ;; Return value: Size Location Type
+ 4783 ;; 1 wreg void
+ 4784 ;; Registers used:
+ 4785 ;; wreg, status,2, status,0, pclath, cstack
+ 4786 ;; Tracked objects:
+ 4787 ;; On entry : 0/0
+ 4788 ;; On exit : 0/0
+ 4789 ;; Unchanged: 0/0
+ 4790 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4791 ;; Params: 0 0 0 0 0
+ 4792 ;; Locals: 1 0 0 0 0
+ 4793 ;; Temps: 2 0 0 0 0
+ 4794 ;; Totals: 3 0 0 0 0
+ 4795 ;;Total ram usage: 3 bytes
+ 4796 ;; Hardware stack levels used: 1
+ 4797 ;; Hardware stack levels required when called: 1
+ 4798 ;; This function calls:
+ 4799 ;; _Lcd_Port
+ 4800 ;; This function is called by:
+ 4801 ;; _Lcd_Clear
+ 4802 ;; _Lcd_Set_Cursor
+ 4803 ;; _Lcd_Init
+ 4804 ;; _Lcd_Shift_Right
+ 4805 ;; _Lcd_Shift_Left
+ 4806 ;; This function uses a non-reentrant model
+ 4807 ;;
+ 4808
+ 4809
+ 4810 ;psect for function _Lcd_Cmd
+ 4811 0D38 _Lcd_Cmd:
+ 4812
+ 4813 ;incstack = 0
+ 4814 ; Regs used in _Lcd_Cmd: [wreg+status,2+status,0+pclath+cstack]
+ 4815 ;Lcd_Cmd@a stored from wreg
+ 4816 0D38 00F3 movwf Lcd_Cmd@a
+ 4817
+ 4818 ;lcd.c: 29: RD2 = 0;
+ 4819 0D39 1283 bcf 3,5 ;RP0=0, select bank0
+ 4820 0D3A 1303 bcf 3,6 ;RP1=0, select bank0
+ 4821 0D3B 1108 bcf 8,2 ;volatile
+ 4822
+ 4823 ;lcd.c: 30: Lcd_Port(a);
+ 4824 0D3C 0873 movf Lcd_Cmd@a,w
+ 4825 0D3D 120A 158A 251E 120A 158A fcall _Lcd_Port
+ 4826
+ 4827 ;lcd.c: 31: RD3 = 1;
+ 4828 0D42 1283 bcf 3,5 ;RP0=0, select bank0
+ 4829 0D43 1303 bcf 3,6 ;RP1=0, select bank0
+ 4830 0D44 1588 bsf 8,3 ;volatile
+ 4831
+ 4832 ;lcd.c: 32: _delay((unsigned long)((4)*(20000000/4000.0)));
+ 4833 0D45 301A movlw 26
+ 4834 0D46 00F2 movwf ??_Lcd_Cmd+1
+ 4835 0D47 30F8 movlw 248
+ 4836 0D48 00F1 movwf ??_Lcd_Cmd
+ 4837 0D49 u1677:
+ 4838 0D49 0BF1 decfsz ??_Lcd_Cmd,f
+ 4839 0D4A 2D49 goto u1677
+ 4840 0D4B 0BF2 decfsz ??_Lcd_Cmd+1,f
+ 4841 0D4C 2D49 goto u1677
+ 4842 0D4D 0000 nop
+ 4843
+ 4844 ;lcd.c: 33: RD3 = 0;
+ 4845 0D4E 1283 bcf 3,5 ;RP0=0, select bank0
+ 4846 0D4F 1303 bcf 3,6 ;RP1=0, select bank0
+ 4847 0D50 1188 bcf 8,3 ;volatile
+ 4848 0D51 0008 return
+ 4849 0D52 __end_of_Lcd_Cmd:
+ 4850
+ 4851 psect text28
+ 4852 0D1E __ptext28:
+ 4853 ;; *************** function _Lcd_Port *****************
+ 4854 ;; Defined at:
+ 4855 ;; line 6 in file "lcd.c"
+ 4856 ;; Parameters: Size Location Type
+ 4857 ;; a 1 wreg unsigned char
+ 4858 ;; Auto vars: Size Location Type
+ 4859 ;; a 1 0[COMMON] unsigned char
+ 4860 ;; Return value: Size Location Type
+ 4861 ;; 1 wreg void
+ 4862 ;; Registers used:
+ 4863 ;; wreg
+ 4864 ;; Tracked objects:
+ 4865 ;; On entry : 0/0
+ 4866 ;; On exit : 0/0
+ 4867 ;; Unchanged: 0/0
+ 4868 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4869 ;; Params: 0 0 0 0 0
+ 4870 ;; Locals: 1 0 0 0 0
+ 4871 ;; Temps: 0 0 0 0 0
+ 4872 ;; Totals: 1 0 0 0 0
+ 4873 ;;Total ram usage: 1 bytes
+ 4874 ;; Hardware stack levels used: 1
+ 4875 ;; This function calls:
+ 4876 ;; Nothing
+ 4877 ;; This function is called by:
+ 4878 ;; _Lcd_Cmd
+ 4879 ;; _Lcd_Init
+ 4880 ;; _Lcd_Write_Char
+ 4881 ;; This function uses a non-reentrant model
+ 4882 ;;
+ 4883
+ 4884
+ 4885 ;psect for function _Lcd_Port
+ 4886 0D1E _Lcd_Port:
+ 4887
+ 4888 ;incstack = 0
+ 4889 ; Regs used in _Lcd_Port: [wreg]
+ 4890 ;Lcd_Port@a stored from wreg
+ 4891 0D1E 00F0 movwf Lcd_Port@a
+ 4892
+ 4893 ;lcd.c: 7: if (a & 1)
+ 4894 0D1F 1C70 btfss Lcd_Port@a,0
+ 4895 0D20 2D25 goto l202
+ 4896
+ 4897 ;lcd.c: 8: RD4 = 1;
+ 4898 0D21 1283 bcf 3,5 ;RP0=0, select bank0
+ 4899 0D22 1303 bcf 3,6 ;RP1=0, select bank0
+ 4900 0D23 1608 bsf 8,4 ;volatile
+ 4901 0D24 2D28 goto l203
+ 4902 0D25 l202:
+ 4903 ;lcd.c: 9: else
+ 4904
+ 4905
+ 4906 ;lcd.c: 10: RD4 = 0;
+ 4907 0D25 1283 bcf 3,5 ;RP0=0, select bank0
+ 4908 0D26 1303 bcf 3,6 ;RP1=0, select bank0
+ 4909 0D27 1208 bcf 8,4 ;volatile
+ 4910 0D28 l203:
+ 4911
+ 4912 ;lcd.c: 12: if (a & 2)
+ 4913 0D28 1CF0 btfss Lcd_Port@a,1
+ 4914 0D29 2D2C goto l204
+ 4915
+ 4916 ;lcd.c: 13: RD5 = 1;
+ 4917 0D2A 1688 bsf 8,5 ;volatile
+ 4918 0D2B 2D2D goto l205
+ 4919 0D2C l204:
+ 4920 ;lcd.c: 14: else
+ 4921
+ 4922
+ 4923 ;lcd.c: 15: RD5 = 0;
+ 4924 0D2C 1288 bcf 8,5 ;volatile
+ 4925 0D2D l205:
+ 4926
+ 4927 ;lcd.c: 17: if (a & 4)
+ 4928 0D2D 1D70 btfss Lcd_Port@a,2
+ 4929 0D2E 2D31 goto l206
+ 4930
+ 4931 ;lcd.c: 18: RD6 = 1;
+ 4932 0D2F 1708 bsf 8,6 ;volatile
+ 4933 0D30 2D32 goto l207
+ 4934 0D31 l206:
+ 4935 ;lcd.c: 19: else
+ 4936
+ 4937
+ 4938 ;lcd.c: 20: RD6 = 0;
+ 4939 0D31 1308 bcf 8,6 ;volatile
+ 4940 0D32 l207:
+ 4941
+ 4942 ;lcd.c: 22: if (a & 8)
+ 4943 0D32 1DF0 btfss Lcd_Port@a,3
+ 4944 0D33 2D36 goto l208
+ 4945
+ 4946 ;lcd.c: 23: RD7 = 1;
+ 4947 0D34 1788 bsf 8,7 ;volatile
+ 4948 0D35 0008 return
+ 4949 0D36 l208:
+ 4950 ;lcd.c: 24: else
+ 4951
+ 4952
+ 4953 ;lcd.c: 25: RD7 = 0;
+ 4954 0D36 1388 bcf 8,7 ;volatile
+ 4955 0D37 0008 return
+ 4956 0D38 __end_of_Lcd_Port:
+ 4957
+ 4958 psect text29
+ 4959 00E6 __ptext29:
+ 4960 ;; *************** function _I2C_Master_Init *****************
+ 4961 ;; Defined at:
+ 4962 ;; line 8 in file "i2c.c"
+ 4963 ;; Parameters: Size Location Type
+ 4964 ;; freq_K 4 13[BANK0 ] const unsigned long
+ 4965 ;; Auto vars: Size Location Type
+ 4966 ;; None
+ 4967 ;; Return value: Size Location Type
+ 4968 ;; 1 wreg void
+ 4969 ;; Registers used:
+ 4970 ;; wreg, status,2, status,0, pclath, cstack
+ 4971 ;; Tracked objects:
+ 4972 ;; On entry : 0/0
+ 4973 ;; On exit : 0/0
+ 4974 ;; Unchanged: 0/0
+ 4975 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 4976 ;; Params: 0 4 0 0 0
+ 4977 ;; Locals: 0 0 0 0 0
+ 4978 ;; Temps: 0 4 0 0 0
+ 4979 ;; Totals: 0 8 0 0 0
+ 4980 ;;Total ram usage: 8 bytes
+ 4981 ;; Hardware stack levels used: 1
+ 4982 ;; Hardware stack levels required when called: 1
+ 4983 ;; This function calls:
+ 4984 ;; ___lldiv
+ 4985 ;; ___lmul
+ 4986 ;; This function is called by:
+ 4987 ;; _main
+ 4988 ;; This function uses a non-reentrant model
+ 4989 ;;
+ 4990
+ 4991
+ 4992 ;psect for function _I2C_Master_Init
+ 4993 00E6 _I2C_Master_Init:
+ 4994
+ 4995 ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K);i2c.c: 9: {;i2c.c: 10: TRI
+ + SC3 = 1; TRISC4 = 1;
+ 4996
+ 4997 ;incstack = 0
+ 4998 ; Regs used in _I2C_Master_Init: [wreg+status,2+status,0+pclath+cstack]
+ 4999 00E6 1683 bsf 3,5 ;RP0=1, select bank1
+ 5000 00E7 1303 bcf 3,6 ;RP1=0, select bank1
+ 5001 00E8 1587 bsf 7,3 ;volatile
+ 5002 00E9 1607 bsf 7,4 ;volatile
+ 5003
+ 5004 ;i2c.c: 12: SSPCON = 0b00101000;
+ 5005 00EA 3028 movlw 40
+ 5006 00EB 1283 bcf 3,5 ;RP0=0, select bank0
+ 5007 00EC 1303 bcf 3,6 ;RP1=0, select bank0
+ 5008 00ED 0094 movwf 20 ;volatile
+ 5009
+ 5010 ;i2c.c: 13: SSPCON2 = 0b00000000;
+ 5011 00EE 1683 bsf 3,5 ;RP0=1, select bank1
+ 5012 00EF 1303 bcf 3,6 ;RP1=0, select bank1
+ 5013 00F0 0191 clrf 17 ;volatile
+ 5014
+ 5015 ;i2c.c: 15: SSPADD = (20000000/(4*freq_K*100))-1;
+ 5016 00F1 1283 bcf 3,5 ;RP0=0, select bank0
+ 5017 00F2 1303 bcf 3,6 ;RP1=0, select bank0
+ 5018 00F3 085A movf I2C_Master_Init@freq_K,w
+ 5019 00F4 00DE movwf ??_I2C_Master_Init
+ 5020 00F5 085B movf I2C_Master_Init@freq_K+1,w
+ 5021 00F6 00DF movwf ??_I2C_Master_Init+1
+ 5022 00F7 085C movf I2C_Master_Init@freq_K+2,w
+ 5023 00F8 00E0 movwf ??_I2C_Master_Init+2
+ 5024 00F9 085D movf I2C_Master_Init@freq_K+3,w
+ 5025 00FA 00E1 movwf ??_I2C_Master_Init+3
+ 5026 00FB 3002 movlw 2
+ 5027 00FC u1455:
+ 5028 00FC 1003 clrc
+ 5029 00FD 0DDE rlf ??_I2C_Master_Init,f
+ 5030 00FE 0DDF rlf ??_I2C_Master_Init+1,f
+ 5031 00FF 0DE0 rlf ??_I2C_Master_Init+2,f
+ 5032 0100 0DE1 rlf ??_I2C_Master_Init+3,f
+ 5033 0101 3EFF addlw -1
+ 5034 0102 1D03 skipz
+ 5035 0103 28FC goto u1455
+ 5036 0104 0861 movf ??_I2C_Master_Init+3,w
+ 5037 0105 00F3 movwf ___lmul@multiplier+3
+ 5038 0106 0860 movf ??_I2C_Master_Init+2,w
+ 5039 0107 00F2 movwf ___lmul@multiplier+2
+ 5040 0108 085F movf ??_I2C_Master_Init+1,w
+ 5041 0109 00F1 movwf ___lmul@multiplier+1
+ 5042 010A 085E movf ??_I2C_Master_Init,w
+ 5043 010B 00F0 movwf ___lmul@multiplier
+ 5044 010C 3000 movlw 0
+ 5045 010D 00F7 movwf ___lmul@multiplicand+3
+ 5046 010E 3000 movlw 0
+ 5047 010F 00F6 movwf ___lmul@multiplicand+2
+ 5048 0110 3000 movlw 0
+ 5049 0111 00F5 movwf ___lmul@multiplicand+1
+ 5050 0112 3064 movlw 100
+ 5051 0113 00F4 movwf ___lmul@multiplicand
+ 5052 0114 120A 158A 26A8 120A 118A fcall ___lmul
+ 5053 0119 0873 movf ?___lmul+3,w
+ 5054 011A 1283 bcf 3,5 ;RP0=0, select bank0
+ 5055 011B 1303 bcf 3,6 ;RP1=0, select bank0
+ 5056 011C 00D0 movwf ___lldiv@divisor+3
+ 5057 011D 0872 movf ?___lmul+2,w
+ 5058 011E 00CF movwf ___lldiv@divisor+2
+ 5059 011F 0871 movf ?___lmul+1,w
+ 5060 0120 00CE movwf ___lldiv@divisor+1
+ 5061 0121 0870 movf ?___lmul,w
+ 5062 0122 00CD movwf ___lldiv@divisor
+ 5063 0123 3001 movlw 1
+ 5064 0124 00D4 movwf ___lldiv@dividend+3
+ 5065 0125 3031 movlw 49
+ 5066 0126 00D3 movwf ___lldiv@dividend+2
+ 5067 0127 302D movlw 45
+ 5068 0128 00D2 movwf ___lldiv@dividend+1
+ 5069 0129 3000 movlw 0
+ 5070 012A 00D1 movwf ___lldiv@dividend
+ 5071 012B 120A 118A 21EC fcall ___lldiv
+ 5072 012E 1283 bcf 3,5 ;RP0=0, select bank0
+ 5073 012F 1303 bcf 3,6 ;RP1=0, select bank0
+ 5074 0130 084D movf ?___lldiv,w
+ 5075 0131 3EFF addlw 255
+ 5076 0132 1683 bsf 3,5 ;RP0=1, select bank1
+ 5077 0133 1303 bcf 3,6 ;RP1=0, select bank1
+ 5078 0134 0093 movwf 19 ;volatile
+ 5079
+ 5080 ;i2c.c: 16: SSPSTAT = 0b00000000;
+ 5081 0135 0194 clrf 20 ;volatile
+ 5082 0136 0008 return
+ 5083 0137 __end_of_I2C_Master_Init:
+ 5084
+ 5085 psect text30
+ 5086 0EA8 __ptext30:
+ 5087 ;; *************** function ___lmul *****************
+ 5088 ;; Defined at:
+ 5089 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c"
+ 5090 ;; Parameters: Size Location Type
+ 5091 ;; multiplier 4 0[COMMON] unsigned long
+ 5092 ;; multiplicand 4 4[COMMON] unsigned long
+ 5093 ;; Auto vars: Size Location Type
+ 5094 ;; product 4 9[COMMON] unsigned long
+ 5095 ;; Return value: Size Location Type
+ 5096 ;; 4 0[COMMON] unsigned long
+ 5097 ;; Registers used:
+ 5098 ;; wreg, status,2, status,0
+ 5099 ;; Tracked objects:
+ 5100 ;; On entry : 0/0
+ 5101 ;; On exit : 0/0
+ 5102 ;; Unchanged: 0/0
+ 5103 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 5104 ;; Params: 8 0 0 0 0
+ 5105 ;; Locals: 4 0 0 0 0
+ 5106 ;; Temps: 1 0 0 0 0
+ 5107 ;; Totals: 13 0 0 0 0
+ 5108 ;;Total ram usage: 13 bytes
+ 5109 ;; Hardware stack levels used: 1
+ 5110 ;; This function calls:
+ 5111 ;; Nothing
+ 5112 ;; This function is called by:
+ 5113 ;; _I2C_Master_Init
+ 5114 ;; This function uses a non-reentrant model
+ 5115 ;;
+ 5116
+ 5117
+ 5118 ;psect for function ___lmul
+ 5119 0EA8 ___lmul:
+ 5120
+ 5121 ;incstack = 0
+ 5122 ; Regs used in ___lmul: [wreg+status,2+status,0]
+ 5123 0EA8 3000 movlw 0
+ 5124 0EA9 00FC movwf ___lmul@product+3
+ 5125 0EAA 3000 movlw 0
+ 5126 0EAB 00FB movwf ___lmul@product+2
+ 5127 0EAC 3000 movlw 0
+ 5128 0EAD 00FA movwf ___lmul@product+1
+ 5129 0EAE 3000 movlw 0
+ 5130 0EAF 00F9 movwf ___lmul@product
+ 5131 0EB0 l1778:
+ 5132 0EB0 1C70 btfss ___lmul@multiplier,0
+ 5133 0EB1 2EC6 goto l1782
+ 5134 0EB2 0874 movf ___lmul@multiplicand,w
+ 5135 0EB3 07F9 addwf ___lmul@product,f
+ 5136 0EB4 0875 movf ___lmul@multiplicand+1,w
+ 5137 0EB5 1103 clrz
+ 5138 0EB6 1803 skipnc
+ 5139 0EB7 3E01 addlw 1
+ 5140 0EB8 1D03 btfss 3,2
+ 5141 0EB9 07FA addwf ___lmul@product+1,f
+ 5142 0EBA 0876 movf ___lmul@multiplicand+2,w
+ 5143 0EBB 1103 clrz
+ 5144 0EBC 1803 skipnc
+ 5145 0EBD 3E01 addlw 1
+ 5146 0EBE 1D03 btfss 3,2
+ 5147 0EBF 07FB addwf ___lmul@product+2,f
+ 5148 0EC0 0877 movf ___lmul@multiplicand+3,w
+ 5149 0EC1 1103 clrz
+ 5150 0EC2 1803 skipnc
+ 5151 0EC3 3E01 addlw 1
+ 5152 0EC4 1D03 btfss 3,2
+ 5153 0EC5 07FC addwf ___lmul@product+3,f
+ 5154 0EC6 l1782:
+ 5155 0EC6 3001 movlw 1
+ 5156 0EC7 00F8 movwf ??___lmul
+ 5157 0EC8 u1035:
+ 5158 0EC8 1003 clrc
+ 5159 0EC9 0DF4 rlf ___lmul@multiplicand,f
+ 5160 0ECA 0DF5 rlf ___lmul@multiplicand+1,f
+ 5161 0ECB 0DF6 rlf ___lmul@multiplicand+2,f
+ 5162 0ECC 0DF7 rlf ___lmul@multiplicand+3,f
+ 5163 0ECD 0BF8 decfsz ??___lmul,f
+ 5164 0ECE 2EC8 goto u1035
+ 5165 0ECF 3001 movlw 1
+ 5166 0ED0 u1045:
+ 5167 0ED0 1003 clrc
+ 5168 0ED1 0CF3 rrf ___lmul@multiplier+3,f
+ 5169 0ED2 0CF2 rrf ___lmul@multiplier+2,f
+ 5170 0ED3 0CF1 rrf ___lmul@multiplier+1,f
+ 5171 0ED4 0CF0 rrf ___lmul@multiplier,f
+ 5172 0ED5 3EFF addlw -1
+ 5173 0ED6 1D03 skipz
+ 5174 0ED7 2ED0 goto u1045
+ 5175 0ED8 0873 movf ___lmul@multiplier+3,w
+ 5176 0ED9 0472 iorwf ___lmul@multiplier+2,w
+ 5177 0EDA 0471 iorwf ___lmul@multiplier+1,w
+ 5178 0EDB 0470 iorwf ___lmul@multiplier,w
+ 5179 0EDC 1D03 skipz
+ 5180 0EDD 2EB0 goto l1778
+ 5181 0EDE 087C movf ___lmul@product+3,w
+ 5182 0EDF 00F3 movwf ?___lmul+3
+ 5183 0EE0 087B movf ___lmul@product+2,w
+ 5184 0EE1 00F2 movwf ?___lmul+2
+ 5185 0EE2 087A movf ___lmul@product+1,w
+ 5186 0EE3 00F1 movwf ?___lmul+1
+ 5187 0EE4 0879 movf ___lmul@product,w
+ 5188 0EE5 00F0 movwf ?___lmul
+ 5189 0EE6 0008 return
+ 5190 0EE7 __end_of___lmul:
+ 5191
+ 5192 psect text31
+ 5193 01EC __ptext31:
+ 5194 ;; *************** function ___lldiv *****************
+ 5195 ;; Defined at:
+ 5196 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c"
+ 5197 ;; Parameters: Size Location Type
+ 5198 ;; divisor 4 0[BANK0 ] unsigned long
+ 5199 ;; dividend 4 4[BANK0 ] unsigned long
+ 5200 ;; Auto vars: Size Location Type
+ 5201 ;; quotient 4 8[BANK0 ] unsigned long
+ 5202 ;; counter 1 12[BANK0 ] unsigned char
+ 5203 ;; Return value: Size Location Type
+ 5204 ;; 4 0[BANK0 ] unsigned long
+ 5205 ;; Registers used:
+ 5206 ;; wreg, status,2, status,0
+ 5207 ;; Tracked objects:
+ 5208 ;; On entry : 0/0
+ 5209 ;; On exit : 0/0
+ 5210 ;; Unchanged: 0/0
+ 5211 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 5212 ;; Params: 0 8 0 0 0
+ 5213 ;; Locals: 0 5 0 0 0
+ 5214 ;; Temps: 1 0 0 0 0
+ 5215 ;; Totals: 1 13 0 0 0
+ 5216 ;;Total ram usage: 14 bytes
+ 5217 ;; Hardware stack levels used: 1
+ 5218 ;; This function calls:
+ 5219 ;; Nothing
+ 5220 ;; This function is called by:
+ 5221 ;; _I2C_Master_Init
+ 5222 ;; This function uses a non-reentrant model
+ 5223 ;;
+ 5224
+ 5225
+ 5226 ;psect for function ___lldiv
+ 5227 01EC ___lldiv:
+ 5228
+ 5229 ;incstack = 0
+ 5230 ; Regs used in ___lldiv: [wreg+status,2+status,0]
+ 5231 01EC 3000 movlw 0
+ 5232 01ED 1283 bcf 3,5 ;RP0=0, select bank0
+ 5233 01EE 1303 bcf 3,6 ;RP1=0, select bank0
+ 5234 01EF 00D8 movwf ___lldiv@quotient+3
+ 5235 01F0 3000 movlw 0
+ 5236 01F1 00D7 movwf ___lldiv@quotient+2
+ 5237 01F2 3000 movlw 0
+ 5238 01F3 00D6 movwf ___lldiv@quotient+1
+ 5239 01F4 3000 movlw 0
+ 5240 01F5 00D5 movwf ___lldiv@quotient
+ 5241 01F6 0850 movf ___lldiv@divisor+3,w
+ 5242 01F7 044F iorwf ___lldiv@divisor+2,w
+ 5243 01F8 044E iorwf ___lldiv@divisor+1,w
+ 5244 01F9 044D iorwf ___lldiv@divisor,w
+ 5245 01FA 1903 skipnz
+ 5246 01FB 2A43 goto l1810
+ 5247 01FC 01D9 clrf ___lldiv@counter
+ 5248 01FD 0AD9 incf ___lldiv@counter,f
+ 5249 01FE l1796:
+ 5250 01FE 1BD0 btfsc ___lldiv@divisor+3,7
+ 5251 01FF 2A0E goto l1798
+ 5252 0200 3001 movlw 1
+ 5253 0201 00FD movwf ??___lldiv
+ 5254 0202 u1075:
+ 5255 0202 1003 clrc
+ 5256 0203 0DCD rlf ___lldiv@divisor,f
+ 5257 0204 0DCE rlf ___lldiv@divisor+1,f
+ 5258 0205 0DCF rlf ___lldiv@divisor+2,f
+ 5259 0206 0DD0 rlf ___lldiv@divisor+3,f
+ 5260 0207 0BFD decfsz ??___lldiv,f
+ 5261 0208 2A02 goto u1075
+ 5262 0209 3001 movlw 1
+ 5263 020A 00FD movwf ??___lldiv
+ 5264 020B 087D movf ??___lldiv,w
+ 5265 020C 07D9 addwf ___lldiv@counter,f
+ 5266 020D 29FE goto l1796
+ 5267 020E l1798:
+ 5268 020E 3001 movlw 1
+ 5269 020F 00FD movwf ??___lldiv
+ 5270 0210 u1095:
+ 5271 0210 1003 clrc
+ 5272 0211 0DD5 rlf ___lldiv@quotient,f
+ 5273 0212 0DD6 rlf ___lldiv@quotient+1,f
+ 5274 0213 0DD7 rlf ___lldiv@quotient+2,f
+ 5275 0214 0DD8 rlf ___lldiv@quotient+3,f
+ 5276 0215 0BFD decfsz ??___lldiv,f
+ 5277 0216 2A10 goto u1095
+ 5278 0217 0850 movf ___lldiv@divisor+3,w
+ 5279 0218 0254 subwf ___lldiv@dividend+3,w
+ 5280 0219 1D03 skipz
+ 5281 021A 2A25 goto u1105
+ 5282 021B 084F movf ___lldiv@divisor+2,w
+ 5283 021C 0253 subwf ___lldiv@dividend+2,w
+ 5284 021D 1D03 skipz
+ 5285 021E 2A25 goto u1105
+ 5286 021F 084E movf ___lldiv@divisor+1,w
+ 5287 0220 0252 subwf ___lldiv@dividend+1,w
+ 5288 0221 1D03 skipz
+ 5289 0222 2A25 goto u1105
+ 5290 0223 084D movf ___lldiv@divisor,w
+ 5291 0224 0251 subwf ___lldiv@dividend,w
+ 5292 0225 u1105:
+ 5293 0225 1C03 skipc
+ 5294 0226 2A36 goto l1806
+ 5295 0227 084D movf ___lldiv@divisor,w
+ 5296 0228 02D1 subwf ___lldiv@dividend,f
+ 5297 0229 084E movf ___lldiv@divisor+1,w
+ 5298 022A 1C03 skipc
+ 5299 022B 0F4E incfsz ___lldiv@divisor+1,w
+ 5300 022C 02D2 subwf ___lldiv@dividend+1,f
+ 5301 022D 084F movf ___lldiv@divisor+2,w
+ 5302 022E 1C03 skipc
+ 5303 022F 0F4F incfsz ___lldiv@divisor+2,w
+ 5304 0230 02D3 subwf ___lldiv@dividend+2,f
+ 5305 0231 0850 movf ___lldiv@divisor+3,w
+ 5306 0232 1C03 skipc
+ 5307 0233 0F50 incfsz ___lldiv@divisor+3,w
+ 5308 0234 02D4 subwf ___lldiv@dividend+3,f
+ 5309 0235 1455 bsf ___lldiv@quotient,0
+ 5310 0236 l1806:
+ 5311 0236 3001 movlw 1
+ 5312 0237 u1115:
+ 5313 0237 1003 clrc
+ 5314 0238 0CD0 rrf ___lldiv@divisor+3,f
+ 5315 0239 0CCF rrf ___lldiv@divisor+2,f
+ 5316 023A 0CCE rrf ___lldiv@divisor+1,f
+ 5317 023B 0CCD rrf ___lldiv@divisor,f
+ 5318 023C 3EFF addlw -1
+ 5319 023D 1D03 skipz
+ 5320 023E 2A37 goto u1115
+ 5321 023F 3001 movlw 1
+ 5322 0240 02D9 subwf ___lldiv@counter,f
+ 5323 0241 1D03 btfss 3,2
+ 5324 0242 2A0E goto l1798
+ 5325 0243 l1810:
+ 5326 0243 0858 movf ___lldiv@quotient+3,w
+ 5327 0244 00D0 movwf ?___lldiv+3
+ 5328 0245 0857 movf ___lldiv@quotient+2,w
+ 5329 0246 00CF movwf ?___lldiv+2
+ 5330 0247 0856 movf ___lldiv@quotient+1,w
+ 5331 0248 00CE movwf ?___lldiv+1
+ 5332 0249 0855 movf ___lldiv@quotient,w
+ 5333 024A 00CD movwf ?___lldiv
+ 5334 024B 0008 return
+ 5335 024C __end_of___lldiv:
+ 5336
+ 5337 psect text32
+ 5338 0D08 __ptext32:
+ 5339 ;; *************** function _Get_Alarm_Status *****************
+ 5340 ;; Defined at:
+ 5341 ;; line 221 in file "main.c"
+ 5342 ;; Parameters: Size Location Type
+ 5343 ;; None
+ 5344 ;; Auto vars: Size Location Type
+ 5345 ;; None
+ 5346 ;; Return value: Size Location Type
+ 5347 ;; 1 wreg void
+ 5348 ;; Registers used:
+ 5349 ;; wreg, status,2, status,0
+ 5350 ;; Tracked objects:
+ 5351 ;; On entry : 0/0
+ 5352 ;; On exit : 0/0
+ 5353 ;; Unchanged: 0/0
+ 5354 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ 5355 ;; Params: 0 0 0 0 0
+ 5356 ;; Locals: 0 0 0 0 0
+ 5357 ;; Temps: 2 0 0 0 0
+ 5358 ;; Totals: 2 0 0 0 0
+ 5359 ;;Total ram usage: 2 bytes
+ 5360 ;; Hardware stack levels used: 1
+ 5361 ;; This function calls:
+ 5362 ;; Nothing
+ 5363 ;; This function is called by:
+ 5364 ;; _main
+ 5365 ;; This function uses a non-reentrant model
+ 5366 ;;
+ 5367
+ 5368
+ 5369 ;psect for function _Get_Alarm_Status
+ 5370 0D08 _Get_Alarm_Status:
+ 5371
+ 5372 ;main.c: 222: alarm1_status = control_reg & 0x01;
+ 5373
+ 5374 ;incstack = 0
+ 5375 ; Regs used in _Get_Alarm_Status: [wreg+status,2+status,0]
+ 5376 0D08 3001 movlw 1
+ 5377 0D09 1283 bcf 3,5 ;RP0=0, select bank0
+ 5378 0D0A 1303 bcf 3,6 ;RP1=0, select bank0
+ 5379 0D0B 0524 andwf _control_reg,w
+ 5380 0D0C 00A8 movwf _alarm1_status
+ 5381 0D0D 3000 movlw 0
+ 5382 0D0E 0525 andwf _control_reg+1,w
+ 5383 0D0F 00A9 movwf _alarm1_status+1
+ 5384
+ 5385 ;main.c: 223: alarm2_status = (control_reg >> 1) & 0x01;
+ 5386 0D10 0825 movf _control_reg+1,w
+ 5387 0D11 00F1 movwf ??_Get_Alarm_Status+1
+ 5388 0D12 0824 movf _control_reg,w
+ 5389 0D13 00F0 movwf ??_Get_Alarm_Status
+ 5390 0D14 1003 clrc
+ 5391 0D15 0CF1 rrf ??_Get_Alarm_Status+1,f
+ 5392 0D16 0CF0 rrf ??_Get_Alarm_Status,f
+ 5393 0D17 3001 movlw 1
+ 5394 0D18 0570 andwf ??_Get_Alarm_Status,w
+ 5395 0D19 00A6 movwf _alarm2_status
+ 5396 0D1A 3000 movlw 0
+ 5397 0D1B 0571 andwf ??_Get_Alarm_Status+1,w
+ 5398 0D1C 00A7 movwf _alarm2_status+1
+ 5399 0D1D 0008 return
+ 5400 0D1E __end_of_Get_Alarm_Status:
+ 5401 007E btemp set 126 ;btemp
+ 5402 007E wtemp0 set 126
+
+
+Data Sizes:
+ Strings 92
+ Constant 0
+ Data 17
+ BSS 91
+ Persistent 0
+ Stack 0
+
+Auto Spaces:
+ Space Size Autos Used
+ COMMON 14 14 14
+ BANK0 80 21 79
+ BANK1 80 0 50
+ BANK3 96 0 0
+ BANK2 96 0 0
+
+Pointer List with Targets:
+
+ Lcd_Write_String@a PTR unsigned char size(2) Largest target is 512
+ -> NULL(NULL[0]), RAM(DATA[512]), STR_11(CODE[16]), STR_10(CODE[15]),
+ -> STR_9(CODE[16]), STR_8(CODE[17]), STR_7(CODE[4]), STR_6(CODE[4]),
+ -> STR_5(CODE[4]), STR_4(CODE[4]), STR_3(CODE[4]), STR_2(CODE[4]),
+ -> STR_1(CODE[4]),
+
+ weekday PTR unsigned char size(2) Largest target is 512
+ -> NULL(NULL[0]), RAM(DATA[512]), STR_7(CODE[4]), STR_6(CODE[4]),
+ -> STR_5(CODE[4]), STR_4(CODE[4]), STR_3(CODE[4]), STR_2(CODE[4]),
+ -> STR_1(CODE[4]),
+
+
+Critical Paths under _main in COMMON
+
+ _main->_display_Intro
+ _main->_display_Lcd_Layout
+ _update_Display->_Lcd_Set_Cursor
+ _format_Temperature->___awdiv
+ _format_DateTimeChars->___lwdiv
+ _display_Lcd_Layout->_Lcd_Set_Cursor
+ _display_Intro->_Lcd_Set_Cursor
+ _Lcd_Write_String->_Lcd_Write_Char
+ _Lcd_Write_Char->_Lcd_Port
+ _Lcd_Set_Cursor->_Lcd_Cmd
+ _Lcd_Clear->_Lcd_Cmd
+ _Update_Current_Date_Time->_BCD_2_DEC
+ _Read_Alarms_Temp->_BCD_2_DEC
+ _BCD_2_DEC->_I2C_Master_Read
+ _BCD_2_DEC->___wmul
+ _Lcd_Init->_Lcd_Cmd
+ _Lcd_Cmd->_Lcd_Port
+ _I2C_Master_Init->___lldiv
+ ___lldiv->___lmul
+
+Critical Paths under _main in BANK0
+
+ _main->_I2C_Master_Init
+ _I2C_Master_Init->___lldiv
+
+Critical Paths under _main in BANK1
+
+ None.
+
+Critical Paths under _main in BANK3
+
+ None.
+
+Critical Paths under _main in BANK2
+
+ None.
+
+Call Graph Tables:
+
+ ---------------------------------------------------------------------------------
+ (Depth) Function Calls Base Space Used Autos Params Refs
+ ---------------------------------------------------------------------------------
+ (0) _main 0 0 0 25347
+ _Get_Alarm_Status
+ _I2C_Master_Init
+ _Lcd_Init
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ _display_Intro
+ _display_Lcd_Layout
+ _format_DateTimeChars
+ _format_Temperature
+ _getWeekDay
+ _update_Display
+ ---------------------------------------------------------------------------------
+ (1) _update_Display 1 1 0 2438
+ 11 COMMON 1 1 0
+ _Lcd_Set_Cursor
+ _Lcd_Write_Char
+ _Lcd_Write_String
+ _alarm
+ ---------------------------------------------------------------------------------
+ (2) _alarm 9 7 2 244
+ 0 COMMON 9 7 2
+ ---------------------------------------------------------------------------------
+ (1) _getWeekDay 2 0 2 98
+ 0 COMMON 2 0 2
+ ---------------------------------------------------------------------------------
+ (1) _format_Temperature 1 1 0 1752
+ 9 COMMON 1 1 0
+ ___awdiv
+ ___awmod
+ ___wmul
+ ---------------------------------------------------------------------------------
+ (2) ___awmod 7 3 4 600
+ 0 COMMON 7 3 4
+ ---------------------------------------------------------------------------------
+ (2) ___awdiv 9 5 4 604
+ 0 COMMON 9 5 4
+ ---------------------------------------------------------------------------------
+ (1) _format_DateTimeChars 1 1 0 3665
+ 8 COMMON 1 1 0
+ ___lwdiv
+ ___lwmod
+ ---------------------------------------------------------------------------------
+ (2) ___lwmod 6 2 4 1831
+ 0 COMMON 6 2 4
+ ---------------------------------------------------------------------------------
+ (2) ___lwdiv 8 4 4 1834
+ 0 COMMON 8 4 4
+ ---------------------------------------------------------------------------------
+ (1) _display_Lcd_Layout 3 3 0 2304
+ 11 COMMON 3 3 0
+ _Lcd_Clear
+ _Lcd_Set_Cursor
+ _Lcd_Write_Char
+ _Lcd_Write_String
+ ---------------------------------------------------------------------------------
+ (1) _display_Intro 3 3 0 2126
+ 11 COMMON 3 3 0
+ _Lcd_Clear
+ _Lcd_Set_Cursor
+ _Lcd_Write_String
+ ---------------------------------------------------------------------------------
+ (2) _Lcd_Write_String 4 2 2 648
+ 5 COMMON 4 2 2
+ _Lcd_Write_Char
+ ---------------------------------------------------------------------------------
+ (3) _Lcd_Write_Char 4 4 0 178
+ 1 COMMON 4 4 0
+ _Lcd_Port
+ ---------------------------------------------------------------------------------
+ (2) _Lcd_Set_Cursor 7 6 1 1368
+ 4 COMMON 7 6 1
+ _Lcd_Cmd
+ ---------------------------------------------------------------------------------
+ (2) _Lcd_Clear 0 0 0 110
+ _Lcd_Cmd
+ ---------------------------------------------------------------------------------
+ (1) _Update_Current_Date_Time 0 0 0 6055
+ _BCD_2_DEC
+ _I2C_Master_Read
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Start
+ _I2C_Master_Stop
+ _I2C_Master_Write
+ ---------------------------------------------------------------------------------
+ (1) _Read_Alarms_Temp 0 0 0 6055
+ _BCD_2_DEC
+ _I2C_Master_Read
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Start
+ _I2C_Master_Stop
+ _I2C_Master_Write
+ ---------------------------------------------------------------------------------
+ (2) _I2C_Master_Write 2 0 2 3062
+ 0 COMMON 2 0 2
+ _I2C_Master_Wait
+ ---------------------------------------------------------------------------------
+ (2) _I2C_Master_Stop 0 0 0 0
+ _I2C_Master_Wait
+ ---------------------------------------------------------------------------------
+ (2) _I2C_Master_Start 0 0 0 0
+ _I2C_Master_Wait
+ ---------------------------------------------------------------------------------
+ (2) _I2C_Master_Repeated_Start 0 0 0 0
+ _I2C_Master_Wait
+ ---------------------------------------------------------------------------------
+ (2) _I2C_Master_Read 6 4 2 1565
+ 0 COMMON 6 4 2
+ _I2C_Master_Wait
+ ---------------------------------------------------------------------------------
+ (3) _I2C_Master_Wait 0 0 0 0
+ ---------------------------------------------------------------------------------
+ (2) _BCD_2_DEC 4 2 2 1428
+ 6 COMMON 4 2 2
+ _I2C_Master_Read (ARG)
+ ___wmul
+ ---------------------------------------------------------------------------------
+ (2) ___wmul 6 2 4 548
+ 0 COMMON 6 2 4
+ ---------------------------------------------------------------------------------
+ (1) _Lcd_Init 2 2 0 198
+ 4 COMMON 2 2 0
+ _Lcd_Cmd
+ _Lcd_Port
+ ---------------------------------------------------------------------------------
+ (3) _Lcd_Cmd 3 3 0 110
+ 1 COMMON 3 3 0
+ _Lcd_Port
+ ---------------------------------------------------------------------------------
+ (4) _Lcd_Port 1 1 0 88
+ 0 COMMON 1 1 0
+ ---------------------------------------------------------------------------------
+ (1) _I2C_Master_Init 8 4 4 656
+ 13 BANK0 8 4 4
+ ___lldiv
+ ___lmul
+ ---------------------------------------------------------------------------------
+ (2) ___lmul 13 5 8 244
+ 0 COMMON 13 5 8
+ ---------------------------------------------------------------------------------
+ (2) ___lldiv 14 6 8 314
+ 13 COMMON 1 1 0
+ 0 BANK0 13 5 8
+ ___lmul (ARG)
+ ---------------------------------------------------------------------------------
+ (1) _Get_Alarm_Status 2 2 0 0
+ 0 COMMON 2 2 0
+ ---------------------------------------------------------------------------------
+ Estimated maximum stack depth 4
+ ---------------------------------------------------------------------------------
+
+ Call Graph Graphs:
+
+ _main (ROOT)
+ _Get_Alarm_Status
+ _I2C_Master_Init
+ ___lldiv
+ ___lmul (ARG)
+ ___lmul
+ _Lcd_Init
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Port
+ _Read_Alarms_Temp
+ _BCD_2_DEC
+ _I2C_Master_Read (ARG)
+ _I2C_Master_Wait
+ ___wmul (ARG)
+ _I2C_Master_Read
+ _I2C_Master_Wait
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Wait
+ _I2C_Master_Start
+ _I2C_Master_Wait
+ _I2C_Master_Stop
+ _I2C_Master_Wait
+ _I2C_Master_Write
+ _I2C_Master_Wait
+ _Update_Current_Date_Time
+ _BCD_2_DEC
+ _I2C_Master_Read (ARG)
+ _I2C_Master_Wait
+ ___wmul (ARG)
+ _I2C_Master_Read
+ _I2C_Master_Wait
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Wait
+ _I2C_Master_Start
+ _I2C_Master_Wait
+ _I2C_Master_Stop
+ _I2C_Master_Wait
+ _I2C_Master_Write
+ _I2C_Master_Wait
+ _display_Intro
+ _Lcd_Clear
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Set_Cursor
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Write_String
+ _Lcd_Write_Char
+ _Lcd_Port
+ _display_Lcd_Layout
+ _Lcd_Clear
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Set_Cursor
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Write_Char
+ _Lcd_Port
+ _Lcd_Write_String
+ _Lcd_Write_Char
+ _Lcd_Port
+ _format_DateTimeChars
+ ___lwdiv
+ ___lwmod
+ _format_Temperature
+ ___awdiv
+ ___awmod
+ ___wmul
+ _getWeekDay
+ _update_Display
+ _Lcd_Set_Cursor
+ _Lcd_Cmd
+ _Lcd_Port
+ _Lcd_Write_Char
+ _Lcd_Port
+ _Lcd_Write_String
+ _Lcd_Write_Char
+ _Lcd_Port
+ _alarm
+
+ Address spaces:
+Name Size Autos Total Cost Usage
+BANK3 60 0 0 9 0.0%
+BITBANK3 60 0 0 8 0.0%
+SFR3 0 0 0 4 0.0%
+BITSFR3 0 0 0 4 0.0%
+BANK2 60 0 0 11 0.0%
+BITBANK2 60 0 0 10 0.0%
+SFR2 0 0 0 5 0.0%
+BITSFR2 0 0 0 5 0.0%
+BANK1 50 0 32 7 62.5%
+BITBANK1 50 0 0 6 0.0%
+SFR1 0 0 0 2 0.0%
+BITSFR1 0 0 0 2 0.0%
+BANK0 50 15 4F 5 98.8%
+BITBANK0 50 0 0 4 0.0%
+SFR0 0 0 0 1 0.0%
+BITSFR0 0 0 0 1 0.0%
+COMMON E E E 1 100.0%
+BITCOMMON E 0 0 0 0.0%
+CODE 0 0 0 0 0.0%
+DATA 0 0 8F 12 0.0%
+ABS 0 0 8F 3 0.0%
+NULL 0 0 0 0 0.0%
+STACK 0 0 0 2 0.0%
+EEDATA 100 0 0 0 0.0%
+
+
+Microchip Technology PIC Macro Assembler V2.05 build -831301201
+Symbol Table Sat Jul 27 21:52:44 2019
+
+ __end_of_format_DateTimeChars 07D3 pc 0002
+ __CFG_CP$OFF 0000 ___awdiv@sign 0076
+ fsr 0004 ___wmul@multiplicand 0072
+ l202 0D25 l203 0D28
+ l204 0D2C l205 0D2D
+ l206 0D31 l207 0D32
+ l208 0D36 l171 00E5
+ l487 0F2A l489 0F34
+ l578 0D5C _RD1 0041
+ _RD2 0042 _RD3 0043
+ _RD4 0044 _RD5 0045
+ _RD6 0046 _RD7 0047
+ _PEN 048A __CFG_CPD$OFF 0000
+ _SEN 0488 u905 0D64
+ u935 0F77 u855 0E44
+ _RX9 00C6 u955 0F9C
+ u990 0D96 u895 0D5D
+ u975 0F55 u985 0F30
+ _TX9 04C6 _buf 00A0
+ _min 006A _sec 006C
+ fsr0 0004 indf 0000
+ ___awmod@sign 0076 __CFG_FOSC$HS 0000
+ ?_display_Intro 0070 __CFG_LVP$OFF 0000
+ __end_of_update_Display 061A l2000 02D1
+ l2010 02F7 l2022 0312
+ l2014 0300 l2030 009F
+ l2040 00C2 l2032 00A6
+ l2018 0309 l2034 00AD
+ l2036 00B4 l2028 0098
+ l2044 00C9 l2038 00BB
+ l2072 0607 l2146 00CE
+ l2092 0274 l1810 0243
+ l1706 0F90 l1722 0DA1
+ l1806 0236 l1822 0141
+ l1840 0162 l1682 0D54
+ l1914 0E98 l1906 0E74
+ l1930 0DD2 l1850 0183
+ l1676 0CD6 l1908 0E82
+ l1932 0DE0 l1940 0DF9
+ l1828 014C l1782 0EC6
+ l1766 0D99 l1918 0EA3
+ l1854 018B l1846 0178
+ l1838 0154 l1870 0FC6
+ l1936 0DEE l1880 0FDA
+ l1778 0EB0 l1866 0FBF
+ l1796 01FE l1892 0FFB
+ l1884 0FE8 l1798 020E
+ l1878 0FCC l1888 0FF3
+ STR_1 0063 STR_2 005F
+ STR_3 0057 STR_4 0053
+ STR_5 006B STR_6 005B
+ STR_7 0067 STR_8 0013
+ STR_9 0034 _BRGH 04C2
+ _CREN 00C4 u1105 0225
+ u1115 0237 u1035 0EC8
+ u1045 0ED0 u1205 0179
+ u1075 0202 u1405 0DD5
+ u1165 0157 u1095 0210
+ u1335 0E77 u1425 0DE6
+ u1185 0163 u1265 0FCF
+ u1355 0E83 u1435 0DEF
+ u1195 016F u1365 0E8F
+ u1285 0FE0 u1455 00FC
+ u1607 0F20 u1375 0E99
+ u1295 0FE9 u1617 0E2B
+ u1627 0E54 u1475 02D6
+ u1637 0E65 u1565 02A4
+ u1647 019A u1657 01A9
+ u1577 0F3B u1667 01B8
+ u1587 0F44 u1677 0D49
+ u1597 0F5D _RCEN 048B
+ _RCIF 0065 _OERR 00C1
+ _SPEN 00C7 _RSEN 0489
+ _TXEN 04C5 _TXIF 0064
+ _SYNC 04C4 __CFG_WRT$OFF 0000
+ ?_Lcd_Write_String 0075 _date 0066
+ _main 024C _hour 0068
+ _year 0062 btemp 007E
+ __CFG_BOREN$ON 0000 start 0000
+ ??_Lcd_Write_String 0077 __end_of_Lcd_Cmd 0D52
+ I2C_Master_Init@freq_K 005A ?_I2C_Master_Init 005A
+ ?_I2C_Master_Read 0070 ?_I2C_Master_Wait 0070
+ ?_I2C_Master_Stop 0070 ?_main 0070
+ _ACKEN 048C _ACKDT 048D
+ __end_of___awdiv 0190 STR_10 0044
+ STR_11 0024 __CFG_WDTE$OFF 0000
+ __end_of___awmod 1000 __end_of___lldiv 024C
+ ___awdiv@divisor 0070 __end_of___lwdiv 0EA8
+ __end_of___lwmod 0DFE ___awdiv@counter 0075
+ _RCREG 001A _SPBRG 0099
+ _PORTC 0007 _PORTD 0008
+ __size_of_Lcd_Set_Cursor 004A _TRISC 0087
+ _TRISD 0088 _TXREG 0019
+ ___lmul@multiplicand 0074 __CFG_PWRTE$ON 0000
+ _display_Lcd_Layout 0EE7 _day_0 0046
+ _day_1 0045 __end_of_BCD_2_DEC 0097
+ _alarm 0F28 _min_0 004A
+ _min_1 0049 _sec_0 004C
+ _sec_1 004B ?_update_Display 0070
+ _month 0064 pclath 000A
+ ?_display_Lcd_Layout 0070 status 0003
+ wtemp0 007E __end_of_Lcd_Init 01EC
+ __end_of_Lcd_Port 0D38 __initialization 07D3
+ __end_of_main 02B8 ?_Get_Alarm_Status 0070
+ ??_display_Lcd_Layout 007B ??_main 007E
+ ??_Get_Alarm_Status 0070 __size_of_Lcd_Clear 000B
+ ?_I2C_Master_Start 0070 ??_display_Intro 007B
+ ?_I2C_Master_Write 0070 ?_alarm 0070
+ ??_I2C_Master_Start 0070 ??_I2C_Master_Write 0072
+ _format_DateTimeChars 061A ___awdiv@dividend 0072
+ ??_Lcd_Cmd 0071 __size_of_Lcd_Write_Char 0039
+ _SSPADD 0093 _TRISC3 043B
+ _TRISC4 043C _TRISC6 043E
+ _TRISC7 043F _SSPCON 0014
+ _SSPBUF 0013 ___lmul 0EA8
+ ___wmul 0D52 ??___awdiv 0074
+ ??___awmod 0074 ??___lldiv 007D
+ ??___lwdiv 0074 ??___lwmod 0074
+ ?_Read_Alarms_Temp 0070 alarm@i 0075
+ alarm@j 0077 _hour_0 0048
+ _hour_1 0047 ___awdiv@quotient 0077
+ ___awmod@divisor 0070 _temp_0 0040
+ _temp_1 003F _temp_2 003E
+ _year_0 0042 _year_1 0041
+ ___awmod@counter 0075 __end_of_Update_Current_Date_Time 041C
+ ??_Read_Alarms_Temp 007A _alarm1_min_0 003B
+ _alarm1_min_1 003A _alarm1_sec_0 003D
+ ?_format_DateTimeChars 0070 _alarm1_sec_1 003C
+ _alarm2_min_0 0037 _alarm2_min_1 0036
+ Lcd_Set_Cursor@a 0077 Lcd_Set_Cursor@b 0074
+ Lcd_Set_Cursor@y 0079 Lcd_Set_Cursor@z 0078
+ __end_of__initialization 07FC __end_of_Lcd_Clear 0CEA
+ __pcstackCOMMON 0070 __pidataBANK0 0CEA
+ __pidataBANK1 0070 __end_of_alarm 0F6B
+ _Lcd_Set_Cursor 0F6B _temperature_lsb 0022
+ _temperature_msb 0020 ?_Lcd_Init 0070
+ ??_alarm 0072 ?_Lcd_Port 0070
+ _alarm1_min 0030 _alarm1_sec 0032
+ _alarm2_min 002C __pbssBANK0 0020
+ __pbssBANK1 00A0 alarm@numberOfBeeps 0070
+ __end_of_format_Temperature 0339 __pmaintext 024C
+ ?___lmul 0070 ?___wmul 0070
+ ___lmul@product 0079 __size_of_Lcd_Write_String 002D
+ __end_of_Lcd_Set_Cursor 0FB5 _getWeekDay 0097
+ I2C_Master_Read@incoming 0074 ??_update_Display 007B
+ ??_format_DateTimeChars 0078 _Update_Current_Date_Time 0339
+ ??_Lcd_Init 0074 ??_Lcd_Port 0070
+ _SSPCON2 0091 _SSPSTAT 0094
+ __stringtab 0003 _BCD_2_DEC 0074
+ _Lcd_Write_Char 0E33 _Lcd_Cmd 0D38
+ ___awdiv 0137 __size_of___lmul 003F
+ ___awmod 0FB5 ___lldiv 01EC
+ __size_of___wmul 0021 ___lwdiv 0E6C
+ ___lwmod 0DCC ?_Lcd_Set_Cursor 0074
+ _century 00CE __ptext1 0513
+ __ptext2 0F28 __ptext3 0097
+ __ptext4 02B8 __ptext5 0FB5
+ __ptext6 0137 __ptext7 061A
+ __ptext8 0DCC __ptext9 0E6C
+ _sec_chg 00C8 ___awmod@dividend 0072
+ _month_0 0044 _month_1 0043
+ __size_of_I2C_Master_Init 0051 __size_of_I2C_Master_Read 002C
+ __size_of_I2C_Master_Wait 0009 _weekday 00CA
+ __size_of_I2C_Master_Stop 0007 clrloop0 0CCF
+ __size_of_Get_Alarm_Status 0016 __end_of_Lcd_Write_Char 0E6C
+ end_of_initialization 07FC ?_BCD_2_DEC 0076
+ __size_of_I2C_Master_Start 0007 __size_of_I2C_Master_Write 0008
+ ___lldiv@divisor 004D ___lldiv@counter 0059
+ Lcd_Port@a 0070 _alarm1_hour_0 0039
+ _alarm1_hour_1 0038 _alarm2_hour_0 0035
+ _alarm2_hour_1 0034 _alarm1_status 0028
+ _alarm2_status 0026 ?_getWeekDay 0070
+ __size_of_display_Lcd_Layout 0041 __end_of_display_Intro 0E33
+ __size_of_Read_Alarms_Temp 00F7 ?_Lcd_Write_Char 0070
+ Lcd_Write_String@a 0075 Lcd_Write_String@i 0077
+ _status_reg 00CC _Lcd_Clear 0CDF
+ BCD_2_DEC@to_convert 0076 __end_of___lmul 0EE7
+ __end_of___wmul 0D73 _Lcd_Write_String 0D9F
+ start_initialization 07D3 __size_of_Lcd_Init 005C
+ __size_of_Lcd_Port 001A ??_BCD_2_DEC 0078
+ ??_I2C_Master_Init 005E ??_I2C_Master_Read 0072
+ ??_I2C_Master_Wait 0070 ??_I2C_Master_Stop 0070
+ __size_of_getWeekDay 004F ?_Lcd_Clear 0070
+ ??___lmul 0078 ??___wmul 0074
+ init_fetch0 0CF7 __pdataBANK0 0062
+ __pdataBANK1 00CE Lcd_Write_Char@a 0074
+ ??_Update_Current_Date_Time 007A Lcd_Write_Char@y 0073
+ _format_Temperature 02B8 _alarm1_hour 002E
+ _alarm2_hour 002A __size_of_I2C_Master_Repeated_Start 0007
+ ?_I2C_Master_Repeated_Start 0070 ___latbits 0002
+ __pcstackBANK0 004D ?_format_Temperature 0070
+ _Get_Alarm_Status 0D08 ?_Lcd_Cmd 0070
+ _I2C_Master_Start 0CB8 _I2C_Master_Write 0CC6
+ ??_format_Temperature 0079 ___lwdiv@dividend 0072
+ ??_Lcd_Set_Cursor 0075 ?___awdiv 0070
+ ?___awmod 0070 ?___lldiv 004D
+ _dayofweek 00D0 ?___lwdiv 0070
+ ?___lwmod 0070 I2C_Master_Write@data 0070
+ __pstrings 0003 __end_of_I2C_Master_Repeated_Start 0CB8
+ ___lwdiv@quotient 0075 __size_of_alarm 0043
+ __size_of_format_DateTimeChars 01B9 _Read_Alarms_Temp 041C
+ ___wmul@product 0074 clear_ram0 0CCE
+ Lcd_Cmd@a 0073 ??_Lcd_Clear 0074
+ _temp_sign 006E ??_getWeekDay 0072
+ __stringbase 0012 ___wmul@multiplier 0070
+ ??_Lcd_Write_Char 0071 _Lcd_Init 0190
+ _Lcd_Port 0D1E ___lmul@multiplier 0070
+ _control_reg 0024 __end_of_Lcd_Write_String 0DCC
+ __size_of_update_Display 0107 __size_of_Lcd_Cmd 001A
+ __end_of_getWeekDay 00E6 __end_of_display_Lcd_Layout 0F28
+ __size_of___awdiv 0059 __size_of___awmod 004B
+ __size_of___lldiv 0060 __size_of___lwdiv 003C
+ __size_of___lwmod 0032 __end_of__stringtab 0013
+ _I2C_Master_Init 00E6 _I2C_Master_Read 0D73
+ _I2C_Master_Wait 0CD6 _I2C_Master_Stop 0CBF
+ ___lwdiv@divisor 0070 ___lwdiv@counter 0077
+ __ptext10 0EE7 __ptext11 0DFE
+ __ptext20 0CB8 __ptext12 0D9F
+ __ptext21 0CB1 __ptext13 0E33
+ __ptext30 0EA8 __ptext22 0D73
+ __ptext14 0F6B __ptext31 01EC
+ __ptext23 0CD6 __ptext15 0CDF
+ __ptext32 0D08 __ptext24 0074
+ __ptext16 0339 __ptext25 0D52
+ __ptext17 041C __ptext26 0190
+ __ptext18 0CC6 __ptext27 0D38
+ __ptext19 0CBF __ptext28 0D1E
+ __ptext29 00E6 __size_of_main 006C
+ getWeekDay@dayofweek 0070 __end_of_Get_Alarm_Status 0D1E
+ __size_of_display_Intro 0035 I2C_Master_Read@ack 0070
+ ??_I2C_Master_Repeated_Start 0070 __end_of_I2C_Master_Start 0CBF
+ __end_of_I2C_Master_Write 0CCE init_ram0 0CFB
+ Lcd_Write_Char@temp 0072 ___lwmod@dividend 0072
+ ___lldiv@dividend 0051 stringcode 000D
+ __end_of_Read_Alarms_Temp 0513 __end_of_I2C_Master_Init 0137
+ __end_of_I2C_Master_Read 0D9F __end_of_I2C_Master_Wait 0CDF
+ __end_of_I2C_Master_Stop 0CC6 Lcd_Set_Cursor@temp 007A
+ ___lldiv@quotient 0055 ___lwmod@divisor 0070
+ ___lwmod@counter 0075 stringdir 000D
+ stringtab 0003 _display_Intro 0DFE
+ __size_of_Update_Current_Date_Time 00E3 ?_Update_Current_Date_Time 0070
+ _update_Display 0513 _I2C_Master_Repeated_Start 0CB1
+ __size_of_format_Temperature 0081 __size_of_BCD_2_DEC 0023
diff --git a/dist/default/production/I2C_LCD.X.production.map b/dist/default/production/I2C_LCD.X.production.map
new file mode 100755
index 0000000..10ccf99
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.map
@@ -0,0 +1,1822 @@
+Microchip MPLAB XC8 Compiler V2.05 ()
+
+Linker command line:
+
+-W-3 --edf=C:\Program Files (x86)\Microchip\xc8\v2.05\pic\dat\en_msgs.txt \
+ -cs -h+dist/default/production\I2C_LCD.X.production.sym \
+ --cmf=dist/default/production\I2C_LCD.X.production.cmf -z -Q16F877A \
+ -oC:\Users\kb0iic\AppData\Local\Temp\s7ls.2 --defsym=__MPLAB_BUILD=1 \
+ -Mdist/default/production/I2C_LCD.X.production.map -E1 -ver=XC8 \
+ --acfsm=1493 -ASTACK=0110h-016Fh -pstack=STACK -ACODE=00h-07FFhx4 \
+ -ASTRCODE=00h-01FFFh -ASTRING=00h-0FFhx32 -ACONST=00h-0FFhx32 \
+ -AENTRY=00h-0FFhx32 -ACOMMON=070h-07Fh -ABANK0=020h-06Fh \
+ -ABANK1=0A0h-0EFh -ABANK2=0110h-016Fh -ABANK3=0190h-01EFh \
+ -ARAM=020h-06Fh,0A0h-0EFh,0110h-016Fh,0190h-01EFh \
+ -AABS1=020h-07Fh,0A0h-0EFh,0110h-016Fh,0190h-01EFh -ASFR0=00h-01Fh \
+ -ASFR1=080h-09Fh -ASFR2=0100h-010Fh -ASFR3=0180h-018Fh \
+ -preset_vec=00h,intentry,init,end_init -ppowerup=CODE -pcinit=CODE \
+ -pfunctab=ENTRY -ACONFIG=02007h-02007h -pconfig=CONFIG -DCONFIG=2 \
+ -AIDLOC=02000h-02003h -pidloc=IDLOC -DIDLOC=2 -AEEDATA=00h-0FFh/02100h \
+ -peeprom_data=EEDATA -DEEDATA=2 -DCODE=2 -DSTRCODE=2 -DSTRING=2 -DCONST=2 \
+ -DENTRY=2 -k C:\Users\kb0iic\AppData\Local\Temp\s7ls.o \
+ dist/default/production\I2C_LCD.X.production.o
+
+Object code version is 3.11
+
+Machine type is 16F877A
+
+
+
+ Name Link Load Length Selector Space Scale
+C:\Users\kb0iic\AppData\Local\Temp\s7ls.o
+ end_init 0 0 3 0 0
+ config 2007 2007 1 400E 0
+dist/default/production\I2C_LCD.X.production.o
+ cinit 7D3 7D3 2D FA6 0
+ text32 D08 D08 16 1A10 0
+ text31 1EC 1EC 60 3D8 0
+ text30 EA8 EA8 3F 1D50 0
+ text29 E6 E6 51 1CC 0
+ text28 D1E D1E 1A 1A3C 0
+ text27 D38 D38 1A 1A70 0
+ text26 190 190 5C 320 0
+ text25 D52 D52 21 1AA4 0
+ text24 74 74 23 E8 0
+ text23 CD6 CD6 9 19AC 0
+ text22 D73 D73 2C 1AE6 0
+ text21 CB1 CB1 7 1962 0
+ text20 CB8 CB8 7 1970 0
+ text19 CBF CBF 7 197E 0
+ text18 CC6 CC6 8 198C 0
+ text17 41C 41C F7 838 0
+ text16 339 339 E3 672 0
+ text15 CDF CDF B 19BE 0
+ text14 F6B F6B 4A 1ED6 0
+ text13 E33 E33 39 1C66 0
+ text12 D9F D9F 2D 1B3E 0
+ text11 DFE DFE 35 1BFC 0
+ text10 EE7 EE7 41 1DCE 0
+ text9 E6C E6C 3C 1CD8 0
+ text8 DCC DCC 32 1B98 0
+ text7 61A 61A 1B9 C34 0
+ text6 137 137 59 26E 0
+ text5 FB5 FB5 4B 1F6A 0
+ text4 2B8 2B8 81 570 0
+ text3 97 97 4F 12E 0
+ text2 F28 F28 43 1E50 0
+ text1 513 513 107 A26 0
+ maintext 24C 24C 6C 498 0
+ cstackBANK0 4D 4D 15 20 1
+ cstackCOMMON 70 70 E 70 1
+ clrtext CCE CCE 8 199C 0
+ inittext CF7 CF7 11 19EE 0
+ dataBANK1 CE CE 4 A0 1
+ bssBANK1 A0 A0 2E A0 1
+ dataBANK0 62 62 D 20 1
+ bssBANK0 20 20 2D 20 1
+ strings 3 3 6C 6 0
+ idataBANK1 70 70 4 E0 0
+ idataBANK0 CEA CEA D 19D4 0
+
+TOTAL Name Link Load Length Space
+ CLASS STACK
+
+ CLASS CODE
+ end_init 0 0 3 0
+ cinit 7D3 7D3 2D 0
+ text32 D08 D08 16 0
+ text31 1EC 1EC 60 0
+ text30 EA8 EA8 3F 0
+ text29 E6 E6 51 0
+ text28 D1E D1E 1A 0
+ text27 D38 D38 1A 0
+ text26 190 190 5C 0
+ text25 D52 D52 21 0
+ text24 74 74 23 0
+ text23 CD6 CD6 9 0
+ text22 D73 D73 2C 0
+ text21 CB1 CB1 7 0
+ text20 CB8 CB8 7 0
+ text19 CBF CBF 7 0
+ text18 CC6 CC6 8 0
+ text17 41C 41C F7 0
+ text16 339 339 E3 0
+ text15 CDF CDF B 0
+ text14 F6B F6B 4A 0
+ text13 E33 E33 39 0
+ text12 D9F D9F 2D 0
+ text11 DFE DFE 35 0
+ text10 EE7 EE7 41 0
+ text9 E6C E6C 3C 0
+ text8 DCC DCC 32 0
+ text7 61A 61A 1B9 0
+ text6 137 137 59 0
+ text5 FB5 FB5 4B 0
+ text4 2B8 2B8 81 0
+ text3 97 97 4F 0
+ text2 F28 F28 43 0
+ text1 513 513 107 0
+ maintext 24C 24C 6C 0
+ clrtext CCE CCE 8 0
+ inittext CF7 CF7 11 0
+ idataBANK1 70 70 4 0
+ idataBANK0 CEA CEA D 0
+
+ CLASS STRCODE
+
+ CLASS STRING
+ strings 3 3 6C 0
+
+ CLASS CONST
+
+ CLASS ENTRY
+
+ CLASS COMMON
+ cstackCOMMON 70 70 E 1
+
+ CLASS BANK0
+ cstackBANK0 4D 4D 15 1
+ dataBANK0 62 62 D 1
+ bssBANK0 20 20 2D 1
+
+ CLASS BANK1
+ dataBANK1 CE CE 4 1
+ bssBANK1 A0 A0 2E 1
+
+ CLASS BANK2
+
+ CLASS BANK3
+
+ CLASS RAM
+
+ CLASS ABS1
+ abs_s1 7E 7E 2 1
+
+ CLASS SFR0
+
+ CLASS SFR1
+
+ CLASS SFR2
+
+ CLASS SFR3
+
+ CLASS CONFIG
+ config 2007 2007 1 0
+
+ CLASS IDLOC
+
+ CLASS EEDATA
+
+
+
+SEGMENTS Name Load Length Top Selector Space Class Delta
+
+ reset_vec 000000 000003 000003 0 0 CODE 2
+ strings 000003 00006C 00006F 6 0 STRING 2
+ bssBANK0 000020 00004F 00006F 20 1 BANK0 1
+ cstackCOMMON 000070 00000E 00007E 70 1 COMMON 1
+ bssBANK1 0000A0 000032 0000D2 A0 1 BANK1 1
+ idataBANK1 000070 000004 000074 E0 0 CODE 2
+ text24 000074 000023 000097 E8 0 CODE 2
+ text3 000097 00004F 0000E6 12E 0 CODE 2
+ text29 0000E6 000051 000137 1CC 0 CODE 2
+ text6 000137 000059 000190 26E 0 CODE 2
+ text26 000190 00005C 0001EC 320 0 CODE 2
+ text31 0001EC 000060 00024C 3D8 0 CODE 2
+ maintext 00024C 00006C 0002B8 498 0 CODE 2
+ text4 0002B8 000081 000339 570 0 CODE 2
+ text16 000339 0000E3 00041C 672 0 CODE 2
+ text17 00041C 0000F7 000513 838 0 CODE 2
+ text1 000513 000107 00061A A26 0 CODE 2
+ text7 00061A 0001B9 0007D3 C34 0 CODE 2
+ cinit 0007D3 00002D 000800 FA6 0 CODE 2
+ text21 000CB1 000007 000CB8 1962 0 CODE 2
+ text20 000CB8 000007 000CBF 1970 0 CODE 2
+ text19 000CBF 000007 000CC6 197E 0 CODE 2
+ text18 000CC6 000008 000CCE 198C 0 CODE 2
+ clrtext 000CCE 000008 000CD6 199C 0 CODE 2
+ text23 000CD6 000009 000CDF 19AC 0 CODE 2
+ text15 000CDF 00000B 000CEA 19BE 0 CODE 2
+ idataBANK0 000CEA 00000D 000CF7 19D4 0 CODE 2
+ inittext 000CF7 000011 000D08 19EE 0 CODE 2
+ text32 000D08 000016 000D1E 1A10 0 CODE 2
+ text28 000D1E 00001A 000D38 1A3C 0 CODE 2
+ text27 000D38 00001A 000D52 1A70 0 CODE 2
+ text25 000D52 000021 000D73 1AA4 0 CODE 2
+ text22 000D73 00002C 000D9F 1AE6 0 CODE 2
+ text12 000D9F 00002D 000DCC 1B3E 0 CODE 2
+ text8 000DCC 000032 000DFE 1B98 0 CODE 2
+ text11 000DFE 000035 000E33 1BFC 0 CODE 2
+ text13 000E33 000039 000E6C 1C66 0 CODE 2
+ text9 000E6C 00003C 000EA8 1CD8 0 CODE 2
+ text30 000EA8 00003F 000EE7 1D50 0 CODE 2
+ text10 000EE7 000041 000F28 1DCE 0 CODE 2
+ text2 000F28 000043 000F6B 1E50 0 CODE 2
+ text14 000F6B 00004A 000FB5 1ED6 0 CODE 2
+ text5 000FB5 00004B 001000 1F6A 0 CODE 2
+ config 002007 000001 002008 400E 0 CONFIG 2
+
+
+UNUSED ADDRESS RANGES
+
+ Name Unused Largest block Delta
+ BANK0 006F-006F 1 1
+ BANK1 00D2-00EF 1E 1
+ BANK2 0110-016F 60 1
+ BANK3 0190-01EF 60 1
+ CODE 006F-006F 1 2
+ 0800-0CB0 4B1
+ 1000-1FFF 800
+ CONST 006F-006F 1 2
+ 0800-0CB0 100
+ 1000-1FFF 100
+ EEDATA 2100-21FF 100 2
+ ENTRY 006F-006F 1 2
+ 0800-0CB0 100
+ 1000-1FFF 100
+ IDLOC 2000-2003 4 2
+ RAM 006F-006F 1 1
+ 00D2-00EF 1E
+ 0110-016F 60
+ 0190-01EF 60
+ SFR0 0000-001F 20 1
+ SFR1 0080-009F 20 1
+ SFR2 0100-010F 10 1
+ SFR3 0180-018F 10 1
+ STACK 0110-016F 60 1
+ STRCODE 006F-006F 1 2
+ 0800-0CB0 4B1
+ 1000-1FFF 1000
+ STRING 006F-006F 1 2
+ 0800-0CB0 100
+ 1000-1FFF 100
+
+ Symbol Table
+
+?_BCD_2_DEC cstackCOMMON 0076
+?_I2C_Master_Read cstackCOMMON 0070
+?___awdiv cstackCOMMON 0070
+?___awmod cstackCOMMON 0070
+?___lldiv cstackBANK0 004D
+?___lmul cstackCOMMON 0070
+?___lwdiv cstackCOMMON 0070
+?___lwmod cstackCOMMON 0070
+?___wmul cstackCOMMON 0070
+BCD_2_DEC@to_convert cstackCOMMON 0076
+I2C_Master_Init@freq_K cstackBANK0 005A
+I2C_Master_Read@ack cstackCOMMON 0070
+I2C_Master_Read@incoming cstackCOMMON 0074
+I2C_Master_Write@data cstackCOMMON 0070
+Lcd_Cmd@a cstackCOMMON 0073
+Lcd_Port@a cstackCOMMON 0070
+Lcd_Set_Cursor@a cstackCOMMON 0077
+Lcd_Set_Cursor@b cstackCOMMON 0074
+Lcd_Set_Cursor@temp cstackCOMMON 007A
+Lcd_Set_Cursor@y cstackCOMMON 0079
+Lcd_Set_Cursor@z cstackCOMMON 0078
+Lcd_Write_Char@a cstackCOMMON 0074
+Lcd_Write_Char@temp cstackCOMMON 0072
+Lcd_Write_Char@y cstackCOMMON 0073
+Lcd_Write_String@a cstackCOMMON 0075
+Lcd_Write_String@i cstackCOMMON 0077
+_ACKDT (abs) 048D
+_ACKEN (abs) 048C
+_BCD_2_DEC text24 0074
+_BRGH (abs) 04C2
+_CREN (abs) 00C4
+_Get_Alarm_Status text32 0D08
+_I2C_Master_Init text29 00E6
+_I2C_Master_Read text22 0D73
+_I2C_Master_Repeated_Start text21 0CB1
+_I2C_Master_Start text20 0CB8
+_I2C_Master_Stop text19 0CBF
+_I2C_Master_Wait text23 0CD6
+_I2C_Master_Write text18 0CC6
+_Lcd_Clear text15 0CDF
+_Lcd_Cmd text27 0D38
+_Lcd_Init text26 0190
+_Lcd_Port text28 0D1E
+_Lcd_Set_Cursor text14 0F6B
+_Lcd_Write_Char text13 0E33
+_Lcd_Write_String text12 0D9F
+_OERR (abs) 00C1
+_PEN (abs) 048A
+_PORTC (abs) 0007
+_PORTD (abs) 0008
+_RCEN (abs) 048B
+_RCIF (abs) 0065
+_RCREG (abs) 001A
+_RD1 (abs) 0041
+_RD2 (abs) 0042
+_RD3 (abs) 0043
+_RD4 (abs) 0044
+_RD5 (abs) 0045
+_RD6 (abs) 0046
+_RD7 (abs) 0047
+_RSEN (abs) 0489
+_RX9 (abs) 00C6
+_Read_Alarms_Temp text17 041C
+_SEN (abs) 0488
+_SPBRG (abs) 0099
+_SPEN (abs) 00C7
+_SSPADD (abs) 0093
+_SSPBUF (abs) 0013
+_SSPCON (abs) 0014
+_SSPCON2 (abs) 0091
+_SSPSTAT (abs) 0094
+_SYNC (abs) 04C4
+_TRISC (abs) 0087
+_TRISC3 (abs) 043B
+_TRISC4 (abs) 043C
+_TRISC6 (abs) 043E
+_TRISC7 (abs) 043F
+_TRISD (abs) 0088
+_TX9 (abs) 04C6
+_TXEN (abs) 04C5
+_TXIF (abs) 0064
+_TXREG (abs) 0019
+_Update_Current_Date_Time text16 0339
+__CFG_BOREN$ON (abs) 0000
+__CFG_CP$OFF (abs) 0000
+__CFG_CPD$OFF (abs) 0000
+__CFG_FOSC$HS (abs) 0000
+__CFG_LVP$OFF (abs) 0000
+__CFG_PWRTE$ON (abs) 0000
+__CFG_WDTE$OFF (abs) 0000
+__CFG_WRT$OFF (abs) 0000
+__Habs1 abs1 0000
+__Hbank0 bank0 0000
+__Hbank1 bank1 0000
+__Hbank2 bank2 0000
+__Hbank3 bank3 0000
+__HbssBANK0 bssBANK0 0000
+__HbssBANK1 bssBANK1 0000
+__Hcinit cinit 0800
+__Hclrtext clrtext 0000
+__Hcode code 0000
+__Hcommon common 0000
+__Hconfig config 2008
+__HcstackBANK0 cstackBANK0 0000
+__HcstackCOMMON cstackCOMMON 0000
+__HdataBANK0 dataBANK0 0000
+__HdataBANK1 dataBANK1 0000
+__Heeprom_data eeprom_data 0000
+__Hend_init end_init 0003
+__Hfunctab functab 0000
+__HidataBANK0 idataBANK0 0000
+__HidataBANK1 idataBANK1 0000
+__Hidloc idloc 0000
+__Hinit init 0000
+__Hinittext inittext 0000
+__Hintentry intentry 0000
+__Hmaintext maintext 0000
+__Hpowerup powerup 0000
+__Hram ram 0000
+__Hreset_vec reset_vec 0000
+__Hsfr0 sfr0 0000
+__Hsfr1 sfr1 0000
+__Hsfr2 sfr2 0000
+__Hsfr3 sfr3 0000
+__Hspace_0 (abs) 2008
+__Hspace_1 (abs) 00D2
+__Hspace_2 (abs) 0000
+__Hspace_3 (abs) 0000
+__Hstack stack 0000
+__Hstrings strings 0000
+__Htext text 0000
+__Labs1 abs1 0000
+__Lbank0 bank0 0000
+__Lbank1 bank1 0000
+__Lbank2 bank2 0000
+__Lbank3 bank3 0000
+__LbssBANK0 bssBANK0 0000
+__LbssBANK1 bssBANK1 0000
+__Lcinit cinit 07D3
+__Lclrtext clrtext 0000
+__Lcode code 0000
+__Lcommon common 0000
+__Lconfig config 2007
+__LcstackBANK0 cstackBANK0 0000
+__LcstackCOMMON cstackCOMMON 0000
+__LdataBANK0 dataBANK0 0000
+__LdataBANK1 dataBANK1 0000
+__Leeprom_data eeprom_data 0000
+__Lend_init end_init 0000
+__Lfunctab functab 0000
+__LidataBANK0 idataBANK0 0000
+__LidataBANK1 idataBANK1 0000
+__Lidloc idloc 0000
+__Linit init 0000
+__Linittext inittext 0000
+__Lintentry intentry 0000
+__Lmaintext maintext 0000
+__Lpowerup powerup 0000
+__Lram ram 0000
+__Lreset_vec reset_vec 0000
+__Lsfr0 sfr0 0000
+__Lsfr1 sfr1 0000
+__Lsfr2 sfr2 0000
+__Lsfr3 sfr3 0000
+__Lspace_0 (abs) 0000
+__Lspace_1 (abs) 0000
+__Lspace_2 (abs) 0000
+__Lspace_3 (abs) 0000
+__Lstack stack 0000
+__Lstrings strings 0000
+__Ltext text 0000
+__S0 (abs) 2008
+__S1 (abs) 00D2
+__S2 (abs) 0000
+__S3 (abs) 0000
+___awdiv text6 0137
+___awdiv@counter cstackCOMMON 0075
+___awdiv@dividend cstackCOMMON 0072
+___awdiv@divisor cstackCOMMON 0070
+___awdiv@quotient cstackCOMMON 0077
+___awdiv@sign cstackCOMMON 0076
+___awmod text5 0FB5
+___awmod@counter cstackCOMMON 0075
+___awmod@dividend cstackCOMMON 0072
+___awmod@divisor cstackCOMMON 0070
+___awmod@sign cstackCOMMON 0076
+___int_sp stack 0000
+___latbits (abs) 0002
+___lldiv text31 01EC
+___lldiv@counter cstackBANK0 0059
+___lldiv@dividend cstackBANK0 0051
+___lldiv@divisor cstackBANK0 004D
+___lldiv@quotient cstackBANK0 0055
+___lmul text30 0EA8
+___lmul@multiplicand cstackCOMMON 0074
+___lmul@multiplier cstackCOMMON 0070
+___lmul@product cstackCOMMON 0079
+___lwdiv text9 0E6C
+___lwdiv@counter cstackCOMMON 0077
+___lwdiv@dividend cstackCOMMON 0072
+___lwdiv@divisor cstackCOMMON 0070
+___lwdiv@quotient cstackCOMMON 0075
+___lwmod text8 0DCC
+___lwmod@counter cstackCOMMON 0075
+___lwmod@dividend cstackCOMMON 0072
+___lwmod@divisor cstackCOMMON 0070
+___sp stack 0000
+___stackhi (abs) 0000
+___stacklo (abs) 0000
+___wmul text25 0D52
+___wmul@multiplicand cstackCOMMON 0072
+___wmul@multiplier cstackCOMMON 0070
+___wmul@product cstackCOMMON 0074
+__end_of_BCD_2_DEC text24 0097
+__end_of_Get_Alarm_Status text32 0D1E
+__end_of_I2C_Master_Init text29 0137
+__end_of_I2C_Master_Read text22 0D9F
+__end_of_I2C_Master_Repeated_Start text21 0CB8
+__end_of_I2C_Master_Start text20 0CBF
+__end_of_I2C_Master_Stop text19 0CC6
+__end_of_I2C_Master_Wait text23 0CDF
+__end_of_I2C_Master_Write text18 0CCE
+__end_of_Lcd_Clear text15 0CEA
+__end_of_Lcd_Cmd text27 0D52
+__end_of_Lcd_Init text26 01EC
+__end_of_Lcd_Port text28 0D38
+__end_of_Lcd_Set_Cursor text14 0FB5
+__end_of_Lcd_Write_Char text13 0E6C
+__end_of_Lcd_Write_String text12 0DCC
+__end_of_Read_Alarms_Temp text17 0513
+__end_of_Update_Current_Date_Time text16 041C
+__end_of___awdiv text6 0190
+__end_of___awmod text5 1000
+__end_of___lldiv text31 024C
+__end_of___lmul text30 0EE7
+__end_of___lwdiv text9 0EA8
+__end_of___lwmod text8 0DFE
+__end_of___wmul text25 0D73
+__end_of__initialization cinit 07FC
+__end_of__stringtab strings 0013
+__end_of_alarm text2 0F6B
+__end_of_display_Intro text11 0E33
+__end_of_display_Lcd_Layout text10 0F28
+__end_of_format_DateTimeChars text7 07D3
+__end_of_format_Temperature text4 0339
+__end_of_getWeekDay text3 00E6
+__end_of_main maintext 02B8
+__end_of_update_Display text1 061A
+__initialization cinit 07D3
+__pbssBANK0 bssBANK0 0020
+__pbssBANK1 bssBANK1 00A0
+__pcstackBANK0 cstackBANK0 004D
+__pcstackCOMMON cstackCOMMON 0070
+__pdataBANK0 dataBANK0 0062
+__pdataBANK1 dataBANK1 00CE
+__pidataBANK0 idataBANK0 0CEA
+__pidataBANK1 idataBANK1 0070
+__pmaintext maintext 024C
+__pstrings strings 0003
+__ptext1 text1 0513
+__ptext10 text10 0EE7
+__ptext11 text11 0DFE
+__ptext12 text12 0D9F
+__ptext13 text13 0E33
+__ptext14 text14 0F6B
+__ptext15 text15 0CDF
+__ptext16 text16 0339
+__ptext17 text17 041C
+__ptext18 text18 0CC6
+__ptext19 text19 0CBF
+__ptext2 text2 0F28
+__ptext20 text20 0CB8
+__ptext21 text21 0CB1
+__ptext22 text22 0D73
+__ptext23 text23 0CD6
+__ptext24 text24 0074
+__ptext25 text25 0D52
+__ptext26 text26 0190
+__ptext27 text27 0D38
+__ptext28 text28 0D1E
+__ptext29 text29 00E6
+__ptext3 text3 0097
+__ptext30 text30 0EA8
+__ptext31 text31 01EC
+__ptext32 text32 0D08
+__ptext4 text4 02B8
+__ptext5 text5 0FB5
+__ptext6 text6 0137
+__ptext7 text7 061A
+__ptext8 text8 0DCC
+__ptext9 text9 0E6C
+__size_of_BCD_2_DEC (abs) 0000
+__size_of_Get_Alarm_Status (abs) 0000
+__size_of_I2C_Master_Init (abs) 0000
+__size_of_I2C_Master_Read (abs) 0000
+__size_of_I2C_Master_Repeated_Start (abs) 0000
+__size_of_I2C_Master_Start (abs) 0000
+__size_of_I2C_Master_Stop (abs) 0000
+__size_of_I2C_Master_Wait (abs) 0000
+__size_of_I2C_Master_Write (abs) 0000
+__size_of_Lcd_Clear (abs) 0000
+__size_of_Lcd_Cmd (abs) 0000
+__size_of_Lcd_Init (abs) 0000
+__size_of_Lcd_Port (abs) 0000
+__size_of_Lcd_Set_Cursor (abs) 0000
+__size_of_Lcd_Write_Char (abs) 0000
+__size_of_Lcd_Write_String (abs) 0000
+__size_of_Read_Alarms_Temp (abs) 0000
+__size_of_Update_Current_Date_Time (abs) 0000
+__size_of___awdiv (abs) 0000
+__size_of___awmod (abs) 0000
+__size_of___lldiv (abs) 0000
+__size_of___lmul (abs) 0000
+__size_of___lwdiv (abs) 0000
+__size_of___lwmod (abs) 0000
+__size_of___wmul (abs) 0000
+__size_of_alarm (abs) 0000
+__size_of_display_Intro (abs) 0000
+__size_of_display_Lcd_Layout (abs) 0000
+__size_of_format_DateTimeChars (abs) 0000
+__size_of_format_Temperature (abs) 0000
+__size_of_getWeekDay (abs) 0000
+__size_of_main (abs) 0000
+__size_of_update_Display (abs) 0000
+__stringbase strings 0012
+__stringtab strings 0003
+_alarm text2 0F28
+_alarm1_hour bssBANK0 002E
+_alarm1_hour_0 bssBANK0 0039
+_alarm1_hour_1 bssBANK0 0038
+_alarm1_min bssBANK0 0030
+_alarm1_min_0 bssBANK0 003B
+_alarm1_min_1 bssBANK0 003A
+_alarm1_sec bssBANK0 0032
+_alarm1_sec_0 bssBANK0 003D
+_alarm1_sec_1 bssBANK0 003C
+_alarm1_status bssBANK0 0028
+_alarm2_hour bssBANK0 002A
+_alarm2_hour_0 bssBANK0 0035
+_alarm2_hour_1 bssBANK0 0034
+_alarm2_min bssBANK0 002C
+_alarm2_min_0 bssBANK0 0037
+_alarm2_min_1 bssBANK0 0036
+_alarm2_status bssBANK0 0026
+_control_reg bssBANK0 0024
+_date dataBANK0 0066
+_day_0 bssBANK0 0046
+_day_1 bssBANK0 0045
+_display_Intro text11 0DFE
+_display_Lcd_Layout text10 0EE7
+_format_DateTimeChars text7 061A
+_format_Temperature text4 02B8
+_getWeekDay text3 0097
+_hour dataBANK0 0068
+_hour_0 bssBANK0 0048
+_hour_1 bssBANK0 0047
+_main maintext 024C
+_min dataBANK0 006A
+_min_0 bssBANK0 004A
+_min_1 bssBANK0 0049
+_month dataBANK0 0064
+_month_0 bssBANK0 0044
+_month_1 bssBANK0 0043
+_sec dataBANK0 006C
+_sec_0 bssBANK0 004C
+_sec_1 bssBANK0 004B
+_sec_chg bssBANK1 00C8
+_status_reg bssBANK1 00CC
+_temp_0 bssBANK0 0040
+_temp_1 bssBANK0 003F
+_temp_2 bssBANK0 003E
+_temp_sign dataBANK0 006E
+_temperature_lsb bssBANK0 0022
+_temperature_msb bssBANK0 0020
+_update_Display text1 0513
+_weekday bssBANK1 00CA
+_year dataBANK0 0062
+_year_0 bssBANK0 0042
+_year_1 bssBANK0 0041
+alarm@i cstackCOMMON 0075
+alarm@j cstackCOMMON 0077
+alarm@numberOfBeeps cstackCOMMON 0070
+btemp (abs) 007E
+clear_ram0 clrtext 0CCE
+end_of_initialization cinit 07FC
+getWeekDay@dayofweek cstackCOMMON 0070
+init_fetch0 inittext 0CF7
+init_ram0 inittext 0CFB
+intlevel0 functab 0000
+intlevel1 functab 0000
+intlevel2 functab 0000
+intlevel3 functab 0000
+intlevel4 functab 0000
+intlevel5 functab 0000
+reset_vec reset_vec 0000
+start init 0000
+start_initialization cinit 07D3
+wtemp0 (abs) 007E
+
+
+FUNCTION INFORMATION:
+
+ *************** function _main *****************
+ Defined at:
+ line 17 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 2 142[None ] int
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels required when called: 4
+ This function calls:
+ _Get_Alarm_Status
+ _I2C_Master_Init
+ _Lcd_Init
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ _display_Intro
+ _display_Lcd_Layout
+ _format_DateTimeChars
+ _format_Temperature
+ _getWeekDay
+ _update_Display
+ This function is called by:
+ Startup code after reset
+ This function uses a non-reentrant model
+
+
+ *************** function _update_Display *****************
+ Defined at:
+ line 248 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 1 0 0 0 0
+Total ram usage: 1 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 3
+ This function calls:
+ _Lcd_Set_Cursor
+ _Lcd_Write_Char
+ _Lcd_Write_String
+ _alarm
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _alarm *****************
+ Defined at:
+ line 4 in file "beep.c"
+ Parameters: Size Location Type
+ numberOfBeep 2 0[COMMON] unsigned int
+ Auto vars: Size Location Type
+ j 2 7[COMMON] int
+ i 2 5[COMMON] int
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, btemp+1
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 4 0 0 0 0
+ Temps: 3 0 0 0 0
+ Totals: 9 0 0 0 0
+Total ram usage: 9 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _update_Display
+ This function uses a non-reentrant model
+
+
+ *************** function _getWeekDay *****************
+ Defined at:
+ line 193 in file "main.c"
+ Parameters: Size Location Type
+ dayofweek 2 0[COMMON] unsigned int
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 2 0 0 0 0
+Total ram usage: 2 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _format_Temperature *****************
+ Defined at:
+ line 156 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 1 0 0 0 0
+Total ram usage: 1 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ ___awdiv
+ ___awmod
+ ___wmul
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function ___awmod *****************
+ Defined at:
+ line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c"
+ Parameters: Size Location Type
+ divisor 2 0[COMMON] int
+ dividend 2 2[COMMON] int
+ Auto vars: Size Location Type
+ sign 1 6[COMMON] unsigned char
+ counter 1 5[COMMON] unsigned char
+ Return value: Size Location Type
+ 2 0[COMMON] int
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 4 0 0 0 0
+ Locals: 2 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 7 0 0 0 0
+Total ram usage: 7 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _format_Temperature
+ _DEC_2_BCD
+ This function uses a non-reentrant model
+
+
+ *************** function ___awdiv *****************
+ Defined at:
+ line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c"
+ Parameters: Size Location Type
+ divisor 2 0[COMMON] int
+ dividend 2 2[COMMON] int
+ Auto vars: Size Location Type
+ quotient 2 7[COMMON] int
+ sign 1 6[COMMON] unsigned char
+ counter 1 5[COMMON] unsigned char
+ Return value: Size Location Type
+ 2 0[COMMON] int
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 4 0 0 0 0
+ Locals: 4 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 9 0 0 0 0
+Total ram usage: 9 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _format_Temperature
+ _DEC_2_BCD
+ This function uses a non-reentrant model
+
+
+ *************** function _format_DateTimeChars *****************
+ Defined at:
+ line 129 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 1 0 0 0 0
+Total ram usage: 1 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ ___lwdiv
+ ___lwmod
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function ___lwmod *****************
+ Defined at:
+ line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c"
+ Parameters: Size Location Type
+ divisor 2 0[COMMON] unsigned int
+ dividend 2 2[COMMON] unsigned int
+ Auto vars: Size Location Type
+ counter 1 5[COMMON] unsigned char
+ Return value: Size Location Type
+ 2 0[COMMON] unsigned int
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 4 0 0 0 0
+ Locals: 1 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 6 0 0 0 0
+Total ram usage: 6 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _format_DateTimeChars
+ This function uses a non-reentrant model
+
+
+ *************** function ___lwdiv *****************
+ Defined at:
+ line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c"
+ Parameters: Size Location Type
+ divisor 2 0[COMMON] unsigned int
+ dividend 2 2[COMMON] unsigned int
+ Auto vars: Size Location Type
+ quotient 2 5[COMMON] unsigned int
+ counter 1 7[COMMON] unsigned char
+ Return value: Size Location Type
+ 2 0[COMMON] unsigned int
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 4 0 0 0 0
+ Locals: 3 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 8 0 0 0 0
+Total ram usage: 8 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _format_DateTimeChars
+ This function uses a non-reentrant model
+
+
+ *************** function _display_Lcd_Layout *****************
+ Defined at:
+ line 236 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 3 0 0 0 0
+ Totals: 3 0 0 0 0
+Total ram usage: 3 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 3
+ This function calls:
+ _Lcd_Clear
+ _Lcd_Set_Cursor
+ _Lcd_Write_Char
+ _Lcd_Write_String
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _display_Intro *****************
+ Defined at:
+ line 226 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 3 0 0 0 0
+ Totals: 3 0 0 0 0
+Total ram usage: 3 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 3
+ This function calls:
+ _Lcd_Clear
+ _Lcd_Set_Cursor
+ _Lcd_Write_String
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Write_String *****************
+ Defined at:
+ line 91 in file "lcd.c"
+ Parameters: Size Location Type
+ a 2 5[COMMON] PTR unsigned char
+ -> NULL(0), RAM(512), STR_11(16), STR_10(15),
+ -> STR_9(16), STR_8(17), STR_7(4), STR_6(4),
+ -> STR_5(4), STR_4(4), STR_3(4), STR_2(4),
+ -> STR_1(4),
+ Auto vars: Size Location Type
+ i 2 7[COMMON] int
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 2 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 4 0 0 0 0
+Total ram usage: 4 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _Lcd_Write_Char
+ This function is called by:
+ _display_Intro
+ _display_Lcd_Layout
+ _update_Display
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Write_Char *****************
+ Defined at:
+ line 76 in file "lcd.c"
+ Parameters: Size Location Type
+ a 1 wreg unsigned char
+ Auto vars: Size Location Type
+ a 1 4[COMMON] unsigned char
+ y 1 3[COMMON] unsigned char
+ temp 1 2[COMMON] unsigned char
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 3 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 4 0 0 0 0
+Total ram usage: 4 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _Lcd_Port
+ This function is called by:
+ _display_Lcd_Layout
+ _update_Display
+ _Lcd_Write_String
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Set_Cursor *****************
+ Defined at:
+ line 41 in file "lcd.c"
+ Parameters: Size Location Type
+ a 1 wreg unsigned char
+ b 1 4[COMMON] unsigned char
+ Auto vars: Size Location Type
+ a 1 7[COMMON] unsigned char
+ temp 1 10[COMMON] unsigned char
+ y 1 9[COMMON] unsigned char
+ z 1 8[COMMON] unsigned char
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 1 0 0 0 0
+ Locals: 4 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 7 0 0 0 0
+Total ram usage: 7 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _Lcd_Cmd
+ This function is called by:
+ _display_Intro
+ _display_Lcd_Layout
+ _update_Display
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Clear *****************
+ Defined at:
+ line 36 in file "lcd.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _Lcd_Cmd
+ This function is called by:
+ _display_Intro
+ _display_Lcd_Layout
+ This function uses a non-reentrant model
+
+
+ *************** function _Update_Current_Date_Time *****************
+ Defined at:
+ line 94 in file "ds3231.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _BCD_2_DEC
+ _I2C_Master_Read
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Start
+ _I2C_Master_Stop
+ _I2C_Master_Write
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _Read_Alarms_Temp *****************
+ Defined at:
+ line 27 in file "ds3231.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _BCD_2_DEC
+ _I2C_Master_Read
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Start
+ _I2C_Master_Stop
+ _I2C_Master_Write
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Write *****************
+ Defined at:
+ line 42 in file "i2c.c"
+ Parameters: Size Location Type
+ data 2 0[COMMON] unsigned int
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 2 0 0 0 0
+Total ram usage: 2 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _I2C_Master_Wait
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ _Set_Date
+ _Set_DayOfWeek
+ _Set_Time
+ _Set_Time_Date
+ _Write_Alarms
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Stop *****************
+ Defined at:
+ line 36 in file "i2c.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _I2C_Master_Wait
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ _Set_Date
+ _Set_DayOfWeek
+ _Set_Time
+ _Set_Time_Date
+ _Write_Alarms
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Start *****************
+ Defined at:
+ line 24 in file "i2c.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _I2C_Master_Wait
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ _Set_Date
+ _Set_DayOfWeek
+ _Set_Time
+ _Set_Time_Date
+ _Write_Alarms
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Repeated_Start *****************
+ Defined at:
+ line 30 in file "i2c.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _I2C_Master_Wait
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Read *****************
+ Defined at:
+ line 48 in file "i2c.c"
+ Parameters: Size Location Type
+ ack 2 0[COMMON] unsigned short
+ Auto vars: Size Location Type
+ incoming 2 4[COMMON] unsigned short
+ Return value: Size Location Type
+ 2 0[COMMON] unsigned short
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 2 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 6 0 0 0 0
+Total ram usage: 6 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _I2C_Master_Wait
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Wait *****************
+ Defined at:
+ line 19 in file "i2c.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 0 0 0 0 0
+Total ram usage: 0 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _I2C_Master_Start
+ _I2C_Master_Repeated_Start
+ _I2C_Master_Stop
+ _I2C_Master_Write
+ _I2C_Master_Read
+ This function uses a non-reentrant model
+
+
+ *************** function _BCD_2_DEC *****************
+ Defined at:
+ line 19 in file "ds3231.c"
+ Parameters: Size Location Type
+ to_convert 2 6[COMMON] int
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 2 6[COMMON] int
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 2 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 4 0 0 0 0
+Total ram usage: 4 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ ___wmul
+ This function is called by:
+ _Read_Alarms_Temp
+ _Update_Current_Date_Time
+ This function uses a non-reentrant model
+
+
+ *************** function ___wmul *****************
+ Defined at:
+ line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c"
+ Parameters: Size Location Type
+ multiplier 2 0[COMMON] unsigned int
+ multiplicand 2 2[COMMON] unsigned int
+ Auto vars: Size Location Type
+ product 2 4[COMMON] unsigned int
+ Return value: Size Location Type
+ 2 0[COMMON] unsigned int
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 4 0 0 0 0
+ Locals: 2 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 6 0 0 0 0
+Total ram usage: 6 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _format_Temperature
+ _BCD_2_DEC
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Init *****************
+ Defined at:
+ line 58 in file "lcd.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 2 0 0 0 0
+Total ram usage: 2 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 2
+ This function calls:
+ _Lcd_Cmd
+ _Lcd_Port
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Cmd *****************
+ Defined at:
+ line 28 in file "lcd.c"
+ Parameters: Size Location Type
+ a 1 wreg unsigned char
+ Auto vars: Size Location Type
+ a 1 3[COMMON] unsigned char
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 1 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 3 0 0 0 0
+Total ram usage: 3 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ _Lcd_Port
+ This function is called by:
+ _Lcd_Clear
+ _Lcd_Set_Cursor
+ _Lcd_Init
+ _Lcd_Shift_Right
+ _Lcd_Shift_Left
+ This function uses a non-reentrant model
+
+
+ *************** function _Lcd_Port *****************
+ Defined at:
+ line 6 in file "lcd.c"
+ Parameters: Size Location Type
+ a 1 wreg unsigned char
+ Auto vars: Size Location Type
+ a 1 0[COMMON] unsigned char
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 1 0 0 0 0
+ Temps: 0 0 0 0 0
+ Totals: 1 0 0 0 0
+Total ram usage: 1 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _Lcd_Cmd
+ _Lcd_Init
+ _Lcd_Write_Char
+ This function uses a non-reentrant model
+
+
+ *************** function _I2C_Master_Init *****************
+ Defined at:
+ line 8 in file "i2c.c"
+ Parameters: Size Location Type
+ freq_K 4 13[BANK0 ] const unsigned long
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0, pclath, cstack
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 4 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 0 4 0 0 0
+ Totals: 0 8 0 0 0
+Total ram usage: 8 bytes
+ Hardware stack levels used: 1
+ Hardware stack levels required when called: 1
+ This function calls:
+ ___lldiv
+ ___lmul
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+ *************** function ___lmul *****************
+ Defined at:
+ line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c"
+ Parameters: Size Location Type
+ multiplier 4 0[COMMON] unsigned long
+ multiplicand 4 4[COMMON] unsigned long
+ Auto vars: Size Location Type
+ product 4 9[COMMON] unsigned long
+ Return value: Size Location Type
+ 4 0[COMMON] unsigned long
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 8 0 0 0 0
+ Locals: 4 0 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 13 0 0 0 0
+Total ram usage: 13 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _I2C_Master_Init
+ This function uses a non-reentrant model
+
+
+ *************** function ___lldiv *****************
+ Defined at:
+ line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c"
+ Parameters: Size Location Type
+ divisor 4 0[BANK0 ] unsigned long
+ dividend 4 4[BANK0 ] unsigned long
+ Auto vars: Size Location Type
+ quotient 4 8[BANK0 ] unsigned long
+ counter 1 12[BANK0 ] unsigned char
+ Return value: Size Location Type
+ 4 0[BANK0 ] unsigned long
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 8 0 0 0
+ Locals: 0 5 0 0 0
+ Temps: 1 0 0 0 0
+ Totals: 1 13 0 0 0
+Total ram usage: 14 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _I2C_Master_Init
+ This function uses a non-reentrant model
+
+
+ *************** function _Get_Alarm_Status *****************
+ Defined at:
+ line 221 in file "main.c"
+ Parameters: Size Location Type
+ None
+ Auto vars: Size Location Type
+ None
+ Return value: Size Location Type
+ 1 wreg void
+ Registers used:
+ wreg, status,2, status,0
+ Tracked objects:
+ On entry :
+ On exit :
+ Unchanged:
+ Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
+ Params: 0 0 0 0 0
+ Locals: 0 0 0 0 0
+ Temps: 2 0 0 0 0
+ Totals: 2 0 0 0 0
+Total ram usage: 2 bytes
+ Hardware stack levels used: 1
+ This function calls:
+ Nothing
+ This function is called by:
+ _main
+ This function uses a non-reentrant model
+
+
+
+MODULE INFORMATION
+
+Module Function Class Link Load Size
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+ ___awmod CODE 0FB5 0000 76
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c estimated size: 76
+
+i2c.c
+ _I2C_Master_Read CODE 0D73 0000 45
+ _I2C_Master_Wait CODE 0CD6 0000 10
+ _I2C_Master_Init CODE 00E6 0000 82
+ _I2C_Master_Stop CODE 0CBF 0000 8
+ _I2C_Master_Repeated_Start CODE 0CB1 0000 8
+ _I2C_Master_Write CODE 0CC6 0000 9
+ _I2C_Master_Start CODE 0CB8 0000 8
+
+i2c.c estimated size: 170
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+ ___lwdiv CODE 0E6C 0000 61
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c estimated size: 61
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+ ___wmul CODE 0D52 0000 34
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c estimated size: 34
+
+beep.c
+ _alarm CODE 0F28 0000 68
+
+beep.c estimated size: 68
+
+ds3231.c
+ _Read_Alarms_Temp CODE 041C 0000 248
+ _BCD_2_DEC CODE 0074 0000 36
+ _Update_Current_Date_Time CODE 0339 0000 228
+
+ds3231.c estimated size: 512
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+ ___awdiv CODE 0137 0000 90
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c estimated size: 90
+
+shared
+ __stringtab STRING 0003 0000 17
+ __initialization CODE 07D3 0000 42
+
+shared estimated size: 59
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+ ___lmul CODE 0EA8 0000 64
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c estimated size: 64
+
+lcd.c
+ _Lcd_Write_String CODE 0D9F 0000 46
+ _Lcd_Init CODE 0190 0000 93
+ _Lcd_Write_Char CODE 0E33 0000 58
+ _Lcd_Cmd CODE 0D38 0000 27
+ _Lcd_Set_Cursor CODE 0F6B 0000 75
+ _Lcd_Clear CODE 0CDF 0000 12
+ _Lcd_Port CODE 0D1E 0000 27
+
+lcd.c estimated size: 338
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+ ___lldiv CODE 01EC 0000 97
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c estimated size: 97
+
+main.c
+ _display_Lcd_Layout CODE 0EE7 0000 66
+ _main CODE 024C 0000 109
+ _display_Intro CODE 0DFE 0000 54
+ _format_Temperature CODE 02B8 0000 130
+ _Get_Alarm_Status CODE 0D08 0000 23
+ _getWeekDay CODE 0097 0000 80
+ _format_DateTimeChars CODE 061A 0000 442
+ _update_Display CODE 0513 0000 264
+
+main.c estimated size: 1168
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+ ___lwmod CODE 0DCC 0000 51
+
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c estimated size: 51
+
diff --git a/dist/default/production/I2C_LCD.X.production.mum b/dist/default/production/I2C_LCD.X.production.mum
new file mode 100755
index 0000000..06e007b
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.mum
@@ -0,0 +1,9 @@
+
+Memory Summary:
+ Program space used B4Eh ( 2894) of 2000h words ( 35.3%)
+ Data space used 91h ( 145) of 170h bytes ( 39.4%)
+ EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
+ Data stack space used 0h ( 0) of 60h bytes ( 0.0%)
+ Configuration bits used 1h ( 1) of 1h word (100.0%)
+ ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
+
diff --git a/dist/default/production/I2C_LCD.X.production.o b/dist/default/production/I2C_LCD.X.production.o
new file mode 100755
index 0000000..50d31c2
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.o
Binary files differ
diff --git a/dist/default/production/I2C_LCD.X.production.rlf b/dist/default/production/I2C_LCD.X.production.rlf
new file mode 100755
index 0000000..13a71ee
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.rlf
Binary files differ
diff --git a/dist/default/production/I2C_LCD.X.production.sdb b/dist/default/production/I2C_LCD.X.production.sdb
new file mode 100755
index 0000000..1d181a0
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.sdb
@@ -0,0 +1,481 @@
+[p GLOBOPT AUTOSTATIC IEEE_DBL IEEE_FLT PIC14 PICREGULAR PICMID ]
+[d version 1.1 ]
+[d edition pro ]
+[d chip 16F877A ]
+[d frameptr 6 ]
+"4 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+[v _alarm alarm `(v 1 e 1 0 ]
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+[v ___lldiv __lldiv `(ul 1 e 4 0 ]
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+[v ___awdiv __awdiv `(i 1 e 2 0 ]
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+[v ___awmod __awmod `(i 1 e 2 0 ]
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+[v ___lwdiv __lwdiv `(ui 1 e 2 0 ]
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+[v ___lwmod __lwmod `(ui 1 e 2 0 ]
+"10 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\sprcadd.c
+[v ___fladd __fladd `(d 1 e 4 0 ]
+"15 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+[v ___wmul __wmul `(ui 1 e 2 0 ]
+"15 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+[v ___lmul __lmul `(ul 1 e 4 0 ]
+"4 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul8_16.c
+[v __Umul8_16 _Umul8_16 `(ui 1 e 2 0 ]
+"6 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c
+[v ___eecpymem __eecpymem `(v 1 e 1 0 ]
+"39
+[v ___memcpyee __memcpyee `(v 1 e 1 0 ]
+"19 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+[v _BCD_2_DEC BCD_2_DEC `(i 1 e 2 0 ]
+"23
+[v _DEC_2_BCD DEC_2_BCD `(i 1 e 2 0 ]
+"27
+[v _Read_Alarms_Temp Read_Alarms_Temp `(v 1 e 1 0 ]
+"94
+[v _Update_Current_Date_Time Update_Current_Date_Time `(v 1 e 1 0 ]
+"8 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+[v _I2C_Master_Init I2C_Master_Init `(v 1 e 1 0 ]
+"19
+[v _I2C_Master_Wait I2C_Master_Wait `(v 1 e 1 0 ]
+"24
+[v _I2C_Master_Start I2C_Master_Start `(v 1 e 1 0 ]
+"30
+[v _I2C_Master_Repeated_Start I2C_Master_Repeated_Start `(v 1 e 1 0 ]
+"36
+[v _I2C_Master_Stop I2C_Master_Stop `(v 1 e 1 0 ]
+"42
+[v _I2C_Master_Write I2C_Master_Write `(v 1 e 1 0 ]
+"48
+[v _I2C_Master_Read I2C_Master_Read `(us 1 e 2 0 ]
+"6 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+[v _Lcd_Port Lcd_Port `(v 1 e 1 0 ]
+"28
+[v _Lcd_Cmd Lcd_Cmd `(v 1 e 1 0 ]
+"36
+[v _Lcd_Clear Lcd_Clear `(v 1 e 1 0 ]
+"41
+[v _Lcd_Set_Cursor Lcd_Set_Cursor `(v 1 e 1 0 ]
+"58
+[v _Lcd_Init Lcd_Init `(v 1 e 1 0 ]
+"76
+[v _Lcd_Write_Char Lcd_Write_Char `(v 1 e 1 0 ]
+"91
+[v _Lcd_Write_String Lcd_Write_String `(v 1 e 1 0 ]
+"17 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _main main `(i 1 e 2 0 ]
+"129
+[v _format_DateTimeChars format_DateTimeChars `(v 1 e 1 0 ]
+"156
+[v _format_Temperature format_Temperature `(v 1 e 1 0 ]
+"193
+[v _getWeekDay getWeekDay `(v 1 e 1 0 ]
+"221
+[v _Get_Alarm_Status Get_Alarm_Status `(v 1 e 1 0 ]
+"226
+[v _display_Intro display_Intro `(v 1 e 1 0 ]
+"236
+[v _display_Lcd_Layout display_Lcd_Layout `(v 1 e 1 0 ]
+"248
+[v _update_Display update_Display `(v 1 e 1 0 ]
+"39 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\uart.c
+[v _UART_send_char UART_send_char `(v 1 e 1 0 ]
+"2 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X/main.h
+[v _sec sec `ui 1 e 2 0 ]
+"3
+[v _min min `ui 1 e 2 0 ]
+"4
+[v _hour hour `ui 1 e 2 0 ]
+"6
+[v _date date `ui 1 e 2 0 ]
+"7
+[v _month month `ui 1 e 2 0 ]
+"8
+[v _year year `ui 1 e 2 0 ]
+"10
+[v _alarm1_sec alarm1_sec `ui 1 e 2 0 ]
+[v _alarm1_min alarm1_min `ui 1 e 2 0 ]
+[v _alarm1_hour alarm1_hour `ui 1 e 2 0 ]
+"11
+[v _alarm2_min alarm2_min `ui 1 e 2 0 ]
+[v _alarm2_hour alarm2_hour `ui 1 e 2 0 ]
+"12
+[v _status_reg status_reg `ui 1 e 2 0 ]
+[v _alarm1_status alarm1_status `ui 1 e 2 0 ]
+[v _alarm2_status alarm2_status `ui 1 e 2 0 ]
+"13
+[v _control_reg control_reg `ui 1 e 2 0 ]
+"16
+[v _temperature_lsb temperature_lsb `ui 1 e 2 0 ]
+"17
+[v _temperature_msb temperature_msb `i 1 e 2 0 ]
+"18
+[v _temp_sign temp_sign `uc 1 e 1 0 ]
+"21
+[v _weekday weekday `*.26uc 1 e 2 0 ]
+"24
+[v _sec_chg sec_chg `ui 1 e 2 0 ]
+"27
+[v _sec_0 sec_0 `uc 1 e 1 0 ]
+[v _sec_1 sec_1 `uc 1 e 1 0 ]
+"28
+[v _min_0 min_0 `uc 1 e 1 0 ]
+[v _min_1 min_1 `uc 1 e 1 0 ]
+"29
+[v _hour_0 hour_0 `uc 1 e 1 0 ]
+[v _hour_1 hour_1 `uc 1 e 1 0 ]
+"30
+[v _day_0 day_0 `uc 1 e 1 0 ]
+[v _day_1 day_1 `uc 1 e 1 0 ]
+"31
+[v _month_0 month_0 `uc 1 e 1 0 ]
+[v _month_1 month_1 `uc 1 e 1 0 ]
+"32
+[v _year_0 year_0 `uc 1 e 1 0 ]
+[v _year_1 year_1 `uc 1 e 1 0 ]
+"33
+[v _temp_0 temp_0 `uc 1 e 1 0 ]
+[v _temp_1 temp_1 `uc 1 e 1 0 ]
+[v _temp_2 temp_2 `uc 1 e 1 0 ]
+"34
+[v _alarm1_sec_0 alarm1_sec_0 `uc 1 e 1 0 ]
+[v _alarm1_sec_1 alarm1_sec_1 `uc 1 e 1 0 ]
+[v _alarm1_min_0 alarm1_min_0 `uc 1 e 1 0 ]
+[v _alarm1_min_1 alarm1_min_1 `uc 1 e 1 0 ]
+"35
+[v _alarm1_hour_0 alarm1_hour_0 `uc 1 e 1 0 ]
+[v _alarm1_hour_1 alarm1_hour_1 `uc 1 e 1 0 ]
+"36
+[v _alarm2_min_0 alarm2_min_0 `uc 1 e 1 0 ]
+[v _alarm2_min_1 alarm2_min_1 `uc 1 e 1 0 ]
+[v _alarm2_hour_0 alarm2_hour_0 `uc 1 e 1 0 ]
+[v _alarm2_hour_1 alarm2_hour_1 `uc 1 e 1 0 ]
+"278 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[v _PORTC PORTC `VEuc 1 e 1 @7 ]
+"340
+[v _PORTD PORTD `VEuc 1 e 1 @8 ]
+"808
+[v _SSPBUF SSPBUF `VEuc 1 e 1 @19 ]
+"815
+[v _SSPCON SSPCON `VEuc 1 e 1 @20 ]
+"1059
+[v _TXREG TXREG `VEuc 1 e 1 @25 ]
+"1066
+[v _RCREG RCREG `VEuc 1 e 1 @26 ]
+"1437
+[v _TRISC TRISC `VEuc 1 e 1 @135 ]
+"1499
+[v _TRISD TRISD `VEuc 1 e 1 @136 ]
+"1754
+[v _SSPCON2 SSPCON2 `VEuc 1 e 1 @145 ]
+"1823
+[v _SSPADD SSPADD `VEuc 1 e 1 @147 ]
+"1830
+[v _SSPSTAT SSPSTAT `VEuc 1 e 1 @148 ]
+"2080
+[v _SPBRG SPBRG `VEuc 1 e 1 @153 ]
+"2374
+[v _ACKDT ACKDT `VEb 1 e 0 @1165 ]
+"2377
+[v _ACKEN ACKEN `VEb 1 e 0 @1164 ]
+"2416
+[v _BRGH BRGH `VEb 1 e 0 @1218 ]
+"2515
+[v _CREN CREN `VEb 1 e 0 @196 ]
+"2614
+[v _OERR OERR `VEb 1 e 0 @193 ]
+"2632
+[v _PEN PEN `VEb 1 e 0 @1162 ]
+"2737
+[v _RCEN RCEN `VEb 1 e 0 @1163 ]
+"2743
+[v _RCIF RCIF `VEb 1 e 0 @101 ]
+"2752
+[v _RD1 RD1 `VEb 1 e 0 @65 ]
+"2755
+[v _RD2 RD2 `VEb 1 e 0 @66 ]
+"2758
+[v _RD3 RD3 `VEb 1 e 0 @67 ]
+"2761
+[v _RD4 RD4 `VEb 1 e 0 @68 ]
+"2764
+[v _RD5 RD5 `VEb 1 e 0 @69 ]
+"2767
+[v _RD6 RD6 `VEb 1 e 0 @70 ]
+"2770
+[v _RD7 RD7 `VEb 1 e 0 @71 ]
+"2791
+[v _RSEN RSEN `VEb 1 e 0 @1161 ]
+"2794
+[v _RX9 RX9 `VEb 1 e 0 @198 ]
+"2806
+[v _SEN SEN `VEb 1 e 0 @1160 ]
+"2812
+[v _SPEN SPEN `VEb 1 e 0 @199 ]
+"2842
+[v _SYNC SYNC `VEb 1 e 0 @1220 ]
+"2968
+[v _TRISC3 TRISC3 `VEb 1 e 0 @1083 ]
+"2971
+[v _TRISC4 TRISC4 `VEb 1 e 0 @1084 ]
+"2977
+[v _TRISC6 TRISC6 `VEb 1 e 0 @1086 ]
+"2980
+[v _TRISC7 TRISC7 `VEb 1 e 0 @1087 ]
+"3022
+[v _TX9 TX9 `VEb 1 e 0 @1222 ]
+"3031
+[v _TXEN TXEN `VEb 1 e 0 @1221 ]
+"3037
+[v _TXIF TXIF `VEb 1 e 0 @100 ]
+"17 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _main main `(i 1 e 2 0 ]
+{
+"125
+} 0
+"248
+[v _update_Display update_Display `(v 1 e 1 0 ]
+{
+"298
+} 0
+"4 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\beep.c
+[v _alarm alarm `(v 1 e 1 0 ]
+{
+"6
+[v alarm@j j `i 1 a 2 7 ]
+"5
+[v alarm@i i `i 1 a 2 5 ]
+"4
+[v alarm@numberOfBeeps numberOfBeeps `ui 1 p 2 0 ]
+"15
+} 0
+"193 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _getWeekDay getWeekDay `(v 1 e 1 0 ]
+{
+[v getWeekDay@dayofweek dayofweek `ui 1 p 2 0 ]
+"217
+} 0
+"156
+[v _format_Temperature format_Temperature `(v 1 e 1 0 ]
+{
+"189
+} 0
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+[v ___awmod __awmod `(i 1 e 2 0 ]
+{
+"10
+[v ___awmod@sign sign `uc 1 a 1 6 ]
+[v ___awmod@counter counter `uc 1 a 1 5 ]
+"5
+[v ___awmod@divisor divisor `i 1 p 2 0 ]
+[v ___awmod@dividend dividend `i 1 p 2 2 ]
+"34
+} 0
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+[v ___awdiv __awdiv `(i 1 e 2 0 ]
+{
+"10
+[v ___awdiv@quotient quotient `i 1 a 2 7 ]
+"11
+[v ___awdiv@sign sign `uc 1 a 1 6 ]
+[v ___awdiv@counter counter `uc 1 a 1 5 ]
+"5
+[v ___awdiv@divisor divisor `i 1 p 2 0 ]
+[v ___awdiv@dividend dividend `i 1 p 2 2 ]
+"41
+} 0
+"129 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _format_DateTimeChars format_DateTimeChars `(v 1 e 1 0 ]
+{
+"152
+} 0
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+[v ___lwmod __lwmod `(ui 1 e 2 0 ]
+{
+"10
+[v ___lwmod@counter counter `uc 1 a 1 5 ]
+"5
+[v ___lwmod@divisor divisor `ui 1 p 2 0 ]
+[v ___lwmod@dividend dividend `ui 1 p 2 2 ]
+"25
+} 0
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+[v ___lwdiv __lwdiv `(ui 1 e 2 0 ]
+{
+"10
+[v ___lwdiv@quotient quotient `ui 1 a 2 5 ]
+"11
+[v ___lwdiv@counter counter `uc 1 a 1 7 ]
+"5
+[v ___lwdiv@divisor divisor `ui 1 p 2 0 ]
+[v ___lwdiv@dividend dividend `ui 1 p 2 2 ]
+"30
+} 0
+"236 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _display_Lcd_Layout display_Lcd_Layout `(v 1 e 1 0 ]
+{
+"246
+} 0
+"226
+[v _display_Intro display_Intro `(v 1 e 1 0 ]
+{
+"234
+} 0
+"91 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+[v _Lcd_Write_String Lcd_Write_String `(v 1 e 1 0 ]
+{
+"92
+[v Lcd_Write_String@i i `i 1 a 2 7 ]
+"91
+[v Lcd_Write_String@a a `*.26uc 1 p 2 5 ]
+"95
+} 0
+"76
+[v _Lcd_Write_Char Lcd_Write_Char `(v 1 e 1 0 ]
+{
+[v Lcd_Write_Char@a a `uc 1 a 1 wreg ]
+"77
+[v Lcd_Write_Char@y y `uc 1 a 1 3 ]
+[v Lcd_Write_Char@temp temp `uc 1 a 1 2 ]
+"76
+[v Lcd_Write_Char@a a `uc 1 a 1 wreg ]
+"78
+[v Lcd_Write_Char@a a `uc 1 a 1 4 ]
+"89
+} 0
+"41
+[v _Lcd_Set_Cursor Lcd_Set_Cursor `(v 1 e 1 0 ]
+{
+[v Lcd_Set_Cursor@a a `uc 1 a 1 wreg ]
+"42
+[v Lcd_Set_Cursor@temp temp `uc 1 a 1 10 ]
+[v Lcd_Set_Cursor@y y `uc 1 a 1 9 ]
+[v Lcd_Set_Cursor@z z `uc 1 a 1 8 ]
+"41
+[v Lcd_Set_Cursor@a a `uc 1 a 1 wreg ]
+[v Lcd_Set_Cursor@b b `uc 1 p 1 4 ]
+"43
+[v Lcd_Set_Cursor@a a `uc 1 a 1 7 ]
+"56
+} 0
+"36
+[v _Lcd_Clear Lcd_Clear `(v 1 e 1 0 ]
+{
+"39
+} 0
+"94 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+[v _Update_Current_Date_Time Update_Current_Date_Time `(v 1 e 1 0 ]
+{
+"118
+} 0
+"27
+[v _Read_Alarms_Temp Read_Alarms_Temp `(v 1 e 1 0 ]
+{
+"50
+} 0
+"42 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+[v _I2C_Master_Write I2C_Master_Write `(v 1 e 1 0 ]
+{
+[v I2C_Master_Write@data data `ui 1 p 2 0 ]
+"46
+} 0
+"36
+[v _I2C_Master_Stop I2C_Master_Stop `(v 1 e 1 0 ]
+{
+"40
+} 0
+"24
+[v _I2C_Master_Start I2C_Master_Start `(v 1 e 1 0 ]
+{
+"28
+} 0
+"30
+[v _I2C_Master_Repeated_Start I2C_Master_Repeated_Start `(v 1 e 1 0 ]
+{
+"34
+} 0
+"48
+[v _I2C_Master_Read I2C_Master_Read `(us 1 e 2 0 ]
+{
+"50
+[v I2C_Master_Read@incoming incoming `us 1 a 2 4 ]
+"48
+[v I2C_Master_Read@ack ack `us 1 p 2 0 ]
+"62
+} 0
+"19
+[v _I2C_Master_Wait I2C_Master_Wait `(v 1 e 1 0 ]
+{
+"22
+} 0
+"19 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\ds3231.c
+[v _BCD_2_DEC BCD_2_DEC `(i 1 e 2 0 ]
+{
+[v BCD_2_DEC@to_convert to_convert `i 1 p 2 6 ]
+"21
+} 0
+"15 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+[v ___wmul __wmul `(ui 1 e 2 0 ]
+{
+"17
+[v ___wmul@product product `ui 1 a 2 4 ]
+"15
+[v ___wmul@multiplier multiplier `ui 1 p 2 0 ]
+[v ___wmul@multiplicand multiplicand `ui 1 p 2 2 ]
+"53
+} 0
+"58 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\lcd.c
+[v _Lcd_Init Lcd_Init `(v 1 e 1 0 ]
+{
+"74
+} 0
+"28
+[v _Lcd_Cmd Lcd_Cmd `(v 1 e 1 0 ]
+{
+[v Lcd_Cmd@a a `uc 1 a 1 wreg ]
+[v Lcd_Cmd@a a `uc 1 a 1 wreg ]
+[v Lcd_Cmd@a a `uc 1 a 1 3 ]
+"34
+} 0
+"6
+[v _Lcd_Port Lcd_Port `(v 1 e 1 0 ]
+{
+[v Lcd_Port@a a `uc 1 a 1 wreg ]
+[v Lcd_Port@a a `uc 1 a 1 wreg ]
+[v Lcd_Port@a a `uc 1 a 1 0 ]
+"26
+} 0
+"8 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\i2c.c
+[v _I2C_Master_Init I2C_Master_Init `(v 1 e 1 0 ]
+{
+[v I2C_Master_Init@freq_K freq_K `DCul 1 p 4 13 ]
+"17
+} 0
+"15 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+[v ___lmul __lmul `(ul 1 e 4 0 ]
+{
+"17
+[v ___lmul@product product `ul 1 a 4 9 ]
+"15
+[v ___lmul@multiplier multiplier `ul 1 p 4 0 ]
+[v ___lmul@multiplicand multiplicand `ul 1 p 4 4 ]
+"129
+} 0
+"5 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+[v ___lldiv __lldiv `(ul 1 e 4 0 ]
+{
+"10
+[v ___lldiv@quotient quotient `ul 1 a 4 8 ]
+"11
+[v ___lldiv@counter counter `uc 1 a 1 12 ]
+"5
+[v ___lldiv@divisor divisor `ul 1 p 4 0 ]
+[v ___lldiv@dividend dividend `ul 1 p 4 4 ]
+"30
+} 0
+"221 C:\Users\kb0iic\MPLABXProjects\I2C_LCD.X\main.c
+[v _Get_Alarm_Status Get_Alarm_Status `(v 1 e 1 0 ]
+{
+"224
+} 0
diff --git a/dist/default/production/I2C_LCD.X.production.sym b/dist/default/production/I2C_LCD.X.production.sym
new file mode 100755
index 0000000..cb19113
--- /dev/null
+++ b/dist/default/production/I2C_LCD.X.production.sym
@@ -0,0 +1,928 @@
+___lwdiv@dividend 72 0 COMMON 1
+___lldiv@counter 59 0 BANK0 1
+___awdiv@counter 75 0 COMMON 1
+__size_of_Lcd_Cmd 0 0 ABS 0
+___lwdiv@counter 77 0 COMMON 1
+__CFG_WRT$OFF 0 0 ABS 0
+_RD1 41 0 ABS 0
+_RD2 42 0 ABS 0
+_RD3 43 0 ABS 0
+_RD4 44 0 ABS 0
+_RD5 45 0 ABS 0
+_RD6 46 0 ABS 0
+_RD7 47 0 ABS 0
+__S0 2008 0 ABS 0
+__S1 D2 0 ABS 0
+__S2 0 0 ABS 0
+__S3 0 0 ABS 0
+_RX9 C6 0 ABS 0
+_TX9 4C6 0 ABS 0
+_PEN 48A 0 ABS 0
+_SEN 488 0 ABS 0
+__Hintentry 0 0 CODE 0
+__Lintentry 0 0 CODE 0
+__CFG_BOREN$ON 0 0 ABS 0
+__end_of_Lcd_Write_String DCC 0 CODE 0
+_Lcd_Write_Char E33 0 CODE 0
+_sec 6C 0 BANK0 1
+__end_of___awdiv 190 0 CODE 0
+_min 6A 0 BANK0 1
+__CFG_PWRTE$ON 0 0 ABS 0
+__end_of_Read_Alarms_Temp 513 0 CODE 0
+_RCIF 65 0 ABS 0
+_BRGH 4C2 0 ABS 0
+_SYNC 4C4 0 ABS 0
+_TXIF 64 0 ABS 0
+_RCEN 48B 0 ABS 0
+_CREN C4 0 ABS 0
+_SPEN C7 0 ABS 0
+_RSEN 489 0 ABS 0
+_TXEN 4C5 0 ABS 0
+_OERR C1 0 ABS 0
+__size_of_format_Temperature 0 0 ABS 0
+_alarm1_hour_0 39 0 BANK0 1
+_alarm2_hour_0 35 0 BANK0 1
+_date 66 0 BANK0 1
+_main 24C 0 CODE 0
+_year 62 0 BANK0 1
+___sp 0 0 STACK 2
+btemp 7E 0 ABS 0
+start 0 0 CODE 0
+_hour 68 0 BANK0 1
+__end_of_display_Lcd_Layout F28 0 CODE 0
+_RCREG 1A 0 ABS 0
+_sec_0 4C 0 BANK0 1
+_sec_1 4B 0 BANK0 1
+_TRISC 87 0 ABS 0
+_TXREG 19 0 ABS 0
+_min_0 4A 0 BANK0 1
+reset_vec 0 0 CODE 0
+_TRISD 88 0 ABS 0
+_ACKEN 48C 0 ABS 0
+_SPBRG 99 0 ABS 0
+_min_1 49 0 BANK0 1
+_day_0 46 0 BANK0 1
+_PORTC 7 0 ABS 0
+_day_1 45 0 BANK0 1
+_PORTD 8 0 ABS 0
+_ACKDT 48D 0 ABS 0
+I2C_Master_Init@freq_K 5A 0 BANK0 1
+wtemp0 7E 0 ABS 0
+__Hconfig 2008 0 CONFIG 0
+__Lconfig 2007 0 CONFIG 0
+__end_of_Lcd_Init 1EC 0 CODE 0
+_I2C_Master_Stop CBF 0 CODE 0
+?___awmod 70 0 COMMON 1
+__end_of__stringtab 13 0 STRING 0
+_temperature_msb 20 0 BANK0 1
+?___lwmod 70 0 COMMON 1
+_format_DateTimeChars 61A 0 CODE 0
+__Hram 0 0 ABS 0
+__size_of_display_Intro 0 0 ABS 0
+__Lram 0 0 ABS 0
+Lcd_Set_Cursor@b 74 0 COMMON 1
+_alarm F28 0 CODE 0
+_month 64 0 BANK0 1
+_display_Intro DFE 0 CODE 0
+__end_of_alarm F6B 0 CODE 0
+__Hfunctab 0 0 ENTRY 0
+?_I2C_Master_Read 70 0 COMMON 1
+__Lfunctab 0 0 ENTRY 0
+_Lcd_Init 190 0 CODE 0
+_TRISC3 43B 0 ABS 0
+_TRISC4 43C 0 ABS 0
+_TRISC6 43E 0 ABS 0
+_TRISC7 43F 0 ABS 0
+__Hcommon 0 0 ABS 0
+__Lcommon 0 0 ABS 0
+__end_of_Lcd_Write_Char E6C 0 CODE 0
+__Heeprom_data 0 0 EEDATA 3
+__Leeprom_data 0 0 EEDATA 3
+_SSPADD 93 0 ABS 0
+___int_sp 0 0 STACK 2
+?___lldiv 4D 0 BANK0 1
+?___awdiv 70 0 COMMON 1
+__size_of_BCD_2_DEC 0 0 ABS 0
+_Lcd_Port D1E 0 CODE 0
+?___lwdiv 70 0 COMMON 1
+_year_0 42 0 BANK0 1
+_SSPBUF 13 0 ABS 0
+_temp_0 40 0 BANK0 1
+_year_1 41 0 BANK0 1
+_temp_1 3F 0 BANK0 1
+_hour_0 48 0 BANK0 1
+_temp_2 3E 0 BANK0 1
+_hour_1 47 0 BANK0 1
+__Habs1 0 0 ABS 0
+__Labs1 0 0 ABS 0
+_SSPCON 14 0 ABS 0
+__Hsfr0 0 0 ABS 0
+__Lsfr0 0 0 ABS 0
+__Hsfr1 0 0 ABS 0
+__Lsfr1 0 0 ABS 0
+__Hsfr2 0 0 ABS 0
+__Lsfr2 0 0 ABS 0
+__Hsfr3 0 0 ABS 0
+__Lsfr3 0 0 ABS 0
+_display_Lcd_Layout EE7 0 CODE 0
+__end_of_I2C_Master_Read D9F 0 CODE 0
+_alarm1_hour_1 38 0 BANK0 1
+_alarm2_hour_1 34 0 BANK0 1
+__size_of_I2C_Master_Read 0 0 ABS 0
+_alarm1_status 28 0 BANK0 1
+_alarm2_status 26 0 BANK0 1
+___stackhi 0 0 ABS 0
+alarm@i 75 0 COMMON 1
+alarm@j 77 0 COMMON 1
+_Lcd_Write_String D9F 0 CODE 0
+__end_of___awmod 1000 0 CODE 0
+init_fetch0 CF7 0 CODE 0
+__Hcode 0 0 ABS 0
+__Lcode 0 0 ABS 0
+_Lcd_Clear CDF 0 CODE 0
+Lcd_Write_Char@y 73 0 COMMON 1
+__end_of_I2C_Master_Wait CDF 0 CODE 0
+__HcstackBANK0 0 0 ABS 0
+__LcstackBANK0 0 0 ABS 0
+I2C_Master_Read@incoming 74 0 COMMON 1
+__pcstackBANK0 4D 0 BANK0 1
+__end_of_I2C_Master_Init 137 0 CODE 0
+___awmod@sign 76 0 COMMON 1
+__end_of_I2C_Master_Stop CC6 0 CODE 0
+___lmul EA8 0 CODE 0
+__Hinit 0 0 CODE 0
+__Linit 0 0 CODE 0
+___wmul D52 0 CODE 0
+__end_of_main 2B8 0 CODE 0
+_alarm1_sec 32 0 BANK0 1
+__end_of_Lcd_Cmd D52 0 CODE 0
+__Htext 0 0 ABS 0
+__Ltext 0 0 ABS 0
+___lmul@multiplier 70 0 COMMON 1
+_temp_sign 6E 0 BANK0 1
+__end_of_display_Intro E33 0 CODE 0
+___wmul@multiplier 70 0 COMMON 1
+__HdataBANK0 0 0 ABS 0
+__size_of_alarm 0 0 ABS 0
+__LdataBANK0 0 0 ABS 0
+__pdataBANK0 62 0 BANK0 1
+end_of_initialization 7FC 0 CODE 0
+___awdiv@sign 76 0 COMMON 1
+___stacklo 0 0 ABS 0
+___lmul@multiplicand 74 0 COMMON 1
+__size_of_Lcd_Clear 0 0 ABS 0
+___wmul@multiplicand 72 0 COMMON 1
+_SSPCON2 91 0 ABS 0
+__size_of_I2C_Master_Wait 0 0 ABS 0
+__stringtab 3 0 STRING 0
+__size_of_I2C_Master_Init 0 0 ABS 0
+__HdataBANK1 0 0 ABS 0
+__LdataBANK1 0 0 ABS 0
+__pdataBANK1 CE 0 BANK1 1
+__size_of_I2C_Master_Stop 0 0 ABS 0
+__Hstrings 0 0 ABS 0
+__Lstrings 0 0 ABS 0
+__end_of_BCD_2_DEC 97 0 CODE 0
+__pstrings 3 0 STRING 0
+_I2C_Master_Read D73 0 CODE 0
+__end_of_format_Temperature 339 0 CODE 0
+_month_0 44 0 BANK0 1
+_month_1 43 0 BANK0 1
+__Hbank0 0 0 ABS 0
+__Lbank0 0 0 ABS 0
+_Lcd_Set_Cursor F6B 0 CODE 0
+__Hbank1 0 0 ABS 0
+__Lbank1 0 0 ABS 0
+__Hbank2 0 0 ABS 0
+__Lbank2 0 0 ABS 0
+__Hbank3 0 0 ABS 0
+__Lbank3 0 0 ABS 0
+___latbits 2 0 ABS 0
+__end_of___lmul EE7 0 CODE 0
+__Hpowerup 0 0 CODE 0
+_SSPSTAT 94 0 ABS 0
+__Lpowerup 0 0 CODE 0
+__size_of_Get_Alarm_Status 0 0 ABS 0
+__ptext1 513 0 CODE 0
+__ptext2 F28 0 CODE 0
+__ptext3 97 0 CODE 0
+__end_of_Get_Alarm_Status D1E 0 CODE 0
+__ptext4 2B8 0 CODE 0
+__ptext5 FB5 0 CODE 0
+__size_of_I2C_Master_Write 0 0 ABS 0
+__ptext6 137 0 CODE 0
+I2C_Master_Write@data 70 0 COMMON 1
+__ptext7 61A 0 CODE 0
+Lcd_Set_Cursor@a 77 0 COMMON 1
+__ptext8 DCC 0 CODE 0
+__ptext9 E6C 0 CODE 0
+__Hclrtext 0 0 ABS 0
+__Lclrtext 0 0 ABS 0
+_Update_Current_Date_Time 339 0 CODE 0
+_status_reg CC 0 BANK1 1
+__size_of_I2C_Master_Repeated_Start 0 0 ABS 0
+_BCD_2_DEC 74 0 CODE 0
+__size_of_Read_Alarms_Temp 0 0 ABS 0
+__end_of__initialization 7FC 0 CODE 0
+Lcd_Write_String@a 75 0 COMMON 1
+Lcd_Write_String@i 77 0 COMMON 1
+getWeekDay@dayofweek 70 0 COMMON 1
+__end_of___lwdiv EA8 0 CODE 0
+_alarm1_sec_0 3D 0 BANK0 1
+_Lcd_Cmd D38 0 CODE 0
+__size_of_Update_Current_Date_Time 0 0 ABS 0
+Lcd_Set_Cursor@temp 7A 0 COMMON 1
+_alarm1_min 30 0 BANK0 1
+_alarm2_min 2C 0 BANK0 1
+_sec_chg C8 0 BANK1 1
+__Hidloc 0 0 IDLOC 0
+__Lidloc 0 0 IDLOC 0
+__Hstack 0 0 STACK 2
+__Lstack 0 0 STACK 2
+__end_of_getWeekDay E6 0 CODE 0
+__end_of___lldiv 24C 0 CODE 0
+___awmod FB5 0 CODE 0
+___lwmod DCC 0 CODE 0
+_getWeekDay 97 0 CODE 0
+__Hspace_0 2008 0 ABS 0
+__Lspace_0 0 0 ABS 0
+__Hspace_1 D2 0 ABS 0
+__Lspace_1 0 0 ABS 0
+__size_of_I2C_Master_Start 0 0 ABS 0
+__end_of_I2C_Master_Repeated_Start CB8 0 CODE 0
+?___lmul 70 0 COMMON 1
+__Hspace_2 0 0 ABS 0
+__Lspace_2 0 0 ABS 0
+?___wmul 70 0 COMMON 1
+__Hcinit 800 0 CODE 0
+__Lcinit 7D3 0 CODE 0
+_weekday CA 0 BANK1 1
+__CFG_FOSC$HS 0 0 ABS 0
+___lldiv 1EC 0 CODE 0
+_alarm1_sec_1 3C 0 BANK0 1
+___awdiv 137 0 CODE 0
+__size_of_Lcd_Write_String 0 0 ABS 0
+__Hspace_3 0 0 ABS 0
+___lwdiv E6C 0 CODE 0
+__Lspace_3 0 0 ABS 0
+__size_of_main 0 0 ABS 0
+__end_of_Lcd_Set_Cursor FB5 0 CODE 0
+__size_of_Lcd_Set_Cursor 0 0 ABS 0
+__end_of_Update_Current_Date_Time 41C 0 CODE 0
+_I2C_Master_Repeated_Start CB1 0 CODE 0
+__HidataBANK0 0 0 ABS 0
+__LidataBANK0 0 0 ABS 0
+__pidataBANK0 CEA 0 CODE 0
+_alarm1_hour 2E 0 BANK0 1
+_alarm2_hour 2A 0 BANK0 1
+__size_of_format_DateTimeChars 0 0 ABS 0
+__end_of_Lcd_Clear CEA 0 CODE 0
+clear_ram0 CCE 0 CODE 0
+Lcd_Set_Cursor@z 78 0 COMMON 1
+__size_of___lwdiv 0 0 ABS 0
+__HbssBANK0 0 0 ABS 0
+__LbssBANK0 0 0 ABS 0
+__pbssBANK0 20 0 BANK0 1
+__end_of_format_DateTimeChars 7D3 0 CODE 0
+_I2C_Master_Start CB8 0 CODE 0
+__size_of_display_Lcd_Layout 0 0 ABS 0
+__HbssBANK1 0 0 ABS 0
+__LbssBANK1 0 0 ABS 0
+__pbssBANK1 A0 0 BANK1 1
+__ptext10 EE7 0 CODE 0
+__ptext20 CB8 0 CODE 0
+__ptext11 DFE 0 CODE 0
+__ptext30 EA8 0 CODE 0
+__ptext21 CB1 0 CODE 0
+__ptext12 D9F 0 CODE 0
+__ptext31 1EC 0 CODE 0
+__ptext22 D73 0 CODE 0
+__ptext13 E33 0 CODE 0
+__ptext32 D08 0 CODE 0
+__ptext23 CD6 0 CODE 0
+__HidataBANK1 0 0 ABS 0
+__size_of___awdiv 0 0 ABS 0
+__LidataBANK1 0 0 ABS 0
+__ptext14 F6B 0 CODE 0
+__pidataBANK1 70 0 CODE 0
+__ptext24 74 0 CODE 0
+__ptext15 CDF 0 CODE 0
+__end_of_update_Display 61A 0 CODE 0
+__ptext25 D52 0 CODE 0
+_format_Temperature 2B8 0 CODE 0
+__ptext16 339 0 CODE 0
+__ptext26 190 0 CODE 0
+__ptext17 41C 0 CODE 0
+I2C_Master_Read@ack 70 0 COMMON 1
+___awmod@divisor 70 0 COMMON 1
+__end_of___lwmod DFE 0 CODE 0
+__ptext27 D38 0 CODE 0
+___lwmod@divisor 70 0 COMMON 1
+__ptext18 CC6 0 CODE 0
+__size_of_update_Display 0 0 ABS 0
+__ptext28 D1E 0 CODE 0
+__ptext19 CBF 0 CODE 0
+__ptext29 E6 0 CODE 0
+_alarm1_min_0 3B 0 BANK0 1
+__Hend_init 3 0 CODE 0
+__Lend_init 0 0 CODE 0
+_alarm2_min_0 37 0 BANK0 1
+Lcd_Write_Char@a 74 0 COMMON 1
+__size_of_Lcd_Init 0 0 ABS 0
+___lldiv@divisor 4D 0 BANK0 1
+__size_of___lldiv 0 0 ABS 0
+___awdiv@divisor 70 0 COMMON 1
+___lwdiv@divisor 70 0 COMMON 1
+BCD_2_DEC@to_convert 76 0 COMMON 1
+__size_of___wmul 0 0 ABS 0
+__Hreset_vec 0 0 CODE 0
+__Lreset_vec 0 0 CODE 0
+_I2C_Master_Write CC6 0 CODE 0
+init_ram0 CFB 0 CODE 0
+intlevel0 0 0 ENTRY 0
+alarm@numberOfBeeps 70 0 COMMON 1
+__CFG_WDTE$OFF 0 0 ABS 0
+intlevel1 0 0 ENTRY 0
+__end_of_I2C_Master_Write CCE 0 CODE 0
+_alarm1_min_1 3A 0 BANK0 1
+intlevel2 0 0 ENTRY 0
+_alarm2_min_1 36 0 BANK0 1
+intlevel3 0 0 ENTRY 0
+__size_of___lmul 0 0 ABS 0
+Lcd_Write_Char@temp 72 0 COMMON 1
+intlevel4 0 0 ENTRY 0
+__end_of_Lcd_Port D38 0 CODE 0
+intlevel5 0 0 ENTRY 0
+__size_of_Lcd_Port 0 0 ABS 0
+_I2C_Master_Wait CD6 0 CODE 0
+__size_of___lwmod 0 0 ABS 0
+__size_of_Lcd_Write_Char 0 0 ABS 0
+__HcstackCOMMON 0 0 ABS 0
+__LcstackCOMMON 0 0 ABS 0
+__pcstackCOMMON 70 0 COMMON 1
+__end_of___wmul D73 0 CODE 0
+_Read_Alarms_Temp 41C 0 CODE 0
+__CFG_CPD$OFF 0 0 ABS 0
+start_initialization 7D3 0 CODE 0
+__size_of_getWeekDay 0 0 ABS 0
+___lldiv@quotient 55 0 BANK0 1
+___awdiv@quotient 77 0 COMMON 1
+__end_of_I2C_Master_Start CBF 0 CODE 0
+___lwdiv@quotient 75 0 COMMON 1
+_I2C_Master_Init E6 0 CODE 0
+_update_Display 513 0 CODE 0
+__Hmaintext 0 0 ABS 0
+__Lmaintext 0 0 ABS 0
+__pmaintext 24C 0 CODE 0
+_control_reg 24 0 BANK0 1
+__Hinittext 0 0 ABS 0
+__Linittext 0 0 ABS 0
+__size_of___awmod 0 0 ABS 0
+__initialization 7D3 0 CODE 0
+__stringbase 12 0 STRING 0
+Lcd_Cmd@a 73 0 COMMON 1
+_temperature_lsb 22 0 BANK0 1
+___awmod@dividend 72 0 COMMON 1
+Lcd_Set_Cursor@y 79 0 COMMON 1
+___lwmod@dividend 72 0 COMMON 1
+_Get_Alarm_Status D08 0 CODE 0
+___lmul@product 79 0 COMMON 1
+___awmod@counter 75 0 COMMON 1
+___wmul@product 74 0 COMMON 1
+___lwmod@counter 75 0 COMMON 1
+__CFG_CP$OFF 0 0 ABS 0
+?_BCD_2_DEC 76 0 COMMON 1
+Lcd_Port@a 70 0 COMMON 1
+__CFG_LVP$OFF 0 0 ABS 0
+___lldiv@dividend 51 0 BANK0 1
+___awdiv@dividend 72 0 COMMON 1
+%segments
+reset_vec 0 5 CODE 0 0
+cinit FA6 FFF CODE FA6 0
+config 400E 400F CONFIG 400E 0
+cstackCOMMON 70 7D COMMON 70 1
+bssBANK1 A0 D1 BANK1 A0 1
+bssBANK0 20 6E BANK0 20 1
+text7 C34 FA5 CODE C34 0
+text1 A26 C33 CODE A26 0
+text17 838 A25 CODE 838 0
+text16 672 837 CODE 672 0
+text4 570 671 CODE 570 0
+strings 6 DD STRING 6 0
+maintext 498 56F CODE 498 0
+text31 3D8 497 CODE 3D8 0
+text26 320 3D7 CODE 320 0
+text6 26E 31F CODE 26E 0
+text29 1CC 26D CODE 1CC 0
+text3 12E 1CB CODE 12E 0
+text5 1F6A 1FFF CODE 1F6A 0
+text14 1ED6 1F69 CODE 1ED6 0
+text2 1E50 1ED5 CODE 1E50 0
+text10 1DCE 1E4F CODE 1DCE 0
+text30 1D50 1DCD CODE 1D50 0
+text9 1CD8 1D4F CODE 1CD8 0
+text13 1C66 1CD7 CODE 1C66 0
+text11 1BFC 1C65 CODE 1BFC 0
+text8 1B98 1BFB CODE 1B98 0
+text12 1B3E 1B97 CODE 1B3E 0
+text22 1AE6 1B3D CODE 1AE6 0
+text24 E8 12D CODE E8 0
+text25 1AA4 1AE5 CODE 1AA4 0
+text27 1A70 1AA3 CODE 1A70 0
+text28 1A3C 1A6F CODE 1A3C 0
+text32 1A10 1A3B CODE 1A10 0
+inittext 19EE 1A0F CODE 19EE 0
+idataBANK0 19D4 19ED CODE 19D4 0
+text15 19BE 19D3 CODE 19BE 0
+text23 19AC 19BD CODE 19AC 0
+clrtext 199C 19AB CODE 199C 0
+text18 198C 199B CODE 198C 0
+text19 197E 198B CODE 197E 0
+text20 1970 197D CODE 1970 0
+text21 1962 196F CODE 1962 0
+idataBANK1 E0 E7 CODE E0 0
+%locals
+dist/default/production\I2C_LCD.X.production.o
+C:\Users\kb0iic\AppData\Local\Temp\s7ls.
+1340 7D3 0 CODE 0
+1343 7D3 0 CODE 0
+1557 7D3 0 CODE 0
+1558 7D4 0 CODE 0
+1559 7D5 0 CODE 0
+1560 7D6 0 CODE 0
+1561 7D7 0 CODE 0
+1562 7D8 0 CODE 0
+1563 7D9 0 CODE 0
+1564 7DA 0 CODE 0
+1565 7DB 0 CODE 0
+1566 7DC 0 CODE 0
+1570 7E1 0 CODE 0
+1571 7E2 0 CODE 0
+1572 7E3 0 CODE 0
+1573 7E4 0 CODE 0
+1574 7E5 0 CODE 0
+1575 7E6 0 CODE 0
+1576 7E7 0 CODE 0
+1577 7E8 0 CODE 0
+1578 7E9 0 CODE 0
+1597 7EE 0 CODE 0
+1598 7EF 0 CODE 0
+1599 7F0 0 CODE 0
+1600 7F1 0 CODE 0
+1603 7F6 0 CODE 0
+1604 7F7 0 CODE 0
+1605 7F8 0 CODE 0
+1606 7F9 0 CODE 0
+1612 7FC 0 CODE 0
+1614 7FC 0 CODE 0
+1615 7FD 0 CODE 0
+1531 CF7 0 CODE 0
+1532 CF7 0 CODE 0
+1533 CF8 0 CODE 0
+1534 CF9 0 CODE 0
+1535 CFA 0 CODE 0
+1542 CFB 0 CODE 0
+1543 CFB 0 CODE 0
+1544 CFE 0 CODE 0
+1545 CFF 0 CODE 0
+1546 D00 0 CODE 0
+1547 D01 0 CODE 0
+1548 D02 0 CODE 0
+1549 D03 0 CODE 0
+1550 D04 0 CODE 0
+1551 D05 0 CODE 0
+1552 D06 0 CODE 0
+1553 D07 0 CODE 0
+1584 CCE 0 CODE 0
+1585 CCE 0 CODE 0
+1586 CCF 0 CODE 0
+1587 CCF 0 CODE 0
+1588 CD0 0 CODE 0
+1589 CD1 0 CODE 0
+1590 CD2 0 CODE 0
+1591 CD3 0 CODE 0
+1592 CD4 0 CODE 0
+1593 CD5 0 CODE 0
+main.c
+17 24C 0 CODE 0
+18 24C 0 CODE 0
+19 24F 0 CODE 0
+21 252 0 CODE 0
+22 255 0 CODE 0
+33 258 0 CODE 0
+41 265 0 CODE 0
+49 26A 0 CODE 0
+50 26F 0 CODE 0
+72 274 0 CODE 0
+76 279 0 CODE 0
+79 27E 0 CODE 0
+83 283 0 CODE 0
+87 288 0 CODE 0
+91 28D 0 CODE 0
+94 296 0 CODE 0
+96 2A6 0 CODE 0
+99 2AB 0 CODE 0
+248 513 0 CODE 0
+250 513 0 CODE 0
+251 51B 0 CODE 0
+252 523 0 CODE 0
+255 52B 0 CODE 0
+256 535 0 CODE 0
+257 53D 0 CODE 0
+260 545 0 CODE 0
+261 54F 0 CODE 0
+262 557 0 CODE 0
+265 55F 0 CODE 0
+266 569 0 CODE 0
+267 571 0 CODE 0
+270 579 0 CODE 0
+271 583 0 CODE 0
+272 58B 0 CODE 0
+275 593 0 CODE 0
+276 59D 0 CODE 0
+277 5A5 0 CODE 0
+280 5AD 0 CODE 0
+281 5B5 0 CODE 0
+284 5C0 0 CODE 0
+285 5CA 0 CODE 0
+286 5D2 0 CODE 0
+287 5DA 0 CODE 0
+288 5E2 0 CODE 0
+289 5EC 0 CODE 0
+291 5F4 0 CODE 0
+292 5FE 0 CODE 0
+295 607 0 CODE 0
+296 612 0 CODE 0
+298 619 0 CODE 0
+beep.c
+4 F28 0 CODE 0
+5 F28 0 CODE 0
+14 F2A 0 CODE 0
+6 F32 0 CODE 0
+7 F34 0 CODE 0
+8 F37 0 CODE 0
+9 F3F 0 CODE 0
+10 F42 0 CODE 0
+11 F46 0 CODE 0
+13 F57 0 CODE 0
+14 F64 0 CODE 0
+main.c
+193 97 0 CODE 0
+194 97 0 CODE 0
+196 98 0 CODE 0
+197 9E 0 CODE 0
+199 9F 0 CODE 0
+200 A5 0 CODE 0
+202 A6 0 CODE 0
+203 AC 0 CODE 0
+205 AD 0 CODE 0
+206 B3 0 CODE 0
+208 B4 0 CODE 0
+209 BA 0 CODE 0
+211 BB 0 CODE 0
+212 C1 0 CODE 0
+214 C2 0 CODE 0
+215 C8 0 CODE 0
+216 C9 0 CODE 0
+217 E5 0 CODE 0
+156 2B8 0 CODE 0
+158 2B8 0 CODE 0
+159 2BC 0 CODE 0
+160 2CF 0 CODE 0
+162 2D1 0 CODE 0
+166 2D5 0 CODE 0
+169 2DC 0 CODE 0
+171 2EF 0 CODE 0
+172 2F3 0 CODE 0
+175 2F7 0 CODE 0
+176 2FC 0 CODE 0
+179 300 0 CODE 0
+180 305 0 CODE 0
+183 309 0 CODE 0
+184 30E 0 CODE 0
+187 312 0 CODE 0
+188 326 0 CODE 0
+189 338 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c
+5 FB5 0 CODE 0
+12 FB5 0 CODE 0
+13 FB6 0 CODE 0
+14 FB8 0 CODE 0
+15 FBD 0 CODE 0
+17 FBF 0 CODE 0
+18 FC1 0 CODE 0
+19 FC6 0 CODE 0
+20 FCA 0 CODE 0
+21 FCC 0 CODE 0
+22 FCE 0 CODE 0
+23 FD5 0 CODE 0
+21 FD9 0 CODE 0
+26 FDA 0 CODE 0
+27 FE2 0 CODE 0
+28 FE8 0 CODE 0
+29 FEF 0 CODE 0
+31 FF3 0 CODE 0
+32 FF6 0 CODE 0
+33 FFB 0 CODE 0
+34 FFF 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c
+5 137 0 CODE 0
+13 137 0 CODE 0
+14 138 0 CODE 0
+15 13A 0 CODE 0
+16 13F 0 CODE 0
+18 141 0 CODE 0
+19 143 0 CODE 0
+20 148 0 CODE 0
+22 14C 0 CODE 0
+23 14E 0 CODE 0
+24 152 0 CODE 0
+25 154 0 CODE 0
+26 156 0 CODE 0
+27 15D 0 CODE 0
+25 161 0 CODE 0
+30 162 0 CODE 0
+31 169 0 CODE 0
+32 171 0 CODE 0
+33 177 0 CODE 0
+35 178 0 CODE 0
+36 17F 0 CODE 0
+38 183 0 CODE 0
+39 186 0 CODE 0
+40 18B 0 CODE 0
+41 18F 0 CODE 0
+main.c
+129 61A 0 CODE 0
+130 61A 0 CODE 0
+131 630 0 CODE 0
+132 644 0 CODE 0
+133 658 0 CODE 0
+134 66C 0 CODE 0
+135 680 0 CODE 0
+136 694 0 CODE 0
+137 6A8 0 CODE 0
+138 6BC 0 CODE 0
+139 6D0 0 CODE 0
+140 6E4 0 CODE 0
+141 6F8 0 CODE 0
+142 70C 0 CODE 0
+143 720 0 CODE 0
+144 734 0 CODE 0
+145 748 0 CODE 0
+146 75C 0 CODE 0
+147 770 0 CODE 0
+148 784 0 CODE 0
+149 798 0 CODE 0
+150 7AC 0 CODE 0
+151 7C0 0 CODE 0
+152 7D2 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c
+5 DCC 0 CODE 0
+12 DCC 0 CODE 0
+13 DD0 0 CODE 0
+14 DD2 0 CODE 0
+15 DD4 0 CODE 0
+16 DDB 0 CODE 0
+14 DDF 0 CODE 0
+19 DE0 0 CODE 0
+20 DE8 0 CODE 0
+21 DEE 0 CODE 0
+22 DF5 0 CODE 0
+24 DF9 0 CODE 0
+25 DFD 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c
+5 E6C 0 CODE 0
+13 E6C 0 CODE 0
+14 E6E 0 CODE 0
+15 E72 0 CODE 0
+16 E74 0 CODE 0
+17 E76 0 CODE 0
+18 E7D 0 CODE 0
+16 E81 0 CODE 0
+21 E82 0 CODE 0
+22 E89 0 CODE 0
+23 E91 0 CODE 0
+24 E97 0 CODE 0
+26 E98 0 CODE 0
+27 E9F 0 CODE 0
+29 EA3 0 CODE 0
+30 EA7 0 CODE 0
+main.c
+236 EE7 0 CODE 0
+238 EE7 0 CODE 0
+239 EEC 0 CODE 0
+240 EF4 0 CODE 0
+241 EFD 0 CODE 0
+242 F03 0 CODE 0
+243 F09 0 CODE 0
+244 F11 0 CODE 0
+245 F1A 0 CODE 0
+246 F27 0 CODE 0
+226 DFE 0 CODE 0
+228 DFE 0 CODE 0
+229 E03 0 CODE 0
+230 E0B 0 CODE 0
+231 E14 0 CODE 0
+232 E1C 0 CODE 0
+233 E25 0 CODE 0
+234 E32 0 CODE 0
+lcd.c
+91 D9F 0 CODE 0
+93 D9F 0 CODE 0
+94 DA1 0 CODE 0
+76 E33 0 CODE 0
+78 E34 0 CODE 0
+79 E39 0 CODE 0
+80 E3E 0 CODE 0
+81 E41 0 CODE 0
+82 E4F 0 CODE 0
+83 E52 0 CODE 0
+84 E57 0 CODE 0
+85 E5A 0 CODE 0
+86 E60 0 CODE 0
+87 E63 0 CODE 0
+88 E68 0 CODE 0
+89 E6B 0 CODE 0
+41 F6B 0 CODE 0
+43 F6C 0 CODE 0
+44 F6F 0 CODE 0
+45 F74 0 CODE 0
+46 F80 0 CODE 0
+47 F85 0 CODE 0
+48 F8B 0 CODE 0
+49 F8F 0 CODE 0
+50 F94 0 CODE 0
+51 F99 0 CODE 0
+52 FA5 0 CODE 0
+53 FAA 0 CODE 0
+54 FB0 0 CODE 0
+56 FB4 0 CODE 0
+36 CDF 0 CODE 0
+37 CDF 0 CODE 0
+38 CE5 0 CODE 0
+39 CE9 0 CODE 0
+ds3231.c
+94 339 0 CODE 0
+96 339 0 CODE 0
+97 33E 0 CODE 0
+98 347 0 CODE 0
+99 34F 0 CODE 0
+102 354 0 CODE 0
+103 35D 0 CODE 0
+104 375 0 CODE 0
+105 38D 0 CODE 0
+106 3A5 0 CODE 0
+107 3B4 0 CODE 0
+108 3CC 0 CODE 0
+109 3E4 0 CODE 0
+110 3FC 0 CODE 0
+114 401 0 CODE 0
+115 406 0 CODE 0
+116 40F 0 CODE 0
+117 418 0 CODE 0
+118 41B 0 CODE 0
+27 41C 0 CODE 0
+28 41C 0 CODE 0
+29 421 0 CODE 0
+30 42A 0 CODE 0
+31 433 0 CODE 0
+34 438 0 CODE 0
+35 441 0 CODE 0
+36 459 0 CODE 0
+37 471 0 CODE 0
+38 489 0 CODE 0
+39 492 0 CODE 0
+40 4AA 0 CODE 0
+41 4C2 0 CODE 0
+42 4CB 0 CODE 0
+43 4DA 0 CODE 0
+44 4E9 0 CODE 0
+46 4F2 0 CODE 0
+48 501 0 CODE 0
+49 50F 0 CODE 0
+50 512 0 CODE 0
+i2c.c
+42 CC6 0 CODE 0
+44 CC6 0 CODE 0
+45 CC9 0 CODE 0
+46 CCD 0 CODE 0
+36 CBF 0 CODE 0
+38 CBF 0 CODE 0
+39 CC2 0 CODE 0
+40 CC5 0 CODE 0
+24 CB8 0 CODE 0
+26 CB8 0 CODE 0
+27 CBB 0 CODE 0
+28 CBE 0 CODE 0
+30 CB1 0 CODE 0
+32 CB1 0 CODE 0
+33 CB4 0 CODE 0
+34 CB7 0 CODE 0
+48 D73 0 CODE 0
+51 D73 0 CODE 0
+52 D78 0 CODE 0
+54 D7B 0 CODE 0
+55 D80 0 CODE 0
+57 D89 0 CODE 0
+58 D8E 0 CODE 0
+59 D99 0 CODE 0
+61 D9A 0 CODE 0
+62 D9E 0 CODE 0
+19 CD6 0 CODE 0
+21 CD6 0 CODE 0
+ds3231.c
+19 74 0 CODE 0
+20 74 0 CODE 0
+21 96 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c
+15 D52 0 CODE 0
+43 D52 0 CODE 0
+45 D54 0 CODE 0
+46 D56 0 CODE 0
+47 D5C 0 CODE 0
+48 D63 0 CODE 0
+49 D6A 0 CODE 0
+52 D6E 0 CODE 0
+53 D72 0 CODE 0
+lcd.c
+58 190 0 CODE 0
+59 190 0 CODE 0
+60 196 0 CODE 0
+61 19F 0 CODE 0
+62 1A5 0 CODE 0
+63 1AE 0 CODE 0
+64 1B4 0 CODE 0
+65 1BD 0 CODE 0
+67 1C3 0 CODE 0
+68 1C9 0 CODE 0
+69 1CF 0 CODE 0
+70 1D5 0 CODE 0
+71 1DB 0 CODE 0
+72 1E1 0 CODE 0
+73 1E7 0 CODE 0
+74 1EB 0 CODE 0
+28 D38 0 CODE 0
+29 D39 0 CODE 0
+30 D3C 0 CODE 0
+31 D42 0 CODE 0
+32 D45 0 CODE 0
+33 D4E 0 CODE 0
+34 D51 0 CODE 0
+6 D1E 0 CODE 0
+7 D1F 0 CODE 0
+8 D21 0 CODE 0
+9 D25 0 CODE 0
+10 D25 0 CODE 0
+12 D28 0 CODE 0
+13 D2A 0 CODE 0
+14 D2C 0 CODE 0
+15 D2C 0 CODE 0
+17 D2D 0 CODE 0
+18 D2F 0 CODE 0
+19 D31 0 CODE 0
+20 D31 0 CODE 0
+22 D32 0 CODE 0
+23 D34 0 CODE 0
+24 D36 0 CODE 0
+25 D36 0 CODE 0
+26 D37 0 CODE 0
+i2c.c
+8 E6 0 CODE 0
+10 E6 0 CODE 0
+12 EA 0 CODE 0
+13 EE 0 CODE 0
+15 F1 0 CODE 0
+16 135 0 CODE 0
+17 136 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c
+15 EA8 0 CODE 0
+119 EA8 0 CODE 0
+121 EB0 0 CODE 0
+122 EB2 0 CODE 0
+123 EC6 0 CODE 0
+124 ECF 0 CODE 0
+125 ED8 0 CODE 0
+128 EDE 0 CODE 0
+129 EE6 0 CODE 0
+C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c
+5 1EC 0 CODE 0
+13 1EC 0 CODE 0
+14 1F6 0 CODE 0
+15 1FC 0 CODE 0
+16 1FE 0 CODE 0
+17 200 0 CODE 0
+18 209 0 CODE 0
+16 20D 0 CODE 0
+21 20E 0 CODE 0
+22 217 0 CODE 0
+23 227 0 CODE 0
+24 235 0 CODE 0
+26 236 0 CODE 0
+27 23F 0 CODE 0
+29 243 0 CODE 0
+30 24B 0 CODE 0
+main.c
+221 D08 0 CODE 0
+222 D08 0 CODE 0
+223 D10 0 CODE 0
+224 D1D 0 CODE 0
diff --git a/dist/default/production/__eeprom.d b/dist/default/production/__eeprom.d
new file mode 100755
index 0000000..9f8e9f2
--- /dev/null
+++ b/dist/default/production/__eeprom.d
@@ -0,0 +1,2 @@
+dist/default/production\__eeprom.p1: \
+ C:\Program\ Files\ (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c
diff --git a/dist/default/production/__eeprom.i b/dist/default/production/__eeprom.i
new file mode 100755
index 0000000..57059f9
--- /dev/null
+++ b/dist/default/production/__eeprom.i
@@ -0,0 +1,1895 @@
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\pic\\__eeprom.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\pic\\__eeprom.c" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\pic\\__eeprom.c" 2
+
+
+
+
+void
+__eecpymem(volatile unsigned char *to, __eeprom unsigned char * from, unsigned char size)
+{
+ volatile unsigned char *cp = to;
+
+ while (EECON1bits.WR) continue;
+ EEADR = (unsigned char)from;
+ while(size--) {
+ while (EECON1bits.WR) continue;
+
+ EECON1 &= 0x7F;
+
+ EECON1bits.RD = 1;
+ *cp++ = EEDATA;
+ ++EEADR;
+ }
+# 36 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\pic\\__eeprom.c"
+}
+
+void
+__memcpyee(__eeprom unsigned char * to, const unsigned char *from, unsigned char size)
+{
+ const unsigned char *ptr =from;
+
+ while (EECON1bits.WR) continue;
+ EEADR = (unsigned char)to - 1U;
+
+ EECON1 &= 0x7F;
+
+ while(size--) {
+ while (EECON1bits.WR) {
+ continue;
+ }
+ EEDATA = *ptr++;
+ ++EEADR;
+ STATUSbits.CARRY = 0;
+ if (INTCONbits.GIE) {
+ STATUSbits.CARRY = 1;
+ }
+ INTCONbits.GIE = 0;
+ EECON1bits.WREN = 1;
+ EECON2 = 0x55;
+ EECON2 = 0xAA;
+ EECON1bits.WR = 1;
+ EECON1bits.WREN = 0;
+ if (STATUSbits.CARRY) {
+ INTCONbits.GIE = 1;
+ }
+ }
+# 101 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\pic\\__eeprom.c"
+}
+
+unsigned char
+__eetoc(__eeprom void *addr)
+{
+ unsigned char data;
+ __eecpymem((unsigned char *) &data,addr,1);
+ return data;
+}
+
+unsigned int
+__eetoi(__eeprom void *addr)
+{
+ unsigned int data;
+ __eecpymem((unsigned char *) &data,addr,2);
+ return data;
+}
+
+#pragma warning push
+#pragma warning disable 2040
+__uint24
+__eetom(__eeprom void *addr)
+{
+ __uint24 data;
+ __eecpymem((unsigned char *) &data,addr,3);
+ return data;
+}
+#pragma warning pop
+
+unsigned long
+__eetol(__eeprom void *addr)
+{
+ unsigned long data;
+ __eecpymem((unsigned char *) &data,addr,4);
+ return data;
+}
+
+#pragma warning push
+#pragma warning disable 1516
+unsigned long long
+__eetoo(__eeprom void *addr)
+{
+ unsigned long long data;
+ __eecpymem((unsigned char *) &data,addr,8);
+ return data;
+}
+#pragma warning pop
+
+unsigned char
+__ctoee(__eeprom void *addr, unsigned char data)
+{
+ __memcpyee(addr,(unsigned char *) &data,1);
+ return data;
+}
+
+unsigned int
+__itoee(__eeprom void *addr, unsigned int data)
+{
+ __memcpyee(addr,(unsigned char *) &data,2);
+ return data;
+}
+
+#pragma warning push
+#pragma warning disable 2040
+__uint24
+__mtoee(__eeprom void *addr, __uint24 data)
+{
+ __memcpyee(addr,(unsigned char *) &data,3);
+ return data;
+}
+#pragma warning pop
+
+unsigned long
+__ltoee(__eeprom void *addr, unsigned long data)
+{
+ __memcpyee(addr,(unsigned char *) &data,4);
+ return data;
+}
+
+#pragma warning push
+#pragma warning disable 1516
+unsigned long long
+__otoee(__eeprom void *addr, unsigned long long data)
+{
+ __memcpyee(addr,(unsigned char *) &data,8);
+ return data;
+}
+#pragma warning pop
+
+float
+__eetoft(__eeprom void *addr)
+{
+ float data;
+ __eecpymem((unsigned char *) &data,addr,3);
+ return data;
+}
+
+double
+__eetofl(__eeprom void *addr)
+{
+ double data;
+ __eecpymem((unsigned char *) &data,addr,4);
+ return data;
+}
+
+float
+__fttoee(__eeprom void *addr, float data)
+{
+ __memcpyee(addr,(unsigned char *) &data,3);
+ return data;
+}
+
+double
+__fltoee(__eeprom void *addr, double data)
+{
+ __memcpyee(addr,(unsigned char *) &data,4);
+ return data;
+}
diff --git a/dist/default/production/__eeprom.p1 b/dist/default/production/__eeprom.p1
new file mode 100755
index 0000000..96410cd
--- /dev/null
+++ b/dist/default/production/__eeprom.p1
@@ -0,0 +1,750 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"2322 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2322: struct {
+[s S94 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :3 `uc 1 :1 `uc 1 ]
+[n S94 . RD WR WREN WRERR . EEPGD ]
+"2321
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2321: typedef union {
+[u S93 `S94 1 ]
+[n S93 . . ]
+"2331
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2331: extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+[v _EECON1bits `VS93 ~T0 @X0 0 e@396 ]
+"2295
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2295: extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+[v _EEADR `Vuc ~T0 @X0 0 e@269 ]
+"2316
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2316: extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+[v _EECON1 `Vuc ~T0 @X0 0 e@396 ]
+"2288
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2288: extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+[v _EEDATA `Vuc ~T0 @X0 0 e@268 ]
+"79
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 79: struct {
+[s S2 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :2 `uc 1 :1 `uc 1 ]
+[n S2 . C DC Z nPD nTO RP IRP ]
+"88
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 88: struct {
+[s S3 :5 `uc 1 :1 `uc 1 :1 `uc 1 ]
+[n S3 . . RP0 RP1 ]
+"93
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 93: struct {
+[s S4 :1 `uc 1 :1 `uc 1 :1 `uc 1 ]
+[n S4 . CARRY . ZERO ]
+"78
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 78: typedef union {
+[u S1 `S2 1 `S3 1 `S4 1 ]
+[n S1 . . . . ]
+"99
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 99: extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+[v _STATUSbits `VS1 ~T0 @X0 0 e@3 ]
+"460
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 460: struct {
+[s S18 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ]
+[n S18 . RBIF INTF TMR0IF RBIE INTE TMR0IE PEIE GIE ]
+"470
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 470: struct {
+[s S19 :2 `uc 1 :1 `uc 1 :2 `uc 1 :1 `uc 1 ]
+[n S19 . . T0IF . T0IE ]
+"459
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 459: typedef union {
+[u S17 `S18 1 `S19 1 ]
+[n S17 . . . ]
+"477
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 477: extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+[v _INTCONbits `VS17 ~T0 @X0 0 e@11 ]
+"2361
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2361: extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+[v _EECON2 `Vuc ~T0 @X0 0 e@397 ]
+"54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
+[; <" INDF equ 00h ;# ">
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 61: __asm("TMR0 equ 01h");
+[; <" TMR0 equ 01h ;# ">
+"68
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 68: __asm("PCL equ 02h");
+[; <" PCL equ 02h ;# ">
+"75
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 75: __asm("STATUS equ 03h");
+[; <" STATUS equ 03h ;# ">
+"161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 161: __asm("FSR equ 04h");
+[; <" FSR equ 04h ;# ">
+"168
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 168: __asm("PORTA equ 05h");
+[; <" PORTA equ 05h ;# ">
+"218
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 218: __asm("PORTB equ 06h");
+[; <" PORTB equ 06h ;# ">
+"280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 280: __asm("PORTC equ 07h");
+[; <" PORTC equ 07h ;# ">
+"342
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 342: __asm("PORTD equ 08h");
+[; <" PORTD equ 08h ;# ">
+"404
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 404: __asm("PORTE equ 09h");
+[; <" PORTE equ 09h ;# ">
+"436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 436: __asm("PCLATH equ 0Ah");
+[; <" PCLATH equ 0Ah ;# ">
+"456
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 456: __asm("INTCON equ 0Bh");
+[; <" INTCON equ 0Bh ;# ">
+"534
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 534: __asm("PIR1 equ 0Ch");
+[; <" PIR1 equ 0Ch ;# ">
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 596: __asm("PIR2 equ 0Dh");
+[; <" PIR2 equ 0Dh ;# ">
+"636
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 636: __asm("TMR1 equ 0Eh");
+[; <" TMR1 equ 0Eh ;# ">
+"643
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 643: __asm("TMR1L equ 0Eh");
+[; <" TMR1L equ 0Eh ;# ">
+"650
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 650: __asm("TMR1H equ 0Fh");
+[; <" TMR1H equ 0Fh ;# ">
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 657: __asm("T1CON equ 010h");
+[; <" T1CON equ 010h ;# ">
+"732
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 732: __asm("TMR2 equ 011h");
+[; <" TMR2 equ 011h ;# ">
+"739
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 739: __asm("T2CON equ 012h");
+[; <" T2CON equ 012h ;# ">
+"810
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 810: __asm("SSPBUF equ 013h");
+[; <" SSPBUF equ 013h ;# ">
+"817
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 817: __asm("SSPCON equ 014h");
+[; <" SSPCON equ 014h ;# ">
+"887
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 887: __asm("CCPR1 equ 015h");
+[; <" CCPR1 equ 015h ;# ">
+"894
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 894: __asm("CCPR1L equ 015h");
+[; <" CCPR1L equ 015h ;# ">
+"901
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 901: __asm("CCPR1H equ 016h");
+[; <" CCPR1H equ 016h ;# ">
+"908
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 908: __asm("CCP1CON equ 017h");
+[; <" CCP1CON equ 017h ;# ">
+"966
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 966: __asm("RCSTA equ 018h");
+[; <" RCSTA equ 018h ;# ">
+"1061
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1061: __asm("TXREG equ 019h");
+[; <" TXREG equ 019h ;# ">
+"1068
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1068: __asm("RCREG equ 01Ah");
+[; <" RCREG equ 01Ah ;# ">
+"1075
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1075: __asm("CCPR2 equ 01Bh");
+[; <" CCPR2 equ 01Bh ;# ">
+"1082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1082: __asm("CCPR2L equ 01Bh");
+[; <" CCPR2L equ 01Bh ;# ">
+"1089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1089: __asm("CCPR2H equ 01Ch");
+[; <" CCPR2H equ 01Ch ;# ">
+"1096
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1096: __asm("CCP2CON equ 01Dh");
+[; <" CCP2CON equ 01Dh ;# ">
+"1154
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1154: __asm("ADRESH equ 01Eh");
+[; <" ADRESH equ 01Eh ;# ">
+"1161
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1161: __asm("ADCON0 equ 01Fh");
+[; <" ADCON0 equ 01Fh ;# ">
+"1257
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1257: __asm("OPTION_REG equ 081h");
+[; <" OPTION_REG equ 081h ;# ">
+"1327
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1327: __asm("TRISA equ 085h");
+[; <" TRISA equ 085h ;# ">
+"1377
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1377: __asm("TRISB equ 086h");
+[; <" TRISB equ 086h ;# ">
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1439: __asm("TRISC equ 087h");
+[; <" TRISC equ 087h ;# ">
+"1501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1501: __asm("TRISD equ 088h");
+[; <" TRISD equ 088h ;# ">
+"1563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1563: __asm("TRISE equ 089h");
+[; <" TRISE equ 089h ;# ">
+"1620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1620: __asm("PIE1 equ 08Ch");
+[; <" PIE1 equ 08Ch ;# ">
+"1682
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1682: __asm("PIE2 equ 08Dh");
+[; <" PIE2 equ 08Dh ;# ">
+"1722
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1722: __asm("PCON equ 08Eh");
+[; <" PCON equ 08Eh ;# ">
+"1756
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1756: __asm("SSPCON2 equ 091h");
+[; <" SSPCON2 equ 091h ;# ">
+"1818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1818: __asm("PR2 equ 092h");
+[; <" PR2 equ 092h ;# ">
+"1825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1825: __asm("SSPADD equ 093h");
+[; <" SSPADD equ 093h ;# ">
+"1832
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1832: __asm("SSPSTAT equ 094h");
+[; <" SSPSTAT equ 094h ;# ">
+"2001
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2001: __asm("TXSTA equ 098h");
+[; <" TXSTA equ 098h ;# ">
+"2082
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2082: __asm("SPBRG equ 099h");
+[; <" SPBRG equ 099h ;# ">
+"2089
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2089: __asm("CMCON equ 09Ch");
+[; <" CMCON equ 09Ch ;# ">
+"2159
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2159: __asm("CVRCON equ 09Dh");
+[; <" CVRCON equ 09Dh ;# ">
+"2224
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2224: __asm("ADRESL equ 09Eh");
+[; <" ADRESL equ 09Eh ;# ">
+"2231
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2231: __asm("ADCON1 equ 09Fh");
+[; <" ADCON1 equ 09Fh ;# ">
+"2290
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2290: __asm("EEDATA equ 010Ch");
+[; <" EEDATA equ 010Ch ;# ">
+"2297
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2297: __asm("EEADR equ 010Dh");
+[; <" EEADR equ 010Dh ;# ">
+"2304
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2304: __asm("EEDATH equ 010Eh");
+[; <" EEDATH equ 010Eh ;# ">
+"2311
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2311: __asm("EEADRH equ 010Fh");
+[; <" EEADRH equ 010Fh ;# ">
+"2318
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2318: __asm("EECON1 equ 018Ch");
+[; <" EECON1 equ 018Ch ;# ">
+"2363
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2363: __asm("EECON2 equ 018Dh");
+[; <" EECON2 equ 018Dh ;# ">
+"6 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: __eecpymem(volatile unsigned char *to, __eeprom unsigned char * from, unsigned char size)
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: }
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: }
+[v ___eecpymem `(v ~T0 @X0 1 ef3`*Vuc`*Euc`uc ]
+"7
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7: {
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7: unsigned int
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7:
+{
+[e :U ___eecpymem ]
+"6
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: __eecpymem(volatile unsigned char *to, __eeprom unsigned char * from, unsigned char size)
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: }
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 6: }
+[v _to `*Vuc ~T0 @X0 1 r1 ]
+[v _from `*Euc ~T0 @X0 1 r2 ]
+[v _size `uc ~T0 @X0 1 r3 ]
+"7
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7: {
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7: unsigned int
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 7:
+[f ]
+"8
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 8: volatile unsigned char *cp = to;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 8: __itoee(__eeprom void *addr, unsigned int data)
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 8: double
+[v _cp `*Vuc ~T0 @X0 1 a ]
+[e = _cp _to ]
+"10
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 10: while (EECON1bits.WR) continue;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 10: __memcpyee(addr,(unsigned char *) &data,2);
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 10: {
+[e $U 96 ]
+[e :U 97 ]
+[e $U 96 ]
+[e :U 96 ]
+[e $ != -> . . _EECON1bits 0 1 `i -> 0 `i 97 ]
+[e :U 98 ]
+"11
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 11: EEADR = (unsigned char)from;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 11: return data;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 11: double data;
+[e = _EEADR -> _from `uc ]
+"12
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: while(size--) {
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: }
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: __eecpymem((unsigned char *) &data,addr,4);
+[e $U 99 ]
+[e :U 100 ]
+{
+"13
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 13: while (EECON1bits.WR) continue;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 13:
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 13: return data;
+[e $U 102 ]
+[e :U 103 ]
+[e $U 102 ]
+[e :U 102 ]
+[e $ != -> . . _EECON1bits 0 1 `i -> 0 `i 103 ]
+[e :U 104 ]
+"15
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 15: EECON1 &= 0x7F;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 15:
+[e =& _EECON1 -> -> 127 `i `Vuc ]
+"17
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 17: EECON1bits.RD = 1;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 17: __fttoee(__eeprom void *addr, float data)
+[e = . . _EECON1bits 0 0 -> -> 1 `i `uc ]
+"18
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 18: *cp++ = EEDATA;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 18: {
+[e = *U ++ _cp * -> -> 1 `i `x -> -> # *U _cp `i `x _EEDATA ]
+"19
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 19: ++EEADR;
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 19: __memcpyee(addr,(unsigned char *) &data,3);
+[e =+ _EEADR -> -> 1 `i `Vuc ]
+"20
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 20: }
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 20: return data;
+}
+[e :U 99 ]
+"12
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: while(size--) {
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: }
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 12: __eecpymem((unsigned char *) &data,addr,4);
+[e $ != -> -- _size -> -> 1 `i `uc `i -> 0 `i 100 ]
+[e :U 101 ]
+"36
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 36: }
+[e :UE 95 ]
+}
+"39
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 39: __memcpyee(__eeprom unsigned char * to, const unsigned char *from, unsigned char size)
+[v ___memcpyee `(v ~T0 @X0 1 ef3`*Euc`*Cuc`uc ]
+"40
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 40: {
+{
+[e :U ___memcpyee ]
+"39
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 39: __memcpyee(__eeprom unsigned char * to, const unsigned char *from, unsigned char size)
+[v _to `*Euc ~T0 @X0 1 r1 ]
+[v _from `*Cuc ~T0 @X0 1 r2 ]
+[v _size `uc ~T0 @X0 1 r3 ]
+"40
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 40: {
+[f ]
+"41
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 41: const unsigned char *ptr =from;
+[v _ptr `*Cuc ~T0 @X0 1 a ]
+[e = _ptr _from ]
+"43
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 43: while (EECON1bits.WR) continue;
+[e $U 106 ]
+[e :U 107 ]
+[e $U 106 ]
+[e :U 106 ]
+[e $ != -> . . _EECON1bits 0 1 `i -> 0 `i 107 ]
+[e :U 108 ]
+"44
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 44: EEADR = (unsigned char)to - 1U;
+[e = _EEADR -> - -> -> _to `uc `ui -> 1 `ui `uc ]
+"46
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 46: EECON1 &= 0x7F;
+[e =& _EECON1 -> -> 127 `i `Vuc ]
+"48
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 48: while(size--) {
+[e $U 109 ]
+[e :U 110 ]
+{
+"49
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 49: while (EECON1bits.WR) {
+[e $U 112 ]
+[e :U 113 ]
+{
+"50
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 50: continue;
+[e $U 112 ]
+"51
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 51: }
+}
+[e :U 112 ]
+"49
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 49: while (EECON1bits.WR) {
+[e $ != -> . . _EECON1bits 0 1 `i -> 0 `i 113 ]
+[e :U 114 ]
+"52
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 52: EEDATA = *ptr++;
+[e = _EEDATA *U ++ _ptr * -> -> 1 `i `x -> -> # *U _ptr `i `x ]
+"53
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 53: ++EEADR;
+[e =+ _EEADR -> -> 1 `i `Vuc ]
+"54
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 54: STATUSbits.CARRY = 0;
+[e = . . _STATUSbits 2 0 -> -> 0 `i `uc ]
+"55
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 55: if (INTCONbits.GIE) {
+[e $ ! != -> . . _INTCONbits 0 7 `i -> 0 `i 115 ]
+{
+"56
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 56: STATUSbits.CARRY = 1;
+[e = . . _STATUSbits 2 0 -> -> 1 `i `uc ]
+"57
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 57: }
+}
+[e :U 115 ]
+"58
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 58: INTCONbits.GIE = 0;
+[e = . . _INTCONbits 0 7 -> -> 0 `i `uc ]
+"59
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 59: EECON1bits.WREN = 1;
+[e = . . _EECON1bits 0 2 -> -> 1 `i `uc ]
+"60
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 60: EECON2 = 0x55;
+[e = _EECON2 -> -> 85 `i `uc ]
+"61
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 61: EECON2 = 0xAA;
+[e = _EECON2 -> -> 170 `i `uc ]
+"62
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 62: EECON1bits.WR = 1;
+[e = . . _EECON1bits 0 1 -> -> 1 `i `uc ]
+"63
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 63: EECON1bits.WREN = 0;
+[e = . . _EECON1bits 0 2 -> -> 0 `i `uc ]
+"64
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 64: if (STATUSbits.CARRY) {
+[e $ ! != -> . . _STATUSbits 2 0 `i -> 0 `i 116 ]
+{
+"65
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 65: INTCONbits.GIE = 1;
+[e = . . _INTCONbits 0 7 -> -> 1 `i `uc ]
+"66
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 66: }
+}
+[e :U 116 ]
+"67
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 67: }
+}
+[e :U 109 ]
+"48
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 48: while(size--) {
+[e $ != -> -- _size -> -> 1 `i `uc `i -> 0 `i 110 ]
+[e :U 111 ]
+"101
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 101: }
+[e :UE 105 ]
+}
+"104
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 104: __eetoc(__eeprom void *addr)
+[v ___eetoc `(uc ~T0 @X0 1 ef1`*Ev ]
+"105
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 105: {
+{
+[e :U ___eetoc ]
+"104
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 104: __eetoc(__eeprom void *addr)
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"105
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 105: {
+[f ]
+"106
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 106: unsigned char data;
+[v _data `uc ~T0 @X0 1 a ]
+"107
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 107: __eecpymem((unsigned char *) &data,addr,1);
+[e ( ___eecpymem (3 , , -> &U _data `*Vuc -> _addr `*Euc -> -> 1 `i `uc ]
+"108
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 108: return data;
+[e ) _data ]
+[e $UE 117 ]
+"109
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 109: }
+[e :UE 117 ]
+}
+"112
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 112: __eetoi(__eeprom void *addr)
+[v ___eetoi `(ui ~T0 @X0 1 ef1`*Ev ]
+"113
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 113: {
+{
+[e :U ___eetoi ]
+"112
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 112: __eetoi(__eeprom void *addr)
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"113
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 113: {
+[f ]
+"114
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 114: unsigned int data;
+[v _data `ui ~T0 @X0 1 a ]
+"115
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 115: __eecpymem((unsigned char *) &data,addr,2);
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 2 `i `uc ]
+"116
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 116: return data;
+[e ) _data ]
+[e $UE 118 ]
+"117
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\pic\__eeprom.c: 117: }
+[e :UE 118 ]
+}
+"119
+[p k ]
+"120
+[p n 2040 ]
+"122
+[v ___eetom `(um ~T0 @X0 1 ef1`*Ev ]
+"123
+{
+[e :U ___eetom ]
+"122
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"123
+[f ]
+"124
+[v _data `um ~T0 @X0 1 a ]
+"125
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 3 `i `uc ]
+"126
+[e ) _data ]
+[e $UE 119 ]
+"127
+[e :UE 119 ]
+}
+"128
+[p o ]
+"131
+[v ___eetol `(ul ~T0 @X0 1 ef1`*Ev ]
+"132
+{
+[e :U ___eetol ]
+"131
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"132
+[f ]
+"133
+[v _data `ul ~T0 @X0 1 a ]
+"134
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 4 `i `uc ]
+"135
+[e ) _data ]
+[e $UE 120 ]
+"136
+[e :UE 120 ]
+}
+"138
+[p k ]
+"139
+[p n 1516 ]
+"141
+[v ___eetoo `(uo ~T0 @X0 1 ef1`*Ev ]
+"142
+{
+[e :U ___eetoo ]
+"141
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"142
+[f ]
+"143
+[v _data `uo ~T0 @X0 1 a ]
+"144
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 8 `i `uc ]
+"145
+[e ) _data ]
+[e $UE 121 ]
+"146
+[e :UE 121 ]
+}
+"147
+[p o ]
+"150
+[v ___ctoee `(uc ~T0 @X0 1 ef2`*Ev`uc ]
+"151
+{
+[e :U ___ctoee ]
+"150
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `uc ~T0 @X0 1 r2 ]
+"151
+[f ]
+"152
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> &U _data `*Cuc -> -> 1 `i `uc ]
+"153
+[e ) _data ]
+[e $UE 122 ]
+"154
+[e :UE 122 ]
+}
+"157
+[v ___itoee `(ui ~T0 @X0 1 ef2`*Ev`ui ]
+"158
+{
+[e :U ___itoee ]
+"157
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `ui ~T0 @X0 1 r2 ]
+"158
+[f ]
+"159
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 2 `i `uc ]
+"160
+[e ) _data ]
+[e $UE 123 ]
+"161
+[e :UE 123 ]
+}
+"163
+[p k ]
+"164
+[p n 2040 ]
+"166
+[v ___mtoee `(um ~T0 @X0 1 ef2`*Ev`um ]
+"167
+{
+[e :U ___mtoee ]
+"166
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `um ~T0 @X0 1 r2 ]
+"167
+[f ]
+"168
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 3 `i `uc ]
+"169
+[e ) _data ]
+[e $UE 124 ]
+"170
+[e :UE 124 ]
+}
+"171
+[p o ]
+"174
+[v ___ltoee `(ul ~T0 @X0 1 ef2`*Ev`ul ]
+"175
+{
+[e :U ___ltoee ]
+"174
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `ul ~T0 @X0 1 r2 ]
+"175
+[f ]
+"176
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 4 `i `uc ]
+"177
+[e ) _data ]
+[e $UE 125 ]
+"178
+[e :UE 125 ]
+}
+"180
+[p k ]
+"181
+[p n 1516 ]
+"183
+[v ___otoee `(uo ~T0 @X0 1 ef2`*Ev`uo ]
+"184
+{
+[e :U ___otoee ]
+"183
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `uo ~T0 @X0 1 r2 ]
+"184
+[f ]
+"185
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 8 `i `uc ]
+"186
+[e ) _data ]
+[e $UE 126 ]
+"187
+[e :UE 126 ]
+}
+"188
+[p o ]
+"191
+[v ___eetoft `(f ~T0 @X0 1 ef1`*Ev ]
+"192
+{
+[e :U ___eetoft ]
+"191
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"192
+[f ]
+"193
+[v _data `f ~T0 @X0 1 a ]
+"194
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 3 `i `uc ]
+"195
+[e ) _data ]
+[e $UE 127 ]
+"196
+[e :UE 127 ]
+}
+"199
+[v ___eetofl `(d ~T0 @X0 1 ef1`*Ev ]
+"200
+{
+[e :U ___eetofl ]
+"199
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+"200
+[f ]
+"201
+[v _data `d ~T0 @X0 1 a ]
+"202
+[e ( ___eecpymem (3 , , -> -> &U _data `*uc `*Vuc -> _addr `*Euc -> -> 4 `i `uc ]
+"203
+[e ) _data ]
+[e $UE 128 ]
+"204
+[e :UE 128 ]
+}
+"207
+[v ___fttoee `(f ~T0 @X0 1 ef2`*Ev`f ]
+"208
+{
+[e :U ___fttoee ]
+"207
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `f ~T0 @X0 1 r2 ]
+"208
+[f ]
+"209
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 3 `i `uc ]
+"210
+[e ) _data ]
+[e $UE 129 ]
+"211
+[e :UE 129 ]
+}
+"214
+[v ___fltoee `(d ~T0 @X0 1 ef2`*Ev`d ]
+"215
+{
+[e :U ___fltoee ]
+"214
+[v _addr `*Ev ~T0 @X0 1 r1 ]
+[v _data `d ~T0 @X0 1 r2 ]
+"215
+[f ]
+"216
+[e ( ___memcpyee (3 , , -> _addr `*Euc -> -> &U _data `*uc `*Cuc -> -> 4 `i `uc ]
+"217
+[e ) _data ]
+[e $UE 130 ]
+"218
+[e :UE 130 ]
+}
diff --git a/dist/default/production/doprnt.d b/dist/default/production/doprnt.d
new file mode 100755
index 0000000..414a9fc
--- /dev/null
+++ b/dist/default/production/doprnt.d
@@ -0,0 +1,2 @@
+dist/default/production\doprnt.p1: \
+ C:\Program\ Files\ (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c
diff --git a/dist/default/production/doprnt.i b/dist/default/production/doprnt.i
new file mode 100755
index 0000000..b1384bf
--- /dev/null
+++ b/dist/default/production/doprnt.i
@@ -0,0 +1,553 @@
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__size_t.h" 1 3
+
+
+
+typedef unsigned size_t;
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__null.h" 1 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdarg.h" 1 3
+
+
+
+
+
+
+typedef void * va_list[1];
+
+#pragma intrinsic(__va_start)
+extern void * __va_start(void);
+
+#pragma intrinsic(__va_arg)
+extern void * __va_arg(void *, ...);
+# 11 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+# 43 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+struct __prbuf
+{
+ char * ptr;
+ void (* func)(char);
+};
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 1 3
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 1 3
+# 29 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 3
+extern int errno;
+# 8 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 2 3
+
+
+
+
+extern void init_uart(void);
+
+extern char getch(void);
+extern char getche(void);
+extern void putch(char);
+extern void ungetch(char);
+
+extern __bit kbhit(void);
+
+
+
+extern char * cgets(char *);
+extern void cputs(const char *);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+extern int cprintf(char *, ...);
+#pragma printf_check(cprintf)
+
+
+
+extern int _doprnt(struct __prbuf *, const register char *, register va_list);
+# 180 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+#pragma printf_check(vprintf) const
+#pragma printf_check(vsprintf) const
+
+extern char * gets(char *);
+extern int puts(const char *);
+extern int scanf(const char *, ...) __attribute__((unsupported("scanf() is not supported by this compiler")));
+extern int sscanf(const char *, const char *, ...) __attribute__((unsupported("sscanf() is not supported by this compiler")));
+extern int vprintf(const char *, va_list) __attribute__((unsupported("vprintf() is not supported by this compiler")));
+extern int vsprintf(char *, const char *, va_list) __attribute__((unsupported("vsprintf() is not supported by this compiler")));
+extern int vscanf(const char *, va_list ap) __attribute__((unsupported("vscanf() is not supported by this compiler")));
+extern int vsscanf(const char *, const char *, va_list) __attribute__((unsupported("vsscanf() is not supported by this compiler")));
+
+#pragma printf_check(printf) const
+#pragma printf_check(sprintf) const
+extern int sprintf(char *, const char *, ...);
+extern int printf(const char *, ...);
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\ctype.h" 1 3
+
+
+
+extern __bit isalpha(char);
+extern __bit isupper(char);
+extern __bit islower(char);
+extern __bit isdigit(char);
+extern __bit isxdigit(char);
+extern __bit isspace(char);
+extern __bit ispunct(char);
+extern __bit isalnum(char);
+extern __bit isprint(char);
+extern __bit isgraph(char);
+extern __bit iscntrl(char);
+
+
+extern char toupper(char);
+extern char tolower(char);
+# 2 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdlib.h" 1 3
+
+
+
+
+
+
+typedef unsigned short wchar_t;
+
+
+
+
+
+
+
+typedef struct {
+ int rem;
+ int quot;
+} div_t;
+typedef struct {
+ unsigned rem;
+ unsigned quot;
+} udiv_t;
+typedef struct {
+ long quot;
+ long rem;
+} ldiv_t;
+typedef struct {
+ unsigned long quot;
+ unsigned long rem;
+} uldiv_t;
+# 65 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdlib.h" 3
+extern double atof(const char *);
+extern double strtod(const char *, const char **);
+extern int atoi(const char *);
+extern unsigned xtoi(const char *);
+extern long atol(const char *);
+
+
+
+extern long strtol(const char *, char **, int);
+
+extern int rand(void);
+extern void srand(unsigned int);
+extern void * calloc(size_t, size_t);
+extern div_t div(int numer, int denom);
+extern udiv_t udiv(unsigned numer, unsigned denom);
+extern ldiv_t ldiv(long numer, long denom);
+extern uldiv_t uldiv(unsigned long numer,unsigned long denom);
+
+
+
+extern unsigned long _lrotl(unsigned long value, unsigned int shift);
+extern unsigned long _lrotr(unsigned long value, unsigned int shift);
+extern unsigned int _rotl(unsigned int value, unsigned int shift);
+extern unsigned int _rotr(unsigned int value, unsigned int shift);
+
+
+
+
+extern void * malloc(size_t);
+extern void free(void *);
+extern void * realloc(void *, size_t);
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 99 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdlib.h" 2 3
+
+
+
+
+
+extern int atexit(void (*)(void));
+extern char * getenv(const char *);
+extern char ** environ;
+extern int system(char *);
+extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
+extern void * bsearch(const void *, void *, size_t, size_t, int(*)(const void *, const void *));
+extern int abs(int);
+extern long labs(long);
+
+extern char * itoa(char * buf, int val, int base);
+extern char * utoa(char * buf, unsigned val, int base);
+
+
+
+
+extern char * ltoa(char * buf, long val, int base);
+extern char * ultoa(char * buf, unsigned long val, int base);
+
+extern char * ftoa(float f, int * status);
+# 3 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\string.h" 1 3
+# 14 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\string.h" 3
+extern void * memcpy(void *, const void *, size_t);
+extern void * memmove(void *, const void *, size_t);
+extern void * memset(void *, int, size_t);
+# 36 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\string.h" 3
+extern char * strcat(char *, const char *);
+extern char * strcpy(char *, const char *);
+extern char * strncat(char *, const char *, size_t);
+extern char * strncpy(char *, const char *, size_t);
+extern char * strdup(const char *);
+extern char * strtok(char *, const char *);
+
+
+extern int memcmp(const void *, const void *, size_t);
+extern int strcmp(const char *, const char *);
+extern int stricmp(const char *, const char *);
+extern int strncmp(const char *, const char *, size_t);
+extern int strnicmp(const char *, const char *, size_t);
+extern void * memchr(const void *, int, size_t);
+extern size_t strcspn(const char *, const char *);
+extern char * strpbrk(const char *, const char *);
+extern size_t strspn(const char *, const char *);
+extern char * strstr(const char *, const char *);
+extern char * stristr(const char *, const char *);
+extern char * strerror(int);
+extern size_t strlen(const char *);
+extern char * strchr(const char *, int);
+extern char * strichr(const char *, int);
+extern char * strrchr(const char *, int);
+extern char * strrichr(const char *, int);
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\math.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__unsupported.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\math.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\math.h" 3
+extern double fabs(double);
+extern double floor(double);
+extern double ceil(double);
+extern double modf(double, double *);
+extern double sqrt(double);
+extern double atof(const char *);
+extern double sin(double) ;
+extern double cos(double) ;
+extern double tan(double) ;
+extern double asin(double) ;
+extern double acos(double) ;
+extern double atan(double);
+extern double atan2(double, double) ;
+extern double log(double);
+extern double log10(double);
+extern double pow(double, double) ;
+extern double exp(double) ;
+extern double sinh(double) ;
+extern double cosh(double) ;
+extern double tanh(double);
+extern double eval_poly(double, const double *, int);
+extern double frexp(double, int *);
+extern double ldexp(double, int);
+extern double fmod(double, double);
+extern double trunc(double);
+extern double round(double);
+# 7 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\float.h" 1 3
+# 8 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c" 2
+
+
+
+
+#pragma warning disable 350
+# 358 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+const static unsigned int dpowers[] = {1, 10, 100, 1000, 10000,
+
+
+
+
+ };
+# 463 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+int
+# 500 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+sprintf(char * sp, const char * f, ...)
+{
+ va_list ap;
+
+
+
+
+ char c;
+
+ int width;
+
+
+
+
+
+
+ signed char prec;
+
+
+
+ unsigned char flag;
+# 535 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ union {
+ unsigned long vd;
+ double integ;
+ } tmpval;
+
+ unsigned int val;
+ unsigned len;
+ const char * cp;
+
+
+ *ap = __va_start();
+
+
+ while((c = *f++)) {
+
+ if(c != '%')
+
+ {
+ ((*sp++ = (c)));
+ continue;
+ }
+
+
+ width = 0;
+
+ flag = 0;
+
+ for(;;) {
+ switch(*f) {
+# 591 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ case '0':
+ flag |= 0x04;
+ f++;
+ continue;
+
+ }
+ break;
+ }
+# 609 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ if(isdigit((unsigned)*f)) {
+ width = 0;
+ do {
+ width *= 10;
+ width += *f++ - '0';
+ } while(isdigit((unsigned)*f));
+
+
+
+
+
+ }
+# 654 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ switch(c = *f++) {
+
+ case 0:
+ goto alldone;
+# 716 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ case 'd':
+ case 'i':
+ break;
+# 747 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ case 's':
+
+
+
+
+
+ cp = (*(const char * *)__va_arg((*(const char * **)ap), (const char *)0));
+
+
+
+
+
+ if(!cp)
+ cp = "(null)";
+
+
+
+ len = 0;
+ while(cp[len])
+ len++;
+
+
+dostring:
+
+
+
+
+
+
+ if(width > len)
+ width -= len;
+ else
+ width = 0;
+
+
+
+ while(width--)
+ ((*sp++ = (' ')));
+
+ while(len--)
+ ((*sp++ = (*cp++)));
+
+
+
+
+
+ continue;
+# 803 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ case 'c':
+# 818 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ c = (*(int *)__va_arg((*(int **)ap), (int)0));
+
+
+ default:
+
+
+ cp = (char *)&c;
+ len = 1;
+ goto dostring;
+# 841 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ }
+# 1272 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ {
+
+
+
+
+
+ val = (int)(*(int *)__va_arg((*(int **)ap), (int)0));
+
+ if((int)val < 0) {
+ flag |= 0x03;
+ val = -val;
+ }
+
+ }
+# 1324 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ for(c = 1 ; c != sizeof dpowers/sizeof dpowers[0] ; c++)
+ if(val < dpowers[c])
+ break;
+# 1364 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ if(width && flag & 0x03)
+ width--;
+# 1400 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ if(width > c)
+ width -= c;
+ else
+ width = 0;
+
+
+ if(flag & 0x04) {
+
+
+
+
+ if(flag & 0x03)
+ ((*sp++ = ('-')));
+# 1434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ if(width)
+ do
+ ((*sp++ = ('0')));
+ while(--width);
+
+ } else
+
+ {
+
+ if(width
+
+
+
+ )
+ do
+ ((*sp++ = (' ')));
+ while(--width);
+
+
+
+
+
+
+ if(flag & 0x03)
+ ((*sp++ = ('-')));
+# 1488 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ }
+
+
+ prec = c;
+
+ while(prec--) {
+
+
+
+ {
+# 1508 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ c = (val / dpowers[prec]) % 10 + '0';
+# 1542 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\sources\\c90\\common\\doprnt.c"
+ }
+ ((*sp++ = (c)));
+ }
+
+
+
+
+
+
+
+ }
+
+alldone:
+
+
+ *sp = 0;
+
+ return 0;
+}
diff --git a/dist/default/production/doprnt.p1 b/dist/default/production/doprnt.p1
new file mode 100755
index 0000000..136be4b
--- /dev/null
+++ b/dist/default/production/doprnt.p1
@@ -0,0 +1,452 @@
+Version 4.0 HI-TECH Software Intermediate Code
+"535 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 535: union {
+[u S7 `ul 1 `d 1 ]
+[n S7 . vd integ ]
+"10 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c90\stdarg.h
+[v ___va_start `(*v ~T0 @X0 0 ef ]
+[p i ___va_start ]
+"7 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c90\ctype.h
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c90\ctype.h: 7: extern __bit isdigit(char);
+[v _isdigit `(b ~T0 @X0 0 ef1`uc ]
+"13 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c90\stdarg.h
+[v ___va_arg `(*v ~T0 @X0 0 ev`*v ]
+[p i ___va_arg ]
+"12 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c
+[p n 350 ]
+"358
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 358: const static unsigned int dpowers[] = {1, 10, 100, 1000, 10000,
+[v _dpowers `Cui ~T0 @X0 -> 5 `i s ]
+[i _dpowers
+:U ..
+-> -> 1 `i `ui
+-> -> 10 `i `ui
+-> -> 100 `i `ui
+-> -> 1000 `i `ui
+-> -> 10000 `i `ui
+..
+]
+"500
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 500: sprintf(char * sp, const char * f, ...)
+[v _sprintf `(i ~T0 @X0 1 e1v`*uc`*Cuc ]
+"501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 501: {
+{
+[e :U _sprintf ]
+"500
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 500: sprintf(char * sp, const char * f, ...)
+[v _sp `*uc ~T0 @X0 1 r1 ]
+[v _f `*Cuc ~T0 @X0 1 r0 ]
+"501
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 501: {
+[f ]
+"502
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 502: va_list ap;
+[v _ap `*v ~T0 @X0 -> -> 1 `i `ux a ]
+"507
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 507: char c;
+[v _c `uc ~T0 @X0 1 a ]
+"509
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 509: int width;
+[v _width `i ~T0 @X0 1 a ]
+"516
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 516: signed char prec;
+[v _prec `c ~T0 @X0 1 a ]
+"520
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 520: unsigned char flag;
+[v _flag `uc ~T0 @X0 1 a ]
+"538
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 538: } tmpval;
+[v _tmpval `S7 ~T0 @X0 1 a ]
+"540
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 540: unsigned int val;
+[v _val `ui ~T0 @X0 1 a ]
+"541
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 541: unsigned len;
+[v _len `ui ~T0 @X0 1 a ]
+"542
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 542: const char * cp;
+[v _cp `*Cuc ~T0 @X0 1 a ]
+"545
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 545: *ap = __va_start();
+[e = *U &U _ap ( ___va_start .. ]
+"548
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 548: while((c = *f++)) {
+[e $U 8 ]
+[e :U 9 ]
+{
+"550
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 550: if(c != '%')
+[e $ ! != -> _c `ui -> 37 `ui 11 ]
+"552
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 552: {
+{
+"553
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 553: ((*sp++ = (c)));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x _c ]
+"554
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 554: continue;
+[e $U 8 ]
+"555
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 555: }
+}
+[e :U 11 ]
+"558
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 558: width = 0;
+[e = _width -> 0 `i ]
+"560
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 560: flag = 0;
+[e = _flag -> -> 0 `i `uc ]
+"562
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 562: for(;;) {
+{
+[e :U 12 ]
+{
+"563
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 563: switch(*f) {
+[e $U 16 ]
+{
+"591
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 591: case '0':
+[e :U 17 ]
+"592
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 592: flag |= 0x04;
+[e =| _flag -> -> 4 `i `uc ]
+"593
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 593: f++;
+[e ++ _f * -> -> 1 `i `x -> -> # *U _f `i `x ]
+"594
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 594: continue;
+[e $U 14 ]
+"596
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 596: }
+}
+[e $U 15 ]
+[e :U 16 ]
+[e [\ -> *U _f `i , $ -> -> 48 `ui `i 17
+ 15 ]
+[e :U 15 ]
+"597
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 597: break;
+[e $U 13 ]
+"598
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 598: }
+}
+[e :U 14 ]
+[e $U 12 ]
+[e :U 13 ]
+}
+"609
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 609: if(isdigit((unsigned)*f)) {
+[e $ ! ( _isdigit (1 -> -> *U _f `ui `uc 18 ]
+{
+"610
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 610: width = 0;
+[e = _width -> 0 `i ]
+"611
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 611: do {
+[e :U 21 ]
+{
+"612
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 612: width *= 10;
+[e =* _width -> 10 `i ]
+"613
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 613: width += *f++ - '0';
+[e =+ _width -> - -> *U ++ _f * -> -> 1 `i `x -> -> # *U _f `i `x `ui -> 48 `ui `i ]
+"614
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 614: } while(isdigit((unsigned)*f));
+}
+[e $ ( _isdigit (1 -> -> *U _f `ui `uc 21 ]
+[e :U 20 ]
+"620
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 620: }
+}
+[e :U 18 ]
+"654
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 654: switch(c = *f++) {
+[e $U 23 ]
+{
+"656
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 656: case 0:
+[e :U 24 ]
+"657
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 657: goto alldone;
+[e $U 25 ]
+"716
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 716: case 'd':
+[e :U 26 ]
+"717
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 717: case 'i':
+[e :U 27 ]
+"718
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 718: break;
+[e $U 22 ]
+"747
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 747: case 's':
+[e :U 28 ]
+"753
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 753: cp = (*(const char * *)__va_arg((*(const char * **)ap), (const char *)0));
+[e = _cp *U -> ( ___va_arg , (. -> *U -> &U _ap `***Cuc `*v -> -> 0 `i `*Cuc `**Cuc ]
+"759
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 759: if(!cp)
+[e $ ! ! != _cp -> -> 0 `i `*Cuc 29 ]
+"760
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 760: cp = "(null)";
+[e = _cp :s 1C ]
+[e :U 29 ]
+"764
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 764: len = 0;
+[e = _len -> -> 0 `i `ui ]
+"765
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 765: while(cp[len])
+[e $U 30 ]
+[e :U 31 ]
+"766
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 766: len++;
+[e ++ _len -> -> 1 `i `ui ]
+[e :U 30 ]
+"765
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 765: while(cp[len])
+[e $ != -> *U + _cp * -> _len `ux -> -> # *U _cp `ui `ux `i -> 0 `i 31 ]
+[e :U 32 ]
+"769
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 769: dostring:
+[e :U 33 ]
+"776
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 776: if(width > len)
+[e $ ! > -> _width `ui _len 34 ]
+"777
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 777: width -= len;
+[e =- _width -> _len `i ]
+[e $U 35 ]
+"778
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 778: else
+[e :U 34 ]
+"779
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 779: width = 0;
+[e = _width -> 0 `i ]
+[e :U 35 ]
+"783
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 783: while(width--)
+[e $U 36 ]
+[e :U 37 ]
+"784
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 784: ((*sp++ = (' ')));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x -> -> 32 `ui `uc ]
+[e :U 36 ]
+"783
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 783: while(width--)
+[e $ != -- _width -> 1 `i -> 0 `i 37 ]
+[e :U 38 ]
+"786
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 786: while(len--)
+[e $U 39 ]
+[e :U 40 ]
+"787
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 787: ((*sp++ = (*cp++)));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x *U ++ _cp * -> -> 1 `i `x -> -> # *U _cp `i `x ]
+[e :U 39 ]
+"786
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 786: while(len--)
+[e $ != -- _len -> -> 1 `i `ui -> -> 0 `i `ui 40 ]
+[e :U 41 ]
+"793
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 793: continue;
+[e $U 8 ]
+"803
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 803: case 'c':
+[e :U 42 ]
+"818
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 818: c = (*(int *)__va_arg((*(int **)ap), (int)0));
+[e = _c -> *U -> ( ___va_arg , (. -> *U -> &U _ap `**i `*v -> 0 `i `*i `uc ]
+"821
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 821: default:
+[e :U 43 ]
+"824
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 824: cp = (char *)&c;
+[e = _cp -> &U _c `*Cuc ]
+"825
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 825: len = 1;
+[e = _len -> -> 1 `i `ui ]
+"826
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 826: goto dostring;
+[e $U 33 ]
+"841
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 841: }
+}
+[e $U 22 ]
+[e :U 23 ]
+[e [\ -> = _c *U ++ _f * -> -> 1 `i `x -> -> # *U _f `i `x `i , $ -> 0 `i 24
+ , $ -> -> 100 `ui `i 26
+ , $ -> -> 105 `ui `i 27
+ , $ -> -> 115 `ui `i 28
+ , $ -> -> 99 `ui `i 42
+ 43 ]
+[e :U 22 ]
+"1272
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1272: {
+{
+"1278
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1278: val = (int)(*(int *)__va_arg((*(int **)ap), (int)0));
+[e = _val -> *U -> ( ___va_arg , (. -> *U -> &U _ap `**i `*v -> 0 `i `*i `ui ]
+"1280
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1280: if((int)val < 0) {
+[e $ ! < -> _val `i -> 0 `i 44 ]
+{
+"1281
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1281: flag |= 0x03;
+[e =| _flag -> -> 3 `i `uc ]
+"1282
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1282: val = -val;
+[e = _val -U _val ]
+"1283
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1283: }
+}
+[e :U 44 ]
+"1285
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1285: }
+}
+"1324
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1324: for(c = 1 ; c != sizeof dpowers/sizeof dpowers[0] ; c++)
+{
+[e = _c -> -> 1 `i `uc ]
+[e $ != -> _c `ui / -> # _dpowers `ui -> # *U + &U _dpowers * -> -> -> 0 `i `ui `ux -> -> # *U &U _dpowers `ui `ux `ui 45 ]
+[e $U 46 ]
+[e :U 45 ]
+"1325
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1325: if(val < dpowers[c])
+[e $ ! < _val *U + &U _dpowers * -> _c `ux -> -> # *U &U _dpowers `ui `ux 48 ]
+"1326
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1326: break;
+[e $U 46 ]
+[e :U 48 ]
+[e ++ _c -> -> 1 `i `uc ]
+[e $ != -> _c `ui / -> # _dpowers `ui -> # *U + &U _dpowers * -> -> -> 0 `i `ui `ux -> -> # *U &U _dpowers `ui `ux `ui 45 ]
+[e :U 46 ]
+}
+"1364
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1364: if(width && flag & 0x03)
+[e $ ! && != _width -> 0 `i != & -> _flag `i -> 3 `i -> 0 `i 49 ]
+"1365
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1365: width--;
+[e -- _width -> 1 `i ]
+[e :U 49 ]
+"1400
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1400: if(width > c)
+[e $ ! > _width -> _c `i 50 ]
+"1401
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1401: width -= c;
+[e =- _width -> _c `i ]
+[e $U 51 ]
+"1402
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1402: else
+[e :U 50 ]
+"1403
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1403: width = 0;
+[e = _width -> 0 `i ]
+[e :U 51 ]
+"1406
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1406: if(flag & 0x04) {
+[e $ ! != & -> _flag `i -> 4 `i -> 0 `i 52 ]
+{
+"1411
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1411: if(flag & 0x03)
+[e $ ! != & -> _flag `i -> 3 `i -> 0 `i 53 ]
+"1412
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1412: ((*sp++ = ('-')));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x -> -> 45 `ui `uc ]
+[e :U 53 ]
+"1434
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1434: if(width)
+[e $ ! != _width -> 0 `i 54 ]
+"1435
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1435: do
+[e :U 57 ]
+"1436
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1436: ((*sp++ = ('0')));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x -> -> 48 `ui `uc ]
+[e $ != =- _width -> 1 `i -> 0 `i 57 ]
+[e :U 56 ]
+[e :U 54 ]
+"1439
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1439: } else
+}
+[e $U 58 ]
+[e :U 52 ]
+"1441
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1441: {
+{
+"1443
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1443: if(width
+[e $ ! != _width -> 0 `i 59 ]
+"1448
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1448: do
+[e :U 62 ]
+"1449
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1449: ((*sp++ = (' ')));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x -> -> 32 `ui `uc ]
+[e $ != =- _width -> 1 `i -> 0 `i 62 ]
+[e :U 61 ]
+[e :U 59 ]
+"1457
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1457: if(flag & 0x03)
+[e $ ! != & -> _flag `i -> 3 `i -> 0 `i 63 ]
+"1458
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1458: ((*sp++ = ('-')));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x -> -> 45 `ui `uc ]
+[e :U 63 ]
+"1488
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1488: }
+}
+[e :U 58 ]
+"1491
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1491: prec = c;
+[e = _prec -> _c `c ]
+"1493
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1493: while(prec--) {
+[e $U 64 ]
+[e :U 65 ]
+{
+"1497
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1497: {
+{
+"1508
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1508: c = (val / dpowers[prec]) % 10 + '0';
+[e = _c -> + % / _val *U + &U _dpowers * -> -> _prec `uc `ux -> -> # *U &U _dpowers `ui `ux -> -> 10 `i `ui -> 48 `ui `uc ]
+"1542
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1542: }
+}
+"1543
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1543: ((*sp++ = (c)));
+[e = *U ++ _sp * -> -> 1 `i `x -> -> # *U _sp `i `x _c ]
+"1544
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1544: }
+}
+[e :U 64 ]
+"1493
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1493: while(prec--) {
+[e $ != -> -- _prec -> -> 1 `i `c `i -> 0 `i 65 ]
+[e :U 66 ]
+"1552
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1552: }
+}
+[e :U 8 ]
+"548
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 548: while((c = *f++)) {
+[e $ != -> = _c *U ++ _f * -> -> 1 `i `x -> -> # *U _f `i `x `i -> 0 `i 9 ]
+[e :U 10 ]
+"1554
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1554: alldone:
+[e :U 25 ]
+"1557
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1557: *sp = 0;
+[e = *U _sp -> -> 0 `i `uc ]
+"1559
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1559: return 0;
+[e ) -> 0 `i ]
+[e $UE 6 ]
+"1560
+[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\doprnt.c: 1560: }
+[e :UE 6 ]
+}
+[a 1C 40 110 117 108 108 41 0 ]
diff --git a/dist/default/production/memoryfile.xml b/dist/default/production/memoryfile.xml
new file mode 100755
index 0000000..6b4ceb6
--- /dev/null
+++ b/dist/default/production/memoryfile.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <executable name="dist/default/production\I2C_LCD.X.production.hex">
+ <memory name="program">
+ <units>words</units>
+ <length>8192</length>
+ <used>2894</used>
+ <free>5298</free>
+ </memory>
+ <memory name="data">
+ <units>bytes</units>
+ <length>368</length>
+ <used>145</used>
+ <free>223</free>
+ </memory>
+ </executable>
+</project>
diff --git a/ds3231.c b/ds3231.c
new file mode 100755
index 0000000..53a944f
--- /dev/null
+++ b/ds3231.c
@@ -0,0 +1,137 @@
+/*
+ * File: Header file to use DS3231 RTC module with PIC16F877A
+ * Author: B.Aswinth Raj
+ * Created on 5 May, 2018, 10:06 PM
+ * Connect the RTC module to SDA and SCK pins of the PIC.
+ * This header needs the PIC16f877a_I2C.h header to compile
+ */
+
+
+//PIN 18 -> RC3 -> SCL
+//PIN 23 -> RC4 ->SDA
+
+/****** Functions for RTC module *******/
+
+#include "ds3231.h"
+#include "i2c.h"
+#include "main.h"
+
+int BCD_2_DEC(int to_convert) {
+ return (to_convert >> 4) * 10 + (to_convert & 0x0F);
+}
+
+int DEC_2_BCD(int to_convert) {
+ return ((to_convert / 10) << 4) + (to_convert % 10);
+}
+
+void Read_Alarms_Temp() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC chip address
+ I2C_Master_Write(0x07); // (alarm1 seconds register)
+ I2C_Master_Repeated_Start(); // Restart I2C
+
+ //READ
+ I2C_Master_Write(0xD1); // Initialize data read
+ alarm1_sec = BCD_2_DEC(I2C_Master_Read(1)); // Read alarm1 seconds 07h
+ alarm1_min = BCD_2_DEC(I2C_Master_Read(1)); // Read alarm1 minutes 08h
+ alarm1_hour = BCD_2_DEC(I2C_Master_Read(1)); // Read alarm1 hours 09h
+ I2C_Master_Read(1); // skip alarm1 day/date 0Ah
+ alarm2_min = BCD_2_DEC(I2C_Master_Read(1)); // Read alarm2 minutes 0Bh
+ alarm2_hour = BCD_2_DEC(I2C_Master_Read(1)); // Read alarm2 hours 0Ch
+ I2C_Master_Read(1); // Skip alarm2 day/date 0Dh
+ control_reg = I2C_Master_Read(1); // Read control register 0Eh
+ status_reg = I2C_Master_Read(1); // Read status register 0Fh
+ I2C_Master_Read(1); // Skip aging offset register
+
+ temperature_msb = I2C_Master_Read(1); // Read temperature MSB 011h
+
+ temperature_lsb = I2C_Master_Read(0); // Read temperature LSB 012h
+ I2C_Master_Stop();
+}
+
+void Set_Date() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC Chip address
+ I2C_Master_Write(4); // send register address
+ I2C_Master_Write(DEC_2_BCD(date)); //update date
+ I2C_Master_Write(DEC_2_BCD(month)); //update month
+ I2C_Master_Write(DEC_2_BCD(year)); //update year
+ I2C_Master_Stop();
+}
+
+void Set_DayOfWeek() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC Chip address
+ I2C_Master_Write(3); // send register address
+ I2C_Master_Write(dayofweek); //update day of week
+ I2C_Master_Stop();
+}
+
+void Set_Time() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC Chip address
+ I2C_Master_Write(0); // send register address
+ I2C_Master_Write(DEC_2_BCD(sec)); //update sec
+ I2C_Master_Write(DEC_2_BCD(min)); //update min
+ I2C_Master_Write(DEC_2_BCD(hour)); //update hour
+ I2C_Master_Stop();
+}
+
+void Set_Time_Date() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC Chip address
+ I2C_Master_Write(0); // send register address
+ I2C_Master_Write(DEC_2_BCD(sec)); //update sec
+ I2C_Master_Write(DEC_2_BCD(min)); //update min
+ I2C_Master_Write(DEC_2_BCD(hour)); //update hour
+ I2C_Master_Write(1); //ignore updating day
+ I2C_Master_Write(DEC_2_BCD(date)); //update date
+ I2C_Master_Write(DEC_2_BCD(month)); //update month
+ I2C_Master_Write(DEC_2_BCD(year)); //update year
+ I2C_Master_Stop();
+}
+
+void Update_Current_Date_Time() {
+ //START to Read
+ I2C_Master_Start();
+ I2C_Master_Write(0xD0); // RTC Chip address
+ I2C_Master_Write(0);
+ I2C_Master_Repeated_Start(); // Restart I2C
+
+ //READ
+ I2C_Master_Write(0xD1); // Initialize data read
+ sec = BCD_2_DEC(I2C_Master_Read(1)); // Read sec from register 00h
+ min = BCD_2_DEC(I2C_Master_Read(1)); // Read min from register 01h
+ hour = BCD_2_DEC(I2C_Master_Read(1)); // Read hour from register 02h
+ weekday = I2C_Master_Read(1); // Read day from register 03h
+ date = BCD_2_DEC(I2C_Master_Read(1)); // Read date from register 04h
+ month = BCD_2_DEC(I2C_Master_Read(1)); // Read month from register 05h
+ year = BCD_2_DEC(I2C_Master_Read(1)); // Read year from register 06h
+ I2C_Master_Stop();
+
+ //END Reading
+
+ I2C_Master_Start();
+ I2C_Master_Write(0xD1);
+ I2C_Master_Read(1);
+ I2C_Master_Stop();
+}
+
+void Write_Alarms() {
+ I2C_Master_Start(); // Start I2C
+ I2C_Master_Write(0xD0); // RTC Chip Address
+ I2C_Master_Write(7); // Send Alarm1 register address
+ I2C_Master_Write(0); // Write 0 to Alarm1 seconds
+ I2C_Master_Write(DEC_2_BCD(alarm1_min)); // Write Alarm1 minutes
+ I2C_Master_Write(DEC_2_BCD(alarm1_hour)); // Write Alarm1 hours
+ I2C_Master_Write(0x80); // Alarm1 when H:M:S matches
+ I2C_Master_Write(DEC_2_BCD(alarm2_min)); // Write Alarm2 minutes
+ I2C_Master_Write(DEC_2_BCD(alarm2_hour)); // Write Alarm2 hours
+ I2C_Master_Write(0x80); // Alarm2 when H:M:S matches
+
+ //Write data to control register (enable interupt when alarm);
+ I2C_Master_Write(4 | alarm1_status | (alarm2_status << 1));
+ I2C_Master_Write(0); // Clear alarm flag bits
+ I2C_Master_Stop(); // Stop I2C
+ __delay_ms(200); // Wait 200ms
+} \ No newline at end of file
diff --git a/ds3231.h b/ds3231.h
new file mode 100755
index 0000000..7e65e7c
--- /dev/null
+++ b/ds3231.h
@@ -0,0 +1,11 @@
+#include "conf.h"
+
+int BCD_2_DEC(int);
+int DEC_2_BCD(int);
+void Read_Alarms_Temp(void);
+void Set_Date(void);
+void Set_DayOfWeek(void);
+void Set_Time(void);
+void Set_Time_Date(void);
+void Update_Current_Date_Time(void);
+void Write_Alarms(void); \ No newline at end of file
diff --git a/i2c.c b/i2c.c
new file mode 100755
index 0000000..5b3b707
--- /dev/null
+++ b/i2c.c
@@ -0,0 +1,62 @@
+
+//PIN 18 -> RC3 -> SCL
+//PIN 23 -> RC4 ->SDA
+
+#include "i2c.h"
+#include "conf.h"
+
+void I2C_Master_Init(const unsigned long freq_K) //Begin IIC as master
+{
+ TRISC3 = 1; TRISC4 = 1; //Set SDA and SCL pins as input pins
+
+ SSPCON = 0b00101000; //pg84/234
+ SSPCON2 = 0b00000000; //pg85/234
+
+ SSPADD = (_XTAL_FREQ/(4*freq_K*100))-1; //Setting Clock Speed pg99/234
+ SSPSTAT = 0b00000000; //pg83/234
+}
+
+void I2C_Master_Wait()
+{
+ while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ; //check the bis on registers to make sure the IIC is not in progress
+}
+
+void I2C_Master_Start()
+{
+ I2C_Master_Wait(); //Hold the program if I2C is busy
+ SEN = 1; //Begin IIC pg85/234
+}
+
+void I2C_Master_Repeated_Start()
+{
+ I2C_Master_Wait();
+ RSEN = 1; //Initiate repeated start condition
+}
+
+void I2C_Master_Stop()
+{
+ I2C_Master_Wait(); //Hold the program is I2C is busy
+ PEN = 1; //End IIC pg85/234
+}
+
+void I2C_Master_Write(unsigned data)
+{
+ I2C_Master_Wait(); //Hold the program is I2C is busy
+ SSPBUF = data; //pg82/234
+}
+
+unsigned short I2C_Master_Read(unsigned short ack)
+{
+ unsigned short incoming;
+ I2C_Master_Wait();
+ RCEN = 1;
+
+ I2C_Master_Wait();
+ incoming = SSPBUF; //get the data saved in SSPBUF
+
+ I2C_Master_Wait();
+ ACKDT = (ack)?0:1; //check if ack bit received
+ ACKEN = 1; //pg 85/234
+
+ return incoming;
+} \ No newline at end of file
diff --git a/i2c.h b/i2c.h
new file mode 100755
index 0000000..33d0a91
--- /dev/null
+++ b/i2c.h
@@ -0,0 +1,7 @@
+void I2C_Master_Init(const unsigned long);
+void I2C_Master_Wait(void);
+void I2C_Master_Start(void);
+void I2C_Master_Repeated_Start(void);
+void I2C_Master_Stop(void);
+void I2C_Master_Write(unsigned);
+unsigned short I2C_Master_Read(unsigned short); \ No newline at end of file
diff --git a/lcd.c b/lcd.c
new file mode 100755
index 0000000..b6d0ece
--- /dev/null
+++ b/lcd.c
@@ -0,0 +1,110 @@
+#include "lcd.h"
+#include "conf.h"
+
+//LCD Functions Developed by electroSome
+
+void Lcd_Port(char a) {
+ if (a & 1)
+ D4 = 1;
+ else
+ D4 = 0;
+
+ if (a & 2)
+ D5 = 1;
+ else
+ D5 = 0;
+
+ if (a & 4)
+ D6 = 1;
+ else
+ D6 = 0;
+
+ if (a & 8)
+ D7 = 1;
+ else
+ D7 = 0;
+}
+
+void Lcd_Cmd(char a) {
+ RS = 0; // => RS = 0
+ Lcd_Port(a);
+ EN = 1; // => E = 1
+ __delay_ms(4);
+ EN = 0; // => E = 0
+}
+
+void Lcd_Clear() {
+ Lcd_Cmd(0);
+ Lcd_Cmd(1);
+}
+
+void Lcd_Set_Cursor(char a, char b) {
+ char temp, z, y;
+ if (a == 1) {
+ temp = 0x80 + b - 1;
+ z = temp >> 4;
+ y = temp & 0x0F;
+ Lcd_Cmd(z);
+ Lcd_Cmd(y);
+ } else if (a == 2) {
+ temp = 0xC0 + b - 1;
+ z = temp >> 4;
+ y = temp & 0x0F;
+ Lcd_Cmd(z);
+ Lcd_Cmd(y);
+ }
+}
+
+void Lcd_Init() {
+ Lcd_Port(0x00);
+ __delay_ms(20);
+ Lcd_Cmd(0x03);
+ __delay_ms(5);
+ Lcd_Cmd(0x03);
+ __delay_ms(11);
+ Lcd_Cmd(0x03);
+ /////////////////////////////////////////////////////
+ Lcd_Cmd(0x02);
+ Lcd_Cmd(0x02);
+ Lcd_Cmd(0x08);
+ Lcd_Cmd(0x00);
+ Lcd_Cmd(0x0C);
+ Lcd_Cmd(0x00);
+ Lcd_Cmd(0x06);
+}
+
+void Lcd_Write_Char(char a) {
+ char temp, y;
+ temp = a & 0x0F;
+ y = a & 0xF0;
+ RS = 1; // => RS = 1
+ Lcd_Port(y >> 4); //Data transfer
+ EN = 1;
+ __delay_us(40);
+ EN = 0;
+ Lcd_Port(temp);
+ EN = 1;
+ __delay_us(40);
+ EN = 0;
+}
+
+void Lcd_Write_String(char *a) {
+ int i;
+ for (i = 0; a[i] != '\0'; i++)
+ Lcd_Write_Char(a[i]);
+}
+
+void Lcd_Shift_Right() {
+ Lcd_Cmd(0x01);
+ Lcd_Cmd(0x0C);
+}
+
+void Lcd_Shift_Left() {
+ Lcd_Cmd(0x01);
+ Lcd_Cmd(0x08);
+}
+
+// For some VFD's like Noritake
+void Vfd_Set_Brightness(int level) {
+
+} \ No newline at end of file
diff --git a/lcd.h b/lcd.h
new file mode 100755
index 0000000..7c3af8a
--- /dev/null
+++ b/lcd.h
@@ -0,0 +1,12 @@
+void Lcd_Port(char);
+void Lcd_Cmd(char);
+void Lcd_Clear();
+void Lcd_Set_Cursor(char, char);
+void Lcd_Init();
+void Lcd_Write_Char(char);
+void Lcd_Write_String(char *);
+void Lcd_Shift_Right();
+void Lcd_Shift_Left();
+
+// For some VFD's like Noritake
+void Vfd_Set_Brightness(int); \ No newline at end of file
diff --git a/main.c b/main.c
new file mode 100755
index 0000000..4fd1b5c
--- /dev/null
+++ b/main.c
@@ -0,0 +1,298 @@
+#include <stdio.h> // included for sprintf
+
+#define DEBUG 0 // Enable/Disable debugging via UART
+
+#include "conf.h" //Configuration settings
+#include "main.h" //Declarations for main
+#include "lcd.h" //Declaratons for LCD
+#include "i2c.h"
+#include "ds3231.h" //Declarations for RTC
+#include "beep.h" //Declarations for BEEP
+
+#if DEBUG
+#include "uart.h" //Declarations for UART
+#include "term.h" //Declarations for Escape codes
+#endif
+
+int main() {
+ TRISC = 0x00; // Set PORTC as outputs
+ PORTC = 0x00; // Set all PORTC pins LOW
+
+ TRISD = 0x00; // Set PORTD as outputs
+ PORTD = 0x00; // Set all PORTD pins LOW
+
+#if DEBUG
+ Initialize_UART(); //Initialize UART module
+ UART_send_string(CLS); // Clear screen
+ UART_send_string(CURSOR(12, 23)); // Set cursor at line 12, column 23
+ UART_send_string(GREEN); // Set Green
+ UART_send_string("UART Module Initialized and active\r\n");
+ UART_send_string(CLRATTR); // No color
+#endif
+
+ I2C_Master_Init(100000); // Init I2C Master with 100KHz Clock
+#if DEBUG
+ UART_send_string(CURSOR(13, 24)); // Set cursor at line 12, column 23
+ UART_send_string(GREEN); // Set Green
+ UART_send_string("I2C Module Initialized and active\r\n");
+ UART_send_string(CLRATTR); // No color
+#endif
+
+ Lcd_Init();
+#if DEBUG
+ UART_send_string(CURSOR(14, 24)); // Set cursor at line 12, column 23
+ UART_send_string(GREEN); // Set Green
+ UART_send_string("LCD Module Initialized and active\r\n");
+ UART_send_string(CLRATTR); // No color
+#endif
+
+ display_Intro();
+ display_Lcd_Layout();
+
+ // Set an initial date time
+ //Set_Time_Date();
+ //Set_Time();
+ //Set_Date();
+ //Set_DayOfWeek();
+
+ // Write default alarm values
+
+ /*UART_send_string("Setting Alarm1 and Alarm2\r\n");
+ alarm1_min = 30;
+ alarm1_hour = 16;
+ alarm2_min = 40;
+ alarm2_hour = 16;
+ UART_send_string("Writing Alarms\r\n");
+ Write_Alarms();*/
+
+ while (1) {
+
+ // Set time and date variables from DS3231
+ //UART_send_string("Updating current date time from DS3231\r\n");
+ Update_Current_Date_Time();
+
+ // Read temp
+ //UART_send_string("Reading Alarms and Temperature");
+ Read_Alarms_Temp();
+
+ // Get Alarm Status
+ Get_Alarm_Status();
+
+ // Separate the int timedate variables into chars
+ //UART_send_string("Formatting chars");
+ format_DateTimeChars();
+
+ // Format temperature
+ //UART_send_string("Formating temperature");
+ format_Temperature();
+
+ // Determine day of the week
+ //UART_send_string("Determining day of week");
+ getWeekDay(dayofweek);
+
+ // Enter loop and update display if sec changes from DS3231
+ if (sec_chg != sec) {
+
+ update_Display();
+
+ // Set temp_sec to current sec from DS3231
+ sec_chg = sec;
+
+#if DEBUG
+ UART_send_string(CURSOR(19, 1));
+ sprintf(buf, "%sTIME:%s\t%02d:%02d:%02d\r\n", YELLOW, CLRATTR,
+ hour, min, sec);
+ UART_send_string(buf);
+ sprintf(buf, "%sAL1:%s\t%02d:%02d:%02d\t%sSTATUS:%s %d\r\n", YELLOW,
+ CLRATTR, alarm1_hour, alarm1_min, alarm1_sec, YELLOW,
+ CLRATTR, alarm1_status);
+ UART_send_string(buf);
+ sprintf(buf, "%sAL2:%s\t%02d:%02d\t\t%sSTATUS:%s %d\r\n", YELLOW,
+ CLRATTR, alarm2_hour, alarm2_min, YELLOW, CLRATTR,
+ alarm2_status);
+ UART_send_string(buf);
+ sprintf(buf, "%sWKDAY:%s\t%d\t\t%sDAY:%s\t%s\r\n", YELLOW, CLRATTR,
+ dayofweek, YELLOW, CLRATTR, weekday);
+ UART_send_string(buf);
+ sprintf(buf, "%sTEMP:\t%s%c%c%c.%c%cC%s", YELLOW, CLRATTR,
+ temp_sign, temp_2, temp_1, temp_0, 0xB0, CLRATTR);
+ UART_send_string(buf);
+#endif
+ }
+ }
+
+ return 0;
+}
+
+// Format unsigned int to unsigned chars
+
+void format_DateTimeChars() {
+ sec_0 = sec % 10 + '0';
+ sec_1 = sec / 10 + '0';
+ min_0 = min % 10 + '0';
+ min_1 = min / 10 + '0';
+ hour_0 = hour % 10 + '0';
+ hour_1 = hour / 10 + '0';
+ day_0 = date % 10 + '0';
+ day_1 = date / 10 + '0';
+ month_0 = month % 10 + '0';
+ month_1 = month / 10 + '0';
+ year_0 = year % 10 + '0';
+ year_1 = year / 10 + '0';
+ alarm1_sec_0 = alarm1_sec % 10 + '0';
+ alarm1_sec_1 = alarm1_sec / 10 + '0';
+ alarm1_min_0 = alarm1_min % 10 + '0';
+ alarm1_min_1 = alarm1_min / 10 + '0';
+ alarm1_hour_0 = alarm1_hour % 10 + '0';
+ alarm1_hour_1 = alarm1_hour / 10 + '0';
+ alarm2_min_0 = alarm2_min % 10 + '0';
+ alarm2_min_1 = alarm2_min / 10 + '0';
+ alarm2_hour_0 = alarm2_hour % 10 + '0';
+ alarm2_hour_1 = alarm2_hour / 10 + '0';
+}
+
+// Format msb and lsb for temperature display
+
+void format_Temperature() {
+
+ if (temperature_msb < 0) {
+ temperature_msb *= -1;
+ temp_sign = '-';
+ } else {
+ temp_sign = '+';
+ }
+
+ //Shift fractional value 6 bits to the right so b7 & b6 are b1 & b0
+ temperature_lsb >>= 6;
+
+ //Fractional is increments of 0.25 degrees
+ temperature_lsb *= 25;
+
+ if (temperature_lsb == 0) {
+ temp_0 = '0';
+ }
+
+ if (temperature_lsb == 25) {
+ temp_0 = '2';
+ }
+
+ if (temperature_lsb == 50) {
+ temp_0 = '5';
+ }
+
+ if (temperature_lsb == 75) {
+ temp_0 = '7';
+ }
+
+ temp_1 = temperature_msb % 10 + '0';
+ temp_2 = temperature_msb / 10 + '0';
+}
+
+// Determine day of week with dayofweek from DS3231
+
+void getWeekDay(unsigned int dayofweek) {
+ switch (dayofweek) {
+ case 1:
+ weekday = "Sun";
+ break;
+ case 2:
+ weekday = "Mon";
+ break;
+ case 3:
+ weekday = "Tue";
+ break;
+ case 4:
+ weekday = "Wed";
+ break;
+ case 5:
+ weekday = "Thu";
+ break;
+ case 6:
+ weekday = "Fri";
+ break;
+ case 7:
+ weekday = "Sat";
+ break;
+ }
+}
+
+// Determine Alarm status from control registers
+
+void Get_Alarm_Status() {
+ alarm1_status = control_reg & 0x01; // Read alarm1 INT enable bit A1IE
+ alarm2_status = (control_reg >> 1) & 0x01; // Read alarm2 INT enable bit A2IE
+}
+
+void display_Intro() {
+ // Give an intro message on the LCD
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("RTC/LCD with PIC");
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(" Circuit Digest");
+ __delay_ms(2000); //display for 1sec
+}
+
+void display_Lcd_Layout() {
+ // Setup time date display format
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("HH:mm:ss -PP.P");
+ Lcd_Write_Char(0xDF);
+ Lcd_Write_Char('C');
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String("ddd, DD/MM/YY ");
+ __delay_ms(2000);
+}
+
+void update_Display() {
+ // Display Hours
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_Char(hour_1);
+ Lcd_Write_Char(hour_0);
+
+ // Display minutes
+ Lcd_Set_Cursor(1, 4);
+ Lcd_Write_Char(min_1);
+ Lcd_Write_Char(min_0);
+
+ // Display seconds
+ Lcd_Set_Cursor(1, 7);
+ Lcd_Write_Char(sec_1);
+ Lcd_Write_Char(sec_0);
+
+ // Display day
+ Lcd_Set_Cursor(2, 6);
+ Lcd_Write_Char(day_1);
+ Lcd_Write_Char(day_0);
+
+ // Display month
+ Lcd_Set_Cursor(2, 9);
+ Lcd_Write_Char(month_1);
+ Lcd_Write_Char(month_0);
+
+ // Display year
+ Lcd_Set_Cursor(2, 12);
+ Lcd_Write_Char(year_1);
+ Lcd_Write_Char(year_0);
+
+ // Display day of week
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(weekday);
+
+ // Display temperature
+ Lcd_Set_Cursor(1, 10);
+ Lcd_Write_Char(temp_sign);
+ Lcd_Write_Char(temp_2);
+ Lcd_Write_Char(temp_1);
+ Lcd_Set_Cursor(1, 14);
+ Lcd_Write_Char(temp_0);
+
+ if (min == 00 && sec == 00) {
+ alarm(2);
+ }
+
+ if (min == 30 && sec == 00) {
+ alarm(1);
+ }
+} \ No newline at end of file
diff --git a/main.h b/main.h
new file mode 100755
index 0000000..5b5101f
--- /dev/null
+++ b/main.h
@@ -0,0 +1,56 @@
+// Initialize variables for date time and alarms
+unsigned int sec = 30;
+unsigned int min = 42;
+unsigned int hour = 21;
+unsigned int dayofweek = 7;
+unsigned int date = 27;
+unsigned int month = 7;
+unsigned int year = 19;
+unsigned int century = 20;
+unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+unsigned int alarm2_min, alarm2_hour;
+unsigned int status_reg, alarm1_status, alarm2_status;
+unsigned int control_reg;
+
+// Initialize variables for temperature
+unsigned int temperature_lsb = 0;
+int temperature_msb = 0;
+unsigned char temp_sign = ' ';
+
+// Initialize variable for week day
+char* weekday;
+
+// Initialize variable for detecting seconds change
+unsigned int sec_chg = 0;
+
+// Initialize variables for splitting decimal digits to characters
+unsigned char sec_0, sec_1;
+unsigned char min_0, min_1;
+unsigned char hour_0, hour_1;
+unsigned char day_0, day_1;
+unsigned char month_0, month_1;
+unsigned char year_0, year_1;
+unsigned char temp_0, temp_1, temp_2;
+unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+ alarm1_hour_0, alarm1_hour_1;
+unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+
+// Initialize a variable to use as a buffer for sprintf
+char buf[40];
+
+// Format unsigned int to unsigned chars
+void format_DateTimeChars(void);
+
+// Format msb and lsb for temperature display
+void format_Temperature(void);
+
+// Determine day of week with dayofweek from DS3231
+void getWeekDay(unsigned int);
+
+// Determine Alarm status from control registers
+void Get_Alarm_Status(void);
+
+void display_Intro(void);
+void display_Lcd_Layout(void);
+
+void update_Display(void); \ No newline at end of file
diff --git a/nbproject/Makefile-default.mk b/nbproject/Makefile-default.mk
new file mode 100755
index 0000000..cc9a2cd
--- /dev/null
+++ b/nbproject/Makefile-default.mk
@@ -0,0 +1,241 @@
+#
+# 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=dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+else
+IMAGE_TYPE=production
+OUTPUT_SUFFIX=hex
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+endif
+
+ifeq ($(COMPARE_BUILD), true)
+COMPARISON_BUILD=-mafrlcsj
+else
+COMPARISON_BUILD=
+endif
+
+ifdef SUB_IMAGE_ADDRESS
+
+else
+SUB_IMAGE_ADDRESS_COMMAND=
+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 lcd.c i2c.c ds3231.c uart.c beep.c
+
+# Object Files Quoted if spaced
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.p1 ${OBJECTDIR}/lcd.p1 ${OBJECTDIR}/i2c.p1 ${OBJECTDIR}/ds3231.p1 ${OBJECTDIR}/uart.p1 ${OBJECTDIR}/beep.p1
+POSSIBLE_DEPFILES=${OBJECTDIR}/main.p1.d ${OBJECTDIR}/lcd.p1.d ${OBJECTDIR}/i2c.p1.d ${OBJECTDIR}/ds3231.p1.d ${OBJECTDIR}/uart.p1.d ${OBJECTDIR}/beep.p1.d
+
+# Object Files
+OBJECTFILES=${OBJECTDIR}/main.p1 ${OBJECTDIR}/lcd.p1 ${OBJECTDIR}/i2c.p1 ${OBJECTDIR}/ds3231.p1 ${OBJECTDIR}/uart.p1 ${OBJECTDIR}/beep.p1
+
+# Source Files
+SOURCEFILES=main.c lcd.c i2c.c ds3231.c uart.c beep.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 dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+
+MP_PROCESSOR_OPTION=16F877A
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: compile
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/main.p1.d
+ @${RM} ${OBJECTDIR}/main.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/main.p1 main.c
+ @-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/lcd.p1: lcd.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/lcd.p1.d
+ @${RM} ${OBJECTDIR}/lcd.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/lcd.p1 lcd.c
+ @-${MV} ${OBJECTDIR}/lcd.d ${OBJECTDIR}/lcd.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/lcd.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/i2c.p1: i2c.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/i2c.p1.d
+ @${RM} ${OBJECTDIR}/i2c.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/i2c.p1 i2c.c
+ @-${MV} ${OBJECTDIR}/i2c.d ${OBJECTDIR}/i2c.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/i2c.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/ds3231.p1: ds3231.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/ds3231.p1.d
+ @${RM} ${OBJECTDIR}/ds3231.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/ds3231.p1 ds3231.c
+ @-${MV} ${OBJECTDIR}/ds3231.d ${OBJECTDIR}/ds3231.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/ds3231.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/uart.p1: uart.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/uart.p1.d
+ @${RM} ${OBJECTDIR}/uart.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/uart.p1 uart.c
+ @-${MV} ${OBJECTDIR}/uart.d ${OBJECTDIR}/uart.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/uart.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/beep.p1: beep.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/beep.p1.d
+ @${RM} ${OBJECTDIR}/beep.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/beep.p1 beep.c
+ @-${MV} ${OBJECTDIR}/beep.d ${OBJECTDIR}/beep.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/beep.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+else
+${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/main.p1.d
+ @${RM} ${OBJECTDIR}/main.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/main.p1 main.c
+ @-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/lcd.p1: lcd.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/lcd.p1.d
+ @${RM} ${OBJECTDIR}/lcd.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/lcd.p1 lcd.c
+ @-${MV} ${OBJECTDIR}/lcd.d ${OBJECTDIR}/lcd.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/lcd.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/i2c.p1: i2c.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/i2c.p1.d
+ @${RM} ${OBJECTDIR}/i2c.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/i2c.p1 i2c.c
+ @-${MV} ${OBJECTDIR}/i2c.d ${OBJECTDIR}/i2c.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/i2c.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/ds3231.p1: ds3231.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/ds3231.p1.d
+ @${RM} ${OBJECTDIR}/ds3231.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/ds3231.p1 ds3231.c
+ @-${MV} ${OBJECTDIR}/ds3231.d ${OBJECTDIR}/ds3231.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/ds3231.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/uart.p1: uart.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/uart.p1.d
+ @${RM} ${OBJECTDIR}/uart.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/uart.p1 uart.c
+ @-${MV} ${OBJECTDIR}/uart.d ${OBJECTDIR}/uart.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/uart.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/beep.p1: beep.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/beep.p1.d
+ @${RM} ${OBJECTDIR}/beep.p1
+ ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o ${OBJECTDIR}/beep.p1 beep.c
+ @-${MV} ${OBJECTDIR}/beep.d ${OBJECTDIR}/beep.p1.d
+ @${FIXDEPS} ${OBJECTDIR}/beep.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
+
+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)
+dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.map -D__DEBUG=1 -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -std=c99 -gdwarf-3 -mstack=compiled:auto:auto --rom=default,-1f00-1fff --ram=default,-0-0,-70-70,-80-80,-f0-f0,-100-100,-170-170,-180-180,-1e5-1f0 $(COMPARISON_BUILD) -Wl,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml -o dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}
+ @${RM} dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.hex
+
+else
+dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.map -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -std=c99 -gdwarf-3 -mstack=compiled:auto:auto $(COMPARISON_BUILD) -Wl,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml -o dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}
+
+endif
+
+
+# Subprojects
+.build-subprojects:
+
+
+# Subprojects
+.clean-subprojects:
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+ ${RM} -r build/default
+ ${RM} -r dist/default
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+DEPFILES=$(shell mplabwildcard ${POSSIBLE_DEPFILES})
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif
diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties
new file mode 100755
index 0000000..beb88f3
--- /dev/null
+++ b/nbproject/Makefile-genesis.properties
@@ -0,0 +1,9 @@
+#
+#Sat Jul 27 21:47:50 CDT 2019
+default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\bin
+configurations-xml=7e54e95499df9218fa4108d9f87f2bc4
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=fe6bc8387062251d924fb28d44703093
+default.languagetoolchain.version=2.05
+host.platform=windows
+conf.ids=default
+default.com-microchip-mplab-nbide-toolchainXC8-XC8LanguageToolchain.md5=efa527c24802a2aace7644337aca6c98
diff --git a/nbproject/Makefile-impl.mk b/nbproject/Makefile-impl.mk
new file mode 100755
index 0000000..380b878
--- /dev/null
+++ b/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=I2C_LCD.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/nbproject/Makefile-local-default.mk b/nbproject/Makefile-local-default.mk
new file mode 100755
index 0000000..2c19fe3
--- /dev/null
+++ b/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 (x86)/Microchip/MPLABX/v5.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
+# Adding MPLAB X bin directory to path.
+PATH:=C:/Program Files (x86)/Microchip/MPLABX/v5.15/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 (x86)\Microchip\MPLABX\v5.15\sys\java\jre1.8.0_181/bin/"
+OS_CURRENT="$(shell uname -s)"
+MP_CC="C:\Program Files (x86)\Microchip\xc8\v2.05\bin\xc8-cc.exe"
+# MP_CPPC is not defined
+# MP_BC is not defined
+MP_AS="C:\Program Files (x86)\Microchip\xc8\v2.05\bin\xc8-cc.exe"
+MP_LD="C:\Program Files (x86)\Microchip\xc8\v2.05\bin\xc8-cc.exe"
+MP_AR="C:\Program Files (x86)\Microchip\xc8\v2.05\bin\xc8-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files (x86)/Microchip/MPLABX/v5.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\Program Files (x86)\Microchip\xc8\v2.05\bin"
+# MP_CPPC_DIR is not defined
+# MP_BC_DIR is not defined
+MP_AS_DIR="C:\Program Files (x86)\Microchip\xc8\v2.05\bin"
+MP_LD_DIR="C:\Program Files (x86)\Microchip\xc8\v2.05\bin"
+MP_AR_DIR="C:\Program Files (x86)\Microchip\xc8\v2.05\bin"
+# MP_BC_DIR is not defined
diff --git a/nbproject/Makefile-variables.mk b/nbproject/Makefile-variables.mk
new file mode 100755
index 0000000..a99b3b3
--- /dev/null
+++ b/nbproject/Makefile-variables.mk
@@ -0,0 +1,13 @@
+#
+# Generated - do not edit!
+#
+# NOCDDL
+#
+CND_BASEDIR=`pwd`
+# default configuration
+CND_ARTIFACT_DIR_default=dist/default/production
+CND_ARTIFACT_NAME_default=I2C_LCD.X.production.hex
+CND_ARTIFACT_PATH_default=dist/default/production/I2C_LCD.X.production.hex
+CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package
+CND_PACKAGE_NAME_default=i2clcd.x.tar
+CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/i2clcd.x.tar
diff --git a/nbproject/Package-default.bash b/nbproject/Package-default.bash
new file mode 100755
index 0000000..d604fc2
--- /dev/null
+++ b/nbproject/Package-default.bash
@@ -0,0 +1,73 @@
+#!/bin/bash -x
+
+#
+# Generated - do not edit!
+#
+
+# Macros
+TOP=`pwd`
+CND_CONF=default
+CND_DISTDIR=dist
+TMPDIR=build/${CND_CONF}/${IMAGE_TYPE}/tmp-packaging
+TMPDIRNAME=tmp-packaging
+OUTPUT_PATH=dist/${CND_CONF}/${IMAGE_TYPE}/I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+OUTPUT_BASENAME=I2C_LCD.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+PACKAGE_TOP_DIR=i2clcd.x/
+
+# Functions
+function checkReturnCode
+{
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ exit $rc
+ fi
+}
+function makeDirectory
+# $1 directory path
+# $2 permission (optional)
+{
+ mkdir -p "$1"
+ checkReturnCode
+ if [ "$2" != "" ]
+ then
+ chmod $2 "$1"
+ checkReturnCode
+ fi
+}
+function copyFileToTmpDir
+# $1 from-file path
+# $2 to-file path
+# $3 permission
+{
+ cp "$1" "$2"
+ checkReturnCode
+ if [ "$3" != "" ]
+ then
+ chmod $3 "$2"
+ checkReturnCode
+ fi
+}
+
+# Setup
+cd "${TOP}"
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/package
+rm -rf ${TMPDIR}
+mkdir -p ${TMPDIR}
+
+# Copy files and create directories and links
+cd "${TOP}"
+makeDirectory ${TMPDIR}/i2clcd.x/bin
+copyFileToTmpDir "${OUTPUT_PATH}" "${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/package/i2clcd.x.tar
+cd ${TMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/i2clcd.x.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${TMPDIR}
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
new file mode 100755
index 0000000..74fde39
--- /dev/null
+++ b/nbproject/configurations.xml
@@ -0,0 +1,216 @@
+<?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">
+ <itemPath>lcd.h</itemPath>
+ <itemPath>i2c.h</itemPath>
+ <itemPath>conf.h</itemPath>
+ <itemPath>ds3231.h</itemPath>
+ <itemPath>uart.h</itemPath>
+ <itemPath>term.h</itemPath>
+ <itemPath>main.h</itemPath>
+ <itemPath>beep.h</itemPath>
+ </logicalFolder>
+ <logicalFolder name="LinkerScript"
+ displayName="Linker Files"
+ projectFiles="true">
+ </logicalFolder>
+ <logicalFolder name="SourceFiles"
+ displayName="Source Files"
+ projectFiles="true">
+ <itemPath>main.c</itemPath>
+ <itemPath>lcd.c</itemPath>
+ <itemPath>i2c.c</itemPath>
+ <itemPath>ds3231.c</itemPath>
+ <itemPath>uart.c</itemPath>
+ <itemPath>beep.c</itemPath>
+ </logicalFolder>
+ <logicalFolder name="ExternalFiles"
+ displayName="Important Files"
+ projectFiles="false">
+ <itemPath>Makefile</itemPath>
+ </logicalFolder>
+ </logicalFolder>
+ <projectmakefile>Makefile</projectmakefile>
+ <confs>
+ <conf name="default" type="2">
+ <toolsSet>
+ <developmentServer>localhost</developmentServer>
+ <targetDevice>PIC16F877A</targetDevice>
+ <targetHeader></targetHeader>
+ <targetPluginBoard></targetPluginBoard>
+ <platformTool>pk4hybrid</platformTool>
+ <languageToolchain>XC8</languageToolchain>
+ <languageToolchainVersion>2.05</languageToolchainVersion>
+ <platform>3</platform>
+ </toolsSet>
+ <packs>
+ <pack name="PIC16Fxxx_DFP" vendor="Microchip" version="1.0.9"/>
+ </packs>
+ <compileType>
+ <linkerTool>
+ <linkerLibItems>
+ </linkerLibItems>
+ </linkerTool>
+ <archiverTool>
+ </archiverTool>
+ <loading>
+ <useAlternateLoadableFile>false</useAlternateLoadableFile>
+ <parseOnProdLoad>false</parseOnProdLoad>
+ <alternateLoadableFile></alternateLoadableFile>
+ </loading>
+ <subordinates>
+ </subordinates>
+ </compileType>
+ <makeCustomizationType>
+ <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
+ <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="default-bitfield-type" value="true"/>
+ <property key="default-char-type" value="true"/>
+ <property key="define-macros" value=""/>
+ <property key="disable-optimizations" value="true"/>
+ <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="-O0"/>
+ <property key="optimization-speed" value="false"/>
+ <property key="optimization-stable-enable" value="false"/>
+ <property key="pack-struct" value="true"/>
+ <property key="preprocess-assembler" value="true"/>
+ <property key="short-enums" value="true"/>
+ <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-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="32"/>
+ <property key="data-model-size-of-double-gcc" value="no-short-double"/>
+ <property key="data-model-size-of-float" value="32"/>
+ <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="true"/>
+ <property key="remove-unused-sections" value="true"/>
+ </HI-TECH-LINK>
+ <XC8-config-global>
+ <property key="advanced-elf" value="true"/>
+ <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="omit-pack-options" value="false"/>
+ <property key="output-file-format" value="-mcof,+elf"/>
+ <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=""/>
+ </XC8-config-global>
+ <pk4hybrid>
+ <property key="AutoSelectMemRanges" value="auto"/>
+ <property key="Freeze Peripherals" value="true"/>
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
+ <property key="ToolFirmwareFilePath"
+ value="Press to browse for a specific firmware version"/>
+ <property key="ToolFirmwareOption.UpdateOptions"
+ value="ToolFirmwareOption.UseLatest"/>
+ <property key="communication.interface"
+ value="${communication.interface.default}"/>
+ <property key="communication.speed" value="${communication.speed.default}"/>
+ <property key="debugoptions.useswbreakpoints" value="false"/>
+ <property key="memories.aux" value="false"/>
+ <property key="memories.bootflash" value="true"/>
+ <property key="memories.configurationmemory" value="true"/>
+ <property key="memories.configurationmemory2" value="true"/>
+ <property key="memories.dataflash" value="true"/>
+ <property key="memories.eeprom" value="true"/>
+ <property key="memories.exclude.configurationmemory" value="true"/>
+ <property key="memories.flashdata" value="true"/>
+ <property key="memories.id" value="true"/>
+ <property key="memories.instruction.ram.ranges"
+ value="${memories.instruction.ram.ranges}"/>
+ <property key="memories.programmemory" value="true"/>
+ <property key="memories.programmemory.ranges" value="0-1fff"/>
+ <property key="poweroptions.powerenable" value="false"/>
+ <property key="programoptions.donoteraseauxmem" value="false"/>
+ <property key="programoptions.eraseb4program" value="true"/>
+ <property key="programoptions.ledbrightness" value="5"/>
+ <property key="programoptions.pgcconfig" value="pull down"/>
+ <property key="programoptions.pgcresistor.value" value="4.7"/>
+ <property key="programoptions.pgdconfig" value="pull down"/>
+ <property key="programoptions.pgdresistor.value" value="4.7"/>
+ <property key="programoptions.pgmentry.voltage" value="high"/>
+ <property key="programoptions.pgmspeed" value="Max"/>
+ <property key="programoptions.preservedataflash" value="false"/>
+ <property key="programoptions.preserveeeprom" value="false"/>
+ <property key="programoptions.preserveeeprom.ranges" value="0-ff"/>
+ <property key="programoptions.preserveprogram.ranges" value=""/>
+ <property key="programoptions.preserveprogramrange" value="false"/>
+ <property key="programoptions.preserveuserid" value="false"/>
+ <property key="programoptions.programcalmem" value="false"/>
+ <property key="programoptions.programuserotp" value="false"/>
+ <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>
+ <property key="voltagevalue" value="5.0"/>
+ </pk4hybrid>
+ </conf>
+ </confs>
+</configurationDescriptor>
diff --git a/nbproject/private/SuppressibleMessageMemo.properties b/nbproject/private/SuppressibleMessageMemo.properties
new file mode 100755
index 0000000..a367cae
--- /dev/null
+++ b/nbproject/private/SuppressibleMessageMemo.properties
@@ -0,0 +1,3 @@
+#
+#Wed Jul 17 11:50:11 CDT 2019
+PICkit\ 4/CHECK_4_HIGH_VOLTAGE_VPP=true
diff --git a/nbproject/private/configurations.xml b/nbproject/private/configurations.xml
new file mode 100755
index 0000000..0079996
--- /dev/null
+++ b/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>9012:=&lt;rev>0100:=&lt;man>Microchip Technology Incorporated:=&lt;prod>MPLAB PICkit 4:=&lt;sn>BUR184886762:=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN>
+ <languageToolchainDir>C:\Program Files (x86)\Microchip\xc8\v2.05\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/nbproject/private/private.xml b/nbproject/private/private.xml
new file mode 100755
index 0000000..94051fb
--- /dev/null
+++ b/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/kb0iic/MPLABXProjects/I2C_LCD.X/main.h</file>
+ <file>file:/C:/Users/kb0iic/MPLABXProjects/I2C_LCD.X/beep.c</file>
+ <file>file:/C:/Users/kb0iic/MPLABXProjects/I2C_LCD.X/main.c</file>
+ <file>file:/C:/Users/kb0iic/MPLABXProjects/I2C_LCD.X/beep.h</file>
+ </group>
+ </open-files>
+</project-private>
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100755
index 0000000..47694c0
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,27 @@
+<?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>I2C_LCD</name>
+ <creation-uuid>2b2c8b5b-4b83-449c-8c6d-23903cadb94c</creation-uuid>
+ <make-project-type>0</make-project-type>
+ <c-extensions>c</c-extensions>
+ <cpp-extensions/>
+ <header-extensions>h</header-extensions>
+ <asminc-extensions/>
+ <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/term.h b/term.h
new file mode 100755
index 0000000..37906d4
--- /dev/null
+++ b/term.h
@@ -0,0 +1,26 @@
+// Clear screen and move cursor to home position
+#define CLS "\033[2J"
+
+// Set cursor at y, x (line, column)
+#define CURSOR(y, x) "\033["#y";"#x"f"
+
+//Colors
+#define BLACK "\033[0;30m"
+#define BLUE "\033[0;34m"
+#define GREEN "\033[0;32m"
+#define CYAN "\033[0;36m"
+#define RED "\033[0;31m"
+#define PURPLE "\033[0;35m"
+#define BROWN "\033[0;33m"
+#define LT_GRAY "\033[0;37m"
+#define DK_GRAY "\033[1;30m"
+#define LT_BLUE "\033[1;34m"
+#define LT_GREEN "\033[1;32m"
+#define LT_CYAN "\033[1;36m"
+#define LT_RED "\033[1;31m"
+#define LT_PURPLE "\033[1;35m"
+#define YELLOW "\033[1;33m"
+#define WHITE "\033[1;37m"
+
+//Attributes
+#define CLRATTR "\033[0m" \ No newline at end of file
diff --git a/uart.c b/uart.c
new file mode 100755
index 0000000..5670530
--- /dev/null
+++ b/uart.c
@@ -0,0 +1,70 @@
+//***Initializing UART module for PIC16F887***//
+
+#include "uart.h"
+#include "conf.h"
+
+void Initialize_UART(void) {
+ //****Setting I/O pins for UART****//
+ TRISC6 = 0; // TX Pin set as output
+ TRISC7 = 1; // RX Pin set as input
+ //________I/O pins set __________//
+
+ /**Initialize SPBRG register for required
+ baud rate and set BRGH for fast baud_rate**/
+ SPBRG = ((_XTAL_FREQ / 16) / Baud_rate) - 1;
+ BRGH = 1; // for high baud_rate
+ //_________End of baud_rate setting_________//
+
+ //****Enable Asynchronous serial port*******//
+ SYNC = 0; // Asynchronous
+ SPEN = 1; // Enable serial port pins
+ //_____Asynchronous serial port enabled_______//
+
+ //**Lets prepare for transmission & reception**//
+ TXEN = 1; // enable transmission
+ CREN = 1; // enable reception
+ //__UART module up and ready for transmission and reception__//
+
+ //**Select 8-bit mode**//
+ TX9 = 0; // 8-bit reception selected
+ RX9 = 0; // 8-bit reception mode selected
+ //__8-bit mode selected__//
+}
+//________UART module Initialized__________//
+
+
+
+//**Function to send one byte of date to UART**//
+
+void UART_send_char(char bt) {
+ while (!TXIF); // hold the program till TX buffer is free
+ TXREG = bt; //Load the transmitter buffer with the received value
+}
+//_____________End of function________________//
+
+
+
+//**Function to get one byte of date from UART**//
+
+char UART_get_char() {
+ if (OERR) // check for Error
+ {
+ CREN = 0; //If error -> Reset
+ CREN = 1; //If error -> Reset
+ }
+
+ while (!RCIF); // hold the program till RX buffer is free
+
+ return RCREG; //receive the value and send it to main function
+}
+//_____________End of function________________//
+
+
+
+//**Function to convert string to byte**//
+
+void UART_send_string(char* st_pt) {
+ while (*st_pt) //if there is a char
+ UART_send_char(*st_pt++); //process it as a byte data
+}
+//___________End of function______________// \ No newline at end of file
diff --git a/uart.h b/uart.h
new file mode 100755
index 0000000..800971c
--- /dev/null
+++ b/uart.h
@@ -0,0 +1,4 @@
+void Initialize_UART(void);
+void UART_send_char(char);
+char UART_get_char();
+void UART_send_string(char *); \ No newline at end of file