Microchip MPLAB XC8 Assembler V2.05 build -831301201 Sat Jul 27 22:33:52 2019 Microchip MPLAB XC8 C Compiler v2.05 (Free license) build 20181220022703 Og1 1 processor 16F877A 2 opt pw 120 3 opt flic 4 psect idataBANK0,global,class=CODE,delta=2 5 psect idataBANK1,global,class=CODE,delta=2 6 psect strings,global,class=STRING,delta=2 7 psect cinit,global,class=CODE,merge=1,delta=2 8 psect bssBANK0,global,class=BANK0,space=1,delta=1 9 psect dataBANK0,global,class=BANK0,space=1,delta=1 10 psect bssBANK1,global,class=BANK1,space=1,delta=1 11 psect dataBANK1,global,class=BANK1,space=1,delta=1 12 psect inittext,global,class=CODE,delta=2 13 psect clrtext,global,class=CODE,delta=2 14 psect cstackCOMMON,global,class=COMMON,space=1,delta=1 15 psect cstackBANK0,global,class=BANK0,space=1,delta=1 16 psect maintext,global,class=CODE,split=1,delta=2 17 psect text1,local,class=CODE,merge=1,delta=2 18 psect text2,local,class=CODE,merge=1,delta=2 19 psect text3,local,class=CODE,merge=1,delta=2 20 psect text4,local,class=CODE,merge=1,delta=2 21 psect text5,local,class=CODE,merge=1,delta=2,group=1 22 psect text6,local,class=CODE,merge=1,delta=2,group=1 23 psect text7,local,class=CODE,merge=1,delta=2 24 psect text8,local,class=CODE,merge=1,delta=2,group=1 25 psect text9,local,class=CODE,merge=1,delta=2,group=1 26 psect text10,local,class=CODE,merge=1,delta=2 27 psect text11,local,class=CODE,merge=1,delta=2 28 psect text12,local,class=CODE,merge=1,delta=2 29 psect text13,local,class=CODE,merge=1,delta=2 30 psect text14,local,class=CODE,merge=1,delta=2 31 psect text15,local,class=CODE,merge=1,delta=2 32 psect text16,local,class=CODE,merge=1,delta=2 33 psect text17,local,class=CODE,merge=1,delta=2 34 psect text18,local,class=CODE,merge=1,delta=2 35 psect text19,local,class=CODE,merge=1,delta=2 36 psect text20,local,class=CODE,merge=1,delta=2 37 psect text21,local,class=CODE,merge=1,delta=2 38 psect text22,local,class=CODE,merge=1,delta=2 39 psect text23,local,class=CODE,merge=1,delta=2 40 psect text24,local,class=CODE,merge=1,delta=2 41 psect text25,local,class=CODE,merge=1,delta=2,group=1 42 psect text26,local,class=CODE,merge=1,delta=2 43 psect text27,local,class=CODE,merge=1,delta=2 44 psect text28,local,class=CODE,merge=1,delta=2 45 psect text29,local,class=CODE,merge=1,delta=2 46 psect text30,local,class=CODE,merge=1,delta=2,group=1 47 psect text31,local,class=CODE,merge=1,delta=2,group=1 48 psect text32,local,class=CODE,merge=1,delta=2 49 dabs 1,0x7E,2 50 0000 51 ; Version 2.05 52 ; Generated 20/12/2018 GMT 53 ; 54 ; Copyright © 2018, Microchip Technology Inc. and its subsidiaries ("Microchip") 55 ; All rights reserved. 56 ; 57 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch + ip"). 58 ; 59 ; Redistribution and use in source and binary forms, with or without modification, are 60 ; permitted provided that the following conditions are met: 61 ; 62 ; 1. Redistributions of source code must retain the above copyright notice, this lis + t of 63 ; conditions and the following disclaimer. 64 ; 65 ; 2. Redistributions in binary form must reproduce the above copyright notice, this + list 66 ; of conditions and the following disclaimer in the documentation and/or other 67 ; materials provided with the distribution. 68 ; 69 ; 3. Microchip's name may not be used to endorse or promote products derived from th + is 70 ; software without specific prior written permission. 71 ; 72 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 73 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F + OR 74 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC + T, 75 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO 76 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS 77 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST + RICT 78 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U + SE OF 79 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 80 ; 81 ; 82 ; Code-generator required, PIC16F877A Definitions 83 ; 84 ; SFR Addresses 85 0000 ;# 86 0001 ;# 87 0002 ;# 88 0003 ;# 89 0004 ;# 90 0005 ;# 91 0006 ;# 92 0007 ;# 93 0008 ;# 94 0009 ;# 95 000A ;# 96 000B ;# 97 000C ;# 98 000D ;# 99 000E ;# 100 000E ;# 101 000F ;# 102 0010 ;# 103 0011 ;# 104 0012 ;# 105 0013 ;# 106 0014 ;# 107 0015 ;# 108 0015 ;# 109 0016 ;# 110 0017 ;# 111 0018 ;# 112 0019 ;# 113 001A ;# 114 001B ;# 115 001B ;# 116 001C ;# 117 001D ;# 118 001E ;# 119 001F ;# 120 0081 ;# 121 0085 ;# 122 0086 ;# 123 0087 ;# 124 0088 ;# 125 0089 ;# 126 008C ;# 127 008D ;# 128 008E ;# 129 0091 ;# 130 0092 ;# 131 0093 ;# 132 0094 ;# 133 0098 ;# 134 0099 ;# 135 009C ;# 136 009D ;# 137 009E ;# 138 009F ;# 139 010C ;# 140 010D ;# 141 010E ;# 142 010F ;# 143 018C ;# 144 018D ;# 145 0000 ;# 146 0001 ;# 147 0002 ;# 148 0003 ;# 149 0004 ;# 150 0005 ;# 151 0006 ;# 152 0007 ;# 153 0008 ;# 154 0009 ;# 155 000A ;# 156 000B ;# 157 000C ;# 158 000D ;# 159 000E ;# 160 000E ;# 161 000F ;# 162 0010 ;# 163 0011 ;# 164 0012 ;# 165 0013 ;# 166 0014 ;# 167 0015 ;# 168 0015 ;# 169 0016 ;# 170 0017 ;# 171 0018 ;# 172 0019 ;# 173 001A ;# 174 001B ;# 175 001B ;# 176 001C ;# 177 001D ;# 178 001E ;# 179 001F ;# 180 0081 ;# 181 0085 ;# 182 0086 ;# 183 0087 ;# 184 0088 ;# 185 0089 ;# 186 008C ;# 187 008D ;# 188 008E ;# 189 0091 ;# 190 0092 ;# 191 0093 ;# 192 0094 ;# 193 0098 ;# 194 0099 ;# 195 009C ;# 196 009D ;# 197 009E ;# 198 009F ;# 199 010C ;# 200 010D ;# 201 010E ;# 202 010F ;# 203 018C ;# 204 018D ;# 205 0000 ;# 206 0001 ;# 207 0002 ;# 208 0003 ;# 209 0004 ;# 210 0005 ;# 211 0006 ;# 212 0007 ;# 213 0008 ;# 214 0009 ;# 215 000A ;# 216 000B ;# 217 000C ;# 218 000D ;# 219 000E ;# 220 000E ;# 221 000F ;# 222 0010 ;# 223 0011 ;# 224 0012 ;# 225 0013 ;# 226 0014 ;# 227 0015 ;# 228 0015 ;# 229 0016 ;# 230 0017 ;# 231 0018 ;# 232 0019 ;# 233 001A ;# 234 001B ;# 235 001B ;# 236 001C ;# 237 001D ;# 238 001E ;# 239 001F ;# 240 0081 ;# 241 0085 ;# 242 0086 ;# 243 0087 ;# 244 0088 ;# 245 0089 ;# 246 008C ;# 247 008D ;# 248 008E ;# 249 0091 ;# 250 0092 ;# 251 0093 ;# 252 0094 ;# 253 0098 ;# 254 0099 ;# 255 009C ;# 256 009D ;# 257 009E ;# 258 009F ;# 259 010C ;# 260 010D ;# 261 010E ;# 262 010F ;# 263 018C ;# 264 018D ;# 265 0000 ;# 266 0001 ;# 267 0002 ;# 268 0003 ;# 269 0004 ;# 270 0005 ;# 271 0006 ;# 272 0007 ;# 273 0008 ;# 274 0009 ;# 275 000A ;# 276 000B ;# 277 000C ;# 278 000D ;# 279 000E ;# 280 000E ;# 281 000F ;# 282 0010 ;# 283 0011 ;# 284 0012 ;# 285 0013 ;# 286 0014 ;# 287 0015 ;# 288 0015 ;# 289 0016 ;# 290 0017 ;# 291 0018 ;# 292 0019 ;# 293 001A ;# 294 001B ;# 295 001B ;# 296 001C ;# 297 001D ;# 298 001E ;# 299 001F ;# 300 0081 ;# 301 0085 ;# 302 0086 ;# 303 0087 ;# 304 0088 ;# 305 0089 ;# 306 008C ;# 307 008D ;# 308 008E ;# 309 0091 ;# 310 0092 ;# 311 0093 ;# 312 0094 ;# 313 0098 ;# 314 0099 ;# 315 009C ;# 316 009D ;# 317 009E ;# 318 009F ;# 319 010C ;# 320 010D ;# 321 010E ;# 322 010F ;# 323 018C ;# 324 018D ;# 325 0000 ;# 326 0001 ;# 327 0002 ;# 328 0003 ;# 329 0004 ;# 330 0005 ;# 331 0006 ;# 332 0007 ;# 333 0008 ;# 334 0009 ;# 335 000A ;# 336 000B ;# 337 000C ;# 338 000D ;# 339 000E ;# 340 000E ;# 341 000F ;# 342 0010 ;# 343 0011 ;# 344 0012 ;# 345 0013 ;# 346 0014 ;# 347 0015 ;# 348 0015 ;# 349 0016 ;# 350 0017 ;# 351 0018 ;# 352 0019 ;# 353 001A ;# 354 001B ;# 355 001B ;# 356 001C ;# 357 001D ;# 358 001E ;# 359 001F ;# 360 0081 ;# 361 0085 ;# 362 0086 ;# 363 0087 ;# 364 0088 ;# 365 0089 ;# 366 008C ;# 367 008D ;# 368 008E ;# 369 0091 ;# 370 0092 ;# 371 0093 ;# 372 0094 ;# 373 0098 ;# 374 0099 ;# 375 009C ;# 376 009D ;# 377 009E ;# 378 009F ;# 379 010C ;# 380 010D ;# 381 010E ;# 382 010F ;# 383 018C ;# 384 018D ;# 385 0000 ;# 386 0001 ;# 387 0002 ;# 388 0003 ;# 389 0004 ;# 390 0005 ;# 391 0006 ;# 392 0007 ;# 393 0008 ;# 394 0009 ;# 395 000A ;# 396 000B ;# 397 000C ;# 398 000D ;# 399 000E ;# 400 000E ;# 401 000F ;# 402 0010 ;# 403 0011 ;# 404 0012 ;# 405 0013 ;# 406 0014 ;# 407 0015 ;# 408 0015 ;# 409 0016 ;# 410 0017 ;# 411 0018 ;# 412 0019 ;# 413 001A ;# 414 001B ;# 415 001B ;# 416 001C ;# 417 001D ;# 418 001E ;# 419 001F ;# 420 0081 ;# 421 0085 ;# 422 0086 ;# 423 0087 ;# 424 0088 ;# 425 0089 ;# 426 008C ;# 427 008D ;# 428 008E ;# 429 0091 ;# 430 0092 ;# 431 0093 ;# 432 0094 ;# 433 0098 ;# 434 0099 ;# 435 009C ;# 436 009D ;# 437 009E ;# 438 009F ;# 439 010C ;# 440 010D ;# 441 010E ;# 442 010F ;# 443 018C ;# 444 018D ;# 445 0000 ;# 446 0001 ;# 447 0002 ;# 448 0003 ;# 449 0004 ;# 450 0005 ;# 451 0006 ;# 452 0007 ;# 453 0008 ;# 454 0009 ;# 455 000A ;# 456 000B ;# 457 000C ;# 458 000D ;# 459 000E ;# 460 000E ;# 461 000F ;# 462 0010 ;# 463 0011 ;# 464 0012 ;# 465 0013 ;# 466 0014 ;# 467 0015 ;# 468 0015 ;# 469 0016 ;# 470 0017 ;# 471 0018 ;# 472 0019 ;# 473 001A ;# 474 001B ;# 475 001B ;# 476 001C ;# 477 001D ;# 478 001E ;# 479 001F ;# 480 0081 ;# 481 0085 ;# 482 0086 ;# 483 0087 ;# 484 0088 ;# 485 0089 ;# 486 008C ;# 487 008D ;# 488 008E ;# 489 0091 ;# 490 0092 ;# 491 0093 ;# 492 0094 ;# 493 0098 ;# 494 0099 ;# 495 009C ;# 496 009D ;# 497 009E ;# 498 009F ;# 499 010C ;# 500 010D ;# 501 010E ;# 502 010F ;# 503 018C ;# 504 018D ;# 505 506 psect idataBANK0 507 0CEA __pidataBANK0: 508 509 ;initializer for _year 510 0CEA 3413 retlw 19 511 0CEB 3400 retlw 0 512 513 ;initializer for _month 514 0CEC 3407 retlw 7 515 0CED 3400 retlw 0 516 517 ;initializer for _date 518 0CEE 341B retlw 27 519 0CEF 3400 retlw 0 520 521 ;initializer for _hour 522 0CF0 3415 retlw 21 523 0CF1 3400 retlw 0 524 525 ;initializer for _min 526 0CF2 342A retlw 42 527 0CF3 3400 retlw 0 528 529 ;initializer for _sec 530 0CF4 341E retlw 30 531 0CF5 3400 retlw 0 532 533 ;initializer for _temp_sign 534 0CF6 3420 retlw 32 535 536 psect idataBANK1 537 0070 __pidataBANK1: 538 539 ;initializer for _century 540 0070 3414 retlw 20 541 0071 3400 retlw 0 542 543 ;initializer for _dayOfWeek 544 0072 3407 retlw 7 545 0073 3400 retlw 0 546 001A _RCREG set 26 547 0019 _TXREG set 25 548 0013 _SSPBUF set 19 549 0014 _SSPCON set 20 550 0008 _PORTD set 8 551 0007 _PORTC set 7 552 0041 _RD1 set 65 553 0065 _RCIF set 101 554 00C1 _OERR set 193 555 0064 _TXIF set 100 556 00C6 _RX9 set 198 557 00C4 _CREN set 196 558 00C7 _SPEN set 199 559 0043 _RD3 set 67 560 0042 _RD2 set 66 561 0047 _RD7 set 71 562 0046 _RD6 set 70 563 0045 _RD5 set 69 564 0044 _RD4 set 68 565 0099 _SPBRG set 153 566 0094 _SSPSTAT set 148 567 0093 _SSPADD set 147 568 0091 _SSPCON2 set 145 569 0088 _TRISD set 136 570 0087 _TRISC set 135 571 04C6 _TX9 set 1222 572 04C5 _TXEN set 1221 573 04C4 _SYNC set 1220 574 04C2 _BRGH set 1218 575 043F _TRISC7 set 1087 576 043E _TRISC6 set 1086 577 048C _ACKEN set 1164 578 048D _ACKDT set 1165 579 048B _RCEN set 1163 580 048A _PEN set 1162 581 0489 _RSEN set 1161 582 0488 _SEN set 1160 583 043C _TRISC4 set 1084 584 043B _TRISC3 set 1083 585 586 psect strings 587 0003 __pstrings: 588 0003 stringtab: 589 0003 __stringtab: 590 591 ; String table - string pointers are 1 byte each 592 0003 1BFF btfsc btemp+1,7 593 0004 280D ljmp stringcode 594 0005 1383 bcf 3,7 595 0006 187F btfsc btemp+1,0 596 0007 1783 bsf 3,7 597 0008 0800 movf 0,w 598 0009 0A84 incf 4,f 599 000A 1903 skipnz 600 000B 0AFF incf btemp+1,f 601 000C 0008 return 602 000D stringcode: 603 000D stringdir: 604 000D 3000 movlw high stringdir 605 000E 008A movwf 10 606 000F 0804 movf 4,w 607 0010 0A84 incf 4,f 608 0011 0782 addwf 2,f 609 0012 __stringbase: 610 0012 3400 retlw 0 611 0013 __end_of__stringtab: 612 0013 STR_8: 613 0013 3452 retlw 82 ;'R' 614 0014 3454 retlw 84 ;'T' 615 0015 3443 retlw 67 ;'C' 616 0016 342F retlw 47 ;'/' 617 0017 344C retlw 76 ;'L' 618 0018 3443 retlw 67 ;'C' 619 0019 3444 retlw 68 ;'D' 620 001A 3420 retlw 32 ;' ' 621 001B 3477 retlw 119 ;'w' 622 001C 3469 retlw 105 ;'i' 623 001D 3474 retlw 116 ;'t' 624 001E 3468 retlw 104 ;'h' 625 001F 3420 retlw 32 ;' ' 626 0020 3450 retlw 80 ;'P' 627 0021 3449 retlw 73 ;'I' 628 0022 3443 retlw 67 ;'C' 629 0023 3400 retlw 0 630 0024 STR_11: 631 0024 3464 retlw 100 ;'d' 632 0025 3464 retlw 100 ;'d' 633 0026 3464 retlw 100 ;'d' 634 0027 342C retlw 44 ;',' 635 0028 3420 retlw 32 ;' ' 636 0029 3444 retlw 68 ;'D' 637 002A 3444 retlw 68 ;'D' 638 002B 342F retlw 47 ;'/' 639 002C 344D retlw 77 ;'M' 640 002D 344D retlw 77 ;'M' 641 002E 342F retlw 47 ;'/' 642 002F 3459 retlw 89 ;'Y' 643 0030 3459 retlw 89 ;'Y' 644 0031 3420 retlw 32 ;' ' 645 0032 3420 retlw 32 ;' ' 646 0033 3400 retlw 0 647 0034 STR_9: 648 0034 3420 retlw 32 ;' ' 649 0035 3443 retlw 67 ;'C' 650 0036 3469 retlw 105 ;'i' 651 0037 3472 retlw 114 ;'r' 652 0038 3463 retlw 99 ;'c' 653 0039 3475 retlw 117 ;'u' 654 003A 3469 retlw 105 ;'i' 655 003B 3474 retlw 116 ;'t' 656 003C 3420 retlw 32 ;' ' 657 003D 3444 retlw 68 ;'D' 658 003E 3469 retlw 105 ;'i' 659 003F 3467 retlw 103 ;'g' 660 0040 3465 retlw 101 ;'e' 661 0041 3473 retlw 115 ;'s' 662 0042 3474 retlw 116 ;'t' 663 0043 3400 retlw 0 664 0044 STR_10: 665 0044 3448 retlw 72 ;'H' 666 0045 3448 retlw 72 ;'H' 667 0046 343A retlw 58 ;':' 668 0047 346D retlw 109 ;'m' 669 0048 346D retlw 109 ;'m' 670 0049 343A retlw 58 ;':' 671 004A 3473 retlw 115 ;'s' 672 004B 3473 retlw 115 ;'s' 673 004C 3420 retlw 32 ;' ' 674 004D 342D retlw 45 ;'-' 675 004E 3450 retlw 80 ;'P' 676 004F 3450 retlw 80 ;'P' 677 0050 342E retlw 46 ;'.' 678 0051 3450 retlw 80 ;'P' 679 0052 3400 retlw 0 680 0053 STR_4: 681 0053 3457 retlw 87 ;'W' 682 0054 3465 retlw 101 ;'e' 683 0055 3464 retlw 100 ;'d' 684 0056 3400 retlw 0 685 0057 STR_3: 686 0057 3454 retlw 84 ;'T' 687 0058 3475 retlw 117 ;'u' 688 0059 3465 retlw 101 ;'e' 689 005A 3400 retlw 0 690 005B STR_6: 691 005B 3446 retlw 70 ;'F' 692 005C 3472 retlw 114 ;'r' 693 005D 3469 retlw 105 ;'i' 694 005E 3400 retlw 0 695 005F STR_2: 696 005F 344D retlw 77 ;'M' 697 0060 346F retlw 111 ;'o' 698 0061 346E retlw 110 ;'n' 699 0062 3400 retlw 0 700 0063 STR_1: 701 0063 3453 retlw 83 ;'S' 702 0064 3475 retlw 117 ;'u' 703 0065 346E retlw 110 ;'n' 704 0066 3400 retlw 0 705 0067 STR_7: 706 0067 3453 retlw 83 ;'S' 707 0068 3461 retlw 97 ;'a' 708 0069 3474 retlw 116 ;'t' 709 006A 3400 retlw 0 710 006B STR_5: 711 006B 3454 retlw 84 ;'T' 712 006C 3468 retlw 104 ;'h' 713 006D 3475 retlw 117 ;'u' 714 006E 3400 retlw 0 715 716 ; #config settings 717 0000 718 psect cinit 719 07D3 start_initialization: 720 07D3 __initialization: 721 722 ; Initialize objects allocated to BANK1 723 07D3 1383 bcf 3,7 ;select IRP bank0 724 07D4 30D2 movlw low (__pdataBANK1+4) 725 07D5 00FD movwf btemp+-1 726 07D6 3000 movlw high __pidataBANK1 727 07D7 00FE movwf btemp 728 07D8 3070 movlw low __pidataBANK1 729 07D9 00FF movwf btemp+1 730 07DA 30CE movlw low __pdataBANK1 731 07DB 0084 movwf 4 732 07DC 120A 158A 24FB 120A 118A fcall init_ram0 733 734 ; Initialize objects allocated to BANK0 735 07E1 306F movlw low (__pdataBANK0+13) 736 07E2 00FD movwf btemp+-1 737 07E3 300C movlw high __pidataBANK0 738 07E4 00FE movwf btemp 739 07E5 30EA movlw low __pidataBANK0 740 07E6 00FF movwf btemp+1 741 07E7 3062 movlw low __pdataBANK0 742 07E8 0084 movwf 4 743 07E9 120A 158A 24FB 120A 118A fcall init_ram0 744 745 ; Clear objects allocated to BANK1 746 07EE 30A0 movlw low __pbssBANK1 747 07EF 0084 movwf 4 748 07F0 30CE movlw low (__pbssBANK1+46) 749 07F1 120A 158A 24CE 120A 118A fcall clear_ram0 750 751 ; Clear objects allocated to BANK0 752 07F6 3020 movlw low __pbssBANK0 753 07F7 0084 movwf 4 754 07F8 304D movlw low (__pbssBANK0+45) 755 07F9 120A 158A 24CE fcall clear_ram0 756 07FC end_of_initialization: 757 ;End of C runtime variable initialization code 758 759 07FC __end_of__initialization: 760 07FC 0183 clrf 3 761 07FD 120A 118A 2A4C ljmp _main ;jump to C main() function 762 763 psect bssBANK0 764 0020 __pbssBANK0: 765 0020 _temperature_msb: 766 0020 ds 2 767 0022 _temperature_lsb: 768 0022 ds 2 769 0024 _control_reg: 770 0024 ds 2 771 0026 _alarm2_status: 772 0026 ds 2 773 0028 _alarm1_status: 774 0028 ds 2 775 002A _alarm2_hour: 776 002A ds 2 777 002C _alarm2_min: 778 002C ds 2 779 002E _alarm1_hour: 780 002E ds 2 781 0030 _alarm1_min: 782 0030 ds 2 783 0032 _alarm1_sec: 784 0032 ds 2 785 0034 _alarm2_hour_1: 786 0034 ds 1 787 0035 _alarm2_hour_0: 788 0035 ds 1 789 0036 _alarm2_min_1: 790 0036 ds 1 791 0037 _alarm2_min_0: 792 0037 ds 1 793 0038 _alarm1_hour_1: 794 0038 ds 1 795 0039 _alarm1_hour_0: 796 0039 ds 1 797 003A _alarm1_min_1: 798 003A ds 1 799 003B _alarm1_min_0: 800 003B ds 1 801 003C _alarm1_sec_1: 802 003C ds 1 803 003D _alarm1_sec_0: 804 003D ds 1 805 003E _temp_2: 806 003E ds 1 807 003F _temp_1: 808 003F ds 1 809 0040 _temp_0: 810 0040 ds 1 811 0041 _year_1: 812 0041 ds 1 813 0042 _year_0: 814 0042 ds 1 815 0043 _month_1: 816 0043 ds 1 817 0044 _month_0: 818 0044 ds 1 819 0045 _day_1: 820 0045 ds 1 821 0046 _day_0: 822 0046 ds 1 823 0047 _hour_1: 824 0047 ds 1 825 0048 _hour_0: 826 0048 ds 1 827 0049 _min_1: 828 0049 ds 1 829 004A _min_0: 830 004A ds 1 831 004B _sec_1: 832 004B ds 1 833 004C _sec_0: 834 004C ds 1 835 836 psect dataBANK0 837 0062 __pdataBANK0: 838 0062 _year: 839 0062 ds 2 840 0064 _month: 841 0064 ds 2 842 0066 _date: 843 0066 ds 2 844 0068 _hour: 845 0068 ds 2 846 006A _min: 847 006A ds 2 848 006C _sec: 849 006C ds 2 850 006E _temp_sign: 851 006E ds 1 852 853 psect bssBANK1 854 00A0 __pbssBANK1: 855 00A0 _buf: 856 00A0 ds 40 857 00C8 _sec_chg: 858 00C8 ds 2 859 00CA _weekday: 860 00CA ds 2 861 00CC _status_reg: 862 00CC ds 2 863 864 psect dataBANK1 865 00CE __pdataBANK1: 866 00CE _century: 867 00CE ds 2 868 00D0 _dayOfWeek: 869 00D0 ds 2 870 871 psect inittext 872 0CF7 init_fetch0: 873 ; Called with low address in FSR and high address in W 874 875 0CF7 087E movf 126,w 876 0CF8 008A movwf 10 877 0CF9 087F movf 127,w 878 0CFA 0082 movwf 2 879 0CFB init_ram0: 880 ;Called with: 881 ; high address of idata address in btemp 882 ; low address of idata address in btemp+1 883 ; low address of data in FSR 884 ; high address + 1 of data in btemp-1 885 886 0CFB 24F7 120A 158A fcall init_fetch0 887 0CFE 0080 movwf 0 888 0CFF 0A84 incf 4,f 889 0D00 0804 movf 4,w 890 0D01 067D xorwf 125,w 891 0D02 1903 btfsc 3,2 892 0D03 3400 retlw 0 893 0D04 0AFF incf 127,f 894 0D05 1903 btfsc 3,2 895 0D06 0AFE incf 126,f 896 0D07 2CFB goto init_ram0 897 898 psect clrtext 899 0CCE clear_ram0: 900 ; Called with FSR containing the base address, and 901 ; W with the last address+1 902 903 0CCE 0064 clrwdt ;clear the watchdog before getting into this loop 904 0CCF clrloop0: 905 0CCF 0180 clrf 0 ;clear RAM location pointed to by FSR 906 0CD0 0A84 incf 4,f ;increment pointer 907 0CD1 0604 xorwf 4,w ;XOR with final address 908 0CD2 1903 btfsc 3,2 ;have we reached the end yet? 909 0CD3 3400 retlw 0 ;all done for this memory range, return 910 0CD4 0604 xorwf 4,w ;XOR again to restore value 911 0CD5 2CCF goto clrloop0 ;do the next byte 912 913 psect cstackCOMMON 914 0070 __pcstackCOMMON: 915 0070 ?_Lcd_Init: 916 0070 ?_display_Intro: 917 ; 1 bytes @ 0x0 918 919 0070 ?_display_Lcd_Layout: 920 ; 1 bytes @ 0x0 921 922 0070 ?_Update_Current_Date_Time: 923 ; 1 bytes @ 0x0 924 925 0070 ?_Read_Alarms_Temp: 926 ; 1 bytes @ 0x0 927 928 0070 ?_Get_Alarm_Status: 929 ; 1 bytes @ 0x0 930 931 0070 ??_Get_Alarm_Status: 932 ; 1 bytes @ 0x0 933 934 0070 ?_format_DateTimeChars: 935 ; 1 bytes @ 0x0 936 937 0070 ?_format_Temperature: 938 ; 1 bytes @ 0x0 939 940 0070 ?_getWeekDay: 941 ; 1 bytes @ 0x0 942 943 0070 ?_update_Display: 944 ; 1 bytes @ 0x0 945 946 0070 ?_Lcd_Clear: 947 ; 1 bytes @ 0x0 948 949 0070 ?_Lcd_Write_Char: 950 ; 1 bytes @ 0x0 951 952 0070 ?_alarm: 953 ; 1 bytes @ 0x0 954 955 0070 ?_Lcd_Port: 956 ; 1 bytes @ 0x0 957 958 0070 ??_Lcd_Port: 959 ; 1 bytes @ 0x0 960 961 0070 ?_Lcd_Cmd: 962 ; 1 bytes @ 0x0 963 964 0070 ?_I2C_Master_Wait: 965 ; 1 bytes @ 0x0 966 967 0070 ??_I2C_Master_Wait: 968 ; 1 bytes @ 0x0 969 970 0070 ?_I2C_Master_Start: 971 ; 1 bytes @ 0x0 972 973 0070 ??_I2C_Master_Start: 974 ; 1 bytes @ 0x0 975 976 0070 ?_I2C_Master_Repeated_Start: 977 ; 1 bytes @ 0x0 978 979 0070 ??_I2C_Master_Repeated_Start: 980 ; 1 bytes @ 0x0 981 982 0070 ?_I2C_Master_Stop: 983 ; 1 bytes @ 0x0 984 985 0070 ??_I2C_Master_Stop: 986 ; 1 bytes @ 0x0 987 988 0070 ?_I2C_Master_Write: 989 ; 1 bytes @ 0x0 990 991 0070 ?_main: 992 ; 1 bytes @ 0x0 993 994 0070 ?_I2C_Master_Read: 995 ; 2 bytes @ 0x0 996 997 0070 ?___wmul: 998 ; 2 bytes @ 0x0 999 1000 0070 ?___awdiv: 1001 ; 2 bytes @ 0x0 1002 1003 0070 ?___awmod: 1004 ; 2 bytes @ 0x0 1005 1006 0070 ?___lwdiv: 1007 ; 2 bytes @ 0x0 1008 1009 0070 ?___lwmod: 1010 ; 2 bytes @ 0x0 1011 1012 0070 ?___lmul: 1013 ; 2 bytes @ 0x0 1014 1015 0070 Lcd_Port@a: 1016 ; 4 bytes @ 0x0 1017 1018 0070 getWeekDay@dayOfWeek: 1019 ; 1 bytes @ 0x0 1020 1021 0070 I2C_Master_Write@data: 1022 ; 2 bytes @ 0x0 1023 1024 0070 I2C_Master_Read@ack: 1025 ; 2 bytes @ 0x0 1026 1027 0070 alarm@numberOfBeeps: 1028 ; 2 bytes @ 0x0 1029 1030 0070 ___wmul@multiplier: 1031 ; 2 bytes @ 0x0 1032 1033 0070 ___awdiv@divisor: 1034 ; 2 bytes @ 0x0 1035 1036 0070 ___awmod@divisor: 1037 ; 2 bytes @ 0x0 1038 1039 0070 ___lwdiv@divisor: 1040 ; 2 bytes @ 0x0 1041 1042 0070 ___lwmod@divisor: 1043 ; 2 bytes @ 0x0 1044 1045 0070 ___lmul@multiplier: 1046 ; 2 bytes @ 0x0 1047 1048 1049 ; 4 bytes @ 0x0 1050 0070 ds 1 1051 0071 ??_Lcd_Write_Char: 1052 0071 ??_Lcd_Cmd: 1053 ; 1 bytes @ 0x1 1054 1055 1056 ; 1 bytes @ 0x1 1057 0071 ds 1 1058 0072 ??_getWeekDay: 1059 0072 ??_alarm: 1060 ; 1 bytes @ 0x2 1061 1062 0072 ??_I2C_Master_Write: 1063 ; 1 bytes @ 0x2 1064 1065 0072 ??_I2C_Master_Read: 1066 ; 1 bytes @ 0x2 1067 1068 0072 Lcd_Write_Char@temp: 1069 ; 1 bytes @ 0x2 1070 1071 0072 ___wmul@multiplicand: 1072 ; 1 bytes @ 0x2 1073 1074 0072 ___awdiv@dividend: 1075 ; 2 bytes @ 0x2 1076 1077 0072 ___awmod@dividend: 1078 ; 2 bytes @ 0x2 1079 1080 0072 ___lwdiv@dividend: 1081 ; 2 bytes @ 0x2 1082 1083 0072 ___lwmod@dividend: 1084 ; 2 bytes @ 0x2 1085 1086 1087 ; 2 bytes @ 0x2 1088 0072 ds 1 1089 0073 Lcd_Cmd@a: 1090 0073 Lcd_Write_Char@y: 1091 ; 1 bytes @ 0x3 1092 1093 1094 ; 1 bytes @ 0x3 1095 0073 ds 1 1096 0074 ??_Lcd_Init: 1097 0074 ??_Lcd_Clear: 1098 ; 1 bytes @ 0x4 1099 1100 0074 ?_Lcd_Set_Cursor: 1101 ; 1 bytes @ 0x4 1102 1103 0074 ??___wmul: 1104 ; 1 bytes @ 0x4 1105 1106 0074 ??___awdiv: 1107 ; 1 bytes @ 0x4 1108 1109 0074 ??___awmod: 1110 ; 1 bytes @ 0x4 1111 1112 0074 ??___lwdiv: 1113 ; 1 bytes @ 0x4 1114 1115 0074 ??___lwmod: 1116 ; 1 bytes @ 0x4 1117 1118 0074 Lcd_Set_Cursor@b: 1119 ; 1 bytes @ 0x4 1120 1121 0074 Lcd_Write_Char@a: 1122 ; 1 bytes @ 0x4 1123 1124 0074 I2C_Master_Read@incoming: 1125 ; 1 bytes @ 0x4 1126 1127 0074 ___wmul@product: 1128 ; 2 bytes @ 0x4 1129 1130 0074 ___lmul@multiplicand: 1131 ; 2 bytes @ 0x4 1132 1133 1134 ; 4 bytes @ 0x4 1135 0074 ds 1 1136 0075 ??_Lcd_Set_Cursor: 1137 0075 ?_Lcd_Write_String: 1138 ; 1 bytes @ 0x5 1139 1140 0075 ___awdiv@counter: 1141 ; 1 bytes @ 0x5 1142 1143 0075 ___awmod@counter: 1144 ; 1 bytes @ 0x5 1145 1146 0075 ___lwmod@counter: 1147 ; 1 bytes @ 0x5 1148 1149 0075 Lcd_Write_String@a: 1150 ; 1 bytes @ 0x5 1151 1152 0075 alarm@i: 1153 ; 2 bytes @ 0x5 1154 1155 0075 ___lwdiv@quotient: 1156 ; 2 bytes @ 0x5 1157 1158 1159 ; 2 bytes @ 0x5 1160 0075 ds 1 1161 0076 ?_BCD_2_DEC: 1162 0076 ___awdiv@sign: 1163 ; 2 bytes @ 0x6 1164 1165 0076 ___awmod@sign: 1166 ; 1 bytes @ 0x6 1167 1168 0076 BCD_2_DEC@to_convert: 1169 ; 1 bytes @ 0x6 1170 1171 1172 ; 2 bytes @ 0x6 1173 0076 ds 1 1174 0077 ??_Lcd_Write_String: 1175 0077 Lcd_Set_Cursor@a: 1176 ; 1 bytes @ 0x7 1177 1178 0077 ___lwdiv@counter: 1179 ; 1 bytes @ 0x7 1180 1181 0077 Lcd_Write_String@i: 1182 ; 1 bytes @ 0x7 1183 1184 0077 alarm@j: 1185 ; 2 bytes @ 0x7 1186 1187 0077 ___awdiv@quotient: 1188 ; 2 bytes @ 0x7 1189 1190 1191 ; 2 bytes @ 0x7 1192 0077 ds 1 1193 0078 ??_format_DateTimeChars: 1194 0078 ??_BCD_2_DEC: 1195 ; 1 bytes @ 0x8 1196 1197 0078 ??___lmul: 1198 ; 1 bytes @ 0x8 1199 1200 0078 Lcd_Set_Cursor@z: 1201 ; 1 bytes @ 0x8 1202 1203 1204 ; 1 bytes @ 0x8 1205 0078 ds 1 1206 0079 ??_format_Temperature: 1207 0079 Lcd_Set_Cursor@y: 1208 ; 1 bytes @ 0x9 1209 1210 0079 ___lmul@product: 1211 ; 1 bytes @ 0x9 1212 1213 1214 ; 4 bytes @ 0x9 1215 0079 ds 1 1216 007A ??_Update_Current_Date_Time: 1217 007A ??_Read_Alarms_Temp: 1218 ; 1 bytes @ 0xA 1219 1220 007A Lcd_Set_Cursor@temp: 1221 ; 1 bytes @ 0xA 1222 1223 1224 ; 1 bytes @ 0xA 1225 007A ds 1 1226 007B ??_display_Intro: 1227 007B ??_display_Lcd_Layout: 1228 ; 1 bytes @ 0xB 1229 1230 007B ??_update_Display: 1231 ; 1 bytes @ 0xB 1232 1233 1234 ; 1 bytes @ 0xB 1235 007B ds 2 1236 007D ??___lldiv: 1237 1238 ; 1 bytes @ 0xD 1239 007D ds 1 1240 007E ??_main: 1241 1242 psect cstackBANK0 1243 004D __pcstackBANK0: 1244 ; 1 bytes @ 0xE 1245 1246 004D ?___lldiv: 1247 004D ___lldiv@divisor: 1248 ; 4 bytes @ 0x0 1249 1250 1251 ; 4 bytes @ 0x0 1252 004D ds 4 1253 0051 ___lldiv@dividend: 1254 1255 ; 4 bytes @ 0x4 1256 0051 ds 4 1257 0055 ___lldiv@quotient: 1258 1259 ; 4 bytes @ 0x8 1260 0055 ds 4 1261 0059 ___lldiv@counter: 1262 1263 ; 1 bytes @ 0xC 1264 0059 ds 1 1265 005A ?_I2C_Master_Init: 1266 005A I2C_Master_Init@freq_K: 1267 ; 1 bytes @ 0xD 1268 1269 1270 ; 4 bytes @ 0xD 1271 005A ds 4 1272 005E ??_I2C_Master_Init: 1273 1274 ; 1 bytes @ 0x11 1275 005E ds 4 1276 1277 psect maintext 1278 024C __pmaintext: 1279 ;; 1280 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0 1281 ;; 1282 ;; *************** function _main ***************** 1283 ;; Defined at: 1284 ;; line 17 in file "main.c" 1285 ;; Parameters: Size Location Type 1286 ;; None 1287 ;; Auto vars: Size Location Type 1288 ;; None 1289 ;; Return value: Size Location Type 1290 ;; 2 142[None ] int 1291 ;; Registers used: 1292 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 1293 ;; Tracked objects: 1294 ;; On entry : B00/0 1295 ;; On exit : 0/0 1296 ;; Unchanged: 0/0 1297 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1298 ;; Params: 0 0 0 0 0 1299 ;; Locals: 0 0 0 0 0 1300 ;; Temps: 0 0 0 0 0 1301 ;; Totals: 0 0 0 0 0 1302 ;;Total ram usage: 0 bytes 1303 ;; Hardware stack levels required when called: 4 1304 ;; This function calls: 1305 ;; _Get_Alarm_Status 1306 ;; _I2C_Master_Init 1307 ;; _Lcd_Init 1308 ;; _Read_Alarms_Temp 1309 ;; _Update_Current_Date_Time 1310 ;; _display_Intro 1311 ;; _display_Lcd_Layout 1312 ;; _format_DateTimeChars 1313 ;; _format_Temperature 1314 ;; _getWeekDay 1315 ;; _update_Display 1316 ;; This function is called by: 1317 ;; Startup code after reset 1318 ;; This function uses a non-reentrant model 1319 ;; 1320 1321 1322 ;psect for function _main 1323 024C _main: 1324 1325 ;main.c: 18: TRISC = 0x00; 1326 1327 ;incstack = 0 1328 ; Regs used in _main: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 1329 024C 1683 bsf 3,5 ;RP0=1, select bank1 1330 024D 1303 bcf 3,6 ;RP1=0, select bank1 1331 024E 0187 clrf 7 ;volatile 1332 1333 ;main.c: 19: PORTC = 0x00; 1334 024F 1283 bcf 3,5 ;RP0=0, select bank0 1335 0250 1303 bcf 3,6 ;RP1=0, select bank0 1336 0251 0187 clrf 7 ;volatile 1337 1338 ;main.c: 21: TRISD = 0x00; 1339 0252 1683 bsf 3,5 ;RP0=1, select bank1 1340 0253 1303 bcf 3,6 ;RP1=0, select bank1 1341 0254 0188 clrf 8 ;volatile 1342 1343 ;main.c: 22: PORTD = 0x00; 1344 0255 1283 bcf 3,5 ;RP0=0, select bank0 1345 0256 1303 bcf 3,6 ;RP1=0, select bank0 1346 0257 0188 clrf 8 ;volatile 1347 1348 ;main.c: 33: I2C_Master_Init(100000); 1349 0258 3000 movlw 0 1350 0259 00DD movwf I2C_Master_Init@freq_K+3 1351 025A 3001 movlw 1 1352 025B 00DC movwf I2C_Master_Init@freq_K+2 1353 025C 3086 movlw 134 1354 025D 00DB movwf I2C_Master_Init@freq_K+1 1355 025E 30A0 movlw 160 1356 025F 00DA movwf I2C_Master_Init@freq_K 1357 0260 120A 118A 20E6 120A 118A fcall _I2C_Master_Init 1358 1359 ;main.c: 41: Lcd_Init(); 1360 0265 120A 118A 2190 120A 118A fcall _Lcd_Init 1361 1362 ;main.c: 49: display_Intro(); 1363 026A 120A 158A 25FE 120A 118A fcall _display_Intro 1364 1365 ;main.c: 50: display_Lcd_Layout(); 1366 026F 120A 158A 26E7 120A 118A fcall _display_Lcd_Layout 1367 0274 l2092: 1368 1369 ;main.c: 72: Update_Current_Date_Time(); 1370 0274 120A 118A 2339 120A 118A fcall _Update_Current_Date_Time 1371 1372 ;main.c: 76: Read_Alarms_Temp(); 1373 0279 120A 118A 241C 120A 118A fcall _Read_Alarms_Temp 1374 1375 ;main.c: 79: Get_Alarm_Status(); 1376 027E 120A 158A 2508 120A 118A fcall _Get_Alarm_Status 1377 1378 ;main.c: 83: format_DateTimeChars(); 1379 0283 120A 118A 261A 120A 118A fcall _format_DateTimeChars 1380 1381 ;main.c: 87: format_Temperature(); 1382 0288 120A 118A 22B8 120A 118A fcall _format_Temperature 1383 028D 3007 movlw 7 1384 028E 00F0 movwf getWeekDay@dayOfWeek 1385 028F 3000 movlw 0 1386 0290 00F1 movwf getWeekDay@dayOfWeek+1 1387 0291 120A 118A 2097 120A 118A fcall _getWeekDay 1388 1389 ;main.c: 94: if (sec_chg != sec) { 1390 0296 1283 bcf 3,5 ;RP0=0, select bank0 1391 0297 1303 bcf 3,6 ;RP1=0, select bank0 1392 0298 086D movf _sec+1,w 1393 0299 1683 bsf 3,5 ;RP0=1, select bank1 1394 029A 1303 bcf 3,6 ;RP1=0, select bank1 1395 029B 0649 xorwf (_sec_chg+1)^(0+128),w 1396 029C 1D03 skipz 1397 029D 2AA4 goto u1565 1398 029E 1283 bcf 3,5 ;RP0=0, select bank0 1399 029F 1303 bcf 3,6 ;RP1=0, select bank0 1400 02A0 086C movf _sec,w 1401 02A1 1683 bsf 3,5 ;RP0=1, select bank1 1402 02A2 1303 bcf 3,6 ;RP1=0, select bank1 1403 02A3 0648 xorwf _sec_chg^(0+128),w 1404 02A4 u1565: 1405 02A4 1903 skipnz 1406 02A5 2A74 goto l2092 1407 1408 ;main.c: 96: update_Display(); 1409 02A6 120A 118A 2513 120A 118A fcall _update_Display 1410 1411 ;main.c: 99: sec_chg = sec; 1412 02AB 1283 bcf 3,5 ;RP0=0, select bank0 1413 02AC 1303 bcf 3,6 ;RP1=0, select bank0 1414 02AD 086D movf _sec+1,w 1415 02AE 1683 bsf 3,5 ;RP0=1, select bank1 1416 02AF 1303 bcf 3,6 ;RP1=0, select bank1 1417 02B0 00C9 movwf (_sec_chg+1)^(0+128) 1418 02B1 1283 bcf 3,5 ;RP0=0, select bank0 1419 02B2 1303 bcf 3,6 ;RP1=0, select bank0 1420 02B3 086C movf _sec,w 1421 02B4 1683 bsf 3,5 ;RP0=1, select bank1 1422 02B5 1303 bcf 3,6 ;RP1=0, select bank1 1423 02B6 00C8 movwf _sec_chg^(0+128) 1424 02B7 2A74 goto l2092 1425 02B8 __end_of_main: 1426 1427 psect text1 1428 0513 __ptext1: 1429 ;; *************** function _update_Display ***************** 1430 ;; Defined at: 1431 ;; line 248 in file "main.c" 1432 ;; Parameters: Size Location Type 1433 ;; None 1434 ;; Auto vars: Size Location Type 1435 ;; None 1436 ;; Return value: Size Location Type 1437 ;; 1 wreg void 1438 ;; Registers used: 1439 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 1440 ;; Tracked objects: 1441 ;; On entry : 0/0 1442 ;; On exit : 0/0 1443 ;; Unchanged: 0/0 1444 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1445 ;; Params: 0 0 0 0 0 1446 ;; Locals: 0 0 0 0 0 1447 ;; Temps: 1 0 0 0 0 1448 ;; Totals: 1 0 0 0 0 1449 ;;Total ram usage: 1 bytes 1450 ;; Hardware stack levels used: 1 1451 ;; Hardware stack levels required when called: 3 1452 ;; This function calls: 1453 ;; _Lcd_Set_Cursor 1454 ;; _Lcd_Write_Char 1455 ;; _Lcd_Write_String 1456 ;; _alarm 1457 ;; This function is called by: 1458 ;; _main 1459 ;; This function uses a non-reentrant model 1460 ;; 1461 1462 1463 ;psect for function _update_Display 1464 0513 _update_Display: 1465 1466 ;main.c: 250: Lcd_Set_Cursor(1, 1); 1467 1468 ;incstack = 0 1469 ; Regs used in _update_Display: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 1470 0513 01F4 clrf Lcd_Set_Cursor@b 1471 0514 0AF4 incf Lcd_Set_Cursor@b,f 1472 0515 3001 movlw 1 1473 0516 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1474 1475 ;main.c: 251: Lcd_Write_Char(hour_1); 1476 051B 1283 bcf 3,5 ;RP0=0, select bank0 1477 051C 1303 bcf 3,6 ;RP1=0, select bank0 1478 051D 0847 movf _hour_1,w 1479 051E 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1480 1481 ;main.c: 252: Lcd_Write_Char(hour_0); 1482 0523 1283 bcf 3,5 ;RP0=0, select bank0 1483 0524 1303 bcf 3,6 ;RP1=0, select bank0 1484 0525 0848 movf _hour_0,w 1485 0526 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1486 1487 ;main.c: 255: Lcd_Set_Cursor(1, 4); 1488 052B 3004 movlw 4 1489 052C 00FB movwf ??_update_Display 1490 052D 087B movf ??_update_Display,w 1491 052E 00F4 movwf Lcd_Set_Cursor@b 1492 052F 3001 movlw 1 1493 0530 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1494 1495 ;main.c: 256: Lcd_Write_Char(min_1); 1496 0535 1283 bcf 3,5 ;RP0=0, select bank0 1497 0536 1303 bcf 3,6 ;RP1=0, select bank0 1498 0537 0849 movf _min_1,w 1499 0538 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1500 1501 ;main.c: 257: Lcd_Write_Char(min_0); 1502 053D 1283 bcf 3,5 ;RP0=0, select bank0 1503 053E 1303 bcf 3,6 ;RP1=0, select bank0 1504 053F 084A movf _min_0,w 1505 0540 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1506 1507 ;main.c: 260: Lcd_Set_Cursor(1, 7); 1508 0545 3007 movlw 7 1509 0546 00FB movwf ??_update_Display 1510 0547 087B movf ??_update_Display,w 1511 0548 00F4 movwf Lcd_Set_Cursor@b 1512 0549 3001 movlw 1 1513 054A 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1514 1515 ;main.c: 261: Lcd_Write_Char(sec_1); 1516 054F 1283 bcf 3,5 ;RP0=0, select bank0 1517 0550 1303 bcf 3,6 ;RP1=0, select bank0 1518 0551 084B movf _sec_1,w 1519 0552 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1520 1521 ;main.c: 262: Lcd_Write_Char(sec_0); 1522 0557 1283 bcf 3,5 ;RP0=0, select bank0 1523 0558 1303 bcf 3,6 ;RP1=0, select bank0 1524 0559 084C movf _sec_0,w 1525 055A 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1526 1527 ;main.c: 265: Lcd_Set_Cursor(2, 6); 1528 055F 3006 movlw 6 1529 0560 00FB movwf ??_update_Display 1530 0561 087B movf ??_update_Display,w 1531 0562 00F4 movwf Lcd_Set_Cursor@b 1532 0563 3002 movlw 2 1533 0564 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1534 1535 ;main.c: 266: Lcd_Write_Char(day_1); 1536 0569 1283 bcf 3,5 ;RP0=0, select bank0 1537 056A 1303 bcf 3,6 ;RP1=0, select bank0 1538 056B 0845 movf _day_1,w 1539 056C 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1540 1541 ;main.c: 267: Lcd_Write_Char(day_0); 1542 0571 1283 bcf 3,5 ;RP0=0, select bank0 1543 0572 1303 bcf 3,6 ;RP1=0, select bank0 1544 0573 0846 movf _day_0,w 1545 0574 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1546 1547 ;main.c: 270: Lcd_Set_Cursor(2, 9); 1548 0579 3009 movlw 9 1549 057A 00FB movwf ??_update_Display 1550 057B 087B movf ??_update_Display,w 1551 057C 00F4 movwf Lcd_Set_Cursor@b 1552 057D 3002 movlw 2 1553 057E 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1554 1555 ;main.c: 271: Lcd_Write_Char(month_1); 1556 0583 1283 bcf 3,5 ;RP0=0, select bank0 1557 0584 1303 bcf 3,6 ;RP1=0, select bank0 1558 0585 0843 movf _month_1,w 1559 0586 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1560 1561 ;main.c: 272: Lcd_Write_Char(month_0); 1562 058B 1283 bcf 3,5 ;RP0=0, select bank0 1563 058C 1303 bcf 3,6 ;RP1=0, select bank0 1564 058D 0844 movf _month_0,w 1565 058E 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1566 1567 ;main.c: 275: Lcd_Set_Cursor(2, 12); 1568 0593 300C movlw 12 1569 0594 00FB movwf ??_update_Display 1570 0595 087B movf ??_update_Display,w 1571 0596 00F4 movwf Lcd_Set_Cursor@b 1572 0597 3002 movlw 2 1573 0598 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1574 1575 ;main.c: 276: Lcd_Write_Char(year_1); 1576 059D 1283 bcf 3,5 ;RP0=0, select bank0 1577 059E 1303 bcf 3,6 ;RP1=0, select bank0 1578 059F 0841 movf _year_1,w 1579 05A0 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1580 1581 ;main.c: 277: Lcd_Write_Char(year_0); 1582 05A5 1283 bcf 3,5 ;RP0=0, select bank0 1583 05A6 1303 bcf 3,6 ;RP1=0, select bank0 1584 05A7 0842 movf _year_0,w 1585 05A8 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1586 1587 ;main.c: 280: Lcd_Set_Cursor(2, 1); 1588 05AD 01F4 clrf Lcd_Set_Cursor@b 1589 05AE 0AF4 incf Lcd_Set_Cursor@b,f 1590 05AF 3002 movlw 2 1591 05B0 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1592 1593 ;main.c: 281: Lcd_Write_String(weekday); 1594 05B5 1683 bsf 3,5 ;RP0=1, select bank1 1595 05B6 1303 bcf 3,6 ;RP1=0, select bank1 1596 05B7 084A movf _weekday^(0+128),w 1597 05B8 00F5 movwf Lcd_Write_String@a 1598 05B9 084B movf (_weekday+1)^(0+128),w 1599 05BA 00F6 movwf Lcd_Write_String@a+1 1600 05BB 120A 158A 259F 120A 118A fcall _Lcd_Write_String 1601 1602 ;main.c: 284: Lcd_Set_Cursor(1, 10); 1603 05C0 300A movlw 10 1604 05C1 00FB movwf ??_update_Display 1605 05C2 087B movf ??_update_Display,w 1606 05C3 00F4 movwf Lcd_Set_Cursor@b 1607 05C4 3001 movlw 1 1608 05C5 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1609 1610 ;main.c: 285: Lcd_Write_Char(temp_sign); 1611 05CA 1283 bcf 3,5 ;RP0=0, select bank0 1612 05CB 1303 bcf 3,6 ;RP1=0, select bank0 1613 05CC 086E movf _temp_sign,w 1614 05CD 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1615 1616 ;main.c: 286: Lcd_Write_Char(temp_2); 1617 05D2 1283 bcf 3,5 ;RP0=0, select bank0 1618 05D3 1303 bcf 3,6 ;RP1=0, select bank0 1619 05D4 083E movf _temp_2,w 1620 05D5 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1621 1622 ;main.c: 287: Lcd_Write_Char(temp_1); 1623 05DA 1283 bcf 3,5 ;RP0=0, select bank0 1624 05DB 1303 bcf 3,6 ;RP1=0, select bank0 1625 05DC 083F movf _temp_1,w 1626 05DD 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1627 1628 ;main.c: 288: Lcd_Set_Cursor(1, 14); 1629 05E2 300E movlw 14 1630 05E3 00FB movwf ??_update_Display 1631 05E4 087B movf ??_update_Display,w 1632 05E5 00F4 movwf Lcd_Set_Cursor@b 1633 05E6 3001 movlw 1 1634 05E7 120A 158A 276B 120A 118A fcall _Lcd_Set_Cursor 1635 1636 ;main.c: 289: Lcd_Write_Char(temp_0); 1637 05EC 1283 bcf 3,5 ;RP0=0, select bank0 1638 05ED 1303 bcf 3,6 ;RP1=0, select bank0 1639 05EE 0840 movf _temp_0,w 1640 05EF 120A 158A 2633 120A 118A fcall _Lcd_Write_Char 1641 1642 ;main.c: 291: if (min == 00 && sec == 00) { 1643 05F4 1283 bcf 3,5 ;RP0=0, select bank0 1644 05F5 1303 bcf 3,6 ;RP1=0, select bank0 1645 05F6 086A movf _min,w 1646 05F7 046B iorwf _min+1,w 1647 05F8 1D03 btfss 3,2 1648 05F9 2E07 goto l2072 1649 05FA 086C movf _sec,w 1650 05FB 046D iorwf _sec+1,w 1651 05FC 1D03 btfss 3,2 1652 05FD 2E07 goto l2072 1653 1654 ;main.c: 292: alarm(2); 1655 05FE 3002 movlw 2 1656 05FF 00F0 movwf alarm@numberOfBeeps 1657 0600 3000 movlw 0 1658 0601 00F1 movwf alarm@numberOfBeeps+1 1659 0602 120A 158A 2728 120A 118A fcall _alarm 1660 0607 l2072: 1661 1662 ;main.c: 295: if (min == 30 && sec == 00) { 1663 0607 301E movlw 30 1664 0608 1283 bcf 3,5 ;RP0=0, select bank0 1665 0609 1303 bcf 3,6 ;RP1=0, select bank0 1666 060A 066A xorwf _min,w 1667 060B 046B iorwf _min+1,w 1668 060C 1D03 btfss 3,2 1669 060D 0008 return 1670 060E 086C movf _sec,w 1671 060F 046D iorwf _sec+1,w 1672 0610 1D03 btfss 3,2 1673 0611 0008 return 1674 1675 ;main.c: 296: alarm(1); 1676 0612 3001 movlw 1 1677 0613 00F0 movwf alarm@numberOfBeeps 1678 0614 3000 movlw 0 1679 0615 00F1 movwf alarm@numberOfBeeps+1 1680 0616 120A 158A 2728 fcall _alarm 1681 0619 0008 return 1682 061A __end_of_update_Display: 1683 1684 psect text2 1685 0F28 __ptext2: 1686 ;; *************** function _alarm ***************** 1687 ;; Defined at: 1688 ;; line 4 in file "beep.c" 1689 ;; Parameters: Size Location Type 1690 ;; numberOfBeep 2 0[COMMON] unsigned int 1691 ;; Auto vars: Size Location Type 1692 ;; j 2 7[COMMON] int 1693 ;; i 2 5[COMMON] int 1694 ;; Return value: Size Location Type 1695 ;; 1 wreg void 1696 ;; Registers used: 1697 ;; wreg, status,2, btemp+1 1698 ;; Tracked objects: 1699 ;; On entry : 0/0 1700 ;; On exit : 0/0 1701 ;; Unchanged: 0/0 1702 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1703 ;; Params: 2 0 0 0 0 1704 ;; Locals: 4 0 0 0 0 1705 ;; Temps: 3 0 0 0 0 1706 ;; Totals: 9 0 0 0 0 1707 ;;Total ram usage: 9 bytes 1708 ;; Hardware stack levels used: 1 1709 ;; This function calls: 1710 ;; Nothing 1711 ;; This function is called by: 1712 ;; _update_Display 1713 ;; This function uses a non-reentrant model 1714 ;; 1715 1716 1717 ;psect for function _alarm 1718 0F28 _alarm: 1719 1720 ;beep.c: 5: for (int i = 0; i < numberOfBeeps; i++) { 1721 1722 ;incstack = 0 1723 ; Regs used in _alarm: [wreg+status,2+btemp+1] 1724 0F28 01F5 clrf alarm@i 1725 0F29 01F6 clrf alarm@i+1 1726 0F2A l487: 1727 0F2A 0871 movf alarm@numberOfBeeps+1,w 1728 0F2B 0276 subwf alarm@i+1,w 1729 0F2C 1D03 skipz 1730 0F2D 2F30 goto u985 1731 0F2E 0870 movf alarm@numberOfBeeps,w 1732 0F2F 0275 subwf alarm@i,w 1733 0F30 u985: 1734 0F30 1803 btfsc 3,0 1735 0F31 0008 return 1736 1737 ;beep.c: 6: for (int j = 0; j < 250; j++) { 1738 0F32 01F7 clrf alarm@j 1739 0F33 01F8 clrf alarm@j+1 1740 0F34 l489: 1741 1742 ;beep.c: 7: RD1 = 1; 1743 0F34 1283 bcf 3,5 ;RP0=0, select bank0 1744 0F35 1303 bcf 3,6 ;RP1=0, select bank0 1745 0F36 1488 bsf 8,1 ;volatile 1746 1747 ;beep.c: 8: _delay((unsigned long)((375)*(20000000/4000000.0))); 1748 0F37 3003 movlw 3 1749 0F38 00F3 movwf ??_alarm+1 1750 0F39 306E movlw 110 1751 0F3A 00F2 movwf ??_alarm 1752 0F3B u1577: 1753 0F3B 0BF2 decfsz ??_alarm,f 1754 0F3C 2F3B goto u1577 1755 0F3D 0BF3 decfsz ??_alarm+1,f 1756 0F3E 2F3B goto u1577 1757 1758 ;beep.c: 9: RD1 = 0; 1759 0F3F 1283 bcf 3,5 ;RP0=0, select bank0 1760 0F40 1303 bcf 3,6 ;RP1=0, select bank0 1761 0F41 1088 bcf 8,1 ;volatile 1762 1763 ;beep.c: 10: _delay((unsigned long)((125)*(20000000/4000000.0))); 1764 0F42 30D0 movlw 208 1765 0F43 00F2 movwf ??_alarm 1766 0F44 u1587: 1767 0F44 0BF2 decfsz ??_alarm,f 1768 0F45 2F44 goto u1587 1769 1770 ;beep.c: 11: } 1771 0F46 3001 movlw 1 1772 0F47 07F7 addwf alarm@j,f 1773 0F48 1803 skipnc 1774 0F49 0AF8 incf alarm@j+1,f 1775 0F4A 3000 movlw 0 1776 0F4B 07F8 addwf alarm@j+1,f 1777 0F4C 0878 movf alarm@j+1,w 1778 0F4D 3A80 xorlw 128 1779 0F4E 00FF movwf 127 1780 0F4F 3080 movlw 128 1781 0F50 027F subwf 127,w 1782 0F51 1D03 skipz 1783 0F52 2F55 goto u975 1784 0F53 30FA movlw 250 1785 0F54 0277 subwf alarm@j,w 1786 0F55 u975: 1787 0F55 1C03 skipc 1788 0F56 2F34 goto l489 1789 1790 ;beep.c: 13: _delay((unsigned long)((500)*(20000000/4000.0))); 1791 0F57 300D movlw 13 1792 0F58 00F4 movwf ??_alarm+2 1793 0F59 30AF movlw 175 1794 0F5A 00F3 movwf ??_alarm+1 1795 0F5B 30B6 movlw 182 1796 0F5C 00F2 movwf ??_alarm 1797 0F5D u1597: 1798 0F5D 0BF2 decfsz ??_alarm,f 1799 0F5E 2F5D goto u1597 1800 0F5F 0BF3 decfsz ??_alarm+1,f 1801 0F60 2F5D goto u1597 1802 0F61 0BF4 decfsz ??_alarm+2,f 1803 0F62 2F5D goto u1597 1804 0F63 0000 nop 1805 1806 ;beep.c: 14: } 1807 0F64 3001 movlw 1 1808 0F65 07F5 addwf alarm@i,f 1809 0F66 1803 skipnc 1810 0F67 0AF6 incf alarm@i+1,f 1811 0F68 3000 movlw 0 1812 0F69 07F6 addwf alarm@i+1,f 1813 0F6A 2F2A goto l487 1814 0F6B __end_of_alarm: 1815 1816 psect text3 1817 0097 __ptext3: 1818 ;; *************** function _getWeekDay ***************** 1819 ;; Defined at: 1820 ;; line 193 in file "main.c" 1821 ;; Parameters: Size Location Type 1822 ;; dayOfWeek 2 0[COMMON] unsigned int 1823 ;; Auto vars: Size Location Type 1824 ;; None 1825 ;; Return value: Size Location Type 1826 ;; 1 wreg void 1827 ;; Registers used: 1828 ;; wreg, fsr0l, fsr0h, status,2, status,0 1829 ;; Tracked objects: 1830 ;; On entry : 0/0 1831 ;; On exit : 0/0 1832 ;; Unchanged: 0/0 1833 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 1834 ;; Params: 2 0 0 0 0 1835 ;; Locals: 0 0 0 0 0 1836 ;; Temps: 0 0 0 0 0 1837 ;; Totals: 2 0 0 0 0 1838 ;;Total ram usage: 2 bytes 1839 ;; Hardware stack levels used: 1 1840 ;; This function calls: 1841 ;; Nothing 1842 ;; This function is called by: 1843 ;; _main 1844 ;; This function uses a non-reentrant model 1845 ;; 1846 1847 1848 ;psect for function _getWeekDay 1849 0097 _getWeekDay: 1850 1851 ;main.c: 194: switch (dayOfWeek) { 1852 1853 ;incstack = 0 1854 ; Regs used in _getWeekDay: [wreg-fsr0h+status,2+status,0] 1855 0097 28C9 goto l2044 1856 0098 l2028: 1857 1858 ;main.c: 196: weekday = "Sun"; 1859 0098 3051 movlw (low ((STR_1-__stringbase)| (0+32768)))& (0+255) 1860 0099 1683 bsf 3,5 ;RP0=1, select bank1 1861 009A 1303 bcf 3,6 ;RP1=0, select bank1 1862 009B 00CA movwf _weekday^(0+128) 1863 009C 3080 movlw 128 1864 009D 00CB movwf (_weekday+1)^(0+128) 1865 1866 ;main.c: 197: break; 1867 009E 0008 return 1868 009F l2030: 1869 1870 ;main.c: 199: weekday = "Mon"; 1871 009F 304D movlw (low ((STR_2-__stringbase)| (0+32768)))& (0+255) 1872 00A0 1683 bsf 3,5 ;RP0=1, select bank1 1873 00A1 1303 bcf 3,6 ;RP1=0, select bank1 1874 00A2 00CA movwf _weekday^(0+128) 1875 00A3 3080 movlw 128 1876 00A4 00CB movwf (_weekday+1)^(0+128) 1877 1878 ;main.c: 200: break; 1879 00A5 0008 return 1880 00A6 l2032: 1881 1882 ;main.c: 202: weekday = "Tue"; 1883 00A6 3045 movlw (low ((STR_3-__stringbase)| (0+32768)))& (0+255) 1884 00A7 1683 bsf 3,5 ;RP0=1, select bank1 1885 00A8 1303 bcf 3,6 ;RP1=0, select bank1 1886 00A9 00CA movwf _weekday^(0+128) 1887 00AA 3080 movlw 128 1888 00AB 00CB movwf (_weekday+1)^(0+128) 1889 1890 ;main.c: 203: break; 1891 00AC 0008 return 1892 00AD l2034: 1893 1894 ;main.c: 205: weekday = "Wed"; 1895 00AD 3041 movlw (low ((STR_4-__stringbase)| (0+32768)))& (0+255) 1896 00AE 1683 bsf 3,5 ;RP0=1, select bank1 1897 00AF 1303 bcf 3,6 ;RP1=0, select bank1 1898 00B0 00CA movwf _weekday^(0+128) 1899 00B1 3080 movlw 128 1900 00B2 00CB movwf (_weekday+1)^(0+128) 1901 1902 ;main.c: 206: break; 1903 00B3 0008 return 1904 00B4 l2036: 1905 1906 ;main.c: 208: weekday = "Thu"; 1907 00B4 3059 movlw (low ((STR_5-__stringbase)| (0+32768)))& (0+255) 1908 00B5 1683 bsf 3,5 ;RP0=1, select bank1 1909 00B6 1303 bcf 3,6 ;RP1=0, select bank1 1910 00B7 00CA movwf _weekday^(0+128) 1911 00B8 3080 movlw 128 1912 00B9 00CB movwf (_weekday+1)^(0+128) 1913 1914 ;main.c: 209: break; 1915 00BA 0008 return 1916 00BB l2038: 1917 1918 ;main.c: 211: weekday = "Fri"; 1919 00BB 3049 movlw (low ((STR_6-__stringbase)| (0+32768)))& (0+255) 1920 00BC 1683 bsf 3,5 ;RP0=1, select bank1 1921 00BD 1303 bcf 3,6 ;RP1=0, select bank1 1922 00BE 00CA movwf _weekday^(0+128) 1923 00BF 3080 movlw 128 1924 00C0 00CB movwf (_weekday+1)^(0+128) 1925 1926 ;main.c: 212: break; 1927 00C1 0008 return 1928 00C2 l2040: 1929 1930 ;main.c: 214: weekday = "Sat"; 1931 00C2 3055 movlw (low ((STR_7-__stringbase)| (0+32768)))& (0+255) 1932 00C3 1683 bsf 3,5 ;RP0=1, select bank1 1933 00C4 1303 bcf 3,6 ;RP1=0, select bank1 1934 00C5 00CA movwf _weekday^(0+128) 1935 00C6 3080 movlw 128 1936 00C7 00CB movwf (_weekday+1)^(0+128) 1937 1938 ;main.c: 215: break; 1939 00C8 0008 return 1940 00C9 l2044: 1941 1942 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw + itches 1943 ; Switch size 1, requested type "simple" 1944 ; Number of cases is 1, Range of values is 0 to 0 1945 ; switch strategies available: 1946 ; Name Instructions Cycles 1947 ; simple_byte 4 3 (average) 1948 ; direct_byte 11 8 (fixed) 1949 ; jumptable 260 6 (fixed) 1950 ; Chosen strategy is simple_byte 1951 00C9 0871 movf getWeekDay@dayOfWeek+1,w 1952 00CA 3A00 xorlw 0 ; case 0 1953 00CB 1903 skipnz 1954 00CC 28CE goto l2146 1955 00CD 28E5 goto l171 1956 00CE l2146: 1957 1958 ; Switch size 1, requested type "simple" 1959 ; Number of cases is 7, Range of values is 1 to 7 1960 ; switch strategies available: 1961 ; Name Instructions Cycles 1962 ; simple_byte 22 12 (average) 1963 ; direct_byte 32 11 (fixed) 1964 ; jumptable 263 9 (fixed) 1965 ; Chosen strategy is simple_byte 1966 00CE 0870 movf getWeekDay@dayOfWeek,w 1967 00CF 3A01 xorlw 1 ; case 1 1968 00D0 1903 skipnz 1969 00D1 2898 goto l2028 1970 00D2 3A03 xorlw 3 ; case 2 1971 00D3 1903 skipnz 1972 00D4 289F goto l2030 1973 00D5 3A01 xorlw 1 ; case 3 1974 00D6 1903 skipnz 1975 00D7 28A6 goto l2032 1976 00D8 3A07 xorlw 7 ; case 4 1977 00D9 1903 skipnz 1978 00DA 28AD goto l2034 1979 00DB 3A01 xorlw 1 ; case 5 1980 00DC 1903 skipnz 1981 00DD 28B4 goto l2036 1982 00DE 3A03 xorlw 3 ; case 6 1983 00DF 1903 skipnz 1984 00E0 28BB goto l2038 1985 00E1 3A01 xorlw 1 ; case 7 1986 00E2 1903 skipnz 1987 00E3 28C2 goto l2040 1988 00E4 28E5 goto l171 1989 00E5 l171: 1990 00E5 0008 return 1991 00E6 __end_of_getWeekDay: 1992 1993 psect text4 1994 02B8 __ptext4: 1995 ;; *************** function _format_Temperature ***************** 1996 ;; Defined at: 1997 ;; line 156 in file "main.c" 1998 ;; Parameters: Size Location Type 1999 ;; None 2000 ;; Auto vars: Size Location Type 2001 ;; None 2002 ;; Return value: Size Location Type 2003 ;; 1 wreg void 2004 ;; Registers used: 2005 ;; wreg, status,2, status,0, pclath, cstack 2006 ;; Tracked objects: 2007 ;; On entry : 0/0 2008 ;; On exit : 0/0 2009 ;; Unchanged: 0/0 2010 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2011 ;; Params: 0 0 0 0 0 2012 ;; Locals: 0 0 0 0 0 2013 ;; Temps: 1 0 0 0 0 2014 ;; Totals: 1 0 0 0 0 2015 ;;Total ram usage: 1 bytes 2016 ;; Hardware stack levels used: 1 2017 ;; Hardware stack levels required when called: 1 2018 ;; This function calls: 2019 ;; ___awdiv 2020 ;; ___awmod 2021 ;; ___wmul 2022 ;; This function is called by: 2023 ;; _main 2024 ;; This function uses a non-reentrant model 2025 ;; 2026 2027 2028 ;psect for function _format_Temperature 2029 02B8 _format_Temperature: 2030 2031 ;main.c: 158: if (temperature_msb < 0) { 2032 2033 ;incstack = 0 2034 ; Regs used in _format_Temperature: [wreg+status,2+status,0+pclath+cstack] 2035 02B8 1283 bcf 3,5 ;RP0=0, select bank0 2036 02B9 1303 bcf 3,6 ;RP1=0, select bank0 2037 02BA 1FA1 btfss _temperature_msb+1,7 2038 02BB 2AD1 goto l2000 2039 2040 ;main.c: 159: temperature_msb *= -1; 2041 02BC 30FF movlw 255 2042 02BD 00F0 movwf ___wmul@multiplier 2043 02BE 30FF movlw 255 2044 02BF 00F1 movwf ___wmul@multiplier+1 2045 02C0 0821 movf _temperature_msb+1,w 2046 02C1 00F3 movwf ___wmul@multiplicand+1 2047 02C2 0820 movf _temperature_msb,w 2048 02C3 00F2 movwf ___wmul@multiplicand 2049 02C4 120A 158A 2552 120A 118A fcall ___wmul 2050 02C9 0871 movf ?___wmul+1,w 2051 02CA 1283 bcf 3,5 ;RP0=0, select bank0 2052 02CB 1303 bcf 3,6 ;RP1=0, select bank0 2053 02CC 00A1 movwf _temperature_msb+1 2054 02CD 0870 movf ?___wmul,w 2055 02CE 00A0 movwf _temperature_msb 2056 2057 ;main.c: 160: temp_sign = '-'; 2058 02CF 302D movlw 45 2059 02D0 2AD2 goto L1 2060 02D1 l2000: 2061 ;main.c: 161: } else { 2062 2063 2064 ;main.c: 162: temp_sign = '+'; 2065 02D1 302B movlw 43 2066 02D2 L1: 2067 02D2 00F9 movwf ??_format_Temperature 2068 02D3 0879 movf ??_format_Temperature,w 2069 02D4 00EE movwf _temp_sign 2070 2071 ;main.c: 166: temperature_lsb >>= 6; 2072 02D5 3006 movlw 6 2073 02D6 u1475: 2074 02D6 1003 clrc 2075 02D7 0CA3 rrf _temperature_lsb+1,f 2076 02D8 0CA2 rrf _temperature_lsb,f 2077 02D9 3EFF addlw -1 2078 02DA 1D03 skipz 2079 02DB 2AD6 goto u1475 2080 2081 ;main.c: 169: temperature_lsb *= 25; 2082 02DC 3019 movlw 25 2083 02DD 00F0 movwf ___wmul@multiplier 2084 02DE 3000 movlw 0 2085 02DF 00F1 movwf ___wmul@multiplier+1 2086 02E0 0823 movf _temperature_lsb+1,w 2087 02E1 00F3 movwf ___wmul@multiplicand+1 2088 02E2 0822 movf _temperature_lsb,w 2089 02E3 00F2 movwf ___wmul@multiplicand 2090 02E4 120A 158A 2552 120A 118A fcall ___wmul 2091 02E9 0871 movf ?___wmul+1,w 2092 02EA 1283 bcf 3,5 ;RP0=0, select bank0 2093 02EB 1303 bcf 3,6 ;RP1=0, select bank0 2094 02EC 00A3 movwf _temperature_lsb+1 2095 02ED 0870 movf ?___wmul,w 2096 02EE 00A2 movwf _temperature_lsb 2097 2098 ;main.c: 171: if (temperature_lsb == 0) { 2099 02EF 0822 movf _temperature_lsb,w 2100 02F0 0423 iorwf _temperature_lsb+1,w 2101 02F1 1D03 btfss 3,2 2102 02F2 2AF7 goto l2010 2103 2104 ;main.c: 172: temp_0 = '0'; 2105 02F3 3030 movlw 48 2106 02F4 00F9 movwf ??_format_Temperature 2107 02F5 0879 movf ??_format_Temperature,w 2108 02F6 00C0 movwf _temp_0 2109 02F7 l2010: 2110 2111 ;main.c: 175: if (temperature_lsb == 25) { 2112 02F7 3019 movlw 25 2113 02F8 0622 xorwf _temperature_lsb,w 2114 02F9 0423 iorwf _temperature_lsb+1,w 2115 02FA 1D03 btfss 3,2 2116 02FB 2B00 goto l2014 2117 2118 ;main.c: 176: temp_0 = '2'; 2119 02FC 3032 movlw 50 2120 02FD 00F9 movwf ??_format_Temperature 2121 02FE 0879 movf ??_format_Temperature,w 2122 02FF 00C0 movwf _temp_0 2123 0300 l2014: 2124 2125 ;main.c: 179: if (temperature_lsb == 50) { 2126 0300 3032 movlw 50 2127 0301 0622 xorwf _temperature_lsb,w 2128 0302 0423 iorwf _temperature_lsb+1,w 2129 0303 1D03 btfss 3,2 2130 0304 2B09 goto l2018 2131 2132 ;main.c: 180: temp_0 = '5'; 2133 0305 3035 movlw 53 2134 0306 00F9 movwf ??_format_Temperature 2135 0307 0879 movf ??_format_Temperature,w 2136 0308 00C0 movwf _temp_0 2137 0309 l2018: 2138 2139 ;main.c: 183: if (temperature_lsb == 75) { 2140 0309 304B movlw 75 2141 030A 0622 xorwf _temperature_lsb,w 2142 030B 0423 iorwf _temperature_lsb+1,w 2143 030C 1D03 btfss 3,2 2144 030D 2B12 goto l2022 2145 2146 ;main.c: 184: temp_0 = '7'; 2147 030E 3037 movlw 55 2148 030F 00F9 movwf ??_format_Temperature 2149 0310 0879 movf ??_format_Temperature,w 2150 0311 00C0 movwf _temp_0 2151 0312 l2022: 2152 2153 ;main.c: 187: temp_1 = temperature_msb % 10 + '0'; 2154 0312 300A movlw 10 2155 0313 00F0 movwf ___awmod@divisor 2156 0314 3000 movlw 0 2157 0315 00F1 movwf ___awmod@divisor+1 2158 0316 0821 movf _temperature_msb+1,w 2159 0317 00F3 movwf ___awmod@dividend+1 2160 0318 0820 movf _temperature_msb,w 2161 0319 00F2 movwf ___awmod@dividend 2162 031A 120A 158A 27B5 120A 118A fcall ___awmod 2163 031F 0870 movf ?___awmod,w 2164 0320 3E30 addlw 48 2165 0321 00F9 movwf ??_format_Temperature 2166 0322 0879 movf ??_format_Temperature,w 2167 0323 1283 bcf 3,5 ;RP0=0, select bank0 2168 0324 1303 bcf 3,6 ;RP1=0, select bank0 2169 0325 00BF movwf _temp_1 2170 2171 ;main.c: 188: temp_2 = temperature_msb / 10 + '0'; 2172 0326 300A movlw 10 2173 0327 00F0 movwf ___awdiv@divisor 2174 0328 3000 movlw 0 2175 0329 00F1 movwf ___awdiv@divisor+1 2176 032A 0821 movf _temperature_msb+1,w 2177 032B 00F3 movwf ___awdiv@dividend+1 2178 032C 0820 movf _temperature_msb,w 2179 032D 00F2 movwf ___awdiv@dividend 2180 032E 120A 118A 2137 fcall ___awdiv 2181 0331 0870 movf ?___awdiv,w 2182 0332 3E30 addlw 48 2183 0333 00F9 movwf ??_format_Temperature 2184 0334 0879 movf ??_format_Temperature,w 2185 0335 1283 bcf 3,5 ;RP0=0, select bank0 2186 0336 1303 bcf 3,6 ;RP1=0, select bank0 2187 0337 00BE movwf _temp_2 2188 0338 0008 return 2189 0339 __end_of_format_Temperature: 2190 2191 psect text5 2192 0FB5 __ptext5: 2193 ;; *************** function ___awmod ***************** 2194 ;; Defined at: 2195 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c" 2196 ;; Parameters: Size Location Type 2197 ;; divisor 2 0[COMMON] int 2198 ;; dividend 2 2[COMMON] int 2199 ;; Auto vars: Size Location Type 2200 ;; sign 1 6[COMMON] unsigned char 2201 ;; counter 1 5[COMMON] unsigned char 2202 ;; Return value: Size Location Type 2203 ;; 2 0[COMMON] int 2204 ;; Registers used: 2205 ;; wreg, status,2, status,0 2206 ;; Tracked objects: 2207 ;; On entry : 0/0 2208 ;; On exit : 0/0 2209 ;; Unchanged: 0/0 2210 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2211 ;; Params: 4 0 0 0 0 2212 ;; Locals: 2 0 0 0 0 2213 ;; Temps: 1 0 0 0 0 2214 ;; Totals: 7 0 0 0 0 2215 ;;Total ram usage: 7 bytes 2216 ;; Hardware stack levels used: 1 2217 ;; This function calls: 2218 ;; Nothing 2219 ;; This function is called by: 2220 ;; _format_Temperature 2221 ;; _DEC_2_BCD 2222 ;; This function uses a non-reentrant model 2223 ;; 2224 2225 2226 ;psect for function ___awmod 2227 0FB5 ___awmod: 2228 2229 ;incstack = 0 2230 ; Regs used in ___awmod: [wreg+status,2+status,0] 2231 0FB5 01F6 clrf ___awmod@sign 2232 0FB6 1FF3 btfss ___awmod@dividend+1,7 2233 0FB7 2FBF goto l1866 2234 0FB8 09F2 comf ___awmod@dividend,f 2235 0FB9 09F3 comf ___awmod@dividend+1,f 2236 0FBA 0AF2 incf ___awmod@dividend,f 2237 0FBB 1903 skipnz 2238 0FBC 0AF3 incf ___awmod@dividend+1,f 2239 0FBD 01F6 clrf ___awmod@sign 2240 0FBE 0AF6 incf ___awmod@sign,f 2241 0FBF l1866: 2242 0FBF 1FF1 btfss ___awmod@divisor+1,7 2243 0FC0 2FC6 goto l1870 2244 0FC1 09F0 comf ___awmod@divisor,f 2245 0FC2 09F1 comf ___awmod@divisor+1,f 2246 0FC3 0AF0 incf ___awmod@divisor,f 2247 0FC4 1903 skipnz 2248 0FC5 0AF1 incf ___awmod@divisor+1,f 2249 0FC6 l1870: 2250 0FC6 0870 movf ___awmod@divisor,w 2251 0FC7 0471 iorwf ___awmod@divisor+1,w 2252 0FC8 1903 btfsc 3,2 2253 0FC9 2FF3 goto l1888 2254 0FCA 01F5 clrf ___awmod@counter 2255 0FCB 0AF5 incf ___awmod@counter,f 2256 0FCC l1878: 2257 0FCC 1BF1 btfsc ___awmod@divisor+1,7 2258 0FCD 2FDA goto l1880 2259 0FCE 3001 movlw 1 2260 0FCF u1265: 2261 0FCF 1003 clrc 2262 0FD0 0DF0 rlf ___awmod@divisor,f 2263 0FD1 0DF1 rlf ___awmod@divisor+1,f 2264 0FD2 3EFF addlw -1 2265 0FD3 1D03 skipz 2266 0FD4 2FCF goto u1265 2267 0FD5 3001 movlw 1 2268 0FD6 00F4 movwf ??___awmod 2269 0FD7 0874 movf ??___awmod,w 2270 0FD8 07F5 addwf ___awmod@counter,f 2271 0FD9 2FCC goto l1878 2272 0FDA l1880: 2273 0FDA 0871 movf ___awmod@divisor+1,w 2274 0FDB 0273 subwf ___awmod@dividend+1,w 2275 0FDC 1D03 skipz 2276 0FDD 2FE0 goto u1285 2277 0FDE 0870 movf ___awmod@divisor,w 2278 0FDF 0272 subwf ___awmod@dividend,w 2279 0FE0 u1285: 2280 0FE0 1C03 skipc 2281 0FE1 2FE8 goto l1884 2282 0FE2 0870 movf ___awmod@divisor,w 2283 0FE3 02F2 subwf ___awmod@dividend,f 2284 0FE4 0871 movf ___awmod@divisor+1,w 2285 0FE5 1C03 skipc 2286 0FE6 03F3 decf ___awmod@dividend+1,f 2287 0FE7 02F3 subwf ___awmod@dividend+1,f 2288 0FE8 l1884: 2289 0FE8 3001 movlw 1 2290 0FE9 u1295: 2291 0FE9 1003 clrc 2292 0FEA 0CF1 rrf ___awmod@divisor+1,f 2293 0FEB 0CF0 rrf ___awmod@divisor,f 2294 0FEC 3EFF addlw -1 2295 0FED 1D03 skipz 2296 0FEE 2FE9 goto u1295 2297 0FEF 3001 movlw 1 2298 0FF0 02F5 subwf ___awmod@counter,f 2299 0FF1 1D03 btfss 3,2 2300 0FF2 2FDA goto l1880 2301 0FF3 l1888: 2302 0FF3 0876 movf ___awmod@sign,w 2303 0FF4 1903 btfsc 3,2 2304 0FF5 2FFB goto l1892 2305 0FF6 09F2 comf ___awmod@dividend,f 2306 0FF7 09F3 comf ___awmod@dividend+1,f 2307 0FF8 0AF2 incf ___awmod@dividend,f 2308 0FF9 1903 skipnz 2309 0FFA 0AF3 incf ___awmod@dividend+1,f 2310 0FFB l1892: 2311 0FFB 0873 movf ___awmod@dividend+1,w 2312 0FFC 00F1 movwf ?___awmod+1 2313 0FFD 0872 movf ___awmod@dividend,w 2314 0FFE 00F0 movwf ?___awmod 2315 0FFF 0008 return 2316 1000 __end_of___awmod: 2317 2318 psect text6 2319 0137 __ptext6: 2320 ;; *************** function ___awdiv ***************** 2321 ;; Defined at: 2322 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c" 2323 ;; Parameters: Size Location Type 2324 ;; divisor 2 0[COMMON] int 2325 ;; dividend 2 2[COMMON] int 2326 ;; Auto vars: Size Location Type 2327 ;; quotient 2 7[COMMON] int 2328 ;; sign 1 6[COMMON] unsigned char 2329 ;; counter 1 5[COMMON] unsigned char 2330 ;; Return value: Size Location Type 2331 ;; 2 0[COMMON] int 2332 ;; Registers used: 2333 ;; wreg, status,2, status,0 2334 ;; Tracked objects: 2335 ;; On entry : 0/0 2336 ;; On exit : 0/0 2337 ;; Unchanged: 0/0 2338 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2339 ;; Params: 4 0 0 0 0 2340 ;; Locals: 4 0 0 0 0 2341 ;; Temps: 1 0 0 0 0 2342 ;; Totals: 9 0 0 0 0 2343 ;;Total ram usage: 9 bytes 2344 ;; Hardware stack levels used: 1 2345 ;; This function calls: 2346 ;; Nothing 2347 ;; This function is called by: 2348 ;; _format_Temperature 2349 ;; _DEC_2_BCD 2350 ;; This function uses a non-reentrant model 2351 ;; 2352 2353 2354 ;psect for function ___awdiv 2355 0137 ___awdiv: 2356 2357 ;incstack = 0 2358 ; Regs used in ___awdiv: [wreg+status,2+status,0] 2359 0137 01F6 clrf ___awdiv@sign 2360 0138 1FF1 btfss ___awdiv@divisor+1,7 2361 0139 2941 goto l1822 2362 013A 09F0 comf ___awdiv@divisor,f 2363 013B 09F1 comf ___awdiv@divisor+1,f 2364 013C 0AF0 incf ___awdiv@divisor,f 2365 013D 1903 skipnz 2366 013E 0AF1 incf ___awdiv@divisor+1,f 2367 013F 01F6 clrf ___awdiv@sign 2368 0140 0AF6 incf ___awdiv@sign,f 2369 0141 l1822: 2370 0141 1FF3 btfss ___awdiv@dividend+1,7 2371 0142 294C goto l1828 2372 0143 09F2 comf ___awdiv@dividend,f 2373 0144 09F3 comf ___awdiv@dividend+1,f 2374 0145 0AF2 incf ___awdiv@dividend,f 2375 0146 1903 skipnz 2376 0147 0AF3 incf ___awdiv@dividend+1,f 2377 0148 3001 movlw 1 2378 0149 00F4 movwf ??___awdiv 2379 014A 0874 movf ??___awdiv,w 2380 014B 06F6 xorwf ___awdiv@sign,f 2381 014C l1828: 2382 014C 01F7 clrf ___awdiv@quotient 2383 014D 01F8 clrf ___awdiv@quotient+1 2384 014E 0870 movf ___awdiv@divisor,w 2385 014F 0471 iorwf ___awdiv@divisor+1,w 2386 0150 1903 btfsc 3,2 2387 0151 2983 goto l1850 2388 0152 01F5 clrf ___awdiv@counter 2389 0153 0AF5 incf ___awdiv@counter,f 2390 0154 l1838: 2391 0154 1BF1 btfsc ___awdiv@divisor+1,7 2392 0155 2962 goto l1840 2393 0156 3001 movlw 1 2394 0157 u1165: 2395 0157 1003 clrc 2396 0158 0DF0 rlf ___awdiv@divisor,f 2397 0159 0DF1 rlf ___awdiv@divisor+1,f 2398 015A 3EFF addlw -1 2399 015B 1D03 skipz 2400 015C 2957 goto u1165 2401 015D 3001 movlw 1 2402 015E 00F4 movwf ??___awdiv 2403 015F 0874 movf ??___awdiv,w 2404 0160 07F5 addwf ___awdiv@counter,f 2405 0161 2954 goto l1838 2406 0162 l1840: 2407 0162 3001 movlw 1 2408 0163 u1185: 2409 0163 1003 clrc 2410 0164 0DF7 rlf ___awdiv@quotient,f 2411 0165 0DF8 rlf ___awdiv@quotient+1,f 2412 0166 3EFF addlw -1 2413 0167 1D03 skipz 2414 0168 2963 goto u1185 2415 0169 0871 movf ___awdiv@divisor+1,w 2416 016A 0273 subwf ___awdiv@dividend+1,w 2417 016B 1D03 skipz 2418 016C 296F goto u1195 2419 016D 0870 movf ___awdiv@divisor,w 2420 016E 0272 subwf ___awdiv@dividend,w 2421 016F u1195: 2422 016F 1C03 skipc 2423 0170 2978 goto l1846 2424 0171 0870 movf ___awdiv@divisor,w 2425 0172 02F2 subwf ___awdiv@dividend,f 2426 0173 0871 movf ___awdiv@divisor+1,w 2427 0174 1C03 skipc 2428 0175 03F3 decf ___awdiv@dividend+1,f 2429 0176 02F3 subwf ___awdiv@dividend+1,f 2430 0177 1477 bsf ___awdiv@quotient,0 2431 0178 l1846: 2432 0178 3001 movlw 1 2433 0179 u1205: 2434 0179 1003 clrc 2435 017A 0CF1 rrf ___awdiv@divisor+1,f 2436 017B 0CF0 rrf ___awdiv@divisor,f 2437 017C 3EFF addlw -1 2438 017D 1D03 skipz 2439 017E 2979 goto u1205 2440 017F 3001 movlw 1 2441 0180 02F5 subwf ___awdiv@counter,f 2442 0181 1D03 btfss 3,2 2443 0182 2962 goto l1840 2444 0183 l1850: 2445 0183 0876 movf ___awdiv@sign,w 2446 0184 1903 btfsc 3,2 2447 0185 298B goto l1854 2448 0186 09F7 comf ___awdiv@quotient,f 2449 0187 09F8 comf ___awdiv@quotient+1,f 2450 0188 0AF7 incf ___awdiv@quotient,f 2451 0189 1903 skipnz 2452 018A 0AF8 incf ___awdiv@quotient+1,f 2453 018B l1854: 2454 018B 0878 movf ___awdiv@quotient+1,w 2455 018C 00F1 movwf ?___awdiv+1 2456 018D 0877 movf ___awdiv@quotient,w 2457 018E 00F0 movwf ?___awdiv 2458 018F 0008 return 2459 0190 __end_of___awdiv: 2460 2461 psect text7 2462 061A __ptext7: 2463 ;; *************** function _format_DateTimeChars ***************** 2464 ;; Defined at: 2465 ;; line 129 in file "main.c" 2466 ;; Parameters: Size Location Type 2467 ;; None 2468 ;; Auto vars: Size Location Type 2469 ;; None 2470 ;; Return value: Size Location Type 2471 ;; 1 wreg void 2472 ;; Registers used: 2473 ;; wreg, status,2, status,0, pclath, cstack 2474 ;; Tracked objects: 2475 ;; On entry : 0/0 2476 ;; On exit : 0/0 2477 ;; Unchanged: 0/0 2478 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2479 ;; Params: 0 0 0 0 0 2480 ;; Locals: 0 0 0 0 0 2481 ;; Temps: 1 0 0 0 0 2482 ;; Totals: 1 0 0 0 0 2483 ;;Total ram usage: 1 bytes 2484 ;; Hardware stack levels used: 1 2485 ;; Hardware stack levels required when called: 1 2486 ;; This function calls: 2487 ;; ___lwdiv 2488 ;; ___lwmod 2489 ;; This function is called by: 2490 ;; _main 2491 ;; This function uses a non-reentrant model 2492 ;; 2493 2494 2495 ;psect for function _format_DateTimeChars 2496 061A _format_DateTimeChars: 2497 2498 ;main.c: 130: sec_0 = sec % 10 + '0'; 2499 2500 ;incstack = 0 2501 ; Regs used in _format_DateTimeChars: [wreg+status,2+status,0+pclath+cstack] 2502 061A 300A movlw 10 2503 061B 00F0 movwf ___lwmod@divisor 2504 061C 3000 movlw 0 2505 061D 00F1 movwf ___lwmod@divisor+1 2506 061E 1283 bcf 3,5 ;RP0=0, select bank0 2507 061F 1303 bcf 3,6 ;RP1=0, select bank0 2508 0620 086D movf _sec+1,w 2509 0621 00F3 movwf ___lwmod@dividend+1 2510 0622 086C movf _sec,w 2511 0623 00F2 movwf ___lwmod@dividend 2512 0624 120A 158A 25CC 120A 118A fcall ___lwmod 2513 0629 0870 movf ?___lwmod,w 2514 062A 3E30 addlw 48 2515 062B 00F8 movwf ??_format_DateTimeChars 2516 062C 0878 movf ??_format_DateTimeChars,w 2517 062D 1283 bcf 3,5 ;RP0=0, select bank0 2518 062E 1303 bcf 3,6 ;RP1=0, select bank0 2519 062F 00CC movwf _sec_0 2520 2521 ;main.c: 131: sec_1 = sec / 10 + '0'; 2522 0630 300A movlw 10 2523 0631 00F0 movwf ___lwdiv@divisor 2524 0632 3000 movlw 0 2525 0633 00F1 movwf ___lwdiv@divisor+1 2526 0634 086D movf _sec+1,w 2527 0635 00F3 movwf ___lwdiv@dividend+1 2528 0636 086C movf _sec,w 2529 0637 00F2 movwf ___lwdiv@dividend 2530 0638 120A 158A 266C 120A 118A fcall ___lwdiv 2531 063D 0870 movf ?___lwdiv,w 2532 063E 3E30 addlw 48 2533 063F 00F8 movwf ??_format_DateTimeChars 2534 0640 0878 movf ??_format_DateTimeChars,w 2535 0641 1283 bcf 3,5 ;RP0=0, select bank0 2536 0642 1303 bcf 3,6 ;RP1=0, select bank0 2537 0643 00CB movwf _sec_1 2538 2539 ;main.c: 132: min_0 = min % 10 + '0'; 2540 0644 300A movlw 10 2541 0645 00F0 movwf ___lwmod@divisor 2542 0646 3000 movlw 0 2543 0647 00F1 movwf ___lwmod@divisor+1 2544 0648 086B movf _min+1,w 2545 0649 00F3 movwf ___lwmod@dividend+1 2546 064A 086A movf _min,w 2547 064B 00F2 movwf ___lwmod@dividend 2548 064C 120A 158A 25CC 120A 118A fcall ___lwmod 2549 0651 0870 movf ?___lwmod,w 2550 0652 3E30 addlw 48 2551 0653 00F8 movwf ??_format_DateTimeChars 2552 0654 0878 movf ??_format_DateTimeChars,w 2553 0655 1283 bcf 3,5 ;RP0=0, select bank0 2554 0656 1303 bcf 3,6 ;RP1=0, select bank0 2555 0657 00CA movwf _min_0 2556 2557 ;main.c: 133: min_1 = min / 10 + '0'; 2558 0658 300A movlw 10 2559 0659 00F0 movwf ___lwdiv@divisor 2560 065A 3000 movlw 0 2561 065B 00F1 movwf ___lwdiv@divisor+1 2562 065C 086B movf _min+1,w 2563 065D 00F3 movwf ___lwdiv@dividend+1 2564 065E 086A movf _min,w 2565 065F 00F2 movwf ___lwdiv@dividend 2566 0660 120A 158A 266C 120A 118A fcall ___lwdiv 2567 0665 0870 movf ?___lwdiv,w 2568 0666 3E30 addlw 48 2569 0667 00F8 movwf ??_format_DateTimeChars 2570 0668 0878 movf ??_format_DateTimeChars,w 2571 0669 1283 bcf 3,5 ;RP0=0, select bank0 2572 066A 1303 bcf 3,6 ;RP1=0, select bank0 2573 066B 00C9 movwf _min_1 2574 2575 ;main.c: 134: hour_0 = hour % 10 + '0'; 2576 066C 300A movlw 10 2577 066D 00F0 movwf ___lwmod@divisor 2578 066E 3000 movlw 0 2579 066F 00F1 movwf ___lwmod@divisor+1 2580 0670 0869 movf _hour+1,w 2581 0671 00F3 movwf ___lwmod@dividend+1 2582 0672 0868 movf _hour,w 2583 0673 00F2 movwf ___lwmod@dividend 2584 0674 120A 158A 25CC 120A 118A fcall ___lwmod 2585 0679 0870 movf ?___lwmod,w 2586 067A 3E30 addlw 48 2587 067B 00F8 movwf ??_format_DateTimeChars 2588 067C 0878 movf ??_format_DateTimeChars,w 2589 067D 1283 bcf 3,5 ;RP0=0, select bank0 2590 067E 1303 bcf 3,6 ;RP1=0, select bank0 2591 067F 00C8 movwf _hour_0 2592 2593 ;main.c: 135: hour_1 = hour / 10 + '0'; 2594 0680 300A movlw 10 2595 0681 00F0 movwf ___lwdiv@divisor 2596 0682 3000 movlw 0 2597 0683 00F1 movwf ___lwdiv@divisor+1 2598 0684 0869 movf _hour+1,w 2599 0685 00F3 movwf ___lwdiv@dividend+1 2600 0686 0868 movf _hour,w 2601 0687 00F2 movwf ___lwdiv@dividend 2602 0688 120A 158A 266C 120A 118A fcall ___lwdiv 2603 068D 0870 movf ?___lwdiv,w 2604 068E 3E30 addlw 48 2605 068F 00F8 movwf ??_format_DateTimeChars 2606 0690 0878 movf ??_format_DateTimeChars,w 2607 0691 1283 bcf 3,5 ;RP0=0, select bank0 2608 0692 1303 bcf 3,6 ;RP1=0, select bank0 2609 0693 00C7 movwf _hour_1 2610 2611 ;main.c: 136: day_0 = date % 10 + '0'; 2612 0694 300A movlw 10 2613 0695 00F0 movwf ___lwmod@divisor 2614 0696 3000 movlw 0 2615 0697 00F1 movwf ___lwmod@divisor+1 2616 0698 0867 movf _date+1,w 2617 0699 00F3 movwf ___lwmod@dividend+1 2618 069A 0866 movf _date,w 2619 069B 00F2 movwf ___lwmod@dividend 2620 069C 120A 158A 25CC 120A 118A fcall ___lwmod 2621 06A1 0870 movf ?___lwmod,w 2622 06A2 3E30 addlw 48 2623 06A3 00F8 movwf ??_format_DateTimeChars 2624 06A4 0878 movf ??_format_DateTimeChars,w 2625 06A5 1283 bcf 3,5 ;RP0=0, select bank0 2626 06A6 1303 bcf 3,6 ;RP1=0, select bank0 2627 06A7 00C6 movwf _day_0 2628 2629 ;main.c: 137: day_1 = date / 10 + '0'; 2630 06A8 300A movlw 10 2631 06A9 00F0 movwf ___lwdiv@divisor 2632 06AA 3000 movlw 0 2633 06AB 00F1 movwf ___lwdiv@divisor+1 2634 06AC 0867 movf _date+1,w 2635 06AD 00F3 movwf ___lwdiv@dividend+1 2636 06AE 0866 movf _date,w 2637 06AF 00F2 movwf ___lwdiv@dividend 2638 06B0 120A 158A 266C 120A 118A fcall ___lwdiv 2639 06B5 0870 movf ?___lwdiv,w 2640 06B6 3E30 addlw 48 2641 06B7 00F8 movwf ??_format_DateTimeChars 2642 06B8 0878 movf ??_format_DateTimeChars,w 2643 06B9 1283 bcf 3,5 ;RP0=0, select bank0 2644 06BA 1303 bcf 3,6 ;RP1=0, select bank0 2645 06BB 00C5 movwf _day_1 2646 2647 ;main.c: 138: month_0 = month % 10 + '0'; 2648 06BC 300A movlw 10 2649 06BD 00F0 movwf ___lwmod@divisor 2650 06BE 3000 movlw 0 2651 06BF 00F1 movwf ___lwmod@divisor+1 2652 06C0 0865 movf _month+1,w 2653 06C1 00F3 movwf ___lwmod@dividend+1 2654 06C2 0864 movf _month,w 2655 06C3 00F2 movwf ___lwmod@dividend 2656 06C4 120A 158A 25CC 120A 118A fcall ___lwmod 2657 06C9 0870 movf ?___lwmod,w 2658 06CA 3E30 addlw 48 2659 06CB 00F8 movwf ??_format_DateTimeChars 2660 06CC 0878 movf ??_format_DateTimeChars,w 2661 06CD 1283 bcf 3,5 ;RP0=0, select bank0 2662 06CE 1303 bcf 3,6 ;RP1=0, select bank0 2663 06CF 00C4 movwf _month_0 2664 2665 ;main.c: 139: month_1 = month / 10 + '0'; 2666 06D0 300A movlw 10 2667 06D1 00F0 movwf ___lwdiv@divisor 2668 06D2 3000 movlw 0 2669 06D3 00F1 movwf ___lwdiv@divisor+1 2670 06D4 0865 movf _month+1,w 2671 06D5 00F3 movwf ___lwdiv@dividend+1 2672 06D6 0864 movf _month,w 2673 06D7 00F2 movwf ___lwdiv@dividend 2674 06D8 120A 158A 266C 120A 118A fcall ___lwdiv 2675 06DD 0870 movf ?___lwdiv,w 2676 06DE 3E30 addlw 48 2677 06DF 00F8 movwf ??_format_DateTimeChars 2678 06E0 0878 movf ??_format_DateTimeChars,w 2679 06E1 1283 bcf 3,5 ;RP0=0, select bank0 2680 06E2 1303 bcf 3,6 ;RP1=0, select bank0 2681 06E3 00C3 movwf _month_1 2682 2683 ;main.c: 140: year_0 = year % 10 + '0'; 2684 06E4 300A movlw 10 2685 06E5 00F0 movwf ___lwmod@divisor 2686 06E6 3000 movlw 0 2687 06E7 00F1 movwf ___lwmod@divisor+1 2688 06E8 0863 movf _year+1,w 2689 06E9 00F3 movwf ___lwmod@dividend+1 2690 06EA 0862 movf _year,w 2691 06EB 00F2 movwf ___lwmod@dividend 2692 06EC 120A 158A 25CC 120A 118A fcall ___lwmod 2693 06F1 0870 movf ?___lwmod,w 2694 06F2 3E30 addlw 48 2695 06F3 00F8 movwf ??_format_DateTimeChars 2696 06F4 0878 movf ??_format_DateTimeChars,w 2697 06F5 1283 bcf 3,5 ;RP0=0, select bank0 2698 06F6 1303 bcf 3,6 ;RP1=0, select bank0 2699 06F7 00C2 movwf _year_0 2700 2701 ;main.c: 141: year_1 = year / 10 + '0'; 2702 06F8 300A movlw 10 2703 06F9 00F0 movwf ___lwdiv@divisor 2704 06FA 3000 movlw 0 2705 06FB 00F1 movwf ___lwdiv@divisor+1 2706 06FC 0863 movf _year+1,w 2707 06FD 00F3 movwf ___lwdiv@dividend+1 2708 06FE 0862 movf _year,w 2709 06FF 00F2 movwf ___lwdiv@dividend 2710 0700 120A 158A 266C 120A 118A fcall ___lwdiv 2711 0705 0870 movf ?___lwdiv,w 2712 0706 3E30 addlw 48 2713 0707 00F8 movwf ??_format_DateTimeChars 2714 0708 0878 movf ??_format_DateTimeChars,w 2715 0709 1283 bcf 3,5 ;RP0=0, select bank0 2716 070A 1303 bcf 3,6 ;RP1=0, select bank0 2717 070B 00C1 movwf _year_1 2718 2719 ;main.c: 142: alarm1_sec_0 = alarm1_sec % 10 + '0'; 2720 070C 300A movlw 10 2721 070D 00F0 movwf ___lwmod@divisor 2722 070E 3000 movlw 0 2723 070F 00F1 movwf ___lwmod@divisor+1 2724 0710 0833 movf _alarm1_sec+1,w 2725 0711 00F3 movwf ___lwmod@dividend+1 2726 0712 0832 movf _alarm1_sec,w 2727 0713 00F2 movwf ___lwmod@dividend 2728 0714 120A 158A 25CC 120A 118A fcall ___lwmod 2729 0719 0870 movf ?___lwmod,w 2730 071A 3E30 addlw 48 2731 071B 00F8 movwf ??_format_DateTimeChars 2732 071C 0878 movf ??_format_DateTimeChars,w 2733 071D 1283 bcf 3,5 ;RP0=0, select bank0 2734 071E 1303 bcf 3,6 ;RP1=0, select bank0 2735 071F 00BD movwf _alarm1_sec_0 2736 2737 ;main.c: 143: alarm1_sec_1 = alarm1_sec / 10 + '0'; 2738 0720 300A movlw 10 2739 0721 00F0 movwf ___lwdiv@divisor 2740 0722 3000 movlw 0 2741 0723 00F1 movwf ___lwdiv@divisor+1 2742 0724 0833 movf _alarm1_sec+1,w 2743 0725 00F3 movwf ___lwdiv@dividend+1 2744 0726 0832 movf _alarm1_sec,w 2745 0727 00F2 movwf ___lwdiv@dividend 2746 0728 120A 158A 266C 120A 118A fcall ___lwdiv 2747 072D 0870 movf ?___lwdiv,w 2748 072E 3E30 addlw 48 2749 072F 00F8 movwf ??_format_DateTimeChars 2750 0730 0878 movf ??_format_DateTimeChars,w 2751 0731 1283 bcf 3,5 ;RP0=0, select bank0 2752 0732 1303 bcf 3,6 ;RP1=0, select bank0 2753 0733 00BC movwf _alarm1_sec_1 2754 2755 ;main.c: 144: alarm1_min_0 = alarm1_min % 10 + '0'; 2756 0734 300A movlw 10 2757 0735 00F0 movwf ___lwmod@divisor 2758 0736 3000 movlw 0 2759 0737 00F1 movwf ___lwmod@divisor+1 2760 0738 0831 movf _alarm1_min+1,w 2761 0739 00F3 movwf ___lwmod@dividend+1 2762 073A 0830 movf _alarm1_min,w 2763 073B 00F2 movwf ___lwmod@dividend 2764 073C 120A 158A 25CC 120A 118A fcall ___lwmod 2765 0741 0870 movf ?___lwmod,w 2766 0742 3E30 addlw 48 2767 0743 00F8 movwf ??_format_DateTimeChars 2768 0744 0878 movf ??_format_DateTimeChars,w 2769 0745 1283 bcf 3,5 ;RP0=0, select bank0 2770 0746 1303 bcf 3,6 ;RP1=0, select bank0 2771 0747 00BB movwf _alarm1_min_0 2772 2773 ;main.c: 145: alarm1_min_1 = alarm1_min / 10 + '0'; 2774 0748 300A movlw 10 2775 0749 00F0 movwf ___lwdiv@divisor 2776 074A 3000 movlw 0 2777 074B 00F1 movwf ___lwdiv@divisor+1 2778 074C 0831 movf _alarm1_min+1,w 2779 074D 00F3 movwf ___lwdiv@dividend+1 2780 074E 0830 movf _alarm1_min,w 2781 074F 00F2 movwf ___lwdiv@dividend 2782 0750 120A 158A 266C 120A 118A fcall ___lwdiv 2783 0755 0870 movf ?___lwdiv,w 2784 0756 3E30 addlw 48 2785 0757 00F8 movwf ??_format_DateTimeChars 2786 0758 0878 movf ??_format_DateTimeChars,w 2787 0759 1283 bcf 3,5 ;RP0=0, select bank0 2788 075A 1303 bcf 3,6 ;RP1=0, select bank0 2789 075B 00BA movwf _alarm1_min_1 2790 2791 ;main.c: 146: alarm1_hour_0 = alarm1_hour % 10 + '0'; 2792 075C 300A movlw 10 2793 075D 00F0 movwf ___lwmod@divisor 2794 075E 3000 movlw 0 2795 075F 00F1 movwf ___lwmod@divisor+1 2796 0760 082F movf _alarm1_hour+1,w 2797 0761 00F3 movwf ___lwmod@dividend+1 2798 0762 082E movf _alarm1_hour,w 2799 0763 00F2 movwf ___lwmod@dividend 2800 0764 120A 158A 25CC 120A 118A fcall ___lwmod 2801 0769 0870 movf ?___lwmod,w 2802 076A 3E30 addlw 48 2803 076B 00F8 movwf ??_format_DateTimeChars 2804 076C 0878 movf ??_format_DateTimeChars,w 2805 076D 1283 bcf 3,5 ;RP0=0, select bank0 2806 076E 1303 bcf 3,6 ;RP1=0, select bank0 2807 076F 00B9 movwf _alarm1_hour_0 2808 2809 ;main.c: 147: alarm1_hour_1 = alarm1_hour / 10 + '0'; 2810 0770 300A movlw 10 2811 0771 00F0 movwf ___lwdiv@divisor 2812 0772 3000 movlw 0 2813 0773 00F1 movwf ___lwdiv@divisor+1 2814 0774 082F movf _alarm1_hour+1,w 2815 0775 00F3 movwf ___lwdiv@dividend+1 2816 0776 082E movf _alarm1_hour,w 2817 0777 00F2 movwf ___lwdiv@dividend 2818 0778 120A 158A 266C 120A 118A fcall ___lwdiv 2819 077D 0870 movf ?___lwdiv,w 2820 077E 3E30 addlw 48 2821 077F 00F8 movwf ??_format_DateTimeChars 2822 0780 0878 movf ??_format_DateTimeChars,w 2823 0781 1283 bcf 3,5 ;RP0=0, select bank0 2824 0782 1303 bcf 3,6 ;RP1=0, select bank0 2825 0783 00B8 movwf _alarm1_hour_1 2826 2827 ;main.c: 148: alarm2_min_0 = alarm2_min % 10 + '0'; 2828 0784 300A movlw 10 2829 0785 00F0 movwf ___lwmod@divisor 2830 0786 3000 movlw 0 2831 0787 00F1 movwf ___lwmod@divisor+1 2832 0788 082D movf _alarm2_min+1,w 2833 0789 00F3 movwf ___lwmod@dividend+1 2834 078A 082C movf _alarm2_min,w 2835 078B 00F2 movwf ___lwmod@dividend 2836 078C 120A 158A 25CC 120A 118A fcall ___lwmod 2837 0791 0870 movf ?___lwmod,w 2838 0792 3E30 addlw 48 2839 0793 00F8 movwf ??_format_DateTimeChars 2840 0794 0878 movf ??_format_DateTimeChars,w 2841 0795 1283 bcf 3,5 ;RP0=0, select bank0 2842 0796 1303 bcf 3,6 ;RP1=0, select bank0 2843 0797 00B7 movwf _alarm2_min_0 2844 2845 ;main.c: 149: alarm2_min_1 = alarm2_min / 10 + '0'; 2846 0798 300A movlw 10 2847 0799 00F0 movwf ___lwdiv@divisor 2848 079A 3000 movlw 0 2849 079B 00F1 movwf ___lwdiv@divisor+1 2850 079C 082D movf _alarm2_min+1,w 2851 079D 00F3 movwf ___lwdiv@dividend+1 2852 079E 082C movf _alarm2_min,w 2853 079F 00F2 movwf ___lwdiv@dividend 2854 07A0 120A 158A 266C 120A 118A fcall ___lwdiv 2855 07A5 0870 movf ?___lwdiv,w 2856 07A6 3E30 addlw 48 2857 07A7 00F8 movwf ??_format_DateTimeChars 2858 07A8 0878 movf ??_format_DateTimeChars,w 2859 07A9 1283 bcf 3,5 ;RP0=0, select bank0 2860 07AA 1303 bcf 3,6 ;RP1=0, select bank0 2861 07AB 00B6 movwf _alarm2_min_1 2862 2863 ;main.c: 150: alarm2_hour_0 = alarm2_hour % 10 + '0'; 2864 07AC 300A movlw 10 2865 07AD 00F0 movwf ___lwmod@divisor 2866 07AE 3000 movlw 0 2867 07AF 00F1 movwf ___lwmod@divisor+1 2868 07B0 082B movf _alarm2_hour+1,w 2869 07B1 00F3 movwf ___lwmod@dividend+1 2870 07B2 082A movf _alarm2_hour,w 2871 07B3 00F2 movwf ___lwmod@dividend 2872 07B4 120A 158A 25CC 120A 118A fcall ___lwmod 2873 07B9 0870 movf ?___lwmod,w 2874 07BA 3E30 addlw 48 2875 07BB 00F8 movwf ??_format_DateTimeChars 2876 07BC 0878 movf ??_format_DateTimeChars,w 2877 07BD 1283 bcf 3,5 ;RP0=0, select bank0 2878 07BE 1303 bcf 3,6 ;RP1=0, select bank0 2879 07BF 00B5 movwf _alarm2_hour_0 2880 2881 ;main.c: 151: alarm2_hour_1 = alarm2_hour / 10 + '0'; 2882 07C0 300A movlw 10 2883 07C1 00F0 movwf ___lwdiv@divisor 2884 07C2 3000 movlw 0 2885 07C3 00F1 movwf ___lwdiv@divisor+1 2886 07C4 082B movf _alarm2_hour+1,w 2887 07C5 00F3 movwf ___lwdiv@dividend+1 2888 07C6 082A movf _alarm2_hour,w 2889 07C7 00F2 movwf ___lwdiv@dividend 2890 07C8 120A 158A 266C fcall ___lwdiv 2891 07CB 0870 movf ?___lwdiv,w 2892 07CC 3E30 addlw 48 2893 07CD 00F8 movwf ??_format_DateTimeChars 2894 07CE 0878 movf ??_format_DateTimeChars,w 2895 07CF 1283 bcf 3,5 ;RP0=0, select bank0 2896 07D0 1303 bcf 3,6 ;RP1=0, select bank0 2897 07D1 00B4 movwf _alarm2_hour_1 2898 07D2 0008 return 2899 07D3 __end_of_format_DateTimeChars: 2900 2901 psect text8 2902 0DCC __ptext8: 2903 ;; *************** function ___lwmod ***************** 2904 ;; Defined at: 2905 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c" 2906 ;; Parameters: Size Location Type 2907 ;; divisor 2 0[COMMON] unsigned int 2908 ;; dividend 2 2[COMMON] unsigned int 2909 ;; Auto vars: Size Location Type 2910 ;; counter 1 5[COMMON] unsigned char 2911 ;; Return value: Size Location Type 2912 ;; 2 0[COMMON] unsigned int 2913 ;; Registers used: 2914 ;; wreg, status,2, status,0 2915 ;; Tracked objects: 2916 ;; On entry : 0/0 2917 ;; On exit : 0/0 2918 ;; Unchanged: 0/0 2919 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 2920 ;; Params: 4 0 0 0 0 2921 ;; Locals: 1 0 0 0 0 2922 ;; Temps: 1 0 0 0 0 2923 ;; Totals: 6 0 0 0 0 2924 ;;Total ram usage: 6 bytes 2925 ;; Hardware stack levels used: 1 2926 ;; This function calls: 2927 ;; Nothing 2928 ;; This function is called by: 2929 ;; _format_DateTimeChars 2930 ;; This function uses a non-reentrant model 2931 ;; 2932 2933 2934 ;psect for function ___lwmod 2935 0DCC ___lwmod: 2936 2937 ;incstack = 0 2938 ; Regs used in ___lwmod: [wreg+status,2+status,0] 2939 0DCC 0870 movf ___lwmod@divisor,w 2940 0DCD 0471 iorwf ___lwmod@divisor+1,w 2941 0DCE 1903 btfsc 3,2 2942 0DCF 2DF9 goto l1940 2943 0DD0 01F5 clrf ___lwmod@counter 2944 0DD1 0AF5 incf ___lwmod@counter,f 2945 0DD2 l1930: 2946 0DD2 1BF1 btfsc ___lwmod@divisor+1,7 2947 0DD3 2DE0 goto l1932 2948 0DD4 3001 movlw 1 2949 0DD5 u1405: 2950 0DD5 1003 clrc 2951 0DD6 0DF0 rlf ___lwmod@divisor,f 2952 0DD7 0DF1 rlf ___lwmod@divisor+1,f 2953 0DD8 3EFF addlw -1 2954 0DD9 1D03 skipz 2955 0DDA 2DD5 goto u1405 2956 0DDB 3001 movlw 1 2957 0DDC 00F4 movwf ??___lwmod 2958 0DDD 0874 movf ??___lwmod,w 2959 0DDE 07F5 addwf ___lwmod@counter,f 2960 0DDF 2DD2 goto l1930 2961 0DE0 l1932: 2962 0DE0 0871 movf ___lwmod@divisor+1,w 2963 0DE1 0273 subwf ___lwmod@dividend+1,w 2964 0DE2 1D03 skipz 2965 0DE3 2DE6 goto u1425 2966 0DE4 0870 movf ___lwmod@divisor,w 2967 0DE5 0272 subwf ___lwmod@dividend,w 2968 0DE6 u1425: 2969 0DE6 1C03 skipc 2970 0DE7 2DEE goto l1936 2971 0DE8 0870 movf ___lwmod@divisor,w 2972 0DE9 02F2 subwf ___lwmod@dividend,f 2973 0DEA 0871 movf ___lwmod@divisor+1,w 2974 0DEB 1C03 skipc 2975 0DEC 03F3 decf ___lwmod@dividend+1,f 2976 0DED 02F3 subwf ___lwmod@dividend+1,f 2977 0DEE l1936: 2978 0DEE 3001 movlw 1 2979 0DEF u1435: 2980 0DEF 1003 clrc 2981 0DF0 0CF1 rrf ___lwmod@divisor+1,f 2982 0DF1 0CF0 rrf ___lwmod@divisor,f 2983 0DF2 3EFF addlw -1 2984 0DF3 1D03 skipz 2985 0DF4 2DEF goto u1435 2986 0DF5 3001 movlw 1 2987 0DF6 02F5 subwf ___lwmod@counter,f 2988 0DF7 1D03 btfss 3,2 2989 0DF8 2DE0 goto l1932 2990 0DF9 l1940: 2991 0DF9 0873 movf ___lwmod@dividend+1,w 2992 0DFA 00F1 movwf ?___lwmod+1 2993 0DFB 0872 movf ___lwmod@dividend,w 2994 0DFC 00F0 movwf ?___lwmod 2995 0DFD 0008 return 2996 0DFE __end_of___lwmod: 2997 2998 psect text9 2999 0E6C __ptext9: 3000 ;; *************** function ___lwdiv ***************** 3001 ;; Defined at: 3002 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c" 3003 ;; Parameters: Size Location Type 3004 ;; divisor 2 0[COMMON] unsigned int 3005 ;; dividend 2 2[COMMON] unsigned int 3006 ;; Auto vars: Size Location Type 3007 ;; quotient 2 5[COMMON] unsigned int 3008 ;; counter 1 7[COMMON] unsigned char 3009 ;; Return value: Size Location Type 3010 ;; 2 0[COMMON] unsigned int 3011 ;; Registers used: 3012 ;; wreg, status,2, status,0 3013 ;; Tracked objects: 3014 ;; On entry : 0/0 3015 ;; On exit : 0/0 3016 ;; Unchanged: 0/0 3017 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3018 ;; Params: 4 0 0 0 0 3019 ;; Locals: 3 0 0 0 0 3020 ;; Temps: 1 0 0 0 0 3021 ;; Totals: 8 0 0 0 0 3022 ;;Total ram usage: 8 bytes 3023 ;; Hardware stack levels used: 1 3024 ;; This function calls: 3025 ;; Nothing 3026 ;; This function is called by: 3027 ;; _format_DateTimeChars 3028 ;; This function uses a non-reentrant model 3029 ;; 3030 3031 3032 ;psect for function ___lwdiv 3033 0E6C ___lwdiv: 3034 3035 ;incstack = 0 3036 ; Regs used in ___lwdiv: [wreg+status,2+status,0] 3037 0E6C 01F5 clrf ___lwdiv@quotient 3038 0E6D 01F6 clrf ___lwdiv@quotient+1 3039 0E6E 0870 movf ___lwdiv@divisor,w 3040 0E6F 0471 iorwf ___lwdiv@divisor+1,w 3041 0E70 1903 btfsc 3,2 3042 0E71 2EA3 goto l1918 3043 0E72 01F7 clrf ___lwdiv@counter 3044 0E73 0AF7 incf ___lwdiv@counter,f 3045 0E74 l1906: 3046 0E74 1BF1 btfsc ___lwdiv@divisor+1,7 3047 0E75 2E82 goto l1908 3048 0E76 3001 movlw 1 3049 0E77 u1335: 3050 0E77 1003 clrc 3051 0E78 0DF0 rlf ___lwdiv@divisor,f 3052 0E79 0DF1 rlf ___lwdiv@divisor+1,f 3053 0E7A 3EFF addlw -1 3054 0E7B 1D03 skipz 3055 0E7C 2E77 goto u1335 3056 0E7D 3001 movlw 1 3057 0E7E 00F4 movwf ??___lwdiv 3058 0E7F 0874 movf ??___lwdiv,w 3059 0E80 07F7 addwf ___lwdiv@counter,f 3060 0E81 2E74 goto l1906 3061 0E82 l1908: 3062 0E82 3001 movlw 1 3063 0E83 u1355: 3064 0E83 1003 clrc 3065 0E84 0DF5 rlf ___lwdiv@quotient,f 3066 0E85 0DF6 rlf ___lwdiv@quotient+1,f 3067 0E86 3EFF addlw -1 3068 0E87 1D03 skipz 3069 0E88 2E83 goto u1355 3070 0E89 0871 movf ___lwdiv@divisor+1,w 3071 0E8A 0273 subwf ___lwdiv@dividend+1,w 3072 0E8B 1D03 skipz 3073 0E8C 2E8F goto u1365 3074 0E8D 0870 movf ___lwdiv@divisor,w 3075 0E8E 0272 subwf ___lwdiv@dividend,w 3076 0E8F u1365: 3077 0E8F 1C03 skipc 3078 0E90 2E98 goto l1914 3079 0E91 0870 movf ___lwdiv@divisor,w 3080 0E92 02F2 subwf ___lwdiv@dividend,f 3081 0E93 0871 movf ___lwdiv@divisor+1,w 3082 0E94 1C03 skipc 3083 0E95 03F3 decf ___lwdiv@dividend+1,f 3084 0E96 02F3 subwf ___lwdiv@dividend+1,f 3085 0E97 1475 bsf ___lwdiv@quotient,0 3086 0E98 l1914: 3087 0E98 3001 movlw 1 3088 0E99 u1375: 3089 0E99 1003 clrc 3090 0E9A 0CF1 rrf ___lwdiv@divisor+1,f 3091 0E9B 0CF0 rrf ___lwdiv@divisor,f 3092 0E9C 3EFF addlw -1 3093 0E9D 1D03 skipz 3094 0E9E 2E99 goto u1375 3095 0E9F 3001 movlw 1 3096 0EA0 02F7 subwf ___lwdiv@counter,f 3097 0EA1 1D03 btfss 3,2 3098 0EA2 2E82 goto l1908 3099 0EA3 l1918: 3100 0EA3 0876 movf ___lwdiv@quotient+1,w 3101 0EA4 00F1 movwf ?___lwdiv+1 3102 0EA5 0875 movf ___lwdiv@quotient,w 3103 0EA6 00F0 movwf ?___lwdiv 3104 0EA7 0008 return 3105 0EA8 __end_of___lwdiv: 3106 3107 psect text10 3108 0EE7 __ptext10: 3109 ;; *************** function _display_Lcd_Layout ***************** 3110 ;; Defined at: 3111 ;; line 236 in file "main.c" 3112 ;; Parameters: Size Location Type 3113 ;; None 3114 ;; Auto vars: Size Location Type 3115 ;; None 3116 ;; Return value: Size Location Type 3117 ;; 1 wreg void 3118 ;; Registers used: 3119 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 3120 ;; Tracked objects: 3121 ;; On entry : 0/0 3122 ;; On exit : 0/0 3123 ;; Unchanged: 0/0 3124 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3125 ;; Params: 0 0 0 0 0 3126 ;; Locals: 0 0 0 0 0 3127 ;; Temps: 3 0 0 0 0 3128 ;; Totals: 3 0 0 0 0 3129 ;;Total ram usage: 3 bytes 3130 ;; Hardware stack levels used: 1 3131 ;; Hardware stack levels required when called: 3 3132 ;; This function calls: 3133 ;; _Lcd_Clear 3134 ;; _Lcd_Set_Cursor 3135 ;; _Lcd_Write_Char 3136 ;; _Lcd_Write_String 3137 ;; This function is called by: 3138 ;; _main 3139 ;; This function uses a non-reentrant model 3140 ;; 3141 3142 3143 ;psect for function _display_Lcd_Layout 3144 0EE7 _display_Lcd_Layout: 3145 3146 ;main.c: 238: Lcd_Clear(); 3147 3148 ;incstack = 0 3149 ; Regs used in _display_Lcd_Layout: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 3150 0EE7 120A 158A 24DF 120A 158A fcall _Lcd_Clear 3151 3152 ;main.c: 239: Lcd_Set_Cursor(1, 1); 3153 0EEC 01F4 clrf Lcd_Set_Cursor@b 3154 0EED 0AF4 incf Lcd_Set_Cursor@b,f 3155 0EEE 3001 movlw 1 3156 0EEF 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor 3157 3158 ;main.c: 240: Lcd_Write_String("HH:mm:ss -PP.P"); 3159 0EF4 3032 movlw (low ((STR_10-__stringbase)| (0+32768)))& (0+255) 3160 0EF5 00F5 movwf Lcd_Write_String@a 3161 0EF6 3080 movlw 128 3162 0EF7 00F6 movwf Lcd_Write_String@a+1 3163 0EF8 120A 158A 259F 120A 158A fcall _Lcd_Write_String 3164 3165 ;main.c: 241: Lcd_Write_Char(0xDF); 3166 0EFD 30DF movlw 223 3167 0EFE 120A 158A 2633 120A 158A fcall _Lcd_Write_Char 3168 3169 ;main.c: 242: Lcd_Write_Char('C'); 3170 0F03 3043 movlw 67 3171 0F04 120A 158A 2633 120A 158A fcall _Lcd_Write_Char 3172 3173 ;main.c: 243: Lcd_Set_Cursor(2, 1); 3174 0F09 01F4 clrf Lcd_Set_Cursor@b 3175 0F0A 0AF4 incf Lcd_Set_Cursor@b,f 3176 0F0B 3002 movlw 2 3177 0F0C 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor 3178 3179 ;main.c: 244: Lcd_Write_String("ddd, DD/MM/YY "); 3180 0F11 3012 movlw (low ((STR_11-__stringbase)| (0+32768)))& (0+255) 3181 0F12 00F5 movwf Lcd_Write_String@a 3182 0F13 3080 movlw 128 3183 0F14 00F6 movwf Lcd_Write_String@a+1 3184 0F15 120A 158A 259F 120A 158A fcall _Lcd_Write_String 3185 3186 ;main.c: 245: _delay((unsigned long)((2000)*(20000000/4000.0))); 3187 0F1A 3033 movlw 51 3188 0F1B 00FD movwf ??_display_Lcd_Layout+2 3189 0F1C 30BB movlw 187 3190 0F1D 00FC movwf ??_display_Lcd_Layout+1 3191 0F1E 30DF movlw 223 3192 0F1F 00FB movwf ??_display_Lcd_Layout 3193 0F20 u1607: 3194 0F20 0BFB decfsz ??_display_Lcd_Layout,f 3195 0F21 2F20 goto u1607 3196 0F22 0BFC decfsz ??_display_Lcd_Layout+1,f 3197 0F23 2F20 goto u1607 3198 0F24 0BFD decfsz ??_display_Lcd_Layout+2,f 3199 0F25 2F20 goto u1607 3200 0F26 2F27 nop2 3201 0F27 0008 return 3202 0F28 __end_of_display_Lcd_Layout: 3203 3204 psect text11 3205 0DFE __ptext11: 3206 ;; *************** function _display_Intro ***************** 3207 ;; Defined at: 3208 ;; line 226 in file "main.c" 3209 ;; Parameters: Size Location Type 3210 ;; None 3211 ;; Auto vars: Size Location Type 3212 ;; None 3213 ;; Return value: Size Location Type 3214 ;; 1 wreg void 3215 ;; Registers used: 3216 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 3217 ;; Tracked objects: 3218 ;; On entry : 0/0 3219 ;; On exit : 0/0 3220 ;; Unchanged: 0/0 3221 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3222 ;; Params: 0 0 0 0 0 3223 ;; Locals: 0 0 0 0 0 3224 ;; Temps: 3 0 0 0 0 3225 ;; Totals: 3 0 0 0 0 3226 ;;Total ram usage: 3 bytes 3227 ;; Hardware stack levels used: 1 3228 ;; Hardware stack levels required when called: 3 3229 ;; This function calls: 3230 ;; _Lcd_Clear 3231 ;; _Lcd_Set_Cursor 3232 ;; _Lcd_Write_String 3233 ;; This function is called by: 3234 ;; _main 3235 ;; This function uses a non-reentrant model 3236 ;; 3237 3238 3239 ;psect for function _display_Intro 3240 0DFE _display_Intro: 3241 3242 ;main.c: 228: Lcd_Clear(); 3243 3244 ;incstack = 0 3245 ; Regs used in _display_Intro: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 3246 0DFE 120A 158A 24DF 120A 158A fcall _Lcd_Clear 3247 3248 ;main.c: 229: Lcd_Set_Cursor(1, 1); 3249 0E03 01F4 clrf Lcd_Set_Cursor@b 3250 0E04 0AF4 incf Lcd_Set_Cursor@b,f 3251 0E05 3001 movlw 1 3252 0E06 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor 3253 3254 ;main.c: 230: Lcd_Write_String("RTC/LCD with PIC"); 3255 0E0B 3001 movlw (low ((STR_8-__stringbase)| (0+32768)))& (0+255) 3256 0E0C 00F5 movwf Lcd_Write_String@a 3257 0E0D 3080 movlw 128 3258 0E0E 00F6 movwf Lcd_Write_String@a+1 3259 0E0F 120A 158A 259F 120A 158A fcall _Lcd_Write_String 3260 3261 ;main.c: 231: Lcd_Set_Cursor(2, 1); 3262 0E14 01F4 clrf Lcd_Set_Cursor@b 3263 0E15 0AF4 incf Lcd_Set_Cursor@b,f 3264 0E16 3002 movlw 2 3265 0E17 120A 158A 276B 120A 158A fcall _Lcd_Set_Cursor 3266 3267 ;main.c: 232: Lcd_Write_String(" Circuit Digest"); 3268 0E1C 3022 movlw (low ((STR_9-__stringbase)| (0+32768)))& (0+255) 3269 0E1D 00F5 movwf Lcd_Write_String@a 3270 0E1E 3080 movlw 128 3271 0E1F 00F6 movwf Lcd_Write_String@a+1 3272 0E20 120A 158A 259F 120A 158A fcall _Lcd_Write_String 3273 3274 ;main.c: 233: _delay((unsigned long)((2000)*(20000000/4000.0))); 3275 0E25 3033 movlw 51 3276 0E26 00FD movwf ??_display_Intro+2 3277 0E27 30BB movlw 187 3278 0E28 00FC movwf ??_display_Intro+1 3279 0E29 30DF movlw 223 3280 0E2A 00FB movwf ??_display_Intro 3281 0E2B u1617: 3282 0E2B 0BFB decfsz ??_display_Intro,f 3283 0E2C 2E2B goto u1617 3284 0E2D 0BFC decfsz ??_display_Intro+1,f 3285 0E2E 2E2B goto u1617 3286 0E2F 0BFD decfsz ??_display_Intro+2,f 3287 0E30 2E2B goto u1617 3288 0E31 2E32 nop2 3289 0E32 0008 return 3290 0E33 __end_of_display_Intro: 3291 3292 psect text12 3293 0D9F __ptext12: 3294 ;; *************** function _Lcd_Write_String ***************** 3295 ;; Defined at: 3296 ;; line 91 in file "lcd.c" 3297 ;; Parameters: Size Location Type 3298 ;; a 2 5[COMMON] PTR unsigned char 3299 ;; -> NULL(0), RAM(512), STR_11(16), STR_10(15), 3300 ;; -> STR_9(16), STR_8(17), STR_7(4), STR_6(4), 3301 ;; -> STR_5(4), STR_4(4), STR_3(4), STR_2(4), 3302 ;; -> STR_1(4), 3303 ;; Auto vars: Size Location Type 3304 ;; i 2 7[COMMON] int 3305 ;; Return value: Size Location Type 3306 ;; 1 wreg void 3307 ;; Registers used: 3308 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack 3309 ;; Tracked objects: 3310 ;; On entry : 0/0 3311 ;; On exit : 0/0 3312 ;; Unchanged: 0/0 3313 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3314 ;; Params: 2 0 0 0 0 3315 ;; Locals: 2 0 0 0 0 3316 ;; Temps: 0 0 0 0 0 3317 ;; Totals: 4 0 0 0 0 3318 ;;Total ram usage: 4 bytes 3319 ;; Hardware stack levels used: 1 3320 ;; Hardware stack levels required when called: 2 3321 ;; This function calls: 3322 ;; _Lcd_Write_Char 3323 ;; This function is called by: 3324 ;; _display_Intro 3325 ;; _display_Lcd_Layout 3326 ;; _update_Display 3327 ;; This function uses a non-reentrant model 3328 ;; 3329 3330 3331 ;psect for function _Lcd_Write_String 3332 0D9F _Lcd_Write_String: 3333 3334 ;lcd.c: 92: int i;;lcd.c: 93: for (i = 0; a[i] != '\0'; i++) 3335 3336 ;incstack = 0 3337 ; Regs used in _Lcd_Write_String: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack] 3338 0D9F 01F7 clrf Lcd_Write_String@i 3339 0DA0 01F8 clrf Lcd_Write_String@i+1 3340 0DA1 l1722: 3341 0DA1 0877 movf Lcd_Write_String@i,w 3342 0DA2 0775 addwf Lcd_Write_String@a,w 3343 0DA3 0084 movwf 4 3344 0DA4 0878 movf Lcd_Write_String@i+1,w 3345 0DA5 1803 skipnc 3346 0DA6 0A78 incf Lcd_Write_String@i+1,w 3347 0DA7 0776 addwf Lcd_Write_String@a+1,w 3348 0DA8 1283 bcf 3,5 ;RP0=0, select bank0 3349 0DA9 1303 bcf 3,6 ;RP1=0, select bank0 3350 0DAA 00FF movwf 127 3351 0DAB 120A 118A 2003 120A 158A fcall stringtab 3352 0DB0 3A00 xorlw 0 3353 0DB1 1903 btfsc 3,2 3354 0DB2 0008 return 3355 3356 ;lcd.c: 94: Lcd_Write_Char(a[i]); 3357 0DB3 0877 movf Lcd_Write_String@i,w 3358 0DB4 0775 addwf Lcd_Write_String@a,w 3359 0DB5 0084 movwf 4 3360 0DB6 0878 movf Lcd_Write_String@i+1,w 3361 0DB7 1803 skipnc 3362 0DB8 0A78 incf Lcd_Write_String@i+1,w 3363 0DB9 0776 addwf Lcd_Write_String@a+1,w 3364 0DBA 00FF movwf 127 3365 0DBB 120A 118A 2003 120A 158A fcall stringtab 3366 0DC0 120A 158A 2633 120A 158A fcall _Lcd_Write_Char 3367 0DC5 3001 movlw 1 3368 0DC6 07F7 addwf Lcd_Write_String@i,f 3369 0DC7 1803 skipnc 3370 0DC8 0AF8 incf Lcd_Write_String@i+1,f 3371 0DC9 3000 movlw 0 3372 0DCA 07F8 addwf Lcd_Write_String@i+1,f 3373 0DCB 2DA1 goto l1722 3374 0DCC __end_of_Lcd_Write_String: 3375 3376 psect text13 3377 0E33 __ptext13: 3378 ;; *************** function _Lcd_Write_Char ***************** 3379 ;; Defined at: 3380 ;; line 76 in file "lcd.c" 3381 ;; Parameters: Size Location Type 3382 ;; a 1 wreg unsigned char 3383 ;; Auto vars: Size Location Type 3384 ;; a 1 4[COMMON] unsigned char 3385 ;; y 1 3[COMMON] unsigned char 3386 ;; temp 1 2[COMMON] unsigned char 3387 ;; Return value: Size Location Type 3388 ;; 1 wreg void 3389 ;; Registers used: 3390 ;; wreg, status,2, status,0, pclath, cstack 3391 ;; Tracked objects: 3392 ;; On entry : 0/0 3393 ;; On exit : 0/0 3394 ;; Unchanged: 0/0 3395 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3396 ;; Params: 0 0 0 0 0 3397 ;; Locals: 3 0 0 0 0 3398 ;; Temps: 1 0 0 0 0 3399 ;; Totals: 4 0 0 0 0 3400 ;;Total ram usage: 4 bytes 3401 ;; Hardware stack levels used: 1 3402 ;; Hardware stack levels required when called: 1 3403 ;; This function calls: 3404 ;; _Lcd_Port 3405 ;; This function is called by: 3406 ;; _display_Lcd_Layout 3407 ;; _update_Display 3408 ;; _Lcd_Write_String 3409 ;; This function uses a non-reentrant model 3410 ;; 3411 3412 3413 ;psect for function _Lcd_Write_Char 3414 0E33 _Lcd_Write_Char: 3415 3416 ;incstack = 0 3417 ; Regs used in _Lcd_Write_Char: [wreg+status,2+status,0+pclath+cstack] 3418 ;Lcd_Write_Char@a stored from wreg 3419 0E33 00F4 movwf Lcd_Write_Char@a 3420 3421 ;lcd.c: 77: char temp, y;;lcd.c: 78: temp = a & 0x0F; 3422 0E34 0874 movf Lcd_Write_Char@a,w 3423 0E35 390F andlw 15 3424 0E36 00F1 movwf ??_Lcd_Write_Char 3425 0E37 0871 movf ??_Lcd_Write_Char,w 3426 0E38 00F2 movwf Lcd_Write_Char@temp 3427 3428 ;lcd.c: 79: y = a & 0xF0; 3429 0E39 0874 movf Lcd_Write_Char@a,w 3430 0E3A 39F0 andlw 240 3431 0E3B 00F1 movwf ??_Lcd_Write_Char 3432 0E3C 0871 movf ??_Lcd_Write_Char,w 3433 0E3D 00F3 movwf Lcd_Write_Char@y 3434 3435 ;lcd.c: 80: RD2 = 1; 3436 0E3E 1283 bcf 3,5 ;RP0=0, select bank0 3437 0E3F 1303 bcf 3,6 ;RP1=0, select bank0 3438 0E40 1508 bsf 8,2 ;volatile 3439 3440 ;lcd.c: 81: Lcd_Port(y >> 4); 3441 0E41 0873 movf Lcd_Write_Char@y,w 3442 0E42 00F1 movwf ??_Lcd_Write_Char 3443 0E43 3004 movlw 4 3444 0E44 u855: 3445 0E44 1003 clrc 3446 0E45 0CF1 rrf ??_Lcd_Write_Char,f 3447 0E46 3EFF addlw -1 3448 0E47 1D03 skipz 3449 0E48 2E44 goto u855 3450 0E49 0871 movf ??_Lcd_Write_Char,w 3451 0E4A 120A 158A 251E 120A 158A fcall _Lcd_Port 3452 3453 ;lcd.c: 82: RD3 = 1; 3454 0E4F 1283 bcf 3,5 ;RP0=0, select bank0 3455 0E50 1303 bcf 3,6 ;RP1=0, select bank0 3456 0E51 1588 bsf 8,3 ;volatile 3457 3458 ;lcd.c: 83: _delay((unsigned long)((40)*(20000000/4000000.0))); 3459 0E52 3042 movlw 66 3460 0E53 00F1 movwf ??_Lcd_Write_Char 3461 0E54 u1627: 3462 0E54 0BF1 decfsz ??_Lcd_Write_Char,f 3463 0E55 2E54 goto u1627 3464 0E56 0000 nop 3465 3466 ;lcd.c: 84: RD3 = 0; 3467 0E57 1283 bcf 3,5 ;RP0=0, select bank0 3468 0E58 1303 bcf 3,6 ;RP1=0, select bank0 3469 0E59 1188 bcf 8,3 ;volatile 3470 3471 ;lcd.c: 85: Lcd_Port(temp); 3472 0E5A 0872 movf Lcd_Write_Char@temp,w 3473 0E5B 120A 158A 251E 120A 158A fcall _Lcd_Port 3474 3475 ;lcd.c: 86: RD3 = 1; 3476 0E60 1283 bcf 3,5 ;RP0=0, select bank0 3477 0E61 1303 bcf 3,6 ;RP1=0, select bank0 3478 0E62 1588 bsf 8,3 ;volatile 3479 3480 ;lcd.c: 87: _delay((unsigned long)((40)*(20000000/4000000.0))); 3481 0E63 3042 movlw 66 3482 0E64 00F1 movwf ??_Lcd_Write_Char 3483 0E65 u1637: 3484 0E65 0BF1 decfsz ??_Lcd_Write_Char,f 3485 0E66 2E65 goto u1637 3486 0E67 0000 nop 3487 3488 ;lcd.c: 88: RD3 = 0; 3489 0E68 1283 bcf 3,5 ;RP0=0, select bank0 3490 0E69 1303 bcf 3,6 ;RP1=0, select bank0 3491 0E6A 1188 bcf 8,3 ;volatile 3492 0E6B 0008 return 3493 0E6C __end_of_Lcd_Write_Char: 3494 3495 psect text14 3496 0F6B __ptext14: 3497 ;; *************** function _Lcd_Set_Cursor ***************** 3498 ;; Defined at: 3499 ;; line 41 in file "lcd.c" 3500 ;; Parameters: Size Location Type 3501 ;; a 1 wreg unsigned char 3502 ;; b 1 4[COMMON] unsigned char 3503 ;; Auto vars: Size Location Type 3504 ;; a 1 7[COMMON] unsigned char 3505 ;; temp 1 10[COMMON] unsigned char 3506 ;; y 1 9[COMMON] unsigned char 3507 ;; z 1 8[COMMON] unsigned char 3508 ;; Return value: Size Location Type 3509 ;; 1 wreg void 3510 ;; Registers used: 3511 ;; wreg, status,2, status,0, pclath, cstack 3512 ;; Tracked objects: 3513 ;; On entry : 0/0 3514 ;; On exit : 0/0 3515 ;; Unchanged: 0/0 3516 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3517 ;; Params: 1 0 0 0 0 3518 ;; Locals: 4 0 0 0 0 3519 ;; Temps: 2 0 0 0 0 3520 ;; Totals: 7 0 0 0 0 3521 ;;Total ram usage: 7 bytes 3522 ;; Hardware stack levels used: 1 3523 ;; Hardware stack levels required when called: 2 3524 ;; This function calls: 3525 ;; _Lcd_Cmd 3526 ;; This function is called by: 3527 ;; _display_Intro 3528 ;; _display_Lcd_Layout 3529 ;; _update_Display 3530 ;; This function uses a non-reentrant model 3531 ;; 3532 3533 3534 ;psect for function _Lcd_Set_Cursor 3535 0F6B _Lcd_Set_Cursor: 3536 3537 ;incstack = 0 3538 ; Regs used in _Lcd_Set_Cursor: [wreg+status,2+status,0+pclath+cstack] 3539 ;Lcd_Set_Cursor@a stored from wreg 3540 0F6B 00F7 movwf Lcd_Set_Cursor@a 3541 3542 ;lcd.c: 42: char temp, z, y;;lcd.c: 43: if (a == 1) { 3543 0F6C 0377 decf Lcd_Set_Cursor@a,w 3544 0F6D 1D03 btfss 3,2 3545 0F6E 2F90 goto l1706 3546 3547 ;lcd.c: 44: temp = 0x80 + b - 1; 3548 0F6F 0874 movf Lcd_Set_Cursor@b,w 3549 0F70 3E7F addlw 127 3550 0F71 00F5 movwf ??_Lcd_Set_Cursor 3551 0F72 0875 movf ??_Lcd_Set_Cursor,w 3552 0F73 00FA movwf Lcd_Set_Cursor@temp 3553 3554 ;lcd.c: 45: z = temp >> 4; 3555 0F74 087A movf Lcd_Set_Cursor@temp,w 3556 0F75 00F5 movwf ??_Lcd_Set_Cursor 3557 0F76 3004 movlw 4 3558 0F77 u935: 3559 0F77 1003 clrc 3560 0F78 0CF5 rrf ??_Lcd_Set_Cursor,f 3561 0F79 3EFF addlw -1 3562 0F7A 1D03 skipz 3563 0F7B 2F77 goto u935 3564 0F7C 0875 movf ??_Lcd_Set_Cursor,w 3565 0F7D 00F6 movwf ??_Lcd_Set_Cursor+1 3566 0F7E 0876 movf ??_Lcd_Set_Cursor+1,w 3567 0F7F 00F8 movwf Lcd_Set_Cursor@z 3568 3569 ;lcd.c: 46: y = temp & 0x0F; 3570 0F80 087A movf Lcd_Set_Cursor@temp,w 3571 0F81 390F andlw 15 3572 0F82 00F5 movwf ??_Lcd_Set_Cursor 3573 0F83 0875 movf ??_Lcd_Set_Cursor,w 3574 0F84 00F9 movwf Lcd_Set_Cursor@y 3575 3576 ;lcd.c: 47: Lcd_Cmd(z); 3577 0F85 0878 movf Lcd_Set_Cursor@z,w 3578 0F86 120A 158A 2538 120A 158A fcall _Lcd_Cmd 3579 3580 ;lcd.c: 48: Lcd_Cmd(y); 3581 0F8B 0879 movf Lcd_Set_Cursor@y,w 3582 0F8C 120A 158A 2538 fcall _Lcd_Cmd 3583 3584 ;lcd.c: 49: } else if (a == 2) { 3585 0F8F 0008 return 3586 0F90 l1706: 3587 0F90 3002 movlw 2 3588 0F91 0677 xorwf Lcd_Set_Cursor@a,w 3589 0F92 1D03 btfss 3,2 3590 0F93 0008 return 3591 3592 ;lcd.c: 50: temp = 0xC0 + b - 1; 3593 0F94 0874 movf Lcd_Set_Cursor@b,w 3594 0F95 3EBF addlw 191 3595 0F96 00F5 movwf ??_Lcd_Set_Cursor 3596 0F97 0875 movf ??_Lcd_Set_Cursor,w 3597 0F98 00FA movwf Lcd_Set_Cursor@temp 3598 3599 ;lcd.c: 51: z = temp >> 4; 3600 0F99 087A movf Lcd_Set_Cursor@temp,w 3601 0F9A 00F5 movwf ??_Lcd_Set_Cursor 3602 0F9B 3004 movlw 4 3603 0F9C u955: 3604 0F9C 1003 clrc 3605 0F9D 0CF5 rrf ??_Lcd_Set_Cursor,f 3606 0F9E 3EFF addlw -1 3607 0F9F 1D03 skipz 3608 0FA0 2F9C goto u955 3609 0FA1 0875 movf ??_Lcd_Set_Cursor,w 3610 0FA2 00F6 movwf ??_Lcd_Set_Cursor+1 3611 0FA3 0876 movf ??_Lcd_Set_Cursor+1,w 3612 0FA4 00F8 movwf Lcd_Set_Cursor@z 3613 3614 ;lcd.c: 52: y = temp & 0x0F; 3615 0FA5 087A movf Lcd_Set_Cursor@temp,w 3616 0FA6 390F andlw 15 3617 0FA7 00F5 movwf ??_Lcd_Set_Cursor 3618 0FA8 0875 movf ??_Lcd_Set_Cursor,w 3619 0FA9 00F9 movwf Lcd_Set_Cursor@y 3620 3621 ;lcd.c: 53: Lcd_Cmd(z); 3622 0FAA 0878 movf Lcd_Set_Cursor@z,w 3623 0FAB 120A 158A 2538 120A 158A fcall _Lcd_Cmd 3624 3625 ;lcd.c: 54: Lcd_Cmd(y); 3626 0FB0 0879 movf Lcd_Set_Cursor@y,w 3627 0FB1 120A 158A 2538 fcall _Lcd_Cmd 3628 0FB4 0008 return 3629 0FB5 __end_of_Lcd_Set_Cursor: 3630 3631 psect text15 3632 0CDF __ptext15: 3633 ;; *************** function _Lcd_Clear ***************** 3634 ;; Defined at: 3635 ;; line 36 in file "lcd.c" 3636 ;; Parameters: Size Location Type 3637 ;; None 3638 ;; Auto vars: Size Location Type 3639 ;; None 3640 ;; Return value: Size Location Type 3641 ;; 1 wreg void 3642 ;; Registers used: 3643 ;; wreg, status,2, status,0, pclath, cstack 3644 ;; Tracked objects: 3645 ;; On entry : 0/0 3646 ;; On exit : 0/0 3647 ;; Unchanged: 0/0 3648 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3649 ;; Params: 0 0 0 0 0 3650 ;; Locals: 0 0 0 0 0 3651 ;; Temps: 0 0 0 0 0 3652 ;; Totals: 0 0 0 0 0 3653 ;;Total ram usage: 0 bytes 3654 ;; Hardware stack levels used: 1 3655 ;; Hardware stack levels required when called: 2 3656 ;; This function calls: 3657 ;; _Lcd_Cmd 3658 ;; This function is called by: 3659 ;; _display_Intro 3660 ;; _display_Lcd_Layout 3661 ;; This function uses a non-reentrant model 3662 ;; 3663 3664 3665 ;psect for function _Lcd_Clear 3666 0CDF _Lcd_Clear: 3667 3668 ;lcd.c: 37: Lcd_Cmd(0); 3669 3670 ;incstack = 0 3671 ; Regs used in _Lcd_Clear: [wreg+status,2+status,0+pclath+cstack] 3672 0CDF 3000 movlw 0 3673 0CE0 120A 158A 2538 120A 158A fcall _Lcd_Cmd 3674 3675 ;lcd.c: 38: Lcd_Cmd(1); 3676 0CE5 3001 movlw 1 3677 0CE6 120A 158A 2538 fcall _Lcd_Cmd 3678 0CE9 0008 return 3679 0CEA __end_of_Lcd_Clear: 3680 3681 psect text16 3682 0339 __ptext16: 3683 ;; *************** function _Update_Current_Date_Time ***************** 3684 ;; Defined at: 3685 ;; line 94 in file "ds3231.c" 3686 ;; Parameters: Size Location Type 3687 ;; None 3688 ;; Auto vars: Size Location Type 3689 ;; None 3690 ;; Return value: Size Location Type 3691 ;; 1 wreg void 3692 ;; Registers used: 3693 ;; wreg, status,2, status,0, pclath, cstack 3694 ;; Tracked objects: 3695 ;; On entry : 0/0 3696 ;; On exit : 0/0 3697 ;; Unchanged: 0/0 3698 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3699 ;; Params: 0 0 0 0 0 3700 ;; Locals: 0 0 0 0 0 3701 ;; Temps: 0 0 0 0 0 3702 ;; Totals: 0 0 0 0 0 3703 ;;Total ram usage: 0 bytes 3704 ;; Hardware stack levels used: 1 3705 ;; Hardware stack levels required when called: 2 3706 ;; This function calls: 3707 ;; _BCD_2_DEC 3708 ;; _I2C_Master_Read 3709 ;; _I2C_Master_Repeated_Start 3710 ;; _I2C_Master_Start 3711 ;; _I2C_Master_Stop 3712 ;; _I2C_Master_Write 3713 ;; This function is called by: 3714 ;; _main 3715 ;; This function uses a non-reentrant model 3716 ;; 3717 3718 3719 ;psect for function _Update_Current_Date_Time 3720 0339 _Update_Current_Date_Time: 3721 3722 ;ds3231.c: 96: I2C_Master_Start(); 3723 3724 ;incstack = 0 3725 ; Regs used in _Update_Current_Date_Time: [wreg+status,2+status,0+pclath+cstack] 3726 0339 120A 158A 24B8 120A 118A fcall _I2C_Master_Start 3727 3728 ;ds3231.c: 97: I2C_Master_Write(0xD0); 3729 033E 30D0 movlw 208 3730 033F 00F0 movwf I2C_Master_Write@data 3731 0340 3000 movlw 0 3732 0341 00F1 movwf I2C_Master_Write@data+1 3733 0342 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3734 3735 ;ds3231.c: 98: I2C_Master_Write(0); 3736 0347 3000 movlw 0 3737 0348 00F0 movwf I2C_Master_Write@data 3738 0349 00F1 movwf I2C_Master_Write@data+1 3739 034A 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3740 3741 ;ds3231.c: 99: I2C_Master_Repeated_Start(); 3742 034F 120A 158A 24B1 120A 118A fcall _I2C_Master_Repeated_Start 3743 3744 ;ds3231.c: 102: I2C_Master_Write(0xD1); 3745 0354 30D1 movlw 209 3746 0355 00F0 movwf I2C_Master_Write@data 3747 0356 3000 movlw 0 3748 0357 00F1 movwf I2C_Master_Write@data+1 3749 0358 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3750 3751 ;ds3231.c: 103: sec = BCD_2_DEC(I2C_Master_Read(1)); 3752 035D 3001 movlw 1 3753 035E 00F0 movwf I2C_Master_Read@ack 3754 035F 3000 movlw 0 3755 0360 00F1 movwf I2C_Master_Read@ack+1 3756 0361 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3757 0366 0871 movf ?_I2C_Master_Read+1,w 3758 0367 00F7 movwf BCD_2_DEC@to_convert+1 3759 0368 0870 movf ?_I2C_Master_Read,w 3760 0369 00F6 movwf BCD_2_DEC@to_convert 3761 036A 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3762 036F 0877 movf ?_BCD_2_DEC+1,w 3763 0370 1283 bcf 3,5 ;RP0=0, select bank0 3764 0371 1303 bcf 3,6 ;RP1=0, select bank0 3765 0372 00ED movwf _sec+1 3766 0373 0876 movf ?_BCD_2_DEC,w 3767 0374 00EC movwf _sec 3768 3769 ;ds3231.c: 104: min = BCD_2_DEC(I2C_Master_Read(1)); 3770 0375 3001 movlw 1 3771 0376 00F0 movwf I2C_Master_Read@ack 3772 0377 3000 movlw 0 3773 0378 00F1 movwf I2C_Master_Read@ack+1 3774 0379 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3775 037E 0871 movf ?_I2C_Master_Read+1,w 3776 037F 00F7 movwf BCD_2_DEC@to_convert+1 3777 0380 0870 movf ?_I2C_Master_Read,w 3778 0381 00F6 movwf BCD_2_DEC@to_convert 3779 0382 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3780 0387 0877 movf ?_BCD_2_DEC+1,w 3781 0388 1283 bcf 3,5 ;RP0=0, select bank0 3782 0389 1303 bcf 3,6 ;RP1=0, select bank0 3783 038A 00EB movwf _min+1 3784 038B 0876 movf ?_BCD_2_DEC,w 3785 038C 00EA movwf _min 3786 3787 ;ds3231.c: 105: hour = BCD_2_DEC(I2C_Master_Read(1)); 3788 038D 3001 movlw 1 3789 038E 00F0 movwf I2C_Master_Read@ack 3790 038F 3000 movlw 0 3791 0390 00F1 movwf I2C_Master_Read@ack+1 3792 0391 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3793 0396 0871 movf ?_I2C_Master_Read+1,w 3794 0397 00F7 movwf BCD_2_DEC@to_convert+1 3795 0398 0870 movf ?_I2C_Master_Read,w 3796 0399 00F6 movwf BCD_2_DEC@to_convert 3797 039A 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3798 039F 0877 movf ?_BCD_2_DEC+1,w 3799 03A0 1283 bcf 3,5 ;RP0=0, select bank0 3800 03A1 1303 bcf 3,6 ;RP1=0, select bank0 3801 03A2 00E9 movwf _hour+1 3802 03A3 0876 movf ?_BCD_2_DEC,w 3803 03A4 00E8 movwf _hour 3804 3805 ;ds3231.c: 106: weekday = I2C_Master_Read(1); 3806 03A5 3001 movlw 1 3807 03A6 00F0 movwf I2C_Master_Read@ack 3808 03A7 3000 movlw 0 3809 03A8 00F1 movwf I2C_Master_Read@ack+1 3810 03A9 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3811 03AE 0870 movf ?_I2C_Master_Read,w 3812 03AF 1683 bsf 3,5 ;RP0=1, select bank1 3813 03B0 1303 bcf 3,6 ;RP1=0, select bank1 3814 03B1 00CA movwf _weekday^(0+128) 3815 03B2 0871 movf ?_I2C_Master_Read+1,w 3816 03B3 00CB movwf (_weekday+1)^(0+128) 3817 3818 ;ds3231.c: 107: date = BCD_2_DEC(I2C_Master_Read(1)); 3819 03B4 3001 movlw 1 3820 03B5 00F0 movwf I2C_Master_Read@ack 3821 03B6 3000 movlw 0 3822 03B7 00F1 movwf I2C_Master_Read@ack+1 3823 03B8 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3824 03BD 0871 movf ?_I2C_Master_Read+1,w 3825 03BE 00F7 movwf BCD_2_DEC@to_convert+1 3826 03BF 0870 movf ?_I2C_Master_Read,w 3827 03C0 00F6 movwf BCD_2_DEC@to_convert 3828 03C1 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3829 03C6 0877 movf ?_BCD_2_DEC+1,w 3830 03C7 1283 bcf 3,5 ;RP0=0, select bank0 3831 03C8 1303 bcf 3,6 ;RP1=0, select bank0 3832 03C9 00E7 movwf _date+1 3833 03CA 0876 movf ?_BCD_2_DEC,w 3834 03CB 00E6 movwf _date 3835 3836 ;ds3231.c: 108: month = BCD_2_DEC(I2C_Master_Read(1)); 3837 03CC 3001 movlw 1 3838 03CD 00F0 movwf I2C_Master_Read@ack 3839 03CE 3000 movlw 0 3840 03CF 00F1 movwf I2C_Master_Read@ack+1 3841 03D0 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3842 03D5 0871 movf ?_I2C_Master_Read+1,w 3843 03D6 00F7 movwf BCD_2_DEC@to_convert+1 3844 03D7 0870 movf ?_I2C_Master_Read,w 3845 03D8 00F6 movwf BCD_2_DEC@to_convert 3846 03D9 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3847 03DE 0877 movf ?_BCD_2_DEC+1,w 3848 03DF 1283 bcf 3,5 ;RP0=0, select bank0 3849 03E0 1303 bcf 3,6 ;RP1=0, select bank0 3850 03E1 00E5 movwf _month+1 3851 03E2 0876 movf ?_BCD_2_DEC,w 3852 03E3 00E4 movwf _month 3853 3854 ;ds3231.c: 109: year = BCD_2_DEC(I2C_Master_Read(1)); 3855 03E4 3001 movlw 1 3856 03E5 00F0 movwf I2C_Master_Read@ack 3857 03E6 3000 movlw 0 3858 03E7 00F1 movwf I2C_Master_Read@ack+1 3859 03E8 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3860 03ED 0871 movf ?_I2C_Master_Read+1,w 3861 03EE 00F7 movwf BCD_2_DEC@to_convert+1 3862 03EF 0870 movf ?_I2C_Master_Read,w 3863 03F0 00F6 movwf BCD_2_DEC@to_convert 3864 03F1 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3865 03F6 0877 movf ?_BCD_2_DEC+1,w 3866 03F7 1283 bcf 3,5 ;RP0=0, select bank0 3867 03F8 1303 bcf 3,6 ;RP1=0, select bank0 3868 03F9 00E3 movwf _year+1 3869 03FA 0876 movf ?_BCD_2_DEC,w 3870 03FB 00E2 movwf _year 3871 3872 ;ds3231.c: 110: I2C_Master_Stop(); 3873 03FC 120A 158A 24BF 120A 118A fcall _I2C_Master_Stop 3874 3875 ;ds3231.c: 114: I2C_Master_Start(); 3876 0401 120A 158A 24B8 120A 118A fcall _I2C_Master_Start 3877 3878 ;ds3231.c: 115: I2C_Master_Write(0xD1); 3879 0406 30D1 movlw 209 3880 0407 00F0 movwf I2C_Master_Write@data 3881 0408 3000 movlw 0 3882 0409 00F1 movwf I2C_Master_Write@data+1 3883 040A 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3884 3885 ;ds3231.c: 116: I2C_Master_Read(1); 3886 040F 3001 movlw 1 3887 0410 00F0 movwf I2C_Master_Read@ack 3888 0411 3000 movlw 0 3889 0412 00F1 movwf I2C_Master_Read@ack+1 3890 0413 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3891 3892 ;ds3231.c: 117: I2C_Master_Stop(); 3893 0418 120A 158A 24BF fcall _I2C_Master_Stop 3894 041B 0008 return 3895 041C __end_of_Update_Current_Date_Time: 3896 3897 psect text17 3898 041C __ptext17: 3899 ;; *************** function _Read_Alarms_Temp ***************** 3900 ;; Defined at: 3901 ;; line 27 in file "ds3231.c" 3902 ;; Parameters: Size Location Type 3903 ;; None 3904 ;; Auto vars: Size Location Type 3905 ;; None 3906 ;; Return value: Size Location Type 3907 ;; 1 wreg void 3908 ;; Registers used: 3909 ;; wreg, status,2, status,0, pclath, cstack 3910 ;; Tracked objects: 3911 ;; On entry : 0/0 3912 ;; On exit : 0/0 3913 ;; Unchanged: 0/0 3914 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 3915 ;; Params: 0 0 0 0 0 3916 ;; Locals: 0 0 0 0 0 3917 ;; Temps: 0 0 0 0 0 3918 ;; Totals: 0 0 0 0 0 3919 ;;Total ram usage: 0 bytes 3920 ;; Hardware stack levels used: 1 3921 ;; Hardware stack levels required when called: 2 3922 ;; This function calls: 3923 ;; _BCD_2_DEC 3924 ;; _I2C_Master_Read 3925 ;; _I2C_Master_Repeated_Start 3926 ;; _I2C_Master_Start 3927 ;; _I2C_Master_Stop 3928 ;; _I2C_Master_Write 3929 ;; This function is called by: 3930 ;; _main 3931 ;; This function uses a non-reentrant model 3932 ;; 3933 3934 3935 ;psect for function _Read_Alarms_Temp 3936 041C _Read_Alarms_Temp: 3937 3938 ;ds3231.c: 28: I2C_Master_Start(); 3939 3940 ;incstack = 0 3941 ; Regs used in _Read_Alarms_Temp: [wreg+status,2+status,0+pclath+cstack] 3942 041C 120A 158A 24B8 120A 118A fcall _I2C_Master_Start 3943 3944 ;ds3231.c: 29: I2C_Master_Write(0xD0); 3945 0421 30D0 movlw 208 3946 0422 00F0 movwf I2C_Master_Write@data 3947 0423 3000 movlw 0 3948 0424 00F1 movwf I2C_Master_Write@data+1 3949 0425 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3950 3951 ;ds3231.c: 30: I2C_Master_Write(0x07); 3952 042A 3007 movlw 7 3953 042B 00F0 movwf I2C_Master_Write@data 3954 042C 3000 movlw 0 3955 042D 00F1 movwf I2C_Master_Write@data+1 3956 042E 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3957 3958 ;ds3231.c: 31: I2C_Master_Repeated_Start(); 3959 0433 120A 158A 24B1 120A 118A fcall _I2C_Master_Repeated_Start 3960 3961 ;ds3231.c: 34: I2C_Master_Write(0xD1); 3962 0438 30D1 movlw 209 3963 0439 00F0 movwf I2C_Master_Write@data 3964 043A 3000 movlw 0 3965 043B 00F1 movwf I2C_Master_Write@data+1 3966 043C 120A 158A 24C6 120A 118A fcall _I2C_Master_Write 3967 3968 ;ds3231.c: 35: alarm1_sec = BCD_2_DEC(I2C_Master_Read(1)); 3969 0441 3001 movlw 1 3970 0442 00F0 movwf I2C_Master_Read@ack 3971 0443 3000 movlw 0 3972 0444 00F1 movwf I2C_Master_Read@ack+1 3973 0445 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3974 044A 0871 movf ?_I2C_Master_Read+1,w 3975 044B 00F7 movwf BCD_2_DEC@to_convert+1 3976 044C 0870 movf ?_I2C_Master_Read,w 3977 044D 00F6 movwf BCD_2_DEC@to_convert 3978 044E 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3979 0453 0877 movf ?_BCD_2_DEC+1,w 3980 0454 1283 bcf 3,5 ;RP0=0, select bank0 3981 0455 1303 bcf 3,6 ;RP1=0, select bank0 3982 0456 00B3 movwf _alarm1_sec+1 3983 0457 0876 movf ?_BCD_2_DEC,w 3984 0458 00B2 movwf _alarm1_sec 3985 3986 ;ds3231.c: 36: alarm1_min = BCD_2_DEC(I2C_Master_Read(1)); 3987 0459 3001 movlw 1 3988 045A 00F0 movwf I2C_Master_Read@ack 3989 045B 3000 movlw 0 3990 045C 00F1 movwf I2C_Master_Read@ack+1 3991 045D 120A 158A 2573 120A 118A fcall _I2C_Master_Read 3992 0462 0871 movf ?_I2C_Master_Read+1,w 3993 0463 00F7 movwf BCD_2_DEC@to_convert+1 3994 0464 0870 movf ?_I2C_Master_Read,w 3995 0465 00F6 movwf BCD_2_DEC@to_convert 3996 0466 120A 118A 2074 120A 118A fcall _BCD_2_DEC 3997 046B 0877 movf ?_BCD_2_DEC+1,w 3998 046C 1283 bcf 3,5 ;RP0=0, select bank0 3999 046D 1303 bcf 3,6 ;RP1=0, select bank0 4000 046E 00B1 movwf _alarm1_min+1 4001 046F 0876 movf ?_BCD_2_DEC,w 4002 0470 00B0 movwf _alarm1_min 4003 4004 ;ds3231.c: 37: alarm1_hour = BCD_2_DEC(I2C_Master_Read(1)); 4005 0471 3001 movlw 1 4006 0472 00F0 movwf I2C_Master_Read@ack 4007 0473 3000 movlw 0 4008 0474 00F1 movwf I2C_Master_Read@ack+1 4009 0475 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4010 047A 0871 movf ?_I2C_Master_Read+1,w 4011 047B 00F7 movwf BCD_2_DEC@to_convert+1 4012 047C 0870 movf ?_I2C_Master_Read,w 4013 047D 00F6 movwf BCD_2_DEC@to_convert 4014 047E 120A 118A 2074 120A 118A fcall _BCD_2_DEC 4015 0483 0877 movf ?_BCD_2_DEC+1,w 4016 0484 1283 bcf 3,5 ;RP0=0, select bank0 4017 0485 1303 bcf 3,6 ;RP1=0, select bank0 4018 0486 00AF movwf _alarm1_hour+1 4019 0487 0876 movf ?_BCD_2_DEC,w 4020 0488 00AE movwf _alarm1_hour 4021 4022 ;ds3231.c: 38: I2C_Master_Read(1); 4023 0489 3001 movlw 1 4024 048A 00F0 movwf I2C_Master_Read@ack 4025 048B 3000 movlw 0 4026 048C 00F1 movwf I2C_Master_Read@ack+1 4027 048D 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4028 4029 ;ds3231.c: 39: alarm2_min = BCD_2_DEC(I2C_Master_Read(1)); 4030 0492 3001 movlw 1 4031 0493 00F0 movwf I2C_Master_Read@ack 4032 0494 3000 movlw 0 4033 0495 00F1 movwf I2C_Master_Read@ack+1 4034 0496 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4035 049B 0871 movf ?_I2C_Master_Read+1,w 4036 049C 00F7 movwf BCD_2_DEC@to_convert+1 4037 049D 0870 movf ?_I2C_Master_Read,w 4038 049E 00F6 movwf BCD_2_DEC@to_convert 4039 049F 120A 118A 2074 120A 118A fcall _BCD_2_DEC 4040 04A4 0877 movf ?_BCD_2_DEC+1,w 4041 04A5 1283 bcf 3,5 ;RP0=0, select bank0 4042 04A6 1303 bcf 3,6 ;RP1=0, select bank0 4043 04A7 00AD movwf _alarm2_min+1 4044 04A8 0876 movf ?_BCD_2_DEC,w 4045 04A9 00AC movwf _alarm2_min 4046 4047 ;ds3231.c: 40: alarm2_hour = BCD_2_DEC(I2C_Master_Read(1)); 4048 04AA 3001 movlw 1 4049 04AB 00F0 movwf I2C_Master_Read@ack 4050 04AC 3000 movlw 0 4051 04AD 00F1 movwf I2C_Master_Read@ack+1 4052 04AE 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4053 04B3 0871 movf ?_I2C_Master_Read+1,w 4054 04B4 00F7 movwf BCD_2_DEC@to_convert+1 4055 04B5 0870 movf ?_I2C_Master_Read,w 4056 04B6 00F6 movwf BCD_2_DEC@to_convert 4057 04B7 120A 118A 2074 120A 118A fcall _BCD_2_DEC 4058 04BC 0877 movf ?_BCD_2_DEC+1,w 4059 04BD 1283 bcf 3,5 ;RP0=0, select bank0 4060 04BE 1303 bcf 3,6 ;RP1=0, select bank0 4061 04BF 00AB movwf _alarm2_hour+1 4062 04C0 0876 movf ?_BCD_2_DEC,w 4063 04C1 00AA movwf _alarm2_hour 4064 4065 ;ds3231.c: 41: I2C_Master_Read(1); 4066 04C2 3001 movlw 1 4067 04C3 00F0 movwf I2C_Master_Read@ack 4068 04C4 3000 movlw 0 4069 04C5 00F1 movwf I2C_Master_Read@ack+1 4070 04C6 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4071 4072 ;ds3231.c: 42: control_reg = I2C_Master_Read(1); 4073 04CB 3001 movlw 1 4074 04CC 00F0 movwf I2C_Master_Read@ack 4075 04CD 3000 movlw 0 4076 04CE 00F1 movwf I2C_Master_Read@ack+1 4077 04CF 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4078 04D4 0871 movf ?_I2C_Master_Read+1,w 4079 04D5 1283 bcf 3,5 ;RP0=0, select bank0 4080 04D6 1303 bcf 3,6 ;RP1=0, select bank0 4081 04D7 00A5 movwf _control_reg+1 4082 04D8 0870 movf ?_I2C_Master_Read,w 4083 04D9 00A4 movwf _control_reg 4084 4085 ;ds3231.c: 43: status_reg = I2C_Master_Read(1); 4086 04DA 3001 movlw 1 4087 04DB 00F0 movwf I2C_Master_Read@ack 4088 04DC 3000 movlw 0 4089 04DD 00F1 movwf I2C_Master_Read@ack+1 4090 04DE 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4091 04E3 0871 movf ?_I2C_Master_Read+1,w 4092 04E4 1683 bsf 3,5 ;RP0=1, select bank1 4093 04E5 1303 bcf 3,6 ;RP1=0, select bank1 4094 04E6 00CD movwf (_status_reg+1)^(0+128) 4095 04E7 0870 movf ?_I2C_Master_Read,w 4096 04E8 00CC movwf _status_reg^(0+128) 4097 4098 ;ds3231.c: 44: I2C_Master_Read(1); 4099 04E9 3001 movlw 1 4100 04EA 00F0 movwf I2C_Master_Read@ack 4101 04EB 3000 movlw 0 4102 04EC 00F1 movwf I2C_Master_Read@ack+1 4103 04ED 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4104 4105 ;ds3231.c: 46: temperature_msb = I2C_Master_Read(1); 4106 04F2 3001 movlw 1 4107 04F3 00F0 movwf I2C_Master_Read@ack 4108 04F4 3000 movlw 0 4109 04F5 00F1 movwf I2C_Master_Read@ack+1 4110 04F6 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4111 04FB 0871 movf ?_I2C_Master_Read+1,w 4112 04FC 1283 bcf 3,5 ;RP0=0, select bank0 4113 04FD 1303 bcf 3,6 ;RP1=0, select bank0 4114 04FE 00A1 movwf _temperature_msb+1 4115 04FF 0870 movf ?_I2C_Master_Read,w 4116 0500 00A0 movwf _temperature_msb 4117 4118 ;ds3231.c: 48: temperature_lsb = I2C_Master_Read(0); 4119 0501 3000 movlw 0 4120 0502 00F0 movwf I2C_Master_Read@ack 4121 0503 00F1 movwf I2C_Master_Read@ack+1 4122 0504 120A 158A 2573 120A 118A fcall _I2C_Master_Read 4123 0509 0871 movf ?_I2C_Master_Read+1,w 4124 050A 1283 bcf 3,5 ;RP0=0, select bank0 4125 050B 1303 bcf 3,6 ;RP1=0, select bank0 4126 050C 00A3 movwf _temperature_lsb+1 4127 050D 0870 movf ?_I2C_Master_Read,w 4128 050E 00A2 movwf _temperature_lsb 4129 4130 ;ds3231.c: 49: I2C_Master_Stop(); 4131 050F 120A 158A 24BF fcall _I2C_Master_Stop 4132 0512 0008 return 4133 0513 __end_of_Read_Alarms_Temp: 4134 4135 psect text18 4136 0CC6 __ptext18: 4137 ;; *************** function _I2C_Master_Write ***************** 4138 ;; Defined at: 4139 ;; line 42 in file "i2c.c" 4140 ;; Parameters: Size Location Type 4141 ;; data 2 0[COMMON] unsigned int 4142 ;; Auto vars: Size Location Type 4143 ;; None 4144 ;; Return value: Size Location Type 4145 ;; 1 wreg void 4146 ;; Registers used: 4147 ;; wreg, status,2, status,0, pclath, cstack 4148 ;; Tracked objects: 4149 ;; On entry : 0/0 4150 ;; On exit : 0/0 4151 ;; Unchanged: 0/0 4152 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4153 ;; Params: 2 0 0 0 0 4154 ;; Locals: 0 0 0 0 0 4155 ;; Temps: 0 0 0 0 0 4156 ;; Totals: 2 0 0 0 0 4157 ;;Total ram usage: 2 bytes 4158 ;; Hardware stack levels used: 1 4159 ;; Hardware stack levels required when called: 1 4160 ;; This function calls: 4161 ;; _I2C_Master_Wait 4162 ;; This function is called by: 4163 ;; _Read_Alarms_Temp 4164 ;; _Update_Current_Date_Time 4165 ;; _Set_Date 4166 ;; _Set_DayOfWeek 4167 ;; _Set_Time 4168 ;; _Set_Time_Date 4169 ;; _Write_Alarms 4170 ;; This function uses a non-reentrant model 4171 ;; 4172 4173 4174 ;psect for function _I2C_Master_Write 4175 0CC6 _I2C_Master_Write: 4176 4177 ;i2c.c: 42: void I2C_Master_Write(unsigned data);i2c.c: 43: {;i2c.c: 44: I2C_Master_Wa + it(); 4178 4179 ;incstack = 0 4180 ; Regs used in _I2C_Master_Write: [wreg+status,2+status,0+pclath+cstack] 4181 0CC6 120A 158A 24D6 fcall _I2C_Master_Wait 4182 4183 ;i2c.c: 45: SSPBUF = data; 4184 0CC9 0870 movf I2C_Master_Write@data,w 4185 0CCA 1283 bcf 3,5 ;RP0=0, select bank0 4186 0CCB 1303 bcf 3,6 ;RP1=0, select bank0 4187 0CCC 0093 movwf 19 ;volatile 4188 0CCD 0008 return 4189 0CCE __end_of_I2C_Master_Write: 4190 4191 psect text19 4192 0CBF __ptext19: 4193 ;; *************** function _I2C_Master_Stop ***************** 4194 ;; Defined at: 4195 ;; line 36 in file "i2c.c" 4196 ;; Parameters: Size Location Type 4197 ;; None 4198 ;; Auto vars: Size Location Type 4199 ;; None 4200 ;; Return value: Size Location Type 4201 ;; 1 wreg void 4202 ;; Registers used: 4203 ;; wreg, status,2, status,0, pclath, cstack 4204 ;; Tracked objects: 4205 ;; On entry : 0/0 4206 ;; On exit : 0/0 4207 ;; Unchanged: 0/0 4208 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4209 ;; Params: 0 0 0 0 0 4210 ;; Locals: 0 0 0 0 0 4211 ;; Temps: 0 0 0 0 0 4212 ;; Totals: 0 0 0 0 0 4213 ;;Total ram usage: 0 bytes 4214 ;; Hardware stack levels used: 1 4215 ;; Hardware stack levels required when called: 1 4216 ;; This function calls: 4217 ;; _I2C_Master_Wait 4218 ;; This function is called by: 4219 ;; _Read_Alarms_Temp 4220 ;; _Update_Current_Date_Time 4221 ;; _Set_Date 4222 ;; _Set_DayOfWeek 4223 ;; _Set_Time 4224 ;; _Set_Time_Date 4225 ;; _Write_Alarms 4226 ;; This function uses a non-reentrant model 4227 ;; 4228 4229 4230 ;psect for function _I2C_Master_Stop 4231 0CBF _I2C_Master_Stop: 4232 4233 ;i2c.c: 38: I2C_Master_Wait(); 4234 4235 ;incstack = 0 4236 ; Regs used in _I2C_Master_Stop: [wreg+status,2+status,0+pclath+cstack] 4237 0CBF 120A 158A 24D6 fcall _I2C_Master_Wait 4238 4239 ;i2c.c: 39: PEN = 1; 4240 0CC2 1683 bsf 3,5 ;RP0=1, select bank1 4241 0CC3 1303 bcf 3,6 ;RP1=0, select bank1 4242 0CC4 1511 bsf 17,2 ;volatile 4243 0CC5 0008 return 4244 0CC6 __end_of_I2C_Master_Stop: 4245 4246 psect text20 4247 0CB8 __ptext20: 4248 ;; *************** function _I2C_Master_Start ***************** 4249 ;; Defined at: 4250 ;; line 24 in file "i2c.c" 4251 ;; Parameters: Size Location Type 4252 ;; None 4253 ;; Auto vars: Size Location Type 4254 ;; None 4255 ;; Return value: Size Location Type 4256 ;; 1 wreg void 4257 ;; Registers used: 4258 ;; wreg, status,2, status,0, pclath, cstack 4259 ;; Tracked objects: 4260 ;; On entry : 0/0 4261 ;; On exit : 0/0 4262 ;; Unchanged: 0/0 4263 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4264 ;; Params: 0 0 0 0 0 4265 ;; Locals: 0 0 0 0 0 4266 ;; Temps: 0 0 0 0 0 4267 ;; Totals: 0 0 0 0 0 4268 ;;Total ram usage: 0 bytes 4269 ;; Hardware stack levels used: 1 4270 ;; Hardware stack levels required when called: 1 4271 ;; This function calls: 4272 ;; _I2C_Master_Wait 4273 ;; This function is called by: 4274 ;; _Read_Alarms_Temp 4275 ;; _Update_Current_Date_Time 4276 ;; _Set_Date 4277 ;; _Set_DayOfWeek 4278 ;; _Set_Time 4279 ;; _Set_Time_Date 4280 ;; _Write_Alarms 4281 ;; This function uses a non-reentrant model 4282 ;; 4283 4284 4285 ;psect for function _I2C_Master_Start 4286 0CB8 _I2C_Master_Start: 4287 4288 ;i2c.c: 26: I2C_Master_Wait(); 4289 4290 ;incstack = 0 4291 ; Regs used in _I2C_Master_Start: [wreg+status,2+status,0+pclath+cstack] 4292 0CB8 120A 158A 24D6 fcall _I2C_Master_Wait 4293 4294 ;i2c.c: 27: SEN = 1; 4295 0CBB 1683 bsf 3,5 ;RP0=1, select bank1 4296 0CBC 1303 bcf 3,6 ;RP1=0, select bank1 4297 0CBD 1411 bsf 17,0 ;volatile 4298 0CBE 0008 return 4299 0CBF __end_of_I2C_Master_Start: 4300 4301 psect text21 4302 0CB1 __ptext21: 4303 ;; *************** function _I2C_Master_Repeated_Start ***************** 4304 ;; Defined at: 4305 ;; line 30 in file "i2c.c" 4306 ;; Parameters: Size Location Type 4307 ;; None 4308 ;; Auto vars: Size Location Type 4309 ;; None 4310 ;; Return value: Size Location Type 4311 ;; 1 wreg void 4312 ;; Registers used: 4313 ;; wreg, status,2, status,0, pclath, cstack 4314 ;; Tracked objects: 4315 ;; On entry : 0/0 4316 ;; On exit : 0/0 4317 ;; Unchanged: 0/0 4318 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4319 ;; Params: 0 0 0 0 0 4320 ;; Locals: 0 0 0 0 0 4321 ;; Temps: 0 0 0 0 0 4322 ;; Totals: 0 0 0 0 0 4323 ;;Total ram usage: 0 bytes 4324 ;; Hardware stack levels used: 1 4325 ;; Hardware stack levels required when called: 1 4326 ;; This function calls: 4327 ;; _I2C_Master_Wait 4328 ;; This function is called by: 4329 ;; _Read_Alarms_Temp 4330 ;; _Update_Current_Date_Time 4331 ;; This function uses a non-reentrant model 4332 ;; 4333 4334 4335 ;psect for function _I2C_Master_Repeated_Start 4336 0CB1 _I2C_Master_Repeated_Start: 4337 4338 ;i2c.c: 32: I2C_Master_Wait(); 4339 4340 ;incstack = 0 4341 ; Regs used in _I2C_Master_Repeated_Start: [wreg+status,2+status,0+pclath+cstack] 4342 0CB1 120A 158A 24D6 fcall _I2C_Master_Wait 4343 4344 ;i2c.c: 33: RSEN = 1; 4345 0CB4 1683 bsf 3,5 ;RP0=1, select bank1 4346 0CB5 1303 bcf 3,6 ;RP1=0, select bank1 4347 0CB6 1491 bsf 17,1 ;volatile 4348 0CB7 0008 return 4349 0CB8 __end_of_I2C_Master_Repeated_Start: 4350 4351 psect text22 4352 0D73 __ptext22: 4353 ;; *************** function _I2C_Master_Read ***************** 4354 ;; Defined at: 4355 ;; line 48 in file "i2c.c" 4356 ;; Parameters: Size Location Type 4357 ;; ack 2 0[COMMON] unsigned short 4358 ;; Auto vars: Size Location Type 4359 ;; incoming 2 4[COMMON] unsigned short 4360 ;; Return value: Size Location Type 4361 ;; 2 0[COMMON] unsigned short 4362 ;; Registers used: 4363 ;; wreg, status,2, status,0, pclath, cstack 4364 ;; Tracked objects: 4365 ;; On entry : 0/0 4366 ;; On exit : 0/0 4367 ;; Unchanged: 0/0 4368 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4369 ;; Params: 2 0 0 0 0 4370 ;; Locals: 2 0 0 0 0 4371 ;; Temps: 2 0 0 0 0 4372 ;; Totals: 6 0 0 0 0 4373 ;;Total ram usage: 6 bytes 4374 ;; Hardware stack levels used: 1 4375 ;; Hardware stack levels required when called: 1 4376 ;; This function calls: 4377 ;; _I2C_Master_Wait 4378 ;; This function is called by: 4379 ;; _Read_Alarms_Temp 4380 ;; _Update_Current_Date_Time 4381 ;; This function uses a non-reentrant model 4382 ;; 4383 4384 4385 ;psect for function _I2C_Master_Read 4386 0D73 _I2C_Master_Read: 4387 4388 ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack);i2c.c: 49: {;i2c.c: 50: + unsigned short incoming;;i2c.c: 51: I2C_Master_Wait(); 4389 4390 ;incstack = 0 4391 ; Regs used in _I2C_Master_Read: [wreg+status,2+status,0+pclath+cstack] 4392 0D73 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait 4393 4394 ;i2c.c: 52: RCEN = 1; 4395 0D78 1683 bsf 3,5 ;RP0=1, select bank1 4396 0D79 1303 bcf 3,6 ;RP1=0, select bank1 4397 0D7A 1591 bsf 17,3 ;volatile 4398 4399 ;i2c.c: 54: I2C_Master_Wait(); 4400 0D7B 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait 4401 4402 ;i2c.c: 55: incoming = SSPBUF; 4403 0D80 1283 bcf 3,5 ;RP0=0, select bank0 4404 0D81 1303 bcf 3,6 ;RP1=0, select bank0 4405 0D82 0813 movf 19,w ;volatile 4406 0D83 00F2 movwf ??_I2C_Master_Read 4407 0D84 01F3 clrf ??_I2C_Master_Read+1 4408 0D85 0872 movf ??_I2C_Master_Read,w 4409 0D86 00F4 movwf I2C_Master_Read@incoming 4410 0D87 0873 movf ??_I2C_Master_Read+1,w 4411 0D88 00F5 movwf I2C_Master_Read@incoming+1 4412 4413 ;i2c.c: 57: I2C_Master_Wait(); 4414 0D89 120A 158A 24D6 120A 158A fcall _I2C_Master_Wait 4415 4416 ;i2c.c: 58: ACKDT = (ack)?0:1; 4417 0D8E 0870 movf I2C_Master_Read@ack,w 4418 0D8F 0471 iorwf I2C_Master_Read@ack+1,w 4419 0D90 1D03 btfss 3,2 4420 0D91 2D96 goto u990 4421 0D92 1683 bsf 3,5 ;RP0=1, select bank1 4422 0D93 1303 bcf 3,6 ;RP1=0, select bank1 4423 0D94 1691 bsf 17,5 ;volatile 4424 0D95 2D99 goto l1766 4425 0D96 u990: 4426 0D96 1683 bsf 3,5 ;RP0=1, select bank1 4427 0D97 1303 bcf 3,6 ;RP1=0, select bank1 4428 0D98 1291 bcf 17,5 ;volatile 4429 0D99 l1766: 4430 4431 ;i2c.c: 59: ACKEN = 1; 4432 0D99 1611 bsf 17,4 ;volatile 4433 4434 ;i2c.c: 61: return incoming; 4435 0D9A 0875 movf I2C_Master_Read@incoming+1,w 4436 0D9B 00F1 movwf ?_I2C_Master_Read+1 4437 0D9C 0874 movf I2C_Master_Read@incoming,w 4438 0D9D 00F0 movwf ?_I2C_Master_Read 4439 0D9E 0008 return 4440 0D9F __end_of_I2C_Master_Read: 4441 4442 psect text23 4443 0CD6 __ptext23: 4444 ;; *************** function _I2C_Master_Wait ***************** 4445 ;; Defined at: 4446 ;; line 19 in file "i2c.c" 4447 ;; Parameters: Size Location Type 4448 ;; None 4449 ;; Auto vars: Size Location Type 4450 ;; None 4451 ;; Return value: Size Location Type 4452 ;; 1 wreg void 4453 ;; Registers used: 4454 ;; wreg, status,2 4455 ;; Tracked objects: 4456 ;; On entry : 0/0 4457 ;; On exit : 0/0 4458 ;; Unchanged: 0/0 4459 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4460 ;; Params: 0 0 0 0 0 4461 ;; Locals: 0 0 0 0 0 4462 ;; Temps: 0 0 0 0 0 4463 ;; Totals: 0 0 0 0 0 4464 ;;Total ram usage: 0 bytes 4465 ;; Hardware stack levels used: 1 4466 ;; This function calls: 4467 ;; Nothing 4468 ;; This function is called by: 4469 ;; _I2C_Master_Start 4470 ;; _I2C_Master_Repeated_Start 4471 ;; _I2C_Master_Stop 4472 ;; _I2C_Master_Write 4473 ;; _I2C_Master_Read 4474 ;; This function uses a non-reentrant model 4475 ;; 4476 4477 4478 ;psect for function _I2C_Master_Wait 4479 0CD6 _I2C_Master_Wait: 4480 0CD6 l1676: 4481 ;i2c.c: 21: while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ; 4482 4483 ;incstack = 0 4484 ; Regs used in _I2C_Master_Wait: [wreg+status,2] 4485 4486 0CD6 1683 bsf 3,5 ;RP0=1, select bank1 4487 0CD7 1303 bcf 3,6 ;RP1=0, select bank1 4488 0CD8 0811 movf 17,w ;volatile 4489 0CD9 391F andlw 31 4490 0CDA 1D03 btfss 3,2 4491 0CDB 2CD6 goto l1676 4492 0CDC 1D14 btfss 20,2 ;volatile 4493 0CDD 0008 return 4494 0CDE 2CD6 goto l1676 4495 0CDF __end_of_I2C_Master_Wait: 4496 4497 psect text24 4498 0074 __ptext24: 4499 ;; *************** function _BCD_2_DEC ***************** 4500 ;; Defined at: 4501 ;; line 19 in file "ds3231.c" 4502 ;; Parameters: Size Location Type 4503 ;; to_convert 2 6[COMMON] int 4504 ;; Auto vars: Size Location Type 4505 ;; None 4506 ;; Return value: Size Location Type 4507 ;; 2 6[COMMON] int 4508 ;; Registers used: 4509 ;; wreg, status,2, status,0, pclath, cstack 4510 ;; Tracked objects: 4511 ;; On entry : 0/0 4512 ;; On exit : 0/0 4513 ;; Unchanged: 0/0 4514 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4515 ;; Params: 2 0 0 0 0 4516 ;; Locals: 0 0 0 0 0 4517 ;; Temps: 2 0 0 0 0 4518 ;; Totals: 4 0 0 0 0 4519 ;;Total ram usage: 4 bytes 4520 ;; Hardware stack levels used: 1 4521 ;; Hardware stack levels required when called: 1 4522 ;; This function calls: 4523 ;; ___wmul 4524 ;; This function is called by: 4525 ;; _Read_Alarms_Temp 4526 ;; _Update_Current_Date_Time 4527 ;; This function uses a non-reentrant model 4528 ;; 4529 4530 4531 ;psect for function _BCD_2_DEC 4532 0074 _BCD_2_DEC: 4533 4534 ;ds3231.c: 20: return (to_convert >> 4) * 10 + (to_convert & 0x0F); 4535 4536 ;incstack = 0 4537 ; Regs used in _BCD_2_DEC: [wreg+status,2+status,0+pclath+cstack] 4538 0074 300F movlw 15 4539 0075 0576 andwf BCD_2_DEC@to_convert,w 4540 0076 00F8 movwf ??_BCD_2_DEC 4541 0077 3000 movlw 0 4542 0078 0577 andwf BCD_2_DEC@to_convert+1,w 4543 0079 00F9 movwf ??_BCD_2_DEC+1 4544 007A 0E76 swapf BCD_2_DEC@to_convert,w 4545 007B 390F andlw 15 4546 007C 00F0 movwf ___wmul@multiplier 4547 007D 0E77 swapf BCD_2_DEC@to_convert+1,w 4548 007E 39F0 andlw 240 4549 007F 04F0 iorwf ___wmul@multiplier,f 4550 0080 0E77 swapf BCD_2_DEC@to_convert+1,w 4551 0081 390F andlw 15 4552 0082 00F1 movwf ___wmul@multiplier+1 4553 0083 30F0 movlw 240 4554 0084 1DF1 btfss ___wmul@multiplier+1,3 4555 0085 3000 movlw 0 4556 0086 04F1 iorwf ___wmul@multiplier+1,f 4557 0087 300A movlw 10 4558 0088 00F2 movwf ___wmul@multiplicand 4559 0089 3000 movlw 0 4560 008A 00F3 movwf ___wmul@multiplicand+1 4561 008B 120A 158A 2552 fcall ___wmul 4562 008E 0878 movf ??_BCD_2_DEC,w 4563 008F 0770 addwf ?___wmul,w 4564 0090 00F6 movwf ?_BCD_2_DEC 4565 0091 0879 movf ??_BCD_2_DEC+1,w 4566 0092 1803 skipnc 4567 0093 0A79 incf ??_BCD_2_DEC+1,w 4568 0094 0771 addwf ?___wmul+1,w 4569 0095 00F7 movwf ?_BCD_2_DEC+1 4570 0096 0008 return 4571 0097 __end_of_BCD_2_DEC: 4572 4573 psect text25 4574 0D52 __ptext25: 4575 ;; *************** function ___wmul ***************** 4576 ;; Defined at: 4577 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c" 4578 ;; Parameters: Size Location Type 4579 ;; multiplier 2 0[COMMON] unsigned int 4580 ;; multiplicand 2 2[COMMON] unsigned int 4581 ;; Auto vars: Size Location Type 4582 ;; product 2 4[COMMON] unsigned int 4583 ;; Return value: Size Location Type 4584 ;; 2 0[COMMON] unsigned int 4585 ;; Registers used: 4586 ;; wreg, status,2, status,0 4587 ;; Tracked objects: 4588 ;; On entry : 0/0 4589 ;; On exit : 0/0 4590 ;; Unchanged: 0/0 4591 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4592 ;; Params: 4 0 0 0 0 4593 ;; Locals: 2 0 0 0 0 4594 ;; Temps: 0 0 0 0 0 4595 ;; Totals: 6 0 0 0 0 4596 ;;Total ram usage: 6 bytes 4597 ;; Hardware stack levels used: 1 4598 ;; This function calls: 4599 ;; Nothing 4600 ;; This function is called by: 4601 ;; _format_Temperature 4602 ;; _BCD_2_DEC 4603 ;; This function uses a non-reentrant model 4604 ;; 4605 4606 4607 ;psect for function ___wmul 4608 0D52 ___wmul: 4609 4610 ;incstack = 0 4611 ; Regs used in ___wmul: [wreg+status,2+status,0] 4612 0D52 01F4 clrf ___wmul@product 4613 0D53 01F5 clrf ___wmul@product+1 4614 0D54 l1682: 4615 0D54 1C70 btfss ___wmul@multiplier,0 4616 0D55 2D5C goto l578 4617 0D56 0872 movf ___wmul@multiplicand,w 4618 0D57 07F4 addwf ___wmul@product,f 4619 0D58 1803 skipnc 4620 0D59 0AF5 incf ___wmul@product+1,f 4621 0D5A 0873 movf ___wmul@multiplicand+1,w 4622 0D5B 07F5 addwf ___wmul@product+1,f 4623 0D5C l578: 4624 0D5C 3001 movlw 1 4625 0D5D u895: 4626 0D5D 1003 clrc 4627 0D5E 0DF2 rlf ___wmul@multiplicand,f 4628 0D5F 0DF3 rlf ___wmul@multiplicand+1,f 4629 0D60 3EFF addlw -1 4630 0D61 1D03 skipz 4631 0D62 2D5D goto u895 4632 0D63 3001 movlw 1 4633 0D64 u905: 4634 0D64 1003 clrc 4635 0D65 0CF1 rrf ___wmul@multiplier+1,f 4636 0D66 0CF0 rrf ___wmul@multiplier,f 4637 0D67 3EFF addlw -1 4638 0D68 1D03 skipz 4639 0D69 2D64 goto u905 4640 0D6A 0870 movf ___wmul@multiplier,w 4641 0D6B 0471 iorwf ___wmul@multiplier+1,w 4642 0D6C 1D03 btfss 3,2 4643 0D6D 2D54 goto l1682 4644 0D6E 0875 movf ___wmul@product+1,w 4645 0D6F 00F1 movwf ?___wmul+1 4646 0D70 0874 movf ___wmul@product,w 4647 0D71 00F0 movwf ?___wmul 4648 0D72 0008 return 4649 0D73 __end_of___wmul: 4650 4651 psect text26 4652 0190 __ptext26: 4653 ;; *************** function _Lcd_Init ***************** 4654 ;; Defined at: 4655 ;; line 58 in file "lcd.c" 4656 ;; Parameters: Size Location Type 4657 ;; None 4658 ;; Auto vars: Size Location Type 4659 ;; None 4660 ;; Return value: Size Location Type 4661 ;; 1 wreg void 4662 ;; Registers used: 4663 ;; wreg, status,2, status,0, pclath, cstack 4664 ;; Tracked objects: 4665 ;; On entry : 0/0 4666 ;; On exit : 0/0 4667 ;; Unchanged: 0/0 4668 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4669 ;; Params: 0 0 0 0 0 4670 ;; Locals: 0 0 0 0 0 4671 ;; Temps: 2 0 0 0 0 4672 ;; Totals: 2 0 0 0 0 4673 ;;Total ram usage: 2 bytes 4674 ;; Hardware stack levels used: 1 4675 ;; Hardware stack levels required when called: 2 4676 ;; This function calls: 4677 ;; _Lcd_Cmd 4678 ;; _Lcd_Port 4679 ;; This function is called by: 4680 ;; _main 4681 ;; This function uses a non-reentrant model 4682 ;; 4683 4684 4685 ;psect for function _Lcd_Init 4686 0190 _Lcd_Init: 4687 4688 ;lcd.c: 59: Lcd_Port(0x00); 4689 4690 ;incstack = 0 4691 ; Regs used in _Lcd_Init: [wreg+status,2+status,0+pclath+cstack] 4692 0190 3000 movlw 0 4693 0191 120A 158A 251E 120A 118A fcall _Lcd_Port 4694 4695 ;lcd.c: 60: _delay((unsigned long)((20)*(20000000/4000.0))); 4696 0196 3082 movlw 130 4697 0197 00F5 movwf ??_Lcd_Init+1 4698 0198 30DD movlw 221 4699 0199 00F4 movwf ??_Lcd_Init 4700 019A u1647: 4701 019A 0BF4 decfsz ??_Lcd_Init,f 4702 019B 299A goto u1647 4703 019C 0BF5 decfsz ??_Lcd_Init+1,f 4704 019D 299A goto u1647 4705 019E 299F nop2 4706 4707 ;lcd.c: 61: Lcd_Cmd(0x03); 4708 019F 3003 movlw 3 4709 01A0 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4710 4711 ;lcd.c: 62: _delay((unsigned long)((5)*(20000000/4000.0))); 4712 01A5 3021 movlw 33 4713 01A6 00F5 movwf ??_Lcd_Init+1 4714 01A7 3076 movlw 118 4715 01A8 00F4 movwf ??_Lcd_Init 4716 01A9 u1657: 4717 01A9 0BF4 decfsz ??_Lcd_Init,f 4718 01AA 29A9 goto u1657 4719 01AB 0BF5 decfsz ??_Lcd_Init+1,f 4720 01AC 29A9 goto u1657 4721 01AD 0000 nop 4722 4723 ;lcd.c: 63: Lcd_Cmd(0x03); 4724 01AE 3003 movlw 3 4725 01AF 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4726 4727 ;lcd.c: 64: _delay((unsigned long)((11)*(20000000/4000.0))); 4728 01B4 3048 movlw 72 4729 01B5 00F5 movwf ??_Lcd_Init+1 4730 01B6 306C movlw 108 4731 01B7 00F4 movwf ??_Lcd_Init 4732 01B8 u1667: 4733 01B8 0BF4 decfsz ??_Lcd_Init,f 4734 01B9 29B8 goto u1667 4735 01BA 0BF5 decfsz ??_Lcd_Init+1,f 4736 01BB 29B8 goto u1667 4737 01BC 0000 nop 4738 4739 ;lcd.c: 65: Lcd_Cmd(0x03); 4740 01BD 3003 movlw 3 4741 01BE 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4742 4743 ;lcd.c: 67: Lcd_Cmd(0x02); 4744 01C3 3002 movlw 2 4745 01C4 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4746 4747 ;lcd.c: 68: Lcd_Cmd(0x02); 4748 01C9 3002 movlw 2 4749 01CA 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4750 4751 ;lcd.c: 69: Lcd_Cmd(0x08); 4752 01CF 3008 movlw 8 4753 01D0 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4754 4755 ;lcd.c: 70: Lcd_Cmd(0x00); 4756 01D5 3000 movlw 0 4757 01D6 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4758 4759 ;lcd.c: 71: Lcd_Cmd(0x0C); 4760 01DB 300C movlw 12 4761 01DC 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4762 4763 ;lcd.c: 72: Lcd_Cmd(0x00); 4764 01E1 3000 movlw 0 4765 01E2 120A 158A 2538 120A 118A fcall _Lcd_Cmd 4766 4767 ;lcd.c: 73: Lcd_Cmd(0x06); 4768 01E7 3006 movlw 6 4769 01E8 120A 158A 2538 fcall _Lcd_Cmd 4770 01EB 0008 return 4771 01EC __end_of_Lcd_Init: 4772 4773 psect text27 4774 0D38 __ptext27: 4775 ;; *************** function _Lcd_Cmd ***************** 4776 ;; Defined at: 4777 ;; line 28 in file "lcd.c" 4778 ;; Parameters: Size Location Type 4779 ;; a 1 wreg unsigned char 4780 ;; Auto vars: Size Location Type 4781 ;; a 1 3[COMMON] unsigned char 4782 ;; Return value: Size Location Type 4783 ;; 1 wreg void 4784 ;; Registers used: 4785 ;; wreg, status,2, status,0, pclath, cstack 4786 ;; Tracked objects: 4787 ;; On entry : 0/0 4788 ;; On exit : 0/0 4789 ;; Unchanged: 0/0 4790 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4791 ;; Params: 0 0 0 0 0 4792 ;; Locals: 1 0 0 0 0 4793 ;; Temps: 2 0 0 0 0 4794 ;; Totals: 3 0 0 0 0 4795 ;;Total ram usage: 3 bytes 4796 ;; Hardware stack levels used: 1 4797 ;; Hardware stack levels required when called: 1 4798 ;; This function calls: 4799 ;; _Lcd_Port 4800 ;; This function is called by: 4801 ;; _Lcd_Clear 4802 ;; _Lcd_Set_Cursor 4803 ;; _Lcd_Init 4804 ;; _Lcd_Shift_Right 4805 ;; _Lcd_Shift_Left 4806 ;; This function uses a non-reentrant model 4807 ;; 4808 4809 4810 ;psect for function _Lcd_Cmd 4811 0D38 _Lcd_Cmd: 4812 4813 ;incstack = 0 4814 ; Regs used in _Lcd_Cmd: [wreg+status,2+status,0+pclath+cstack] 4815 ;Lcd_Cmd@a stored from wreg 4816 0D38 00F3 movwf Lcd_Cmd@a 4817 4818 ;lcd.c: 29: RD2 = 0; 4819 0D39 1283 bcf 3,5 ;RP0=0, select bank0 4820 0D3A 1303 bcf 3,6 ;RP1=0, select bank0 4821 0D3B 1108 bcf 8,2 ;volatile 4822 4823 ;lcd.c: 30: Lcd_Port(a); 4824 0D3C 0873 movf Lcd_Cmd@a,w 4825 0D3D 120A 158A 251E 120A 158A fcall _Lcd_Port 4826 4827 ;lcd.c: 31: RD3 = 1; 4828 0D42 1283 bcf 3,5 ;RP0=0, select bank0 4829 0D43 1303 bcf 3,6 ;RP1=0, select bank0 4830 0D44 1588 bsf 8,3 ;volatile 4831 4832 ;lcd.c: 32: _delay((unsigned long)((4)*(20000000/4000.0))); 4833 0D45 301A movlw 26 4834 0D46 00F2 movwf ??_Lcd_Cmd+1 4835 0D47 30F8 movlw 248 4836 0D48 00F1 movwf ??_Lcd_Cmd 4837 0D49 u1677: 4838 0D49 0BF1 decfsz ??_Lcd_Cmd,f 4839 0D4A 2D49 goto u1677 4840 0D4B 0BF2 decfsz ??_Lcd_Cmd+1,f 4841 0D4C 2D49 goto u1677 4842 0D4D 0000 nop 4843 4844 ;lcd.c: 33: RD3 = 0; 4845 0D4E 1283 bcf 3,5 ;RP0=0, select bank0 4846 0D4F 1303 bcf 3,6 ;RP1=0, select bank0 4847 0D50 1188 bcf 8,3 ;volatile 4848 0D51 0008 return 4849 0D52 __end_of_Lcd_Cmd: 4850 4851 psect text28 4852 0D1E __ptext28: 4853 ;; *************** function _Lcd_Port ***************** 4854 ;; Defined at: 4855 ;; line 6 in file "lcd.c" 4856 ;; Parameters: Size Location Type 4857 ;; a 1 wreg unsigned char 4858 ;; Auto vars: Size Location Type 4859 ;; a 1 0[COMMON] unsigned char 4860 ;; Return value: Size Location Type 4861 ;; 1 wreg void 4862 ;; Registers used: 4863 ;; wreg 4864 ;; Tracked objects: 4865 ;; On entry : 0/0 4866 ;; On exit : 0/0 4867 ;; Unchanged: 0/0 4868 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4869 ;; Params: 0 0 0 0 0 4870 ;; Locals: 1 0 0 0 0 4871 ;; Temps: 0 0 0 0 0 4872 ;; Totals: 1 0 0 0 0 4873 ;;Total ram usage: 1 bytes 4874 ;; Hardware stack levels used: 1 4875 ;; This function calls: 4876 ;; Nothing 4877 ;; This function is called by: 4878 ;; _Lcd_Cmd 4879 ;; _Lcd_Init 4880 ;; _Lcd_Write_Char 4881 ;; This function uses a non-reentrant model 4882 ;; 4883 4884 4885 ;psect for function _Lcd_Port 4886 0D1E _Lcd_Port: 4887 4888 ;incstack = 0 4889 ; Regs used in _Lcd_Port: [wreg] 4890 ;Lcd_Port@a stored from wreg 4891 0D1E 00F0 movwf Lcd_Port@a 4892 4893 ;lcd.c: 7: if (a & 1) 4894 0D1F 1C70 btfss Lcd_Port@a,0 4895 0D20 2D25 goto l202 4896 4897 ;lcd.c: 8: RD4 = 1; 4898 0D21 1283 bcf 3,5 ;RP0=0, select bank0 4899 0D22 1303 bcf 3,6 ;RP1=0, select bank0 4900 0D23 1608 bsf 8,4 ;volatile 4901 0D24 2D28 goto l203 4902 0D25 l202: 4903 ;lcd.c: 9: else 4904 4905 4906 ;lcd.c: 10: RD4 = 0; 4907 0D25 1283 bcf 3,5 ;RP0=0, select bank0 4908 0D26 1303 bcf 3,6 ;RP1=0, select bank0 4909 0D27 1208 bcf 8,4 ;volatile 4910 0D28 l203: 4911 4912 ;lcd.c: 12: if (a & 2) 4913 0D28 1CF0 btfss Lcd_Port@a,1 4914 0D29 2D2C goto l204 4915 4916 ;lcd.c: 13: RD5 = 1; 4917 0D2A 1688 bsf 8,5 ;volatile 4918 0D2B 2D2D goto l205 4919 0D2C l204: 4920 ;lcd.c: 14: else 4921 4922 4923 ;lcd.c: 15: RD5 = 0; 4924 0D2C 1288 bcf 8,5 ;volatile 4925 0D2D l205: 4926 4927 ;lcd.c: 17: if (a & 4) 4928 0D2D 1D70 btfss Lcd_Port@a,2 4929 0D2E 2D31 goto l206 4930 4931 ;lcd.c: 18: RD6 = 1; 4932 0D2F 1708 bsf 8,6 ;volatile 4933 0D30 2D32 goto l207 4934 0D31 l206: 4935 ;lcd.c: 19: else 4936 4937 4938 ;lcd.c: 20: RD6 = 0; 4939 0D31 1308 bcf 8,6 ;volatile 4940 0D32 l207: 4941 4942 ;lcd.c: 22: if (a & 8) 4943 0D32 1DF0 btfss Lcd_Port@a,3 4944 0D33 2D36 goto l208 4945 4946 ;lcd.c: 23: RD7 = 1; 4947 0D34 1788 bsf 8,7 ;volatile 4948 0D35 0008 return 4949 0D36 l208: 4950 ;lcd.c: 24: else 4951 4952 4953 ;lcd.c: 25: RD7 = 0; 4954 0D36 1388 bcf 8,7 ;volatile 4955 0D37 0008 return 4956 0D38 __end_of_Lcd_Port: 4957 4958 psect text29 4959 00E6 __ptext29: 4960 ;; *************** function _I2C_Master_Init ***************** 4961 ;; Defined at: 4962 ;; line 8 in file "i2c.c" 4963 ;; Parameters: Size Location Type 4964 ;; freq_K 4 13[BANK0 ] const unsigned long 4965 ;; Auto vars: Size Location Type 4966 ;; None 4967 ;; Return value: Size Location Type 4968 ;; 1 wreg void 4969 ;; Registers used: 4970 ;; wreg, status,2, status,0, pclath, cstack 4971 ;; Tracked objects: 4972 ;; On entry : 0/0 4973 ;; On exit : 0/0 4974 ;; Unchanged: 0/0 4975 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 4976 ;; Params: 0 4 0 0 0 4977 ;; Locals: 0 0 0 0 0 4978 ;; Temps: 0 4 0 0 0 4979 ;; Totals: 0 8 0 0 0 4980 ;;Total ram usage: 8 bytes 4981 ;; Hardware stack levels used: 1 4982 ;; Hardware stack levels required when called: 1 4983 ;; This function calls: 4984 ;; ___lldiv 4985 ;; ___lmul 4986 ;; This function is called by: 4987 ;; _main 4988 ;; This function uses a non-reentrant model 4989 ;; 4990 4991 4992 ;psect for function _I2C_Master_Init 4993 00E6 _I2C_Master_Init: 4994 4995 ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K);i2c.c: 9: {;i2c.c: 10: TRI + SC3 = 1; TRISC4 = 1; 4996 4997 ;incstack = 0 4998 ; Regs used in _I2C_Master_Init: [wreg+status,2+status,0+pclath+cstack] 4999 00E6 1683 bsf 3,5 ;RP0=1, select bank1 5000 00E7 1303 bcf 3,6 ;RP1=0, select bank1 5001 00E8 1587 bsf 7,3 ;volatile 5002 00E9 1607 bsf 7,4 ;volatile 5003 5004 ;i2c.c: 12: SSPCON = 0b00101000; 5005 00EA 3028 movlw 40 5006 00EB 1283 bcf 3,5 ;RP0=0, select bank0 5007 00EC 1303 bcf 3,6 ;RP1=0, select bank0 5008 00ED 0094 movwf 20 ;volatile 5009 5010 ;i2c.c: 13: SSPCON2 = 0b00000000; 5011 00EE 1683 bsf 3,5 ;RP0=1, select bank1 5012 00EF 1303 bcf 3,6 ;RP1=0, select bank1 5013 00F0 0191 clrf 17 ;volatile 5014 5015 ;i2c.c: 15: SSPADD = (20000000/(4*freq_K*100))-1; 5016 00F1 1283 bcf 3,5 ;RP0=0, select bank0 5017 00F2 1303 bcf 3,6 ;RP1=0, select bank0 5018 00F3 085A movf I2C_Master_Init@freq_K,w 5019 00F4 00DE movwf ??_I2C_Master_Init 5020 00F5 085B movf I2C_Master_Init@freq_K+1,w 5021 00F6 00DF movwf ??_I2C_Master_Init+1 5022 00F7 085C movf I2C_Master_Init@freq_K+2,w 5023 00F8 00E0 movwf ??_I2C_Master_Init+2 5024 00F9 085D movf I2C_Master_Init@freq_K+3,w 5025 00FA 00E1 movwf ??_I2C_Master_Init+3 5026 00FB 3002 movlw 2 5027 00FC u1455: 5028 00FC 1003 clrc 5029 00FD 0DDE rlf ??_I2C_Master_Init,f 5030 00FE 0DDF rlf ??_I2C_Master_Init+1,f 5031 00FF 0DE0 rlf ??_I2C_Master_Init+2,f 5032 0100 0DE1 rlf ??_I2C_Master_Init+3,f 5033 0101 3EFF addlw -1 5034 0102 1D03 skipz 5035 0103 28FC goto u1455 5036 0104 0861 movf ??_I2C_Master_Init+3,w 5037 0105 00F3 movwf ___lmul@multiplier+3 5038 0106 0860 movf ??_I2C_Master_Init+2,w 5039 0107 00F2 movwf ___lmul@multiplier+2 5040 0108 085F movf ??_I2C_Master_Init+1,w 5041 0109 00F1 movwf ___lmul@multiplier+1 5042 010A 085E movf ??_I2C_Master_Init,w 5043 010B 00F0 movwf ___lmul@multiplier 5044 010C 3000 movlw 0 5045 010D 00F7 movwf ___lmul@multiplicand+3 5046 010E 3000 movlw 0 5047 010F 00F6 movwf ___lmul@multiplicand+2 5048 0110 3000 movlw 0 5049 0111 00F5 movwf ___lmul@multiplicand+1 5050 0112 3064 movlw 100 5051 0113 00F4 movwf ___lmul@multiplicand 5052 0114 120A 158A 26A8 120A 118A fcall ___lmul 5053 0119 0873 movf ?___lmul+3,w 5054 011A 1283 bcf 3,5 ;RP0=0, select bank0 5055 011B 1303 bcf 3,6 ;RP1=0, select bank0 5056 011C 00D0 movwf ___lldiv@divisor+3 5057 011D 0872 movf ?___lmul+2,w 5058 011E 00CF movwf ___lldiv@divisor+2 5059 011F 0871 movf ?___lmul+1,w 5060 0120 00CE movwf ___lldiv@divisor+1 5061 0121 0870 movf ?___lmul,w 5062 0122 00CD movwf ___lldiv@divisor 5063 0123 3001 movlw 1 5064 0124 00D4 movwf ___lldiv@dividend+3 5065 0125 3031 movlw 49 5066 0126 00D3 movwf ___lldiv@dividend+2 5067 0127 302D movlw 45 5068 0128 00D2 movwf ___lldiv@dividend+1 5069 0129 3000 movlw 0 5070 012A 00D1 movwf ___lldiv@dividend 5071 012B 120A 118A 21EC fcall ___lldiv 5072 012E 1283 bcf 3,5 ;RP0=0, select bank0 5073 012F 1303 bcf 3,6 ;RP1=0, select bank0 5074 0130 084D movf ?___lldiv,w 5075 0131 3EFF addlw 255 5076 0132 1683 bsf 3,5 ;RP0=1, select bank1 5077 0133 1303 bcf 3,6 ;RP1=0, select bank1 5078 0134 0093 movwf 19 ;volatile 5079 5080 ;i2c.c: 16: SSPSTAT = 0b00000000; 5081 0135 0194 clrf 20 ;volatile 5082 0136 0008 return 5083 0137 __end_of_I2C_Master_Init: 5084 5085 psect text30 5086 0EA8 __ptext30: 5087 ;; *************** function ___lmul ***************** 5088 ;; Defined at: 5089 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul32.c" 5090 ;; Parameters: Size Location Type 5091 ;; multiplier 4 0[COMMON] unsigned long 5092 ;; multiplicand 4 4[COMMON] unsigned long 5093 ;; Auto vars: Size Location Type 5094 ;; product 4 9[COMMON] unsigned long 5095 ;; Return value: Size Location Type 5096 ;; 4 0[COMMON] unsigned long 5097 ;; Registers used: 5098 ;; wreg, status,2, status,0 5099 ;; Tracked objects: 5100 ;; On entry : 0/0 5101 ;; On exit : 0/0 5102 ;; Unchanged: 0/0 5103 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5104 ;; Params: 8 0 0 0 0 5105 ;; Locals: 4 0 0 0 0 5106 ;; Temps: 1 0 0 0 0 5107 ;; Totals: 13 0 0 0 0 5108 ;;Total ram usage: 13 bytes 5109 ;; Hardware stack levels used: 1 5110 ;; This function calls: 5111 ;; Nothing 5112 ;; This function is called by: 5113 ;; _I2C_Master_Init 5114 ;; This function uses a non-reentrant model 5115 ;; 5116 5117 5118 ;psect for function ___lmul 5119 0EA8 ___lmul: 5120 5121 ;incstack = 0 5122 ; Regs used in ___lmul: [wreg+status,2+status,0] 5123 0EA8 3000 movlw 0 5124 0EA9 00FC movwf ___lmul@product+3 5125 0EAA 3000 movlw 0 5126 0EAB 00FB movwf ___lmul@product+2 5127 0EAC 3000 movlw 0 5128 0EAD 00FA movwf ___lmul@product+1 5129 0EAE 3000 movlw 0 5130 0EAF 00F9 movwf ___lmul@product 5131 0EB0 l1778: 5132 0EB0 1C70 btfss ___lmul@multiplier,0 5133 0EB1 2EC6 goto l1782 5134 0EB2 0874 movf ___lmul@multiplicand,w 5135 0EB3 07F9 addwf ___lmul@product,f 5136 0EB4 0875 movf ___lmul@multiplicand+1,w 5137 0EB5 1103 clrz 5138 0EB6 1803 skipnc 5139 0EB7 3E01 addlw 1 5140 0EB8 1D03 btfss 3,2 5141 0EB9 07FA addwf ___lmul@product+1,f 5142 0EBA 0876 movf ___lmul@multiplicand+2,w 5143 0EBB 1103 clrz 5144 0EBC 1803 skipnc 5145 0EBD 3E01 addlw 1 5146 0EBE 1D03 btfss 3,2 5147 0EBF 07FB addwf ___lmul@product+2,f 5148 0EC0 0877 movf ___lmul@multiplicand+3,w 5149 0EC1 1103 clrz 5150 0EC2 1803 skipnc 5151 0EC3 3E01 addlw 1 5152 0EC4 1D03 btfss 3,2 5153 0EC5 07FC addwf ___lmul@product+3,f 5154 0EC6 l1782: 5155 0EC6 3001 movlw 1 5156 0EC7 00F8 movwf ??___lmul 5157 0EC8 u1035: 5158 0EC8 1003 clrc 5159 0EC9 0DF4 rlf ___lmul@multiplicand,f 5160 0ECA 0DF5 rlf ___lmul@multiplicand+1,f 5161 0ECB 0DF6 rlf ___lmul@multiplicand+2,f 5162 0ECC 0DF7 rlf ___lmul@multiplicand+3,f 5163 0ECD 0BF8 decfsz ??___lmul,f 5164 0ECE 2EC8 goto u1035 5165 0ECF 3001 movlw 1 5166 0ED0 u1045: 5167 0ED0 1003 clrc 5168 0ED1 0CF3 rrf ___lmul@multiplier+3,f 5169 0ED2 0CF2 rrf ___lmul@multiplier+2,f 5170 0ED3 0CF1 rrf ___lmul@multiplier+1,f 5171 0ED4 0CF0 rrf ___lmul@multiplier,f 5172 0ED5 3EFF addlw -1 5173 0ED6 1D03 skipz 5174 0ED7 2ED0 goto u1045 5175 0ED8 0873 movf ___lmul@multiplier+3,w 5176 0ED9 0472 iorwf ___lmul@multiplier+2,w 5177 0EDA 0471 iorwf ___lmul@multiplier+1,w 5178 0EDB 0470 iorwf ___lmul@multiplier,w 5179 0EDC 1D03 skipz 5180 0EDD 2EB0 goto l1778 5181 0EDE 087C movf ___lmul@product+3,w 5182 0EDF 00F3 movwf ?___lmul+3 5183 0EE0 087B movf ___lmul@product+2,w 5184 0EE1 00F2 movwf ?___lmul+2 5185 0EE2 087A movf ___lmul@product+1,w 5186 0EE3 00F1 movwf ?___lmul+1 5187 0EE4 0879 movf ___lmul@product,w 5188 0EE5 00F0 movwf ?___lmul 5189 0EE6 0008 return 5190 0EE7 __end_of___lmul: 5191 5192 psect text31 5193 01EC __ptext31: 5194 ;; *************** function ___lldiv ***************** 5195 ;; Defined at: 5196 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\__lldiv.c" 5197 ;; Parameters: Size Location Type 5198 ;; divisor 4 0[BANK0 ] unsigned long 5199 ;; dividend 4 4[BANK0 ] unsigned long 5200 ;; Auto vars: Size Location Type 5201 ;; quotient 4 8[BANK0 ] unsigned long 5202 ;; counter 1 12[BANK0 ] unsigned char 5203 ;; Return value: Size Location Type 5204 ;; 4 0[BANK0 ] unsigned long 5205 ;; Registers used: 5206 ;; wreg, status,2, status,0 5207 ;; Tracked objects: 5208 ;; On entry : 0/0 5209 ;; On exit : 0/0 5210 ;; Unchanged: 0/0 5211 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5212 ;; Params: 0 8 0 0 0 5213 ;; Locals: 0 5 0 0 0 5214 ;; Temps: 1 0 0 0 0 5215 ;; Totals: 1 13 0 0 0 5216 ;;Total ram usage: 14 bytes 5217 ;; Hardware stack levels used: 1 5218 ;; This function calls: 5219 ;; Nothing 5220 ;; This function is called by: 5221 ;; _I2C_Master_Init 5222 ;; This function uses a non-reentrant model 5223 ;; 5224 5225 5226 ;psect for function ___lldiv 5227 01EC ___lldiv: 5228 5229 ;incstack = 0 5230 ; Regs used in ___lldiv: [wreg+status,2+status,0] 5231 01EC 3000 movlw 0 5232 01ED 1283 bcf 3,5 ;RP0=0, select bank0 5233 01EE 1303 bcf 3,6 ;RP1=0, select bank0 5234 01EF 00D8 movwf ___lldiv@quotient+3 5235 01F0 3000 movlw 0 5236 01F1 00D7 movwf ___lldiv@quotient+2 5237 01F2 3000 movlw 0 5238 01F3 00D6 movwf ___lldiv@quotient+1 5239 01F4 3000 movlw 0 5240 01F5 00D5 movwf ___lldiv@quotient 5241 01F6 0850 movf ___lldiv@divisor+3,w 5242 01F7 044F iorwf ___lldiv@divisor+2,w 5243 01F8 044E iorwf ___lldiv@divisor+1,w 5244 01F9 044D iorwf ___lldiv@divisor,w 5245 01FA 1903 skipnz 5246 01FB 2A43 goto l1810 5247 01FC 01D9 clrf ___lldiv@counter 5248 01FD 0AD9 incf ___lldiv@counter,f 5249 01FE l1796: 5250 01FE 1BD0 btfsc ___lldiv@divisor+3,7 5251 01FF 2A0E goto l1798 5252 0200 3001 movlw 1 5253 0201 00FD movwf ??___lldiv 5254 0202 u1075: 5255 0202 1003 clrc 5256 0203 0DCD rlf ___lldiv@divisor,f 5257 0204 0DCE rlf ___lldiv@divisor+1,f 5258 0205 0DCF rlf ___lldiv@divisor+2,f 5259 0206 0DD0 rlf ___lldiv@divisor+3,f 5260 0207 0BFD decfsz ??___lldiv,f 5261 0208 2A02 goto u1075 5262 0209 3001 movlw 1 5263 020A 00FD movwf ??___lldiv 5264 020B 087D movf ??___lldiv,w 5265 020C 07D9 addwf ___lldiv@counter,f 5266 020D 29FE goto l1796 5267 020E l1798: 5268 020E 3001 movlw 1 5269 020F 00FD movwf ??___lldiv 5270 0210 u1095: 5271 0210 1003 clrc 5272 0211 0DD5 rlf ___lldiv@quotient,f 5273 0212 0DD6 rlf ___lldiv@quotient+1,f 5274 0213 0DD7 rlf ___lldiv@quotient+2,f 5275 0214 0DD8 rlf ___lldiv@quotient+3,f 5276 0215 0BFD decfsz ??___lldiv,f 5277 0216 2A10 goto u1095 5278 0217 0850 movf ___lldiv@divisor+3,w 5279 0218 0254 subwf ___lldiv@dividend+3,w 5280 0219 1D03 skipz 5281 021A 2A25 goto u1105 5282 021B 084F movf ___lldiv@divisor+2,w 5283 021C 0253 subwf ___lldiv@dividend+2,w 5284 021D 1D03 skipz 5285 021E 2A25 goto u1105 5286 021F 084E movf ___lldiv@divisor+1,w 5287 0220 0252 subwf ___lldiv@dividend+1,w 5288 0221 1D03 skipz 5289 0222 2A25 goto u1105 5290 0223 084D movf ___lldiv@divisor,w 5291 0224 0251 subwf ___lldiv@dividend,w 5292 0225 u1105: 5293 0225 1C03 skipc 5294 0226 2A36 goto l1806 5295 0227 084D movf ___lldiv@divisor,w 5296 0228 02D1 subwf ___lldiv@dividend,f 5297 0229 084E movf ___lldiv@divisor+1,w 5298 022A 1C03 skipc 5299 022B 0F4E incfsz ___lldiv@divisor+1,w 5300 022C 02D2 subwf ___lldiv@dividend+1,f 5301 022D 084F movf ___lldiv@divisor+2,w 5302 022E 1C03 skipc 5303 022F 0F4F incfsz ___lldiv@divisor+2,w 5304 0230 02D3 subwf ___lldiv@dividend+2,f 5305 0231 0850 movf ___lldiv@divisor+3,w 5306 0232 1C03 skipc 5307 0233 0F50 incfsz ___lldiv@divisor+3,w 5308 0234 02D4 subwf ___lldiv@dividend+3,f 5309 0235 1455 bsf ___lldiv@quotient,0 5310 0236 l1806: 5311 0236 3001 movlw 1 5312 0237 u1115: 5313 0237 1003 clrc 5314 0238 0CD0 rrf ___lldiv@divisor+3,f 5315 0239 0CCF rrf ___lldiv@divisor+2,f 5316 023A 0CCE rrf ___lldiv@divisor+1,f 5317 023B 0CCD rrf ___lldiv@divisor,f 5318 023C 3EFF addlw -1 5319 023D 1D03 skipz 5320 023E 2A37 goto u1115 5321 023F 3001 movlw 1 5322 0240 02D9 subwf ___lldiv@counter,f 5323 0241 1D03 btfss 3,2 5324 0242 2A0E goto l1798 5325 0243 l1810: 5326 0243 0858 movf ___lldiv@quotient+3,w 5327 0244 00D0 movwf ?___lldiv+3 5328 0245 0857 movf ___lldiv@quotient+2,w 5329 0246 00CF movwf ?___lldiv+2 5330 0247 0856 movf ___lldiv@quotient+1,w 5331 0248 00CE movwf ?___lldiv+1 5332 0249 0855 movf ___lldiv@quotient,w 5333 024A 00CD movwf ?___lldiv 5334 024B 0008 return 5335 024C __end_of___lldiv: 5336 5337 psect text32 5338 0D08 __ptext32: 5339 ;; *************** function _Get_Alarm_Status ***************** 5340 ;; Defined at: 5341 ;; line 221 in file "main.c" 5342 ;; Parameters: Size Location Type 5343 ;; None 5344 ;; Auto vars: Size Location Type 5345 ;; None 5346 ;; Return value: Size Location Type 5347 ;; 1 wreg void 5348 ;; Registers used: 5349 ;; wreg, status,2, status,0 5350 ;; Tracked objects: 5351 ;; On entry : 0/0 5352 ;; On exit : 0/0 5353 ;; Unchanged: 0/0 5354 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2 5355 ;; Params: 0 0 0 0 0 5356 ;; Locals: 0 0 0 0 0 5357 ;; Temps: 2 0 0 0 0 5358 ;; Totals: 2 0 0 0 0 5359 ;;Total ram usage: 2 bytes 5360 ;; Hardware stack levels used: 1 5361 ;; This function calls: 5362 ;; Nothing 5363 ;; This function is called by: 5364 ;; _main 5365 ;; This function uses a non-reentrant model 5366 ;; 5367 5368 5369 ;psect for function _Get_Alarm_Status 5370 0D08 _Get_Alarm_Status: 5371 5372 ;main.c: 222: alarm1_status = control_reg & 0x01; 5373 5374 ;incstack = 0 5375 ; Regs used in _Get_Alarm_Status: [wreg+status,2+status,0] 5376 0D08 3001 movlw 1 5377 0D09 1283 bcf 3,5 ;RP0=0, select bank0 5378 0D0A 1303 bcf 3,6 ;RP1=0, select bank0 5379 0D0B 0524 andwf _control_reg,w 5380 0D0C 00A8 movwf _alarm1_status 5381 0D0D 3000 movlw 0 5382 0D0E 0525 andwf _control_reg+1,w 5383 0D0F 00A9 movwf _alarm1_status+1 5384 5385 ;main.c: 223: alarm2_status = (control_reg >> 1) & 0x01; 5386 0D10 0825 movf _control_reg+1,w 5387 0D11 00F1 movwf ??_Get_Alarm_Status+1 5388 0D12 0824 movf _control_reg,w 5389 0D13 00F0 movwf ??_Get_Alarm_Status 5390 0D14 1003 clrc 5391 0D15 0CF1 rrf ??_Get_Alarm_Status+1,f 5392 0D16 0CF0 rrf ??_Get_Alarm_Status,f 5393 0D17 3001 movlw 1 5394 0D18 0570 andwf ??_Get_Alarm_Status,w 5395 0D19 00A6 movwf _alarm2_status 5396 0D1A 3000 movlw 0 5397 0D1B 0571 andwf ??_Get_Alarm_Status+1,w 5398 0D1C 00A7 movwf _alarm2_status+1 5399 0D1D 0008 return 5400 0D1E __end_of_Get_Alarm_Status: 5401 007E btemp set 126 ;btemp 5402 007E wtemp0 set 126 Data Sizes: Strings 92 Constant 0 Data 17 BSS 91 Persistent 0 Stack 0 Auto Spaces: Space Size Autos Used COMMON 14 14 14 BANK0 80 21 79 BANK1 80 0 50 BANK3 96 0 0 BANK2 96 0 0 Pointer List with Targets: Lcd_Write_String@a PTR unsigned char size(2) Largest target is 512 -> NULL(NULL[0]), RAM(DATA[512]), STR_11(CODE[16]), STR_10(CODE[15]), -> STR_9(CODE[16]), STR_8(CODE[17]), STR_7(CODE[4]), STR_6(CODE[4]), -> STR_5(CODE[4]), STR_4(CODE[4]), STR_3(CODE[4]), STR_2(CODE[4]), -> STR_1(CODE[4]), weekday PTR unsigned char size(2) Largest target is 512 -> NULL(NULL[0]), RAM(DATA[512]), STR_7(CODE[4]), STR_6(CODE[4]), -> STR_5(CODE[4]), STR_4(CODE[4]), STR_3(CODE[4]), STR_2(CODE[4]), -> STR_1(CODE[4]), Critical Paths under _main in COMMON _main->_display_Intro _main->_display_Lcd_Layout _update_Display->_Lcd_Set_Cursor _format_Temperature->___awdiv _format_DateTimeChars->___lwdiv _display_Lcd_Layout->_Lcd_Set_Cursor _display_Intro->_Lcd_Set_Cursor _Lcd_Write_String->_Lcd_Write_Char _Lcd_Write_Char->_Lcd_Port _Lcd_Set_Cursor->_Lcd_Cmd _Lcd_Clear->_Lcd_Cmd _Update_Current_Date_Time->_BCD_2_DEC _Read_Alarms_Temp->_BCD_2_DEC _BCD_2_DEC->_I2C_Master_Read _BCD_2_DEC->___wmul _Lcd_Init->_Lcd_Cmd _Lcd_Cmd->_Lcd_Port _I2C_Master_Init->___lldiv ___lldiv->___lmul Critical Paths under _main in BANK0 _main->_I2C_Master_Init _I2C_Master_Init->___lldiv Critical Paths under _main in BANK1 None. Critical Paths under _main in BANK3 None. Critical Paths under _main in BANK2 None. Call Graph Tables: --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (0) _main 0 0 0 25347 _Get_Alarm_Status _I2C_Master_Init _Lcd_Init _Read_Alarms_Temp _Update_Current_Date_Time _display_Intro _display_Lcd_Layout _format_DateTimeChars _format_Temperature _getWeekDay _update_Display --------------------------------------------------------------------------------- (1) _update_Display 1 1 0 2438 11 COMMON 1 1 0 _Lcd_Set_Cursor _Lcd_Write_Char _Lcd_Write_String _alarm --------------------------------------------------------------------------------- (2) _alarm 9 7 2 244 0 COMMON 9 7 2 --------------------------------------------------------------------------------- (1) _getWeekDay 2 0 2 98 0 COMMON 2 0 2 --------------------------------------------------------------------------------- (1) _format_Temperature 1 1 0 1752 9 COMMON 1 1 0 ___awdiv ___awmod ___wmul --------------------------------------------------------------------------------- (2) ___awmod 7 3 4 600 0 COMMON 7 3 4 --------------------------------------------------------------------------------- (2) ___awdiv 9 5 4 604 0 COMMON 9 5 4 --------------------------------------------------------------------------------- (1) _format_DateTimeChars 1 1 0 3665 8 COMMON 1 1 0 ___lwdiv ___lwmod --------------------------------------------------------------------------------- (2) ___lwmod 6 2 4 1831 0 COMMON 6 2 4 --------------------------------------------------------------------------------- (2) ___lwdiv 8 4 4 1834 0 COMMON 8 4 4 --------------------------------------------------------------------------------- (1) _display_Lcd_Layout 3 3 0 2304 11 COMMON 3 3 0 _Lcd_Clear _Lcd_Set_Cursor _Lcd_Write_Char _Lcd_Write_String --------------------------------------------------------------------------------- (1) _display_Intro 3 3 0 2126 11 COMMON 3 3 0 _Lcd_Clear _Lcd_Set_Cursor _Lcd_Write_String --------------------------------------------------------------------------------- (2) _Lcd_Write_String 4 2 2 648 5 COMMON 4 2 2 _Lcd_Write_Char --------------------------------------------------------------------------------- (3) _Lcd_Write_Char 4 4 0 178 1 COMMON 4 4 0 _Lcd_Port --------------------------------------------------------------------------------- (2) _Lcd_Set_Cursor 7 6 1 1368 4 COMMON 7 6 1 _Lcd_Cmd --------------------------------------------------------------------------------- (2) _Lcd_Clear 0 0 0 110 _Lcd_Cmd --------------------------------------------------------------------------------- (1) _Update_Current_Date_Time 0 0 0 6055 _BCD_2_DEC _I2C_Master_Read _I2C_Master_Repeated_Start _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (1) _Read_Alarms_Temp 0 0 0 6055 _BCD_2_DEC _I2C_Master_Read _I2C_Master_Repeated_Start _I2C_Master_Start _I2C_Master_Stop _I2C_Master_Write --------------------------------------------------------------------------------- (2) _I2C_Master_Write 2 0 2 3062 0 COMMON 2 0 2 _I2C_Master_Wait --------------------------------------------------------------------------------- (2) _I2C_Master_Stop 0 0 0 0 _I2C_Master_Wait --------------------------------------------------------------------------------- (2) _I2C_Master_Start 0 0 0 0 _I2C_Master_Wait --------------------------------------------------------------------------------- (2) _I2C_Master_Repeated_Start 0 0 0 0 _I2C_Master_Wait --------------------------------------------------------------------------------- (2) _I2C_Master_Read 6 4 2 1565 0 COMMON 6 4 2 _I2C_Master_Wait --------------------------------------------------------------------------------- (3) _I2C_Master_Wait 0 0 0 0 --------------------------------------------------------------------------------- (2) _BCD_2_DEC 4 2 2 1428 6 COMMON 4 2 2 _I2C_Master_Read (ARG) ___wmul --------------------------------------------------------------------------------- (2) ___wmul 6 2 4 548 0 COMMON 6 2 4 --------------------------------------------------------------------------------- (1) _Lcd_Init 2 2 0 198 4 COMMON 2 2 0 _Lcd_Cmd _Lcd_Port --------------------------------------------------------------------------------- (3) _Lcd_Cmd 3 3 0 110 1 COMMON 3 3 0 _Lcd_Port --------------------------------------------------------------------------------- (4) _Lcd_Port 1 1 0 88 0 COMMON 1 1 0 --------------------------------------------------------------------------------- (1) _I2C_Master_Init 8 4 4 656 13 BANK0 8 4 4 ___lldiv ___lmul --------------------------------------------------------------------------------- (2) ___lmul 13 5 8 244 0 COMMON 13 5 8 --------------------------------------------------------------------------------- (2) ___lldiv 14 6 8 314 13 COMMON 1 1 0 0 BANK0 13 5 8 ___lmul (ARG) --------------------------------------------------------------------------------- (1) _Get_Alarm_Status 2 2 0 0 0 COMMON 2 2 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 4 --------------------------------------------------------------------------------- Call Graph Graphs: _main (ROOT) _Get_Alarm_Status _I2C_Master_Init ___lldiv ___lmul (ARG) ___lmul _Lcd_Init _Lcd_Cmd _Lcd_Port _Lcd_Port _Read_Alarms_Temp _BCD_2_DEC _I2C_Master_Read (ARG) _I2C_Master_Wait ___wmul (ARG) _I2C_Master_Read _I2C_Master_Wait _I2C_Master_Repeated_Start _I2C_Master_Wait _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _I2C_Master_Wait _Update_Current_Date_Time _BCD_2_DEC _I2C_Master_Read (ARG) _I2C_Master_Wait ___wmul (ARG) _I2C_Master_Read _I2C_Master_Wait _I2C_Master_Repeated_Start _I2C_Master_Wait _I2C_Master_Start _I2C_Master_Wait _I2C_Master_Stop _I2C_Master_Wait _I2C_Master_Write _I2C_Master_Wait _display_Intro _Lcd_Clear _Lcd_Cmd _Lcd_Port _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_String _Lcd_Write_Char _Lcd_Port _display_Lcd_Layout _Lcd_Clear _Lcd_Cmd _Lcd_Port _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _Lcd_Write_String _Lcd_Write_Char _Lcd_Port _format_DateTimeChars ___lwdiv ___lwmod _format_Temperature ___awdiv ___awmod ___wmul _getWeekDay _update_Display _Lcd_Set_Cursor _Lcd_Cmd _Lcd_Port _Lcd_Write_Char _Lcd_Port _Lcd_Write_String _Lcd_Write_Char _Lcd_Port _alarm Address spaces: Name Size Autos Total Cost Usage BANK3 60 0 0 9 0.0% BITBANK3 60 0 0 8 0.0% SFR3 0 0 0 4 0.0% BITSFR3 0 0 0 4 0.0% BANK2 60 0 0 11 0.0% BITBANK2 60 0 0 10 0.0% SFR2 0 0 0 5 0.0% BITSFR2 0 0 0 5 0.0% BANK1 50 0 32 7 62.5% BITBANK1 50 0 0 6 0.0% SFR1 0 0 0 2 0.0% BITSFR1 0 0 0 2 0.0% BANK0 50 15 4F 5 98.8% BITBANK0 50 0 0 4 0.0% SFR0 0 0 0 1 0.0% BITSFR0 0 0 0 1 0.0% COMMON E E E 1 100.0% BITCOMMON E 0 0 0 0.0% CODE 0 0 0 0 0.0% DATA 0 0 8F 12 0.0% ABS 0 0 8F 3 0.0% NULL 0 0 0 0 0.0% STACK 0 0 0 2 0.0% EEDATA 100 0 0 0 0.0% Microchip Technology PIC Macro Assembler V2.05 build -831301201 Symbol Table Sat Jul 27 22:33:52 2019 __end_of_format_DateTimeChars 07D3 pc 0002 __CFG_CP$OFF 0000 ___awdiv@sign 0076 fsr 0004 ___wmul@multiplicand 0072 l202 0D25 l203 0D28 l204 0D2C l205 0D2D l206 0D31 l207 0D32 l208 0D36 l171 00E5 l487 0F2A l489 0F34 l578 0D5C _RD1 0041 _RD2 0042 _RD3 0043 _RD4 0044 _RD5 0045 _RD6 0046 _RD7 0047 _PEN 048A __CFG_CPD$OFF 0000 _SEN 0488 u905 0D64 u935 0F77 u855 0E44 _RX9 00C6 u955 0F9C u990 0D96 u895 0D5D u975 0F55 u985 0F30 _TX9 04C6 _buf 00A0 _min 006A _sec 006C fsr0 0004 indf 0000 ___awmod@sign 0076 __CFG_FOSC$HS 0000 ?_display_Intro 0070 __CFG_LVP$OFF 0000 __end_of_update_Display 061A l2000 02D1 l2010 02F7 l2022 0312 l2014 0300 l2030 009F l2040 00C2 l2032 00A6 l2018 0309 l2034 00AD l2036 00B4 l2028 0098 l2044 00C9 l2038 00BB l2072 0607 l2146 00CE l2092 0274 l1810 0243 l1706 0F90 l1722 0DA1 l1806 0236 l1822 0141 l1840 0162 l1682 0D54 l1914 0E98 l1906 0E74 l1930 0DD2 l1850 0183 l1676 0CD6 l1908 0E82 l1932 0DE0 l1940 0DF9 l1828 014C l1782 0EC6 l1766 0D99 l1918 0EA3 l1854 018B l1846 0178 l1838 0154 l1870 0FC6 l1936 0DEE l1880 0FDA l1778 0EB0 l1866 0FBF l1796 01FE l1892 0FFB l1884 0FE8 l1798 020E l1878 0FCC l1888 0FF3 STR_1 0063 STR_2 005F STR_3 0057 STR_4 0053 STR_5 006B STR_6 005B STR_7 0067 STR_8 0013 STR_9 0034 _BRGH 04C2 _CREN 00C4 u1105 0225 u1115 0237 u1035 0EC8 u1045 0ED0 u1205 0179 u1075 0202 u1405 0DD5 u1165 0157 u1095 0210 u1335 0E77 u1425 0DE6 u1185 0163 u1265 0FCF u1355 0E83 u1435 0DEF u1195 016F u1365 0E8F u1285 0FE0 u1455 00FC u1607 0F20 u1375 0E99 u1295 0FE9 u1617 0E2B u1627 0E54 u1475 02D6 u1637 0E65 u1565 02A4 u1647 019A u1657 01A9 u1577 0F3B u1667 01B8 u1587 0F44 u1677 0D49 u1597 0F5D _RCEN 048B _RCIF 0065 _OERR 00C1 _SPEN 00C7 _RSEN 0489 _TXEN 04C5 _TXIF 0064 _SYNC 04C4 __CFG_WRT$OFF 0000 ?_Lcd_Write_String 0075 _date 0066 _main 024C _hour 0068 _year 0062 btemp 007E __CFG_BOREN$ON 0000 start 0000 ??_Lcd_Write_String 0077 __end_of_Lcd_Cmd 0D52 I2C_Master_Init@freq_K 005A ?_I2C_Master_Init 005A ?_I2C_Master_Read 0070 ?_I2C_Master_Wait 0070 ?_I2C_Master_Stop 0070 ?_main 0070 _ACKEN 048C _ACKDT 048D __end_of___awdiv 0190 STR_10 0044 STR_11 0024 __CFG_WDTE$OFF 0000 __end_of___awmod 1000 __end_of___lldiv 024C ___awdiv@divisor 0070 __end_of___lwdiv 0EA8 __end_of___lwmod 0DFE ___awdiv@counter 0075 _RCREG 001A _SPBRG 0099 _PORTC 0007 _PORTD 0008 __size_of_Lcd_Set_Cursor 004A _TRISC 0087 _TRISD 0088 _TXREG 0019 ___lmul@multiplicand 0074 __CFG_PWRTE$ON 0000 _display_Lcd_Layout 0EE7 _day_0 0046 _day_1 0045 __end_of_BCD_2_DEC 0097 _alarm 0F28 _min_0 004A _min_1 0049 _sec_0 004C _sec_1 004B ?_update_Display 0070 _month 0064 pclath 000A ?_display_Lcd_Layout 0070 status 0003 wtemp0 007E __end_of_Lcd_Init 01EC __end_of_Lcd_Port 0D38 __initialization 07D3 __end_of_main 02B8 ?_Get_Alarm_Status 0070 ??_display_Lcd_Layout 007B ??_main 007E ??_Get_Alarm_Status 0070 __size_of_Lcd_Clear 000B ?_I2C_Master_Start 0070 ??_display_Intro 007B ?_I2C_Master_Write 0070 ?_alarm 0070 ??_I2C_Master_Start 0070 ??_I2C_Master_Write 0072 _format_DateTimeChars 061A ___awdiv@dividend 0072 ??_Lcd_Cmd 0071 __size_of_Lcd_Write_Char 0039 _SSPADD 0093 _TRISC3 043B _TRISC4 043C _TRISC6 043E _TRISC7 043F _SSPCON 0014 _SSPBUF 0013 ___lmul 0EA8 ___wmul 0D52 ??___awdiv 0074 ??___awmod 0074 ??___lldiv 007D ??___lwdiv 0074 ??___lwmod 0074 ?_Read_Alarms_Temp 0070 alarm@i 0075 alarm@j 0077 _hour_0 0048 _hour_1 0047 ___awdiv@quotient 0077 ___awmod@divisor 0070 _temp_0 0040 _temp_1 003F _temp_2 003E _year_0 0042 _year_1 0041 ___awmod@counter 0075 __end_of_Update_Current_Date_Time 041C ??_Read_Alarms_Temp 007A _alarm1_min_0 003B _alarm1_min_1 003A _alarm1_sec_0 003D ?_format_DateTimeChars 0070 _alarm1_sec_1 003C _alarm2_min_0 0037 _alarm2_min_1 0036 Lcd_Set_Cursor@a 0077 Lcd_Set_Cursor@b 0074 Lcd_Set_Cursor@y 0079 Lcd_Set_Cursor@z 0078 __end_of__initialization 07FC __end_of_Lcd_Clear 0CEA __pcstackCOMMON 0070 __pidataBANK0 0CEA __pidataBANK1 0070 __end_of_alarm 0F6B _Lcd_Set_Cursor 0F6B _temperature_lsb 0022 _temperature_msb 0020 ?_Lcd_Init 0070 ??_alarm 0072 ?_Lcd_Port 0070 _alarm1_min 0030 _alarm1_sec 0032 _alarm2_min 002C __pbssBANK0 0020 __pbssBANK1 00A0 alarm@numberOfBeeps 0070 __end_of_format_Temperature 0339 __pmaintext 024C ?___lmul 0070 ?___wmul 0070 ___lmul@product 0079 __size_of_Lcd_Write_String 002D __end_of_Lcd_Set_Cursor 0FB5 _getWeekDay 0097 I2C_Master_Read@incoming 0074 ??_update_Display 007B ??_format_DateTimeChars 0078 _Update_Current_Date_Time 0339 ??_Lcd_Init 0074 ??_Lcd_Port 0070 _SSPCON2 0091 _SSPSTAT 0094 __stringtab 0003 _BCD_2_DEC 0074 _Lcd_Write_Char 0E33 _Lcd_Cmd 0D38 ___awdiv 0137 __size_of___lmul 003F ___awmod 0FB5 ___lldiv 01EC __size_of___wmul 0021 ___lwdiv 0E6C ___lwmod 0DCC ?_Lcd_Set_Cursor 0074 _century 00CE __ptext1 0513 __ptext2 0F28 __ptext3 0097 __ptext4 02B8 __ptext5 0FB5 __ptext6 0137 __ptext7 061A __ptext8 0DCC __ptext9 0E6C _sec_chg 00C8 ___awmod@dividend 0072 _month_0 0044 _month_1 0043 __size_of_I2C_Master_Init 0051 __size_of_I2C_Master_Read 002C __size_of_I2C_Master_Wait 0009 _weekday 00CA __size_of_I2C_Master_Stop 0007 clrloop0 0CCF __size_of_Get_Alarm_Status 0016 __end_of_Lcd_Write_Char 0E6C end_of_initialization 07FC ?_BCD_2_DEC 0076 __size_of_I2C_Master_Start 0007 __size_of_I2C_Master_Write 0008 ___lldiv@divisor 004D ___lldiv@counter 0059 Lcd_Port@a 0070 _alarm1_hour_0 0039 _alarm1_hour_1 0038 _alarm2_hour_0 0035 _alarm2_hour_1 0034 _alarm1_status 0028 _alarm2_status 0026 ?_getWeekDay 0070 __size_of_display_Lcd_Layout 0041 __end_of_display_Intro 0E33 __size_of_Read_Alarms_Temp 00F7 ?_Lcd_Write_Char 0070 Lcd_Write_String@a 0075 Lcd_Write_String@i 0077 _status_reg 00CC _Lcd_Clear 0CDF BCD_2_DEC@to_convert 0076 __end_of___lmul 0EE7 __end_of___wmul 0D73 _Lcd_Write_String 0D9F start_initialization 07D3 __size_of_Lcd_Init 005C __size_of_Lcd_Port 001A ??_BCD_2_DEC 0078 ??_I2C_Master_Init 005E ??_I2C_Master_Read 0072 ??_I2C_Master_Wait 0070 ??_I2C_Master_Stop 0070 __size_of_getWeekDay 004F ?_Lcd_Clear 0070 ??___lmul 0078 ??___wmul 0074 init_fetch0 0CF7 __pdataBANK0 0062 __pdataBANK1 00CE Lcd_Write_Char@a 0074 ??_Update_Current_Date_Time 007A Lcd_Write_Char@y 0073 _format_Temperature 02B8 _alarm1_hour 002E _alarm2_hour 002A __size_of_I2C_Master_Repeated_Start 0007 ?_I2C_Master_Repeated_Start 0070 ___latbits 0002 __pcstackBANK0 004D ?_format_Temperature 0070 _Get_Alarm_Status 0D08 ?_Lcd_Cmd 0070 _dayOfWeek 00D0 _I2C_Master_Start 0CB8 _I2C_Master_Write 0CC6 ??_format_Temperature 0079 ___lwdiv@dividend 0072 ??_Lcd_Set_Cursor 0075 ?___awdiv 0070 ?___awmod 0070 ?___lldiv 004D ?___lwdiv 0070 ?___lwmod 0070 I2C_Master_Write@data 0070 __pstrings 0003 __end_of_I2C_Master_Repeated_Start 0CB8 ___lwdiv@quotient 0075 __size_of_alarm 0043 __size_of_format_DateTimeChars 01B9 _Read_Alarms_Temp 041C ___wmul@product 0074 clear_ram0 0CCE Lcd_Cmd@a 0073 ??_Lcd_Clear 0074 _temp_sign 006E ??_getWeekDay 0072 __stringbase 0012 ___wmul@multiplier 0070 ??_Lcd_Write_Char 0071 _Lcd_Init 0190 _Lcd_Port 0D1E ___lmul@multiplier 0070 _control_reg 0024 __end_of_Lcd_Write_String 0DCC __size_of_update_Display 0107 __size_of_Lcd_Cmd 001A __end_of_getWeekDay 00E6 __end_of_display_Lcd_Layout 0F28 __size_of___awdiv 0059 __size_of___awmod 004B __size_of___lldiv 0060 __size_of___lwdiv 003C __size_of___lwmod 0032 __end_of__stringtab 0013 _I2C_Master_Init 00E6 _I2C_Master_Read 0D73 _I2C_Master_Wait 0CD6 _I2C_Master_Stop 0CBF ___lwdiv@divisor 0070 ___lwdiv@counter 0077 __ptext10 0EE7 __ptext11 0DFE __ptext20 0CB8 __ptext12 0D9F __ptext21 0CB1 __ptext13 0E33 __ptext30 0EA8 __ptext22 0D73 __ptext14 0F6B __ptext31 01EC __ptext23 0CD6 __ptext15 0CDF __ptext32 0D08 __ptext24 0074 __ptext16 0339 __ptext25 0D52 __ptext17 041C __ptext26 0190 __ptext18 0CC6 __ptext27 0D38 __ptext19 0CBF __ptext28 0D1E __ptext29 00E6 getWeekDay@dayOfWeek 0070 __size_of_main 006C __end_of_Get_Alarm_Status 0D1E __size_of_display_Intro 0035 I2C_Master_Read@ack 0070 ??_I2C_Master_Repeated_Start 0070 __end_of_I2C_Master_Start 0CBF __end_of_I2C_Master_Write 0CCE init_ram0 0CFB Lcd_Write_Char@temp 0072 ___lwmod@dividend 0072 ___lldiv@dividend 0051 stringcode 000D __end_of_Read_Alarms_Temp 0513 __end_of_I2C_Master_Init 0137 __end_of_I2C_Master_Read 0D9F __end_of_I2C_Master_Wait 0CDF __end_of_I2C_Master_Stop 0CC6 Lcd_Set_Cursor@temp 007A ___lldiv@quotient 0055 ___lwmod@divisor 0070 ___lwmod@counter 0075 stringdir 000D stringtab 0003 _display_Intro 0DFE __size_of_Update_Current_Date_Time 00E3 ?_Update_Current_Date_Time 0070 _update_Display 0513 _I2C_Master_Repeated_Start 0CB1 __size_of_format_Temperature 0081 __size_of_BCD_2_DEC 0023