Microchip MPLAB XC8 Assembler V2.05 build -831301201 Tue Aug 13 21:28:15 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 idataBANK3,global,class=CODE,delta=2 7 psect strings,global,class=STRING,delta=2 8 psect cinit,global,class=CODE,merge=1,delta=2 9 psect bssCOMMON,global,class=COMMON,space=1,delta=1 10 psect bssBANK0,global,class=BANK0,space=1,delta=1 11 psect dataBANK0,global,class=BANK0,space=1,delta=1 12 psect bssBANK1,global,class=BANK1,space=1,delta=1 13 psect dataBANK1,global,class=BANK1,space=1,delta=1 14 psect dataBANK3,global,class=BANK3,space=1,delta=1 15 psect inittext,global,class=CODE,delta=2 16 psect clrtext,global,class=CODE,delta=2 17 psect cstackBANK1,global,class=BANK1,space=1,delta=1 18 psect cstackCOMMON,global,class=COMMON,space=1,delta=1 19 psect cstackBANK0,global,class=BANK0,space=1,delta=1 20 psect maintext,global,class=CODE,split=1,delta=2 21 psect text1,local,class=CODE,merge=1,delta=2 22 psect text2,local,class=CODE,merge=1,delta=2 23 psect text3,local,class=CODE,merge=1,delta=2 24 psect text4,local,class=CODE,merge=1,delta=2 25 psect text5,local,class=CODE,merge=1,delta=2 26 psect text6,local,class=CODE,merge=1,delta=2 27 psect text7,local,class=CODE,merge=1,delta=2 28 psect text8,local,class=CODE,merge=1,delta=2 29 psect text9,local,class=CODE,merge=1,delta=2 30 psect text10,local,class=CODE,merge=1,delta=2,group=1 31 psect text11,local,class=CODE,merge=1,delta=2,group=1 32 psect text12,local,class=CODE,merge=1,delta=2 33 psect text13,local,class=CODE,merge=1,delta=2 34 psect text14,local,class=CODE,merge=1,delta=2 35 psect text15,local,class=CODE,merge=1,delta=2 36 psect text16,local,class=CODE,merge=1,delta=2,group=1 37 psect text17,local,class=CODE,merge=1,delta=2,group=1 38 psect text18,local,class=CODE,merge=1,delta=2 39 psect text19,local,class=CODE,merge=1,delta=2 40 psect text20,local,class=CODE,merge=1,delta=2 41 psect text21,local,class=CODE,merge=1,delta=2 42 psect text22,local,class=CODE,merge=1,delta=2 43 psect text23,local,class=CODE,merge=1,delta=2 44 psect text24,local,class=CODE,merge=1,delta=2 45 psect text25,local,class=CODE,merge=1,delta=2 46 psect text26,local,class=CODE,merge=1,delta=2 47 psect text27,local,class=CODE,merge=1,delta=2 48 psect text28,local,class=CODE,merge=1,delta=2 49 psect text29,local,class=CODE,merge=1,delta=2 50 psect text30,local,class=CODE,merge=1,delta=2 51 psect text31,local,class=CODE,merge=1,delta=2 52 psect text32,local,class=CODE,merge=1,delta=2 53 psect text33,local,class=CODE,merge=1,delta=2,group=1 54 psect text34,local,class=CODE,merge=1,delta=2 55 psect text35,local,class=CODE,merge=1,delta=2 56 psect text36,local,class=CODE,merge=1,delta=2 57 psect text37,local,class=CODE,merge=1,delta=2 58 psect text38,local,class=CODE,merge=1,delta=2 59 psect text39,local,class=CODE,merge=1,delta=2 60 psect text40,local,class=CODE,merge=1,delta=2 61 psect text41,local,class=CODE,merge=1,delta=2 62 psect text42,local,class=CODE,merge=1,delta=2 63 psect text43,local,class=CODE,merge=1,delta=2 64 psect intentry,global,class=CODE,delta=2 65 dabs 1,0x7E,2 66 0000 67 ; Version 2.05 68 ; Generated 20/12/2018 GMT 69 ; 70 ; Copyright © 2018, Microchip Technology Inc. and its subsidiaries ("Microchip") 71 ; All rights reserved. 72 ; 73 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch + ip"). 74 ; 75 ; Redistribution and use in source and binary forms, with or without modification, are 76 ; permitted provided that the following conditions are met: 77 ; 78 ; 1. Redistributions of source code must retain the above copyright notice, this lis + t of 79 ; conditions and the following disclaimer. 80 ; 81 ; 2. Redistributions in binary form must reproduce the above copyright notice, this + list 82 ; of conditions and the following disclaimer in the documentation and/or other 83 ; materials provided with the distribution. 84 ; 85 ; 3. Microchip's name may not be used to endorse or promote products derived from th + is 86 ; software without specific prior written permission. 87 ; 88 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 89 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F + OR 90 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC + T, 91 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO 92 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS 93 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST + RICT 94 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U + SE OF 95 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 96 ; 97 ; 98 ; Code-generator required, PIC16F877A Definitions 99 ; 100 ; SFR Addresses 101 0000 ;# 102 0001 ;# 103 0002 ;# 104 0003 ;# 105 0004 ;# 106 0005 ;# 107 0006 ;# 108 0007 ;# 109 0008 ;# 110 0009 ;# 111 000A ;# 112 000B ;# 113 000C ;# 114 000D ;# 115 000E ;# 116 000E ;# 117 000F ;# 118 0010 ;# 119 0011 ;# 120 0012 ;# 121 0013 ;# 122 0014 ;# 123 0015 ;# 124 0015 ;# 125 0016 ;# 126 0017 ;# 127 0018 ;# 128 0019 ;# 129 001A ;# 130 001B ;# 131 001B ;# 132 001C ;# 133 001D ;# 134 001E ;# 135 001F ;# 136 0081 ;# 137 0085 ;# 138 0086 ;# 139 0087 ;# 140 0088 ;# 141 0089 ;# 142 008C ;# 143 008D ;# 144 008E ;# 145 0091 ;# 146 0092 ;# 147 0093 ;# 148 0094 ;# 149 0098 ;# 150 0099 ;# 151 009C ;# 152 009D ;# 153 009E ;# 154 009F ;# 155 010C ;# 156 010D ;# 157 010E ;# 158 010F ;# 159 018C ;# 160 018D ;# 161 0000 ;# 162 0001 ;# 163 0002 ;# 164 0003 ;# 165 0004 ;# 166 0005 ;# 167 0006 ;# 168 0007 ;# 169 0008 ;# 170 0009 ;# 171 000A ;# 172 000B ;# 173 000C ;# 174 000D ;# 175 000E ;# 176 000E ;# 177 000F ;# 178 0010 ;# 179 0011 ;# 180 0012 ;# 181 0013 ;# 182 0014 ;# 183 0015 ;# 184 0015 ;# 185 0016 ;# 186 0017 ;# 187 0018 ;# 188 0019 ;# 189 001A ;# 190 001B ;# 191 001B ;# 192 001C ;# 193 001D ;# 194 001E ;# 195 001F ;# 196 0081 ;# 197 0085 ;# 198 0086 ;# 199 0087 ;# 200 0088 ;# 201 0089 ;# 202 008C ;# 203 008D ;# 204 008E ;# 205 0091 ;# 206 0092 ;# 207 0093 ;# 208 0094 ;# 209 0098 ;# 210 0099 ;# 211 009C ;# 212 009D ;# 213 009E ;# 214 009F ;# 215 010C ;# 216 010D ;# 217 010E ;# 218 010F ;# 219 018C ;# 220 018D ;# 221 0000 ;# 222 0001 ;# 223 0002 ;# 224 0003 ;# 225 0004 ;# 226 0005 ;# 227 0006 ;# 228 0007 ;# 229 0008 ;# 230 0009 ;# 231 000A ;# 232 000B ;# 233 000C ;# 234 000D ;# 235 000E ;# 236 000E ;# 237 000F ;# 238 0010 ;# 239 0011 ;# 240 0012 ;# 241 0013 ;# 242 0014 ;# 243 0015 ;# 244 0015 ;# 245 0016 ;# 246 0017 ;# 247 0018 ;# 248 0019 ;# 249 001A ;# 250 001B ;# 251 001B ;# 252 001C ;# 253 001D ;# 254 001E ;# 255 001F ;# 256 0081 ;# 257 0085 ;# 258 0086 ;# 259 0087 ;# 260 0088 ;# 261 0089 ;# 262 008C ;# 263 008D ;# 264 008E ;# 265 0091 ;# 266 0092 ;# 267 0093 ;# 268 0094 ;# 269 0098 ;# 270 0099 ;# 271 009C ;# 272 009D ;# 273 009E ;# 274 009F ;# 275 010C ;# 276 010D ;# 277 010E ;# 278 010F ;# 279 018C ;# 280 018D ;# 281 0000 ;# 282 0001 ;# 283 0002 ;# 284 0003 ;# 285 0004 ;# 286 0005 ;# 287 0006 ;# 288 0007 ;# 289 0008 ;# 290 0009 ;# 291 000A ;# 292 000B ;# 293 000C ;# 294 000D ;# 295 000E ;# 296 000E ;# 297 000F ;# 298 0010 ;# 299 0011 ;# 300 0012 ;# 301 0013 ;# 302 0014 ;# 303 0015 ;# 304 0015 ;# 305 0016 ;# 306 0017 ;# 307 0018 ;# 308 0019 ;# 309 001A ;# 310 001B ;# 311 001B ;# 312 001C ;# 313 001D ;# 314 001E ;# 315 001F ;# 316 0081 ;# 317 0085 ;# 318 0086 ;# 319 0087 ;# 320 0088 ;# 321 0089 ;# 322 008C ;# 323 008D ;# 324 008E ;# 325 0091 ;# 326 0092 ;# 327 0093 ;# 328 0094 ;# 329 0098 ;# 330 0099 ;# 331 009C ;# 332 009D ;# 333 009E ;# 334 009F ;# 335 010C ;# 336 010D ;# 337 010E ;# 338 010F ;# 339 018C ;# 340 018D ;# 341 0000 ;# 342 0001 ;# 343 0002 ;# 344 0003 ;# 345 0004 ;# 346 0005 ;# 347 0006 ;# 348 0007 ;# 349 0008 ;# 350 0009 ;# 351 000A ;# 352 000B ;# 353 000C ;# 354 000D ;# 355 000E ;# 356 000E ;# 357 000F ;# 358 0010 ;# 359 0011 ;# 360 0012 ;# 361 0013 ;# 362 0014 ;# 363 0015 ;# 364 0015 ;# 365 0016 ;# 366 0017 ;# 367 0018 ;# 368 0019 ;# 369 001A ;# 370 001B ;# 371 001B ;# 372 001C ;# 373 001D ;# 374 001E ;# 375 001F ;# 376 0081 ;# 377 0085 ;# 378 0086 ;# 379 0087 ;# 380 0088 ;# 381 0089 ;# 382 008C ;# 383 008D ;# 384 008E ;# 385 0091 ;# 386 0092 ;# 387 0093 ;# 388 0094 ;# 389 0098 ;# 390 0099 ;# 391 009C ;# 392 009D ;# 393 009E ;# 394 009F ;# 395 010C ;# 396 010D ;# 397 010E ;# 398 010F ;# 399 018C ;# 400 018D ;# 401 0000 ;# 402 0001 ;# 403 0002 ;# 404 0003 ;# 405 0004 ;# 406 0005 ;# 407 0006 ;# 408 0007 ;# 409 0008 ;# 410 0009 ;# 411 000A ;# 412 000B ;# 413 000C ;# 414 000D ;# 415 000E ;# 416 000E ;# 417 000F ;# 418 0010 ;# 419 0011 ;# 420 0012 ;# 421 0013 ;# 422 0014 ;# 423 0015 ;# 424 0015 ;# 425 0016 ;# 426 0017 ;# 427 0018 ;# 428 0019 ;# 429 001A ;# 430 001B ;# 431 001B ;# 432 001C ;# 433 001D ;# 434 001E ;# 435 001F ;# 436 0081 ;# 437 0085 ;# 438 0086 ;# 439 0087 ;# 440 0088 ;# 441 0089 ;# 442 008C ;# 443 008D ;# 444 008E ;# 445 0091 ;# 446 0092 ;# 447 0093 ;# 448 0094 ;# 449 0098 ;# 450 0099 ;# 451 009C ;# 452 009D ;# 453 009E ;# 454 009F ;# 455 010C ;# 456 010D ;# 457 010E ;# 458 010F ;# 459 018C ;# 460 018D ;# 461 0000 ;# 462 0001 ;# 463 0002 ;# 464 0003 ;# 465 0004 ;# 466 0005 ;# 467 0006 ;# 468 0007 ;# 469 0008 ;# 470 0009 ;# 471 000A ;# 472 000B ;# 473 000C ;# 474 000D ;# 475 000E ;# 476 000E ;# 477 000F ;# 478 0010 ;# 479 0011 ;# 480 0012 ;# 481 0013 ;# 482 0014 ;# 483 0015 ;# 484 0015 ;# 485 0016 ;# 486 0017 ;# 487 0018 ;# 488 0019 ;# 489 001A ;# 490 001B ;# 491 001B ;# 492 001C ;# 493 001D ;# 494 001E ;# 495 001F ;# 496 0081 ;# 497 0085 ;# 498 0086 ;# 499 0087 ;# 500 0088 ;# 501 0089 ;# 502 008C ;# 503 008D ;# 504 008E ;# 505 0091 ;# 506 0092 ;# 507 0093 ;# 508 0094 ;# 509 0098 ;# 510 0099 ;# 511 009C ;# 512 009D ;# 513 009E ;# 514 009F ;# 515 010C ;# 516 010D ;# 517 010E ;# 518 010F ;# 519 018C ;# 520 018D ;# 521 0000 ;# 522 0001 ;# 523 0002 ;# 524 0003 ;# 525 0004 ;# 526 0005 ;# 527 0006 ;# 528 0007 ;# 529 0008 ;# 530 0009 ;# 531 000A ;# 532 000B ;# 533 000C ;# 534 000D ;# 535 000E ;# 536 000E ;# 537 000F ;# 538 0010 ;# 539 0011 ;# 540 0012 ;# 541 0013 ;# 542 0014 ;# 543 0015 ;# 544 0015 ;# 545 0016 ;# 546 0017 ;# 547 0018 ;# 548 0019 ;# 549 001A ;# 550 001B ;# 551 001B ;# 552 001C ;# 553 001D ;# 554 001E ;# 555 001F ;# 556 0081 ;# 557 0085 ;# 558 0086 ;# 559 0087 ;# 560 0088 ;# 561 0089 ;# 562 008C ;# 563 008D ;# 564 008E ;# 565 0091 ;# 566 0092 ;# 567 0093 ;# 568 0094 ;# 569 0098 ;# 570 0099 ;# 571 009C ;# 572 009D ;# 573 009E ;# 574 009F ;# 575 010C ;# 576 010D ;# 577 010E ;# 578 010F ;# 579 018C ;# 580 018D ;# 581 582 psect idataBANK0 583 1741 __pidataBANK0: 584 585 ;initializer for _month 586 1741 3401 retlw 1 587 1742 3400 retlw 0 588 589 ;initializer for _date 590 1743 3401 retlw 1 591 1744 3400 retlw 0 592 593 ;initializer for _temp_sign 594 1745 3420 retlw 32 595 596 psect idataBANK1 597 087D __pidataBANK1: 598 599 ;initializer for _century 600 087D 3414 retlw 20 601 087E 3400 retlw 0 602 603 ;initializer for _day 604 087F 3401 retlw 1 605 0880 3400 retlw 0 606 607 ;initializer for _dayOfWeek 608 0881 3453 retlw 83 609 0882 3475 retlw 117 610 0883 346E retlw 110 611 0884 3400 retlw 0 612 0885 344D retlw 77 613 0886 346F retlw 111 614 0887 346E retlw 110 615 0888 3400 retlw 0 616 0889 3454 retlw 84 617 088A 3475 retlw 117 618 088B 3465 retlw 101 619 088C 3400 retlw 0 620 088D 3457 retlw 87 621 088E 3465 retlw 101 622 088F 3464 retlw 100 623 0890 3400 retlw 0 624 0891 3454 retlw 84 625 0892 3468 retlw 104 626 0893 3475 retlw 117 627 0894 3400 retlw 0 628 0895 3446 retlw 70 629 0896 3472 retlw 114 630 0897 3469 retlw 105 631 0898 3400 retlw 0 632 0899 3453 retlw 83 633 089A 3461 retlw 97 634 089B 3474 retlw 116 635 089C 3400 retlw 0 636 637 psect idataBANK3 638 09B6 __pidataBANK3: 639 640 ;initializer for _monthOfYear 641 09B6 344A retlw 74 642 09B7 3461 retlw 97 643 09B8 346E retlw 110 644 09B9 3400 retlw 0 645 09BA 3446 retlw 70 646 09BB 3465 retlw 101 647 09BC 3462 retlw 98 648 09BD 3400 retlw 0 649 09BE 344D retlw 77 650 09BF 3461 retlw 97 651 09C0 3472 retlw 114 652 09C1 3400 retlw 0 653 09C2 3441 retlw 65 654 09C3 3470 retlw 112 655 09C4 3472 retlw 114 656 09C5 3400 retlw 0 657 09C6 344D retlw 77 658 09C7 3461 retlw 97 659 09C8 3479 retlw 121 660 09C9 3400 retlw 0 661 09CA 344A retlw 74 662 09CB 3475 retlw 117 663 09CC 346E retlw 110 664 09CD 3400 retlw 0 665 09CE 344A retlw 74 666 09CF 3475 retlw 117 667 09D0 346C retlw 108 668 09D1 3400 retlw 0 669 09D2 3441 retlw 65 670 09D3 3475 retlw 117 671 09D4 3467 retlw 103 672 09D5 3400 retlw 0 673 09D6 3453 retlw 83 674 09D7 3465 retlw 101 675 09D8 3470 retlw 112 676 09D9 3400 retlw 0 677 09DA 344F retlw 79 678 09DB 3463 retlw 99 679 09DC 3474 retlw 116 680 09DD 3400 retlw 0 681 09DE 344E retlw 78 682 09DF 346F retlw 111 683 09E0 3476 retlw 118 684 09E1 3400 retlw 0 685 09E2 3444 retlw 68 686 09E3 3465 retlw 101 687 09E4 3463 retlw 99 688 09E5 3400 retlw 0 689 001E _ADRESH set 30 690 001F _ADCON0bits set 31 691 001F _ADCON0 set 31 692 001A _RCREG set 26 693 0019 _TXREG set 25 694 0013 _SSPBUF set 19 695 0014 _SSPCON set 20 696 0008 _PORTD set 8 697 0007 _PORTC set 7 698 00FF _ADCS1 set 255 699 00FE _ADCS0 set 254 700 0041 _RD1 set 65 701 0065 _RCIF set 101 702 00C1 _OERR set 193 703 0064 _TXIF set 100 704 00C6 _RX9 set 198 705 00C4 _CREN set 196 706 00C7 _SPEN set 199 707 00A4 _CKP set 164 708 0043 _RD3 set 67 709 0042 _RD2 set 66 710 0047 _RD7 set 71 711 0046 _RD6 set 70 712 0045 _RD5 set 69 713 0044 _RD4 set 68 714 0059 _INTF set 89 715 0034 _RB4 set 52 716 0035 _RB5 set 53 717 0032 _RB2 set 50 718 005C _INTE set 92 719 005F _GIE set 95 720 009E _ADRESL set 158 721 0099 _SPBRG set 153 722 0094 _SSPSTAT set 148 723 0093 _SSPADD set 147 724 0091 _SSPCON2 set 145 725 0088 _TRISD set 136 726 0087 _TRISC set 135 727 0081 _OPTION_REGbits set 129 728 0086 _TRISBbits set 134 729 04FA _PCFG2 set 1274 730 04F9 _PCFG1 set 1273 731 04F8 _PCFG0 set 1272 732 04FF _ADFM set 1279 733 04C6 _TX9 set 1222 734 04C5 _TXEN set 1221 735 04C4 _SYNC set 1220 736 04C2 _BRGH set 1218 737 043F _TRISC7 set 1087 738 043E _TRISC6 set 1086 739 048C _ACKEN set 1164 740 048D _ACKDT set 1165 741 048B _RCEN set 1163 742 048A _PEN set 1162 743 0489 _RSEN set 1161 744 0488 _SEN set 1160 745 04A7 _SMP set 1191 746 043C _TRISC4 set 1084 747 043B _TRISC3 set 1083 748 0428 _TRISA0 set 1064 749 750 psect strings 751 0800 __pstrings: 752 0800 stringtab: 753 0800 __stringtab: 754 755 ; String table - string pointers are 1 byte each 756 0800 1BFF btfsc btemp+1,7 757 0801 280A ljmp stringcode 758 0802 1383 bcf 3,7 759 0803 187F btfsc btemp+1,0 760 0804 1783 bsf 3,7 761 0805 0800 movf 0,w 762 0806 0A84 incf 4,f 763 0807 1903 skipnz 764 0808 0AFF incf btemp+1,f 765 0809 0008 return 766 080A stringcode: 767 080A stringdir: 768 080A 3008 movlw high stringdir 769 080B 008A movwf 10 770 080C 0804 movf 4,w 771 080D 0A84 incf 4,f 772 080E 0782 addwf 2,f 773 080F __stringbase: 774 080F 3400 retlw 0 775 0810 __end_of__stringtab: 776 0810 STR_4: 777 0810 3420 retlw 32 ;' ' 778 0811 3464 retlw 100 ;'d' 779 0812 3464 retlw 100 ;'d' 780 0813 3464 retlw 100 ;'d' 781 0814 3420 retlw 32 ;' ' 782 0815 3444 retlw 68 ;'D' 783 0816 3444 retlw 68 ;'D' 784 0817 342F retlw 47 ;'/' 785 0818 344D retlw 77 ;'M' 786 0819 344D retlw 77 ;'M' 787 081A 342F retlw 47 ;'/' 788 081B 3443 retlw 67 ;'C' 789 081C 3443 retlw 67 ;'C' 790 081D 3459 retlw 89 ;'Y' 791 081E 3459 retlw 89 ;'Y' 792 081F 3420 retlw 32 ;' ' 793 0820 3400 retlw 0 794 0821 STR_3: 795 0821 3448 retlw 72 ;'H' 796 0822 3448 retlw 72 ;'H' 797 0823 343A retlw 58 ;':' 798 0824 346D retlw 109 ;'m' 799 0825 346D retlw 109 ;'m' 800 0826 343A retlw 58 ;':' 801 0827 3473 retlw 115 ;'s' 802 0828 3473 retlw 115 ;'s' 803 0829 3420 retlw 32 ;' ' 804 082A 342D retlw 45 ;'-' 805 082B 3450 retlw 80 ;'P' 806 082C 3450 retlw 80 ;'P' 807 082D 342E retlw 46 ;'.' 808 082E 3450 retlw 80 ;'P' 809 082F 3400 retlw 0 810 0830 STR_1: 811 0830 3444 retlw 68 ;'D' 812 0831 3465 retlw 101 ;'e' 813 0832 3473 retlw 115 ;'s' 814 0833 346B retlw 107 ;'k' 815 0834 3420 retlw 32 ;' ' 816 0835 3443 retlw 67 ;'C' 817 0836 346C retlw 108 ;'l' 818 0837 346F retlw 111 ;'o' 819 0838 3463 retlw 99 ;'c' 820 0839 346B retlw 107 ;'k' 821 083A 3400 retlw 0 822 083B STR_2: 823 083B 3456 retlw 86 ;'V' 824 083C 3431 retlw 49 ;'1' 825 083D 3400 retlw 0 826 081F 827 ; #config settings 828 0000 829 psect cinit 830 000F start_initialization: 831 000F __initialization: 832 833 ; Initialize objects allocated to BANK3 834 000F 1783 bsf 3,7 ;select IRP bank2 835 0010 30C0 movlw low (__pdataBANK3+48) 836 0011 00FD movwf btemp+-1 837 0012 3009 movlw high __pidataBANK3 838 0013 00FE movwf btemp 839 0014 30B6 movlw low __pidataBANK3 840 0015 00FF movwf btemp+1 841 0016 3090 movlw low __pdataBANK3 842 0017 0084 movwf 4 843 0018 160A 118A 27AD 120A 118A fcall init_ram0 844 845 ; Initialize objects allocated to BANK1 846 001D 1383 bcf 3,7 ;select IRP bank0 847 001E 30C0 movlw low (__pdataBANK1+32) 848 001F 00FD movwf btemp+-1 849 0020 3008 movlw high __pidataBANK1 850 0021 00FE movwf btemp 851 0022 307D movlw low __pidataBANK1 852 0023 00FF movwf btemp+1 853 0024 30A0 movlw low __pdataBANK1 854 0025 0084 movwf 4 855 0026 160A 118A 27AD 120A 118A fcall init_ram0 856 857 ; Initialize objects allocated to BANK0 858 002B 306E movlw low (__pdataBANK0+5) 859 002C 00FD movwf btemp+-1 860 002D 3017 movlw high __pidataBANK0 861 002E 00FE movwf btemp 862 002F 3041 movlw low __pidataBANK0 863 0030 00FF movwf btemp+1 864 0031 3069 movlw low __pdataBANK0 865 0032 0084 movwf 4 866 0033 160A 118A 27AD 120A 118A fcall init_ram0 867 868 ; Clear objects allocated to BANK1 869 0038 30C0 movlw low __pbssBANK1 870 0039 0084 movwf 4 871 003A 30D2 movlw low (__pbssBANK1+18) 872 003B 160A 118A 2763 120A 118A fcall clear_ram0 873 874 ; Clear objects allocated to BANK0 875 0040 3057 movlw low __pbssBANK0 876 0041 0084 movwf 4 877 0042 3069 movlw low (__pbssBANK0+18) 878 0043 160A 118A 2763 fcall clear_ram0 879 880 ; Clear objects allocated to COMMON 881 0046 01FA clrf __pbssCOMMON& (0+127) 882 0047 01FB clrf (__pbssCOMMON+1)& (0+127) 883 0048 end_of_initialization: 884 ;End of C runtime variable initialization code 885 886 0048 __end_of__initialization: 887 0048 0183 clrf 3 888 0049 120A 118A 2DA0 ljmp _main ;jump to C main() function 889 890 psect bssCOMMON 891 007A __pbssCOMMON: 892 007A _ldr: 893 007A ds 2 894 895 psect bssBANK0 896 0057 __pbssBANK0: 897 0057 _temperature_msb: 898 0057 ds 2 899 0059 _temperature_lsb: 900 0059 ds 2 901 005B _control_reg: 902 005B ds 2 903 005D _year: 904 005D ds 2 905 005F _hour: 906 005F ds 2 907 0061 _min: 908 0061 ds 2 909 0063 _sec: 910 0063 ds 2 911 0065 _edit_datetime: 912 0065 ds 2 913 0067 _brtlvl_chg: 914 0067 ds 2 915 916 psect dataBANK0 917 0069 __pdataBANK0: 918 0069 _month: 919 0069 ds 2 920 006B _date: 921 006B ds 2 922 006D _temp_sign: 923 006D ds 1 924 925 psect bssBANK1 926 00C0 __pbssBANK1: 927 00C0 _alarm2_status: 928 00C0 ds 2 929 00C2 _alarm1_status: 930 00C2 ds 2 931 00C4 _status_reg: 932 00C4 ds 2 933 00C6 _alarm2_hour: 934 00C6 ds 2 935 00C8 _alarm2_min: 936 00C8 ds 2 937 00CA _alarm1_hour: 938 00CA ds 2 939 00CC _alarm1_min: 940 00CC ds 2 941 00CE _alarm1_sec: 942 00CE ds 2 943 00D0 _update: 944 00D0 ds 2 945 946 psect dataBANK1 947 00A0 __pdataBANK1: 948 00A0 _century: 949 00A0 ds 2 950 00A2 _day: 951 00A2 ds 2 952 00A4 _dayOfWeek: 953 00A4 ds 28 954 955 psect dataBANK3 956 0190 __pdataBANK3: 957 0190 _monthOfYear: 958 0190 ds 48 959 960 psect inittext 961 17A9 init_fetch0: 962 ; Called with low address in FSR and high address in W 963 964 17A9 087E movf 126,w 965 17AA 008A movwf 10 966 17AB 087F movf 127,w 967 17AC 0082 movwf 2 968 17AD init_ram0: 969 ;Called with: 970 ; high address of idata address in btemp 971 ; low address of idata address in btemp+1 972 ; low address of data in FSR 973 ; high address + 1 of data in btemp-1 974 975 17AD 27A9 160A 118A fcall init_fetch0 976 17B0 0080 movwf 0 977 17B1 0A84 incf 4,f 978 17B2 0804 movf 4,w 979 17B3 067D xorwf 125,w 980 17B4 1903 btfsc 3,2 981 17B5 3400 retlw 0 982 17B6 0AFF incf 127,f 983 17B7 1903 btfsc 3,2 984 17B8 0AFE incf 126,f 985 17B9 2FAD goto init_ram0 986 987 psect clrtext 988 1763 clear_ram0: 989 ; Called with FSR containing the base address, and 990 ; W with the last address+1 991 992 1763 0064 clrwdt ;clear the watchdog before getting into this loop 993 1764 clrloop0: 994 1764 0180 clrf 0 ;clear RAM location pointed to by FSR 995 1765 0A84 incf 4,f ;increment pointer 996 1766 0604 xorwf 4,w ;XOR with final address 997 1767 1903 btfsc 3,2 ;have we reached the end yet? 998 1768 3400 retlw 0 ;all done for this memory range, return 999 1769 0604 xorwf 4,w ;XOR again to restore value 1000 176A 2F64 goto clrloop0 ;do the next byte 1001 1002 psect cstackBANK1 1003 00D2 __pcstackBANK1: 1004 00D2 ??_main: 1005 1006 ; 1 bytes @ 0x0 1007 00D2 ds 3 1008 1009 psect cstackCOMMON 1010 0070 __pcstackCOMMON: 1011 0070 ?_Adc_Init: 1012 0070 ?_Lcd_Init: 1013 ; 1 bytes @ 0x0 1014 1015 0070 ?_display_Intro: 1016 ; 1 bytes @ 0x0 1017 1018 0070 ?_display_Lcd_Layout: 1019 ; 1 bytes @ 0x0 1020 1021 0070 ?_Lcd_Write_Char: 1022 ; 1 bytes @ 0x0 1023 1024 0070 ?_Update_Current_Date_Time: 1025 ; 1 bytes @ 0x0 1026 1027 0070 ?_Read_Alarms_Temp: 1028 ; 1 bytes @ 0x0 1029 1030 0070 ?_Get_Alarm_Status: 1031 ; 1 bytes @ 0x0 1032 1033 0070 ?_format_Temperature: 1034 ; 1 bytes @ 0x0 1035 1036 0070 ?_update_Display: 1037 ; 1 bytes @ 0x0 1038 1039 0070 ?_edit_Date_Time: 1040 ; 1 bytes @ 0x0 1041 1042 0070 ?_Lcd_Clear: 1043 ; 1 bytes @ 0x0 1044 1045 0070 ?_Set_Time: 1046 ; 1 bytes @ 0x0 1047 1048 0070 ?_Set_Date: 1049 ; 1 bytes @ 0x0 1050 1051 0070 ?_main: 1052 ; 1 bytes @ 0x0 1053 1054 0070 ?_isr: 1055 ; 1 bytes @ 0x0 1056 1057 0070 ??_isr: 1058 ; 1 bytes @ 0x0 1059 1060 0070 ?_Lcd_Port: 1061 ; 1 bytes @ 0x0 1062 1063 0070 ?_Lcd_Cmd: 1064 ; 1 bytes @ 0x0 1065 1066 0070 ?_I2C_Master_Wait: 1067 ; 1 bytes @ 0x0 1068 1069 0070 ?_I2C_Master_Start: 1070 ; 1 bytes @ 0x0 1071 1072 0070 ?_I2C_Master_Repeated_Start: 1073 ; 1 bytes @ 0x0 1074 1075 0070 ?_I2C_Master_Stop: 1076 ; 1 bytes @ 0x0 1077 1078 1079 ; 1 bytes @ 0x0 1080 0070 ds 2 1081 0072 ?_I2C_Master_Init: 1082 0072 ??_Adc_Init: 1083 ; 1 bytes @ 0x2 1084 1085 0072 ??_Get_Alarm_Status: 1086 ; 1 bytes @ 0x2 1087 1088 0072 ?_alarm: 1089 ; 1 bytes @ 0x2 1090 1091 0072 ??_Lcd_Port: 1092 ; 1 bytes @ 0x2 1093 1094 0072 ??_I2C_Master_Wait: 1095 ; 1 bytes @ 0x2 1096 1097 0072 ??_I2C_Master_Start: 1098 ; 1 bytes @ 0x2 1099 1100 0072 ??_I2C_Master_Repeated_Start: 1101 ; 1 bytes @ 0x2 1102 1103 0072 ??_I2C_Master_Stop: 1104 ; 1 bytes @ 0x2 1105 1106 0072 ?_Adc_Read: 1107 ; 1 bytes @ 0x2 1108 1109 0072 ?_I2C_Master_Read: 1110 ; 2 bytes @ 0x2 1111 1112 0072 ?___wmul: 1113 ; 2 bytes @ 0x2 1114 1115 0072 ?___awdiv: 1116 ; 2 bytes @ 0x2 1117 1118 0072 ?___awmod: 1119 ; 2 bytes @ 0x2 1120 1121 0072 Lcd_Port@a: 1122 ; 2 bytes @ 0x2 1123 1124 0072 I2C_Master_Read@ack: 1125 ; 1 bytes @ 0x2 1126 1127 0072 alarm@numberOfBeeps: 1128 ; 2 bytes @ 0x2 1129 1130 0072 Adc_Read@channel: 1131 ; 2 bytes @ 0x2 1132 1133 0072 ___wmul@multiplier: 1134 ; 2 bytes @ 0x2 1135 1136 0072 ___awdiv@divisor: 1137 ; 2 bytes @ 0x2 1138 1139 0072 ___awmod@divisor: 1140 ; 2 bytes @ 0x2 1141 1142 0072 I2C_Master_Init@freq_K: 1143 ; 2 bytes @ 0x2 1144 1145 1146 ; 4 bytes @ 0x2 1147 0072 ds 1 1148 0073 ??_Lcd_Write_Char: 1149 0073 ??_Lcd_Cmd: 1150 ; 1 bytes @ 0x3 1151 1152 1153 ; 1 bytes @ 0x3 1154 0073 ds 1 1155 0074 ??_Adc_Read: 1156 0074 ??_alarm: 1157 ; 1 bytes @ 0x4 1158 1159 0074 ??_I2C_Master_Read: 1160 ; 1 bytes @ 0x4 1161 1162 0074 Lcd_Write_Char@temp: 1163 ; 1 bytes @ 0x4 1164 1165 0074 ___wmul@multiplicand: 1166 ; 1 bytes @ 0x4 1167 1168 0074 ___awdiv@dividend: 1169 ; 2 bytes @ 0x4 1170 1171 0074 ___awmod@dividend: 1172 ; 2 bytes @ 0x4 1173 1174 1175 ; 2 bytes @ 0x4 1176 0074 ds 1 1177 0075 Lcd_Cmd@a: 1178 0075 Lcd_Write_Char@y: 1179 ; 1 bytes @ 0x5 1180 1181 1182 ; 1 bytes @ 0x5 1183 0075 ds 1 1184 0076 ??_I2C_Master_Init: 1185 0076 ?_Lcd_Set_Cursor: 1186 ; 1 bytes @ 0x6 1187 1188 0076 ??_Lcd_Clear: 1189 ; 1 bytes @ 0x6 1190 1191 0076 ??___wmul: 1192 ; 1 bytes @ 0x6 1193 1194 0076 ??___awdiv: 1195 ; 1 bytes @ 0x6 1196 1197 0076 ??___awmod: 1198 ; 1 bytes @ 0x6 1199 1200 0076 Lcd_Set_Cursor@b: 1201 ; 1 bytes @ 0x6 1202 1203 0076 Lcd_Write_Char@a: 1204 ; 1 bytes @ 0x6 1205 1206 0076 I2C_Master_Read@incoming: 1207 ; 1 bytes @ 0x6 1208 1209 0076 ___wmul@product: 1210 ; 2 bytes @ 0x6 1211 1212 1213 ; 2 bytes @ 0x6 1214 0076 ds 1 1215 0077 ?_Vfd_Set_Brightness: 1216 0077 ??_Lcd_Set_Cursor: 1217 ; 1 bytes @ 0x7 1218 1219 0077 ___awmod@counter: 1220 ; 1 bytes @ 0x7 1221 1222 0077 Vfd_Set_Brightness@level: 1223 ; 1 bytes @ 0x7 1224 1225 1226 ; 2 bytes @ 0x7 1227 0077 ds 1 1228 0078 ??_format_Temperature: 1229 0078 ??___lwdiv: 1230 ; 1 bytes @ 0x8 1231 1232 0078 ?_BCD_2_DEC: 1233 ; 1 bytes @ 0x8 1234 1235 0078 ___awmod@sign: 1236 ; 2 bytes @ 0x8 1237 1238 0078 BCD_2_DEC@to_convert: 1239 ; 1 bytes @ 0x8 1240 1241 1242 ; 2 bytes @ 0x8 1243 0078 ds 1 1244 0079 ??_Set_Sqwe: 1245 0079 ??_Set_Time: 1246 ; 1 bytes @ 0x9 1247 1248 0079 ??_Set_Date: 1249 ; 1 bytes @ 0x9 1250 1251 0079 ??_I2C_Master_Write: 1252 ; 1 bytes @ 0x9 1253 1254 0079 ??___lwmod: 1255 ; 1 bytes @ 0x9 1256 1257 1258 ; 1 bytes @ 0x9 1259 0079 ds 1 1260 007A ??_Update_Current_Date_Time: 1261 007A ??_Read_Alarms_Temp: 1262 ; 1 bytes @ 0xA 1263 1264 007A ??_Set_DayOfWeek: 1265 ; 1 bytes @ 0xA 1266 1267 007A ??_display_Digit: 1268 ; 1 bytes @ 0xA 1269 1270 1271 psect cstackBANK0 1272 0020 __pcstackBANK0: 1273 ; 1 bytes @ 0xA 1274 1275 0020 ??_Vfd_Set_Brightness: 1276 0020 ??_BCD_2_DEC: 1277 ; 1 bytes @ 0x0 1278 1279 0020 ?___lwdiv: 1280 ; 1 bytes @ 0x0 1281 1282 0020 Lcd_Set_Cursor@a: 1283 ; 2 bytes @ 0x0 1284 1285 0020 ___awdiv@counter: 1286 ; 1 bytes @ 0x0 1287 1288 0020 alarm@i: 1289 ; 1 bytes @ 0x0 1290 1291 0020 ___lwdiv@divisor: 1292 ; 2 bytes @ 0x0 1293 1294 1295 ; 2 bytes @ 0x0 1296 0020 ds 1 1297 0021 Lcd_Set_Cursor@z: 1298 0021 ___awdiv@sign: 1299 ; 1 bytes @ 0x1 1300 1301 1302 ; 1 bytes @ 0x1 1303 0021 ds 1 1304 0022 ??_Lcd_Init: 1305 0022 Lcd_Set_Cursor@y: 1306 ; 1 bytes @ 0x2 1307 1308 0022 alarm@j: 1309 ; 1 bytes @ 0x2 1310 1311 0022 ___awdiv@quotient: 1312 ; 2 bytes @ 0x2 1313 1314 0022 ___lwdiv@dividend: 1315 ; 2 bytes @ 0x2 1316 1317 1318 ; 2 bytes @ 0x2 1319 0022 ds 1 1320 0023 Lcd_Set_Cursor@temp: 1321 1322 ; 1 bytes @ 0x3 1323 0023 ds 1 1324 0024 ?_DEC_2_BCD: 1325 0024 ___lwdiv@counter: 1326 ; 2 bytes @ 0x4 1327 1328 0024 DEC_2_BCD@to_convert: 1329 ; 1 bytes @ 0x4 1330 1331 1332 ; 2 bytes @ 0x4 1333 0024 ds 1 1334 0025 ___lwdiv@quotient: 1335 1336 ; 2 bytes @ 0x5 1337 0025 ds 1 1338 0026 ??_DEC_2_BCD: 1339 1340 ; 1 bytes @ 0x6 1341 0026 ds 1 1342 0027 ?___lwmod: 1343 0027 ___lwmod@divisor: 1344 ; 2 bytes @ 0x7 1345 1346 1347 ; 2 bytes @ 0x7 1348 0027 ds 1 1349 0028 ?_I2C_Master_Write: 1350 0028 I2C_Master_Write@data: 1351 ; 1 bytes @ 0x8 1352 1353 1354 ; 2 bytes @ 0x8 1355 0028 ds 1 1356 0029 ___lwmod@dividend: 1357 1358 ; 2 bytes @ 0x9 1359 0029 ds 1 1360 002A ?_Set_Sqwe: 1361 002A Set_Sqwe@contvalue: 1362 ; 1 bytes @ 0xA 1363 1364 1365 ; 2 bytes @ 0xA 1366 002A ds 1 1367 002B ___lwmod@counter: 1368 1369 ; 1 bytes @ 0xB 1370 002B ds 1 1371 002C ?_display_Digit: 1372 002C ?_Get_DayOfWeek: 1373 ; 1 bytes @ 0xC 1374 1375 002C ?_Get_Is_Leap_Year: 1376 ; 2 bytes @ 0xC 1377 1378 002C display_Digit@data: 1379 ; 2 bytes @ 0xC 1380 1381 002C Get_DayOfWeek@y: 1382 ; 2 bytes @ 0xC 1383 1384 002C Get_Is_Leap_Year@y: 1385 ; 2 bytes @ 0xC 1386 1387 1388 ; 2 bytes @ 0xC 1389 002C ds 2 1390 002E ??_Get_Is_Leap_Year: 1391 002E Get_DayOfWeek@m: 1392 ; 1 bytes @ 0xE 1393 1394 1395 ; 2 bytes @ 0xE 1396 002E ds 2 1397 0030 _Get_Is_Leap_Year$401: 1398 0030 Get_DayOfWeek@d: 1399 ; 1 bytes @ 0x10 1400 1401 1402 ; 2 bytes @ 0x10 1403 0030 ds 1 1404 0031 ?_Get_Days_In_Month: 1405 0031 Get_Days_In_Month@y: 1406 ; 2 bytes @ 0x11 1407 1408 1409 ; 2 bytes @ 0x11 1410 0031 ds 1 1411 0032 ??_Get_DayOfWeek: 1412 1413 ; 1 bytes @ 0x12 1414 0032 ds 1 1415 0033 Get_Days_In_Month@m: 1416 1417 ; 2 bytes @ 0x13 1418 0033 ds 2 1419 0035 ??_Get_Days_In_Month: 1420 1421 ; 1 bytes @ 0x15 1422 0035 ds 7 1423 003C ?_Get_WeekDay: 1424 003C ?_Set_DayOfWeek: 1425 ; 1 bytes @ 0x1C 1426 1427 003C Get_WeekDay@d: 1428 ; 1 bytes @ 0x1C 1429 1430 003C Set_DayOfWeek@dow: 1431 ; 2 bytes @ 0x1C 1432 1433 1434 ; 2 bytes @ 0x1C 1435 003C ds 2 1436 003E ??_Get_WeekDay: 1437 1438 ; 1 bytes @ 0x1E 1439 003E ds 1 1440 003F ?_Lcd_Write_String: 1441 003F Lcd_Write_String@a: 1442 ; 1 bytes @ 0x1F 1443 1444 1445 ; 2 bytes @ 0x1F 1446 003F ds 2 1447 0041 ??_Lcd_Write_String: 1448 1449 ; 1 bytes @ 0x21 1450 0041 ds 3 1451 0044 Lcd_Write_String@i: 1452 1453 ; 2 bytes @ 0x24 1454 0044 ds 2 1455 0046 ??_display_Intro: 1456 0046 ??_display_Lcd_Layout: 1457 ; 1 bytes @ 0x26 1458 1459 0046 ??_update_Display: 1460 ; 1 bytes @ 0x26 1461 1462 0046 ??_edit_Date_Time: 1463 ; 1 bytes @ 0x26 1464 1465 1466 ; 1 bytes @ 0x26 1467 0046 ds 5 1468 004B edit_Date_Time@hour_org: 1469 1470 ; 2 bytes @ 0x2B 1471 004B ds 2 1472 004D edit_Date_Time@min_org: 1473 1474 ; 2 bytes @ 0x2D 1475 004D ds 2 1476 004F edit_Date_Time@year_org: 1477 1478 ; 2 bytes @ 0x2F 1479 004F ds 2 1480 0051 edit_Date_Time@month_org: 1481 1482 ; 2 bytes @ 0x31 1483 0051 ds 2 1484 0053 edit_Date_Time@date_org: 1485 1486 ; 2 bytes @ 0x33 1487 0053 ds 2 1488 0055 edit_Date_Time@sec_org: 1489 1490 ; 2 bytes @ 0x35 1491 0055 ds 2 1492 1493 psect maintext 1494 05A0 __pmaintext: 1495 ;; 1496 ;;Main: autosize = 0, tempsize = 3, incstack = 0, save=0 1497 ;; 1498 ;; *************** function _main ***************** 1499 ;; Defined at: 1500 ;; line 43 in file "main.c" 1501 ;; Parameters: Size Location Type 1502 ;; None 1503 ;; Auto vars: Size Location Type 1504 ;; None 1505 ;; Return value: Size Location Type 1506 ;; 1 wreg void 1507 ;; Registers used: 1508 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 1509 ;; Tracked objects: 1510 ;; On entry : B00/0 1511 ;; On exit : 0/0 1512 ;; Unchanged: 0/0 1513 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1514 ;; Params: 0 0 0 0 0 1515 ;; Locals: 0 0 0 0 0 1516 ;; Temps: 0 0 3 0 0 1517 ;; Totals: 0 0 3 0 0 1518 ;;Total ram usage: 3 bytes 1519 ;; Hardware stack levels required when called: 5 1520 ;; This function calls: 1521 ;; _Adc_Init 1522 ;; _Adc_Read 1523 ;; _Get_Alarm_Status 1524 ;; _I2C_Master_Init 1525 ;; _Lcd_Init 1526 ;; _Lcd_Set_Cursor 1527 ;; _Lcd_Write_Char 1528 ;; _Read_Alarms_Temp 1529 ;; _Set_Sqwe 1530 ;; _Update_Current_Date_Time 1531 ;; _Vfd_Set_Brightness 1532 ;; _display_Intro 1533 ;; _display_Lcd_Layout 1534 ;; _edit_Date_Time 1535 ;; _format_Temperature 1536 ;; _update_Display 1537 ;; This function is called by: 1538 ;; Startup code after reset 1539 ;; This function uses a non-reentrant model 1540 ;; 1541 1542 1543 ;psect for function _main 1544 05A0 _main: 1545 1546 ;main.c: 45: TRISA0 = 0x01; 1547 1548 ;incstack = 0 1549 ; Regs used in _main: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 1550 05A0 1683 bsf 3,5 ;RP0=1, select bank1 1551 05A1 1303 bcf 3,6 ;RP1=0, select bank1 1552 05A2 1405 bsf 5,0 ;volatile 1553 1554 ;main.c: 47: TRISBbits.TRISB2 = 1; 1555 05A3 1506 bsf 6,2 ;volatile 1556 1557 ;main.c: 48: TRISBbits.TRISB4 = 1; 1558 05A4 1606 bsf 6,4 ;volatile 1559 1560 ;main.c: 49: TRISBbits.TRISB5 = 1; 1561 05A5 1686 bsf 6,5 ;volatile 1562 1563 ;main.c: 51: GIE = 0; 1564 05A6 138B bcf 11,7 ;volatile 1565 1566 ;main.c: 52: OPTION_REGbits.nRBPU = 0; 1567 05A7 1381 bcf 1,7 ;volatile 1568 1569 ;main.c: 53: INTE = 1; 1570 05A8 160B bsf 11,4 ;volatile 1571 1572 ;main.c: 54: GIE = 1; 1573 05A9 178B bsf 11,7 ;volatile 1574 1575 ;main.c: 56: TRISC = 0x00; 1576 05AA 0187 clrf 7 ;volatile 1577 1578 ;main.c: 57: PORTC = 0x00; 1579 05AB 1283 bcf 3,5 ;RP0=0, select bank0 1580 05AC 1303 bcf 3,6 ;RP1=0, select bank0 1581 05AD 0187 clrf 7 ;volatile 1582 1583 ;main.c: 59: TRISD = 0x00; 1584 05AE 1683 bsf 3,5 ;RP0=1, select bank1 1585 05AF 1303 bcf 3,6 ;RP1=0, select bank1 1586 05B0 0188 clrf 8 ;volatile 1587 1588 ;main.c: 60: PORTD = 0x00; 1589 05B1 1283 bcf 3,5 ;RP0=0, select bank0 1590 05B2 1303 bcf 3,6 ;RP1=0, select bank0 1591 05B3 0188 clrf 8 ;volatile 1592 1593 ;main.c: 71: I2C_Master_Init(100000); 1594 05B4 3000 movlw 0 1595 05B5 00F5 movwf I2C_Master_Init@freq_K+3 1596 05B6 3001 movlw 1 1597 05B7 00F4 movwf I2C_Master_Init@freq_K+2 1598 05B8 3086 movlw 134 1599 05B9 00F3 movwf I2C_Master_Init@freq_K+1 1600 05BA 30A0 movlw 160 1601 05BB 00F2 movwf I2C_Master_Init@freq_K 1602 05BC 160A 118A 27BA 120A 118A fcall _I2C_Master_Init 1603 1604 ;main.c: 80: Adc_Init(); 1605 05C1 160A 118A 277F 120A 118A fcall _Adc_Init 1606 1607 ;main.c: 89: Lcd_Init(); 1608 05C6 120A 158A 2603 120A 118A fcall _Lcd_Init 1609 1610 ;main.c: 98: Vfd_Set_Brightness(0); 1611 05CB 3000 movlw 0 1612 05CC 00F7 movwf Vfd_Set_Brightness@level 1613 05CD 00F8 movwf Vfd_Set_Brightness@level+1 1614 05CE 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness 1615 1616 ;main.c: 101: display_Intro(); 1617 05D3 120A 158A 2379 120A 118A fcall _display_Intro 1618 1619 ;main.c: 102: display_Lcd_Layout(); 1620 05D8 120A 158A 23BC 120A 118A fcall _display_Lcd_Layout 1621 1622 ;main.c: 120: Set_Sqwe(0x40); 1623 05DD 3040 movlw 64 1624 05DE 1283 bcf 3,5 ;RP0=0, select bank0 1625 05DF 1303 bcf 3,6 ;RP1=0, select bank0 1626 05E0 00AA movwf Set_Sqwe@contvalue 1627 05E1 3000 movlw 0 1628 05E2 00AB movwf Set_Sqwe@contvalue+1 1629 05E3 120A 158A 2107 120A 118A fcall _Set_Sqwe 1630 1631 ;main.c: 123: Vfd_Set_Brightness(3); 1632 05E8 3003 movlw 3 1633 05E9 00F7 movwf Vfd_Set_Brightness@level 1634 05EA 3000 movlw 0 1635 05EB 00F8 movwf Vfd_Set_Brightness@level+1 1636 05EC 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness 1637 05F1 l3250: 1638 1639 ;main.c: 137: if (update) { 1640 05F1 1683 bsf 3,5 ;RP0=1, select bank1 1641 05F2 1303 bcf 3,6 ;RP1=0, select bank1 1642 05F3 0850 movf _update^(0+128),w 1643 05F4 0451 iorwf (_update+1)^(0+128),w 1644 05F5 1903 btfsc 3,2 1645 05F6 2E46 goto l3260 1646 1647 ;main.c: 138: Lcd_Set_Cursor(1, 3); 1648 05F7 3003 movlw 3 1649 05F8 00D2 movwf ??_main^(0+128) 1650 05F9 0852 movf ??_main^(0+128),w 1651 05FA 00F6 movwf Lcd_Set_Cursor@b 1652 05FB 3001 movlw 1 1653 05FC 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1654 1655 ;main.c: 139: Lcd_Write_Char(':'); 1656 0601 303A movlw 58 1657 0602 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 1658 1659 ;main.c: 140: Lcd_Set_Cursor(1, 6); 1660 0607 3006 movlw 6 1661 0608 1683 bsf 3,5 ;RP0=1, select bank1 1662 0609 1303 bcf 3,6 ;RP1=0, select bank1 1663 060A 00D2 movwf ??_main^(0+128) 1664 060B 0852 movf ??_main^(0+128),w 1665 060C 00F6 movwf Lcd_Set_Cursor@b 1666 060D 3001 movlw 1 1667 060E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1668 1669 ;main.c: 141: Lcd_Write_Char(':'); 1670 0613 303A movlw 58 1671 0614 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 1672 1673 ;main.c: 142: Update_Current_Date_Time(); 1674 0619 120A 158A 2710 120A 118A fcall _Update_Current_Date_Time 1675 1676 ;main.c: 143: Read_Alarms_Temp(); 1677 061E 120A 118A 26C8 120A 118A fcall _Read_Alarms_Temp 1678 1679 ;main.c: 144: Get_Alarm_Status(); 1680 0623 120A 158A 205D 120A 118A fcall _Get_Alarm_Status 1681 1682 ;main.c: 145: format_Temperature(); 1683 0628 120A 158A 224E 120A 118A fcall _format_Temperature 1684 1685 ;main.c: 146: update_Display(); 1686 062D 120A 118A 2473 120A 118A fcall _update_Display 1687 1688 ;main.c: 147: update = 0; 1689 0632 1683 bsf 3,5 ;RP0=1, select bank1 1690 0633 1303 bcf 3,6 ;RP1=0, select bank1 1691 0634 01D0 clrf _update^(0+128) 1692 0635 01D1 clrf (_update+1)^(0+128) 1693 1694 ;main.c: 148: _delay((unsigned long)((500)*(20000000/4000.0))); 1695 0636 300D movlw 13 1696 0637 1683 bsf 3,5 ;RP0=1, select bank1 1697 0638 1303 bcf 3,6 ;RP1=0, select bank1 1698 0639 00D4 movwf (??_main^(0+128)+2) 1699 063A 30AF movlw 175 1700 063B 00D3 movwf (??_main^(0+128)+1) 1701 063C 30B5 movlw 181 1702 063D 00D2 movwf ??_main^(0+128) 1703 063E u2927: 1704 063E 0BD2 decfsz ??_main^(0+128),f 1705 063F 2E3E goto u2927 1706 0640 0BD3 decfsz (??_main^(0+128)+1),f 1707 0641 2E3E goto u2927 1708 0642 0BD4 decfsz (??_main^(0+128)+2),f 1709 0643 2E3E goto u2927 1710 0644 2E45 nop2 1711 1712 ;main.c: 149: } else { 1713 0645 2E68 goto l3262 1714 0646 l3260: 1715 1716 ;main.c: 150: Lcd_Set_Cursor(1, 3); 1717 0646 3003 movlw 3 1718 0647 00D2 movwf ??_main^(0+128) 1719 0648 0852 movf ??_main^(0+128),w 1720 0649 00F6 movwf Lcd_Set_Cursor@b 1721 064A 3001 movlw 1 1722 064B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1723 1724 ;main.c: 151: Lcd_Write_Char(' '); 1725 0650 3020 movlw 32 1726 0651 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 1727 1728 ;main.c: 152: Lcd_Set_Cursor(1, 6); 1729 0656 3006 movlw 6 1730 0657 1683 bsf 3,5 ;RP0=1, select bank1 1731 0658 1303 bcf 3,6 ;RP1=0, select bank1 1732 0659 00D2 movwf ??_main^(0+128) 1733 065A 0852 movf ??_main^(0+128),w 1734 065B 00F6 movwf Lcd_Set_Cursor@b 1735 065C 3001 movlw 1 1736 065D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1737 1738 ;main.c: 153: Lcd_Write_Char(' '); 1739 0662 3020 movlw 32 1740 0663 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 1741 0668 l3262: 1742 1743 ;main.c: 161: if (!RB2) { 1744 0668 1283 bcf 3,5 ;RP0=0, select bank0 1745 0669 1303 bcf 3,6 ;RP1=0, select bank0 1746 066A 1906 btfsc 6,2 ;volatile 1747 066B 2E7F goto l3268 1748 1749 ;main.c: 162: _delay((unsigned long)((250)*(20000000/4000.0))); 1750 066C 3007 movlw 7 1751 066D 1683 bsf 3,5 ;RP0=1, select bank1 1752 066E 1303 bcf 3,6 ;RP1=0, select bank1 1753 066F 00D4 movwf (??_main^(0+128)+2) 1754 0670 3058 movlw 88 1755 0671 00D3 movwf (??_main^(0+128)+1) 1756 0672 3059 movlw 89 1757 0673 00D2 movwf ??_main^(0+128) 1758 0674 u2937: 1759 0674 0BD2 decfsz ??_main^(0+128),f 1760 0675 2E74 goto u2937 1761 0676 0BD3 decfsz (??_main^(0+128)+1),f 1762 0677 2E74 goto u2937 1763 0678 0BD4 decfsz (??_main^(0+128)+2),f 1764 0679 2E74 goto u2937 1765 1766 ;main.c: 163: edit_Date_Time(); 1767 067A 120A 118A 204C 120A 118A fcall _edit_Date_Time 1768 067F l3268: 1769 1770 ;main.c: 175: ldr = Adc_Read(0); 1771 067F 3000 movlw 0 1772 0680 00F2 movwf Adc_Read@channel 1773 0681 00F3 movwf Adc_Read@channel+1 1774 0682 120A 158A 2040 120A 118A fcall _Adc_Read 1775 0687 0873 movf ?_Adc_Read+1,w 1776 0688 00FB movwf _ldr+1 1777 0689 0872 movf ?_Adc_Read,w 1778 068A 00FA movwf _ldr 1779 1780 ;main.c: 177: if (brtlvl_chg != ldr/256) { 1781 068B 087B movf _ldr+1,w 1782 068C 1683 bsf 3,5 ;RP0=1, select bank1 1783 068D 1303 bcf 3,6 ;RP1=0, select bank1 1784 068E 00D3 movwf (??_main^(0+128)+1) 1785 068F 087A movf _ldr,w 1786 0690 00D2 movwf ??_main^(0+128) 1787 0691 0853 movf (??_main^(0+128)+1),w 1788 0692 00D2 movwf ??_main^(0+128) 1789 0693 01D3 clrf (??_main^(0+128)+1) 1790 0694 1283 bcf 3,5 ;RP0=0, select bank0 1791 0695 1303 bcf 3,6 ;RP1=0, select bank0 1792 0696 0868 movf _brtlvl_chg+1,w 1793 0697 1683 bsf 3,5 ;RP0=1, select bank1 1794 0698 1303 bcf 3,6 ;RP1=0, select bank1 1795 0699 0653 xorwf (??_main+1)^(0+128),w 1796 069A 1D03 skipz 1797 069B 2EA2 goto u2915 1798 069C 1283 bcf 3,5 ;RP0=0, select bank0 1799 069D 1303 bcf 3,6 ;RP1=0, select bank0 1800 069E 0867 movf _brtlvl_chg,w 1801 069F 1683 bsf 3,5 ;RP0=1, select bank1 1802 06A0 1303 bcf 3,6 ;RP1=0, select bank1 1803 06A1 0652 xorwf ??_main^(0+128),w 1804 06A2 u2915: 1805 06A2 1903 skipnz 1806 06A3 2DF1 goto l3250 1807 1808 ;main.c: 178: Vfd_Set_Brightness(ldr/256); 1809 06A4 087B movf _ldr+1,w 1810 06A5 00D3 movwf (??_main^(0+128)+1) 1811 06A6 087A movf _ldr,w 1812 06A7 00D2 movwf ??_main^(0+128) 1813 06A8 0853 movf (??_main^(0+128)+1),w 1814 06A9 00D2 movwf ??_main^(0+128) 1815 06AA 01D3 clrf (??_main^(0+128)+1) 1816 06AB 0852 movf ??_main^(0+128),w 1817 06AC 00F7 movwf Vfd_Set_Brightness@level 1818 06AD 0853 movf (??_main+1)^(0+128),w 1819 06AE 00F8 movwf Vfd_Set_Brightness@level+1 1820 06AF 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness 1821 1822 ;main.c: 179: brtlvl_chg = ldr/256; 1823 06B4 087B movf _ldr+1,w 1824 06B5 1683 bsf 3,5 ;RP0=1, select bank1 1825 06B6 1303 bcf 3,6 ;RP1=0, select bank1 1826 06B7 00D3 movwf (??_main^(0+128)+1) 1827 06B8 087A movf _ldr,w 1828 06B9 00D2 movwf ??_main^(0+128) 1829 06BA 0853 movf (??_main^(0+128)+1),w 1830 06BB 00D2 movwf ??_main^(0+128) 1831 06BC 01D3 clrf (??_main^(0+128)+1) 1832 06BD 0852 movf ??_main^(0+128),w 1833 06BE 1283 bcf 3,5 ;RP0=0, select bank0 1834 06BF 1303 bcf 3,6 ;RP1=0, select bank0 1835 06C0 00E7 movwf _brtlvl_chg 1836 06C1 1683 bsf 3,5 ;RP0=1, select bank1 1837 06C2 1303 bcf 3,6 ;RP1=0, select bank1 1838 06C3 0853 movf (??_main+1)^(0+128),w 1839 06C4 1283 bcf 3,5 ;RP0=0, select bank0 1840 06C5 1303 bcf 3,6 ;RP1=0, select bank0 1841 06C6 00E8 movwf _brtlvl_chg+1 1842 06C7 2DF1 goto l3250 1843 06C8 __end_of_main: 1844 1845 psect text1 1846 0473 __ptext1: 1847 ;; *************** function _update_Display ***************** 1848 ;; Defined at: 1849 ;; line 279 in file "main.c" 1850 ;; Parameters: Size Location Type 1851 ;; None 1852 ;; Auto vars: Size Location Type 1853 ;; None 1854 ;; Return value: Size Location Type 1855 ;; 1 wreg void 1856 ;; Registers used: 1857 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 1858 ;; Tracked objects: 1859 ;; On entry : 0/0 1860 ;; On exit : 0/0 1861 ;; Unchanged: 0/0 1862 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1863 ;; Params: 0 0 0 0 0 1864 ;; Locals: 0 0 0 0 0 1865 ;; Temps: 0 1 0 0 0 1866 ;; Totals: 0 1 0 0 0 1867 ;;Total ram usage: 1 bytes 1868 ;; Hardware stack levels used: 1 1869 ;; Hardware stack levels required when called: 4 1870 ;; This function calls: 1871 ;; _Get_WeekDay 1872 ;; _Lcd_Set_Cursor 1873 ;; _Lcd_Write_Char 1874 ;; _Lcd_Write_String 1875 ;; ___lwdiv 1876 ;; _alarm 1877 ;; _display_Digit 1878 ;; This function is called by: 1879 ;; _main 1880 ;; This function uses a non-reentrant model 1881 ;; 1882 1883 1884 ;psect for function _update_Display 1885 0473 _update_Display: 1886 1887 ;main.c: 281: Lcd_Set_Cursor(1, 1); 1888 1889 ;incstack = 0 1890 ; Regs used in _update_Display: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 1891 0473 01F6 clrf Lcd_Set_Cursor@b 1892 0474 0AF6 incf Lcd_Set_Cursor@b,f 1893 0475 3001 movlw 1 1894 0476 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1895 1896 ;main.c: 282: display_Digit(hour); 1897 047B 1283 bcf 3,5 ;RP0=0, select bank0 1898 047C 1303 bcf 3,6 ;RP1=0, select bank0 1899 047D 0860 movf _hour+1,w 1900 047E 00AD movwf display_Digit@data+1 1901 047F 085F movf _hour,w 1902 0480 00AC movwf display_Digit@data 1903 0481 120A 158A 2187 120A 118A fcall _display_Digit 1904 1905 ;main.c: 285: Lcd_Set_Cursor(1, 4); 1906 0486 3004 movlw 4 1907 0487 1283 bcf 3,5 ;RP0=0, select bank0 1908 0488 1303 bcf 3,6 ;RP1=0, select bank0 1909 0489 00C6 movwf ??_update_Display 1910 048A 0846 movf ??_update_Display,w 1911 048B 00F6 movwf Lcd_Set_Cursor@b 1912 048C 3001 movlw 1 1913 048D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1914 1915 ;main.c: 286: display_Digit(min); 1916 0492 1283 bcf 3,5 ;RP0=0, select bank0 1917 0493 1303 bcf 3,6 ;RP1=0, select bank0 1918 0494 0862 movf _min+1,w 1919 0495 00AD movwf display_Digit@data+1 1920 0496 0861 movf _min,w 1921 0497 00AC movwf display_Digit@data 1922 0498 120A 158A 2187 120A 118A fcall _display_Digit 1923 1924 ;main.c: 289: Lcd_Set_Cursor(1, 7); 1925 049D 3007 movlw 7 1926 049E 1283 bcf 3,5 ;RP0=0, select bank0 1927 049F 1303 bcf 3,6 ;RP1=0, select bank0 1928 04A0 00C6 movwf ??_update_Display 1929 04A1 0846 movf ??_update_Display,w 1930 04A2 00F6 movwf Lcd_Set_Cursor@b 1931 04A3 3001 movlw 1 1932 04A4 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1933 1934 ;main.c: 290: display_Digit(sec); 1935 04A9 1283 bcf 3,5 ;RP0=0, select bank0 1936 04AA 1303 bcf 3,6 ;RP1=0, select bank0 1937 04AB 0864 movf _sec+1,w 1938 04AC 00AD movwf display_Digit@data+1 1939 04AD 0863 movf _sec,w 1940 04AE 00AC movwf display_Digit@data 1941 04AF 120A 158A 2187 120A 118A fcall _display_Digit 1942 1943 ;main.c: 293: Lcd_Set_Cursor(2, 6); 1944 04B4 3006 movlw 6 1945 04B5 1283 bcf 3,5 ;RP0=0, select bank0 1946 04B6 1303 bcf 3,6 ;RP1=0, select bank0 1947 04B7 00C6 movwf ??_update_Display 1948 04B8 0846 movf ??_update_Display,w 1949 04B9 00F6 movwf Lcd_Set_Cursor@b 1950 04BA 3002 movlw 2 1951 04BB 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1952 1953 ;main.c: 294: display_Digit(date); 1954 04C0 1283 bcf 3,5 ;RP0=0, select bank0 1955 04C1 1303 bcf 3,6 ;RP1=0, select bank0 1956 04C2 086C movf _date+1,w 1957 04C3 00AD movwf display_Digit@data+1 1958 04C4 086B movf _date,w 1959 04C5 00AC movwf display_Digit@data 1960 04C6 120A 158A 2187 120A 118A fcall _display_Digit 1961 1962 ;main.c: 297: Lcd_Set_Cursor(2, 9); 1963 04CB 3009 movlw 9 1964 04CC 1283 bcf 3,5 ;RP0=0, select bank0 1965 04CD 1303 bcf 3,6 ;RP1=0, select bank0 1966 04CE 00C6 movwf ??_update_Display 1967 04CF 0846 movf ??_update_Display,w 1968 04D0 00F6 movwf Lcd_Set_Cursor@b 1969 04D1 3002 movlw 2 1970 04D2 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1971 1972 ;main.c: 298: display_Digit(month); 1973 04D7 1283 bcf 3,5 ;RP0=0, select bank0 1974 04D8 1303 bcf 3,6 ;RP1=0, select bank0 1975 04D9 086A movf _month+1,w 1976 04DA 00AD movwf display_Digit@data+1 1977 04DB 0869 movf _month,w 1978 04DC 00AC movwf display_Digit@data 1979 04DD 120A 158A 2187 120A 118A fcall _display_Digit 1980 1981 ;main.c: 301: Lcd_Set_Cursor(2, 12); 1982 04E2 300C movlw 12 1983 04E3 1283 bcf 3,5 ;RP0=0, select bank0 1984 04E4 1303 bcf 3,6 ;RP1=0, select bank0 1985 04E5 00C6 movwf ??_update_Display 1986 04E6 0846 movf ??_update_Display,w 1987 04E7 00F6 movwf Lcd_Set_Cursor@b 1988 04E8 3002 movlw 2 1989 04E9 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 1990 1991 ;main.c: 302: display_Digit(century); 1992 04EE 3014 movlw 20 1993 04EF 1283 bcf 3,5 ;RP0=0, select bank0 1994 04F0 1303 bcf 3,6 ;RP1=0, select bank0 1995 04F1 00AC movwf display_Digit@data 1996 04F2 3000 movlw 0 1997 04F3 00AD movwf display_Digit@data+1 1998 04F4 120A 158A 2187 120A 118A fcall _display_Digit 1999 2000 ;main.c: 305: Lcd_Set_Cursor(2, 14); 2001 04F9 300E movlw 14 2002 04FA 1283 bcf 3,5 ;RP0=0, select bank0 2003 04FB 1303 bcf 3,6 ;RP1=0, select bank0 2004 04FC 00C6 movwf ??_update_Display 2005 04FD 0846 movf ??_update_Display,w 2006 04FE 00F6 movwf Lcd_Set_Cursor@b 2007 04FF 3002 movlw 2 2008 0500 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2009 2010 ;main.c: 306: display_Digit(year); 2011 0505 1283 bcf 3,5 ;RP0=0, select bank0 2012 0506 1303 bcf 3,6 ;RP1=0, select bank0 2013 0507 085E movf _year+1,w 2014 0508 00AD movwf display_Digit@data+1 2015 0509 085D movf _year,w 2016 050A 00AC movwf display_Digit@data 2017 050B 120A 158A 2187 120A 118A fcall _display_Digit 2018 2019 ;main.c: 309: Lcd_Set_Cursor(2, 2); 2020 0510 3002 movlw 2 2021 0511 1283 bcf 3,5 ;RP0=0, select bank0 2022 0512 1303 bcf 3,6 ;RP1=0, select bank0 2023 0513 00C6 movwf ??_update_Display 2024 0514 0846 movf ??_update_Display,w 2025 0515 00F6 movwf Lcd_Set_Cursor@b 2026 0516 3002 movlw 2 2027 0517 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2028 2029 ;main.c: 310: Lcd_Write_String(Get_WeekDay(day)); 2030 051C 1683 bsf 3,5 ;RP0=1, select bank1 2031 051D 1303 bcf 3,6 ;RP1=0, select bank1 2032 051E 0823 movf (_day+1)^(0+128),w 2033 051F 1283 bcf 3,5 ;RP0=0, select bank0 2034 0520 1303 bcf 3,6 ;RP1=0, select bank0 2035 0521 00BD movwf Get_WeekDay@d+1 2036 0522 1683 bsf 3,5 ;RP0=1, select bank1 2037 0523 1303 bcf 3,6 ;RP1=0, select bank1 2038 0524 0822 movf _day^(0+128),w 2039 0525 1283 bcf 3,5 ;RP0=0, select bank0 2040 0526 1303 bcf 3,6 ;RP1=0, select bank0 2041 0527 00BC movwf Get_WeekDay@d 2042 0528 160A 118A 278B 120A 118A fcall _Get_WeekDay 2043 052D 1283 bcf 3,5 ;RP0=0, select bank0 2044 052E 1303 bcf 3,6 ;RP1=0, select bank0 2045 052F 00BF movwf Lcd_Write_String@a 2046 0530 3000 movlw 0 2047 0531 00C0 movwf Lcd_Write_String@a+1 2048 0532 120A 158A 2338 120A 118A fcall _Lcd_Write_String 2049 2050 ;main.c: 313: Lcd_Set_Cursor(1, 10); 2051 0537 300A movlw 10 2052 0538 1283 bcf 3,5 ;RP0=0, select bank0 2053 0539 1303 bcf 3,6 ;RP1=0, select bank0 2054 053A 00C6 movwf ??_update_Display 2055 053B 0846 movf ??_update_Display,w 2056 053C 00F6 movwf Lcd_Set_Cursor@b 2057 053D 3001 movlw 1 2058 053E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2059 2060 ;main.c: 314: Lcd_Write_Char(temp_sign); 2061 0543 1283 bcf 3,5 ;RP0=0, select bank0 2062 0544 1303 bcf 3,6 ;RP1=0, select bank0 2063 0545 086D movf _temp_sign,w 2064 0546 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2065 2066 ;main.c: 315: display_Digit(temperature_msb); 2067 054B 1283 bcf 3,5 ;RP0=0, select bank0 2068 054C 1303 bcf 3,6 ;RP1=0, select bank0 2069 054D 0858 movf _temperature_msb+1,w 2070 054E 00AD movwf display_Digit@data+1 2071 054F 0857 movf _temperature_msb,w 2072 0550 00AC movwf display_Digit@data 2073 0551 120A 158A 2187 120A 118A fcall _display_Digit 2074 2075 ;main.c: 316: Lcd_Set_Cursor(1, 14); 2076 0556 300E movlw 14 2077 0557 1283 bcf 3,5 ;RP0=0, select bank0 2078 0558 1303 bcf 3,6 ;RP1=0, select bank0 2079 0559 00C6 movwf ??_update_Display 2080 055A 0846 movf ??_update_Display,w 2081 055B 00F6 movwf Lcd_Set_Cursor@b 2082 055C 3001 movlw 1 2083 055D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2084 2085 ;main.c: 317: Lcd_Write_Char(((temperature_lsb / 10) + '0')); 2086 0562 300A movlw 10 2087 0563 1283 bcf 3,5 ;RP0=0, select bank0 2088 0564 1303 bcf 3,6 ;RP1=0, select bank0 2089 0565 00A0 movwf ___lwdiv@divisor 2090 0566 3000 movlw 0 2091 0567 00A1 movwf ___lwdiv@divisor+1 2092 0568 085A movf _temperature_lsb+1,w 2093 0569 00A3 movwf ___lwdiv@dividend+1 2094 056A 0859 movf _temperature_lsb,w 2095 056B 00A2 movwf ___lwdiv@dividend 2096 056C 120A 158A 22FA 120A 118A fcall ___lwdiv 2097 0571 1283 bcf 3,5 ;RP0=0, select bank0 2098 0572 1303 bcf 3,6 ;RP1=0, select bank0 2099 0573 0820 movf ?___lwdiv,w 2100 0574 3E30 addlw 48 2101 0575 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2102 2103 ;main.c: 320: if (min == 00 && sec == 00) { 2104 057A 1283 bcf 3,5 ;RP0=0, select bank0 2105 057B 1303 bcf 3,6 ;RP1=0, select bank0 2106 057C 0861 movf _min,w 2107 057D 0462 iorwf _min+1,w 2108 057E 1D03 btfss 3,2 2109 057F 2D8D goto l2978 2110 0580 0863 movf _sec,w 2111 0581 0464 iorwf _sec+1,w 2112 0582 1D03 btfss 3,2 2113 0583 2D8D goto l2978 2114 2115 ;main.c: 321: alarm(2); 2116 0584 3002 movlw 2 2117 0585 00F2 movwf alarm@numberOfBeeps 2118 0586 3000 movlw 0 2119 0587 00F3 movwf alarm@numberOfBeeps+1 2120 0588 120A 158A 2403 120A 118A fcall _alarm 2121 058D l2978: 2122 2123 ;main.c: 325: if (min == 30 && sec == 00) { 2124 058D 301E movlw 30 2125 058E 1283 bcf 3,5 ;RP0=0, select bank0 2126 058F 1303 bcf 3,6 ;RP1=0, select bank0 2127 0590 0661 xorwf _min,w 2128 0591 0462 iorwf _min+1,w 2129 0592 1D03 btfss 3,2 2130 0593 0008 return 2131 0594 0863 movf _sec,w 2132 0595 0464 iorwf _sec+1,w 2133 0596 1D03 btfss 3,2 2134 0597 0008 return 2135 2136 ;main.c: 326: alarm(1); 2137 0598 3001 movlw 1 2138 0599 00F2 movwf alarm@numberOfBeeps 2139 059A 3000 movlw 0 2140 059B 00F3 movwf alarm@numberOfBeeps+1 2141 059C 120A 158A 2403 fcall _alarm 2142 059F 0008 return 2143 05A0 __end_of_update_Display: 2144 2145 psect text2 2146 0C03 __ptext2: 2147 ;; *************** function _alarm ***************** 2148 ;; Defined at: 2149 ;; line 4 in file "beep.c" 2150 ;; Parameters: Size Location Type 2151 ;; numberOfBeep 2 2[COMMON] unsigned int 2152 ;; Auto vars: Size Location Type 2153 ;; j 2 2[BANK0 ] int 2154 ;; i 2 0[BANK0 ] int 2155 ;; Return value: Size Location Type 2156 ;; 1 wreg void 2157 ;; Registers used: 2158 ;; wreg, status,2, btemp+1 2159 ;; Tracked objects: 2160 ;; On entry : 0/0 2161 ;; On exit : 0/0 2162 ;; Unchanged: 0/0 2163 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2164 ;; Params: 2 0 0 0 0 2165 ;; Locals: 0 4 0 0 0 2166 ;; Temps: 3 0 0 0 0 2167 ;; Totals: 5 4 0 0 0 2168 ;;Total ram usage: 9 bytes 2169 ;; Hardware stack levels used: 1 2170 ;; Hardware stack levels required when called: 1 2171 ;; This function calls: 2172 ;; Nothing 2173 ;; This function is called by: 2174 ;; _update_Display 2175 ;; This function uses a non-reentrant model 2176 ;; 2177 2178 2179 ;psect for function _alarm 2180 0C03 _alarm: 2181 2182 ;beep.c: 5: for (int i = 0; i < numberOfBeeps; i++) { 2183 2184 ;incstack = 0 2185 ; Regs used in _alarm: [wreg+status,2+btemp+1] 2186 0C03 1283 bcf 3,5 ;RP0=0, select bank0 2187 0C04 1303 bcf 3,6 ;RP1=0, select bank0 2188 0C05 01A0 clrf alarm@i 2189 0C06 01A1 clrf alarm@i+1 2190 0C07 l540: 2191 0C07 0873 movf alarm@numberOfBeeps+1,w 2192 0C08 0221 subwf alarm@i+1,w 2193 0C09 1D03 skipz 2194 0C0A 2C0D goto u2465 2195 0C0B 0872 movf alarm@numberOfBeeps,w 2196 0C0C 0220 subwf alarm@i,w 2197 0C0D u2465: 2198 0C0D 1803 btfsc 3,0 2199 0C0E 0008 return 2200 2201 ;beep.c: 6: for (int j = 0; j < 250; j++) { 2202 0C0F 01A2 clrf alarm@j 2203 0C10 01A3 clrf alarm@j+1 2204 0C11 l542: 2205 2206 ;beep.c: 7: RD1 = 1; 2207 0C11 1283 bcf 3,5 ;RP0=0, select bank0 2208 0C12 1303 bcf 3,6 ;RP1=0, select bank0 2209 0C13 1488 bsf 8,1 ;volatile 2210 2211 ;beep.c: 8: _delay((unsigned long)((375)*(20000000/4000000.0))); 2212 0C14 3003 movlw 3 2213 0C15 00F5 movwf ??_alarm+1 2214 0C16 306E movlw 110 2215 0C17 00F4 movwf ??_alarm 2216 0C18 u2947: 2217 0C18 0BF4 decfsz ??_alarm,f 2218 0C19 2C18 goto u2947 2219 0C1A 0BF5 decfsz ??_alarm+1,f 2220 0C1B 2C18 goto u2947 2221 2222 ;beep.c: 9: RD1 = 0; 2223 0C1C 1283 bcf 3,5 ;RP0=0, select bank0 2224 0C1D 1303 bcf 3,6 ;RP1=0, select bank0 2225 0C1E 1088 bcf 8,1 ;volatile 2226 2227 ;beep.c: 10: _delay((unsigned long)((125)*(20000000/4000000.0))); 2228 0C1F 30D0 movlw 208 2229 0C20 00F4 movwf ??_alarm 2230 0C21 u2957: 2231 0C21 0BF4 decfsz ??_alarm,f 2232 0C22 2C21 goto u2957 2233 2234 ;beep.c: 11: } 2235 0C23 3001 movlw 1 2236 0C24 1283 bcf 3,5 ;RP0=0, select bank0 2237 0C25 1303 bcf 3,6 ;RP1=0, select bank0 2238 0C26 07A2 addwf alarm@j,f 2239 0C27 1803 skipnc 2240 0C28 0AA3 incf alarm@j+1,f 2241 0C29 3000 movlw 0 2242 0C2A 07A3 addwf alarm@j+1,f 2243 0C2B 0823 movf alarm@j+1,w 2244 0C2C 3A80 xorlw 128 2245 0C2D 00FF movwf 127 2246 0C2E 3080 movlw 128 2247 0C2F 027F subwf 127,w 2248 0C30 1D03 skipz 2249 0C31 2C34 goto u2455 2250 0C32 30FA movlw 250 2251 0C33 0222 subwf alarm@j,w 2252 0C34 u2455: 2253 0C34 1C03 skipc 2254 0C35 2C11 goto l542 2255 2256 ;beep.c: 13: _delay((unsigned long)((500)*(20000000/4000.0))); 2257 0C36 300D movlw 13 2258 0C37 00F6 movwf ??_alarm+2 2259 0C38 30AF movlw 175 2260 0C39 00F5 movwf ??_alarm+1 2261 0C3A 30B6 movlw 182 2262 0C3B 00F4 movwf ??_alarm 2263 0C3C u2967: 2264 0C3C 0BF4 decfsz ??_alarm,f 2265 0C3D 2C3C goto u2967 2266 0C3E 0BF5 decfsz ??_alarm+1,f 2267 0C3F 2C3C goto u2967 2268 0C40 0BF6 decfsz ??_alarm+2,f 2269 0C41 2C3C goto u2967 2270 0C42 0000 nop 2271 2272 ;beep.c: 14: } 2273 0C43 3001 movlw 1 2274 0C44 1283 bcf 3,5 ;RP0=0, select bank0 2275 0C45 1303 bcf 3,6 ;RP1=0, select bank0 2276 0C46 07A0 addwf alarm@i,f 2277 0C47 1803 skipnc 2278 0C48 0AA1 incf alarm@i+1,f 2279 0C49 3000 movlw 0 2280 0C4A 07A1 addwf alarm@i+1,f 2281 0C4B 2C07 goto l540 2282 0C4C __end_of_alarm: 2283 2284 psect text3 2285 0A4E __ptext3: 2286 ;; *************** function _format_Temperature ***************** 2287 ;; Defined at: 2288 ;; line 218 in file "main.c" 2289 ;; Parameters: Size Location Type 2290 ;; None 2291 ;; Auto vars: Size Location Type 2292 ;; None 2293 ;; Return value: Size Location Type 2294 ;; 1 wreg void 2295 ;; Registers used: 2296 ;; wreg, status,2, status,0, pclath, cstack 2297 ;; Tracked objects: 2298 ;; On entry : 0/0 2299 ;; On exit : 0/0 2300 ;; Unchanged: 0/0 2301 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2302 ;; Params: 0 0 0 0 0 2303 ;; Locals: 0 0 0 0 0 2304 ;; Temps: 1 0 0 0 0 2305 ;; Totals: 1 0 0 0 0 2306 ;;Total ram usage: 1 bytes 2307 ;; Hardware stack levels used: 1 2308 ;; Hardware stack levels required when called: 2 2309 ;; This function calls: 2310 ;; ___wmul 2311 ;; This function is called by: 2312 ;; _main 2313 ;; This function uses a non-reentrant model 2314 ;; 2315 2316 2317 ;psect for function _format_Temperature 2318 0A4E _format_Temperature: 2319 2320 ;main.c: 222: if (temperature_msb < 0) { 2321 2322 ;incstack = 0 2323 ; Regs used in _format_Temperature: [wreg+status,2+status,0+pclath+cstack] 2324 0A4E 1283 bcf 3,5 ;RP0=0, select bank0 2325 0A4F 1303 bcf 3,6 ;RP1=0, select bank0 2326 0A50 1FD8 btfss _temperature_msb+1,7 2327 0A51 2A67 goto l2400 2328 2329 ;main.c: 223: temperature_msb *= -1; 2330 0A52 30FF movlw 255 2331 0A53 00F2 movwf ___wmul@multiplier 2332 0A54 30FF movlw 255 2333 0A55 00F3 movwf ___wmul@multiplier+1 2334 0A56 0858 movf _temperature_msb+1,w 2335 0A57 00F5 movwf ___wmul@multiplicand+1 2336 0A58 0857 movf _temperature_msb,w 2337 0A59 00F4 movwf ___wmul@multiplicand 2338 0A5A 120A 158A 209D 120A 158A fcall ___wmul 2339 0A5F 0873 movf ?___wmul+1,w 2340 0A60 1283 bcf 3,5 ;RP0=0, select bank0 2341 0A61 1303 bcf 3,6 ;RP1=0, select bank0 2342 0A62 00D8 movwf _temperature_msb+1 2343 0A63 0872 movf ?___wmul,w 2344 0A64 00D7 movwf _temperature_msb 2345 2346 ;main.c: 224: temp_sign = '-'; 2347 0A65 302D movlw 45 2348 0A66 2A68 goto L1 2349 0A67 l2400: 2350 ;main.c: 225: } else { 2351 2352 2353 ;main.c: 226: temp_sign = '+'; 2354 0A67 302B movlw 43 2355 0A68 L1: 2356 0A68 00F8 movwf ??_format_Temperature 2357 0A69 0878 movf ??_format_Temperature,w 2358 0A6A 00ED movwf _temp_sign 2359 2360 ;main.c: 230: temperature_lsb >>= 6; 2361 0A6B 3006 movlw 6 2362 0A6C u1735: 2363 0A6C 1003 clrc 2364 0A6D 0CDA rrf _temperature_lsb+1,f 2365 0A6E 0CD9 rrf _temperature_lsb,f 2366 0A6F 3EFF addlw -1 2367 0A70 1D03 skipz 2368 0A71 2A6C goto u1735 2369 2370 ;main.c: 233: temperature_lsb *= 25; 2371 0A72 3019 movlw 25 2372 0A73 00F2 movwf ___wmul@multiplier 2373 0A74 3000 movlw 0 2374 0A75 00F3 movwf ___wmul@multiplier+1 2375 0A76 085A movf _temperature_lsb+1,w 2376 0A77 00F5 movwf ___wmul@multiplicand+1 2377 0A78 0859 movf _temperature_lsb,w 2378 0A79 00F4 movwf ___wmul@multiplicand 2379 0A7A 120A 158A 209D fcall ___wmul 2380 0A7D 0873 movf ?___wmul+1,w 2381 0A7E 1283 bcf 3,5 ;RP0=0, select bank0 2382 0A7F 1303 bcf 3,6 ;RP1=0, select bank0 2383 0A80 00DA movwf _temperature_lsb+1 2384 0A81 0872 movf ?___wmul,w 2385 0A82 00D9 movwf _temperature_lsb 2386 0A83 0008 return 2387 0A84 __end_of_format_Temperature: 2388 2389 psect text4 2390 004C __ptext4: 2391 ;; *************** function _edit_Date_Time ***************** 2392 ;; Defined at: 2393 ;; line 349 in file "main.c" 2394 ;; Parameters: Size Location Type 2395 ;; None 2396 ;; Auto vars: Size Location Type 2397 ;; sec_org 2 53[BANK0 ] unsigned int 2398 ;; date_org 2 51[BANK0 ] unsigned int 2399 ;; month_org 2 49[BANK0 ] unsigned int 2400 ;; year_org 2 47[BANK0 ] unsigned int 2401 ;; min_org 2 45[BANK0 ] unsigned int 2402 ;; hour_org 2 43[BANK0 ] unsigned int 2403 ;; updateRTC 2 0 int 2404 ;; Return value: Size Location Type 2405 ;; 1 wreg void 2406 ;; Registers used: 2407 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 2408 ;; Tracked objects: 2409 ;; On entry : 0/0 2410 ;; On exit : 0/0 2411 ;; Unchanged: 0/0 2412 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2413 ;; Params: 0 0 0 0 0 2414 ;; Locals: 0 14 0 0 0 2415 ;; Temps: 0 3 0 0 0 2416 ;; Totals: 0 17 0 0 0 2417 ;;Total ram usage: 17 bytes 2418 ;; Hardware stack levels used: 1 2419 ;; Hardware stack levels required when called: 4 2420 ;; This function calls: 2421 ;; _Get_DayOfWeek 2422 ;; _Get_Days_In_Month 2423 ;; _Get_WeekDay 2424 ;; _Lcd_Set_Cursor 2425 ;; _Lcd_Write_Char 2426 ;; _Lcd_Write_String 2427 ;; _Set_Date 2428 ;; _Set_DayOfWeek 2429 ;; _Set_Time 2430 ;; _display_Digit 2431 ;; This function is called by: 2432 ;; _main 2433 ;; This function uses a non-reentrant model 2434 ;; 2435 2436 2437 ;psect for function _edit_Date_Time 2438 004C _edit_Date_Time: 2439 2440 ;main.c: 355: unsigned int hour_org = hour; 2441 2442 ;incstack = 0 2443 ; Regs used in _edit_Date_Time: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 2444 004C 1283 bcf 3,5 ;RP0=0, select bank0 2445 004D 1303 bcf 3,6 ;RP1=0, select bank0 2446 004E 0860 movf _hour+1,w 2447 004F 00CC movwf edit_Date_Time@hour_org+1 2448 0050 085F movf _hour,w 2449 0051 00CB movwf edit_Date_Time@hour_org 2450 2451 ;main.c: 356: unsigned int min_org = min; 2452 0052 0862 movf _min+1,w 2453 0053 00CE movwf edit_Date_Time@min_org+1 2454 0054 0861 movf _min,w 2455 0055 00CD movwf edit_Date_Time@min_org 2456 2457 ;main.c: 357: unsigned int sec_org = sec; 2458 0056 0864 movf _sec+1,w 2459 0057 00D6 movwf edit_Date_Time@sec_org+1 2460 0058 0863 movf _sec,w 2461 0059 00D5 movwf edit_Date_Time@sec_org 2462 2463 ;main.c: 358: unsigned int year_org = year; 2464 005A 085E movf _year+1,w 2465 005B 00D0 movwf edit_Date_Time@year_org+1 2466 005C 085D movf _year,w 2467 005D 00CF movwf edit_Date_Time@year_org 2468 2469 ;main.c: 359: unsigned int month_org = month; 2470 005E 086A movf _month+1,w 2471 005F 00D2 movwf edit_Date_Time@month_org+1 2472 0060 0869 movf _month,w 2473 0061 00D1 movwf edit_Date_Time@month_org 2474 2475 ;main.c: 360: unsigned int date_org = date; 2476 0062 086C movf _date+1,w 2477 0063 00D4 movwf edit_Date_Time@date_org+1 2478 0064 086B movf _date,w 2479 0065 00D3 movwf edit_Date_Time@date_org 2480 2481 ;main.c: 362: Lcd_Set_Cursor(2, 16); 2482 0066 3010 movlw 16 2483 0067 00C6 movwf ??_edit_Date_Time 2484 0068 0846 movf ??_edit_Date_Time,w 2485 0069 00F6 movwf Lcd_Set_Cursor@b 2486 006A 3002 movlw 2 2487 006B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2488 2489 ;main.c: 363: Lcd_Write_Char('S'); 2490 0070 3053 movlw 83 2491 0071 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2492 0076 2BE9 goto L2 2493 0077 l3004: 2494 ;main.c: 365: while (edit_datetime > 0 && edit_datetime < 7) { 2495 2496 ;main.c: 364: edit_datetime++; 2497 2498 2499 ;main.c: 368: Lcd_Set_Cursor(1, 3); 2500 0077 3003 movlw 3 2501 0078 00C6 movwf ??_edit_Date_Time 2502 0079 0846 movf ??_edit_Date_Time,w 2503 007A 00F6 movwf Lcd_Set_Cursor@b 2504 007B 3001 movlw 1 2505 007C 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2506 2507 ;main.c: 369: Lcd_Write_Char(':'); 2508 0081 303A movlw 58 2509 0082 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2510 2511 ;main.c: 370: Lcd_Set_Cursor(1, 6); 2512 0087 3006 movlw 6 2513 0088 1283 bcf 3,5 ;RP0=0, select bank0 2514 0089 1303 bcf 3,6 ;RP1=0, select bank0 2515 008A 00C6 movwf ??_edit_Date_Time 2516 008B 0846 movf ??_edit_Date_Time,w 2517 008C 00F6 movwf Lcd_Set_Cursor@b 2518 008D 3001 movlw 1 2519 008E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2520 2521 ;main.c: 371: Lcd_Write_Char(':'); 2522 0093 303A movlw 58 2523 0094 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2524 2525 ;main.c: 373: switch (edit_datetime) { 2526 0099 2BBC goto l3188 2527 009A l3006: 2528 2529 ;main.c: 375: Lcd_Set_Cursor(2, 16); 2530 009A 3010 movlw 16 2531 009B 00C6 movwf ??_edit_Date_Time 2532 009C 0846 movf ??_edit_Date_Time,w 2533 009D 00F6 movwf Lcd_Set_Cursor@b 2534 009E 3002 movlw 2 2535 009F 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2536 2537 ;main.c: 376: Lcd_Write_Char('h'); 2538 00A4 3068 movlw 104 2539 00A5 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2540 2541 ;main.c: 377: if (!RB5) { 2542 00AA 1283 bcf 3,5 ;RP0=0, select bank0 2543 00AB 1303 bcf 3,6 ;RP1=0, select bank0 2544 00AC 1A86 btfsc 6,5 ;volatile 2545 00AD 28E1 goto l181 2546 2547 ;main.c: 378: _delay((unsigned long)((250)*(20000000/4000.0))); 2548 00AE 3007 movlw 7 2549 00AF 1283 bcf 3,5 ;RP0=0, select bank0 2550 00B0 1303 bcf 3,6 ;RP1=0, select bank0 2551 00B1 00C8 movwf ??_edit_Date_Time+2 2552 00B2 3058 movlw 88 2553 00B3 00C7 movwf ??_edit_Date_Time+1 2554 00B4 3059 movlw 89 2555 00B5 00C6 movwf ??_edit_Date_Time 2556 00B6 u2977: 2557 00B6 0BC6 decfsz ??_edit_Date_Time,f 2558 00B7 28B6 goto u2977 2559 00B8 0BC7 decfsz ??_edit_Date_Time+1,f 2560 00B9 28B6 goto u2977 2561 00BA 0BC8 decfsz ??_edit_Date_Time+2,f 2562 00BB 28B6 goto u2977 2563 2564 ;main.c: 379: if (hour == 0) { 2565 00BC 1283 bcf 3,5 ;RP0=0, select bank0 2566 00BD 1303 bcf 3,6 ;RP1=0, select bank0 2567 00BE 085F movf _hour,w 2568 00BF 0460 iorwf _hour+1,w 2569 00C0 1D03 btfss 3,2 2570 00C1 28C7 goto l3016 2571 2572 ;main.c: 380: hour = 23; 2573 00C2 3017 movlw 23 2574 00C3 00DF movwf _hour 2575 00C4 3000 movlw 0 2576 00C5 00E0 movwf _hour+1 2577 2578 ;main.c: 381: } else { 2579 00C6 28CD goto l3018 2580 00C7 l3016: 2581 2582 ;main.c: 382: hour -= 1; 2583 00C7 3001 movlw 1 2584 00C8 02DF subwf _hour,f 2585 00C9 3000 movlw 0 2586 00CA 1C03 skipc 2587 00CB 03E0 decf _hour+1,f 2588 00CC 02E0 subwf _hour+1,f 2589 00CD l3018: 2590 2591 ;main.c: 384: Lcd_Set_Cursor(1, 1); 2592 00CD 01F6 clrf Lcd_Set_Cursor@b 2593 00CE 0AF6 incf Lcd_Set_Cursor@b,f 2594 00CF 3001 movlw 1 2595 00D0 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2596 2597 ;main.c: 385: display_Digit(hour); 2598 00D5 1283 bcf 3,5 ;RP0=0, select bank0 2599 00D6 1303 bcf 3,6 ;RP1=0, select bank0 2600 00D7 0860 movf _hour+1,w 2601 00D8 00AD movwf display_Digit@data+1 2602 00D9 085F movf _hour,w 2603 00DA 00AC movwf display_Digit@data 2604 00DB 120A 158A 2187 120A 118A fcall _display_Digit 2605 2606 ;main.c: 387: } else if (!RB4) { 2607 00E0 2BD7 goto l188 2608 00E1 l181: 2609 00E1 1A06 btfsc 6,4 ;volatile 2610 00E2 2BD7 goto l188 2611 2612 ;main.c: 388: _delay((unsigned long)((250)*(20000000/4000.0))); 2613 00E3 3007 movlw 7 2614 00E4 1283 bcf 3,5 ;RP0=0, select bank0 2615 00E5 1303 bcf 3,6 ;RP1=0, select bank0 2616 00E6 00C8 movwf ??_edit_Date_Time+2 2617 00E7 3058 movlw 88 2618 00E8 00C7 movwf ??_edit_Date_Time+1 2619 00E9 3059 movlw 89 2620 00EA 00C6 movwf ??_edit_Date_Time 2621 00EB u2987: 2622 00EB 0BC6 decfsz ??_edit_Date_Time,f 2623 00EC 28EB goto u2987 2624 00ED 0BC7 decfsz ??_edit_Date_Time+1,f 2625 00EE 28EB goto u2987 2626 00EF 0BC8 decfsz ??_edit_Date_Time+2,f 2627 00F0 28EB goto u2987 2628 2629 ;main.c: 389: if (hour + 1 > 23) { 2630 00F1 1283 bcf 3,5 ;RP0=0, select bank0 2631 00F2 1303 bcf 3,6 ;RP1=0, select bank0 2632 00F3 085F movf _hour,w 2633 00F4 3E01 addlw 1 2634 00F5 00C6 movwf ??_edit_Date_Time 2635 00F6 0860 movf _hour+1,w 2636 00F7 1803 skipnc 2637 00F8 3E01 addlw 1 2638 00F9 3E00 addlw 0 2639 00FA 00C7 movwf ??_edit_Date_Time+1 2640 00FB 3000 movlw 0 2641 00FC 0247 subwf ??_edit_Date_Time+1,w 2642 00FD 3018 movlw 24 2643 00FE 1903 skipnz 2644 00FF 0246 subwf ??_edit_Date_Time,w 2645 0100 1C03 skipc 2646 0101 2905 goto l3028 2647 2648 ;main.c: 390: hour = 0; 2649 0102 01DF clrf _hour 2650 0103 01E0 clrf _hour+1 2651 2652 ;main.c: 391: } else { 2653 0104 28CD goto l3018 2654 0105 l3028: 2655 2656 ;main.c: 392: hour += 1; 2657 0105 3001 movlw 1 2658 0106 07DF addwf _hour,f 2659 0107 1803 skipnc 2660 0108 0AE0 incf _hour+1,f 2661 0109 3000 movlw 0 2662 010A 07E0 addwf _hour+1,f 2663 010B 28CD goto l3018 2664 010C l3034: 2665 ;main.c: 395: Lcd_Set_Cursor(1, 1); 2666 2667 2668 ;main.c: 402: Lcd_Set_Cursor(2, 16); 2669 010C 3010 movlw 16 2670 010D 00C6 movwf ??_edit_Date_Time 2671 010E 0846 movf ??_edit_Date_Time,w 2672 010F 00F6 movwf Lcd_Set_Cursor@b 2673 0110 3002 movlw 2 2674 0111 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2675 2676 ;main.c: 403: Lcd_Write_Char('m'); 2677 0116 306D movlw 109 2678 0117 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2679 2680 ;main.c: 404: if (!RB5) { 2681 011C 1283 bcf 3,5 ;RP0=0, select bank0 2682 011D 1303 bcf 3,6 ;RP1=0, select bank0 2683 011E 1A86 btfsc 6,5 ;volatile 2684 011F 2955 goto l190 2685 2686 ;main.c: 405: _delay((unsigned long)((250)*(20000000/4000.0))); 2687 0120 3007 movlw 7 2688 0121 1283 bcf 3,5 ;RP0=0, select bank0 2689 0122 1303 bcf 3,6 ;RP1=0, select bank0 2690 0123 00C8 movwf ??_edit_Date_Time+2 2691 0124 3058 movlw 88 2692 0125 00C7 movwf ??_edit_Date_Time+1 2693 0126 3059 movlw 89 2694 0127 00C6 movwf ??_edit_Date_Time 2695 0128 u2997: 2696 0128 0BC6 decfsz ??_edit_Date_Time,f 2697 0129 2928 goto u2997 2698 012A 0BC7 decfsz ??_edit_Date_Time+1,f 2699 012B 2928 goto u2997 2700 012C 0BC8 decfsz ??_edit_Date_Time+2,f 2701 012D 2928 goto u2997 2702 2703 ;main.c: 406: if (min == 0) { 2704 012E 1283 bcf 3,5 ;RP0=0, select bank0 2705 012F 1303 bcf 3,6 ;RP1=0, select bank0 2706 0130 0861 movf _min,w 2707 0131 0462 iorwf _min+1,w 2708 0132 1D03 btfss 3,2 2709 0133 2939 goto l3044 2710 2711 ;main.c: 407: min = 59; 2712 0134 303B movlw 59 2713 0135 00E1 movwf _min 2714 0136 3000 movlw 0 2715 0137 00E2 movwf _min+1 2716 2717 ;main.c: 408: } else { 2718 0138 293F goto l3046 2719 0139 l3044: 2720 2721 ;main.c: 409: min -= 1; 2722 0139 3001 movlw 1 2723 013A 02E1 subwf _min,f 2724 013B 3000 movlw 0 2725 013C 1C03 skipc 2726 013D 03E2 decf _min+1,f 2727 013E 02E2 subwf _min+1,f 2728 013F l3046: 2729 2730 ;main.c: 411: Lcd_Set_Cursor(1, 4); 2731 013F 3004 movlw 4 2732 0140 00C6 movwf ??_edit_Date_Time 2733 0141 0846 movf ??_edit_Date_Time,w 2734 0142 00F6 movwf Lcd_Set_Cursor@b 2735 0143 3001 movlw 1 2736 0144 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2737 2738 ;main.c: 412: display_Digit(min); 2739 0149 1283 bcf 3,5 ;RP0=0, select bank0 2740 014A 1303 bcf 3,6 ;RP1=0, select bank0 2741 014B 0862 movf _min+1,w 2742 014C 00AD movwf display_Digit@data+1 2743 014D 0861 movf _min,w 2744 014E 00AC movwf display_Digit@data 2745 014F 120A 158A 2187 120A 118A fcall _display_Digit 2746 2747 ;main.c: 414: } else if (!RB4) { 2748 0154 2BD7 goto l188 2749 0155 l190: 2750 0155 1A06 btfsc 6,4 ;volatile 2751 0156 2BD7 goto l188 2752 2753 ;main.c: 415: _delay((unsigned long)((250)*(20000000/4000.0))); 2754 0157 3007 movlw 7 2755 0158 1283 bcf 3,5 ;RP0=0, select bank0 2756 0159 1303 bcf 3,6 ;RP1=0, select bank0 2757 015A 00C8 movwf ??_edit_Date_Time+2 2758 015B 3058 movlw 88 2759 015C 00C7 movwf ??_edit_Date_Time+1 2760 015D 3059 movlw 89 2761 015E 00C6 movwf ??_edit_Date_Time 2762 015F u3007: 2763 015F 0BC6 decfsz ??_edit_Date_Time,f 2764 0160 295F goto u3007 2765 0161 0BC7 decfsz ??_edit_Date_Time+1,f 2766 0162 295F goto u3007 2767 0163 0BC8 decfsz ??_edit_Date_Time+2,f 2768 0164 295F goto u3007 2769 2770 ;main.c: 416: if (min + 1 > 59) { 2771 0165 1283 bcf 3,5 ;RP0=0, select bank0 2772 0166 1303 bcf 3,6 ;RP1=0, select bank0 2773 0167 0861 movf _min,w 2774 0168 3E01 addlw 1 2775 0169 00C6 movwf ??_edit_Date_Time 2776 016A 0862 movf _min+1,w 2777 016B 1803 skipnc 2778 016C 3E01 addlw 1 2779 016D 3E00 addlw 0 2780 016E 00C7 movwf ??_edit_Date_Time+1 2781 016F 3000 movlw 0 2782 0170 0247 subwf ??_edit_Date_Time+1,w 2783 0171 303C movlw 60 2784 0172 1903 skipnz 2785 0173 0246 subwf ??_edit_Date_Time,w 2786 0174 1C03 skipc 2787 0175 2979 goto l3056 2788 2789 ;main.c: 417: min = 0; 2790 0176 01E1 clrf _min 2791 0177 01E2 clrf _min+1 2792 2793 ;main.c: 418: } else { 2794 0178 293F goto l3046 2795 0179 l3056: 2796 2797 ;main.c: 419: min += 1; 2798 0179 3001 movlw 1 2799 017A 07E1 addwf _min,f 2800 017B 1803 skipnc 2801 017C 0AE2 incf _min+1,f 2802 017D 3000 movlw 0 2803 017E 07E2 addwf _min+1,f 2804 017F 293F goto l3046 2805 0180 l3062: 2806 ;main.c: 422: Lcd_Set_Cursor(1, 4); 2807 2808 2809 ;main.c: 429: Lcd_Set_Cursor(2, 16); 2810 0180 3010 movlw 16 2811 0181 00C6 movwf ??_edit_Date_Time 2812 0182 0846 movf ??_edit_Date_Time,w 2813 0183 00F6 movwf Lcd_Set_Cursor@b 2814 0184 3002 movlw 2 2815 0185 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2816 2817 ;main.c: 430: Lcd_Write_Char('s'); 2818 018A 3073 movlw 115 2819 018B 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2820 2821 ;main.c: 431: if (!RB5) { 2822 0190 1283 bcf 3,5 ;RP0=0, select bank0 2823 0191 1303 bcf 3,6 ;RP1=0, select bank0 2824 0192 1A86 btfsc 6,5 ;volatile 2825 0193 29B4 goto l198 2826 2827 ;main.c: 432: _delay((unsigned long)((250)*(20000000/4000.0))); 2828 0194 3007 movlw 7 2829 0195 1283 bcf 3,5 ;RP0=0, select bank0 2830 0196 1303 bcf 3,6 ;RP1=0, select bank0 2831 0197 00C8 movwf ??_edit_Date_Time+2 2832 0198 3058 movlw 88 2833 0199 00C7 movwf ??_edit_Date_Time+1 2834 019A 3059 movlw 89 2835 019B 00C6 movwf ??_edit_Date_Time 2836 019C u3017: 2837 019C 0BC6 decfsz ??_edit_Date_Time,f 2838 019D 299C goto u3017 2839 019E 0BC7 decfsz ??_edit_Date_Time+1,f 2840 019F 299C goto u3017 2841 01A0 0BC8 decfsz ??_edit_Date_Time+2,f 2842 01A1 299C goto u3017 2843 2844 ;main.c: 433: if (sec == 0) { 2845 01A2 1283 bcf 3,5 ;RP0=0, select bank0 2846 01A3 1303 bcf 3,6 ;RP1=0, select bank0 2847 01A4 0863 movf _sec,w 2848 01A5 0464 iorwf _sec+1,w 2849 01A6 1D03 btfss 3,2 2850 01A7 29AD goto l3072 2851 2852 ;main.c: 434: sec = 59; 2853 01A8 303B movlw 59 2854 01A9 00E3 movwf _sec 2855 01AA 3000 movlw 0 2856 01AB 00E4 movwf _sec+1 2857 2858 ;main.c: 435: } else { 2859 01AC 29DE goto l3088 2860 01AD l3072: 2861 2862 ;main.c: 436: sec -= 1; 2863 01AD 3001 movlw 1 2864 01AE 02E3 subwf _sec,f 2865 01AF 3000 movlw 0 2866 01B0 1C03 skipc 2867 01B1 03E4 decf _sec+1,f 2868 01B2 02E4 subwf _sec+1,f 2869 01B3 29DE goto l3088 2870 01B4 l198: 2871 ;main.c: 440: if (sec_org != sec) { 2872 2873 ;main.c: 439: display_Digit(sec); 2874 2875 ;main.c: 438: Lcd_Set_Cursor(1, 7); 2876 2877 01B4 1A06 btfsc 6,4 ;volatile 2878 01B5 2BD7 goto l188 2879 2880 ;main.c: 445: _delay((unsigned long)((250)*(20000000/4000.0))); 2881 01B6 3007 movlw 7 2882 01B7 1283 bcf 3,5 ;RP0=0, select bank0 2883 01B8 1303 bcf 3,6 ;RP1=0, select bank0 2884 01B9 00C8 movwf ??_edit_Date_Time+2 2885 01BA 3058 movlw 88 2886 01BB 00C7 movwf ??_edit_Date_Time+1 2887 01BC 3059 movlw 89 2888 01BD 00C6 movwf ??_edit_Date_Time 2889 01BE u3027: 2890 01BE 0BC6 decfsz ??_edit_Date_Time,f 2891 01BF 29BE goto u3027 2892 01C0 0BC7 decfsz ??_edit_Date_Time+1,f 2893 01C1 29BE goto u3027 2894 01C2 0BC8 decfsz ??_edit_Date_Time+2,f 2895 01C3 29BE goto u3027 2896 2897 ;main.c: 446: if (sec + 1 > 59) { 2898 01C4 1283 bcf 3,5 ;RP0=0, select bank0 2899 01C5 1303 bcf 3,6 ;RP1=0, select bank0 2900 01C6 0863 movf _sec,w 2901 01C7 3E01 addlw 1 2902 01C8 00C6 movwf ??_edit_Date_Time 2903 01C9 0864 movf _sec+1,w 2904 01CA 1803 skipnc 2905 01CB 3E01 addlw 1 2906 01CC 3E00 addlw 0 2907 01CD 00C7 movwf ??_edit_Date_Time+1 2908 01CE 3000 movlw 0 2909 01CF 0247 subwf ??_edit_Date_Time+1,w 2910 01D0 303C movlw 60 2911 01D1 1903 skipnz 2912 01D2 0246 subwf ??_edit_Date_Time,w 2913 01D3 1C03 skipc 2914 01D4 29D8 goto l3086 2915 2916 ;main.c: 447: sec = 0; 2917 01D5 01E3 clrf _sec 2918 01D6 01E4 clrf _sec+1 2919 2920 ;main.c: 448: } else { 2921 01D7 29DE goto l3088 2922 01D8 l3086: 2923 2924 ;main.c: 449: sec += 1; 2925 01D8 3001 movlw 1 2926 01D9 07E3 addwf _sec,f 2927 01DA 1803 skipnc 2928 01DB 0AE4 incf _sec+1,f 2929 01DC 3000 movlw 0 2930 01DD 07E4 addwf _sec+1,f 2931 01DE l3088: 2932 2933 ;main.c: 452: Lcd_Set_Cursor(1, 7); 2934 01DE 3007 movlw 7 2935 01DF 00C6 movwf ??_edit_Date_Time 2936 01E0 0846 movf ??_edit_Date_Time,w 2937 01E1 00F6 movwf Lcd_Set_Cursor@b 2938 01E2 3001 movlw 1 2939 01E3 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2940 2941 ;main.c: 453: display_Digit(sec); 2942 01E8 1283 bcf 3,5 ;RP0=0, select bank0 2943 01E9 1303 bcf 3,6 ;RP1=0, select bank0 2944 01EA 0864 movf _sec+1,w 2945 01EB 00AD movwf display_Digit@data+1 2946 01EC 0863 movf _sec,w 2947 01ED 00AC movwf display_Digit@data 2948 01EE 120A 158A 2187 120A 118A fcall _display_Digit 2949 2950 ;main.c: 454: if (sec_org != sec) { 2951 01F3 1283 bcf 3,5 ;RP0=0, select bank0 2952 01F4 1303 bcf 3,6 ;RP1=0, select bank0 2953 01F5 0864 movf _sec+1,w 2954 01F6 0656 xorwf edit_Date_Time@sec_org+1,w 2955 01F7 1D03 skipz 2956 01F8 2BD7 goto l188 2957 01F9 0863 movf _sec,w 2958 01FA 0655 xorwf edit_Date_Time@sec_org,w 2959 01FB 2BD7 goto l188 2960 01FC l3094: 2961 2962 ;main.c: 462: Lcd_Set_Cursor(2, 16); 2963 01FC 3010 movlw 16 2964 01FD 00C6 movwf ??_edit_Date_Time 2965 01FE 0846 movf ??_edit_Date_Time,w 2966 01FF 00F6 movwf Lcd_Set_Cursor@b 2967 0200 3002 movlw 2 2968 0201 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 2969 2970 ;main.c: 463: Lcd_Write_Char('D'); 2971 0206 3044 movlw 68 2972 0207 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 2973 2974 ;main.c: 464: if (!RB5) { 2975 020C 1283 bcf 3,5 ;RP0=0, select bank0 2976 020D 1303 bcf 3,6 ;RP1=0, select bank0 2977 020E 1A86 btfsc 6,5 ;volatile 2978 020F 2A90 goto l208 2979 2980 ;main.c: 465: _delay((unsigned long)((250)*(20000000/4000.0))); 2981 0210 3007 movlw 7 2982 0211 1283 bcf 3,5 ;RP0=0, select bank0 2983 0212 1303 bcf 3,6 ;RP1=0, select bank0 2984 0213 00C8 movwf ??_edit_Date_Time+2 2985 0214 3058 movlw 88 2986 0215 00C7 movwf ??_edit_Date_Time+1 2987 0216 3059 movlw 89 2988 0217 00C6 movwf ??_edit_Date_Time 2989 0218 u3037: 2990 0218 0BC6 decfsz ??_edit_Date_Time,f 2991 0219 2A18 goto u3037 2992 021A 0BC7 decfsz ??_edit_Date_Time+1,f 2993 021B 2A18 goto u3037 2994 021C 0BC8 decfsz ??_edit_Date_Time+2,f 2995 021D 2A18 goto u3037 2996 2997 ;main.c: 466: if (date - 1 == 0) { 2998 021E 1283 bcf 3,5 ;RP0=0, select bank0 2999 021F 1303 bcf 3,6 ;RP1=0, select bank0 3000 0220 086B movf _date,w 3001 0221 3EFF addlw 255 3002 0222 00C6 movwf ??_edit_Date_Time 3003 0223 086C movf _date+1,w 3004 0224 1803 skipnc 3005 0225 3E01 addlw 1 3006 0226 3EFF addlw 255 3007 0227 00C7 movwf ??_edit_Date_Time+1 3008 0228 0846 movf ??_edit_Date_Time,w 3009 0229 0447 iorwf ??_edit_Date_Time+1,w 3010 022A 1D03 btfss 3,2 3011 022B 2A40 goto l3104 3012 3013 ;main.c: 467: date = Get_Days_In_Month(year, month); 3014 022C 085E movf _year+1,w 3015 022D 00B2 movwf Get_Days_In_Month@y+1 3016 022E 085D movf _year,w 3017 022F 00B1 movwf Get_Days_In_Month@y 3018 0230 086A movf _month+1,w 3019 0231 00B4 movwf Get_Days_In_Month@m+1 3020 0232 0869 movf _month,w 3021 0233 00B3 movwf Get_Days_In_Month@m 3022 0234 120A 118A 27C5 120A 118A fcall _Get_Days_In_Month 3023 0239 1283 bcf 3,5 ;RP0=0, select bank0 3024 023A 1303 bcf 3,6 ;RP1=0, select bank0 3025 023B 0832 movf ?_Get_Days_In_Month+1,w 3026 023C 00EC movwf _date+1 3027 023D 0831 movf ?_Get_Days_In_Month,w 3028 023E 00EB movwf _date 3029 3030 ;main.c: 468: } else { 3031 023F 2A46 goto l3106 3032 0240 l3104: 3033 3034 ;main.c: 469: date -= 1; 3035 0240 3001 movlw 1 3036 0241 02EB subwf _date,f 3037 0242 3000 movlw 0 3038 0243 1C03 skipc 3039 0244 03EC decf _date+1,f 3040 0245 02EC subwf _date+1,f 3041 0246 l3106: 3042 3043 ;main.c: 472: Lcd_Set_Cursor(2, 2); 3044 0246 3002 movlw 2 3045 0247 00C6 movwf ??_edit_Date_Time 3046 0248 0846 movf ??_edit_Date_Time,w 3047 0249 00F6 movwf Lcd_Set_Cursor@b 3048 024A 3002 movlw 2 3049 024B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3050 3051 ;main.c: 473: Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month + , date))); 3052 0250 1283 bcf 3,5 ;RP0=0, select bank0 3053 0251 1303 bcf 3,6 ;RP1=0, select bank0 3054 0252 085E movf _year+1,w 3055 0253 00AD movwf Get_DayOfWeek@y+1 3056 0254 085D movf _year,w 3057 0255 00AC movwf Get_DayOfWeek@y 3058 0256 086A movf _month+1,w 3059 0257 00AF movwf Get_DayOfWeek@m+1 3060 0258 0869 movf _month,w 3061 0259 00AE movwf Get_DayOfWeek@m 3062 025A 086C movf _date+1,w 3063 025B 00B1 movwf Get_DayOfWeek@d+1 3064 025C 086B movf _date,w 3065 025D 00B0 movwf Get_DayOfWeek@d 3066 025E 120A 158A 266C 120A 118A fcall _Get_DayOfWeek 3067 0263 1283 bcf 3,5 ;RP0=0, select bank0 3068 0264 1303 bcf 3,6 ;RP1=0, select bank0 3069 0265 082D movf ?_Get_DayOfWeek+1,w 3070 0266 00BD movwf Get_WeekDay@d+1 3071 0267 082C movf ?_Get_DayOfWeek,w 3072 0268 00BC movwf Get_WeekDay@d 3073 0269 160A 118A 278B 120A 118A fcall _Get_WeekDay 3074 026E 1283 bcf 3,5 ;RP0=0, select bank0 3075 026F 1303 bcf 3,6 ;RP1=0, select bank0 3076 0270 00BF movwf Lcd_Write_String@a 3077 0271 3000 movlw 0 3078 0272 00C0 movwf Lcd_Write_String@a+1 3079 0273 120A 158A 2338 120A 118A fcall _Lcd_Write_String 3080 3081 ;main.c: 474: Lcd_Set_Cursor(2, 6); 3082 0278 3006 movlw 6 3083 0279 1283 bcf 3,5 ;RP0=0, select bank0 3084 027A 1303 bcf 3,6 ;RP1=0, select bank0 3085 027B 00C6 movwf ??_edit_Date_Time 3086 027C 0846 movf ??_edit_Date_Time,w 3087 027D 00F6 movwf Lcd_Set_Cursor@b 3088 027E 3002 movlw 2 3089 027F 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3090 3091 ;main.c: 475: display_Digit(date); 3092 0284 1283 bcf 3,5 ;RP0=0, select bank0 3093 0285 1303 bcf 3,6 ;RP1=0, select bank0 3094 0286 086C movf _date+1,w 3095 0287 00AD movwf display_Digit@data+1 3096 0288 086B movf _date,w 3097 0289 00AC movwf display_Digit@data 3098 028A 120A 158A 2187 120A 118A fcall _display_Digit 3099 3100 ;main.c: 477: } else if (!RB4) { 3101 028F 2BD7 goto l188 3102 0290 l208: 3103 0290 1A06 btfsc 6,4 ;volatile 3104 0291 2BD7 goto l188 3105 3106 ;main.c: 478: _delay((unsigned long)((250)*(20000000/4000.0))); 3107 0292 3007 movlw 7 3108 0293 1283 bcf 3,5 ;RP0=0, select bank0 3109 0294 1303 bcf 3,6 ;RP1=0, select bank0 3110 0295 00C8 movwf ??_edit_Date_Time+2 3111 0296 3058 movlw 88 3112 0297 00C7 movwf ??_edit_Date_Time+1 3113 0298 3059 movlw 89 3114 0299 00C6 movwf ??_edit_Date_Time 3115 029A u3047: 3116 029A 0BC6 decfsz ??_edit_Date_Time,f 3117 029B 2A9A goto u3047 3118 029C 0BC7 decfsz ??_edit_Date_Time+1,f 3119 029D 2A9A goto u3047 3120 029E 0BC8 decfsz ??_edit_Date_Time+2,f 3121 029F 2A9A goto u3047 3122 3123 ;main.c: 480: if (date + 1 > Get_Days_In_Month(year, month)) { 3124 02A0 1283 bcf 3,5 ;RP0=0, select bank0 3125 02A1 1303 bcf 3,6 ;RP1=0, select bank0 3126 02A2 086B movf _date,w 3127 02A3 3E01 addlw 1 3128 02A4 00C6 movwf ??_edit_Date_Time 3129 02A5 086C movf _date+1,w 3130 02A6 1803 skipnc 3131 02A7 3E01 addlw 1 3132 02A8 3E00 addlw 0 3133 02A9 00C7 movwf ??_edit_Date_Time+1 3134 02AA 085E movf _year+1,w 3135 02AB 00B2 movwf Get_Days_In_Month@y+1 3136 02AC 085D movf _year,w 3137 02AD 00B1 movwf Get_Days_In_Month@y 3138 02AE 086A movf _month+1,w 3139 02AF 00B4 movwf Get_Days_In_Month@m+1 3140 02B0 0869 movf _month,w 3141 02B1 00B3 movwf Get_Days_In_Month@m 3142 02B2 120A 118A 27C5 120A 118A fcall _Get_Days_In_Month 3143 02B7 1283 bcf 3,5 ;RP0=0, select bank0 3144 02B8 1303 bcf 3,6 ;RP1=0, select bank0 3145 02B9 0847 movf ??_edit_Date_Time+1,w 3146 02BA 0232 subwf ?_Get_Days_In_Month+1,w 3147 02BB 1D03 skipz 3148 02BC 2ABF goto u2705 3149 02BD 0846 movf ??_edit_Date_Time,w 3150 02BE 0231 subwf ?_Get_Days_In_Month,w 3151 02BF u2705: 3152 02BF 1803 skipnc 3153 02C0 2AC6 goto l3120 3154 3155 ;main.c: 481: date = 1; 3156 02C1 3001 movlw 1 3157 02C2 00EB movwf _date 3158 02C3 3000 movlw 0 3159 02C4 00EC movwf _date+1 3160 3161 ;main.c: 482: } else { 3162 02C5 2A46 goto l3106 3163 02C6 l3120: 3164 3165 ;main.c: 483: date += 1; 3166 02C6 3001 movlw 1 3167 02C7 07EB addwf _date,f 3168 02C8 1803 skipnc 3169 02C9 0AEC incf _date+1,f 3170 02CA 3000 movlw 0 3171 02CB 07EC addwf _date+1,f 3172 02CC 2A46 goto l3106 3173 02CD l3130: 3174 ;main.c: 488: Lcd_Set_Cursor(2, 6); 3175 3176 ;main.c: 487: Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month + , date))); 3177 3178 ;main.c: 486: Lcd_Set_Cursor(2, 2); 3179 3180 3181 ;main.c: 495: Lcd_Set_Cursor(2, 16); 3182 02CD 3010 movlw 16 3183 02CE 00C6 movwf ??_edit_Date_Time 3184 02CF 0846 movf ??_edit_Date_Time,w 3185 02D0 00F6 movwf Lcd_Set_Cursor@b 3186 02D1 3002 movlw 2 3187 02D2 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3188 3189 ;main.c: 496: Lcd_Write_Char('M'); 3190 02D7 304D movlw 77 3191 02D8 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 3192 3193 ;main.c: 497: if (!RB5) { 3194 02DD 1283 bcf 3,5 ;RP0=0, select bank0 3195 02DE 1303 bcf 3,6 ;RP1=0, select bank0 3196 02DF 1A86 btfsc 6,5 ;volatile 3197 02E0 2B1B goto l216 3198 3199 ;main.c: 498: _delay((unsigned long)((250)*(20000000/4000.0))); 3200 02E1 3007 movlw 7 3201 02E2 1283 bcf 3,5 ;RP0=0, select bank0 3202 02E3 1303 bcf 3,6 ;RP1=0, select bank0 3203 02E4 00C8 movwf ??_edit_Date_Time+2 3204 02E5 3058 movlw 88 3205 02E6 00C7 movwf ??_edit_Date_Time+1 3206 02E7 3059 movlw 89 3207 02E8 00C6 movwf ??_edit_Date_Time 3208 02E9 u3057: 3209 02E9 0BC6 decfsz ??_edit_Date_Time,f 3210 02EA 2AE9 goto u3057 3211 02EB 0BC7 decfsz ??_edit_Date_Time+1,f 3212 02EC 2AE9 goto u3057 3213 02ED 0BC8 decfsz ??_edit_Date_Time+2,f 3214 02EE 2AE9 goto u3057 3215 3216 ;main.c: 499: if (month - 1 == 0) { 3217 02EF 1283 bcf 3,5 ;RP0=0, select bank0 3218 02F0 1303 bcf 3,6 ;RP1=0, select bank0 3219 02F1 0869 movf _month,w 3220 02F2 3EFF addlw 255 3221 02F3 00C6 movwf ??_edit_Date_Time 3222 02F4 086A movf _month+1,w 3223 02F5 1803 skipnc 3224 02F6 3E01 addlw 1 3225 02F7 3EFF addlw 255 3226 02F8 00C7 movwf ??_edit_Date_Time+1 3227 02F9 0846 movf ??_edit_Date_Time,w 3228 02FA 0447 iorwf ??_edit_Date_Time+1,w 3229 02FB 1D03 btfss 3,2 3230 02FC 2AFF goto l3140 3231 3232 ;main.c: 500: month = 12; 3233 02FD 300C movlw 12 3234 02FE 2B3D goto L3 3235 02FF l3140: 3236 ;main.c: 501: } else { 3237 3238 3239 ;main.c: 502: month -= 1; 3240 02FF 3001 movlw 1 3241 0300 02E9 subwf _month,f 3242 0301 3000 movlw 0 3243 0302 1C03 skipc 3244 0303 03EA decf _month+1,f 3245 0304 02EA subwf _month+1,f 3246 0305 l3142: 3247 3248 ;main.c: 504: Lcd_Set_Cursor(2, 9); 3249 0305 3009 movlw 9 3250 0306 00C6 movwf ??_edit_Date_Time 3251 0307 0846 movf ??_edit_Date_Time,w 3252 0308 00F6 movwf Lcd_Set_Cursor@b 3253 0309 3002 movlw 2 3254 030A 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3255 3256 ;main.c: 505: display_Digit(month); 3257 030F 1283 bcf 3,5 ;RP0=0, select bank0 3258 0310 1303 bcf 3,6 ;RP1=0, select bank0 3259 0311 086A movf _month+1,w 3260 0312 00AD movwf display_Digit@data+1 3261 0313 0869 movf _month,w 3262 0314 00AC movwf display_Digit@data 3263 0315 120A 158A 2187 120A 118A fcall _display_Digit 3264 3265 ;main.c: 507: } else if (!RB4) { 3266 031A 2BD7 goto l188 3267 031B l216: 3268 031B 1A06 btfsc 6,4 ;volatile 3269 031C 2BD7 goto l188 3270 3271 ;main.c: 508: _delay((unsigned long)((250)*(20000000/4000.0))); 3272 031D 3007 movlw 7 3273 031E 1283 bcf 3,5 ;RP0=0, select bank0 3274 031F 1303 bcf 3,6 ;RP1=0, select bank0 3275 0320 00C8 movwf ??_edit_Date_Time+2 3276 0321 3058 movlw 88 3277 0322 00C7 movwf ??_edit_Date_Time+1 3278 0323 3059 movlw 89 3279 0324 00C6 movwf ??_edit_Date_Time 3280 0325 u3067: 3281 0325 0BC6 decfsz ??_edit_Date_Time,f 3282 0326 2B25 goto u3067 3283 0327 0BC7 decfsz ??_edit_Date_Time+1,f 3284 0328 2B25 goto u3067 3285 0329 0BC8 decfsz ??_edit_Date_Time+2,f 3286 032A 2B25 goto u3067 3287 3288 ;main.c: 509: if (month + 1 > 12) { 3289 032B 1283 bcf 3,5 ;RP0=0, select bank0 3290 032C 1303 bcf 3,6 ;RP1=0, select bank0 3291 032D 0869 movf _month,w 3292 032E 3E01 addlw 1 3293 032F 00C6 movwf ??_edit_Date_Time 3294 0330 086A movf _month+1,w 3295 0331 1803 skipnc 3296 0332 3E01 addlw 1 3297 0333 3E00 addlw 0 3298 0334 00C7 movwf ??_edit_Date_Time+1 3299 0335 3000 movlw 0 3300 0336 0247 subwf ??_edit_Date_Time+1,w 3301 0337 300D movlw 13 3302 0338 1903 skipnz 3303 0339 0246 subwf ??_edit_Date_Time,w 3304 033A 1C03 skipc 3305 033B 2B41 goto l3152 3306 3307 ;main.c: 510: month = 1; 3308 033C 3001 movlw 1 3309 033D L3: 3310 033D 00E9 movwf _month 3311 033E 3000 movlw 0 3312 033F 00EA movwf _month+1 3313 3314 ;main.c: 511: } else { 3315 0340 2B05 goto l3142 3316 0341 l3152: 3317 3318 ;main.c: 512: month += 1; 3319 0341 3001 movlw 1 3320 0342 07E9 addwf _month,f 3321 0343 1803 skipnc 3322 0344 0AEA incf _month+1,f 3323 0345 3000 movlw 0 3324 0346 07EA addwf _month+1,f 3325 0347 2B05 goto l3142 3326 0348 l3158: 3327 ;main.c: 515: Lcd_Set_Cursor(2, 9); 3328 3329 3330 ;main.c: 522: Lcd_Set_Cursor(2, 16); 3331 0348 3010 movlw 16 3332 0349 00C6 movwf ??_edit_Date_Time 3333 034A 0846 movf ??_edit_Date_Time,w 3334 034B 00F6 movwf Lcd_Set_Cursor@b 3335 034C 3002 movlw 2 3336 034D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3337 3338 ;main.c: 523: Lcd_Write_Char('Y'); 3339 0352 3059 movlw 89 3340 0353 120A 158A 2284 120A 118A fcall _Lcd_Write_Char 3341 3342 ;main.c: 524: if (!RB5) { 3343 0358 1283 bcf 3,5 ;RP0=0, select bank0 3344 0359 1303 bcf 3,6 ;RP1=0, select bank0 3345 035A 1A86 btfsc 6,5 ;volatile 3346 035B 2B91 goto l224 3347 3348 ;main.c: 525: _delay((unsigned long)((250)*(20000000/4000.0))); 3349 035C 3007 movlw 7 3350 035D 1283 bcf 3,5 ;RP0=0, select bank0 3351 035E 1303 bcf 3,6 ;RP1=0, select bank0 3352 035F 00C8 movwf ??_edit_Date_Time+2 3353 0360 3058 movlw 88 3354 0361 00C7 movwf ??_edit_Date_Time+1 3355 0362 3059 movlw 89 3356 0363 00C6 movwf ??_edit_Date_Time 3357 0364 u3077: 3358 0364 0BC6 decfsz ??_edit_Date_Time,f 3359 0365 2B64 goto u3077 3360 0366 0BC7 decfsz ??_edit_Date_Time+1,f 3361 0367 2B64 goto u3077 3362 0368 0BC8 decfsz ??_edit_Date_Time+2,f 3363 0369 2B64 goto u3077 3364 3365 ;main.c: 526: if (year == 0) { 3366 036A 1283 bcf 3,5 ;RP0=0, select bank0 3367 036B 1303 bcf 3,6 ;RP1=0, select bank0 3368 036C 085D movf _year,w 3369 036D 045E iorwf _year+1,w 3370 036E 1D03 btfss 3,2 3371 036F 2B75 goto l3168 3372 3373 ;main.c: 527: year = 99; 3374 0370 3063 movlw 99 3375 0371 00DD movwf _year 3376 0372 3000 movlw 0 3377 0373 00DE movwf _year+1 3378 3379 ;main.c: 528: } else { 3380 0374 2B7B goto l3170 3381 0375 l3168: 3382 3383 ;main.c: 529: year -= 1; 3384 0375 3001 movlw 1 3385 0376 02DD subwf _year,f 3386 0377 3000 movlw 0 3387 0378 1C03 skipc 3388 0379 03DE decf _year+1,f 3389 037A 02DE subwf _year+1,f 3390 037B l3170: 3391 3392 ;main.c: 531: Lcd_Set_Cursor(2, 14); 3393 037B 300E movlw 14 3394 037C 00C6 movwf ??_edit_Date_Time 3395 037D 0846 movf ??_edit_Date_Time,w 3396 037E 00F6 movwf Lcd_Set_Cursor@b 3397 037F 3002 movlw 2 3398 0380 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3399 3400 ;main.c: 532: display_Digit(year); 3401 0385 1283 bcf 3,5 ;RP0=0, select bank0 3402 0386 1303 bcf 3,6 ;RP1=0, select bank0 3403 0387 085E movf _year+1,w 3404 0388 00AD movwf display_Digit@data+1 3405 0389 085D movf _year,w 3406 038A 00AC movwf display_Digit@data 3407 038B 120A 158A 2187 120A 118A fcall _display_Digit 3408 3409 ;main.c: 534: } else if (!RB4) { 3410 0390 2BD7 goto l188 3411 0391 l224: 3412 0391 1A06 btfsc 6,4 ;volatile 3413 0392 2BD7 goto l188 3414 3415 ;main.c: 535: _delay((unsigned long)((250)*(20000000/4000.0))); 3416 0393 3007 movlw 7 3417 0394 1283 bcf 3,5 ;RP0=0, select bank0 3418 0395 1303 bcf 3,6 ;RP1=0, select bank0 3419 0396 00C8 movwf ??_edit_Date_Time+2 3420 0397 3058 movlw 88 3421 0398 00C7 movwf ??_edit_Date_Time+1 3422 0399 3059 movlw 89 3423 039A 00C6 movwf ??_edit_Date_Time 3424 039B u3087: 3425 039B 0BC6 decfsz ??_edit_Date_Time,f 3426 039C 2B9B goto u3087 3427 039D 0BC7 decfsz ??_edit_Date_Time+1,f 3428 039E 2B9B goto u3087 3429 039F 0BC8 decfsz ??_edit_Date_Time+2,f 3430 03A0 2B9B goto u3087 3431 3432 ;main.c: 536: if (year + 1 > 99) { 3433 03A1 1283 bcf 3,5 ;RP0=0, select bank0 3434 03A2 1303 bcf 3,6 ;RP1=0, select bank0 3435 03A3 085D movf _year,w 3436 03A4 3E01 addlw 1 3437 03A5 00C6 movwf ??_edit_Date_Time 3438 03A6 085E movf _year+1,w 3439 03A7 1803 skipnc 3440 03A8 3E01 addlw 1 3441 03A9 3E00 addlw 0 3442 03AA 00C7 movwf ??_edit_Date_Time+1 3443 03AB 3000 movlw 0 3444 03AC 0247 subwf ??_edit_Date_Time+1,w 3445 03AD 3064 movlw 100 3446 03AE 1903 skipnz 3447 03AF 0246 subwf ??_edit_Date_Time,w 3448 03B0 1C03 skipc 3449 03B1 2BB5 goto l3180 3450 3451 ;main.c: 537: year = 0; 3452 03B2 01DD clrf _year 3453 03B3 01DE clrf _year+1 3454 3455 ;main.c: 538: } else { 3456 03B4 2B7B goto l3170 3457 03B5 l3180: 3458 3459 ;main.c: 539: year += 1; 3460 03B5 3001 movlw 1 3461 03B6 07DD addwf _year,f 3462 03B7 1803 skipnc 3463 03B8 0ADE incf _year+1,f 3464 03B9 3000 movlw 0 3465 03BA 07DE addwf _year+1,f 3466 03BB 2B7B goto l3170 3467 03BC l3188: 3468 ;main.c: 542: Lcd_Set_Cursor(2, 14); 3469 3470 3471 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw + itches 3472 ; Switch size 1, requested type "simple" 3473 ; Number of cases is 1, Range of values is 0 to 0 3474 ; switch strategies available: 3475 ; Name Instructions Cycles 3476 ; simple_byte 4 3 (average) 3477 ; direct_byte 11 8 (fixed) 3478 ; jumptable 260 6 (fixed) 3479 ; Chosen strategy is simple_byte 3480 03BC 1283 bcf 3,5 ;RP0=0, select bank0 3481 03BD 1303 bcf 3,6 ;RP1=0, select bank0 3482 03BE 0866 movf _edit_datetime+1,w 3483 03BF 3A00 xorlw 0 ; case 0 3484 03C0 1903 skipnz 3485 03C1 2BC3 goto l3310 3486 03C2 2BD7 goto l188 3487 03C3 l3310: 3488 3489 ; Switch size 1, requested type "simple" 3490 ; Number of cases is 6, Range of values is 1 to 6 3491 ; switch strategies available: 3492 ; Name Instructions Cycles 3493 ; simple_byte 19 10 (average) 3494 ; direct_byte 29 11 (fixed) 3495 ; jumptable 263 9 (fixed) 3496 ; Chosen strategy is simple_byte 3497 03C3 0865 movf _edit_datetime,w 3498 03C4 3A01 xorlw 1 ; case 1 3499 03C5 1903 skipnz 3500 03C6 289A goto l3006 3501 03C7 3A03 xorlw 3 ; case 2 3502 03C8 1903 skipnz 3503 03C9 290C goto l3034 3504 03CA 3A01 xorlw 1 ; case 3 3505 03CB 1903 skipnz 3506 03CC 2980 goto l3062 3507 03CD 3A07 xorlw 7 ; case 4 3508 03CE 1903 skipnz 3509 03CF 2B48 goto l3158 3510 03D0 3A01 xorlw 1 ; case 5 3511 03D1 1903 skipnz 3512 03D2 2ACD goto l3130 3513 03D3 3A03 xorlw 3 ; case 6 3514 03D4 1903 skipnz 3515 03D5 29FC goto l3094 3516 03D6 2BD7 goto l188 3517 03D7 l188: 3518 3519 ;main.c: 554: if (!RB2) { 3520 03D7 1283 bcf 3,5 ;RP0=0, select bank0 3521 03D8 1303 bcf 3,6 ;RP1=0, select bank0 3522 03D9 1906 btfsc 6,2 ;volatile 3523 03DA 2BF1 goto l3192 3524 3525 ;main.c: 555: _delay((unsigned long)((250)*(20000000/4000.0))); 3526 03DB 3007 movlw 7 3527 03DC 1283 bcf 3,5 ;RP0=0, select bank0 3528 03DD 1303 bcf 3,6 ;RP1=0, select bank0 3529 03DE 00C8 movwf ??_edit_Date_Time+2 3530 03DF 3058 movlw 88 3531 03E0 00C7 movwf ??_edit_Date_Time+1 3532 03E1 3059 movlw 89 3533 03E2 00C6 movwf ??_edit_Date_Time 3534 03E3 u3097: 3535 03E3 0BC6 decfsz ??_edit_Date_Time,f 3536 03E4 2BE3 goto u3097 3537 03E5 0BC7 decfsz ??_edit_Date_Time+1,f 3538 03E6 2BE3 goto u3097 3539 03E7 0BC8 decfsz ??_edit_Date_Time+2,f 3540 03E8 2BE3 goto u3097 3541 03E9 L2: 3542 3543 ;main.c: 556: edit_datetime++; 3544 03E9 3001 movlw 1 3545 03EA 1283 bcf 3,5 ;RP0=0, select bank0 3546 03EB 1303 bcf 3,6 ;RP1=0, select bank0 3547 03EC 07E5 addwf _edit_datetime,f 3548 03ED 1803 skipnc 3549 03EE 0AE6 incf _edit_datetime+1,f 3550 03EF 3000 movlw 0 3551 03F0 07E6 addwf _edit_datetime+1,f 3552 03F1 l3192: 3553 3554 ;main.c: 365: while (edit_datetime > 0 && edit_datetime < 7) { 3555 03F1 0865 movf _edit_datetime,w 3556 03F2 0466 iorwf _edit_datetime+1,w 3557 03F3 1903 btfsc 3,2 3558 03F4 2BFC goto l3196 3559 03F5 3000 movlw 0 3560 03F6 0266 subwf _edit_datetime+1,w 3561 03F7 3007 movlw 7 3562 03F8 1903 skipnz 3563 03F9 0265 subwf _edit_datetime,w 3564 03FA 1C03 skipc 3565 03FB 2877 goto l3004 3566 03FC l3196: 3567 3568 ;main.c: 567: if (edit_datetime > 6) { 3569 03FC 3000 movlw 0 3570 03FD 0266 subwf _edit_datetime+1,w 3571 03FE 3007 movlw 7 3572 03FF 1903 skipnz 3573 0400 0265 subwf _edit_datetime,w 3574 0401 1C03 skipc 3575 0402 0008 return 3576 3577 ;main.c: 568: Lcd_Set_Cursor(2, 16); 3578 0403 3010 movlw 16 3579 0404 00C6 movwf ??_edit_Date_Time 3580 0405 0846 movf ??_edit_Date_Time,w 3581 0406 00F6 movwf Lcd_Set_Cursor@b 3582 0407 3002 movlw 2 3583 0408 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor 3584 3585 ;main.c: 569: Lcd_Write_String(" "); 3586 040D 3010 movlw (low (((STR_4+15)-__stringbase)| (0+32768)))& (0+255) 3587 040E 1283 bcf 3,5 ;RP0=0, select bank0 3588 040F 1303 bcf 3,6 ;RP1=0, select bank0 3589 0410 00BF movwf Lcd_Write_String@a 3590 0411 3080 movlw 128 3591 0412 00C0 movwf Lcd_Write_String@a+1 3592 0413 120A 158A 2338 120A 118A fcall _Lcd_Write_String 3593 3594 ;main.c: 570: edit_datetime = 0; 3595 0418 1283 bcf 3,5 ;RP0=0, select bank0 3596 0419 1303 bcf 3,6 ;RP1=0, select bank0 3597 041A 01E5 clrf _edit_datetime 3598 041B 01E6 clrf _edit_datetime+1 3599 3600 ;main.c: 576: if(hour_org != hour || min_org != min || sec_org != sec 3601 041C 0860 movf _hour+1,w 3602 041D 064C xorwf edit_Date_Time@hour_org+1,w 3603 041E 1D03 skipz 3604 041F 2C22 goto u2835 3605 0420 085F movf _hour,w 3606 0421 064B xorwf edit_Date_Time@hour_org,w 3607 0422 u2835: 3608 0422 1D03 skipz 3609 0423 2C4C goto l3218 3610 0424 0862 movf _min+1,w 3611 0425 064E xorwf edit_Date_Time@min_org+1,w 3612 0426 1D03 skipz 3613 0427 2C2A goto u2845 3614 0428 0861 movf _min,w 3615 0429 064D xorwf edit_Date_Time@min_org,w 3616 042A u2845: 3617 042A 1D03 skipz 3618 042B 2C4C goto l3218 3619 042C 0864 movf _sec+1,w 3620 042D 0656 xorwf edit_Date_Time@sec_org+1,w 3621 042E 1D03 skipz 3622 042F 2C32 goto u2855 3623 0430 0863 movf _sec,w 3624 0431 0655 xorwf edit_Date_Time@sec_org,w 3625 0432 u2855: 3626 0432 1D03 skipz 3627 0433 2C4C goto l3218 3628 0434 085E movf _year+1,w 3629 0435 0650 xorwf edit_Date_Time@year_org+1,w 3630 0436 1D03 skipz 3631 0437 2C3A goto u2865 3632 0438 085D movf _year,w 3633 0439 064F xorwf edit_Date_Time@year_org,w 3634 043A u2865: 3635 043A 1D03 skipz 3636 043B 2C4C goto l3218 3637 043C 086A movf _month+1,w 3638 043D 0652 xorwf edit_Date_Time@month_org+1,w 3639 043E 1D03 skipz 3640 043F 2C42 goto u2875 3641 0440 0869 movf _month,w 3642 0441 0651 xorwf edit_Date_Time@month_org,w 3643 0442 u2875: 3644 0442 1D03 skipz 3645 0443 2C4C goto l3218 3646 0444 086C movf _date+1,w 3647 0445 0654 xorwf edit_Date_Time@date_org+1,w 3648 0446 1D03 skipz 3649 0447 2C4A goto u2885 3650 0448 086B movf _date,w 3651 0449 0653 xorwf edit_Date_Time@date_org,w 3652 044A u2885: 3653 044A 1903 skipnz 3654 044B 0008 return 3655 044C l3218: 3656 3657 ;main.c: 579: Set_Time(); 3658 044C 120A 158A 2542 120A 118A fcall _Set_Time 3659 3660 ;main.c: 580: Set_DayOfWeek(Get_DayOfWeek(year, month, date)); 3661 0451 1283 bcf 3,5 ;RP0=0, select bank0 3662 0452 1303 bcf 3,6 ;RP1=0, select bank0 3663 0453 085E movf _year+1,w 3664 0454 00AD movwf Get_DayOfWeek@y+1 3665 0455 085D movf _year,w 3666 0456 00AC movwf Get_DayOfWeek@y 3667 0457 086A movf _month+1,w 3668 0458 00AF movwf Get_DayOfWeek@m+1 3669 0459 0869 movf _month,w 3670 045A 00AE movwf Get_DayOfWeek@m 3671 045B 086C movf _date+1,w 3672 045C 00B1 movwf Get_DayOfWeek@d+1 3673 045D 086B movf _date,w 3674 045E 00B0 movwf Get_DayOfWeek@d 3675 045F 120A 158A 266C 120A 118A fcall _Get_DayOfWeek 3676 0464 1283 bcf 3,5 ;RP0=0, select bank0 3677 0465 1303 bcf 3,6 ;RP1=0, select bank0 3678 0466 082D movf ?_Get_DayOfWeek+1,w 3679 0467 00BD movwf Set_DayOfWeek@dow+1 3680 0468 082C movf ?_Get_DayOfWeek,w 3681 0469 00BC movwf Set_DayOfWeek@dow 3682 046A 120A 158A 2131 120A 118A fcall _Set_DayOfWeek 3683 3684 ;main.c: 581: Set_Date(); 3685 046F 120A 158A 25A2 fcall _Set_Date 3686 0472 0008 return 3687 0473 __end_of_edit_Date_Time: 3688 3689 psect text5 3690 0987 __ptext5: 3691 ;; *************** function _display_Digit ***************** 3692 ;; Defined at: 3693 ;; line 245 in file "main.c" 3694 ;; Parameters: Size Location Type 3695 ;; data 2 12[BANK0 ] unsigned int 3696 ;; Auto vars: Size Location Type 3697 ;; None 3698 ;; Return value: Size Location Type 3699 ;; 1 wreg void 3700 ;; Registers used: 3701 ;; wreg, status,2, status,0, pclath, cstack 3702 ;; Tracked objects: 3703 ;; On entry : 0/0 3704 ;; On exit : 0/0 3705 ;; Unchanged: 0/0 3706 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3707 ;; Params: 0 2 0 0 0 3708 ;; Locals: 0 0 0 0 0 3709 ;; Temps: 0 0 0 0 0 3710 ;; Totals: 0 2 0 0 0 3711 ;;Total ram usage: 2 bytes 3712 ;; Hardware stack levels used: 1 3713 ;; Hardware stack levels required when called: 3 3714 ;; This function calls: 3715 ;; _Lcd_Write_Char 3716 ;; ___lwdiv 3717 ;; ___lwmod 3718 ;; This function is called by: 3719 ;; _update_Display 3720 ;; _edit_Date_Time 3721 ;; This function uses a non-reentrant model 3722 ;; 3723 3724 3725 ;psect for function _display_Digit 3726 0987 _display_Digit: 3727 3728 ;main.c: 246: Lcd_Write_Char(((data / 10) + '0')); 3729 3730 ;incstack = 0 3731 ; Regs used in _display_Digit: [wreg+status,2+status,0+pclath+cstack] 3732 0987 300A movlw 10 3733 0988 1283 bcf 3,5 ;RP0=0, select bank0 3734 0989 1303 bcf 3,6 ;RP1=0, select bank0 3735 098A 00A0 movwf ___lwdiv@divisor 3736 098B 3000 movlw 0 3737 098C 00A1 movwf ___lwdiv@divisor+1 3738 098D 082D movf display_Digit@data+1,w 3739 098E 00A3 movwf ___lwdiv@dividend+1 3740 098F 082C movf display_Digit@data,w 3741 0990 00A2 movwf ___lwdiv@dividend 3742 0991 120A 158A 22FA 120A 158A fcall ___lwdiv 3743 0996 1283 bcf 3,5 ;RP0=0, select bank0 3744 0997 1303 bcf 3,6 ;RP1=0, select bank0 3745 0998 0820 movf ?___lwdiv,w 3746 0999 3E30 addlw 48 3747 099A 120A 158A 2284 120A 158A fcall _Lcd_Write_Char 3748 3749 ;main.c: 247: Lcd_Write_Char(((data % 10) + '0')); 3750 099F 300A movlw 10 3751 09A0 1283 bcf 3,5 ;RP0=0, select bank0 3752 09A1 1303 bcf 3,6 ;RP1=0, select bank0 3753 09A2 00A7 movwf ___lwmod@divisor 3754 09A3 3000 movlw 0 3755 09A4 00A8 movwf ___lwmod@divisor+1 3756 09A5 082D movf display_Digit@data+1,w 3757 09A6 00AA movwf ___lwmod@dividend+1 3758 09A7 082C movf display_Digit@data,w 3759 09A8 00A9 movwf ___lwmod@dividend 3760 09A9 120A 158A 21E6 120A 158A fcall ___lwmod 3761 09AE 1283 bcf 3,5 ;RP0=0, select bank0 3762 09AF 1303 bcf 3,6 ;RP1=0, select bank0 3763 09B0 0827 movf ?___lwmod,w 3764 09B1 3E30 addlw 48 3765 09B2 120A 158A 2284 fcall _Lcd_Write_Char 3766 09B5 0008 return 3767 09B6 __end_of_display_Digit: 3768 3769 psect text6 3770 0D42 __ptext6: 3771 ;; *************** function _Set_Time ***************** 3772 ;; Defined at: 3773 ;; line 93 in file "ds3231.c" 3774 ;; Parameters: Size Location Type 3775 ;; None 3776 ;; Auto vars: Size Location Type 3777 ;; None 3778 ;; Return value: Size Location Type 3779 ;; 1 wreg void 3780 ;; Registers used: 3781 ;; wreg, status,2, status,0, pclath, cstack 3782 ;; Tracked objects: 3783 ;; On entry : 0/0 3784 ;; On exit : 0/0 3785 ;; Unchanged: 0/0 3786 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3787 ;; Params: 0 0 0 0 0 3788 ;; Locals: 0 0 0 0 0 3789 ;; Temps: 0 0 0 0 0 3790 ;; Totals: 0 0 0 0 0 3791 ;;Total ram usage: 0 bytes 3792 ;; Hardware stack levels used: 1 3793 ;; Hardware stack levels required when called: 3 3794 ;; This function calls: 3795 ;; _DEC_2_BCD 3796 ;; _I2C_Master_Start 3797 ;; _I2C_Master_Stop 3798 ;; _I2C_Master_Write 3799 ;; This function is called by: 3800 ;; _edit_Date_Time 3801 ;; This function uses a non-reentrant model 3802 ;; 3803 3804 3805 ;psect for function _Set_Time 3806 0D42 _Set_Time: 3807 3808 ;ds3231.c: 94: I2C_Master_Start(); 3809 3810 ;incstack = 0 3811 ; Regs used in _Set_Time: [wreg+status,2+status,0+pclath+cstack] 3812 0D42 160A 118A 274D 120A 158A fcall _I2C_Master_Start 3813 3814 ;ds3231.c: 95: I2C_Master_Write(0xD0); 3815 0D47 30D0 movlw 208 3816 0D48 1283 bcf 3,5 ;RP0=0, select bank0 3817 0D49 1303 bcf 3,6 ;RP1=0, select bank0 3818 0D4A 00A8 movwf I2C_Master_Write@data 3819 0D4B 3000 movlw 0 3820 0D4C 00A9 movwf I2C_Master_Write@data+1 3821 0D4D 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3822 3823 ;ds3231.c: 96: I2C_Master_Write(0); 3824 0D52 3000 movlw 0 3825 0D53 1283 bcf 3,5 ;RP0=0, select bank0 3826 0D54 1303 bcf 3,6 ;RP1=0, select bank0 3827 0D55 00A8 movwf I2C_Master_Write@data 3828 0D56 00A9 movwf I2C_Master_Write@data+1 3829 0D57 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3830 3831 ;ds3231.c: 97: I2C_Master_Write(DEC_2_BCD(sec)); 3832 0D5C 1283 bcf 3,5 ;RP0=0, select bank0 3833 0D5D 1303 bcf 3,6 ;RP1=0, select bank0 3834 0D5E 0864 movf _sec+1,w 3835 0D5F 00A5 movwf DEC_2_BCD@to_convert+1 3836 0D60 0863 movf _sec,w 3837 0D61 00A4 movwf DEC_2_BCD@to_convert 3838 0D62 120A 158A 221A 120A 158A fcall _DEC_2_BCD 3839 0D67 1283 bcf 3,5 ;RP0=0, select bank0 3840 0D68 1303 bcf 3,6 ;RP1=0, select bank0 3841 0D69 0825 movf ?_DEC_2_BCD+1,w 3842 0D6A 00A9 movwf I2C_Master_Write@data+1 3843 0D6B 0824 movf ?_DEC_2_BCD,w 3844 0D6C 00A8 movwf I2C_Master_Write@data 3845 0D6D 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3846 3847 ;ds3231.c: 98: I2C_Master_Write(DEC_2_BCD(min)); 3848 0D72 1283 bcf 3,5 ;RP0=0, select bank0 3849 0D73 1303 bcf 3,6 ;RP1=0, select bank0 3850 0D74 0862 movf _min+1,w 3851 0D75 00A5 movwf DEC_2_BCD@to_convert+1 3852 0D76 0861 movf _min,w 3853 0D77 00A4 movwf DEC_2_BCD@to_convert 3854 0D78 120A 158A 221A 120A 158A fcall _DEC_2_BCD 3855 0D7D 1283 bcf 3,5 ;RP0=0, select bank0 3856 0D7E 1303 bcf 3,6 ;RP1=0, select bank0 3857 0D7F 0825 movf ?_DEC_2_BCD+1,w 3858 0D80 00A9 movwf I2C_Master_Write@data+1 3859 0D81 0824 movf ?_DEC_2_BCD,w 3860 0D82 00A8 movwf I2C_Master_Write@data 3861 0D83 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3862 3863 ;ds3231.c: 99: I2C_Master_Write(DEC_2_BCD(hour)); 3864 0D88 1283 bcf 3,5 ;RP0=0, select bank0 3865 0D89 1303 bcf 3,6 ;RP1=0, select bank0 3866 0D8A 0860 movf _hour+1,w 3867 0D8B 00A5 movwf DEC_2_BCD@to_convert+1 3868 0D8C 085F movf _hour,w 3869 0D8D 00A4 movwf DEC_2_BCD@to_convert 3870 0D8E 120A 158A 221A 120A 158A fcall _DEC_2_BCD 3871 0D93 1283 bcf 3,5 ;RP0=0, select bank0 3872 0D94 1303 bcf 3,6 ;RP1=0, select bank0 3873 0D95 0825 movf ?_DEC_2_BCD+1,w 3874 0D96 00A9 movwf I2C_Master_Write@data+1 3875 0D97 0824 movf ?_DEC_2_BCD,w 3876 0D98 00A8 movwf I2C_Master_Write@data 3877 0D99 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3878 3879 ;ds3231.c: 100: I2C_Master_Stop(); 3880 0D9E 160A 118A 2754 fcall _I2C_Master_Stop 3881 0DA1 0008 return 3882 0DA2 __end_of_Set_Time: 3883 3884 psect text7 3885 0931 __ptext7: 3886 ;; *************** function _Set_DayOfWeek ***************** 3887 ;; Defined at: 3888 ;; line 77 in file "ds3231.c" 3889 ;; Parameters: Size Location Type 3890 ;; dow 2 28[BANK0 ] int 3891 ;; Auto vars: Size Location Type 3892 ;; None 3893 ;; Return value: Size Location Type 3894 ;; 1 wreg void 3895 ;; Registers used: 3896 ;; wreg, status,2, status,0, pclath, cstack 3897 ;; Tracked objects: 3898 ;; On entry : 0/0 3899 ;; On exit : 0/0 3900 ;; Unchanged: 0/0 3901 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3902 ;; Params: 0 2 0 0 0 3903 ;; Locals: 0 0 0 0 0 3904 ;; Temps: 0 0 0 0 0 3905 ;; Totals: 0 2 0 0 0 3906 ;;Total ram usage: 2 bytes 3907 ;; Hardware stack levels used: 1 3908 ;; Hardware stack levels required when called: 3 3909 ;; This function calls: 3910 ;; _I2C_Master_Start 3911 ;; _I2C_Master_Stop 3912 ;; _I2C_Master_Write 3913 ;; This function is called by: 3914 ;; _edit_Date_Time 3915 ;; This function uses a non-reentrant model 3916 ;; 3917 3918 3919 ;psect for function _Set_DayOfWeek 3920 0931 _Set_DayOfWeek: 3921 3922 ;ds3231.c: 78: I2C_Master_Start(); 3923 3924 ;incstack = 0 3925 ; Regs used in _Set_DayOfWeek: [wreg+status,2+status,0+pclath+cstack] 3926 0931 160A 118A 274D 120A 158A fcall _I2C_Master_Start 3927 3928 ;ds3231.c: 79: I2C_Master_Write(0xD0); 3929 0936 30D0 movlw 208 3930 0937 1283 bcf 3,5 ;RP0=0, select bank0 3931 0938 1303 bcf 3,6 ;RP1=0, select bank0 3932 0939 00A8 movwf I2C_Master_Write@data 3933 093A 3000 movlw 0 3934 093B 00A9 movwf I2C_Master_Write@data+1 3935 093C 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3936 3937 ;ds3231.c: 80: I2C_Master_Write(3); 3938 0941 3003 movlw 3 3939 0942 1283 bcf 3,5 ;RP0=0, select bank0 3940 0943 1303 bcf 3,6 ;RP1=0, select bank0 3941 0944 00A8 movwf I2C_Master_Write@data 3942 0945 3000 movlw 0 3943 0946 00A9 movwf I2C_Master_Write@data+1 3944 0947 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3945 3946 ;ds3231.c: 81: I2C_Master_Write(dow); 3947 094C 1283 bcf 3,5 ;RP0=0, select bank0 3948 094D 1303 bcf 3,6 ;RP1=0, select bank0 3949 094E 083D movf Set_DayOfWeek@dow+1,w 3950 094F 00A9 movwf I2C_Master_Write@data+1 3951 0950 083C movf Set_DayOfWeek@dow,w 3952 0951 00A8 movwf I2C_Master_Write@data 3953 0952 160A 118A 275B 120A 158A fcall _I2C_Master_Write 3954 3955 ;ds3231.c: 82: I2C_Master_Stop(); 3956 0957 160A 118A 2754 fcall _I2C_Master_Stop 3957 095A 0008 return 3958 095B __end_of_Set_DayOfWeek: 3959 3960 psect text8 3961 0DA2 __ptext8: 3962 ;; *************** function _Set_Date ***************** 3963 ;; Defined at: 3964 ;; line 67 in file "ds3231.c" 3965 ;; Parameters: Size Location Type 3966 ;; None 3967 ;; Auto vars: Size Location Type 3968 ;; None 3969 ;; Return value: Size Location Type 3970 ;; 1 wreg void 3971 ;; Registers used: 3972 ;; wreg, status,2, status,0, pclath, cstack 3973 ;; Tracked objects: 3974 ;; On entry : 0/0 3975 ;; On exit : 0/0 3976 ;; Unchanged: 0/0 3977 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3978 ;; Params: 0 0 0 0 0 3979 ;; Locals: 0 0 0 0 0 3980 ;; Temps: 0 0 0 0 0 3981 ;; Totals: 0 0 0 0 0 3982 ;;Total ram usage: 0 bytes 3983 ;; Hardware stack levels used: 1 3984 ;; Hardware stack levels required when called: 3 3985 ;; This function calls: 3986 ;; _DEC_2_BCD 3987 ;; _I2C_Master_Start 3988 ;; _I2C_Master_Stop 3989 ;; _I2C_Master_Write 3990 ;; This function is called by: 3991 ;; _edit_Date_Time 3992 ;; This function uses a non-reentrant model 3993 ;; 3994 3995 3996 ;psect for function _Set_Date 3997 0DA2 _Set_Date: 3998 3999 ;ds3231.c: 68: I2C_Master_Start(); 4000 4001 ;incstack = 0 4002 ; Regs used in _Set_Date: [wreg+status,2+status,0+pclath+cstack] 4003 0DA2 160A 118A 274D 120A 158A fcall _I2C_Master_Start 4004 4005 ;ds3231.c: 69: I2C_Master_Write(0xD0); 4006 0DA7 30D0 movlw 208 4007 0DA8 1283 bcf 3,5 ;RP0=0, select bank0 4008 0DA9 1303 bcf 3,6 ;RP1=0, select bank0 4009 0DAA 00A8 movwf I2C_Master_Write@data 4010 0DAB 3000 movlw 0 4011 0DAC 00A9 movwf I2C_Master_Write@data+1 4012 0DAD 160A 118A 275B 120A 158A fcall _I2C_Master_Write 4013 4014 ;ds3231.c: 70: I2C_Master_Write(4); 4015 0DB2 3004 movlw 4 4016 0DB3 1283 bcf 3,5 ;RP0=0, select bank0 4017 0DB4 1303 bcf 3,6 ;RP1=0, select bank0 4018 0DB5 00A8 movwf I2C_Master_Write@data 4019 0DB6 3000 movlw 0 4020 0DB7 00A9 movwf I2C_Master_Write@data+1 4021 0DB8 160A 118A 275B 120A 158A fcall _I2C_Master_Write 4022 4023 ;ds3231.c: 71: I2C_Master_Write(DEC_2_BCD(date)); 4024 0DBD 1283 bcf 3,5 ;RP0=0, select bank0 4025 0DBE 1303 bcf 3,6 ;RP1=0, select bank0 4026 0DBF 086C movf _date+1,w 4027 0DC0 00A5 movwf DEC_2_BCD@to_convert+1 4028 0DC1 086B movf _date,w 4029 0DC2 00A4 movwf DEC_2_BCD@to_convert 4030 0DC3 120A 158A 221A 120A 158A fcall _DEC_2_BCD 4031 0DC8 1283 bcf 3,5 ;RP0=0, select bank0 4032 0DC9 1303 bcf 3,6 ;RP1=0, select bank0 4033 0DCA 0825 movf ?_DEC_2_BCD+1,w 4034 0DCB 00A9 movwf I2C_Master_Write@data+1 4035 0DCC 0824 movf ?_DEC_2_BCD,w 4036 0DCD 00A8 movwf I2C_Master_Write@data 4037 0DCE 160A 118A 275B 120A 158A fcall _I2C_Master_Write 4038 4039 ;ds3231.c: 72: I2C_Master_Write(DEC_2_BCD(month)); 4040 0DD3 1283 bcf 3,5 ;RP0=0, select bank0 4041 0DD4 1303 bcf 3,6 ;RP1=0, select bank0 4042 0DD5 086A movf _month+1,w 4043 0DD6 00A5 movwf DEC_2_BCD@to_convert+1 4044 0DD7 0869 movf _month,w 4045 0DD8 00A4 movwf DEC_2_BCD@to_convert 4046 0DD9 120A 158A 221A 120A 158A fcall _DEC_2_BCD 4047 0DDE 1283 bcf 3,5 ;RP0=0, select bank0 4048 0DDF 1303 bcf 3,6 ;RP1=0, select bank0 4049 0DE0 0825 movf ?_DEC_2_BCD+1,w 4050 0DE1 00A9 movwf I2C_Master_Write@data+1 4051 0DE2 0824 movf ?_DEC_2_BCD,w 4052 0DE3 00A8 movwf I2C_Master_Write@data 4053 0DE4 160A 118A 275B 120A 158A fcall _I2C_Master_Write 4054 4055 ;ds3231.c: 73: I2C_Master_Write(DEC_2_BCD(year)); 4056 0DE9 1283 bcf 3,5 ;RP0=0, select bank0 4057 0DEA 1303 bcf 3,6 ;RP1=0, select bank0 4058 0DEB 085E movf _year+1,w 4059 0DEC 00A5 movwf DEC_2_BCD@to_convert+1 4060 0DED 085D movf _year,w 4061 0DEE 00A4 movwf DEC_2_BCD@to_convert 4062 0DEF 120A 158A 221A 120A 158A fcall _DEC_2_BCD 4063 0DF4 1283 bcf 3,5 ;RP0=0, select bank0 4064 0DF5 1303 bcf 3,6 ;RP1=0, select bank0 4065 0DF6 0825 movf ?_DEC_2_BCD+1,w 4066 0DF7 00A9 movwf I2C_Master_Write@data+1 4067 0DF8 0824 movf ?_DEC_2_BCD,w 4068 0DF9 00A8 movwf I2C_Master_Write@data 4069 0DFA 160A 118A 275B 120A 158A fcall _I2C_Master_Write 4070 4071 ;ds3231.c: 74: I2C_Master_Stop(); 4072 0DFF 160A 118A 2754 fcall _I2C_Master_Stop 4073 0E02 0008 return 4074 0E03 __end_of_Set_Date: 4075 4076 psect text9 4077 0A1A __ptext9: 4078 ;; *************** function _DEC_2_BCD ***************** 4079 ;; Defined at: 4080 ;; line 21 in file "ds3231.c" 4081 ;; Parameters: Size Location Type 4082 ;; to_convert 2 4[BANK0 ] int 4083 ;; Auto vars: Size Location Type 4084 ;; None 4085 ;; Return value: Size Location Type 4086 ;; 2 4[BANK0 ] int 4087 ;; Registers used: 4088 ;; wreg, status,2, status,0, pclath, cstack 4089 ;; Tracked objects: 4090 ;; On entry : 0/0 4091 ;; On exit : 0/0 4092 ;; Unchanged: 0/0 4093 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4094 ;; Params: 0 2 0 0 0 4095 ;; Locals: 0 0 0 0 0 4096 ;; Temps: 0 2 0 0 0 4097 ;; Totals: 0 4 0 0 0 4098 ;;Total ram usage: 4 bytes 4099 ;; Hardware stack levels used: 1 4100 ;; Hardware stack levels required when called: 2 4101 ;; This function calls: 4102 ;; ___awdiv 4103 ;; ___awmod 4104 ;; This function is called by: 4105 ;; _Set_Date 4106 ;; _Set_Time 4107 ;; _Write_Alarms 4108 ;; This function uses a non-reentrant model 4109 ;; 4110 4111 4112 ;psect for function _DEC_2_BCD 4113 0A1A _DEC_2_BCD: 4114 4115 ;ds3231.c: 22: return ((to_convert / 10) << 4) + (to_convert % 10); 4116 4117 ;incstack = 0 4118 ; Regs used in _DEC_2_BCD: [wreg+status,2+status,0+pclath+cstack] 4119 0A1A 300A movlw 10 4120 0A1B 00F2 movwf ___awdiv@divisor 4121 0A1C 3000 movlw 0 4122 0A1D 00F3 movwf ___awdiv@divisor+1 4123 0A1E 1283 bcf 3,5 ;RP0=0, select bank0 4124 0A1F 1303 bcf 3,6 ;RP1=0, select bank0 4125 0A20 0825 movf DEC_2_BCD@to_convert+1,w 4126 0A21 00F5 movwf ___awdiv@dividend+1 4127 0A22 0824 movf DEC_2_BCD@to_convert,w 4128 0A23 00F4 movwf ___awdiv@dividend 4129 0A24 120A 158A 24E7 120A 158A fcall ___awdiv 4130 0A29 0872 movf ?___awdiv,w 4131 0A2A 1283 bcf 3,5 ;RP0=0, select bank0 4132 0A2B 1303 bcf 3,6 ;RP1=0, select bank0 4133 0A2C 00A6 movwf ??_DEC_2_BCD 4134 0A2D 0873 movf ?___awdiv+1,w 4135 0A2E 00A7 movwf ??_DEC_2_BCD+1 4136 0A2F 0EA6 swapf ??_DEC_2_BCD,f 4137 0A30 0EA7 swapf ??_DEC_2_BCD+1,f 4138 0A31 30F0 movlw 240 4139 0A32 05A7 andwf ??_DEC_2_BCD+1,f 4140 0A33 0826 movf ??_DEC_2_BCD,w 4141 0A34 390F andlw 15 4142 0A35 04A7 iorwf ??_DEC_2_BCD+1,f 4143 0A36 30F0 movlw 240 4144 0A37 05A6 andwf ??_DEC_2_BCD,f 4145 0A38 300A movlw 10 4146 0A39 00F2 movwf ___awmod@divisor 4147 0A3A 3000 movlw 0 4148 0A3B 00F3 movwf ___awmod@divisor+1 4149 0A3C 0825 movf DEC_2_BCD@to_convert+1,w 4150 0A3D 00F5 movwf ___awmod@dividend+1 4151 0A3E 0824 movf DEC_2_BCD@to_convert,w 4152 0A3F 00F4 movwf ___awmod@dividend 4153 0A40 120A 158A 244C fcall ___awmod 4154 0A43 0872 movf ?___awmod,w 4155 0A44 1283 bcf 3,5 ;RP0=0, select bank0 4156 0A45 1303 bcf 3,6 ;RP1=0, select bank0 4157 0A46 0726 addwf ??_DEC_2_BCD,w 4158 0A47 00A4 movwf ?_DEC_2_BCD 4159 0A48 0873 movf ?___awmod+1,w 4160 0A49 1803 skipnc 4161 0A4A 0A73 incf ?___awmod+1,w 4162 0A4B 0727 addwf ??_DEC_2_BCD+1,w 4163 0A4C 00A5 movwf ?_DEC_2_BCD+1 4164 0A4D 0008 return 4165 0A4E __end_of_DEC_2_BCD: 4166 4167 psect text10 4168 0C4C __ptext10: 4169 ;; *************** function ___awmod ***************** 4170 ;; Defined at: 4171 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c" 4172 ;; Parameters: Size Location Type 4173 ;; divisor 2 2[COMMON] int 4174 ;; dividend 2 4[COMMON] int 4175 ;; Auto vars: Size Location Type 4176 ;; sign 1 8[COMMON] unsigned char 4177 ;; counter 1 7[COMMON] unsigned char 4178 ;; Return value: Size Location Type 4179 ;; 2 2[COMMON] int 4180 ;; Registers used: 4181 ;; wreg, status,2, status,0 4182 ;; Tracked objects: 4183 ;; On entry : 0/0 4184 ;; On exit : 0/0 4185 ;; Unchanged: 0/0 4186 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4187 ;; Params: 4 0 0 0 0 4188 ;; Locals: 2 0 0 0 0 4189 ;; Temps: 1 0 0 0 0 4190 ;; Totals: 7 0 0 0 0 4191 ;;Total ram usage: 7 bytes 4192 ;; Hardware stack levels used: 1 4193 ;; Hardware stack levels required when called: 1 4194 ;; This function calls: 4195 ;; Nothing 4196 ;; This function is called by: 4197 ;; _DEC_2_BCD 4198 ;; This function uses a non-reentrant model 4199 ;; 4200 4201 4202 ;psect for function ___awmod 4203 0C4C ___awmod: 4204 4205 ;incstack = 0 4206 ; Regs used in ___awmod: [wreg+status,2+status,0] 4207 0C4C 01F8 clrf ___awmod@sign 4208 0C4D 1FF5 btfss ___awmod@dividend+1,7 4209 0C4E 2C56 goto l2072 4210 0C4F 09F4 comf ___awmod@dividend,f 4211 0C50 09F5 comf ___awmod@dividend+1,f 4212 0C51 0AF4 incf ___awmod@dividend,f 4213 0C52 1903 skipnz 4214 0C53 0AF5 incf ___awmod@dividend+1,f 4215 0C54 01F8 clrf ___awmod@sign 4216 0C55 0AF8 incf ___awmod@sign,f 4217 0C56 l2072: 4218 0C56 1FF3 btfss ___awmod@divisor+1,7 4219 0C57 2C5D goto l2076 4220 0C58 09F2 comf ___awmod@divisor,f 4221 0C59 09F3 comf ___awmod@divisor+1,f 4222 0C5A 0AF2 incf ___awmod@divisor,f 4223 0C5B 1903 skipnz 4224 0C5C 0AF3 incf ___awmod@divisor+1,f 4225 0C5D l2076: 4226 0C5D 0872 movf ___awmod@divisor,w 4227 0C5E 0473 iorwf ___awmod@divisor+1,w 4228 0C5F 1903 btfsc 3,2 4229 0C60 2C8A goto l2094 4230 0C61 01F7 clrf ___awmod@counter 4231 0C62 0AF7 incf ___awmod@counter,f 4232 0C63 l2084: 4233 0C63 1BF3 btfsc ___awmod@divisor+1,7 4234 0C64 2C71 goto l2086 4235 0C65 3001 movlw 1 4236 0C66 u1315: 4237 0C66 1003 clrc 4238 0C67 0DF2 rlf ___awmod@divisor,f 4239 0C68 0DF3 rlf ___awmod@divisor+1,f 4240 0C69 3EFF addlw -1 4241 0C6A 1D03 skipz 4242 0C6B 2C66 goto u1315 4243 0C6C 3001 movlw 1 4244 0C6D 00F6 movwf ??___awmod 4245 0C6E 0876 movf ??___awmod,w 4246 0C6F 07F7 addwf ___awmod@counter,f 4247 0C70 2C63 goto l2084 4248 0C71 l2086: 4249 0C71 0873 movf ___awmod@divisor+1,w 4250 0C72 0275 subwf ___awmod@dividend+1,w 4251 0C73 1D03 skipz 4252 0C74 2C77 goto u1335 4253 0C75 0872 movf ___awmod@divisor,w 4254 0C76 0274 subwf ___awmod@dividend,w 4255 0C77 u1335: 4256 0C77 1C03 skipc 4257 0C78 2C7F goto l2090 4258 0C79 0872 movf ___awmod@divisor,w 4259 0C7A 02F4 subwf ___awmod@dividend,f 4260 0C7B 0873 movf ___awmod@divisor+1,w 4261 0C7C 1C03 skipc 4262 0C7D 03F5 decf ___awmod@dividend+1,f 4263 0C7E 02F5 subwf ___awmod@dividend+1,f 4264 0C7F l2090: 4265 0C7F 3001 movlw 1 4266 0C80 u1345: 4267 0C80 1003 clrc 4268 0C81 0CF3 rrf ___awmod@divisor+1,f 4269 0C82 0CF2 rrf ___awmod@divisor,f 4270 0C83 3EFF addlw -1 4271 0C84 1D03 skipz 4272 0C85 2C80 goto u1345 4273 0C86 3001 movlw 1 4274 0C87 02F7 subwf ___awmod@counter,f 4275 0C88 1D03 btfss 3,2 4276 0C89 2C71 goto l2086 4277 0C8A l2094: 4278 0C8A 0878 movf ___awmod@sign,w 4279 0C8B 1903 btfsc 3,2 4280 0C8C 2C92 goto l2098 4281 0C8D 09F4 comf ___awmod@dividend,f 4282 0C8E 09F5 comf ___awmod@dividend+1,f 4283 0C8F 0AF4 incf ___awmod@dividend,f 4284 0C90 1903 skipnz 4285 0C91 0AF5 incf ___awmod@dividend+1,f 4286 0C92 l2098: 4287 0C92 0875 movf ___awmod@dividend+1,w 4288 0C93 00F3 movwf ?___awmod+1 4289 0C94 0874 movf ___awmod@dividend,w 4290 0C95 00F2 movwf ?___awmod 4291 0C96 0008 return 4292 0C97 __end_of___awmod: 4293 4294 psect text11 4295 0CE7 __ptext11: 4296 ;; *************** function ___awdiv ***************** 4297 ;; Defined at: 4298 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c" 4299 ;; Parameters: Size Location Type 4300 ;; divisor 2 2[COMMON] int 4301 ;; dividend 2 4[COMMON] int 4302 ;; Auto vars: Size Location Type 4303 ;; quotient 2 2[BANK0 ] int 4304 ;; sign 1 1[BANK0 ] unsigned char 4305 ;; counter 1 0[BANK0 ] unsigned char 4306 ;; Return value: Size Location Type 4307 ;; 2 2[COMMON] int 4308 ;; Registers used: 4309 ;; wreg, status,2, status,0 4310 ;; Tracked objects: 4311 ;; On entry : 0/0 4312 ;; On exit : 0/0 4313 ;; Unchanged: 0/0 4314 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4315 ;; Params: 4 0 0 0 0 4316 ;; Locals: 0 4 0 0 0 4317 ;; Temps: 1 0 0 0 0 4318 ;; Totals: 5 4 0 0 0 4319 ;;Total ram usage: 9 bytes 4320 ;; Hardware stack levels used: 1 4321 ;; Hardware stack levels required when called: 1 4322 ;; This function calls: 4323 ;; Nothing 4324 ;; This function is called by: 4325 ;; _DEC_2_BCD 4326 ;; This function uses a non-reentrant model 4327 ;; 4328 4329 4330 ;psect for function ___awdiv 4331 0CE7 ___awdiv: 4332 4333 ;incstack = 0 4334 ; Regs used in ___awdiv: [wreg+status,2+status,0] 4335 0CE7 1283 bcf 3,5 ;RP0=0, select bank0 4336 0CE8 1303 bcf 3,6 ;RP1=0, select bank0 4337 0CE9 01A1 clrf ___awdiv@sign 4338 0CEA 1FF3 btfss ___awdiv@divisor+1,7 4339 0CEB 2CF3 goto l2790 4340 0CEC 09F2 comf ___awdiv@divisor,f 4341 0CED 09F3 comf ___awdiv@divisor+1,f 4342 0CEE 0AF2 incf ___awdiv@divisor,f 4343 0CEF 1903 skipnz 4344 0CF0 0AF3 incf ___awdiv@divisor+1,f 4345 0CF1 01A1 clrf ___awdiv@sign 4346 0CF2 0AA1 incf ___awdiv@sign,f 4347 0CF3 l2790: 4348 0CF3 1FF5 btfss ___awdiv@dividend+1,7 4349 0CF4 2CFE goto l2796 4350 0CF5 09F4 comf ___awdiv@dividend,f 4351 0CF6 09F5 comf ___awdiv@dividend+1,f 4352 0CF7 0AF4 incf ___awdiv@dividend,f 4353 0CF8 1903 skipnz 4354 0CF9 0AF5 incf ___awdiv@dividend+1,f 4355 0CFA 3001 movlw 1 4356 0CFB 00F6 movwf ??___awdiv 4357 0CFC 0876 movf ??___awdiv,w 4358 0CFD 06A1 xorwf ___awdiv@sign,f 4359 0CFE l2796: 4360 0CFE 01A2 clrf ___awdiv@quotient 4361 0CFF 01A3 clrf ___awdiv@quotient+1 4362 0D00 0872 movf ___awdiv@divisor,w 4363 0D01 0473 iorwf ___awdiv@divisor+1,w 4364 0D02 1903 btfsc 3,2 4365 0D03 2D35 goto l2818 4366 0D04 01A0 clrf ___awdiv@counter 4367 0D05 0AA0 incf ___awdiv@counter,f 4368 0D06 l2806: 4369 0D06 1BF3 btfsc ___awdiv@divisor+1,7 4370 0D07 2D14 goto l2808 4371 0D08 3001 movlw 1 4372 0D09 u2225: 4373 0D09 1003 clrc 4374 0D0A 0DF2 rlf ___awdiv@divisor,f 4375 0D0B 0DF3 rlf ___awdiv@divisor+1,f 4376 0D0C 3EFF addlw -1 4377 0D0D 1D03 skipz 4378 0D0E 2D09 goto u2225 4379 0D0F 3001 movlw 1 4380 0D10 00F6 movwf ??___awdiv 4381 0D11 0876 movf ??___awdiv,w 4382 0D12 07A0 addwf ___awdiv@counter,f 4383 0D13 2D06 goto l2806 4384 0D14 l2808: 4385 0D14 3001 movlw 1 4386 0D15 u2245: 4387 0D15 1003 clrc 4388 0D16 0DA2 rlf ___awdiv@quotient,f 4389 0D17 0DA3 rlf ___awdiv@quotient+1,f 4390 0D18 3EFF addlw -1 4391 0D19 1D03 skipz 4392 0D1A 2D15 goto u2245 4393 0D1B 0873 movf ___awdiv@divisor+1,w 4394 0D1C 0275 subwf ___awdiv@dividend+1,w 4395 0D1D 1D03 skipz 4396 0D1E 2D21 goto u2255 4397 0D1F 0872 movf ___awdiv@divisor,w 4398 0D20 0274 subwf ___awdiv@dividend,w 4399 0D21 u2255: 4400 0D21 1C03 skipc 4401 0D22 2D2A goto l2814 4402 0D23 0872 movf ___awdiv@divisor,w 4403 0D24 02F4 subwf ___awdiv@dividend,f 4404 0D25 0873 movf ___awdiv@divisor+1,w 4405 0D26 1C03 skipc 4406 0D27 03F5 decf ___awdiv@dividend+1,f 4407 0D28 02F5 subwf ___awdiv@dividend+1,f 4408 0D29 1422 bsf ___awdiv@quotient,0 4409 0D2A l2814: 4410 0D2A 3001 movlw 1 4411 0D2B u2265: 4412 0D2B 1003 clrc 4413 0D2C 0CF3 rrf ___awdiv@divisor+1,f 4414 0D2D 0CF2 rrf ___awdiv@divisor,f 4415 0D2E 3EFF addlw -1 4416 0D2F 1D03 skipz 4417 0D30 2D2B goto u2265 4418 0D31 3001 movlw 1 4419 0D32 02A0 subwf ___awdiv@counter,f 4420 0D33 1D03 btfss 3,2 4421 0D34 2D14 goto l2808 4422 0D35 l2818: 4423 0D35 0821 movf ___awdiv@sign,w 4424 0D36 1903 btfsc 3,2 4425 0D37 2D3D goto l2822 4426 0D38 09A2 comf ___awdiv@quotient,f 4427 0D39 09A3 comf ___awdiv@quotient+1,f 4428 0D3A 0AA2 incf ___awdiv@quotient,f 4429 0D3B 1903 skipnz 4430 0D3C 0AA3 incf ___awdiv@quotient+1,f 4431 0D3D l2822: 4432 0D3D 0823 movf ___awdiv@quotient+1,w 4433 0D3E 00F3 movwf ?___awdiv+1 4434 0D3F 0822 movf ___awdiv@quotient,w 4435 0D40 00F2 movwf ?___awdiv 4436 0D41 0008 return 4437 0D42 __end_of___awdiv: 4438 4439 psect text12 4440 178B __ptext12: 4441 ;; *************** function _Get_WeekDay ***************** 4442 ;; Defined at: 4443 ;; line 38 in file "ds3231.c" 4444 ;; Parameters: Size Location Type 4445 ;; d 2 28[BANK0 ] unsigned int 4446 ;; Auto vars: Size Location Type 4447 ;; None 4448 ;; Return value: Size Location Type 4449 ;; 1 wreg PTR unsigned char 4450 ;; Registers used: 4451 ;; wreg, status,2, status,0 4452 ;; Tracked objects: 4453 ;; On entry : 0/0 4454 ;; On exit : 0/0 4455 ;; Unchanged: 0/0 4456 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4457 ;; Params: 0 2 0 0 0 4458 ;; Locals: 0 0 0 0 0 4459 ;; Temps: 0 1 0 0 0 4460 ;; Totals: 0 3 0 0 0 4461 ;;Total ram usage: 3 bytes 4462 ;; Hardware stack levels used: 1 4463 ;; Hardware stack levels required when called: 1 4464 ;; This function calls: 4465 ;; Nothing 4466 ;; This function is called by: 4467 ;; _update_Display 4468 ;; _edit_Date_Time 4469 ;; This function uses a non-reentrant model 4470 ;; 4471 4472 4473 ;psect for function _Get_WeekDay 4474 178B _Get_WeekDay: 4475 4476 ;ds3231.c: 39: return dayOfWeek[d - 1]; 4477 4478 ;incstack = 0 4479 ; Regs used in _Get_WeekDay: [wreg+status,2+status,0] 4480 178B 1283 bcf 3,5 ;RP0=0, select bank0 4481 178C 1303 bcf 3,6 ;RP1=0, select bank0 4482 178D 083C movf Get_WeekDay@d,w 4483 178E 00BE movwf ??_Get_WeekDay 4484 178F 3001 movlw 1 4485 1790 u1655: 4486 1790 1003 clrc 4487 1791 0DBE rlf ??_Get_WeekDay,f 4488 1792 3EFF addlw -1 4489 1793 1D03 skipz 4490 1794 2F90 goto u1655 4491 1795 1003 clrc 4492 1796 0D3E rlf ??_Get_WeekDay,w 4493 1797 3EA0 addlw (low ((_dayOfWeek| 0+252)))& (0+255) 4494 1798 0008 return 4495 1799 __end_of_Get_WeekDay: 4496 4497 psect text13 4498 07C5 __ptext13: 4499 ;; *************** function _Get_Days_In_Month ***************** 4500 ;; Defined at: 4501 ;; line 29 in file "ds3231.c" 4502 ;; Parameters: Size Location Type 4503 ;; y 2 17[BANK0 ] unsigned int 4504 ;; m 2 19[BANK0 ] unsigned int 4505 ;; Auto vars: Size Location Type 4506 ;; None 4507 ;; Return value: Size Location Type 4508 ;; 2 17[BANK0 ] unsigned int 4509 ;; Registers used: 4510 ;; wreg, status,2, status,0, pclath, cstack 4511 ;; Tracked objects: 4512 ;; On entry : 0/0 4513 ;; On exit : 0/0 4514 ;; Unchanged: 0/0 4515 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4516 ;; Params: 0 4 0 0 0 4517 ;; Locals: 0 0 0 0 0 4518 ;; Temps: 0 3 0 0 0 4519 ;; Totals: 0 7 0 0 0 4520 ;;Total ram usage: 7 bytes 4521 ;; Hardware stack levels used: 1 4522 ;; Hardware stack levels required when called: 3 4523 ;; This function calls: 4524 ;; _Get_Is_Leap_Year 4525 ;; ___lwmod 4526 ;; This function is called by: 4527 ;; _edit_Date_Time 4528 ;; This function uses a non-reentrant model 4529 ;; 4530 4531 4532 ;psect for function _Get_Days_In_Month 4533 07C5 _Get_Days_In_Month: 4534 4535 ;ds3231.c: 30: return (m == 2) ? 4536 4537 ;incstack = 0 4538 ; Regs used in _Get_Days_In_Month: [wreg+status,2+status,0+pclath+cstack] 4539 07C5 3002 movlw 2 4540 07C6 1283 bcf 3,5 ;RP0=0, select bank0 4541 07C7 1303 bcf 3,6 ;RP1=0, select bank0 4542 07C8 0633 xorwf Get_Days_In_Month@m,w 4543 07C9 0434 iorwf Get_Days_In_Month@m+1,w 4544 07CA 1903 btfsc 3,2 4545 07CB 2FED goto l2922 4546 07CC 3007 movlw 7 4547 07CD 00A7 movwf ___lwmod@divisor 4548 07CE 3000 movlw 0 4549 07CF 00A8 movwf ___lwmod@divisor+1 4550 07D0 0833 movf Get_Days_In_Month@m,w 4551 07D1 3EFF addlw 255 4552 07D2 00A9 movwf ___lwmod@dividend 4553 07D3 0834 movf Get_Days_In_Month@m+1,w 4554 07D4 1803 skipnc 4555 07D5 3E01 addlw 1 4556 07D6 3EFF addlw 255 4557 07D7 00AA movwf ___lwmod@dividend+1 4558 07D8 120A 158A 21E6 fcall ___lwmod 4559 07DB 3001 movlw 1 4560 07DC 1283 bcf 3,5 ;RP0=0, select bank0 4561 07DD 1303 bcf 3,6 ;RP1=0, select bank0 4562 07DE 0527 andwf ?___lwmod,w 4563 07DF 00B5 movwf ??_Get_Days_In_Month 4564 07E0 3000 movlw 0 4565 07E1 0528 andwf ?___lwmod+1,w 4566 07E2 00B6 movwf ??_Get_Days_In_Month+1 4567 07E3 301F movlw 31 4568 07E4 00B7 movwf ??_Get_Days_In_Month+2 4569 07E5 0835 movf ??_Get_Days_In_Month,w 4570 07E6 0237 subwf ??_Get_Days_In_Month+2,w 4571 07E7 00B1 movwf ?_Get_Days_In_Month 4572 07E8 0936 comf ??_Get_Days_In_Month+1,w 4573 07E9 1803 skipnc 4574 07EA 3E01 addlw 1 4575 07EB 00B2 movwf ?_Get_Days_In_Month+1 4576 07EC 0008 return 4577 07ED l2922: 4578 07ED 0832 movf Get_Days_In_Month@y+1,w 4579 07EE 00AD movwf Get_Is_Leap_Year@y+1 4580 07EF 0831 movf Get_Days_In_Month@y,w 4581 07F0 00AC movwf Get_Is_Leap_Year@y 4582 07F1 120A 158A 22BD fcall _Get_Is_Leap_Year 4583 07F4 1283 bcf 3,5 ;RP0=0, select bank0 4584 07F5 1303 bcf 3,6 ;RP1=0, select bank0 4585 07F6 082C movf ?_Get_Is_Leap_Year,w 4586 07F7 3E1C addlw 28 4587 07F8 00B1 movwf ?_Get_Days_In_Month 4588 07F9 082D movf ?_Get_Is_Leap_Year+1,w 4589 07FA 1803 skipnc 4590 07FB 3E01 addlw 1 4591 07FC 3E00 addlw 0 4592 07FD 00B2 movwf ?_Get_Days_In_Month+1 4593 07FE 0008 return 4594 07FF __end_of_Get_Days_In_Month: 4595 4596 psect text14 4597 0ABD __ptext14: 4598 ;; *************** function _Get_Is_Leap_Year ***************** 4599 ;; Defined at: 4600 ;; line 34 in file "ds3231.c" 4601 ;; Parameters: Size Location Type 4602 ;; y 2 12[BANK0 ] unsigned int 4603 ;; Auto vars: Size Location Type 4604 ;; None 4605 ;; Return value: Size Location Type 4606 ;; 2 12[BANK0 ] unsigned int 4607 ;; Registers used: 4608 ;; wreg, status,2, status,0, pclath, cstack 4609 ;; Tracked objects: 4610 ;; On entry : 0/0 4611 ;; On exit : 0/0 4612 ;; Unchanged: 0/0 4613 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4614 ;; Params: 0 2 0 0 0 4615 ;; Locals: 0 1 0 0 0 4616 ;; Temps: 0 2 0 0 0 4617 ;; Totals: 0 5 0 0 0 4618 ;;Total ram usage: 5 bytes 4619 ;; Hardware stack levels used: 1 4620 ;; Hardware stack levels required when called: 2 4621 ;; This function calls: 4622 ;; ___lwmod 4623 ;; This function is called by: 4624 ;; _Get_Days_In_Month 4625 ;; This function uses a non-reentrant model 4626 ;; 4627 4628 4629 ;psect for function _Get_Is_Leap_Year 4630 0ABD _Get_Is_Leap_Year: 4631 4632 ;ds3231.c: 35: return (year % 4) || ((year % 100 == 0) && (year % 400)) ? 0 : 1; 4633 4634 ;incstack = 0 4635 ; Regs used in _Get_Is_Leap_Year: [wreg+status,2+status,0+pclath+cstack] 4636 0ABD 1283 bcf 3,5 ;RP0=0, select bank0 4637 0ABE 1303 bcf 3,6 ;RP1=0, select bank0 4638 0ABF 01B0 clrf _Get_Is_Leap_Year$401 4639 0AC0 3003 movlw 3 4640 0AC1 055D andwf _year,w 4641 0AC2 00AE movwf ??_Get_Is_Leap_Year 4642 0AC3 3000 movlw 0 4643 0AC4 055E andwf _year+1,w 4644 0AC5 00AF movwf ??_Get_Is_Leap_Year+1 4645 0AC6 082E movf ??_Get_Is_Leap_Year,w 4646 0AC7 042F iorwf ??_Get_Is_Leap_Year+1,w 4647 0AC8 1D03 btfss 3,2 4648 0AC9 2AF2 goto l2860 4649 0ACA 3064 movlw 100 4650 0ACB 00A7 movwf ___lwmod@divisor 4651 0ACC 3000 movlw 0 4652 0ACD 00A8 movwf ___lwmod@divisor+1 4653 0ACE 085E movf _year+1,w 4654 0ACF 00AA movwf ___lwmod@dividend+1 4655 0AD0 085D movf _year,w 4656 0AD1 00A9 movwf ___lwmod@dividend 4657 0AD2 120A 158A 21E6 120A 158A fcall ___lwmod 4658 0AD7 1283 bcf 3,5 ;RP0=0, select bank0 4659 0AD8 1303 bcf 3,6 ;RP1=0, select bank0 4660 0AD9 0827 movf ?___lwmod,w 4661 0ADA 0428 iorwf ?___lwmod+1,w 4662 0ADB 1D03 btfss 3,2 4663 0ADC 2AF0 goto l2780 4664 0ADD 3090 movlw 144 4665 0ADE 00A7 movwf ___lwmod@divisor 4666 0ADF 3001 movlw 1 4667 0AE0 00A8 movwf ___lwmod@divisor+1 4668 0AE1 085E movf _year+1,w 4669 0AE2 00AA movwf ___lwmod@dividend+1 4670 0AE3 085D movf _year,w 4671 0AE4 00A9 movwf ___lwmod@dividend 4672 0AE5 120A 158A 21E6 120A 158A fcall ___lwmod 4673 0AEA 1283 bcf 3,5 ;RP0=0, select bank0 4674 0AEB 1303 bcf 3,6 ;RP1=0, select bank0 4675 0AEC 0827 movf ?___lwmod,w 4676 0AED 0428 iorwf ?___lwmod+1,w 4677 0AEE 1D03 btfss 3,2 4678 0AEF 2AF2 goto l2860 4679 0AF0 l2780: 4680 0AF0 01B0 clrf _Get_Is_Leap_Year$401 4681 0AF1 0AB0 incf _Get_Is_Leap_Year$401,f 4682 0AF2 l2860: 4683 0AF2 0830 movf _Get_Is_Leap_Year$401,w 4684 0AF3 00AE movwf ??_Get_Is_Leap_Year 4685 0AF4 01AF clrf ??_Get_Is_Leap_Year+1 4686 0AF5 082E movf ??_Get_Is_Leap_Year,w 4687 0AF6 00AC movwf ?_Get_Is_Leap_Year 4688 0AF7 082F movf ??_Get_Is_Leap_Year+1,w 4689 0AF8 00AD movwf ?_Get_Is_Leap_Year+1 4690 0AF9 0008 return 4691 0AFA __end_of_Get_Is_Leap_Year: 4692 4693 psect text15 4694 0E6C __ptext15: 4695 ;; *************** function _Get_DayOfWeek ***************** 4696 ;; Defined at: 4697 ;; line 25 in file "ds3231.c" 4698 ;; Parameters: Size Location Type 4699 ;; y 2 12[BANK0 ] unsigned int 4700 ;; m 2 14[BANK0 ] unsigned int 4701 ;; d 2 16[BANK0 ] unsigned int 4702 ;; Auto vars: Size Location Type 4703 ;; None 4704 ;; Return value: Size Location Type 4705 ;; 2 12[BANK0 ] unsigned int 4706 ;; Registers used: 4707 ;; wreg, status,2, status,0, pclath, cstack 4708 ;; Tracked objects: 4709 ;; On entry : 0/0 4710 ;; On exit : 0/0 4711 ;; Unchanged: 0/0 4712 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4713 ;; Params: 0 6 0 0 0 4714 ;; Locals: 0 0 0 0 0 4715 ;; Temps: 0 10 0 0 0 4716 ;; Totals: 0 16 0 0 0 4717 ;;Total ram usage: 16 bytes 4718 ;; Hardware stack levels used: 1 4719 ;; Hardware stack levels required when called: 2 4720 ;; This function calls: 4721 ;; ___lwdiv 4722 ;; ___lwmod 4723 ;; ___wmul 4724 ;; This function is called by: 4725 ;; _edit_Date_Time 4726 ;; This function uses a non-reentrant model 4727 ;; 4728 4729 4730 ;psect for function _Get_DayOfWeek 4731 0E6C _Get_DayOfWeek: 4732 4733 ;ds3231.c: 26: return (d += m < 3 ? y-- : y - 2, 23 * m / 9 + d + 4 + y / 4 - y / 10 + 0 + y / 400) % 7 + 1; 4734 4735 ;incstack = 0 4736 ; Regs used in _Get_DayOfWeek: [wreg+status,2+status,0+pclath+cstack] 4737 0E6C 3000 movlw 0 4738 0E6D 1283 bcf 3,5 ;RP0=0, select bank0 4739 0E6E 1303 bcf 3,6 ;RP1=0, select bank0 4740 0E6F 022F subwf Get_DayOfWeek@m+1,w 4741 0E70 3003 movlw 3 4742 0E71 1903 skipnz 4743 0E72 022E subwf Get_DayOfWeek@m,w 4744 0E73 1C03 skipc 4745 0E74 2E84 goto l2930 4746 0E75 082C movf Get_DayOfWeek@y,w 4747 0E76 3EFE addlw 254 4748 0E77 00B2 movwf ??_Get_DayOfWeek 4749 0E78 082D movf Get_DayOfWeek@y+1,w 4750 0E79 1803 skipnc 4751 0E7A 3E01 addlw 1 4752 0E7B 3EFF addlw 255 4753 0E7C 00B3 movwf ??_Get_DayOfWeek+1 4754 0E7D 0832 movf ??_Get_DayOfWeek,w 4755 0E7E 07B0 addwf Get_DayOfWeek@d,f 4756 0E7F 1803 skipnc 4757 0E80 0AB1 incf Get_DayOfWeek@d+1,f 4758 0E81 0833 movf ??_Get_DayOfWeek+1,w 4759 0E82 07B1 addwf Get_DayOfWeek@d+1,f 4760 0E83 2E90 goto l2932 4761 0E84 l2930: 4762 0E84 082C movf Get_DayOfWeek@y,w 4763 0E85 07B0 addwf Get_DayOfWeek@d,f 4764 0E86 1803 skipnc 4765 0E87 0AB1 incf Get_DayOfWeek@d+1,f 4766 0E88 082D movf Get_DayOfWeek@y+1,w 4767 0E89 07B1 addwf Get_DayOfWeek@d+1,f 4768 0E8A 3001 movlw 1 4769 0E8B 02AC subwf Get_DayOfWeek@y,f 4770 0E8C 3000 movlw 0 4771 0E8D 1C03 skipc 4772 0E8E 03AD decf Get_DayOfWeek@y+1,f 4773 0E8F 02AD subwf Get_DayOfWeek@y+1,f 4774 0E90 l2932: 4775 0E90 3007 movlw 7 4776 0E91 00A7 movwf ___lwmod@divisor 4777 0E92 3000 movlw 0 4778 0E93 00A8 movwf ___lwmod@divisor+1 4779 0E94 082D movf Get_DayOfWeek@y+1,w 4780 0E95 00B3 movwf ??_Get_DayOfWeek+1 4781 0E96 082C movf Get_DayOfWeek@y,w 4782 0E97 00B2 movwf ??_Get_DayOfWeek 4783 0E98 1003 clrc 4784 0E99 0CB3 rrf ??_Get_DayOfWeek+1,f 4785 0E9A 0CB2 rrf ??_Get_DayOfWeek,f 4786 0E9B 1003 clrc 4787 0E9C 0CB3 rrf ??_Get_DayOfWeek+1,f 4788 0E9D 0CB2 rrf ??_Get_DayOfWeek,f 4789 0E9E 3009 movlw 9 4790 0E9F 00A0 movwf ___lwdiv@divisor 4791 0EA0 3000 movlw 0 4792 0EA1 00A1 movwf ___lwdiv@divisor+1 4793 0EA2 082F movf Get_DayOfWeek@m+1,w 4794 0EA3 00F3 movwf ___wmul@multiplier+1 4795 0EA4 082E movf Get_DayOfWeek@m,w 4796 0EA5 00F2 movwf ___wmul@multiplier 4797 0EA6 3017 movlw 23 4798 0EA7 00F4 movwf ___wmul@multiplicand 4799 0EA8 3000 movlw 0 4800 0EA9 00F5 movwf ___wmul@multiplicand+1 4801 0EAA 120A 158A 209D 120A 158A fcall ___wmul 4802 0EAF 0873 movf ?___wmul+1,w 4803 0EB0 1283 bcf 3,5 ;RP0=0, select bank0 4804 0EB1 1303 bcf 3,6 ;RP1=0, select bank0 4805 0EB2 00A3 movwf ___lwdiv@dividend+1 4806 0EB3 0872 movf ?___wmul,w 4807 0EB4 00A2 movwf ___lwdiv@dividend 4808 0EB5 120A 158A 22FA 120A 158A fcall ___lwdiv 4809 0EBA 1283 bcf 3,5 ;RP0=0, select bank0 4810 0EBB 1303 bcf 3,6 ;RP1=0, select bank0 4811 0EBC 0832 movf ??_Get_DayOfWeek,w 4812 0EBD 0720 addwf ?___lwdiv,w 4813 0EBE 00B4 movwf ??_Get_DayOfWeek+2 4814 0EBF 0833 movf ??_Get_DayOfWeek+1,w 4815 0EC0 1803 skipnc 4816 0EC1 0A33 incf ??_Get_DayOfWeek+1,w 4817 0EC2 0721 addwf ?___lwdiv+1,w 4818 0EC3 00B5 movwf ??_Get_DayOfWeek+3 4819 0EC4 3090 movlw 144 4820 0EC5 00A0 movwf ___lwdiv@divisor 4821 0EC6 3001 movlw 1 4822 0EC7 00A1 movwf ___lwdiv@divisor+1 4823 0EC8 082D movf Get_DayOfWeek@y+1,w 4824 0EC9 00A3 movwf ___lwdiv@dividend+1 4825 0ECA 082C movf Get_DayOfWeek@y,w 4826 0ECB 00A2 movwf ___lwdiv@dividend 4827 0ECC 120A 158A 22FA 120A 158A fcall ___lwdiv 4828 0ED1 1283 bcf 3,5 ;RP0=0, select bank0 4829 0ED2 1303 bcf 3,6 ;RP1=0, select bank0 4830 0ED3 0820 movf ?___lwdiv,w 4831 0ED4 0734 addwf ??_Get_DayOfWeek+2,w 4832 0ED5 00B6 movwf ??_Get_DayOfWeek+4 4833 0ED6 0821 movf ?___lwdiv+1,w 4834 0ED7 1803 skipnc 4835 0ED8 0A21 incf ?___lwdiv+1,w 4836 0ED9 0735 addwf ??_Get_DayOfWeek+3,w 4837 0EDA 00B7 movwf ??_Get_DayOfWeek+5 4838 0EDB 3064 movlw 100 4839 0EDC 00A0 movwf ___lwdiv@divisor 4840 0EDD 3000 movlw 0 4841 0EDE 00A1 movwf ___lwdiv@divisor+1 4842 0EDF 082D movf Get_DayOfWeek@y+1,w 4843 0EE0 00A3 movwf ___lwdiv@dividend+1 4844 0EE1 082C movf Get_DayOfWeek@y,w 4845 0EE2 00A2 movwf ___lwdiv@dividend 4846 0EE3 120A 158A 22FA 120A 158A fcall ___lwdiv 4847 0EE8 1283 bcf 3,5 ;RP0=0, select bank0 4848 0EE9 1303 bcf 3,6 ;RP1=0, select bank0 4849 0EEA 0820 movf ?___lwdiv,w 4850 0EEB 0236 subwf ??_Get_DayOfWeek+4,w 4851 0EEC 00B8 movwf ??_Get_DayOfWeek+6 4852 0EED 0821 movf ?___lwdiv+1,w 4853 0EEE 1C03 skipc 4854 0EEF 0A21 incf ?___lwdiv+1,w 4855 0EF0 0237 subwf ??_Get_DayOfWeek+5,w 4856 0EF1 00B9 movwf ??_Get_DayOfWeek+7 4857 0EF2 0830 movf Get_DayOfWeek@d,w 4858 0EF3 0738 addwf ??_Get_DayOfWeek+6,w 4859 0EF4 00BA movwf ??_Get_DayOfWeek+8 4860 0EF5 0831 movf Get_DayOfWeek@d+1,w 4861 0EF6 1803 skipnc 4862 0EF7 0A31 incf Get_DayOfWeek@d+1,w 4863 0EF8 0739 addwf ??_Get_DayOfWeek+7,w 4864 0EF9 00BB movwf ??_Get_DayOfWeek+9 4865 0EFA 083A movf ??_Get_DayOfWeek+8,w 4866 0EFB 3E04 addlw 4 4867 0EFC 00A9 movwf ___lwmod@dividend 4868 0EFD 083B movf ??_Get_DayOfWeek+9,w 4869 0EFE 1803 skipnc 4870 0EFF 3E01 addlw 1 4871 0F00 3E00 addlw 0 4872 0F01 00AA movwf ___lwmod@dividend+1 4873 0F02 120A 158A 21E6 fcall ___lwmod 4874 0F05 1283 bcf 3,5 ;RP0=0, select bank0 4875 0F06 1303 bcf 3,6 ;RP1=0, select bank0 4876 0F07 0827 movf ?___lwmod,w 4877 0F08 3E01 addlw 1 4878 0F09 00AC movwf ?_Get_DayOfWeek 4879 0F0A 0828 movf ?___lwmod+1,w 4880 0F0B 1803 skipnc 4881 0F0C 3E01 addlw 1 4882 0F0D 3E00 addlw 0 4883 0F0E 00AD movwf ?_Get_DayOfWeek+1 4884 0F0F 0008 return 4885 0F10 __end_of_Get_DayOfWeek: 4886 4887 psect text16 4888 09E6 __ptext16: 4889 ;; *************** function ___lwmod ***************** 4890 ;; Defined at: 4891 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c" 4892 ;; Parameters: Size Location Type 4893 ;; divisor 2 7[BANK0 ] unsigned int 4894 ;; dividend 2 9[BANK0 ] unsigned int 4895 ;; Auto vars: Size Location Type 4896 ;; counter 1 11[BANK0 ] unsigned char 4897 ;; Return value: Size Location Type 4898 ;; 2 7[BANK0 ] unsigned int 4899 ;; Registers used: 4900 ;; wreg, status,2, status,0 4901 ;; Tracked objects: 4902 ;; On entry : 0/0 4903 ;; On exit : 0/0 4904 ;; Unchanged: 0/0 4905 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4906 ;; Params: 0 4 0 0 0 4907 ;; Locals: 0 1 0 0 0 4908 ;; Temps: 1 0 0 0 0 4909 ;; Totals: 1 5 0 0 0 4910 ;;Total ram usage: 6 bytes 4911 ;; Hardware stack levels used: 1 4912 ;; Hardware stack levels required when called: 1 4913 ;; This function calls: 4914 ;; Nothing 4915 ;; This function is called by: 4916 ;; _display_Digit 4917 ;; _Get_DayOfWeek 4918 ;; _Get_Days_In_Month 4919 ;; _Get_Is_Leap_Year 4920 ;; This function uses a non-reentrant model 4921 ;; 4922 4923 4924 ;psect for function ___lwmod 4925 09E6 ___lwmod: 4926 4927 ;incstack = 0 4928 ; Regs used in ___lwmod: [wreg+status,2+status,0] 4929 09E6 1283 bcf 3,5 ;RP0=0, select bank0 4930 09E7 1303 bcf 3,6 ;RP1=0, select bank0 4931 09E8 0827 movf ___lwmod@divisor,w 4932 09E9 0428 iorwf ___lwmod@divisor+1,w 4933 09EA 1903 btfsc 3,2 4934 09EB 2A15 goto l2844 4935 09EC 01AB clrf ___lwmod@counter 4936 09ED 0AAB incf ___lwmod@counter,f 4937 09EE l2834: 4938 09EE 1BA8 btfsc ___lwmod@divisor+1,7 4939 09EF 29FC goto l2836 4940 09F0 3001 movlw 1 4941 09F1 u2305: 4942 09F1 1003 clrc 4943 09F2 0DA7 rlf ___lwmod@divisor,f 4944 09F3 0DA8 rlf ___lwmod@divisor+1,f 4945 09F4 3EFF addlw -1 4946 09F5 1D03 skipz 4947 09F6 29F1 goto u2305 4948 09F7 3001 movlw 1 4949 09F8 00F9 movwf ??___lwmod 4950 09F9 0879 movf ??___lwmod,w 4951 09FA 07AB addwf ___lwmod@counter,f 4952 09FB 29EE goto l2834 4953 09FC l2836: 4954 09FC 0828 movf ___lwmod@divisor+1,w 4955 09FD 022A subwf ___lwmod@dividend+1,w 4956 09FE 1D03 skipz 4957 09FF 2A02 goto u2325 4958 0A00 0827 movf ___lwmod@divisor,w 4959 0A01 0229 subwf ___lwmod@dividend,w 4960 0A02 u2325: 4961 0A02 1C03 skipc 4962 0A03 2A0A goto l2840 4963 0A04 0827 movf ___lwmod@divisor,w 4964 0A05 02A9 subwf ___lwmod@dividend,f 4965 0A06 0828 movf ___lwmod@divisor+1,w 4966 0A07 1C03 skipc 4967 0A08 03AA decf ___lwmod@dividend+1,f 4968 0A09 02AA subwf ___lwmod@dividend+1,f 4969 0A0A l2840: 4970 0A0A 3001 movlw 1 4971 0A0B u2335: 4972 0A0B 1003 clrc 4973 0A0C 0CA8 rrf ___lwmod@divisor+1,f 4974 0A0D 0CA7 rrf ___lwmod@divisor,f 4975 0A0E 3EFF addlw -1 4976 0A0F 1D03 skipz 4977 0A10 2A0B goto u2335 4978 0A11 3001 movlw 1 4979 0A12 02AB subwf ___lwmod@counter,f 4980 0A13 1D03 btfss 3,2 4981 0A14 29FC goto l2836 4982 0A15 l2844: 4983 0A15 082A movf ___lwmod@dividend+1,w 4984 0A16 00A8 movwf ?___lwmod+1 4985 0A17 0829 movf ___lwmod@dividend,w 4986 0A18 00A7 movwf ?___lwmod 4987 0A19 0008 return 4988 0A1A __end_of___lwmod: 4989 4990 psect text17 4991 0AFA __ptext17: 4992 ;; *************** function ___lwdiv ***************** 4993 ;; Defined at: 4994 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c" 4995 ;; Parameters: Size Location Type 4996 ;; divisor 2 0[BANK0 ] unsigned int 4997 ;; dividend 2 2[BANK0 ] unsigned int 4998 ;; Auto vars: Size Location Type 4999 ;; quotient 2 5[BANK0 ] unsigned int 5000 ;; counter 1 4[BANK0 ] unsigned char 5001 ;; Return value: Size Location Type 5002 ;; 2 0[BANK0 ] unsigned int 5003 ;; Registers used: 5004 ;; wreg, status,2, status,0 5005 ;; Tracked objects: 5006 ;; On entry : 0/0 5007 ;; On exit : 0/0 5008 ;; Unchanged: 0/0 5009 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5010 ;; Params: 0 4 0 0 0 5011 ;; Locals: 0 3 0 0 0 5012 ;; Temps: 1 0 0 0 0 5013 ;; Totals: 1 7 0 0 0 5014 ;;Total ram usage: 8 bytes 5015 ;; Hardware stack levels used: 1 5016 ;; Hardware stack levels required when called: 1 5017 ;; This function calls: 5018 ;; Nothing 5019 ;; This function is called by: 5020 ;; _display_Digit 5021 ;; _update_Display 5022 ;; _Get_DayOfWeek 5023 ;; This function uses a non-reentrant model 5024 ;; 5025 5026 5027 ;psect for function ___lwdiv 5028 0AFA ___lwdiv: 5029 5030 ;incstack = 0 5031 ; Regs used in ___lwdiv: [wreg+status,2+status,0] 5032 0AFA 1283 bcf 3,5 ;RP0=0, select bank0 5033 0AFB 1303 bcf 3,6 ;RP1=0, select bank0 5034 0AFC 01A5 clrf ___lwdiv@quotient 5035 0AFD 01A6 clrf ___lwdiv@quotient+1 5036 0AFE 0820 movf ___lwdiv@divisor,w 5037 0AFF 0421 iorwf ___lwdiv@divisor+1,w 5038 0B00 1903 btfsc 3,2 5039 0B01 2B33 goto l2886 5040 0B02 01A4 clrf ___lwdiv@counter 5041 0B03 0AA4 incf ___lwdiv@counter,f 5042 0B04 l2874: 5043 0B04 1BA1 btfsc ___lwdiv@divisor+1,7 5044 0B05 2B12 goto l2876 5045 0B06 3001 movlw 1 5046 0B07 u2395: 5047 0B07 1003 clrc 5048 0B08 0DA0 rlf ___lwdiv@divisor,f 5049 0B09 0DA1 rlf ___lwdiv@divisor+1,f 5050 0B0A 3EFF addlw -1 5051 0B0B 1D03 skipz 5052 0B0C 2B07 goto u2395 5053 0B0D 3001 movlw 1 5054 0B0E 00F8 movwf ??___lwdiv 5055 0B0F 0878 movf ??___lwdiv,w 5056 0B10 07A4 addwf ___lwdiv@counter,f 5057 0B11 2B04 goto l2874 5058 0B12 l2876: 5059 0B12 3001 movlw 1 5060 0B13 u2415: 5061 0B13 1003 clrc 5062 0B14 0DA5 rlf ___lwdiv@quotient,f 5063 0B15 0DA6 rlf ___lwdiv@quotient+1,f 5064 0B16 3EFF addlw -1 5065 0B17 1D03 skipz 5066 0B18 2B13 goto u2415 5067 0B19 0821 movf ___lwdiv@divisor+1,w 5068 0B1A 0223 subwf ___lwdiv@dividend+1,w 5069 0B1B 1D03 skipz 5070 0B1C 2B1F goto u2425 5071 0B1D 0820 movf ___lwdiv@divisor,w 5072 0B1E 0222 subwf ___lwdiv@dividend,w 5073 0B1F u2425: 5074 0B1F 1C03 skipc 5075 0B20 2B28 goto l2882 5076 0B21 0820 movf ___lwdiv@divisor,w 5077 0B22 02A2 subwf ___lwdiv@dividend,f 5078 0B23 0821 movf ___lwdiv@divisor+1,w 5079 0B24 1C03 skipc 5080 0B25 03A3 decf ___lwdiv@dividend+1,f 5081 0B26 02A3 subwf ___lwdiv@dividend+1,f 5082 0B27 1425 bsf ___lwdiv@quotient,0 5083 0B28 l2882: 5084 0B28 3001 movlw 1 5085 0B29 u2435: 5086 0B29 1003 clrc 5087 0B2A 0CA1 rrf ___lwdiv@divisor+1,f 5088 0B2B 0CA0 rrf ___lwdiv@divisor,f 5089 0B2C 3EFF addlw -1 5090 0B2D 1D03 skipz 5091 0B2E 2B29 goto u2435 5092 0B2F 3001 movlw 1 5093 0B30 02A4 subwf ___lwdiv@counter,f 5094 0B31 1D03 btfss 3,2 5095 0B32 2B12 goto l2876 5096 0B33 l2886: 5097 0B33 0826 movf ___lwdiv@quotient+1,w 5098 0B34 00A1 movwf ?___lwdiv+1 5099 0B35 0825 movf ___lwdiv@quotient,w 5100 0B36 00A0 movwf ?___lwdiv 5101 0B37 0008 return 5102 0B38 __end_of___lwdiv: 5103 5104 psect text18 5105 0BBC __ptext18: 5106 ;; *************** function _display_Lcd_Layout ***************** 5107 ;; Defined at: 5108 ;; line 264 in file "main.c" 5109 ;; Parameters: Size Location Type 5110 ;; None 5111 ;; Auto vars: Size Location Type 5112 ;; None 5113 ;; Return value: Size Location Type 5114 ;; 1 wreg void 5115 ;; Registers used: 5116 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 5117 ;; Tracked objects: 5118 ;; On entry : 0/0 5119 ;; On exit : 0/0 5120 ;; Unchanged: 0/0 5121 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5122 ;; Params: 0 0 0 0 0 5123 ;; Locals: 0 0 0 0 0 5124 ;; Temps: 0 3 0 0 0 5125 ;; Totals: 0 3 0 0 0 5126 ;;Total ram usage: 3 bytes 5127 ;; Hardware stack levels used: 1 5128 ;; Hardware stack levels required when called: 4 5129 ;; This function calls: 5130 ;; _Lcd_Clear 5131 ;; _Lcd_Set_Cursor 5132 ;; _Lcd_Write_Char 5133 ;; _Lcd_Write_String 5134 ;; This function is called by: 5135 ;; _main 5136 ;; This function uses a non-reentrant model 5137 ;; 5138 5139 5140 ;psect for function _display_Lcd_Layout 5141 0BBC _display_Lcd_Layout: 5142 5143 ;main.c: 266: Lcd_Clear(); 5144 5145 ;incstack = 0 5146 ; Regs used in _display_Lcd_Layout: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 5147 0BBC 160A 118A 2774 120A 158A fcall _Lcd_Clear 5148 5149 ;main.c: 267: Lcd_Set_Cursor(1, 1); 5150 0BC1 01F6 clrf Lcd_Set_Cursor@b 5151 0BC2 0AF6 incf Lcd_Set_Cursor@b,f 5152 0BC3 3001 movlw 1 5153 0BC4 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor 5154 5155 ;main.c: 268: Lcd_Write_String("HH:mm:ss -PP.P"); 5156 0BC9 3012 movlw (low ((STR_3-__stringbase)| (0+32768)))& (0+255) 5157 0BCA 1283 bcf 3,5 ;RP0=0, select bank0 5158 0BCB 1303 bcf 3,6 ;RP1=0, select bank0 5159 0BCC 00BF movwf Lcd_Write_String@a 5160 0BCD 3080 movlw 128 5161 0BCE 00C0 movwf Lcd_Write_String@a+1 5162 0BCF 120A 158A 2338 120A 158A fcall _Lcd_Write_String 5163 5164 ;main.c: 269: Lcd_Write_Char(0xDF); 5165 0BD4 30DF movlw 223 5166 0BD5 120A 158A 2284 120A 158A fcall _Lcd_Write_Char 5167 5168 ;main.c: 270: Lcd_Write_Char('C'); 5169 0BDA 3043 movlw 67 5170 0BDB 120A 158A 2284 120A 158A fcall _Lcd_Write_Char 5171 5172 ;main.c: 271: Lcd_Set_Cursor(2, 1); 5173 0BE0 01F6 clrf Lcd_Set_Cursor@b 5174 0BE1 0AF6 incf Lcd_Set_Cursor@b,f 5175 0BE2 3002 movlw 2 5176 0BE3 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor 5177 5178 ;main.c: 272: Lcd_Write_String(" ddd DD/MM/CCYY "); 5179 0BE8 3001 movlw (low ((STR_4-__stringbase)| (0+32768)))& (0+255) 5180 0BE9 1283 bcf 3,5 ;RP0=0, select bank0 5181 0BEA 1303 bcf 3,6 ;RP1=0, select bank0 5182 0BEB 00BF movwf Lcd_Write_String@a 5183 0BEC 3080 movlw 128 5184 0BED 00C0 movwf Lcd_Write_String@a+1 5185 0BEE 120A 158A 2338 120A 158A fcall _Lcd_Write_String 5186 5187 ;main.c: 274: _delay((unsigned long)((1000)*(20000000/4000.0))); 5188 0BF3 301A movlw 26 5189 0BF4 1283 bcf 3,5 ;RP0=0, select bank0 5190 0BF5 1303 bcf 3,6 ;RP1=0, select bank0 5191 0BF6 00C8 movwf ??_display_Lcd_Layout+2 5192 0BF7 305E movlw 94 5193 0BF8 00C7 movwf ??_display_Lcd_Layout+1 5194 0BF9 306D movlw 109 5195 0BFA 00C6 movwf ??_display_Lcd_Layout 5196 0BFB u3107: 5197 0BFB 0BC6 decfsz ??_display_Lcd_Layout,f 5198 0BFC 2BFB goto u3107 5199 0BFD 0BC7 decfsz ??_display_Lcd_Layout+1,f 5200 0BFE 2BFB goto u3107 5201 0BFF 0BC8 decfsz ??_display_Lcd_Layout+2,f 5202 0C00 2BFB goto u3107 5203 0C01 2C02 nop2 5204 0C02 0008 return 5205 0C03 __end_of_display_Lcd_Layout: 5206 5207 psect text19 5208 0B79 __ptext19: 5209 ;; *************** function _display_Intro ***************** 5210 ;; Defined at: 5211 ;; line 252 in file "main.c" 5212 ;; Parameters: Size Location Type 5213 ;; None 5214 ;; Auto vars: Size Location Type 5215 ;; None 5216 ;; Return value: Size Location Type 5217 ;; 1 wreg void 5218 ;; Registers used: 5219 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 5220 ;; Tracked objects: 5221 ;; On entry : 0/0 5222 ;; On exit : 0/0 5223 ;; Unchanged: 0/0 5224 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5225 ;; Params: 0 0 0 0 0 5226 ;; Locals: 0 0 0 0 0 5227 ;; Temps: 0 3 0 0 0 5228 ;; Totals: 0 3 0 0 0 5229 ;;Total ram usage: 3 bytes 5230 ;; Hardware stack levels used: 1 5231 ;; Hardware stack levels required when called: 4 5232 ;; This function calls: 5233 ;; _Lcd_Clear 5234 ;; _Lcd_Set_Cursor 5235 ;; _Lcd_Write_String 5236 ;; This function is called by: 5237 ;; _main 5238 ;; This function uses a non-reentrant model 5239 ;; 5240 5241 5242 ;psect for function _display_Intro 5243 0B79 _display_Intro: 5244 5245 ;main.c: 254: Lcd_Clear(); 5246 5247 ;incstack = 0 5248 ; Regs used in _display_Intro: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 5249 0B79 160A 118A 2774 120A 158A fcall _Lcd_Clear 5250 5251 ;main.c: 255: Lcd_Set_Cursor(1, 4); 5252 0B7E 3004 movlw 4 5253 0B7F 1283 bcf 3,5 ;RP0=0, select bank0 5254 0B80 1303 bcf 3,6 ;RP1=0, select bank0 5255 0B81 00C6 movwf ??_display_Intro 5256 0B82 0846 movf ??_display_Intro,w 5257 0B83 00F6 movwf Lcd_Set_Cursor@b 5258 0B84 3001 movlw 1 5259 0B85 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor 5260 5261 ;main.c: 256: Lcd_Write_String("Desk Clock"); 5262 0B8A 3021 movlw (low ((STR_1-__stringbase)| (0+32768)))& (0+255) 5263 0B8B 1283 bcf 3,5 ;RP0=0, select bank0 5264 0B8C 1303 bcf 3,6 ;RP1=0, select bank0 5265 0B8D 00BF movwf Lcd_Write_String@a 5266 0B8E 3080 movlw 128 5267 0B8F 00C0 movwf Lcd_Write_String@a+1 5268 0B90 120A 158A 2338 120A 158A fcall _Lcd_Write_String 5269 5270 ;main.c: 257: Lcd_Set_Cursor(2, 15); 5271 0B95 300F movlw 15 5272 0B96 1283 bcf 3,5 ;RP0=0, select bank0 5273 0B97 1303 bcf 3,6 ;RP1=0, select bank0 5274 0B98 00C6 movwf ??_display_Intro 5275 0B99 0846 movf ??_display_Intro,w 5276 0B9A 00F6 movwf Lcd_Set_Cursor@b 5277 0B9B 3002 movlw 2 5278 0B9C 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor 5279 5280 ;main.c: 258: Lcd_Write_String("V1"); 5281 0BA1 302C movlw (low ((STR_2-__stringbase)| (0+32768)))& (0+255) 5282 0BA2 1283 bcf 3,5 ;RP0=0, select bank0 5283 0BA3 1303 bcf 3,6 ;RP1=0, select bank0 5284 0BA4 00BF movwf Lcd_Write_String@a 5285 0BA5 3080 movlw 128 5286 0BA6 00C0 movwf Lcd_Write_String@a+1 5287 0BA7 120A 158A 2338 120A 158A fcall _Lcd_Write_String 5288 5289 ;main.c: 259: _delay((unsigned long)((1000)*(20000000/4000.0))); 5290 0BAC 301A movlw 26 5291 0BAD 1283 bcf 3,5 ;RP0=0, select bank0 5292 0BAE 1303 bcf 3,6 ;RP1=0, select bank0 5293 0BAF 00C8 movwf ??_display_Intro+2 5294 0BB0 305E movlw 94 5295 0BB1 00C7 movwf ??_display_Intro+1 5296 0BB2 306D movlw 109 5297 0BB3 00C6 movwf ??_display_Intro 5298 0BB4 u3117: 5299 0BB4 0BC6 decfsz ??_display_Intro,f 5300 0BB5 2BB4 goto u3117 5301 0BB6 0BC7 decfsz ??_display_Intro+1,f 5302 0BB7 2BB4 goto u3117 5303 0BB8 0BC8 decfsz ??_display_Intro+2,f 5304 0BB9 2BB4 goto u3117 5305 0BBA 2BBB nop2 5306 0BBB 0008 return 5307 0BBC __end_of_display_Intro: 5308 5309 psect text20 5310 0B38 __ptext20: 5311 ;; *************** function _Lcd_Write_String ***************** 5312 ;; Defined at: 5313 ;; line 93 in file "lcd.c" 5314 ;; Parameters: Size Location Type 5315 ;; a 2 31[BANK0 ] PTR unsigned char 5316 ;; -> dayOfWeek(28), STR_5(2), STR_4(17), STR_3(15), 5317 ;; -> STR_2(3), STR_1(11), 5318 ;; Auto vars: Size Location Type 5319 ;; i 2 36[BANK0 ] int 5320 ;; Return value: Size Location Type 5321 ;; 1 wreg void 5322 ;; Registers used: 5323 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 5324 ;; Tracked objects: 5325 ;; On entry : 0/0 5326 ;; On exit : 0/0 5327 ;; Unchanged: 0/0 5328 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5329 ;; Params: 0 2 0 0 0 5330 ;; Locals: 0 2 0 0 0 5331 ;; Temps: 0 3 0 0 0 5332 ;; Totals: 0 7 0 0 0 5333 ;;Total ram usage: 7 bytes 5334 ;; Hardware stack levels used: 1 5335 ;; Hardware stack levels required when called: 3 5336 ;; This function calls: 5337 ;; _Lcd_Write_Char 5338 ;; This function is called by: 5339 ;; _display_Intro 5340 ;; _display_Lcd_Layout 5341 ;; _update_Display 5342 ;; _edit_Date_Time 5343 ;; This function uses a non-reentrant model 5344 ;; 5345 5346 5347 ;psect for function _Lcd_Write_String 5348 0B38 _Lcd_Write_String: 5349 5350 ;lcd.c: 94: int i;;lcd.c: 95: for (i = 0; a[i] != '\0'; i++) 5351 5352 ;incstack = 0 5353 ; Regs used in _Lcd_Write_String: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 5354 0B38 1283 bcf 3,5 ;RP0=0, select bank0 5355 0B39 1303 bcf 3,6 ;RP1=0, select bank0 5356 0B3A 01C4 clrf Lcd_Write_String@i 5357 0B3B 01C5 clrf Lcd_Write_String@i+1 5358 0B3C l2262: 5359 0B3C 0844 movf Lcd_Write_String@i,w 5360 0B3D 073F addwf Lcd_Write_String@a,w 5361 0B3E 00C2 movwf ??_Lcd_Write_String+1 5362 0B3F 0840 movf Lcd_Write_String@a+1,w 5363 0B40 00C1 movwf ??_Lcd_Write_String 5364 0B41 1803 skipnc 5365 0B42 0AC1 incf ??_Lcd_Write_String,f 5366 0B43 1BC4 btfsc Lcd_Write_String@i,7 5367 0B44 03C1 decf ??_Lcd_Write_String,f 5368 0B45 1283 bcf 3,5 ;RP0=0, select bank0 5369 0B46 1303 bcf 3,6 ;RP1=0, select bank0 5370 0B47 0841 movf ??_Lcd_Write_String,w 5371 0B48 00C3 movwf ??_Lcd_Write_String+2 5372 0B49 0843 movf ??_Lcd_Write_String+2,w 5373 0B4A 00FF movwf 127 5374 0B4B 0842 movf ??_Lcd_Write_String+1,w 5375 0B4C 0084 movwf 4 5376 0B4D 120A 158A 2000 120A 158A fcall stringtab 5377 0B52 3A00 xorlw 0 5378 0B53 1903 btfsc 3,2 5379 0B54 0008 return 5380 5381 ;lcd.c: 96: Lcd_Write_Char(a[i]); 5382 0B55 0844 movf Lcd_Write_String@i,w 5383 0B56 073F addwf Lcd_Write_String@a,w 5384 0B57 00C2 movwf ??_Lcd_Write_String+1 5385 0B58 0840 movf Lcd_Write_String@a+1,w 5386 0B59 00C1 movwf ??_Lcd_Write_String 5387 0B5A 1803 skipnc 5388 0B5B 0AC1 incf ??_Lcd_Write_String,f 5389 0B5C 1BC4 btfsc Lcd_Write_String@i,7 5390 0B5D 03C1 decf ??_Lcd_Write_String,f 5391 0B5E 1283 bcf 3,5 ;RP0=0, select bank0 5392 0B5F 1303 bcf 3,6 ;RP1=0, select bank0 5393 0B60 0841 movf ??_Lcd_Write_String,w 5394 0B61 00C3 movwf ??_Lcd_Write_String+2 5395 0B62 0843 movf ??_Lcd_Write_String+2,w 5396 0B63 00FF movwf 127 5397 0B64 0842 movf ??_Lcd_Write_String+1,w 5398 0B65 0084 movwf 4 5399 0B66 120A 158A 2000 120A 158A fcall stringtab 5400 0B6B 120A 158A 2284 120A 158A fcall _Lcd_Write_Char 5401 0B70 3001 movlw 1 5402 0B71 1283 bcf 3,5 ;RP0=0, select bank0 5403 0B72 1303 bcf 3,6 ;RP1=0, select bank0 5404 0B73 07C4 addwf Lcd_Write_String@i,f 5405 0B74 1803 skipnc 5406 0B75 0AC5 incf Lcd_Write_String@i+1,f 5407 0B76 3000 movlw 0 5408 0B77 07C5 addwf Lcd_Write_String@i+1,f 5409 0B78 2B3C goto l2262 5410 0B79 __end_of_Lcd_Write_String: 5411 5412 psect text21 5413 0C97 __ptext21: 5414 ;; *************** function _Lcd_Set_Cursor ***************** 5415 ;; Defined at: 5416 ;; line 40 in file "lcd.c" 5417 ;; Parameters: Size Location Type 5418 ;; a 1 wreg unsigned char 5419 ;; b 1 6[COMMON] unsigned char 5420 ;; Auto vars: Size Location Type 5421 ;; a 1 0[BANK0 ] unsigned char 5422 ;; temp 1 3[BANK0 ] unsigned char 5423 ;; y 1 2[BANK0 ] unsigned char 5424 ;; z 1 1[BANK0 ] unsigned char 5425 ;; Return value: Size Location Type 5426 ;; 1 wreg void 5427 ;; Registers used: 5428 ;; wreg, status,2, status,0, pclath, cstack 5429 ;; Tracked objects: 5430 ;; On entry : 0/0 5431 ;; On exit : 0/0 5432 ;; Unchanged: 0/0 5433 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5434 ;; Params: 1 0 0 0 0 5435 ;; Locals: 0 4 0 0 0 5436 ;; Temps: 2 0 0 0 0 5437 ;; Totals: 3 4 0 0 0 5438 ;;Total ram usage: 7 bytes 5439 ;; Hardware stack levels used: 1 5440 ;; Hardware stack levels required when called: 3 5441 ;; This function calls: 5442 ;; _Lcd_Cmd 5443 ;; This function is called by: 5444 ;; _main 5445 ;; _display_Intro 5446 ;; _display_Lcd_Layout 5447 ;; _update_Display 5448 ;; _edit_Date_Time 5449 ;; This function uses a non-reentrant model 5450 ;; 5451 5452 5453 ;psect for function _Lcd_Set_Cursor 5454 0C97 _Lcd_Set_Cursor: 5455 5456 ;incstack = 0 5457 ; Regs used in _Lcd_Set_Cursor: [wreg+status,2+status,0+pclath+cstack] 5458 ;Lcd_Set_Cursor@a stored from wreg 5459 0C97 1283 bcf 3,5 ;RP0=0, select bank0 5460 0C98 1303 bcf 3,6 ;RP1=0, select bank0 5461 0C99 00A0 movwf Lcd_Set_Cursor@a 5462 5463 ;lcd.c: 41: char temp, z, y;;lcd.c: 42: if (a == 1) { 5464 0C9A 0320 decf Lcd_Set_Cursor@a,w 5465 0C9B 1D03 btfss 3,2 5466 0C9C 2CC0 goto l2242 5467 5468 ;lcd.c: 43: temp = 0x80 + b - 1; 5469 0C9D 0876 movf Lcd_Set_Cursor@b,w 5470 0C9E 3E7F addlw 127 5471 0C9F 00F7 movwf ??_Lcd_Set_Cursor 5472 0CA0 0877 movf ??_Lcd_Set_Cursor,w 5473 0CA1 00A3 movwf Lcd_Set_Cursor@temp 5474 5475 ;lcd.c: 44: z = temp >> 4; 5476 0CA2 0823 movf Lcd_Set_Cursor@temp,w 5477 0CA3 00F7 movwf ??_Lcd_Set_Cursor 5478 0CA4 3004 movlw 4 5479 0CA5 u1595: 5480 0CA5 1003 clrc 5481 0CA6 0CF7 rrf ??_Lcd_Set_Cursor,f 5482 0CA7 3EFF addlw -1 5483 0CA8 1D03 skipz 5484 0CA9 2CA5 goto u1595 5485 0CAA 0877 movf ??_Lcd_Set_Cursor,w 5486 0CAB 00F8 movwf ??_Lcd_Set_Cursor+1 5487 0CAC 0878 movf ??_Lcd_Set_Cursor+1,w 5488 0CAD 00A1 movwf Lcd_Set_Cursor@z 5489 5490 ;lcd.c: 45: y = temp & 0x0F; 5491 0CAE 0823 movf Lcd_Set_Cursor@temp,w 5492 0CAF 390F andlw 15 5493 0CB0 00F7 movwf ??_Lcd_Set_Cursor 5494 0CB1 0877 movf ??_Lcd_Set_Cursor,w 5495 0CB2 00A2 movwf Lcd_Set_Cursor@y 5496 5497 ;lcd.c: 46: Lcd_Cmd(z); 5498 0CB3 0821 movf Lcd_Set_Cursor@z,w 5499 0CB4 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 5500 5501 ;lcd.c: 47: Lcd_Cmd(y); 5502 0CB9 1283 bcf 3,5 ;RP0=0, select bank0 5503 0CBA 1303 bcf 3,6 ;RP1=0, select bank0 5504 0CBB 0822 movf Lcd_Set_Cursor@y,w 5505 0CBC 160A 118A 27E6 fcall _Lcd_Cmd 5506 5507 ;lcd.c: 48: } else if (a == 2) { 5508 0CBF 0008 return 5509 0CC0 l2242: 5510 0CC0 3002 movlw 2 5511 0CC1 0620 xorwf Lcd_Set_Cursor@a,w 5512 0CC2 1D03 btfss 3,2 5513 0CC3 0008 return 5514 5515 ;lcd.c: 49: temp = 0xC0 + b - 1; 5516 0CC4 0876 movf Lcd_Set_Cursor@b,w 5517 0CC5 3EBF addlw 191 5518 0CC6 00F7 movwf ??_Lcd_Set_Cursor 5519 0CC7 0877 movf ??_Lcd_Set_Cursor,w 5520 0CC8 00A3 movwf Lcd_Set_Cursor@temp 5521 5522 ;lcd.c: 50: z = temp >> 4; 5523 0CC9 0823 movf Lcd_Set_Cursor@temp,w 5524 0CCA 00F7 movwf ??_Lcd_Set_Cursor 5525 0CCB 3004 movlw 4 5526 0CCC u1615: 5527 0CCC 1003 clrc 5528 0CCD 0CF7 rrf ??_Lcd_Set_Cursor,f 5529 0CCE 3EFF addlw -1 5530 0CCF 1D03 skipz 5531 0CD0 2CCC goto u1615 5532 0CD1 0877 movf ??_Lcd_Set_Cursor,w 5533 0CD2 00F8 movwf ??_Lcd_Set_Cursor+1 5534 0CD3 0878 movf ??_Lcd_Set_Cursor+1,w 5535 0CD4 00A1 movwf Lcd_Set_Cursor@z 5536 5537 ;lcd.c: 51: y = temp & 0x0F; 5538 0CD5 0823 movf Lcd_Set_Cursor@temp,w 5539 0CD6 390F andlw 15 5540 0CD7 00F7 movwf ??_Lcd_Set_Cursor 5541 0CD8 0877 movf ??_Lcd_Set_Cursor,w 5542 0CD9 00A2 movwf Lcd_Set_Cursor@y 5543 5544 ;lcd.c: 52: Lcd_Cmd(z); 5545 0CDA 0821 movf Lcd_Set_Cursor@z,w 5546 0CDB 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 5547 5548 ;lcd.c: 53: Lcd_Cmd(y); 5549 0CE0 1283 bcf 3,5 ;RP0=0, select bank0 5550 0CE1 1303 bcf 3,6 ;RP1=0, select bank0 5551 0CE2 0822 movf Lcd_Set_Cursor@y,w 5552 0CE3 160A 118A 27E6 fcall _Lcd_Cmd 5553 0CE6 0008 return 5554 0CE7 __end_of_Lcd_Set_Cursor: 5555 5556 psect text22 5557 1774 __ptext22: 5558 ;; *************** function _Lcd_Clear ***************** 5559 ;; Defined at: 5560 ;; line 35 in file "lcd.c" 5561 ;; Parameters: Size Location Type 5562 ;; None 5563 ;; Auto vars: Size Location Type 5564 ;; None 5565 ;; Return value: Size Location Type 5566 ;; 1 wreg void 5567 ;; Registers used: 5568 ;; wreg, status,2, status,0, pclath, cstack 5569 ;; Tracked objects: 5570 ;; On entry : 0/0 5571 ;; On exit : 0/0 5572 ;; Unchanged: 0/0 5573 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5574 ;; Params: 0 0 0 0 0 5575 ;; Locals: 0 0 0 0 0 5576 ;; Temps: 0 0 0 0 0 5577 ;; Totals: 0 0 0 0 0 5578 ;;Total ram usage: 0 bytes 5579 ;; Hardware stack levels used: 1 5580 ;; Hardware stack levels required when called: 3 5581 ;; This function calls: 5582 ;; _Lcd_Cmd 5583 ;; This function is called by: 5584 ;; _display_Intro 5585 ;; _display_Lcd_Layout 5586 ;; This function uses a non-reentrant model 5587 ;; 5588 5589 5590 ;psect for function _Lcd_Clear 5591 1774 _Lcd_Clear: 5592 5593 ;lcd.c: 36: Lcd_Cmd(0); 5594 5595 ;incstack = 0 5596 ; Regs used in _Lcd_Clear: [wreg+status,2+status,0+pclath+cstack] 5597 1774 3000 movlw 0 5598 1775 160A 118A 27E6 160A 118A fcall _Lcd_Cmd 5599 5600 ;lcd.c: 37: Lcd_Cmd(1); 5601 177A 3001 movlw 1 5602 177B 160A 118A 27E6 fcall _Lcd_Cmd 5603 177E 0008 return 5604 177F __end_of_Lcd_Clear: 5605 5606 psect text23 5607 0F10 __ptext23: 5608 ;; *************** function _Update_Current_Date_Time ***************** 5609 ;; Defined at: 5610 ;; line 103 in file "ds3231.c" 5611 ;; Parameters: Size Location Type 5612 ;; None 5613 ;; Auto vars: Size Location Type 5614 ;; None 5615 ;; Return value: Size Location Type 5616 ;; 1 wreg void 5617 ;; Registers used: 5618 ;; wreg, status,2, status,0, pclath, cstack 5619 ;; Tracked objects: 5620 ;; On entry : 0/0 5621 ;; On exit : 0/0 5622 ;; Unchanged: 0/0 5623 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5624 ;; Params: 0 0 0 0 0 5625 ;; Locals: 0 0 0 0 0 5626 ;; Temps: 0 0 0 0 0 5627 ;; Totals: 0 0 0 0 0 5628 ;;Total ram usage: 0 bytes 5629 ;; Hardware stack levels used: 1 5630 ;; Hardware stack levels required when called: 3 5631 ;; This function calls: 5632 ;; _BCD_2_DEC 5633 ;; _I2C_Master_Read 5634 ;; _I2C_Master_Start 5635 ;; _I2C_Master_Stop 5636 ;; _I2C_Master_Write 5637 ;; This function is called by: 5638 ;; _main 5639 ;; This function uses a non-reentrant model 5640 ;; 5641 5642 5643 ;psect for function _Update_Current_Date_Time 5644 0F10 _Update_Current_Date_Time: 5645 5646 ;ds3231.c: 105: I2C_Master_Start(); 5647 5648 ;incstack = 0 5649 ; Regs used in _Update_Current_Date_Time: [wreg+status,2+status,0+pclath+cstack] 5650 0F10 160A 118A 274D 120A 158A fcall _I2C_Master_Start 5651 5652 ;ds3231.c: 106: I2C_Master_Write(0xD0); 5653 0F15 30D0 movlw 208 5654 0F16 1283 bcf 3,5 ;RP0=0, select bank0 5655 0F17 1303 bcf 3,6 ;RP1=0, select bank0 5656 0F18 00A8 movwf I2C_Master_Write@data 5657 0F19 3000 movlw 0 5658 0F1A 00A9 movwf I2C_Master_Write@data+1 5659 0F1B 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5660 5661 ;ds3231.c: 107: I2C_Master_Write(0); 5662 0F20 3000 movlw 0 5663 0F21 1283 bcf 3,5 ;RP0=0, select bank0 5664 0F22 1303 bcf 3,6 ;RP1=0, select bank0 5665 0F23 00A8 movwf I2C_Master_Write@data 5666 0F24 00A9 movwf I2C_Master_Write@data+1 5667 0F25 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5668 5669 ;ds3231.c: 108: I2C_Master_Stop(); 5670 0F2A 160A 118A 2754 120A 158A fcall _I2C_Master_Stop 5671 5672 ;ds3231.c: 111: I2C_Master_Start(); 5673 0F2F 160A 118A 274D 120A 158A fcall _I2C_Master_Start 5674 5675 ;ds3231.c: 112: I2C_Master_Write(0xD1); 5676 0F34 30D1 movlw 209 5677 0F35 1283 bcf 3,5 ;RP0=0, select bank0 5678 0F36 1303 bcf 3,6 ;RP1=0, select bank0 5679 0F37 00A8 movwf I2C_Master_Write@data 5680 0F38 3000 movlw 0 5681 0F39 00A9 movwf I2C_Master_Write@data+1 5682 0F3A 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5683 5684 ;ds3231.c: 113: sec = BCD_2_DEC(I2C_Master_Read(1)); 5685 0F3F 3001 movlw 1 5686 0F40 00F2 movwf I2C_Master_Read@ack 5687 0F41 3000 movlw 0 5688 0F42 00F3 movwf I2C_Master_Read@ack+1 5689 0F43 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5690 0F48 0873 movf ?_I2C_Master_Read+1,w 5691 0F49 00F9 movwf BCD_2_DEC@to_convert+1 5692 0F4A 0872 movf ?_I2C_Master_Read,w 5693 0F4B 00F8 movwf BCD_2_DEC@to_convert 5694 0F4C 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5695 0F51 0879 movf ?_BCD_2_DEC+1,w 5696 0F52 1283 bcf 3,5 ;RP0=0, select bank0 5697 0F53 1303 bcf 3,6 ;RP1=0, select bank0 5698 0F54 00E4 movwf _sec+1 5699 0F55 0878 movf ?_BCD_2_DEC,w 5700 0F56 00E3 movwf _sec 5701 5702 ;ds3231.c: 114: min = BCD_2_DEC(I2C_Master_Read(1)); 5703 0F57 3001 movlw 1 5704 0F58 00F2 movwf I2C_Master_Read@ack 5705 0F59 3000 movlw 0 5706 0F5A 00F3 movwf I2C_Master_Read@ack+1 5707 0F5B 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5708 0F60 0873 movf ?_I2C_Master_Read+1,w 5709 0F61 00F9 movwf BCD_2_DEC@to_convert+1 5710 0F62 0872 movf ?_I2C_Master_Read,w 5711 0F63 00F8 movwf BCD_2_DEC@to_convert 5712 0F64 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5713 0F69 0879 movf ?_BCD_2_DEC+1,w 5714 0F6A 1283 bcf 3,5 ;RP0=0, select bank0 5715 0F6B 1303 bcf 3,6 ;RP1=0, select bank0 5716 0F6C 00E2 movwf _min+1 5717 0F6D 0878 movf ?_BCD_2_DEC,w 5718 0F6E 00E1 movwf _min 5719 5720 ;ds3231.c: 115: hour = BCD_2_DEC(I2C_Master_Read(1)); 5721 0F6F 3001 movlw 1 5722 0F70 00F2 movwf I2C_Master_Read@ack 5723 0F71 3000 movlw 0 5724 0F72 00F3 movwf I2C_Master_Read@ack+1 5725 0F73 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5726 0F78 0873 movf ?_I2C_Master_Read+1,w 5727 0F79 00F9 movwf BCD_2_DEC@to_convert+1 5728 0F7A 0872 movf ?_I2C_Master_Read,w 5729 0F7B 00F8 movwf BCD_2_DEC@to_convert 5730 0F7C 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5731 0F81 0879 movf ?_BCD_2_DEC+1,w 5732 0F82 1283 bcf 3,5 ;RP0=0, select bank0 5733 0F83 1303 bcf 3,6 ;RP1=0, select bank0 5734 0F84 00E0 movwf _hour+1 5735 0F85 0878 movf ?_BCD_2_DEC,w 5736 0F86 00DF movwf _hour 5737 5738 ;ds3231.c: 116: day = I2C_Master_Read(1); 5739 0F87 3001 movlw 1 5740 0F88 00F2 movwf I2C_Master_Read@ack 5741 0F89 3000 movlw 0 5742 0F8A 00F3 movwf I2C_Master_Read@ack+1 5743 0F8B 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5744 0F90 0873 movf ?_I2C_Master_Read+1,w 5745 0F91 1683 bsf 3,5 ;RP0=1, select bank1 5746 0F92 1303 bcf 3,6 ;RP1=0, select bank1 5747 0F93 00A3 movwf (_day+1)^(0+128) 5748 0F94 0872 movf ?_I2C_Master_Read,w 5749 0F95 00A2 movwf _day^(0+128) 5750 5751 ;ds3231.c: 117: date = BCD_2_DEC(I2C_Master_Read(1)); 5752 0F96 3001 movlw 1 5753 0F97 00F2 movwf I2C_Master_Read@ack 5754 0F98 3000 movlw 0 5755 0F99 00F3 movwf I2C_Master_Read@ack+1 5756 0F9A 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5757 0F9F 0873 movf ?_I2C_Master_Read+1,w 5758 0FA0 00F9 movwf BCD_2_DEC@to_convert+1 5759 0FA1 0872 movf ?_I2C_Master_Read,w 5760 0FA2 00F8 movwf BCD_2_DEC@to_convert 5761 0FA3 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5762 0FA8 0879 movf ?_BCD_2_DEC+1,w 5763 0FA9 1283 bcf 3,5 ;RP0=0, select bank0 5764 0FAA 1303 bcf 3,6 ;RP1=0, select bank0 5765 0FAB 00EC movwf _date+1 5766 0FAC 0878 movf ?_BCD_2_DEC,w 5767 0FAD 00EB movwf _date 5768 5769 ;ds3231.c: 118: month = BCD_2_DEC(I2C_Master_Read(1)); 5770 0FAE 3001 movlw 1 5771 0FAF 00F2 movwf I2C_Master_Read@ack 5772 0FB0 3000 movlw 0 5773 0FB1 00F3 movwf I2C_Master_Read@ack+1 5774 0FB2 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5775 0FB7 0873 movf ?_I2C_Master_Read+1,w 5776 0FB8 00F9 movwf BCD_2_DEC@to_convert+1 5777 0FB9 0872 movf ?_I2C_Master_Read,w 5778 0FBA 00F8 movwf BCD_2_DEC@to_convert 5779 0FBB 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5780 0FC0 0879 movf ?_BCD_2_DEC+1,w 5781 0FC1 1283 bcf 3,5 ;RP0=0, select bank0 5782 0FC2 1303 bcf 3,6 ;RP1=0, select bank0 5783 0FC3 00EA movwf _month+1 5784 0FC4 0878 movf ?_BCD_2_DEC,w 5785 0FC5 00E9 movwf _month 5786 5787 ;ds3231.c: 119: year = BCD_2_DEC(I2C_Master_Read(1)); 5788 0FC6 3001 movlw 1 5789 0FC7 00F2 movwf I2C_Master_Read@ack 5790 0FC8 3000 movlw 0 5791 0FC9 00F3 movwf I2C_Master_Read@ack+1 5792 0FCA 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5793 0FCF 0873 movf ?_I2C_Master_Read+1,w 5794 0FD0 00F9 movwf BCD_2_DEC@to_convert+1 5795 0FD1 0872 movf ?_I2C_Master_Read,w 5796 0FD2 00F8 movwf BCD_2_DEC@to_convert 5797 0FD3 120A 158A 20E0 120A 158A fcall _BCD_2_DEC 5798 0FD8 0879 movf ?_BCD_2_DEC+1,w 5799 0FD9 1283 bcf 3,5 ;RP0=0, select bank0 5800 0FDA 1303 bcf 3,6 ;RP1=0, select bank0 5801 0FDB 00DE movwf _year+1 5802 0FDC 0878 movf ?_BCD_2_DEC,w 5803 0FDD 00DD movwf _year 5804 5805 ;ds3231.c: 120: I2C_Master_Stop(); 5806 0FDE 160A 118A 2754 120A 158A fcall _I2C_Master_Stop 5807 5808 ;ds3231.c: 124: I2C_Master_Start(); 5809 0FE3 160A 118A 274D 120A 158A fcall _I2C_Master_Start 5810 5811 ;ds3231.c: 125: I2C_Master_Write(0xD1); 5812 0FE8 30D1 movlw 209 5813 0FE9 1283 bcf 3,5 ;RP0=0, select bank0 5814 0FEA 1303 bcf 3,6 ;RP1=0, select bank0 5815 0FEB 00A8 movwf I2C_Master_Write@data 5816 0FEC 3000 movlw 0 5817 0FED 00A9 movwf I2C_Master_Write@data+1 5818 0FEE 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5819 5820 ;ds3231.c: 126: I2C_Master_Read(1); 5821 0FF3 3001 movlw 1 5822 0FF4 00F2 movwf I2C_Master_Read@ack 5823 0FF5 3000 movlw 0 5824 0FF6 00F3 movwf I2C_Master_Read@ack+1 5825 0FF7 120A 158A 215B 120A 158A fcall _I2C_Master_Read 5826 5827 ;ds3231.c: 127: I2C_Master_Stop(); 5828 0FFC 160A 118A 2754 fcall _I2C_Master_Stop 5829 0FFF 0008 return 5830 1000 __end_of_Update_Current_Date_Time: 5831 5832 psect text24 5833 0907 __ptext24: 5834 ;; *************** function _Set_Sqwe ***************** 5835 ;; Defined at: 5836 ;; line 85 in file "ds3231.c" 5837 ;; Parameters: Size Location Type 5838 ;; contvalue 2 10[BANK0 ] int 5839 ;; Auto vars: Size Location Type 5840 ;; None 5841 ;; Return value: Size Location Type 5842 ;; 1 wreg void 5843 ;; Registers used: 5844 ;; wreg, status,2, status,0, pclath, cstack 5845 ;; Tracked objects: 5846 ;; On entry : 0/0 5847 ;; On exit : 0/0 5848 ;; Unchanged: 0/0 5849 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5850 ;; Params: 0 2 0 0 0 5851 ;; Locals: 0 0 0 0 0 5852 ;; Temps: 0 0 0 0 0 5853 ;; Totals: 0 2 0 0 0 5854 ;;Total ram usage: 2 bytes 5855 ;; Hardware stack levels used: 1 5856 ;; Hardware stack levels required when called: 3 5857 ;; This function calls: 5858 ;; _I2C_Master_Start 5859 ;; _I2C_Master_Stop 5860 ;; _I2C_Master_Write 5861 ;; This function is called by: 5862 ;; _main 5863 ;; This function uses a non-reentrant model 5864 ;; 5865 5866 5867 ;psect for function _Set_Sqwe 5868 0907 _Set_Sqwe: 5869 5870 ;ds3231.c: 86: I2C_Master_Start(); 5871 5872 ;incstack = 0 5873 ; Regs used in _Set_Sqwe: [wreg+status,2+status,0+pclath+cstack] 5874 0907 160A 118A 274D 120A 158A fcall _I2C_Master_Start 5875 5876 ;ds3231.c: 87: I2C_Master_Write(0xD0); 5877 090C 30D0 movlw 208 5878 090D 1283 bcf 3,5 ;RP0=0, select bank0 5879 090E 1303 bcf 3,6 ;RP1=0, select bank0 5880 090F 00A8 movwf I2C_Master_Write@data 5881 0910 3000 movlw 0 5882 0911 00A9 movwf I2C_Master_Write@data+1 5883 0912 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5884 5885 ;ds3231.c: 88: I2C_Master_Write(0x0E); 5886 0917 300E movlw 14 5887 0918 1283 bcf 3,5 ;RP0=0, select bank0 5888 0919 1303 bcf 3,6 ;RP1=0, select bank0 5889 091A 00A8 movwf I2C_Master_Write@data 5890 091B 3000 movlw 0 5891 091C 00A9 movwf I2C_Master_Write@data+1 5892 091D 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5893 5894 ;ds3231.c: 89: I2C_Master_Write(contvalue); 5895 0922 1283 bcf 3,5 ;RP0=0, select bank0 5896 0923 1303 bcf 3,6 ;RP1=0, select bank0 5897 0924 082B movf Set_Sqwe@contvalue+1,w 5898 0925 00A9 movwf I2C_Master_Write@data+1 5899 0926 082A movf Set_Sqwe@contvalue,w 5900 0927 00A8 movwf I2C_Master_Write@data 5901 0928 160A 118A 275B 120A 158A fcall _I2C_Master_Write 5902 5903 ;ds3231.c: 90: I2C_Master_Stop(); 5904 092D 160A 118A 2754 fcall _I2C_Master_Stop 5905 0930 0008 return 5906 0931 __end_of_Set_Sqwe: 5907 5908 psect text25 5909 06C8 __ptext25: 5910 ;; *************** function _Read_Alarms_Temp ***************** 5911 ;; Defined at: 5912 ;; line 42 in file "ds3231.c" 5913 ;; Parameters: Size Location Type 5914 ;; None 5915 ;; Auto vars: Size Location Type 5916 ;; None 5917 ;; Return value: Size Location Type 5918 ;; 1 wreg void 5919 ;; Registers used: 5920 ;; wreg, status,2, status,0, pclath, cstack 5921 ;; Tracked objects: 5922 ;; On entry : 0/0 5923 ;; On exit : 0/0 5924 ;; Unchanged: 0/0 5925 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5926 ;; Params: 0 0 0 0 0 5927 ;; Locals: 0 0 0 0 0 5928 ;; Temps: 0 0 0 0 0 5929 ;; Totals: 0 0 0 0 0 5930 ;;Total ram usage: 0 bytes 5931 ;; Hardware stack levels used: 1 5932 ;; Hardware stack levels required when called: 3 5933 ;; This function calls: 5934 ;; _BCD_2_DEC 5935 ;; _I2C_Master_Read 5936 ;; _I2C_Master_Repeated_Start 5937 ;; _I2C_Master_Start 5938 ;; _I2C_Master_Stop 5939 ;; _I2C_Master_Write 5940 ;; This function is called by: 5941 ;; _main 5942 ;; This function uses a non-reentrant model 5943 ;; 5944 5945 5946 ;psect for function _Read_Alarms_Temp 5947 06C8 _Read_Alarms_Temp: 5948 5949 ;ds3231.c: 43: I2C_Master_Start(); 5950 5951 ;incstack = 0 5952 ; Regs used in _Read_Alarms_Temp: [wreg+status,2+status,0+pclath+cstack] 5953 06C8 160A 118A 274D 120A 118A fcall _I2C_Master_Start 5954 5955 ;ds3231.c: 44: I2C_Master_Write(0xD0); 5956 06CD 30D0 movlw 208 5957 06CE 1283 bcf 3,5 ;RP0=0, select bank0 5958 06CF 1303 bcf 3,6 ;RP1=0, select bank0 5959 06D0 00A8 movwf I2C_Master_Write@data 5960 06D1 3000 movlw 0 5961 06D2 00A9 movwf I2C_Master_Write@data+1 5962 06D3 160A 118A 275B 120A 118A fcall _I2C_Master_Write 5963 5964 ;ds3231.c: 45: I2C_Master_Write(0x07); 5965 06D8 3007 movlw 7 5966 06D9 1283 bcf 3,5 ;RP0=0, select bank0 5967 06DA 1303 bcf 3,6 ;RP1=0, select bank0 5968 06DB 00A8 movwf I2C_Master_Write@data 5969 06DC 3000 movlw 0 5970 06DD 00A9 movwf I2C_Master_Write@data+1 5971 06DE 160A 118A 275B 120A 118A fcall _I2C_Master_Write 5972 5973 ;ds3231.c: 46: I2C_Master_Repeated_Start(); 5974 06E3 160A 118A 2746 120A 118A fcall _I2C_Master_Repeated_Start 5975 5976 ;ds3231.c: 49: I2C_Master_Write(0xD1); 5977 06E8 30D1 movlw 209 5978 06E9 1283 bcf 3,5 ;RP0=0, select bank0 5979 06EA 1303 bcf 3,6 ;RP1=0, select bank0 5980 06EB 00A8 movwf I2C_Master_Write@data 5981 06EC 3000 movlw 0 5982 06ED 00A9 movwf I2C_Master_Write@data+1 5983 06EE 160A 118A 275B 120A 118A fcall _I2C_Master_Write 5984 5985 ;ds3231.c: 50: alarm1_sec = BCD_2_DEC(I2C_Master_Read(1)); 5986 06F3 3001 movlw 1 5987 06F4 00F2 movwf I2C_Master_Read@ack 5988 06F5 3000 movlw 0 5989 06F6 00F3 movwf I2C_Master_Read@ack+1 5990 06F7 120A 158A 215B 120A 118A fcall _I2C_Master_Read 5991 06FC 0873 movf ?_I2C_Master_Read+1,w 5992 06FD 00F9 movwf BCD_2_DEC@to_convert+1 5993 06FE 0872 movf ?_I2C_Master_Read,w 5994 06FF 00F8 movwf BCD_2_DEC@to_convert 5995 0700 120A 158A 20E0 120A 118A fcall _BCD_2_DEC 5996 0705 0879 movf ?_BCD_2_DEC+1,w 5997 0706 1683 bsf 3,5 ;RP0=1, select bank1 5998 0707 1303 bcf 3,6 ;RP1=0, select bank1 5999 0708 00CF movwf (_alarm1_sec+1)^(0+128) 6000 0709 0878 movf ?_BCD_2_DEC,w 6001 070A 00CE movwf _alarm1_sec^(0+128) 6002 6003 ;ds3231.c: 51: alarm1_min = BCD_2_DEC(I2C_Master_Read(1)); 6004 070B 3001 movlw 1 6005 070C 00F2 movwf I2C_Master_Read@ack 6006 070D 3000 movlw 0 6007 070E 00F3 movwf I2C_Master_Read@ack+1 6008 070F 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6009 0714 0873 movf ?_I2C_Master_Read+1,w 6010 0715 00F9 movwf BCD_2_DEC@to_convert+1 6011 0716 0872 movf ?_I2C_Master_Read,w 6012 0717 00F8 movwf BCD_2_DEC@to_convert 6013 0718 120A 158A 20E0 120A 118A fcall _BCD_2_DEC 6014 071D 0879 movf ?_BCD_2_DEC+1,w 6015 071E 1683 bsf 3,5 ;RP0=1, select bank1 6016 071F 1303 bcf 3,6 ;RP1=0, select bank1 6017 0720 00CD movwf (_alarm1_min+1)^(0+128) 6018 0721 0878 movf ?_BCD_2_DEC,w 6019 0722 00CC movwf _alarm1_min^(0+128) 6020 6021 ;ds3231.c: 52: alarm1_hour = BCD_2_DEC(I2C_Master_Read(1)); 6022 0723 3001 movlw 1 6023 0724 00F2 movwf I2C_Master_Read@ack 6024 0725 3000 movlw 0 6025 0726 00F3 movwf I2C_Master_Read@ack+1 6026 0727 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6027 072C 0873 movf ?_I2C_Master_Read+1,w 6028 072D 00F9 movwf BCD_2_DEC@to_convert+1 6029 072E 0872 movf ?_I2C_Master_Read,w 6030 072F 00F8 movwf BCD_2_DEC@to_convert 6031 0730 120A 158A 20E0 120A 118A fcall _BCD_2_DEC 6032 0735 0879 movf ?_BCD_2_DEC+1,w 6033 0736 1683 bsf 3,5 ;RP0=1, select bank1 6034 0737 1303 bcf 3,6 ;RP1=0, select bank1 6035 0738 00CB movwf (_alarm1_hour+1)^(0+128) 6036 0739 0878 movf ?_BCD_2_DEC,w 6037 073A 00CA movwf _alarm1_hour^(0+128) 6038 6039 ;ds3231.c: 53: I2C_Master_Read(1); 6040 073B 3001 movlw 1 6041 073C 00F2 movwf I2C_Master_Read@ack 6042 073D 3000 movlw 0 6043 073E 00F3 movwf I2C_Master_Read@ack+1 6044 073F 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6045 6046 ;ds3231.c: 54: alarm2_min = BCD_2_DEC(I2C_Master_Read(1)); 6047 0744 3001 movlw 1 6048 0745 00F2 movwf I2C_Master_Read@ack 6049 0746 3000 movlw 0 6050 0747 00F3 movwf I2C_Master_Read@ack+1 6051 0748 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6052 074D 0873 movf ?_I2C_Master_Read+1,w 6053 074E 00F9 movwf BCD_2_DEC@to_convert+1 6054 074F 0872 movf ?_I2C_Master_Read,w 6055 0750 00F8 movwf BCD_2_DEC@to_convert 6056 0751 120A 158A 20E0 120A 118A fcall _BCD_2_DEC 6057 0756 0879 movf ?_BCD_2_DEC+1,w 6058 0757 1683 bsf 3,5 ;RP0=1, select bank1 6059 0758 1303 bcf 3,6 ;RP1=0, select bank1 6060 0759 00C9 movwf (_alarm2_min+1)^(0+128) 6061 075A 0878 movf ?_BCD_2_DEC,w 6062 075B 00C8 movwf _alarm2_min^(0+128) 6063 6064 ;ds3231.c: 55: alarm2_hour = BCD_2_DEC(I2C_Master_Read(1)); 6065 075C 3001 movlw 1 6066 075D 00F2 movwf I2C_Master_Read@ack 6067 075E 3000 movlw 0 6068 075F 00F3 movwf I2C_Master_Read@ack+1 6069 0760 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6070 0765 0873 movf ?_I2C_Master_Read+1,w 6071 0766 00F9 movwf BCD_2_DEC@to_convert+1 6072 0767 0872 movf ?_I2C_Master_Read,w 6073 0768 00F8 movwf BCD_2_DEC@to_convert 6074 0769 120A 158A 20E0 120A 118A fcall _BCD_2_DEC 6075 076E 0879 movf ?_BCD_2_DEC+1,w 6076 076F 1683 bsf 3,5 ;RP0=1, select bank1 6077 0770 1303 bcf 3,6 ;RP1=0, select bank1 6078 0771 00C7 movwf (_alarm2_hour+1)^(0+128) 6079 0772 0878 movf ?_BCD_2_DEC,w 6080 0773 00C6 movwf _alarm2_hour^(0+128) 6081 6082 ;ds3231.c: 56: I2C_Master_Read(1); 6083 0774 3001 movlw 1 6084 0775 00F2 movwf I2C_Master_Read@ack 6085 0776 3000 movlw 0 6086 0777 00F3 movwf I2C_Master_Read@ack+1 6087 0778 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6088 6089 ;ds3231.c: 57: control_reg = I2C_Master_Read(1); 6090 077D 3001 movlw 1 6091 077E 00F2 movwf I2C_Master_Read@ack 6092 077F 3000 movlw 0 6093 0780 00F3 movwf I2C_Master_Read@ack+1 6094 0781 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6095 0786 0873 movf ?_I2C_Master_Read+1,w 6096 0787 1283 bcf 3,5 ;RP0=0, select bank0 6097 0788 1303 bcf 3,6 ;RP1=0, select bank0 6098 0789 00DC movwf _control_reg+1 6099 078A 0872 movf ?_I2C_Master_Read,w 6100 078B 00DB movwf _control_reg 6101 6102 ;ds3231.c: 58: status_reg = I2C_Master_Read(1); 6103 078C 3001 movlw 1 6104 078D 00F2 movwf I2C_Master_Read@ack 6105 078E 3000 movlw 0 6106 078F 00F3 movwf I2C_Master_Read@ack+1 6107 0790 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6108 0795 0873 movf ?_I2C_Master_Read+1,w 6109 0796 1683 bsf 3,5 ;RP0=1, select bank1 6110 0797 1303 bcf 3,6 ;RP1=0, select bank1 6111 0798 00C5 movwf (_status_reg+1)^(0+128) 6112 0799 0872 movf ?_I2C_Master_Read,w 6113 079A 00C4 movwf _status_reg^(0+128) 6114 6115 ;ds3231.c: 59: I2C_Master_Read(1); 6116 079B 3001 movlw 1 6117 079C 00F2 movwf I2C_Master_Read@ack 6118 079D 3000 movlw 0 6119 079E 00F3 movwf I2C_Master_Read@ack+1 6120 079F 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6121 6122 ;ds3231.c: 61: temperature_msb = I2C_Master_Read(1); 6123 07A4 3001 movlw 1 6124 07A5 00F2 movwf I2C_Master_Read@ack 6125 07A6 3000 movlw 0 6126 07A7 00F3 movwf I2C_Master_Read@ack+1 6127 07A8 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6128 07AD 0873 movf ?_I2C_Master_Read+1,w 6129 07AE 1283 bcf 3,5 ;RP0=0, select bank0 6130 07AF 1303 bcf 3,6 ;RP1=0, select bank0 6131 07B0 00D8 movwf _temperature_msb+1 6132 07B1 0872 movf ?_I2C_Master_Read,w 6133 07B2 00D7 movwf _temperature_msb 6134 6135 ;ds3231.c: 63: temperature_lsb = I2C_Master_Read(0); 6136 07B3 3000 movlw 0 6137 07B4 00F2 movwf I2C_Master_Read@ack 6138 07B5 00F3 movwf I2C_Master_Read@ack+1 6139 07B6 120A 158A 215B 120A 118A fcall _I2C_Master_Read 6140 07BB 0873 movf ?_I2C_Master_Read+1,w 6141 07BC 1283 bcf 3,5 ;RP0=0, select bank0 6142 07BD 1303 bcf 3,6 ;RP1=0, select bank0 6143 07BE 00DA movwf _temperature_lsb+1 6144 07BF 0872 movf ?_I2C_Master_Read,w 6145 07C0 00D9 movwf _temperature_lsb 6146 6147 ;ds3231.c: 64: I2C_Master_Stop(); 6148 07C1 160A 118A 2754 fcall _I2C_Master_Stop 6149 07C4 0008 return 6150 07C5 __end_of_Read_Alarms_Temp: 6151 6152 psect text26 6153 175B __ptext26: 6154 ;; *************** function _I2C_Master_Write ***************** 6155 ;; Defined at: 6156 ;; line 43 in file "i2c.c" 6157 ;; Parameters: Size Location Type 6158 ;; data 2 8[BANK0 ] unsigned int 6159 ;; Auto vars: Size Location Type 6160 ;; None 6161 ;; Return value: Size Location Type 6162 ;; 1 wreg void 6163 ;; Registers used: 6164 ;; wreg, status,2, status,0, pclath, cstack 6165 ;; Tracked objects: 6166 ;; On entry : 0/0 6167 ;; On exit : 0/0 6168 ;; Unchanged: 0/0 6169 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6170 ;; Params: 0 2 0 0 0 6171 ;; Locals: 0 0 0 0 0 6172 ;; Temps: 0 0 0 0 0 6173 ;; Totals: 0 2 0 0 0 6174 ;;Total ram usage: 2 bytes 6175 ;; Hardware stack levels used: 1 6176 ;; Hardware stack levels required when called: 2 6177 ;; This function calls: 6178 ;; _I2C_Master_Wait 6179 ;; This function is called by: 6180 ;; _Read_Alarms_Temp 6181 ;; _Set_Date 6182 ;; _Set_DayOfWeek 6183 ;; _Set_Sqwe 6184 ;; _Set_Time 6185 ;; _Update_Current_Date_Time 6186 ;; _Write_Alarms 6187 ;; This function uses a non-reentrant model 6188 ;; 6189 6190 6191 ;psect for function _I2C_Master_Write 6192 175B _I2C_Master_Write: 6193 6194 ;i2c.c: 44: I2C_Master_Wait(); 6195 6196 ;incstack = 0 6197 ; Regs used in _I2C_Master_Write: [wreg+status,2+status,0+pclath+cstack] 6198 175B 160A 118A 276B fcall _I2C_Master_Wait 6199 6200 ;i2c.c: 45: SSPBUF = data; 6201 175E 1283 bcf 3,5 ;RP0=0, select bank0 6202 175F 1303 bcf 3,6 ;RP1=0, select bank0 6203 1760 0828 movf I2C_Master_Write@data,w 6204 1761 0093 movwf 19 ;volatile 6205 1762 0008 return 6206 1763 __end_of_I2C_Master_Write: 6207 6208 psect text27 6209 1754 __ptext27: 6210 ;; *************** function _I2C_Master_Stop ***************** 6211 ;; Defined at: 6212 ;; line 38 in file "i2c.c" 6213 ;; Parameters: Size Location Type 6214 ;; None 6215 ;; Auto vars: Size Location Type 6216 ;; None 6217 ;; Return value: Size Location Type 6218 ;; 1 wreg void 6219 ;; Registers used: 6220 ;; wreg, status,2, status,0, pclath, cstack 6221 ;; Tracked objects: 6222 ;; On entry : 0/0 6223 ;; On exit : 0/0 6224 ;; Unchanged: 0/0 6225 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6226 ;; Params: 0 0 0 0 0 6227 ;; Locals: 0 0 0 0 0 6228 ;; Temps: 0 0 0 0 0 6229 ;; Totals: 0 0 0 0 0 6230 ;;Total ram usage: 0 bytes 6231 ;; Hardware stack levels used: 1 6232 ;; Hardware stack levels required when called: 2 6233 ;; This function calls: 6234 ;; _I2C_Master_Wait 6235 ;; This function is called by: 6236 ;; _Read_Alarms_Temp 6237 ;; _Set_Date 6238 ;; _Set_DayOfWeek 6239 ;; _Set_Sqwe 6240 ;; _Set_Time 6241 ;; _Update_Current_Date_Time 6242 ;; _Write_Alarms 6243 ;; This function uses a non-reentrant model 6244 ;; 6245 6246 6247 ;psect for function _I2C_Master_Stop 6248 1754 _I2C_Master_Stop: 6249 6250 ;i2c.c: 39: I2C_Master_Wait(); 6251 6252 ;incstack = 0 6253 ; Regs used in _I2C_Master_Stop: [wreg+status,2+status,0+pclath+cstack] 6254 1754 160A 118A 276B fcall _I2C_Master_Wait 6255 6256 ;i2c.c: 40: PEN = 1; 6257 1757 1683 bsf 3,5 ;RP0=1, select bank1 6258 1758 1303 bcf 3,6 ;RP1=0, select bank1 6259 1759 1511 bsf 17,2 ;volatile 6260 175A 0008 return 6261 175B __end_of_I2C_Master_Stop: 6262 6263 psect text28 6264 174D __ptext28: 6265 ;; *************** function _I2C_Master_Start ***************** 6266 ;; Defined at: 6267 ;; line 28 in file "i2c.c" 6268 ;; Parameters: Size Location Type 6269 ;; None 6270 ;; Auto vars: Size Location Type 6271 ;; None 6272 ;; Return value: Size Location Type 6273 ;; 1 wreg void 6274 ;; Registers used: 6275 ;; wreg, status,2, status,0, pclath, cstack 6276 ;; Tracked objects: 6277 ;; On entry : 0/0 6278 ;; On exit : 0/0 6279 ;; Unchanged: 0/0 6280 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6281 ;; Params: 0 0 0 0 0 6282 ;; Locals: 0 0 0 0 0 6283 ;; Temps: 0 0 0 0 0 6284 ;; Totals: 0 0 0 0 0 6285 ;;Total ram usage: 0 bytes 6286 ;; Hardware stack levels used: 1 6287 ;; Hardware stack levels required when called: 2 6288 ;; This function calls: 6289 ;; _I2C_Master_Wait 6290 ;; This function is called by: 6291 ;; _Read_Alarms_Temp 6292 ;; _Set_Date 6293 ;; _Set_DayOfWeek 6294 ;; _Set_Sqwe 6295 ;; _Set_Time 6296 ;; _Update_Current_Date_Time 6297 ;; _Write_Alarms 6298 ;; This function uses a non-reentrant model 6299 ;; 6300 6301 6302 ;psect for function _I2C_Master_Start 6303 174D _I2C_Master_Start: 6304 6305 ;i2c.c: 29: I2C_Master_Wait(); 6306 6307 ;incstack = 0 6308 ; Regs used in _I2C_Master_Start: [wreg+status,2+status,0+pclath+cstack] 6309 174D 160A 118A 276B fcall _I2C_Master_Wait 6310 6311 ;i2c.c: 30: SEN = 1; 6312 1750 1683 bsf 3,5 ;RP0=1, select bank1 6313 1751 1303 bcf 3,6 ;RP1=0, select bank1 6314 1752 1411 bsf 17,0 ;volatile 6315 1753 0008 return 6316 1754 __end_of_I2C_Master_Start: 6317 6318 psect text29 6319 1746 __ptext29: 6320 ;; *************** function _I2C_Master_Repeated_Start ***************** 6321 ;; Defined at: 6322 ;; line 33 in file "i2c.c" 6323 ;; Parameters: Size Location Type 6324 ;; None 6325 ;; Auto vars: Size Location Type 6326 ;; None 6327 ;; Return value: Size Location Type 6328 ;; 1 wreg void 6329 ;; Registers used: 6330 ;; wreg, status,2, status,0, pclath, cstack 6331 ;; Tracked objects: 6332 ;; On entry : 0/0 6333 ;; On exit : 0/0 6334 ;; Unchanged: 0/0 6335 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6336 ;; Params: 0 0 0 0 0 6337 ;; Locals: 0 0 0 0 0 6338 ;; Temps: 0 0 0 0 0 6339 ;; Totals: 0 0 0 0 0 6340 ;;Total ram usage: 0 bytes 6341 ;; Hardware stack levels used: 1 6342 ;; Hardware stack levels required when called: 2 6343 ;; This function calls: 6344 ;; _I2C_Master_Wait 6345 ;; This function is called by: 6346 ;; _Read_Alarms_Temp 6347 ;; This function uses a non-reentrant model 6348 ;; 6349 6350 6351 ;psect for function _I2C_Master_Repeated_Start 6352 1746 _I2C_Master_Repeated_Start: 6353 6354 ;i2c.c: 34: I2C_Master_Wait(); 6355 6356 ;incstack = 0 6357 ; Regs used in _I2C_Master_Repeated_Start: [wreg+status,2+status,0+pclath+cstack] 6358 1746 160A 118A 276B fcall _I2C_Master_Wait 6359 6360 ;i2c.c: 35: RSEN = 1; 6361 1749 1683 bsf 3,5 ;RP0=1, select bank1 6362 174A 1303 bcf 3,6 ;RP1=0, select bank1 6363 174B 1491 bsf 17,1 ;volatile 6364 174C 0008 return 6365 174D __end_of_I2C_Master_Repeated_Start: 6366 6367 psect text30 6368 095B __ptext30: 6369 ;; *************** function _I2C_Master_Read ***************** 6370 ;; Defined at: 6371 ;; line 48 in file "i2c.c" 6372 ;; Parameters: Size Location Type 6373 ;; ack 2 2[COMMON] unsigned short 6374 ;; Auto vars: Size Location Type 6375 ;; incoming 2 6[COMMON] unsigned short 6376 ;; Return value: Size Location Type 6377 ;; 2 2[COMMON] unsigned short 6378 ;; Registers used: 6379 ;; wreg, status,2, status,0, pclath, cstack 6380 ;; Tracked objects: 6381 ;; On entry : 0/0 6382 ;; On exit : 0/0 6383 ;; Unchanged: 0/0 6384 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6385 ;; Params: 2 0 0 0 0 6386 ;; Locals: 2 0 0 0 0 6387 ;; Temps: 2 0 0 0 0 6388 ;; Totals: 6 0 0 0 0 6389 ;;Total ram usage: 6 bytes 6390 ;; Hardware stack levels used: 1 6391 ;; Hardware stack levels required when called: 2 6392 ;; This function calls: 6393 ;; _I2C_Master_Wait 6394 ;; This function is called by: 6395 ;; _Read_Alarms_Temp 6396 ;; _Update_Current_Date_Time 6397 ;; This function uses a non-reentrant model 6398 ;; 6399 6400 6401 ;psect for function _I2C_Master_Read 6402 095B _I2C_Master_Read: 6403 6404 ;i2c.c: 49: unsigned short incoming;;i2c.c: 50: I2C_Master_Wait(); 6405 6406 ;incstack = 0 6407 ; Regs used in _I2C_Master_Read: [wreg+status,2+status,0+pclath+cstack] 6408 095B 160A 118A 276B 120A 158A fcall _I2C_Master_Wait 6409 6410 ;i2c.c: 51: RCEN = 1; 6411 0960 1683 bsf 3,5 ;RP0=1, select bank1 6412 0961 1303 bcf 3,6 ;RP1=0, select bank1 6413 0962 1591 bsf 17,3 ;volatile 6414 6415 ;i2c.c: 53: I2C_Master_Wait(); 6416 0963 160A 118A 276B 120A 158A fcall _I2C_Master_Wait 6417 6418 ;i2c.c: 54: incoming = SSPBUF; 6419 0968 1283 bcf 3,5 ;RP0=0, select bank0 6420 0969 1303 bcf 3,6 ;RP1=0, select bank0 6421 096A 0813 movf 19,w ;volatile 6422 096B 00F4 movwf ??_I2C_Master_Read 6423 096C 01F5 clrf ??_I2C_Master_Read+1 6424 096D 0874 movf ??_I2C_Master_Read,w 6425 096E 00F6 movwf I2C_Master_Read@incoming 6426 096F 0875 movf ??_I2C_Master_Read+1,w 6427 0970 00F7 movwf I2C_Master_Read@incoming+1 6428 6429 ;i2c.c: 56: I2C_Master_Wait(); 6430 0971 160A 118A 276B 120A 158A fcall _I2C_Master_Wait 6431 6432 ;i2c.c: 57: ACKDT = (ack) ? 0 : 1; 6433 0976 0872 movf I2C_Master_Read@ack,w 6434 0977 0473 iorwf I2C_Master_Read@ack+1,w 6435 0978 1D03 btfss 3,2 6436 0979 297E goto u1700 6437 097A 1683 bsf 3,5 ;RP0=1, select bank1 6438 097B 1303 bcf 3,6 ;RP1=0, select bank1 6439 097C 1691 bsf 17,5 ;volatile 6440 097D 2981 goto l2322 6441 097E u1700: 6442 097E 1683 bsf 3,5 ;RP0=1, select bank1 6443 097F 1303 bcf 3,6 ;RP1=0, select bank1 6444 0980 1291 bcf 17,5 ;volatile 6445 0981 l2322: 6446 6447 ;i2c.c: 58: ACKEN = 1; 6448 0981 1611 bsf 17,4 ;volatile 6449 6450 ;i2c.c: 60: return incoming; 6451 0982 0877 movf I2C_Master_Read@incoming+1,w 6452 0983 00F3 movwf ?_I2C_Master_Read+1 6453 0984 0876 movf I2C_Master_Read@incoming,w 6454 0985 00F2 movwf ?_I2C_Master_Read 6455 0986 0008 return 6456 0987 __end_of_I2C_Master_Read: 6457 6458 psect text31 6459 176B __ptext31: 6460 ;; *************** function _I2C_Master_Wait ***************** 6461 ;; Defined at: 6462 ;; line 24 in file "i2c.c" 6463 ;; Parameters: Size Location Type 6464 ;; None 6465 ;; Auto vars: Size Location Type 6466 ;; None 6467 ;; Return value: Size Location Type 6468 ;; 1 wreg void 6469 ;; Registers used: 6470 ;; wreg, status,2 6471 ;; Tracked objects: 6472 ;; On entry : 0/0 6473 ;; On exit : 0/0 6474 ;; Unchanged: 0/0 6475 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6476 ;; Params: 0 0 0 0 0 6477 ;; Locals: 0 0 0 0 0 6478 ;; Temps: 0 0 0 0 0 6479 ;; Totals: 0 0 0 0 0 6480 ;;Total ram usage: 0 bytes 6481 ;; Hardware stack levels used: 1 6482 ;; Hardware stack levels required when called: 1 6483 ;; This function calls: 6484 ;; Nothing 6485 ;; This function is called by: 6486 ;; _I2C_Master_Start 6487 ;; _I2C_Master_Repeated_Start 6488 ;; _I2C_Master_Stop 6489 ;; _I2C_Master_Write 6490 ;; _I2C_Master_Read 6491 ;; This function uses a non-reentrant model 6492 ;; 6493 6494 6495 ;psect for function _I2C_Master_Wait 6496 176B _I2C_Master_Wait: 6497 176B l2016: 6498 ;i2c.c: 25: while ((SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100)); 6499 6500 ;incstack = 0 6501 ; Regs used in _I2C_Master_Wait: [wreg+status,2] 6502 6503 176B 1683 bsf 3,5 ;RP0=1, select bank1 6504 176C 1303 bcf 3,6 ;RP1=0, select bank1 6505 176D 0811 movf 17,w ;volatile 6506 176E 391F andlw 31 6507 176F 1D03 btfss 3,2 6508 1770 2F6B goto l2016 6509 1771 1D14 btfss 20,2 ;volatile 6510 1772 0008 return 6511 1773 2F6B goto l2016 6512 1774 __end_of_I2C_Master_Wait: 6513 6514 psect text32 6515 08E0 __ptext32: 6516 ;; *************** function _BCD_2_DEC ***************** 6517 ;; Defined at: 6518 ;; line 17 in file "ds3231.c" 6519 ;; Parameters: Size Location Type 6520 ;; to_convert 2 8[COMMON] int 6521 ;; Auto vars: Size Location Type 6522 ;; None 6523 ;; Return value: Size Location Type 6524 ;; 2 8[COMMON] int 6525 ;; Registers used: 6526 ;; wreg, status,2, status,0, pclath, cstack 6527 ;; Tracked objects: 6528 ;; On entry : 0/0 6529 ;; On exit : 0/0 6530 ;; Unchanged: 0/0 6531 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6532 ;; Params: 2 0 0 0 0 6533 ;; Locals: 0 0 0 0 0 6534 ;; Temps: 0 2 0 0 0 6535 ;; Totals: 2 2 0 0 0 6536 ;;Total ram usage: 4 bytes 6537 ;; Hardware stack levels used: 1 6538 ;; Hardware stack levels required when called: 2 6539 ;; This function calls: 6540 ;; ___wmul 6541 ;; This function is called by: 6542 ;; _Read_Alarms_Temp 6543 ;; _Update_Current_Date_Time 6544 ;; This function uses a non-reentrant model 6545 ;; 6546 6547 6548 ;psect for function _BCD_2_DEC 6549 08E0 _BCD_2_DEC: 6550 6551 ;ds3231.c: 18: return (to_convert >> 4) * 10 + (to_convert & 0x0F); 6552 6553 ;incstack = 0 6554 ; Regs used in _BCD_2_DEC: [wreg+status,2+status,0+pclath+cstack] 6555 08E0 300F movlw 15 6556 08E1 0578 andwf BCD_2_DEC@to_convert,w 6557 08E2 1283 bcf 3,5 ;RP0=0, select bank0 6558 08E3 1303 bcf 3,6 ;RP1=0, select bank0 6559 08E4 00A0 movwf ??_BCD_2_DEC 6560 08E5 3000 movlw 0 6561 08E6 0579 andwf BCD_2_DEC@to_convert+1,w 6562 08E7 00A1 movwf ??_BCD_2_DEC+1 6563 08E8 0E78 swapf BCD_2_DEC@to_convert,w 6564 08E9 390F andlw 15 6565 08EA 00F2 movwf ___wmul@multiplier 6566 08EB 0E79 swapf BCD_2_DEC@to_convert+1,w 6567 08EC 39F0 andlw 240 6568 08ED 04F2 iorwf ___wmul@multiplier,f 6569 08EE 0E79 swapf BCD_2_DEC@to_convert+1,w 6570 08EF 390F andlw 15 6571 08F0 00F3 movwf ___wmul@multiplier+1 6572 08F1 30F0 movlw 240 6573 08F2 1DF3 btfss ___wmul@multiplier+1,3 6574 08F3 3000 movlw 0 6575 08F4 04F3 iorwf ___wmul@multiplier+1,f 6576 08F5 300A movlw 10 6577 08F6 00F4 movwf ___wmul@multiplicand 6578 08F7 3000 movlw 0 6579 08F8 00F5 movwf ___wmul@multiplicand+1 6580 08F9 120A 158A 209D fcall ___wmul 6581 08FC 1283 bcf 3,5 ;RP0=0, select bank0 6582 08FD 1303 bcf 3,6 ;RP1=0, select bank0 6583 08FE 0820 movf ??_BCD_2_DEC,w 6584 08FF 0772 addwf ?___wmul,w 6585 0900 00F8 movwf ?_BCD_2_DEC 6586 0901 0821 movf ??_BCD_2_DEC+1,w 6587 0902 1803 skipnc 6588 0903 0A21 incf ??_BCD_2_DEC+1,w 6589 0904 0773 addwf ?___wmul+1,w 6590 0905 00F9 movwf ?_BCD_2_DEC+1 6591 0906 0008 return 6592 0907 __end_of_BCD_2_DEC: 6593 6594 psect text33 6595 089D __ptext33: 6596 ;; *************** function ___wmul ***************** 6597 ;; Defined at: 6598 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c" 6599 ;; Parameters: Size Location Type 6600 ;; multiplier 2 2[COMMON] unsigned int 6601 ;; multiplicand 2 4[COMMON] unsigned int 6602 ;; Auto vars: Size Location Type 6603 ;; product 2 6[COMMON] unsigned int 6604 ;; Return value: Size Location Type 6605 ;; 2 2[COMMON] unsigned int 6606 ;; Registers used: 6607 ;; wreg, status,2, status,0 6608 ;; Tracked objects: 6609 ;; On entry : 0/0 6610 ;; On exit : 0/0 6611 ;; Unchanged: 0/0 6612 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6613 ;; Params: 4 0 0 0 0 6614 ;; Locals: 2 0 0 0 0 6615 ;; Temps: 0 0 0 0 0 6616 ;; Totals: 6 0 0 0 0 6617 ;;Total ram usage: 6 bytes 6618 ;; Hardware stack levels used: 1 6619 ;; Hardware stack levels required when called: 1 6620 ;; This function calls: 6621 ;; Nothing 6622 ;; This function is called by: 6623 ;; _format_Temperature 6624 ;; _BCD_2_DEC 6625 ;; _Get_DayOfWeek 6626 ;; This function uses a non-reentrant model 6627 ;; 6628 6629 6630 ;psect for function ___wmul 6631 089D ___wmul: 6632 6633 ;incstack = 0 6634 ; Regs used in ___wmul: [wreg+status,2+status,0] 6635 089D 01F6 clrf ___wmul@product 6636 089E 01F7 clrf ___wmul@product+1 6637 089F l2184: 6638 089F 1C72 btfss ___wmul@multiplier,0 6639 08A0 28A7 goto l662 6640 08A1 0874 movf ___wmul@multiplicand,w 6641 08A2 07F6 addwf ___wmul@product,f 6642 08A3 1803 skipnc 6643 08A4 0AF7 incf ___wmul@product+1,f 6644 08A5 0875 movf ___wmul@multiplicand+1,w 6645 08A6 07F7 addwf ___wmul@product+1,f 6646 08A7 l662: 6647 08A7 3001 movlw 1 6648 08A8 u1485: 6649 08A8 1003 clrc 6650 08A9 0DF4 rlf ___wmul@multiplicand,f 6651 08AA 0DF5 rlf ___wmul@multiplicand+1,f 6652 08AB 3EFF addlw -1 6653 08AC 1D03 skipz 6654 08AD 28A8 goto u1485 6655 08AE 3001 movlw 1 6656 08AF u1495: 6657 08AF 1003 clrc 6658 08B0 0CF3 rrf ___wmul@multiplier+1,f 6659 08B1 0CF2 rrf ___wmul@multiplier,f 6660 08B2 3EFF addlw -1 6661 08B3 1D03 skipz 6662 08B4 28AF goto u1495 6663 08B5 0872 movf ___wmul@multiplier,w 6664 08B6 0473 iorwf ___wmul@multiplier+1,w 6665 08B7 1D03 btfss 3,2 6666 08B8 289F goto l2184 6667 08B9 0877 movf ___wmul@product+1,w 6668 08BA 00F3 movwf ?___wmul+1 6669 08BB 0876 movf ___wmul@product,w 6670 08BC 00F2 movwf ?___wmul 6671 08BD 0008 return 6672 08BE __end_of___wmul: 6673 6674 psect text34 6675 0E03 __ptext34: 6676 ;; *************** function _Lcd_Init ***************** 6677 ;; Defined at: 6678 ;; line 57 in file "lcd.c" 6679 ;; Parameters: Size Location Type 6680 ;; None 6681 ;; Auto vars: Size Location Type 6682 ;; None 6683 ;; Return value: Size Location Type 6684 ;; 1 wreg void 6685 ;; Registers used: 6686 ;; wreg, status,2, status,0, pclath, cstack 6687 ;; Tracked objects: 6688 ;; On entry : 0/0 6689 ;; On exit : 0/0 6690 ;; Unchanged: 0/0 6691 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6692 ;; Params: 0 0 0 0 0 6693 ;; Locals: 0 0 0 0 0 6694 ;; Temps: 0 2 0 0 0 6695 ;; Totals: 0 2 0 0 0 6696 ;;Total ram usage: 2 bytes 6697 ;; Hardware stack levels used: 1 6698 ;; Hardware stack levels required when called: 4 6699 ;; This function calls: 6700 ;; _Lcd_Cmd 6701 ;; _Lcd_Port 6702 ;; _Vfd_Set_Brightness 6703 ;; This function is called by: 6704 ;; _main 6705 ;; This function uses a non-reentrant model 6706 ;; 6707 6708 6709 ;psect for function _Lcd_Init 6710 0E03 _Lcd_Init: 6711 6712 ;lcd.c: 58: Lcd_Port(0x00); 6713 6714 ;incstack = 0 6715 ; Regs used in _Lcd_Init: [wreg+status,2+status,0+pclath+cstack] 6716 0E03 3000 movlw 0 6717 0E04 160A 118A 27CC 120A 158A fcall _Lcd_Port 6718 6719 ;lcd.c: 59: _delay((unsigned long)((20)*(20000000/4000.0))); 6720 0E09 3082 movlw 130 6721 0E0A 1283 bcf 3,5 ;RP0=0, select bank0 6722 0E0B 1303 bcf 3,6 ;RP1=0, select bank0 6723 0E0C 00A3 movwf ??_Lcd_Init+1 6724 0E0D 30DD movlw 221 6725 0E0E 00A2 movwf ??_Lcd_Init 6726 0E0F u3127: 6727 0E0F 0BA2 decfsz ??_Lcd_Init,f 6728 0E10 2E0F goto u3127 6729 0E11 0BA3 decfsz ??_Lcd_Init+1,f 6730 0E12 2E0F goto u3127 6731 6732 ;lcd.c: 60: Lcd_Cmd(0x03); 6733 0E13 3003 movlw 3 6734 0E14 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6735 6736 ;lcd.c: 61: _delay((unsigned long)((5)*(20000000/4000.0))); 6737 0E19 3021 movlw 33 6738 0E1A 1283 bcf 3,5 ;RP0=0, select bank0 6739 0E1B 1303 bcf 3,6 ;RP1=0, select bank0 6740 0E1C 00A3 movwf ??_Lcd_Init+1 6741 0E1D 3075 movlw 117 6742 0E1E 00A2 movwf ??_Lcd_Init 6743 0E1F u3137: 6744 0E1F 0BA2 decfsz ??_Lcd_Init,f 6745 0E20 2E1F goto u3137 6746 0E21 0BA3 decfsz ??_Lcd_Init+1,f 6747 0E22 2E1F goto u3137 6748 0E23 2E24 nop2 6749 6750 ;lcd.c: 62: Lcd_Cmd(0x03); 6751 0E24 3003 movlw 3 6752 0E25 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6753 6754 ;lcd.c: 63: _delay((unsigned long)((11)*(20000000/4000.0))); 6755 0E2A 3048 movlw 72 6756 0E2B 1283 bcf 3,5 ;RP0=0, select bank0 6757 0E2C 1303 bcf 3,6 ;RP1=0, select bank0 6758 0E2D 00A3 movwf ??_Lcd_Init+1 6759 0E2E 306B movlw 107 6760 0E2F 00A2 movwf ??_Lcd_Init 6761 0E30 u3147: 6762 0E30 0BA2 decfsz ??_Lcd_Init,f 6763 0E31 2E30 goto u3147 6764 0E32 0BA3 decfsz ??_Lcd_Init+1,f 6765 0E33 2E30 goto u3147 6766 0E34 2E35 nop2 6767 6768 ;lcd.c: 64: Lcd_Cmd(0x03); 6769 0E35 3003 movlw 3 6770 0E36 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6771 6772 ;lcd.c: 66: Lcd_Cmd(0x02); 6773 0E3B 3002 movlw 2 6774 0E3C 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6775 6776 ;lcd.c: 68: Vfd_Set_Brightness(0); 6777 0E41 3000 movlw 0 6778 0E42 00F7 movwf Vfd_Set_Brightness@level 6779 0E43 00F8 movwf Vfd_Set_Brightness@level+1 6780 0E44 120A 158A 20BE 120A 158A fcall _Vfd_Set_Brightness 6781 6782 ;lcd.c: 70: Lcd_Cmd(0x02); 6783 0E49 3002 movlw 2 6784 0E4A 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6785 6786 ;lcd.c: 71: Lcd_Cmd(0x08); 6787 0E4F 3008 movlw 8 6788 0E50 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6789 6790 ;lcd.c: 72: Lcd_Cmd(0x00); 6791 0E55 3000 movlw 0 6792 0E56 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6793 6794 ;lcd.c: 73: Lcd_Cmd(0x0C); 6795 0E5B 300C movlw 12 6796 0E5C 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6797 6798 ;lcd.c: 74: Lcd_Cmd(0x00); 6799 0E61 3000 movlw 0 6800 0E62 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6801 6802 ;lcd.c: 75: Lcd_Cmd(0x06); 6803 0E67 3006 movlw 6 6804 0E68 160A 118A 27E6 fcall _Lcd_Cmd 6805 0E6B 0008 return 6806 0E6C __end_of_Lcd_Init: 6807 6808 psect text35 6809 08BE __ptext35: 6810 ;; *************** function _Vfd_Set_Brightness ***************** 6811 ;; Defined at: 6812 ;; line 111 in file "lcd.c" 6813 ;; Parameters: Size Location Type 6814 ;; level 2 7[COMMON] int 6815 ;; Auto vars: Size Location Type 6816 ;; None 6817 ;; Return value: Size Location Type 6818 ;; 1 wreg void 6819 ;; Registers used: 6820 ;; wreg, status,2, status,0, pclath, cstack 6821 ;; Tracked objects: 6822 ;; On entry : 0/0 6823 ;; On exit : 0/0 6824 ;; Unchanged: 0/0 6825 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6826 ;; Params: 2 0 0 0 0 6827 ;; Locals: 0 0 0 0 0 6828 ;; Temps: 0 2 0 0 0 6829 ;; Totals: 2 2 0 0 0 6830 ;;Total ram usage: 4 bytes 6831 ;; Hardware stack levels used: 1 6832 ;; Hardware stack levels required when called: 3 6833 ;; This function calls: 6834 ;; _Lcd_Cmd 6835 ;; _Lcd_Write_Char 6836 ;; This function is called by: 6837 ;; _main 6838 ;; _Lcd_Init 6839 ;; This function uses a non-reentrant model 6840 ;; 6841 6842 6843 ;psect for function _Vfd_Set_Brightness 6844 08BE _Vfd_Set_Brightness: 6845 6846 ;lcd.c: 112: Lcd_Cmd(0x03); 6847 6848 ;incstack = 0 6849 ; Regs used in _Vfd_Set_Brightness: [wreg+status,2+status,0+pclath+cstack] 6850 08BE 3003 movlw 3 6851 08BF 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6852 6853 ;lcd.c: 113: _delay((unsigned long)((11)*(20000000/4000.0))); 6854 08C4 3048 movlw 72 6855 08C5 1283 bcf 3,5 ;RP0=0, select bank0 6856 08C6 1303 bcf 3,6 ;RP1=0, select bank0 6857 08C7 00A1 movwf ??_Vfd_Set_Brightness+1 6858 08C8 306B movlw 107 6859 08C9 00A0 movwf ??_Vfd_Set_Brightness 6860 08CA u3157: 6861 08CA 0BA0 decfsz ??_Vfd_Set_Brightness,f 6862 08CB 28CA goto u3157 6863 08CC 0BA1 decfsz ??_Vfd_Set_Brightness+1,f 6864 08CD 28CA goto u3157 6865 08CE 28CF nop2 6866 6867 ;lcd.c: 114: Lcd_Cmd(0x03); 6868 08CF 3003 movlw 3 6869 08D0 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6870 6871 ;lcd.c: 116: Lcd_Cmd(0x02); 6872 08D5 3002 movlw 2 6873 08D6 160A 118A 27E6 120A 158A fcall _Lcd_Cmd 6874 6875 ;lcd.c: 117: Lcd_Write_Char(level); 6876 08DB 0877 movf Vfd_Set_Brightness@level,w 6877 08DC 120A 158A 2284 fcall _Lcd_Write_Char 6878 08DF 0008 return 6879 08E0 __end_of_Vfd_Set_Brightness: 6880 6881 psect text36 6882 0A84 __ptext36: 6883 ;; *************** function _Lcd_Write_Char ***************** 6884 ;; Defined at: 6885 ;; line 78 in file "lcd.c" 6886 ;; Parameters: Size Location Type 6887 ;; a 1 wreg unsigned char 6888 ;; Auto vars: Size Location Type 6889 ;; a 1 6[COMMON] unsigned char 6890 ;; y 1 5[COMMON] unsigned char 6891 ;; temp 1 4[COMMON] unsigned char 6892 ;; Return value: Size Location Type 6893 ;; 1 wreg void 6894 ;; Registers used: 6895 ;; wreg, status,2, status,0, pclath, cstack 6896 ;; Tracked objects: 6897 ;; On entry : 0/0 6898 ;; On exit : 0/0 6899 ;; Unchanged: 0/0 6900 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 6901 ;; Params: 0 0 0 0 0 6902 ;; Locals: 3 0 0 0 0 6903 ;; Temps: 1 0 0 0 0 6904 ;; Totals: 4 0 0 0 0 6905 ;;Total ram usage: 4 bytes 6906 ;; Hardware stack levels used: 1 6907 ;; Hardware stack levels required when called: 2 6908 ;; This function calls: 6909 ;; _Lcd_Port 6910 ;; This function is called by: 6911 ;; _main 6912 ;; _display_Digit 6913 ;; _display_Lcd_Layout 6914 ;; _update_Display 6915 ;; _edit_Date_Time 6916 ;; _Lcd_Write_String 6917 ;; _Vfd_Set_Brightness 6918 ;; This function uses a non-reentrant model 6919 ;; 6920 6921 6922 ;psect for function _Lcd_Write_Char 6923 0A84 _Lcd_Write_Char: 6924 6925 ;incstack = 0 6926 ; Regs used in _Lcd_Write_Char: [wreg+status,2+status,0+pclath+cstack] 6927 ;Lcd_Write_Char@a stored from wreg 6928 0A84 00F6 movwf Lcd_Write_Char@a 6929 6930 ;lcd.c: 79: char temp, y;;lcd.c: 80: temp = a & 0x0F; 6931 0A85 0876 movf Lcd_Write_Char@a,w 6932 0A86 390F andlw 15 6933 0A87 00F3 movwf ??_Lcd_Write_Char 6934 0A88 0873 movf ??_Lcd_Write_Char,w 6935 0A89 00F4 movwf Lcd_Write_Char@temp 6936 6937 ;lcd.c: 81: y = a & 0xF0; 6938 0A8A 0876 movf Lcd_Write_Char@a,w 6939 0A8B 39F0 andlw 240 6940 0A8C 00F3 movwf ??_Lcd_Write_Char 6941 0A8D 0873 movf ??_Lcd_Write_Char,w 6942 0A8E 00F5 movwf Lcd_Write_Char@y 6943 6944 ;lcd.c: 82: RD2 = 1; 6945 0A8F 1283 bcf 3,5 ;RP0=0, select bank0 6946 0A90 1303 bcf 3,6 ;RP1=0, select bank0 6947 0A91 1508 bsf 8,2 ;volatile 6948 6949 ;lcd.c: 83: Lcd_Port(y >> 4); 6950 0A92 0875 movf Lcd_Write_Char@y,w 6951 0A93 00F3 movwf ??_Lcd_Write_Char 6952 0A94 3004 movlw 4 6953 0A95 u1435: 6954 0A95 1003 clrc 6955 0A96 0CF3 rrf ??_Lcd_Write_Char,f 6956 0A97 3EFF addlw -1 6957 0A98 1D03 skipz 6958 0A99 2A95 goto u1435 6959 0A9A 0873 movf ??_Lcd_Write_Char,w 6960 0A9B 160A 118A 27CC 120A 158A fcall _Lcd_Port 6961 6962 ;lcd.c: 84: RD3 = 1; 6963 0AA0 1283 bcf 3,5 ;RP0=0, select bank0 6964 0AA1 1303 bcf 3,6 ;RP1=0, select bank0 6965 0AA2 1588 bsf 8,3 ;volatile 6966 6967 ;lcd.c: 85: _delay((unsigned long)((40)*(20000000/4000000.0))); 6968 0AA3 3042 movlw 66 6969 0AA4 00F3 movwf ??_Lcd_Write_Char 6970 0AA5 u3167: 6971 0AA5 0BF3 decfsz ??_Lcd_Write_Char,f 6972 0AA6 2AA5 goto u3167 6973 0AA7 0000 nop 6974 6975 ;lcd.c: 86: RD3 = 0; 6976 0AA8 1283 bcf 3,5 ;RP0=0, select bank0 6977 0AA9 1303 bcf 3,6 ;RP1=0, select bank0 6978 0AAA 1188 bcf 8,3 ;volatile 6979 6980 ;lcd.c: 87: Lcd_Port(temp); 6981 0AAB 0874 movf Lcd_Write_Char@temp,w 6982 0AAC 160A 118A 27CC 120A 158A fcall _Lcd_Port 6983 6984 ;lcd.c: 88: RD3 = 1; 6985 0AB1 1283 bcf 3,5 ;RP0=0, select bank0 6986 0AB2 1303 bcf 3,6 ;RP1=0, select bank0 6987 0AB3 1588 bsf 8,3 ;volatile 6988 6989 ;lcd.c: 89: _delay((unsigned long)((40)*(20000000/4000000.0))); 6990 0AB4 3042 movlw 66 6991 0AB5 00F3 movwf ??_Lcd_Write_Char 6992 0AB6 u3177: 6993 0AB6 0BF3 decfsz ??_Lcd_Write_Char,f 6994 0AB7 2AB6 goto u3177 6995 0AB8 0000 nop 6996 6997 ;lcd.c: 90: RD3 = 0; 6998 0AB9 1283 bcf 3,5 ;RP0=0, select bank0 6999 0ABA 1303 bcf 3,6 ;RP1=0, select bank0 7000 0ABB 1188 bcf 8,3 ;volatile 7001 0ABC 0008 return 7002 0ABD __end_of_Lcd_Write_Char: 7003 7004 psect text37 7005 17E6 __ptext37: 7006 ;; *************** function _Lcd_Cmd ***************** 7007 ;; Defined at: 7008 ;; line 27 in file "lcd.c" 7009 ;; Parameters: Size Location Type 7010 ;; a 1 wreg unsigned char 7011 ;; Auto vars: Size Location Type 7012 ;; a 1 5[COMMON] unsigned char 7013 ;; Return value: Size Location Type 7014 ;; 1 wreg void 7015 ;; Registers used: 7016 ;; wreg, status,2, status,0, pclath, cstack 7017 ;; Tracked objects: 7018 ;; On entry : 0/0 7019 ;; On exit : 0/0 7020 ;; Unchanged: 0/0 7021 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7022 ;; Params: 0 0 0 0 0 7023 ;; Locals: 1 0 0 0 0 7024 ;; Temps: 2 0 0 0 0 7025 ;; Totals: 3 0 0 0 0 7026 ;;Total ram usage: 3 bytes 7027 ;; Hardware stack levels used: 1 7028 ;; Hardware stack levels required when called: 2 7029 ;; This function calls: 7030 ;; _Lcd_Port 7031 ;; This function is called by: 7032 ;; _Lcd_Clear 7033 ;; _Lcd_Set_Cursor 7034 ;; _Lcd_Init 7035 ;; _Vfd_Set_Brightness 7036 ;; _Lcd_Shift_Right 7037 ;; _Lcd_Shift_Left 7038 ;; This function uses a non-reentrant model 7039 ;; 7040 7041 7042 ;psect for function _Lcd_Cmd 7043 17E6 _Lcd_Cmd: 7044 7045 ;incstack = 0 7046 ; Regs used in _Lcd_Cmd: [wreg+status,2+status,0+pclath+cstack] 7047 ;Lcd_Cmd@a stored from wreg 7048 17E6 00F5 movwf Lcd_Cmd@a 7049 7050 ;lcd.c: 28: RD2 = 0; 7051 17E7 1283 bcf 3,5 ;RP0=0, select bank0 7052 17E8 1303 bcf 3,6 ;RP1=0, select bank0 7053 17E9 1108 bcf 8,2 ;volatile 7054 7055 ;lcd.c: 29: Lcd_Port(a); 7056 17EA 0875 movf Lcd_Cmd@a,w 7057 17EB 160A 118A 27CC 160A 118A fcall _Lcd_Port 7058 7059 ;lcd.c: 30: RD3 = 1; 7060 17F0 1283 bcf 3,5 ;RP0=0, select bank0 7061 17F1 1303 bcf 3,6 ;RP1=0, select bank0 7062 17F2 1588 bsf 8,3 ;volatile 7063 7064 ;lcd.c: 31: _delay((unsigned long)((4)*(20000000/4000.0))); 7065 17F3 301A movlw 26 7066 17F4 00F4 movwf ??_Lcd_Cmd+1 7067 17F5 30F8 movlw 248 7068 17F6 00F3 movwf ??_Lcd_Cmd 7069 17F7 u3187: 7070 17F7 0BF3 decfsz ??_Lcd_Cmd,f 7071 17F8 2FF7 goto u3187 7072 17F9 0BF4 decfsz ??_Lcd_Cmd+1,f 7073 17FA 2FF7 goto u3187 7074 17FB 0000 nop 7075 7076 ;lcd.c: 32: RD3 = 0; 7077 17FC 1283 bcf 3,5 ;RP0=0, select bank0 7078 17FD 1303 bcf 3,6 ;RP1=0, select bank0 7079 17FE 1188 bcf 8,3 ;volatile 7080 17FF 0008 return 7081 1800 __end_of_Lcd_Cmd: 7082 7083 psect text38 7084 17CC __ptext38: 7085 ;; *************** function _Lcd_Port ***************** 7086 ;; Defined at: 7087 ;; line 5 in file "lcd.c" 7088 ;; Parameters: Size Location Type 7089 ;; a 1 wreg unsigned char 7090 ;; Auto vars: Size Location Type 7091 ;; a 1 2[COMMON] unsigned char 7092 ;; Return value: Size Location Type 7093 ;; 1 wreg void 7094 ;; Registers used: 7095 ;; wreg 7096 ;; Tracked objects: 7097 ;; On entry : 0/0 7098 ;; On exit : 0/0 7099 ;; Unchanged: 0/0 7100 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7101 ;; Params: 0 0 0 0 0 7102 ;; Locals: 1 0 0 0 0 7103 ;; Temps: 0 0 0 0 0 7104 ;; Totals: 1 0 0 0 0 7105 ;;Total ram usage: 1 bytes 7106 ;; Hardware stack levels used: 1 7107 ;; Hardware stack levels required when called: 1 7108 ;; This function calls: 7109 ;; Nothing 7110 ;; This function is called by: 7111 ;; _Lcd_Cmd 7112 ;; _Lcd_Init 7113 ;; _Lcd_Write_Char 7114 ;; This function uses a non-reentrant model 7115 ;; 7116 7117 7118 ;psect for function _Lcd_Port 7119 17CC _Lcd_Port: 7120 7121 ;incstack = 0 7122 ; Regs used in _Lcd_Port: [wreg] 7123 ;Lcd_Port@a stored from wreg 7124 17CC 00F2 movwf Lcd_Port@a 7125 7126 ;lcd.c: 6: if (a & 1) 7127 17CD 1C72 btfss Lcd_Port@a,0 7128 17CE 2FD3 goto l265 7129 7130 ;lcd.c: 7: RD4 = 1; 7131 17CF 1283 bcf 3,5 ;RP0=0, select bank0 7132 17D0 1303 bcf 3,6 ;RP1=0, select bank0 7133 17D1 1608 bsf 8,4 ;volatile 7134 17D2 2FD6 goto l266 7135 17D3 l265: 7136 ;lcd.c: 8: else 7137 7138 7139 ;lcd.c: 9: RD4 = 0; 7140 17D3 1283 bcf 3,5 ;RP0=0, select bank0 7141 17D4 1303 bcf 3,6 ;RP1=0, select bank0 7142 17D5 1208 bcf 8,4 ;volatile 7143 17D6 l266: 7144 7145 ;lcd.c: 11: if (a & 2) 7146 17D6 1CF2 btfss Lcd_Port@a,1 7147 17D7 2FDA goto l267 7148 7149 ;lcd.c: 12: RD5 = 1; 7150 17D8 1688 bsf 8,5 ;volatile 7151 17D9 2FDB goto l268 7152 17DA l267: 7153 ;lcd.c: 13: else 7154 7155 7156 ;lcd.c: 14: RD5 = 0; 7157 17DA 1288 bcf 8,5 ;volatile 7158 17DB l268: 7159 7160 ;lcd.c: 16: if (a & 4) 7161 17DB 1D72 btfss Lcd_Port@a,2 7162 17DC 2FDF goto l269 7163 7164 ;lcd.c: 17: RD6 = 1; 7165 17DD 1708 bsf 8,6 ;volatile 7166 17DE 2FE0 goto l270 7167 17DF l269: 7168 ;lcd.c: 18: else 7169 7170 7171 ;lcd.c: 19: RD6 = 0; 7172 17DF 1308 bcf 8,6 ;volatile 7173 17E0 l270: 7174 7175 ;lcd.c: 21: if (a & 8) 7176 17E0 1DF2 btfss Lcd_Port@a,3 7177 17E1 2FE4 goto l271 7178 7179 ;lcd.c: 22: RD7 = 1; 7180 17E2 1788 bsf 8,7 ;volatile 7181 17E3 0008 return 7182 17E4 l271: 7183 ;lcd.c: 23: else 7184 7185 7186 ;lcd.c: 24: RD7 = 0; 7187 17E4 1388 bcf 8,7 ;volatile 7188 17E5 0008 return 7189 17E6 __end_of_Lcd_Port: 7190 7191 psect text39 7192 17BA __ptext39: 7193 ;; *************** function _I2C_Master_Init ***************** 7194 ;; Defined at: 7195 ;; line 8 in file "i2c.c" 7196 ;; Parameters: Size Location Type 7197 ;; freq_K 4 2[COMMON] const unsigned long 7198 ;; Auto vars: Size Location Type 7199 ;; None 7200 ;; Return value: Size Location Type 7201 ;; 1 wreg void 7202 ;; Registers used: 7203 ;; wreg, status,2 7204 ;; Tracked objects: 7205 ;; On entry : 0/0 7206 ;; On exit : 0/0 7207 ;; Unchanged: 0/0 7208 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7209 ;; Params: 4 0 0 0 0 7210 ;; Locals: 0 0 0 0 0 7211 ;; Temps: 0 0 0 0 0 7212 ;; Totals: 4 0 0 0 0 7213 ;;Total ram usage: 4 bytes 7214 ;; Hardware stack levels used: 1 7215 ;; Hardware stack levels required when called: 1 7216 ;; This function calls: 7217 ;; Nothing 7218 ;; This function is called by: 7219 ;; _main 7220 ;; This function uses a non-reentrant model 7221 ;; 7222 7223 7224 ;psect for function _I2C_Master_Init 7225 17BA _I2C_Master_Init: 7226 7227 ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K);i2c.c: 9: {;i2c.c: 10: T + RISC3 = 1; 7228 7229 ;incstack = 0 7230 ; Regs used in _I2C_Master_Init: [wreg+status,2] 7231 17BA 1683 bsf 3,5 ;RP0=1, select bank1 7232 17BB 1303 bcf 3,6 ;RP1=0, select bank1 7233 17BC 1587 bsf 7,3 ;volatile 7234 7235 ;i2c.c: 11: TRISC4 = 1; 7236 17BD 1607 bsf 7,4 ;volatile 7237 7238 ;i2c.c: 13: SSPCON = 0b00101000; 7239 17BE 3028 movlw 40 7240 17BF 1283 bcf 3,5 ;RP0=0, select bank0 7241 17C0 1303 bcf 3,6 ;RP1=0, select bank0 7242 17C1 0094 movwf 20 ;volatile 7243 7244 ;i2c.c: 14: SSPCON2 = 0b00000000; 7245 17C2 1683 bsf 3,5 ;RP0=1, select bank1 7246 17C3 1303 bcf 3,6 ;RP1=0, select bank1 7247 17C4 0191 clrf 17 ;volatile 7248 7249 ;i2c.c: 17: SSPADD = 49; 7250 17C5 3031 movlw 49 7251 17C6 0093 movwf 19 ;volatile 7252 7253 ;i2c.c: 20: SMP = 1; 7254 17C7 1794 bsf 20,7 ;volatile 7255 7256 ;i2c.c: 21: CKP = 0; 7257 17C8 1283 bcf 3,5 ;RP0=0, select bank0 7258 17C9 1303 bcf 3,6 ;RP1=0, select bank0 7259 17CA 1214 bcf 20,4 ;volatile 7260 17CB 0008 return 7261 17CC __end_of_I2C_Master_Init: 7262 7263 psect text40 7264 085D __ptext40: 7265 ;; *************** function _Get_Alarm_Status ***************** 7266 ;; Defined at: 7267 ;; line 238 in file "main.c" 7268 ;; Parameters: Size Location Type 7269 ;; None 7270 ;; Auto vars: Size Location Type 7271 ;; None 7272 ;; Return value: Size Location Type 7273 ;; 1 wreg void 7274 ;; Registers used: 7275 ;; wreg, status,2, status,0 7276 ;; Tracked objects: 7277 ;; On entry : 0/0 7278 ;; On exit : 0/0 7279 ;; Unchanged: 0/0 7280 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7281 ;; Params: 0 0 0 0 0 7282 ;; Locals: 0 0 0 0 0 7283 ;; Temps: 2 0 0 0 0 7284 ;; Totals: 2 0 0 0 0 7285 ;;Total ram usage: 2 bytes 7286 ;; Hardware stack levels used: 1 7287 ;; Hardware stack levels required when called: 1 7288 ;; This function calls: 7289 ;; Nothing 7290 ;; This function is called by: 7291 ;; _main 7292 ;; This function uses a non-reentrant model 7293 ;; 7294 7295 7296 ;psect for function _Get_Alarm_Status 7297 085D _Get_Alarm_Status: 7298 7299 ;main.c: 239: alarm1_status = control_reg & 0x01; 7300 7301 ;incstack = 0 7302 ; Regs used in _Get_Alarm_Status: [wreg+status,2+status,0] 7303 085D 3001 movlw 1 7304 085E 1283 bcf 3,5 ;RP0=0, select bank0 7305 085F 1303 bcf 3,6 ;RP1=0, select bank0 7306 0860 055B andwf _control_reg,w 7307 0861 1683 bsf 3,5 ;RP0=1, select bank1 7308 0862 1303 bcf 3,6 ;RP1=0, select bank1 7309 0863 00C2 movwf _alarm1_status^(0+128) 7310 0864 3000 movlw 0 7311 0865 1283 bcf 3,5 ;RP0=0, select bank0 7312 0866 1303 bcf 3,6 ;RP1=0, select bank0 7313 0867 055C andwf _control_reg+1,w 7314 0868 1683 bsf 3,5 ;RP0=1, select bank1 7315 0869 1303 bcf 3,6 ;RP1=0, select bank1 7316 086A 00C3 movwf (_alarm1_status+1)^(0+128) 7317 7318 ;main.c: 240: alarm2_status = (control_reg >> 1) & 0x01; 7319 086B 1283 bcf 3,5 ;RP0=0, select bank0 7320 086C 1303 bcf 3,6 ;RP1=0, select bank0 7321 086D 085C movf _control_reg+1,w 7322 086E 00F3 movwf ??_Get_Alarm_Status+1 7323 086F 085B movf _control_reg,w 7324 0870 00F2 movwf ??_Get_Alarm_Status 7325 0871 1003 clrc 7326 0872 0CF3 rrf ??_Get_Alarm_Status+1,f 7327 0873 0CF2 rrf ??_Get_Alarm_Status,f 7328 0874 3001 movlw 1 7329 0875 0572 andwf ??_Get_Alarm_Status,w 7330 0876 1683 bsf 3,5 ;RP0=1, select bank1 7331 0877 1303 bcf 3,6 ;RP1=0, select bank1 7332 0878 00C0 movwf _alarm2_status^(0+128) 7333 0879 3000 movlw 0 7334 087A 0573 andwf ??_Get_Alarm_Status+1,w 7335 087B 00C1 movwf (_alarm2_status+1)^(0+128) 7336 087C 0008 return 7337 087D __end_of_Get_Alarm_Status: 7338 7339 psect text41 7340 0840 __ptext41: 7341 ;; *************** function _Adc_Read ***************** 7342 ;; Defined at: 7343 ;; line 25 in file "adc.c" 7344 ;; Parameters: Size Location Type 7345 ;; channel 2 2[COMMON] unsigned int 7346 ;; Auto vars: Size Location Type 7347 ;; None 7348 ;; Return value: Size Location Type 7349 ;; 2 2[COMMON] unsigned int 7350 ;; Registers used: 7351 ;; wreg, status,2, status,0 7352 ;; Tracked objects: 7353 ;; On entry : 0/0 7354 ;; On exit : 0/0 7355 ;; Unchanged: 0/0 7356 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7357 ;; Params: 2 0 0 0 0 7358 ;; Locals: 0 0 0 0 0 7359 ;; Temps: 1 0 0 0 0 7360 ;; Totals: 3 0 0 0 0 7361 ;;Total ram usage: 3 bytes 7362 ;; Hardware stack levels used: 1 7363 ;; Hardware stack levels required when called: 1 7364 ;; This function calls: 7365 ;; Nothing 7366 ;; This function is called by: 7367 ;; _main 7368 ;; This function uses a non-reentrant model 7369 ;; 7370 7371 7372 ;psect for function _Adc_Read 7373 0840 _Adc_Read: 7374 7375 ;adc.c: 26: ADCON0bits.CHS = channel; 7376 7377 ;incstack = 0 7378 ; Regs used in _Adc_Read: [wreg+status,2+status,0] 7379 0840 0872 movf Adc_Read@channel,w 7380 0841 00F4 movwf ??_Adc_Read 7381 0842 0DF4 rlf ??_Adc_Read,f 7382 0843 0DF4 rlf ??_Adc_Read,f 7383 0844 0DF4 rlf ??_Adc_Read,f 7384 0845 1283 bcf 3,5 ;RP0=0, select bank0 7385 0846 1303 bcf 3,6 ;RP1=0, select bank0 7386 0847 081F movf 31,w ;volatile 7387 0848 0674 xorwf ??_Adc_Read,w 7388 0849 39C7 andlw -57 7389 084A 0674 xorwf ??_Adc_Read,w 7390 084B 009F movwf 31 ;volatile 7391 7392 ;adc.c: 27: ADCON0bits.ADON = 1; 7393 084C 141F bsf 31,0 ;volatile 7394 7395 ;adc.c: 28: _delay((unsigned long)((5)*(20000000/4000000.0))); 7396 084D 3008 movlw 8 7397 084E 00F4 movwf ??_Adc_Read 7398 084F u3197: 7399 084F 0BF4 decfsz ??_Adc_Read,f 7400 0850 284F goto u3197 7401 7402 ;adc.c: 29: ADCON0bits.GO_DONE = 1; 7403 0851 1283 bcf 3,5 ;RP0=0, select bank0 7404 0852 1303 bcf 3,6 ;RP1=0, select bank0 7405 0853 151F bsf 31,2 ;volatile 7406 0854 l573: 7407 ;adc.c: 30: while (ADCON0bits.GO_DONE == 1); 7408 7409 0854 191F btfsc 31,2 ;volatile 7410 0855 2854 goto l573 7411 7412 ;adc.c: 31: return ((ADRESH << 8) + ADRESL); 7413 0856 081E movf 30,w ;volatile 7414 0857 00F3 movwf ?_Adc_Read+1 7415 0858 1683 bsf 3,5 ;RP0=1, select bank1 7416 0859 1303 bcf 3,6 ;RP1=0, select bank1 7417 085A 081E movf 30,w ;volatile 7418 085B 00F2 movwf ?_Adc_Read 7419 085C 0008 return 7420 085D __end_of_Adc_Read: 7421 7422 psect text42 7423 177F __ptext42: 7424 ;; *************** function _Adc_Init ***************** 7425 ;; Defined at: 7426 ;; line 10 in file "adc.c" 7427 ;; Parameters: Size Location Type 7428 ;; None 7429 ;; Auto vars: Size Location Type 7430 ;; None 7431 ;; Return value: Size Location Type 7432 ;; 1 wreg void 7433 ;; Registers used: 7434 ;; status,2 7435 ;; Tracked objects: 7436 ;; On entry : 0/0 7437 ;; On exit : 0/0 7438 ;; Unchanged: 0/0 7439 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7440 ;; Params: 0 0 0 0 0 7441 ;; Locals: 0 0 0 0 0 7442 ;; Temps: 0 0 0 0 0 7443 ;; Totals: 0 0 0 0 0 7444 ;;Total ram usage: 0 bytes 7445 ;; Hardware stack levels used: 1 7446 ;; Hardware stack levels required when called: 1 7447 ;; This function calls: 7448 ;; Nothing 7449 ;; This function is called by: 7450 ;; _main 7451 ;; This function uses a non-reentrant model 7452 ;; 7453 7454 7455 ;psect for function _Adc_Init 7456 177F _Adc_Init: 7457 7458 ;adc.c: 11: ADCON0 = 0x00; 7459 7460 ;incstack = 0 7461 ; Regs used in _Adc_Init: [status,2] 7462 177F 1283 bcf 3,5 ;RP0=0, select bank0 7463 1780 1303 bcf 3,6 ;RP1=0, select bank0 7464 1781 019F clrf 31 ;volatile 7465 7466 ;adc.c: 12: ADCS0 = 0; 7467 1782 131F bcf 31,6 ;volatile 7468 7469 ;adc.c: 13: ADCS1 = 1; 7470 1783 179F bsf 31,7 ;volatile 7471 7472 ;adc.c: 16: ADFM = 1; 7473 1784 1683 bsf 3,5 ;RP0=1, select bank1 7474 1785 1303 bcf 3,6 ;RP1=0, select bank1 7475 1786 179F bsf 31,7 ;volatile 7476 7477 ;adc.c: 22: PCFG0 = PCFG1 = PCFG2 = 0; 7478 1787 111F bcf 31,2 ;volatile 7479 1788 109F bcf 31,1 ;volatile 7480 1789 101F bcf 31,0 ;volatile 7481 178A 0008 return 7482 178B __end_of_Adc_Init: 7483 7484 psect text43 7485 1799 __ptext43: 7486 ;; *************** function _isr ***************** 7487 ;; Defined at: 7488 ;; line 592 in file "main.c" 7489 ;; Parameters: Size Location Type 7490 ;; None 7491 ;; Auto vars: Size Location Type 7492 ;; None 7493 ;; Return value: Size Location Type 7494 ;; 1 wreg void 7495 ;; Registers used: 7496 ;; wreg 7497 ;; Tracked objects: 7498 ;; On entry : 0/0 7499 ;; On exit : 0/0 7500 ;; Unchanged: 0/0 7501 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 7502 ;; Params: 0 0 0 0 0 7503 ;; Locals: 0 0 0 0 0 7504 ;; Temps: 2 0 0 0 0 7505 ;; Totals: 2 0 0 0 0 7506 ;;Total ram usage: 2 bytes 7507 ;; Hardware stack levels used: 1 7508 ;; This function calls: 7509 ;; Nothing 7510 ;; This function is called by: 7511 ;; Interrupt level 1 7512 ;; This function uses a non-reentrant model 7513 ;; 7514 7515 7516 ;psect for function _isr 7517 1799 _isr: 7518 7519 ;main.c: 593: if (INTF == 1) { 7520 1799 1C8B btfss 11,1 ;volatile 7521 179A 2FA2 goto i1l246 7522 7523 ;main.c: 594: update = 1; 7524 179B 3001 movlw 1 7525 179C 1683 bsf 3,5 ;RP0=1, select bank1 7526 179D 1303 bcf 3,6 ;RP1=0, select bank1 7527 179E 00D0 movwf _update^(0+128) 7528 179F 3000 movlw 0 7529 17A0 00D1 movwf (_update^(0+128)+1) 7530 7531 ;main.c: 595: INTF = 0; 7532 17A1 108B bcf 11,1 ;volatile 7533 17A2 i1l246: 7534 17A2 0871 movf ??_isr+1,w 7535 17A3 008A movwf 10 7536 17A4 0E70 swapf ??_isr^(0+4294967168),w 7537 17A5 0083 movwf 3 7538 17A6 0EFE swapf 126,f 7539 17A7 0E7E swapf 126,w 7540 17A8 0009 retfie 7541 17A9 __end_of_isr: 7542 007E btemp set 126 ;btemp 7543 007E wtemp0 set 126 7544 7545 psect intentry 7546 0004 __pintentry: 7547 ;incstack = 0 7548 ; Regs used in _isr: [wreg] 7549 7550 0004 interrupt_function: 7551 007E saved_w set btemp 7552 0004 00FE movwf btemp 7553 0005 0E03 swapf 3,w 7554 0006 00F0 movwf ??_isr 7555 0007 080A movf 10,w 7556 0008 00F1 movwf ??_isr+1 7557 0009 160A 118A 2F99 ljmp _isr Data Sizes: Strings 46 Constant 0 Data 85 BSS 38 Persistent 0 Stack 0 Auto Spaces: Space Size Autos Used COMMON 14 10 12 BANK0 80 55 78 BANK1 80 3 53 BANK3 96 0 48 BANK2 96 0 0 Pointer List with Targets: Lcd_Write_String@a PTR unsigned char size(2) Largest target is 28 -> dayOfWeek(BANK1[28]), STR_5(CODE[2]), STR_4(CODE[17]), STR_3(CODE[15]), -> STR_2(CODE[3]), STR_1(CODE[11]), sp__Get_WeekDay PTR unsigned char size(1) Largest target is 28 -> dayOfWeek(BANK1[28]), Critical Paths under _main in COMMON _format_Temperature->___wmul _display_Digit->___lwmod _DEC_2_BCD->___awmod _Get_Days_In_Month->___lwmod _Get_Is_Leap_Year->___lwmod _Get_DayOfWeek->___lwmod ___lwmod->___lwdiv ___lwdiv->___wmul _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->_Vfd_Set_Brightness _Vfd_Set_Brightness->_Lcd_Write_Char _Lcd_Write_Char->_Lcd_Port _Lcd_Cmd->_Lcd_Port Critical Paths under _isr in COMMON None. Critical Paths under _main in BANK0 _main->_edit_Date_Time _update_Display->_Lcd_Write_String _edit_Date_Time->_Lcd_Write_String _display_Digit->___lwmod _Set_Time->_I2C_Master_Write _Set_DayOfWeek->_Get_DayOfWeek _Set_Date->_I2C_Master_Write _DEC_2_BCD->___awdiv _Get_WeekDay->_Get_DayOfWeek _Get_Days_In_Month->_Get_Is_Leap_Year _Get_Is_Leap_Year->___lwmod _Get_DayOfWeek->___lwmod ___lwmod->___lwdiv _display_Lcd_Layout->_Lcd_Write_String _display_Intro->_Lcd_Write_String _Lcd_Write_String->_Get_WeekDay _Update_Current_Date_Time->_I2C_Master_Write _Set_Sqwe->_I2C_Master_Write _Read_Alarms_Temp->_I2C_Master_Write _I2C_Master_Write->_DEC_2_BCD _Lcd_Init->_Vfd_Set_Brightness Critical Paths under _isr in BANK0 None. Critical Paths under _main in BANK1 None. Critical Paths under _isr in BANK1 None. Critical Paths under _main in BANK3 None. Critical Paths under _isr in BANK3 None. Critical Paths under _main in BANK2 None. Critical Paths under _isr in BANK2 None. Call Graph Tables: --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (0) _main 3 3 0 69007 0 BANK1 3 3 0 _Adc_Init _Adc_Read _Get_Alarm_Status _I2C_Master_Init _Lcd_Init _Lcd_Set_Cursor _Lcd_Write_Char _Read_Alarms_Temp _Set_Sqwe _Update_Current_Date_Time _Vfd_Set_Brightness _display_Intro _display_Lcd_Layout _edit_Date_Time _format_Temperature _update_Display --------------------------------------------------------------------------------- (1) _update_Display 1 1 0 10646 38 BANK0 1 1 0 _Get_WeekDay _Lcd_Set_Cursor _Lcd_Write_Char _Lcd_Write_String ___lwdiv _alarm _display_Digit --------------------------------------------------------------------------------- (2) _alarm 9 7 2 316 2 COMMON 5 3 2 0 BANK0 4 4 0 --------------------------------------------------------------------------------- (1) _format_Temperature 1 1 0 700 8 COMMON 1 1 0 ___wmul --------------------------------------------------------------------------------- (1) _edit_Date_Time 17 17 0 28337 38 BANK0 17 17 0 _Get_DayOfWeek _Get_Days_In_Month _Get_WeekDay _Lcd_Set_Cursor _Lcd_Write_Char _Lcd_Write_String _Set_Date _Set_DayOfWeek _Set_Time _display_Digit --------------------------------------------------------------------------------- (2) _display_Digit 2 0 2 4313 12 BANK0 2 0 2 _Lcd_Write_Char ___lwdiv ___lwmod --------------------------------------------------------------------------------- (2) _Set_Time 0 0 0 4641 _DEC_2_BCD _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (2) _Set_DayOfWeek 2 0 2 2704 28 BANK0 2 0 2 _Get_DayOfWeek (ARG) _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (2) _Set_Date 0 0 0 4641 _DEC_2_BCD _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (3) _DEC_2_BCD 4 2 2 2035 4 BANK0 4 2 2 ___awdiv ___awmod --------------------------------------------------------------------------------- (4) ___awmod 7 3 4 448 2 COMMON 7 3 4 --------------------------------------------------------------------------------- (4) ___awdiv 9 5 4 625 2 COMMON 5 1 4 0 BANK0 4 4 0 --------------------------------------------------------------------------------- (2) _Get_WeekDay 3 1 2 250 28 BANK0 3 1 2 _Get_DayOfWeek (ARG) --------------------------------------------------------------------------------- (2) _Get_Days_In_Month 7 3 4 2844 17 BANK0 7 3 4 _Get_Is_Leap_Year ___lwmod --------------------------------------------------------------------------------- (3) _Get_Is_Leap_Year 5 3 2 1259 12 BANK0 5 3 2 ___lwmod --------------------------------------------------------------------------------- (2) _Get_DayOfWeek 16 10 6 4040 12 BANK0 16 10 6 ___lwdiv ___lwmod ___wmul --------------------------------------------------------------------------------- (3) ___lwmod 6 2 4 1132 9 COMMON 1 1 0 7 BANK0 5 1 4 ___lwdiv (ARG) ___wmul (ARG) --------------------------------------------------------------------------------- (3) ___lwdiv 8 4 4 1141 8 COMMON 1 1 0 0 BANK0 7 3 4 ___wmul (ARG) --------------------------------------------------------------------------------- (1) _display_Lcd_Layout 3 3 0 4736 38 BANK0 3 3 0 _Lcd_Clear _Lcd_Set_Cursor _Lcd_Write_Char _Lcd_Write_String --------------------------------------------------------------------------------- (1) _display_Intro 3 3 0 4558 38 BANK0 3 3 0 _Lcd_Clear _Lcd_Set_Cursor _Lcd_Write_String --------------------------------------------------------------------------------- (2) _Lcd_Write_String 7 5 2 876 31 BANK0 7 5 2 _Get_DayOfWeek (ARG) _Get_WeekDay (ARG) _Lcd_Write_Char --------------------------------------------------------------------------------- (2) _Lcd_Set_Cursor 7 6 1 3572 6 COMMON 3 2 1 0 BANK0 4 4 0 _Lcd_Cmd --------------------------------------------------------------------------------- (2) _Lcd_Clear 0 0 0 110 _Lcd_Cmd --------------------------------------------------------------------------------- (1) _Update_Current_Date_Time 0 0 0 5923 _BCD_2_DEC _I2C_Master_Read _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (1) _Set_Sqwe 2 0 2 2704 10 BANK0 2 0 2 _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (1) _Read_Alarms_Temp 0 0 0 5923 _BCD_2_DEC _I2C_Master_Read _I2C_Master_Repeated_Start _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (3) _I2C_Master_Write 2 0 2 2606 8 BANK0 2 0 2 _DEC_2_BCD (ARG) _I2C_Master_Wait --------------------------------------------------------------------------------- (3) _I2C_Master_Stop 0 0 0 0 _I2C_Master_Wait --------------------------------------------------------------------------------- (3) _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 2 COMMON 6 4 2 _I2C_Master_Wait --------------------------------------------------------------------------------- (4) _I2C_Master_Wait 0 0 0 0 --------------------------------------------------------------------------------- (2) _BCD_2_DEC 4 2 2 1752 8 COMMON 2 0 2 0 BANK0 2 2 0 _I2C_Master_Read (ARG) ___wmul --------------------------------------------------------------------------------- (2) ___wmul 6 2 4 700 2 COMMON 6 2 4 --------------------------------------------------------------------------------- (1) _Lcd_Init 2 2 0 877 2 BANK0 2 2 0 _Lcd_Cmd _Lcd_Port _Vfd_Set_Brightness --------------------------------------------------------------------------------- (1) _Vfd_Set_Brightness 4 2 2 679 7 COMMON 2 0 2 0 BANK0 2 2 0 _Lcd_Cmd _Lcd_Write_Char --------------------------------------------------------------------------------- (3) _Lcd_Write_Char 4 4 0 178 3 COMMON 4 4 0 _Lcd_Port --------------------------------------------------------------------------------- (3) _Lcd_Cmd 3 3 0 110 3 COMMON 3 3 0 _Lcd_Port --------------------------------------------------------------------------------- (4) _Lcd_Port 1 1 0 88 2 COMMON 1 1 0 --------------------------------------------------------------------------------- (1) _I2C_Master_Init 4 0 4 76 2 COMMON 4 0 4 --------------------------------------------------------------------------------- (1) _Get_Alarm_Status 2 2 0 0 2 COMMON 2 2 0 --------------------------------------------------------------------------------- (1) _Adc_Read 3 1 2 98 2 COMMON 3 1 2 --------------------------------------------------------------------------------- (1) _Adc_Init 0 0 0 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 4 --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (5) _isr 2 2 0 0 0 COMMON 2 2 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 5 --------------------------------------------------------------------------------- Call Graph Graphs: _main (ROOT) _Adc_Init _Adc_Read _Get_Alarm_Status _I2C_Master_Init _Lcd_Init _Lcd_Cmd _Lcd_Port _Lcd_Port _Vfd_Set_Brightness _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _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 _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _Set_Sqwe _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _Update_Current_Date_Time _BCD_2_DEC _I2C_Master_Read (ARG) _I2C_Master_Wait ___wmul (ARG) _I2C_Master_Read _I2C_Master_Wait _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _Vfd_Set_Brightness _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _display_Intro _Lcd_Clear _Lcd_Cmd _Lcd_Port _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_String _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Get_WeekDay (ARG) _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Write_Char (ARG) _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 _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Get_WeekDay (ARG) _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Write_Char (ARG) _Lcd_Port _edit_Date_Time _Get_DayOfWeek ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Get_Days_In_Month _Get_Is_Leap_Year ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) _Get_WeekDay _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _Lcd_Write_String _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Get_WeekDay (ARG) _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Write_Char (ARG) _Lcd_Port _Set_Date _DEC_2_BCD ___awdiv ___awmod _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _Set_DayOfWeek _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _I2C_Master_Start (ARG) _I2C_Master_Wait _I2C_Master_Stop (ARG) _I2C_Master_Wait _I2C_Master_Write (ARG) _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _Set_Time _DEC_2_BCD ___awdiv ___awmod _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _DEC_2_BCD (ARG) ___awdiv ___awmod _I2C_Master_Wait (ARG) _display_Digit _Lcd_Write_Char _Lcd_Port ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) _format_Temperature ___wmul _update_Display _Get_WeekDay _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _Lcd_Write_String _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Get_WeekDay (ARG) _Get_DayOfWeek (ARG) ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) ___wmul _Lcd_Write_Char (ARG) _Lcd_Port ___lwdiv ___wmul (ARG) _alarm _display_Digit _Lcd_Write_Char _Lcd_Port ___lwdiv ___wmul (ARG) ___lwmod ___lwdiv (ARG) ___wmul (ARG) ___wmul (ARG) _isr (ROOT) Address spaces: Name Size Autos Total Cost Usage BANK3 60 0 30 9 50.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 3 35 7 66.3% BITBANK1 50 0 0 6 0.0% SFR1 0 0 0 2 0.0% BITSFR1 0 0 0 2 0.0% BANK0 50 37 4E 5 97.5% BITBANK0 50 0 0 4 0.0% SFR0 0 0 0 1 0.0% BITSFR0 0 0 0 1 0.0% COMMON E A C 1 85.7% BITCOMMON E 0 0 0 0.0% CODE 0 0 0 0 0.0% DATA 0 0 BF 12 0.0% ABS 0 0 BF 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 Tue Aug 13 21:28:15 2019 pc 0002 __CFG_CP$OFF 0000 ___awdiv@sign 0021 __size_of_DEC_2_BCD 0034 fsr 0004 ___wmul@multiplicand 0074 l224 0391 l216 031B l208 0290 l181 00E1 l270 17E0 l190 0155 l271 17E4 l265 17D3 l266 17D6 l267 17DA l268 17DB l188 03D7 l540 0C07 l269 17DF l198 01B4 l542 0C11 l573 0854 l662 08A7 _CKP 00A4 _GIE 005F _RB2 0032 _RB4 0034 _RB5 0035 _RD1 0041 _RD2 0042 _RD3 0043 _RD4 0044 _RD5 0045 __size_of_edit_Date_Time 0427 _RD6 0046 _RD7 0047 _PEN 048A __CFG_CPD$OFF 0000 _SEN 0488 _RX9 00C6 _SMP 04A7 _TX9 04C6 _day 00A2 _ldr 007A _min 0061 _sec 0063 _isr 1799 fsr0 0004 indf 0000 ___awmod@sign 0078 __CFG_FOSC$HS 0000 ?_display_Digit 002C ?_display_Intro 0070 __CFG_LVP$OFF 0000 __end_of_update_Display 05A0 l2016 176B l3004 0077 l3006 009A l2072 0C56 l3120 02C6 l3104 0240 l3016 00C7 l2400 0A67 l2322 0981 l2242 0CC0 l2090 0C7F l3130 02CD l3106 0246 l3034 010C l3018 00CD l2084 0C63 l2076 0C5D l3140 02FF l3044 0139 l3028 0105 l2262 0B3C l2086 0C71 l2094 0C8A l3310 03C3 l3142 0305 l3062 0180 l3046 013F l2184 089F l3152 0341 l3072 01AD l3056 0179 l2098 0C92 l3218 044C l3170 037B l3250 05F1 l3180 03B5 l3260 0646 l3158 0348 l3094 01FC l3086 01D8 l3262 0668 l3168 0375 l3088 01DE l3192 03F1 l3196 03FC l3188 03BC l3268 067F l2822 0D3D l2814 0D2A l2806 0D06 l2840 0A0A l2808 0D14 l2834 09EE l2930 0E84 l2922 07ED l2818 0D35 l2836 09FC l2844 0A15 l2932 0E90 l2780 0AF0 l2860 0AF2 l2790 0CF3 l2882 0B28 l2874 0B04 l2876 0B12 l2796 0CFE l2886 0B33 l2978 058D _ADFM 04FF ?_isr 0070 STR_1 0830 STR_2 083B STR_3 0821 STR_4 0810 STR_5 081F _BRGH 04C2 _CREN 00C4 __end_of_Get_WeekDay 1799 u1315 0C66 u1335 0C77 u3007 015F u2305 09F1 u2225 0D09 u1345 0C80 u3017 019C u1435 0A95 u3107 0BFB u3027 01BE u1700 097E u3117 0BB4 u2325 0A02 u2245 0D15 u3037 0218 u3127 0E0F u1615 0CCC u2415 0B13 u2335 0A0B u2255 0D21 u3047 029A u3137 0E1F u2425 0B1F u2265 0D2B u3057 02E9 u3147 0E30 u2435 0B29 u3067 0325 u3157 08CA u1485 08A8 u3077 0364 u3167 0AA5 u1495 08AF u1655 1790 u3087 039B u1735 0A6C u2455 0C34 u3177 0AB6 u3097 03E3 u2705 02BF u2465 0C0D u3187 17F7 u1595 0CA5 u2395 0B07 u3197 084F u2835 0422 u2915 06A2 u2845 042A _INTE 005C _INTF 0059 u2855 0432 u2927 063E u2865 043A u2937 0674 u2875 0442 u2947 0C18 _RCEN 048B _RCIF 0065 u2885 044A u2957 0C21 u2967 0C3C u2977 00B6 u2987 00EB u2997 0128 _OERR 00C1 _SPEN 00C7 _RSEN 0489 _TXEN 04C5 _TXIF 0064 _SYNC 04C4 __CFG_WRT$OFF 0000 ?_Lcd_Write_String 003F _date 006B _main 05A0 _hour 005F _year 005D btemp 007E __CFG_BOREN$ON 0000 start 000C ??_Lcd_Write_String 0041 __end_of_Lcd_Cmd 1800 ??_isr 0070 I2C_Master_Init@freq_K 0072 __end_of_Get_Is_Leap_Year 0AFA ?_I2C_Master_Init 0072 ?_I2C_Master_Read 0072 ?_I2C_Master_Wait 0070 ?_I2C_Master_Stop 0070 _ADCS0 00FE _ADCS1 00FF ?_main 0070 _ACKEN 048C _ACKDT 048D __end_of___awdiv 0D42 __CFG_WDTE$OFF 0000 __end_of___awmod 0C97 ___awdiv@divisor 0072 _PCFG0 04F8 _PCFG1 04F9 _PCFG2 04FA __end_of___lwdiv 0B38 i1l246 17A2 __end_of___lwmod 0A1A ___awdiv@counter 0020 _RCREG 001A _SPBRG 0099 _PORTC 0007 _PORTD 0008 __size_of_Lcd_Set_Cursor 0050 _TRISC 0087 _TRISD 0088 _TXREG 0019 __CFG_PWRTE$ON 0000 _display_Lcd_Layout 0BBC __end_of_BCD_2_DEC 0907 __end_of_Get_DayOfWeek 0F10 _alarm 0C03 __end_of_Adc_Init 178B __end_of_Adc_Read 085D ?_update_Display 0070 _month 0069 pclath 000A __end_of_DEC_2_BCD 0A4E ?_display_Lcd_Layout 0070 status 0003 wtemp0 007E __end_of_Lcd_Init 0E6C __end_of_Lcd_Port 17E6 __initialization 000F __end_of_main 06C8 ?_Get_Alarm_Status 0070 ??_display_Lcd_Layout 0046 ??_main 00D2 ??_Get_Alarm_Status 0072 __end_of_Set_Date 0E03 __size_of_Lcd_Clear 000B __end_of_Set_Time 0DA2 __end_of_Set_Sqwe 0931 ??_display_Digit 007A _Get_WeekDay 178B ?_I2C_Master_Start 0070 ??_display_Intro 0046 ?_I2C_Master_Write 0028 ?_alarm 0072 ??_I2C_Master_Start 0072 _ADCON0 001F ??_I2C_Master_Write 0079 _ADRESH 001E _ADRESL 009E ___awdiv@dividend 0074 ??_Lcd_Cmd 0073 __size_of_Lcd_Write_Char 0039 _SSPADD 0093 _TRISA0 0428 _TRISC3 043B _TRISC4 043C _TRISC6 043E _TRISC7 043F _SSPCON 0014 _SSPBUF 0013 ___wmul 089D ??___awdiv 0076 ??___awmod 0076 ??___lwdiv 0078 ??___lwmod 0079 ?_Read_Alarms_Temp 0070 Adc_Read@channel 0072 alarm@i 0020 alarm@j 0022 ___awdiv@quotient 0022 ___awmod@divisor 0072 ___awmod@counter 0077 _update 00D0 __end_of_Update_Current_Date_Time 1000 ??_Read_Alarms_Temp 007A _edit_Date_Time 004C __end_of_Vfd_Set_Brightness 08E0 saved_w 007E Lcd_Set_Cursor@a 0020 Lcd_Set_Cursor@b 0076 Lcd_Set_Cursor@y 0022 Lcd_Set_Cursor@z 0021 __end_of__initialization 0048 __end_of_Lcd_Clear 177F __pcstackCOMMON 0070 __pidataBANK0 1741 __pidataBANK1 087D __pidataBANK3 09B6 __end_of_alarm 0C4C __end_of_edit_Date_Time 0473 ?_Adc_Init 0070 ?_Adc_Read 0072 __size_of_Set_DayOfWeek 002A _Lcd_Set_Cursor 0C97 _OPTION_REGbits 0081 _temperature_lsb 0059 _temperature_msb 0057 ?_Lcd_Init 0070 ??_alarm 0074 ?_Lcd_Port 0070 _alarm1_min 00CC _alarm1_sec 00CE _alarm2_min 00C8 __pbssBANK0 0057 __pbssBANK1 00C0 alarm@numberOfBeeps 0072 __end_of_format_Temperature 0A84 ?_Set_Date 0070 ?_Set_Time 0070 ?_Set_Sqwe 002A __pmaintext 05A0 ?___wmul 0072 __pintentry 0004 Set_DayOfWeek@dow 003C ?_edit_Date_Time 0070 ??_Adc_Init 0072 ??_Adc_Read 0074 __size_of_Lcd_Write_String 0041 ?_Get_Is_Leap_Year 002C __end_of_Lcd_Set_Cursor 0CE7 I2C_Master_Read@incoming 0076 ??_Get_Is_Leap_Year 002E ??_update_Display 0046 _Update_Current_Date_Time 0F10 ??_Lcd_Init 0022 ??_Lcd_Port 0072 _SSPCON2 0091 Get_Days_In_Month@m 0033 Get_Days_In_Month@y 0031 _SSPSTAT 0094 __stringtab 0800 _BCD_2_DEC 08E0 _Lcd_Write_Char 0A84 _Lcd_Cmd 17E6 _Set_DayOfWeek 0931 ??_Set_Date 0079 _DEC_2_BCD 0A1A ??_Set_Time 0079 ??_Set_Sqwe 0079 _brtlvl_chg 0067 display_Digit@data 002C ___awdiv 0CE7 ___awmod 0C4C __size_of___wmul 0021 ___lwdiv 0AFA ___lwmod 09E6 ?_Lcd_Set_Cursor 0076 _century 00A0 __ptext1 0473 __ptext2 0C03 __ptext3 0A4E __ptext4 004C __ptext5 0987 __ptext6 0D42 __ptext7 0931 __ptext8 0DA2 __ptext9 0A1A __size_of_isr 0010 ?_Get_WeekDay 003C ___awmod@dividend 0074 __size_of_I2C_Master_Init 0012 __size_of_I2C_Master_Read 002C _Get_Days_In_Month 07C5 __size_of_I2C_Master_Wait 0009 __size_of_I2C_Master_Stop 0007 edit_Date_Time@min_org 004D clrloop0 1764 ?_Get_Days_In_Month 0031 edit_Date_Time@sec_org 0055 __size_of_Get_Alarm_Status 0020 __end_of_Lcd_Write_Char 0ABD end_of_initialization 0048 ?_BCD_2_DEC 0078 ?_Set_DayOfWeek 003C ??_Get_Days_In_Month 0035 __size_of_I2C_Master_Start 0007 ?_DEC_2_BCD 0024 __size_of_I2C_Master_Write 0008 Lcd_Port@a 0072 __size_of_Get_DayOfWeek 00A4 _alarm1_status 00C2 _alarm2_status 00C0 __size_of_display_Lcd_Layout 0047 __end_of_Get_Days_In_Month 07FF _TRISBbits 0086 __end_of_display_Digit 09B6 __end_of_display_Intro 0BBC _Get_Is_Leap_Year$401 0030 __size_of_Read_Alarms_Temp 00FD ?_Lcd_Write_Char 0070 Lcd_Write_String@a 003F Lcd_Write_String@i 0044 _Vfd_Set_Brightness 08BE _status_reg 00C4 ?_Vfd_Set_Brightness 0077 _Lcd_Clear 1774 BCD_2_DEC@to_convert 0078 __end_of___wmul 08BE _Lcd_Write_String 0B38 __size_of_Adc_Init 000C __size_of_Adc_Read 001D start_initialization 000F ??_Vfd_Set_Brightness 0020 __end_of_isr 17A9 _Get_DayOfWeek 0E6C ??_Set_DayOfWeek 007A __size_of_Lcd_Init 0069 __size_of_Lcd_Port 001A ??_BCD_2_DEC 0020 ??_I2C_Master_Init 0076 ??_I2C_Master_Read 0074 ??_I2C_Master_Wait 0072 ??_I2C_Master_Stop 0072 ??_DEC_2_BCD 0026 ??_edit_Date_Time 0046 __size_of_Set_Date 0061 ?_Lcd_Clear 0070 __size_of_Set_Time 0060 ??___wmul 0076 __size_of_Set_Sqwe 002A init_fetch0 17A9 __pdataBANK0 0069 __pdataBANK1 00A0 __pdataBANK3 0190 Lcd_Write_Char@a 0076 ??_Update_Current_Date_Time 007A Lcd_Write_Char@y 0075 _format_Temperature 0A4E _alarm1_hour 00CA _alarm2_hour 00C6 __size_of_I2C_Master_Repeated_Start 0007 ?_I2C_Master_Repeated_Start 0070 __size_of_Get_Days_In_Month 003A __pbssCOMMON 007A ___latbits 0002 __pcstackBANK0 0020 __pcstackBANK1 00D2 ?_format_Temperature 0070 ?_Get_DayOfWeek 002C __size_of_Get_WeekDay 000E _Get_Alarm_Status 085D __size_of_Get_Is_Leap_Year 003D ?_Lcd_Cmd 0070 _dayOfWeek 00A4 _I2C_Master_Start 174D _I2C_Master_Write 175B ??_format_Temperature 0078 ___lwdiv@dividend 0022 ??_Lcd_Set_Cursor 0077 ?___awdiv 0072 ?___awmod 0072 ?___lwdiv 0020 ?___lwmod 0027 _edit_datetime 0065 I2C_Master_Write@data 0028 __pstrings 0800 __end_of_I2C_Master_Repeated_Start 174D Get_Is_Leap_Year@y 002C ___lwdiv@quotient 0025 __size_of_alarm 0049 _Read_Alarms_Temp 06C8 interrupt_function 0004 ___wmul@product 0076 clear_ram0 1763 Lcd_Cmd@a 0075 ??_Lcd_Clear 0076 _temp_sign 006D _Adc_Init 177F _Adc_Read 0840 _ADCON0bits 001F __stringbase 080F ___wmul@multiplier 0072 ??_Lcd_Write_Char 0073 ??_Get_DayOfWeek 0032 _Lcd_Init 0E03 _Lcd_Port 17CC _control_reg 005B edit_Date_Time@month_org 0051 __end_of_Lcd_Write_String 0B79 Get_WeekDay@d 003C Vfd_Set_Brightness@level 0077 __size_of_update_Display 012D __size_of_Lcd_Cmd 001A _Set_Date 0DA2 _Set_Time 0D42 _Set_Sqwe 0907 __end_of_display_Lcd_Layout 0C03 __size_of___awdiv 005B __size_of___awmod 004B __size_of___lwdiv 003E __size_of___lwmod 0034 __end_of__stringtab 0810 _I2C_Master_Init 17BA _I2C_Master_Read 095B _I2C_Master_Wait 176B _I2C_Master_Stop 1754 ___lwdiv@divisor 0020 Get_DayOfWeek@d 0030 Get_DayOfWeek@m 002E ___lwdiv@counter 0024 Get_DayOfWeek@y 002C __ptext10 0C4C __ptext11 0CE7 __ptext20 0B38 __ptext12 178B __ptext21 0C97 __ptext13 07C5 __ptext30 095B __ptext22 1774 __ptext14 0ABD __ptext31 176B __ptext23 0F10 __ptext15 0E6C __ptext40 085D __ptext32 08E0 __ptext24 0907 __ptext16 09E6 __ptext41 0840 __ptext33 089D __ptext25 06C8 __ptext17 0AFA __ptext42 177F __ptext34 0E03 __ptext26 175B __ptext18 0BBC __ptext43 1799 __ptext35 08BE __ptext27 1754 __ptext19 0B79 __ptext36 0A84 __ptext28 174D __ptext37 17E6 __ptext29 1746 __ptext38 17CC __ptext39 17BA _Get_Is_Leap_Year 0ABD __size_of_main 0128 edit_Date_Time@date_org 0053 __size_of_display_Digit 002F __end_of_Get_Alarm_Status 087D __size_of_display_Intro 0043 edit_Date_Time@hour_org 004B Set_Sqwe@contvalue 002A I2C_Master_Read@ack 0072 ??_I2C_Master_Repeated_Start 0072 __end_of_I2C_Master_Start 1754 __end_of_I2C_Master_Write 1763 edit_Date_Time@year_org 004F init_ram0 17AD __size_of_Vfd_Set_Brightness 0022 Lcd_Write_Char@temp 0074 intlevel1 0000 _monthOfYear 0190 __end_of_Set_DayOfWeek 095B ___lwmod@dividend 0029 stringcode 080A __end_of_Read_Alarms_Temp 07C5 __end_of_I2C_Master_Init 17CC __end_of_I2C_Master_Read 0987 __end_of_I2C_Master_Wait 1774 __end_of_I2C_Master_Stop 175B Lcd_Set_Cursor@temp 0023 ??_Get_WeekDay 003E ___lwmod@divisor 0027 ___lwmod@counter 002B stringdir 080A stringtab 0800 _display_Digit 0987 _display_Intro 0B79 __size_of_Update_Current_Date_Time 00F0 ?_Update_Current_Date_Time 0070 _update_Display 0473 _I2C_Master_Repeated_Start 1746 DEC_2_BCD@to_convert 0024 __size_of_format_Temperature 0036 __size_of_BCD_2_DEC 0027