Microchip Technology PIC PRO Macro Assembler V1.32 build 58300 Sun Mar 08 15:34:51 2020 Microchip Technology Omniscient Code Generator (PRO mode) build 58300 1 processor 16F1454 2 opt pw 120 3 opt pm 4 psect myAsmConst,global,abs,ovrld,class=CODE,delta=2 5 psect myAsmStore,global,abs,ovrld,class=CODE,delta=2 6 psect idataBANK5,global,class=CODE,delta=2 7 psect idataBANK6,global,class=CODE,delta=2 8 psect idataBANK8,global,class=CODE,delta=2 9 psect stringtext,global,reloc=256,class=STRCODE,delta=2 10 psect nvBANK4,global,class=BANK4,space=1,delta=1 11 psect nvBANK5,global,class=BANK5,space=1,delta=1 12 psect cinit,global,class=CODE,merge=1,delta=2 13 psect bssBANK0h,global,class=BANK0,space=1,delta=1 14 psect bssBANK4,global,class=BANK4,space=1,delta=1 15 psect bssBANK5,global,class=BANK5,space=1,delta=1 16 psect dataBANK5,global,class=BANK5,space=1,delta=1 17 psect bssBANK6,global,class=BANK6,space=1,delta=1 18 psect dataBANK6,global,class=BANK6,space=1,delta=1 19 psect bssBANK7,global,class=BANK7,space=1,delta=1 20 psect dataBANK8,global,class=BANK8,space=1,delta=1 21 psect bssBANK9,global,class=BANK9,space=1,delta=1 22 psect clrtext,global,class=CODE,delta=2 23 psect inittext,global,class=CODE,delta=2 24 psect cstackBANK4,global,class=BANK4,space=1,delta=1 25 psect cstackBANK3,global,class=BANK3,space=1,delta=1 26 psect cstackBANK2,global,class=BANK2,space=1,delta=1 27 psect cstackBANK1,global,class=BANK1,space=1,delta=1 28 psect cstackCOMMON,global,class=COMMON,space=1,delta=1 29 psect cstackBANK0h,global,class=BANK0,space=1,delta=1 30 psect text3,local,class=CODE,merge=1,inline,delta=2 31 psect text7,local,class=CODE,merge=1,inline,delta=2 32 psect text9,local,class=CODE,merge=1,delta=2 33 psect text10,local,class=CODE,merge=1,inline,delta=2 34 psect text12,local,class=CODE,merge=1,delta=2 35 psect text13,local,class=CODE,merge=1,delta=2 36 psect text16,local,class=CODE,merge=1,delta=2 37 psect swtext1,local,class=CONST,delta=2 38 psect text22,local,class=CODE,merge=1,delta=2 39 psect text28,local,class=CODE,merge=1,delta=2 40 psect text38,local,class=CODE,merge=1,delta=2 41 psect text39,local,class=CODE,merge=1,inline,delta=2 42 psect intentry,global,class=CODE,delta=2 43 psect swtext2,local,class=CONST,delta=2 44 psect text55,local,class=CODE,merge=1,delta=2 45 psect text56,local,class=CODE,merge=1,delta=2 46 psect swtext3,local,class=CONST,delta=2 47 psect text59,local,class=CODE,merge=1,delta=2 48 psect text61,local,class=CODE,merge=1,delta=2 49 psect text62,local,class=CODE,merge=1,delta=2 50 psect text65,local,class=CODE,merge=1,delta=2 51 psect text66,local,class=CODE,merge=1,delta=2 52 psect pa_nodes,global,class=CODE,delta=2 53 dabs 1,0x620,48 54 dabs 1,0x5A0,80 55 dabs 1,0x540,48 56 dabs 1,0x20,48,_BDT 57 dabs 1,0x50,8,_SetupPkt 58 dabs 1,0xA0,64,_cdc_data_tx 59 dabs 1,0x120,64,_cdc_data_rx 60 dabs 1,0x58,8,_CtrlTrfData 61 dabs 1,0x2340,0,_buffer 62 dabs 1,0x7E,2 63 0000 ;# 64 0001 ;# 65 0002 ;# 66 0003 ;# 67 0004 ;# 68 0005 ;# 69 0006 ;# 70 0007 ;# 71 0008 ;# 72 0009 ;# 73 000A ;# 74 000B ;# 75 000C ;# 76 000E ;# 77 0011 ;# 78 0012 ;# 79 0015 ;# 80 0016 ;# 81 0016 ;# 82 0017 ;# 83 0018 ;# 84 0019 ;# 85 001A ;# 86 001B ;# 87 001C ;# 88 008C ;# 89 008E ;# 90 0091 ;# 91 0092 ;# 92 0095 ;# 93 0096 ;# 94 0097 ;# 95 0098 ;# 96 0099 ;# 97 009A ;# 98 010C ;# 99 010E ;# 100 0116 ;# 101 0117 ;# 102 011D ;# 103 018C ;# 104 018E ;# 105 0191 ;# 106 0191 ;# 107 0192 ;# 108 0193 ;# 109 0193 ;# 110 0194 ;# 111 0195 ;# 112 0196 ;# 113 0197 ;# 114 0199 ;# 115 019A ;# 116 019B ;# 117 019B ;# 118 019C ;# 119 019D ;# 120 019E ;# 121 019F ;# 122 020C ;# 123 0211 ;# 124 0211 ;# 125 0212 ;# 126 0212 ;# 127 0213 ;# 128 0213 ;# 129 0214 ;# 130 0214 ;# 131 0215 ;# 132 0215 ;# 133 0215 ;# 134 0216 ;# 135 0216 ;# 136 0217 ;# 137 0217 ;# 138 0391 ;# 139 0392 ;# 140 0393 ;# 141 039A ;# 142 039B ;# 143 0611 ;# 144 0612 ;# 145 0613 ;# 146 0613 ;# 147 0614 ;# 148 0615 ;# 149 0616 ;# 150 0616 ;# 151 0E8E ;# 152 0E8F ;# 153 0E90 ;# 154 0E91 ;# 155 0E92 ;# 156 0E93 ;# 157 0E94 ;# 158 0E94 ;# 159 0E95 ;# 160 0E96 ;# 161 0E97 ;# 162 0E98 ;# 163 0E99 ;# 164 0E9A ;# 165 0E9B ;# 166 0E9C ;# 167 0E9D ;# 168 0E9E ;# 169 0E9F ;# 170 0FE4 ;# 171 0FE5 ;# 172 0FE6 ;# 173 0FE7 ;# 174 0FE8 ;# 175 0FE9 ;# 176 0FEA ;# 177 0FEB ;# 178 0FED ;# 179 0FEE ;# 180 0FEF ;# 181 0000 ;# 182 0001 ;# 183 0002 ;# 184 0003 ;# 185 0004 ;# 186 0005 ;# 187 0006 ;# 188 0007 ;# 189 0008 ;# 190 0009 ;# 191 000A ;# 192 000B ;# 193 000C ;# 194 000E ;# 195 0011 ;# 196 0012 ;# 197 0015 ;# 198 0016 ;# 199 0016 ;# 200 0017 ;# 201 0018 ;# 202 0019 ;# 203 001A ;# 204 001B ;# 205 001C ;# 206 008C ;# 207 008E ;# 208 0091 ;# 209 0092 ;# 210 0095 ;# 211 0096 ;# 212 0097 ;# 213 0098 ;# 214 0099 ;# 215 009A ;# 216 010C ;# 217 010E ;# 218 0116 ;# 219 0117 ;# 220 011D ;# 221 018C ;# 222 018E ;# 223 0191 ;# 224 0191 ;# 225 0192 ;# 226 0193 ;# 227 0193 ;# 228 0194 ;# 229 0195 ;# 230 0196 ;# 231 0197 ;# 232 0199 ;# 233 019A ;# 234 019B ;# 235 019B ;# 236 019C ;# 237 019D ;# 238 019E ;# 239 019F ;# 240 020C ;# 241 0211 ;# 242 0211 ;# 243 0212 ;# 244 0212 ;# 245 0213 ;# 246 0213 ;# 247 0214 ;# 248 0214 ;# 249 0215 ;# 250 0215 ;# 251 0215 ;# 252 0216 ;# 253 0216 ;# 254 0217 ;# 255 0217 ;# 256 0391 ;# 257 0392 ;# 258 0393 ;# 259 039A ;# 260 039B ;# 261 0611 ;# 262 0612 ;# 263 0613 ;# 264 0613 ;# 265 0614 ;# 266 0615 ;# 267 0616 ;# 268 0616 ;# 269 0E8E ;# 270 0E8F ;# 271 0E90 ;# 272 0E91 ;# 273 0E92 ;# 274 0E93 ;# 275 0E94 ;# 276 0E94 ;# 277 0E95 ;# 278 0E96 ;# 279 0E97 ;# 280 0E98 ;# 281 0E99 ;# 282 0E9A ;# 283 0E9B ;# 284 0E9C ;# 285 0E9D ;# 286 0E9E ;# 287 0E9F ;# 288 0FE4 ;# 289 0FE5 ;# 290 0FE6 ;# 291 0FE7 ;# 292 0FE8 ;# 293 0FE9 ;# 294 0FEA ;# 295 0FEB ;# 296 0FED ;# 297 0FEE ;# 298 0FEF ;# 299 0000 ;# 300 0001 ;# 301 0002 ;# 302 0003 ;# 303 0004 ;# 304 0005 ;# 305 0006 ;# 306 0007 ;# 307 0008 ;# 308 0009 ;# 309 000A ;# 310 000B ;# 311 000C ;# 312 000E ;# 313 0011 ;# 314 0012 ;# 315 0015 ;# 316 0016 ;# 317 0016 ;# 318 0017 ;# 319 0018 ;# 320 0019 ;# 321 001A ;# 322 001B ;# 323 001C ;# 324 008C ;# 325 008E ;# 326 0091 ;# 327 0092 ;# 328 0095 ;# 329 0096 ;# 330 0097 ;# 331 0098 ;# 332 0099 ;# 333 009A ;# 334 010C ;# 335 010E ;# 336 0116 ;# 337 0117 ;# 338 011D ;# 339 018C ;# 340 018E ;# 341 0191 ;# 342 0191 ;# 343 0192 ;# 344 0193 ;# 345 0193 ;# 346 0194 ;# 347 0195 ;# 348 0196 ;# 349 0197 ;# 350 0199 ;# 351 019A ;# 352 019B ;# 353 019B ;# 354 019C ;# 355 019D ;# 356 019E ;# 357 019F ;# 358 020C ;# 359 0211 ;# 360 0211 ;# 361 0212 ;# 362 0212 ;# 363 0213 ;# 364 0213 ;# 365 0214 ;# 366 0214 ;# 367 0215 ;# 368 0215 ;# 369 0215 ;# 370 0216 ;# 371 0216 ;# 372 0217 ;# 373 0217 ;# 374 0391 ;# 375 0392 ;# 376 0393 ;# 377 039A ;# 378 039B ;# 379 0611 ;# 380 0612 ;# 381 0613 ;# 382 0613 ;# 383 0614 ;# 384 0615 ;# 385 0616 ;# 386 0616 ;# 387 0E8E ;# 388 0E8F ;# 389 0E90 ;# 390 0E91 ;# 391 0E92 ;# 392 0E93 ;# 393 0E94 ;# 394 0E94 ;# 395 0E95 ;# 396 0E96 ;# 397 0E97 ;# 398 0E98 ;# 399 0E99 ;# 400 0E9A ;# 401 0E9B ;# 402 0E9C ;# 403 0E9D ;# 404 0E9E ;# 405 0E9F ;# 406 0FE4 ;# 407 0FE5 ;# 408 0FE6 ;# 409 0FE7 ;# 410 0FE8 ;# 411 0FE9 ;# 412 0FEA ;# 413 0FEB ;# 414 0FED ;# 415 0FEE ;# 416 0FEF ;# 417 0000 ;# 418 0001 ;# 419 0002 ;# 420 0003 ;# 421 0004 ;# 422 0005 ;# 423 0006 ;# 424 0007 ;# 425 0008 ;# 426 0009 ;# 427 000A ;# 428 000B ;# 429 000C ;# 430 000E ;# 431 0011 ;# 432 0012 ;# 433 0015 ;# 434 0016 ;# 435 0016 ;# 436 0017 ;# 437 0018 ;# 438 0019 ;# 439 001A ;# 440 001B ;# 441 001C ;# 442 008C ;# 443 008E ;# 444 0091 ;# 445 0092 ;# 446 0095 ;# 447 0096 ;# 448 0097 ;# 449 0098 ;# 450 0099 ;# 451 009A ;# 452 010C ;# 453 010E ;# 454 0116 ;# 455 0117 ;# 456 011D ;# 457 018C ;# 458 018E ;# 459 0191 ;# 460 0191 ;# 461 0192 ;# 462 0193 ;# 463 0193 ;# 464 0194 ;# 465 0195 ;# 466 0196 ;# 467 0197 ;# 468 0199 ;# 469 019A ;# 470 019B ;# 471 019B ;# 472 019C ;# 473 019D ;# 474 019E ;# 475 019F ;# 476 020C ;# 477 0211 ;# 478 0211 ;# 479 0212 ;# 480 0212 ;# 481 0213 ;# 482 0213 ;# 483 0214 ;# 484 0214 ;# 485 0215 ;# 486 0215 ;# 487 0215 ;# 488 0216 ;# 489 0216 ;# 490 0217 ;# 491 0217 ;# 492 0391 ;# 493 0392 ;# 494 0393 ;# 495 039A ;# 496 039B ;# 497 0611 ;# 498 0612 ;# 499 0613 ;# 500 0613 ;# 501 0614 ;# 502 0615 ;# 503 0616 ;# 504 0616 ;# 505 0E8E ;# 506 0E8F ;# 507 0E90 ;# 508 0E91 ;# 509 0E92 ;# 510 0E93 ;# 511 0E94 ;# 512 0E94 ;# 513 0E95 ;# 514 0E96 ;# 515 0E97 ;# 516 0E98 ;# 517 0E99 ;# 518 0E9A ;# 519 0E9B ;# 520 0E9C ;# 521 0E9D ;# 522 0E9E ;# 523 0E9F ;# 524 0FE4 ;# 525 0FE5 ;# 526 0FE6 ;# 527 0FE7 ;# 528 0FE8 ;# 529 0FE9 ;# 530 0FEA ;# 531 0FEB ;# 532 0FED ;# 533 0FEE ;# 534 0FEF ;# 535 0000 ;# 536 0001 ;# 537 0002 ;# 538 0003 ;# 539 0004 ;# 540 0005 ;# 541 0006 ;# 542 0007 ;# 543 0008 ;# 544 0009 ;# 545 000A ;# 546 000B ;# 547 000C ;# 548 000E ;# 549 0011 ;# 550 0012 ;# 551 0015 ;# 552 0016 ;# 553 0016 ;# 554 0017 ;# 555 0018 ;# 556 0019 ;# 557 001A ;# 558 001B ;# 559 001C ;# 560 008C ;# 561 008E ;# 562 0091 ;# 563 0092 ;# 564 0095 ;# 565 0096 ;# 566 0097 ;# 567 0098 ;# 568 0099 ;# 569 009A ;# 570 010C ;# 571 010E ;# 572 0116 ;# 573 0117 ;# 574 011D ;# 575 018C ;# 576 018E ;# 577 0191 ;# 578 0191 ;# 579 0192 ;# 580 0193 ;# 581 0193 ;# 582 0194 ;# 583 0195 ;# 584 0196 ;# 585 0197 ;# 586 0199 ;# 587 019A ;# 588 019B ;# 589 019B ;# 590 019C ;# 591 019D ;# 592 019E ;# 593 019F ;# 594 020C ;# 595 0211 ;# 596 0211 ;# 597 0212 ;# 598 0212 ;# 599 0213 ;# 600 0213 ;# 601 0214 ;# 602 0214 ;# 603 0215 ;# 604 0215 ;# 605 0215 ;# 606 0216 ;# 607 0216 ;# 608 0217 ;# 609 0217 ;# 610 0391 ;# 611 0392 ;# 612 0393 ;# 613 039A ;# 614 039B ;# 615 0611 ;# 616 0612 ;# 617 0613 ;# 618 0613 ;# 619 0614 ;# 620 0615 ;# 621 0616 ;# 622 0616 ;# 623 0E8E ;# 624 0E8F ;# 625 0E90 ;# 626 0E91 ;# 627 0E92 ;# 628 0E93 ;# 629 0E94 ;# 630 0E94 ;# 631 0E95 ;# 632 0E96 ;# 633 0E97 ;# 634 0E98 ;# 635 0E99 ;# 636 0E9A ;# 637 0E9B ;# 638 0E9C ;# 639 0E9D ;# 640 0E9E ;# 641 0E9F ;# 642 0FE4 ;# 643 0FE5 ;# 644 0FE6 ;# 645 0FE7 ;# 646 0FE8 ;# 647 0FE9 ;# 648 0FEA ;# 649 0FEB ;# 650 0FED ;# 651 0FEE ;# 652 0FEF ;# 653 0000 ;# 654 0001 ;# 655 0002 ;# 656 0003 ;# 657 0004 ;# 658 0005 ;# 659 0006 ;# 660 0007 ;# 661 0008 ;# 662 0009 ;# 663 000A ;# 664 000B ;# 665 000C ;# 666 000E ;# 667 0011 ;# 668 0012 ;# 669 0015 ;# 670 0016 ;# 671 0016 ;# 672 0017 ;# 673 0018 ;# 674 0019 ;# 675 001A ;# 676 001B ;# 677 001C ;# 678 008C ;# 679 008E ;# 680 0091 ;# 681 0092 ;# 682 0095 ;# 683 0096 ;# 684 0097 ;# 685 0098 ;# 686 0099 ;# 687 009A ;# 688 010C ;# 689 010E ;# 690 0116 ;# 691 0117 ;# 692 011D ;# 693 018C ;# 694 018E ;# 695 0191 ;# 696 0191 ;# 697 0192 ;# 698 0193 ;# 699 0193 ;# 700 0194 ;# 701 0195 ;# 702 0196 ;# 703 0197 ;# 704 0199 ;# 705 019A ;# 706 019B ;# 707 019B ;# 708 019C ;# 709 019D ;# 710 019E ;# 711 019F ;# 712 020C ;# 713 0211 ;# 714 0211 ;# 715 0212 ;# 716 0212 ;# 717 0213 ;# 718 0213 ;# 719 0214 ;# 720 0214 ;# 721 0215 ;# 722 0215 ;# 723 0215 ;# 724 0216 ;# 725 0216 ;# 726 0217 ;# 727 0217 ;# 728 0391 ;# 729 0392 ;# 730 0393 ;# 731 039A ;# 732 039B ;# 733 0611 ;# 734 0612 ;# 735 0613 ;# 736 0613 ;# 737 0614 ;# 738 0615 ;# 739 0616 ;# 740 0616 ;# 741 0E8E ;# 742 0E8F ;# 743 0E90 ;# 744 0E91 ;# 745 0E92 ;# 746 0E93 ;# 747 0E94 ;# 748 0E94 ;# 749 0E95 ;# 750 0E96 ;# 751 0E97 ;# 752 0E98 ;# 753 0E99 ;# 754 0E9A ;# 755 0E9B ;# 756 0E9C ;# 757 0E9D ;# 758 0E9E ;# 759 0E9F ;# 760 0FE4 ;# 761 0FE5 ;# 762 0FE6 ;# 763 0FE7 ;# 764 0FE8 ;# 765 0FE9 ;# 766 0FEA ;# 767 0FEB ;# 768 0FED ;# 769 0FEE ;# 770 0FEF ;# 771 0000 ;# 772 0001 ;# 773 0002 ;# 774 0003 ;# 775 0004 ;# 776 0005 ;# 777 0006 ;# 778 0007 ;# 779 0008 ;# 780 0009 ;# 781 000A ;# 782 000B ;# 783 000C ;# 784 000E ;# 785 0011 ;# 786 0012 ;# 787 0015 ;# 788 0016 ;# 789 0016 ;# 790 0017 ;# 791 0018 ;# 792 0019 ;# 793 001A ;# 794 001B ;# 795 001C ;# 796 008C ;# 797 008E ;# 798 0091 ;# 799 0092 ;# 800 0095 ;# 801 0096 ;# 802 0097 ;# 803 0098 ;# 804 0099 ;# 805 009A ;# 806 010C ;# 807 010E ;# 808 0116 ;# 809 0117 ;# 810 011D ;# 811 018C ;# 812 018E ;# 813 0191 ;# 814 0191 ;# 815 0192 ;# 816 0193 ;# 817 0193 ;# 818 0194 ;# 819 0195 ;# 820 0196 ;# 821 0197 ;# 822 0199 ;# 823 019A ;# 824 019B ;# 825 019B ;# 826 019C ;# 827 019D ;# 828 019E ;# 829 019F ;# 830 020C ;# 831 0211 ;# 832 0211 ;# 833 0212 ;# 834 0212 ;# 835 0213 ;# 836 0213 ;# 837 0214 ;# 838 0214 ;# 839 0215 ;# 840 0215 ;# 841 0215 ;# 842 0216 ;# 843 0216 ;# 844 0217 ;# 845 0217 ;# 846 0391 ;# 847 0392 ;# 848 0393 ;# 849 039A ;# 850 039B ;# 851 0611 ;# 852 0612 ;# 853 0613 ;# 854 0613 ;# 855 0614 ;# 856 0615 ;# 857 0616 ;# 858 0616 ;# 859 0E8E ;# 860 0E8F ;# 861 0E90 ;# 862 0E91 ;# 863 0E92 ;# 864 0E93 ;# 865 0E94 ;# 866 0E94 ;# 867 0E95 ;# 868 0E96 ;# 869 0E97 ;# 870 0E98 ;# 871 0E99 ;# 872 0E9A ;# 873 0E9B ;# 874 0E9C ;# 875 0E9D ;# 876 0E9E ;# 877 0E9F ;# 878 0FE4 ;# 879 0FE5 ;# 880 0FE6 ;# 881 0FE7 ;# 882 0FE8 ;# 883 0FE9 ;# 884 0FEA ;# 885 0FEB ;# 886 0FED ;# 887 0FEE ;# 888 0FEF ;# 889 0000 ;# 890 0001 ;# 891 0002 ;# 892 0003 ;# 893 0004 ;# 894 0005 ;# 895 0006 ;# 896 0007 ;# 897 0008 ;# 898 0009 ;# 899 000A ;# 900 000B ;# 901 000C ;# 902 000E ;# 903 0011 ;# 904 0012 ;# 905 0015 ;# 906 0016 ;# 907 0016 ;# 908 0017 ;# 909 0018 ;# 910 0019 ;# 911 001A ;# 912 001B ;# 913 001C ;# 914 008C ;# 915 008E ;# 916 0091 ;# 917 0092 ;# 918 0095 ;# 919 0096 ;# 920 0097 ;# 921 0098 ;# 922 0099 ;# 923 009A ;# 924 010C ;# 925 010E ;# 926 0116 ;# 927 0117 ;# 928 011D ;# 929 018C ;# 930 018E ;# 931 0191 ;# 932 0191 ;# 933 0192 ;# 934 0193 ;# 935 0193 ;# 936 0194 ;# 937 0195 ;# 938 0196 ;# 939 0197 ;# 940 0199 ;# 941 019A ;# 942 019B ;# 943 019B ;# 944 019C ;# 945 019D ;# 946 019E ;# 947 019F ;# 948 020C ;# 949 0211 ;# 950 0211 ;# 951 0212 ;# 952 0212 ;# 953 0213 ;# 954 0213 ;# 955 0214 ;# 956 0214 ;# 957 0215 ;# 958 0215 ;# 959 0215 ;# 960 0216 ;# 961 0216 ;# 962 0217 ;# 963 0217 ;# 964 0391 ;# 965 0392 ;# 966 0393 ;# 967 039A ;# 968 039B ;# 969 0611 ;# 970 0612 ;# 971 0613 ;# 972 0613 ;# 973 0614 ;# 974 0615 ;# 975 0616 ;# 976 0616 ;# 977 0E8E ;# 978 0E8F ;# 979 0E90 ;# 980 0E91 ;# 981 0E92 ;# 982 0E93 ;# 983 0E94 ;# 984 0E94 ;# 985 0E95 ;# 986 0E96 ;# 987 0E97 ;# 988 0E98 ;# 989 0E99 ;# 990 0E9A ;# 991 0E9B ;# 992 0E9C ;# 993 0E9D ;# 994 0E9E ;# 995 0E9F ;# 996 0FE4 ;# 997 0FE5 ;# 998 0FE6 ;# 999 0FE7 ;# 1000 0FE8 ;# 1001 0FE9 ;# 1002 0FEA ;# 1003 0FEB ;# 1004 0FED ;# 1005 0FEE ;# 1006 0FEF ;# 1007 1008 psect myAsmConst 1009 1A00 org 6656 ;# 1010 1A00 _pattern0: 1011 1A00 03A0 000F 018F 010F 010F 010F 010F 010F dw 928,15,399,271,271,271,271,271 ;# 1012 1A08 010F 010F 038F 030F 030F 030F 030F 030F dw 271,271,911,783,783,783,783,783 ;# 1013 1A10 030F 030F 030F dw 783,783,783 ;# 1014 1A13 _pattern0e: 1015 1A13 _pattern1: 1016 ;# 1017 1018 1A13 0317 0000 0000 0083 038F 0FBE 3E78 3860 dw 791,0,0,131,911,4030,15992,14432 ;# 1019 1A1B 2000 dw 8192 ;# 1020 1A1C _pattern1e: 1021 1A1C _pattern2: 1022 ;# 1023 1024 1A1C 03F0 007F 37DF 2D6D 28C1 188F 367B 07FA dw 1008,127,14303,11629,10433,6287,13947,2042 ;# 1025 1A24 348F 2821 3457 07D6 228F 2233 07B2 128F dw 13455,10273,13399,2006,8847,8755,1970,4751 ;# 1026 1A2C 1217 0796 148F 3F4F 143B 07EE 1FBA 268F dw 4631,1942,5263,16207,5179,2030,8122,9871 ;# 1027 1A34 265B 07DA 348F 28A0 3477 07E1 1876 328F dw 9819,2010,13455,10400,13431,2017,6262,12943 ;# 1028 1A3C 3253 07D2 228F 2237 07DE 17B6 148F 271F dw 12883,2002,8847,8759,2014,6070,5263,10015 ;# 1029 1A44 141B 079A 168F 163B 07BA 248F 38C0 2457 dw 5147,1946,5775,5691,1978,9359,14528,9303 ;# 1030 1A4C 07D6 328F 3273 07F2 328F 20F0 3257 07D6 dw 2006,12943,12915,2034,12943,8432,12887,2006 ;# 1031 1A54 248F 243B 07BA 168F 161B 079A 148F 1437 dw 9359,9275,1978,5775,5659,1946,5263,5175 ;# 1032 1A5C 07B6 228F 2253 07D2 328F 0F4F 3277 07AE dw 1974,8847,8787,2002,12943,3919,12919,1966 ;# 1033 1A64 2FF6 348F 345B 07DA 268F 263B 07BA 148F dw 12278,13455,13403,2010,9871,9787,1978,5263 ;# 1034 1A6C 1417 07B1 3016 128F 10D0 1233 07B2 228F dw 5143,1969,12310,4751,4304,4659,1970,8847 ;# 1035 1A74 2257 07BE 37D6 348F 277F 347B 07FA 368F dw 8791,1982,14294,13455,10111,13435,2042,13967 ;# 1036 1A7C 365B 07DA 248F 08C0 2437 07B6 128F 1213 dw 13915,2010,9359,2240,9271,1974,4751,4627 ;# 1037 1A84 0792 128F 1237 07B6 248F 245B 2D8F dw 1938,4751,4663,1974,9359,9307,11663 ;# 1038 1A8B _pattern2e: 1039 1A8B _pattern3: 1040 ;# 1041 1042 1A8B 0320 0083 038F 0FBF 3FBF 0F8F 0383 0080 dw 800,131,911,4031,16319,3983,899,128 ;# 1043 1A93 _pattern3e: 1044 1A93 _pattern4: 1045 ;# 1046 1047 1A93 0406 0000 0000 0000 0000 03C0 0000 0000 dw 1030,0,0,0,0,960,0,0 ;# 1048 1A9B 0000 0007 1040 0000 0000 0000 0390 1040 dw 0,7,4160,0,0,0,912,4160 ;# 1049 1AA3 0000 0000 0007 0410 1040 0000 0000 0384 dw 0,0,7,1040,4160,0,0,900 ;# 1050 1AAB 0410 1040 0000 0007 0104 0410 1040 0000 dw 1040,4160,0,7,260,1040,4160,0 ;# 1051 1AB3 0381 0104 0410 1040 0007 0001 0104 0410 dw 897,260,1040,4160,7,1,260,1040 ;# 1052 1ABB 1040 0380 0001 0104 0410 1007 0000 0001 dw 4160,896,1,260,1040,4103,0,1 ;# 1053 1AC3 0104 0410 0380 0000 0001 0104 0407 0000 dw 260,1040,896,0,1,260,1031,0 ;# 1054 1ACB 0000 0001 0104 0380 0000 0000 0001 0107 dw 0,1,260,896,0,0,1,263 ;# 1055 1AD3 0000 0000 0000 0001 0380 0000 0000 0000 dw 0,0,0,1,896,0,0,0 ;# 1056 1ADB 0007 dw 7 ;# 1057 1ADC _pattern4e: 1058 1ADC _pattern5: 1059 ;# 1060 1061 1ADC 0184 dw 388 ;# 1062 1ADD 1020 24A0 3BE5 3774 1074 37A0 2175 34EC dw 4128,9376,15333,14196,4212,14240,8565,13548 ;# 1063 1AE5 322D 30AD 216C 34EE 35E9 32A0 3175 34EC dw 12845,12461,8556,13550,13801,12960,12661,13548 ;# 1064 1AED 3A20 3A68 34F3 1063 37EF 3620 316C 34EE dw 14880,14952,13555,4195,14319,13856,12652,13550 ;# 1065 1AF5 35E9 32A0 dw 13801,12960 ;# 1066 1AF7 _pattern5e: 1067 1AF7 _pattern6: 1068 ;# 1069 1070 1AF7 0183 dw 387 ;# 1071 1AF8 1020 39EF 106D 30EE 3CA0 316C 34EE 35E9 dw 4128,14831,4205,12526,15520,12652,13550,13801 ;# 1072 1B00 32F3 1620 39EF 106C 34F4 3A6C 32A0 3A69 dw 13043,5664,14831,4204,13556,14956,12960,14953 ;# 1073 1B08 36E5 1720 dw 14053,5920 ;# 1074 1B0A _pattern6e: 1075 1B0A _pattern7: 1076 ;# 1077 1078 1B0A 0185 dw 389 ;# 1079 1B0B 1020 3BF7 3BAE 1964 35E9 3A73 1763 37ED dw 4128,15351,15278,6500,13801,14963,5987,14317 ;# 1080 1B13 _pattern7e: 1081 1B13 _pattern8: 1082 ;# 1083 1084 1B13 0184 dw 388 ;# 1085 1B14 1020 3BF7 3BAE 2175 34EC 322D 30AD 216C dw 4128,15351,15278,8565,13548,12845,12461,8556 ;# 1086 1B1C 34EE 35E9 32AE 37F2 3380 dw 13550,13801,12974,14322,13184 ;# 1087 1B21 _pattern8e: 1088 1B21 _pattern9: 1089 ;# 1090 1091 1B21 0490 0380 dw 1168,896 ;# 1092 1B23 _pattern9e: 1093 1B23 _pattern10: 1094 ;# 1095 1096 1B23 0402 3C70 3040 0000 0000 01FC 3C70 3040 dw 1026,15472,12352,0,0,508,15472,12352 ;# 1097 1B2B 0000 0003 1F7C 3C70 3040 0000 019F 1F7C dw 0,3,8060,15472,12352,0,415,8060 ;# 1098 1B33 3C70 3040 0003 079F 1F7C 3C70 3040 0187 dw 15472,12352,3,1951,8060,15472,12352,391 ;# 1099 1B3B 079F 1F7C 3C70 3003 0187 079F 1F7C 3C70 dw 1951,8060,15472,12291,391,1951,8060,15472 ;# 1100 1B43 0181 0187 079F 1F7C 3C03 0001 0187 079F dw 385,391,1951,8060,15363,1,391,1951 ;# 1101 1B4B 1F7C 0180 0001 0187 079F 1F03 0000 0001 dw 8060,384,1,391,1951,7939,0,1 ;# 1102 1B53 0187 079F 0180 0000 0001 0187 0783 2000 dw 391,1951,384,0,1,391,1923,8192 ;# 1103 1B5B 0000 0001 0187 01E0 2000 0000 0001 0183 dw 0,1,391,480,8192,0,1,387 ;# 1104 1B63 3860 2000 0000 0001 0180 dw 14432,8192,0,1,384 ;# 1105 1B68 _pattern10e: 1106 1B68 _chardata: 1107 ;# 1108 1109 1B68 0080 0000 0000 00F9 0000 0000 01F0 0070 dw 128,0,0,249,0,0,496,112 ;# 1110 1B70 0000 0294 3F94 3F94 0292 157F 1524 02E2 dw 0,660,16276,16276,658,5503,5412,738 ;# 1111 1B78 3208 09A3 02B6 24D5 2105 0150 3000 0000 dw 12808,2467,694,9429,8453,336,12288,0 ;# 1112 1B80 019C 1141 0000 01C1 111C 0000 0294 043E dw 412,4417,0,449,4380,0,660,1086 ;# 1113 1B88 0414 0288 043E 0408 0102 0180 0000 0208 dw 1044,648,1086,1032,258,384,0,520 ;# 1114 1B90 0408 0400 0103 0180 0000 0282 0208 0820 dw 1032,1024,259,384,0,642,520,2080 ;# 1115 1B98 023E 20C1 1F00 01A1 3F81 0000 0223 22C9 dw 574,8385,7936,417,16257,0,547,8905 ;# 1116 1BA0 1880 0222 20C9 1B00 028C 0A24 3F84 0272 dw 6272,546,8393,6912,652,2596,16260,626 ;# 1117 1BA8 28D1 2700 021E 14C9 0300 0240 23C8 3800 dw 10449,9984,542,5321,768,576,9160,14336 ;# 1118 1BB0 0236 24C9 1B00 0230 24C9 1F00 011B 0D80 dw 566,9417,6912,560,9417,7936,283,3456 ;# 1119 1BB8 0000 011A 0D80 0000 0208 0A22 2080 0294 dw 0,282,3456,0,520,2594,8320,660 ;# 1120 1BC0 0A14 0A14 0241 1114 0400 02A0 2045 2430 dw 2580,2580,577,4372,1024,672,8261,9264 ;# 1121 1BC8 02A6 24CF 20BE 029F 1244 121F 02FF 24C9 dw 678,9423,8382,671,4676,4639,767,9417 ;# 1122 1BD0 24B6 02BE 20C1 20A2 02FF 20C1 20BE 02FF dw 9398,702,8385,8354,767,8385,8382,767 ;# 1123 1BD8 24C9 24C9 02FF 2448 2448 02BE 20C9 24AE dw 9417,9417,767,9288,9288,702,8393,9390 ;# 1124 1BE0 02FF 0408 047F 01C1 3FC1 0000 0202 0081 dw 767,1032,1151,449,16321,0,514,129 ;# 1125 1BE8 3F00 02FF 0414 1141 02FF 0081 0081 02FF dw 16128,767,1044,4417,767,129,129,767 ;# 1126 1BF0 1018 107F 02FF 1010 047F 02BE 20C1 20BE dw 4120,4223,767,4112,1151,702,8385,8382 ;# 1127 1BF8 02FF 2448 2430 02BE 20C5 213D 02FF 244C dw 767,9288,9264,702,8389,8509,767,9292 ;# 1128 1C00 2531 02B2 24C9 24A6 02C0 207F 2040 02FE dw 9521,690,9417,9382,704,8319,8256,766 ;# 1129 1C08 0081 00FE 02FC 0101 017C 02FE 008E 00FE dw 129,254,764,257,380,766,142,254 ;# 1130 1C10 02E3 0A08 0A63 02F0 0407 0470 02C3 22C9 dw 739,2568,2659,752,1031,1136,707,8905 ;# 1131 1C18 28E1 01FF 20C1 0000 02A0 0808 0202 01C1 dw 10465,511,8385,0,672,2056,514,449 ;# 1132 1C20 20FF 0000 0290 1040 1010 0280 0000 0000 dw 8447,0,656,4160,4112,640,0,0 ;# 1133 1C28 0160 2800 0000 0202 0A95 0780 027F 0891 dw 352,10240,0,514,2709,1920,639,2193 ;# 1134 1C30 0700 020E 0891 0880 020E 0891 3F80 020E dw 1792,526,2193,2176,526,2193,16256,526 ;# 1135 1C38 0A95 0600 0208 1FC8 1000 020C 0912 0F80 dw 2709,1536,520,8136,4096,524,2322,3968 ;# 1136 1C40 027F 0410 0780 0191 2F81 0000 0201 0010 dw 639,1040,1920,401,12161,0,513,16 ;# 1137 1C48 2F80 027F 020A 0880 01C1 3F81 0000 028F dw 12160,639,522,2176,449,16257,0,655 ;# 1138 1C50 080C 080F 021F 0410 0780 020E 0891 0700 dw 2060,2063,543,1040,1920,526,2193,1792 ;# 1139 1C58 021F 0912 0600 020C 0912 0F80 021F 0410 dw 543,2322,1536,524,2322,3968,543,1040 ;# 1140 1C60 0800 0208 0A95 0100 0190 1F90 0000 021E dw 2048,520,2709,256,400,8080,0,542 ;# 1141 1C68 0081 0F00 029C 0101 011C 029E 0086 009E dw 129,3840,668,257,284,670,134,158 ;# 1142 1C70 0291 0504 0511 029C 0102 0F80 0213 0A99 dw 657,1284,1297,668,258,3968,531,2713 ;# 1143 1C78 0000 0188 1B41 0000 00FF 0000 0000 01C1 dw 0,392,6977,0,255,0,0,449 ;# 1144 1C80 1B08 0000 dw 6920,0 ;# 1145 1C82 _pat1: 1146 1147 ;# 1148 1C82 1EBD 1EBD 1EBD 068A dw 7869,7869,7869,1674 ;# 1149 1C86 _pat2: 1150 1151 ;# 1152 1C86 3AEE 35EE 37F7 3720 31EF 36ED 30EE 320D dw 15086,13806,14327,14112,12783,14061,12526,12813 ;# 1153 1C8E 0500 dw 1280 ;# 1154 1C8F _pat3: 1155 1156 ;# 1157 1C8F 1944 25E9 3A73 1763 37ED 068A 1BF8 1C20 dw 6468,9705,14963,5987,14317,1674,7160,7200 ;# 1158 1C97 26E1 3A72 34F8 068A 2B31 1730 068A dw 9953,14962,13560,1674,11057,5936,1674 ;# 1159 1C9E _pat4: 1160 1161 ;# 1162 1C9E 21EF 36ED 30EE 3273 1D0D 0520 2420 1D20 dw 8687,14061,12526,12915,7437,1312,9248,7456 ;# 1163 1CA6 2465 3670 068A 1050 15A0 1D20 2765 3C74 dw 9317,13936,1674,4176,5536,7456,10085,15476 ;# 1164 1CAE 1050 30F4 3A65 396E 068A 1050 16A0 1D20 dw 4176,12532,14949,14702,1674,4176,5792,7456 ;# 1165 1CB6 2872 32F6 34EF 3AF3 1050 30F4 3A65 396E dw 10354,13046,13551,15091,4176,12532,14949,14702 ;# 1166 1CBE 068A dw 1674 ;# 1167 1CBF _pat5: 1168 1169 ;# 1170 1CBF 1052 1820 1D20 29F4 37F0 1050 30F4 3A65 dw 4178,6176,7456,10740,14320,4176,12532,14949 ;# 1171 1CC7 396E 068A 1052 18A0 1D20 3965 39F5 36E5 dw 14702,1674,4178,6304,7456,14693,14837,14053 ;# 1172 1CCF 1050 30F4 3A65 396E 068A dw 4176,12532,14949,14702,1674 ;# 1173 1CD4 _pat6: 1174 1175 ;# 1176 1CD4 1044 1820 1D20 2265 36EF 106D 37E4 32A0 dw 4164,6176,7456,8805,14063,4205,14308,12960 ;# 1177 1CDC 37E6 330D 0520 2231 103A 1044 32ED 37A0 dw 14310,13069,1312,8753,4154,4164,13037,14240 ;# 1178 1CE4 36EF 3265 106F 370D 0500 dw 14063,12901,4207,14093,1280 ;# 1179 1CE9 _pat7: 1180 1181 ;# 1182 1CE9 1043 3DDB 3C5D 2DF9 2EDB 3B5D 3EAB 103A dw 4163,15835,15453,11769,11995,15197,16043,4154 ;# 1183 1CF1 1053 32F4 104C 22C4 398D 0500 dw 4179,13044,4172,8900,14733,1280 ;# 1184 1CF7 _pat8: 1185 1186 ;# 1187 1CF7 104D 2DED 39E7 2EA0 1D20 30F3 31E9 34A0 dw 4173,11757,14823,11936,7456,12531,12777,13472 ;# 1188 1CFF 36E5 39F3 30E7 32A0 3A6F 1064 34F3 386C dw 14053,14835,12519,12960,14959,4196,13555,14444 ;# 1189 1D07 30F9 068A dw 12537,1674 ;# 1190 1D09 _pat9: 1191 1192 ;# 1193 1D09 1055 2DEE 3AED 3165 395D 103A 1072 32E1 dw 4181,11758,15085,12645,14685,4154,4210,13025 ;# 1194 1D11 3220 30EE 3220 39E5 3A20 2AF3 32F2 1069 dw 12832,12526,12832,14821,14880,10995,13042,4201 ;# 1195 1D19 320D 0500 dw 12813,1280 ;# 1196 1197 psect myAsmStore 1198 1FA0 org 8096 ;# 1199 1FA0 _msg1: 1200 1201 ;# 1202 1FA0 1830 18B1 1932 19B3 1A34 1AB5 1B36 1BB7 dw 6192,6321,6450,6579,6708,6837,6966,7095 ;# 1203 1FA8 1C38 1CB9 1830 18B1 1932 19B3 1A34 1AB5 dw 7224,7353,6192,6321,6450,6579,6708,6837 ;# 1204 1FB0 1B36 1BB7 1C38 1CB9 1830 18B1 1932 19B3 dw 6966,7095,7224,7353,6192,6321,6450,6579 ;# 1205 1FB8 1A34 1AB5 1B36 1BB7 1C38 1CB9 1830 18B1 dw 6708,6837,6966,7095,7224,7353,6192,6321 ;# 1206 1FC0 _msg2: 1207 1208 ;# 1209 1FC0 1830 18B1 1932 19B3 1A34 1AB5 1B36 1BB7 dw 6192,6321,6450,6579,6708,6837,6966,7095 ;# 1210 1FC8 1C38 1CB9 1830 18B1 1932 19B3 1A34 1AB5 dw 7224,7353,6192,6321,6450,6579,6708,6837 ;# 1211 1FD0 1B36 1BB7 1C38 1CB9 1830 18B1 1932 19B3 dw 6966,7095,7224,7353,6192,6321,6450,6579 ;# 1212 1FD8 1A34 1AB5 1B36 1BB7 1C38 1CB9 1830 18B1 dw 6708,6837,6966,7095,7224,7353,6192,6321 ;# 1213 1FE0 _fDemoMode: 1214 1FE0 _setting: 1215 ;# 1216 1217 1218 ;# 1219 1FE0 1801 dw 6145 ;# 1220 1FE1 _fUserMsgSize: 1221 1222 ;# 1223 1FE1 0000 dw 0 ;# 1224 1FE2 _fUserId: 1225 1226 ;# 1227 1FE2 0000 dw 0 ;# 1228 0000 ;# 1229 0001 ;# 1230 0002 ;# 1231 0003 ;# 1232 0004 ;# 1233 0005 ;# 1234 0006 ;# 1235 0007 ;# 1236 0008 ;# 1237 0009 ;# 1238 000A ;# 1239 000B ;# 1240 000C ;# 1241 000E ;# 1242 0011 ;# 1243 0012 ;# 1244 0015 ;# 1245 0016 ;# 1246 0016 ;# 1247 0017 ;# 1248 0018 ;# 1249 0019 ;# 1250 001A ;# 1251 001B ;# 1252 001C ;# 1253 008C ;# 1254 008E ;# 1255 0091 ;# 1256 0092 ;# 1257 0095 ;# 1258 0096 ;# 1259 0097 ;# 1260 0098 ;# 1261 0099 ;# 1262 009A ;# 1263 010C ;# 1264 010E ;# 1265 0116 ;# 1266 0117 ;# 1267 011D ;# 1268 018C ;# 1269 018E ;# 1270 0191 ;# 1271 0191 ;# 1272 0192 ;# 1273 0193 ;# 1274 0193 ;# 1275 0194 ;# 1276 0195 ;# 1277 0196 ;# 1278 0197 ;# 1279 0199 ;# 1280 019A ;# 1281 019B ;# 1282 019B ;# 1283 019C ;# 1284 019D ;# 1285 019E ;# 1286 019F ;# 1287 020C ;# 1288 0211 ;# 1289 0211 ;# 1290 0212 ;# 1291 0212 ;# 1292 0213 ;# 1293 0213 ;# 1294 0214 ;# 1295 0214 ;# 1296 0215 ;# 1297 0215 ;# 1298 0215 ;# 1299 0216 ;# 1300 0216 ;# 1301 0217 ;# 1302 0217 ;# 1303 0391 ;# 1304 0392 ;# 1305 0393 ;# 1306 039A ;# 1307 039B ;# 1308 0611 ;# 1309 0612 ;# 1310 0613 ;# 1311 0613 ;# 1312 0614 ;# 1313 0615 ;# 1314 0616 ;# 1315 0616 ;# 1316 0E8E ;# 1317 0E8F ;# 1318 0E90 ;# 1319 0E91 ;# 1320 0E92 ;# 1321 0E93 ;# 1322 0E94 ;# 1323 0E94 ;# 1324 0E95 ;# 1325 0E96 ;# 1326 0E97 ;# 1327 0E98 ;# 1328 0E99 ;# 1329 0E9A ;# 1330 0E9B ;# 1331 0E9C ;# 1332 0E9D ;# 1333 0E9E ;# 1334 0E9F ;# 1335 0FE4 ;# 1336 0FE5 ;# 1337 0FE6 ;# 1338 0FE7 ;# 1339 0FE8 ;# 1340 0FE9 ;# 1341 0FEA ;# 1342 0FEB ;# 1343 0FED ;# 1344 0FEE ;# 1345 0FEF ;# 1346 0000 ;# 1347 0001 ;# 1348 0002 ;# 1349 0003 ;# 1350 0004 ;# 1351 0005 ;# 1352 0006 ;# 1353 0007 ;# 1354 0008 ;# 1355 0009 ;# 1356 000A ;# 1357 000B ;# 1358 000C ;# 1359 000E ;# 1360 0011 ;# 1361 0012 ;# 1362 0015 ;# 1363 0016 ;# 1364 0016 ;# 1365 0017 ;# 1366 0018 ;# 1367 0019 ;# 1368 001A ;# 1369 001B ;# 1370 001C ;# 1371 008C ;# 1372 008E ;# 1373 0091 ;# 1374 0092 ;# 1375 0095 ;# 1376 0096 ;# 1377 0097 ;# 1378 0098 ;# 1379 0099 ;# 1380 009A ;# 1381 010C ;# 1382 010E ;# 1383 0116 ;# 1384 0117 ;# 1385 011D ;# 1386 018C ;# 1387 018E ;# 1388 0191 ;# 1389 0191 ;# 1390 0192 ;# 1391 0193 ;# 1392 0193 ;# 1393 0194 ;# 1394 0195 ;# 1395 0196 ;# 1396 0197 ;# 1397 0199 ;# 1398 019A ;# 1399 019B ;# 1400 019B ;# 1401 019C ;# 1402 019D ;# 1403 019E ;# 1404 019F ;# 1405 020C ;# 1406 0211 ;# 1407 0211 ;# 1408 0212 ;# 1409 0212 ;# 1410 0213 ;# 1411 0213 ;# 1412 0214 ;# 1413 0214 ;# 1414 0215 ;# 1415 0215 ;# 1416 0215 ;# 1417 0216 ;# 1418 0216 ;# 1419 0217 ;# 1420 0217 ;# 1421 0391 ;# 1422 0392 ;# 1423 0393 ;# 1424 039A ;# 1425 039B ;# 1426 0611 ;# 1427 0612 ;# 1428 0613 ;# 1429 0613 ;# 1430 0614 ;# 1431 0615 ;# 1432 0616 ;# 1433 0616 ;# 1434 0E8E ;# 1435 0E8F ;# 1436 0E90 ;# 1437 0E91 ;# 1438 0E92 ;# 1439 0E93 ;# 1440 0E94 ;# 1441 0E94 ;# 1442 0E95 ;# 1443 0E96 ;# 1444 0E97 ;# 1445 0E98 ;# 1446 0E99 ;# 1447 0E9A ;# 1448 0E9B ;# 1449 0E9C ;# 1450 0E9D ;# 1451 0E9E ;# 1452 0E9F ;# 1453 0FE4 ;# 1454 0FE5 ;# 1455 0FE6 ;# 1456 0FE7 ;# 1457 0FE8 ;# 1458 0FE9 ;# 1459 0FEA ;# 1460 0FEB ;# 1461 0FED ;# 1462 0FEE ;# 1463 0FEF ;# 1464 0000 ;# 1465 0001 ;# 1466 0002 ;# 1467 0003 ;# 1468 0004 ;# 1469 0005 ;# 1470 0006 ;# 1471 0007 ;# 1472 0008 ;# 1473 0009 ;# 1474 000A ;# 1475 000B ;# 1476 000C ;# 1477 000E ;# 1478 0011 ;# 1479 0012 ;# 1480 0015 ;# 1481 0016 ;# 1482 0016 ;# 1483 0017 ;# 1484 0018 ;# 1485 0019 ;# 1486 001A ;# 1487 001B ;# 1488 001C ;# 1489 008C ;# 1490 008E ;# 1491 0091 ;# 1492 0092 ;# 1493 0095 ;# 1494 0096 ;# 1495 0097 ;# 1496 0098 ;# 1497 0099 ;# 1498 009A ;# 1499 010C ;# 1500 010E ;# 1501 0116 ;# 1502 0117 ;# 1503 011D ;# 1504 018C ;# 1505 018E ;# 1506 0191 ;# 1507 0191 ;# 1508 0192 ;# 1509 0193 ;# 1510 0193 ;# 1511 0194 ;# 1512 0195 ;# 1513 0196 ;# 1514 0197 ;# 1515 0199 ;# 1516 019A ;# 1517 019B ;# 1518 019B ;# 1519 019C ;# 1520 019D ;# 1521 019E ;# 1522 019F ;# 1523 020C ;# 1524 0211 ;# 1525 0211 ;# 1526 0212 ;# 1527 0212 ;# 1528 0213 ;# 1529 0213 ;# 1530 0214 ;# 1531 0214 ;# 1532 0215 ;# 1533 0215 ;# 1534 0215 ;# 1535 0216 ;# 1536 0216 ;# 1537 0217 ;# 1538 0217 ;# 1539 0391 ;# 1540 0392 ;# 1541 0393 ;# 1542 039A ;# 1543 039B ;# 1544 0611 ;# 1545 0612 ;# 1546 0613 ;# 1547 0613 ;# 1548 0614 ;# 1549 0615 ;# 1550 0616 ;# 1551 0616 ;# 1552 0E8E ;# 1553 0E8F ;# 1554 0E90 ;# 1555 0E91 ;# 1556 0E92 ;# 1557 0E93 ;# 1558 0E94 ;# 1559 0E94 ;# 1560 0E95 ;# 1561 0E96 ;# 1562 0E97 ;# 1563 0E98 ;# 1564 0E99 ;# 1565 0E9A ;# 1566 0E9B ;# 1567 0E9C ;# 1568 0E9D ;# 1569 0E9E ;# 1570 0E9F ;# 1571 0FE4 ;# 1572 0FE5 ;# 1573 0FE6 ;# 1574 0FE7 ;# 1575 0FE8 ;# 1576 0FE9 ;# 1577 0FEA ;# 1578 0FEB ;# 1579 0FED ;# 1580 0FEE ;# 1581 0FEF ;_buffer 1582 1583 psect idataBANK5 1584 0000 __pidataBANK5: 1585 1586 psect idataBANK6 1587 1FE3 __pidataBANK6: 1588 1589 ;initializer for _buttonMessage 1590 1FE3 3442 retlw 66 1591 1FE4 3475 retlw 117 1592 1FE5 3474 retlw 116 1593 1FE6 3474 retlw 116 1594 1FE7 346F retlw 111 1595 1FE8 346E retlw 110 1596 1FE9 3420 retlw 32 1597 1FEA 3470 retlw 112 1598 1FEB 3472 retlw 114 1599 1FEC 3465 retlw 101 1600 1FED 3473 retlw 115 1601 1FEE 3473 retlw 115 1602 1FEF 3465 retlw 101 1603 1FF0 3464 retlw 100 1604 1FF1 342E retlw 46 1605 1FF2 340D retlw 13 1606 1FF3 340A retlw 10 1607 1FF4 3400 retlw 0 1608 1609 psect idataBANK8 1610 07C2 __pidataBANK8: 1611 1612 ;initializer for _patterns 1613 07C2 3400 retlw low _pattern0 1614 07C3 341A retlw high _pattern0 1615 07C4 3426 retlw 38 1616 07C5 3400 retlw 0 1617 07C6 340F retlw 15 1618 07C7 3413 retlw low _pattern1 1619 07C8 341A retlw high _pattern1 1620 07C9 3411 retlw 17 1621 07CA 3400 retlw 0 1622 07CB 341E retlw 30 1623 07CC 341C retlw low _pattern2 1624 07CD 341A retlw high _pattern2 1625 07CE 34DE retlw 222 1626 07CF 3400 retlw 0 1627 07D0 3406 retlw 6 1628 07D1 348B retlw low _pattern3 1629 07D2 341A retlw high _pattern3 1630 07D3 3410 retlw 16 1631 07D4 3400 retlw 0 1632 07D5 3419 retlw 25 1633 07D6 3493 retlw low _pattern4 1634 07D7 341A retlw high _pattern4 1635 07D8 3492 retlw 146 1636 07D9 3400 retlw 0 1637 07DA 340F retlw 15 1638 07DB 34DC retlw low _pattern5 1639 07DC 341A retlw high _pattern5 1640 07DD 3436 retlw 54 1641 07DE 3400 retlw 0 1642 07DF 3405 retlw 5 1643 07E0 34F7 retlw low _pattern6 1644 07E1 341A retlw high _pattern6 1645 07E2 3426 retlw 38 1646 07E3 3400 retlw 0 1647 07E4 3404 retlw 4 1648 07E5 340A retlw low _pattern7 1649 07E6 341B retlw high _pattern7 1650 07E7 3412 retlw 18 1651 07E8 3400 retlw 0 1652 07E9 3404 retlw 4 1653 07EA 3413 retlw low _pattern8 1654 07EB 341B retlw high _pattern8 1655 07EC 341B retlw 27 1656 07ED 3400 retlw 0 1657 07EE 3405 retlw 5 1658 07EF 3421 retlw low _pattern9 1659 07F0 341B retlw high _pattern9 1660 07F1 3403 retlw 3 1661 07F2 3400 retlw 0 1662 07F3 3450 retlw 80 1663 07F4 3423 retlw low _pattern10 1664 07F5 341B retlw high _pattern10 1665 07F6 3489 retlw 137 1666 07F7 3400 retlw 0 1667 07F8 345A retlw 90 1668 1669 psect stringtext 1670 1E00 __pstringtext: 1671 1E00 _dpowers: 1672 1E00 3401 retlw 1 1673 1E01 3400 retlw 0 1674 1E02 340A retlw 10 1675 1E03 3400 retlw 0 1676 1E04 3464 retlw 100 1677 1E05 3400 retlw 0 1678 1E06 34E8 retlw 232 1679 1E07 3403 retlw 3 1680 1E08 3410 retlw 16 1681 1E09 3427 retlw 39 1682 1E0A __end_of_dpowers: 1683 1E0A _hexpowers: 1684 1E0A 3401 retlw 1 1685 1E0B 3400 retlw 0 1686 1E0C 3410 retlw 16 1687 1E0D 3400 retlw 0 1688 1E0E 3400 retlw 0 1689 1E0F 3401 retlw 1 1690 1E10 3400 retlw 0 1691 1E11 3410 retlw 16 1692 1E12 __end_of_hexpowers: 1693 1E12 _USB_SD_Ptr: 1694 1E12 34C7 retlw low (_sd000| (0+32768)) 1695 1E13 349E retlw high (_sd000| (0+32768)) 1696 1E14 345D retlw low (_sd001| (0+32768)) 1697 1E15 349E retlw high (_sd001| (0+32768)) 1698 1E16 3491 retlw low (_sd002| (0+32768)) 1699 1E17 349E retlw high (_sd002| (0+32768)) 1700 1E18 __end_of_USB_SD_Ptr: 1701 1E18 _USB_CD_Ptr: 1702 1E18 341A retlw low (_configDescriptor1| (0+32768)) 1703 1E19 349E retlw high (_configDescriptor1| (0+32768)) 1704 1E1A __end_of_USB_CD_Ptr: 1705 1E1A _configDescriptor1: 1706 1E1A 3409 retlw 9 1707 1E1B 3402 retlw 2 1708 1E1C 3443 retlw 67 1709 1E1D 3400 retlw 0 1710 1E1E 3402 retlw 2 1711 1E1F 3401 retlw 1 1712 1E20 3400 retlw 0 1713 1E21 34C0 retlw 192 1714 1E22 3432 retlw 50 1715 1E23 3409 retlw 9 1716 1E24 3404 retlw 4 1717 1E25 3400 retlw 0 1718 1E26 3400 retlw 0 1719 1E27 3401 retlw 1 1720 1E28 3402 retlw 2 1721 1E29 3402 retlw 2 1722 1E2A 3401 retlw 1 1723 1E2B 3400 retlw 0 1724 1E2C 3405 retlw 5 1725 1E2D 3424 retlw 36 1726 1E2E 3400 retlw 0 1727 1E2F 3410 retlw 16 1728 1E30 3401 retlw 1 1729 1E31 3404 retlw 4 1730 1E32 3424 retlw 36 1731 1E33 3402 retlw 2 1732 1E34 3402 retlw 2 1733 1E35 3405 retlw 5 1734 1E36 3424 retlw 36 1735 1E37 3406 retlw 6 1736 1E38 3400 retlw 0 1737 1E39 3401 retlw 1 1738 1E3A 3405 retlw 5 1739 1E3B 3424 retlw 36 1740 1E3C 3401 retlw 1 1741 1E3D 3400 retlw 0 1742 1E3E 3401 retlw 1 1743 1E3F 3407 retlw 7 1744 1E40 3405 retlw 5 1745 1E41 3481 retlw 129 1746 1E42 3403 retlw 3 1747 1E43 3408 retlw 8 1748 1E44 3400 retlw 0 1749 1E45 3402 retlw 2 1750 1E46 3409 retlw 9 1751 1E47 3404 retlw 4 1752 1E48 3401 retlw 1 1753 1E49 3400 retlw 0 1754 1E4A 3402 retlw 2 1755 1E4B 340A retlw 10 1756 1E4C 3400 retlw 0 1757 1E4D 3400 retlw 0 1758 1E4E 3400 retlw 0 1759 1E4F 3407 retlw 7 1760 1E50 3405 retlw 5 1761 1E51 3402 retlw 2 1762 1E52 3402 retlw 2 1763 1E53 3440 retlw 64 1764 1E54 3400 retlw 0 1765 1E55 3400 retlw 0 1766 1E56 3407 retlw 7 1767 1E57 3405 retlw 5 1768 1E58 3482 retlw 130 1769 1E59 3402 retlw 2 1770 1E5A 3440 retlw 64 1771 1E5B 3400 retlw 0 1772 1E5C 3400 retlw 0 1773 1E5D __end_of_configDescriptor1: 1774 1E5D _sd001: 1775 1E5D 3434 retlw 52 1776 1E5E 3403 retlw 3 1777 1E5F 344D retlw 77 1778 1E60 3400 retlw 0 1779 1E61 3469 retlw 105 1780 1E62 3400 retlw 0 1781 1E63 3463 retlw 99 1782 1E64 3400 retlw 0 1783 1E65 3472 retlw 114 1784 1E66 3400 retlw 0 1785 1E67 346F retlw 111 1786 1E68 3400 retlw 0 1787 1E69 3463 retlw 99 1788 1E6A 3400 retlw 0 1789 1E6B 3468 retlw 104 1790 1E6C 3400 retlw 0 1791 1E6D 3469 retlw 105 1792 1E6E 3400 retlw 0 1793 1E6F 3470 retlw 112 1794 1E70 3400 retlw 0 1795 1E71 3420 retlw 32 1796 1E72 3400 retlw 0 1797 1E73 3454 retlw 84 1798 1E74 3400 retlw 0 1799 1E75 3465 retlw 101 1800 1E76 3400 retlw 0 1801 1E77 3463 retlw 99 1802 1E78 3400 retlw 0 1803 1E79 3468 retlw 104 1804 1E7A 3400 retlw 0 1805 1E7B 346E retlw 110 1806 1E7C 3400 retlw 0 1807 1E7D 346F retlw 111 1808 1E7E 3400 retlw 0 1809 1E7F 346C retlw 108 1810 1E80 3400 retlw 0 1811 1E81 346F retlw 111 1812 1E82 3400 retlw 0 1813 1E83 3467 retlw 103 1814 1E84 3400 retlw 0 1815 1E85 3479 retlw 121 1816 1E86 3400 retlw 0 1817 1E87 3420 retlw 32 1818 1E88 3400 retlw 0 1819 1E89 3449 retlw 73 1820 1E8A 3400 retlw 0 1821 1E8B 346E retlw 110 1822 1E8C 3400 retlw 0 1823 1E8D 3463 retlw 99 1824 1E8E 3400 retlw 0 1825 1E8F 342E retlw 46 1826 1E90 3400 retlw 0 1827 1E91 __end_of_sd001: 1828 1E91 _sd002: 1829 1E91 3424 retlw 36 1830 1E92 3403 retlw 3 1831 1E93 3432 retlw 50 1832 1E94 3400 retlw 0 1833 1E95 3444 retlw 68 1834 1E96 3400 retlw 0 1835 1E97 344B retlw 75 1836 1E98 3400 retlw 0 1837 1E99 3469 retlw 105 1838 1E9A 3400 retlw 0 1839 1E9B 3474 retlw 116 1840 1E9C 3400 retlw 0 1841 1E9D 3473 retlw 115 1842 1E9E 3400 retlw 0 1843 1E9F 342D retlw 45 1844 1EA0 3400 retlw 0 1845 1EA1 3438 retlw 56 1846 1EA2 3400 retlw 0 1847 1EA3 3478 retlw 120 1848 1EA4 3400 retlw 0 1849 1EA5 3437 retlw 55 1850 1EA6 3400 retlw 0 1851 1EA7 3420 retlw 32 1852 1EA8 3400 retlw 0 1853 1EA9 344D retlw 77 1854 1EAA 3400 retlw 0 1855 1EAB 3461 retlw 97 1856 1EAC 3400 retlw 0 1857 1EAD 3474 retlw 116 1858 1EAE 3400 retlw 0 1859 1EAF 3472 retlw 114 1860 1EB0 3400 retlw 0 1861 1EB1 3469 retlw 105 1862 1EB2 3400 retlw 0 1863 1EB3 3478 retlw 120 1864 1EB4 3400 retlw 0 1865 1EB5 __end_of_sd002: 1866 1EB5 _device_dsc: 1867 1EB5 3412 retlw 18 1868 1EB6 3401 retlw 1 1869 1EB7 3400 retlw 0 1870 1EB8 3402 retlw 2 1871 1EB9 3402 retlw 2 1872 1EBA 3400 retlw 0 1873 1EBB 3400 retlw 0 1874 1EBC 3408 retlw 8 1875 1EBD 34D8 retlw 216 1876 1EBE 3404 retlw 4 1877 1EBF 340A retlw 10 1878 1EC0 3400 retlw 0 1879 1EC1 3400 retlw 0 1880 1EC2 3401 retlw 1 1881 1EC3 3401 retlw 1 1882 1EC4 3402 retlw 2 1883 1EC5 3400 retlw 0 1884 1EC6 3401 retlw 1 1885 1EC7 __end_of_device_dsc: 1886 1EC7 _sd000: 1887 1EC7 3404 retlw 4 1888 1EC8 3403 retlw 3 1889 1EC9 3409 retlw 9 1890 1ECA 3404 retlw 4 1891 1ECB __end_of_sd000: 1892 1ECB __stringdata: 1893 1ECB STR_2: 1894 1ECB 3450 retlw 80 ;'P' 1895 1ECC 343D retlw 61 ;'=' 1896 1ECD 3425 retlw 37 ;'%' 1897 1ECE 3464 retlw 100 ;'d' 1898 1ECF 342C retlw 44 ;',' 1899 1ED0 3420 retlw 32 ;' ' 1900 1ED1 3444 retlw 68 ;'D' 1901 1ED2 343D retlw 61 ;'=' 1902 1ED3 3425 retlw 37 ;'%' 1903 1ED4 3464 retlw 100 ;'d' 1904 1ED5 342C retlw 44 ;',' 1905 1ED6 3420 retlw 32 ;' ' 1906 1ED7 344D retlw 77 ;'M' 1907 1ED8 343D retlw 61 ;'=' 1908 1ED9 3425 retlw 37 ;'%' 1909 1EDA 3464 retlw 100 ;'d' 1910 1EDB 342C retlw 44 ;',' 1911 1EDC 3420 retlw 32 ;' ' 1912 1EDD 3455 retlw 85 ;'U' 1913 1EDE 343D retlw 61 ;'=' 1914 1EDF 3425 retlw 37 ;'%' 1915 1EE0 3464 retlw 100 ;'d' 1916 1EE1 342C retlw 44 ;',' 1917 1EE2 3420 retlw 32 ;' ' 1918 1EE3 3452 retlw 82 ;'R' 1919 1EE4 343D retlw 61 ;'=' 1920 1EE5 3425 retlw 37 ;'%' 1921 1EE6 3464 retlw 100 ;'d' 1922 1EE7 340D retlw 13 1923 1EE8 340A retlw 10 1924 1EE9 3400 retlw 0 1925 1EEA STR_3: 1926 1EEA 3478 retlw 120 ;'x' 1927 1EEB 343D retlw 61 ;'=' 1928 1EEC 3425 retlw 37 ;'%' 1929 1EED 3464 retlw 100 ;'d' 1930 1EEE 342C retlw 44 ;',' 1931 1EEF 3479 retlw 121 ;'y' 1932 1EF0 343D retlw 61 ;'=' 1933 1EF1 3425 retlw 37 ;'%' 1934 1EF2 3464 retlw 100 ;'d' 1935 1EF3 342C retlw 44 ;',' 1936 1EF4 3476 retlw 118 ;'v' 1937 1EF5 343D retlw 61 ;'=' 1938 1EF6 3425 retlw 37 ;'%' 1939 1EF7 3464 retlw 100 ;'d' 1940 1EF8 342C retlw 44 ;',' 1941 1EF9 340D retlw 13 1942 1EFA 340A retlw 10 1943 1EFB 3400 retlw 0 1944 1EFC STR_4: 1945 1EFC 3430 retlw 48 ;'0' 1946 1EFD 3431 retlw 49 ;'1' 1947 1EFE 3432 retlw 50 ;'2' 1948 1EFF 3433 retlw 51 ;'3' 1949 1F00 3434 retlw 52 ;'4' 1950 1F01 3435 retlw 53 ;'5' 1951 1F02 3436 retlw 54 ;'6' 1952 1F03 3437 retlw 55 ;'7' 1953 1F04 3438 retlw 56 ;'8' 1954 1F05 3439 retlw 57 ;'9' 1955 1F06 3441 retlw 65 ;'A' 1956 1F07 3442 retlw 66 ;'B' 1957 1F08 3443 retlw 67 ;'C' 1958 1F09 3444 retlw 68 ;'D' 1959 1F0A 3445 retlw 69 ;'E' 1960 1F0B 3446 retlw 70 ;'F' 1961 1F0C 3400 retlw 0 1962 1F0D STR_1: 1963 1F0D 3465 retlw 101 ;'e' 1964 1F0E 3466 retlw 102 ;'f' 1965 1F0F 343D retlw 61 ;'=' 1966 1F10 3425 retlw 37 ;'%' 1967 1F11 3458 retlw 88 ;'X' 1968 1F12 3425 retlw 37 ;'%' 1969 1F13 3458 retlw 88 ;'X' 1970 1F14 340D retlw 13 1971 1F15 340A retlw 10 1972 1F16 3400 retlw 0 1973 1F17 __end_of__stringdata: 1974 1975 ; #config settings 1976 0000 1977 psect nvBANK4 1978 026F __pnvBANK4: 1979 026F _user_msg_size: 1980 026F ds 1 1981 1982 psect nvBANK5 1983 02EA __pnvBANK5: 1984 02EA _demo_mode: 1985 02EA ds 1 1986 02EB _user_id: 1987 02EB ds 1 1988 000B _INTCONbits set 11 1989 0012 _PIR2bits set 18 1990 000C _PORTAbits set 12 1991 0015 _TMR0 set 21 1992 0095 _OPTION_REG set 149 1993 0095 _OPTION_REGbits set 149 1994 0099 _OSCCON set 153 1995 0099 _OSCCONbits set 153 1996 0098 _OSCTUNE set 152 1997 0092 _PIE2bits set 146 1998 008C _TRISA set 140 1999 008E _TRISC set 142 2000 010C _LATA set 268 2001 010E _LATC set 270 2002 018E _ANSELC set 398 2003 0192 _PMADRH set 402 2004 0191 _PMADRL set 401 2005 0195 _PMCON1bits set 405 2006 0196 _PMCON2 set 406 2007 0194 _PMDATH set 404 2008 0193 _PMDATL set 403 2009 020C _WPUAbits set 524 2010 039B _ACTCON set 923 2011 0E96 _UADDR set 3734 2012 0E91 _UCFG set 3729 2013 0E8E _UCON set 3726 2014 0E8E _UCONbits set 3726 2015 0E97 _UEIE set 3735 2016 0E93 _UEIR set 3731 2017 0E98 _UEP0bits set 3736 2018 0E92 _UIE set 3730 2019 0E92 _UIEbits set 3730 2020 0E90 _UIR set 3728 2021 0E90 _UIRbits set 3728 2022 0E8F _USTAT set 3727 2023 0E98 _UEP0 set 3736 2024 0E99 _UEP1 set 3737 2025 2026 psect cinit 2027 081A start_initialization: 2028 081A __initialization: ;BIGRAM 2029 2030 ; Clear objects allocated to BIGRAM 2031 081A 3040 movlw 64 2032 081B 0084 movwf 4 2033 081C 3023 movlw 35 2034 081D 0085 movwf 5 2035 081E 30B0 movlw 176 2036 081F 00FE movwf 126 2037 0820 01FF clrf 127 2038 0821 319F 2782 3188 fcall clear_ram0 2039 0824 3057 movlw low __pbssBANK4 2040 2041 ; Clear objects allocated to BANK0h 2042 0825 01EF clrf __pbssBANK0h& (0+127) 2043 2044 ; Clear objects allocated to BANK4 2045 0826 0084 movwf 4 2046 0827 3002 movlw high __pbssBANK4 2047 0828 0085 movwf 5 2048 0829 3018 movlw 24 2049 082A 00FE movwf 126 2050 082B 01FF clrf 127 2051 082C 319F 2782 3188 fcall clear_ram0 2052 2053 ; Clear objects allocated to BANK5 2054 082F 30A0 movlw low __pbssBANK5 2055 0830 0084 movwf 4 2056 0831 3002 movlw high __pbssBANK5 2057 0832 0085 movwf 5 2058 0833 304A movlw 74 2059 0834 00FE movwf 126 2060 0835 01FF clrf 127 2061 0836 319F 2782 3188 fcall clear_ram0 2062 2063 ; Clear objects allocated to BANK6 2064 0839 3020 movlw low __pbssBANK6 2065 083A 0084 movwf 4 2066 083B 3003 movlw high __pbssBANK6 2067 083C 0085 movwf 5 2068 083D 301D movlw 29 2069 083E 00FE movwf 126 2070 083F 01FF clrf 127 2071 0840 319F 2782 3188 fcall clear_ram0 2072 2073 ; Clear objects allocated to BANK7 2074 0843 30A0 movlw low __pbssBANK7 2075 0844 0084 movwf 4 2076 0845 3003 movlw high __pbssBANK7 2077 0846 0085 movwf 5 2078 0847 3040 movlw 64 2079 0848 00FE movwf 126 2080 0849 01FF clrf 127 2081 084A 319F 2782 3188 fcall clear_ram0 2082 2083 ; Clear objects allocated to BANK9 2084 084D 30A0 movlw low __pbssBANK9 2085 084E 0084 movwf 4 2086 084F 3004 movlw high __pbssBANK9 2087 0850 0085 movwf 5 2088 0851 3040 movlw 64 2089 0852 00FE movwf 126 2090 0853 01FF clrf 127 2091 0854 319F 2782 3188 fcall clear_ram0 2092 2093 ; Initialize objects allocated to BANK5 2094 0857 0025 movlb 5 ; select bank5 2095 2096 ;initializer for _run 2097 0858 3001 movlw 1 2098 0859 00EC movwf __pdataBANK5& (0+127) 2099 2100 ;initializer for _wait_timer 2101 085A 00ED movwf (__pdataBANK5+1)& (0+127) 2102 2103 ; Initialize objects allocated to BANK6 2104 085B 30E3 movlw low __pidataBANK6 2105 085C 0084 movwf 4 2106 085D 309F movlw (high __pidataBANK6)| (0+128) 2107 085E 0085 movwf 5 2108 085F 303D movlw low __pdataBANK6 2109 0860 0086 movwf 6 2110 0861 3003 movlw high __pdataBANK6 2111 0862 0087 movwf 7 2112 0863 3012 movlw 18 2113 0864 01FF clrf 127 2114 0865 319F 278E 3188 fcall init_ram 2115 2116 ; Initialize objects allocated to BANK8 2117 0868 30C2 movlw low __pidataBANK8 2118 0869 0084 movwf 4 2119 086A 3087 movlw (high __pidataBANK8)| (0+128) 2120 086B 0085 movwf 5 2121 086C 3020 movlw low __pdataBANK8 2122 086D 0086 movwf 6 2123 086E 3004 movlw high __pdataBANK8 2124 086F 0087 movwf 7 2125 0870 3037 movlw 55 2126 0871 01FF clrf 127 2127 0872 319F 278E 3188 fcall init_ram 2128 0875 end_of_initialization: 2129 ;End of C runtime variable initialization code 2130 2131 0875 __end_of__initialization: 2132 0875 107E bcf 126,0 ;clear compiler interrupt flag 2133 0876 0020 movlb 0 2134 0877 2878 ljmp _main ;jump to C main() function 2135 0878 __pmaintext: 2136 ;; 2137 ;;Main: autosize = 0, tempsize = 3, incstack = 0, save=0 2138 ;; 2139 ;; *************** function _main ***************** 2140 ;; Defined at: 2141 ;; line 58 in file "../main.c" 2142 ;; Parameters: Size Location Type 2143 ;; None 2144 ;; Auto vars: Size Location Type 2145 ;; delay 2 53[BANK4 ] int 2146 ;; Return value: Size Location Type 2147 ;; None void 2148 ;; Registers used: 2149 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 2150 ;; Tracked objects: 2151 ;; On entry : 17F/0 2152 ;; On exit : 0/0 2153 ;; Unchanged: 0/0 2154 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 2155 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2156 ;; Locals: 0 0 0 0 0 2 0 0 0 0 0 0 +0 0 2157 ;; Temps: 0 0 0 0 0 3 0 0 0 0 0 0 +0 0 2158 ;; Totals: 0 0 0 0 0 5 0 0 0 0 0 0 +0 0 2159 ;;Total ram usage: 5 bytes 2160 ;; Hardware stack levels required when called: 16 2161 ;; This function calls: 2162 ;; _APP_DeviceCDCBasicDemoTasks 2163 ;; _USBDeviceAttach 2164 ;; _USBDeviceInit 2165 ;; _doMenu 2166 ;; _doWork 2167 ;; _handle_push_button 2168 ;; _packedRead 2169 ;; _update_pattern 2170 ;; This function is called by: 2171 ;; Startup code after reset 2172 ;; This function uses a non-reentrant model 2173 ;; 2174 2175 2176 ;psect for function _main 2177 0878 _main: 2178 2179 ;main.c: 60: int delay=0; 2180 2181 ;incstack = 0 2182 ; Regs used in _main: [wreg-fsr1h+status,2+status,0+pclath+cstack] 2183 0878 0024 movlb 4 ; select bank4 2184 0879 01D5 clrf main@delay^(0+512) 2185 087A 01D6 clrf (main@delay+1)^(0+512) 2186 2187 ;main.c: 64: ANSELC = 0x00; 2188 087B 0023 movlb 3 ; select bank3 2189 087C 018E clrf 14 ;volatile 2190 2191 ;main.c: 65: LATA = 0x00; 2192 087D 0022 movlb 2 ; select bank2 2193 087E 018C clrf 12 ;volatile 2194 2195 ;main.c: 66: LATC = 0x00; 2196 087F 018E clrf 14 ;volatile 2197 2198 ;main.c: 67: TRISA = 0x00; 2199 0880 0021 movlb 1 ; select bank1 2200 0881 018C clrf 12 ;volatile 2201 2202 ;main.c: 68: TRISC = 0x00; 2203 0882 018E clrf 14 ;volatile 2204 2205 ;main.c: 70: OSCTUNE = 0; 2206 0883 0198 clrf 24 ;volatile 2207 2208 ;main.c: 71: OSCCON = 0x7C; 2209 0884 307C movlw 124 2210 0885 0099 movwf 25 ;volatile 2211 2212 ;main.c: 72: OSCCONbits.SPLLMULT = 1; 2213 0886 1719 bsf 25,6 ;volatile 2214 2215 ;main.c: 73: ACTCON = 0x90; 2216 0887 3090 movlw 144 2217 0888 0027 movlb 7 ; select bank7 2218 0889 009B movwf 27 ;volatile 2219 2220 ;main.c: 74: OPTION_REGbits.nWPUEN = 0; 2221 088A 0021 movlb 1 ; select bank1 2222 088B 1395 bcf 21,7 ;volatile 2223 2224 ;main.c: 75: WPUAbits.WPUA3 = 1; 2225 088C 0024 movlb 4 ; select bank4 2226 088D 158C bsf 12,3 ;volatile 2227 2228 ;main.c: 76: WPUAbits.WPUA4 = 0; 2229 088E 120C bcf 12,4 ;volatile 2230 2231 ;main.c: 77: WPUAbits.WPUA5 = 0; 2232 088F 128C bcf 12,5 ;volatile 2233 2234 ;main.c: 79: demo_mode = packedRead((uint16_t) &fDemoMode,0); 2235 0890 30E0 movlw 224 2236 0891 0021 movlb 1 ; select bank1 2237 0892 00E0 movwf packedRead@address^(0+128) 2238 0893 301F movlw 31 2239 0894 00E1 movwf (packedRead@address^(0+128)+1) 2240 0895 01E2 clrf packedRead@hiLow^(0+128) 2241 0896 20F9 3188 fcall _packedRead 2242 0898 0025 movlb 5 ; select bank5 2243 0899 00EA movwf _demo_mode^(0+640) 2244 2245 ;main.c: 80: user_msg_size = packedRead((uint16_t) &fUserMsgSize,0); 2246 089A 30E1 movlw 225 2247 089B 0021 movlb 1 ; select bank1 2248 089C 00E0 movwf packedRead@address^(0+128) 2249 089D 301F movlw 31 2250 089E 00E1 movwf (packedRead@address^(0+128)+1) 2251 089F 01E2 clrf packedRead@hiLow^(0+128) 2252 08A0 20F9 3188 fcall _packedRead 2253 08A2 0024 movlb 4 ; select bank4 2254 08A3 00EF movwf _user_msg_size^(0+512) 2255 2256 ;main.c: 81: user_id = packedRead((uint16_t) &fUserId,0); 2257 08A4 30E2 movlw 226 2258 08A5 0021 movlb 1 ; select bank1 2259 08A6 00E0 movwf packedRead@address^(0+128) 2260 08A7 301F movlw 31 2261 08A8 00E1 movwf (packedRead@address^(0+128)+1) 2262 08A9 01E2 clrf packedRead@hiLow^(0+128) 2263 08AA 20F9 3188 fcall _packedRead 2264 08AC 0025 movlb 5 ; select bank5 2265 08AD 00EB movwf _user_id^(0+640) 2266 2267 ;main.c: 88: if (!PORTAbits.RA3) {demo_mode = 0x80;} 2268 08AE 0020 movlb 0 ; select bank0 2269 08AF 198C btfsc 12,3 ;volatile 2270 08B0 28B4 goto l6967 2271 08B1 3080 movlw 128 2272 08B2 0025 movlb 5 ; select bank5 2273 08B3 00EA movwf _demo_mode^(0+640) 2274 08B4 l6967: 2275 2276 ;main.c: 90: USBDeviceInit(); 2277 08B4 2310 3188 fcall _USBDeviceInit 2278 2279 ;main.c: 91: USBDeviceAttach(); 2280 08B6 22FB 3188 fcall _USBDeviceAttach 2281 2282 ;main.c: 101: OPTION_REG = 0b01000000; 2283 08B8 3040 movlw 64 2284 08B9 0021 movlb 1 ; select bank1 2285 08BA 0095 movwf 21 ;volatile 2286 2287 ;main.c: 102: INTCONbits.TMR0IE = 1; 2288 08BB 168B bsf 11,5 ;volatile 2289 08BC l6975: 2290 2291 ;main.c: 105: ; 2292 ;main.c: 106: APP_DeviceCDCBasicDemoTasks(); 2293 08BC 211E fcall _APP_DeviceCDCBasicDemoTasks 2294 2295 ;main.c: 107: doWork(); 2296 08BD 3190 20B7 3188 fcall _doWork 2297 2298 ;main.c: 108: doMenu(); 2299 08C0 3191 219D 3188 fcall _doMenu 2300 2301 ;main.c: 111: if ((wait_timer == 0) && (run == 1)) { 2302 08C3 0025 movlb 5 ; select bank5 2303 08C4 08ED movf _wait_timer^(0+640),f 2304 08C5 1D03 skipz 2305 08C6 28BC goto l6975 2306 08C7 0B6C decfsz _run^(0+640),w 2307 08C8 28BC goto l6975 2308 2309 ;main.c: 112: wait_timer = 1; 2310 08C9 01ED clrf _wait_timer^(0+640) 2311 08CA 0AED incf _wait_timer^(0+640),f 2312 2313 ;main.c: 113: delay++; 2314 08CB 0024 movlb 4 ; select bank4 2315 08CC 0AD5 incf main@delay^(0+512),f 2316 08CD 1903 skipnz 2317 08CE 0AD6 incf (main@delay+1)^(0+512),f 2318 2319 ;main.c: 115: if ((!PORTAbits.RA3) || old_button) { 2320 08CF 0020 movlb 0 ; select bank0 2321 08D0 1D8C btfss 12,3 ;volatile 2322 08D1 28D6 goto l6993 2323 08D2 0025 movlb 5 ; select bank5 2324 08D3 0852 movf _old_button^(0+640),w 2325 08D4 1903 btfsc 3,2 2326 08D5 28DA goto l6995 2327 08D6 l6993: 2328 2329 ;main.c: 116: handle_push_button(); 2330 08D6 3199 2138 3188 fcall _handle_push_button 2331 2332 ;main.c: 117: } else { 2333 08D9 28BC goto l6975 2334 08DA l6995: 2335 2336 ;main.c: 119: if (delay > pattern_speed*16) { 2337 08DA 0854 movf _pattern_speed^(0+640),w 2338 08DB 0024 movlb 4 ; select bank4 2339 08DC 00D2 movwf ??_main^(0+512) 2340 08DD 30F0 movlw 240 2341 08DE 01D3 clrf (??_main^(0+512)+1) 2342 08DF 0ED2 swapf ??_main^(0+512),f 2343 08E0 0ED3 swapf (??_main^(0+512)+1),f 2344 08E1 05D3 andwf (??_main^(0+512)+1),f 2345 08E2 0852 movf ??_main^(0+512),w 2346 08E3 390F andlw 15 2347 08E4 04D3 iorwf (??_main^(0+512)+1),f 2348 08E5 30F0 movlw 240 2349 08E6 05D2 andwf ??_main^(0+512),f 2350 08E7 0853 movf (??_main+1)^(0+512),w 2351 08E8 3A80 xorlw 128 2352 08E9 00D4 movwf (??_main+2)^(0+512) 2353 08EA 0856 movf (main@delay+1)^(0+512),w 2354 08EB 3A80 xorlw 128 2355 08EC 0254 subwf (??_main+2)^(0+512),w 2356 08ED 1D03 skipz 2357 08EE 28F1 goto u6415 2358 08EF 0855 movf main@delay^(0+512),w 2359 08F0 0252 subwf ??_main^(0+512),w 2360 08F1 u6415: 2361 08F1 1803 skipnc 2362 08F2 28BC goto l6975 2363 2364 ;main.c: 120: delay = 0; 2365 08F3 0024 movlb 4 ; select bank4 2366 08F4 01D5 clrf main@delay^(0+512) 2367 08F5 01D6 clrf (main@delay+1)^(0+512) 2368 2369 ;main.c: 121: update_pattern(); 2370 08F6 2393 3188 fcall _update_pattern 2371 08F8 28BC goto l6975 2372 08F9 __end_of_main: 2373 08F9 __ptext36: 2374 ;; *************** function _packedRead ***************** 2375 ;; Defined at: 2376 ;; line 116 in file "../blinkie_parse.c" 2377 ;; Parameters: Size Location Type 2378 ;; address 2 0[BANK1 ] unsigned int 2379 ;; hiLow 1 2[BANK1 ] unsigned char 2380 ;; Auto vars: Size Location Type 2381 ;; h 2 3[BANK1 ] int 2382 ;; Return value: Size Location Type 2383 ;; 1 wreg unsigned char 2384 ;; Registers used: 2385 ;; wreg, status,2, status,0 2386 ;; Tracked objects: 2387 ;; On entry : 1F/1 2388 ;; On exit : 1D/1 2389 ;; Unchanged: 0/0 2390 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 2391 ;; Params: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 2392 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 2393 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2394 ;; Totals: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 2395 ;;Total ram usage: 5 bytes 2396 ;; Hardware stack levels used: 1 2397 ;; Hardware stack levels required when called: 10 2398 ;; This function calls: 2399 ;; Nothing 2400 ;; This function is called by: 2401 ;; _main 2402 ;; _get_next_pattern_byte 2403 ;; _processChars 2404 ;; _debugPackedOut 2405 ;; This function uses a non-reentrant model 2406 ;; 2407 2408 2409 ;psect for function _packedRead 2410 08F9 _packedRead: 2411 2412 ;blinkie_parse.c: 117: int h; 2413 ;blinkie_parse.c: 119: PMCON1bits.CFGS = 0; 2414 2415 ;incstack = 0 2416 ; Regs used in _packedRead: [wreg+status,2+status,0] 2417 08F9 0023 movlb 3 ; select bank3 2418 08FA 1315 bcf 21,6 ;volatile 2419 2420 ;blinkie_parse.c: 120: PMADRL = address & 0x00ff; 2421 08FB 0021 movlb 1 ; select bank1 2422 08FC 0860 movf packedRead@address^(0+128),w 2423 08FD 0023 movlb 3 ; select bank3 2424 08FE 0091 movwf 17 ;volatile 2425 2426 ;blinkie_parse.c: 121: PMADRH = address >> 8; 2427 08FF 0021 movlb 1 ; select bank1 2428 0900 0861 movf (packedRead@address+1)^(0+128),w 2429 0901 0023 movlb 3 ; select bank3 2430 0902 0092 movwf 18 ;volatile 2431 2432 ;blinkie_parse.c: 122: PMCON1bits.RD = 1; 2433 0903 1415 bsf 21,0 ;volatile 2434 0904 0000 nop ;# 2435 0905 0000 nop ;# 2436 2437 ;blinkie_parse.c: 125: if (hiLow == 1) { 2438 0906 0021 movlb 1 ; select bank1 2439 0907 0B62 decfsz packedRead@hiLow^(0+128),w 2440 0908 291A goto l5235 2441 2442 ;blinkie_parse.c: 126: h = PMDATH<<1; 2443 0909 0023 movlb 3 ; select bank3 2444 090A 0814 movf 20,w ;volatile 2445 090B 0021 movlb 1 ; select bank1 2446 090C 00E3 movwf packedRead@h^(0+128) 2447 090D 01E4 clrf (packedRead@h+1)^(0+128) 2448 090E 35E3 lslf packedRead@h^(0+128),f 2449 090F 0DE4 rlf (packedRead@h+1)^(0+128),f 2450 2451 ;blinkie_parse.c: 127: if (PMDATL & 0x80) { h++; } 2452 0910 0023 movlb 3 ; select bank3 2453 0911 1F93 btfss 19,7 ;volatile 2454 0912 2917 goto l5229 2455 0913 0021 movlb 1 ; select bank1 2456 0914 0AE3 incf packedRead@h^(0+128),f 2457 0915 1903 skipnz 2458 0916 0AE4 incf (packedRead@h+1)^(0+128),f 2459 0917 l5229: 2460 2461 ;blinkie_parse.c: 128: return(h); 2462 0917 0021 movlb 1 ; select bank1 2463 0918 0863 movf packedRead@h^(0+128),w 2464 0919 0008 return 2465 091A l5235: 2466 2467 ;blinkie_parse.c: 130: return( PMDATL & 0x7f); 2468 091A 0023 movlb 3 ; select bank3 2469 091B 0813 movf 19,w ;volatile 2470 091C 397F andlw 127 2471 091D 0008 return 2472 091E __end_of_packedRead: 2473 091E __ptext19: 2474 ;; *************** function _APP_DeviceCDCBasicDemoTasks ***************** 2475 ;; Defined at: 2476 ;; line 77 in file "../app_device_cdc_basic.c" 2477 ;; Parameters: Size Location Type 2478 ;; None 2479 ;; Auto vars: Size Location Type 2480 ;; i 1 49[BANK4 ] unsigned char 2481 ;; numBytesRead 1 48[BANK4 ] unsigned char 2482 ;; Return value: Size Location Type 2483 ;; None void 2484 ;; Registers used: 2485 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 2486 ;; Tracked objects: 2487 ;; On entry : 0/1 2488 ;; On exit : 2/0 2489 ;; Unchanged: 0/0 2490 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 2491 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2492 ;; Locals: 0 0 0 0 0 2 0 0 0 0 0 0 +0 0 2493 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2494 ;; Totals: 0 0 0 0 0 2 0 0 0 0 0 0 +0 0 2495 ;;Total ram usage: 2 bytes 2496 ;; Hardware stack levels used: 1 2497 ;; Hardware stack levels required when called: 15 2498 ;; This function calls: 2499 ;; _CDCTxService 2500 ;; _ParseBlinkieCommand 2501 ;; _getsUSBUSART 2502 ;; _memcpy 2503 ;; _putrsUSBUSART 2504 ;; This function is called by: 2505 ;; _main 2506 ;; This function uses a non-reentrant model 2507 ;; 2508 2509 2510 ;psect for function _APP_DeviceCDCBasicDemoTasks 2511 091E _APP_DeviceCDCBasicDemoTasks: 2512 2513 ;app_device_cdc_basic.c: 79: static uint8_t offset = 0; 2514 ;app_device_cdc_basic.c: 83: if( USBDeviceState < CONFIGURED_STATE ) 2515 2516 ;incstack = 0 2517 ; Regs used in _APP_DeviceCDCBasicDemoTasks: [wreg-fsr1h+status,2+status,0+pclath+cstack + ] 2518 091E 3020 movlw 32 2519 091F 0024 movlb 4 ; select bank4 2520 0920 0260 subwf _USBDeviceState^(0+512),w ;volatile 2521 0921 1C03 btfss 3,0 2522 0922 0008 return 2523 2524 ;app_device_cdc_basic.c: 86: } 2525 ;app_device_cdc_basic.c: 92: if( UCONbits.SUSPND== 1 ) 2526 0923 003D movlb 29 ; select bank29 2527 0924 188E btfsc 14,1 ;volatile 2528 0925 0008 return 2529 2530 ;app_device_cdc_basic.c: 95: } 2531 ;app_device_cdc_basic.c: 100: if(PORTAbits.RA3 == 0) 2532 0926 0020 movlb 0 ; select bank0 2533 0927 198C btfsc 12,3 ;volatile 2534 0928 2938 goto l6583 2535 2536 ;app_device_cdc_basic.c: 101: { 2537 ;app_device_cdc_basic.c: 105: if(buttonPressed == 0) 2538 0929 0025 movlb 5 ; select bank5 2539 092A 08C9 movf _buttonPressed^(0+640),f 2540 092B 1D03 skipz 2541 092C 293A goto l6585 2542 2543 ;app_device_cdc_basic.c: 106: { 2544 ;app_device_cdc_basic.c: 109: if((cdc_trf_state == 0) == 1) 2545 092D 0024 movlb 4 ; select bank4 2546 092E 08E1 movf _cdc_trf_state^(0+512),f 2547 092F 1D03 skipz 2548 0930 293A goto l6585 2549 2550 ;app_device_cdc_basic.c: 110: { 2551 ;app_device_cdc_basic.c: 111: putrsUSBUSART(buttonMessage); 2552 0931 303D movlw _buttonMessage& (0+255) 2553 0932 22D0 3188 fcall _putrsUSBUSART 2554 2555 ;app_device_cdc_basic.c: 112: buttonPressed = 1; 2556 0934 0025 movlb 5 ; select bank5 2557 0935 01C9 clrf _buttonPressed^(0+640) 2558 0936 0AC9 incf _buttonPressed^(0+640),f 2559 0937 293A goto l6585 2560 0938 l6583: 2561 2562 ;app_device_cdc_basic.c: 116: else 2563 ;app_device_cdc_basic.c: 117: { 2564 ;app_device_cdc_basic.c: 121: buttonPressed = 0; 2565 0938 0025 movlb 5 ; select bank5 2566 0939 01C9 clrf _buttonPressed^(0+640) 2567 093A l6585: 2568 2569 ;app_device_cdc_basic.c: 122: } 2570 ;app_device_cdc_basic.c: 128: if( (cdc_trf_state == 0) == 1) 2571 093A 0024 movlb 4 ; select bank4 2572 093B 08E1 movf _cdc_trf_state^(0+512),f 2573 093C 1D03 skipz 2574 093D 2992 goto l6611 2575 2576 ;app_device_cdc_basic.c: 129: { 2577 ;app_device_cdc_basic.c: 130: uint8_t i; 2578 ;app_device_cdc_basic.c: 131: uint8_t numBytesRead; 2579 ;app_device_cdc_basic.c: 133: numBytesRead = getsUSBUSART(&readBuffer[offset], (64-offse + t)); 2580 093E 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2581 093F 3C40 sublw 64 2582 0940 0021 movlb 1 ; select bank1 2583 0941 00EB movwf getsUSBUSART@len^(0+128) 2584 0942 0024 movlb 4 ; select bank4 2585 0943 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2586 0944 3EA0 addlw _readBuffer& (0+255) 2587 0945 2281 3188 fcall _getsUSBUSART 2588 0947 0024 movlb 4 ; select bank4 2589 0948 00D0 movwf APP_DeviceCDCBasicDemoTasks@numBytesRead^(0+512) 2590 2591 ;app_device_cdc_basic.c: 136: for(i=0; i61)) { 2603 094E 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2604 094F 3EA0 addlw _readBuffer& (0+255) 2605 0950 0086 movwf 6 2606 0951 3004 movlw 4 ; select bank9/10 2607 0952 0087 movwf 7 2608 0953 0801 movf 1,w 2609 0954 3A0D xorlw 13 2610 0955 1903 skipnz 2611 0956 2962 goto l6597 2612 0957 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2613 0958 3EA0 addlw _readBuffer& (0+255) 2614 0959 0086 movwf 6 2615 095A 0801 movf 1,w 2616 095B 3A0A xorlw 10 2617 095C 1903 skipnz 2618 095D 2962 goto l6597 2619 095E 303E movlw 62 2620 095F 025F subwf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2621 0960 1C03 skipc 2622 0961 298F goto l6607 2623 0962 l6597: 2624 2625 ;app_device_cdc_basic.c: 141: readBuffer[offset] = 0; 2626 0962 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2627 0963 3EA0 addlw _readBuffer& (0+255) 2628 0964 0086 movwf 6 2629 0965 3004 movlw 4 ; select bank9/10 2630 0966 0087 movwf 7 2631 0967 0181 clrf 1 2632 2633 ;app_device_cdc_basic.c: 142: if (offset != 0) { 2634 0968 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2635 0969 1903 btfsc 3,2 2636 096A 2971 goto l6603 2637 2638 ;app_device_cdc_basic.c: 143: ParseBlinkieCommand(readBuffer); 2639 096B 30A0 movlw _readBuffer& (0+255) 2640 096C 3194 241D 3188 fcall _ParseBlinkieCommand 2641 2642 ;app_device_cdc_basic.c: 144: CDCTxService(); 2643 096F 2193 3188 fcall _CDCTxService 2644 0971 l6603: 2645 2646 ;app_device_cdc_basic.c: 145: } 2647 ;app_device_cdc_basic.c: 146: memcpy(readBuffer,readBuffer+offset+1,numBytesRead-i-1); 2648 0971 0024 movlb 4 ; select bank4 2649 0972 0850 movf APP_DeviceCDCBasicDemoTasks@numBytesRead^(0+512),w 2650 0973 0021 movlb 1 ; select bank1 2651 0974 00E4 movwf memcpy@n^(0+128) 2652 0975 01E5 clrf (memcpy@n+1)^(0+128) 2653 0976 0024 movlb 4 ; select bank4 2654 0977 0851 movf APP_DeviceCDCBasicDemoTasks@i^(0+512),w 2655 0978 0021 movlb 1 ; select bank1 2656 0979 02E4 subwf memcpy@n^(0+128),f 2657 097A 1C03 skipc 2658 097B 03E5 decf (memcpy@n+1)^(0+128),f 2659 097C 30FF movlw 255 2660 097D 07E4 addwf memcpy@n^(0+128),f 2661 097E 3DE5 addwfc (memcpy@n+1)^(0+128),f 2662 097F 30A0 movlw low _readBuffer 2663 0980 00E0 movwf memcpy@d1^(0+128) 2664 0981 3004 movlw high _readBuffer 2665 0982 00E1 movwf (memcpy@d1+1)^(0+128) 2666 0983 0024 movlb 4 ; select bank4 2667 0984 085F movf APP_DeviceCDCBasicDemoTasks@offset^(0+512),w 2668 0985 3EA1 addlw (_readBuffer+1)& (0+255) 2669 0986 0021 movlb 1 ; select bank1 2670 0987 00E2 movwf memcpy@s1^(0+128) 2671 0988 3004 movlw 4 2672 0989 00E3 movwf (memcpy@s1+1)^(0+128) 2673 098A 2259 3188 fcall _memcpy 2674 2675 ;app_device_cdc_basic.c: 147: offset = 0; 2676 098C 0024 movlb 4 ; select bank4 2677 098D 01DF clrf APP_DeviceCDCBasicDemoTasks@offset^(0+512) 2678 2679 ;app_device_cdc_basic.c: 148: } else { 2680 098E 2990 goto l238 2681 098F l6607: 2682 2683 ;app_device_cdc_basic.c: 149: offset++; 2684 098F 0ADF incf APP_DeviceCDCBasicDemoTasks@offset^(0+512),f 2685 0990 l238: 2686 0990 0AD1 incf APP_DeviceCDCBasicDemoTasks@i^(0+512),f 2687 0991 294A goto l6609 2688 0992 l6611: 2689 2690 ;app_device_cdc_basic.c: 150: } 2691 ;app_device_cdc_basic.c: 151: } 2692 ;app_device_cdc_basic.c: 152: } 2693 ;app_device_cdc_basic.c: 153: CDCTxService(); 2694 0992 2993 ljmp l6009 2695 0993 __end_of_APP_DeviceCDCBasicDemoTasks: 2696 0993 __ptext44: 2697 ;; *************** function _CDCTxService ***************** 2698 ;; Defined at: 2699 ;; line 836 in file "../usb_device_cdc.c" 2700 ;; Parameters: Size Location Type 2701 ;; None 2702 ;; Auto vars: Size Location Type 2703 ;; byte_to_send 1 12[BANK1 ] unsigned char 2704 ;; i 1 11[BANK1 ] unsigned char 2705 ;; Return value: Size Location Type 2706 ;; None void 2707 ;; Registers used: 2708 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 2709 ;; Tracked objects: 2710 ;; On entry : 0/4 2711 ;; On exit : 1F/1 2712 ;; Unchanged: 0/0 2713 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 2714 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2715 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 2716 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 2717 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 2718 ;;Total ram usage: 2 bytes 2719 ;; Hardware stack levels used: 1 2720 ;; Hardware stack levels required when called: 11 2721 ;; This function calls: 2722 ;; _USBTransferOnePacket 2723 ;; This function is called by: 2724 ;; _APP_DeviceCDCBasicDemoTasks 2725 ;; This function uses a non-reentrant model 2726 ;; 2727 2728 2729 ;psect for function _CDCTxService 2730 0993 _CDCTxService: 2731 0993 l6009: 2732 ;incstack = 0 2733 ; Regs used in _CDCTxService: [wreg-fsr1h+status,2+status,0+pclath+cstack] 2734 2735 2736 ;usb_device_cdc.c: 838: uint8_t byte_to_send; 2737 ;usb_device_cdc.c: 839: uint8_t i; 2738 ;usb_device_cdc.c: 841: {PIE2bits.USBIE = 0;}; 2739 0993 0021 movlb 1 ; select bank1 2740 0994 1112 bcf 18,2 ;volatile 2741 2742 ;usb_device_cdc.c: 843: {}; 2743 ;usb_device_cdc.c: 845: if(((CDCDataInHandle != 0x0000) && ((*(volatile uint8_t*)CDCData + InHandle & 0x80) != 0x00))) 2744 0995 0025 movlb 5 ; select bank5 2745 0996 0834 movf (_CDCDataInHandle+1)^(0+640),w 2746 0997 0433 iorwf _CDCDataInHandle^(0+640),w 2747 0998 1903 skipnz 2748 0999 29A3 goto l6017 2749 099A 0833 movf _CDCDataInHandle^(0+640),w 2750 099B 0086 movwf 6 2751 099C 0834 movf (_CDCDataInHandle+1)^(0+640),w 2752 099D 0087 movwf 7 2753 099E 1F81 btfss 1,7 2754 099F 29A3 goto l6017 2755 2756 ;usb_device_cdc.c: 846: { 2757 ;usb_device_cdc.c: 847: {PIE2bits.USBIE = 1;}; 2758 09A0 0021 movlb 1 ; select bank1 2759 09A1 1512 bsf 18,2 ;volatile 2760 2761 ;usb_device_cdc.c: 848: return; 2762 09A2 0008 return 2763 09A3 l6017: 2764 2765 ;usb_device_cdc.c: 849: } 2766 ;usb_device_cdc.c: 856: if(cdc_trf_state == 3) 2767 09A3 0024 movlb 4 ; select bank4 2768 09A4 0861 movf _cdc_trf_state^(0+512),w 2769 09A5 3A03 xorlw 3 2770 09A6 1903 btfsc 3,2 2771 2772 ;usb_device_cdc.c: 857: cdc_trf_state = 0; 2773 09A7 01E1 clrf _cdc_trf_state^(0+512) 2774 2775 ;usb_device_cdc.c: 862: if(cdc_trf_state == 0) 2776 09A8 08E1 movf _cdc_trf_state^(0+512),f 2777 09A9 1D03 skipz 2778 09AA 29AE goto l6025 2779 2780 ;usb_device_cdc.c: 863: { 2781 ;usb_device_cdc.c: 864: {PIE2bits.USBIE = 1;}; 2782 09AB 0021 movlb 1 ; select bank1 2783 09AC 1512 bsf 18,2 ;volatile 2784 2785 ;usb_device_cdc.c: 865: return; 2786 09AD 0008 return 2787 09AE l6025: 2788 2789 ;usb_device_cdc.c: 866: } 2790 ;usb_device_cdc.c: 871: if(cdc_trf_state == 2) 2791 09AE 0861 movf _cdc_trf_state^(0+512),w 2792 09AF 3A02 xorlw 2 2793 09B0 1D03 skipz 2794 09B1 29C1 goto l6031 2795 2796 ;usb_device_cdc.c: 872: { 2797 ;usb_device_cdc.c: 873: CDCDataInHandle = USBTransferOnePacket(2,1,(0),0); 2798 09B2 0021 movlb 1 ; select bank1 2799 09B3 3002 movlw 2 2800 09B4 01E0 clrf USBTransferOnePacket@dir^(0+128) 2801 09B5 0AE0 incf USBTransferOnePacket@dir^(0+128),f 2802 09B6 01E1 clrf USBTransferOnePacket@data^(0+128) 2803 09B7 01E2 clrf (USBTransferOnePacket@data+1)^(0+128) 2804 09B8 01E3 clrf USBTransferOnePacket@len^(0+128) 2805 09B9 2203 3188 fcall _USBTransferOnePacket 2806 09BB 2750 3188 fcall PL161 ;call to abstracted procedure 2807 2808 ;usb_device_cdc.c: 875: cdc_trf_state = 3; 2809 09BD 3003 movlw 3 2810 09BE 0024 movlb 4 ; select bank4 2811 09BF 00E1 movwf _cdc_trf_state^(0+512) 2812 2813 ;usb_device_cdc.c: 876: } 2814 09C0 2A00 goto l6077 2815 09C1 l6031: 2816 2817 ;usb_device_cdc.c: 877: else if(cdc_trf_state == 1) 2818 09C1 0B61 decfsz _cdc_trf_state^(0+512),w 2819 09C2 2A00 goto l6077 2820 2821 ;usb_device_cdc.c: 878: { 2822 ;usb_device_cdc.c: 882: if(cdc_tx_len > sizeof(cdc_data_tx)) 2823 09C3 3041 movlw 65 2824 09C4 0025 movlb 5 ; select bank5 2825 09C5 024C subwf _cdc_tx_len^(0+640),w 2826 09C6 1C03 skipc 2827 09C7 29CA goto l6037 2828 2829 ;usb_device_cdc.c: 883: byte_to_send = sizeof(cdc_data_tx); 2830 09C8 3040 movlw 64 2831 09C9 29CB goto L22 2832 09CA l6037: 2833 2834 ;usb_device_cdc.c: 884: else 2835 ;usb_device_cdc.c: 885: byte_to_send = cdc_tx_len; 2836 09CA 084C movf _cdc_tx_len^(0+640),w 2837 09CB L22: 2838 09CB 0021 movlb 1 ; select bank1 2839 09CC 00EC movwf CDCTxService@byte_to_send^(0+128) 2840 2841 ;usb_device_cdc.c: 890: cdc_tx_len = cdc_tx_len - byte_to_send; 2842 09CD 0025 movlb 5 ; select bank5 2843 09CE 02CC subwf _cdc_tx_len^(0+640),f 2844 2845 ;usb_device_cdc.c: 892: pCDCDst.bRam = (uint8_t*)&cdc_data_tx; 2846 09CF 30A0 movlw 160 2847 09D0 00B7 movwf _pCDCDst^(0+640) 2848 2849 ;usb_device_cdc.c: 894: i = byte_to_send; 2850 09D1 0021 movlb 1 ; select bank1 2851 09D2 086C movf CDCTxService@byte_to_send^(0+128),w 2852 09D3 00EB movwf CDCTxService@i^(0+128) 2853 2854 ;usb_device_cdc.c: 895: if(cdc_mem_type == 0x00) 2855 09D4 0025 movlb 5 ; select bank5 2856 09D5 08CA movf _cdc_mem_type^(0+640),f 2857 09D6 1903 btfsc 3,2 2858 09D7 29DB goto l6055 2859 09D8 29E2 goto l6065 2860 09D9 l6047: 2861 2862 ;usb_device_cdc.c: 898: { 2863 ;usb_device_cdc.c: 899: *pCDCDst.bRam = *pCDCSrc.bRom; 2864 2865 ;usb_device_cdc.c: 900: pCDCDst.bRam++; 2866 2867 ;usb_device_cdc.c: 901: pCDCSrc.bRom++; 2868 2869 ;usb_device_cdc.c: 902: i--; 2870 09D9 272B 3188 fcall PL141 ;call to abstracted procedure 2871 09DB l6055: 2872 09DB 0021 movlb 1 ; select bank1 2873 09DC 08EB movf CDCTxService@i^(0+128),f 2874 09DD 1903 btfsc 3,2 2875 09DE 29E6 goto l6067 2876 09DF 29D9 goto l6047 2877 09E0 l6057: 2878 2879 ;usb_device_cdc.c: 908: { 2880 ;usb_device_cdc.c: 909: *pCDCDst.bRam = *pCDCSrc.bRam; 2881 2882 ;usb_device_cdc.c: 910: pCDCDst.bRam++; 2883 2884 ;usb_device_cdc.c: 911: pCDCSrc.bRam++; 2885 2886 ;usb_device_cdc.c: 912: i--; 2887 09E0 272B 3188 fcall PL141 ;call to abstracted procedure 2888 09E2 l6065: 2889 09E2 0021 movlb 1 ; select bank1 2890 09E3 08EB movf CDCTxService@i^(0+128),f 2891 09E4 1D03 skipz 2892 09E5 29E0 goto l6057 2893 09E6 l6067: 2894 2895 ;usb_device_cdc.c: 913: } 2896 ;usb_device_cdc.c: 914: } 2897 ;usb_device_cdc.c: 920: if(cdc_tx_len == 0) 2898 09E6 0025 movlb 5 ; select bank5 2899 09E7 08CC movf _cdc_tx_len^(0+640),f 2900 09E8 1D03 skipz 2901 09E9 29F4 goto l6075 2902 2903 ;usb_device_cdc.c: 921: { 2904 ;usb_device_cdc.c: 922: if(byte_to_send == 64) 2905 09EA 0021 movlb 1 ; select bank1 2906 09EB 086C movf CDCTxService@byte_to_send^(0+128),w 2907 09EC 3A40 xorlw 64 2908 09ED 1D03 skipz 2909 09EE 29F1 goto l6073 2910 2911 ;usb_device_cdc.c: 923: cdc_trf_state = 2; 2912 09EF 3002 movlw 2 2913 09F0 29F2 goto L23 2914 09F1 l6073: 2915 2916 ;usb_device_cdc.c: 924: else 2917 ;usb_device_cdc.c: 925: cdc_trf_state = 3; 2918 09F1 3003 movlw 3 2919 09F2 L23: 2920 09F2 0024 movlb 4 ; select bank4 2921 09F3 00E1 movwf _cdc_trf_state^(0+512) 2922 09F4 l6075: 2923 2924 ;usb_device_cdc.c: 926: } 2925 ;usb_device_cdc.c: 927: CDCDataInHandle = USBTransferOnePacket(2,1,(uint8_t*)&cdc_data_t + x,byte_to_send); 2926 09F4 0021 movlb 1 ; select bank1 2927 09F5 30A0 movlw 160 2928 09F6 01E0 clrf USBTransferOnePacket@dir^(0+128) 2929 09F7 0AE0 incf USBTransferOnePacket@dir^(0+128),f 2930 09F8 00E1 movwf USBTransferOnePacket@data^(0+128) 2931 09F9 01E2 clrf (USBTransferOnePacket@data+1)^(0+128) 2932 09FA 086C movf CDCTxService@byte_to_send^(0+128),w 2933 09FB 00E3 movwf USBTransferOnePacket@len^(0+128) 2934 09FC 3002 movlw 2 2935 09FD 2203 3188 fcall _USBTransferOnePacket 2936 09FF 2750 fcall PL161 ;call to abstracted procedure 2937 0A00 l6077: 2938 2939 ;usb_device_cdc.c: 929: } 2940 ;usb_device_cdc.c: 931: {PIE2bits.USBIE = 1;}; 2941 0A00 0021 movlb 1 ; select bank1 2942 0A01 1512 bsf 18,2 ;volatile 2943 0A02 0008 return 2944 0A03 __end_of_CDCTxService: 2945 0A03 __ptext45: 2946 ;; *************** function _USBTransferOnePacket ***************** 2947 ;; Defined at: 2948 ;; line 995 in file "../usb_device.c" 2949 ;; Parameters: Size Location Type 2950 ;; ep 1 wreg unsigned char 2951 ;; dir 1 0[BANK1 ] unsigned char 2952 ;; data 2 1[BANK1 ] PTR unsigned char 2953 ;; -> cdc_data_tx(64), NULL(0), cdc_data_rx(64), 2954 ;; len 1 3[BANK1 ] unsigned char 2955 ;; Auto vars: Size Location Type 2956 ;; ep 1 8[BANK1 ] unsigned char 2957 ;; handle 2 9[BANK1 ] PTR volatile struct __BD 2958 ;; -> RAM(4096), BDT(48), NULL(0), 2959 ;; Return value: Size Location Type 2960 ;; 2 0[BANK1 ] PTR void 2961 ;; Registers used: 2962 ;; wreg, fsr1l, fsr1h, status,2, status,0 2963 ;; Tracked objects: 2964 ;; On entry : 1F/1 2965 ;; On exit : 1F/1 2966 ;; Unchanged: 0/0 2967 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 2968 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 2969 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 2970 ;; Temps: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 2971 ;; Totals: 0 0 11 0 0 0 0 0 0 0 0 0 +0 0 2972 ;;Total ram usage: 11 bytes 2973 ;; Hardware stack levels used: 1 2974 ;; Hardware stack levels required when called: 10 2975 ;; This function calls: 2976 ;; Nothing 2977 ;; This function is called by: 2978 ;; _getsUSBUSART 2979 ;; _CDCTxService 2980 ;; This function uses a non-reentrant model 2981 ;; 2982 2983 2984 ;psect for function _USBTransferOnePacket 2985 0A03 _USBTransferOnePacket: 2986 2987 ;incstack = 0 2988 ; Regs used in _USBTransferOnePacket: [wreg+fsr1l+fsr1h+status,2+status,0] 2989 ;USBTransferOnePacket@ep stored from wreg 2990 0A03 00E8 movwf USBTransferOnePacket@ep^(0+128) 2991 2992 ;usb_device.c: 997: volatile BDT_ENTRY* handle; 2993 ;usb_device.c: 1000: if(dir != 0) 2994 0A04 0860 movf USBTransferOnePacket@dir^(0+128),w 2995 0A05 1903 btfsc 3,2 2996 0A06 2A0C goto l5525 2997 2998 ;usb_device.c: 1001: { 2999 ;usb_device.c: 1003: handle = pBDTEntryIn[ep]; 3000 0A07 3568 lslf USBTransferOnePacket@ep^(0+128),w 3001 0A08 3E57 addlw _pBDTEntryIn& (0+255) 3002 0A09 0086 movwf 6 3003 0A0A 3002 movlw 2 ; select bank4/5 3004 0A0B 2A0E goto L39 3005 0A0C l5525: 3006 ;usb_device.c: 1004: } 3007 3008 3009 ;usb_device.c: 1005: else 3010 ;usb_device.c: 1006: { 3011 ;usb_device.c: 1008: handle = pBDTEntryOut[ep]; 3012 0A0C 2761 3188 fcall PL177 ;call to abstracted procedure 3013 0A0E L39: 3014 0A0E 2776 3188 fcall PL205 ;call to abstracted procedure 3015 0A10 00EA movwf (USBTransferOnePacket@handle+1)^(0+128) 3016 3017 ;usb_device.c: 1009: } 3018 ;usb_device.c: 1013: if(handle == 0) 3019 0A11 0469 iorwf USBTransferOnePacket@handle^(0+128),w 3020 0A12 1D03 skipz 3021 0A13 2A17 goto l5533 3022 3023 ;usb_device.c: 1014: { 3024 ;usb_device.c: 1015: return 0; 3025 0A14 01E0 clrf ?_USBTransferOnePacket^(0+128) 3026 0A15 01E1 clrf (?_USBTransferOnePacket+1)^(0+128) 3027 0A16 0008 return 3028 0A17 l5533: 3029 3030 ;usb_device.c: 1016: } 3031 ;usb_device.c: 1029: handle->ADR = (((uint16_t)(data)) & 0x7FFF); 3032 0A17 0861 movf USBTransferOnePacket@data^(0+128),w 3033 0A18 00E4 movwf ??_USBTransferOnePacket^(0+128) 3034 0A19 307F movlw 127 3035 0A1A 0562 andwf (USBTransferOnePacket@data+1)^(0+128),w 3036 0A1B 00E5 movwf (??_USBTransferOnePacket+1)^(0+128) 3037 0A1C 0869 movf USBTransferOnePacket@handle^(0+128),w 3038 0A1D 0086 movwf 6 3039 0A1E 086A movf (USBTransferOnePacket@handle+1)^(0+128),w 3040 0A1F 0087 movwf 7 3041 0A20 3142 addfsr 1,2 3042 0A21 0864 movf ??_USBTransferOnePacket^(0+128),w 3043 0A22 3FC0 movwi [0]fsr1 3044 0A23 0865 movf (??_USBTransferOnePacket^(0+128)+1),w 3045 0A24 3FC1 movwi [1]fsr1 3046 3047 ;usb_device.c: 1030: handle->CNT = len; 3048 0A25 0869 movf USBTransferOnePacket@handle^(0+128),w 3049 0A26 3E01 addlw 1 3050 0A27 00E4 movwf ??_USBTransferOnePacket^(0+128) 3051 0A28 3000 movlw 0 3052 0A29 3D6A addwfc (USBTransferOnePacket@handle+1)^(0+128),w 3053 0A2A 00E5 movwf (??_USBTransferOnePacket+1)^(0+128) 3054 0A2B 0864 movf ??_USBTransferOnePacket^(0+128),w 3055 0A2C 0086 movwf 6 3056 0A2D 0865 movf (??_USBTransferOnePacket+1)^(0+128),w 3057 0A2E 0087 movwf 7 3058 0A2F 0863 movf USBTransferOnePacket@len^(0+128),w 3059 0A30 0081 movwf 1 3060 3061 ;usb_device.c: 1031: handle->STAT.Val &= 0x40; 3062 0A31 0869 movf USBTransferOnePacket@handle^(0+128),w 3063 0A32 0086 movwf 6 3064 0A33 086A movf (USBTransferOnePacket@handle+1)^(0+128),w 3065 0A34 0087 movwf 7 3066 0A35 3040 movlw 64 3067 0A36 0581 andwf 1,f 3068 3069 ;usb_device.c: 1032: handle->STAT.Val |= (0x08 & 0x08); 3070 0A37 0869 movf USBTransferOnePacket@handle^(0+128),w 3071 0A38 0086 movwf 6 3072 0A39 086A movf (USBTransferOnePacket@handle+1)^(0+128),w 3073 0A3A 0087 movwf 7 3074 0A3B 1581 bsf 1,3 3075 3076 ;usb_device.c: 1033: handle->STAT.Val |= 0x80; 3077 0A3C 0869 movf USBTransferOnePacket@handle^(0+128),w 3078 0A3D 0086 movwf 6 3079 0A3E 086A movf (USBTransferOnePacket@handle+1)^(0+128),w 3080 0A3F 0087 movwf 7 3081 0A40 1781 bsf 1,7 3082 3083 ;usb_device.c: 1036: if(dir != 0) 3084 0A41 0860 movf USBTransferOnePacket@dir^(0+128),w 3085 0A42 1903 btfsc 3,2 3086 0A43 2A4C goto l5543 3087 3088 ;usb_device.c: 1037: { 3089 ;usb_device.c: 1039: pBDTEntryIn[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[ep]) ^ 0x000 + 4); 3090 0A44 3568 lslf USBTransferOnePacket@ep^(0+128),w 3091 0A45 3E57 addlw _pBDTEntryIn& (0+255) 3092 0A46 0086 movwf 6 3093 0A47 3002 movlw 2 ; select bank4/5 3094 0A48 273C 3188 fcall PL153 ;call to abstracted procedure 3095 0A4A 3E57 addlw _pBDTEntryIn& (0+255) 3096 0A4B 2A51 goto L40 3097 0A4C l5543: 3098 ;usb_device.c: 1040: } 3099 3100 3101 ;usb_device.c: 1041: else 3102 ;usb_device.c: 1042: { 3103 ;usb_device.c: 1044: pBDTEntryOut[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryOut[ep]) ^ 0x0 + 004); 3104 0A4C 2761 3188 fcall PL177 ;call to abstracted procedure 3105 0A4E 273C 3188 fcall PL153 ;call to abstracted procedure 3106 0A50 3EA7 addlw _pBDTEntryOut& (0+255) 3107 0A51 L40: 3108 0A51 276B fcall PL197 ;call to abstracted procedure 3109 3110 ;usb_device.c: 1045: } 3111 ;usb_device.c: 1046: return (void*)handle; 3112 0A52 086A movf (USBTransferOnePacket@handle+1)^(0+128),w 3113 0A53 01E1 clrf (?_USBTransferOnePacket+1)^(0+128) 3114 0A54 07E1 addwf (?_USBTransferOnePacket+1)^(0+128),f 3115 0A55 0869 movf USBTransferOnePacket@handle^(0+128),w 3116 0A56 01E0 clrf ?_USBTransferOnePacket^(0+128) 3117 0A57 07E0 addwf ?_USBTransferOnePacket^(0+128),f 3118 0A58 0008 return 3119 0A59 __end_of_USBTransferOnePacket: 3120 0A59 __ptext34: 3121 ;; *************** function _memcpy ***************** 3122 ;; Defined at: 3123 ;; line 11 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\memcpy.c" 3124 ;; Parameters: Size Location Type 3125 ;; d1 2 0[BANK1 ] PTR void 3126 ;; -> ParseBlinkieCommand@buffer(40), SetupPkt(8), readBuffer(64), 3127 ;; s1 2 2[BANK1 ] PTR const void 3128 ;; -> CtrlTrfData(8), cdc_data_tx(64), NULL(0), cdc_data_rx(64), 3129 ;; -> SetupPkt(8), readBuffer(64), line_coding(7), 3130 ;; n 2 4[BANK1 ] unsigned int 3131 ;; Auto vars: Size Location Type 3132 ;; s 2 9[BANK1 ] PTR const unsigned char 3133 ;; -> CtrlTrfData(8), cdc_data_tx(64), NULL(0), cdc_data_rx(64), 3134 ;; -> SetupPkt(8), readBuffer(64), line_coding(7), 3135 ;; d 2 7[BANK1 ] PTR unsigned char 3136 ;; -> ParseBlinkieCommand@buffer(40), SetupPkt(8), readBuffer(64), 3137 ;; Return value: Size Location Type 3138 ;; 2 0[BANK1 ] PTR void 3139 ;; Registers used: 3140 ;; wreg, fsr1l, fsr1h, status,2, status,0 3141 ;; Tracked objects: 3142 ;; On entry : 1F/1 3143 ;; On exit : 1F/1 3144 ;; Unchanged: 0/0 3145 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3146 ;; Params: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 3147 ;; Locals: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 3148 ;; Temps: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 3149 ;; Totals: 0 0 11 0 0 0 0 0 0 0 0 0 +0 0 3150 ;;Total ram usage: 11 bytes 3151 ;; Hardware stack levels used: 1 3152 ;; Hardware stack levels required when called: 10 3153 ;; This function calls: 3154 ;; Nothing 3155 ;; This function is called by: 3156 ;; _APP_DeviceCDCBasicDemoTasks 3157 ;; _ParseBlinkieCommand 3158 ;; This function uses a non-reentrant model 3159 ;; 3160 3161 3162 ;psect for function _memcpy 3163 0A59 _memcpy: 3164 3165 ;incstack = 0 3166 ; Regs used in _memcpy: [wreg+fsr1l+fsr1h+status,2+status,0] 3167 0A59 0863 movf (memcpy@s1+1)^(0+128),w 3168 0A5A 01EA clrf (memcpy@s+1)^(0+128) 3169 0A5B 07EA addwf (memcpy@s+1)^(0+128),f 3170 0A5C 0862 movf memcpy@s1^(0+128),w 3171 0A5D 01E9 clrf memcpy@s^(0+128) 3172 0A5E 07E9 addwf memcpy@s^(0+128),f 3173 0A5F 0861 movf (memcpy@d1+1)^(0+128),w 3174 0A60 01E8 clrf (memcpy@d+1)^(0+128) 3175 0A61 07E8 addwf (memcpy@d+1)^(0+128),f 3176 0A62 0860 movf memcpy@d1^(0+128),w 3177 0A63 01E7 clrf memcpy@d^(0+128) 3178 0A64 07E7 addwf memcpy@d^(0+128),f 3179 0A65 l5519: 3180 0A65 3001 movlw 1 3181 0A66 02E4 subwf memcpy@n^(0+128),f 3182 0A67 3000 movlw 0 3183 0A68 3BE5 subwfb (memcpy@n+1)^(0+128),f 3184 0A69 0A64 incf memcpy@n^(0+128),w 3185 0A6A 1903 skipnz 3186 0A6B 0A65 incf (memcpy@n+1)^(0+128),w 3187 0A6C 1903 btfsc 3,2 3188 0A6D 0008 return 3189 0A6E 0869 movf memcpy@s^(0+128),w 3190 0A6F 0086 movwf 6 3191 0A70 086A movf (memcpy@s+1)^(0+128),w 3192 0A71 0087 movwf 7 3193 0A72 0801 movf 1,w 3194 0A73 00E6 movwf ??_memcpy^(0+128) 3195 0A74 0867 movf memcpy@d^(0+128),w 3196 0A75 0086 movwf 6 3197 0A76 0868 movf (memcpy@d+1)^(0+128),w 3198 0A77 0087 movwf 7 3199 0A78 0866 movf ??_memcpy^(0+128),w 3200 0A79 0081 movwf 1 3201 0A7A 0AE9 incf memcpy@s^(0+128),f 3202 0A7B 1903 skipnz 3203 0A7C 0AEA incf (memcpy@s+1)^(0+128),f 3204 0A7D 0AE7 incf memcpy@d^(0+128),f 3205 0A7E 1903 skipnz 3206 0A7F 0AE8 incf (memcpy@d+1)^(0+128),f 3207 0A80 2A65 goto l5519 3208 0A81 __end_of_memcpy: 3209 0A81 __ptext21: 3210 ;; *************** function _getsUSBUSART ***************** 3211 ;; Defined at: 3212 ;; line 485 in file "../usb_device_cdc.c" 3213 ;; Parameters: Size Location Type 3214 ;; buffer 1 wreg PTR unsigned char 3215 ;; -> readBuffer(64), 3216 ;; len 1 11[BANK1 ] unsigned char 3217 ;; Auto vars: Size Location Type 3218 ;; buffer 1 13[BANK1 ] PTR unsigned char 3219 ;; -> readBuffer(64), 3220 ;; Return value: Size Location Type 3221 ;; 1 wreg unsigned char 3222 ;; Registers used: 3223 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 3224 ;; Tracked objects: 3225 ;; On entry : 1F/4 3226 ;; On exit : 1F/5 3227 ;; Unchanged: 0/0 3228 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3229 ;; Params: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 3230 ;; Locals: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 3231 ;; Temps: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 3232 ;; Totals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 3233 ;;Total ram usage: 3 bytes 3234 ;; Hardware stack levels used: 1 3235 ;; Hardware stack levels required when called: 11 3236 ;; This function calls: 3237 ;; _USBTransferOnePacket 3238 ;; This function is called by: 3239 ;; _APP_DeviceCDCBasicDemoTasks 3240 ;; This function uses a non-reentrant model 3241 ;; 3242 3243 3244 ;psect for function _getsUSBUSART 3245 0A81 _getsUSBUSART: 3246 3247 ;incstack = 0 3248 ; Regs used in _getsUSBUSART: [wreg-fsr1h+status,2+status,0+pclath+cstack] 3249 ;getsUSBUSART@buffer stored from wreg 3250 0A81 0021 movlb 1 ; select bank1 3251 0A82 00ED movwf getsUSBUSART@buffer^(0+128) 3252 3253 ;usb_device_cdc.c: 487: cdc_rx_len = 0; 3254 0A83 0025 movlb 5 ; select bank5 3255 0A84 01CB clrf _cdc_rx_len^(0+640) 3256 3257 ;usb_device_cdc.c: 489: if(!((CDCDataOutHandle != 0x0000) && ((*(volatile uint8_t*)CDCDa + taOutHandle & 0x80) != 0x00))) 3258 0A85 0836 movf (_CDCDataOutHandle+1)^(0+640),w 3259 0A86 0435 iorwf _CDCDataOutHandle^(0+640),w 3260 0A87 1903 skipnz 3261 0A88 2A8F goto l5873 3262 0A89 0835 movf _CDCDataOutHandle^(0+640),w 3263 0A8A 0086 movwf 6 3264 0A8B 0836 movf (_CDCDataOutHandle+1)^(0+640),w 3265 0A8C 0087 movwf 7 3266 0A8D 1B81 btfsc 1,7 3267 0A8E 2ACE goto l5887 3268 0A8F l5873: 3269 3270 ;usb_device_cdc.c: 490: { 3271 ;usb_device_cdc.c: 495: if(len > (((volatile BDT_ENTRY*)CDCDataOutHandle)->CNT)) 3272 0A8F 0835 movf _CDCDataOutHandle^(0+640),w 3273 0A90 0086 movwf 6 3274 0A91 0836 movf (_CDCDataOutHandle+1)^(0+640),w 3275 0A92 0087 movwf 7 3276 0A93 3141 addfsr 1,1 3277 0A94 0021 movlb 1 ; select bank1 3278 0A95 086B movf getsUSBUSART@len^(0+128),w 3279 0A96 0201 subwf 1,w 3280 0A97 1803 skipnc 3281 0A98 2AA2 goto l5877 3282 3283 ;usb_device_cdc.c: 496: len = (((volatile BDT_ENTRY*)CDCDataOutHandle)->CNT); 3284 0A99 0025 movlb 5 ; select bank5 3285 0A9A 0835 movf _CDCDataOutHandle^(0+640),w 3286 0A9B 0086 movwf 6 3287 0A9C 0836 movf (_CDCDataOutHandle+1)^(0+640),w 3288 0A9D 0087 movwf 7 3289 0A9E 3141 addfsr 1,1 3290 0A9F 0801 movf 1,w 3291 0AA0 0021 movlb 1 ; select bank1 3292 0AA1 00EB movwf getsUSBUSART@len^(0+128) 3293 0AA2 l5877: 3294 3295 ;usb_device_cdc.c: 501: for(cdc_rx_len = 0; cdc_rx_len < len; cdc_rx_len++) 3296 0AA2 0025 movlb 5 ; select bank5 3297 0AA3 01CB clrf _cdc_rx_len^(0+640) 3298 0AA4 l5883: 3299 0AA4 0021 movlb 1 ; select bank1 3300 0AA5 086B movf getsUSBUSART@len^(0+128),w 3301 0AA6 0025 movlb 5 ; select bank5 3302 0AA7 024B subwf _cdc_rx_len^(0+640),w 3303 0AA8 1803 btfsc 3,0 3304 0AA9 2ABB goto l5885 3305 3306 ;usb_device_cdc.c: 502: buffer[cdc_rx_len] = cdc_data_rx[cdc_rx_len]; 3307 0AAA 084B movf _cdc_rx_len^(0+640),w 3308 0AAB 0021 movlb 1 ; select bank1 3309 0AAC 076D addwf getsUSBUSART@buffer^(0+128),w 3310 0AAD 00EC movwf ??_getsUSBUSART^(0+128) 3311 0AAE 0086 movwf 6 3312 0AAF 3004 movlw 4 ; select bank8/9 3313 0AB0 0087 movwf 7 3314 0AB1 0025 movlb 5 ; select bank5 3315 0AB2 084B movf _cdc_rx_len^(0+640),w 3316 0AB3 3E20 addlw 32 3317 0AB4 0084 movwf 4 3318 0AB5 3001 movlw 1 ; select bank2/3 3319 0AB6 0085 movwf 5 3320 0AB7 0800 movf 0,w 3321 0AB8 0081 movwf 1 3322 0AB9 0ACB incf _cdc_rx_len^(0+640),f 3323 0ABA 2AA4 goto l5883 3324 0ABB l5885: 3325 3326 ;usb_device_cdc.c: 508: CDCDataOutHandle = USBTransferOnePacket(2,0,(uint8_t*)&cdc_data_ + rx,sizeof(cdc_data_rx)); 3327 0ABB 0021 movlb 1 ; select bank1 3328 0ABC 3020 movlw 32 3329 0ABD 01E0 clrf USBTransferOnePacket@dir^(0+128) 3330 0ABE 00E1 movwf USBTransferOnePacket@data^(0+128) 3331 0ABF 3001 movlw 1 3332 0AC0 00E2 movwf (USBTransferOnePacket@data+1)^(0+128) 3333 0AC1 3040 movlw 64 3334 0AC2 00E3 movwf USBTransferOnePacket@len^(0+128) 3335 0AC3 3002 movlw 2 3336 0AC4 2203 fcall _USBTransferOnePacket 3337 0AC5 0861 movf (?_USBTransferOnePacket+1)^(0+128),w 3338 0AC6 0025 movlb 5 ; select bank5 3339 0AC7 01B6 clrf (_CDCDataOutHandle+1)^(0+640) 3340 0AC8 07B6 addwf (_CDCDataOutHandle+1)^(0+640),f 3341 0AC9 0021 movlb 1 ; select bank1 3342 0ACA 0860 movf ?_USBTransferOnePacket^(0+128),w 3343 0ACB 0025 movlb 5 ; select bank5 3344 0ACC 01B5 clrf _CDCDataOutHandle^(0+640) 3345 0ACD 07B5 addwf _CDCDataOutHandle^(0+640),f 3346 0ACE l5887: 3347 3348 ;usb_device_cdc.c: 510: } 3349 ;usb_device_cdc.c: 512: return cdc_rx_len; 3350 0ACE 084B movf _cdc_rx_len^(0+640),w 3351 0ACF 0008 return 3352 0AD0 __end_of_getsUSBUSART: 3353 0AD0 __ptext20: 3354 ;; *************** function _putrsUSBUSART ***************** 3355 ;; Defined at: 3356 ;; line 726 in file "../usb_device_cdc.c" 3357 ;; Parameters: Size Location Type 3358 ;; data 1 wreg PTR const unsigned char 3359 ;; -> buttonMessage(18), 3360 ;; Auto vars: Size Location Type 3361 ;; data 1 2[BANK1 ] PTR const unsigned char 3362 ;; -> buttonMessage(18), 3363 ;; len 1 1[BANK1 ] unsigned char 3364 ;; pData 1 0[BANK1 ] PTR const unsigned char 3365 ;; -> buttonMessage(18), 3366 ;; Return value: Size Location Type 3367 ;; None void 3368 ;; Registers used: 3369 ;; wreg, fsr1l, fsr1h, status,2, status,0 3370 ;; Tracked objects: 3371 ;; On entry : 1F/4 3372 ;; On exit : 1F/1 3373 ;; Unchanged: 0/0 3374 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3375 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3376 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 3377 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3378 ;; Totals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 3379 ;;Total ram usage: 3 bytes 3380 ;; Hardware stack levels used: 1 3381 ;; Hardware stack levels required when called: 10 3382 ;; This function calls: 3383 ;; Nothing 3384 ;; This function is called by: 3385 ;; _APP_DeviceCDCBasicDemoTasks 3386 ;; This function uses a non-reentrant model 3387 ;; 3388 3389 3390 ;psect for function _putrsUSBUSART 3391 0AD0 _putrsUSBUSART: 3392 3393 ;incstack = 0 3394 ; Regs used in _putrsUSBUSART: [wreg+fsr1l+fsr1h+status,2+status,0] 3395 ;putrsUSBUSART@data stored from wreg 3396 0AD0 0021 movlb 1 ; select bank1 3397 0AD1 00E2 movwf putrsUSBUSART@data^(0+128) 3398 3399 ;usb_device_cdc.c: 728: uint8_t len; 3400 ;usb_device_cdc.c: 729: const const char *pData; 3401 ;usb_device_cdc.c: 754: {PIE2bits.USBIE = 0;}; 3402 0AD2 1112 bcf 18,2 ;volatile 3403 3404 ;usb_device_cdc.c: 755: if(cdc_trf_state != 0) 3405 0AD3 0024 movlb 4 ; select bank4 3406 0AD4 0861 movf _cdc_trf_state^(0+512),w 3407 0AD5 1903 btfsc 3,2 3408 0AD6 2ADA goto l5847 3409 3410 ;usb_device_cdc.c: 756: { 3411 ;usb_device_cdc.c: 757: {PIE2bits.USBIE = 1;}; 3412 0AD7 0021 movlb 1 ; select bank1 3413 0AD8 1512 bsf 18,2 ;volatile 3414 3415 ;usb_device_cdc.c: 758: return; 3416 0AD9 0008 return 3417 0ADA l5847: 3418 3419 ;usb_device_cdc.c: 759: } 3420 ;usb_device_cdc.c: 765: len = 0; 3421 0ADA 0021 movlb 1 ; select bank1 3422 0ADB 01E1 clrf putrsUSBUSART@len^(0+128) 3423 3424 ;usb_device_cdc.c: 766: pData = data; 3425 0ADC 0862 movf putrsUSBUSART@data^(0+128),w 3426 0ADD 00E0 movwf putrsUSBUSART@pData^(0+128) 3427 0ADE l5851: 3428 3429 ;usb_device_cdc.c: 768: { 3430 ;usb_device_cdc.c: 769: len++; 3431 0ADE 0AE1 incf putrsUSBUSART@len^(0+128),f 3432 3433 ;usb_device_cdc.c: 770: if(len == 255) break; 3434 0ADF 0861 movf putrsUSBUSART@len^(0+128),w 3435 0AE0 3AFF xorlw 255 3436 0AE1 1903 btfsc 3,2 3437 0AE2 2AEB goto l5859 3438 3439 ;usb_device_cdc.c: 771: }while(*pData++); 3440 0AE3 0860 movf putrsUSBUSART@pData^(0+128),w 3441 0AE4 0086 movwf 6 3442 0AE5 3003 movlw 3 ; select bank6/7 3443 0AE6 0087 movwf 7 3444 0AE7 0AE0 incf putrsUSBUSART@pData^(0+128),f 3445 0AE8 0881 movf 1,f 3446 0AE9 1D03 skipz 3447 0AEA 2ADE goto l5851 3448 0AEB l5859: 3449 3450 ;usb_device_cdc.c: 780: { pCDCSrc.bRom = (const uint8_t*)data; cdc_tx_len = len; cdc_mem + _type = 0x00; cdc_trf_state = 1; }; 3451 0AEB 0862 movf putrsUSBUSART@data^(0+128),w 3452 0AEC 0025 movlb 5 ; select bank5 3453 0AED 00B9 movwf _pCDCSrc^(0+640) 3454 0AEE 3003 movlw 3 3455 0AEF 00BA movwf (_pCDCSrc+1)^(0+640) 3456 0AF0 0021 movlb 1 ; select bank1 3457 0AF1 0861 movf putrsUSBUSART@len^(0+128),w 3458 0AF2 0025 movlb 5 ; select bank5 3459 0AF3 00CC movwf _cdc_tx_len^(0+640) 3460 0AF4 01CA clrf _cdc_mem_type^(0+640) 3461 0AF5 0024 movlb 4 ; select bank4 3462 0AF6 01E1 clrf _cdc_trf_state^(0+512) 3463 0AF7 0AE1 incf _cdc_trf_state^(0+512),f 3464 3465 ;usb_device_cdc.c: 781: {PIE2bits.USBIE = 1;}; 3466 0AF8 0021 movlb 1 ; select bank1 3467 0AF9 1512 bsf 18,2 ;volatile 3468 0AFA 0008 return 3469 0AFB __end_of_putrsUSBUSART: 3470 0AFB __ptext18: 3471 ;; *************** function _USBDeviceAttach ***************** 3472 ;; Defined at: 3473 ;; line 1352 in file "../usb_device.c" 3474 ;; Parameters: Size Location Type 3475 ;; None 3476 ;; Auto vars: Size Location Type 3477 ;; None 3478 ;; Return value: Size Location Type 3479 ;; None void 3480 ;; Registers used: 3481 ;; wreg, status,2, status,0 3482 ;; Tracked objects: 3483 ;; On entry : 1F/4 3484 ;; On exit : 1F/4 3485 ;; Unchanged: 0/0 3486 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3487 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3488 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3489 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3490 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3491 ;;Total ram usage: 0 bytes 3492 ;; Hardware stack levels used: 1 3493 ;; Hardware stack levels required when called: 10 3494 ;; This function calls: 3495 ;; Nothing 3496 ;; This function is called by: 3497 ;; _main 3498 ;; This function uses a non-reentrant model 3499 ;; 3500 3501 3502 ;psect for function _USBDeviceAttach 3503 0AFB _USBDeviceAttach: 3504 3505 ;usb_device.c: 1356: { 3506 ;usb_device.c: 1357: if(1 == 1) 3507 3508 ;incstack = 0 3509 ; Regs used in _USBDeviceAttach: [wreg+status,2+status,0] 3510 0AFB 08E0 movf _USBDeviceState^(0+512),f ;volatile 3511 0AFC 1D03 skipz 3512 0AFD 0008 return 3513 3514 ;usb_device.c: 1358: { 3515 ;usb_device.c: 1360: UCON = 0; 3516 0AFE 003D movlb 29 ; select bank29 3517 0AFF 018E clrf 14 ;volatile 3518 3519 ;usb_device.c: 1363: UIE = 0; 3520 0B00 0192 clrf 18 ;volatile 3521 3522 ;usb_device.c: 1367: { UCFG = 0x10 | 0x00 | 0x04 | 0x02; UEIE = 0x9F; UIE = 0x39 | 0x40 + | 0x02; }; 3523 0B01 3016 movlw 22 3524 3525 ;usb_device.c: 1369: {PIE2bits.USBIE = 1;INTCONbits.PEIE = 1; INTCONbits.GIE = 1;}; 3526 0B02 275A 3188 fcall PL175 ;call to abstracted procedure 3527 0B04 1512 bsf 18,2 ;volatile 3528 0B05 170B bsf 11,6 ;volatile 3529 0B06 178B bsf 11,7 ;volatile 3530 0B07 l555: 3531 ;usb_device.c: 1372: while(!UCONbits.USBEN){UCONbits.USBEN = 1;} 3532 3533 0B07 003D movlb 29 ; select bank29 3534 0B08 198E btfsc 14,3 ;volatile 3535 0B09 2B0C goto l6567 3536 0B0A 158E bsf 14,3 ;volatile 3537 0B0B 2B07 goto l555 3538 0B0C l6567: 3539 3540 ;usb_device.c: 1375: USBDeviceState = ATTACHED_STATE; 3541 0B0C 3001 movlw 1 3542 0B0D 0024 movlb 4 ; select bank4 3543 0B0E 00E0 movwf _USBDeviceState^(0+512) ;volatile 3544 0B0F 0008 return 3545 0B10 __end_of_USBDeviceAttach: 3546 0B10 __ptext17: 3547 ;; *************** function _USBDeviceInit ***************** 3548 ;; Defined at: 3549 ;; line 277 in file "../usb_device.c" 3550 ;; Parameters: Size Location Type 3551 ;; None 3552 ;; Auto vars: Size Location Type 3553 ;; p 2 2[BANK1 ] PTR unsigned char 3554 ;; -> UEP1(1), 3555 ;; i 1 4[BANK1 ] unsigned char 3556 ;; i 1 5[BANK1 ] unsigned char 3557 ;; Return value: Size Location Type 3558 ;; None void 3559 ;; Registers used: 3560 ;; wreg, fsr1l, fsr1h, status,2, status,0 3561 ;; Tracked objects: 3562 ;; On entry : 1A/0 3563 ;; On exit : 1F/4 3564 ;; Unchanged: 0/0 3565 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3566 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3567 ;; Locals: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 3568 ;; Temps: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 3569 ;; Totals: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 3570 ;;Total ram usage: 6 bytes 3571 ;; Hardware stack levels used: 1 3572 ;; Hardware stack levels required when called: 10 3573 ;; This function calls: 3574 ;; Nothing 3575 ;; This function is called by: 3576 ;; _main 3577 ;; This function uses a non-reentrant model 3578 ;; 3579 3580 3581 ;psect for function _USBDeviceInit 3582 0B10 _USBDeviceInit: 3583 3584 ;usb_device.c: 279: uint8_t i; 3585 ;usb_device.c: 281: {PIE2bits.USBIE = 0;}; 3586 3587 ;incstack = 0 3588 ; Regs used in _USBDeviceInit: [wreg+fsr1l+fsr1h+status,2+status,0] 3589 0B10 0021 movlb 1 ; select bank1 3590 0B11 1112 bcf 18,2 ;volatile 3591 3592 ;usb_device.c: 285: ; 3593 ;usb_device.c: 288: {UEIR = 0;}; 3594 0B12 003D movlb 29 ; select bank29 3595 0B13 0193 clrf 19 ;volatile 3596 3597 ;usb_device.c: 291: {UIR = 0;}; 3598 0B14 0190 clrf 16 ;volatile 3599 3600 ;usb_device.c: 294: UEP0 = 0; 3601 0B15 0198 clrf 24 ;volatile 3602 3603 ;usb_device.c: 296: { uint8_t i; uint8_t* p = (uint8_t*)&UEP1; for(i=0;i<2;i++) *p++ = 0 + ; }; 3604 0B16 300E movlw 14 3605 0B17 0021 movlb 1 ; select bank1 3606 0B18 00E3 movwf (USBDeviceInit@p+1)^(0+128) 3607 0B19 3099 movlw 153 3608 0B1A 00E2 movwf USBDeviceInit@p^(0+128) 3609 0B1B 01E4 clrf USBDeviceInit@i_1548^(0+128) 3610 0B1C l6481: 3611 0B1C 0862 movf USBDeviceInit@p^(0+128),w 3612 0B1D 0086 movwf 6 3613 0B1E 0863 movf (USBDeviceInit@p+1)^(0+128),w 3614 0B1F 0087 movwf 7 3615 0B20 0181 clrf 1 3616 0B21 0AE2 incf USBDeviceInit@p^(0+128),f 3617 0B22 1903 skipnz 3618 0B23 0AE3 incf (USBDeviceInit@p+1)^(0+128),f 3619 0B24 3002 movlw 2 3620 0B25 0AE4 incf USBDeviceInit@i_1548^(0+128),f 3621 0B26 0264 subwf USBDeviceInit@i_1548^(0+128),w 3622 0B27 1C03 skipc 3623 0B28 2B1C goto l6481 3624 3625 ;usb_device.c: 298: { UCFG = 0x10 | 0x00 | 0x04 | 0x02; UEIE = 0x9F; UIE = 0x39 | 0x40 | + 0x02; }; 3626 0B29 3016 movlw 22 3627 0B2A 003D movlb 29 ; select bank29 3628 3629 ;usb_device.c: 301: ; 3630 ;usb_device.c: 304: ; 3631 ;usb_device.c: 307: for(i = 0; i < (sizeof(BDT)/sizeof(BDT_ENTRY)); i++) 3632 0B2B 275A 3188 fcall PL175 ;call to abstracted procedure 3633 0B2D 01E5 clrf USBDeviceInit@i^(0+128) 3634 0B2E l6497: 3635 3636 ;usb_device.c: 308: { 3637 ;usb_device.c: 309: BDT[i].Val = 0x00; 3638 0B2E 0865 movf USBDeviceInit@i^(0+128),w 3639 0B2F 0709 addwf 9,w 3640 0B30 0709 addwf 9,w 3641 0B31 3E20 addlw 32 3642 0B32 0086 movwf 6 3643 0B33 3000 movlw 0 3644 0B34 0187 clrf 7 3645 0B35 3FC0 movwi [0]fsr1 3646 0B36 3FC1 movwi [1]fsr1 3647 0B37 3FC2 movwi [2]fsr1 3648 0B38 3FC3 movwi [3]fsr1 3649 0B39 300C movlw 12 3650 0B3A 0AE5 incf USBDeviceInit@i^(0+128),f 3651 0B3B 0265 subwf USBDeviceInit@i^(0+128),w 3652 0B3C 1C03 skipc 3653 0B3D 2B2E goto l6497 3654 3655 ;usb_device.c: 310: } 3656 ;usb_device.c: 313: UCONbits.PPBRST = 1; 3657 0B3E 003D movlb 29 ; select bank29 3658 0B3F 170E bsf 14,6 ;volatile 3659 3660 ;usb_device.c: 316: UADDR = 0x00; 3661 0B40 0196 clrf 22 ;volatile 3662 3663 ;usb_device.c: 319: UCONbits.PKTDIS = 0; 3664 0B41 120E bcf 14,4 ;volatile 3665 3666 ;usb_device.c: 322: UCONbits.PPBRST = 0; 3667 0B42 130E bcf 14,6 ;volatile 3668 0B43 l6509: 3669 3670 ;usb_device.c: 326: { 3671 ;usb_device.c: 327: (UIR &= 0xF7); 3672 0B43 1190 bcf 16,3 ;volatile 3673 3674 ;usb_device.c: 329: inPipes[0].info.Val = 0; 3675 0B44 0024 movlb 4 ; select bank4 3676 0B45 01EA clrf (_inPipes^(0+512)+2) ;volatile 3677 3678 ;usb_device.c: 330: outPipes[0].info.Val = 0; 3679 0B46 0025 movlb 5 ; select bank5 3680 0B47 01A2 clrf (_outPipes^(0+640)+2) ;volatile 3681 3682 ;usb_device.c: 331: outPipes[0].wCount.Val = 0; 3683 0B48 01A3 clrf (_outPipes^(0+640)+3) ;volatile 3684 0B49 01A4 clrf ((_outPipes+1)^(0+640)+3) ;volatile 3685 3686 ;usb_device.c: 332: }while(UIRbits.TRNIF == 1); 3687 0B4A 003D movlb 29 ; select bank29 3688 0B4B 1990 btfsc 16,3 ;volatile 3689 0B4C 2B43 goto l6509 3690 3691 ;usb_device.c: 336: USBStatusStageEnabledFlag1 = 1; 3692 0B4D 3001 movlw 1 3693 0B4E 0025 movlb 5 ; select bank5 3694 0B4F 00C5 movwf _USBStatusStageEnabledFlag1^(0+640) ;volatile 3695 3696 ;usb_device.c: 337: USBStatusStageEnabledFlag2 = 1; 3697 0B50 00C6 movwf _USBStatusStageEnabledFlag2^(0+640) ;volatile 3698 3699 ;usb_device.c: 339: USBDeferINDataStagePackets = 0; 3700 0B51 01C2 clrf _USBDeferINDataStagePackets^(0+640) ;volatile 3701 3702 ;usb_device.c: 340: USBDeferOUTDataStagePackets = 0; 3703 0B52 01C3 clrf _USBDeferOUTDataStagePackets^(0+640) ;volatile 3704 3705 ;usb_device.c: 341: USBBusIsSuspended = 0; 3706 0B53 01C1 clrf _USBBusIsSuspended^(0+640) ;volatile 3707 3708 ;usb_device.c: 345: for(i = 0; i < (uint8_t)(2+1u); i++) 3709 0B54 0021 movlb 1 ; select bank1 3710 0B55 01E5 clrf USBDeviceInit@i^(0+128) 3711 0B56 l6525: 3712 3713 ;usb_device.c: 346: { 3714 ;usb_device.c: 347: pBDTEntryIn[i] = 0u; 3715 0B56 3565 lslf USBDeviceInit@i^(0+128),w 3716 0B57 3E57 addlw _pBDTEntryIn& (0+255) 3717 0B58 0086 movwf 6 3718 0B59 3002 movlw 2 ; select bank4/5 3719 0B5A 0087 movwf 7 3720 0B5B 3000 movlw 0 3721 0B5C 3FC0 movwi [0]fsr1 3722 0B5D 3FC1 movwi [1]fsr1 3723 3724 ;usb_device.c: 348: pBDTEntryOut[i] = 0u; 3725 0B5E 3565 lslf USBDeviceInit@i^(0+128),w 3726 0B5F 3EA7 addlw _pBDTEntryOut& (0+255) 3727 0B60 0086 movwf 6 3728 0B61 3000 movlw 0 3729 0B62 3FC0 movwi [0]fsr1 3730 0B63 3FC1 movwi [1]fsr1 3731 3732 ;usb_device.c: 349: ep_data_in[i].Val = 0u; 3733 0B64 0865 movf USBDeviceInit@i^(0+128),w 3734 0B65 3EAD addlw _ep_data_in& (0+255) 3735 0B66 0086 movwf 6 3736 0B67 0181 clrf 1 3737 3738 ;usb_device.c: 350: ep_data_out[i].Val = 0u; 3739 0B68 0865 movf USBDeviceInit@i^(0+128),w 3740 0B69 3EB0 addlw _ep_data_out& (0+255) 3741 0B6A 0086 movwf 6 3742 0B6B 3003 movlw 3 3743 0B6C 0181 clrf 1 3744 0B6D 0AE5 incf USBDeviceInit@i^(0+128),f 3745 0B6E 0265 subwf USBDeviceInit@i^(0+128),w 3746 0B6F 1C03 skipc 3747 0B70 2B56 goto l6525 3748 3749 ;usb_device.c: 351: } 3750 ;usb_device.c: 354: pBDTEntryIn[0] = (volatile BDT_ENTRY*)&BDT[2]; 3751 0B71 3028 movlw 40 3752 0B72 0024 movlb 4 ; select bank4 3753 0B73 00D7 movwf _pBDTEntryIn^(0+512) 3754 0B74 3016 movlw 22 3755 0B75 01D8 clrf (_pBDTEntryIn+1)^(0+512) 3756 3757 ;usb_device.c: 356: UEP0 = 0x06|0x10; 3758 0B76 003D movlb 29 ; select bank29 3759 0B77 0098 movwf 24 ;volatile 3760 3761 ;usb_device.c: 358: BDT[0].ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 3762 0B78 3050 movlw 80 3763 0B79 0021 movlb 1 ; select bank1 3764 0B7A 00E0 movwf ??_USBDeviceInit^(0+128) 3765 0B7B 01E1 clrf (??_USBDeviceInit^(0+128)+1) 3766 0B7C 0020 movlb 0 ; select bank0 3767 0B7D 00A2 movwf 34 ;volatile 3768 0B7E 0021 movlb 1 ; select bank1 3769 0B7F 0861 movf (??_USBDeviceInit+1)^(0+128),w 3770 0B80 0020 movlb 0 ; select bank0 3771 0B81 00A3 movwf 35 ;volatile 3772 3773 ;usb_device.c: 359: BDT[0].CNT = 8; 3774 0B82 3008 movlw 8 3775 0B83 00A1 movwf 33 ;volatile 3776 3777 ;usb_device.c: 360: BDT[0].STAT.Val = 0x00|0x04; 3778 0B84 3004 movlw 4 3779 0B85 00A0 movwf 32 ;volatile 3780 3781 ;usb_device.c: 361: BDT[0].STAT.Val |= 0x80; 3782 0B86 17A0 bsf 32,7 ;volatile 3783 3784 ;usb_device.c: 364: USBActiveConfiguration = 0; 3785 0B87 0024 movlb 4 ; select bank4 3786 0B88 01ED clrf _USBActiveConfiguration^(0+512) ;volatile 3787 3788 ;usb_device.c: 366: USB1msTickCount = 0; 3789 0B89 0026 movlb 6 ; select bank6 3790 0B8A 01AD clrf _USB1msTickCount^(0+768) ;volatile 3791 0B8B 01AE clrf (_USB1msTickCount+1)^(0+768) ;volatile 3792 0B8C 01AF clrf (_USB1msTickCount+2)^(0+768) ;volatile 3793 0B8D 01B0 clrf (_USB1msTickCount+3)^(0+768) ;volatile 3794 3795 ;usb_device.c: 367: USBTicksSinceSuspendEnd = 0; 3796 0B8E 0025 movlb 5 ; select bank5 3797 0B8F 01C8 clrf _USBTicksSinceSuspendEnd^(0+640) ;volatile 3798 3799 ;usb_device.c: 370: USBDeviceState = DETACHED_STATE; 3800 0B90 0024 movlb 4 ; select bank4 3801 0B91 01E0 clrf _USBDeviceState^(0+512) ;volatile 3802 0B92 0008 return 3803 0B93 __end_of_USBDeviceInit: 3804 0B93 __ptext1: 3805 ;; *************** function _update_pattern ***************** 3806 ;; Defined at: 3807 ;; line 55 in file "../pattern_engine.c" 3808 ;; Parameters: Size Location Type 3809 ;; None 3810 ;; Auto vars: Size Location Type 3811 ;; i 1 15[BANK2 ] unsigned char 3812 ;; temp_in 1 0 unsigned char 3813 ;; l 1 0 unsigned char 3814 ;; z 1 0 unsigned char 3815 ;; y 1 0 unsigned char 3816 ;; x 1 0 unsigned char 3817 ;; b 1 0 unsigned char 3818 ;; a 1 0 unsigned char 3819 ;; j 1 0 unsigned char 3820 ;; Return value: Size Location Type 3821 ;; None void 3822 ;; Registers used: 3823 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 3824 ;; Tracked objects: 3825 ;; On entry : 1F/4 3826 ;; On exit : 1F/5 3827 ;; Unchanged: 0/0 3828 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 3829 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 3830 ;; Locals: 0 0 0 3 0 0 0 0 0 0 0 0 +0 0 3831 ;; Temps: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 3832 ;; Totals: 0 0 1 3 0 0 0 0 0 0 0 0 +0 0 3833 ;;Total ram usage: 4 bytes 3834 ;; Hardware stack levels used: 1 3835 ;; Hardware stack levels required when called: 13 3836 ;; This function calls: 3837 ;; _add_and_shift 3838 ;; _dotCode 3839 ;; _get_next_pattern_byte 3840 ;; _next_pattern 3841 ;; _pattern_done 3842 ;; _processChars 3843 ;; _rand 3844 ;; _srand 3845 ;; _topOfPattern 3846 ;; _up_down 3847 ;; This function is called by: 3848 ;; _main 3849 ;; This function uses a non-reentrant model 3850 ;; 3851 3852 3853 ;psect for function _update_pattern 3854 0B93 _update_pattern: 3855 0B93 i1L__ptext3: 3856 ;pattern_engine.c: 57: static uint8_t table_type=0; 3857 ;pattern_engine.c: 59: uint8_t i, j, a, b, x, y, z, l, temp_in; 3858 ;pattern_engine.c: 60: static uint8_t temp_red[8], char_in, step, delay2; 3859 ;pattern_engine.c: 61: static char buffer[20]; 3860 ;pattern_engine.c: 65: if (topOfPattern()) { 3861 3862 ;incstack = 0 3863 ; Regs used in _update_pattern: [wreg-fsr1h+status,2+status,0+pclath+cstack] 3864 3865 3866 ;psect for function _topOfPattern 3867 0B93 i1L_topOfPattern: 3868 0B93 i1Ll6153: 3869 3870 ;pattern_access.c: 44: return(p_count == 0); 3871 0B93 0025 movlb 5 ; select bank5 3872 0B94 083C movf (_p_count+1)^(0+640),w 3873 0B95 043B iorwf _p_count^(0+640),w 3874 0B96 3000 movlw 0 3875 0B97 1903 btfsc 3,2 3876 0B98 3001 movlw 1 3877 0B99 3A00 xorlw 0 3878 0B9A 1903 skipnz 3879 0B9B 2DCD goto l6827 3880 3881 ;pattern_engine.c: 66: table_type = get_next_pattern_byte( p_table ); 3882 0B9C 0024 movlb 4 ; select bank4 3883 0B9D 0865 movf _p_table^(0+512),w 3884 0B9E 25F1 3188 fcall _get_next_pattern_byte 3885 0BA0 0025 movlb 5 ; select bank5 3886 0BA1 00DB movwf update_pattern@table_type^(0+640) 3887 3888 ;pattern_engine.c: 68: step = 0; 3889 0BA2 0024 movlb 4 ; select bank4 3890 0BA3 0865 movf _p_table^(0+512),w 3891 0BA4 25F1 3188 fcall _get_next_pattern_byte 3892 0BA6 0025 movlb 5 ; select bank5 3893 0BA7 00D4 movwf _pattern_speed^(0+640) 3894 0BA8 2DCD goto l6827 3895 0BA9 l6765: 3896 3897 ;pattern_engine.c: 73: case 9: 3898 ;pattern_engine.c: 74: if (fader_cycle == 0) { 3899 0BA9 08CF movf _fader_cycle^(0+640),f 3900 0BAA 1D03 skipz 3901 0BAB 2BDE goto l6791 3902 3903 ;pattern_engine.c: 75: if (table_type == 9) {srand((unsigned)TMR0);} 3904 0BAC 085B movf update_pattern@table_type^(0+640),w 3905 0BAD 3A09 xorlw 9 3906 0BAE 1D03 skipz 3907 0BAF 2BB7 goto l6771 3908 0BB0 0020 movlb 0 ; select bank0 3909 0BB1 0815 movf 21,w ;volatile 3910 0BB2 0021 movlb 1 ; select bank1 3911 0BB3 00E0 movwf srand@x^(0+128) 3912 0BB4 01E1 clrf (srand@x+1)^(0+128) 3913 0BB5 27CE 3188 fcall _srand 3914 0BB7 l6771: 3915 3916 ;pattern_engine.c: 76: for (i=0;i<8;i++) { 3917 0BB7 0022 movlb 2 ; select bank2 3918 0BB8 01EF clrf update_pattern@i^(0+256) 3919 0BB9 l6777: 3920 3921 ;pattern_engine.c: 77: if (table_type == 8) { 3922 0BB9 0025 movlb 5 ; select bank5 3923 0BBA 085B movf update_pattern@table_type^(0+640),w 3924 0BBB 3A08 xorlw 8 3925 0BBC 1D03 skipz 3926 0BBD 2BC9 goto l6781 3927 3928 ;pattern_engine.c: 78: temp_red[i] = get_next_pattern_byte(p_table ); 3929 0BBE 0024 movlb 4 ; select bank4 3930 0BBF 0865 movf _p_table^(0+512),w 3931 0BC0 25F1 3188 fcall _get_next_pattern_byte 3932 0BC2 00EF movwf ??_update_pattern^(0+128) 3933 0BC3 0022 movlb 2 ; select bank2 3934 0BC4 2765 3188 fcall PL185 ;call to abstracted procedure 3935 0BC6 0021 movlb 1 ; select bank1 3936 0BC7 086F movf ??_update_pattern^(0+128),w 3937 0BC8 2BD3 goto L1 3938 0BC9 l6781: 3939 ;pattern_engine.c: 79: } else if (table_type == 9) { 3940 3941 0BC9 085B movf update_pattern@table_type^(0+640),w 3942 0BCA 3A09 xorlw 9 3943 0BCB 1D03 skipz 3944 0BCC 2BD4 goto l6785 3945 3946 ;pattern_engine.c: 80: temp_red[i] = rand(); 3947 0BCD 0022 movlb 2 ; select bank2 3948 0BCE 2765 3188 fcall PL185 ;call to abstracted procedure 3949 0BD0 277B 3188 fcall _rand 3950 0BD2 086C movf ?_rand^(0+128),w 3951 0BD3 L1: 3952 0BD3 0081 movwf 1 3953 0BD4 l6785: 3954 0BD4 2771 3188 fcall PL201 ;call to abstracted procedure 3955 0BD6 1C03 skipc 3956 0BD7 2BB9 goto l6777 3957 3958 ;pattern_engine.c: 81: } 3959 ;pattern_engine.c: 82: } 3960 ;pattern_engine.c: 83: cycle_count = get_next_pattern_byte(p_table ); 3961 0BD8 0024 movlb 4 ; select bank4 3962 0BD9 0865 movf _p_table^(0+512),w 3963 0BDA 25F1 3188 fcall _get_next_pattern_byte 3964 0BDC 0025 movlb 5 ; select bank5 3965 0BDD 00CD movwf _cycle_count^(0+640) 3966 0BDE l6791: 3967 3968 ;pattern_engine.c: 84: } 3969 ;pattern_engine.c: 85: for (i=0;i<8;i++) { 3970 0BDE 0022 movlb 2 ; select bank2 3971 0BDF 01EF clrf update_pattern@i^(0+256) 3972 0BE0 l6797: 3973 3974 ;pattern_engine.c: 86: LEDS[i][0] = up_down((temp_red[i] & 0x80),LEDS[i][0]); 3975 0BE0 086F movf update_pattern@i^(0+256),w 3976 0BE1 0709 addwf 9,w 3977 0BE2 0709 addwf 9,w 3978 0BE3 0709 addwf 9,w 3979 0BE4 3EA0 addlw _LEDS& (0+255) 3980 0BE5 271C 3188 fcall PL129 ;call to abstracted procedure 3981 0BE7 3EA0 addlw _LEDS& (0+255) 3982 0BE8 2710 3188 fcall PL125 ;call to abstracted procedure 3983 0BEA 3980 andlw 128 3984 0BEB 2642 3188 fcall _up_down 3985 3986 ;pattern_engine.c: 87: LEDS[i][1] = up_down((temp_red[i] & 0x40),LEDS[i][1]); 3987 0BED 2724 3188 fcall PL133 ;call to abstracted procedure 3988 0BEF 3EA1 addlw (_LEDS+1)& (0+255) 3989 0BF0 271C 3188 fcall PL129 ;call to abstracted procedure 3990 0BF2 3EA1 addlw (_LEDS+1)& (0+255) 3991 0BF3 2710 3188 fcall PL125 ;call to abstracted procedure 3992 0BF5 3940 andlw 64 3993 0BF6 2642 3188 fcall _up_down 3994 3995 ;pattern_engine.c: 88: LEDS[i][2] = up_down((temp_red[i] & 0x20),LEDS[i][2]); 3996 0BF8 2724 3188 fcall PL133 ;call to abstracted procedure 3997 0BFA 3EA2 addlw (_LEDS+2)& (0+255) 3998 0BFB 271C 3188 fcall PL129 ;call to abstracted procedure 3999 0BFD 3EA2 addlw (_LEDS+2)& (0+255) 4000 0BFE 2710 3188 fcall PL125 ;call to abstracted procedure 4001 0C00 3920 andlw 32 4002 0C01 2642 3188 fcall _up_down 4003 4004 ;pattern_engine.c: 89: LEDS[i][3] = up_down((temp_red[i] & 0x10),LEDS[i][3]); 4005 0C03 2724 3188 fcall PL133 ;call to abstracted procedure 4006 0C05 3EA3 addlw (_LEDS+3)& (0+255) 4007 0C06 271C 3188 fcall PL129 ;call to abstracted procedure 4008 0C08 3EA3 addlw (_LEDS+3)& (0+255) 4009 0C09 2710 3188 fcall PL125 ;call to abstracted procedure 4010 0C0B 3910 andlw 16 4011 0C0C 2642 3188 fcall _up_down 4012 4013 ;pattern_engine.c: 90: LEDS[i][4] = up_down((temp_red[i] & 0x08),LEDS[i][4]); 4014 0C0E 2724 3188 fcall PL133 ;call to abstracted procedure 4015 0C10 3EA4 addlw (_LEDS+4)& (0+255) 4016 0C11 271C 3188 fcall PL129 ;call to abstracted procedure 4017 0C13 3EA4 addlw (_LEDS+4)& (0+255) 4018 0C14 2710 3188 fcall PL125 ;call to abstracted procedure 4019 0C16 3908 andlw 8 4020 0C17 2642 3188 fcall _up_down 4021 4022 ;pattern_engine.c: 91: LEDS[i][5] = up_down((temp_red[i] & 0x04),LEDS[i][5]); 4023 0C19 2724 3188 fcall PL133 ;call to abstracted procedure 4024 0C1B 3EA5 addlw (_LEDS+5)& (0+255) 4025 0C1C 271C 3188 fcall PL129 ;call to abstracted procedure 4026 0C1E 3EA5 addlw (_LEDS+5)& (0+255) 4027 0C1F 2710 3188 fcall PL125 ;call to abstracted procedure 4028 0C21 3904 andlw 4 4029 0C22 2642 3188 fcall _up_down 4030 4031 ;pattern_engine.c: 92: LEDS[i][6] = up_down((temp_red[i] & 0x02),LEDS[i][6]); 4032 0C24 2724 3188 fcall PL133 ;call to abstracted procedure 4033 0C26 3EA6 addlw (_LEDS+6)& (0+255) 4034 0C27 271C 3188 fcall PL129 ;call to abstracted procedure 4035 0C29 3EA6 addlw (_LEDS+6)& (0+255) 4036 0C2A 2710 3188 fcall PL125 ;call to abstracted procedure 4037 0C2C 3902 andlw 2 4038 0C2D 2642 3188 fcall _up_down 4039 4040 ;pattern_engine.c: 93: LEDS[i][7] = up_down((temp_red[i] & 0x01),LEDS[i][7]); 4041 0C2F 2724 3188 fcall PL133 ;call to abstracted procedure 4042 0C31 3EA7 addlw (_LEDS+7)& (0+255) 4043 0C32 271C 3188 fcall PL129 ;call to abstracted procedure 4044 0C34 3EA7 addlw (_LEDS+7)& (0+255) 4045 0C35 2710 3188 fcall PL125 ;call to abstracted procedure 4046 0C37 3901 andlw 1 4047 0C38 2642 3188 fcall _up_down 4048 0C3A 0081 movwf 1 4049 0C3B 2771 3188 fcall PL201 ;call to abstracted procedure 4050 0C3D 1C03 skipc 4051 0C3E 2BE0 goto l6797 4052 4053 ;pattern_engine.c: 94: } 4054 ;pattern_engine.c: 95: fader_cycle = (fader_cycle < cycle_count) ? (fader_cycle+1) : (0) + ; 4055 0C3F 0025 movlb 5 ; select bank5 4056 0C40 084D movf _cycle_count^(0+640),w 4057 0C41 024F subwf _fader_cycle^(0+640),w 4058 0C42 1C03 skipc 4059 0C43 2C48 goto l6807 4060 0C44 0022 movlb 2 ; select bank2 4061 0C45 01ED clrf _update_pattern$2322^(0+256) 4062 0C46 01EE clrf (_update_pattern$2322+1)^(0+256) 4063 0C47 2C4F goto l6811 4064 0C48 l6807: 4065 0C48 084F movf _fader_cycle^(0+640),w 4066 0C49 0022 movlb 2 ; select bank2 4067 0C4A 00ED movwf _update_pattern$2322^(0+256) 4068 0C4B 01EE clrf (_update_pattern$2322+1)^(0+256) 4069 0C4C 0AED incf _update_pattern$2322^(0+256),f 4070 0C4D 1903 skipnz 4071 0C4E 0AEE incf (_update_pattern$2322+1)^(0+256),f 4072 0C4F l6811: 4073 0C4F 086D movf _update_pattern$2322^(0+256),w 4074 0C50 0025 movlb 5 ; select bank5 4075 0C51 00CF movwf _fader_cycle^(0+640) 4076 4077 ;pattern_engine.c: 96: break; 4078 0C52 2DDE goto l6829 4079 0C53 l6813: 4080 0C53 3007 movlw 7 4081 4082 ;pattern_engine.c: 99: delay2++; 4083 0C54 0ADA incf update_pattern@delay2^(0+640),f 4084 4085 ;pattern_engine.c: 100: if (delay2 > 6) { 4086 0C55 025A subwf update_pattern@delay2^(0+640),w 4087 0C56 1C03 skipc 4088 0C57 2DDE goto l6829 4089 4090 ;psect for function _processChars 4091 4092 ;pattern_engine.c: 101: processChars(); 4093 0C58 i2L_processChars: 4094 0C58 i2Ll6211: 4095 4096 ;pattern_engine.c: 122: static uint8_t step = 0; 4097 ;pattern_engine.c: 123: static uint8_t char_in; 4098 ;pattern_engine.c: 124: static uint16_t pCharData; 4099 ;pattern_engine.c: 125: static uint8_t charLines; 4100 ;pattern_engine.c: 127: if (step==0) { 4101 0C58 08D9 movf processChars@step^(0+640),f 4102 0C59 1D03 btfss 3,2 4103 0C5A 2C9E ljmp i2Ll6229 4104 0C5B 2C5D ljmp i2Ll6213 4105 0C5C i2Lu5391: 4106 0C5C 2C9E ljmp i2Ll6229 4107 0C5D i2Lu5390: 4108 0C5D i2Ll6213: 4109 4110 ;pattern_engine.c: 128: char_in = get_next_pattern_byte(p_table); 4111 0C5D 0024 movlb 4 ; select bank4 4112 0C5E 0865 movf _p_table^(0+512),w 4113 0C5F 25F1 3188 fcall _get_next_pattern_byte 4114 0C61 0025 movlb 5 ; select bank5 4115 0C62 00E9 movwf processChars@char_in^(0+640) 4116 0C63 2C6A ljmp i2Ll6217 4117 0C64 i2Ll6215: 4118 4119 ;pattern_engine.c: 130: char_in = get_next_pattern_byte(p_table); 4120 0C64 0024 movlb 4 ; select bank4 4121 0C65 0865 movf _p_table^(0+512),w 4122 0C66 25F1 3188 fcall _get_next_pattern_byte 4123 0C68 0025 movlb 5 ; select bank5 4124 0C69 00E9 movwf processChars@char_in^(0+640) 4125 0C6A i2Ll6217: 4126 0C6A 3014 movlw 20 4127 0C6B 0269 subwf processChars@char_in^(0+640),w 4128 0C6C 1C03 btfss 3,0 4129 0C6D 2C64 ljmp i2Ll6215 4130 0C6E 2C70 ljmp i2Ll6219 4131 0C6F i2Lu5401: 4132 0C6F 2C64 ljmp i2Ll6215 4133 0C70 i2Lu5400: 4134 0C70 i2Ll6219: 4135 4136 ;pattern_engine.c: 131: } 4137 ;pattern_engine.c: 132: add_and_shift( 0x00); 4138 0C70 3000 movlw 0 4139 0C71 2681 fcall _add_and_shift 4140 0C72 i2Ll6221: 4141 4142 ;pattern_engine.c: 133: step = 1; 4143 0C72 0025 movlb 5 ; select bank5 4144 0C73 01D9 clrf processChars@step^(0+640) 4145 0C74 0AD9 incf processChars@step^(0+640),f 4146 0C75 i2Ll6223: 4147 4148 ;pattern_engine.c: 134: pCharData = ((uint16_t) &chardata)+(char_in - 0x20)*3; 4149 0C75 309B movlw 155 4150 0C76 00BE movwf (processChars@pCharData+1)^(0+640) 4151 0C77 3068 movlw 104 4152 0C78 00BD movwf processChars@pCharData^(0+640) 4153 0C79 i2Ll6225: 4154 0C79 0869 movf processChars@char_in^(0+640),w 4155 0C7A 0021 movlb 1 ; select bank1 4156 0C7B 00E0 movwf ___wmul@multiplier^(0+128) 4157 0C7C 30E0 movlw 224 4158 0C7D 01E1 clrf (___wmul@multiplier+1)^(0+128) 4159 0C7E 07E0 addwf ___wmul@multiplier^(0+128),f 4160 0C7F 30FF movlw 255 4161 0C80 3DE1 addwfc (___wmul@multiplier+1)^(0+128),f 4162 0C81 3003 movlw 3 4163 0C82 00E2 movwf ___wmul@multiplicand^(0+128) 4164 0C83 01E3 clrf (___wmul@multiplicand+1)^(0+128) 4165 0C84 3197 27CF 3188 fcall ___wmul 4166 0C87 0860 movf ?___wmul^(0+128),w 4167 0C88 0025 movlb 5 ; select bank5 4168 0C89 07BD addwf processChars@pCharData^(0+640),f 4169 0C8A 0021 movlb 1 ; select bank1 4170 0C8B 0861 movf (?___wmul+1)^(0+128),w 4171 0C8C 0025 movlb 5 ; select bank5 4172 0C8D 3DBE addwfc (processChars@pCharData+1)^(0+640),f 4173 0C8E i2Ll6227: 4174 4175 ;pattern_engine.c: 135: charLines = packedRead(pCharData, 1); 4176 0C8E 083E movf (processChars@pCharData+1)^(0+640),w 4177 0C8F 0021 movlb 1 ; select bank1 4178 0C90 01E1 clrf (packedRead@address+1)^(0+128) 4179 0C91 07E1 addwf (packedRead@address+1)^(0+128),f 4180 0C92 0025 movlb 5 ; select bank5 4181 0C93 083D movf processChars@pCharData^(0+640),w 4182 0C94 0021 movlb 1 ; select bank1 4183 0C95 01E0 clrf packedRead@address^(0+128) 4184 0C96 07E0 addwf packedRead@address^(0+128),f 4185 0C97 01E2 clrf packedRead@hiLow^(0+128) 4186 0C98 0AE2 incf packedRead@hiLow^(0+128),f 4187 0C99 20F9 3188 fcall _packedRead 4188 0C9B 0025 movlb 5 ; select bank5 4189 0C9C 00D8 movwf processChars@charLines^(0+640) 4190 0C9D 2CC9 ljmp iL8 4191 0C9E i2Ll6229: 4192 4193 ;pattern_engine.c: 137: add_and_shift( packedRead(pCharData + (step>>1), ((step % 2)==0) + ) ); 4194 0C9E 3659 lsrf processChars@step^(0+640),w 4195 0C9F 0021 movlb 1 ; select bank1 4196 0CA0 00E0 movwf packedRead@address^(0+128) 4197 0CA1 01E1 clrf (packedRead@address+1)^(0+128) 4198 0CA2 0025 movlb 5 ; select bank5 4199 0CA3 083D movf processChars@pCharData^(0+640),w 4200 0CA4 0021 movlb 1 ; select bank1 4201 0CA5 07E0 addwf packedRead@address^(0+128),f 4202 0CA6 0025 movlb 5 ; select bank5 4203 0CA7 083E movf (processChars@pCharData+1)^(0+640),w 4204 0CA8 0021 movlb 1 ; select bank1 4205 0CA9 3DE1 addwfc (packedRead@address+1)^(0+128),f 4206 0CAA 3000 movlw 0 4207 0CAB 0025 movlb 5 ; select bank5 4208 0CAC 1C59 btfss processChars@step^(0+640),0 4209 0CAD 3001 movlw 1 4210 0CAE 0021 movlb 1 ; select bank1 4211 0CAF 00E2 movwf packedRead@hiLow^(0+128) 4212 0CB0 20F9 3188 fcall _packedRead 4213 0CB2 2681 3188 fcall _add_and_shift 4214 0CB4 i2Ll6231: 4215 4216 ;pattern_engine.c: 138: step = (step>=charLines)? 0 : step+1; 4217 0CB4 0025 movlb 5 ; select bank5 4218 0CB5 0858 movf processChars@charLines^(0+640),w 4219 0CB6 0259 subwf processChars@step^(0+640),w 4220 0CB7 1803 btfsc 3,0 4221 0CB8 2CC3 ljmp i2Ll6237 4222 0CB9 2CBB ljmp i2Ll6233 4223 0CBA i2Lu5411: 4224 0CBA 2CC3 ljmp i2Ll6237 4225 0CBB i2Lu5410: 4226 0CBB i2Ll6233: 4227 0CBB 0859 movf processChars@step^(0+640),w 4228 0CBC 0021 movlb 1 ; select bank1 4229 0CBD 00ED movwf _processChars$2329^(0+128) 4230 0CBE 01EE clrf (_processChars$2329+1)^(0+128) 4231 0CBF i2Ll6235: 4232 0CBF 0AED incf _processChars$2329^(0+128),f 4233 0CC0 1903 btfsc 3,2 4234 0CC1 0AEE incf (_processChars$2329+1)^(0+128),f 4235 0CC2 2CC6 ljmp i2Ll6239 4236 0CC3 i2Ll6237: 4237 0CC3 0021 movlb 1 ; select bank1 4238 0CC4 01ED clrf _processChars$2329^(0+128) 4239 0CC5 01EE clrf (_processChars$2329+1)^(0+128) 4240 0CC6 i2Ll6239: 4241 0CC6 086D movf _processChars$2329^(0+128),w 4242 0CC7 0025 movlb 5 ; select bank5 4243 0CC8 00D9 movwf processChars@step^(0+640) 4244 0CC9 i2Ll1097: 4245 0CC9 iL8: 4246 4247 ;pattern_engine.c: 102: delay2 = 0; 4248 0CC9 01DA clrf update_pattern@delay2^(0+640) 4249 0CCA 2DDE goto l6829 4250 0CCB l6821: 4251 4252 ;pattern_engine.c: 106: add_and_shift( get_next_pattern_byte(p_table)); 4253 0CCB 0024 movlb 4 ; select bank4 4254 0CCC 0865 movf _p_table^(0+512),w 4255 0CCD 25F1 3188 fcall _get_next_pattern_byte 4256 0CCF 2681 3188 fcall _add_and_shift 4257 4258 ;pattern_engine.c: 107: break; 4259 0CD1 2DDE goto l6829 4260 0CD2 l6823: 4261 0CD2 i3L__ptext10: 4262 ;pattern_engine.c: 109: dotCode(); 4263 4264 4265 ;psect for function _dotCode 4266 0CD2 i3L_dotCode: 4267 0CD2 i3Ll1100: 4268 0CD2 i3Ll6241: 4269 4270 ;pattern_engine.c: 147: char_in = get_next_pattern_byte(p_table); 4271 0CD2 0024 movlb 4 ; select bank4 4272 0CD3 0865 movf _p_table^(0+512),w 4273 0CD4 25F1 3188 fcall _get_next_pattern_byte 4274 0CD6 0022 movlb 2 ; select bank2 4275 0CD7 00E9 movwf dotCode@char_in^(0+256) 4276 0CD8 i3Ll6243: 4277 4278 ;pattern_engine.c: 148: y = (char_in & 0b01110000)>>4; 4279 0CD8 0E69 swapf dotCode@char_in^(0+256),w 4280 0CD9 390F andlw 15 4281 0CDA 00E8 movwf dotCode@y^(0+256) 4282 0CDB i3Ll6245: 4283 0CDB 3007 movlw 7 4284 0CDC 05E8 andwf dotCode@y^(0+256),f 4285 0CDD i3Ll6247: 4286 4287 ;pattern_engine.c: 149: x = (char_in & 0b00001110)>>1; 4288 0CDD 3669 lsrf dotCode@char_in^(0+256),w 4289 0CDE 00E7 movwf dotCode@x^(0+256) 4290 0CDF i3Ll6249: 4291 0CDF 3007 movlw 7 4292 0CE0 05E7 andwf dotCode@x^(0+256),f 4293 0CE1 i3Ll6251: 4294 4295 ;pattern_engine.c: 150: a = (char_in & 0b00000001); 4296 0CE1 0869 movf dotCode@char_in^(0+256),w 4297 0CE2 00EA movwf dotCode@a^(0+256) 4298 0CE3 i3Ll6253: 4299 0CE3 3001 movlw 1 4300 0CE4 05EA andwf dotCode@a^(0+256),f 4301 0CE5 i3Ll6255: 4302 4303 ;pattern_engine.c: 151: eof = 0; 4304 0CE5 01E6 clrf dotCode@eof^(0+256) 4305 0CE6 i3Ll6257: 4306 4307 ;pattern_engine.c: 152: if (y == 0) { 4308 0CE6 08E8 movf dotCode@y^(0+256),f 4309 0CE7 1D03 btfss 3,2 4310 0CE8 2DB8 ljmp i3Ll6347 4311 0CE9 2D90 ljmp i3Ll6345 4312 0CEA i3Lu5421: 4313 0CEA 2DB8 ljmp i3Ll6347 4314 0CEB i3Lu5420: 4315 0CEB 2D90 ljmp i3Ll6345 4316 0CEC i3Ll6261: 4317 4318 ;pattern_engine.c: 155: case 1: 4319 ;pattern_engine.c: 156: for (i=0;i<8;i++) { 4320 0CEC 01EC clrf dotCode@i^(0+256) 4321 0CED i3Ll6267: 4322 4323 ;pattern_engine.c: 157: for (j=0;j<8;j++) { 4324 0CED 01EB clrf dotCode@j^(0+256) 4325 0CEE i3Ll6273: 4326 4327 ;pattern_engine.c: 158: LEDS[i][j] = a; 4328 0CEE 086C movf dotCode@i^(0+256),w 4329 0CEF 00E0 movwf ??_dotCode^(0+256) 4330 0CF0 30A0 movlw _LEDS& (0+255) 4331 0CF1 35E0 lslf ??_dotCode^(0+256),f 4332 0CF2 35E0 lslf ??_dotCode^(0+256),f 4333 0CF3 35E0 lslf ??_dotCode^(0+256),f 4334 0CF4 0760 addwf ??_dotCode^(0+256),w 4335 0CF5 00E1 movwf (??_dotCode+1)^(0+256) 4336 0CF6 086B movf dotCode@j^(0+256),w 4337 0CF7 0761 addwf (??_dotCode+1)^(0+256),w 4338 0CF8 00E2 movwf (??_dotCode+2)^(0+256) 4339 0CF9 0086 movwf 6 4340 0CFA 3003 movlw 3 ; select bank7/8 4341 0CFB 0087 movwf 7 4342 0CFC 086A movf dotCode@a^(0+256),w 4343 0CFD 0081 movwf 1 4344 0CFE i3Ll6275: 4345 0CFE 0AEB incf dotCode@j^(0+256),f 4346 0CFF i3Ll6277: 4347 0CFF 3008 movlw 8 4348 0D00 026B subwf dotCode@j^(0+256),w 4349 0D01 1C03 btfss 3,0 4350 0D02 2CEE ljmp i3Ll6273 4351 0D03 2D05 ljmp i3Ll6279 4352 0D04 i3Lu5431: 4353 0D04 2CEE ljmp i3Ll6273 4354 0D05 i3Lu5430: 4355 0D05 i3Ll6279: 4356 0D05 0AEC incf dotCode@i^(0+256),f 4357 0D06 i3Ll6281: 4358 0D06 3008 movlw 8 4359 0D07 026C subwf dotCode@i^(0+256),w 4360 0D08 1C03 btfss 3,0 4361 0D09 2CED ljmp i3Ll6267 4362 0D0A 2DC8 ljmp i3Ll6349 4363 0D0B i3Lu5441: 4364 0D0B 2CED ljmp i3Ll6267 4365 0D0C i3Lu5440: 4366 0D0C 2DC8 ljmp i3Ll6349 4367 0D0D i3Ll6283: 4368 4369 ;pattern_engine.c: 163: case 3: 4370 ;pattern_engine.c: 164: for (i=0;i<8;i++) { 4371 0D0D 01EC clrf dotCode@i^(0+256) 4372 0D0E i3Ll1112: 4373 4374 ;pattern_engine.c: 165: for (j=1;j<7;j++) { 4375 0D0E 01EB clrf dotCode@j^(0+256) 4376 0D0F 0AEB incf dotCode@j^(0+256),f 4377 0D10 i3Ll6293: 4378 4379 ;pattern_engine.c: 166: LEDS[i][j] = LEDS[i][j+1]; 4380 0D10 086C movf dotCode@i^(0+256),w 4381 0D11 00E0 movwf ??_dotCode^(0+256) 4382 0D12 30A0 movlw _LEDS& (0+255) 4383 0D13 35E0 lslf ??_dotCode^(0+256),f 4384 0D14 35E0 lslf ??_dotCode^(0+256),f 4385 0D15 35E0 lslf ??_dotCode^(0+256),f 4386 0D16 0760 addwf ??_dotCode^(0+256),w 4387 0D17 00E1 movwf (??_dotCode+1)^(0+256) 4388 0D18 086B movf dotCode@j^(0+256),w 4389 0D19 0761 addwf (??_dotCode+1)^(0+256),w 4390 0D1A 00E2 movwf (??_dotCode+2)^(0+256) 4391 0D1B 0086 movwf 6 4392 0D1C 3003 movlw 3 ; select bank7/8 4393 0D1D 0087 movwf 7 4394 0D1E 086C movf dotCode@i^(0+256),w 4395 0D1F 00E3 movwf (??_dotCode+3)^(0+256) 4396 0D20 30A1 movlw (_LEDS+1)& (0+255) 4397 0D21 35E3 lslf (??_dotCode+3)^(0+256),f 4398 0D22 35E3 lslf (??_dotCode+3)^(0+256),f 4399 0D23 35E3 lslf (??_dotCode+3)^(0+256),f 4400 0D24 0763 addwf (??_dotCode+3)^(0+256),w 4401 0D25 00E4 movwf (??_dotCode+4)^(0+256) 4402 0D26 086B movf dotCode@j^(0+256),w 4403 0D27 0764 addwf (??_dotCode+4)^(0+256),w 4404 0D28 00E5 movwf (??_dotCode+5)^(0+256) 4405 0D29 0084 movwf 4 4406 0D2A 3003 movlw 3 ; select bank7/8 4407 0D2B 0085 movwf 5 4408 0D2C 0800 movf 0,w 4409 0D2D 0081 movwf 1 4410 0D2E i3Ll6295: 4411 0D2E 0AEB incf dotCode@j^(0+256),f 4412 0D2F i3Ll6297: 4413 0D2F 3007 movlw 7 4414 0D30 026B subwf dotCode@j^(0+256),w 4415 0D31 1C03 btfss 3,0 4416 0D32 2D10 ljmp i3Ll6293 4417 0D33 2D35 ljmp i3Ll6299 4418 0D34 i3Lu5451: 4419 0D34 2D10 ljmp i3Ll6293 4420 0D35 i3Lu5450: 4421 0D35 i3Ll6299: 4422 0D35 0AEC incf dotCode@i^(0+256),f 4423 0D36 i3Ll6301: 4424 0D36 3008 movlw 8 4425 0D37 026C subwf dotCode@i^(0+256),w 4426 0D38 1C03 btfss 3,0 4427 0D39 2D0E ljmp i3Ll1112 4428 0D3A 2D3C ljmp i3Ll6303 4429 0D3B i3Lu5461: 4430 0D3B 2D0E ljmp i3Ll1112 4431 0D3C i3Lu5460: 4432 0D3C i3Ll6303: 4433 4434 ;pattern_engine.c: 167: } 4435 ;pattern_engine.c: 168: } 4436 ;pattern_engine.c: 169: for (i=0;i<8;i++) { 4437 0D3C 01EC clrf dotCode@i^(0+256) 4438 0D3D i3Ll6309: 4439 4440 ;pattern_engine.c: 170: LEDS[i][7] = a; 4441 0D3D 086C movf dotCode@i^(0+256),w 4442 0D3E 0709 addwf 9,w 4443 0D3F 0709 addwf 9,w 4444 0D40 0709 addwf 9,w 4445 0D41 3EA7 addlw (_LEDS+7)& (0+255) 4446 0D42 0086 movwf 6 4447 0D43 3003 movlw 3 ; select bank7/8 4448 0D44 0087 movwf 7 4449 0D45 086A movf dotCode@a^(0+256),w 4450 0D46 0081 movwf 1 4451 0D47 i3Ll6311: 4452 0D47 0AEC incf dotCode@i^(0+256),f 4453 0D48 i3Ll6313: 4454 0D48 3008 movlw 8 4455 0D49 026C subwf dotCode@i^(0+256),w 4456 0D4A 1C03 btfss 3,0 4457 0D4B 2D3D ljmp i3Ll6309 4458 0D4C 2DC8 ljmp i3Ll6349 4459 0D4D i3Lu5471: 4460 0D4D 2D3D ljmp i3Ll6309 4461 0D4E i3Lu5470: 4462 0D4E 2DC8 ljmp i3Ll6349 4463 0D4F i3Ll6315: 4464 4465 ;pattern_engine.c: 174: case 7: 4466 ;pattern_engine.c: 175: for (i=7;i>0;i--) { 4467 0D4F 3007 movlw 7 4468 0D50 00EC movwf dotCode@i^(0+256) 4469 0D51 i3Ll1120: 4470 4471 ;pattern_engine.c: 176: for (j=1;j<8;j++) { 4472 0D51 01EB clrf dotCode@j^(0+256) 4473 0D52 0AEB incf dotCode@j^(0+256),f 4474 0D53 i3Ll6325: 4475 4476 ;pattern_engine.c: 177: LEDS[i][j] = LEDS[i-1][j]; 4477 0D53 086C movf dotCode@i^(0+256),w 4478 0D54 00E0 movwf ??_dotCode^(0+256) 4479 0D55 30A0 movlw _LEDS& (0+255) 4480 0D56 35E0 lslf ??_dotCode^(0+256),f 4481 0D57 35E0 lslf ??_dotCode^(0+256),f 4482 0D58 35E0 lslf ??_dotCode^(0+256),f 4483 0D59 0760 addwf ??_dotCode^(0+256),w 4484 0D5A 00E1 movwf (??_dotCode+1)^(0+256) 4485 0D5B 086B movf dotCode@j^(0+256),w 4486 0D5C 0761 addwf (??_dotCode+1)^(0+256),w 4487 0D5D 00E2 movwf (??_dotCode+2)^(0+256) 4488 0D5E 0086 movwf 6 4489 0D5F 3003 movlw 3 ; select bank7/8 4490 0D60 0087 movwf 7 4491 0D61 086C movf dotCode@i^(0+256),w 4492 0D62 00E3 movwf (??_dotCode+3)^(0+256) 4493 0D63 3098 movlw (_LEDS+248)& (0+255) 4494 0D64 35E3 lslf (??_dotCode+3)^(0+256),f 4495 0D65 35E3 lslf (??_dotCode+3)^(0+256),f 4496 0D66 35E3 lslf (??_dotCode+3)^(0+256),f 4497 0D67 0763 addwf (??_dotCode+3)^(0+256),w 4498 0D68 00E4 movwf (??_dotCode+4)^(0+256) 4499 0D69 086B movf dotCode@j^(0+256),w 4500 0D6A 0764 addwf (??_dotCode+4)^(0+256),w 4501 0D6B 00E5 movwf (??_dotCode+5)^(0+256) 4502 0D6C 0084 movwf 4 4503 0D6D 3003 movlw 3 ; select bank7/8 4504 0D6E 0085 movwf 5 4505 0D6F 0800 movf 0,w 4506 0D70 0081 movwf 1 4507 0D71 i3Ll6327: 4508 0D71 0AEB incf dotCode@j^(0+256),f 4509 0D72 i3Ll6329: 4510 0D72 3008 movlw 8 4511 0D73 026B subwf dotCode@j^(0+256),w 4512 0D74 1C03 btfss 3,0 4513 0D75 2D53 ljmp i3Ll6325 4514 0D76 2D78 ljmp i3Ll6331 4515 0D77 i3Lu5481: 4516 0D77 2D53 ljmp i3Ll6325 4517 0D78 i3Lu5480: 4518 0D78 i3Ll6331: 4519 0D78 0BEC decfsz dotCode@i^(0+256),f 4520 0D79 2D51 ljmp i3Ll1120 4521 0D7A 2D7C ljmp i3Ll1121 4522 0D7B i3Lu5491: 4523 0D7B 2D51 ljmp i3Ll1120 4524 0D7C i3Lu5490: 4525 0D7C i3Ll1121: 4526 4527 ;pattern_engine.c: 178: } 4528 ;pattern_engine.c: 179: } 4529 ;pattern_engine.c: 180: for (i=1;i<8;i++) { 4530 0D7C 01EC clrf dotCode@i^(0+256) 4531 0D7D 0AEC incf dotCode@i^(0+256),f 4532 0D7E i3Ll6337: 4533 4534 ;pattern_engine.c: 181: LEDS[0][i] = a; 4535 0D7E 086C movf dotCode@i^(0+256),w 4536 0D7F 3EA0 addlw _LEDS& (0+255) 4537 0D80 0086 movwf 6 4538 0D81 3003 movlw 3 ; select bank7/8 4539 0D82 0087 movwf 7 4540 0D83 086A movf dotCode@a^(0+256),w 4541 0D84 0081 movwf 1 4542 0D85 i3Ll6339: 4543 0D85 0AEC incf dotCode@i^(0+256),f 4544 0D86 i3Ll6341: 4545 0D86 3008 movlw 8 4546 0D87 026C subwf dotCode@i^(0+256),w 4547 0D88 1C03 btfss 3,0 4548 0D89 2D7E ljmp i3Ll6337 4549 0D8A 2DC8 ljmp i3Ll6349 4550 0D8B i3Lu5501: 4551 0D8B 2D7E ljmp i3Ll6337 4552 0D8C i3Lu5500: 4553 0D8C 2DC8 ljmp i3Ll6349 4554 0D8D i3Ll1126: 4555 4556 ;pattern_engine.c: 185: eof=1; 4557 0D8D 01E6 clrf dotCode@eof^(0+256) 4558 0D8E 0AE6 incf dotCode@eof^(0+256),f 4559 0D8F 2DC8 ljmp i3Ll6349 4560 0D90 i3Ll6345: 4561 0D90 086A movf dotCode@a^(0+256),w 4562 0D91 00E0 movwf ??_dotCode^(0+256) 4563 0D92 01E1 clrf (??_dotCode^(0+256)+1) 4564 0D93 0867 movf dotCode@x^(0+256),w 4565 0D94 00E2 movwf (??_dotCode+2)^(0+256) 4566 0D95 01E3 clrf ((??_dotCode+2)^(0+256)+1) 4567 0D96 35E2 lslf (??_dotCode+2)^(0+256),f 4568 0D97 0DE3 rlf ((??_dotCode+2)^(0+256)+1),f 4569 0D98 0860 movf ??_dotCode^(0+256),w 4570 0D99 0762 addwf (??_dotCode+2)^(0+256),w 4571 0D9A 00E4 movwf (??_dotCode+4)^(0+256) 4572 0D9B 0861 movf (??_dotCode+1)^(0+256),w 4573 0D9C 3D63 addwfc (??_dotCode+3)^(0+256),w 4574 0D9D 00E5 movwf (??_dotCode+5)^(0+256) 4575 4576 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw + itches 4577 ; Switch size 1, requested type "space" 4578 ; Number of cases is 1, Range of values is 0 to 0 4579 ; switch strategies available: 4580 ; Name Instructions Cycles 4581 ; simple_byte 4 3 (average) 4582 ; direct_byte 8 6 (fixed) 4583 ; jumptable 260 6 (fixed) 4584 ; Chosen strategy is simple_byte 4585 0D9E 1903 btfsc 3,2 4586 0D9F 2DA1 ljmp i3Ll7455 4587 0DA0 2DC8 ljmp i3Ll6349 4588 0DA1 i3Ll7455: 4589 4590 ; Switch size 1, requested type "space" 4591 ; Number of cases is 7, Range of values is 0 to 15 4592 ; switch strategies available: 4593 ; Name Instructions Cycles 4594 ; simple_byte 22 12 (average) 4595 ; direct_byte 38 6 (fixed) 4596 ; jumptable 260 6 (fixed) 4597 ; Chosen strategy is simple_byte 4598 0DA1 0864 movf (??_dotCode+4)^(0+256),w 4599 0DA2 3A00 xorlw 0 ; case 0 4600 0DA3 1903 btfsc 3,2 4601 0DA4 2CEC ljmp i3Ll6261 4602 0DA5 3A01 xorlw 1 ; case 1 4603 0DA6 1903 btfsc 3,2 4604 0DA7 2CEC ljmp i3Ll6261 4605 0DA8 3A03 xorlw 3 ; case 2 4606 0DA9 1903 btfsc 3,2 4607 0DAA 2D0D ljmp i3Ll6283 4608 0DAB 3A01 xorlw 1 ; case 3 4609 0DAC 1903 btfsc 3,2 4610 0DAD 2D0D ljmp i3Ll6283 4611 0DAE 3A05 xorlw 5 ; case 6 4612 0DAF 1903 btfsc 3,2 4613 0DB0 2D4F ljmp i3Ll6315 4614 0DB1 3A01 xorlw 1 ; case 7 4615 0DB2 1903 btfsc 3,2 4616 0DB3 2D4F ljmp i3Ll6315 4617 0DB4 3A08 xorlw 8 ; case 15 4618 0DB5 1903 btfsc 3,2 4619 0DB6 2D8D ljmp i3Ll1126 4620 0DB7 2DC8 ljmp i3Ll6349 4621 0DB8 i3Ll6347: 4622 4623 ;pattern_engine.c: 191: LEDS[x][y] = a; 4624 0DB8 0867 movf dotCode@x^(0+256),w 4625 0DB9 00E0 movwf ??_dotCode^(0+256) 4626 0DBA 30A0 movlw _LEDS& (0+255) 4627 0DBB 35E0 lslf ??_dotCode^(0+256),f 4628 0DBC 35E0 lslf ??_dotCode^(0+256),f 4629 0DBD 35E0 lslf ??_dotCode^(0+256),f 4630 0DBE 0760 addwf ??_dotCode^(0+256),w 4631 0DBF 00E1 movwf (??_dotCode+1)^(0+256) 4632 0DC0 0868 movf dotCode@y^(0+256),w 4633 0DC1 0761 addwf (??_dotCode+1)^(0+256),w 4634 0DC2 00E2 movwf (??_dotCode+2)^(0+256) 4635 0DC3 0086 movwf 6 4636 0DC4 3003 movlw 3 ; select bank7/8 4637 0DC5 0087 movwf 7 4638 0DC6 086A movf dotCode@a^(0+256),w 4639 0DC7 0081 movwf 1 4640 0DC8 i3Ll6349: 4641 4642 ;pattern_engine.c: 192: } 4643 ;pattern_engine.c: 193: } while (eof==0); 4644 0DC8 0866 movf dotCode@eof^(0+256),w 4645 0DC9 1D03 btfss 3,2 4646 0DCA 2DCC ljmp iL34 4647 0DCB 2CD2 ljmp i3Ll6241 4648 0DCC i3Lu5510: 4649 0DCC i3Ll1130: 4650 0DCC iL34: 4651 4652 ;pattern_engine.c: 110: break; 4653 0DCC 2DDE goto l6829 4654 0DCD l6827: 4655 0DCD 085B movf update_pattern@table_type^(0+640),w 4656 4657 ; Switch size 1, requested type "space" 4658 ; Number of cases is 5, Range of values is 3 to 9 4659 ; switch strategies available: 4660 ; Name Instructions Cycles 4661 ; simple_byte 16 9 (average) 4662 ; direct_byte 23 9 (fixed) 4663 ; jumptable 263 9 (fixed) 4664 ; Chosen strategy is simple_byte 4665 0DCE 3A03 xorlw 3 ; case 3 4666 0DCF 1903 skipnz 4667 0DD0 2C53 goto l6813 4668 0DD1 3A05 xorlw 5 ; case 6 4669 0DD2 1903 skipnz 4670 0DD3 2CCB goto l6821 4671 0DD4 3A01 xorlw 1 ; case 7 4672 0DD5 1903 skipnz 4673 0DD6 2CD2 goto l6823 4674 0DD7 3A0F xorlw 15 ; case 8 4675 0DD8 1903 skipnz 4676 0DD9 2BA9 goto l6765 4677 0DDA 3A01 xorlw 1 ; case 9 4678 0DDB 1903 skipnz 4679 0DDC 2BA9 goto l6765 4680 0DDD 2DDE goto l6829 4681 0DDE l6829: 4682 4683 ;pattern_engine.c: 113: if (pattern_done(p_table)) { 4684 0DDE 0024 movlb 4 ; select bank4 4685 0DDF 0865 movf _p_table^(0+512),w 4686 0DE0 3190 2009 3188 fcall _pattern_done 4687 0DE3 3A00 xorlw 0 4688 0DE4 1903 skipnz 4689 0DE5 0008 return 4690 4691 ;pattern_engine.c: 114: demo_loops = demo_loops - 1; 4692 0DE6 30FF movlw 255 4693 0DE7 07CE addwf _demo_loops^(0+640),f 4694 4695 ;pattern_engine.c: 115: if ((demo_loops == 0) && (demo_mode == 0x80)) { 4696 0DE8 08CE movf _demo_loops^(0+640),f 4697 0DE9 1D03 skipz 4698 0DEA 0008 return 4699 0DEB 086A movf _demo_mode^(0+640),w 4700 0DEC 3A80 xorlw 128 4701 0DED 1D03 skipz 4702 0DEE 0008 return 4703 4704 ;pattern_engine.c: 116: next_pattern(); 4705 0DEF 3199 29CE ljmp l5643 4706 0DF1 __end_of_update_pattern: 4707 0DF1 __ptext11: 4708 ;; *************** function _get_next_pattern_byte ***************** 4709 ;; Defined at: 4710 ;; line 51 in file "../pattern_access.c" 4711 ;; Parameters: Size Location Type 4712 ;; pattern_id 1 wreg unsigned char 4713 ;; Auto vars: Size Location Type 4714 ;; pattern_id 1 10[BANK1 ] unsigned char 4715 ;; buffer 30 0 unsigned char [30] 4716 ;; address 2 11[BANK1 ] unsigned int 4717 ;; data 1 9[BANK1 ] unsigned char 4718 ;; Return value: Size Location Type 4719 ;; 1 wreg unsigned char 4720 ;; Registers used: 4721 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 4722 ;; Tracked objects: 4723 ;; On entry : 1F/4 4724 ;; On exit : 1F/1 4725 ;; Unchanged: 0/0 4726 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 4727 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 4728 ;; Locals: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 4729 ;; Temps: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 4730 ;; Totals: 0 0 8 0 0 0 0 0 0 0 0 0 +0 0 4731 ;;Total ram usage: 8 bytes 4732 ;; Hardware stack levels used: 1 4733 ;; Hardware stack levels required when called: 11 4734 ;; This function calls: 4735 ;; ___bmul 4736 ;; _packedRead 4737 ;; This function is called by: 4738 ;; _update_pattern 4739 ;; _processChars 4740 ;; _dotCode 4741 ;; This function uses a non-reentrant model 4742 ;; 4743 4744 4745 ;psect for function _get_next_pattern_byte 4746 0DF1 _get_next_pattern_byte: 4747 4748 ;incstack = 0 4749 ; Regs used in _get_next_pattern_byte: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack + ] 4750 ;get_next_pattern_byte@pattern_id stored from wreg 4751 0DF1 0021 movlb 1 ; select bank1 4752 0DF2 00EA movwf get_next_pattern_byte@pattern_id^(0+128) 4753 4754 ;pattern_access.c: 53: uint8_t data; 4755 ;pattern_access.c: 54: uint16_t address; 4756 ;pattern_access.c: 55: char buffer[30]; 4757 ;pattern_access.c: 57: if ((pattern_id!=0)||(user_msg_size<4)) { 4758 0DF3 08EA movf get_next_pattern_byte@pattern_id^(0+128),f 4759 0DF4 1D03 skipz 4760 0DF5 2DFB goto l5733 4761 0DF6 3004 movlw 4 4762 0DF7 0024 movlb 4 ; select bank4 4763 0DF8 026F subwf _user_msg_size^(0+512),w 4764 0DF9 1803 skipnc 4765 0DFA 2E29 goto l972 4766 0DFB l5733: 4767 4768 ;pattern_access.c: 58: address = (uint16_t) (patterns[pattern_id].start) +(p_count>>1); 4769 0DFB 0025 movlb 5 ; select bank5 4770 0DFC 083C movf (_p_count+1)^(0+640),w 4771 0DFD 0021 movlb 1 ; select bank1 4772 0DFE 01EC clrf (get_next_pattern_byte@address+1)^(0+128) 4773 0DFF 07EC addwf (get_next_pattern_byte@address+1)^(0+128),f 4774 0E00 0025 movlb 5 ; select bank5 4775 0E01 083B movf _p_count^(0+640),w 4776 0E02 0021 movlb 1 ; select bank1 4777 0E03 01EB clrf get_next_pattern_byte@address^(0+128) 4778 0E04 07EB addwf get_next_pattern_byte@address^(0+128),f 4779 0E05 3005 movlw 5 4780 0E06 36EC lsrf (get_next_pattern_byte@address+1)^(0+128),f 4781 0E07 0CEB rrf get_next_pattern_byte@address^(0+128),f 4782 0E08 00E0 movwf ___bmul@multiplicand^(0+128) 4783 0E09 086A movf get_next_pattern_byte@pattern_id^(0+128),w 4784 0E0A 2703 3188 fcall ___bmul 4785 0E0C 3E20 addlw _patterns& (0+255) 4786 0E0D 0086 movwf 6 4787 0E0E 3004 movlw 4 ; select bank8/9 4788 0E0F 0087 movwf 7 4789 0E10 3F40 moviw [0]fsr1 4790 0E11 00E5 movwf ??_get_next_pattern_byte^(0+128) 4791 0E12 3F41 moviw [1]fsr1 4792 0E13 00E6 movwf (??_get_next_pattern_byte^(0+128)+1) 4793 0E14 0865 movf ??_get_next_pattern_byte^(0+128),w 4794 0E15 07EB addwf get_next_pattern_byte@address^(0+128),f 4795 0E16 0866 movf (??_get_next_pattern_byte+1)^(0+128),w 4796 0E17 3DEC addwfc (get_next_pattern_byte@address+1)^(0+128),f 4797 4798 ;pattern_access.c: 59: data = (p_count % 2)? packedRead(address,0) : packedRead(address, + 1); 4799 0E18 0025 movlb 5 ; select bank5 4800 0E19 183B btfsc _p_count^(0+640),0 4801 0E1A 2E20 goto l5743 4802 0E1B 0021 movlb 1 ; select bank1 4803 0E1C 2748 3188 fcall PL159 ;call to abstracted procedure 4804 0E1E 0AE2 incf packedRead@hiLow^(0+128),f 4805 0E1F 2E23 goto L9 4806 0E20 l5743: 4807 0E20 0021 movlb 1 ; select bank1 4808 0E21 2748 3188 fcall PL159 ;call to abstracted procedure 4809 0E23 L9: 4810 0E23 20F9 3188 fcall _packedRead 4811 0E25 0021 movlb 1 ; select bank1 4812 0E26 00E7 movwf _get_next_pattern_byte$2231^(0+128) 4813 0E27 01E8 clrf (_get_next_pattern_byte$2231+1)^(0+128) 4814 0E28 2E3A goto L10 4815 0E29 l972: 4816 ;pattern_access.c: 60: } else { 4817 4818 4819 ;pattern_access.c: 62: address = (uint8_t *) (&msg1) +p_count; 4820 0E29 301F movlw 31 4821 0E2A 0021 movlb 1 ; select bank1 4822 0E2B 00EC movwf (get_next_pattern_byte@address+1)^(0+128) 4823 0E2C 30A0 movlw 160 4824 0E2D 00EB movwf get_next_pattern_byte@address^(0+128) 4825 0E2E 0025 movlb 5 ; select bank5 4826 0E2F 083B movf _p_count^(0+640),w 4827 0E30 0021 movlb 1 ; select bank1 4828 0E31 07EB addwf get_next_pattern_byte@address^(0+128),f 4829 0E32 0025 movlb 5 ; select bank5 4830 0E33 083C movf (_p_count+1)^(0+640),w 4831 0E34 0021 movlb 1 ; select bank1 4832 0E35 3DEC addwfc (get_next_pattern_byte@address+1)^(0+128),f 4833 4834 ;pattern_access.c: 63: data = packedRead(address,0); 4835 0E36 2748 3188 fcall PL159 ;call to abstracted procedure 4836 0E38 20F9 fcall _packedRead 4837 0E39 0021 movlb 1 ; select bank1 4838 0E3A L10: 4839 0E3A 00E9 movwf get_next_pattern_byte@data^(0+128) 4840 4841 ;pattern_access.c: 64: } 4842 ;pattern_access.c: 65: p_count++; 4843 0E3B 0025 movlb 5 ; select bank5 4844 0E3C 0ABB incf _p_count^(0+640),f 4845 0E3D 1903 skipnz 4846 0E3E 0ABC incf (_p_count+1)^(0+640),f 4847 4848 ;pattern_access.c: 66: return(data); 4849 0E3F 0021 movlb 1 ; select bank1 4850 0E40 0869 movf get_next_pattern_byte@data^(0+128),w 4851 0E41 0008 return 4852 0E42 __end_of_get_next_pattern_byte: 4853 0E42 __ptext2: 4854 ;; *************** function _up_down ***************** 4855 ;; Defined at: 4856 ;; line 287 in file "../pattern_engine.c" 4857 ;; Parameters: Size Location Type 4858 ;; change 1 wreg unsigned char 4859 ;; data 1 0[BANK1 ] unsigned char 4860 ;; Auto vars: Size Location Type 4861 ;; change 1 5[BANK1 ] unsigned char 4862 ;; Return value: Size Location Type 4863 ;; 1 wreg unsigned char 4864 ;; Registers used: 4865 ;; wreg, status,2, status,0 4866 ;; Tracked objects: 4867 ;; On entry : 1F/2 4868 ;; On exit : 1F/1 4869 ;; Unchanged: 0/0 4870 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 4871 ;; Params: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 4872 ;; Locals: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 4873 ;; Temps: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 4874 ;; Totals: 0 0 10 0 0 0 0 0 0 0 0 0 +0 0 4875 ;;Total ram usage: 10 bytes 4876 ;; Hardware stack levels used: 1 4877 ;; Hardware stack levels required when called: 10 4878 ;; This function calls: 4879 ;; Nothing 4880 ;; This function is called by: 4881 ;; _update_pattern 4882 ;; This function uses a non-reentrant model 4883 ;; 4884 4885 4886 ;psect for function _up_down 4887 0E42 _up_down: 4888 4889 ;incstack = 0 4890 ; Regs used in _up_down: [wreg+status,2+status,0] 4891 ;up_down@change stored from wreg 4892 0E42 0021 movlb 1 ; select bank1 4893 0E43 00E5 movwf up_down@change^(0+128) 4894 4895 ;pattern_engine.c: 289: if (change) { 4896 0E44 0865 movf up_down@change^(0+128),w 4897 0E45 1903 btfsc 3,2 4898 0E46 2E67 goto l6201 4899 4900 ;pattern_engine.c: 290: return((((8)<(data+1))?(8):(data+1))); 4901 0E47 0860 movf up_down@data^(0+128),w 4902 0E48 3E01 addlw 1 4903 0E49 00E1 movwf ??_up_down^(0+128) 4904 0E4A 3000 movlw 0 4905 0E4B 1803 skipnc 4906 0E4C 3001 movlw 1 4907 0E4D 00E2 movwf (??_up_down^(0+128)+1) 4908 0E4E 0862 movf (??_up_down+1)^(0+128),w 4909 0E4F 3A80 xorlw 128 4910 0E50 00E3 movwf (??_up_down+2)^(0+128) 4911 0E51 3080 movlw 128 4912 0E52 0263 subwf (??_up_down+2)^(0+128),w 4913 0E53 1D03 skipz 4914 0E54 2E57 goto u5375 4915 0E55 3009 movlw 9 4916 0E56 0261 subwf ??_up_down^(0+128),w 4917 0E57 u5375: 4918 0E57 1803 skipnc 4919 0E58 2E61 goto l6195 4920 0E59 0021 movlb 1 ; select bank1 4921 0E5A 0860 movf up_down@data^(0+128),w 4922 0E5B 00E6 movwf _up_down$2367^(0+128) 4923 0E5C 01E7 clrf (_up_down$2367+1)^(0+128) 4924 0E5D 0AE6 incf _up_down$2367^(0+128),f 4925 0E5E 1903 skipnz 4926 0E5F 0AE7 incf (_up_down$2367+1)^(0+128),f 4927 0E60 2E65 goto l1223 4928 0E61 l6195: 4929 0E61 3008 movlw 8 4930 0E62 0021 movlb 1 ; select bank1 4931 0E63 00E6 movwf _up_down$2367^(0+128) 4932 0E64 01E7 clrf (_up_down$2367+1)^(0+128) 4933 0E65 l1223: 4934 0E65 0866 movf _up_down$2367^(0+128),w 4935 0E66 0008 return 4936 0E67 l6201: 4937 4938 ;pattern_engine.c: 292: return((((0)>((signed char) data-1))?(0):((signed char) data-1)) + ); 4939 0E67 0860 movf up_down@data^(0+128),w 4940 0E68 00E1 movwf ??_up_down^(0+128) 4941 0E69 01E2 clrf (??_up_down^(0+128)+1) 4942 0E6A 1BE1 btfsc ??_up_down^(0+128),7 4943 0E6B 03E2 decf (??_up_down^(0+128)+1),f 4944 0E6C 3EFF addlw 255 4945 0E6D 00E3 movwf (??_up_down+2)^(0+128) 4946 0E6E 30FF movlw 255 4947 0E6F 3D62 addwfc (??_up_down+1)^(0+128),w 4948 0E70 00E4 movwf (??_up_down+3)^(0+128) 4949 0E71 1BE4 btfsc (??_up_down+3)^(0+128),7 4950 0E72 2E7D goto l6205 4951 0E73 0860 movf up_down@data^(0+128),w 4952 0E74 00E8 movwf _up_down$2368^(0+128) 4953 0E75 01E9 clrf (_up_down$2368+1)^(0+128) 4954 0E76 1BE8 btfsc _up_down$2368^(0+128),7 4955 0E77 03E9 decf (_up_down$2368+1)^(0+128),f 4956 0E78 30FF movlw -1 4957 0E79 07E8 addwf _up_down$2368^(0+128),f 4958 0E7A 1C03 skipc 4959 0E7B 03E9 decf (_up_down$2368+1)^(0+128),f 4960 0E7C 2E7F goto l6207 4961 0E7D l6205: 4962 0E7D 01E8 clrf _up_down$2368^(0+128) 4963 0E7E 01E9 clrf (_up_down$2368+1)^(0+128) 4964 0E7F l6207: 4965 0E7F 0868 movf _up_down$2368^(0+128),w 4966 0E80 0008 return 4967 0E81 __end_of_up_down: 4968 0E81 __ptext8: 4969 ;; *************** function _add_and_shift ***************** 4970 ;; Defined at: 4971 ;; line 196 in file "../pattern_engine.c" 4972 ;; Parameters: Size Location Type 4973 ;; in 1 wreg unsigned char 4974 ;; Auto vars: Size Location Type 4975 ;; in 1 16[BANK3 ] unsigned char 4976 ;; j 1 15[BANK3 ] unsigned char 4977 ;; i 1 14[BANK3 ] unsigned char 4978 ;; Return value: Size Location Type 4979 ;; None void 4980 ;; Registers used: 4981 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0 4982 ;; Tracked objects: 4983 ;; On entry : 19/1 4984 ;; On exit : 1F/7 4985 ;; Unchanged: 0/0 4986 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 4987 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 4988 ;; Locals: 0 0 0 0 17 0 0 0 0 0 0 0 +0 0 4989 ;; Temps: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 4990 ;; Totals: 0 0 6 0 17 0 0 0 0 0 0 0 +0 0 4991 ;;Total ram usage: 23 bytes 4992 ;; Hardware stack levels used: 1 4993 ;; Hardware stack levels required when called: 10 4994 ;; This function calls: 4995 ;; Nothing 4996 ;; This function is called by: 4997 ;; _update_pattern 4998 ;; _processChars 4999 ;; This function uses a non-reentrant model 5000 ;; 5001 5002 5003 ;psect for function _add_and_shift 5004 0E81 _add_and_shift: 5005 5006 ;incstack = 0 5007 ; Regs used in _add_and_shift: [wreg-fsr1h+status,2+status,0] 5008 ;add_and_shift@in stored from wreg 5009 0E81 0023 movlb 3 ; select bank3 5010 0E82 00B0 movwf add_and_shift@in^(0+384) 5011 5012 ;pattern_engine.c: 198: uint8_t i,j; 5013 ;pattern_engine.c: 200: for (i=0;i<7;i++) { 5014 0E83 01AE clrf add_and_shift@i^(0+384) 5015 0E84 l1133: 5016 5017 ;pattern_engine.c: 201: for (j=1;j<=7;j++) { 5018 0E84 01AF clrf add_and_shift@j^(0+384) 5019 0E85 0AAF incf add_and_shift@j^(0+384),f 5020 0E86 l5771: 5021 5022 ;pattern_engine.c: 202: LEDS[i][j] = LEDS[i+1][j]; 5023 0E86 082E movf add_and_shift@i^(0+384),w 5024 0E87 0021 movlb 1 ; select bank1 5025 0E88 00E0 movwf ??_add_and_shift^(0+128) 5026 0E89 30A0 movlw _LEDS& (0+255) 5027 0E8A 35E0 lslf ??_add_and_shift^(0+128),f 5028 0E8B 35E0 lslf ??_add_and_shift^(0+128),f 5029 0E8C 35E0 lslf ??_add_and_shift^(0+128),f 5030 0E8D 0760 addwf ??_add_and_shift^(0+128),w 5031 0E8E 00E1 movwf (??_add_and_shift+1)^(0+128) 5032 0E8F 0023 movlb 3 ; select bank3 5033 0E90 082F movf add_and_shift@j^(0+384),w 5034 0E91 0021 movlb 1 ; select bank1 5035 0E92 0761 addwf (??_add_and_shift+1)^(0+128),w 5036 0E93 00E2 movwf (??_add_and_shift+2)^(0+128) 5037 0E94 0086 movwf 6 5038 0E95 3003 movlw 3 ; select bank7/8 5039 0E96 0087 movwf 7 5040 0E97 0023 movlb 3 ; select bank3 5041 0E98 082E movf add_and_shift@i^(0+384),w 5042 0E99 0021 movlb 1 ; select bank1 5043 0E9A 00E3 movwf (??_add_and_shift+3)^(0+128) 5044 0E9B 30A8 movlw (_LEDS+8)& (0+255) 5045 0E9C 35E3 lslf (??_add_and_shift+3)^(0+128),f 5046 0E9D 35E3 lslf (??_add_and_shift+3)^(0+128),f 5047 0E9E 35E3 lslf (??_add_and_shift+3)^(0+128),f 5048 0E9F 0763 addwf (??_add_and_shift+3)^(0+128),w 5049 0EA0 00E4 movwf (??_add_and_shift+4)^(0+128) 5050 0EA1 0023 movlb 3 ; select bank3 5051 0EA2 082F movf add_and_shift@j^(0+384),w 5052 0EA3 0021 movlb 1 ; select bank1 5053 0EA4 0764 addwf (??_add_and_shift+4)^(0+128),w 5054 0EA5 00E5 movwf (??_add_and_shift+5)^(0+128) 5055 0EA6 0084 movwf 4 5056 0EA7 3003 movlw 3 ; select bank7/8 5057 0EA8 0085 movwf 5 5058 0EA9 0800 movf 0,w 5059 0EAA 0081 movwf 1 5060 0EAB 0023 movlb 3 ; select bank3 5061 0EAC 3008 movlw 8 5062 0EAD 0AAF incf add_and_shift@j^(0+384),f 5063 0EAE 022F subwf add_and_shift@j^(0+384),w 5064 0EAF 1C03 skipc 5065 0EB0 2E86 goto l5771 5066 0EB1 3007 movlw 7 5067 0EB2 0AAE incf add_and_shift@i^(0+384),f 5068 0EB3 022E subwf add_and_shift@i^(0+384),w 5069 0EB4 1C03 skipc 5070 0EB5 2E84 goto l1133 5071 5072 ;pattern_engine.c: 203: } 5073 ;pattern_engine.c: 204: } 5074 ;pattern_engine.c: 206: LEDS[7][7] = (in & 0x40) ? (0x07) : (0x00); 5075 0EB6 1B30 btfsc add_and_shift@in^(0+384),6 5076 0EB7 2EBA goto l5783 5077 0EB8 01A0 clrf _add_and_shift$2342^(0+384) 5078 0EB9 2EBC goto L2 5079 0EBA l5783: 5080 0EBA 3007 movlw 7 5081 0EBB 00A0 movwf _add_and_shift$2342^(0+384) 5082 0EBC L2: 5083 0EBC 01A1 clrf (_add_and_shift$2342+1)^(0+384) 5084 0EBD 0820 movf _add_and_shift$2342^(0+384),w 5085 0EBE 0027 movlb 7 ; select bank7 5086 0EBF 00DF movwf (_LEDS^(0+896)+63) 5087 5088 ;pattern_engine.c: 207: LEDS[7][6] = (in & 0x20) ? (0x07) : (0x00); 5089 0EC0 0023 movlb 3 ; select bank3 5090 0EC1 1AB0 btfsc add_and_shift@in^(0+384),5 5091 0EC2 2EC5 goto l5789 5092 0EC3 01A2 clrf _add_and_shift$2343^(0+384) 5093 0EC4 2EC7 goto L3 5094 0EC5 l5789: 5095 0EC5 3007 movlw 7 5096 0EC6 00A2 movwf _add_and_shift$2343^(0+384) 5097 0EC7 L3: 5098 0EC7 01A3 clrf (_add_and_shift$2343+1)^(0+384) 5099 0EC8 0822 movf _add_and_shift$2343^(0+384),w 5100 0EC9 0027 movlb 7 ; select bank7 5101 0ECA 00DE movwf (_LEDS^(0+896)+62) 5102 5103 ;pattern_engine.c: 208: LEDS[7][5] = (in & 0x10) ? (0x07) : (0x00); 5104 0ECB 0023 movlb 3 ; select bank3 5105 0ECC 1A30 btfsc add_and_shift@in^(0+384),4 5106 0ECD 2ED0 goto l5795 5107 0ECE 01A4 clrf _add_and_shift$2344^(0+384) 5108 0ECF 2ED2 goto L4 5109 0ED0 l5795: 5110 0ED0 3007 movlw 7 5111 0ED1 00A4 movwf _add_and_shift$2344^(0+384) 5112 0ED2 L4: 5113 0ED2 01A5 clrf (_add_and_shift$2344+1)^(0+384) 5114 0ED3 0824 movf _add_and_shift$2344^(0+384),w 5115 0ED4 0027 movlb 7 ; select bank7 5116 0ED5 00DD movwf (_LEDS^(0+896)+61) 5117 5118 ;pattern_engine.c: 209: LEDS[7][4] = (in & 0x08) ? (0x07) : (0x00); 5119 0ED6 0023 movlb 3 ; select bank3 5120 0ED7 19B0 btfsc add_and_shift@in^(0+384),3 5121 0ED8 2EDB goto l5801 5122 0ED9 01A6 clrf _add_and_shift$2345^(0+384) 5123 0EDA 2EDD goto L5 5124 0EDB l5801: 5125 0EDB 3007 movlw 7 5126 0EDC 00A6 movwf _add_and_shift$2345^(0+384) 5127 0EDD L5: 5128 0EDD 01A7 clrf (_add_and_shift$2345+1)^(0+384) 5129 0EDE 0826 movf _add_and_shift$2345^(0+384),w 5130 0EDF 0027 movlb 7 ; select bank7 5131 0EE0 00DC movwf (_LEDS^(0+896)+60) 5132 5133 ;pattern_engine.c: 210: LEDS[7][3] = (in & 0x04) ? (0x07) : (0x00); 5134 0EE1 0023 movlb 3 ; select bank3 5135 0EE2 1930 btfsc add_and_shift@in^(0+384),2 5136 0EE3 2EE6 goto l5807 5137 0EE4 01A8 clrf _add_and_shift$2346^(0+384) 5138 0EE5 2EE8 goto L6 5139 0EE6 l5807: 5140 0EE6 3007 movlw 7 5141 0EE7 00A8 movwf _add_and_shift$2346^(0+384) 5142 0EE8 L6: 5143 0EE8 01A9 clrf (_add_and_shift$2346+1)^(0+384) 5144 0EE9 0828 movf _add_and_shift$2346^(0+384),w 5145 0EEA 0027 movlb 7 ; select bank7 5146 0EEB 00DB movwf (_LEDS^(0+896)+59) 5147 5148 ;pattern_engine.c: 211: LEDS[7][2] = (in & 0x02) ? (0x07) : (0x00); 5149 0EEC 0023 movlb 3 ; select bank3 5150 0EED 18B0 btfsc add_and_shift@in^(0+384),1 5151 0EEE 2EF1 goto l5813 5152 0EEF 01AA clrf _add_and_shift$2347^(0+384) 5153 0EF0 2EF3 goto L7 5154 0EF1 l5813: 5155 0EF1 3007 movlw 7 5156 0EF2 00AA movwf _add_and_shift$2347^(0+384) 5157 0EF3 L7: 5158 0EF3 01AB clrf (_add_and_shift$2347+1)^(0+384) 5159 0EF4 082A movf _add_and_shift$2347^(0+384),w 5160 0EF5 0027 movlb 7 ; select bank7 5161 0EF6 00DA movwf (_LEDS^(0+896)+58) 5162 5163 ;pattern_engine.c: 212: LEDS[7][1] = (in & 0x01) ? (0x07) : (0x00); 5164 0EF7 0023 movlb 3 ; select bank3 5165 0EF8 1830 btfsc add_and_shift@in^(0+384),0 5166 0EF9 2EFC goto l5819 5167 0EFA 01AC clrf _add_and_shift$2348^(0+384) 5168 0EFB 2EFE goto L8 5169 0EFC l5819: 5170 0EFC 3007 movlw 7 5171 0EFD 00AC movwf _add_and_shift$2348^(0+384) 5172 0EFE L8: 5173 0EFE 01AD clrf (_add_and_shift$2348+1)^(0+384) 5174 0EFF 082C movf _add_and_shift$2348^(0+384),w 5175 0F00 0027 movlb 7 ; select bank7 5176 0F01 00D9 movwf (_LEDS^(0+896)+57) 5177 0F02 0008 return 5178 0F03 __end_of_add_and_shift: 5179 0F03 __ptext40: 5180 ;; *************** function ___bmul ***************** 5181 ;; Defined at: 5182 ;; line 4 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\Umul8.c" 5183 ;; Parameters: Size Location Type 5184 ;; multiplier 1 wreg unsigned char 5185 ;; multiplicand 1 0[BANK1 ] unsigned char 5186 ;; Auto vars: Size Location Type 5187 ;; multiplier 1 2[BANK1 ] unsigned char 5188 ;; product 1 1[BANK1 ] unsigned char 5189 ;; Return value: Size Location Type 5190 ;; 1 wreg unsigned char 5191 ;; Registers used: 5192 ;; wreg, status,2, status,0 5193 ;; Tracked objects: 5194 ;; On entry : 1A/1 5195 ;; On exit : 1F/1 5196 ;; Unchanged: 0/0 5197 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 5198 ;; Params: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 5199 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 5200 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5201 ;; Totals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 5202 ;;Total ram usage: 3 bytes 5203 ;; Hardware stack levels used: 1 5204 ;; Hardware stack levels required when called: 10 5205 ;; This function calls: 5206 ;; Nothing 5207 ;; This function is called by: 5208 ;; _get_next_pattern_byte 5209 ;; _pattern_done 5210 ;; _next_pattern 5211 ;; _back_pattern 5212 ;; _set_pattern 5213 ;; This function uses a non-reentrant model 5214 ;; 5215 5216 5217 ;psect for function ___bmul 5218 0F03 ___bmul: 5219 5220 ;incstack = 0 5221 ; Regs used in ___bmul: [wreg+status,2+status,0] 5222 ;___bmul@multiplier stored from wreg 5223 0F03 0021 movlb 1 ; select bank1 5224 0F04 00E2 movwf ___bmul@multiplier^(0+128) 5225 0F05 01E1 clrf ___bmul@product^(0+128) 5226 0F06 l5485: 5227 0F06 0860 movf ___bmul@multiplicand^(0+128),w 5228 0F07 1862 btfsc ___bmul@multiplier^(0+128),0 5229 0F08 07E1 addwf ___bmul@product^(0+128),f 5230 0F09 35E0 lslf ___bmul@multiplicand^(0+128),f 5231 0F0A 36E2 lsrf ___bmul@multiplier^(0+128),f 5232 0F0B 08E2 movf ___bmul@multiplier^(0+128),f 5233 0F0C 1D03 skipz 5234 0F0D 2F06 goto l5485 5235 0F0E 0861 movf ___bmul@product^(0+128),w 5236 0F0F 0008 return 5237 0F10 __end_of___bmul: 5238 0F10 PL125: 5239 0F10 0084 movwf 4 5240 0F11 3003 movlw 3 ; select bank7/8 5241 0F12 0085 movwf 5 5242 0F13 0800 movf 0,w 5243 0F14 0021 movlb 1 ; select bank1 5244 0F15 00E0 movwf up_down@data^(0+128) 5245 0F16 0022 movlb 2 ; select bank2 5246 0F17 086F movf update_pattern@i^(0+256),w 5247 0F18 3E20 addlw update_pattern@temp_red& (0+255) 5248 0F19 0084 movwf 4 5249 0F1A 0800 movf 0,w 5250 0F1B 0008 return 5251 0F1C __end_ofPL125: 5252 0F1C PL129: 5253 0F1C 0086 movwf 6 5254 0F1D 3003 movlw 3 ; select bank7/8 5255 0F1E 0087 movwf 7 5256 0F1F 086F movf update_pattern@i^(0+256),w 5257 0F20 0709 addwf 9,w 5258 0F21 0709 addwf 9,w 5259 0F22 0709 addwf 9,w 5260 0F23 0008 return 5261 0F24 __end_ofPL129: 5262 0F24 PL133: 5263 0F24 0081 movwf 1 5264 0F25 0022 movlb 2 ; select bank2 5265 0F26 086F movf update_pattern@i^(0+256),w 5266 0F27 0709 addwf 9,w 5267 0F28 0709 addwf 9,w 5268 0F29 0709 addwf 9,w 5269 0F2A 0008 return 5270 0F2B __end_ofPL133: 5271 0F2B PL141: 5272 0F2B 0025 movlb 5 ; select bank5 5273 0F2C 0837 movf _pCDCDst^(0+640),w 5274 0F2D 0086 movwf 6 5275 0F2E 0187 clrf 7 5276 0F2F 0839 movf _pCDCSrc^(0+640),w 5277 0F30 0084 movwf 4 5278 0F31 083A movf (_pCDCSrc+1)^(0+640),w 5279 0F32 0085 movwf 5 5280 0F33 0800 movf 0,w 5281 0F34 0081 movwf 1 5282 0F35 0AB7 incf _pCDCDst^(0+640),f 5283 0F36 0AB9 incf _pCDCSrc^(0+640),f 5284 0F37 1903 skipnz 5285 0F38 0ABA incf (_pCDCSrc+1)^(0+640),f 5286 0F39 0021 movlb 1 ; select bank1 5287 0F3A 03EB decf CDCTxService@i^(0+128),f 5288 0F3B 0008 return 5289 0F3C __end_ofPL141: 5290 0F3C PL153: 5291 0F3C 0087 movwf 7 5292 0F3D 3F40 moviw [0]fsr1 5293 0F3E 00E4 movwf ??_USBTransferOnePacket^(0+128) 5294 0F3F 3F41 moviw [1]fsr1 5295 0F40 00E5 movwf (??_USBTransferOnePacket^(0+128)+1) 5296 0F41 3004 movlw 4 5297 0F42 0664 xorwf ??_USBTransferOnePacket^(0+128),w 5298 0F43 00E6 movwf (??_USBTransferOnePacket+2)^(0+128) 5299 0F44 0865 movf (??_USBTransferOnePacket+1)^(0+128),w 5300 0F45 00E7 movwf (??_USBTransferOnePacket+3)^(0+128) 5301 0F46 3568 lslf USBTransferOnePacket@ep^(0+128),w 5302 0F47 0008 return 5303 0F48 __end_ofPL153: 5304 0F48 PL159: 5305 0F48 086C movf (get_next_pattern_byte@address+1)^(0+128),w 5306 0F49 01E1 clrf (packedRead@address+1)^(0+128) 5307 0F4A 07E1 addwf (packedRead@address+1)^(0+128),f 5308 0F4B 086B movf get_next_pattern_byte@address^(0+128),w 5309 0F4C 01E0 clrf packedRead@address^(0+128) 5310 0F4D 07E0 addwf packedRead@address^(0+128),f 5311 0F4E 01E2 clrf packedRead@hiLow^(0+128) 5312 0F4F 0008 return 5313 0F50 __end_ofPL159: 5314 0F50 PL161: 5315 0F50 0861 movf (?_USBTransferOnePacket+1)^(0+128),w 5316 0F51 0025 movlb 5 ; select bank5 5317 0F52 01B4 clrf (_CDCDataInHandle+1)^(0+640) 5318 0F53 07B4 addwf (_CDCDataInHandle+1)^(0+640),f 5319 0F54 0021 movlb 1 ; select bank1 5320 0F55 0860 movf ?_USBTransferOnePacket^(0+128),w 5321 0F56 0025 movlb 5 ; select bank5 5322 0F57 01B3 clrf _CDCDataInHandle^(0+640) 5323 0F58 07B3 addwf _CDCDataInHandle^(0+640),f 5324 0F59 0008 return 5325 0F5A __end_ofPL161: 5326 0F5A PL175: 5327 0F5A 0091 movwf 17 ;volatile 5328 0F5B 309F movlw 159 5329 0F5C 0097 movwf 23 ;volatile 5330 0F5D 307B movlw 123 5331 0F5E 0092 movwf 18 ;volatile 5332 0F5F 0021 movlb 1 ; select bank1 5333 0F60 0008 return 5334 0F61 __end_ofPL175: 5335 0F61 PL177: 5336 0F61 3568 lslf USBTransferOnePacket@ep^(0+128),w 5337 0F62 3EA7 addlw _pBDTEntryOut& (0+255) 5338 0F63 0086 movwf 6 5339 0F64 3402 retlw 2 ; select bank5/6 5340 0F65 __end_ofPL177: 5341 0F65 PL185: 5342 0F65 086F movf update_pattern@i^(0+256),w 5343 0F66 3E20 addlw update_pattern@temp_red& (0+255) 5344 0F67 0086 movwf 6 5345 0F68 3003 movlw 3 ; select bank6/7 5346 0F69 0087 movwf 7 5347 0F6A 0008 return 5348 0F6B __end_ofPL185: 5349 0F6B PL197: 5350 0F6B 0086 movwf 6 5351 0F6C 0866 movf (??_USBTransferOnePacket+2)^(0+128),w 5352 0F6D 3FC0 movwi [0]fsr1 5353 0F6E 0867 movf (??_USBTransferOnePacket+3)^(0+128),w 5354 0F6F 3FC1 movwi [1]fsr1 5355 0F70 0008 return 5356 0F71 __end_ofPL197: 5357 0F71 PL201: 5358 0F71 0022 movlb 2 ; select bank2 5359 0F72 3008 movlw 8 5360 0F73 0AEF incf update_pattern@i^(0+256),f 5361 0F74 026F subwf update_pattern@i^(0+256),w 5362 0F75 0008 return 5363 0F76 __end_ofPL201: 5364 0F76 PL205: 5365 0F76 0087 movwf 7 5366 0F77 3F40 moviw [0]fsr1 5367 0F78 00E9 movwf USBTransferOnePacket@handle^(0+128) 5368 0F79 3F41 moviw [1]fsr1 5369 0F7A 0008 return 5370 0F7B __end_ofPL205: 5371 0F7B __ptext4: 5372 ;; *************** function _rand ***************** 5373 ;; Defined at: 5374 ;; line 13 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\rand.c" 5375 ;; Parameters: Size Location Type 5376 ;; None 5377 ;; Auto vars: Size Location Type 5378 ;; None 5379 ;; Return value: Size Location Type 5380 ;; 2 12[BANK1 ] int 5381 ;; Registers used: 5382 ;; wreg, status,2, status,0, pclath, cstack 5383 ;; Tracked objects: 5384 ;; On entry : 1F/2 5385 ;; On exit : 1F/1 5386 ;; Unchanged: 0/0 5387 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 5388 ;; Params: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 5389 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5390 ;; Temps: 0 0 0 4 0 0 0 0 0 0 0 0 +0 0 5391 ;; Totals: 0 0 2 4 0 0 0 0 0 0 0 0 +0 0 5392 ;;Total ram usage: 6 bytes 5393 ;; Hardware stack levels used: 1 5394 ;; Hardware stack levels required when called: 11 5395 ;; This function calls: 5396 ;; ___lmul 5397 ;; _srand 5398 ;; This function is called by: 5399 ;; _update_pattern 5400 ;; This function uses a non-reentrant model 5401 ;; 5402 5403 5404 ;psect for function _rand 5405 0F7B _rand: 5406 5407 ;incstack = 0 5408 ; Regs used in _rand: [wreg+status,2+status,0+pclath+cstack] 5409 0F7B 0025 movlb 5 ; select bank5 5410 0F7C 08D5 movf _randf^(0+640),f 5411 0F7D 1D03 skipz 5412 0F7E 2F85 goto l1720 5413 0F7F 0021 movlb 1 ; select bank1 5414 0F80 01E0 clrf srand@x^(0+128) 5415 0F81 0AE0 incf srand@x^(0+128),f 5416 0F82 01E1 clrf (srand@x+1)^(0+128) 5417 0F83 27CE 3188 fcall _srand 5418 0F85 l1720: 5419 0F85 3039 movlw 57 5420 0F86 0022 movlb 2 ; select bank2 5421 0F87 00E0 movwf ??_rand^(0+256) 5422 0F88 3030 movlw 48 5423 0F89 00E1 movwf (??_rand^(0+256)+1) 5424 0F8A 01E2 clrf (??_rand^(0+256)+2) 5425 0F8B 01E3 clrf (??_rand^(0+256)+3) 5426 0F8C 0026 movlb 6 ; select bank6 5427 0F8D 0834 movf (_randx+3)^(0+768),w 5428 0F8E 0021 movlb 1 ; select bank1 5429 0F8F 00E3 movwf (___lmul@multiplier+3)^(0+128) 5430 0F90 0026 movlb 6 ; select bank6 5431 0F91 0833 movf (_randx+2)^(0+768),w 5432 0F92 0021 movlb 1 ; select bank1 5433 0F93 00E2 movwf (___lmul@multiplier+2)^(0+128) 5434 0F94 0026 movlb 6 ; select bank6 5435 0F95 0832 movf (_randx+1)^(0+768),w 5436 0F96 0021 movlb 1 ; select bank1 5437 0F97 00E1 movwf (___lmul@multiplier+1)^(0+128) 5438 0F98 0026 movlb 6 ; select bank6 5439 0F99 0831 movf _randx^(0+768),w 5440 0F9A 0021 movlb 1 ; select bank1 5441 0F9B 00E0 movwf ___lmul@multiplier^(0+128) 5442 0F9C 3041 movlw 65 5443 0F9D 00E7 movwf (___lmul@multiplicand+3)^(0+128) 5444 0F9E 30C6 movlw 198 5445 0F9F 00E6 movwf (___lmul@multiplicand+2)^(0+128) 5446 0FA0 304E movlw 78 5447 0FA1 00E5 movwf (___lmul@multiplicand+1)^(0+128) 5448 0FA2 306D movlw 109 5449 0FA3 00E4 movwf ___lmul@multiplicand^(0+128) 5450 0FA4 27DB fcall ___lmul 5451 0FA5 0860 movf ?___lmul^(0+128),w 5452 0FA6 0022 movlb 2 ; select bank2 5453 0FA7 07E0 addwf ??_rand^(0+256),f 5454 0FA8 0021 movlb 1 ; select bank1 5455 0FA9 0861 movf (?___lmul+1)^(0+128),w 5456 0FAA 0022 movlb 2 ; select bank2 5457 0FAB 3DE1 addwfc (??_rand^(0+256)+1),f 5458 0FAC 0021 movlb 1 ; select bank1 5459 0FAD 0862 movf (?___lmul+2)^(0+128),w 5460 0FAE 0022 movlb 2 ; select bank2 5461 0FAF 3DE2 addwfc (??_rand^(0+256)+2),f 5462 0FB0 0021 movlb 1 ; select bank1 5463 0FB1 0863 movf (?___lmul+3)^(0+128),w 5464 0FB2 0022 movlb 2 ; select bank2 5465 0FB3 3DE3 addwfc (??_rand^(0+256)+3),f 5466 0FB4 0863 movf (??_rand+3)^(0+256),w 5467 0FB5 0026 movlb 6 ; select bank6 5468 0FB6 00B4 movwf (_randx+3)^(0+768) 5469 0FB7 0022 movlb 2 ; select bank2 5470 0FB8 0862 movf (??_rand+2)^(0+256),w 5471 0FB9 0026 movlb 6 ; select bank6 5472 0FBA 00B3 movwf (_randx+2)^(0+768) 5473 0FBB 0022 movlb 2 ; select bank2 5474 0FBC 0861 movf (??_rand+1)^(0+256),w 5475 0FBD 0026 movlb 6 ; select bank6 5476 0FBE 00B2 movwf (_randx+1)^(0+768) 5477 0FBF 0022 movlb 2 ; select bank2 5478 0FC0 0860 movf ??_rand^(0+256),w 5479 0FC1 0026 movlb 6 ; select bank6 5480 0FC2 00B1 movwf _randx^(0+768) 5481 0FC3 0834 movf (_randx^(0+768)+3),w 5482 0FC4 0021 movlb 1 ; select bank1 5483 0FC5 01ED clrf (?_rand+1)^(0+128) 5484 0FC6 07ED addwf (?_rand+1)^(0+128),f 5485 0FC7 0026 movlb 6 ; select bank6 5486 0FC8 0833 movf (_randx^(0+768)+2),w 5487 0FC9 0021 movlb 1 ; select bank1 5488 0FCA 01EC clrf ?_rand^(0+128) 5489 0FCB 07EC addwf ?_rand^(0+128),f 5490 0FCC 13ED bcf (?_rand^(0+128)+1),7 5491 0FCD 0008 return 5492 0FCE __end_of_rand: 5493 0FCE __ptext5: 5494 ;; *************** function _srand ***************** 5495 ;; Defined at: 5496 ;; line 7 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\rand.c" 5497 ;; Parameters: Size Location Type 5498 ;; x 2 0[BANK1 ] unsigned int 5499 ;; Auto vars: Size Location Type 5500 ;; None 5501 ;; Return value: Size Location Type 5502 ;; None void 5503 ;; Registers used: 5504 ;; wreg 5505 ;; Tracked objects: 5506 ;; On entry : 1F/1 5507 ;; On exit : 1F/5 5508 ;; Unchanged: 0/0 5509 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 5510 ;; Params: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 5511 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5512 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5513 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 5514 ;;Total ram usage: 2 bytes 5515 ;; Hardware stack levels used: 1 5516 ;; Hardware stack levels required when called: 10 5517 ;; This function calls: 5518 ;; Nothing 5519 ;; This function is called by: 5520 ;; _update_pattern 5521 ;; _rand 5522 ;; This function uses a non-reentrant model 5523 ;; 5524 5525 5526 ;psect for function _srand 5527 0FCE _srand: 5528 5529 ;incstack = 0 5530 ; Regs used in _srand: [wreg] 5531 0FCE 0860 movf srand@x^(0+128),w 5532 0FCF 0026 movlb 6 ; select bank6 5533 0FD0 00B1 movwf _randx^(0+768) 5534 0FD1 0021 movlb 1 ; select bank1 5535 0FD2 0861 movf (srand@x+1)^(0+128),w 5536 0FD3 0026 movlb 6 ; select bank6 5537 0FD4 00B2 movwf (_randx^(0+768)+1) 5538 0FD5 01B3 clrf (_randx^(0+768)+2) 5539 0FD6 01B4 clrf (_randx^(0+768)+3) 5540 0FD7 0025 movlb 5 ; select bank5 5541 0FD8 01D5 clrf _randf^(0+640) 5542 0FD9 0AD5 incf _randf^(0+640),f 5543 0FDA 0008 return 5544 0FDB __end_of_srand: 5545 0FDB __ptext6: 5546 ;; *************** function ___lmul ***************** 5547 ;; Defined at: 5548 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\Umul32.c" 5549 ;; Parameters: Size Location Type 5550 ;; multiplier 4 0[BANK1 ] unsigned long 5551 ;; multiplicand 4 4[BANK1 ] unsigned long 5552 ;; Auto vars: Size Location Type 5553 ;; product 4 8[BANK1 ] unsigned long 5554 ;; Return value: Size Location Type 5555 ;; 4 0[BANK1 ] unsigned long 5556 ;; Registers used: 5557 ;; wreg, status,2, status,0 5558 ;; Tracked objects: 5559 ;; On entry : 1F/1 5560 ;; On exit : 1F/1 5561 ;; Unchanged: 0/0 5562 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 5563 ;; Params: 0 0 8 0 0 0 0 0 0 0 0 0 +0 0 5564 ;; Locals: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 5565 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5566 ;; Totals: 0 0 12 0 0 0 0 0 0 0 0 0 +0 0 5567 ;;Total ram usage: 12 bytes 5568 ;; Hardware stack levels used: 1 5569 ;; Hardware stack levels required when called: 10 5570 ;; This function calls: 5571 ;; Nothing 5572 ;; This function is called by: 5573 ;; _rand 5574 ;; This function uses a non-reentrant model 5575 ;; 5576 5577 5578 ;psect for function ___lmul 5579 0FDB ___lmul: 5580 5581 ;incstack = 0 5582 ; Regs used in ___lmul: [wreg+status,2+status,0] 5583 0FDB 01E8 clrf ___lmul@product^(0+128) 5584 0FDC 01E9 clrf (___lmul@product+1)^(0+128) 5585 0FDD 01EA clrf (___lmul@product+2)^(0+128) 5586 0FDE 01EB clrf (___lmul@product+3)^(0+128) 5587 0FDF l1338: 5588 0FDF 1C60 btfss ___lmul@multiplier^(0+128),0 5589 0FE0 2FE9 goto l5825 5590 0FE1 0864 movf ___lmul@multiplicand^(0+128),w 5591 0FE2 07E8 addwf ___lmul@product^(0+128),f 5592 0FE3 0865 movf (___lmul@multiplicand+1)^(0+128),w 5593 0FE4 3DE9 addwfc (___lmul@product+1)^(0+128),f 5594 0FE5 0866 movf (___lmul@multiplicand+2)^(0+128),w 5595 0FE6 3DEA addwfc (___lmul@product+2)^(0+128),f 5596 0FE7 0867 movf (___lmul@multiplicand+3)^(0+128),w 5597 0FE8 3DEB addwfc (___lmul@product+3)^(0+128),f 5598 0FE9 l5825: 5599 0FE9 35E4 lslf ___lmul@multiplicand^(0+128),f 5600 0FEA 0DE5 rlf (___lmul@multiplicand+1)^(0+128),f 5601 0FEB 0DE6 rlf (___lmul@multiplicand+2)^(0+128),f 5602 0FEC 0DE7 rlf (___lmul@multiplicand+3)^(0+128),f 5603 0FED 36E3 lsrf (___lmul@multiplier+3)^(0+128),f 5604 0FEE 0CE2 rrf (___lmul@multiplier+2)^(0+128),f 5605 0FEF 0CE1 rrf (___lmul@multiplier+1)^(0+128),f 5606 0FF0 0CE0 rrf ___lmul@multiplier^(0+128),f 5607 0FF1 0863 movf (___lmul@multiplier+3)^(0+128),w 5608 0FF2 0462 iorwf (___lmul@multiplier+2)^(0+128),w 5609 0FF3 0461 iorwf (___lmul@multiplier+1)^(0+128),w 5610 0FF4 0460 iorwf ___lmul@multiplier^(0+128),w 5611 0FF5 1D03 skipz 5612 0FF6 2FDF goto l1338 5613 0FF7 086B movf (___lmul@product+3)^(0+128),w 5614 0FF8 00E3 movwf (?___lmul+3)^(0+128) 5615 0FF9 086A movf (___lmul@product+2)^(0+128),w 5616 0FFA 00E2 movwf (?___lmul+2)^(0+128) 5617 0FFB 0869 movf (___lmul@product+1)^(0+128),w 5618 0FFC 00E1 movwf (?___lmul+1)^(0+128) 5619 0FFD 0868 movf ___lmul@product^(0+128),w 5620 0FFE 00E0 movwf ?___lmul^(0+128) 5621 0FFF 0008 return 5622 1000 __end_of___lmul: 5623 5624 psect bssBANK0h 5625 006F __pbssBANK0h: 5626 006F _pBDTEntryEP0OutCurrent: 5627 006F ds 1 5628 5629 psect bssBANK4 5630 0257 __pbssBANK4: 5631 0257 _pBDTEntryIn: 5632 0257 ds 6 5633 025D _pBDTEntryEP0OutNext: 5634 025D ds 2 5635 025F APP_DeviceCDCBasicDemoTasks@offset: 5636 025F ds 1 5637 0260 _USBDeviceState: 5638 0260 ds 1 5639 0261 _cdc_trf_state: 5640 0261 ds 1 5641 0262 _controlTransferState: 5642 0262 ds 1 5643 0263 _endpoint_number: 5644 0263 ds 1 5645 0264 _head: 5646 0264 ds 1 5647 0265 _p_table: 5648 0265 ds 1 5649 0266 _shortPacketStatus: 5650 0266 ds 1 5651 0267 _tail: 5652 0267 ds 1 5653 0268 _inPipes: 5654 0268 ds 5 5655 026D _USBActiveConfiguration: 5656 026D ds 1 5657 026E _USTATcopy: 5658 026E ds 1 5659 5660 psect bssBANK5 5661 02A0 __pbssBANK5: 5662 02A0 _outPipes: 5663 02A0 ds 7 5664 02A7 _pBDTEntryOut: 5665 02A7 ds 6 5666 02AD _ep_data_in: 5667 02AD ds 3 5668 02B0 _ep_data_out: 5669 02B0 ds 3 5670 02B3 _CDCDataInHandle: 5671 02B3 ds 2 5672 02B5 _CDCDataOutHandle: 5673 02B5 ds 2 5674 02B7 _pCDCDst: 5675 02B7 ds 2 5676 02B9 _pCDCSrc: 5677 02B9 ds 2 5678 02BB _p_count: 5679 02BB ds 2 5680 02BD processChars@pCharData: 5681 02BD ds 2 5682 02BF _BothEP0OutUOWNsSet: 5683 02BF ds 1 5684 02C0 _RemoteWakeup: 5685 02C0 ds 1 5686 02C1 _USBBusIsSuspended: 5687 02C1 ds 1 5688 02C2 _USBDeferINDataStagePackets: 5689 02C2 ds 1 5690 02C3 _USBDeferOUTDataStagePackets: 5691 02C3 ds 1 5692 02C4 _USBDeferStatusStagePacket: 5693 02C4 ds 1 5694 02C5 _USBStatusStageEnabledFlag1: 5695 02C5 ds 1 5696 02C6 _USBStatusStageEnabledFlag2: 5697 02C6 ds 1 5698 02C7 _USBStatusStageTimeoutCounter: 5699 02C7 ds 1 5700 02C8 _USBTicksSinceSuspendEnd: 5701 02C8 ds 1 5702 02C9 _buttonPressed: 5703 02C9 ds 1 5704 02CA _cdc_mem_type: 5705 02CA ds 1 5706 02CB _cdc_rx_len: 5707 02CB ds 1 5708 02CC _cdc_tx_len: 5709 02CC ds 1 5710 02CD _cycle_count: 5711 02CD ds 1 5712 02CE _demo_loops: 5713 02CE ds 1 5714 02CF _fader_cycle: 5715 02CF ds 1 5716 02D0 _menuState: 5717 02D0 ds 1 5718 02D1 _newTail: 5719 02D1 ds 1 5720 02D2 _old_button: 5721 02D2 ds 1 5722 02D3 _pDst: 5723 02D3 ds 1 5724 02D4 _pattern_speed: 5725 02D4 ds 1 5726 02D5 _randf: 5727 02D5 ds 1 5728 02D6 _strobe: 5729 02D6 ds 1 5730 02D7 doMenu@menuOldState: 5731 02D7 ds 1 5732 02D8 processChars@charLines: 5733 02D8 ds 1 5734 02D9 processChars@step: 5735 02D9 ds 1 5736 02DA update_pattern@delay2: 5737 02DA ds 1 5738 02DB update_pattern@table_type: 5739 02DB ds 1 5740 02DC _line_coding: 5741 02DC ds 7 5742 02E3 _plockout: 5743 02E3 ds 4 5744 02E7 _USBAlternateInterface: 5745 02E7 ds 2 5746 02E9 processChars@char_in: 5747 02E9 ds 1 5748 5749 psect dataBANK5 5750 02EC __pdataBANK5: 5751 02EC _run: 5752 02EC ds 1 5753 02ED _wait_timer: 5754 02ED ds 1 5755 5756 psect bssBANK6 5757 0320 __pbssBANK6: 5758 0320 update_pattern@temp_red: 5759 0320 ds 8 5760 0328 _led_data_save: 5761 0328 ds 5 5762 032D _USB1msTickCount: 5763 032D ds 4 5764 0331 _randx: 5765 0331 ds 4 5766 0335 _dummy_encapsulated_cmd_response: 5767 0335 ds 8 5768 5769 psect dataBANK6 5770 033D __pdataBANK6: 5771 033D _buttonMessage: 5772 033D ds 18 5773 5774 psect bssBANK7 5775 03A0 __pbssBANK7: 5776 03A0 _LEDS: 5777 03A0 ds 64 5778 5779 psect dataBANK8 5780 0420 __pdataBANK8: 5781 0420 _patterns: 5782 0420 ds 55 5783 5784 psect bssBANK9 5785 04A0 __pbssBANK9: 5786 04A0 _readBuffer: 5787 04A0 ds 64 5788 5789 psect clrtext 5790 1F82 clear_ram0: 5791 ; Called with FSR0 containing the base address, and 5792 ; btemp/btemp+1 has the size to clear 5793 5794 1F82 0064 clrwdt ;clear the watchdog before getting into this loop 5795 1F83 clrloop0: 5796 1F83 3001 movlw 1 5797 1F84 0180 clrf 0 ;clear RAM location pointed to by FSR 5798 1F85 3101 addfsr 0,1 5799 1F86 02FE subwf 126,f 5800 1F87 3000 movlw 0 5801 1F88 3BFF subwfb 127,f 5802 1F89 087F movf 127,w 5803 1F8A 047E iorwf 126,w 5804 1F8B 1903 btfsc 3,2 5805 1F8C 3400 retlw 0 ;all done for this memory range, return 5806 1F8D 2F83 goto clrloop0 ;have we reached the end yet? 5807 5808 psect inittext 5809 1F8E init_ram: 5810 1F8E 00FE movwf 126 5811 1F8F initloop: 5812 1F8F 0012 moviw fsr0++ 5813 1F90 001E movwi fsr1++ 5814 1F91 3001 movlw 1 5815 1F92 02FE subwf 126,f 5816 1F93 3000 movlw 0 5817 1F94 3BFF subwfb 127,f 5818 1F95 087F movf 127,w 5819 1F96 047E iorwf 126,w 5820 1F97 1903 btfsc 3,2 5821 1F98 3400 retlw 0 5822 1F99 2F8F goto initloop 5823 5824 psect cstackBANK4 5825 0220 __pcstackBANK4: 5826 0220 ParseBlinkieCommand@buffer: 5827 5828 ; 40 bytes @ 0x0 5829 0220 ds 40 5830 0248 _ParseBlinkieCommand$2191: 5831 5832 ; 2 bytes @ 0x28 5833 0248 ds 2 5834 024A ParseBlinkieCommand@x: 5835 5836 ; 1 bytes @ 0x2A 5837 024A ds 1 5838 024B ParseBlinkieCommand@y: 5839 5840 ; 1 bytes @ 0x2B 5841 024B ds 1 5842 024C ParseBlinkieCommand@v: 5843 5844 ; 1 bytes @ 0x2C 5845 024C ds 1 5846 024D ParseBlinkieCommand@i: 5847 5848 ; 1 bytes @ 0x2D 5849 024D ds 1 5850 024E ParseBlinkieCommand@len: 5851 5852 ; 1 bytes @ 0x2E 5853 024E ds 1 5854 024F ParseBlinkieCommand@cLine: 5855 5856 ; 1 bytes @ 0x2F 5857 024F ds 1 5858 0250 APP_DeviceCDCBasicDemoTasks@numBytesRead: 5859 5860 ; 1 bytes @ 0x30 5861 0250 ds 1 5862 0251 APP_DeviceCDCBasicDemoTasks@i: 5863 5864 ; 1 bytes @ 0x31 5865 0251 ds 1 5866 0252 ??_main: 5867 5868 ; 0 bytes @ 0x32 5869 0252 ds 3 5870 0255 main@delay: 5871 5872 ; 2 bytes @ 0x35 5873 0255 ds 2 5874 5875 psect cstackBANK3 5876 01A0 __pcstackBANK3: 5877 01A0 sprintf@idx: 5878 01A0 _add_and_shift$2342: 5879 ; 1 bytes @ 0x0 5880 5881 5882 ; 2 bytes @ 0x0 5883 01A0 ds 1 5884 01A1 sprintf@ap: 5885 5886 ; 1 bytes @ 0x1 5887 01A1 ds 1 5888 01A2 sprintf@prec: 5889 01A2 _add_and_shift$2343: 5890 ; 1 bytes @ 0x2 5891 5892 5893 ; 2 bytes @ 0x2 5894 01A2 ds 1 5895 01A3 sprintf@flag: 5896 5897 ; 1 bytes @ 0x3 5898 01A3 ds 1 5899 01A4 _add_and_shift$2344: 5900 01A4 sprintf@_val: 5901 ; 2 bytes @ 0x4 5902 5903 5904 ; 4 bytes @ 0x4 5905 01A4 ds 2 5906 01A6 _add_and_shift$2345: 5907 5908 ; 2 bytes @ 0x6 5909 01A6 ds 2 5910 01A8 sprintf@c: 5911 01A8 _add_and_shift$2346: 5912 ; 1 bytes @ 0x8 5913 5914 5915 ; 2 bytes @ 0x8 5916 01A8 ds 1 5917 01A9 ?_print_settings: 5918 01A9 print_settings@user_msg_size: 5919 ; 0 bytes @ 0x9 5920 5921 01A9 erase_flash_mem@buffer: 5922 ; 1 bytes @ 0x9 5923 5924 5925 ; 32 bytes @ 0x9 5926 01A9 ds 1 5927 01AA print_settings@user_id: 5928 01AA _add_and_shift$2347: 5929 ; 1 bytes @ 0xA 5930 5931 5932 ; 2 bytes @ 0xA 5933 01AA ds 1 5934 01AB print_settings@plockout: 5935 5936 ; 1 bytes @ 0xB 5937 01AB ds 1 5938 01AC _add_and_shift$2348: 5939 01AC print_settings@buffer: 5940 ; 2 bytes @ 0xC 5941 5942 5943 ; 60 bytes @ 0xC 5944 01AC ds 2 5945 01AE add_and_shift@i: 5946 5947 ; 1 bytes @ 0xE 5948 01AE ds 1 5949 01AF add_and_shift@j: 5950 5951 ; 1 bytes @ 0xF 5952 01AF ds 1 5953 01B0 add_and_shift@in: 5954 5955 ; 1 bytes @ 0x10 5956 01B0 ds 25 5957 01C9 ?_store_settings: 5958 01C9 store_settings@user_msg_size: 5959 ; 0 bytes @ 0x29 5960 5961 5962 ; 1 bytes @ 0x29 5963 01C9 ds 1 5964 01CA store_settings@user_id: 5965 5966 ; 1 bytes @ 0x2A 5967 01CA ds 1 5968 01CB store_settings@plockout: 5969 5970 ; 1 bytes @ 0x2B 5971 01CB ds 1 5972 01CC store_settings@buffer: 5973 5974 ; 32 bytes @ 0x2C 5975 01CC ds 28 5976 01E8 print_settings@demo_mode: 5977 5978 ; 1 bytes @ 0x48 5979 01E8 ds 4 5980 01EC store_settings@demo_mode: 5981 5982 ; 1 bytes @ 0x4C 5983 01EC ds 1 5984 01ED ??_ParseBlinkieCommand: 5985 5986 ; 0 bytes @ 0x4D 5987 01ED ds 3 5988 5989 psect cstackBANK2 5990 0160 __pcstackBANK2: 5991 0160 ??_rand: 5992 0160 ??_dotCode: 5993 ; 0 bytes @ 0x0 5994 5995 0160 ?_sprintf: 5996 ; 0 bytes @ 0x0 5997 5998 0160 handle_push_button@delay_count: 5999 ; 2 bytes @ 0x0 6000 6001 0160 sprintf@sp: 6002 ; 2 bytes @ 0x0 6003 6004 6005 ; 2 bytes @ 0x0 6006 0160 ds 2 6007 0162 _handle_push_button$2353: 6008 0162 sprintf@f: 6009 ; 2 bytes @ 0x2 6010 6011 6012 ; 2 bytes @ 0x2 6013 0162 ds 2 6014 0164 _handle_push_button$2354: 6015 6016 ; 2 bytes @ 0x4 6017 0164 ds 2 6018 0166 dotCode@eof: 6019 0166 _handle_push_button$2355: 6020 ; 1 bytes @ 0x6 6021 6022 6023 ; 2 bytes @ 0x6 6024 0166 ds 1 6025 0167 dotCode@x: 6026 6027 ; 1 bytes @ 0x7 6028 0167 ds 1 6029 0168 dotCode@y: 6030 0168 _handle_push_button$2356: 6031 ; 1 bytes @ 0x8 6032 6033 6034 ; 2 bytes @ 0x8 6035 0168 ds 1 6036 0169 dotCode@char_in: 6037 6038 ; 1 bytes @ 0x9 6039 0169 ds 1 6040 016A dotCode@a: 6041 016A _handle_push_button$2357: 6042 ; 1 bytes @ 0xA 6043 6044 6045 ; 2 bytes @ 0xA 6046 016A ds 1 6047 016B dotCode@j: 6048 6049 ; 1 bytes @ 0xB 6050 016B ds 1 6051 016C dotCode@i: 6052 016C handle_push_button@temp: 6053 ; 1 bytes @ 0xC 6054 6055 6056 ; 1 bytes @ 0xC 6057 016C ds 1 6058 016D handle_push_button@i: 6059 016D _update_pattern$2322: 6060 ; 1 bytes @ 0xD 6061 6062 6063 ; 2 bytes @ 0xD 6064 016D ds 1 6065 016E ?_erase_flash_mem: 6066 016E erase_flash_mem@address: 6067 ; 0 bytes @ 0xE 6068 6069 6070 ; 2 bytes @ 0xE 6071 016E ds 1 6072 016F update_pattern@i: 6073 6074 ; 1 bytes @ 0xF 6075 016F ds 1 6076 6077 psect cstackBANK1 6078 00E0 __pcstackBANK1: 6079 00E0 ??_USBDeviceInit: 6080 00E0 ??_USBDeviceAttach: 6081 ; 0 bytes @ 0x0 6082 6083 00E0 ??_putrsUSBUSART: 6084 ; 0 bytes @ 0x0 6085 6086 00E0 ?_srand: 6087 ; 0 bytes @ 0x0 6088 6089 00E0 ??_add_and_shift: 6090 ; 0 bytes @ 0x0 6091 6092 00E0 ??_isdigit: 6093 ; 0 bytes @ 0x0 6094 6095 00E0 ?_putUSBUSART: 6096 ; 0 bytes @ 0x0 6097 6098 00E0 ?_write_flash_mem: 6099 ; 0 bytes @ 0x0 6100 6101 00E0 ??_topOfPattern: 6102 ; 0 bytes @ 0x0 6103 6104 00E0 ??_setTopOfPattern: 6105 ; 0 bytes @ 0x0 6106 6107 00E0 ?_packedRead: 6108 ; 0 bytes @ 0x0 6109 6110 00E0 ?_up_down: 6111 ; 1 bytes @ 0x0 6112 6113 00E0 ?___bmul: 6114 ; 1 bytes @ 0x0 6115 6116 00E0 ?___lbmod: 6117 ; 1 bytes @ 0x0 6118 6119 00E0 ?_memcpy: 6120 ; 1 bytes @ 0x0 6121 6122 00E0 ?_USBTransferOnePacket: 6123 ; 2 bytes @ 0x0 6124 6125 00E0 ?_strlen: 6126 ; 2 bytes @ 0x0 6127 6128 00E0 ?___wmul: 6129 ; 2 bytes @ 0x0 6130 6131 00E0 ?___awmod: 6132 ; 2 bytes @ 0x0 6133 6134 00E0 ?___lwdiv: 6135 ; 2 bytes @ 0x0 6136 6137 00E0 ?___lmul: 6138 ; 2 bytes @ 0x0 6139 6140 00E0 putrsUSBUSART@pData: 6141 ; 4 bytes @ 0x0 6142 6143 00E0 USBTransferOnePacket@dir: 6144 ; 1 bytes @ 0x0 6145 6146 00E0 up_down@data: 6147 ; 1 bytes @ 0x0 6148 6149 00E0 ___bmul@multiplicand: 6150 ; 1 bytes @ 0x0 6151 6152 00E0 _isdigit$2559: 6153 ; 1 bytes @ 0x0 6154 6155 00E0 ___lbmod@divisor: 6156 ; 1 bytes @ 0x0 6157 6158 00E0 putUSBUSART@data: 6159 ; 1 bytes @ 0x0 6160 6161 00E0 write_flash_mem@address: 6162 ; 2 bytes @ 0x0 6163 6164 00E0 packedRead@address: 6165 ; 2 bytes @ 0x0 6166 6167 00E0 ___wmul@multiplier: 6168 ; 2 bytes @ 0x0 6169 6170 00E0 ___awmod@divisor: 6171 ; 2 bytes @ 0x0 6172 6173 00E0 ___lwdiv@divisor: 6174 ; 2 bytes @ 0x0 6175 6176 00E0 memcpy@d1: 6177 ; 2 bytes @ 0x0 6178 6179 00E0 srand@x: 6180 ; 2 bytes @ 0x0 6181 6182 00E0 strlen@s: 6183 ; 2 bytes @ 0x0 6184 6185 00E0 ___lmul@multiplier: 6186 ; 2 bytes @ 0x0 6187 6188 6189 ; 4 bytes @ 0x0 6190 00E0 ds 1 6191 00E1 ??_up_down: 6192 00E1 ??___bmul: 6193 ; 0 bytes @ 0x1 6194 6195 00E1 ??___lbmod: 6196 ; 0 bytes @ 0x1 6197 6198 00E1 putrsUSBUSART@len: 6199 ; 0 bytes @ 0x1 6200 6201 00E1 ___bmul@product: 6202 ; 1 bytes @ 0x1 6203 6204 00E1 isdigit@c: 6205 ; 1 bytes @ 0x1 6206 6207 00E1 USBTransferOnePacket@data: 6208 ; 1 bytes @ 0x1 6209 6210 6211 ; 2 bytes @ 0x1 6212 00E1 ds 1 6213 00E2 ??_strlen: 6214 00E2 ??_srand: 6215 ; 0 bytes @ 0x2 6216 6217 00E2 putUSBUSART@length: 6218 ; 0 bytes @ 0x2 6219 6220 00E2 putrsUSBUSART@data: 6221 ; 1 bytes @ 0x2 6222 6223 00E2 packedRead@hiLow: 6224 ; 1 bytes @ 0x2 6225 6226 00E2 ___bmul@multiplier: 6227 ; 1 bytes @ 0x2 6228 6229 00E2 ___lbmod@dividend: 6230 ; 1 bytes @ 0x2 6231 6232 00E2 USBDeviceInit@p: 6233 ; 1 bytes @ 0x2 6234 6235 00E2 write_flash_mem@buffer: 6236 ; 2 bytes @ 0x2 6237 6238 00E2 ___wmul@multiplicand: 6239 ; 2 bytes @ 0x2 6240 6241 00E2 ___awmod@dividend: 6242 ; 2 bytes @ 0x2 6243 6244 00E2 ___lwdiv@dividend: 6245 ; 2 bytes @ 0x2 6246 6247 00E2 memcpy@s1: 6248 ; 2 bytes @ 0x2 6249 6250 00E2 strlen@cp: 6251 ; 2 bytes @ 0x2 6252 6253 6254 ; 2 bytes @ 0x2 6255 00E2 ds 1 6256 00E3 ??_packedRead: 6257 00E3 ??_next_pattern: 6258 ; 0 bytes @ 0x3 6259 6260 00E3 ??_back_pattern: 6261 ; 0 bytes @ 0x3 6262 6263 00E3 ??_putUSBUSART: 6264 ; 0 bytes @ 0x3 6265 6266 00E3 ??_pattern_done: 6267 ; 0 bytes @ 0x3 6268 6269 00E3 USBTransferOnePacket@len: 6270 ; 0 bytes @ 0x3 6271 6272 00E3 ___lbmod@counter: 6273 ; 1 bytes @ 0x3 6274 6275 00E3 packedRead@h: 6276 ; 1 bytes @ 0x3 6277 6278 00E3 pattern_done@t: 6279 ; 2 bytes @ 0x3 6280 6281 00E3 _next_pattern$2359: 6282 ; 2 bytes @ 0x3 6283 6284 00E3 _back_pattern$2361: 6285 ; 2 bytes @ 0x3 6286 6287 6288 ; 2 bytes @ 0x3 6289 00E3 ds 1 6290 00E4 ??_USBTransferOnePacket: 6291 00E4 ??_write_flash_mem: 6292 ; 0 bytes @ 0x4 6293 6294 00E4 ??___wmul: 6295 ; 0 bytes @ 0x4 6296 6297 00E4 ??___awmod: 6298 ; 0 bytes @ 0x4 6299 6300 00E4 ??___lwdiv: 6301 ; 0 bytes @ 0x4 6302 6303 00E4 USBDeviceInit@i_1548: 6304 ; 0 bytes @ 0x4 6305 6306 00E4 ___awmod@counter: 6307 ; 1 bytes @ 0x4 6308 6309 00E4 ___lbmod@rem: 6310 ; 1 bytes @ 0x4 6311 6312 00E4 ___wmul@product: 6313 ; 1 bytes @ 0x4 6314 6315 00E4 ___lwdiv@quotient: 6316 ; 2 bytes @ 0x4 6317 6318 00E4 memcpy@n: 6319 ; 2 bytes @ 0x4 6320 6321 00E4 ___lmul@multiplicand: 6322 ; 2 bytes @ 0x4 6323 6324 6325 ; 4 bytes @ 0x4 6326 00E4 ds 1 6327 00E5 ??_handle_push_button: 6328 00E5 ?_debugOut: 6329 ; 0 bytes @ 0x5 6330 6331 00E5 ??_set_pattern: 6332 ; 0 bytes @ 0x5 6333 6334 00E5 ?_debugPackedOut: 6335 ; 0 bytes @ 0x5 6336 6337 00E5 ??_get_next_pattern_byte: 6338 ; 0 bytes @ 0x5 6339 6340 00E5 USBDeviceInit@i: 6341 ; 0 bytes @ 0x5 6342 6343 00E5 pattern_done@pattern_id: 6344 ; 1 bytes @ 0x5 6345 6346 00E5 set_pattern@id: 6347 ; 1 bytes @ 0x5 6348 6349 00E5 up_down@change: 6350 ; 1 bytes @ 0x5 6351 6352 00E5 ___awmod@sign: 6353 ; 1 bytes @ 0x5 6354 6355 00E5 debugOut@debugString: 6356 ; 1 bytes @ 0x5 6357 6358 00E5 debugPackedOut@address: 6359 ; 2 bytes @ 0x5 6360 6361 6362 ; 2 bytes @ 0x5 6363 00E5 ds 1 6364 00E6 ??_doWork: 6365 00E6 ??_memcpy: 6366 ; 0 bytes @ 0x6 6367 6368 00E6 ?_atoi: 6369 ; 0 bytes @ 0x6 6370 6371 00E6 write_flash_mem@i: 6372 ; 2 bytes @ 0x6 6373 6374 00E6 ___lwdiv@counter: 6375 ; 1 bytes @ 0x6 6376 6377 00E6 _up_down$2367: 6378 ; 1 bytes @ 0x6 6379 6380 6381 ; 2 bytes @ 0x6 6382 00E6 ds 1 6383 00E7 ??_debugOut: 6384 00E7 ?___lwmod: 6385 ; 0 bytes @ 0x7 6386 6387 00E7 debugPackedOut@size: 6388 ; 2 bytes @ 0x7 6389 6390 00E7 _get_next_pattern_byte$2231: 6391 ; 1 bytes @ 0x7 6392 6393 00E7 ___lwmod@divisor: 6394 ; 2 bytes @ 0x7 6395 6396 00E7 memcpy@d: 6397 ; 2 bytes @ 0x7 6398 6399 6400 ; 2 bytes @ 0x7 6401 00E7 ds 1 6402 00E8 ??_atoi: 6403 00E8 ??_debugPackedOut: 6404 ; 0 bytes @ 0x8 6405 6406 00E8 ??___lmul: 6407 ; 0 bytes @ 0x8 6408 6409 00E8 USBTransferOnePacket@ep: 6410 ; 0 bytes @ 0x8 6411 6412 00E8 _up_down$2368: 6413 ; 1 bytes @ 0x8 6414 6415 00E8 ___lmul@product: 6416 ; 2 bytes @ 0x8 6417 6418 6419 ; 4 bytes @ 0x8 6420 00E8 ds 1 6421 00E9 get_next_pattern_byte@data: 6422 00E9 USBTransferOnePacket@handle: 6423 ; 1 bytes @ 0x9 6424 6425 00E9 ___lwmod@dividend: 6426 ; 2 bytes @ 0x9 6427 6428 00E9 memcpy@s: 6429 ; 2 bytes @ 0x9 6430 6431 6432 ; 2 bytes @ 0x9 6433 00E9 ds 1 6434 00EA get_next_pattern_byte@pattern_id: 6435 00EA _debugPackedOut$2390: 6436 ; 1 bytes @ 0xA 6437 6438 6439 ; 2 bytes @ 0xA 6440 00EA ds 1 6441 00EB ??_CDCTxService: 6442 00EB ??___lwmod: 6443 ; 0 bytes @ 0xB 6444 6445 00EB ?_getsUSBUSART: 6446 ; 0 bytes @ 0xB 6447 6448 00EB getsUSBUSART@len: 6449 ; 1 bytes @ 0xB 6450 6451 00EB CDCTxService@i: 6452 ; 1 bytes @ 0xB 6453 6454 00EB ___lwmod@counter: 6455 ; 1 bytes @ 0xB 6456 6457 00EB get_next_pattern_byte@address: 6458 ; 1 bytes @ 0xB 6459 6460 00EB _doWork$2379: 6461 ; 2 bytes @ 0xB 6462 6463 6464 ; 2 bytes @ 0xB 6465 00EB ds 1 6466 00EC ??_getsUSBUSART: 6467 00EC ??_sprintf: 6468 ; 0 bytes @ 0xC 6469 6470 00EC ?_rand: 6471 ; 0 bytes @ 0xC 6472 6473 00EC CDCTxService@byte_to_send: 6474 ; 2 bytes @ 0xC 6475 6476 00EC debugOut@size: 6477 ; 1 bytes @ 0xC 6478 6479 00EC debugPackedOut@i: 6480 ; 1 bytes @ 0xC 6481 6482 00EC atoi@sign: 6483 ; 1 bytes @ 0xC 6484 6485 6486 ; 1 bytes @ 0xC 6487 00EC ds 1 6488 00ED ??_doMenu: 6489 00ED ??_processChars: 6490 ; 0 bytes @ 0xD 6491 6492 00ED getsUSBUSART@buffer: 6493 ; 0 bytes @ 0xD 6494 6495 00ED debugOut@i: 6496 ; 1 bytes @ 0xD 6497 6498 00ED _processChars$2329: 6499 ; 1 bytes @ 0xD 6500 6501 00ED _doWork$2381: 6502 ; 2 bytes @ 0xD 6503 6504 00ED atoi@a: 6505 ; 2 bytes @ 0xD 6506 6507 6508 ; 2 bytes @ 0xD 6509 00ED ds 2 6510 00EF ??_update_pattern: 6511 00EF doWork@len: 6512 ; 0 bytes @ 0xF 6513 6514 00EF atoi@s: 6515 ; 1 bytes @ 0xF 6516 6517 6518 ; 1 bytes @ 0xF 6519 00EF ds 1 6520 00F0 ??_APP_DeviceCDCBasicDemoTasks: 6521 00F0 ??_erase_flash_mem: 6522 ; 0 bytes @ 0x10 6523 6524 00F0 ??_store_settings: 6525 ; 0 bytes @ 0x10 6526 6527 00F0 ??_print_settings: 6528 ; 0 bytes @ 0x10 6529 6530 6531 psect cstackCOMMON 6532 0070 __pcstackCOMMON: 6533 ; 0 bytes @ 0x10 6534 6535 0070 ?_USBDeviceInit: 6536 0070 ?_USBDeviceAttach: 6537 ; 0 bytes @ 0x0 6538 6539 0070 ?_APP_DeviceCDCBasicDemoTasks: 6540 ; 0 bytes @ 0x0 6541 6542 0070 ?_doWork: 6543 ; 0 bytes @ 0x0 6544 6545 0070 ?_doMenu: 6546 ; 0 bytes @ 0x0 6547 6548 0070 ?_handle_push_button: 6549 ; 0 bytes @ 0x0 6550 6551 0070 ?_update_pattern: 6552 ; 0 bytes @ 0x0 6553 6554 0070 ?_USBDeviceTasks: 6555 ; 0 bytes @ 0x0 6556 6557 0070 ?_putrsUSBUSART: 6558 ; 0 bytes @ 0x0 6559 6560 0070 ?_ParseBlinkieCommand: 6561 ; 0 bytes @ 0x0 6562 6563 0070 ?_CDCTxService: 6564 ; 0 bytes @ 0x0 6565 6566 0070 ?_USBWakeFromSuspend: 6567 ; 0 bytes @ 0x0 6568 6569 0070 ?_USBSuspend: 6570 ; 0 bytes @ 0x0 6571 6572 0070 ?_USBIncrement1msInternalTimers: 6573 ; 0 bytes @ 0x0 6574 6575 0070 ??_USBIncrement1msInternalTimers: 6576 ; 0 bytes @ 0x0 6577 6578 0070 ?_USBCtrlEPAllowStatusStage: 6579 ; 0 bytes @ 0x0 6580 6581 0070 ??_USBCtrlEPAllowStatusStage: 6582 ; 0 bytes @ 0x0 6583 6584 0070 ?_USBStallHandler: 6585 ; 0 bytes @ 0x0 6586 6587 0070 ??_USBStallHandler: 6588 ; 0 bytes @ 0x0 6589 6590 0070 ?_USBCtrlEPService: 6591 ; 0 bytes @ 0x0 6592 6593 0070 ?_USBConfigureEndpoint: 6594 ; 0 bytes @ 0x0 6595 6596 0070 ?_USBCtrlTrfTxService: 6597 ; 0 bytes @ 0x0 6598 6599 0070 ??_USBCtrlTrfTxService: 6600 ; 0 bytes @ 0x0 6601 6602 0070 ?_USBCtrlTrfSetupHandler: 6603 ; 0 bytes @ 0x0 6604 6605 0070 ?_USBCtrlTrfOutHandler: 6606 ; 0 bytes @ 0x0 6607 6608 0070 ?_USBCtrlTrfInHandler: 6609 ; 0 bytes @ 0x0 6610 6611 0070 ?_USBCheckStdRequest: 6612 ; 0 bytes @ 0x0 6613 6614 0070 ?_USBStdFeatureReqHandler: 6615 ; 0 bytes @ 0x0 6616 6617 0070 ?_next_pattern: 6618 ; 0 bytes @ 0x0 6619 6620 0070 ?_back_pattern: 6621 ; 0 bytes @ 0x0 6622 6623 0070 ?_set_pattern: 6624 ; 0 bytes @ 0x0 6625 6626 0070 ?_processChars: 6627 ; 0 bytes @ 0x0 6628 6629 0070 ?_add_and_shift: 6630 ; 0 bytes @ 0x0 6631 6632 0070 ?_dotCode: 6633 ; 0 bytes @ 0x0 6634 6635 0070 ?_isdigit: 6636 ; 0 bytes @ 0x0 6637 6638 0070 ?_main: 6639 ; 1 bit 6640 6641 0070 ?_SYS_InterruptHigh: 6642 ; 0 bytes @ 0x0 6643 6644 0070 ?_APP_DeviceCDCBasicDemoInitialize: 6645 ; 0 bytes @ 0x0 6646 6647 0070 ??_APP_DeviceCDCBasicDemoInitialize: 6648 ; 0 bytes @ 0x0 6649 6650 0070 ?_USBCheckCDCRequest: 6651 ; 0 bytes @ 0x0 6652 6653 0070 ??_USBCheckCDCRequest: 6654 ; 0 bytes @ 0x0 6655 6656 0070 ?_CDCInitEP: 6657 ; 0 bytes @ 0x0 6658 6659 0070 ?_USBCtrlEPAllowDataStage: 6660 ; 0 bytes @ 0x0 6661 6662 0070 ?_USBCtrlEPServiceComplete: 6663 ; 0 bytes @ 0x0 6664 6665 0070 ?_USBCtrlTrfRxService: 6666 ; 0 bytes @ 0x0 6667 6668 0070 ?_USBStdSetCfgHandler: 6669 ; 0 bytes @ 0x0 6670 6671 0070 ?_USBStdGetDscHandler: 6672 ; 0 bytes @ 0x0 6673 6674 0070 ??_USBStdGetDscHandler: 6675 ; 0 bytes @ 0x0 6676 6677 0070 ?_USBStdGetStatusHandler: 6678 ; 0 bytes @ 0x0 6679 6680 0070 ??_USBStdGetStatusHandler: 6681 ; 0 bytes @ 0x0 6682 6683 0070 ?_setTopOfPattern: 6684 ; 0 bytes @ 0x0 6685 6686 0070 ?i1_USBDeviceInit: 6687 ; 0 bytes @ 0x0 6688 6689 0070 ??i1_USBDeviceInit: 6690 ; 0 bytes @ 0x0 6691 6692 0070 ?_topOfPattern: 6693 ; 0 bytes @ 0x0 6694 6695 0070 ?_get_next_pattern_byte: 6696 ; 1 bytes @ 0x0 6697 6698 0070 ?_pattern_done: 6699 ; 1 bytes @ 0x0 6700 6701 0070 ?i1_memcpy: 6702 ; 1 bytes @ 0x0 6703 6704 0070 ?_memset: 6705 ; 1 bytes @ 0x0 6706 6707 0070 ?i1_USBTransferOnePacket: 6708 ; 2 bytes @ 0x0 6709 6710 0070 USBConfigureEndpoint@direction: 6711 ; 2 bytes @ 0x0 6712 6713 0070 i1USBTransferOnePacket@dir: 6714 ; 1 bytes @ 0x0 6715 6716 0070 USBStdGetStatusHandler@p: 6717 ; 1 bytes @ 0x0 6718 6719 0070 memset@p1: 6720 ; 2 bytes @ 0x0 6721 6722 0070 i1memcpy@d1: 6723 ; 2 bytes @ 0x0 6724 6725 6726 ; 2 bytes @ 0x0 6727 0070 ds 1 6728 0071 ??_USBConfigureEndpoint: 6729 0071 i1USBTransferOnePacket@data: 6730 ; 0 bytes @ 0x1 6731 6732 6733 ; 2 bytes @ 0x1 6734 0071 ds 1 6735 0072 ??_USBCtrlTrfRxService: 6736 0072 USBConfigureEndpoint@EPNum: 6737 ; 0 bytes @ 0x2 6738 6739 0072 USBCtrlTrfTxService@byteToSend: 6740 ; 1 bytes @ 0x2 6741 6742 0072 memset@c: 6743 ; 1 bytes @ 0x2 6744 6745 0072 i1USBDeviceInit@p: 6746 ; 2 bytes @ 0x2 6747 6748 0072 i1memcpy@s1: 6749 ; 2 bytes @ 0x2 6750 6751 6752 ; 2 bytes @ 0x2 6753 0072 ds 1 6754 0073 ??_USBCtrlTrfInHandler: 6755 0073 ??_USBCtrlEPAllowDataStage: 6756 ; 0 bytes @ 0x3 6757 6758 0073 USBConfigureEndpoint@handle: 6759 ; 0 bytes @ 0x3 6760 6761 0073 i1USBTransferOnePacket@len: 6762 ; 1 bytes @ 0x3 6763 6764 6765 ; 1 bytes @ 0x3 6766 0073 ds 1 6767 0074 ?_USBEnableEndpoint: 6768 0074 ??i1_USBTransferOnePacket: 6769 ; 0 bytes @ 0x4 6770 6771 0074 USBEnableEndpoint@options: 6772 ; 0 bytes @ 0x4 6773 6774 0074 USBCtrlTrfRxService@i: 6775 ; 1 bytes @ 0x4 6776 6777 0074 i1USBDeviceInit@i_1548: 6778 ; 1 bytes @ 0x4 6779 6780 0074 memset@n: 6781 ; 1 bytes @ 0x4 6782 6783 0074 i1memcpy@n: 6784 ; 2 bytes @ 0x4 6785 6786 6787 ; 2 bytes @ 0x4 6788 0074 ds 1 6789 0075 ??_USBEnableEndpoint: 6790 0075 ??_USBCtrlEPServiceComplete: 6791 ; 0 bytes @ 0x5 6792 6793 0075 USBCtrlTrfRxService@byteToRead: 6794 ; 0 bytes @ 0x5 6795 6796 0075 USBCtrlTrfInHandler@lastDTS: 6797 ; 1 bytes @ 0x5 6798 6799 0075 i1USBDeviceInit@i: 6800 ; 1 bytes @ 0x5 6801 6802 6803 ; 1 bytes @ 0x5 6804 0075 ds 1 6805 0076 ??_memset: 6806 0076 ??_USBCtrlTrfOutHandler: 6807 ; 0 bytes @ 0x6 6808 6809 0076 ??i1_memcpy: 6810 ; 0 bytes @ 0x6 6811 6812 0076 memset@p: 6813 ; 0 bytes @ 0x6 6814 6815 6816 ; 2 bytes @ 0x6 6817 0076 ds 1 6818 0077 USBEnableEndpoint@p: 6819 0077 i1memcpy@d: 6820 ; 2 bytes @ 0x7 6821 6822 6823 ; 2 bytes @ 0x7 6824 0077 ds 1 6825 0078 i1USBTransferOnePacket@ep: 6826 6827 ; 1 bytes @ 0x8 6828 0078 ds 1 6829 0079 USBEnableEndpoint@ep: 6830 0079 i1USBTransferOnePacket@handle: 6831 ; 1 bytes @ 0x9 6832 6833 0079 i1memcpy@s: 6834 ; 2 bytes @ 0x9 6835 6836 6837 ; 2 bytes @ 0x9 6838 0079 ds 2 6839 007B ??_USBWakeFromSuspend: 6840 007B ??_USBSuspend: 6841 ; 0 bytes @ 0xB 6842 6843 007B ??_USER_USB_CALLBACK_EVENT_HANDLER: 6844 ; 0 bytes @ 0xB 6845 6846 007B ??_USBStdFeatureReqHandler: 6847 ; 0 bytes @ 0xB 6848 6849 007B ??_CDCInitEP: 6850 ; 0 bytes @ 0xB 6851 6852 007B ??_USBStdSetCfgHandler: 6853 ; 0 bytes @ 0xB 6854 6855 6856 ; 0 bytes @ 0xB 6857 007B ds 2 6858 007D ??_USBCtrlEPService: 6859 007D ??_USBCtrlTrfSetupHandler: 6860 ; 0 bytes @ 0xD 6861 6862 007D ??_USBCheckStdRequest: 6863 ; 0 bytes @ 0xD 6864 6865 6866 ; 0 bytes @ 0xD 6867 007D ds 1 6868 007E ??_SYS_InterruptHigh: 6869 6870 psect cstackBANK0h 6871 0060 __pcstackBANK0h: 6872 ; 0 bytes @ 0xE 6873 6874 0060 ?_USER_USB_CALLBACK_EVENT_HANDLER: 6875 0060 USER_USB_CALLBACK_EVENT_HANDLER@event: 6876 ; 1 bytes @ 0x0 6877 6878 6879 ; 2 bytes @ 0x0 6880 0060 ds 2 6881 0062 USER_USB_CALLBACK_EVENT_HANDLER@pdata: 6882 6883 ; 2 bytes @ 0x2 6884 0062 ds 2 6885 0064 USER_USB_CALLBACK_EVENT_HANDLER@size: 6886 6887 ; 2 bytes @ 0x4 6888 0064 ds 2 6889 0066 USBStdSetCfgHandler@p: 6890 0066 USBStdFeatureReqHandler@pUEP: 6891 ; 2 bytes @ 0x6 6892 6893 6894 ; 2 bytes @ 0x6 6895 0066 ds 2 6896 0068 USBStdSetCfgHandler@i_1822: 6897 0068 USBStdFeatureReqHandler@current_ep_data: 6898 ; 1 bytes @ 0x8 6899 6900 6901 ; 1 bytes @ 0x8 6902 0068 ds 1 6903 0069 USBStdSetCfgHandler@i: 6904 0069 USBStdFeatureReqHandler@p: 6905 ; 1 bytes @ 0x9 6906 6907 6908 ; 2 bytes @ 0x9 6909 0069 ds 2 6910 006B ??_USBDeviceTasks: 6911 6912 ; 0 bytes @ 0xB 6913 006B ds 1 6914 006C USBDeviceTasks@i: 6915 6916 ; 1 bytes @ 0xC 6917 006C ds 1 6918 006D SYS_InterruptHigh@Ax_dir: 6919 6920 ; 1 bytes @ 0xD 6921 006D ds 1 6922 006E SYS_InterruptHigh@Cx_dir: 6923 6924 ; 1 bytes @ 0xE 6925 006E ds 1 6926 6927 psect text3 6928 0000 __ptext3: 6929 ;; *************** function _topOfPattern ***************** 6930 ;; Defined at: 6931 ;; line 43 in file "../pattern_access.c" 6932 ;; Parameters: Size Location Type 6933 ;; None 6934 ;; Auto vars: Size Location Type 6935 ;; None 6936 ;; Return value: Size Location Type 6937 ;; 1 wreg unsigned char 6938 ;; Registers used: 6939 ;; wreg 6940 ;; Tracked objects: 6941 ;; On entry : 1F/4 6942 ;; On exit : 1F/5 6943 ;; Unchanged: 0/0 6944 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 6945 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6946 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6947 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6948 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6949 ;;Total ram usage: 0 bytes 6950 ;; Hardware stack levels used: 1 6951 ;; Hardware stack levels required when called: 10 6952 ;; This function calls: 6953 ;; Nothing 6954 ;; This function is called by: 6955 ;; _update_pattern 6956 ;; This function uses a non-reentrant model 6957 ;; 6958 6959 0000 _topOfPattern: 6960 ;psect for function _topOfPattern 6961 6962 0000 __end_of_topOfPattern: 6963 ;pattern_access.c: 44: return(p_count == 0); 6964 6965 ;incstack = 0 6966 ; Regs used in _topOfPattern: [wreg] 6967 6968 6969 psect text7 6970 0000 __ptext7: 6971 ;; *************** function _processChars ***************** 6972 ;; Defined at: 6973 ;; line 121 in file "../pattern_engine.c" 6974 ;; Parameters: Size Location Type 6975 ;; None 6976 ;; Auto vars: Size Location Type 6977 ;; None 6978 ;; Return value: Size Location Type 6979 ;; None void 6980 ;; Registers used: 6981 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 6982 ;; Tracked objects: 6983 ;; On entry : 1F/5 6984 ;; On exit : 1F/5 6985 ;; Unchanged: 0/0 6986 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 6987 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6988 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 6989 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 6990 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 6991 ;;Total ram usage: 2 bytes 6992 ;; Hardware stack levels used: 1 6993 ;; Hardware stack levels required when called: 12 6994 ;; This function calls: 6995 ;; ___wmul 6996 ;; _add_and_shift 6997 ;; _get_next_pattern_byte 6998 ;; _packedRead 6999 ;; This function is called by: 7000 ;; _update_pattern 7001 ;; This function uses a non-reentrant model 7002 ;; 7003 7004 0000 _processChars: 7005 ;psect for function _processChars 7006 7007 0000 __end_of_processChars: 7008 ;pattern_engine.c: 138: step = (step>=charLines)? 0 : step+1; 7009 7010 ;pattern_engine.c: 137: add_and_shift( packedRead(pCharData + (step>>1), ((step % 2)==0) + ) ); 7011 7012 ;pattern_engine.c: 136: } else { 7013 7014 ;pattern_engine.c: 135: charLines = packedRead(pCharData, 1); 7015 7016 ;pattern_engine.c: 134: pCharData = ((uint16_t) &chardata)+(char_in - 0x20)*3; 7017 7018 ;pattern_engine.c: 133: step = 1; 7019 7020 ;pattern_engine.c: 131: } 7021 ;pattern_engine.c: 132: add_and_shift( 0x00); 7022 7023 ;pattern_engine.c: 130: char_in = get_next_pattern_byte(p_table); 7024 7025 ;pattern_engine.c: 129: while (char_in < 20) { 7026 7027 ;pattern_engine.c: 128: char_in = get_next_pattern_byte(p_table); 7028 7029 ;pattern_engine.c: 122: static uint8_t step = 0; 7030 ;pattern_engine.c: 123: static uint8_t char_in; 7031 ;pattern_engine.c: 124: static uint16_t pCharData; 7032 ;pattern_engine.c: 125: static uint8_t charLines; 7033 ;pattern_engine.c: 127: if (step==0) { 7034 7035 ;incstack = 0 7036 ; Regs used in _processChars: [wreg-fsr1h+status,2+status,0+pclath+cstack] 7037 7038 7039 psect text9 7040 1009 __ptext9: 7041 ;; *************** function _pattern_done ***************** 7042 ;; Defined at: 7043 ;; line 69 in file "../pattern_access.c" 7044 ;; Parameters: Size Location Type 7045 ;; pattern_id 1 wreg unsigned char 7046 ;; Auto vars: Size Location Type 7047 ;; pattern_id 1 5[BANK1 ] unsigned char 7048 ;; t 2 3[BANK1 ] unsigned int 7049 ;; Return value: Size Location Type 7050 ;; 1 wreg unsigned char 7051 ;; Registers used: 7052 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 7053 ;; Tracked objects: 7054 ;; On entry : 1F/4 7055 ;; On exit : 1F/5 7056 ;; Unchanged: 0/0 7057 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7058 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7059 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 7060 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7061 ;; Totals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 7062 ;;Total ram usage: 3 bytes 7063 ;; Hardware stack levels used: 1 7064 ;; Hardware stack levels required when called: 11 7065 ;; This function calls: 7066 ;; ___bmul 7067 ;; _setTopOfPattern 7068 ;; This function is called by: 7069 ;; _update_pattern 7070 ;; This function uses a non-reentrant model 7071 ;; 7072 7073 7074 ;psect for function _pattern_done 7075 1009 _pattern_done: 7076 7077 ;incstack = 0 7078 ; Regs used in _pattern_done: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 7079 ;pattern_done@pattern_id stored from wreg 7080 1009 0021 movlb 1 ; select bank1 7081 100A 00E5 movwf pattern_done@pattern_id^(0+128) 7082 7083 ;pattern_access.c: 71: uint16_t t; 7084 ;pattern_access.c: 73: if ((pattern_id!=0)||(user_msg_size<4)) { 7085 100B 08E5 movf pattern_done@pattern_id^(0+128),f 7086 100C 1D03 skipz 7087 100D 2813 goto l6161 7088 100E 3004 movlw 4 7089 100F 0024 movlb 4 ; select bank4 7090 1010 026F subwf _user_msg_size^(0+512),w 7091 1011 1803 skipnc 7092 1012 2823 goto l6163 7093 1013 l6161: 7094 7095 ;pattern_access.c: 74: t = patterns[pattern_id].length; 7096 1013 3005 movlw 5 7097 1014 0021 movlb 1 ; select bank1 7098 1015 00E0 movwf ___bmul@multiplicand^(0+128) 7099 1016 0865 movf pattern_done@pattern_id^(0+128),w 7100 1017 318F 2703 3190 fcall ___bmul 7101 101A 3E22 addlw (_patterns+2)& (0+255) 7102 101B 0086 movwf 6 7103 101C 3004 movlw 4 ; select bank8/9 7104 101D 0087 movwf 7 7105 101E 3F40 moviw [0]fsr1 7106 101F 00E3 movwf pattern_done@t^(0+128) 7107 1020 3F41 moviw [1]fsr1 7108 1021 00E4 movwf (pattern_done@t+1)^(0+128) 7109 7110 ;pattern_access.c: 75: } else { 7111 1022 282B goto l6167 7112 1023 l6163: 7113 7114 ;pattern_access.c: 77: t = user_msg_size-1; 7115 1023 086F movf _user_msg_size^(0+512),w 7116 1024 0021 movlb 1 ; select bank1 7117 1025 00E3 movwf pattern_done@t^(0+128) 7118 1026 30FF movlw -1 7119 1027 01E4 clrf (pattern_done@t+1)^(0+128) 7120 1028 07E3 addwf pattern_done@t^(0+128),f 7121 1029 1C03 skipc 7122 102A 03E4 decf (pattern_done@t+1)^(0+128),f 7123 102B l6167: 7124 7125 ;pattern_access.c: 78: } 7126 ;pattern_access.c: 80: if (p_count >= t) { 7127 102B 0864 movf (pattern_done@t+1)^(0+128),w 7128 102C 0025 movlb 5 ; select bank5 7129 102D 023C subwf (_p_count+1)^(0+640),w 7130 102E 1D03 skipz 7131 102F 2834 goto u5345 7132 1030 0021 movlb 1 ; select bank1 7133 1031 0863 movf pattern_done@t^(0+128),w 7134 1032 0025 movlb 5 ; select bank5 7135 1033 023B subwf _p_count^(0+640),w 7136 1034 u5345: 7137 1034 1C03 skipc 7138 1035 3400 retlw 0 7139 7140 ;psect for function _setTopOfPattern 7141 7142 ;pattern_access.c: 81: setTopOfPattern(); 7143 1036 i4L_setTopOfPattern: 7144 1036 i4Ll5465: 7145 7146 ;pattern_access.c: 48: p_count = 0; 7147 1036 0025 movlb 5 ; select bank5 7148 1037 01BB clrf _p_count^(0+640) 7149 1038 01BC clrf (_p_count+1)^(0+640) 7150 1039 i4Ll969: 7151 7152 ;pattern_access.c: 82: return(1); 7153 1039 3401 retlw 1 7154 103A __end_of_pattern_done: 7155 ;pattern_access.c: 83: } 7156 ;pattern_access.c: 84: return(0); 7157 7158 7159 psect text10 7160 0000 __ptext10: 7161 ;; *************** function _dotCode ***************** 7162 ;; Defined at: 7163 ;; line 142 in file "../pattern_engine.c" 7164 ;; Parameters: Size Location Type 7165 ;; None 7166 ;; Auto vars: Size Location Type 7167 ;; i 1 12[BANK2 ] unsigned char 7168 ;; j 1 11[BANK2 ] unsigned char 7169 ;; a 1 10[BANK2 ] unsigned char 7170 ;; char_in 1 9[BANK2 ] unsigned char 7171 ;; y 1 8[BANK2 ] unsigned char 7172 ;; x 1 7[BANK2 ] unsigned char 7173 ;; eof 1 6[BANK2 ] unsigned char 7174 ;; Return value: Size Location Type 7175 ;; None void 7176 ;; Registers used: 7177 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 7178 ;; Tracked objects: 7179 ;; On entry : 1E/5 7180 ;; On exit : 1F/2 7181 ;; Unchanged: 0/0 7182 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7183 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7184 ;; Locals: 0 0 0 7 0 0 0 0 0 0 0 0 +0 0 7185 ;; Temps: 0 0 0 6 0 0 0 0 0 0 0 0 +0 0 7186 ;; Totals: 0 0 0 13 0 0 0 0 0 0 0 0 +0 0 7187 ;;Total ram usage: 13 bytes 7188 ;; Hardware stack levels used: 1 7189 ;; Hardware stack levels required when called: 12 7190 ;; This function calls: 7191 ;; _get_next_pattern_byte 7192 ;; This function is called by: 7193 ;; _update_pattern 7194 ;; This function uses a non-reentrant model 7195 ;; 7196 7197 0000 _dotCode: 7198 ;psect for function _dotCode 7199 7200 0000 __end_of_dotCode: 7201 ;pattern_engine.c: 192: } 7202 ;pattern_engine.c: 193: } while (eof==0); 7203 7204 ;pattern_engine.c: 191: LEDS[x][y] = a; 7205 7206 ; Switch size 1, requested type "space" 7207 ; Number of cases is 7, Range of values is 0 to 15 7208 ; switch strategies available: 7209 ; Name Instructions Cycles 7210 ; simple_byte 22 12 (average) 7211 ; direct_byte 38 6 (fixed) 7212 ; jumptable 260 6 (fixed) 7213 ; Chosen strategy is simple_byte 7214 7215 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw + itches 7216 ; Switch size 1, requested type "space" 7217 ; Number of cases is 1, Range of values is 0 to 0 7218 ; switch strategies available: 7219 ; Name Instructions Cycles 7220 ; simple_byte 4 3 (average) 7221 ; direct_byte 8 6 (fixed) 7222 ; jumptable 260 6 (fixed) 7223 ; Chosen strategy is simple_byte 7224 7225 ;pattern_engine.c: 186: break; 7226 7227 ;pattern_engine.c: 185: eof=1; 7228 7229 ;pattern_engine.c: 184: case 15: 7230 7231 ;pattern_engine.c: 181: LEDS[0][i] = a; 7232 7233 ;pattern_engine.c: 178: } 7234 ;pattern_engine.c: 179: } 7235 ;pattern_engine.c: 180: for (i=1;i<8;i++) { 7236 7237 ;pattern_engine.c: 177: LEDS[i][j] = LEDS[i-1][j]; 7238 7239 ;pattern_engine.c: 176: for (j=1;j<8;j++) { 7240 7241 ;pattern_engine.c: 174: case 7: 7242 ;pattern_engine.c: 175: for (i=7;i>0;i--) { 7243 7244 ;pattern_engine.c: 170: LEDS[i][7] = a; 7245 7246 ;pattern_engine.c: 167: } 7247 ;pattern_engine.c: 168: } 7248 ;pattern_engine.c: 169: for (i=0;i<8;i++) { 7249 7250 ;pattern_engine.c: 166: LEDS[i][j] = LEDS[i][j+1]; 7251 7252 ;pattern_engine.c: 165: for (j=1;j<7;j++) { 7253 7254 ;pattern_engine.c: 163: case 3: 7255 ;pattern_engine.c: 164: for (i=0;i<8;i++) { 7256 7257 ;pattern_engine.c: 158: LEDS[i][j] = a; 7258 7259 ;pattern_engine.c: 157: for (j=0;j<8;j++) { 7260 7261 ;pattern_engine.c: 155: case 1: 7262 ;pattern_engine.c: 156: for (i=0;i<8;i++) { 7263 7264 ;pattern_engine.c: 152: if (y == 0) { 7265 7266 ;pattern_engine.c: 151: eof = 0; 7267 7268 ;pattern_engine.c: 150: a = (char_in & 0b00000001); 7269 7270 ;pattern_engine.c: 149: x = (char_in & 0b00001110)>>1; 7271 7272 ;pattern_engine.c: 148: y = (char_in & 0b01110000)>>4; 7273 7274 ;pattern_engine.c: 147: char_in = get_next_pattern_byte(p_table); 7275 7276 ;incstack = 0 7277 ; Regs used in _dotCode: [wreg-fsr1h+status,2+status,0+pclath+cstack] 7278 ;pattern_engine.c: 143: uint8_t i, j, a, x, y, char_in; 7279 ;pattern_engine.c: 144: bool eof; 7280 ;pattern_engine.c: 146: do { 7281 7282 7283 psect text12 7284 1938 __ptext12: 7285 ;; *************** function _handle_push_button ***************** 7286 ;; Defined at: 7287 ;; line 215 in file "../pattern_engine.c" 7288 ;; Parameters: Size Location Type 7289 ;; None 7290 ;; Auto vars: Size Location Type 7291 ;; delay_count 2 0[BANK2 ] int 7292 ;; i 1 13[BANK2 ] unsigned char 7293 ;; temp 1 12[BANK2 ] unsigned char 7294 ;; Return value: Size Location Type 7295 ;; None void 7296 ;; Registers used: 7297 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 7298 ;; Tracked objects: 7299 ;; On entry : 1A/0 7300 ;; On exit : 1F/5 7301 ;; Unchanged: 0/0 7302 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7303 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7304 ;; Locals: 0 0 0 14 0 0 0 0 0 0 0 0 +0 0 7305 ;; Temps: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 7306 ;; Totals: 0 0 1 14 0 0 0 0 0 0 0 0 +0 0 7307 ;;Total ram usage: 15 bytes 7308 ;; Hardware stack levels used: 1 7309 ;; Hardware stack levels required when called: 12 7310 ;; This function calls: 7311 ;; _next_pattern 7312 ;; This function is called by: 7313 ;; _main 7314 ;; This function uses a non-reentrant model 7315 ;; 7316 7317 7318 ;psect for function _handle_push_button 7319 1938 _handle_push_button: 7320 7321 ;pattern_engine.c: 217: unsigned char i, temp; 7322 ;pattern_engine.c: 218: int delay_count; 7323 ;pattern_engine.c: 220: if (old_button == 0) { 7324 7325 ;incstack = 0 7326 ; Regs used in _handle_push_button: [wreg-fsr1h+status,2+status,0+pclath+cstack] 7327 1938 0025 movlb 5 ; select bank5 7328 1939 08D2 movf _old_button^(0+640),f 7329 193A 1D03 skipz 7330 193B 295A goto l6705 7331 7332 ;pattern_engine.c: 221: for (i=0;i<4;i++) { 7333 193C 0022 movlb 2 ; select bank2 7334 193D 01ED clrf handle_push_button@i^(0+256) 7335 193E l6693: 7336 7337 ;pattern_engine.c: 222: led_data_save[i] = LEDS[0][7-i]; 7338 193E 086D movf handle_push_button@i^(0+256),w 7339 193F 3E28 addlw _led_data_save& (0+255) 7340 1940 0086 movwf 6 7341 1941 3003 movlw 3 ; select bank6/7 7342 1942 0087 movwf 7 7343 1943 30A7 movlw (_LEDS+7)& (0+255) 7344 1944 0021 movlb 1 ; select bank1 7345 1945 21F3 3199 fcall PL165 ;call to abstracted procedure 7346 1947 21FA 3199 fcall PL191 ;call to abstracted procedure 7347 7348 ;pattern_engine.c: 223: LEDS[0][7-i] = 0x00; 7349 1949 30A7 movlw (_LEDS+7)& (0+255) 7350 194A 21F3 3199 fcall PL165 ;call to abstracted procedure 7351 194C 0086 movwf 6 7352 194D 0181 clrf 1 7353 194E 0022 movlb 2 ; select bank2 7354 194F 3004 movlw 4 7355 1950 0AED incf handle_push_button@i^(0+256),f 7356 1951 026D subwf handle_push_button@i^(0+256),w 7357 1952 1C03 skipc 7358 1953 293E goto l6693 7359 7360 ;pattern_engine.c: 225: } 7361 ;pattern_engine.c: 226: led_data_save[4] = LEDS[0][7]; 7362 1954 0027 movlb 7 ; select bank7 7363 1955 0827 movf (_LEDS^(0+896)+7),w 7364 1956 0026 movlb 6 ; select bank6 7365 1957 00AC movwf (_led_data_save^(0+768)+4) 7366 7367 ;pattern_engine.c: 227: LEDS[0][7] = 0x00; 7368 1958 0027 movlb 7 ; select bank7 7369 1959 01A7 clrf (_LEDS^(0+896)+7) 7370 195A l6705: 7371 7372 ;pattern_engine.c: 229: } 7373 ;pattern_engine.c: 231: temp = p_table+1; 7374 195A 0024 movlb 4 ; select bank4 7375 195B 0865 movf _p_table^(0+512),w 7376 195C 3E01 addlw 1 7377 195D 0022 movlb 2 ; select bank2 7378 195E 00EC movwf handle_push_button@temp^(0+256) 7379 7380 ;pattern_engine.c: 233: LEDS[1][7] = (demo_mode == 0x80) ? (0xff) : (0x00); 7381 195F 0025 movlb 5 ; select bank5 7382 1960 086A movf _demo_mode^(0+640),w 7383 1961 3A80 xorlw 128 7384 1962 1903 skipnz 7385 1963 2967 goto l6711 7386 1964 0022 movlb 2 ; select bank2 7387 1965 01E2 clrf _handle_push_button$2353^(0+256) 7388 1966 296A goto L11 7389 1967 l6711: 7390 1967 30FF movlw 255 7391 1968 0022 movlb 2 ; select bank2 7392 1969 00E2 movwf _handle_push_button$2353^(0+256) 7393 196A L11: 7394 196A 01E3 clrf (_handle_push_button$2353+1)^(0+256) 7395 196B 0862 movf _handle_push_button$2353^(0+256),w 7396 196C 0027 movlb 7 ; select bank7 7397 196D 00AF movwf (_LEDS^(0+896)+15) 7398 7399 ;pattern_engine.c: 234: LEDS[0][7] = (temp & 0x01) ? (0xff) : (0x00); 7400 196E 0022 movlb 2 ; select bank2 7401 196F 186C btfsc handle_push_button@temp^(0+256),0 7402 1970 2973 goto l6717 7403 1971 01E4 clrf _handle_push_button$2354^(0+256) 7404 1972 2975 goto L12 7405 1973 l6717: 7406 1973 30FF movlw 255 7407 1974 00E4 movwf _handle_push_button$2354^(0+256) 7408 1975 L12: 7409 1975 01E5 clrf (_handle_push_button$2354+1)^(0+256) 7410 1976 0864 movf _handle_push_button$2354^(0+256),w 7411 1977 0027 movlb 7 ; select bank7 7412 1978 00A7 movwf (_LEDS^(0+896)+7) 7413 7414 ;pattern_engine.c: 235: LEDS[0][6] = (temp & 0x02) ? (0xff) : (0x00); 7415 1979 0022 movlb 2 ; select bank2 7416 197A 18EC btfsc handle_push_button@temp^(0+256),1 7417 197B 297E goto l6723 7418 197C 01E6 clrf _handle_push_button$2355^(0+256) 7419 197D 2980 goto L13 7420 197E l6723: 7421 197E 30FF movlw 255 7422 197F 00E6 movwf _handle_push_button$2355^(0+256) 7423 1980 L13: 7424 1980 01E7 clrf (_handle_push_button$2355+1)^(0+256) 7425 1981 0866 movf _handle_push_button$2355^(0+256),w 7426 1982 0027 movlb 7 ; select bank7 7427 1983 00A6 movwf (_LEDS^(0+896)+6) 7428 7429 ;pattern_engine.c: 236: LEDS[0][5] = (temp & 0x04) ? (0xff) : (0x00); 7430 1984 0022 movlb 2 ; select bank2 7431 1985 196C btfsc handle_push_button@temp^(0+256),2 7432 1986 2989 goto l6729 7433 1987 01E8 clrf _handle_push_button$2356^(0+256) 7434 1988 298B goto L14 7435 1989 l6729: 7436 1989 30FF movlw 255 7437 198A 00E8 movwf _handle_push_button$2356^(0+256) 7438 198B L14: 7439 198B 01E9 clrf (_handle_push_button$2356+1)^(0+256) 7440 198C 0868 movf _handle_push_button$2356^(0+256),w 7441 198D 0027 movlb 7 ; select bank7 7442 198E 00A5 movwf (_LEDS^(0+896)+5) 7443 7444 ;pattern_engine.c: 237: LEDS[0][4] = (temp & 0x08) ? (0xff) : (0x00); 7445 198F 0022 movlb 2 ; select bank2 7446 1990 19EC btfsc handle_push_button@temp^(0+256),3 7447 1991 2994 goto l6735 7448 1992 01EA clrf _handle_push_button$2357^(0+256) 7449 1993 2996 goto L15 7450 1994 l6735: 7451 1994 30FF movlw 255 7452 1995 00EA movwf _handle_push_button$2357^(0+256) 7453 1996 L15: 7454 1996 01EB clrf (_handle_push_button$2357+1)^(0+256) 7455 1997 086A movf _handle_push_button$2357^(0+256),w 7456 1998 0027 movlb 7 ; select bank7 7457 1999 00A4 movwf (_LEDS^(0+896)+4) 7458 7459 ;pattern_engine.c: 239: old_button++; 7460 199A 0025 movlb 5 ; select bank5 7461 199B 0AD2 incf _old_button^(0+640),f 7462 7463 ;pattern_engine.c: 244: if (!PORTAbits.RA3) { 7464 199C 0020 movlb 0 ; select bank0 7465 199D 198C btfsc 12,3 ;volatile 7466 199E 29B5 goto l6751 7467 7468 ;pattern_engine.c: 245: delay_count = 3600; 7469 199F 3010 movlw 16 7470 19A0 0022 movlb 2 ; select bank2 7471 19A1 00E0 movwf handle_push_button@delay_count^(0+256) 7472 19A2 300E movlw 14 7473 19A3 00E1 movwf (handle_push_button@delay_count^(0+256)+1) 7474 19A4 l6743: 7475 7476 ;pattern_engine.c: 247: delay_count--; 7477 19A4 30FF movlw -1 7478 19A5 07E0 addwf handle_push_button@delay_count^(0+256),f 7479 19A6 1C03 skipc 7480 19A7 03E1 decf (handle_push_button@delay_count+1)^(0+256),f 7481 7482 ;pattern_engine.c: 248: } while(delay_count); 7483 19A8 0861 movf (handle_push_button@delay_count+1)^(0+256),w 7484 19A9 0460 iorwf handle_push_button@delay_count^(0+256),w 7485 19AA 1D03 skipz 7486 19AB 29A4 goto l6743 7487 7488 ;pattern_engine.c: 250: if (old_button > 250) { 7489 19AC 30FB movlw 251 7490 19AD 0025 movlb 5 ; select bank5 7491 19AE 0252 subwf _old_button^(0+640),w 7492 19AF 1C03 skipc 7493 19B0 0008 return 7494 7495 ;pattern_engine.c: 251: next_pattern(); 7496 19B1 21CE fcall _next_pattern 7497 7498 ;pattern_engine.c: 252: old_button = 1; 7499 19B2 01D2 clrf _old_button^(0+640) 7500 19B3 0AD2 incf _old_button^(0+640),f 7501 19B4 0008 return 7502 19B5 l6751: 7503 7504 ;pattern_engine.c: 255: for (i=0;i++;i<4) { 7505 19B5 0022 movlb 2 ; select bank2 7506 19B6 01ED clrf handle_push_button@i^(0+256) 7507 19B7 29C4 goto l6755 7508 19B8 l6753: 7509 7510 ;pattern_engine.c: 256: LEDS[0][7-i] = led_data_save[i]; 7511 19B8 30A7 movlw (_LEDS+7)& (0+255) 7512 19B9 0021 movlb 1 ; select bank1 7513 19BA 21F3 3199 fcall PL165 ;call to abstracted procedure 7514 19BC 0086 movwf 6 7515 19BD 3003 movlw 3 ; select bank6/7 7516 19BE 0087 movwf 7 7517 19BF 0022 movlb 2 ; select bank2 7518 19C0 086D movf handle_push_button@i^(0+256),w 7519 19C1 3E28 addlw _led_data_save& (0+255) 7520 19C2 21FA 3199 fcall PL191 ;call to abstracted procedure 7521 19C4 l6755: 7522 19C4 0AED incf handle_push_button@i^(0+256),f 7523 19C5 0B6D decfsz handle_push_button@i^(0+256),w 7524 19C6 29B8 goto l6753 7525 7526 ;pattern_engine.c: 257: } 7527 ;pattern_engine.c: 258: LEDS[1][7] = led_data_save[4]; 7528 19C7 0026 movlb 6 ; select bank6 7529 19C8 082C movf (_led_data_save^(0+768)+4),w 7530 19C9 0027 movlb 7 ; select bank7 7531 19CA 00AF movwf (_LEDS^(0+896)+15) 7532 7533 ;pattern_engine.c: 259: old_button = 0; 7534 19CB 0025 movlb 5 ; select bank5 7535 19CC 01D2 clrf _old_button^(0+640) 7536 19CD 0008 return 7537 19CE __end_of_handle_push_button: 7538 19CE __ptext33: 7539 ;; *************** function _next_pattern ***************** 7540 ;; Defined at: 7541 ;; line 266 in file "../pattern_engine.c" 7542 ;; Parameters: Size Location Type 7543 ;; None 7544 ;; Auto vars: Size Location Type 7545 ;; None 7546 ;; Return value: Size Location Type 7547 ;; None void 7548 ;; Registers used: 7549 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 7550 ;; Tracked objects: 7551 ;; On entry : 1E/5 7552 ;; On exit : 1F/5 7553 ;; Unchanged: 0/0 7554 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7555 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7556 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 7557 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7558 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 7559 ;;Total ram usage: 2 bytes 7560 ;; Hardware stack levels used: 1 7561 ;; Hardware stack levels required when called: 11 7562 ;; This function calls: 7563 ;; ___bmul 7564 ;; _setTopOfPattern 7565 ;; This function is called by: 7566 ;; _ParseBlinkieCommand 7567 ;; _update_pattern 7568 ;; _handle_push_button 7569 ;; This function uses a non-reentrant model 7570 ;; 7571 7572 7573 ;psect for function _next_pattern 7574 19CE _next_pattern: 7575 19CE l5643: 7576 ;incstack = 0 7577 ; Regs used in _next_pattern: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 7578 7579 7580 ;pattern_engine.c: 267: p_table = (p_table >= 11-1) ? (0):(p_table+1); 7581 19CE 300A movlw 10 7582 19CF 0024 movlb 4 ; select bank4 7583 19D0 0265 subwf _p_table^(0+512),w 7584 19D1 1803 skipnc 7585 19D2 29DB goto l5649 7586 19D3 0865 movf _p_table^(0+512),w 7587 19D4 0021 movlb 1 ; select bank1 7588 19D5 00E3 movwf _next_pattern$2359^(0+128) 7589 19D6 01E4 clrf (_next_pattern$2359+1)^(0+128) 7590 19D7 0AE3 incf _next_pattern$2359^(0+128),f 7591 19D8 1903 skipnz 7592 19D9 0AE4 incf (_next_pattern$2359+1)^(0+128),f 7593 19DA 29DE goto l5651 7594 19DB l5649: 7595 19DB 0021 movlb 1 ; select bank1 7596 19DC 01E3 clrf _next_pattern$2359^(0+128) 7597 19DD 01E4 clrf (_next_pattern$2359+1)^(0+128) 7598 19DE l5651: 7599 19DE 0863 movf _next_pattern$2359^(0+128),w 7600 19DF 0024 movlb 4 ; select bank4 7601 19E0 00E5 movwf _p_table^(0+512) 7602 19E1 i6L__ptext39: 7603 ;pattern_engine.c: 268: setTopOfPattern(); 7604 7605 7606 ;psect for function _setTopOfPattern 7607 19E1 i6L_setTopOfPattern: 7608 19E1 i6Ll5465: 7609 7610 ;pattern_access.c: 48: p_count = 0; 7611 19E1 0025 movlb 5 ; select bank5 7612 19E2 01BB clrf _p_count^(0+640) 7613 19E3 01BC clrf (_p_count+1)^(0+640) 7614 19E4 i6Ll969: 7615 7616 ;pattern_engine.c: 269: demo_loops = patterns[p_table].loops; 7617 19E4 3005 movlw 5 7618 19E5 0021 movlb 1 ; select bank1 7619 19E6 00E0 movwf ___bmul@multiplicand^(0+128) 7620 19E7 0024 movlb 4 ; select bank4 7621 19E8 0865 movf _p_table^(0+512),w 7622 19E9 318F 2703 fcall ___bmul 7623 19EB 3E24 addlw (_patterns+4)& (0+255) 7624 19EC 0086 movwf 6 7625 19ED 3004 movlw 4 ; select bank8/9 7626 19EE 0087 movwf 7 7627 19EF 0801 movf 1,w 7628 19F0 0025 movlb 5 ; select bank5 7629 19F1 00CE movwf _demo_loops^(0+640) 7630 19F2 0008 return 7631 19F3 __end_of_next_pattern: 7632 19F3 PL165: 7633 19F3 00E5 movwf ??_handle_push_button^(0+128) 7634 19F4 0022 movlb 2 ; select bank2 7635 19F5 086D movf handle_push_button@i^(0+256),w 7636 19F6 0021 movlb 1 ; select bank1 7637 19F7 02E5 subwf ??_handle_push_button^(0+128),f 7638 19F8 0865 movf ??_handle_push_button^(0+128),w 7639 19F9 0008 return 7640 19FA __end_ofPL165: 7641 19FA PL191: 7642 19FA 0084 movwf 4 7643 19FB 3003 movlw 3 ; select bank6/7 7644 19FC 0085 movwf 5 7645 19FD 0800 movf 0,w 7646 19FE 0081 movwf 1 7647 19FF 0008 return 7648 1A00 __end_ofPL191: 7649 7650 psect text13 7651 10B7 __ptext13: 7652 ;; *************** function _doWork ***************** 7653 ;; Defined at: 7654 ;; line 41 in file "../comm.c" 7655 ;; Parameters: Size Location Type 7656 ;; None 7657 ;; Auto vars: Size Location Type 7658 ;; len 1 15[BANK1 ] unsigned char 7659 ;; Return value: Size Location Type 7660 ;; None void 7661 ;; Registers used: 7662 ;; wreg, status,2, status,0, pclath, cstack 7663 ;; Tracked objects: 7664 ;; On entry : 2/1 7665 ;; On exit : 1E/4 7666 ;; Unchanged: 0/0 7667 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7668 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7669 ;; Locals: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 7670 ;; Temps: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 7671 ;; Totals: 0 0 10 0 0 0 0 0 0 0 0 0 +0 0 7672 ;;Total ram usage: 10 bytes 7673 ;; Hardware stack levels used: 1 7674 ;; Hardware stack levels required when called: 11 7675 ;; This function calls: 7676 ;; ___awmod 7677 ;; _putUSBUSART 7678 ;; This function is called by: 7679 ;; _main 7680 ;; This function uses a non-reentrant model 7681 ;; 7682 7683 7684 ;psect for function _doWork 7685 10B7 _doWork: 7686 7687 ;comm.c: 44: if (((cdc_trf_state == 0)) && (newTail != tail)) { 7688 7689 ;incstack = 0 7690 ; Regs used in _doWork: [wreg+status,2+status,0+pclath+cstack] 7691 10B7 0024 movlb 4 ; select bank4 7692 10B8 08E1 movf _cdc_trf_state^(0+512),f 7693 10B9 1D03 skipz 7694 10BA 28C5 goto l6619 7695 10BB 0025 movlb 5 ; select bank5 7696 10BC 0851 movf _newTail^(0+640),w 7697 10BD 0024 movlb 4 ; select bank4 7698 10BE 0667 xorwf _tail^(0+512),w 7699 10BF 1903 skipnz 7700 10C0 28C5 goto l6619 7701 7702 ;comm.c: 45: tail = newTail; 7703 10C1 0025 movlb 5 ; select bank5 7704 10C2 0851 movf _newTail^(0+640),w 7705 10C3 0024 movlb 4 ; select bank4 7706 10C4 00E7 movwf _tail^(0+512) 7707 10C5 l6619: 7708 7709 ;comm.c: 46: } 7710 ;comm.c: 49: uint8_t len; 7711 ;comm.c: 50: if (((cdc_trf_state == 0)) && (head != tail)) { 7712 10C5 08E1 movf _cdc_trf_state^(0+512),f 7713 10C6 1D03 skipz 7714 10C7 0008 return 7715 10C8 0864 movf _head^(0+512),w 7716 10C9 0667 xorwf _tail^(0+512),w 7717 10CA 1903 skipnz 7718 10CB 0008 return 7719 7720 ;comm.c: 51: if (head > tail) { 7721 10CC 0864 movf _head^(0+512),w 7722 10CD 0267 subwf _tail^(0+512),w 7723 10CE 1803 skipnc 7724 10CF 2900 goto l6635 7725 7726 ;comm.c: 52: len = ((head-tail<35)? head-tail:35); 7727 10D0 0864 movf _head^(0+512),w 7728 10D1 0021 movlb 1 ; select bank1 7729 10D2 00E6 movwf ??_doWork^(0+128) 7730 10D3 01E7 clrf (??_doWork^(0+128)+1) 7731 10D4 0867 movf (??_doWork+1)^(0+128),w 7732 10D5 00E9 movwf ((??_doWork+2)^(0+128)+1) 7733 10D6 0024 movlb 4 ; select bank4 7734 10D7 0867 movf _tail^(0+512),w 7735 10D8 0021 movlb 1 ; select bank1 7736 10D9 0266 subwf ??_doWork^(0+128),w 7737 10DA 00E8 movwf (??_doWork+2)^(0+128) 7738 10DB 1C03 skipc 7739 10DC 03E9 decf ((??_doWork+2)^(0+128)+1),f 7740 10DD 0869 movf (??_doWork+3)^(0+128),w 7741 10DE 3A80 xorlw 128 7742 10DF 00EA movwf (??_doWork+4)^(0+128) 7743 10E0 3080 movlw 128 7744 10E1 026A subwf (??_doWork+4)^(0+128),w 7745 10E2 1D03 skipz 7746 10E3 28E6 goto u5855 7747 10E4 3023 movlw 35 7748 10E5 0268 subwf (??_doWork+2)^(0+128),w 7749 10E6 u5855: 7750 10E6 1C03 skipc 7751 10E7 28ED goto l6629 7752 10E8 3023 movlw 35 7753 10E9 0021 movlb 1 ; select bank1 7754 10EA 00EB movwf _doWork$2379^(0+128) 7755 10EB 01EC clrf (_doWork$2379+1)^(0+128) 7756 10EC 28F8 goto l1254 7757 10ED l6629: 7758 10ED 0024 movlb 4 ; select bank4 7759 10EE 0864 movf _head^(0+512),w 7760 10EF 0021 movlb 1 ; select bank1 7761 10F0 00EB movwf _doWork$2379^(0+128) 7762 10F1 01EC clrf (_doWork$2379+1)^(0+128) 7763 10F2 0024 movlb 4 ; select bank4 7764 10F3 0867 movf _tail^(0+512),w 7765 10F4 0021 movlb 1 ; select bank1 7766 10F5 02EB subwf _doWork$2379^(0+128),f 7767 10F6 1C03 skipc 7768 10F7 03EC decf (_doWork$2379+1)^(0+128),f 7769 10F8 l1254: 7770 10F8 086B movf _doWork$2379^(0+128),w 7771 7772 ;comm.c: 53: putUSBUSART(&buffer[tail],len); 7773 10F9 218F 3190 fcall PL143 ;call to abstracted procedure 7774 10FB 2139 fcall _putUSBUSART 7775 7776 ;comm.c: 54: newTail += len; 7777 10FC 086F movf doWork@len^(0+128),w 7778 10FD 0025 movlb 5 ; select bank5 7779 10FE 07D1 addwf _newTail^(0+640),f 7780 7781 ;comm.c: 55: } else { 7782 10FF 0008 return 7783 1100 l6635: 7784 7785 ;comm.c: 56: len = ((176-tail<35)? 176-tail:35); 7786 1100 0021 movlb 1 ; select bank1 7787 1101 01E7 clrf (??_doWork^(0+128)+1) 7788 1102 0024 movlb 4 ; select bank4 7789 1103 0867 movf _tail^(0+512),w 7790 1104 3CB0 sublw 176 7791 1105 0021 movlb 1 ; select bank1 7792 1106 00E6 movwf ??_doWork^(0+128) 7793 1107 1C03 skipc 7794 1108 03E7 decf (??_doWork^(0+128)+1),f 7795 1109 0867 movf (??_doWork+1)^(0+128),w 7796 110A 3A80 xorlw 128 7797 110B 00E8 movwf (??_doWork+2)^(0+128) 7798 110C 3080 movlw 128 7799 110D 0268 subwf (??_doWork+2)^(0+128),w 7800 110E 1D03 skipz 7801 110F 2912 goto u5865 7802 1110 3023 movlw 35 7803 1111 0266 subwf ??_doWork^(0+128),w 7804 1112 u5865: 7805 1112 1C03 skipc 7806 1113 2919 goto l6639 7807 1114 3023 movlw 35 7808 1115 0021 movlb 1 ; select bank1 7809 1116 00ED movwf _doWork$2381^(0+128) 7810 1117 01EE clrf (_doWork$2381+1)^(0+128) 7811 1118 2923 goto l1259 7812 1119 l6639: 7813 1119 30B0 movlw 176 7814 111A 0021 movlb 1 ; select bank1 7815 111B 00ED movwf _doWork$2381^(0+128) 7816 111C 01EE clrf (_doWork$2381+1)^(0+128) 7817 111D 0024 movlb 4 ; select bank4 7818 111E 0867 movf _tail^(0+512),w 7819 111F 0021 movlb 1 ; select bank1 7820 1120 02ED subwf _doWork$2381^(0+128),f 7821 1121 1C03 skipc 7822 1122 03EE decf (_doWork$2381+1)^(0+128),f 7823 1123 l1259: 7824 1123 086D movf _doWork$2381^(0+128),w 7825 7826 ;comm.c: 57: putUSBUSART(&buffer[tail],len); 7827 1124 218F 3190 fcall PL143 ;call to abstracted procedure 7828 1126 2139 3190 fcall _putUSBUSART 7829 7830 ;comm.c: 58: newTail = (newTail + len) % 176; 7831 1128 0025 movlb 5 ; select bank5 7832 1129 0851 movf _newTail^(0+640),w 7833 112A 0021 movlb 1 ; select bank1 7834 112B 00E2 movwf ___awmod@dividend^(0+128) 7835 112C 01E3 clrf (___awmod@dividend+1)^(0+128) 7836 112D 086F movf doWork@len^(0+128),w 7837 112E 07E2 addwf ___awmod@dividend^(0+128),f 7838 112F 1803 skipnc 7839 1130 0AE3 incf (___awmod@dividend+1)^(0+128),f 7840 1131 30B0 movlw 176 7841 1132 00E0 movwf ___awmod@divisor^(0+128) 7842 1133 01E1 clrf (___awmod@divisor+1)^(0+128) 7843 1134 2154 fcall ___awmod 7844 1135 0860 movf ?___awmod^(0+128),w 7845 1136 0025 movlb 5 ; select bank5 7846 1137 00D1 movwf _newTail^(0+640) 7847 1138 0008 return 7848 1139 __end_of_doWork: 7849 1139 __ptext14: 7850 ;; *************** function _putUSBUSART ***************** 7851 ;; Defined at: 7852 ;; line 556 in file "../usb_device_cdc.c" 7853 ;; Parameters: Size Location Type 7854 ;; data 2 0[BANK1 ] PTR unsigned char 7855 ;; -> buffer(176), 7856 ;; length 1 2[BANK1 ] unsigned char 7857 ;; Auto vars: Size Location Type 7858 ;; None 7859 ;; Return value: Size Location Type 7860 ;; None void 7861 ;; Registers used: 7862 ;; wreg, status,2, status,0 7863 ;; Tracked objects: 7864 ;; On entry : 1F/1 7865 ;; On exit : 1F/1 7866 ;; Unchanged: 0/0 7867 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7868 ;; Params: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 7869 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7870 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7871 ;; Totals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 7872 ;;Total ram usage: 3 bytes 7873 ;; Hardware stack levels used: 1 7874 ;; Hardware stack levels required when called: 10 7875 ;; This function calls: 7876 ;; Nothing 7877 ;; This function is called by: 7878 ;; _doWork 7879 ;; This function uses a non-reentrant model 7880 ;; 7881 7882 7883 ;psect for function _putUSBUSART 7884 1139 _putUSBUSART: 7885 7886 ;usb_device_cdc.c: 581: {PIE2bits.USBIE = 0;}; 7887 7888 ;incstack = 0 7889 ; Regs used in _putUSBUSART: [wreg+status,2+status,0] 7890 1139 1112 bcf 18,2 ;volatile 7891 7892 ;usb_device_cdc.c: 582: if(cdc_trf_state == 0) 7893 113A 0024 movlb 4 ; select bank4 7894 113B 08E1 movf _cdc_trf_state^(0+512),f 7895 113C 1D03 skipz 7896 113D 2951 goto l6091 7897 7898 ;usb_device_cdc.c: 583: { 7899 ;usb_device_cdc.c: 584: { pCDCSrc.bRam = (uint8_t*)data; cdc_tx_len = length; cdc_mem_ty + pe = 0x01; cdc_trf_state = 1; }; 7900 113E 0021 movlb 1 ; select bank1 7901 113F 0861 movf (putUSBUSART@data+1)^(0+128),w 7902 1140 0025 movlb 5 ; select bank5 7903 1141 01BA clrf (_pCDCSrc+1)^(0+640) 7904 1142 07BA addwf (_pCDCSrc+1)^(0+640),f 7905 1143 0021 movlb 1 ; select bank1 7906 1144 0860 movf putUSBUSART@data^(0+128),w 7907 1145 0025 movlb 5 ; select bank5 7908 1146 01B9 clrf _pCDCSrc^(0+640) 7909 1147 07B9 addwf _pCDCSrc^(0+640),f 7910 1148 0021 movlb 1 ; select bank1 7911 1149 0862 movf putUSBUSART@length^(0+128),w 7912 114A 0025 movlb 5 ; select bank5 7913 114B 00CC movwf _cdc_tx_len^(0+640) 7914 114C 01CA clrf _cdc_mem_type^(0+640) 7915 114D 0ACA incf _cdc_mem_type^(0+640),f 7916 114E 0024 movlb 4 ; select bank4 7917 114F 01E1 clrf _cdc_trf_state^(0+512) 7918 1150 0AE1 incf _cdc_trf_state^(0+512),f 7919 1151 l6091: 7920 7921 ;usb_device_cdc.c: 585: } 7922 ;usb_device_cdc.c: 586: {PIE2bits.USBIE = 1;}; 7923 1151 0021 movlb 1 ; select bank1 7924 1152 1512 bsf 18,2 ;volatile 7925 1153 0008 return 7926 1154 __end_of_putUSBUSART: 7927 1154 __ptext15: 7928 ;; *************** function ___awmod ***************** 7929 ;; Defined at: 7930 ;; line 6 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\awmod.c" 7931 ;; Parameters: Size Location Type 7932 ;; divisor 2 0[BANK1 ] int 7933 ;; dividend 2 2[BANK1 ] int 7934 ;; Auto vars: Size Location Type 7935 ;; sign 1 5[BANK1 ] unsigned char 7936 ;; counter 1 4[BANK1 ] unsigned char 7937 ;; Return value: Size Location Type 7938 ;; 2 0[BANK1 ] int 7939 ;; Registers used: 7940 ;; wreg, status,2, status,0 7941 ;; Tracked objects: 7942 ;; On entry : 1F/1 7943 ;; On exit : 1F/1 7944 ;; Unchanged: 0/0 7945 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 7946 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 7947 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 7948 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 7949 ;; Totals: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 7950 ;;Total ram usage: 6 bytes 7951 ;; Hardware stack levels used: 1 7952 ;; Hardware stack levels required when called: 10 7953 ;; This function calls: 7954 ;; Nothing 7955 ;; This function is called by: 7956 ;; _doWork 7957 ;; This function uses a non-reentrant model 7958 ;; 7959 7960 7961 ;psect for function ___awmod 7962 1154 ___awmod: 7963 7964 ;incstack = 0 7965 ; Regs used in ___awmod: [wreg+status,2+status,0] 7966 1154 01E5 clrf ___awmod@sign^(0+128) 7967 1155 1FE3 btfss (___awmod@dividend+1)^(0+128),7 7968 1156 295E goto l6363 7969 1157 09E2 comf ___awmod@dividend^(0+128),f 7970 1158 09E3 comf (___awmod@dividend+1)^(0+128),f 7971 1159 0AE2 incf ___awmod@dividend^(0+128),f 7972 115A 1903 skipnz 7973 115B 0AE3 incf (___awmod@dividend+1)^(0+128),f 7974 115C 01E5 clrf ___awmod@sign^(0+128) 7975 115D 0AE5 incf ___awmod@sign^(0+128),f 7976 115E l6363: 7977 115E 1FE1 btfss (___awmod@divisor+1)^(0+128),7 7978 115F 2965 goto l6367 7979 1160 09E0 comf ___awmod@divisor^(0+128),f 7980 1161 09E1 comf (___awmod@divisor+1)^(0+128),f 7981 1162 0AE0 incf ___awmod@divisor^(0+128),f 7982 1163 1903 skipnz 7983 1164 0AE1 incf (___awmod@divisor+1)^(0+128),f 7984 1165 l6367: 7985 1165 0861 movf (___awmod@divisor+1)^(0+128),w 7986 1166 0460 iorwf ___awmod@divisor^(0+128),w 7987 1167 1903 skipnz 7988 1168 2980 goto l6383 7989 1169 01E4 clrf ___awmod@counter^(0+128) 7990 116A L16: 7991 116A 0AE4 incf ___awmod@counter^(0+128),f 7992 116B 1BE1 btfsc (___awmod@divisor+1)^(0+128),7 7993 116C 2970 goto l6375 7994 116D 35E0 lslf ___awmod@divisor^(0+128),f 7995 116E 0DE1 rlf (___awmod@divisor+1)^(0+128),f 7996 116F 296A goto L16 7997 1170 l6375: 7998 1170 0861 movf (___awmod@divisor+1)^(0+128),w 7999 1171 0263 subwf (___awmod@dividend+1)^(0+128),w 8000 1172 1D03 skipz 8001 1173 2976 goto u5565 8002 1174 0860 movf ___awmod@divisor^(0+128),w 8003 1175 0262 subwf ___awmod@dividend^(0+128),w 8004 1176 u5565: 8005 1176 1C03 skipc 8006 1177 297C goto l6379 8007 1178 0860 movf ___awmod@divisor^(0+128),w 8008 1179 02E2 subwf ___awmod@dividend^(0+128),f 8009 117A 0861 movf (___awmod@divisor+1)^(0+128),w 8010 117B 3BE3 subwfb (___awmod@dividend+1)^(0+128),f 8011 117C l6379: 8012 117C 36E1 lsrf (___awmod@divisor+1)^(0+128),f 8013 117D 0CE0 rrf ___awmod@divisor^(0+128),f 8014 117E 0BE4 decfsz ___awmod@counter^(0+128),f 8015 117F 2970 goto l6375 8016 1180 l6383: 8017 1180 0865 movf ___awmod@sign^(0+128),w 8018 1181 1903 btfsc 3,2 8019 1182 2988 goto l6387 8020 1183 09E2 comf ___awmod@dividend^(0+128),f 8021 1184 09E3 comf (___awmod@dividend+1)^(0+128),f 8022 1185 0AE2 incf ___awmod@dividend^(0+128),f 8023 1186 1903 skipnz 8024 1187 0AE3 incf (___awmod@dividend+1)^(0+128),f 8025 1188 l6387: 8026 1188 0863 movf (___awmod@dividend+1)^(0+128),w 8027 1189 01E1 clrf (?___awmod+1)^(0+128) 8028 118A 07E1 addwf (?___awmod+1)^(0+128),f 8029 118B 0862 movf ___awmod@dividend^(0+128),w 8030 118C 01E0 clrf ?___awmod^(0+128) 8031 118D 07E0 addwf ?___awmod^(0+128),f 8032 118E 0008 return 8033 118F __end_of___awmod: 8034 118F PL143: 8035 118F 00EF movwf doWork@len^(0+128) 8036 1190 3040 movlw 64 8037 1191 00E0 movwf putUSBUSART@data^(0+128) 8038 1192 3023 movlw 35 8039 1193 00E1 movwf (putUSBUSART@data^(0+128)+1) 8040 1194 0024 movlb 4 ; select bank4 8041 1195 0867 movf _tail^(0+512),w 8042 1196 0021 movlb 1 ; select bank1 8043 1197 07E0 addwf putUSBUSART@data^(0+128),f 8044 1198 1803 skipnc 8045 1199 0AE1 incf (putUSBUSART@data+1)^(0+128),f 8046 119A 086F movf doWork@len^(0+128),w 8047 119B 00E2 movwf putUSBUSART@length^(0+128) 8048 119C 0008 return 8049 119D __end_ofPL143: 8050 8051 psect text16 8052 119D __ptext16: 8053 ;; *************** function _doMenu ***************** 8054 ;; Defined at: 8055 ;; line 280 in file "../blinkie_parse.c" 8056 ;; Parameters: Size Location Type 8057 ;; None 8058 ;; Auto vars: Size Location Type 8059 ;; None 8060 ;; Return value: Size Location Type 8061 ;; None void 8062 ;; Registers used: 8063 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 8064 ;; Tracked objects: 8065 ;; On entry : 1E/5 8066 ;; On exit : 1E/4 8067 ;; Unchanged: 0/0 8068 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 8069 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 8070 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 8071 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 8072 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 8073 ;;Total ram usage: 0 bytes 8074 ;; Hardware stack levels used: 1 8075 ;; Hardware stack levels required when called: 12 8076 ;; This function calls: 8077 ;; _debugPackedOut 8078 ;; This function is called by: 8079 ;; _main 8080 ;; This function uses a non-reentrant model 8081 ;; 8082 8083 8084 ;psect for function _doMenu 8085 119D _doMenu: 8086 8087 ;blinkie_parse.c: 281: static uint8_t menuOldState; 8088 ;blinkie_parse.c: 282: if (menuOldState != menuState) { 8089 8090 ;incstack = 0 8091 ; Regs used in _doMenu: [wreg-fsr1h+status,2+status,0+pclath+cstack] 8092 119D 0025 movlb 5 ; select bank5 8093 119E 0857 movf doMenu@menuOldState^(0+640),w 8094 119F 0650 xorwf _menuState^(0+640),w 8095 11A0 1D03 btfss 3,2 8096 11A1 2A19 goto l6671 8097 11A2 2A23 goto l6673 8098 11A3 l6649: 8099 8100 ;blinkie_parse.c: 288: debugPackedOut((uint16_t) &pat1, 6); 8101 11A3 3082 movlw 130 8102 11A4 0021 movlb 1 ; select bank1 8103 11A5 2273 3191 fcall PL157 ;call to abstracted procedure 8104 11A7 2232 3191 fcall _debugPackedOut 8105 8106 ;blinkie_parse.c: 289: debugPackedOut((uint16_t) &pat1, 6); 8107 11A9 3082 movlw 130 8108 11AA 2273 3191 fcall PL157 ;call to abstracted procedure 8109 11AC 2232 3191 fcall _debugPackedOut 8110 8111 ;blinkie_parse.c: 290: debugPackedOut((uint16_t) &pat1, 8); 8112 11AE 2279 3191 fcall PL163 ;call to abstracted procedure 8113 11B0 2232 3191 fcall _debugPackedOut 8114 8115 ;blinkie_parse.c: 291: debugPackedOut((uint16_t) &pat3, 30); 8116 11B2 308F movlw 143 8117 11B3 00E5 movwf debugPackedOut@address^(0+128) 8118 11B4 301C movlw 28 8119 11B5 00E6 movwf (debugPackedOut@address^(0+128)+1) 8120 11B6 301E movlw 30 8121 11B7 00E7 movwf debugPackedOut@size^(0+128) 8122 11B8 2232 3191 fcall _debugPackedOut 8123 8124 ;blinkie_parse.c: 292: break; 8125 11BA 2A23 goto l6673 8126 11BB l6651: 8127 8128 ;blinkie_parse.c: 294: debugPackedOut((uint16_t) &pat1, 6); 8129 11BB 3082 movlw 130 8130 11BC 0021 movlb 1 ; select bank1 8131 11BD 2273 3191 fcall PL157 ;call to abstracted procedure 8132 11BF 2232 3191 fcall _debugPackedOut 8133 8134 ;blinkie_parse.c: 295: debugPackedOut((uint16_t) &pat1, 6); 8135 11C1 3082 movlw 130 8136 11C2 2273 3191 fcall PL157 ;call to abstracted procedure 8137 11C4 2232 3191 fcall _debugPackedOut 8138 8139 ;blinkie_parse.c: 296: debugPackedOut((uint16_t) &pat1, 8); 8140 11C6 2279 3191 fcall PL163 ;call to abstracted procedure 8141 11C8 2232 3191 fcall _debugPackedOut 8142 8143 ;blinkie_parse.c: 297: break; 8144 11CA 2A23 goto l6673 8145 11CB l6653: 8146 8147 ;blinkie_parse.c: 299: debugPackedOut((uint16_t) &pat4, 66); 8148 11CB 309E movlw 158 8149 11CC 0021 movlb 1 ; select bank1 8150 11CD 00E5 movwf debugPackedOut@address^(0+128) 8151 11CE 301C movlw 28 8152 11CF 00E6 movwf (debugPackedOut@address^(0+128)+1) 8153 11D0 3042 movlw 66 8154 11D1 00E7 movwf debugPackedOut@size^(0+128) 8155 11D2 2232 3191 fcall _debugPackedOut 8156 8157 ;blinkie_parse.c: 300: break; 8158 11D4 2A23 goto l6673 8159 11D5 l6655: 8160 8161 ;blinkie_parse.c: 302: debugPackedOut((uint16_t) &pat5, 42); 8162 11D5 30BF movlw 191 8163 11D6 0021 movlb 1 ; select bank1 8164 11D7 00E5 movwf debugPackedOut@address^(0+128) 8165 11D8 301C movlw 28 8166 11D9 00E6 movwf (debugPackedOut@address^(0+128)+1) 8167 11DA 302A movlw 42 8168 11DB 00E7 movwf debugPackedOut@size^(0+128) 8169 11DC 2232 3191 fcall _debugPackedOut 8170 8171 ;blinkie_parse.c: 303: break; 8172 11DE 2A23 goto l6673 8173 11DF l6657: 8174 8175 ;blinkie_parse.c: 305: debugPackedOut((uint16_t) &pat6, 41); 8176 11DF 30D4 movlw 212 8177 11E0 0021 movlb 1 ; select bank1 8178 11E1 00E5 movwf debugPackedOut@address^(0+128) 8179 11E2 301C movlw 28 8180 11E3 00E6 movwf (debugPackedOut@address^(0+128)+1) 8181 11E4 3029 movlw 41 8182 11E5 00E7 movwf debugPackedOut@size^(0+128) 8183 11E6 2232 3191 fcall _debugPackedOut 8184 8185 ;blinkie_parse.c: 306: break; 8186 11E8 2A23 goto l6673 8187 11E9 l6659: 8188 8189 ;blinkie_parse.c: 308: debugPackedOut((uint16_t) &pat7, 27); 8190 11E9 30E9 movlw 233 8191 11EA 0021 movlb 1 ; select bank1 8192 11EB 00E5 movwf debugPackedOut@address^(0+128) 8193 11EC 301C movlw 28 8194 11ED 00E6 movwf (debugPackedOut@address^(0+128)+1) 8195 11EE 301B movlw 27 8196 11EF 00E7 movwf debugPackedOut@size^(0+128) 8197 11F0 2232 3191 fcall _debugPackedOut 8198 8199 ;blinkie_parse.c: 309: break; 8200 11F2 2A23 goto l6673 8201 11F3 l6661: 8202 8203 ;blinkie_parse.c: 311: debugPackedOut((uint16_t) &pat8, 36); 8204 11F3 30F7 movlw 247 8205 11F4 0021 movlb 1 ; select bank1 8206 11F5 00E5 movwf debugPackedOut@address^(0+128) 8207 11F6 301C movlw 28 8208 11F7 00E6 movwf (debugPackedOut@address^(0+128)+1) 8209 11F8 3024 movlw 36 8210 11F9 00E7 movwf debugPackedOut@size^(0+128) 8211 11FA 2232 3191 fcall _debugPackedOut 8212 8213 ;blinkie_parse.c: 312: break; 8214 11FC 2A23 goto l6673 8215 11FD l6663: 8216 8217 ;blinkie_parse.c: 314: debugPackedOut((uint16_t) &pat9, 35); 8218 11FD 3009 movlw 9 8219 11FE 0021 movlb 1 ; select bank1 8220 11FF 00E5 movwf debugPackedOut@address^(0+128) 8221 1200 301D movlw 29 8222 1201 00E6 movwf (debugPackedOut@address^(0+128)+1) 8223 1202 3023 movlw 35 8224 1203 00E7 movwf debugPackedOut@size^(0+128) 8225 1204 2232 3191 fcall _debugPackedOut 8226 8227 ;blinkie_parse.c: 315: break; 8228 1206 2A23 goto l6673 8229 1207 l6665: 8230 8231 ;blinkie_parse.c: 317: debugPackedOut((uint16_t) &pat1, 6); 8232 1207 3082 movlw 130 8233 1208 0021 movlb 1 ; select bank1 8234 1209 2273 3191 fcall PL157 ;call to abstracted procedure 8235 120B 2232 3191 fcall _debugPackedOut 8236 8237 ;blinkie_parse.c: 318: debugPackedOut((uint16_t) &pat1, 6); 8238 120D 3082 movlw 130 8239 120E 2273 3191 fcall PL157 ;call to abstracted procedure 8240 1210 2232 3191 fcall _debugPackedOut 8241 8242 ;blinkie_parse.c: 319: debugPackedOut((uint16_t) &pat1, 8); 8243 1212 2279 3191 fcall PL163 ;call to abstracted procedure 8244 1214 2232 3191 fcall _debugPackedOut 8245 8246 ;blinkie_parse.c: 320: menuState = 0; 8247 1216 0025 movlb 5 ; select bank5 8248 1217 01D0 clrf _menuState^(0+640) 8249 8250 ;blinkie_parse.c: 321: break; 8251 1218 2A23 goto l6673 8252 1219 l6671: 8253 1219 0850 movf _menuState^(0+640),w 8254 8255 ; Switch size 1, requested type "space" 8256 ; Number of cases is 10, Range of values is 0 to 9 8257 ; switch strategies available: 8258 ; Name Instructions Cycles 8259 ; direct_byte 26 6 (fixed) 8260 ; simple_byte 31 16 (average) 8261 ; jumptable 260 6 (fixed) 8262 ; Chosen strategy is direct_byte 8263 121A 0084 movwf 4 8264 121B 300A movlw 10 8265 121C 0204 subwf 4,w 8266 121D 1803 skipnc 8267 121E 0008 return 8268 121F 3198 movlp high S7457 8269 1220 3504 lslf 4,w 8270 1221 3E00 addlw low S7457 8271 1222 0082 movwf 2 8272 1223 l6673: 8273 8274 ;blinkie_parse.c: 323: } 8275 ;blinkie_parse.c: 324: menuOldState = menuState; 8276 1223 0025 movlb 5 ; select bank5 8277 1224 0850 movf _menuState^(0+640),w 8278 1225 00D7 movwf doMenu@menuOldState^(0+640) 8279 8280 ;blinkie_parse.c: 326: if ((menuState !=0) && (cdc_trf_state == 0)) { 8281 1226 0850 movf _menuState^(0+640),w 8282 1227 1903 btfsc 3,2 8283 1228 0008 return 8284 1229 0024 movlb 4 ; select bank4 8285 122A 08E1 movf _cdc_trf_state^(0+512),f 8286 122B 1903 btfsc 3,2 8287 122C 2A2F goto l6677 8288 122D 0025 movlb 5 ; select bank5 8289 122E 0008 return 8290 122F l6677: 8291 8292 ;blinkie_parse.c: 327: menuState++; 8293 122F 0025 movlb 5 ; select bank5 8294 1230 0AD0 incf _menuState^(0+640),f 8295 1231 l918: 8296 1231 0008 return 8297 1232 __end_of_doMenu: 8298 1232 __ptext35: 8299 ;; *************** function _debugPackedOut ***************** 8300 ;; Defined at: 8301 ;; line 81 in file "../comm.c" 8302 ;; Parameters: Size Location Type 8303 ;; address 2 5[BANK1 ] unsigned int 8304 ;; size 1 7[BANK1 ] unsigned char 8305 ;; Auto vars: Size Location Type 8306 ;; i 1 12[BANK1 ] unsigned char 8307 ;; Return value: Size Location Type 8308 ;; None void 8309 ;; Registers used: 8310 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 8311 ;; Tracked objects: 8312 ;; On entry : 1F/1 8313 ;; On exit : 1F/1 8314 ;; Unchanged: 0/0 8315 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 8316 ;; Params: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 8317 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 8318 ;; Temps: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 8319 ;; Totals: 0 0 8 0 0 0 0 0 0 0 0 0 +0 0 8320 ;;Total ram usage: 8 bytes 8321 ;; Hardware stack levels used: 1 8322 ;; Hardware stack levels required when called: 11 8323 ;; This function calls: 8324 ;; ___lbmod 8325 ;; _packedRead 8326 ;; This function is called by: 8327 ;; _ParseBlinkieCommand 8328 ;; _doMenu 8329 ;; This function uses a non-reentrant model 8330 ;; 8331 8332 8333 ;psect for function _debugPackedOut 8334 1232 _debugPackedOut: 8335 8336 ;comm.c: 82: uint8_t i; 8337 ;comm.c: 84: for (i=0;i>1),0) : packedRead(address + +(i>>1),1); 8367 1247 186C btfsc debugPackedOut@i^(0+128),0 8368 1248 2A4E goto l5717 8369 1249 366C lsrf debugPackedOut@i^(0+128),w 8370 124A 2280 3191 fcall PL169 ;call to abstracted procedure 8371 124C 0AE2 incf packedRead@hiLow^(0+128),f 8372 124D 2A50 goto L21 8373 124E l5717: 8374 124E 366C lsrf debugPackedOut@i^(0+128),w 8375 124F 2280 fcall PL169 ;call to abstracted procedure 8376 1250 L21: 8377 1250 3188 20F9 3191 fcall _packedRead 8378 1253 0021 movlb 1 ; select bank1 8379 1254 00EA movwf _debugPackedOut$2390^(0+128) 8380 1255 01EB clrf (_debugPackedOut$2390+1)^(0+128) 8381 1256 0024 movlb 4 ; select bank4 8382 1257 0864 movf _head^(0+512),w 8383 1258 3E40 addlw 64 8384 1259 0021 movlb 1 ; select bank1 8385 125A 00E8 movwf ??_debugPackedOut^(0+128) 8386 125B 3023 movlw 35 8387 125C 01E9 clrf (??_debugPackedOut^(0+128)+1) 8388 125D 3DE9 addwfc (??_debugPackedOut^(0+128)+1),f 8389 125E 0868 movf ??_debugPackedOut^(0+128),w 8390 125F 0086 movwf 6 8391 1260 0869 movf (??_debugPackedOut+1)^(0+128),w 8392 1261 0087 movwf 7 8393 1262 086A movf _debugPackedOut$2390^(0+128),w 8394 1263 0081 movwf 1 8395 1264 0024 movlb 4 ; select bank4 8396 1265 30B0 movlw 176 8397 1266 0AE4 incf _head^(0+512),f 8398 8399 ;comm.c: 87: head %= 176; 8400 1267 0021 movlb 1 ; select bank1 8401 1268 00E0 movwf ___lbmod@divisor^(0+128) 8402 1269 0024 movlb 4 ; select bank4 8403 126A 0864 movf _head^(0+512),w 8404 126B 3197 27B6 3191 fcall ___lbmod 8405 126E 0024 movlb 4 ; select bank4 8406 126F 00E4 movwf _head^(0+512) 8407 1270 l5725: 8408 1270 0021 movlb 1 ; select bank1 8409 1271 0AEC incf debugPackedOut@i^(0+128),f 8410 1272 2A33 goto l5727 8411 1273 __end_of_debugPackedOut: 8412 1273 PL157: 8413 1273 00E5 movwf debugPackedOut@address^(0+128) 8414 1274 301C movlw 28 8415 1275 00E6 movwf (debugPackedOut@address^(0+128)+1) 8416 1276 3006 movlw 6 8417 1277 00E7 movwf debugPackedOut@size^(0+128) 8418 1278 0008 return 8419 1279 __end_ofPL157: 8420 1279 PL163: 8421 1279 3082 movlw 130 8422 127A 00E5 movwf debugPackedOut@address^(0+128) 8423 127B 301C movlw 28 8424 127C 00E6 movwf (debugPackedOut@address^(0+128)+1) 8425 127D 3008 movlw 8 8426 127E 00E7 movwf debugPackedOut@size^(0+128) 8427 127F 0008 return 8428 1280 __end_ofPL163: 8429 1280 PL169: 8430 1280 00E0 movwf packedRead@address^(0+128) 8431 1281 01E1 clrf (packedRead@address+1)^(0+128) 8432 1282 0865 movf debugPackedOut@address^(0+128),w 8433 1283 07E0 addwf packedRead@address^(0+128),f 8434 1284 0866 movf (debugPackedOut@address+1)^(0+128),w 8435 1285 3DE1 addwfc (packedRead@address+1)^(0+128),f 8436 1286 01E2 clrf packedRead@hiLow^(0+128) 8437 1287 0008 return 8438 1288 __end_ofPL169: 8439 8440 psect swtext1 8441 1800 __pswtext1: 8442 1800 S7457: 8443 1800 3192 2A31 ljmp l918 8444 1802 3191 29A3 ljmp l6649 8445 1804 3191 29BB ljmp l6651 8446 1806 3191 29CB ljmp l6653 8447 1808 3191 29D5 ljmp l6655 8448 180A 3191 29DF ljmp l6657 8449 180C 3191 29E9 ljmp l6659 8450 180E 3191 29F3 ljmp l6661 8451 1810 3191 29FD ljmp l6663 8452 1812 3192 2A07 ljmp l6665 8453 8454 psect text22 8455 141D __ptext22: 8456 ;; *************** function _ParseBlinkieCommand ***************** 8457 ;; Defined at: 8458 ;; line 168 in file "../blinkie_parse.c" 8459 ;; Parameters: Size Location Type 8460 ;; cLine 1 wreg PTR unsigned char 8461 ;; -> readBuffer(64), 8462 ;; Auto vars: Size Location Type 8463 ;; cLine 1 47[BANK4 ] PTR unsigned char 8464 ;; -> readBuffer(64), 8465 ;; buffer 40 0[BANK4 ] unsigned char [40] 8466 ;; len 1 46[BANK4 ] unsigned char 8467 ;; i 1 45[BANK4 ] unsigned char 8468 ;; v 1 44[BANK4 ] unsigned char 8469 ;; y 1 43[BANK4 ] unsigned char 8470 ;; x 1 42[BANK4 ] unsigned char 8471 ;; Return value: Size Location Type 8472 ;; None void 8473 ;; Registers used: 8474 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 8475 ;; Tracked objects: 8476 ;; On entry : 1F/4 8477 ;; On exit : 0/0 8478 ;; Unchanged: 0/0 8479 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 8480 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 8481 ;; Locals: 0 0 0 0 0 48 0 0 0 0 0 0 +0 0 8482 ;; Temps: 0 0 0 0 3 0 0 0 0 0 0 0 +0 0 8483 ;; Totals: 0 0 0 0 3 48 0 0 0 0 0 0 +0 0 8484 ;;Total ram usage: 51 bytes 8485 ;; Hardware stack levels used: 1 8486 ;; Hardware stack levels required when called: 14 8487 ;; This function calls: 8488 ;; _atoi 8489 ;; _back_pattern 8490 ;; _debugOut 8491 ;; _debugPackedOut 8492 ;; _erase_flash_mem 8493 ;; _memcpy 8494 ;; _next_pattern 8495 ;; _print_settings 8496 ;; _set_pattern 8497 ;; _sprintf 8498 ;; _store_settings 8499 ;; _strlen 8500 ;; _write_flash_mem 8501 ;; This function is called by: 8502 ;; _APP_DeviceCDCBasicDemoTasks 8503 ;; This function uses a non-reentrant model 8504 ;; 8505 8506 8507 ;psect for function _ParseBlinkieCommand 8508 141D _ParseBlinkieCommand: 8509 8510 ;incstack = 0 8511 ; Regs used in _ParseBlinkieCommand: [wreg-fsr1h+status,2+status,0+pclath+cstack] 8512 ;ParseBlinkieCommand@cLine stored from wreg 8513 141D 00CF movwf ParseBlinkieCommand@cLine^(0+512) 8514 8515 ;blinkie_parse.c: 170: uint8_t len = strlen(cLine); 8516 141E 0021 movlb 1 ; select bank1 8517 141F 00E0 movwf strlen@s^(0+128) 8518 1420 3004 movlw 4 8519 1421 00E1 movwf (strlen@s+1)^(0+128) 8520 1422 2784 3194 fcall _strlen 8521 1424 0860 movf ?_strlen^(0+128),w 8522 1425 0024 movlb 4 ; select bank4 8523 1426 00CE movwf ParseBlinkieCommand@len^(0+512) 8524 8525 ;blinkie_parse.c: 171: uint8_t i,x,y,v; 8526 ;blinkie_parse.c: 172: char buffer[40]; 8527 ;blinkie_parse.c: 174: if ((cLine[0]>='A' && cLine[0]<='Z')) {cLine[0] += 'a'-'A';} 8528 1427 084F movf ParseBlinkieCommand@cLine^(0+512),w 8529 1428 0086 movwf 6 8530 1429 3004 movlw 4 ; select bank8/9 8531 142A 0087 movwf 7 8532 142B 3041 movlw 65 8533 142C 0201 subwf 1,w 8534 142D 084F movf ParseBlinkieCommand@cLine^(0+512),w 8535 142E 0086 movwf 6 8536 142F 1C03 skipc 8537 1430 2E06 goto L17 8538 1431 305B movlw 91 8539 1432 0201 subwf 1,w 8540 1433 084F movf ParseBlinkieCommand@cLine^(0+512),w 8541 1434 0086 movwf 6 8542 1435 1803 skipnc 8543 1436 2E06 goto L17 8544 1437 3020 movlw 32 8545 1438 0781 addwf 1,f 8546 1439 2E02 goto l6007 8547 143A l5899: 8548 8549 ;blinkie_parse.c: 178: if (len > 1) { 8550 143A 3002 movlw 2 8551 143B 024E subwf ParseBlinkieCommand@len^(0+512),w 8552 143C 1C03 skipc 8553 143D 2C5D goto l5911 8554 8555 ;blinkie_parse.c: 179: if (cLine[1] == '+') { 8556 143E 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8557 143F 0086 movwf 6 8558 1440 3004 movlw 4 ; select bank8/9 8559 1441 0087 movwf 7 8560 1442 0801 movf 1,w 8561 1443 3A2B xorlw 43 8562 1444 1D03 skipz 8563 1445 2C4A goto l5905 8564 8565 ;blinkie_parse.c: 180: next_pattern(); 8566 1446 3199 21CE 3194 fcall _next_pattern 8567 8568 ;blinkie_parse.c: 181: } else if (cLine[1] == '-') { 8569 1449 2C5D goto l5911 8570 144A l5905: 8571 144A 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8572 144B 0086 movwf 6 8573 144C 3004 movlw 4 ; select bank8/9 8574 144D 0087 movwf 7 8575 144E 0801 movf 1,w 8576 144F 3A2D xorlw 45 8577 1450 1D03 skipz 8578 1451 2C56 goto l5909 8579 8580 ;blinkie_parse.c: 182: back_pattern(); 8581 1452 3198 2076 3194 fcall _back_pattern 8582 8583 ;blinkie_parse.c: 183: } else { 8584 1455 2C5D goto l5911 8585 1456 l5909: 8586 8587 ;blinkie_parse.c: 184: set_pattern( atoi(&cLine[1])); 8588 1456 084F movf ParseBlinkieCommand@cLine^(0+512),w 8589 1457 3E01 addlw 1 8590 1458 2727 3194 fcall _atoi 8591 145A 0866 movf ?_atoi^(0+128),w 8592 145B 279C 3194 fcall _set_pattern 8593 145D l5911: 8594 8595 ;blinkie_parse.c: 185: } 8596 ;blinkie_parse.c: 186: } 8597 ;blinkie_parse.c: 187: print_settings(demo_mode, user_msg_size, user_id, plockout); 8598 145D 0024 movlb 4 ; select bank4 8599 145E 086F movf _user_msg_size^(0+512),w 8600 145F 0023 movlb 3 ; select bank3 8601 1460 00A9 movwf print_settings@user_msg_size^(0+384) 8602 1461 0025 movlb 5 ; select bank5 8603 1462 086B movf _user_id^(0+640),w 8604 1463 0023 movlb 3 ; select bank3 8605 1464 00AA movwf print_settings@user_id^(0+384) 8606 1465 30E3 movlw _plockout& (0+255) 8607 1466 00AB movwf print_settings@plockout^(0+384) 8608 1467 0025 movlb 5 ; select bank5 8609 1468 086A movf _demo_mode^(0+640),w 8610 1469 2E21 ljmp _print_settings 8611 146A l5913: 8612 ;blinkie_parse.c: 188: break; 8613 8614 8615 ;blinkie_parse.c: 191: if (len > 1) { 8616 146A 3002 movlw 2 8617 146B 024E subwf ParseBlinkieCommand@len^(0+512),w 8618 146C 1C03 skipc 8619 146D 2C84 goto l5923 8620 8621 ;blinkie_parse.c: 192: if (cLine[1] == '0') { 8622 146E 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8623 146F 0086 movwf 6 8624 1470 3004 movlw 4 ; select bank8/9 8625 1471 0087 movwf 7 8626 1472 0801 movf 1,w 8627 1473 3A30 xorlw 48 8628 1474 1D03 skipz 8629 1475 2C79 goto l5919 8630 8631 ;blinkie_parse.c: 193: run = 0; 8632 1476 0025 movlb 5 ; select bank5 8633 1477 01EC clrf _run^(0+640) 8634 8635 ;blinkie_parse.c: 194: } else if (cLine[1] == '1') { 8636 1478 2C84 goto l5923 8637 1479 l5919: 8638 1479 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8639 147A 0086 movwf 6 8640 147B 3004 movlw 4 ; select bank8/9 8641 147C 0087 movwf 7 8642 147D 0801 movf 1,w 8643 147E 3A31 xorlw 49 8644 147F 1D03 skipz 8645 1480 2C84 goto l5923 8646 8647 ;blinkie_parse.c: 195: run = 1; 8648 1481 0025 movlb 5 ; select bank5 8649 1482 01EC clrf _run^(0+640) 8650 1483 0AEC incf _run^(0+640),f 8651 1484 l5923: 8652 8653 ;blinkie_parse.c: 196: } 8654 ;blinkie_parse.c: 197: } 8655 ;blinkie_parse.c: 198: print_settings(demo_mode, user_msg_size, user_id, plockout); 8656 1484 0024 movlb 4 ; select bank4 8657 1485 086F movf _user_msg_size^(0+512),w 8658 1486 0023 movlb 3 ; select bank3 8659 1487 00A9 movwf print_settings@user_msg_size^(0+384) 8660 1488 0025 movlb 5 ; select bank5 8661 1489 086B movf _user_id^(0+640),w 8662 148A 0023 movlb 3 ; select bank3 8663 148B 00AA movwf print_settings@user_id^(0+384) 8664 148C 30E3 movlw _plockout& (0+255) 8665 148D 00AB movwf print_settings@plockout^(0+384) 8666 148E 0025 movlb 5 ; select bank5 8667 148F 086A movf _demo_mode^(0+640),w 8668 1490 2E21 ljmp _print_settings 8669 1491 l5925: 8670 ;blinkie_parse.c: 199: break; 8671 8672 8673 ;blinkie_parse.c: 202: if (len > 1) { 8674 1491 3002 movlw 2 8675 1492 024E subwf ParseBlinkieCommand@len^(0+512),w 8676 1493 1C03 skipc 8677 1494 2CB9 goto l888 8678 8679 ;blinkie_parse.c: 203: if (cLine[1] == '0') { 8680 1495 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8681 1496 0086 movwf 6 8682 1497 3004 movlw 4 ; select bank8/9 8683 1498 0087 movwf 7 8684 1499 0801 movf 1,w 8685 149A 3A30 xorlw 48 8686 149B 1D03 skipz 8687 149C 2CA0 goto l5931 8688 8689 ;blinkie_parse.c: 204: demo_mode = 0; 8690 149D 0025 movlb 5 ; select bank5 8691 149E 01EA clrf _demo_mode^(0+640) 8692 8693 ;blinkie_parse.c: 205: } else if (cLine[1] == '1') { 8694 149F 2CAB goto l5935 8695 14A0 l5931: 8696 14A0 0A4F incf ParseBlinkieCommand@cLine^(0+512),w 8697 14A1 0086 movwf 6 8698 14A2 3004 movlw 4 ; select bank8/9 8699 14A3 0087 movwf 7 8700 14A4 0801 movf 1,w 8701 14A5 3A31 xorlw 49 8702 14A6 1D03 skipz 8703 14A7 2CAB goto l5935 8704 8705 ;blinkie_parse.c: 206: demo_mode = 1; 8706 14A8 0025 movlb 5 ; select bank5 8707 14A9 01EA clrf _demo_mode^(0+640) 8708 14AA 0AEA incf _demo_mode^(0+640),f 8709 14AB l5935: 8710 8711 ;blinkie_parse.c: 207: } 8712 ;blinkie_parse.c: 208: store_settings(demo_mode, user_msg_size, user_id, plockout); 8713 14AB 0024 movlb 4 ; select bank4 8714 14AC 086F movf _user_msg_size^(0+512),w 8715 14AD 0023 movlb 3 ; select bank3 8716 14AE 00C9 movwf store_settings@user_msg_size^(0+384) 8717 14AF 0025 movlb 5 ; select bank5 8718 14B0 086B movf _user_id^(0+640),w 8719 14B1 0023 movlb 3 ; select bank3 8720 14B2 00CA movwf store_settings@user_id^(0+384) 8721 14B3 30E3 movlw _plockout& (0+255) 8722 14B4 00CB movwf store_settings@plockout^(0+384) 8723 14B5 0025 movlb 5 ; select bank5 8724 14B6 086A movf _demo_mode^(0+640),w 8725 14B7 264E 3194 fcall _store_settings 8726 14B9 l888: 8727 8728 ;blinkie_parse.c: 209: } 8729 ;blinkie_parse.c: 210: print_settings(demo_mode, user_msg_size, user_id, plockout); 8730 14B9 0024 movlb 4 ; select bank4 8731 14BA 086F movf _user_msg_size^(0+512),w 8732 14BB 0023 movlb 3 ; select bank3 8733 14BC 00A9 movwf print_settings@user_msg_size^(0+384) 8734 14BD 0025 movlb 5 ; select bank5 8735 14BE 086B movf _user_id^(0+640),w 8736 14BF 0023 movlb 3 ; select bank3 8737 14C0 00AA movwf print_settings@user_id^(0+384) 8738 14C1 30E3 movlw _plockout& (0+255) 8739 14C2 00AB movwf print_settings@plockout^(0+384) 8740 14C3 0025 movlb 5 ; select bank5 8741 14C4 086A movf _demo_mode^(0+640),w 8742 14C5 2E21 ljmp _print_settings 8743 14C6 l5937: 8744 ;blinkie_parse.c: 211: break; 8745 8746 8747 ;blinkie_parse.c: 215: debugOut(buffer); 8748 14C6 3020 movlw low ParseBlinkieCommand@buffer 8749 14C7 0021 movlb 1 ; select bank1 8750 14C8 00E5 movwf debugOut@debugString^(0+128) 8751 14C9 3002 movlw high ParseBlinkieCommand@buffer 8752 14CA 00E6 movwf (debugOut@debugString+1)^(0+128) 8753 14CB 2678 3194 fcall _debugOut 8754 8755 ;blinkie_parse.c: 216: for (i=0;i<(len-1);i+=3) { 8756 14CD 0024 movlb 4 ; select bank4 8757 14CE 01CD clrf ParseBlinkieCommand@i^(0+512) 8758 14CF l5951: 8759 14CF 084E movf ParseBlinkieCommand@len^(0+512),w 8760 14D0 3EFF addlw 255 8761 14D1 0023 movlb 3 ; select bank3 8762 14D2 00ED movwf ??_ParseBlinkieCommand^(0+384) 8763 14D3 30FF movlw 255 8764 14D4 1803 skipnc 8765 14D5 3000 movlw 0 8766 14D6 00EE movwf (??_ParseBlinkieCommand^(0+384)+1) 8767 14D7 086E movf (??_ParseBlinkieCommand+1)^(0+384),w 8768 14D8 3A80 xorlw 128 8769 14D9 3C80 sublw 128 8770 14DA 1D03 skipz 8771 14DB 2CDF goto u5045 8772 14DC 086D movf ??_ParseBlinkieCommand^(0+384),w 8773 14DD 0024 movlb 4 ; select bank4 8774 14DE 024D subwf ParseBlinkieCommand@i^(0+512),w 8775 14DF u5045: 8776 14DF 1803 btfsc 3,0 8777 14E0 0008 return 8778 8779 ;blinkie_parse.c: 217: x = cLine[i+1]-'0'; 8780 14E1 0024 movlb 4 ; select bank4 8781 14E2 084D movf ParseBlinkieCommand@i^(0+512),w 8782 14E3 074F addwf ParseBlinkieCommand@cLine^(0+512),w 8783 14E4 0023 movlb 3 ; select bank3 8784 14E5 00ED movwf ??_ParseBlinkieCommand^(0+384) 8785 14E6 0A6D incf ??_ParseBlinkieCommand^(0+384),w 8786 14E7 0086 movwf 6 8787 14E8 3004 movlw 4 ; select bank8/9 8788 14E9 0087 movwf 7 8789 14EA 0801 movf 1,w 8790 14EB 3ED0 addlw 208 8791 14EC 0024 movlb 4 ; select bank4 8792 14ED 00CA movwf ParseBlinkieCommand@x^(0+512) 8793 8794 ;blinkie_parse.c: 218: y = cLine[i+2]-'0'; 8795 14EE 084D movf ParseBlinkieCommand@i^(0+512),w 8796 14EF 074F addwf ParseBlinkieCommand@cLine^(0+512),w 8797 14F0 0023 movlb 3 ; select bank3 8798 14F1 00ED movwf ??_ParseBlinkieCommand^(0+384) 8799 14F2 3E02 addlw 2 8800 14F3 0086 movwf 6 8801 14F4 0801 movf 1,w 8802 14F5 3ED0 addlw 208 8803 14F6 0024 movlb 4 ; select bank4 8804 14F7 00CB movwf ParseBlinkieCommand@y^(0+512) 8805 8806 ;blinkie_parse.c: 219: v = cLine[i+3]-'0'; 8807 14F8 084D movf ParseBlinkieCommand@i^(0+512),w 8808 14F9 074F addwf ParseBlinkieCommand@cLine^(0+512),w 8809 14FA 0023 movlb 3 ; select bank3 8810 14FB 00ED movwf ??_ParseBlinkieCommand^(0+384) 8811 14FC 3E03 addlw 3 8812 14FD 0086 movwf 6 8813 14FE 0801 movf 1,w 8814 14FF 3ED0 addlw 208 8815 1500 0024 movlb 4 ; select bank4 8816 1501 00CC movwf ParseBlinkieCommand@v^(0+512) 8817 8818 ;blinkie_parse.c: 220: sprintf(buffer,"x=%d,y=%d,v=%d,\r\n",x,y,v); 8819 1502 3020 movlw low ParseBlinkieCommand@buffer 8820 1503 0022 movlb 2 ; select bank2 8821 1504 00E0 movwf sprintf@sp^(0+256) 8822 1505 3002 movlw high ParseBlinkieCommand@buffer 8823 1506 00E1 movwf (sprintf@sp+1)^(0+256) 8824 1507 30EA movlw low (STR_3| (0+32768)) 8825 1508 00E2 movwf sprintf@f^(0+256) 8826 1509 309E movlw high (STR_3| (0+32768)) 8827 150A 00E3 movwf (sprintf@f^(0+256)+1) 8828 150B 0024 movlb 4 ; select bank4 8829 150C 084A movf ParseBlinkieCommand@x^(0+512),w 8830 150D 0022 movlb 2 ; select bank2 8831 150E 00E4 movwf (?_sprintf^(0+256)+4) 8832 150F 01E5 clrf ((?_sprintf+1)^(0+256)+4) 8833 1510 0024 movlb 4 ; select bank4 8834 1511 084B movf ParseBlinkieCommand@y^(0+512),w 8835 1512 0022 movlb 2 ; select bank2 8836 1513 00E6 movwf (?_sprintf^(0+256)+6) 8837 1514 01E7 clrf ((?_sprintf+1)^(0+256)+6) 8838 1515 0024 movlb 4 ; select bank4 8839 1516 084C movf ParseBlinkieCommand@v^(0+512),w 8840 1517 0022 movlb 2 ; select bank2 8841 1518 00E8 movwf (?_sprintf^(0+256)+8) 8842 1519 01E9 clrf ((?_sprintf+1)^(0+256)+8) 8843 151A 3192 2288 3194 fcall _sprintf 8844 8845 ;blinkie_parse.c: 221: debugOut(buffer); 8846 151D 3020 movlw low ParseBlinkieCommand@buffer 8847 151E 0021 movlb 1 ; select bank1 8848 151F 00E5 movwf debugOut@debugString^(0+128) 8849 1520 3002 movlw high ParseBlinkieCommand@buffer 8850 1521 00E6 movwf (debugOut@debugString+1)^(0+128) 8851 1522 2678 3194 fcall _debugOut 8852 8853 ;blinkie_parse.c: 222: LEDS[x][y]=v; 8854 1524 0024 movlb 4 ; select bank4 8855 1525 084A movf ParseBlinkieCommand@x^(0+512),w 8856 1526 0023 movlb 3 ; select bank3 8857 1527 00ED movwf ??_ParseBlinkieCommand^(0+384) 8858 1528 30A0 movlw _LEDS& (0+255) 8859 1529 35ED lslf ??_ParseBlinkieCommand^(0+384),f 8860 152A 35ED lslf ??_ParseBlinkieCommand^(0+384),f 8861 152B 35ED lslf ??_ParseBlinkieCommand^(0+384),f 8862 152C 076D addwf ??_ParseBlinkieCommand^(0+384),w 8863 152D 00EE movwf (??_ParseBlinkieCommand+1)^(0+384) 8864 152E 0024 movlb 4 ; select bank4 8865 152F 084B movf ParseBlinkieCommand@y^(0+512),w 8866 1530 0023 movlb 3 ; select bank3 8867 1531 076E addwf (??_ParseBlinkieCommand+1)^(0+384),w 8868 1532 00EF movwf (??_ParseBlinkieCommand+2)^(0+384) 8869 1533 0086 movwf 6 8870 1534 3003 movlw 3 ; select bank7/8 8871 1535 0087 movwf 7 8872 1536 0024 movlb 4 ; select bank4 8873 1537 084C movf ParseBlinkieCommand@v^(0+512),w 8874 1538 0081 movwf 1 8875 1539 3003 movlw 3 8876 153A 07CD addwf ParseBlinkieCommand@i^(0+512),f 8877 153B 2CCF goto l5951 8878 153C l5953: 8879 8880 ;blinkie_parse.c: 227: if (len>1) { 8881 153C 3002 movlw 2 8882 153D 024E subwf ParseBlinkieCommand@len^(0+512),w 8883 153E 1C03 skipc 8884 153F 2D55 goto l5959 8885 8886 ;blinkie_parse.c: 228: user_id = atoi(&cLine[1]); 8887 1540 084F movf ParseBlinkieCommand@cLine^(0+512),w 8888 1541 3E01 addlw 1 8889 1542 2727 3194 fcall _atoi 8890 1544 0866 movf ?_atoi^(0+128),w 8891 1545 0025 movlb 5 ; select bank5 8892 1546 00EB movwf _user_id^(0+640) 8893 8894 ;blinkie_parse.c: 229: store_settings(demo_mode, user_msg_size, user_id, plockout); 8895 1547 0024 movlb 4 ; select bank4 8896 1548 086F movf _user_msg_size^(0+512),w 8897 1549 0023 movlb 3 ; select bank3 8898 154A 00C9 movwf store_settings@user_msg_size^(0+384) 8899 154B 0025 movlb 5 ; select bank5 8900 154C 086B movf _user_id^(0+640),w 8901 154D 0023 movlb 3 ; select bank3 8902 154E 00CA movwf store_settings@user_id^(0+384) 8903 154F 30E3 movlw _plockout& (0+255) 8904 1550 00CB movwf store_settings@plockout^(0+384) 8905 1551 0025 movlb 5 ; select bank5 8906 1552 086A movf _demo_mode^(0+640),w 8907 1553 264E 3194 fcall _store_settings 8908 1555 l5959: 8909 8910 ;blinkie_parse.c: 230: } 8911 ;blinkie_parse.c: 231: print_settings(demo_mode, user_msg_size, user_id, plockout); 8912 1555 0024 movlb 4 ; select bank4 8913 1556 086F movf _user_msg_size^(0+512),w 8914 1557 0023 movlb 3 ; select bank3 8915 1558 00A9 movwf print_settings@user_msg_size^(0+384) 8916 1559 0025 movlb 5 ; select bank5 8917 155A 086B movf _user_id^(0+640),w 8918 155B 0023 movlb 3 ; select bank3 8919 155C 00AA movwf print_settings@user_id^(0+384) 8920 155D 30E3 movlw _plockout& (0+255) 8921 155E 00AB movwf print_settings@plockout^(0+384) 8922 155F 0025 movlb 5 ; select bank5 8923 1560 086A movf _demo_mode^(0+640),w 8924 1561 2E21 ljmp _print_settings 8925 1562 l5961: 8926 ;blinkie_parse.c: 232: break; 8927 8928 8929 ;blinkie_parse.c: 235: if (p_table == 0) { 8930 1562 08E5 movf _p_table^(0+512),f 8931 1563 1D03 skipz 8932 1564 2D67 goto l5965 8933 8934 ;blinkie_parse.c: 236: run = 0; 8935 1565 0025 movlb 5 ; select bank5 8936 1566 01EC clrf _run^(0+640) 8937 1567 l5965: 8938 8939 ;blinkie_parse.c: 237: } 8940 ;blinkie_parse.c: 238: if (len-1 > 30) { 8941 1567 0024 movlb 4 ; select bank4 8942 1568 084E movf ParseBlinkieCommand@len^(0+512),w 8943 1569 3EFF addlw 255 8944 156A 0023 movlb 3 ; select bank3 8945 156B 00ED movwf ??_ParseBlinkieCommand^(0+384) 8946 156C 30FF movlw 255 8947 156D 1803 skipnc 8948 156E 3000 movlw 0 8949 156F 00EE movwf (??_ParseBlinkieCommand^(0+384)+1) 8950 1570 086E movf (??_ParseBlinkieCommand+1)^(0+384),w 8951 1571 3A80 xorlw 128 8952 1572 00EF movwf (??_ParseBlinkieCommand+2)^(0+384) 8953 1573 3080 movlw 128 8954 1574 026F subwf (??_ParseBlinkieCommand+2)^(0+384),w 8955 1575 1D03 skipz 8956 1576 2D79 goto u5075 8957 1577 301F movlw 31 8958 1578 026D subwf ??_ParseBlinkieCommand^(0+384),w 8959 1579 u5075: 8960 1579 1C03 skipc 8961 157A 2D90 goto l5971 8962 8963 ;blinkie_parse.c: 239: erase_flash_mem((uint16_t) &msg2); 8964 157B 30C0 movlw 192 8965 157C 0022 movlb 2 ; select bank2 8966 157D 00EE movwf erase_flash_mem@address^(0+256) 8967 157E 301F movlw 31 8968 157F 00EF movwf (erase_flash_mem@address^(0+256)+1) 8969 1580 26BD 3194 fcall _erase_flash_mem 8970 8971 ;blinkie_parse.c: 240: write_flash_mem((uint16_t) &msg2,&cLine[31]); 8972 1582 30C0 movlw 192 8973 1583 0021 movlb 1 ; select bank1 8974 1584 00E0 movwf write_flash_mem@address^(0+128) 8975 1585 301F movlw 31 8976 1586 00E1 movwf (write_flash_mem@address^(0+128)+1) 8977 1587 0024 movlb 4 ; select bank4 8978 1588 084F movf ParseBlinkieCommand@cLine^(0+512),w 8979 1589 3E1F addlw 31 8980 158A 0021 movlb 1 ; select bank1 8981 158B 00E2 movwf write_flash_mem@buffer^(0+128) 8982 158C 3004 movlw 4 8983 158D 00E3 movwf (write_flash_mem@buffer+1)^(0+128) 8984 158E 26EA 3194 fcall _write_flash_mem 8985 1590 l5971: 8986 8987 ;blinkie_parse.c: 241: } 8988 ;blinkie_parse.c: 243: buffer[0] = 0x03; 8989 1590 3003 movlw 3 8990 1591 0024 movlb 4 ; select bank4 8991 1592 00A0 movwf ParseBlinkieCommand@buffer^(0+512) 8992 8993 ;blinkie_parse.c: 244: buffer[1] = 0x03; 8994 1593 00A1 movwf (ParseBlinkieCommand@buffer^(0+512)+1) 8995 8996 ;blinkie_parse.c: 245: memcpy(&buffer[2],&cLine[1],(len>31)?31:len-1); 8997 1594 3020 movlw 32 8998 1595 024E subwf ParseBlinkieCommand@len^(0+512),w 8999 1596 1803 skipnc 9000 1597 2DA0 goto l5981 9001 1598 084E movf ParseBlinkieCommand@len^(0+512),w 9002 1599 00C8 movwf _ParseBlinkieCommand$2191^(0+512) 9003 159A 30FF movlw -1 9004 159B 01C9 clrf (_ParseBlinkieCommand$2191+1)^(0+512) 9005 159C 07C8 addwf _ParseBlinkieCommand$2191^(0+512),f 9006 159D 1C03 skipc 9007 159E 03C9 decf (_ParseBlinkieCommand$2191+1)^(0+512),f 9008 159F 2DA3 goto l5983 9009 15A0 l5981: 9010 15A0 301F movlw 31 9011 15A1 00C8 movwf _ParseBlinkieCommand$2191^(0+512) 9012 15A2 01C9 clrf (_ParseBlinkieCommand$2191+1)^(0+512) 9013 15A3 l5983: 9014 15A3 3022 movlw low (ParseBlinkieCommand@buffer+2) 9015 15A4 0021 movlb 1 ; select bank1 9016 15A5 00E0 movwf memcpy@d1^(0+128) 9017 15A6 3002 movlw high (ParseBlinkieCommand@buffer+2) 9018 15A7 00E1 movwf (memcpy@d1+1)^(0+128) 9019 15A8 0024 movlb 4 ; select bank4 9020 15A9 084F movf ParseBlinkieCommand@cLine^(0+512),w 9021 15AA 3E01 addlw 1 9022 15AB 0021 movlb 1 ; select bank1 9023 15AC 00E2 movwf memcpy@s1^(0+128) 9024 15AD 3004 movlw 4 9025 15AE 00E3 movwf (memcpy@s1+1)^(0+128) 9026 15AF 0024 movlb 4 ; select bank4 9027 15B0 0849 movf (_ParseBlinkieCommand$2191+1)^(0+512),w 9028 15B1 0021 movlb 1 ; select bank1 9029 15B2 01E5 clrf (memcpy@n+1)^(0+128) 9030 15B3 07E5 addwf (memcpy@n+1)^(0+128),f 9031 15B4 0024 movlb 4 ; select bank4 9032 15B5 0848 movf _ParseBlinkieCommand$2191^(0+512),w 9033 15B6 0021 movlb 1 ; select bank1 9034 15B7 01E4 clrf memcpy@n^(0+128) 9035 15B8 07E4 addwf memcpy@n^(0+128),f 9036 15B9 318A 2259 3194 fcall _memcpy 9037 9038 ;blinkie_parse.c: 246: erase_flash_mem((uint16_t) &msg1); 9039 15BC 30A0 movlw 160 9040 15BD 0022 movlb 2 ; select bank2 9041 15BE 00EE movwf erase_flash_mem@address^(0+256) 9042 15BF 301F movlw 31 9043 15C0 00EF movwf (erase_flash_mem@address^(0+256)+1) 9044 15C1 26BD 3194 fcall _erase_flash_mem 9045 9046 ;blinkie_parse.c: 247: write_flash_mem((uint16_t) &msg1,buffer); 9047 15C3 30A0 movlw 160 9048 15C4 0021 movlb 1 ; select bank1 9049 15C5 00E0 movwf write_flash_mem@address^(0+128) 9050 15C6 301F movlw 31 9051 15C7 00E1 movwf (write_flash_mem@address^(0+128)+1) 9052 15C8 3020 movlw low ParseBlinkieCommand@buffer 9053 15C9 00E2 movwf write_flash_mem@buffer^(0+128) 9054 15CA 3002 movlw high ParseBlinkieCommand@buffer 9055 15CB 00E3 movwf (write_flash_mem@buffer+1)^(0+128) 9056 15CC 26EA 3194 fcall _write_flash_mem 9057 9058 ;blinkie_parse.c: 248: user_msg_size = len+2; 9059 15CE 0024 movlb 4 ; select bank4 9060 15CF 084E movf ParseBlinkieCommand@len^(0+512),w 9061 15D0 3E02 addlw 2 9062 15D1 00EF movwf _user_msg_size^(0+512) 9063 9064 ;blinkie_parse.c: 249: store_settings(demo_mode, user_msg_size, user_id, plockout); 9065 15D2 0023 movlb 3 ; select bank3 9066 15D3 00C9 movwf store_settings@user_msg_size^(0+384) 9067 15D4 0025 movlb 5 ; select bank5 9068 15D5 086B movf _user_id^(0+640),w 9069 15D6 0023 movlb 3 ; select bank3 9070 15D7 00CA movwf store_settings@user_id^(0+384) 9071 15D8 30E3 movlw _plockout& (0+255) 9072 15D9 00CB movwf store_settings@plockout^(0+384) 9073 15DA 0025 movlb 5 ; select bank5 9074 15DB 086A movf _demo_mode^(0+640),w 9075 15DC 264E 3194 fcall _store_settings 9076 9077 ;blinkie_parse.c: 250: print_settings(demo_mode, user_msg_size, user_id, plockout); 9078 15DE 0024 movlb 4 ; select bank4 9079 15DF 086F movf _user_msg_size^(0+512),w 9080 15E0 0023 movlb 3 ; select bank3 9081 15E1 00A9 movwf print_settings@user_msg_size^(0+384) 9082 15E2 0025 movlb 5 ; select bank5 9083 15E3 086B movf _user_id^(0+640),w 9084 15E4 0023 movlb 3 ; select bank3 9085 15E5 00AA movwf print_settings@user_id^(0+384) 9086 15E6 30E3 movlw _plockout& (0+255) 9087 15E7 00AB movwf print_settings@plockout^(0+384) 9088 15E8 0025 movlb 5 ; select bank5 9089 15E9 086A movf _demo_mode^(0+640),w 9090 15EA 2621 3194 fcall _print_settings 9091 9092 ;blinkie_parse.c: 251: if (p_table == 0) { 9093 15EC 0024 movlb 4 ; select bank4 9094 15ED 08E5 movf _p_table^(0+512),f 9095 15EE 1D03 skipz 9096 15EF 0008 return 9097 9098 ;blinkie_parse.c: 252: set_pattern(0); 9099 15F0 3000 movlw 0 9100 15F1 279C fcall _set_pattern 9101 9102 ;blinkie_parse.c: 253: run = 1; 9103 15F2 01EC clrf _run^(0+640) 9104 15F3 0AEC incf _run^(0+640),f 9105 15F4 0008 return 9106 15F5 l6001: 9107 9108 ;blinkie_parse.c: 261: debugPackedOut((uint16_t) &pat2, 17); 9109 15F5 3086 movlw 134 9110 15F6 0021 movlb 1 ; select bank1 9111 15F7 00E5 movwf debugPackedOut@address^(0+128) 9112 15F8 301C movlw 28 9113 15F9 00E6 movwf (debugPackedOut@address^(0+128)+1) 9114 15FA 3011 movlw 17 9115 15FB 00E7 movwf debugPackedOut@size^(0+128) 9116 15FC 3192 2232 fcall _debugPackedOut 9117 15FE l6003: 9118 9119 ;blinkie_parse.c: 264: case '?': 9120 ;blinkie_parse.c: 265: menuState = 1; 9121 15FE 0025 movlb 5 ; select bank5 9122 15FF 01D0 clrf _menuState^(0+640) 9123 1600 0AD0 incf _menuState^(0+640),f 9124 9125 ;blinkie_parse.c: 266: break; 9126 1601 0008 return 9127 1602 l6007: 9128 1602 084F movf ParseBlinkieCommand@cLine^(0+512),w 9129 1603 0086 movwf 6 9130 1604 3004 movlw 4 ; select bank8/9 9131 1605 0087 movwf 7 9132 1606 L17: 9133 1606 0801 movf 1,w 9134 9135 ; Switch size 1, requested type "space" 9136 ; Number of cases is 8, Range of values is 63 to 117 9137 ; switch strategies available: 9138 ; Name Instructions Cycles 9139 ; simple_byte 25 13 (average) 9140 ; direct_byte 119 9 (fixed) 9141 ; jumptable 263 9 (fixed) 9142 ; Chosen strategy is simple_byte 9143 1607 3A3F xorlw 63 ; case 63 9144 1608 1903 skipnz 9145 1609 2DFE goto l6003 9146 160A 3A5C xorlw 92 ; case 99 9147 160B 1903 skipnz 9148 160C 2CC6 goto l5937 9149 160D 3A07 xorlw 7 ; case 100 9150 160E 1903 skipnz 9151 160F 2C91 goto l5925 9152 1610 3A0C xorlw 12 ; case 104 9153 1611 1903 skipnz 9154 1612 2DFE goto l6003 9155 1613 3A05 xorlw 5 ; case 109 9156 1614 1903 skipnz 9157 1615 2D62 goto l5961 9158 1616 3A1D xorlw 29 ; case 112 9159 1617 1903 skipnz 9160 1618 2C3A goto l5899 9161 1619 3A02 xorlw 2 ; case 114 9162 161A 1903 skipnz 9163 161B 2C6A goto l5913 9164 161C 3A07 xorlw 7 ; case 117 9165 161D 1903 skipnz 9166 161E 2D3C goto l5953 9167 161F 2DF5 goto l6001 9168 1620 0008 return 9169 1621 __end_of_ParseBlinkieCommand: 9170 1621 __ptext27: 9171 ;; *************** function _print_settings ***************** 9172 ;; Defined at: 9173 ;; line 106 in file "../blinkie_parse.c" 9174 ;; Parameters: Size Location Type 9175 ;; demo_mode 1 wreg unsigned char 9176 ;; user_msg_siz 1 9[BANK3 ] unsigned char 9177 ;; user_id 1 10[BANK3 ] unsigned char 9178 ;; plockout 1 11[BANK3 ] PTR unsigned char 9179 ;; -> plockout(4), 9180 ;; Auto vars: Size Location Type 9181 ;; demo_mode 1 72[BANK3 ] unsigned char 9182 ;; buffer 60 12[BANK3 ] unsigned char [60] 9183 ;; Return value: Size Location Type 9184 ;; None void 9185 ;; Registers used: 9186 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 9187 ;; Tracked objects: 9188 ;; On entry : 1F/5 9189 ;; On exit : 1F/1 9190 ;; Unchanged: 0/0 9191 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9192 ;; Params: 0 0 0 0 3 0 0 0 0 0 0 0 +0 0 9193 ;; Locals: 0 0 0 0 61 0 0 0 0 0 0 0 +0 0 9194 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 9195 ;; Totals: 0 0 0 0 64 0 0 0 0 0 0 0 +0 0 9196 ;;Total ram usage: 64 bytes 9197 ;; Hardware stack levels used: 1 9198 ;; Hardware stack levels required when called: 12 9199 ;; This function calls: 9200 ;; _debugOut 9201 ;; _sprintf 9202 ;; This function is called by: 9203 ;; _ParseBlinkieCommand 9204 ;; This function uses a non-reentrant model 9205 ;; 9206 9207 9208 ;psect for function _print_settings 9209 1621 _print_settings: 9210 9211 ;incstack = 0 9212 ; Regs used in _print_settings: [wreg-fsr1h+status,2+status,0+pclath+cstack] 9213 ;print_settings@demo_mode stored from wreg 9214 1621 0023 movlb 3 ; select bank3 9215 1622 00E8 movwf print_settings@demo_mode^(0+384) 9216 9217 ;blinkie_parse.c: 107: char buffer[60]; 9218 ;blinkie_parse.c: 109: sprintf(buffer,"P=%d, D=%d, M=%d, U=%d, R=%d\r\n", 9219 ;blinkie_parse.c: 110: p_table, demo_mode, user_msg_size, user_id, run); 9220 1623 30AC movlw low print_settings@buffer 9221 1624 0022 movlb 2 ; select bank2 9222 1625 00E0 movwf sprintf@sp^(0+256) 9223 1626 3001 movlw high print_settings@buffer 9224 1627 00E1 movwf (sprintf@sp+1)^(0+256) 9225 1628 30CB movlw low (STR_2| (0+32768)) 9226 1629 00E2 movwf sprintf@f^(0+256) 9227 162A 309E movlw high (STR_2| (0+32768)) 9228 162B 00E3 movwf (sprintf@f^(0+256)+1) 9229 162C 0024 movlb 4 ; select bank4 9230 162D 0865 movf _p_table^(0+512),w 9231 162E 0022 movlb 2 ; select bank2 9232 162F 00E4 movwf (?_sprintf^(0+256)+4) 9233 1630 01E5 clrf ((?_sprintf+1)^(0+256)+4) 9234 1631 0023 movlb 3 ; select bank3 9235 1632 0868 movf print_settings@demo_mode^(0+384),w 9236 1633 0022 movlb 2 ; select bank2 9237 1634 00E6 movwf (?_sprintf^(0+256)+6) 9238 1635 01E7 clrf ((?_sprintf+1)^(0+256)+6) 9239 1636 0023 movlb 3 ; select bank3 9240 1637 0829 movf print_settings@user_msg_size^(0+384),w 9241 1638 0022 movlb 2 ; select bank2 9242 1639 00E8 movwf (?_sprintf^(0+256)+8) 9243 163A 01E9 clrf ((?_sprintf+1)^(0+256)+8) 9244 163B 0023 movlb 3 ; select bank3 9245 163C 082A movf print_settings@user_id^(0+384),w 9246 163D 0022 movlb 2 ; select bank2 9247 163E 00EA movwf (?_sprintf^(0+256)+10) 9248 163F 01EB clrf ((?_sprintf+1)^(0+256)+10) 9249 1640 0025 movlb 5 ; select bank5 9250 1641 086C movf _run^(0+640),w 9251 1642 0022 movlb 2 ; select bank2 9252 1643 00EC movwf (?_sprintf^(0+256)+12) 9253 1644 01ED clrf ((?_sprintf+1)^(0+256)+12) 9254 1645 3192 2288 3194 fcall _sprintf 9255 9256 ;blinkie_parse.c: 111: debugOut(buffer); 9257 1648 30AC movlw low print_settings@buffer 9258 1649 0021 movlb 1 ; select bank1 9259 164A 00E5 movwf debugOut@debugString^(0+128) 9260 164B 3001 movlw high print_settings@buffer 9261 164C 00E6 movwf (debugOut@debugString+1)^(0+128) 9262 164D 2E78 ljmp l5449 9263 164E __end_of_print_settings: 9264 164E __ptext23: 9265 ;; *************** function _store_settings ***************** 9266 ;; Defined at: 9267 ;; line 91 in file "../blinkie_parse.c" 9268 ;; Parameters: Size Location Type 9269 ;; demo_mode 1 wreg unsigned char 9270 ;; user_msg_siz 1 41[BANK3 ] unsigned char 9271 ;; user_id 1 42[BANK3 ] unsigned char 9272 ;; plockout 1 43[BANK3 ] PTR unsigned char 9273 ;; -> plockout(4), 9274 ;; Auto vars: Size Location Type 9275 ;; demo_mode 1 76[BANK3 ] unsigned char 9276 ;; buffer 32 44[BANK3 ] unsigned char [32] 9277 ;; Return value: Size Location Type 9278 ;; None void 9279 ;; Registers used: 9280 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 9281 ;; Tracked objects: 9282 ;; On entry : 1F/5 9283 ;; On exit : 1F/3 9284 ;; Unchanged: 0/0 9285 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9286 ;; Params: 0 0 0 0 3 0 0 0 0 0 0 0 +0 0 9287 ;; Locals: 0 0 0 0 33 0 0 0 0 0 0 0 +0 0 9288 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 9289 ;; Totals: 0 0 0 0 36 0 0 0 0 0 0 0 +0 0 9290 ;;Total ram usage: 36 bytes 9291 ;; Hardware stack levels used: 1 9292 ;; Hardware stack levels required when called: 13 9293 ;; This function calls: 9294 ;; _erase_flash_mem 9295 ;; _write_flash_mem 9296 ;; This function is called by: 9297 ;; _ParseBlinkieCommand 9298 ;; This function uses a non-reentrant model 9299 ;; 9300 9301 9302 ;psect for function _store_settings 9303 164E _store_settings: 9304 9305 ;incstack = 0 9306 ; Regs used in _store_settings: [wreg-fsr1h+status,2+status,0+pclath+cstack] 9307 ;store_settings@demo_mode stored from wreg 9308 164E 0023 movlb 3 ; select bank3 9309 164F 00EC movwf store_settings@demo_mode^(0+384) 9310 9311 ;blinkie_parse.c: 92: char buffer[32]; 9312 ;blinkie_parse.c: 94: buffer[0] = demo_mode; 9313 1650 00CC movwf store_settings@buffer^(0+384) 9314 9315 ;blinkie_parse.c: 95: buffer[1] = user_msg_size; 9316 1651 0849 movf store_settings@user_msg_size^(0+384),w 9317 1652 00CD movwf (store_settings@buffer^(0+384)+1) 9318 9319 ;blinkie_parse.c: 96: buffer[2] = user_id; 9320 1653 084A movf store_settings@user_id^(0+384),w 9321 1654 00CE movwf (store_settings@buffer^(0+384)+2) 9322 9323 ;blinkie_parse.c: 97: buffer[3] = plockout[0]; 9324 1655 084B movf store_settings@plockout^(0+384),w 9325 1656 0086 movwf 6 9326 1657 3002 movlw 2 ; select bank4/5 9327 1658 0087 movwf 7 9328 1659 0801 movf 1,w 9329 165A 00CF movwf (store_settings@buffer^(0+384)+3) 9330 9331 ;blinkie_parse.c: 98: buffer[4] = plockout[1]; 9332 165B 084B movf store_settings@plockout^(0+384),w 9333 165C 0086 movwf 6 9334 165D 3F41 moviw [1]fsr1 9335 165E 00D0 movwf (store_settings@buffer^(0+384)+4) 9336 9337 ;blinkie_parse.c: 99: buffer[5] = plockout[2]; 9338 165F 084B movf store_settings@plockout^(0+384),w 9339 1660 0086 movwf 6 9340 1661 3F42 moviw [2]fsr1 9341 1662 00D1 movwf (store_settings@buffer^(0+384)+5) 9342 9343 ;blinkie_parse.c: 100: buffer[6] = plockout[3]; 9344 1663 084B movf store_settings@plockout^(0+384),w 9345 1664 0086 movwf 6 9346 1665 3F43 moviw [3]fsr1 9347 1666 00D2 movwf (store_settings@buffer^(0+384)+6) 9348 9349 ;blinkie_parse.c: 102: erase_flash_mem((uint16_t) &setting); 9350 1667 30E0 movlw 224 9351 1668 0022 movlb 2 ; select bank2 9352 1669 00EE movwf erase_flash_mem@address^(0+256) 9353 166A 301F movlw 31 9354 166B 00EF movwf (erase_flash_mem@address^(0+256)+1) 9355 166C 26BD 3194 fcall _erase_flash_mem 9356 9357 ;blinkie_parse.c: 103: write_flash_mem((uint16_t) &setting,buffer); 9358 166E 30E0 movlw 224 9359 166F 0021 movlb 1 ; select bank1 9360 1670 00E0 movwf write_flash_mem@address^(0+128) 9361 1671 301F movlw 31 9362 1672 00E1 movwf (write_flash_mem@address^(0+128)+1) 9363 1673 30CC movlw low store_settings@buffer 9364 1674 00E2 movwf write_flash_mem@buffer^(0+128) 9365 1675 3001 movlw high store_settings@buffer 9366 1676 00E3 movwf (write_flash_mem@buffer+1)^(0+128) 9367 1677 2EEA ljmp l5383 9368 1678 __end_of_store_settings: 9369 1678 __ptext31: 9370 ;; *************** function _debugOut ***************** 9371 ;; Defined at: 9372 ;; line 69 in file "../comm.c" 9373 ;; Parameters: Size Location Type 9374 ;; debugString 2 5[BANK1 ] PTR unsigned char 9375 ;; -> ParseBlinkieCommand@buffer(40), print_settings@buffer(60), 9376 ;; Auto vars: Size Location Type 9377 ;; i 1 13[BANK1 ] unsigned char 9378 ;; size 1 12[BANK1 ] unsigned char 9379 ;; Return value: Size Location Type 9380 ;; None void 9381 ;; Registers used: 9382 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 9383 ;; Tracked objects: 9384 ;; On entry : 1F/1 9385 ;; On exit : 1F/1 9386 ;; Unchanged: 0/0 9387 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9388 ;; Params: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9389 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9390 ;; Temps: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 9391 ;; Totals: 0 0 9 0 0 0 0 0 0 0 0 0 +0 0 9392 ;;Total ram usage: 9 bytes 9393 ;; Hardware stack levels used: 1 9394 ;; Hardware stack levels required when called: 11 9395 ;; This function calls: 9396 ;; ___lbmod 9397 ;; _strlen 9398 ;; This function is called by: 9399 ;; _print_settings 9400 ;; _ParseBlinkieCommand 9401 ;; This function uses a non-reentrant model 9402 ;; 9403 9404 9405 ;psect for function _debugOut 9406 1678 _debugOut: 9407 1678 l5449: 9408 ;incstack = 0 9409 ; Regs used in _debugOut: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 9410 9411 9412 ;comm.c: 70: uint8_t size = strlen(debugString); 9413 1678 0866 movf (debugOut@debugString+1)^(0+128),w 9414 1679 01E1 clrf (strlen@s+1)^(0+128) 9415 167A 07E1 addwf (strlen@s+1)^(0+128),f 9416 167B 0865 movf debugOut@debugString^(0+128),w 9417 167C 01E0 clrf strlen@s^(0+128) 9418 167D 07E0 addwf strlen@s^(0+128),f 9419 167E 2784 3194 fcall _strlen 9420 1680 0860 movf ?_strlen^(0+128),w 9421 1681 00EC movwf debugOut@size^(0+128) 9422 9423 ;comm.c: 71: uint8_t i; 9424 ;comm.c: 73: for (i=0;i>8; 9541 16C1 0022 movlb 2 ; select bank2 9542 16C2 086F movf (erase_flash_mem@address+1)^(0+256),w 9543 16C3 0023 movlb 3 ; select bank3 9544 16C4 0092 movwf 18 ;volatile 9545 9546 ;blinkie_parse.c: 71: sprintf(buffer,"ef=%X%X\r\n",PMADRH,PMADRL); 9547 16C5 30A9 movlw low erase_flash_mem@buffer 9548 16C6 0022 movlb 2 ; select bank2 9549 16C7 00E0 movwf sprintf@sp^(0+256) 9550 16C8 3001 movlw high erase_flash_mem@buffer 9551 16C9 00E1 movwf (sprintf@sp+1)^(0+256) 9552 16CA 300D movlw low (STR_1| (0+32768)) 9553 16CB 00E2 movwf sprintf@f^(0+256) 9554 16CC 309F movlw high (STR_1| (0+32768)) 9555 16CD 00E3 movwf (sprintf@f^(0+256)+1) 9556 16CE 0023 movlb 3 ; select bank3 9557 16CF 0812 movf 18,w ;volatile 9558 16D0 0022 movlb 2 ; select bank2 9559 16D1 00E4 movwf (?_sprintf^(0+256)+4) 9560 16D2 01E5 clrf ((?_sprintf+1)^(0+256)+4) 9561 16D3 0023 movlb 3 ; select bank3 9562 16D4 0811 movf 17,w ;volatile 9563 16D5 0022 movlb 2 ; select bank2 9564 16D6 00E6 movwf (?_sprintf^(0+256)+6) 9565 16D7 01E7 clrf ((?_sprintf+1)^(0+256)+6) 9566 16D8 3192 2288 fcall _sprintf 9567 9568 ;blinkie_parse.c: 75: PMCON1bits.CFGS = 0; 9569 16DA 0023 movlb 3 ; select bank3 9570 16DB 1315 bcf 21,6 ;volatile 9571 9572 ;blinkie_parse.c: 76: PMCON1bits.FREE = 1; 9573 16DC 1615 bsf 21,4 ;volatile 9574 9575 ;blinkie_parse.c: 77: PMCON1bits.WREN = 1; 9576 16DD 1515 bsf 21,2 ;volatile 9577 9578 ;blinkie_parse.c: 78: INTCONbits.GIE = 1; 9579 16DE 178B bsf 11,7 ;volatile 9580 9581 ;blinkie_parse.c: 80: PMCON2 = 0x55; 9582 16DF 3055 movlw 85 9583 16E0 0096 movwf 22 ;volatile 9584 9585 ;blinkie_parse.c: 81: PMCON2 = 0xAA; 9586 16E1 30AA movlw 170 9587 16E2 0096 movwf 22 ;volatile 9588 9589 ;blinkie_parse.c: 82: PMCON1bits.WR = 1; 9590 16E3 1495 bsf 21,1 ;volatile 9591 16E4 0000 nop ;# 9592 16E5 0000 nop ;# 9593 9594 ;blinkie_parse.c: 87: PMCON1bits.WREN = 0; 9595 16E6 0023 movlb 3 ; select bank3 9596 16E7 1115 bcf 21,2 ;volatile 9597 9598 ;blinkie_parse.c: 88: INTCONbits.GIE = 1; 9599 16E8 178B bsf 11,7 ;volatile 9600 16E9 0008 return 9601 16EA __end_of_erase_flash_mem: 9602 16EA __ptext24: 9603 ;; *************** function _write_flash_mem ***************** 9604 ;; Defined at: 9605 ;; line 20 in file "../blinkie_parse.c" 9606 ;; Parameters: Size Location Type 9607 ;; address 2 0[BANK1 ] unsigned int 9608 ;; buffer 2 2[BANK1 ] PTR unsigned char 9609 ;; -> ParseBlinkieCommand@buffer(40), store_settings@buffer(32), readBuffer(64), 9610 ;; Auto vars: Size Location Type 9611 ;; i 1 6[BANK1 ] unsigned char 9612 ;; Return value: Size Location Type 9613 ;; None void 9614 ;; Registers used: 9615 ;; wreg, fsr1l, fsr1h, status,2, status,0 9616 ;; Tracked objects: 9617 ;; On entry : 1F/1 9618 ;; On exit : 1F/3 9619 ;; Unchanged: 0/0 9620 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9621 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 9622 ;; Locals: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 9623 ;; Temps: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9624 ;; Totals: 0 0 7 0 0 0 0 0 0 0 0 0 +0 0 9625 ;;Total ram usage: 7 bytes 9626 ;; Hardware stack levels used: 1 9627 ;; Hardware stack levels required when called: 10 9628 ;; This function calls: 9629 ;; Nothing 9630 ;; This function is called by: 9631 ;; _store_settings 9632 ;; _ParseBlinkieCommand 9633 ;; This function uses a non-reentrant model 9634 ;; 9635 9636 9637 ;psect for function _write_flash_mem 9638 16EA _write_flash_mem: 9639 16EA l5383: 9640 ;incstack = 0 9641 ; Regs used in _write_flash_mem: [wreg+fsr1l+fsr1h+status,2+status,0] 9642 9643 9644 ;blinkie_parse.c: 22: uint8_t i; 9645 ;blinkie_parse.c: 24: INTCONbits.GIE = 0; 9646 16EA 138B bcf 11,7 ;volatile 9647 9648 ;blinkie_parse.c: 25: PMCON1bits.CFGS = 0; 9649 16EB 0023 movlb 3 ; select bank3 9650 16EC 1315 bcf 21,6 ;volatile 9651 9652 ;blinkie_parse.c: 26: PMCON1bits.FREE = 0; 9653 16ED 1215 bcf 21,4 ;volatile 9654 9655 ;blinkie_parse.c: 27: PMCON1bits.WREN = 1; 9656 16EE 1515 bsf 21,2 ;volatile 9657 9658 ;blinkie_parse.c: 28: PMCON1bits.LWLO = 1; 9659 16EF 1695 bsf 21,5 ;volatile 9660 9661 ;blinkie_parse.c: 30: PMADRL = address & 0xff; 9662 16F0 0021 movlb 1 ; select bank1 9663 16F1 0860 movf write_flash_mem@address^(0+128),w 9664 16F2 0023 movlb 3 ; select bank3 9665 16F3 0091 movwf 17 ;volatile 9666 9667 ;blinkie_parse.c: 31: PMADRH = address >> 8; 9668 16F4 0021 movlb 1 ; select bank1 9669 16F5 0861 movf (write_flash_mem@address+1)^(0+128),w 9670 16F6 0023 movlb 3 ; select bank3 9671 16F7 0092 movwf 18 ;volatile 9672 9673 ;blinkie_parse.c: 34: for (i=0;i<31;i++) { 9674 16F8 0021 movlb 1 ; select bank1 9675 16F9 01E6 clrf write_flash_mem@i^(0+128) 9676 16FA l5393: 9677 9678 ;blinkie_parse.c: 35: PMDATL = buffer[i]; 9679 16FA 0866 movf write_flash_mem@i^(0+128),w 9680 16FB 00E4 movwf ??_write_flash_mem^(0+128) 9681 16FC 01E5 clrf (??_write_flash_mem^(0+128)+1) 9682 16FD 0762 addwf write_flash_mem@buffer^(0+128),w 9683 16FE 0086 movwf 6 9684 16FF 0865 movf (??_write_flash_mem+1)^(0+128),w 9685 1700 3D63 addwfc (write_flash_mem@buffer+1)^(0+128),w 9686 1701 0087 movwf 7 9687 9688 ;blinkie_parse.c: 36: PMDATH = 0x34; 9689 1702 27FA 3194 fcall PL187 ;call to abstracted procedure 9690 9691 ;blinkie_parse.c: 37: PMCON2 = 0x55; 9692 1704 3055 movlw 85 9693 1705 0096 movwf 22 ;volatile 9694 9695 ;blinkie_parse.c: 38: PMCON2 = 0xAA; 9696 1706 30AA movlw 170 9697 1707 0096 movwf 22 ;volatile 9698 9699 ;blinkie_parse.c: 39: PMCON1bits.WR = 1; 9700 1708 1495 bsf 21,1 ;volatile 9701 1709 0000 nop ;# 9702 170A 0000 nop ;# 9703 9704 ;blinkie_parse.c: 42: PMADRL++; 9705 170B 0023 movlb 3 ; select bank3 9706 170C 0A91 incf 17,f ;volatile 9707 170D 0021 movlb 1 ; select bank1 9708 170E 301F movlw 31 9709 170F 0AE6 incf write_flash_mem@i^(0+128),f 9710 1710 0266 subwf write_flash_mem@i^(0+128),w 9711 1711 1C03 skipc 9712 1712 2EFA goto l5393 9713 9714 ;blinkie_parse.c: 43: } 9715 ;blinkie_parse.c: 44: PMDATL = buffer[31]; 9716 1713 0862 movf write_flash_mem@buffer^(0+128),w 9717 1714 0086 movwf 6 9718 1715 0863 movf (write_flash_mem@buffer+1)^(0+128),w 9719 1716 0087 movwf 7 9720 1717 315F addfsr 1,31 9721 9722 ;blinkie_parse.c: 45: PMDATH = 0x34; 9723 1718 27FA fcall PL187 ;call to abstracted procedure 9724 9725 ;blinkie_parse.c: 48: PMCON1bits.LWLO = 0; 9726 1719 1295 bcf 21,5 ;volatile 9727 171A 0023 banksel 406 ;# 9728 9729 ;blinkie_parse.c: 51: PMCON2 = 0x55; 9730 171B 3055 movlw 85 9731 171C 0023 movlb 3 ; select bank3 9732 171D 0096 movwf 22 ;volatile 9733 9734 ;blinkie_parse.c: 52: PMCON2 = 0xAA; 9735 171E 30AA movlw 170 9736 171F 0096 movwf 22 ;volatile 9737 9738 ;blinkie_parse.c: 53: PMCON1bits.WR = 1; 9739 1720 1495 bsf 21,1 ;volatile 9740 1721 0000 nop ;# 9741 1722 0000 nop ;# 9742 9743 ;blinkie_parse.c: 57: PMCON1bits.WREN = 0; 9744 1723 0023 movlb 3 ; select bank3 9745 1724 1115 bcf 21,2 ;volatile 9746 9747 ;blinkie_parse.c: 58: INTCONbits.GIE = 1; 9748 1725 178B bsf 11,7 ;volatile 9749 1726 0008 return 9750 1727 __end_of_write_flash_mem: 9751 1727 __ptext41: 9752 ;; *************** function _atoi ***************** 9753 ;; Defined at: 9754 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\atoi.c" 9755 ;; Parameters: Size Location Type 9756 ;; s 1 wreg PTR const unsigned char 9757 ;; -> readBuffer(64), 9758 ;; Auto vars: Size Location Type 9759 ;; s 1 15[BANK1 ] PTR const unsigned char 9760 ;; -> readBuffer(64), 9761 ;; a 2 13[BANK1 ] int 9762 ;; sign 1 12[BANK1 ] unsigned char 9763 ;; Return value: Size Location Type 9764 ;; 2 6[BANK1 ] int 9765 ;; Registers used: 9766 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 9767 ;; Tracked objects: 9768 ;; On entry : 1F/4 9769 ;; On exit : 1F/1 9770 ;; Unchanged: 0/0 9771 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9772 ;; Params: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9773 ;; Locals: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 9774 ;; Temps: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 9775 ;; Totals: 0 0 10 0 0 0 0 0 0 0 0 0 +0 0 9776 ;;Total ram usage: 10 bytes 9777 ;; Hardware stack levels used: 1 9778 ;; Hardware stack levels required when called: 11 9779 ;; This function calls: 9780 ;; ___wmul 9781 ;; _isdigit 9782 ;; This function is called by: 9783 ;; _ParseBlinkieCommand 9784 ;; This function uses a non-reentrant model 9785 ;; 9786 9787 9788 ;psect for function _atoi 9789 1727 _atoi: 9790 9791 ;incstack = 0 9792 ; Regs used in _atoi: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 9793 ;atoi@s stored from wreg 9794 1727 0021 movlb 1 ; select bank1 9795 1728 00EF movwf atoi@s^(0+128) 9796 1729 l5673: 9797 1729 27F4 3194 fcall PL171 ;call to abstracted procedure 9798 172B 3A20 xorlw 32 9799 172C 1D03 btfss 3,2 9800 172D 2F30 goto l5675 9801 172E l5671: 9802 172E 0AEF incf atoi@s^(0+128),f 9803 172F 2F29 goto l5673 9804 1730 l5675: 9805 1730 27F4 3194 fcall PL171 ;call to abstracted procedure 9806 1732 3A09 xorlw 9 9807 1733 1903 skipnz 9808 1734 2F2E goto l5671 9809 1735 01ED clrf atoi@a^(0+128) 9810 1736 01EE clrf (atoi@a+1)^(0+128) 9811 1737 01EC clrf atoi@sign^(0+128) 9812 1738 086F movf atoi@s^(0+128),w 9813 1739 0086 movwf 6 9814 173A 0801 movf 1,w 9815 173B 3A2D xorlw 45 9816 173C 1D03 skipz 9817 173D 2F40 goto l5683 9818 173E 0AEC incf atoi@sign^(0+128),f 9819 173F 2F6C goto l5685 9820 1740 l5683: 9821 1740 27F4 3194 fcall PL171 ;call to abstracted procedure 9822 1742 3A2B xorlw 43 9823 1743 1903 btfsc 3,2 9824 1744 2F6C goto l5685 9825 1745 l5691: 9826 1745 086F movf atoi@s^(0+128),w 9827 1746 0086 movwf 6 9828 1747 3004 movlw 4 ; select bank8/9 9829 1748 0087 movwf 7 9830 1749 0801 movf 1,w 9831 174A 27E6 3194 fcall _isdigit 9832 174C 1C03 btfss 3,0 9833 174D 2F6E goto l5693 9834 174E 086F movf atoi@s^(0+128),w 9835 174F 0086 movwf 6 9836 1750 3004 movlw 4 ; select bank8/9 9837 1751 0087 movwf 7 9838 1752 0801 movf 1,w 9839 1753 00E8 movwf ??_atoi^(0+128) 9840 1754 01E9 clrf (??_atoi^(0+128)+1) 9841 1755 086E movf (atoi@a+1)^(0+128),w 9842 1756 01E1 clrf (___wmul@multiplier+1)^(0+128) 9843 1757 07E1 addwf (___wmul@multiplier+1)^(0+128),f 9844 1758 086D movf atoi@a^(0+128),w 9845 1759 01E0 clrf ___wmul@multiplier^(0+128) 9846 175A 07E0 addwf ___wmul@multiplier^(0+128),f 9847 175B 300A movlw 10 9848 175C 00E2 movwf ___wmul@multiplicand^(0+128) 9849 175D 01E3 clrf (___wmul@multiplicand+1)^(0+128) 9850 175E 27CF 3194 fcall ___wmul 9851 1760 0868 movf ??_atoi^(0+128),w 9852 1761 0760 addwf ?___wmul^(0+128),w 9853 1762 00EA movwf (??_atoi+2)^(0+128) 9854 1763 0869 movf (??_atoi+1)^(0+128),w 9855 1764 3D61 addwfc (?___wmul+1)^(0+128),w 9856 1765 00EB movwf (??_atoi+3)^(0+128) 9857 1766 086A movf (??_atoi+2)^(0+128),w 9858 1767 3ED0 addlw 208 9859 1768 00ED movwf atoi@a^(0+128) 9860 1769 30FF movlw 255 9861 176A 3D6B addwfc (??_atoi+3)^(0+128),w 9862 176B 00EE movwf (atoi@a+1)^(0+128) 9863 176C l5685: 9864 176C 0AEF incf atoi@s^(0+128),f 9865 176D 2F45 goto l5691 9866 176E l5693: 9867 176E 086C movf atoi@sign^(0+128),w 9868 176F 1903 btfsc 3,2 9869 1770 2F7D goto l5699 9870 1771 096D comf atoi@a^(0+128),w 9871 1772 00E8 movwf ??_atoi^(0+128) 9872 1773 096E comf (atoi@a+1)^(0+128),w 9873 1774 00E9 movwf (??_atoi^(0+128)+1) 9874 1775 0AE8 incf ??_atoi^(0+128),f 9875 1776 1903 skipnz 9876 1777 0AE9 incf (??_atoi^(0+128)+1),f 9877 1778 0868 movf ??_atoi^(0+128),w 9878 1779 00E6 movwf ?_atoi^(0+128) 9879 177A 0869 movf (??_atoi+1)^(0+128),w 9880 177B 00E7 movwf (?_atoi+1)^(0+128) 9881 177C 0008 return 9882 177D l5699: 9883 177D 086E movf (atoi@a+1)^(0+128),w 9884 177E 01E7 clrf (?_atoi+1)^(0+128) 9885 177F 07E7 addwf (?_atoi+1)^(0+128),f 9886 1780 086D movf atoi@a^(0+128),w 9887 1781 01E6 clrf ?_atoi^(0+128) 9888 1782 07E6 addwf ?_atoi^(0+128),f 9889 1783 0008 return 9890 1784 __end_of_atoi: 9891 1784 __ptext32: 9892 ;; *************** function _strlen ***************** 9893 ;; Defined at: 9894 ;; line 4 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\strlen.c" 9895 ;; Parameters: Size Location Type 9896 ;; s 2 0[BANK1 ] PTR const unsigned char 9897 ;; -> ParseBlinkieCommand@buffer(40), print_settings@buffer(60), readBuffer(64), 9898 ;; Auto vars: Size Location Type 9899 ;; cp 2 2[BANK1 ] PTR const unsigned char 9900 ;; -> ParseBlinkieCommand@buffer(40), print_settings@buffer(60), readBuffer(64), 9901 ;; Return value: Size Location Type 9902 ;; 2 0[BANK1 ] unsigned int 9903 ;; Registers used: 9904 ;; wreg, fsr1l, fsr1h, status,2, status,0 9905 ;; Tracked objects: 9906 ;; On entry : 1F/1 9907 ;; On exit : 1F/1 9908 ;; Unchanged: 0/0 9909 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9910 ;; Params: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9911 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 9912 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 9913 ;; Totals: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 9914 ;;Total ram usage: 4 bytes 9915 ;; Hardware stack levels used: 1 9916 ;; Hardware stack levels required when called: 10 9917 ;; This function calls: 9918 ;; Nothing 9919 ;; This function is called by: 9920 ;; _ParseBlinkieCommand 9921 ;; _debugOut 9922 ;; This function uses a non-reentrant model 9923 ;; 9924 9925 9926 ;psect for function _strlen 9927 1784 _strlen: 9928 9929 ;incstack = 0 9930 ; Regs used in _strlen: [wreg+fsr1l+fsr1h+status,2+status,0] 9931 1784 0861 movf (strlen@s+1)^(0+128),w 9932 1785 01E3 clrf (strlen@cp+1)^(0+128) 9933 1786 07E3 addwf (strlen@cp+1)^(0+128),f 9934 1787 0860 movf strlen@s^(0+128),w 9935 1788 01E2 clrf strlen@cp^(0+128) 9936 1789 07E2 addwf strlen@cp^(0+128),f 9937 178A l5191: 9938 178A 0862 movf strlen@cp^(0+128),w 9939 178B 0086 movwf 6 9940 178C 0863 movf (strlen@cp+1)^(0+128),w 9941 178D 0087 movwf 7 9942 178E 0881 movf 1,f 9943 178F 1903 btfsc 3,2 9944 1790 2F95 goto l5193 9945 1791 0AE2 incf strlen@cp^(0+128),f 9946 1792 1903 skipnz 9947 1793 0AE3 incf (strlen@cp+1)^(0+128),f 9948 1794 2F8A goto l5191 9949 1795 l5193: 9950 1795 0860 movf strlen@s^(0+128),w 9951 1796 0262 subwf strlen@cp^(0+128),w 9952 1797 00E0 movwf ?_strlen^(0+128) 9953 1798 0861 movf (strlen@s+1)^(0+128),w 9954 1799 3B63 subwfb (strlen@cp+1)^(0+128),w 9955 179A 00E1 movwf (?_strlen+1)^(0+128) 9956 179B 0008 return 9957 179C __end_of_strlen: 9958 179C __ptext26: 9959 ;; *************** function _set_pattern ***************** 9960 ;; Defined at: 9961 ;; line 278 in file "../pattern_engine.c" 9962 ;; Parameters: Size Location Type 9963 ;; id 1 wreg unsigned char 9964 ;; Auto vars: Size Location Type 9965 ;; id 1 5[BANK1 ] unsigned char 9966 ;; Return value: Size Location Type 9967 ;; None void 9968 ;; Registers used: 9969 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 9970 ;; Tracked objects: 9971 ;; On entry : 1A/1 9972 ;; On exit : 1F/5 9973 ;; Unchanged: 0/0 9974 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 9975 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 9976 ;; Locals: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 9977 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 9978 ;; Totals: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 9979 ;;Total ram usage: 1 bytes 9980 ;; Hardware stack levels used: 1 9981 ;; Hardware stack levels required when called: 11 9982 ;; This function calls: 9983 ;; ___bmul 9984 ;; ___lbmod 9985 ;; _setTopOfPattern 9986 ;; This function is called by: 9987 ;; _ParseBlinkieCommand 9988 ;; This function uses a non-reentrant model 9989 ;; 9990 9991 9992 ;psect for function _set_pattern 9993 179C _set_pattern: 9994 9995 ;incstack = 0 9996 ; Regs used in _set_pattern: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 9997 ;set_pattern@id stored from wreg 9998 179C 0021 movlb 1 ; select bank1 9999 179D 00E5 movwf set_pattern@id^(0+128) 10000 10001 ;pattern_engine.c: 279: p_table = id % 11; 10002 179E 300B movlw 11 10003 179F 00E0 movwf ___lbmod@divisor^(0+128) 10004 17A0 0865 movf set_pattern@id^(0+128),w 10005 17A1 27B6 fcall ___lbmod 10006 17A2 0024 movlb 4 ; select bank4 10007 17A3 00E5 movwf _p_table^(0+512) 10008 17A4 i5L__ptext39: 10009 ;pattern_engine.c: 280: setTopOfPattern(); 10010 10011 10012 ;psect for function _setTopOfPattern 10013 17A4 i5L_setTopOfPattern: 10014 17A4 i5Ll5465: 10015 10016 ;pattern_access.c: 48: p_count = 0; 10017 17A4 0025 movlb 5 ; select bank5 10018 17A5 01BB clrf _p_count^(0+640) 10019 17A6 01BC clrf (_p_count+1)^(0+640) 10020 17A7 i5Ll969: 10021 10022 ;pattern_engine.c: 281: demo_loops = patterns[p_table].loops; 10023 17A7 3005 movlw 5 10024 17A8 0021 movlb 1 ; select bank1 10025 17A9 00E0 movwf ___bmul@multiplicand^(0+128) 10026 17AA 0024 movlb 4 ; select bank4 10027 17AB 0865 movf _p_table^(0+512),w 10028 17AC 318F 2703 fcall ___bmul 10029 17AE 3E24 addlw (_patterns+4)& (0+255) 10030 17AF 0086 movwf 6 10031 17B0 3004 movlw 4 ; select bank8/9 10032 17B1 0087 movwf 7 10033 17B2 0801 movf 1,w 10034 17B3 0025 movlb 5 ; select bank5 10035 17B4 00CE movwf _demo_loops^(0+640) 10036 17B5 0008 return 10037 17B6 __end_of_set_pattern: 10038 17B6 __ptext37: 10039 ;; *************** function ___lbmod ***************** 10040 ;; Defined at: 10041 ;; line 4 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\lbmod.c" 10042 ;; Parameters: Size Location Type 10043 ;; dividend 1 wreg unsigned char 10044 ;; divisor 1 0[BANK1 ] unsigned char 10045 ;; Auto vars: Size Location Type 10046 ;; dividend 1 2[BANK1 ] unsigned char 10047 ;; rem 1 4[BANK1 ] unsigned char 10048 ;; counter 1 3[BANK1 ] unsigned char 10049 ;; Return value: Size Location Type 10050 ;; 1 wreg unsigned char 10051 ;; Registers used: 10052 ;; wreg, status,2, status,0 10053 ;; Tracked objects: 10054 ;; On entry : 1A/1 10055 ;; On exit : 1F/1 10056 ;; Unchanged: 0/0 10057 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10058 ;; Params: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 10059 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 10060 ;; Temps: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 10061 ;; Totals: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 10062 ;;Total ram usage: 5 bytes 10063 ;; Hardware stack levels used: 1 10064 ;; Hardware stack levels required when called: 10 10065 ;; This function calls: 10066 ;; Nothing 10067 ;; This function is called by: 10068 ;; _set_pattern 10069 ;; _debugOut 10070 ;; _debugPackedOut 10071 ;; This function uses a non-reentrant model 10072 ;; 10073 10074 10075 ;psect for function ___lbmod 10076 17B6 ___lbmod: 10077 10078 ;incstack = 0 10079 ; Regs used in ___lbmod: [wreg+status,2+status,0] 10080 ;___lbmod@dividend stored from wreg 10081 17B6 0021 movlb 1 ; select bank1 10082 17B7 00E2 movwf ___lbmod@dividend^(0+128) 10083 17B8 3008 movlw 8 10084 17B9 00E3 movwf ___lbmod@counter^(0+128) 10085 17BA 01E4 clrf ___lbmod@rem^(0+128) 10086 17BB l5201: 10087 17BB 0862 movf ___lbmod@dividend^(0+128),w 10088 17BC 00E1 movwf ??___lbmod^(0+128) 10089 17BD 3007 movlw 7 10090 17BE u4215: 10091 17BE 36E1 lsrf ??___lbmod^(0+128),f 10092 17BF 0B89 decfsz 9,f 10093 17C0 2FBE goto u4215 10094 17C1 3564 lslf ___lbmod@rem^(0+128),w 10095 17C2 0461 iorwf ??___lbmod^(0+128),w 10096 17C3 00E4 movwf ___lbmod@rem^(0+128) 10097 17C4 35E2 lslf ___lbmod@dividend^(0+128),f 10098 17C5 0860 movf ___lbmod@divisor^(0+128),w 10099 17C6 0264 subwf ___lbmod@rem^(0+128),w 10100 17C7 1C03 skipc 10101 17C8 2FCB goto l5209 10102 17C9 0860 movf ___lbmod@divisor^(0+128),w 10103 17CA 02E4 subwf ___lbmod@rem^(0+128),f 10104 17CB l5209: 10105 17CB 0BE3 decfsz ___lbmod@counter^(0+128),f 10106 17CC 2FBB goto l5201 10107 17CD 0864 movf ___lbmod@rem^(0+128),w 10108 17CE 0008 return 10109 17CF __end_of___lbmod: 10110 17CF __ptext43: 10111 ;; *************** function ___wmul ***************** 10112 ;; Defined at: 10113 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\Umul16.c" 10114 ;; Parameters: Size Location Type 10115 ;; multiplier 2 0[BANK1 ] unsigned int 10116 ;; multiplicand 2 2[BANK1 ] unsigned int 10117 ;; Auto vars: Size Location Type 10118 ;; product 2 4[BANK1 ] unsigned int 10119 ;; Return value: Size Location Type 10120 ;; 2 0[BANK1 ] unsigned int 10121 ;; Registers used: 10122 ;; wreg, status,2, status,0 10123 ;; Tracked objects: 10124 ;; On entry : 1F/1 10125 ;; On exit : 1F/1 10126 ;; Unchanged: 0/0 10127 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10128 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 10129 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 10130 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10131 ;; Totals: 0 0 6 0 0 0 0 0 0 0 0 0 +0 0 10132 ;;Total ram usage: 6 bytes 10133 ;; Hardware stack levels used: 1 10134 ;; Hardware stack levels required when called: 10 10135 ;; This function calls: 10136 ;; Nothing 10137 ;; This function is called by: 10138 ;; _processChars 10139 ;; _atoi 10140 ;; This function uses a non-reentrant model 10141 ;; 10142 10143 10144 ;psect for function ___wmul 10145 17CF ___wmul: 10146 10147 ;incstack = 0 10148 ; Regs used in ___wmul: [wreg+status,2+status,0] 10149 17CF 01E4 clrf ___wmul@product^(0+128) 10150 17D0 01E5 clrf (___wmul@product+1)^(0+128) 10151 17D1 l5469: 10152 17D1 1C60 btfss ___wmul@multiplier^(0+128),0 10153 17D2 2FD7 goto l5473 10154 17D3 0862 movf ___wmul@multiplicand^(0+128),w 10155 17D4 07E4 addwf ___wmul@product^(0+128),f 10156 17D5 0863 movf (___wmul@multiplicand+1)^(0+128),w 10157 17D6 3DE5 addwfc (___wmul@product+1)^(0+128),f 10158 17D7 l5473: 10159 17D7 35E2 lslf ___wmul@multiplicand^(0+128),f 10160 17D8 0DE3 rlf (___wmul@multiplicand+1)^(0+128),f 10161 17D9 36E1 lsrf (___wmul@multiplier+1)^(0+128),f 10162 17DA 0CE0 rrf ___wmul@multiplier^(0+128),f 10163 17DB 0861 movf (___wmul@multiplier+1)^(0+128),w 10164 17DC 0460 iorwf ___wmul@multiplier^(0+128),w 10165 17DD 1D03 skipz 10166 17DE 2FD1 goto l5469 10167 17DF 0865 movf (___wmul@product+1)^(0+128),w 10168 17E0 01E1 clrf (?___wmul+1)^(0+128) 10169 17E1 07E1 addwf (?___wmul+1)^(0+128),f 10170 17E2 0864 movf ___wmul@product^(0+128),w 10171 17E3 01E0 clrf ?___wmul^(0+128) 10172 17E4 07E0 addwf ?___wmul^(0+128),f 10173 17E5 0008 return 10174 17E6 __end_of___wmul: 10175 17E6 __ptext42: 10176 ;; *************** function _isdigit ***************** 10177 ;; Defined at: 10178 ;; line 8 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\isdigit.c" 10179 ;; Parameters: Size Location Type 10180 ;; c 1 wreg unsigned char 10181 ;; Auto vars: Size Location Type 10182 ;; c 1 1[BANK1 ] unsigned char 10183 ;; Return value: Size Location Type 10184 ;; None void 10185 ;; Registers used: 10186 ;; wreg, status,2, status,0 10187 ;; Tracked objects: 10188 ;; On entry : 1F/1 10189 ;; On exit : 1F/1 10190 ;; Unchanged: 0/0 10191 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10192 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10193 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 10194 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10195 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 10196 ;;Total ram usage: 2 bytes 10197 ;; Hardware stack levels used: 1 10198 ;; Hardware stack levels required when called: 10 10199 ;; This function calls: 10200 ;; Nothing 10201 ;; This function is called by: 10202 ;; _atoi 10203 ;; This function uses a non-reentrant model 10204 ;; 10205 10206 10207 ;psect for function _isdigit 10208 17E6 _isdigit: 10209 10210 ;incstack = 0 10211 ; Regs used in _isdigit: [wreg+status,2+status,0] 10212 ;isdigit@c stored from wreg 10213 17E6 00E1 movwf isdigit@c^(0+128) 10214 17E7 303A movlw 58 10215 17E8 01E0 clrf _isdigit$2559^(0+128) 10216 17E9 0261 subwf isdigit@c^(0+128),w 10217 17EA 1803 skipnc 10218 17EB 2FF2 goto l5507 10219 17EC 3030 movlw 48 10220 17ED 0261 subwf isdigit@c^(0+128),w 10221 17EE 1C03 skipc 10222 17EF 2FF2 goto l5507 10223 17F0 01E0 clrf _isdigit$2559^(0+128) 10224 17F1 0AE0 incf _isdigit$2559^(0+128),f 10225 17F2 l5507: 10226 17F2 0C60 rrf _isdigit$2559^(0+128),w 10227 17F3 0008 return 10228 17F4 __end_of_isdigit: 10229 17F4 PL171: 10230 17F4 086F movf atoi@s^(0+128),w 10231 17F5 0086 movwf 6 10232 17F6 3004 movlw 4 ; select bank8/9 10233 17F7 0087 movwf 7 10234 17F8 0801 movf 1,w 10235 17F9 0008 return 10236 17FA __end_ofPL171: 10237 17FA PL187: 10238 17FA 0801 movf 1,w 10239 17FB 0023 movlb 3 ; select bank3 10240 17FC 0093 movwf 19 ;volatile 10241 17FD 3034 movlw 52 10242 17FE 0094 movwf 20 ;volatile 10243 17FF 0008 return 10244 1800 __end_ofPL187: 10245 10246 psect text28 10247 1288 __ptext28: 10248 ;; *************** function _sprintf ***************** 10249 ;; Defined at: 10250 ;; line 492 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\doprnt.c" 10251 ;; Parameters: Size Location Type 10252 ;; sp 2 0[BANK2 ] PTR unsigned char 10253 ;; -> ParseBlinkieCommand@buffer(40), print_settings@buffer(60), erase_flash_mem@buffer(32), 10254 ;; f 2 2[BANK2 ] PTR const unsigned char 10255 ;; -> STR_3(18), STR_2(31), STR_1(10), 10256 ;; Auto vars: Size Location Type 10257 ;; idx 1 0[BANK3 ] unsigned char 10258 ;; _val 4 4[BANK3 ] struct . 10259 ;; c 1 8[BANK3 ] char 10260 ;; flag 1 3[BANK3 ] unsigned char 10261 ;; prec 1 2[BANK3 ] char 10262 ;; ap 1 1[BANK3 ] PTR void [1] 10263 ;; -> ?_sprintf(2), 10264 ;; Return value: Size Location Type 10265 ;; 2 0[BANK2 ] int 10266 ;; Registers used: 10267 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 10268 ;; Tracked objects: 10269 ;; On entry : 1F/2 10270 ;; On exit : 1F/2 10271 ;; Unchanged: 0/0 10272 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10273 ;; Params: 0 0 0 14 0 0 0 0 0 0 0 0 +0 0 10274 ;; Locals: 0 0 0 0 9 0 0 0 0 0 0 0 +0 0 10275 ;; Temps: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 10276 ;; Totals: 0 0 4 14 9 0 0 0 0 0 0 0 +0 0 10277 ;;Total ram usage: 27 bytes 10278 ;; Hardware stack levels used: 1 10279 ;; Hardware stack levels required when called: 11 10280 ;; This function calls: 10281 ;; ___lwdiv 10282 ;; ___lwmod 10283 ;; This function is called by: 10284 ;; _erase_flash_mem 10285 ;; _print_settings 10286 ;; _ParseBlinkieCommand 10287 ;; This function uses a non-reentrant model 10288 ;; 10289 10290 10291 ;psect for function _sprintf 10292 1288 _sprintf: 10293 10294 ;doprnt.c: 494: va_list ap; 10295 ;doprnt.c: 499: signed char c; 10296 ;doprnt.c: 506: signed char prec; 10297 ;doprnt.c: 508: unsigned char flag; 10298 ;doprnt.c: 527: union { 10299 ;doprnt.c: 528: unsigned int _val; 10300 ;doprnt.c: 529: struct { 10301 ;doprnt.c: 530: const char * _cp; 10302 ;doprnt.c: 531: unsigned _len; 10303 ;doprnt.c: 532: } _str; 10304 ;doprnt.c: 533: } _val; 10305 ;doprnt.c: 542: *ap = __va_start(); 10306 10307 ;incstack = 0 10308 ; Regs used in _sprintf: [wreg-fsr1h+status,2+status,0+pclath+cstack] 10309 1288 3064 movlw (?_sprintf+4)& (0+255) 10310 1289 0023 movlb 3 ; select bank3 10311 128A 00A1 movwf sprintf@ap^(0+384) 10312 128B l5181: 10313 ;doprnt.c: 545: while(c = *f++) { 10314 10315 128B 0022 movlb 2 ; select bank2 10316 128C 0863 movf (sprintf@f+1)^(0+256),w 10317 128D 0021 movlb 1 ; select bank1 10318 128E 00ED movwf (??_sprintf^(0+128)+1) 10319 128F 0022 movlb 2 ; select bank2 10320 1290 0862 movf sprintf@f^(0+256),w 10321 1291 0021 movlb 1 ; select bank1 10322 1292 00EC movwf ??_sprintf^(0+128) 10323 1293 0022 movlb 2 ; select bank2 10324 1294 0AE2 incf sprintf@f^(0+256),f 10325 1295 1903 skipnz 10326 1296 0AE3 incf (sprintf@f+1)^(0+256),f 10327 1297 0021 movlb 1 ; select bank1 10328 1298 086C movf ??_sprintf^(0+128),w 10329 1299 0084 movwf 4 10330 129A 086D movf (??_sprintf+1)^(0+128),w 10331 129B 0085 movwf 5 10332 129C 0800 movf 0,w ;code access 10333 129D 0023 movlb 3 ; select bank3 10334 129E 00A8 movwf sprintf@c^(0+384) 10335 129F 08A8 movf sprintf@c^(0+384),f 10336 12A0 1903 btfsc 3,2 10337 12A1 2BCD goto l5183 10338 10339 ;doprnt.c: 547: if(c != '%') 10340 12A2 0828 movf sprintf@c^(0+384),w 10341 12A3 3A25 xorlw 37 10342 12A4 1903 skipnz 10343 12A5 2AB3 goto l5107 10344 10345 ;doprnt.c: 549: { 10346 ;doprnt.c: 550: ((*sp++ = (c))); 10347 12A6 0022 movlb 2 ; select bank2 10348 12A7 0860 movf sprintf@sp^(0+256),w 10349 12A8 0086 movwf 6 10350 12A9 0861 movf (sprintf@sp+1)^(0+256),w 10351 12AA 0087 movwf 7 10352 12AB 0023 movlb 3 ; select bank3 10353 12AC 0828 movf sprintf@c^(0+384),w 10354 12AD 0081 movwf 1 10355 12AE 0022 movlb 2 ; select bank2 10356 12AF 0AE0 incf sprintf@sp^(0+256),f 10357 12B0 1903 skipnz 10358 12B1 0AE1 incf (sprintf@sp+1)^(0+256),f 10359 10360 ;doprnt.c: 551: continue; 10361 12B2 2A8B goto l5181 10362 12B3 l5107: 10363 10364 ;doprnt.c: 552: } 10365 ;doprnt.c: 557: flag = 0; 10366 12B3 01A3 clrf sprintf@flag^(0+384) 10367 10368 ;doprnt.c: 644: switch(c = *f++) { 10369 12B4 2AB7 goto l5111 10370 12B5 l1299: 10371 10372 ;doprnt.c: 727: case 'x': 10373 ;doprnt.c: 730: flag |= 0x80; 10374 12B5 17A3 bsf sprintf@flag^(0+384),7 10375 10376 ;doprnt.c: 732: break; 10377 12B6 2ADB goto l1297 10378 12B7 l5111: 10379 12B7 0022 movlb 2 ; select bank2 10380 12B8 0863 movf (sprintf@f+1)^(0+256),w 10381 12B9 0021 movlb 1 ; select bank1 10382 12BA 00ED movwf (??_sprintf^(0+128)+1) 10383 12BB 0022 movlb 2 ; select bank2 10384 12BC 0862 movf sprintf@f^(0+256),w 10385 12BD 0021 movlb 1 ; select bank1 10386 12BE 00EC movwf ??_sprintf^(0+128) 10387 12BF 0022 movlb 2 ; select bank2 10388 12C0 0AE2 incf sprintf@f^(0+256),f 10389 12C1 1903 skipnz 10390 12C2 0AE3 incf (sprintf@f+1)^(0+256),f 10391 12C3 0021 movlb 1 ; select bank1 10392 12C4 086C movf ??_sprintf^(0+128),w 10393 12C5 0084 movwf 4 10394 12C6 086D movf (??_sprintf+1)^(0+128),w 10395 12C7 0085 movwf 5 10396 12C8 0800 movf 0,w ;code access 10397 12C9 0023 movlb 3 ; select bank3 10398 12CA 00A8 movwf sprintf@c^(0+384) 10399 10400 ; Switch size 1, requested type "space" 10401 ; Number of cases is 5, Range of values is 0 to 120 10402 ; switch strategies available: 10403 ; Name Instructions Cycles 10404 ; simple_byte 16 9 (average) 10405 ; direct_byte 248 6 (fixed) 10406 ; jumptable 260 6 (fixed) 10407 ; Chosen strategy is simple_byte 10408 12CB 3A00 xorlw 0 ; case 0 10409 12CC 1903 skipnz 10410 12CD 2BCD goto l5183 10411 12CE 3A58 xorlw 88 ; case 88 10412 12CF 1903 skipnz 10413 12D0 2AB5 goto l1299 10414 12D1 3A3C xorlw 60 ; case 100 10415 12D2 1903 skipnz 10416 12D3 2ADB goto l1297 10417 12D4 3A0D xorlw 13 ; case 105 10418 12D5 1903 skipnz 10419 12D6 2ADB goto l1297 10420 12D7 3A11 xorlw 17 ; case 120 10421 12D8 1903 skipnz 10422 12D9 2AB5 goto l1299 10423 12DA 2A8B goto l5181 10424 12DB l1297: 10425 10426 ;doprnt.c: 1260: if((flag & 0x80) == 0x00) 10427 12DB 1BA3 btfsc sprintf@flag^(0+384),7 10428 12DC 2AF1 goto l5123 10429 10430 ;doprnt.c: 1262: { 10431 ;doprnt.c: 1268: _val._val = (int)(*(int *)__va_arg((*(int **)ap), (int)0)); 10432 12DD 0821 movf sprintf@ap^(0+384),w 10433 12DE 0086 movwf 6 10434 12DF 3001 movlw 1 ; select bank2/3 10435 12E0 0087 movwf 7 10436 12E1 3F40 moviw [0]fsr1 10437 12E2 00A4 movwf sprintf@_val^(0+384) 10438 12E3 3F41 moviw [1]fsr1 10439 12E4 00A5 movwf (sprintf@_val+1)^(0+384) 10440 12E5 0AA1 incf sprintf@ap^(0+384),f 10441 12E6 0AA1 incf sprintf@ap^(0+384),f 10442 10443 ;doprnt.c: 1270: if((int)_val._val < 0) { 10444 12E7 1FA5 btfss (sprintf@_val+1)^(0+384),7 10445 12E8 2B42 goto l5153 10446 10447 ;doprnt.c: 1271: flag |= 0x03; 10448 12E9 3003 movlw 3 10449 12EA 04A3 iorwf sprintf@flag^(0+384),f 10450 10451 ;doprnt.c: 1272: _val._val = -_val._val; 10452 12EB 09A4 comf sprintf@_val^(0+384),f 10453 12EC 09A5 comf (sprintf@_val+1)^(0+384),f 10454 12ED 0AA4 incf sprintf@_val^(0+384),f 10455 12EE 1903 skipnz 10456 12EF 0AA5 incf (sprintf@_val+1)^(0+384),f 10457 12F0 2B42 goto l5153 10458 12F1 l5123: 10459 10460 ;doprnt.c: 1277: else 10461 ;doprnt.c: 1282: { 10462 ;doprnt.c: 1295: _val._val = (*(unsigned *)__va_arg((*(unsigned **)ap), (unsigned)0)); 10463 12F1 0821 movf sprintf@ap^(0+384),w 10464 12F2 0086 movwf 6 10465 12F3 3001 movlw 1 ; select bank2/3 10466 12F4 0087 movwf 7 10467 12F5 3F40 moviw [0]fsr1 10468 12F6 00A4 movwf sprintf@_val^(0+384) 10469 12F7 3F41 moviw [1]fsr1 10470 12F8 00A5 movwf (sprintf@_val+1)^(0+384) 10471 12F9 0AA1 incf sprintf@ap^(0+384),f 10472 12FA 0AA1 incf sprintf@ap^(0+384),f 10473 12FB 2B42 goto l5153 10474 12FC l1305: 10475 ;doprnt.c: 1308: case 0x00: 10476 10477 10478 ;doprnt.c: 1314: for(c = 1 ; c != sizeof dpowers/sizeof dpowers[0] ; c++) 10479 12FC 01A8 clrf sprintf@c^(0+384) 10480 12FD 0AA8 incf sprintf@c^(0+384),f 10481 12FE l5131: 10482 10483 ;doprnt.c: 1315: if(_val._val < dpowers[c]) 10484 12FE 0828 movf sprintf@c^(0+384),w 10485 12FF 0021 movlb 1 ; select bank1 10486 1300 00EC movwf ??_sprintf^(0+128) 10487 1301 3000 movlw low (_dpowers| (0+32768)) 10488 1302 01ED clrf (??_sprintf^(0+128)+1) 10489 1303 35EC lslf ??_sprintf^(0+128),f 10490 1304 0DED rlf (??_sprintf^(0+128)+1),f 10491 1305 076C addwf ??_sprintf^(0+128),w 10492 1306 0084 movwf 4 10493 1307 309E movlw high (_dpowers| (0+32768)) 10494 1308 3D6D addwfc (??_sprintf+1)^(0+128),w 10495 1309 0085 movwf 5 10496 130A 3F00 moviw [0]fsr0 10497 130B 00EE movwf (??_sprintf+2)^(0+128) 10498 130C 3F01 moviw [1]fsr0 10499 130D 00EF movwf ((??_sprintf+2)^(0+128)+1) 10500 130E 086F movf (??_sprintf+3)^(0+128),w 10501 130F 0023 movlb 3 ; select bank3 10502 1310 0225 subwf (sprintf@_val+1)^(0+384),w 10503 1311 1D03 skipz 10504 1312 2B17 goto u4135 10505 1313 0021 movlb 1 ; select bank1 10506 1314 086E movf (??_sprintf+2)^(0+128),w 10507 1315 0023 movlb 3 ; select bank3 10508 1316 0224 subwf sprintf@_val^(0+384),w 10509 1317 u4135: 10510 1317 1C03 btfss 3,0 10511 1318 2B4A goto l5155 10512 1319 0AA8 incf sprintf@c^(0+384),f 10513 131A 0828 movf sprintf@c^(0+384),w 10514 131B 3A05 xorlw 5 10515 131C 1903 btfsc 3,2 10516 131D 2B4A goto l5155 10517 131E 2AFE goto l5131 10518 131F l1310: 10519 ;doprnt.c: 1323: case 0x80: 10520 10521 10522 ;doprnt.c: 1325: for(c = 1 ; c != sizeof hexpowers/sizeof hexpowers[0] ; c++) 10523 131F 01A8 clrf sprintf@c^(0+384) 10524 1320 0AA8 incf sprintf@c^(0+384),f 10525 1321 l5143: 10526 10527 ;doprnt.c: 1326: if(_val._val < hexpowers[c]) 10528 1321 0828 movf sprintf@c^(0+384),w 10529 1322 0021 movlb 1 ; select bank1 10530 1323 00EC movwf ??_sprintf^(0+128) 10531 1324 300A movlw low (_hexpowers| (0+32768)) 10532 1325 01ED clrf (??_sprintf^(0+128)+1) 10533 1326 35EC lslf ??_sprintf^(0+128),f 10534 1327 0DED rlf (??_sprintf^(0+128)+1),f 10535 1328 076C addwf ??_sprintf^(0+128),w 10536 1329 0084 movwf 4 10537 132A 309E movlw high (_hexpowers| (0+32768)) 10538 132B 3D6D addwfc (??_sprintf+1)^(0+128),w 10539 132C 0085 movwf 5 10540 132D 3F00 moviw [0]fsr0 10541 132E 00EE movwf (??_sprintf+2)^(0+128) 10542 132F 3F01 moviw [1]fsr0 10543 1330 00EF movwf ((??_sprintf+2)^(0+128)+1) 10544 1331 086F movf (??_sprintf+3)^(0+128),w 10545 1332 0023 movlb 3 ; select bank3 10546 1333 0225 subwf (sprintf@_val+1)^(0+384),w 10547 1334 1D03 skipz 10548 1335 2B3A goto u4155 10549 1336 0021 movlb 1 ; select bank1 10550 1337 086E movf (??_sprintf+2)^(0+128),w 10551 1338 0023 movlb 3 ; select bank3 10552 1339 0224 subwf sprintf@_val^(0+384),w 10553 133A u4155: 10554 133A 1C03 btfss 3,0 10555 133B 2B4A goto l5155 10556 133C 0AA8 incf sprintf@c^(0+384),f 10557 133D 0828 movf sprintf@c^(0+384),w 10558 133E 3A04 xorlw 4 10559 133F 1903 btfsc 3,2 10560 1340 2B4A goto l5155 10561 1341 2B21 goto l5143 10562 1342 l5153: 10563 1342 0823 movf sprintf@flag^(0+384),w 10564 1343 3980 andlw 128 10565 10566 ; Switch size 1, requested type "space" 10567 ; Number of cases is 2, Range of values is 0 to 128 10568 ; switch strategies available: 10569 ; Name Instructions Cycles 10570 ; simple_byte 7 4 (average) 10571 ; jumptable 260 6 (fixed) 10572 ; Chosen strategy is simple_byte 10573 1344 1903 skipnz 10574 1345 2AFC goto l1305 10575 1346 3A80 xorlw 128 ; case 128 10576 1347 1903 skipnz 10577 1348 2B1F goto l1310 10578 1349 2B4A goto l5155 10579 134A l5155: 10580 10581 ;doprnt.c: 1431: { 10582 ;doprnt.c: 1447: if(flag & 0x03) 10583 134A 0823 movf sprintf@flag^(0+384),w 10584 134B 3903 andlw 3 10585 134C 1903 btfsc 3,2 10586 134D 2B58 goto l5161 10587 10588 ;doprnt.c: 1448: ((*sp++ = ('-'))); 10589 134E 0022 movlb 2 ; select bank2 10590 134F 0860 movf sprintf@sp^(0+256),w 10591 1350 0086 movwf 6 10592 1351 0861 movf (sprintf@sp+1)^(0+256),w 10593 1352 0087 movwf 7 10594 1353 302D movlw 45 10595 1354 0081 movwf 1 10596 1355 0AE0 incf sprintf@sp^(0+256),f 10597 1356 1903 skipnz 10598 1357 0AE1 incf (sprintf@sp+1)^(0+256),f 10599 1358 l5161: 10600 10601 ;doprnt.c: 1478: } 10602 ;doprnt.c: 1481: prec = c; 10603 1358 0023 movlb 3 ; select bank3 10604 1359 0828 movf sprintf@c^(0+384),w 10605 135A 00A2 movwf sprintf@prec^(0+384) 10606 10607 ;doprnt.c: 1483: while(prec--) { 10608 135B 2BC8 goto l5179 10609 135C l5163: 10610 10611 ;doprnt.c: 1498: c = (_val._val / dpowers[prec]) % 10 + '0'; 10612 135C 300A movlw 10 10613 135D 0021 movlb 1 ; select bank1 10614 135E 00E7 movwf ___lwmod@divisor^(0+128) 10615 135F 01E8 clrf (___lwmod@divisor+1)^(0+128) 10616 1360 0023 movlb 3 ; select bank3 10617 1361 0822 movf sprintf@prec^(0+384),w 10618 1362 0021 movlb 1 ; select bank1 10619 1363 00EC movwf ??_sprintf^(0+128) 10620 1364 3000 movlw low (_dpowers| (0+32768)) 10621 1365 01ED clrf (??_sprintf^(0+128)+1) 10622 1366 35EC lslf ??_sprintf^(0+128),f 10623 1367 0DED rlf (??_sprintf^(0+128)+1),f 10624 1368 076C addwf ??_sprintf^(0+128),w 10625 1369 0084 movwf 4 10626 136A 309E movlw high (_dpowers| (0+32768)) 10627 136B 3D6D addwfc (??_sprintf+1)^(0+128),w 10628 136C 0085 movwf 5 10629 136D 3F00 moviw [0]fsr0 10630 136E 00E0 movwf ___lwdiv@divisor^(0+128) 10631 136F 3F01 moviw [1]fsr0 10632 1370 00E1 movwf (___lwdiv@divisor+1)^(0+128) 10633 1371 0023 movlb 3 ; select bank3 10634 1372 0825 movf (sprintf@_val+1)^(0+384),w 10635 1373 0021 movlb 1 ; select bank1 10636 1374 01E3 clrf (___lwdiv@dividend+1)^(0+128) 10637 1375 07E3 addwf (___lwdiv@dividend+1)^(0+128),f 10638 1376 0023 movlb 3 ; select bank3 10639 1377 0824 movf sprintf@_val^(0+384),w 10640 1378 0021 movlb 1 ; select bank1 10641 1379 01E2 clrf ___lwdiv@dividend^(0+128) 10642 137A 07E2 addwf ___lwdiv@dividend^(0+128),f 10643 137B 23D4 3192 fcall ___lwdiv 10644 137D 0861 movf (?___lwdiv+1)^(0+128),w 10645 137E 01EA clrf (___lwmod@dividend+1)^(0+128) 10646 137F 07EA addwf (___lwmod@dividend+1)^(0+128),f 10647 1380 0860 movf ?___lwdiv^(0+128),w 10648 1381 01E9 clrf ___lwmod@dividend^(0+128) 10649 1382 07E9 addwf ___lwmod@dividend^(0+128),f 10650 1383 23FB 3192 fcall ___lwmod 10651 1385 0867 movf ?___lwmod^(0+128),w 10652 1386 3E30 addlw 48 10653 1387 0023 movlb 3 ; select bank3 10654 1388 2BB2 goto L18 10655 1389 l5165: 10656 ;doprnt.c: 1500: break; 10657 10658 10659 ;doprnt.c: 1508: { 10660 ;doprnt.c: 1509: unsigned char idx = (_val._val / hexpowers[prec]) & 0xF; 10661 1389 0825 movf (sprintf@_val+1)^(0+384),w 10662 138A 0021 movlb 1 ; select bank1 10663 138B 01E3 clrf (___lwdiv@dividend+1)^(0+128) 10664 138C 07E3 addwf (___lwdiv@dividend+1)^(0+128),f 10665 138D 0023 movlb 3 ; select bank3 10666 138E 0824 movf sprintf@_val^(0+384),w 10667 138F 0021 movlb 1 ; select bank1 10668 1390 01E2 clrf ___lwdiv@dividend^(0+128) 10669 1391 07E2 addwf ___lwdiv@dividend^(0+128),f 10670 1392 0023 movlb 3 ; select bank3 10671 1393 0822 movf sprintf@prec^(0+384),w 10672 1394 0021 movlb 1 ; select bank1 10673 1395 00EC movwf ??_sprintf^(0+128) 10674 1396 300A movlw low (_hexpowers| (0+32768)) 10675 1397 01ED clrf (??_sprintf^(0+128)+1) 10676 1398 35EC lslf ??_sprintf^(0+128),f 10677 1399 0DED rlf (??_sprintf^(0+128)+1),f 10678 139A 076C addwf ??_sprintf^(0+128),w 10679 139B 0084 movwf 4 10680 139C 309E movlw high (_hexpowers| (0+32768)) 10681 139D 3D6D addwfc (??_sprintf+1)^(0+128),w 10682 139E 0085 movwf 5 10683 139F 3F00 moviw [0]fsr0 10684 13A0 00E0 movwf ___lwdiv@divisor^(0+128) 10685 13A1 3F01 moviw [1]fsr0 10686 13A2 00E1 movwf (___lwdiv@divisor+1)^(0+128) 10687 13A3 23D4 3192 fcall ___lwdiv 10688 13A5 0860 movf ?___lwdiv^(0+128),w 10689 13A6 0023 movlb 3 ; select bank3 10690 13A7 00A0 movwf sprintf@idx^(0+384) 10691 13A8 300F movlw 15 10692 13A9 05A0 andwf sprintf@idx^(0+384),f 10693 10694 ;doprnt.c: 1513: c = "0123456789ABCDEF"[idx]; 10695 13AA 0820 movf sprintf@idx^(0+384),w 10696 13AB 3EFC addlw low (STR_4| (0+32768)) 10697 13AC 0084 movwf 4 10698 13AD 309E movlw high (STR_4| (0+32768)) 10699 13AE 1803 skipnc 10700 13AF 3E01 addlw 1 10701 13B0 0085 movwf 5 10702 13B1 0800 movf 0,w ;code access 10703 13B2 L18: 10704 13B2 00A8 movwf sprintf@c^(0+384) 10705 10706 ;doprnt.c: 1517: } 10707 ;doprnt.c: 1519: break; 10708 13B3 2BBC goto l5175 10709 13B4 l5173: 10710 13B4 0823 movf sprintf@flag^(0+384),w 10711 13B5 3980 andlw 128 10712 10713 ; Switch size 1, requested type "space" 10714 ; Number of cases is 2, Range of values is 0 to 128 10715 ; switch strategies available: 10716 ; Name Instructions Cycles 10717 ; simple_byte 7 4 (average) 10718 ; jumptable 260 6 (fixed) 10719 ; Chosen strategy is simple_byte 10720 13B6 1903 skipnz 10721 13B7 2B5C goto l5163 10722 13B8 3A80 xorlw 128 ; case 128 10723 13B9 1903 skipnz 10724 13BA 2B89 goto l5165 10725 13BB 2BBC goto l5175 10726 13BC l5175: 10727 10728 ;doprnt.c: 1533: ((*sp++ = (c))); 10729 13BC 0022 movlb 2 ; select bank2 10730 13BD 0860 movf sprintf@sp^(0+256),w 10731 13BE 0086 movwf 6 10732 13BF 0861 movf (sprintf@sp+1)^(0+256),w 10733 13C0 0087 movwf 7 10734 13C1 0023 movlb 3 ; select bank3 10735 13C2 0828 movf sprintf@c^(0+384),w 10736 13C3 0081 movwf 1 10737 13C4 0022 movlb 2 ; select bank2 10738 13C5 0AE0 incf sprintf@sp^(0+256),f 10739 13C6 1903 skipnz 10740 13C7 0AE1 incf (sprintf@sp+1)^(0+256),f 10741 13C8 l5179: 10742 13C8 0023 movlb 3 ; select bank3 10743 13C9 03A2 decf sprintf@prec^(0+384),f 10744 13CA 0F22 incfsz sprintf@prec^(0+384),w 10745 13CB 2BB4 goto l5173 10746 13CC 2A8B goto l5181 10747 13CD l5183: 10748 10749 ;doprnt.c: 1547: *sp = 0; 10750 13CD 0022 movlb 2 ; select bank2 10751 13CE 0860 movf sprintf@sp^(0+256),w 10752 13CF 0086 movwf 6 10753 13D0 0861 movf (sprintf@sp+1)^(0+256),w 10754 13D1 0087 movwf 7 10755 13D2 0181 clrf 1 10756 13D3 0008 return 10757 13D4 __end_of_sprintf: 10758 13D4 __ptext30: 10759 ;; *************** function ___lwdiv ***************** 10760 ;; Defined at: 10761 ;; line 6 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\lwdiv.c" 10762 ;; Parameters: Size Location Type 10763 ;; divisor 2 0[BANK1 ] unsigned int 10764 ;; dividend 2 2[BANK1 ] unsigned int 10765 ;; Auto vars: Size Location Type 10766 ;; quotient 2 4[BANK1 ] unsigned int 10767 ;; counter 1 6[BANK1 ] unsigned char 10768 ;; Return value: Size Location Type 10769 ;; 2 0[BANK1 ] unsigned int 10770 ;; Registers used: 10771 ;; wreg, status,2, status,0 10772 ;; Tracked objects: 10773 ;; On entry : 1F/1 10774 ;; On exit : 1F/1 10775 ;; Unchanged: 0/0 10776 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10777 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 10778 ;; Locals: 0 0 3 0 0 0 0 0 0 0 0 0 +0 0 10779 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10780 ;; Totals: 0 0 7 0 0 0 0 0 0 0 0 0 +0 0 10781 ;;Total ram usage: 7 bytes 10782 ;; Hardware stack levels used: 1 10783 ;; Hardware stack levels required when called: 10 10784 ;; This function calls: 10785 ;; Nothing 10786 ;; This function is called by: 10787 ;; _sprintf 10788 ;; This function uses a non-reentrant model 10789 ;; 10790 10791 10792 ;psect for function ___lwdiv 10793 13D4 ___lwdiv: 10794 10795 ;incstack = 0 10796 ; Regs used in ___lwdiv: [wreg+status,2+status,0] 10797 13D4 01E4 clrf ___lwdiv@quotient^(0+128) 10798 13D5 01E5 clrf (___lwdiv@quotient+1)^(0+128) 10799 13D6 0861 movf (___lwdiv@divisor+1)^(0+128),w 10800 13D7 0460 iorwf ___lwdiv@divisor^(0+128),w 10801 13D8 1903 skipnz 10802 13D9 2BF4 goto l4825 10803 13DA 01E6 clrf ___lwdiv@counter^(0+128) 10804 13DB L20: 10805 13DB 0AE6 incf ___lwdiv@counter^(0+128),f 10806 13DC 1BE1 btfsc (___lwdiv@divisor+1)^(0+128),7 10807 13DD 2BE1 goto l4813 10808 13DE 35E0 lslf ___lwdiv@divisor^(0+128),f 10809 13DF 0DE1 rlf (___lwdiv@divisor+1)^(0+128),f 10810 13E0 2BDB goto L20 10811 13E1 l4813: 10812 13E1 35E4 lslf ___lwdiv@quotient^(0+128),f 10813 13E2 0DE5 rlf (___lwdiv@quotient+1)^(0+128),f 10814 13E3 0861 movf (___lwdiv@divisor+1)^(0+128),w 10815 13E4 0263 subwf (___lwdiv@dividend+1)^(0+128),w 10816 13E5 1D03 skipz 10817 13E6 2BE9 goto u3695 10818 13E7 0860 movf ___lwdiv@divisor^(0+128),w 10819 13E8 0262 subwf ___lwdiv@dividend^(0+128),w 10820 13E9 u3695: 10821 13E9 1C03 skipc 10822 13EA 2BF0 goto l4821 10823 13EB 0860 movf ___lwdiv@divisor^(0+128),w 10824 13EC 02E2 subwf ___lwdiv@dividend^(0+128),f 10825 13ED 0861 movf (___lwdiv@divisor+1)^(0+128),w 10826 13EE 3BE3 subwfb (___lwdiv@dividend+1)^(0+128),f 10827 13EF 1464 bsf ___lwdiv@quotient^(0+128),0 10828 13F0 l4821: 10829 13F0 36E1 lsrf (___lwdiv@divisor+1)^(0+128),f 10830 13F1 0CE0 rrf ___lwdiv@divisor^(0+128),f 10831 13F2 0BE6 decfsz ___lwdiv@counter^(0+128),f 10832 13F3 2BE1 goto l4813 10833 13F4 l4825: 10834 13F4 0865 movf (___lwdiv@quotient+1)^(0+128),w 10835 13F5 01E1 clrf (?___lwdiv+1)^(0+128) 10836 13F6 07E1 addwf (?___lwdiv+1)^(0+128),f 10837 13F7 0864 movf ___lwdiv@quotient^(0+128),w 10838 13F8 01E0 clrf ?___lwdiv^(0+128) 10839 13F9 07E0 addwf ?___lwdiv^(0+128),f 10840 13FA 0008 return 10841 13FB __end_of___lwdiv: 10842 13FB __ptext29: 10843 ;; *************** function ___lwmod ***************** 10844 ;; Defined at: 10845 ;; line 6 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\lwmod.c" 10846 ;; Parameters: Size Location Type 10847 ;; divisor 2 7[BANK1 ] unsigned int 10848 ;; dividend 2 9[BANK1 ] unsigned int 10849 ;; Auto vars: Size Location Type 10850 ;; counter 1 11[BANK1 ] unsigned char 10851 ;; Return value: Size Location Type 10852 ;; 2 7[BANK1 ] unsigned int 10853 ;; Registers used: 10854 ;; wreg, status,2, status,0 10855 ;; Tracked objects: 10856 ;; On entry : 1F/1 10857 ;; On exit : 1F/1 10858 ;; Unchanged: 0/0 10859 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10860 ;; Params: 0 0 4 0 0 0 0 0 0 0 0 0 +0 0 10861 ;; Locals: 0 0 1 0 0 0 0 0 0 0 0 0 +0 0 10862 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10863 ;; Totals: 0 0 5 0 0 0 0 0 0 0 0 0 +0 0 10864 ;;Total ram usage: 5 bytes 10865 ;; Hardware stack levels used: 1 10866 ;; Hardware stack levels required when called: 10 10867 ;; This function calls: 10868 ;; Nothing 10869 ;; This function is called by: 10870 ;; _sprintf 10871 ;; This function uses a non-reentrant model 10872 ;; 10873 10874 10875 ;psect for function ___lwmod 10876 13FB ___lwmod: 10877 10878 ;incstack = 0 10879 ; Regs used in ___lwmod: [wreg+status,2+status,0] 10880 13FB 0868 movf (___lwmod@divisor+1)^(0+128),w 10881 13FC 0467 iorwf ___lwmod@divisor^(0+128),w 10882 13FD 1903 skipnz 10883 13FE 2C16 goto l4845 10884 13FF 01EB clrf ___lwmod@counter^(0+128) 10885 1400 L19: 10886 1400 0AEB incf ___lwmod@counter^(0+128),f 10887 1401 1BE8 btfsc (___lwmod@divisor+1)^(0+128),7 10888 1402 2C06 goto l4837 10889 1403 35E7 lslf ___lwmod@divisor^(0+128),f 10890 1404 0DE8 rlf (___lwmod@divisor+1)^(0+128),f 10891 1405 2C00 goto L19 10892 1406 l4837: 10893 1406 0868 movf (___lwmod@divisor+1)^(0+128),w 10894 1407 026A subwf (___lwmod@dividend+1)^(0+128),w 10895 1408 1D03 skipz 10896 1409 2C0C goto u3735 10897 140A 0867 movf ___lwmod@divisor^(0+128),w 10898 140B 0269 subwf ___lwmod@dividend^(0+128),w 10899 140C u3735: 10900 140C 1C03 skipc 10901 140D 2C12 goto l4841 10902 140E 0867 movf ___lwmod@divisor^(0+128),w 10903 140F 02E9 subwf ___lwmod@dividend^(0+128),f 10904 1410 0868 movf (___lwmod@divisor+1)^(0+128),w 10905 1411 3BEA subwfb (___lwmod@dividend+1)^(0+128),f 10906 1412 l4841: 10907 1412 36E8 lsrf (___lwmod@divisor+1)^(0+128),f 10908 1413 0CE7 rrf ___lwmod@divisor^(0+128),f 10909 1414 0BEB decfsz ___lwmod@counter^(0+128),f 10910 1415 2C06 goto l4837 10911 1416 l4845: 10912 1416 086A movf (___lwmod@dividend+1)^(0+128),w 10913 1417 01E8 clrf (?___lwmod+1)^(0+128) 10914 1418 07E8 addwf (?___lwmod+1)^(0+128),f 10915 1419 0869 movf ___lwmod@dividend^(0+128),w 10916 141A 01E7 clrf ?___lwmod^(0+128) 10917 141B 07E7 addwf ?___lwmod^(0+128),f 10918 141C 0008 return 10919 141D __end_of___lwmod: 10920 10921 psect text38 10922 1876 __ptext38: 10923 ;; *************** function _back_pattern ***************** 10924 ;; Defined at: 10925 ;; line 272 in file "../pattern_engine.c" 10926 ;; Parameters: Size Location Type 10927 ;; None 10928 ;; Auto vars: Size Location Type 10929 ;; None 10930 ;; Return value: Size Location Type 10931 ;; None void 10932 ;; Registers used: 10933 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 10934 ;; Tracked objects: 10935 ;; On entry : 1F/4 10936 ;; On exit : 1F/5 10937 ;; Unchanged: 0/0 10938 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 10939 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10940 ;; Locals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 10941 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 10942 ;; Totals: 0 0 2 0 0 0 0 0 0 0 0 0 +0 0 10943 ;;Total ram usage: 2 bytes 10944 ;; Hardware stack levels used: 1 10945 ;; Hardware stack levels required when called: 11 10946 ;; This function calls: 10947 ;; ___bmul 10948 ;; _setTopOfPattern 10949 ;; This function is called by: 10950 ;; _ParseBlinkieCommand 10951 ;; This function uses a non-reentrant model 10952 ;; 10953 10954 10955 ;psect for function _back_pattern 10956 1876 _back_pattern: 10957 10958 ;pattern_engine.c: 273: p_table = (p_table < 1) ? (11-1):(p_table-1); 10959 10960 ;incstack = 0 10961 ; Regs used in _back_pattern: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 10962 1876 0865 movf _p_table^(0+512),w 10963 1877 1903 btfsc 3,2 10964 1878 2882 goto l5663 10965 1879 0865 movf _p_table^(0+512),w 10966 187A 0021 movlb 1 ; select bank1 10967 187B 00E3 movwf _back_pattern$2361^(0+128) 10968 187C 30FF movlw -1 10969 187D 01E4 clrf (_back_pattern$2361+1)^(0+128) 10970 187E 07E3 addwf _back_pattern$2361^(0+128),f 10971 187F 1C03 skipc 10972 1880 03E4 decf (_back_pattern$2361+1)^(0+128),f 10973 1881 2886 goto l1212 10974 1882 l5663: 10975 1882 300A movlw 10 10976 1883 0021 movlb 1 ; select bank1 10977 1884 00E3 movwf _back_pattern$2361^(0+128) 10978 1885 01E4 clrf (_back_pattern$2361+1)^(0+128) 10979 1886 l1212: 10980 1886 0863 movf _back_pattern$2361^(0+128),w 10981 1887 0024 movlb 4 ; select bank4 10982 1888 00E5 movwf _p_table^(0+512) 10983 1889 i7L__ptext39: 10984 ;pattern_engine.c: 274: setTopOfPattern(); 10985 10986 10987 ;psect for function _setTopOfPattern 10988 1889 i7L_setTopOfPattern: 10989 1889 i7Ll5465: 10990 10991 ;pattern_access.c: 48: p_count = 0; 10992 1889 0025 movlb 5 ; select bank5 10993 188A 01BB clrf _p_count^(0+640) 10994 188B 01BC clrf (_p_count+1)^(0+640) 10995 188C i7Ll969: 10996 10997 ;pattern_engine.c: 275: demo_loops = patterns[p_table].loops; 10998 188C 3005 movlw 5 10999 188D 0021 movlb 1 ; select bank1 11000 188E 00E0 movwf ___bmul@multiplicand^(0+128) 11001 188F 0024 movlb 4 ; select bank4 11002 1890 0865 movf _p_table^(0+512),w 11003 1891 318F 2703 fcall ___bmul 11004 1893 3E24 addlw (_patterns+4)& (0+255) 11005 1894 0086 movwf 6 11006 1895 3004 movlw 4 ; select bank8/9 11007 1896 0087 movwf 7 11008 1897 0801 movf 1,w 11009 1898 0025 movlb 5 ; select bank5 11010 1899 00CE movwf _demo_loops^(0+640) 11011 189A 0008 return 11012 189B __end_of_back_pattern: 11013 11014 psect text39 11015 0000 __ptext39: 11016 ;; *************** function _setTopOfPattern ***************** 11017 ;; Defined at: 11018 ;; line 47 in file "../pattern_access.c" 11019 ;; Parameters: Size Location Type 11020 ;; None 11021 ;; Auto vars: Size Location Type 11022 ;; None 11023 ;; Return value: Size Location Type 11024 ;; None void 11025 ;; Registers used: 11026 ;; status,2 11027 ;; Tracked objects: 11028 ;; On entry : 1E/5 11029 ;; On exit : 1F/5 11030 ;; Unchanged: 0/0 11031 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 11032 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11033 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11034 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11035 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11036 ;;Total ram usage: 0 bytes 11037 ;; Hardware stack levels used: 1 11038 ;; Hardware stack levels required when called: 10 11039 ;; This function calls: 11040 ;; Nothing 11041 ;; This function is called by: 11042 ;; _pattern_done 11043 ;; _next_pattern 11044 ;; _back_pattern 11045 ;; _set_pattern 11046 ;; This function uses a non-reentrant model 11047 ;; 11048 11049 0000 _setTopOfPattern: 11050 ;psect for function _setTopOfPattern 11051 11052 0000 __end_of_setTopOfPattern: 11053 ;pattern_access.c: 48: p_count = 0; 11054 11055 ;incstack = 0 11056 ; Regs used in _setTopOfPattern: [status,2] 11057 11058 11059 psect intentry 11060 0004 __pintentry: 11061 ;; *************** function _SYS_InterruptHigh ***************** 11062 ;; Defined at: 11063 ;; line 115 in file "../system.c" 11064 ;; Parameters: Size Location Type 11065 ;; None 11066 ;; Auto vars: Size Location Type 11067 ;; Cx_dir 1 14[BANK0h] unsigned char 11068 ;; Ax_dir 1 13[BANK0h] unsigned char 11069 ;; Return value: Size Location Type 11070 ;; None void 11071 ;; Registers used: 11072 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 11073 ;; Tracked objects: 11074 ;; On entry : 0/0 11075 ;; On exit : 18/0 11076 ;; Unchanged: 0/0 11077 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 11078 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11079 ;; Locals: 0 2 0 0 0 0 0 0 0 0 0 0 +0 0 11080 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11081 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 +0 0 11082 ;;Total ram usage: 2 bytes 11083 ;; Hardware stack levels used: 1 11084 ;; Hardware stack levels required when called: 9 11085 ;; This function calls: 11086 ;; _USBDeviceTasks 11087 ;; This function is called by: 11088 ;; Interrupt level 1 11089 ;; This function uses a non-reentrant model 11090 ;; 11091 11092 0004 _SYS_InterruptHigh: 11093 11094 ;incstack = 0 11095 ; Regs used in _SYS_InterruptHigh: [wreg-fsr1h+status,2+status,0+pclath+cstack] 11096 0004 147E bsf 126,0 ;set compiler interrupt flag 11097 0005 3180 pagesel $ 11098 11099 ;system.c: 117: uint8_t Ax_dir=0,Cx_dir=0; 11100 0006 0020 movlb 0 ; select bank0 11101 0007 01ED clrf SYS_InterruptHigh@Ax_dir 11102 0008 01EE clrf SYS_InterruptHigh@Cx_dir 11103 11104 ;system.c: 120: USBDeviceTasks(); 11105 0009 3183 2362 3180 fcall _USBDeviceTasks 11106 11107 ;system.c: 123: if (INTCONbits.TMR0IF){ 11108 000C 1D0B btfss 11,2 ;volatile 11109 000D 29E1 goto i1l188 11110 11111 ;system.c: 124: INTCONbits.TMR0IF = 0; 11112 000E 110B bcf 11,2 ;volatile 11113 11114 ;system.c: 126: strobe = ((strobe+1) & 0x07); 11115 000F 0025 movlb 5 ; select bank5 11116 0010 3007 movlw 7 11117 0011 0AD6 incf _strobe^(0+640),f 11118 0012 05D6 andwf _strobe^(0+640),f 11119 11120 ;system.c: 128: switch(strobe) 11121 0013 29D7 goto i1l7309 11122 0014 i1l7013: 11123 11124 ;system.c: 131: if (LEDS[1][7]<=0) Ax_dir = Ax_dir | 0b00100000; 11125 0014 0027 movlb 7 ; select bank7 11126 0015 08AF movf (_LEDS^(0+896)+15),f 11127 0016 1D03 skipz 11128 0017 281A goto i1l7017 11129 0018 0020 movlb 0 ; select bank0 11130 0019 16ED bsf SYS_InterruptHigh@Ax_dir,5 11131 001A i1l7017: 11132 11133 ;system.c: 132: if (LEDS[1][1]<=0) Cx_dir = Cx_dir | 0b00000001; 11134 001A 0027 movlb 7 ; select bank7 11135 001B 08A9 movf (_LEDS^(0+896)+9),f 11136 001C 1D03 skipz 11137 001D 2820 goto i1l7021 11138 001E 0020 movlb 0 ; select bank0 11139 001F 146E bsf SYS_InterruptHigh@Cx_dir,0 11140 0020 i1l7021: 11141 11142 ;system.c: 133: if (LEDS[1][2]<=0) Cx_dir = Cx_dir | 0b00000010; 11143 0020 0027 movlb 7 ; select bank7 11144 0021 08AA movf (_LEDS^(0+896)+10),f 11145 0022 1D03 skipz 11146 0023 2826 goto i1l7025 11147 0024 0020 movlb 0 ; select bank0 11148 0025 14EE bsf SYS_InterruptHigh@Cx_dir,1 11149 0026 i1l7025: 11150 11151 ;system.c: 134: if (LEDS[1][3]<=0) Cx_dir = Cx_dir | 0b00000100; 11152 0026 0027 movlb 7 ; select bank7 11153 0027 08AB movf (_LEDS^(0+896)+11),f 11154 0028 1D03 skipz 11155 0029 282C goto i1l7029 11156 002A 0020 movlb 0 ; select bank0 11157 002B 156E bsf SYS_InterruptHigh@Cx_dir,2 11158 002C i1l7029: 11159 11160 ;system.c: 135: if (LEDS[1][4]<=0) Cx_dir = Cx_dir | 0b00001000; 11161 002C 0027 movlb 7 ; select bank7 11162 002D 08AC movf (_LEDS^(0+896)+12),f 11163 002E 1D03 skipz 11164 002F 2832 goto i1l7033 11165 0030 0020 movlb 0 ; select bank0 11166 0031 15EE bsf SYS_InterruptHigh@Cx_dir,3 11167 0032 i1l7033: 11168 11169 ;system.c: 136: if (LEDS[1][5]<=0) Cx_dir = Cx_dir | 0b00010000; 11170 0032 0027 movlb 7 ; select bank7 11171 0033 08AD movf (_LEDS^(0+896)+13),f 11172 0034 1D03 skipz 11173 0035 2838 goto i1l7037 11174 0036 0020 movlb 0 ; select bank0 11175 0037 166E bsf SYS_InterruptHigh@Cx_dir,4 11176 0038 i1l7037: 11177 11178 ;system.c: 137: if (LEDS[1][6]<=0) Cx_dir = Cx_dir | 0b00100000; 11179 0038 0027 movlb 7 ; select bank7 11180 0039 08AE movf (_LEDS^(0+896)+14),f 11181 003A 1D03 skipz 11182 003B 283E goto i1l7041 11183 003C 0020 movlb 0 ; select bank0 11184 003D 16EE bsf SYS_InterruptHigh@Cx_dir,5 11185 003E i1l7041: 11186 11187 ;system.c: 139: LATC = 0b00000000; 11188 003E 0022 movlb 2 ; select bank2 11189 003F 018E clrf 14 ;volatile 11190 11191 ;system.c: 140: TRISA = Ax_dir; 11192 0040 0020 movlb 0 ; select bank0 11193 0041 086D movf SYS_InterruptHigh@Ax_dir,w 11194 0042 0021 movlb 1 ; select bank1 11195 0043 008C movwf 12 ;volatile 11196 11197 ;system.c: 141: TRISC = Cx_dir; 11198 0044 0020 movlb 0 ; select bank0 11199 0045 086E movf SYS_InterruptHigh@Cx_dir,w 11200 0046 0021 movlb 1 ; select bank1 11201 0047 008E movwf 14 ;volatile 11202 11203 ;system.c: 142: LATA = 0b00010000; 11204 0048 3010 movlw 16 11205 0049 L25: 11206 0049 0022 movlb 2 ; select bank2 11207 004A 008C movwf 12 ;volatile 11208 11209 ;system.c: 143: LATC = 0b00000000; 11210 004B 018E clrf 14 ;volatile 11211 11212 ;system.c: 144: break; 11213 004C 29E1 goto i1l188 11214 004D i1l7051: 11215 11216 ;system.c: 146: if (LEDS[0][7]<=0) Ax_dir = Ax_dir | 0b00010000; 11217 004D 0027 movlb 7 ; select bank7 11218 004E 08A7 movf (_LEDS^(0+896)+7),f 11219 004F 1D03 skipz 11220 0050 2853 goto i1l7055 11221 0051 0020 movlb 0 ; select bank0 11222 0052 166D bsf SYS_InterruptHigh@Ax_dir,4 11223 0053 i1l7055: 11224 11225 ;system.c: 147: if (LEDS[0][1]<=0) Cx_dir = Cx_dir | 0b00000001; 11226 0053 0027 movlb 7 ; select bank7 11227 0054 08A1 movf (_LEDS^(0+896)+1),f 11228 0055 1D03 skipz 11229 0056 2859 goto i1l7059 11230 0057 0020 movlb 0 ; select bank0 11231 0058 146E bsf SYS_InterruptHigh@Cx_dir,0 11232 0059 i1l7059: 11233 11234 ;system.c: 148: if (LEDS[0][2]<=0) Cx_dir = Cx_dir | 0b00000010; 11235 0059 0027 movlb 7 ; select bank7 11236 005A 08A2 movf (_LEDS^(0+896)+2),f 11237 005B 1D03 skipz 11238 005C 285F goto i1l7063 11239 005D 0020 movlb 0 ; select bank0 11240 005E 14EE bsf SYS_InterruptHigh@Cx_dir,1 11241 005F i1l7063: 11242 11243 ;system.c: 149: if (LEDS[0][3]<=0) Cx_dir = Cx_dir | 0b00000100; 11244 005F 0027 movlb 7 ; select bank7 11245 0060 08A3 movf (_LEDS^(0+896)+3),f 11246 0061 1D03 skipz 11247 0062 2865 goto i1l7067 11248 0063 0020 movlb 0 ; select bank0 11249 0064 156E bsf SYS_InterruptHigh@Cx_dir,2 11250 0065 i1l7067: 11251 11252 ;system.c: 150: if (LEDS[0][4]<=0) Cx_dir = Cx_dir | 0b00001000; 11253 0065 0027 movlb 7 ; select bank7 11254 0066 08A4 movf (_LEDS^(0+896)+4),f 11255 0067 1D03 skipz 11256 0068 286B goto i1l7071 11257 0069 0020 movlb 0 ; select bank0 11258 006A 15EE bsf SYS_InterruptHigh@Cx_dir,3 11259 006B i1l7071: 11260 11261 ;system.c: 151: if (LEDS[0][5]<=0) Cx_dir = Cx_dir | 0b00010000; 11262 006B 0027 movlb 7 ; select bank7 11263 006C 08A5 movf (_LEDS^(0+896)+5),f 11264 006D 1D03 skipz 11265 006E 2871 goto i1l7075 11266 006F 0020 movlb 0 ; select bank0 11267 0070 166E bsf SYS_InterruptHigh@Cx_dir,4 11268 0071 i1l7075: 11269 11270 ;system.c: 152: if (LEDS[0][6]<=0) Cx_dir = Cx_dir | 0b00100000; 11271 0071 0027 movlb 7 ; select bank7 11272 0072 08A6 movf (_LEDS^(0+896)+6),f 11273 0073 1D03 skipz 11274 0074 2877 goto i1l7079 11275 0075 0020 movlb 0 ; select bank0 11276 0076 16EE bsf SYS_InterruptHigh@Cx_dir,5 11277 0077 i1l7079: 11278 11279 ;system.c: 154: LATA = 0b00000000; 11280 0077 0022 movlb 2 ; select bank2 11281 0078 018C clrf 12 ;volatile 11282 11283 ;system.c: 155: TRISA = Ax_dir; 11284 0079 0020 movlb 0 ; select bank0 11285 007A 086D movf SYS_InterruptHigh@Ax_dir,w 11286 007B 0021 movlb 1 ; select bank1 11287 007C 008C movwf 12 ;volatile 11288 11289 ;system.c: 156: TRISC = Cx_dir; 11290 007D 0020 movlb 0 ; select bank0 11291 007E 086E movf SYS_InterruptHigh@Cx_dir,w 11292 007F 0021 movlb 1 ; select bank1 11293 0080 008E movwf 14 ;volatile 11294 11295 ;system.c: 157: LATA = 0b00100000; 11296 0081 3020 movlw 32 11297 0082 2849 goto L25 11298 0083 i1l7089: 11299 11300 ;system.c: 161: if (LEDS[7][2]<=0) Ax_dir = Ax_dir | 0b00010000; 11301 0083 0027 movlb 7 ; select bank7 11302 0084 08DA movf (_LEDS^(0+896)+58),f 11303 0085 1D03 skipz 11304 0086 2889 goto i1l7093 11305 0087 0020 movlb 0 ; select bank0 11306 0088 166D bsf SYS_InterruptHigh@Ax_dir,4 11307 0089 i1l7093: 11308 11309 ;system.c: 162: if (LEDS[7][1]<=0) Ax_dir = Ax_dir | 0b00100000; 11310 0089 0027 movlb 7 ; select bank7 11311 008A 08D9 movf (_LEDS^(0+896)+57),f 11312 008B 1D03 skipz 11313 008C 288F goto i1l7097 11314 008D 0020 movlb 0 ; select bank0 11315 008E 16ED bsf SYS_InterruptHigh@Ax_dir,5 11316 008F i1l7097: 11317 11318 ;system.c: 163: if (LEDS[7][7]<=0) Cx_dir = Cx_dir | 0b00000010; 11319 008F 0027 movlb 7 ; select bank7 11320 0090 08DF movf (_LEDS^(0+896)+63),f 11321 0091 1D03 skipz 11322 0092 2895 goto i1l7101 11323 0093 0020 movlb 0 ; select bank0 11324 0094 14EE bsf SYS_InterruptHigh@Cx_dir,1 11325 0095 i1l7101: 11326 11327 ;system.c: 164: if (LEDS[7][6]<=0) Cx_dir = Cx_dir | 0b00000100; 11328 0095 0027 movlb 7 ; select bank7 11329 0096 08DE movf (_LEDS^(0+896)+62),f 11330 0097 1D03 skipz 11331 0098 289B goto i1l7105 11332 0099 0020 movlb 0 ; select bank0 11333 009A 156E bsf SYS_InterruptHigh@Cx_dir,2 11334 009B i1l7105: 11335 11336 ;system.c: 165: if (LEDS[7][5]<=0) Cx_dir = Cx_dir | 0b00001000; 11337 009B 0027 movlb 7 ; select bank7 11338 009C 08DD movf (_LEDS^(0+896)+61),f 11339 009D 1D03 skipz 11340 009E 28A1 goto i1l7109 11341 009F 0020 movlb 0 ; select bank0 11342 00A0 15EE bsf SYS_InterruptHigh@Cx_dir,3 11343 00A1 i1l7109: 11344 11345 ;system.c: 166: if (LEDS[7][4]<=0) Cx_dir = Cx_dir | 0b00010000; 11346 00A1 0027 movlb 7 ; select bank7 11347 00A2 08DC movf (_LEDS^(0+896)+60),f 11348 00A3 1D03 skipz 11349 00A4 28A7 goto i1l7113 11350 00A5 0020 movlb 0 ; select bank0 11351 00A6 166E bsf SYS_InterruptHigh@Cx_dir,4 11352 00A7 i1l7113: 11353 11354 ;system.c: 167: if (LEDS[7][3]<=0) Cx_dir = Cx_dir | 0b00100000; 11355 00A7 0027 movlb 7 ; select bank7 11356 00A8 08DB movf (_LEDS^(0+896)+59),f 11357 00A9 1D03 skipz 11358 00AA 28AD goto i1l7117 11359 00AB 0020 movlb 0 ; select bank0 11360 00AC 16EE bsf SYS_InterruptHigh@Cx_dir,5 11361 00AD i1l7117: 11362 11363 ;system.c: 169: LATA = 0b00000000; 11364 00AD 0022 movlb 2 ; select bank2 11365 00AE 018C clrf 12 ;volatile 11366 11367 ;system.c: 170: TRISA = Ax_dir; 11368 00AF 0020 movlb 0 ; select bank0 11369 00B0 086D movf SYS_InterruptHigh@Ax_dir,w 11370 00B1 0021 movlb 1 ; select bank1 11371 00B2 008C movwf 12 ;volatile 11372 11373 ;system.c: 171: TRISC = Cx_dir; 11374 00B3 0020 movlb 0 ; select bank0 11375 00B4 086E movf SYS_InterruptHigh@Cx_dir,w 11376 00B5 0021 movlb 1 ; select bank1 11377 00B6 008E movwf 14 ;volatile 11378 11379 ;system.c: 172: LATA = 0b00000000; 11380 00B7 0022 movlb 2 ; select bank2 11381 00B8 018C clrf 12 ;volatile 11382 11383 ;system.c: 173: LATC = 0b00000001; 11384 00B9 3001 movlw 1 11385 00BA 299A goto L29 11386 00BB i1l7125: 11387 ;system.c: 174: break; 11388 11389 11390 ;system.c: 176: if (LEDS[6][2]<=0) Ax_dir = Ax_dir | 0b00010000; 11391 00BB 0027 movlb 7 ; select bank7 11392 00BC 08D2 movf (_LEDS^(0+896)+50),f 11393 00BD 1D03 skipz 11394 00BE 28C1 goto i1l7129 11395 00BF 0020 movlb 0 ; select bank0 11396 00C0 166D bsf SYS_InterruptHigh@Ax_dir,4 11397 00C1 i1l7129: 11398 11399 ;system.c: 177: if (LEDS[6][1]<=0) Ax_dir = Ax_dir | 0b00100000; 11400 00C1 0027 movlb 7 ; select bank7 11401 00C2 08D1 movf (_LEDS^(0+896)+49),f 11402 00C3 1D03 skipz 11403 00C4 28C7 goto i1l7133 11404 00C5 0020 movlb 0 ; select bank0 11405 00C6 16ED bsf SYS_InterruptHigh@Ax_dir,5 11406 00C7 i1l7133: 11407 11408 ;system.c: 178: if (LEDS[6][7]<=0) Cx_dir = Cx_dir | 0b00000001; 11409 00C7 0027 movlb 7 ; select bank7 11410 00C8 08D7 movf (_LEDS^(0+896)+55),f 11411 00C9 1D03 skipz 11412 00CA 28CD goto i1l7137 11413 00CB 0020 movlb 0 ; select bank0 11414 00CC 146E bsf SYS_InterruptHigh@Cx_dir,0 11415 00CD i1l7137: 11416 11417 ;system.c: 179: if (LEDS[6][6]<=0) Cx_dir = Cx_dir | 0b00000100; 11418 00CD 0027 movlb 7 ; select bank7 11419 00CE 08D6 movf (_LEDS^(0+896)+54),f 11420 00CF 1D03 skipz 11421 00D0 28D3 goto i1l7141 11422 00D1 0020 movlb 0 ; select bank0 11423 00D2 156E bsf SYS_InterruptHigh@Cx_dir,2 11424 00D3 i1l7141: 11425 11426 ;system.c: 180: if (LEDS[6][5]<=0) Cx_dir = Cx_dir | 0b00001000; 11427 00D3 0027 movlb 7 ; select bank7 11428 00D4 08D5 movf (_LEDS^(0+896)+53),f 11429 00D5 1D03 skipz 11430 00D6 28D9 goto i1l7145 11431 00D7 0020 movlb 0 ; select bank0 11432 00D8 15EE bsf SYS_InterruptHigh@Cx_dir,3 11433 00D9 i1l7145: 11434 11435 ;system.c: 181: if (LEDS[6][4]<=0) Cx_dir = Cx_dir | 0b00010000; 11436 00D9 0027 movlb 7 ; select bank7 11437 00DA 08D4 movf (_LEDS^(0+896)+52),f 11438 00DB 1D03 skipz 11439 00DC 28DF goto i1l7149 11440 00DD 0020 movlb 0 ; select bank0 11441 00DE 166E bsf SYS_InterruptHigh@Cx_dir,4 11442 00DF i1l7149: 11443 11444 ;system.c: 182: if (LEDS[6][3]<=0) Cx_dir = Cx_dir | 0b00100000; 11445 00DF 0027 movlb 7 ; select bank7 11446 00E0 08D3 movf (_LEDS^(0+896)+51),f 11447 00E1 1D03 skipz 11448 00E2 28E5 goto i1l7153 11449 00E3 0020 movlb 0 ; select bank0 11450 00E4 16EE bsf SYS_InterruptHigh@Cx_dir,5 11451 00E5 i1l7153: 11452 11453 ;system.c: 184: LATC = 0b00000000; 11454 00E5 0022 movlb 2 ; select bank2 11455 00E6 018E clrf 14 ;volatile 11456 11457 ;system.c: 185: TRISA = Ax_dir; 11458 00E7 0020 movlb 0 ; select bank0 11459 00E8 086D movf SYS_InterruptHigh@Ax_dir,w 11460 00E9 0021 movlb 1 ; select bank1 11461 00EA 008C movwf 12 ;volatile 11462 11463 ;system.c: 186: TRISC = Cx_dir; 11464 00EB 0020 movlb 0 ; select bank0 11465 00EC 086E movf SYS_InterruptHigh@Cx_dir,w 11466 00ED 0021 movlb 1 ; select bank1 11467 00EE 008E movwf 14 ;volatile 11468 11469 ;system.c: 187: LATA = 0b00000000; 11470 00EF 0022 movlb 2 ; select bank2 11471 00F0 018C clrf 12 ;volatile 11472 11473 ;system.c: 188: LATC = 0b00000010; 11474 00F1 3002 movlw 2 11475 00F2 299A goto L29 11476 00F3 i1l7161: 11477 ;system.c: 189: break; 11478 11479 11480 ;system.c: 191: if (LEDS[5][2]<=0) Ax_dir = Ax_dir | 0b00010000; 11481 00F3 0027 movlb 7 ; select bank7 11482 00F4 08CA movf (_LEDS^(0+896)+42),f 11483 00F5 1D03 skipz 11484 00F6 28F9 goto i1l7165 11485 00F7 0020 movlb 0 ; select bank0 11486 00F8 166D bsf SYS_InterruptHigh@Ax_dir,4 11487 00F9 i1l7165: 11488 11489 ;system.c: 192: if (LEDS[5][1]<=0) Ax_dir = Ax_dir | 0b00100000; 11490 00F9 0027 movlb 7 ; select bank7 11491 00FA 08C9 movf (_LEDS^(0+896)+41),f 11492 00FB 1D03 skipz 11493 00FC 28FF goto i1l7169 11494 00FD 0020 movlb 0 ; select bank0 11495 00FE 16ED bsf SYS_InterruptHigh@Ax_dir,5 11496 00FF i1l7169: 11497 11498 ;system.c: 193: if (LEDS[5][7]<=0) Cx_dir = Cx_dir | 0b00000001; 11499 00FF 0027 movlb 7 ; select bank7 11500 0100 08CF movf (_LEDS^(0+896)+47),f 11501 0101 1D03 skipz 11502 0102 2905 goto i1l7173 11503 0103 0020 movlb 0 ; select bank0 11504 0104 146E bsf SYS_InterruptHigh@Cx_dir,0 11505 0105 i1l7173: 11506 11507 ;system.c: 194: if (LEDS[5][6]<=0) Cx_dir = Cx_dir | 0b00000010; 11508 0105 0027 movlb 7 ; select bank7 11509 0106 08CE movf (_LEDS^(0+896)+46),f 11510 0107 1D03 skipz 11511 0108 290B goto i1l7177 11512 0109 0020 movlb 0 ; select bank0 11513 010A 14EE bsf SYS_InterruptHigh@Cx_dir,1 11514 010B i1l7177: 11515 11516 ;system.c: 195: if (LEDS[5][5]<=0) Cx_dir = Cx_dir | 0b00001000; 11517 010B 0027 movlb 7 ; select bank7 11518 010C 08CD movf (_LEDS^(0+896)+45),f 11519 010D 1D03 skipz 11520 010E 2911 goto i1l7181 11521 010F 0020 movlb 0 ; select bank0 11522 0110 15EE bsf SYS_InterruptHigh@Cx_dir,3 11523 0111 i1l7181: 11524 11525 ;system.c: 196: if (LEDS[5][4]<=0) Cx_dir = Cx_dir | 0b00010000; 11526 0111 0027 movlb 7 ; select bank7 11527 0112 08CC movf (_LEDS^(0+896)+44),f 11528 0113 1D03 skipz 11529 0114 2917 goto i1l7185 11530 0115 0020 movlb 0 ; select bank0 11531 0116 166E bsf SYS_InterruptHigh@Cx_dir,4 11532 0117 i1l7185: 11533 11534 ;system.c: 197: if (LEDS[5][3]<=0) Cx_dir = Cx_dir | 0b00100000; 11535 0117 0027 movlb 7 ; select bank7 11536 0118 08CB movf (_LEDS^(0+896)+43),f 11537 0119 1D03 skipz 11538 011A 291D goto i1l7189 11539 011B 0020 movlb 0 ; select bank0 11540 011C 16EE bsf SYS_InterruptHigh@Cx_dir,5 11541 011D i1l7189: 11542 11543 ;system.c: 199: LATC = 0b00000000; 11544 011D 0022 movlb 2 ; select bank2 11545 011E 018E clrf 14 ;volatile 11546 11547 ;system.c: 200: TRISA = Ax_dir; 11548 011F 0020 movlb 0 ; select bank0 11549 0120 086D movf SYS_InterruptHigh@Ax_dir,w 11550 0121 0021 movlb 1 ; select bank1 11551 0122 008C movwf 12 ;volatile 11552 11553 ;system.c: 201: TRISC = Cx_dir; 11554 0123 0020 movlb 0 ; select bank0 11555 0124 086E movf SYS_InterruptHigh@Cx_dir,w 11556 0125 0021 movlb 1 ; select bank1 11557 0126 008E movwf 14 ;volatile 11558 11559 ;system.c: 202: LATA = 0b00000000; 11560 0127 0022 movlb 2 ; select bank2 11561 0128 018C clrf 12 ;volatile 11562 11563 ;system.c: 203: LATC = 0b00000100; 11564 0129 3004 movlw 4 11565 012A 299A goto L29 11566 012B i1l7197: 11567 ;system.c: 204: break; 11568 11569 11570 ;system.c: 206: if (LEDS[4][2]<=0) Ax_dir = Ax_dir | 0b00010000; 11571 012B 0027 movlb 7 ; select bank7 11572 012C 08C2 movf (_LEDS^(0+896)+34),f 11573 012D 1D03 skipz 11574 012E 2931 goto i1l7201 11575 012F 0020 movlb 0 ; select bank0 11576 0130 166D bsf SYS_InterruptHigh@Ax_dir,4 11577 0131 i1l7201: 11578 11579 ;system.c: 207: if (LEDS[4][1]<=0) Ax_dir = Ax_dir | 0b00100000; 11580 0131 0027 movlb 7 ; select bank7 11581 0132 08C1 movf (_LEDS^(0+896)+33),f 11582 0133 1D03 skipz 11583 0134 2937 goto i1l7205 11584 0135 0020 movlb 0 ; select bank0 11585 0136 16ED bsf SYS_InterruptHigh@Ax_dir,5 11586 0137 i1l7205: 11587 11588 ;system.c: 208: if (LEDS[4][7]<=0) Cx_dir = Cx_dir | 0b00000001; 11589 0137 0027 movlb 7 ; select bank7 11590 0138 08C7 movf (_LEDS^(0+896)+39),f 11591 0139 1D03 skipz 11592 013A 293D goto i1l7209 11593 013B 0020 movlb 0 ; select bank0 11594 013C 146E bsf SYS_InterruptHigh@Cx_dir,0 11595 013D i1l7209: 11596 11597 ;system.c: 209: if (LEDS[4][6]<=0) Cx_dir = Cx_dir | 0b00000010; 11598 013D 0027 movlb 7 ; select bank7 11599 013E 08C6 movf (_LEDS^(0+896)+38),f 11600 013F 1D03 skipz 11601 0140 2943 goto i1l7213 11602 0141 0020 movlb 0 ; select bank0 11603 0142 14EE bsf SYS_InterruptHigh@Cx_dir,1 11604 0143 i1l7213: 11605 11606 ;system.c: 210: if (LEDS[4][5]<=0) Cx_dir = Cx_dir | 0b00000100; 11607 0143 0027 movlb 7 ; select bank7 11608 0144 08C5 movf (_LEDS^(0+896)+37),f 11609 0145 1D03 skipz 11610 0146 2949 goto i1l7217 11611 0147 0020 movlb 0 ; select bank0 11612 0148 156E bsf SYS_InterruptHigh@Cx_dir,2 11613 0149 i1l7217: 11614 11615 ;system.c: 211: if (LEDS[4][4]<=0) Cx_dir = Cx_dir | 0b00010000; 11616 0149 0027 movlb 7 ; select bank7 11617 014A 08C4 movf (_LEDS^(0+896)+36),f 11618 014B 1D03 skipz 11619 014C 294F goto i1l7221 11620 014D 0020 movlb 0 ; select bank0 11621 014E 166E bsf SYS_InterruptHigh@Cx_dir,4 11622 014F i1l7221: 11623 11624 ;system.c: 212: if (LEDS[4][3]<=0) Cx_dir = Cx_dir | 0b00100000; 11625 014F 0027 movlb 7 ; select bank7 11626 0150 08C3 movf (_LEDS^(0+896)+35),f 11627 0151 1D03 skipz 11628 0152 2955 goto i1l7225 11629 0153 0020 movlb 0 ; select bank0 11630 0154 16EE bsf SYS_InterruptHigh@Cx_dir,5 11631 0155 i1l7225: 11632 11633 ;system.c: 214: LATC = 0b00000000; 11634 0155 0022 movlb 2 ; select bank2 11635 0156 018E clrf 14 ;volatile 11636 11637 ;system.c: 215: TRISA = Ax_dir; 11638 0157 0020 movlb 0 ; select bank0 11639 0158 086D movf SYS_InterruptHigh@Ax_dir,w 11640 0159 0021 movlb 1 ; select bank1 11641 015A 008C movwf 12 ;volatile 11642 11643 ;system.c: 216: TRISC = Cx_dir; 11644 015B 0020 movlb 0 ; select bank0 11645 015C 086E movf SYS_InterruptHigh@Cx_dir,w 11646 015D 0021 movlb 1 ; select bank1 11647 015E 008E movwf 14 ;volatile 11648 11649 ;system.c: 217: LATA = 0b00000000; 11650 015F 0022 movlb 2 ; select bank2 11651 0160 018C clrf 12 ;volatile 11652 11653 ;system.c: 218: LATC = 0b00001000; 11654 0161 3008 movlw 8 11655 0162 299A goto L29 11656 0163 i1l7233: 11657 ;system.c: 219: break; 11658 11659 11660 ;system.c: 221: if (LEDS[3][2]<=0) Ax_dir = Ax_dir | 0b00010000; 11661 0163 0027 movlb 7 ; select bank7 11662 0164 08BA movf (_LEDS^(0+896)+26),f 11663 0165 1D03 skipz 11664 0166 2969 goto i1l7237 11665 0167 0020 movlb 0 ; select bank0 11666 0168 166D bsf SYS_InterruptHigh@Ax_dir,4 11667 0169 i1l7237: 11668 11669 ;system.c: 222: if (LEDS[3][1]<=0) Ax_dir = Ax_dir | 0b00100000; 11670 0169 0027 movlb 7 ; select bank7 11671 016A 08B9 movf (_LEDS^(0+896)+25),f 11672 016B 1D03 skipz 11673 016C 296F goto i1l7241 11674 016D 0020 movlb 0 ; select bank0 11675 016E 16ED bsf SYS_InterruptHigh@Ax_dir,5 11676 016F i1l7241: 11677 11678 ;system.c: 223: if (LEDS[3][7]<=0) Cx_dir = Cx_dir | 0b00000001; 11679 016F 0027 movlb 7 ; select bank7 11680 0170 08BF movf (_LEDS^(0+896)+31),f 11681 0171 1D03 skipz 11682 0172 2975 goto i1l7245 11683 0173 0020 movlb 0 ; select bank0 11684 0174 146E bsf SYS_InterruptHigh@Cx_dir,0 11685 0175 i1l7245: 11686 11687 ;system.c: 224: if (LEDS[3][6]<=0) Cx_dir = Cx_dir | 0b00000010; 11688 0175 0027 movlb 7 ; select bank7 11689 0176 08BE movf (_LEDS^(0+896)+30),f 11690 0177 1D03 skipz 11691 0178 297B goto i1l7249 11692 0179 0020 movlb 0 ; select bank0 11693 017A 14EE bsf SYS_InterruptHigh@Cx_dir,1 11694 017B i1l7249: 11695 11696 ;system.c: 225: if (LEDS[3][5]<=0) Cx_dir = Cx_dir | 0b00000100; 11697 017B 0027 movlb 7 ; select bank7 11698 017C 08BD movf (_LEDS^(0+896)+29),f 11699 017D 1D03 skipz 11700 017E 2981 goto i1l7253 11701 017F 0020 movlb 0 ; select bank0 11702 0180 156E bsf SYS_InterruptHigh@Cx_dir,2 11703 0181 i1l7253: 11704 11705 ;system.c: 226: if (LEDS[3][4]<=0) Cx_dir = Cx_dir | 0b00001000; 11706 0181 0027 movlb 7 ; select bank7 11707 0182 08BC movf (_LEDS^(0+896)+28),f 11708 0183 1D03 skipz 11709 0184 2987 goto i1l7257 11710 0185 0020 movlb 0 ; select bank0 11711 0186 15EE bsf SYS_InterruptHigh@Cx_dir,3 11712 0187 i1l7257: 11713 11714 ;system.c: 227: if (LEDS[3][3]<=0) Cx_dir = Cx_dir | 0b00100000; 11715 0187 0027 movlb 7 ; select bank7 11716 0188 08BB movf (_LEDS^(0+896)+27),f 11717 0189 1D03 skipz 11718 018A 298D goto i1l7261 11719 018B 0020 movlb 0 ; select bank0 11720 018C 16EE bsf SYS_InterruptHigh@Cx_dir,5 11721 018D i1l7261: 11722 11723 ;system.c: 229: LATC = 0b00000000; 11724 018D 0022 movlb 2 ; select bank2 11725 018E 018E clrf 14 ;volatile 11726 11727 ;system.c: 230: TRISA = Ax_dir; 11728 018F 0020 movlb 0 ; select bank0 11729 0190 086D movf SYS_InterruptHigh@Ax_dir,w 11730 0191 0021 movlb 1 ; select bank1 11731 0192 008C movwf 12 ;volatile 11732 11733 ;system.c: 231: TRISC = Cx_dir; 11734 0193 0020 movlb 0 ; select bank0 11735 0194 086E movf SYS_InterruptHigh@Cx_dir,w 11736 0195 0021 movlb 1 ; select bank1 11737 0196 008E movwf 14 ;volatile 11738 11739 ;system.c: 232: LATA = 0b00000000; 11740 0197 0022 movlb 2 ; select bank2 11741 0198 018C clrf 12 ;volatile 11742 11743 ;system.c: 233: LATC = 0b00010000; 11744 0199 3010 movlw 16 11745 019A L29: 11746 019A 008E movwf 14 ;volatile 11747 11748 ;system.c: 234: break; 11749 019B 29E1 goto i1l188 11750 019C i1l7269: 11751 11752 ;system.c: 236: if (LEDS[2][6]<=0) Ax_dir |= 0b00010000; 11753 019C 0027 movlb 7 ; select bank7 11754 019D 08B6 movf (_LEDS^(0+896)+22),f 11755 019E 1D03 skipz 11756 019F 29A2 goto i1l7273 11757 01A0 0020 movlb 0 ; select bank0 11758 01A1 166D bsf SYS_InterruptHigh@Ax_dir,4 11759 01A2 i1l7273: 11760 11761 ;system.c: 237: if (LEDS[2][7]<=0) Ax_dir |= 0b00100000; 11762 01A2 0027 movlb 7 ; select bank7 11763 01A3 08B7 movf (_LEDS^(0+896)+23),f 11764 01A4 1D03 skipz 11765 01A5 29A8 goto i1l7277 11766 01A6 0020 movlb 0 ; select bank0 11767 01A7 16ED bsf SYS_InterruptHigh@Ax_dir,5 11768 01A8 i1l7277: 11769 11770 ;system.c: 238: if (LEDS[2][1]<=0) Cx_dir |= 0b00000001; 11771 01A8 0027 movlb 7 ; select bank7 11772 01A9 08B1 movf (_LEDS^(0+896)+17),f 11773 01AA 1D03 skipz 11774 01AB 29AE goto i1l7281 11775 01AC 0020 movlb 0 ; select bank0 11776 01AD 146E bsf SYS_InterruptHigh@Cx_dir,0 11777 01AE i1l7281: 11778 11779 ;system.c: 239: if (LEDS[2][2]<=0) Cx_dir |= 0b00000010; 11780 01AE 0027 movlb 7 ; select bank7 11781 01AF 08B2 movf (_LEDS^(0+896)+18),f 11782 01B0 1D03 skipz 11783 01B1 29B4 goto i1l7285 11784 01B2 0020 movlb 0 ; select bank0 11785 01B3 14EE bsf SYS_InterruptHigh@Cx_dir,1 11786 01B4 i1l7285: 11787 11788 ;system.c: 240: if (LEDS[2][3]<=0) Cx_dir |= 0b00000100; 11789 01B4 0027 movlb 7 ; select bank7 11790 01B5 08B3 movf (_LEDS^(0+896)+19),f 11791 01B6 1D03 skipz 11792 01B7 29BA goto i1l7289 11793 01B8 0020 movlb 0 ; select bank0 11794 01B9 156E bsf SYS_InterruptHigh@Cx_dir,2 11795 01BA i1l7289: 11796 11797 ;system.c: 241: if (LEDS[2][4]<=0) Cx_dir |= 0b00001000; 11798 01BA 0027 movlb 7 ; select bank7 11799 01BB 08B4 movf (_LEDS^(0+896)+20),f 11800 01BC 1D03 skipz 11801 01BD 29C0 goto i1l7293 11802 01BE 0020 movlb 0 ; select bank0 11803 01BF 15EE bsf SYS_InterruptHigh@Cx_dir,3 11804 01C0 i1l7293: 11805 11806 ;system.c: 242: if (LEDS[2][5]<=0) Cx_dir |= 0b00010000; 11807 01C0 0027 movlb 7 ; select bank7 11808 01C1 08B5 movf (_LEDS^(0+896)+21),f 11809 01C2 1D03 skipz 11810 01C3 29C6 goto i1l7297 11811 01C4 0020 movlb 0 ; select bank0 11812 01C5 166E bsf SYS_InterruptHigh@Cx_dir,4 11813 01C6 i1l7297: 11814 11815 ;system.c: 244: LATC = 0b00000000; 11816 01C6 0022 movlb 2 ; select bank2 11817 01C7 018E clrf 14 ;volatile 11818 11819 ;system.c: 245: TRISA = Ax_dir; 11820 01C8 0020 movlb 0 ; select bank0 11821 01C9 086D movf SYS_InterruptHigh@Ax_dir,w 11822 01CA 0021 movlb 1 ; select bank1 11823 01CB 008C movwf 12 ;volatile 11824 11825 ;system.c: 246: TRISC = Cx_dir; 11826 01CC 0020 movlb 0 ; select bank0 11827 01CD 086E movf SYS_InterruptHigh@Cx_dir,w 11828 01CE 0021 movlb 1 ; select bank1 11829 01CF 008E movwf 14 ;volatile 11830 11831 ;system.c: 247: LATA = 0b00000000; 11832 01D0 0022 movlb 2 ; select bank2 11833 01D1 018C clrf 12 ;volatile 11834 11835 ;system.c: 248: LATC = 0b00100000; 11836 01D2 3020 movlw 32 11837 01D3 008E movwf 14 ;volatile 11838 11839 ;system.c: 249: wait_timer = 0; 11840 01D4 0025 movlb 5 ; select bank5 11841 01D5 01ED clrf _wait_timer^(0+640) 11842 11843 ;system.c: 250: break; 11844 01D6 29E1 goto i1l188 11845 01D7 i1l7309: 11846 01D7 0856 movf _strobe^(0+640),w 11847 11848 ; Switch size 1, requested type "space" 11849 ; Number of cases is 8, Range of values is 0 to 7 11850 ; switch strategies available: 11851 ; Name Instructions Cycles 11852 ; direct_byte 22 6 (fixed) 11853 ; simple_byte 25 13 (average) 11854 ; jumptable 260 6 (fixed) 11855 ; Chosen strategy is direct_byte 11856 01D8 0084 movwf 4 11857 01D9 3008 movlw 8 11858 01DA 0204 subwf 4,w 11859 01DB 1803 skipnc 11860 01DC 29E1 goto i1l188 11861 01DD 3198 movlp high i1S7459 11862 01DE 3504 lslf 4,w 11863 01DF 3E14 addlw low i1S7459 11864 01E0 0082 movwf 2 11865 01E1 i1l188: 11866 01E1 107E bcf 126,0 ;clear compiler interrupt flag 11867 01E2 0009 retfie 11868 01E3 __end_of_SYS_InterruptHigh: 11869 11870 psect swtext2 11871 1814 __pswtext2: 11872 1814 i1S7459: 11873 1814 3180 2814 ljmp i1l7013 11874 1816 3180 284D ljmp i1l7051 11875 1818 3180 2883 ljmp i1l7089 11876 181A 3180 28BB ljmp i1l7125 11877 181C 3180 28F3 ljmp i1l7161 11878 181E 3181 292B ljmp i1l7197 11879 1820 3181 2963 ljmp i1l7233 11880 1822 3181 299C ljmp i1l7269 11881 11882 psect text55 11883 01E5 __ptext55: 11884 ;; *************** function _USBCtrlTrfSetupHandler ***************** 11885 ;; Defined at: 11886 ;; line 2465 in file "../usb_device.c" 11887 ;; Parameters: Size Location Type 11888 ;; None 11889 ;; Auto vars: Size Location Type 11890 ;; None 11891 ;; Return value: Size Location Type 11892 ;; None void 11893 ;; Registers used: 11894 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 11895 ;; Tracked objects: 11896 ;; On entry : 1F/0 11897 ;; On exit : 1E/4 11898 ;; Unchanged: 0/0 11899 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 11900 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11901 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11902 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11903 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 11904 ;;Total ram usage: 0 bytes 11905 ;; Hardware stack levels used: 1 11906 ;; Hardware stack levels required when called: 6 11907 ;; This function calls: 11908 ;; _USBCheckStdRequest 11909 ;; _USBCtrlEPServiceComplete 11910 ;; _USER_USB_CALLBACK_EVENT_HANDLER 11911 ;; This function is called by: 11912 ;; _USBCtrlEPService 11913 ;; This function uses a non-reentrant model 11914 ;; 11915 11916 11917 ;psect for function _USBCtrlTrfSetupHandler 11918 01E5 _USBCtrlTrfSetupHandler: 11919 01E5 i1l5549: 11920 ;incstack = 0 11921 ; Regs used in _USBCtrlTrfSetupHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] 11922 11923 11924 ;usb_device.c: 2470: shortPacketStatus = 0; 11925 01E5 0024 movlb 4 ; select bank4 11926 01E6 01E6 clrf _shortPacketStatus^(0+512) ;volatile 11927 11928 ;usb_device.c: 2471: USBDeferStatusStagePacket = 0; 11929 01E7 0025 movlb 5 ; select bank5 11930 01E8 01C4 clrf _USBDeferStatusStagePacket^(0+640) ;volatile 11931 11932 ;usb_device.c: 2472: USBDeferINDataStagePackets = 0; 11933 01E9 01C2 clrf _USBDeferINDataStagePackets^(0+640) ;volatile 11934 11935 ;usb_device.c: 2473: USBDeferOUTDataStagePackets = 0; 11936 01EA 01C3 clrf _USBDeferOUTDataStagePackets^(0+640) ;volatile 11937 11938 ;usb_device.c: 2474: BothEP0OutUOWNsSet = 0; 11939 01EB 01BF clrf _BothEP0OutUOWNsSet^(0+640) ;volatile 11940 11941 ;usb_device.c: 2475: controlTransferState = 0; 11942 01EC 0024 movlb 4 ; select bank4 11943 01ED 01E2 clrf _controlTransferState^(0+512) ;volatile 11944 11945 ;usb_device.c: 2484: pBDTEntryIn[0]->STAT.Val &= ~(0x80); 11946 01EE 0857 movf _pBDTEntryIn^(0+512),w 11947 01EF 0086 movwf 6 11948 01F0 0858 movf (_pBDTEntryIn+1)^(0+512),w 11949 01F1 0087 movwf 7 11950 01F2 3004 movlw 4 11951 01F3 1381 bcf 1,7 11952 11953 ;usb_device.c: 2486: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) + ^ 0x0004); 11954 01F4 0657 xorwf _pBDTEntryIn^(0+512),w 11955 01F5 00D7 movwf _pBDTEntryIn^(0+512) 11956 11957 ;usb_device.c: 2487: pBDTEntryIn[0]->STAT.Val &= ~(0x80); 11958 01F6 0086 movwf 6 11959 01F7 0858 movf (_pBDTEntryIn+1)^(0+512),w 11960 01F8 0087 movwf 7 11961 01F9 3004 movlw 4 11962 01FA 1381 bcf 1,7 11963 11964 ;usb_device.c: 2488: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) + ^ 0x0004); 11965 01FB 0657 xorwf _pBDTEntryIn^(0+512),w 11966 01FC 00D7 movwf _pBDTEntryIn^(0+512) 11967 11968 ;usb_device.c: 2489: pBDTEntryEP0OutNext->STAT.Val &= ~(0x80); 11969 01FD 085D movf _pBDTEntryEP0OutNext^(0+512),w 11970 01FE 0086 movwf 6 11971 01FF 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 11972 0200 0087 movwf 7 11973 0201 1381 bcf 1,7 11974 11975 ;usb_device.c: 2491: inPipes[0].info.Val = 0; 11976 0202 01EA clrf (_inPipes^(0+512)+2) ;volatile 11977 11978 ;usb_device.c: 2492: inPipes[0].wCount.Val = 0; 11979 0203 01EB clrf (_inPipes^(0+512)+3) ;volatile 11980 0204 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 11981 11982 ;usb_device.c: 2493: outPipes[0].info.Val = 0; 11983 0205 0025 movlb 5 ; select bank5 11984 0206 01A2 clrf (_outPipes^(0+640)+2) ;volatile 11985 11986 ;usb_device.c: 2494: outPipes[0].wCount.Val = 0; 11987 0207 01A3 clrf (_outPipes^(0+640)+3) ;volatile 11988 0208 01A4 clrf ((_outPipes+1)^(0+640)+3) ;volatile 11989 11990 ;usb_device.c: 2500: USBCheckStdRequest(); 11991 0209 2216 3181 fcall _USBCheckStdRequest 11992 11993 ;usb_device.c: 2501: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_EP0_REQUEST,0,0); 11994 020B 3003 movlw 3 11995 020C 0020 movlb 0 ; select bank0 11996 020D 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 11997 020E 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 11998 020F 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 11999 0210 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12000 0211 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 12001 0212 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12002 0213 2407 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12003 12004 ;usb_device.c: 2514: USBCtrlEPServiceComplete(); 12005 0214 3185 2DCF ljmp i1l5239 12006 0216 __end_of_USBCtrlTrfSetupHandler: 12007 0216 __ptext58: 12008 ;; *************** function _USBCheckStdRequest ***************** 12009 ;; Defined at: 12010 ;; line 2686 in file "../usb_device.c" 12011 ;; Parameters: Size Location Type 12012 ;; None 12013 ;; Auto vars: Size Location Type 12014 ;; None 12015 ;; Return value: Size Location Type 12016 ;; None void 12017 ;; Registers used: 12018 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 12019 ;; Tracked objects: 12020 ;; On entry : 1F/5 12021 ;; On exit : 1A/0 12022 ;; Unchanged: 0/0 12023 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 12024 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12025 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12026 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12027 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12028 ;;Total ram usage: 0 bytes 12029 ;; Hardware stack levels used: 1 12030 ;; Hardware stack levels required when called: 5 12031 ;; This function calls: 12032 ;; _USBStdFeatureReqHandler 12033 ;; _USBStdGetDscHandler 12034 ;; _USBStdGetStatusHandler 12035 ;; _USBStdSetCfgHandler 12036 ;; _USER_USB_CALLBACK_EVENT_HANDLER 12037 ;; This function is called by: 12038 ;; _USBCtrlTrfSetupHandler 12039 ;; This function uses a non-reentrant model 12040 ;; 12041 12042 12043 ;psect for function _USBCheckStdRequest 12044 0216 _USBCheckStdRequest: 12045 12046 ;usb_device.c: 2688: if(SetupPkt.RequestType != (0x00>>5)) return; 12047 12048 ;incstack = 0 12049 ; Regs used in _USBCheckStdRequest: [wreg-fsr1h+status,2+status,0+pclath+cstack] 12050 0216 0020 movlb 0 ; select bank0 12051 0217 0E50 swapf 80,w ;volatile 12052 0218 0C89 rrf 9,f 12053 0219 3903 andlw 3 12054 021A 1D03 btfss 3,2 12055 021B 0008 return 12056 12057 ;usb_device.c: 2728: break; 12058 021C 0851 movf 81,w ;volatile 12059 12060 ; Switch size 1, requested type "space" 12061 ; Number of cases is 11, Range of values is 0 to 12 12062 ; switch strategies available: 12063 ; Name Instructions Cycles 12064 ; direct_byte 32 6 (fixed) 12065 ; simple_byte 34 18 (average) 12066 ; jumptable 260 6 (fixed) 12067 ; Chosen strategy is direct_byte 12068 021D 0084 movwf 4 12069 021E 300D movlw 13 12070 021F 0204 subwf 4,w 12071 0220 1803 skipnc 12072 0221 0008 return 12073 0222 3188 movlp high i1S7461 12074 0223 3504 lslf 4,w 12075 0224 3E00 addlw low i1S7461 12076 0225 0082 movwf 2 12077 0226 i1l705: 12078 0226 0008 return 12079 0227 i1l707: 12080 ;usb_device.c: 2691: { 12081 ;usb_device.c: 2692: case 5: 12082 12083 12084 ;usb_device.c: 2693: inPipes[0].info.bits.busy = 1; 12085 0227 0024 movlb 4 ; select bank4 12086 0228 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12087 12088 ;usb_device.c: 2694: USBDeviceState = ADR_PENDING_STATE; 12089 0229 3008 movlw 8 12090 022A 00E0 movwf _USBDeviceState^(0+512) ;volatile 12091 12092 ;usb_device.c: 2696: break; 12093 022B 0008 return 12094 022C i1l5345: 12095 12096 ;usb_device.c: 2698: USBStdGetDscHandler(); 12097 022C 319F 2F17 ljmp i1l4959 12098 022E i1l5347: 12099 ;usb_device.c: 2699: break; 12100 12101 12102 ;usb_device.c: 2701: USBStdSetCfgHandler(); 12103 022E 3190 283A ljmp i1l4907 12104 0230 i1l5349: 12105 ;usb_device.c: 2702: break; 12106 12107 12108 ;usb_device.c: 2704: inPipes[0].pSrc.bRam = (uint8_t*)&USBActiveConfiguration; 12109 0230 306D movlw low _USBActiveConfiguration 12110 0231 0024 movlb 4 ; select bank4 12111 0232 00E8 movwf _inPipes^(0+512) ;volatile 12112 0233 3002 movlw high _USBActiveConfiguration 12113 0234 00E9 movwf (_inPipes+1)^(0+512) ;volatile 12114 12115 ;usb_device.c: 2705: inPipes[0].info.bits.ctrl_trf_mem = 0x01; 12116 0235 146A bsf (_inPipes^(0+512)+2),0 ;volatile 12117 12118 ;usb_device.c: 2706: inPipes[0].wCount.v[0] = 1; 12119 0236 3001 movlw 1 12120 0237 00EB movwf (_inPipes^(0+512)+3) ;volatile 12121 12122 ;usb_device.c: 2707: inPipes[0].info.bits.busy = 1; 12123 0238 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12124 12125 ;usb_device.c: 2708: break; 12126 0239 0008 return 12127 023A i1l5357: 12128 12129 ;usb_device.c: 2710: USBStdGetStatusHandler(); 12130 023A 3198 289B ljmp i1l4989 12131 023C i1l5359: 12132 ;usb_device.c: 2711: break; 12133 12134 12135 ;usb_device.c: 2713: case 3: 12136 ;usb_device.c: 2714: USBStdFeatureReqHandler(); 12137 023C 2A5B ljmp i1l5017 12138 023D i1l5361: 12139 ;usb_device.c: 2715: break; 12140 12141 12142 ;usb_device.c: 2717: inPipes[0].pSrc.bRam = (uint8_t*)&USBAlternateInterface[SetupPkt.bI + ntfID]; 12143 023D 0854 movf 84,w ;volatile 12144 023E 3EE7 addlw _USBAlternateInterface& (0+255) 12145 023F 0024 movlb 4 ; select bank4 12146 0240 00E8 movwf _inPipes^(0+512) ;volatile 12147 0241 3002 movlw 2 12148 0242 00E9 movwf (_inPipes+1)^(0+512) ;volatile 12149 12150 ;usb_device.c: 2718: inPipes[0].info.bits.ctrl_trf_mem = 0x01; 12151 0243 146A bsf (_inPipes^(0+512)+2),0 ;volatile 12152 12153 ;usb_device.c: 2719: inPipes[0].wCount.v[0] = 1; 12154 0244 3001 movlw 1 12155 0245 00EB movwf (_inPipes^(0+512)+3) ;volatile 12156 12157 ;usb_device.c: 2720: inPipes[0].info.bits.busy = 1; 12158 0246 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12159 12160 ;usb_device.c: 2721: break; 12161 0247 0008 return 12162 0248 i1l716: 12163 ;usb_device.c: 2722: case 11: 12164 12165 12166 ;usb_device.c: 2723: inPipes[0].info.bits.busy = 1; 12167 0248 0024 movlb 4 ; select bank4 12168 0249 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12169 12170 ;usb_device.c: 2724: USBAlternateInterface[SetupPkt.bIntfID] = SetupPkt.bAltID; 12171 024A 0020 movlb 0 ; select bank0 12172 024B 0854 movf 84,w ;volatile 12173 024C 3EE7 addlw _USBAlternateInterface& (0+255) 12174 024D 0086 movwf 6 12175 024E 3002 movlw 2 ; select bank5/6 12176 024F 0087 movwf 7 12177 0250 0852 movf 82,w ;volatile 12178 0251 0081 movwf 1 12179 12180 ;usb_device.c: 2725: break; 12181 0252 0008 return 12182 0253 i1l5371: 12183 12184 ;usb_device.c: 2727: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SET_DESCRIPTOR,0,0); 12185 0253 3002 movlw 2 12186 0254 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12187 0255 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12188 0256 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12189 0257 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12190 0258 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 12191 0259 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12192 025A 2C07 ljmp i1l4731 12193 025B __end_of_USBCheckStdRequest: 12194 025B __ptext63: 12195 ;; *************** function _USBStdFeatureReqHandler ***************** 12196 ;; Defined at: 12197 ;; line 2754 in file "../usb_device.c" 12198 ;; Parameters: Size Location Type 12199 ;; None 12200 ;; Auto vars: Size Location Type 12201 ;; p 2 9[BANK0h] PTR struct __BDT 12202 ;; -> RAM(4096), BDT(48), NULL(0), 12203 ;; pUEP 2 6[BANK0h] PTR unsigned char 12204 ;; -> UEP0(1), 12205 ;; current_ep_d 1 8[BANK0h] struct . 12206 ;; Return value: Size Location Type 12207 ;; None void 12208 ;; Registers used: 12209 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 12210 ;; Tracked objects: 12211 ;; On entry : 1A/0 12212 ;; On exit : 1B/0 12213 ;; Unchanged: 0/0 12214 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 12215 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12216 ;; Locals: 0 5 0 0 0 0 0 0 0 0 0 0 +0 0 12217 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 12218 ;; Totals: 2 5 0 0 0 0 0 0 0 0 0 0 +0 0 12219 ;;Total ram usage: 7 bytes 12220 ;; Hardware stack levels used: 1 12221 ;; Hardware stack levels required when called: 4 12222 ;; This function calls: 12223 ;; _USER_USB_CALLBACK_EVENT_HANDLER 12224 ;; This function is called by: 12225 ;; _USBCheckStdRequest 12226 ;; This function uses a non-reentrant model 12227 ;; 12228 12229 12230 ;psect for function _USBStdFeatureReqHandler 12231 025B _USBStdFeatureReqHandler: 12232 025B i1l5017: 12233 ;incstack = 0 12234 ; Regs used in _USBStdFeatureReqHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] 12235 12236 12237 ;usb_device.c: 2756: BDT_ENTRY *p; 12238 ;usb_device.c: 2757: EP_STATUS current_ep_data; 12239 ;usb_device.c: 2761: unsigned char* pUEP; 12240 ;usb_device.c: 2799: if((SetupPkt.bFeature == 1)&& 12241 ;usb_device.c: 2800: (SetupPkt.Recipient == (0x00))) 12242 025B 0020 movlb 0 ; select bank0 12243 025C 0B52 decfsz 82,w ;volatile 12244 025D 2A6F goto i1l5029 12245 025E 0850 movf 80,w ;volatile 12246 025F 391F andlw 31 12247 0260 1D03 skipz 12248 0261 2A6F goto i1l5029 12249 12250 ;usb_device.c: 2801: { 12251 ;usb_device.c: 2802: inPipes[0].info.bits.busy = 1; 12252 0262 0024 movlb 4 ; select bank4 12253 0263 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12254 12255 ;usb_device.c: 2803: if(SetupPkt.bRequest == 3) 12256 0264 0020 movlb 0 ; select bank0 12257 0265 0851 movf 81,w ;volatile 12258 0266 3A03 xorlw 3 12259 0267 1D03 skipz 12260 0268 2A6D goto i1l5027 12261 12262 ;usb_device.c: 2804: RemoteWakeup = 1; 12263 0269 3001 movlw 1 12264 026A 0025 movlb 5 ; select bank5 12265 026B 00C0 movwf _RemoteWakeup^(0+640) ;volatile 12266 026C 2A6F goto i1l5029 12267 026D i1l5027: 12268 12269 ;usb_device.c: 2805: else 12270 ;usb_device.c: 2806: RemoteWakeup = 0; 12271 026D 0025 movlb 5 ; select bank5 12272 026E 01C0 clrf _RemoteWakeup^(0+640) ;volatile 12273 026F i1l5029: 12274 12275 ;usb_device.c: 2807: } 12276 ;usb_device.c: 2810: if((SetupPkt.bFeature == 0)&& 12277 ;usb_device.c: 2811: (SetupPkt.Recipient == (0x02))&& 12278 ;usb_device.c: 2812: (SetupPkt.EPNum != 0) && (SetupPkt.EPNum <= 2)&& 12279 ;usb_device.c: 2813: (USBDeviceState == CONFIGURED_STATE)) 12280 026F 0020 movlb 0 ; select bank0 12281 0270 0852 movf 82,w ;volatile 12282 0271 1D03 skipz 12283 0272 0008 return 12284 0273 0850 movf 80,w ;volatile 12285 0274 391F andlw 31 12286 0275 3A02 xorlw 2 12287 0276 1D03 skipz 12288 0277 0008 return 12289 0278 0854 movf 84,w ;volatile 12290 0279 390F andlw 15 12291 027A 1903 skipnz 12292 027B 0008 return 12293 027C 0854 movf 84,w ;volatile 12294 027D 390F andlw 15 12295 027E 00FB movwf ??_USBStdFeatureReqHandler 12296 027F 3003 movlw 3 12297 0280 027B subwf ??_USBStdFeatureReqHandler,w 12298 0281 1803 skipnc 12299 0282 0008 return 12300 0283 0024 movlb 4 ; select bank4 12301 0284 0860 movf _USBDeviceState^(0+512),w ;volatile 12302 0285 3A20 xorlw 32 12303 0286 1D03 skipz 12304 0287 0008 return 12305 12306 ;usb_device.c: 2814: { 12307 ;usb_device.c: 2817: inPipes[0].info.bits.busy = 1; 12308 0288 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 12309 12310 ;usb_device.c: 2820: if(SetupPkt.EPDir == 0) 12311 0289 0020 movlb 0 ; select bank0 12312 028A 1BD4 btfsc 84,7 ;volatile 12313 028B 2A9B goto i1l5043 12314 12315 ;usb_device.c: 2821: { 12316 ;usb_device.c: 2822: p = (BDT_ENTRY*)pBDTEntryOut[SetupPkt.EPNum]; 12317 028C 0854 movf 84,w ;volatile 12318 028D 390F andlw 15 12319 028E 0709 addwf 9,w 12320 028F 3EA7 addlw _pBDTEntryOut& (0+255) 12321 0290 0086 movwf 6 12322 0291 3002 movlw 2 ; select bank5/6 12323 0292 0087 movwf 7 12324 0293 3F40 moviw [0]fsr1 12325 0294 00E9 movwf USBStdFeatureReqHandler@p 12326 0295 3F41 moviw [1]fsr1 12327 0296 00EA movwf USBStdFeatureReqHandler@p+1 12328 12329 ;usb_device.c: 2823: current_ep_data.Val = ep_data_out[SetupPkt.EPNum].Val; 12330 0297 0854 movf 84,w ;volatile 12331 0298 390F andlw 15 12332 0299 3EB0 addlw _ep_data_out& (0+255) 12333 029A 2AA9 goto L32 12334 029B i1l5043: 12335 ;usb_device.c: 2824: } 12336 12337 12338 ;usb_device.c: 2825: else 12339 ;usb_device.c: 2826: { 12340 ;usb_device.c: 2827: p = (BDT_ENTRY*)pBDTEntryIn[SetupPkt.EPNum]; 12341 029B 0854 movf 84,w ;volatile 12342 029C 390F andlw 15 12343 029D 0709 addwf 9,w 12344 029E 3E57 addlw _pBDTEntryIn& (0+255) 12345 029F 0086 movwf 6 12346 02A0 3002 movlw 2 ; select bank4/5 12347 02A1 0087 movwf 7 12348 02A2 3F40 moviw [0]fsr1 12349 02A3 00E9 movwf USBStdFeatureReqHandler@p 12350 02A4 3F41 moviw [1]fsr1 12351 02A5 00EA movwf USBStdFeatureReqHandler@p+1 12352 12353 ;usb_device.c: 2828: current_ep_data.Val = ep_data_in[SetupPkt.EPNum].Val; 12354 02A6 0854 movf 84,w ;volatile 12355 02A7 390F andlw 15 12356 02A8 3EAD addlw _ep_data_in& (0+255) 12357 02A9 L32: 12358 02A9 0086 movwf 6 12359 02AA 0801 movf 1,w 12360 02AB 00E8 movwf USBStdFeatureReqHandler@current_ep_data 12361 12362 ;usb_device.c: 2829: } 12363 ;usb_device.c: 2835: if(current_ep_data.bits.ping_pong_state == 0) 12364 02AC 1868 btfsc USBStdFeatureReqHandler@current_ep_data,0 12365 02AD 2AB9 goto i1l5049 12366 12367 ;usb_device.c: 2836: { 12368 ;usb_device.c: 2837: p = (BDT_ENTRY*)(((uintptr_t)p) & (~0x0004)); 12369 02AE 30FB movlw 251 12370 02AF 00FB movwf ??_USBStdFeatureReqHandler 12371 02B0 30FF movlw 255 12372 02B1 00FC movwf ??_USBStdFeatureReqHandler+1 12373 02B2 0869 movf USBStdFeatureReqHandler@p,w 12374 02B3 057B andwf ??_USBStdFeatureReqHandler,w 12375 02B4 00E9 movwf USBStdFeatureReqHandler@p 12376 02B5 086A movf USBStdFeatureReqHandler@p+1,w 12377 02B6 057C andwf ??_USBStdFeatureReqHandler+1,w 12378 02B7 00EA movwf USBStdFeatureReqHandler@p+1 12379 12380 ;usb_device.c: 2838: } 12381 02B8 2ABC goto i1l5051 12382 02B9 i1l5049: 12383 12384 ;usb_device.c: 2839: else 12385 ;usb_device.c: 2840: { 12386 ;usb_device.c: 2841: p = (BDT_ENTRY*)(((uintptr_t)p) | 0x0004); 12387 02B9 3004 movlw 4 12388 02BA 0469 iorwf USBStdFeatureReqHandler@p,w 12389 02BB 00E9 movwf USBStdFeatureReqHandler@p 12390 02BC i1l5051: 12391 12392 ;usb_device.c: 2842: } 12393 ;usb_device.c: 2847: if(SetupPkt.EPDir == 0) 12394 02BC 1BD4 btfsc 84,7 ;volatile 12395 02BD 2ACA goto i1l5055 12396 12397 ;usb_device.c: 2848: { 12398 ;usb_device.c: 2849: pBDTEntryOut[SetupPkt.EPNum] = (volatile BDT_ENTRY *)p; 12399 02BE 0854 movf 84,w ;volatile 12400 02BF 390F andlw 15 12401 02C0 0709 addwf 9,w 12402 02C1 3EA7 addlw _pBDTEntryOut& (0+255) 12403 02C2 0086 movwf 6 12404 02C3 3002 movlw 2 ; select bank5/6 12405 02C4 0087 movwf 7 12406 02C5 0869 movf USBStdFeatureReqHandler@p,w 12407 02C6 3FC0 movwi [0]fsr1 12408 02C7 086A movf USBStdFeatureReqHandler@p+1,w 12409 02C8 3FC1 movwi [1]fsr1 12410 12411 ;usb_device.c: 2850: } 12412 02C9 2AD5 goto i1l5057 12413 02CA i1l5055: 12414 12415 ;usb_device.c: 2851: else 12416 ;usb_device.c: 2852: { 12417 ;usb_device.c: 2853: pBDTEntryIn[SetupPkt.EPNum] = (volatile BDT_ENTRY *)p; 12418 02CA 0854 movf 84,w ;volatile 12419 02CB 390F andlw 15 12420 02CC 0709 addwf 9,w 12421 02CD 3E57 addlw _pBDTEntryIn& (0+255) 12422 02CE 0086 movwf 6 12423 02CF 3002 movlw 2 ; select bank4/5 12424 02D0 0087 movwf 7 12425 02D1 0869 movf USBStdFeatureReqHandler@p,w 12426 02D2 3FC0 movwi [0]fsr1 12427 02D3 086A movf USBStdFeatureReqHandler@p+1,w 12428 02D4 3FC1 movwi [1]fsr1 12429 02D5 i1l5057: 12430 12431 ;usb_device.c: 2854: } 12432 ;usb_device.c: 2857: if(SetupPkt.bRequest == 3) 12433 02D5 0851 movf 81,w ;volatile 12434 02D6 3A03 xorlw 3 12435 02D7 1D03 skipz 12436 02D8 2AF7 goto i1l5071 12437 12438 ;usb_device.c: 2858: { 12439 ;usb_device.c: 2859: if(p->STAT.UOWN == 1) 12440 02D9 0869 movf USBStdFeatureReqHandler@p,w 12441 02DA 0086 movwf 6 12442 02DB 086A movf USBStdFeatureReqHandler@p+1,w 12443 02DC 0087 movwf 7 12444 02DD 1F81 btfss 1,7 12445 02DE 2AEC goto i1l5067 12446 12447 ;usb_device.c: 2860: { 12448 ;usb_device.c: 2863: if(SetupPkt.EPDir == 0) 12449 02DF 1BD4 btfsc 84,7 ;volatile 12450 02E0 2AE5 goto i1l5065 12451 12452 ;usb_device.c: 2864: { 12453 ;usb_device.c: 2865: ep_data_out[SetupPkt.EPNum].bits.transfer_terminated = 1; 12454 02E1 0854 movf 84,w ;volatile 12455 02E2 390F andlw 15 12456 02E3 3EB0 addlw _ep_data_out& (0+255) 12457 02E4 2AE8 goto L33 12458 02E5 i1l5065: 12459 ;usb_device.c: 2866: } 12460 12461 12462 ;usb_device.c: 2867: else 12463 ;usb_device.c: 2868: { 12464 ;usb_device.c: 2869: ep_data_in[SetupPkt.EPNum].bits.transfer_terminated = 1; 12465 02E5 0854 movf 84,w ;volatile 12466 02E6 390F andlw 15 12467 02E7 3EAD addlw _ep_data_in& (0+255) 12468 02E8 L33: 12469 02E8 0086 movwf 6 12470 02E9 3002 movlw 2 ; select bank5/6 12471 02EA 0087 movwf 7 12472 02EB 1481 bsf 1,1 12473 02EC i1l5067: 12474 12475 ;usb_device.c: 2870: } 12476 ;usb_device.c: 2871: } 12477 ;usb_device.c: 2874: p->STAT.Val |= 0x04; 12478 02EC 0869 movf USBStdFeatureReqHandler@p,w 12479 02ED 0086 movwf 6 12480 02EE 086A movf USBStdFeatureReqHandler@p+1,w 12481 02EF 0087 movwf 7 12482 02F0 1501 bsf 1,2 12483 12484 ;usb_device.c: 2875: p->STAT.Val |= 0x80; 12485 02F1 0869 movf USBStdFeatureReqHandler@p,w 12486 02F2 0086 movwf 6 12487 02F3 086A movf USBStdFeatureReqHandler@p+1,w 12488 02F4 0087 movwf 7 12489 02F5 1781 bsf 1,7 12490 12491 ;usb_device.c: 2876: } 12492 02F6 0008 return 12493 02F7 i1l5071: 12494 12495 ;usb_device.c: 2877: else 12496 ;usb_device.c: 2878: { 12497 ;usb_device.c: 2882: p = (BDT_ENTRY*)(((uintptr_t)p) ^ 0x0004); 12498 02F7 3004 movlw 4 12499 02F8 0669 xorwf USBStdFeatureReqHandler@p,w 12500 02F9 00E9 movwf USBStdFeatureReqHandler@p 12501 12502 ;usb_device.c: 2884: if(p->STAT.UOWN == 1) 12503 02FA 0086 movwf 6 12504 02FB 086A movf USBStdFeatureReqHandler@p+1,w 12505 02FC 0087 movwf 7 12506 12507 ;usb_device.c: 2885: { 12508 ;usb_device.c: 2888: p->STAT.Val &= (~0x80); 12509 02FD 0869 movf USBStdFeatureReqHandler@p,w 12510 02FE 1F81 btfss 1,7 12511 02FF 2B18 goto L35 12512 0300 0086 movwf 6 12513 0301 086A movf USBStdFeatureReqHandler@p+1,w 12514 0302 0087 movwf 7 12515 0303 1381 bcf 1,7 12516 12517 ;usb_device.c: 2889: p->STAT.Val |= 0x40; 12518 0304 0869 movf USBStdFeatureReqHandler@p,w 12519 0305 0086 movwf 6 12520 0306 086A movf USBStdFeatureReqHandler@p+1,w 12521 0307 0087 movwf 7 12522 0308 3005 movlw 5 12523 0309 1701 bsf 1,6 12524 12525 ;usb_device.c: 2890: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER_TERMINATED,p,sizeof( + p)); 12526 030A 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12527 030B 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12528 030C 086A movf USBStdFeatureReqHandler@p+1,w 12529 030D 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12530 030E 07E3 addwf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,f 12531 030F 0869 movf USBStdFeatureReqHandler@p,w 12532 0310 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12533 0311 07E2 addwf USER_USB_CALLBACK_EVENT_HANDLER@pdata,f 12534 0312 3002 movlw 2 12535 0313 00E4 movwf USER_USB_CALLBACK_EVENT_HANDLER@size 12536 0314 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12537 0315 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12538 12539 ;usb_device.c: 2891: } 12540 0317 2B1C goto i1l5081 12541 0318 L35: 12542 ;usb_device.c: 2892: else 12543 ;usb_device.c: 2893: { 12544 ;usb_device.c: 2895: p->STAT.Val |= 0x40; 12545 12546 0318 0086 movwf 6 12547 0319 086A movf USBStdFeatureReqHandler@p+1,w 12548 031A 0087 movwf 7 12549 031B 1701 bsf 1,6 12550 031C i1l5081: 12551 12552 ;usb_device.c: 2896: } 12553 ;usb_device.c: 2900: p = (BDT_ENTRY*)(((uintptr_t)p) ^ 0x0004); 12554 031C 3004 movlw 4 12555 031D 0020 movlb 0 ; select bank0 12556 031E 0669 xorwf USBStdFeatureReqHandler@p,w 12557 031F 00E9 movwf USBStdFeatureReqHandler@p 12558 12559 ;usb_device.c: 2906: if((current_ep_data.bits.transfer_terminated != 0) || (p->STAT.UOWN + == 1)) 12560 0320 18E8 btfsc USBStdFeatureReqHandler@current_ep_data,1 12561 0321 2B28 goto i1l741 12562 0322 0869 movf USBStdFeatureReqHandler@p,w 12563 0323 0086 movwf 6 12564 0324 086A movf USBStdFeatureReqHandler@p+1,w 12565 0325 0087 movwf 7 12566 0326 1F81 btfss 1,7 12567 0327 2B4A goto i1l5093 12568 0328 i1l741: 12569 12570 ;usb_device.c: 2907: { 12571 ;usb_device.c: 2908: if(SetupPkt.EPDir == 0) 12572 0328 1BD4 btfsc 84,7 ;volatile 12573 0329 2B2E goto i1l5089 12574 12575 ;usb_device.c: 2909: { 12576 ;usb_device.c: 2910: ep_data_out[SetupPkt.EPNum].bits.transfer_terminated = 0; 12577 032A 0854 movf 84,w ;volatile 12578 032B 390F andlw 15 12579 032C 3EB0 addlw _ep_data_out& (0+255) 12580 032D 2B31 goto L34 12581 032E i1l5089: 12582 ;usb_device.c: 2911: } 12583 12584 12585 ;usb_device.c: 2912: else 12586 ;usb_device.c: 2913: { 12587 ;usb_device.c: 2914: ep_data_in[SetupPkt.EPNum].bits.transfer_terminated = 0; 12588 032E 0854 movf 84,w ;volatile 12589 032F 390F andlw 15 12590 0330 3EAD addlw _ep_data_in& (0+255) 12591 0331 L34: 12592 0331 0086 movwf 6 12593 0332 3002 movlw 2 ; select bank5/6 12594 0333 0087 movwf 7 12595 0334 1081 bcf 1,1 12596 12597 ;usb_device.c: 2915: } 12598 ;usb_device.c: 2917: p->STAT.Val &= ~(0x80 | 0x40 | 0x04); 12599 0335 0869 movf USBStdFeatureReqHandler@p,w 12600 0336 0086 movwf 6 12601 0337 086A movf USBStdFeatureReqHandler@p+1,w 12602 0338 0087 movwf 7 12603 0339 303B movlw 59 12604 033A 0581 andwf 1,f 12605 12606 ;usb_device.c: 2920: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER_TERMINATED,p,sizeof( + p)); 12607 033B 3005 movlw 5 12608 033C 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12609 033D 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12610 033E 086A movf USBStdFeatureReqHandler@p+1,w 12611 033F 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12612 0340 07E3 addwf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,f 12613 0341 0869 movf USBStdFeatureReqHandler@p,w 12614 0342 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12615 0343 07E2 addwf USER_USB_CALLBACK_EVENT_HANDLER@pdata,f 12616 0344 3002 movlw 2 12617 0345 00E4 movwf USER_USB_CALLBACK_EVENT_HANDLER@size 12618 0346 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12619 0347 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12620 12621 ;usb_device.c: 2921: } 12622 0349 2B50 goto i1l5095 12623 034A i1l5093: 12624 12625 ;usb_device.c: 2922: else 12626 ;usb_device.c: 2923: { 12627 ;usb_device.c: 2925: p->STAT.Val &= ~(0x80 | 0x40 | 0x04); 12628 034A 0869 movf USBStdFeatureReqHandler@p,w 12629 034B 0086 movwf 6 12630 034C 086A movf USBStdFeatureReqHandler@p+1,w 12631 034D 0087 movwf 7 12632 034E 303B movlw 59 12633 034F 0581 andwf 1,f 12634 0350 i1l5095: 12635 12636 ;usb_device.c: 2926: } 12637 ;usb_device.c: 2973: pUEP = (unsigned char*)(&UEP0+SetupPkt.EPNum); 12638 0350 0020 movlb 0 ; select bank0 12639 0351 0854 movf 84,w ;volatile 12640 0352 390F andlw 15 12641 0353 3E98 addlw 152 12642 0354 00FB movwf ??_USBStdFeatureReqHandler 12643 0355 300E movlw 14 12644 0356 01FC clrf ??_USBStdFeatureReqHandler+1 12645 0357 3DFC addwfc ??_USBStdFeatureReqHandler+1,f 12646 0358 087B movf ??_USBStdFeatureReqHandler,w 12647 0359 00E6 movwf USBStdFeatureReqHandler@pUEP 12648 035A 087C movf ??_USBStdFeatureReqHandler+1,w 12649 035B 00E7 movwf USBStdFeatureReqHandler@pUEP+1 12650 12651 ;usb_device.c: 2977: *pUEP &= ~0x0001; 12652 035C 0866 movf USBStdFeatureReqHandler@pUEP,w 12653 035D 0086 movwf 6 12654 035E 0867 movf USBStdFeatureReqHandler@pUEP+1,w 12655 035F 0087 movwf 7 12656 0360 1001 bcf 1,0 12657 0361 0008 return 12658 0362 __end_of_USBStdFeatureReqHandler: 12659 0362 __ptext47: 12660 ;; *************** function _USBDeviceTasks ***************** 12661 ;; Defined at: 12662 ;; line 477 in file "../usb_device.c" 12663 ;; Parameters: Size Location Type 12664 ;; None 12665 ;; Auto vars: Size Location Type 12666 ;; i 1 12[BANK0h] unsigned char 12667 ;; Return value: Size Location Type 12668 ;; None void 12669 ;; Registers used: 12670 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 12671 ;; Tracked objects: 12672 ;; On entry : 1F/0 12673 ;; On exit : 1F/0 12674 ;; Unchanged: 0/0 12675 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 12676 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 12677 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 +0 0 12678 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 +0 0 12679 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 +0 0 12680 ;;Total ram usage: 2 bytes 12681 ;; Hardware stack levels used: 1 12682 ;; Hardware stack levels required when called: 8 12683 ;; This function calls: 12684 ;; _USBCtrlEPAllowStatusStage 12685 ;; _USBCtrlEPService 12686 ;; _USBIncrement1msInternalTimers 12687 ;; _USBStallHandler 12688 ;; _USBSuspend 12689 ;; _USBWakeFromSuspend 12690 ;; _USER_USB_CALLBACK_EVENT_HANDLER 12691 ;; i1_USBDeviceInit 12692 ;; This function is called by: 12693 ;; _SYS_InterruptHigh 12694 ;; This function uses a non-reentrant model 12695 ;; 12696 12697 12698 ;psect for function _USBDeviceTasks 12699 0362 _USBDeviceTasks: 12700 12701 ;usb_device.c: 479: uint8_t i; 12702 ;usb_device.c: 590: if(USBDeviceState == ATTACHED_STATE) 12703 12704 ;incstack = 0 12705 ; Regs used in _USBDeviceTasks: [wreg-fsr1h+status,2+status,0+pclath+cstack] 12706 0362 0024 movlb 4 ; select bank4 12707 0363 0360 decf _USBDeviceState^(0+512),w ;volatile 12708 0364 1D03 skipz 12709 0365 2B6F goto i1l6851 12710 12711 ;usb_device.c: 591: { 12712 ;usb_device.c: 601: if(!UCONbits.SE0) 12713 0366 003D movlb 29 ; select bank29 12714 0367 1A8E btfsc 14,5 ;volatile 12715 0368 2B6F goto i1l6851 12716 12717 ;usb_device.c: 602: { 12718 ;usb_device.c: 608: {UIR = 0;}; 12719 0369 0190 clrf 16 ;volatile 12720 12721 ;usb_device.c: 614: UIEbits.URSTIE = 1; 12722 036A 1412 bsf 18,0 ;volatile 12723 12724 ;usb_device.c: 615: UIEbits.IDLEIE = 1; 12725 036B 1612 bsf 18,4 ;volatile 12726 12727 ;usb_device.c: 616: USBDeviceState = POWERED_STATE; 12728 036C 3002 movlw 2 12729 036D 0024 movlb 4 ; select bank4 12730 036E 00E0 movwf _USBDeviceState^(0+512) ;volatile 12731 036F i1l6851: 12732 12733 ;usb_device.c: 617: } 12734 ;usb_device.c: 618: } 12735 ;usb_device.c: 634: if(UIRbits.ACTVIF && UIEbits.ACTVIE) 12736 036F 003D movlb 29 ; select bank29 12737 0370 1910 btfsc 16,2 ;volatile 12738 0371 1D12 btfss 18,2 ;volatile 12739 0372 2B76 goto i1l6859 12740 12741 ;usb_device.c: 635: { 12742 ;usb_device.c: 636: (UIR &= 0xFB); 12743 0373 1110 bcf 16,2 ;volatile 12744 12745 ;usb_device.c: 640: USBWakeFromSuspend(); 12746 0374 24FD 3181 fcall _USBWakeFromSuspend 12747 0376 i1l6859: 12748 12749 ;usb_device.c: 642: } 12750 ;usb_device.c: 647: if(UCONbits.SUSPND==1) 12751 0376 003D movlb 29 ; select bank29 12752 0377 1C8E btfss 14,1 ;volatile 12753 0378 2B7C goto i1l506 12754 12755 ;usb_device.c: 648: { 12756 ;usb_device.c: 649: PIR2bits.USBIF = 0;; 12757 0379 0020 movlb 0 ; select bank0 12758 037A 1112 bcf 18,2 ;volatile 12759 12760 ;usb_device.c: 650: return; 12761 037B 0008 return 12762 037C i1l506: 12763 12764 ;usb_device.c: 651: } 12765 ;usb_device.c: 663: if(UIRbits.URSTIF && UIEbits.URSTIE) 12766 037C 1810 btfsc 16,0 ;volatile 12767 037D 1C12 btfss 18,0 ;volatile 12768 037E 2B88 goto i1l6873 12769 12770 ;usb_device.c: 664: { 12771 ;usb_device.c: 665: USBDeviceInit(); 12772 037F 2511 3181 fcall i1_USBDeviceInit 12773 12774 ;usb_device.c: 669: {PIE2bits.USBIE = 1;}; 12775 0381 0021 movlb 1 ; select bank1 12776 0382 1512 bsf 18,2 ;volatile 12777 12778 ;usb_device.c: 671: USBDeviceState = DEFAULT_STATE; 12779 0383 3004 movlw 4 12780 0384 0024 movlb 4 ; select bank4 12781 0385 00E0 movwf _USBDeviceState^(0+512) ;volatile 12782 12783 ;usb_device.c: 681: (UIR &= 0xFE); 12784 0386 003D movlb 29 ; select bank29 12785 0387 1010 bcf 16,0 ;volatile 12786 0388 i1l6873: 12787 12788 ;usb_device.c: 682: } 12789 ;usb_device.c: 687: if(UIRbits.IDLEIF && UIEbits.IDLEIE) 12790 0388 1A10 btfsc 16,4 ;volatile 12791 0389 1E12 btfss 18,4 ;volatile 12792 038A 2B8D goto i1l6879 12793 12794 ;usb_device.c: 688: { 12795 ;usb_device.c: 694: USBSuspend(); 12796 038B 24F0 3181 fcall _USBSuspend 12797 038D i1l6879: 12798 12799 ;usb_device.c: 696: } 12800 ;usb_device.c: 708: if(UIRbits.SOFIF) 12801 038D 003D movlb 29 ; select bank29 12802 038E 1F10 btfss 16,6 ;volatile 12803 038F 2BAA goto i1l6895 12804 12805 ;usb_device.c: 709: { 12806 ;usb_device.c: 711: if(UIEbits.SOFIE) 12807 0390 1F12 btfss 18,6 ;volatile 12808 0391 2B9E goto i1l6885 12809 12810 ;usb_device.c: 712: { 12811 ;usb_device.c: 713: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SOF,0,1); 12812 0392 3073 movlw 115 12813 0393 0020 movlb 0 ; select bank0 12814 0394 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12815 0395 3000 movlw 0 12816 0396 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12817 0397 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12818 0398 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12819 0399 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 12820 039A 0AE4 incf USER_USB_CALLBACK_EVENT_HANDLER@size,f 12821 039B 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12822 039C 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12823 039E i1l6885: 12824 12825 ;usb_device.c: 714: } 12826 ;usb_device.c: 715: (UIR &= 0xBF); 12827 039E 003D movlb 29 ; select bank29 12828 039F 1310 bcf 16,6 ;volatile 12829 12830 ;usb_device.c: 718: USBIncrement1msInternalTimers(); 12831 03A0 24C0 3181 fcall _USBIncrement1msInternalTimers 12832 12833 ;usb_device.c: 735: if(USBStatusStageTimeoutCounter != 0u) 12834 03A2 0847 movf _USBStatusStageTimeoutCounter^(0+640),w 12835 03A3 1D03 skipz 12836 12837 ;usb_device.c: 736: { 12838 ;usb_device.c: 737: USBStatusStageTimeoutCounter--; 12839 03A4 03C7 decf _USBStatusStageTimeoutCounter^(0+640),f ;volatile 12840 12841 ;usb_device.c: 738: } 12842 ;usb_device.c: 744: if(USBStatusStageTimeoutCounter == 0) 12843 03A5 08C7 movf _USBStatusStageTimeoutCounter^(0+640),f ;volatile 12844 03A6 1D03 skipz 12845 03A7 2BAA goto i1l6895 12846 12847 ;usb_device.c: 745: { 12848 ;usb_device.c: 746: USBCtrlEPAllowStatusStage(); 12849 03A8 2435 3181 fcall _USBCtrlEPAllowStatusStage 12850 03AA i1l6895: 12851 12852 ;usb_device.c: 747: } 12853 ;usb_device.c: 749: } 12854 ;usb_device.c: 751: if(UIRbits.STALLIF && UIEbits.STALLIE) 12855 03AA 003D movlb 29 ; select bank29 12856 03AB 1A90 btfsc 16,5 ;volatile 12857 03AC 1E92 btfss 18,5 ;volatile 12858 03AD 2BB0 goto i1l6901 12859 12860 ;usb_device.c: 752: { 12861 ;usb_device.c: 753: USBStallHandler(); 12862 03AE 24D0 3181 fcall _USBStallHandler 12863 03B0 i1l6901: 12864 12865 ;usb_device.c: 754: } 12866 ;usb_device.c: 756: if(UIRbits.UERRIF && UIEbits.UERRIE) 12867 03B0 1890 btfsc 16,1 ;volatile 12868 03B1 1C92 btfss 18,1 ;volatile 12869 03B2 2BC1 goto i1l6909 12870 12871 ;usb_device.c: 757: { 12872 ;usb_device.c: 758: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_BUS_ERROR,0,1); 12873 03B3 30FF movlw 255 12874 03B4 0020 movlb 0 ; select bank0 12875 03B5 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12876 03B6 307F movlw 127 12877 03B7 00E1 movwf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12878 03B8 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12879 03B9 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12880 03BA 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 12881 03BB 0AE4 incf USER_USB_CALLBACK_EVENT_HANDLER@size,f 12882 03BC 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12883 03BD 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12884 12885 ;usb_device.c: 759: {UEIR = 0;}; 12886 03BF 003D movlb 29 ; select bank29 12887 03C0 0193 clrf 19 ;volatile 12888 03C1 i1l6909: 12889 12890 ;usb_device.c: 767: } 12891 ;usb_device.c: 774: if(USBDeviceState < DEFAULT_STATE) 12892 03C1 3004 movlw 4 12893 03C2 0024 movlb 4 ; select bank4 12894 03C3 0260 subwf _USBDeviceState^(0+512),w ;volatile 12895 03C4 1803 skipnc 12896 03C5 2BC9 goto i1l516 12897 12898 ;usb_device.c: 775: { 12899 ;usb_device.c: 776: PIR2bits.USBIF = 0;; 12900 03C6 0020 movlb 0 ; select bank0 12901 03C7 1112 bcf 18,2 ;volatile 12902 12903 ;usb_device.c: 777: return; 12904 03C8 0008 return 12905 03C9 i1l516: 12906 12907 ;usb_device.c: 778: } 12908 ;usb_device.c: 783: if(UIEbits.TRNIE) 12909 03C9 003D movlb 29 ; select bank29 12910 03CA 1D92 btfss 18,3 ;volatile 12911 03CB 2C04 goto i1l517 12912 12913 ;usb_device.c: 784: { 12914 ;usb_device.c: 785: for(i = 0; i < 4u; i++) 12915 03CC 0020 movlb 0 ; select bank0 12916 03CD 01EC clrf USBDeviceTasks@i 12917 03CE 2C01 goto i1l518 12918 03CF i1l6919: 12919 12920 ;usb_device.c: 788: { 12921 ;usb_device.c: 790: USTATcopy.Val = USTAT; 12922 03CF 080F movf 15,w ;volatile 12923 03D0 0024 movlb 4 ; select bank4 12924 03D1 00EE movwf _USTATcopy^(0+512) ;volatile 12925 12926 ;usb_device.c: 791: endpoint_number = USTATcopy.endpoint_number; 12927 03D2 0C6E rrf _USTATcopy^(0+512),w ;volatile 12928 03D3 0020 movlb 0 ; select bank0 12929 03D4 00EB movwf ??_USBDeviceTasks 12930 03D5 0CEB rrf ??_USBDeviceTasks,f 12931 03D6 0C6B rrf ??_USBDeviceTasks,w 12932 03D7 390F andlw 15 12933 03D8 0024 movlb 4 ; select bank4 12934 03D9 00E3 movwf _endpoint_number^(0+512) ;volatile 12935 12936 ;usb_device.c: 793: (UIR &= 0xF7); 12937 03DA 003D movlb 29 ; select bank29 12938 03DB 1190 bcf 16,3 ;volatile 12939 12940 ;usb_device.c: 798: if(USTATcopy.direction == 0) 12941 03DC 0024 movlb 4 ; select bank4 12942 03DD 196E btfsc _USTATcopy^(0+512),2 ;volatile 12943 03DE 2BE2 goto i1l6929 12944 12945 ;usb_device.c: 799: { 12946 ;usb_device.c: 800: ep_data_out[endpoint_number].bits.ping_pong_state ^= 1; 12947 03DF 0863 movf _endpoint_number^(0+512),w ;volatile 12948 03E0 3EB0 addlw _ep_data_out& (0+255) 12949 03E1 2BE4 goto L30 12950 03E2 i1l6929: 12951 ;usb_device.c: 801: } 12952 12953 12954 ;usb_device.c: 802: else 12955 ;usb_device.c: 803: { 12956 ;usb_device.c: 804: ep_data_in[endpoint_number].bits.ping_pong_state ^= 1; 12957 03E2 0863 movf _endpoint_number^(0+512),w ;volatile 12958 03E3 3EAD addlw _ep_data_in& (0+255) 12959 03E4 L30: 12960 03E4 0086 movwf 6 12961 03E5 3002 movlw 2 ; select bank5/6 12962 03E6 0087 movwf 7 12963 03E7 3001 movlw 1 12964 03E8 0681 xorwf 1,f 12965 12966 ;usb_device.c: 805: } 12967 ;usb_device.c: 810: if(endpoint_number == 0) 12968 03E9 08E3 movf _endpoint_number^(0+512),f ;volatile 12969 03EA 1D03 skipz 12970 03EB 2BEF goto i1l6935 12971 12972 ;usb_device.c: 811: { 12973 ;usb_device.c: 812: USBCtrlEPService(); 12974 03EC 2487 3181 fcall _USBCtrlEPService 12975 12976 ;usb_device.c: 813: } 12977 03EE 2BFB goto i1l6937 12978 03EF i1l6935: 12979 12980 ;usb_device.c: 814: else 12981 ;usb_device.c: 815: { 12982 ;usb_device.c: 816: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER,(uint8_t*)&USTATcopy. + Val,0); 12983 03EF 3072 movlw 114 12984 03F0 0020 movlb 0 ; select bank0 12985 03F1 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 12986 03F2 306E movlw low _USTATcopy 12987 03F3 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 12988 03F4 00E2 movwf USER_USB_CALLBACK_EVENT_HANDLER@pdata 12989 03F5 3002 movlw high _USTATcopy 12990 03F6 00E3 movwf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 12991 03F7 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 12992 03F8 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 12993 03F9 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 12994 03FB i1l6937: 12995 03FB 0020 movlb 0 ; select bank0 12996 03FC 3004 movlw 4 12997 03FD 0AEC incf USBDeviceTasks@i,f 12998 03FE 026C subwf USBDeviceTasks@i,w 12999 03FF 1803 btfsc 3,0 13000 0400 2C04 goto i1l517 13001 0401 i1l518: 13002 13003 ;usb_device.c: 786: { 13004 ;usb_device.c: 787: if(UIRbits.TRNIF) 13005 0401 003D movlb 29 ; select bank29 13006 0402 1990 btfsc 16,3 ;volatile 13007 0403 2BCF goto i1l6919 13008 0404 i1l517: 13009 13010 ;usb_device.c: 822: } 13011 ;usb_device.c: 823: } 13012 ;usb_device.c: 824: } 13013 ;usb_device.c: 826: PIR2bits.USBIF = 0;; 13014 0404 0020 movlb 0 ; select bank0 13015 0405 1112 bcf 18,2 ;volatile 13016 0406 0008 return 13017 0407 __end_of_USBDeviceTasks: 13018 0407 __ptext64: 13019 ;; *************** function _USER_USB_CALLBACK_EVENT_HANDLER ***************** 13020 ;; Defined at: 13021 ;; line 51 in file "../usb_events.c" 13022 ;; Parameters: Size Location Type 13023 ;; event 2 0[BANK0h] enum E2048 13024 ;; pdata 2 2[BANK0h] PTR void 13025 ;; -> RAM(4096), USTATcopy(1), USBActiveConfiguration(1), BDT(48), 13026 ;; -> NULL(0), 13027 ;; size 2 4[BANK0h] unsigned int 13028 ;; Auto vars: Size Location Type 13029 ;; None 13030 ;; Return value: Size Location Type 13031 ;; 1 wreg unsigned char 13032 ;; Registers used: 13033 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 13034 ;; Tracked objects: 13035 ;; On entry : 1F/0 13036 ;; On exit : 1A/0 13037 ;; Unchanged: 0/0 13038 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13039 ;; Params: 0 6 0 0 0 0 0 0 0 0 0 0 +0 0 13040 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13041 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13042 ;; Totals: 0 6 0 0 0 0 0 0 0 0 0 0 +0 0 13043 ;;Total ram usage: 6 bytes 13044 ;; Hardware stack levels used: 1 13045 ;; Hardware stack levels required when called: 3 13046 ;; This function calls: 13047 ;; _APP_DeviceCDCBasicDemoInitialize 13048 ;; _CDCInitEP 13049 ;; _USBCheckCDCRequest 13050 ;; This function is called by: 13051 ;; _USBDeviceTasks 13052 ;; _USBStdSetCfgHandler 13053 ;; _USBSuspend 13054 ;; _USBWakeFromSuspend 13055 ;; _USBCtrlTrfSetupHandler 13056 ;; _USBCheckStdRequest 13057 ;; _USBStdFeatureReqHandler 13058 ;; This function uses a non-reentrant model 13059 ;; 13060 13061 13062 ;psect for function _USER_USB_CALLBACK_EVENT_HANDLER 13063 0407 _USER_USB_CALLBACK_EVENT_HANDLER: 13064 0407 i1l4731: 13065 ;incstack = 0 13066 ; Regs used in _USER_USB_CALLBACK_EVENT_HANDLER: [wreg-fsr1h+status,2+status,0+pclath+cs + tack] 13067 13068 13069 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 2 sub-sw + itches 13070 ; Switch size 1, requested type "space" 13071 ; Number of cases is 2, Range of values is 0 to 127 13072 ; switch strategies available: 13073 ; Name Instructions Cycles 13074 ; simple_byte 7 4 (average) 13075 ; direct_byte 262 6 (fixed) 13076 ; jumptable 260 6 (fixed) 13077 ; Chosen strategy is simple_byte 13078 13079 ;usb_events.c: 102: break; 13080 13081 ;usb_events.c: 53: switch( (int) event ) 13082 0407 0861 movf USER_USB_CALLBACK_EVENT_HANDLER@event+1,w 13083 0408 3A00 xorlw 0 ; case 0 13084 0409 1903 skipnz 13085 040A 2C15 goto i1l7463 13086 040B 3A7F xorlw 127 ; case 127 13087 040C 1903 skipnz 13088 040D 2C2F goto i1l7465 13089 040E 2C34 goto i1l776 13090 040F i1l4733: 13091 13092 ;usb_events.c: 91: CDCInitEP(); 13093 040F 319D 251B 3181 fcall _CDCInitEP 13094 13095 ;usb_events.c: 92: APP_DeviceCDCBasicDemoInitialize(); 13096 0412 2DB8 ljmp i1l4657 13097 0413 i1l4737: 13098 ;usb_events.c: 93: break; 13099 13100 13101 ;usb_events.c: 101: USBCheckCDCRequest(); 13102 0413 3198 28E6 ljmp i1l4665 13103 0415 i1l7463: 13104 13105 ; Switch size 1, requested type "space" 13106 ; Number of cases is 8, Range of values is 1 to 117 13107 ; switch strategies available: 13108 ; Name Instructions Cycles 13109 ; simple_byte 25 13 (average) 13110 ; direct_byte 243 9 (fixed) 13111 ; jumptable 263 9 (fixed) 13112 ; Chosen strategy is simple_byte 13113 0415 0860 movf USER_USB_CALLBACK_EVENT_HANDLER@event,w 13114 0416 3A01 xorlw 1 ; case 1 13115 0417 1903 skipnz 13116 0418 2C0F goto i1l4733 13117 0419 3A03 xorlw 3 ; case 2 13118 041A 1903 skipnz 13119 041B 2C34 goto i1l776 13120 041C 3A01 xorlw 1 ; case 3 13121 041D 1903 skipnz 13122 041E 2C13 goto i1l4737 13123 041F 3A06 xorlw 6 ; case 5 13124 0420 1903 skipnz 13125 0421 2C34 goto i1l776 13126 0422 3A77 xorlw 119 ; case 114 13127 0423 1903 skipnz 13128 0424 2C34 goto i1l776 13129 0425 3A01 xorlw 1 ; case 115 13130 0426 1903 skipnz 13131 0427 2C34 goto i1l776 13132 0428 3A07 xorlw 7 ; case 116 13133 0429 1903 skipnz 13134 042A 2C34 goto i1l776 13135 042B 3A01 xorlw 1 ; case 117 13136 042C 1903 skipnz 13137 042D 2C34 goto i1l776 13138 042E 2C34 goto i1l776 13139 042F i1l7465: 13140 13141 ; Switch size 1, requested type "space" 13142 ; Number of cases is 1, Range of values is 255 to 255 13143 ; switch strategies available: 13144 ; Name Instructions Cycles 13145 ; simple_byte 4 3 (average) 13146 ; direct_byte 7 5 (fixed) 13147 ; jumptable 263 9 (fixed) 13148 ; Chosen strategy is simple_byte 13149 042F 0860 movf USER_USB_CALLBACK_EVENT_HANDLER@event,w 13150 0430 3AFF xorlw 255 ; case 255 13151 0431 1903 skipnz 13152 0432 2C34 goto i1l776 13153 0433 2C34 goto i1l776 13154 0434 i1l776: 13155 0434 0008 return 13156 0435 __end_of_USER_USB_CALLBACK_EVENT_HANDLER: 13157 0435 __ptext73: 13158 ;; *************** function _USBCtrlEPAllowStatusStage ***************** 13159 ;; Defined at: 13160 ;; line 1416 in file "../usb_device.c" 13161 ;; Parameters: Size Location Type 13162 ;; None 13163 ;; Auto vars: Size Location Type 13164 ;; None 13165 ;; Return value: Size Location Type 13166 ;; None void 13167 ;; Registers used: 13168 ;; wreg, fsr1l, fsr1h, status,2, status,0 13169 ;; Tracked objects: 13170 ;; On entry : 1A/5 13171 ;; On exit : 1E/4 13172 ;; Unchanged: 0/0 13173 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13174 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13175 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13176 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 13177 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 13178 ;;Total ram usage: 2 bytes 13179 ;; Hardware stack levels used: 1 13180 ;; This function calls: 13181 ;; Nothing 13182 ;; This function is called by: 13183 ;; _USBDeviceTasks 13184 ;; _USBCtrlEPServiceComplete 13185 ;; _USBCtrlTrfRxService 13186 ;; This function uses a non-reentrant model 13187 ;; 13188 13189 13190 ;psect for function _USBCtrlEPAllowStatusStage 13191 0435 _USBCtrlEPAllowStatusStage: 13192 0435 i1l4849: 13193 ;incstack = 0 13194 ; Regs used in _USBCtrlEPAllowStatusStage: [wreg+fsr1l+fsr1h+status,2+status,0] 13195 13196 13197 ;usb_device.c: 1423: if(USBStatusStageEnabledFlag1 == 0) 13198 0435 0025 movlb 5 ; select bank5 13199 0436 08C5 movf _USBStatusStageEnabledFlag1^(0+640),f ;volatile 13200 0437 1D03 skipz 13201 0438 0008 return 13202 13203 ;usb_device.c: 1424: { 13204 ;usb_device.c: 1425: USBStatusStageEnabledFlag1 = 1; 13205 0439 3001 movlw 1 13206 043A 00C5 movwf _USBStatusStageEnabledFlag1^(0+640) ;volatile 13207 13208 ;usb_device.c: 1426: if(USBStatusStageEnabledFlag2 == 0) 13209 043B 08C6 movf _USBStatusStageEnabledFlag2^(0+640),f ;volatile 13210 043C 1D03 skipz 13211 043D 0008 return 13212 13213 ;usb_device.c: 1427: { 13214 ;usb_device.c: 1428: USBStatusStageEnabledFlag2 = 1; 13215 043E 00C6 movwf _USBStatusStageEnabledFlag2^(0+640) ;volatile 13216 13217 ;usb_device.c: 1432: if(controlTransferState == 2) 13218 043F 0024 movlb 4 ; select bank4 13219 0440 0862 movf _controlTransferState^(0+512),w ;volatile 13220 0441 3A02 xorlw 2 13221 0442 1D03 skipz 13222 0443 2C4E goto i1l4863 13223 13224 ;usb_device.c: 1433: { 13225 ;usb_device.c: 1434: pBDTEntryIn[0]->CNT = 0; 13226 0444 0857 movf _pBDTEntryIn^(0+512),w 13227 0445 0086 movwf 6 13228 0446 0858 movf (_pBDTEntryIn+1)^(0+512),w 13229 0447 0087 movwf 7 13230 0448 3141 addfsr 1,1 13231 0449 0181 clrf 1 13232 13233 ;usb_device.c: 1435: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08); 13234 044A 0857 movf _pBDTEntryIn^(0+512),w 13235 044B 25C5 fcall PL135 ;call to abstracted procedure 13236 13237 ;usb_device.c: 1436: pBDTEntryIn[0]->STAT.Val |= 0x80; 13238 13239 ;usb_device.c: 1437: } 13240 044C 3186 2EEC ljmp PL131 ;call to abstracted procedure 13241 044E i1l4863: 13242 13243 ;usb_device.c: 1438: else if(controlTransferState == 1) 13244 044E 0B62 decfsz _controlTransferState^(0+512),w ;volatile 13245 044F 0008 return 13246 13247 ;usb_device.c: 1439: { 13248 ;usb_device.c: 1440: BothEP0OutUOWNsSet = 0; 13249 0450 0025 movlb 5 ; select bank5 13250 0451 01BF clrf _BothEP0OutUOWNsSet^(0+640) ;volatile 13251 13252 ;usb_device.c: 1445: pBDTEntryEP0OutCurrent->CNT = 8; 13253 0452 0020 movlb 0 ; select bank0 13254 0453 0A6F incf _pBDTEntryEP0OutCurrent,w 13255 0454 0086 movwf 6 13256 0455 3008 movlw 8 13257 0456 0187 clrf 7 13258 0457 0081 movwf 1 13259 13260 ;usb_device.c: 1446: pBDTEntryEP0OutCurrent->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 13261 0458 3050 movlw 80 13262 0459 00F0 movwf ??_USBCtrlEPAllowStatusStage 13263 045A 01F1 clrf ??_USBCtrlEPAllowStatusStage+1 13264 045B 086F movf _pBDTEntryEP0OutCurrent,w 13265 045C 3E02 addlw 2 13266 045D 0086 movwf 6 13267 045E 0870 movf ??_USBCtrlEPAllowStatusStage,w 13268 045F 3FC0 movwi [0]fsr1 13269 0460 0871 movf ??_USBCtrlEPAllowStatusStage+1,w 13270 0461 3FC1 movwi [1]fsr1 13271 13272 ;usb_device.c: 1447: pBDTEntryEP0OutCurrent->STAT.Val = 0x04; 13273 0462 086F movf _pBDTEntryEP0OutCurrent,w 13274 0463 0086 movwf 6 13275 0464 3004 movlw 4 13276 0465 0081 movwf 1 13277 13278 ;usb_device.c: 1448: pBDTEntryEP0OutCurrent->STAT.Val |= 0x80; 13279 0466 086F movf _pBDTEntryEP0OutCurrent,w 13280 0467 0086 movwf 6 13281 0468 3001 movlw 1 13282 0469 1781 bsf 1,7 13283 13284 ;usb_device.c: 1449: BothEP0OutUOWNsSet = 1; 13285 046A 0025 movlb 5 ; select bank5 13286 046B 00BF movwf _BothEP0OutUOWNsSet^(0+640) ;volatile 13287 13288 ;usb_device.c: 1453: pBDTEntryEP0OutNext->CNT = 8; 13289 046C 0024 movlb 4 ; select bank4 13290 046D 085D movf _pBDTEntryEP0OutNext^(0+512),w 13291 046E 3E01 addlw 1 13292 046F 00F0 movwf ??_USBCtrlEPAllowStatusStage 13293 0470 3000 movlw 0 13294 0471 3D5E addwfc (_pBDTEntryEP0OutNext+1)^(0+512),w 13295 0472 00F1 movwf ??_USBCtrlEPAllowStatusStage+1 13296 0473 0870 movf ??_USBCtrlEPAllowStatusStage,w 13297 0474 0086 movwf 6 13298 0475 0871 movf ??_USBCtrlEPAllowStatusStage+1,w 13299 0476 0087 movwf 7 13300 0477 3008 movlw 8 13301 0478 0081 movwf 1 13302 13303 ;usb_device.c: 1454: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 13304 0479 3050 movlw 80 13305 047A 00F0 movwf ??_USBCtrlEPAllowStatusStage 13306 047B 01F1 clrf ??_USBCtrlEPAllowStatusStage+1 13307 047C 3187 27AF 3181 fcall PL145 ;call to abstracted procedure 13308 047F 0870 movf ??_USBCtrlEPAllowStatusStage,w 13309 0480 3FC0 movwi [0]fsr1 13310 0481 0871 movf ??_USBCtrlEPAllowStatusStage+1,w 13311 13312 ;usb_device.c: 1455: pBDTEntryEP0OutNext->STAT.Val = 0x80; 13313 0482 3187 2705 fcall PL149 ;call to abstracted procedure 13314 0484 3080 movlw 128 13315 0485 0081 movwf 1 13316 0486 0008 return 13317 0487 __end_of_USBCtrlEPAllowStatusStage: 13318 0487 __ptext53: 13319 ;; *************** function _USBCtrlEPService ***************** 13320 ;; Defined at: 13321 ;; line 2372 in file "../usb_device.c" 13322 ;; Parameters: Size Location Type 13323 ;; None 13324 ;; Auto vars: Size Location Type 13325 ;; None 13326 ;; Return value: Size Location Type 13327 ;; None void 13328 ;; Registers used: 13329 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 13330 ;; Tracked objects: 13331 ;; On entry : 1F/4 13332 ;; On exit : 1E/4 13333 ;; Unchanged: 0/0 13334 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13335 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13336 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13337 ;; Temps: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 13338 ;; Totals: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 13339 ;;Total ram usage: 1 bytes 13340 ;; Hardware stack levels used: 1 13341 ;; Hardware stack levels required when called: 7 13342 ;; This function calls: 13343 ;; _USBCtrlTrfInHandler 13344 ;; _USBCtrlTrfOutHandler 13345 ;; _USBCtrlTrfSetupHandler 13346 ;; i1_memcpy 13347 ;; This function is called by: 13348 ;; _USBDeviceTasks 13349 ;; This function uses a non-reentrant model 13350 ;; 13351 13352 13353 ;psect for function _USBCtrlEPService 13354 0487 _USBCtrlEPService: 13355 13356 ;usb_device.c: 2378: USBStatusStageTimeoutCounter = (uint8_t)45; 13357 13358 ;incstack = 0 13359 ; Regs used in _USBCtrlEPService: [wreg-fsr1h+status,2+status,0+pclath+cstack] 13360 0487 302D movlw 45 13361 0488 0025 movlb 5 ; select bank5 13362 0489 00C7 movwf _USBStatusStageTimeoutCounter^(0+640) ;volatile 13363 13364 ;usb_device.c: 2382: if((USTATcopy.Val & ~0x02) == 0x00) 13365 048A 0024 movlb 4 ; select bank4 13366 048B 086E movf _USTATcopy^(0+512),w ;volatile 13367 048C 39FD andlw 253 13368 048D 1D03 btfss 3,2 13369 048E 2CB8 goto i1l6149 13370 13371 ;usb_device.c: 2383: { 13372 ;usb_device.c: 2386: pBDTEntryEP0OutCurrent = (volatile BDT_ENTRY*)&BDT[(USTATcopy.Val & + 0x7E)>>1]; 13373 048F 366E lsrf _USTATcopy^(0+512),w ;volatile 13374 0490 393F andlw 63 13375 0491 0709 addwf 9,w 13376 0492 0709 addwf 9,w 13377 0493 3E20 addlw 32 13378 0494 0020 movlb 0 ; select bank0 13379 0495 00EF movwf _pBDTEntryEP0OutCurrent 13380 13381 ;usb_device.c: 2394: pBDTEntryEP0OutNext = pBDTEntryEP0OutCurrent; 13382 0496 0024 movlb 4 ; select bank4 13383 0497 00DD movwf _pBDTEntryEP0OutNext^(0+512) 13384 0498 3004 movlw 4 13385 0499 01DE clrf (_pBDTEntryEP0OutNext+1)^(0+512) 13386 13387 ;usb_device.c: 2396: pBDTEntryEP0OutNext = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryEP + 0OutNext) ^ 0x0004); 13388 049A 065D xorwf _pBDTEntryEP0OutNext^(0+512),w 13389 049B 00DD movwf _pBDTEntryEP0OutNext^(0+512) 13390 13391 ;usb_device.c: 2399: if(pBDTEntryEP0OutCurrent->STAT.PID == 0xD) 13392 049C 0020 movlb 0 ; select bank0 13393 049D 086F movf _pBDTEntryEP0OutCurrent,w 13394 049E 0086 movwf 6 13395 049F 0187 clrf 7 13396 04A0 0C01 rrf 1,w 13397 04A1 0C89 rrf 9,f 13398 04A2 390F andlw 15 13399 04A3 3A0D xorlw 13 13400 04A4 1D03 skipz 13401 04A5 2CB6 goto i1l6147 13402 13403 ;usb_device.c: 2400: { 13404 ;usb_device.c: 2405: memcpy((uint8_t*)&SetupPkt, (uint8_t*)((void *)(pBDTEntryEP0OutCurr + ent->ADR)), 8); 13405 04A6 3050 movlw 80 13406 04A7 00F0 movwf i1memcpy@d1 13407 04A8 01F1 clrf i1memcpy@d1+1 13408 04A9 086F movf _pBDTEntryEP0OutCurrent,w 13409 04AA 3E02 addlw 2 13410 04AB 0086 movwf 6 13411 04AC 3F40 moviw [0]fsr1 13412 04AD 00F2 movwf i1memcpy@s1 13413 04AE 3F41 moviw [1]fsr1 13414 04AF 00F3 movwf i1memcpy@s1+1 13415 04B0 3008 movlw 8 13416 04B1 00F4 movwf i1memcpy@n 13417 04B2 01F5 clrf i1memcpy@n+1 13418 04B3 2590 3181 fcall i1_memcpy 13419 13420 ;usb_device.c: 2408: USBCtrlTrfSetupHandler(); 13421 04B5 29E5 ljmp i1l5549 13422 04B6 i1l6147: 13423 ;usb_device.c: 2409: } 13424 13425 13426 ;usb_device.c: 2410: else 13427 ;usb_device.c: 2411: { 13428 ;usb_device.c: 2413: USBCtrlTrfOutHandler(); 13429 04B6 3187 2F15 ljmp i1l5575 13430 04B8 i1l6149: 13431 13432 ;usb_device.c: 2416: else if((USTATcopy.Val & ~0x02) == 0x04) 13433 04B8 30FD movlw 253 13434 04B9 056E andwf _USTATcopy^(0+512),w ;volatile 13435 04BA 00FD movwf ??_USBCtrlEPService 13436 04BB 3A04 xorlw 4 13437 04BC 1D03 skipz 13438 04BD 0008 return 13439 13440 ;usb_device.c: 2417: { 13441 ;usb_device.c: 2420: USBCtrlTrfInHandler(); 13442 04BE 3186 2E4E ljmp i1l5593 13443 04C0 __end_of_USBCtrlEPService: 13444 04C0 __ptext52: 13445 ;; *************** function _USBIncrement1msInternalTimers ***************** 13446 ;; Defined at: 13447 ;; line 3025 in file "../usb_device.c" 13448 ;; Parameters: Size Location Type 13449 ;; None 13450 ;; Auto vars: Size Location Type 13451 ;; None 13452 ;; Return value: Size Location Type 13453 ;; None void 13454 ;; Registers used: 13455 ;; wreg, status,2, status,0 13456 ;; Tracked objects: 13457 ;; On entry : 1F/1D 13458 ;; On exit : 1F/5 13459 ;; Unchanged: 0/0 13460 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13461 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13462 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13463 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13464 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13465 ;;Total ram usage: 0 bytes 13466 ;; Hardware stack levels used: 1 13467 ;; This function calls: 13468 ;; Nothing 13469 ;; This function is called by: 13470 ;; _USBDeviceTasks 13471 ;; This function uses a non-reentrant model 13472 ;; 13473 13474 13475 ;psect for function _USBIncrement1msInternalTimers 13476 04C0 _USBIncrement1msInternalTimers: 13477 13478 ;usb_device.c: 3033: USB1msTickCount++; 13479 13480 ;incstack = 0 13481 ; Regs used in _USBIncrement1msInternalTimers: [wreg+status,2+status,0] 13482 04C0 0026 movlb 6 ; select bank6 13483 04C1 0AAD incf _USB1msTickCount^(0+768),f ;volatile 13484 04C2 1903 skipnz 13485 04C3 0AAE incf (_USB1msTickCount+1)^(0+768),f ;volatile 13486 04C4 1903 skipnz 13487 04C5 0AAF incf (_USB1msTickCount+2)^(0+768),f ;volatile 13488 04C6 1903 skipnz 13489 04C7 0AB0 incf (_USB1msTickCount+3)^(0+768),f ;volatile 13490 13491 ;usb_device.c: 3034: if(USBBusIsSuspended == 0) 13492 04C8 0025 movlb 5 ; select bank5 13493 04C9 08C1 movf _USBBusIsSuspended^(0+640),f ;volatile 13494 04CA 1903 btfsc 3,2 13495 13496 ;usb_device.c: 3035: { 13497 ;usb_device.c: 3036: USBTicksSinceSuspendEnd++; 13498 04CB 0FC8 incfsz _USBTicksSinceSuspendEnd^(0+640),f ;volatile 13499 13500 ;usb_device.c: 3038: if(USBTicksSinceSuspendEnd == 0) 13501 04CC 0008 return 13502 13503 ;usb_device.c: 3039: { 13504 ;usb_device.c: 3040: USBTicksSinceSuspendEnd = 255; 13505 04CD 30FF movlw 255 13506 04CE 00C8 movwf _USBTicksSinceSuspendEnd^(0+640) ;volatile 13507 04CF 0008 return 13508 04D0 __end_of_USBIncrement1msInternalTimers: 13509 04D0 __ptext51: 13510 ;; *************** function _USBStallHandler ***************** 13511 ;; Defined at: 13512 ;; line 2202 in file "../usb_device.c" 13513 ;; Parameters: Size Location Type 13514 ;; None 13515 ;; Auto vars: Size Location Type 13516 ;; None 13517 ;; Return value: Size Location Type 13518 ;; None void 13519 ;; Registers used: 13520 ;; wreg, fsr1l, fsr1h 13521 ;; Tracked objects: 13522 ;; On entry : 1F/1D 13523 ;; On exit : 1F/1D 13524 ;; Unchanged: 0/0 13525 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13526 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13527 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13528 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13529 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13530 ;;Total ram usage: 0 bytes 13531 ;; Hardware stack levels used: 1 13532 ;; This function calls: 13533 ;; Nothing 13534 ;; This function is called by: 13535 ;; _USBDeviceTasks 13536 ;; This function uses a non-reentrant model 13537 ;; 13538 13539 13540 ;psect for function _USBStallHandler 13541 04D0 _USBStallHandler: 13542 13543 ;usb_device.c: 2214: if(UEP0bits.EPSTALL == 1) 13544 13545 ;incstack = 0 13546 ; Regs used in _USBStallHandler: [wregfsr1] 13547 04D0 1C18 btfss 24,0 ;volatile 13548 04D1 2CEE goto i1l6129 13549 13550 ;usb_device.c: 2215: { 13551 ;usb_device.c: 2217: if((pBDTEntryEP0OutCurrent->STAT.Val == 0x80) && (pBDTEntryIn[0]->S + TAT.Val == (0x80|0x04))) 13552 04D2 0020 movlb 0 ; select bank0 13553 04D3 086F movf _pBDTEntryEP0OutCurrent,w 13554 04D4 0086 movwf 6 13555 04D5 0187 clrf 7 13556 04D6 0801 movf 1,w 13557 04D7 3A80 xorlw 128 13558 04D8 1D03 skipz 13559 04D9 2CEC goto i1l6127 13560 04DA 0024 movlb 4 ; select bank4 13561 04DB 0857 movf _pBDTEntryIn^(0+512),w 13562 04DC 0086 movwf 6 13563 04DD 0858 movf (_pBDTEntryIn+1)^(0+512),w 13564 04DE 0087 movwf 7 13565 04DF 0801 movf 1,w 13566 04E0 3A84 xorlw 132 13567 04E1 1D03 skipz 13568 04E2 2CEC goto i1l6127 13569 13570 ;usb_device.c: 2218: { 13571 ;usb_device.c: 2220: pBDTEntryEP0OutCurrent->STAT.Val = 0x00|(0x08 & 0x08)|0x04; 13572 04E3 0020 movlb 0 ; select bank0 13573 04E4 086F movf _pBDTEntryEP0OutCurrent,w 13574 04E5 0086 movwf 6 13575 04E6 300C movlw 12 13576 04E7 0187 clrf 7 13577 04E8 0081 movwf 1 13578 13579 ;usb_device.c: 2221: pBDTEntryEP0OutCurrent->STAT.Val |= 0x80; 13580 04E9 086F movf _pBDTEntryEP0OutCurrent,w 13581 04EA 0086 movwf 6 13582 04EB 1781 bsf 1,7 13583 04EC i1l6127: 13584 13585 ;usb_device.c: 2222: } 13586 ;usb_device.c: 2223: UEP0bits.EPSTALL = 0; 13587 04EC 003D movlb 29 ; select bank29 13588 04ED 1018 bcf 24,0 ;volatile 13589 04EE i1l6129: 13590 13591 ;usb_device.c: 2224: } 13592 ;usb_device.c: 2226: (UIR &= 0xDF); 13593 04EE 1290 bcf 16,5 ;volatile 13594 04EF 0008 return 13595 04F0 __end_of_USBStallHandler: 13596 04F0 __ptext50: 13597 ;; *************** function _USBSuspend ***************** 13598 ;; Defined at: 13599 ;; line 2245 in file "../usb_device.c" 13600 ;; Parameters: Size Location Type 13601 ;; None 13602 ;; Auto vars: Size Location Type 13603 ;; None 13604 ;; Return value: Size Location Type 13605 ;; None void 13606 ;; Registers used: 13607 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 13608 ;; Tracked objects: 13609 ;; On entry : 1F/1D 13610 ;; On exit : 1A/0 13611 ;; Unchanged: 0/0 13612 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13613 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13614 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13615 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13616 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13617 ;;Total ram usage: 0 bytes 13618 ;; Hardware stack levels used: 1 13619 ;; Hardware stack levels required when called: 4 13620 ;; This function calls: 13621 ;; _USER_USB_CALLBACK_EVENT_HANDLER 13622 ;; This function is called by: 13623 ;; _USBDeviceTasks 13624 ;; This function uses a non-reentrant model 13625 ;; 13626 13627 13628 ;psect for function _USBSuspend 13629 04F0 _USBSuspend: 13630 13631 ;usb_device.c: 2270: UIEbits.ACTVIE = 1; 13632 13633 ;incstack = 0 13634 ; Regs used in _USBSuspend: [wreg-fsr1h+status,2+status,0+pclath+cstack] 13635 04F0 1512 bsf 18,2 ;volatile 13636 13637 ;usb_device.c: 2271: (UIR &= 0xEF); 13638 04F1 1210 bcf 16,4 ;volatile 13639 13640 ;usb_device.c: 2274: UCONbits.SUSPND = 1; 13641 04F2 148E bsf 14,1 ;volatile 13642 13643 ;usb_device.c: 2277: USBBusIsSuspended = 1; 13644 04F3 3001 movlw 1 13645 04F4 0025 movlb 5 ; select bank5 13646 04F5 00C1 movwf _USBBusIsSuspended^(0+640) ;volatile 13647 13648 ;usb_device.c: 2278: USBTicksSinceSuspendEnd = 0; 13649 04F6 01C8 clrf _USBTicksSinceSuspendEnd^(0+640) ;volatile 13650 13651 ;usb_device.c: 2285: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SUSPEND,0,0); 13652 04F7 3075 movlw 117 13653 04F8 0020 movlb 0 ; select bank0 13654 04F9 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 13655 04FA 25C9 3181 fcall PL181 ;call to abstracted procedure 13656 04FC 2C07 ljmp i1l4731 13657 04FD __end_of_USBSuspend: 13658 04FD __ptext49: 13659 ;; *************** function _USBWakeFromSuspend ***************** 13660 ;; Defined at: 13661 ;; line 2303 in file "../usb_device.c" 13662 ;; Parameters: Size Location Type 13663 ;; None 13664 ;; Auto vars: Size Location Type 13665 ;; None 13666 ;; Return value: Size Location Type 13667 ;; None void 13668 ;; Registers used: 13669 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 13670 ;; Tracked objects: 13671 ;; On entry : 1F/1D 13672 ;; On exit : 1F/5 13673 ;; Unchanged: 0/0 13674 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13675 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13676 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13677 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13678 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13679 ;;Total ram usage: 0 bytes 13680 ;; Hardware stack levels used: 1 13681 ;; Hardware stack levels required when called: 4 13682 ;; This function calls: 13683 ;; _USER_USB_CALLBACK_EVENT_HANDLER 13684 ;; This function is called by: 13685 ;; _USBDeviceTasks 13686 ;; This function uses a non-reentrant model 13687 ;; 13688 13689 13690 ;psect for function _USBWakeFromSuspend 13691 04FD _USBWakeFromSuspend: 13692 13693 ;usb_device.c: 2305: USBBusIsSuspended = 0; 13694 13695 ;incstack = 0 13696 ; Regs used in _USBWakeFromSuspend: [wreg-fsr1h+status,2+status,0+pclath+cstack] 13697 04FD 0025 movlb 5 ; select bank5 13698 04FE 01C1 clrf _USBBusIsSuspended^(0+640) ;volatile 13699 13700 ;usb_device.c: 2311: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_RESUME,0,0); 13701 04FF 3074 movlw 116 13702 0500 0020 movlb 0 ; select bank0 13703 0501 00E0 movwf USER_USB_CALLBACK_EVENT_HANDLER@event 13704 0502 3000 movlw 0 13705 0503 25C9 3181 fcall PL181 ;call to abstracted procedure 13706 0505 2407 3181 fcall _USER_USB_CALLBACK_EVENT_HANDLER 13707 13708 ;usb_device.c: 2318: UCONbits.SUSPND = 0; 13709 0507 003D movlb 29 ; select bank29 13710 0508 108E bcf 14,1 ;volatile 13711 13712 ;usb_device.c: 2323: UIEbits.ACTVIE = 0; 13713 0509 1112 bcf 18,2 ;volatile 13714 050A i1l666: 13715 ;usb_device.c: 2341: while(UIRbits.ACTVIF) 13716 13717 050A 1D10 btfss 16,2 ;volatile 13718 050B 2D0E goto i1l6101 13719 13720 ;usb_device.c: 2343: { 13721 ;usb_device.c: 2344: (UIR &= 0xFB); 13722 050C 1110 bcf 16,2 ;volatile 13723 050D 2D0A goto i1l666 13724 050E i1l6101: 13725 13726 ;usb_device.c: 2345: } 13727 ;usb_device.c: 2347: USBTicksSinceSuspendEnd = 0; 13728 050E 0025 movlb 5 ; select bank5 13729 050F 01C8 clrf _USBTicksSinceSuspendEnd^(0+640) ;volatile 13730 0510 0008 return 13731 0511 __end_of_USBWakeFromSuspend: 13732 0511 __ptext48: 13733 ;; *************** function i1_USBDeviceInit ***************** 13734 ;; Defined at: 13735 ;; line 277 in file "../usb_device.c" 13736 ;; Parameters: Size Location Type 13737 ;; None 13738 ;; Auto vars: Size Location Type 13739 ;; USBDeviceIni 2 2[COMMON] PTR unsigned char 13740 ;; -> UEP1(1), 13741 ;; USBDeviceIni 1 5[COMMON] unsigned char 13742 ;; USBDeviceIni 1 4[COMMON] unsigned char 13743 ;; Return value: Size Location Type 13744 ;; None void 13745 ;; Registers used: 13746 ;; wreg, fsr1l, fsr1h, status,2, status,0 13747 ;; Tracked objects: 13748 ;; On entry : 1F/1D 13749 ;; On exit : 1F/4 13750 ;; Unchanged: 0/0 13751 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 13752 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 13753 ;; Locals: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 13754 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 13755 ;; Totals: 6 0 0 0 0 0 0 0 0 0 0 0 +0 0 13756 ;;Total ram usage: 6 bytes 13757 ;; Hardware stack levels used: 1 13758 ;; This function calls: 13759 ;; Nothing 13760 ;; This function is called by: 13761 ;; _USBDeviceTasks 13762 ;; This function uses a non-reentrant model 13763 ;; 13764 13765 13766 ;psect for function i1_USBDeviceInit 13767 0511 i1_USBDeviceInit: 13768 13769 ;usb_device.c: 279: uint8_t i; 13770 ;usb_device.c: 281: {PIE2bits.USBIE = 0;}; 13771 13772 ;incstack = 0 13773 ; Regs used in i1_USBDeviceInit: [wreg+fsr1l+fsr1h+status,2+status,0] 13774 0511 0021 movlb 1 ; select bank1 13775 0512 1112 bcf 18,2 ;volatile 13776 13777 ;usb_device.c: 285: ; 13778 ;usb_device.c: 288: {UEIR = 0;}; 13779 0513 003D movlb 29 ; select bank29 13780 0514 0193 clrf 19 ;volatile 13781 13782 ;usb_device.c: 291: {UIR = 0;}; 13783 0515 0190 clrf 16 ;volatile 13784 13785 ;usb_device.c: 294: UEP0 = 0; 13786 0516 0198 clrf 24 ;volatile 13787 13788 ;usb_device.c: 296: { uint8_t i; uint8_t* p = (uint8_t*)&UEP1; for(i=0;i<2;i++) *p++ = 0 + ; }; 13789 0517 300E movlw 14 13790 0518 00F3 movwf i1USBDeviceInit@p+1 13791 0519 3099 movlw 153 13792 051A 00F2 movwf i1USBDeviceInit@p 13793 051B 01F4 clrf i1USBDeviceInit@i_1548 13794 051C i1l6401: 13795 051C 0872 movf i1USBDeviceInit@p,w 13796 051D 0086 movwf 6 13797 051E 0873 movf i1USBDeviceInit@p+1,w 13798 051F 0087 movwf 7 13799 0520 0181 clrf 1 13800 0521 0AF2 incf i1USBDeviceInit@p,f 13801 0522 1903 skipnz 13802 0523 0AF3 incf i1USBDeviceInit@p+1,f 13803 0524 3002 movlw 2 13804 0525 0AF4 incf i1USBDeviceInit@i_1548,f 13805 0526 0274 subwf i1USBDeviceInit@i_1548,w 13806 0527 1C03 skipc 13807 0528 2D1C goto i1l6401 13808 13809 ;usb_device.c: 298: { UCFG = 0x10 | 0x00 | 0x04 | 0x02; UEIE = 0x9F; UIE = 0x39 | 0x40 | + 0x02; }; 13810 0529 3016 movlw 22 13811 052A 0091 movwf 17 ;volatile 13812 052B 309F movlw 159 13813 052C 0097 movwf 23 ;volatile 13814 052D 307B movlw 123 13815 052E 0092 movwf 18 ;volatile 13816 13817 ;usb_device.c: 301: ; 13818 ;usb_device.c: 304: ; 13819 ;usb_device.c: 307: for(i = 0; i < (sizeof(BDT)/sizeof(BDT_ENTRY)); i++) 13820 052F 01F5 clrf i1USBDeviceInit@i 13821 0530 i1l6417: 13822 13823 ;usb_device.c: 308: { 13824 ;usb_device.c: 309: BDT[i].Val = 0x00; 13825 0530 0875 movf i1USBDeviceInit@i,w 13826 0531 0709 addwf 9,w 13827 0532 0709 addwf 9,w 13828 0533 3E20 addlw 32 13829 0534 0086 movwf 6 13830 0535 3000 movlw 0 13831 0536 0187 clrf 7 13832 0537 3FC0 movwi [0]fsr1 13833 0538 3FC1 movwi [1]fsr1 13834 0539 3FC2 movwi [2]fsr1 13835 053A 3FC3 movwi [3]fsr1 13836 053B 300C movlw 12 13837 053C 0AF5 incf i1USBDeviceInit@i,f 13838 053D 0275 subwf i1USBDeviceInit@i,w 13839 053E 1C03 skipc 13840 053F 2D30 goto i1l6417 13841 13842 ;usb_device.c: 310: } 13843 ;usb_device.c: 313: UCONbits.PPBRST = 1; 13844 0540 170E bsf 14,6 ;volatile 13845 13846 ;usb_device.c: 316: UADDR = 0x00; 13847 0541 0196 clrf 22 ;volatile 13848 13849 ;usb_device.c: 319: UCONbits.PKTDIS = 0; 13850 0542 120E bcf 14,4 ;volatile 13851 13852 ;usb_device.c: 322: UCONbits.PPBRST = 0; 13853 0543 130E bcf 14,6 ;volatile 13854 0544 i1l6429: 13855 13856 ;usb_device.c: 326: { 13857 ;usb_device.c: 327: (UIR &= 0xF7); 13858 0544 1190 bcf 16,3 ;volatile 13859 13860 ;usb_device.c: 329: inPipes[0].info.Val = 0; 13861 0545 0024 movlb 4 ; select bank4 13862 0546 01EA clrf (_inPipes^(0+512)+2) ;volatile 13863 13864 ;usb_device.c: 330: outPipes[0].info.Val = 0; 13865 0547 0025 movlb 5 ; select bank5 13866 0548 01A2 clrf (_outPipes^(0+640)+2) ;volatile 13867 13868 ;usb_device.c: 331: outPipes[0].wCount.Val = 0; 13869 0549 01A3 clrf (_outPipes^(0+640)+3) ;volatile 13870 054A 01A4 clrf ((_outPipes+1)^(0+640)+3) ;volatile 13871 13872 ;usb_device.c: 332: }while(UIRbits.TRNIF == 1); 13873 054B 003D movlb 29 ; select bank29 13874 054C 1990 btfsc 16,3 ;volatile 13875 054D 2D44 goto i1l6429 13876 13877 ;usb_device.c: 336: USBStatusStageEnabledFlag1 = 1; 13878 054E 3001 movlw 1 13879 054F 0025 movlb 5 ; select bank5 13880 0550 00C5 movwf _USBStatusStageEnabledFlag1^(0+640) ;volatile 13881 13882 ;usb_device.c: 337: USBStatusStageEnabledFlag2 = 1; 13883 0551 00C6 movwf _USBStatusStageEnabledFlag2^(0+640) ;volatile 13884 13885 ;usb_device.c: 339: USBDeferINDataStagePackets = 0; 13886 0552 01C2 clrf _USBDeferINDataStagePackets^(0+640) ;volatile 13887 13888 ;usb_device.c: 340: USBDeferOUTDataStagePackets = 0; 13889 0553 01C3 clrf _USBDeferOUTDataStagePackets^(0+640) ;volatile 13890 13891 ;usb_device.c: 341: USBBusIsSuspended = 0; 13892 0554 01C1 clrf _USBBusIsSuspended^(0+640) ;volatile 13893 13894 ;usb_device.c: 345: for(i = 0; i < (uint8_t)(2+1u); i++) 13895 0555 01F5 clrf i1USBDeviceInit@i 13896 0556 i1l6445: 13897 13898 ;usb_device.c: 346: { 13899 ;usb_device.c: 347: pBDTEntryIn[i] = 0u; 13900 0556 3575 lslf i1USBDeviceInit@i,w 13901 0557 3E57 addlw _pBDTEntryIn& (0+255) 13902 0558 0086 movwf 6 13903 0559 3002 movlw 2 ; select bank4/5 13904 055A 0087 movwf 7 13905 055B 3000 movlw 0 13906 055C 3FC0 movwi [0]fsr1 13907 055D 3FC1 movwi [1]fsr1 13908 13909 ;usb_device.c: 348: pBDTEntryOut[i] = 0u; 13910 055E 3575 lslf i1USBDeviceInit@i,w 13911 055F 3EA7 addlw _pBDTEntryOut& (0+255) 13912 0560 0086 movwf 6 13913 0561 3000 movlw 0 13914 0562 3FC0 movwi [0]fsr1 13915 0563 3FC1 movwi [1]fsr1 13916 13917 ;usb_device.c: 349: ep_data_in[i].Val = 0u; 13918 0564 0875 movf i1USBDeviceInit@i,w 13919 0565 3EAD addlw _ep_data_in& (0+255) 13920 0566 0086 movwf 6 13921 0567 0181 clrf 1 13922 13923 ;usb_device.c: 350: ep_data_out[i].Val = 0u; 13924 0568 0875 movf i1USBDeviceInit@i,w 13925 0569 3EB0 addlw _ep_data_out& (0+255) 13926 056A 0086 movwf 6 13927 056B 3003 movlw 3 13928 056C 0181 clrf 1 13929 056D 0AF5 incf i1USBDeviceInit@i,f 13930 056E 0275 subwf i1USBDeviceInit@i,w 13931 056F 1C03 skipc 13932 0570 2D56 goto i1l6445 13933 13934 ;usb_device.c: 351: } 13935 ;usb_device.c: 354: pBDTEntryIn[0] = (volatile BDT_ENTRY*)&BDT[2]; 13936 0571 3028 movlw 40 13937 0572 0024 movlb 4 ; select bank4 13938 0573 00D7 movwf _pBDTEntryIn^(0+512) 13939 0574 3016 movlw 22 13940 0575 01D8 clrf (_pBDTEntryIn+1)^(0+512) 13941 13942 ;usb_device.c: 356: UEP0 = 0x06|0x10; 13943 0576 003D movlb 29 ; select bank29 13944 0577 0098 movwf 24 ;volatile 13945 13946 ;usb_device.c: 358: BDT[0].ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 13947 0578 3050 movlw 80 13948 0579 00F0 movwf ??i1_USBDeviceInit 13949 057A 01F1 clrf ??i1_USBDeviceInit+1 13950 057B 0020 movlb 0 ; select bank0 13951 057C 00A2 movwf 34 ;volatile 13952 057D 0871 movf ??i1_USBDeviceInit+1,w 13953 057E 00A3 movwf 35 ;volatile 13954 13955 ;usb_device.c: 359: BDT[0].CNT = 8; 13956 057F 3008 movlw 8 13957 0580 00A1 movwf 33 ;volatile 13958 13959 ;usb_device.c: 360: BDT[0].STAT.Val = 0x00|0x04; 13960 0581 3004 movlw 4 13961 0582 00A0 movwf 32 ;volatile 13962 13963 ;usb_device.c: 361: BDT[0].STAT.Val |= 0x80; 13964 0583 17A0 bsf 32,7 ;volatile 13965 13966 ;usb_device.c: 364: USBActiveConfiguration = 0; 13967 0584 0024 movlb 4 ; select bank4 13968 0585 01ED clrf _USBActiveConfiguration^(0+512) ;volatile 13969 13970 ;usb_device.c: 366: USB1msTickCount = 0; 13971 0586 0026 movlb 6 ; select bank6 13972 0587 01AD clrf _USB1msTickCount^(0+768) ;volatile 13973 0588 01AE clrf (_USB1msTickCount+1)^(0+768) ;volatile 13974 0589 01AF clrf (_USB1msTickCount+2)^(0+768) ;volatile 13975 058A 01B0 clrf (_USB1msTickCount+3)^(0+768) ;volatile 13976 13977 ;usb_device.c: 367: USBTicksSinceSuspendEnd = 0; 13978 058B 0025 movlb 5 ; select bank5 13979 058C 01C8 clrf _USBTicksSinceSuspendEnd^(0+640) ;volatile 13980 13981 ;usb_device.c: 370: USBDeviceState = DETACHED_STATE; 13982 058D 0024 movlb 4 ; select bank4 13983 058E 01E0 clrf _USBDeviceState^(0+512) ;volatile 13984 058F 0008 return 13985 0590 __end_ofi1_USBDeviceInit: 13986 0590 __ptext54: 13987 ;; *************** function i1_memcpy ***************** 13988 ;; Defined at: 13989 ;; line 11 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\memcpy.c" 13990 ;; Parameters: Size Location Type 13991 ;; d1 2 0[COMMON] PTR void 13992 ;; -> ParseBlinkieCommand@buffer(40), SetupPkt(8), readBuffer(64), 13993 ;; s1 2 2[COMMON] PTR const void 13994 ;; -> CtrlTrfData(8), cdc_data_tx(64), NULL(0), cdc_data_rx(64), 13995 ;; -> SetupPkt(8), readBuffer(64), line_coding(7), 13996 ;; n 2 4[COMMON] unsigned int 13997 ;; Auto vars: Size Location Type 13998 ;; memcpy 2 9[COMMON] PTR const unsigned char 13999 ;; -> CtrlTrfData(8), cdc_data_tx(64), NULL(0), cdc_data_rx(64), 14000 ;; -> SetupPkt(8), readBuffer(64), line_coding(7), 14001 ;; memcpy 2 7[COMMON] PTR unsigned char 14002 ;; -> ParseBlinkieCommand@buffer(40), SetupPkt(8), readBuffer(64), 14003 ;; Return value: Size Location Type 14004 ;; 1 wreg PTR void 14005 ;; Registers used: 14006 ;; wreg, fsr1l, fsr1h, status,2, status,0 14007 ;; Tracked objects: 14008 ;; On entry : 1F/0 14009 ;; On exit : 1F/0 14010 ;; Unchanged: 1F/0 14011 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14012 ;; Params: 6 0 0 0 0 0 0 0 0 0 0 0 +0 0 14013 ;; Locals: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 14014 ;; Temps: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 14015 ;; Totals: 11 0 0 0 0 0 0 0 0 0 0 0 +0 0 14016 ;;Total ram usage: 11 bytes 14017 ;; Hardware stack levels used: 1 14018 ;; This function calls: 14019 ;; Nothing 14020 ;; This function is called by: 14021 ;; _USBCtrlEPService 14022 ;; This function uses a non-reentrant model 14023 ;; 14024 14025 14026 ;psect for function i1_memcpy 14027 0590 i1_memcpy: 14028 14029 ;incstack = 0 14030 ; Regs used in i1_memcpy: [wreg+fsr1l+fsr1h+status,2+status,0] 14031 0590 0873 movf i1memcpy@s1+1,w 14032 0591 01FA clrf i1memcpy@s+1 14033 0592 07FA addwf i1memcpy@s+1,f 14034 0593 0872 movf i1memcpy@s1,w 14035 0594 01F9 clrf i1memcpy@s 14036 0595 07F9 addwf i1memcpy@s,f 14037 0596 0871 movf i1memcpy@d1+1,w 14038 0597 01F8 clrf i1memcpy@d+1 14039 0598 07F8 addwf i1memcpy@d+1,f 14040 0599 0870 movf i1memcpy@d1,w 14041 059A 01F7 clrf i1memcpy@d 14042 059B 07F7 addwf i1memcpy@d,f 14043 059C i1l5841: 14044 059C 3001 movlw 1 14045 059D 02F4 subwf i1memcpy@n,f 14046 059E 3000 movlw 0 14047 059F 3BF5 subwfb i1memcpy@n+1,f 14048 05A0 0A74 incf i1memcpy@n,w 14049 05A1 1903 skipnz 14050 05A2 0A75 incf i1memcpy@n+1,w 14051 05A3 1903 btfsc 3,2 14052 05A4 0008 return 14053 05A5 0879 movf i1memcpy@s,w 14054 05A6 0086 movwf 6 14055 05A7 087A movf i1memcpy@s+1,w 14056 05A8 0087 movwf 7 14057 05A9 0801 movf 1,w 14058 05AA 00F6 movwf ??i1_memcpy 14059 05AB 0877 movf i1memcpy@d,w 14060 05AC 0086 movwf 6 14061 05AD 0878 movf i1memcpy@d+1,w 14062 05AE 0087 movwf 7 14063 05AF 0876 movf ??i1_memcpy,w 14064 05B0 0081 movwf 1 14065 05B1 0AF9 incf i1memcpy@s,f 14066 05B2 1903 skipnz 14067 05B3 0AFA incf i1memcpy@s+1,f 14068 05B4 0AF7 incf i1memcpy@d,f 14069 05B5 1903 skipnz 14070 05B6 0AF8 incf i1memcpy@d+1,f 14071 05B7 2D9C goto i1l5841 14072 05B8 __end_ofi1_memcpy: 14073 05B8 __ptext70: 14074 ;; *************** function _APP_DeviceCDCBasicDemoInitialize ***************** 14075 ;; Defined at: 14076 ;; line 53 in file "../app_device_cdc_basic.c" 14077 ;; Parameters: Size Location Type 14078 ;; None 14079 ;; Auto vars: Size Location Type 14080 ;; None 14081 ;; Return value: Size Location Type 14082 ;; None void 14083 ;; Registers used: 14084 ;; wreg, status,2 14085 ;; Tracked objects: 14086 ;; On entry : 1F/4 14087 ;; On exit : 1F/5 14088 ;; Unchanged: 0/0 14089 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14090 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14091 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14092 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14093 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14094 ;;Total ram usage: 0 bytes 14095 ;; Hardware stack levels used: 1 14096 ;; This function calls: 14097 ;; Nothing 14098 ;; This function is called by: 14099 ;; _USER_USB_CALLBACK_EVENT_HANDLER 14100 ;; This function uses a non-reentrant model 14101 ;; 14102 14103 14104 ;psect for function _APP_DeviceCDCBasicDemoInitialize 14105 05B8 _APP_DeviceCDCBasicDemoInitialize: 14106 05B8 i1l4657: 14107 ;incstack = 0 14108 ; Regs used in _APP_DeviceCDCBasicDemoInitialize: [wreg+status,2] 14109 14110 14111 ;app_device_cdc_basic.c: 55: line_coding.bCharFormat = 0; 14112 05B8 0025 movlb 5 ; select bank5 14113 05B9 3008 movlw 8 14114 05BA 01E0 clrf (_line_coding^(0+640)+4) 14115 14116 ;app_device_cdc_basic.c: 56: line_coding.bDataBits = 8; 14117 05BB 00E2 movwf (_line_coding^(0+640)+6) 14118 05BC 3025 movlw 37 14119 14120 ;app_device_cdc_basic.c: 57: line_coding.bParityType = 0; 14121 05BD 01E1 clrf (_line_coding^(0+640)+5) 14122 14123 ;app_device_cdc_basic.c: 58: line_coding.dwDTERate = 9600; 14124 05BE 01DF clrf (_line_coding+3)^(0+640) 14125 05BF 01DE clrf (_line_coding+2)^(0+640) 14126 05C0 00DD movwf (_line_coding+1)^(0+640) 14127 05C1 3080 movlw 128 14128 05C2 00DC movwf _line_coding^(0+640) 14129 14130 ;app_device_cdc_basic.c: 60: buttonPressed = 0; 14131 05C3 01C9 clrf _buttonPressed^(0+640) 14132 05C4 0008 return 14133 05C5 __end_of_APP_DeviceCDCBasicDemoInitialize: 14134 05C5 PL135: 14135 05C5 0086 movwf 6 14136 05C6 0858 movf (_pBDTEntryIn+1)^(0+512),w 14137 05C7 0087 movwf 7 14138 05C8 3448 retlw 72 14139 05C9 __end_ofPL135: 14140 05C9 PL181: 14141 05C9 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 14142 05CA 01E2 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata 14143 05CB 01E3 clrf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 14144 05CC 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 14145 05CD 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 14146 05CE 0008 return 14147 05CF __end_ofPL181: 14148 14149 psect text56 14150 05CF __ptext56: 14151 ;; *************** function _USBCtrlEPServiceComplete ***************** 14152 ;; Defined at: 14153 ;; line 1616 in file "../usb_device.c" 14154 ;; Parameters: Size Location Type 14155 ;; None 14156 ;; Auto vars: Size Location Type 14157 ;; None 14158 ;; Return value: Size Location Type 14159 ;; None void 14160 ;; Registers used: 14161 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 14162 ;; Tracked objects: 14163 ;; On entry : 1A/5 14164 ;; On exit : 1E/4 14165 ;; Unchanged: 0/0 14166 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14167 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14168 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14169 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14170 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14171 ;;Total ram usage: 2 bytes 14172 ;; Hardware stack levels used: 1 14173 ;; Hardware stack levels required when called: 2 14174 ;; This function calls: 14175 ;; _USBCtrlEPAllowDataStage 14176 ;; _USBCtrlEPAllowStatusStage 14177 ;; This function is called by: 14178 ;; _USBCtrlTrfSetupHandler 14179 ;; This function uses a non-reentrant model 14180 ;; 14181 14182 14183 ;psect for function _USBCtrlEPServiceComplete 14184 05CF _USBCtrlEPServiceComplete: 14185 05CF i1l5239: 14186 ;incstack = 0 14187 ; Regs used in _USBCtrlEPServiceComplete: [wreg-fsr1h+status,2+status,0+pclath+cstack] 14188 14189 14190 ;usb_device.c: 1622: UCONbits.PKTDIS = 0; 14191 05CF 003D movlb 29 ; select bank29 14192 05D0 120E bcf 14,4 ;volatile 14193 14194 ;usb_device.c: 1628: if(inPipes[0].info.bits.busy == 0) 14195 05D1 0024 movlb 4 ; select bank4 14196 05D2 1BEA btfsc (_inPipes^(0+512)+2),7 ;volatile 14197 05D3 2DED goto i1l580 14198 14199 ;usb_device.c: 1629: { 14200 ;usb_device.c: 1630: if(outPipes[0].info.bits.busy == 1) 14201 05D4 0025 movlb 5 ; select bank5 14202 05D5 1FA2 btfss (_outPipes^(0+640)+2),7 ;volatile 14203 05D6 2DE3 goto i1l5253 14204 14205 ;usb_device.c: 1631: { 14206 ;usb_device.c: 1632: controlTransferState = 2; 14207 05D7 3002 movlw 2 14208 05D8 0024 movlb 4 ; select bank4 14209 05D9 00E2 movwf _controlTransferState^(0+512) ;volatile 14210 14211 ;usb_device.c: 1643: if(USBDeferOUTDataStagePackets == 0) 14212 05DA 0025 movlb 5 ; select bank5 14213 05DB 08C3 movf _USBDeferOUTDataStagePackets^(0+640),f ;volatile 14214 05DC 1D03 skipz 14215 05DD 2DDF goto i1l5249 14216 14217 ;usb_device.c: 1644: { 14218 ;usb_device.c: 1645: USBCtrlEPAllowDataStage(); 14219 05DE 260A fcall _USBCtrlEPAllowDataStage 14220 05DF i1l5249: 14221 14222 ;usb_device.c: 1646: } 14223 ;usb_device.c: 1650: USBStatusStageEnabledFlag2 = 0; 14224 05DF 0025 movlb 5 ; select bank5 14225 05E0 01C6 clrf _USBStatusStageEnabledFlag2^(0+640) ;volatile 14226 14227 ;usb_device.c: 1651: USBStatusStageEnabledFlag1 = 0; 14228 05E1 01C5 clrf _USBStatusStageEnabledFlag1^(0+640) ;volatile 14229 14230 ;usb_device.c: 1652: } 14231 05E2 0008 return 14232 05E3 i1l5253: 14233 14234 ;usb_device.c: 1653: else 14235 ;usb_device.c: 1654: { 14236 ;usb_device.c: 1659: pBDTEntryEP0OutNext->CNT = 8; 14237 05E3 0024 movlb 4 ; select bank4 14238 14239 ;usb_device.c: 1660: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 14240 14241 ;usb_device.c: 1661: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08)|0x04; 14242 05E4 26CF 3185 fcall PL127 ;call to abstracted procedure 14243 05E6 300C movlw 12 14244 14245 ;usb_device.c: 1662: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 14246 05E7 27A8 3185 fcall PL137 ;call to abstracted procedure 14247 14248 ;usb_device.c: 1663: pBDTEntryIn[0]->STAT.Val = 0x04; 14249 05E9 0857 movf _pBDTEntryIn^(0+512),w 14250 05EA 270B 3185 fcall PL151 ;call to abstracted procedure 14251 14252 ;usb_device.c: 1664: pBDTEntryIn[0]->STAT.Val |= 0x80; 14253 05EC 2EEC ljmp PL131 ;call to abstracted procedure 14254 05ED i1l580: 14255 14256 ;usb_device.c: 1667: else 14257 ;usb_device.c: 1668: { 14258 ;usb_device.c: 1669: if(SetupPkt.DataDir == (0x80>>7)) 14259 05ED 0020 movlb 0 ; select bank0 14260 05EE 1FD0 btfss 80,7 ;volatile 14261 05EF 2E01 goto i1l5279 14262 14263 ;usb_device.c: 1670: { 14264 ;usb_device.c: 1671: controlTransferState = 1; 14265 05F0 3001 movlw 1 14266 05F1 0024 movlb 4 ; select bank4 14267 05F2 00E2 movwf _controlTransferState^(0+512) ;volatile 14268 14269 ;usb_device.c: 1685: if(USBDeferINDataStagePackets == 0) 14270 05F3 0025 movlb 5 ; select bank5 14271 05F4 08C2 movf _USBDeferINDataStagePackets^(0+640),f ;volatile 14272 05F5 1D03 skipz 14273 05F6 2DF9 goto i1l5271 14274 14275 ;usb_device.c: 1686: { 14276 ;usb_device.c: 1687: USBCtrlEPAllowDataStage(); 14277 05F7 260A 3185 fcall _USBCtrlEPAllowDataStage 14278 05F9 i1l5271: 14279 14280 ;usb_device.c: 1688: } 14281 ;usb_device.c: 1710: USBStatusStageEnabledFlag2 = 0; 14282 05F9 0025 movlb 5 ; select bank5 14283 05FA 01C6 clrf _USBStatusStageEnabledFlag2^(0+640) ;volatile 14284 14285 ;usb_device.c: 1711: USBStatusStageEnabledFlag1 = 0; 14286 05FB 01C5 clrf _USBStatusStageEnabledFlag1^(0+640) ;volatile 14287 14288 ;usb_device.c: 1712: if(USBDeferStatusStagePacket == 0) 14289 05FC 08C4 movf _USBDeferStatusStagePacket^(0+640),f ;volatile 14290 05FD 1D03 skipz 14291 05FE 0008 return 14292 14293 ;usb_device.c: 1713: { 14294 ;usb_device.c: 1714: USBCtrlEPAllowStatusStage(); 14295 05FF 3184 2C35 ljmp i1l4849 14296 0601 i1l5279: 14297 14298 ;usb_device.c: 1717: else 14299 ;usb_device.c: 1718: { 14300 ;usb_device.c: 1729: controlTransferState = 2; 14301 0601 3002 movlw 2 14302 0602 0024 movlb 4 ; select bank4 14303 0603 00E2 movwf _controlTransferState^(0+512) ;volatile 14304 14305 ;usb_device.c: 1732: pBDTEntryEP0OutNext->CNT = 8; 14306 14307 ;usb_device.c: 1733: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 14308 14309 ;usb_device.c: 1734: pBDTEntryEP0OutNext->STAT.Val = 0x04; 14310 0604 26CF 3185 fcall PL127 ;call to abstracted procedure 14311 0606 3004 movlw 4 14312 14313 ;usb_device.c: 1735: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 14314 0607 27A8 3185 fcall PL137 ;call to abstracted procedure 14315 0609 2DF9 goto i1l5271 14316 060A __end_of_USBCtrlEPServiceComplete: 14317 ;usb_device.c: 1740: if(USBDeferStatusStagePacket == 0) 14318 14319 ;usb_device.c: 1739: USBStatusStageEnabledFlag1 = 0; 14320 14321 ;usb_device.c: 1738: USBStatusStageEnabledFlag2 = 0; 14322 14323 060A __ptext57: 14324 ;; *************** function _USBCtrlEPAllowDataStage ***************** 14325 ;; Defined at: 14326 ;; line 1488 in file "../usb_device.c" 14327 ;; Parameters: Size Location Type 14328 ;; None 14329 ;; Auto vars: Size Location Type 14330 ;; None 14331 ;; Return value: Size Location Type 14332 ;; None void 14333 ;; Registers used: 14334 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 14335 ;; Tracked objects: 14336 ;; On entry : 1F/5 14337 ;; On exit : 1F/4 14338 ;; Unchanged: 0/0 14339 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14340 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14341 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14342 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14343 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14344 ;;Total ram usage: 2 bytes 14345 ;; Hardware stack levels used: 1 14346 ;; Hardware stack levels required when called: 1 14347 ;; This function calls: 14348 ;; _USBCtrlTrfTxService 14349 ;; This function is called by: 14350 ;; _USBCtrlEPServiceComplete 14351 ;; This function uses a non-reentrant model 14352 ;; 14353 14354 14355 ;psect for function _USBCtrlEPAllowDataStage 14356 060A _USBCtrlEPAllowDataStage: 14357 14358 ;usb_device.c: 1490: USBDeferINDataStagePackets = 0; 14359 14360 ;incstack = 0 14361 ; Regs used in _USBCtrlEPAllowDataStage: [wreg-fsr1h+status,2+status,0+pclath+cstack] 14362 060A 01C2 clrf _USBDeferINDataStagePackets^(0+640) ;volatile 14363 14364 ;usb_device.c: 1491: USBDeferOUTDataStagePackets = 0; 14365 060B 01C3 clrf _USBDeferOUTDataStagePackets^(0+640) ;volatile 14366 14367 ;usb_device.c: 1493: if(controlTransferState == 2) 14368 060C 0024 movlb 4 ; select bank4 14369 060D 0862 movf _controlTransferState^(0+512),w ;volatile 14370 060E 3A02 xorlw 2 14371 060F 1D03 skipz 14372 0610 2E2A goto i1l4895 14373 14374 ;usb_device.c: 1494: { 14375 ;usb_device.c: 1496: pBDTEntryEP0OutNext->CNT = 8; 14376 0611 085D movf _pBDTEntryEP0OutNext^(0+512),w 14377 0612 3E01 addlw 1 14378 0613 00F3 movwf ??_USBCtrlEPAllowDataStage 14379 0614 3000 movlw 0 14380 0615 3D5E addwfc (_pBDTEntryEP0OutNext+1)^(0+512),w 14381 0616 00F4 movwf ??_USBCtrlEPAllowDataStage+1 14382 0617 0873 movf ??_USBCtrlEPAllowDataStage,w 14383 0618 0086 movwf 6 14384 0619 0874 movf ??_USBCtrlEPAllowDataStage+1,w 14385 061A 0087 movwf 7 14386 061B 3008 movlw 8 14387 061C 0081 movwf 1 14388 14389 ;usb_device.c: 1497: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&CtrlTrfData)) & 0x7FFF); 14390 061D 3058 movlw 88 14391 061E 00F3 movwf ??_USBCtrlEPAllowDataStage 14392 061F 01F4 clrf ??_USBCtrlEPAllowDataStage+1 14393 0620 27AF 3185 fcall PL145 ;call to abstracted procedure 14394 0622 0873 movf ??_USBCtrlEPAllowDataStage,w 14395 0623 3FC0 movwi [0]fsr1 14396 0624 0874 movf ??_USBCtrlEPAllowDataStage+1,w 14397 14398 ;usb_device.c: 1498: pBDTEntryEP0OutNext->STAT.Val = 0x40|(0x08 & 0x08); 14399 0625 2705 3185 fcall PL149 ;call to abstracted procedure 14400 0627 3048 movlw 72 14401 14402 ;usb_device.c: 1499: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 14403 0628 27A8 fcall PL137 ;call to abstracted procedure 14404 14405 ;usb_device.c: 1500: } 14406 0629 0008 return 14407 062A i1l4895: 14408 14409 ;usb_device.c: 1501: else 14410 ;usb_device.c: 1502: { 14411 ;usb_device.c: 1505: if(SetupPkt.wLength < inPipes[0].wCount.Val) 14412 062A 086C movf ((_inPipes+1)^(0+512)+3),w ;volatile 14413 062B 0020 movlb 0 ; select bank0 14414 062C 0257 subwf 87,w ;volatile 14415 062D 1D03 skipz 14416 062E 2E33 goto u380_25 14417 062F 0024 movlb 4 ; select bank4 14418 0630 086B movf (_inPipes^(0+512)+3),w ;volatile 14419 0631 0020 movlb 0 ; select bank0 14420 0632 0256 subwf 86,w ;volatile 14421 0633 u380_25: 14422 0633 1803 skipnc 14423 0634 2E3E goto i1l4899 14424 14425 ;usb_device.c: 1506: { 14426 ;usb_device.c: 1507: inPipes[0].wCount.Val = SetupPkt.wLength; 14427 0635 0857 movf 87,w ;volatile 14428 0636 0024 movlb 4 ; select bank4 14429 0637 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 14430 0638 07EC addwf ((_inPipes+1)^(0+512)+3),f ;volatile 14431 0639 0020 movlb 0 ; select bank0 14432 063A 0856 movf 86,w ;volatile 14433 063B 0024 movlb 4 ; select bank4 14434 063C 01EB clrf (_inPipes^(0+512)+3) ;volatile 14435 063D 07EB addwf (_inPipes^(0+512)+3),f ;volatile 14436 063E i1l4899: 14437 14438 ;usb_device.c: 1508: } 14439 ;usb_device.c: 1509: USBCtrlTrfTxService(); 14440 063E 2697 3185 fcall _USBCtrlTrfTxService 14441 14442 ;usb_device.c: 1514: pBDTEntryIn[0]->ADR = (((uint16_t)(&CtrlTrfData)) & 0x7FFF); 14443 0640 3058 movlw 88 14444 0641 00F3 movwf ??_USBCtrlEPAllowDataStage 14445 0642 01F4 clrf ??_USBCtrlEPAllowDataStage+1 14446 0643 0024 movlb 4 ; select bank4 14447 0644 270F fcall PL199 ;call to abstracted procedure 14448 0645 0873 movf ??_USBCtrlEPAllowDataStage,w 14449 0646 3FC0 movwi [0]fsr1 14450 0647 0874 movf ??_USBCtrlEPAllowDataStage+1,w 14451 0648 3FC1 movwi [1]fsr1 14452 14453 ;usb_device.c: 1515: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08); 14454 0649 0857 movf _pBDTEntryIn^(0+512),w 14455 064A 3185 25C5 3185 fcall PL135 ;call to abstracted procedure 14456 14457 ;usb_device.c: 1516: pBDTEntryIn[0]->STAT.Val |= 0x80; 14458 064D 2EEC ljmp PL131 ;call to abstracted procedure 14459 064E __end_of_USBCtrlEPAllowDataStage: 14460 064E __ptext74: 14461 ;; *************** function _USBCtrlTrfInHandler ***************** 14462 ;; Defined at: 14463 ;; line 2592 in file "../usb_device.c" 14464 ;; Parameters: Size Location Type 14465 ;; None 14466 ;; Auto vars: Size Location Type 14467 ;; lastDTS 1 5[COMMON] unsigned char 14468 ;; Return value: Size Location Type 14469 ;; None void 14470 ;; Registers used: 14471 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 14472 ;; Tracked objects: 14473 ;; On entry : 1F/4 14474 ;; On exit : 1F/4 14475 ;; Unchanged: 0/0 14476 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14477 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14478 ;; Locals: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 14479 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14480 ;; Totals: 3 0 0 0 0 0 0 0 0 0 0 0 +0 0 14481 ;;Total ram usage: 3 bytes 14482 ;; Hardware stack levels used: 1 14483 ;; Hardware stack levels required when called: 1 14484 ;; This function calls: 14485 ;; _USBCtrlTrfTxService 14486 ;; This function is called by: 14487 ;; _USBCtrlEPService 14488 ;; This function uses a non-reentrant model 14489 ;; 14490 14491 14492 ;psect for function _USBCtrlTrfInHandler 14493 064E _USBCtrlTrfInHandler: 14494 064E i1l5593: 14495 ;incstack = 0 14496 ; Regs used in _USBCtrlTrfInHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] 14497 14498 14499 ;usb_device.c: 2594: uint8_t lastDTS; 14500 ;usb_device.c: 2596: lastDTS = pBDTEntryIn[0]->STAT.DTS; 14501 064E 0857 movf _pBDTEntryIn^(0+512),w 14502 064F 0086 movwf 6 14503 0650 0858 movf (_pBDTEntryIn+1)^(0+512),w 14504 0651 0087 movwf 7 14505 0652 3000 movlw 0 14506 0653 1B01 btfsc 1,6 14507 0654 3001 movlw 1 14508 0655 00F5 movwf USBCtrlTrfInHandler@lastDTS 14509 14510 ;usb_device.c: 2599: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) + ^ 0x0004); 14511 0656 3004 movlw 4 14512 0657 0657 xorwf _pBDTEntryIn^(0+512),w 14513 0658 00D7 movwf _pBDTEntryIn^(0+512) 14514 14515 ;usb_device.c: 2604: if(USBDeviceState == ADR_PENDING_STATE) 14516 0659 0860 movf _USBDeviceState^(0+512),w ;volatile 14517 065A 3A08 xorlw 8 14518 065B 1D03 skipz 14519 065C 2E6A goto i1l690 14520 14521 ;usb_device.c: 2605: { 14522 ;usb_device.c: 2606: UADDR = (SetupPkt.bDevADR & 0x7F); 14523 065D 0020 movlb 0 ; select bank0 14524 065E 0852 movf 82,w ;volatile 14525 065F 397F andlw 127 14526 0660 003D movlb 29 ; select bank29 14527 0661 0096 movwf 22 ;volatile 14528 14529 ;usb_device.c: 2607: if(UADDR != 0u) 14530 0662 0816 movf 22,w 14531 0663 1903 btfsc 3,2 14532 0664 2E67 goto i1l5605 14533 14534 ;usb_device.c: 2608: { 14535 ;usb_device.c: 2609: USBDeviceState=ADDRESS_STATE; 14536 0665 3010 movlw 16 14537 0666 2E68 goto L37 14538 0667 i1l5605: 14539 ;usb_device.c: 2610: } 14540 14541 14542 ;usb_device.c: 2611: else 14543 ;usb_device.c: 2612: { 14544 ;usb_device.c: 2613: USBDeviceState=DEFAULT_STATE; 14545 0667 3004 movlw 4 14546 0668 L37: 14547 0668 0024 movlb 4 ; select bank4 14548 0669 00E0 movwf _USBDeviceState^(0+512) ;volatile 14549 066A i1l690: 14550 14551 ;usb_device.c: 2614: } 14552 ;usb_device.c: 2615: } 14553 ;usb_device.c: 2618: if(controlTransferState == 1) 14554 066A 0B62 decfsz _controlTransferState^(0+512),w ;volatile 14555 066B 2E8E goto i1l693 14556 14557 ;usb_device.c: 2619: { 14558 ;usb_device.c: 2620: pBDTEntryIn[0]->ADR = (((uint16_t)(CtrlTrfData)) & 0x7FFF); 14559 066C 3058 movlw 88 14560 066D 00F3 movwf ??_USBCtrlTrfInHandler 14561 066E 01F4 clrf ??_USBCtrlTrfInHandler+1 14562 066F 270F 3185 fcall PL199 ;call to abstracted procedure 14563 0671 0873 movf ??_USBCtrlTrfInHandler,w 14564 0672 3FC0 movwi [0]fsr1 14565 0673 0874 movf ??_USBCtrlTrfInHandler+1,w 14566 0674 3FC1 movwi [1]fsr1 14567 14568 ;usb_device.c: 2621: USBCtrlTrfTxService(); 14569 0675 2697 3185 fcall _USBCtrlTrfTxService 14570 14571 ;usb_device.c: 2627: if(shortPacketStatus == 2) 14572 0677 0024 movlb 4 ; select bank4 14573 0678 0866 movf _shortPacketStatus^(0+512),w ;volatile 14574 0679 3A02 xorlw 2 14575 067A 1D03 skipz 14576 067B 2E80 goto i1l5615 14577 14578 ;usb_device.c: 2628: { 14579 ;usb_device.c: 2631: pBDTEntryIn[0]->STAT.Val = 0x04; 14580 067C 0857 movf _pBDTEntryIn^(0+512),w 14581 067D 270B 3185 fcall PL151 ;call to abstracted procedure 14582 14583 ;usb_device.c: 2632: pBDTEntryIn[0]->STAT.Val |= 0x80; 14584 14585 ;usb_device.c: 2633: } 14586 067F 2EEC ljmp PL131 ;call to abstracted procedure 14587 0680 i1l5615: 14588 14589 ;usb_device.c: 2634: else 14590 ;usb_device.c: 2635: { 14591 ;usb_device.c: 2636: if(lastDTS == 0) 14592 0680 08F5 movf USBCtrlTrfInHandler@lastDTS,f 14593 0681 1D03 skipz 14594 0682 2E88 goto i1l5619 14595 14596 ;usb_device.c: 2637: { 14597 ;usb_device.c: 2638: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08); 14598 0683 0857 movf _pBDTEntryIn^(0+512),w 14599 0684 3185 25C5 3185 fcall PL135 ;call to abstracted procedure 14600 14601 ;usb_device.c: 2639: pBDTEntryIn[0]->STAT.Val |= 0x80; 14602 14603 ;usb_device.c: 2640: } 14604 0687 2EEC ljmp PL131 ;call to abstracted procedure 14605 0688 i1l5619: 14606 14607 ;usb_device.c: 2641: else 14608 ;usb_device.c: 2642: { 14609 ;usb_device.c: 2643: pBDTEntryIn[0]->STAT.Val = 0x00|(0x08 & 0x08); 14610 0688 0857 movf _pBDTEntryIn^(0+512),w 14611 0689 0086 movwf 6 14612 068A 0858 movf (_pBDTEntryIn+1)^(0+512),w 14613 068B 0087 movwf 7 14614 068C 3008 movlw 8 14615 14616 ;usb_device.c: 2644: pBDTEntryIn[0]->STAT.Val |= 0x80; 14617 068D 2EEC ljmp PL131 ;call to abstracted procedure 14618 068E i1l693: 14619 14620 ;usb_device.c: 2648: else 14621 ;usb_device.c: 2649: { 14622 ;usb_device.c: 2653: if(outPipes[0].info.bits.busy == 1) 14623 068E 0025 movlb 5 ; select bank5 14624 068F 1FA2 btfss (_outPipes^(0+640)+2),7 ;volatile 14625 0690 2E94 goto i1l5623 14626 14627 ;usb_device.c: 2656: { 14628 ;usb_device.c: 2657: outPipes[0].pFunc(); 14629 0691 0825 movf (_outPipes+5)^(0+640),w ;volatile 14630 0692 0826 movf (_outPipes+6)^(0+640),w ;volatile 14631 14632 ;usb_device.c: 2658: } 14633 ;usb_device.c: 2659: outPipes[0].info.bits.busy = 0; 14634 0693 13A2 bcf (_outPipes^(0+640)+2),7 ;volatile 14635 0694 i1l5623: 14636 14637 ;usb_device.c: 2660: } 14638 ;usb_device.c: 2662: controlTransferState = 0; 14639 0694 0024 movlb 4 ; select bank4 14640 0695 01E2 clrf _controlTransferState^(0+512) ;volatile 14641 0696 0008 return 14642 0697 __end_of_USBCtrlTrfInHandler: 14643 0697 __ptext75: 14644 ;; *************** function _USBCtrlTrfTxService ***************** 14645 ;; Defined at: 14646 ;; line 1771 in file "../usb_device.c" 14647 ;; Parameters: Size Location Type 14648 ;; None 14649 ;; Auto vars: Size Location Type 14650 ;; byteToSend 1 2[COMMON] unsigned char 14651 ;; Return value: Size Location Type 14652 ;; None void 14653 ;; Registers used: 14654 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath 14655 ;; Tracked objects: 14656 ;; On entry : 1B/0 14657 ;; On exit : 1E/4 14658 ;; Unchanged: 0/0 14659 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14660 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14661 ;; Locals: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 14662 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14663 ;; Totals: 3 0 0 0 0 0 0 0 0 0 0 0 +0 0 14664 ;;Total ram usage: 3 bytes 14665 ;; Hardware stack levels used: 1 14666 ;; This function calls: 14667 ;; Nothing 14668 ;; This function is called by: 14669 ;; _USBCtrlEPAllowDataStage 14670 ;; _USBCtrlTrfInHandler 14671 ;; This function uses a non-reentrant model 14672 ;; 14673 14674 14675 ;psect for function _USBCtrlTrfTxService 14676 0697 _USBCtrlTrfTxService: 14677 14678 ;usb_device.c: 1773: uint8_t byteToSend; 14679 ;usb_device.c: 1777: byteToSend = 8; 14680 14681 ;incstack = 0 14682 ; Regs used in _USBCtrlTrfTxService: [wreg-fsr1h+status,2+status,0+pclath] 14683 0697 3008 movlw 8 14684 0698 00F2 movwf USBCtrlTrfTxService@byteToSend 14685 14686 ;usb_device.c: 1778: if(inPipes[0].wCount.Val < (uint8_t)8) 14687 0699 3000 movlw 0 14688 069A 0024 movlb 4 ; select bank4 14689 069B 026C subwf ((_inPipes+1)^(0+512)+3),w ;volatile 14690 069C 3008 movlw 8 14691 069D 1903 skipnz 14692 069E 026B subwf (_inPipes^(0+512)+3),w ;volatile 14693 069F 1803 skipnc 14694 06A0 2EAC goto i1l593 14695 14696 ;usb_device.c: 1779: { 14697 ;usb_device.c: 1780: byteToSend = inPipes[0].wCount.Val; 14698 06A1 086B movf (_inPipes^(0+512)+3),w ;volatile 14699 06A2 00F2 movwf USBCtrlTrfTxService@byteToSend 14700 14701 ;usb_device.c: 1787: if(shortPacketStatus == 0) 14702 06A3 08E6 movf _shortPacketStatus^(0+512),f ;volatile 14703 06A4 1D03 skipz 14704 06A5 2EA8 goto i1l4763 14705 14706 ;usb_device.c: 1788: { 14707 ;usb_device.c: 1789: shortPacketStatus = 1; 14708 06A6 3001 movlw 1 14709 06A7 2EAB goto L38 14710 06A8 i1l4763: 14711 ;usb_device.c: 1790: } 14712 14713 14714 ;usb_device.c: 1791: else if(shortPacketStatus == 1) 14715 06A8 0B66 decfsz _shortPacketStatus^(0+512),w ;volatile 14716 06A9 2EAC goto i1l593 14717 14718 ;usb_device.c: 1792: { 14719 ;usb_device.c: 1793: shortPacketStatus = 2; 14720 06AA 3002 movlw 2 14721 06AB L38: 14722 06AB 00E6 movwf _shortPacketStatus^(0+512) ;volatile 14723 06AC i1l593: 14724 14725 ;usb_device.c: 1794: } 14726 ;usb_device.c: 1795: } 14727 ;usb_device.c: 1799: inPipes[0].wCount.Val -= byteToSend; 14728 06AC 0872 movf USBCtrlTrfTxService@byteToSend,w 14729 06AD 02EB subwf (_inPipes^(0+512)+3),f ;volatile 14730 06AE 1C03 skipc 14731 06AF 03EC decf ((_inPipes+1)^(0+512)+3),f ;volatile 14732 14733 ;usb_device.c: 1804: pBDTEntryIn[0]->CNT = byteToSend; 14734 06B0 0857 movf _pBDTEntryIn^(0+512),w 14735 06B1 3E01 addlw 1 14736 06B2 00F0 movwf ??_USBCtrlTrfTxService 14737 06B3 3000 movlw 0 14738 06B4 3D58 addwfc (_pBDTEntryIn+1)^(0+512),w 14739 06B5 00F1 movwf ??_USBCtrlTrfTxService+1 14740 06B6 0870 movf ??_USBCtrlTrfTxService,w 14741 06B7 0086 movwf 6 14742 06B8 0871 movf ??_USBCtrlTrfTxService+1,w 14743 06B9 0087 movwf 7 14744 06BA 0872 movf USBCtrlTrfTxService@byteToSend,w 14745 06BB 0081 movwf 1 14746 14747 ;usb_device.c: 1808: pDst = (volatile uint8_t*)CtrlTrfData; 14748 06BC 3058 movlw 88 14749 06BD 0025 movlb 5 ; select bank5 14750 06BE 00D3 movwf _pDst^(0+640) 14751 14752 ;usb_device.c: 1809: if(inPipes[0].info.bits.ctrl_trf_mem == 0x00) 14753 06BF 0024 movlb 4 ; select bank4 14754 06C0 1C6A btfss (_inPipes^(0+512)+2),0 ;volatile 14755 06C1 2EC5 goto i1l4783 14756 06C2 2ECB goto i1l4793 14757 06C3 i1l4775: 14758 14759 ;usb_device.c: 1812: { 14760 ;usb_device.c: 1813: *pDst++ = *inPipes[0].pSrc.bRom++; 14761 14762 ;usb_device.c: 1814: byteToSend--; 14763 06C3 26F3 3185 fcall PL139 ;call to abstracted procedure 14764 06C5 i1l4783: 14765 06C5 08F2 movf USBCtrlTrfTxService@byteToSend,f 14766 06C6 1903 btfsc 3,2 14767 06C7 0008 return 14768 06C8 2EC3 goto i1l4775 14769 06C9 i1l4785: 14770 14771 ;usb_device.c: 1820: { 14772 ;usb_device.c: 1821: *pDst++ = *inPipes[0].pSrc.bRam++; 14773 14774 ;usb_device.c: 1822: byteToSend--; 14775 06C9 26F3 3185 fcall PL139 ;call to abstracted procedure 14776 06CB i1l4793: 14777 06CB 08F2 movf USBCtrlTrfTxService@byteToSend,f 14778 06CC 1903 btfsc 3,2 14779 06CD 0008 return 14780 06CE 2EC9 goto i1l4785 14781 06CF __end_of_USBCtrlTrfTxService: 14782 007E btemp set 126 ;btemp 14783 007E pic14e$flags set 126 14784 007E wtemp set 126 14785 007E wtemp0 set 126 14786 0080 wtemp1 set 128 14787 0082 wtemp2 set 130 14788 0084 wtemp3 set 132 14789 0086 wtemp4 set 134 14790 0088 wtemp5 set 136 14791 007F wtemp6 set 127 14792 007E ttemp set 126 14793 007E ttemp0 set 126 14794 0081 ttemp1 set 129 14795 0084 ttemp2 set 132 14796 0087 ttemp3 set 135 14797 007F ttemp4 set 127 14798 007E ltemp set 126 14799 007E ltemp0 set 126 14800 0082 ltemp1 set 130 14801 0086 ltemp2 set 134 14802 0080 ltemp3 set 128 14803 06CF PL127: 14804 06CF 085D movf _pBDTEntryEP0OutNext^(0+512),w 14805 06D0 3E01 addlw 1 14806 06D1 00F5 movwf ??_USBCtrlEPServiceComplete 14807 06D2 3000 movlw 0 14808 06D3 3D5E addwfc (_pBDTEntryEP0OutNext+1)^(0+512),w 14809 06D4 00F6 movwf ??_USBCtrlEPServiceComplete+1 14810 06D5 0875 movf ??_USBCtrlEPServiceComplete,w 14811 06D6 0086 movwf 6 14812 06D7 0876 movf ??_USBCtrlEPServiceComplete+1,w 14813 06D8 0087 movwf 7 14814 06D9 3008 movlw 8 14815 06DA 0081 movwf 1 14816 06DB 3050 movlw 80 14817 06DC 00F5 movwf ??_USBCtrlEPServiceComplete 14818 06DD 01F6 clrf ??_USBCtrlEPServiceComplete+1 14819 06DE 085D movf _pBDTEntryEP0OutNext^(0+512),w 14820 06DF 0086 movwf 6 14821 06E0 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 14822 06E1 0087 movwf 7 14823 06E2 3142 addfsr 1,2 14824 06E3 0875 movf ??_USBCtrlEPServiceComplete,w 14825 06E4 3FC0 movwi [0]fsr1 14826 06E5 0876 movf ??_USBCtrlEPServiceComplete+1,w 14827 06E6 3FC1 movwi [1]fsr1 14828 06E7 085D movf _pBDTEntryEP0OutNext^(0+512),w 14829 06E8 0086 movwf 6 14830 06E9 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 14831 06EA 0087 movwf 7 14832 06EB 0008 return 14833 06EC __end_ofPL127: 14834 06EC PL131: 14835 06EC 0081 movwf 1 14836 06ED 0857 movf _pBDTEntryIn^(0+512),w 14837 06EE 0086 movwf 6 14838 06EF 0858 movf (_pBDTEntryIn+1)^(0+512),w 14839 06F0 0087 movwf 7 14840 06F1 1781 bsf 1,7 14841 06F2 0008 return 14842 06F3 __end_ofPL131: 14843 06F3 PL139: 14844 06F3 0025 movlb 5 ; select bank5 14845 06F4 0853 movf _pDst^(0+640),w 14846 06F5 0086 movwf 6 14847 06F6 0187 clrf 7 14848 06F7 0024 movlb 4 ; select bank4 14849 06F8 0868 movf _inPipes^(0+512),w ;volatile 14850 06F9 0084 movwf 4 14851 06FA 0869 movf (_inPipes+1)^(0+512),w ;volatile 14852 06FB 0085 movwf 5 14853 06FC 0800 movf 0,w ;code access 14854 06FD 0081 movwf 1 14855 06FE 0AE8 incf _inPipes^(0+512),f ;volatile 14856 06FF 1903 skipnz 14857 0700 0AE9 incf (_inPipes+1)^(0+512),f ;volatile 14858 0701 0025 movlb 5 ; select bank5 14859 0702 0AD3 incf _pDst^(0+640),f 14860 0703 03F2 decf USBCtrlTrfTxService@byteToSend,f 14861 0704 0008 return 14862 0705 __end_ofPL139: 14863 0705 PL149: 14864 0705 3FC1 movwi [1]fsr1 14865 0706 085D movf _pBDTEntryEP0OutNext^(0+512),w 14866 0707 0086 movwf 6 14867 0708 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 14868 0709 0087 movwf 7 14869 070A 0008 return 14870 070B __end_ofPL149: 14871 070B PL151: 14872 070B 0086 movwf 6 14873 070C 0858 movf (_pBDTEntryIn+1)^(0+512),w 14874 070D 0087 movwf 7 14875 070E 3404 retlw 4 14876 070F __end_ofPL151: 14877 070F PL199: 14878 070F 0857 movf _pBDTEntryIn^(0+512),w 14879 0710 0086 movwf 6 14880 0711 0858 movf (_pBDTEntryIn+1)^(0+512),w 14881 0712 0087 movwf 7 14882 0713 3142 addfsr 1,2 14883 0714 0008 return 14884 0715 __end_ofPL199: 14885 0715 __ptext71: 14886 ;; *************** function _USBCtrlTrfOutHandler ***************** 14887 ;; Defined at: 14888 ;; line 2538 in file "../usb_device.c" 14889 ;; Parameters: Size Location Type 14890 ;; None 14891 ;; Auto vars: Size Location Type 14892 ;; None 14893 ;; Return value: Size Location Type 14894 ;; None void 14895 ;; Registers used: 14896 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 14897 ;; Tracked objects: 14898 ;; On entry : 1F/0 14899 ;; On exit : 1E/4 14900 ;; Unchanged: 0/0 14901 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 14902 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14903 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 14904 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14905 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 14906 ;;Total ram usage: 2 bytes 14907 ;; Hardware stack levels used: 1 14908 ;; Hardware stack levels required when called: 2 14909 ;; This function calls: 14910 ;; _USBCtrlTrfRxService 14911 ;; This function is called by: 14912 ;; _USBCtrlEPService 14913 ;; This function uses a non-reentrant model 14914 ;; 14915 14916 14917 ;psect for function _USBCtrlTrfOutHandler 14918 0715 _USBCtrlTrfOutHandler: 14919 0715 i1l5575: 14920 ;incstack = 0 14921 ; Regs used in _USBCtrlTrfOutHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] 14922 14923 14924 ;usb_device.c: 2540: if(controlTransferState == 2) 14925 0715 0024 movlb 4 ; select bank4 14926 0716 0862 movf _controlTransferState^(0+512),w ;volatile 14927 0717 3A02 xorlw 2 14928 0718 1D03 skipz 14929 0719 2F1B goto i1l5579 14930 14931 ;usb_device.c: 2541: { 14932 ;usb_device.c: 2542: USBCtrlTrfRxService(); 14933 071A 2F3C ljmp i1l5297 14934 071B i1l5579: 14935 ;usb_device.c: 2543: } 14936 14937 14938 ;usb_device.c: 2544: else 14939 ;usb_device.c: 2545: { 14940 ;usb_device.c: 2548: controlTransferState = 0; 14941 071B 01E2 clrf _controlTransferState^(0+512) ;volatile 14942 14943 ;usb_device.c: 2555: if(BothEP0OutUOWNsSet == 0) 14944 071C 0025 movlb 5 ; select bank5 14945 071D 08BF movf _BothEP0OutUOWNsSet^(0+640),f ;volatile 14946 071E 1D03 skipz 14947 071F 2F3A goto i1l5591 14948 14949 ;usb_device.c: 2556: { 14950 ;usb_device.c: 2557: pBDTEntryEP0OutNext->CNT = 8; 14951 0720 0024 movlb 4 ; select bank4 14952 0721 085D movf _pBDTEntryEP0OutNext^(0+512),w 14953 0722 3E01 addlw 1 14954 0723 00F6 movwf ??_USBCtrlTrfOutHandler 14955 0724 3000 movlw 0 14956 0725 3D5E addwfc (_pBDTEntryEP0OutNext+1)^(0+512),w 14957 0726 00F7 movwf ??_USBCtrlTrfOutHandler+1 14958 0727 0876 movf ??_USBCtrlTrfOutHandler,w 14959 0728 0086 movwf 6 14960 0729 0877 movf ??_USBCtrlTrfOutHandler+1,w 14961 072A 0087 movwf 7 14962 072B 3008 movlw 8 14963 072C 0081 movwf 1 14964 14965 ;usb_device.c: 2558: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 14966 072D 3050 movlw 80 14967 072E 00F6 movwf ??_USBCtrlTrfOutHandler 14968 072F 01F7 clrf ??_USBCtrlTrfOutHandler+1 14969 0730 27AF 3185 fcall PL145 ;call to abstracted procedure 14970 0732 0876 movf ??_USBCtrlTrfOutHandler,w 14971 0733 3FC0 movwi [0]fsr1 14972 0734 0877 movf ??_USBCtrlTrfOutHandler+1,w 14973 14974 ;usb_device.c: 2559: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08)|0x04; 14975 0735 2705 3185 fcall PL149 ;call to abstracted procedure 14976 0737 300C movlw 12 14977 14978 ;usb_device.c: 2560: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 14979 0738 27A8 fcall PL137 ;call to abstracted procedure 14980 14981 ;usb_device.c: 2561: } 14982 0739 0008 return 14983 073A i1l5591: 14984 14985 ;usb_device.c: 2562: else 14986 ;usb_device.c: 2563: { 14987 ;usb_device.c: 2564: BothEP0OutUOWNsSet = 0; 14988 073A 01BF clrf _BothEP0OutUOWNsSet^(0+640) ;volatile 14989 073B 0008 return 14990 073C __end_of_USBCtrlTrfOutHandler: 14991 073C __ptext72: 14992 ;; *************** function _USBCtrlTrfRxService ***************** 14993 ;; Defined at: 14994 ;; line 1852 in file "../usb_device.c" 14995 ;; Parameters: Size Location Type 14996 ;; None 14997 ;; Auto vars: Size Location Type 14998 ;; byteToRead 1 5[COMMON] unsigned char 14999 ;; i 1 4[COMMON] unsigned char 15000 ;; Return value: Size Location Type 15001 ;; None void 15002 ;; Registers used: 15003 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 15004 ;; Tracked objects: 15005 ;; On entry : 1F/4 15006 ;; On exit : 1E/4 15007 ;; Unchanged: 0/0 15008 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15009 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15010 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15011 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15012 ;; Totals: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 15013 ;;Total ram usage: 4 bytes 15014 ;; Hardware stack levels used: 1 15015 ;; Hardware stack levels required when called: 1 15016 ;; This function calls: 15017 ;; _USBCtrlEPAllowStatusStage 15018 ;; This function is called by: 15019 ;; _USBCtrlTrfOutHandler 15020 ;; This function uses a non-reentrant model 15021 ;; 15022 15023 15024 ;psect for function _USBCtrlTrfRxService 15025 073C _USBCtrlTrfRxService: 15026 073C i1l5297: 15027 ;incstack = 0 15028 ; Regs used in _USBCtrlTrfRxService: [wreg-fsr1h+status,2+status,0+pclath+cstack] 15029 15030 15031 ;usb_device.c: 1854: uint8_t byteToRead; 15032 ;usb_device.c: 1855: uint8_t i; 15033 ;usb_device.c: 1859: byteToRead = pBDTEntryEP0OutCurrent->CNT; 15034 073C 0020 movlb 0 ; select bank0 15035 073D 086F movf _pBDTEntryEP0OutCurrent,w 15036 073E 0086 movwf 6 15037 073F 0187 clrf 7 15038 0740 3F41 moviw [1]fsr1 15039 0741 00F5 movwf USBCtrlTrfRxService@byteToRead 15040 15041 ;usb_device.c: 1865: if(byteToRead > outPipes[0].wCount.Val) 15042 0742 00F2 movwf ??_USBCtrlTrfRxService 15043 0743 01F3 clrf ??_USBCtrlTrfRxService+1 15044 0744 0873 movf ??_USBCtrlTrfRxService+1,w 15045 0745 0025 movlb 5 ; select bank5 15046 0746 0224 subwf ((_outPipes+1)^(0+640)+3),w ;volatile 15047 0747 1D03 skipz 15048 0748 2F4B goto u433_25 15049 0749 0872 movf ??_USBCtrlTrfRxService,w 15050 074A 0223 subwf (_outPipes^(0+640)+3),w ;volatile 15051 074B u433_25: 15052 074B 1803 skipnc 15053 074C 2F4F goto i1l608 15054 15055 ;usb_device.c: 1866: { 15056 ;usb_device.c: 1867: byteToRead = outPipes[0].wCount.Val; 15057 074D 0823 movf (_outPipes^(0+640)+3),w ;volatile 15058 074E 00F5 movwf USBCtrlTrfRxService@byteToRead 15059 074F i1l608: 15060 15061 ;usb_device.c: 1868: } 15062 ;usb_device.c: 1870: outPipes[0].wCount.Val -= byteToRead; 15063 074F 0875 movf USBCtrlTrfRxService@byteToRead,w 15064 0750 02A3 subwf (_outPipes^(0+640)+3),f ;volatile 15065 0751 1C03 skipc 15066 0752 03A4 decf ((_outPipes+1)^(0+640)+3),f ;volatile 15067 15068 ;usb_device.c: 1874: for(i=0;i 0) 15095 0765 30A3 movlw (_outPipes& (0+255)+3) 15096 0766 0086 movwf 6 15097 0767 3002 movlw 2 ; select bank5/6 15098 0768 0087 movwf 7 15099 0769 0016 moviw fsr1++ 15100 076A 0401 iorwf 1,w 15101 076B 1903 skipnz 15102 076C 2F8F goto i1l5325 15103 15104 ;usb_device.c: 1882: { 15105 ;usb_device.c: 1883: pBDTEntryEP0OutNext->CNT = 8; 15106 076D 0024 movlb 4 ; select bank4 15107 076E 27B5 3185 fcall PL147 ;call to abstracted procedure 15108 15109 ;usb_device.c: 1884: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&CtrlTrfData)) & 0x7FFF); 15110 0770 3058 movlw 88 15111 0771 00F2 movwf ??_USBCtrlTrfRxService 15112 0772 01F3 clrf ??_USBCtrlTrfRxService+1 15113 0773 27AF 3185 fcall PL145 ;call to abstracted procedure 15114 0775 0872 movf ??_USBCtrlTrfRxService,w 15115 0776 3FC0 movwi [0]fsr1 15116 0777 0873 movf ??_USBCtrlTrfRxService+1,w 15117 0778 3FC1 movwi [1]fsr1 15118 15119 ;usb_device.c: 1885: if(pBDTEntryEP0OutCurrent->STAT.DTS == 0) 15120 0779 0020 movlb 0 ; select bank0 15121 077A 086F movf _pBDTEntryEP0OutCurrent,w 15122 077B 0086 movwf 6 15123 077C 0187 clrf 7 15124 077D 1B01 btfsc 1,6 15125 077E 2F87 goto i1l5323 15126 15127 ;usb_device.c: 1886: { 15128 ;usb_device.c: 1887: pBDTEntryEP0OutNext->STAT.Val = 0x40|(0x08 & 0x08); 15129 077F 0024 movlb 4 ; select bank4 15130 0780 085D movf _pBDTEntryEP0OutNext^(0+512),w 15131 0781 0086 movwf 6 15132 0782 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 15133 0783 0087 movwf 7 15134 0784 3048 movlw 72 15135 15136 ;usb_device.c: 1888: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 15137 0785 27A8 fcall PL137 ;call to abstracted procedure 15138 15139 ;usb_device.c: 1889: } 15140 0786 0008 return 15141 0787 i1l5323: 15142 15143 ;usb_device.c: 1890: else 15144 ;usb_device.c: 1891: { 15145 ;usb_device.c: 1892: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08); 15146 0787 0024 movlb 4 ; select bank4 15147 0788 085D movf _pBDTEntryEP0OutNext^(0+512),w 15148 0789 0086 movwf 6 15149 078A 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 15150 078B 0087 movwf 7 15151 078C 3008 movlw 8 15152 15153 ;usb_device.c: 1893: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 15154 078D 27A8 fcall PL137 ;call to abstracted procedure 15155 078E 0008 return 15156 078F i1l5325: 15157 15158 ;usb_device.c: 1896: else 15159 ;usb_device.c: 1897: { 15160 ;usb_device.c: 1901: pBDTEntryEP0OutNext->CNT = 8; 15161 078F 0024 movlb 4 ; select bank4 15162 0790 27B5 3185 fcall PL147 ;call to abstracted procedure 15163 15164 ;usb_device.c: 1902: pBDTEntryEP0OutNext->ADR = (((uint16_t)(&SetupPkt)) & 0x7FFF); 15165 0792 3050 movlw 80 15166 0793 00F2 movwf ??_USBCtrlTrfRxService 15167 0794 01F3 clrf ??_USBCtrlTrfRxService+1 15168 0795 27AF 3185 fcall PL145 ;call to abstracted procedure 15169 0797 0872 movf ??_USBCtrlTrfRxService,w 15170 0798 3FC0 movwi [0]fsr1 15171 0799 0873 movf ??_USBCtrlTrfRxService+1,w 15172 15173 ;usb_device.c: 1906: pBDTEntryEP0OutNext->STAT.Val = 0x04; 15174 079A 2705 3185 fcall PL149 ;call to abstracted procedure 15175 079C 3004 movlw 4 15176 15177 ;usb_device.c: 1907: pBDTEntryEP0OutNext->STAT.Val |= 0x80; 15178 079D 27A8 3185 fcall PL137 ;call to abstracted procedure 15179 15180 ;usb_device.c: 1915: { 15181 ;usb_device.c: 1921: outPipes[0].pFunc(); 15182 079F 0025 movlb 5 ; select bank5 15183 07A0 0825 movf (_outPipes+5)^(0+640),w ;volatile 15184 07A1 0826 movf (_outPipes+6)^(0+640),w ;volatile 15185 15186 ;usb_device.c: 1926: } 15187 ;usb_device.c: 1927: outPipes[0].info.bits.busy = 0; 15188 07A2 13A2 bcf (_outPipes^(0+640)+2),7 ;volatile 15189 15190 ;usb_device.c: 1941: if(USBDeferStatusStagePacket == 0) 15191 07A3 08C4 movf _USBDeferStatusStagePacket^(0+640),f ;volatile 15192 07A4 1D03 skipz 15193 07A5 0008 return 15194 15195 ;usb_device.c: 1942: { 15196 ;usb_device.c: 1943: USBCtrlEPAllowStatusStage(); 15197 07A6 3184 2C35 ljmp i1l4849 15198 07A8 __end_of_USBCtrlTrfRxService: 15199 07A8 PL137: 15200 07A8 0081 movwf 1 15201 07A9 085D movf _pBDTEntryEP0OutNext^(0+512),w 15202 07AA 0086 movwf 6 15203 07AB 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 15204 07AC 0087 movwf 7 15205 07AD 1781 bsf 1,7 15206 07AE 0008 return 15207 07AF __end_ofPL137: 15208 07AF PL145: 15209 07AF 085D movf _pBDTEntryEP0OutNext^(0+512),w 15210 07B0 0086 movwf 6 15211 07B1 085E movf (_pBDTEntryEP0OutNext+1)^(0+512),w 15212 07B2 0087 movwf 7 15213 07B3 3142 addfsr 1,2 15214 07B4 0008 return 15215 07B5 __end_ofPL145: 15216 07B5 PL147: 15217 07B5 085D movf _pBDTEntryEP0OutNext^(0+512),w 15218 07B6 3E01 addlw 1 15219 07B7 00F2 movwf ??_USBCtrlTrfRxService 15220 07B8 3000 movlw 0 15221 07B9 3D5E addwfc (_pBDTEntryEP0OutNext+1)^(0+512),w 15222 07BA 00F3 movwf ??_USBCtrlTrfRxService+1 15223 07BB 0872 movf ??_USBCtrlTrfRxService,w 15224 07BC 0086 movwf 6 15225 07BD 0873 movf ??_USBCtrlTrfRxService+1,w 15226 07BE 0087 movwf 7 15227 07BF 3008 movlw 8 15228 07C0 0081 movwf 1 15229 07C1 0008 return 15230 07C2 __end_ofPL147: 15231 15232 psect swtext3 15233 0800 __pswtext3: 15234 0800 i1S7461: 15235 0800 3182 2A3A ljmp i1l5357 15236 0802 3182 2A3C ljmp i1l5359 15237 0804 3182 2A26 ljmp i1l705 15238 0806 3182 2A3C ljmp i1l5359 15239 0808 3182 2A26 ljmp i1l705 15240 080A 3182 2A27 ljmp i1l707 15241 080C 3182 2A2C ljmp i1l5345 15242 080E 3182 2A53 ljmp i1l5371 15243 0810 3182 2A30 ljmp i1l5349 15244 0812 3182 2A2E ljmp i1l5347 15245 0814 3182 2A3D ljmp i1l5361 15246 0816 3182 2A48 ljmp i1l716 15247 0818 3182 2A26 ljmp i1l705 15248 15249 psect text59 15250 103A __ptext59: 15251 ;; *************** function _USBStdSetCfgHandler ***************** 15252 ;; Defined at: 15253 ;; line 1968 in file "../usb_device.c" 15254 ;; Parameters: Size Location Type 15255 ;; None 15256 ;; Auto vars: Size Location Type 15257 ;; p 2 6[BANK0h] PTR unsigned char 15258 ;; -> UEP1(1), 15259 ;; i 1 8[BANK0h] unsigned char 15260 ;; i 1 9[BANK0h] unsigned char 15261 ;; Return value: Size Location Type 15262 ;; None void 15263 ;; Registers used: 15264 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack 15265 ;; Tracked objects: 15266 ;; On entry : 1A/0 15267 ;; On exit : 1F/4 15268 ;; Unchanged: 0/0 15269 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15270 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15271 ;; Locals: 0 4 0 0 0 0 0 0 0 0 0 0 +0 0 15272 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15273 ;; Totals: 0 4 0 0 0 0 0 0 0 0 0 0 +0 0 15274 ;;Total ram usage: 4 bytes 15275 ;; Hardware stack levels used: 1 15276 ;; Hardware stack levels required when called: 4 15277 ;; This function calls: 15278 ;; _USER_USB_CALLBACK_EVENT_HANDLER 15279 ;; _memset 15280 ;; This function is called by: 15281 ;; _USBCheckStdRequest 15282 ;; This function uses a non-reentrant model 15283 ;; 15284 15285 15286 ;psect for function _USBStdSetCfgHandler 15287 103A _USBStdSetCfgHandler: 15288 103A i1l4907: 15289 ;incstack = 0 15290 ; Regs used in _USBStdSetCfgHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] 15291 15292 15293 ;usb_device.c: 1970: uint8_t i; 15294 ;usb_device.c: 1973: inPipes[0].info.bits.busy = 1; 15295 103A 0024 movlb 4 ; select bank4 15296 103B 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15297 15298 ;usb_device.c: 1976: { uint8_t i; uint8_t* p = (uint8_t*)&UEP1; for(i=0;i<2;i++) *p++ = + 0; }; 15299 103C 300E movlw 14 15300 103D 0020 movlb 0 ; select bank0 15301 103E 00E7 movwf USBStdSetCfgHandler@p+1 15302 103F 3099 movlw 153 15303 1040 00E6 movwf USBStdSetCfgHandler@p 15304 1041 01E8 clrf USBStdSetCfgHandler@i_1822 15305 1042 i1l4915: 15306 1042 0866 movf USBStdSetCfgHandler@p,w 15307 1043 0086 movwf 6 15308 1044 0867 movf USBStdSetCfgHandler@p+1,w 15309 1045 0087 movwf 7 15310 1046 0181 clrf 1 15311 1047 0AE6 incf USBStdSetCfgHandler@p,f 15312 1048 1903 skipnz 15313 1049 0AE7 incf USBStdSetCfgHandler@p+1,f 15314 104A 3002 movlw 2 15315 104B 0AE8 incf USBStdSetCfgHandler@i_1822,f 15316 104C 0268 subwf USBStdSetCfgHandler@i_1822,w 15317 104D 1C03 skipc 15318 104E 2842 goto i1l4915 15319 15320 ;usb_device.c: 1979: memset((void*)&BDT[0], 0x00, sizeof(BDT)); 15321 104F 3020 movlw 32 15322 1050 00F0 movwf memset@p1 15323 1051 3030 movlw 48 15324 1052 01F1 clrf memset@p1+1 15325 1053 01F2 clrf memset@c 15326 1054 01F3 clrf memset@c+1 15327 1055 00F4 movwf memset@n 15328 1056 01F5 clrf memset@n+1 15329 1057 209E 3190 fcall _memset 15330 15331 ;usb_device.c: 1982: UCONbits.PPBRST = 1; 15332 1059 003D movlb 29 ; select bank29 15333 105A 170E bsf 14,6 ;volatile 15334 15335 ;usb_device.c: 1987: for(i = 0; i < (uint8_t)(2+1u); i++) 15336 105B 0020 movlb 0 ; select bank0 15337 105C 01E9 clrf USBStdSetCfgHandler@i 15338 105D i1l4933: 15339 15340 ;usb_device.c: 1988: { 15341 ;usb_device.c: 1989: ep_data_in[i].Val = 0u; 15342 105D 0869 movf USBStdSetCfgHandler@i,w 15343 105E 3EAD addlw _ep_data_in& (0+255) 15344 105F 0086 movwf 6 15345 1060 3002 movlw 2 ; select bank5/6 15346 1061 0087 movwf 7 15347 1062 0181 clrf 1 15348 15349 ;usb_device.c: 1990: ep_data_out[i].Val = 0u; 15350 1063 0869 movf USBStdSetCfgHandler@i,w 15351 1064 3EB0 addlw _ep_data_out& (0+255) 15352 1065 0086 movwf 6 15353 1066 3003 movlw 3 15354 1067 0181 clrf 1 15355 1068 0AE9 incf USBStdSetCfgHandler@i,f 15356 1069 0269 subwf USBStdSetCfgHandler@i,w 15357 106A 1C03 skipc 15358 106B 285D goto i1l4933 15359 15360 ;usb_device.c: 1991: } 15361 ;usb_device.c: 1994: memset((void*)&USBAlternateInterface,0x00,2); 15362 106C 30E7 movlw low _USBAlternateInterface 15363 106D 00F0 movwf memset@p1 15364 106E 3002 movlw high _USBAlternateInterface 15365 106F 00F1 movwf memset@p1+1 15366 1070 3002 movlw 2 15367 1071 01F2 clrf memset@c 15368 1072 01F3 clrf memset@c+1 15369 1073 00F4 movwf memset@n 15370 1074 01F5 clrf memset@n+1 15371 1075 209E 3190 fcall _memset 15372 15373 ;usb_device.c: 1997: UCONbits.PPBRST = 0; 15374 1077 003D movlb 29 ; select bank29 15375 1078 130E bcf 14,6 ;volatile 15376 15377 ;usb_device.c: 1999: pBDTEntryIn[0] = (volatile BDT_ENTRY*)&BDT[2]; 15378 1079 3028 movlw 40 15379 107A 0024 movlb 4 ; select bank4 15380 107B 00D7 movwf _pBDTEntryIn^(0+512) 15381 107C 3020 movlw 32 15382 107D 01D8 clrf (_pBDTEntryIn+1)^(0+512) 15383 15384 ;usb_device.c: 2002: pBDTEntryEP0OutCurrent = (volatile BDT_ENTRY*)&BDT[0]; 15385 107E 0020 movlb 0 ; select bank0 15386 107F 00EF movwf _pBDTEntryEP0OutCurrent 15387 15388 ;usb_device.c: 2003: pBDTEntryEP0OutNext = pBDTEntryEP0OutCurrent; 15389 1080 0024 movlb 4 ; select bank4 15390 1081 00DD movwf _pBDTEntryEP0OutNext^(0+512) 15391 1082 01DE clrf (_pBDTEntryEP0OutNext+1)^(0+512) 15392 15393 ;usb_device.c: 2006: USBActiveConfiguration = SetupPkt.bConfigurationValue; 15394 1083 0020 movlb 0 ; select bank0 15395 1084 0852 movf 82,w ;volatile 15396 1085 0024 movlb 4 ; select bank4 15397 1086 00ED movwf _USBActiveConfiguration^(0+512) ;volatile 15398 15399 ;usb_device.c: 2009: if(USBActiveConfiguration == 0) 15400 1087 08ED movf _USBActiveConfiguration^(0+512),f ;volatile 15401 1088 1D03 skipz 15402 1089 288D goto i1l4955 15403 15404 ;usb_device.c: 2010: { 15405 ;usb_device.c: 2012: USBDeviceState = ADDRESS_STATE; 15406 108A 3010 movlw 16 15407 108B 00E0 movwf _USBDeviceState^(0+512) ;volatile 15408 15409 ;usb_device.c: 2013: } 15410 108C 0008 return 15411 108D i1l4955: 15412 15413 ;usb_device.c: 2014: else 15414 ;usb_device.c: 2015: { 15415 ;usb_device.c: 2017: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_CONFIGURED,(void*)&USBActiveC + onfiguration,1); 15416 108D 0020 movlb 0 ; select bank0 15417 108E 306D movlw low _USBActiveConfiguration 15418 108F 01E0 clrf USER_USB_CALLBACK_EVENT_HANDLER@event 15419 1090 0AE0 incf USER_USB_CALLBACK_EVENT_HANDLER@event,f 15420 1091 01E1 clrf USER_USB_CALLBACK_EVENT_HANDLER@event+1 15421 1092 00E2 movwf USER_USB_CALLBACK_EVENT_HANDLER@pdata 15422 1093 3002 movlw high _USBActiveConfiguration 15423 1094 00E3 movwf USER_USB_CALLBACK_EVENT_HANDLER@pdata+1 15424 1095 01E4 clrf USER_USB_CALLBACK_EVENT_HANDLER@size 15425 1096 0AE4 incf USER_USB_CALLBACK_EVENT_HANDLER@size,f 15426 1097 01E5 clrf USER_USB_CALLBACK_EVENT_HANDLER@size+1 15427 1098 3184 2407 fcall _USER_USB_CALLBACK_EVENT_HANDLER 15428 15429 ;usb_device.c: 2022: USBDeviceState = CONFIGURED_STATE; 15430 109A 3020 movlw 32 15431 109B 0024 movlb 4 ; select bank4 15432 109C 00E0 movwf _USBDeviceState^(0+512) ;volatile 15433 109D 0008 return 15434 109E __end_of_USBStdSetCfgHandler: 15435 109E __ptext60: 15436 ;; *************** function _memset ***************** 15437 ;; Defined at: 15438 ;; line 8 in file "C:\Program Files (x86)\Microchip\xc8\v1.32\sources\common\memset.c" 15439 ;; Parameters: Size Location Type 15440 ;; p1 2 0[COMMON] PTR void 15441 ;; -> USBAlternateInterface(2), BDT(48), 15442 ;; c 2 2[COMMON] int 15443 ;; n 2 4[COMMON] unsigned int 15444 ;; Auto vars: Size Location Type 15445 ;; p 2 6[COMMON] PTR unsigned char 15446 ;; -> USBAlternateInterface(2), BDT(48), 15447 ;; Return value: Size Location Type 15448 ;; 2 0[COMMON] PTR void 15449 ;; Registers used: 15450 ;; wreg, fsr1l, fsr1h, status,2, status,0 15451 ;; Tracked objects: 15452 ;; On entry : 1F/0 15453 ;; On exit : 1F/0 15454 ;; Unchanged: 1F/0 15455 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15456 ;; Params: 6 0 0 0 0 0 0 0 0 0 0 0 +0 0 15457 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15458 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15459 ;; Totals: 8 0 0 0 0 0 0 0 0 0 0 0 +0 0 15460 ;;Total ram usage: 8 bytes 15461 ;; Hardware stack levels used: 1 15462 ;; This function calls: 15463 ;; Nothing 15464 ;; This function is called by: 15465 ;; _USBStdSetCfgHandler 15466 ;; This function uses a non-reentrant model 15467 ;; 15468 15469 15470 ;psect for function _memset 15471 109E _memset: 15472 15473 ;incstack = 0 15474 ; Regs used in _memset: [wreg+fsr1l+fsr1h+status,2+status,0] 15475 109E 0871 movf memset@p1+1,w 15476 109F 01F7 clrf memset@p+1 15477 10A0 07F7 addwf memset@p+1,f 15478 10A1 0870 movf memset@p1,w 15479 10A2 01F6 clrf memset@p 15480 10A3 07F6 addwf memset@p,f 15481 10A4 i1l4801: 15482 10A4 3001 movlw 1 15483 10A5 02F4 subwf memset@n,f 15484 10A6 3000 movlw 0 15485 10A7 3BF5 subwfb memset@n+1,f 15486 10A8 0A74 incf memset@n,w 15487 10A9 1903 skipnz 15488 10AA 0A75 incf memset@n+1,w 15489 10AB 1903 btfsc 3,2 15490 10AC 0008 return 15491 10AD 0876 movf memset@p,w 15492 10AE 0086 movwf 6 15493 10AF 0877 movf memset@p+1,w 15494 10B0 0087 movwf 7 15495 10B1 0872 movf memset@c,w 15496 10B2 0081 movwf 1 15497 10B3 0AF6 incf memset@p,f 15498 10B4 1903 skipnz 15499 10B5 0AF7 incf memset@p+1,f 15500 10B6 28A4 goto i1l4801 15501 10B7 __end_of_memset: 15502 15503 psect text61 15504 189B __ptext61: 15505 ;; *************** function _USBStdGetStatusHandler ***************** 15506 ;; Defined at: 15507 ;; line 2129 in file "../usb_device.c" 15508 ;; Parameters: Size Location Type 15509 ;; None 15510 ;; Auto vars: Size Location Type 15511 ;; p 2 0[COMMON] PTR struct __BDT 15512 ;; -> RAM(4096), BDT(48), NULL(0), 15513 ;; Return value: Size Location Type 15514 ;; None void 15515 ;; Registers used: 15516 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0 15517 ;; Tracked objects: 15518 ;; On entry : 1A/0 15519 ;; On exit : 1F/4 15520 ;; Unchanged: 0/0 15521 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15522 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15523 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15524 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15525 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15526 ;;Total ram usage: 2 bytes 15527 ;; Hardware stack levels used: 1 15528 ;; This function calls: 15529 ;; Nothing 15530 ;; This function is called by: 15531 ;; _USBCheckStdRequest 15532 ;; This function uses a non-reentrant model 15533 ;; 15534 15535 15536 ;psect for function _USBStdGetStatusHandler 15537 189B _USBStdGetStatusHandler: 15538 189B i1l4989: 15539 ;incstack = 0 15540 ; Regs used in _USBStdGetStatusHandler: [wreg-fsr1h+status,2+status,0] 15541 15542 15543 ;usb_device.c: 2131: CtrlTrfData[0] = 0; 15544 189B 0020 movlb 0 ; select bank0 15545 189C 01D8 clrf 88 ;volatile 15546 15547 ;usb_device.c: 2132: CtrlTrfData[1] = 0; 15548 189D 01D9 clrf 89 ;volatile 15549 15550 ;usb_device.c: 2134: switch(SetupPkt.Recipient) 15551 189E 28CC goto i1l5009 15552 189F i1l645: 15553 ;usb_device.c: 2135: { 15554 ;usb_device.c: 2136: case (0x00): 15555 15556 15557 ;usb_device.c: 2137: inPipes[0].info.bits.busy = 1; 15558 189F 0024 movlb 4 ; select bank4 15559 18A0 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15560 15561 ;usb_device.c: 2145: } 15562 ;usb_device.c: 2147: if(RemoteWakeup == 1) 15563 15564 ;usb_device.c: 2142: if(0 == 1) 15565 18A1 0025 movlb 5 ; select bank5 15566 18A2 0B40 decfsz _RemoteWakeup^(0+640),w ;volatile 15567 18A3 28D7 goto i1l648 15568 15569 ;usb_device.c: 2148: { 15570 ;usb_device.c: 2149: CtrlTrfData[0]|=0x02; 15571 18A4 0020 movlb 0 ; select bank0 15572 18A5 14D8 bsf 88,1 ;volatile 15573 18A6 28D7 goto i1l648 15574 18A7 i1l649: 15575 ;usb_device.c: 2152: case (0x01): 15576 15577 15578 ;usb_device.c: 2153: inPipes[0].info.bits.busy = 1; 15579 18A7 0024 movlb 4 ; select bank4 15580 18A8 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15581 15582 ;usb_device.c: 2154: break; 15583 18A9 28D7 goto i1l648 15584 18AA i1l650: 15585 ;usb_device.c: 2155: case (0x02): 15586 15587 15588 ;usb_device.c: 2156: inPipes[0].info.bits.busy = 1; 15589 18AA 0024 movlb 4 ; select bank4 15590 18AB 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15591 15592 ;usb_device.c: 2160: { 15593 ;usb_device.c: 2161: BDT_ENTRY *p; 15594 ;usb_device.c: 2163: if(SetupPkt.EPDir == 0) 15595 18AC 0020 movlb 0 ; select bank0 15596 18AD 1BD4 btfsc 84,7 ;volatile 15597 18AE 28B4 goto i1l4999 15598 15599 ;usb_device.c: 2164: { 15600 ;usb_device.c: 2165: p = (BDT_ENTRY*)pBDTEntryOut[SetupPkt.EPNum]; 15601 18AF 0854 movf 84,w ;volatile 15602 18B0 390F andlw 15 15603 18B1 0709 addwf 9,w 15604 18B2 3EA7 addlw _pBDTEntryOut& (0+255) 15605 18B3 28B8 goto L41 15606 18B4 i1l4999: 15607 ;usb_device.c: 2166: } 15608 15609 15610 ;usb_device.c: 2167: else 15611 ;usb_device.c: 2168: { 15612 ;usb_device.c: 2169: p = (BDT_ENTRY*)pBDTEntryIn[SetupPkt.EPNum]; 15613 18B4 0854 movf 84,w ;volatile 15614 18B5 390F andlw 15 15615 18B6 0709 addwf 9,w 15616 18B7 3E57 addlw _pBDTEntryIn& (0+255) 15617 18B8 L41: 15618 18B8 0086 movwf 6 15619 18B9 3002 movlw 2 ; select bank4/5 15620 18BA 20E1 3198 fcall PL203 ;call to abstracted procedure 15621 18BC 00F1 movwf USBStdGetStatusHandler@p+1 15622 15623 ;usb_device.c: 2170: } 15624 ;usb_device.c: 2172: if((p->STAT.UOWN == 1) && (p->STAT.BSTALL == 1)) 15625 18BD 0870 movf USBStdGetStatusHandler@p,w 15626 18BE 0086 movwf 6 15627 18BF 0871 movf USBStdGetStatusHandler@p+1,w 15628 18C0 0087 movwf 7 15629 18C1 1F81 btfss 1,7 15630 18C2 28D7 goto i1l648 15631 18C3 0870 movf USBStdGetStatusHandler@p,w 15632 18C4 0086 movwf 6 15633 18C5 0871 movf USBStdGetStatusHandler@p+1,w 15634 18C6 0087 movwf 7 15635 18C7 1D01 btfss 1,2 15636 18C8 28D7 goto i1l648 15637 15638 ;usb_device.c: 2173: CtrlTrfData[0]=0x01; 15639 18C9 3001 movlw 1 15640 18CA 00D8 movwf 88 ;volatile 15641 18CB 28D7 goto i1l648 15642 18CC i1l5009: 15643 18CC 0850 movf 80,w ;volatile 15644 18CD 391F andlw 31 15645 15646 ; Switch size 1, requested type "space" 15647 ; Number of cases is 3, Range of values is 0 to 2 15648 ; switch strategies available: 15649 ; Name Instructions Cycles 15650 ; simple_byte 10 6 (average) 15651 ; direct_byte 12 6 (fixed) 15652 ; jumptable 260 6 (fixed) 15653 ; Chosen strategy is simple_byte 15654 18CE 1903 skipnz 15655 18CF 289F goto i1l645 15656 18D0 3A01 xorlw 1 ; case 1 15657 18D1 1903 skipnz 15658 18D2 28A7 goto i1l649 15659 18D3 3A03 xorlw 3 ; case 2 15660 18D4 1903 skipnz 15661 18D5 28AA goto i1l650 15662 18D6 28D7 goto i1l648 15663 18D7 i1l648: 15664 15665 ;usb_device.c: 2178: if(inPipes[0].info.bits.busy == 1) 15666 18D7 0024 movlb 4 ; select bank4 15667 18D8 1FEA btfss (_inPipes^(0+512)+2),7 ;volatile 15668 18D9 0008 return 15669 15670 ;usb_device.c: 2179: { 15671 ;usb_device.c: 2180: inPipes[0].pSrc.bRam = (uint8_t*)&CtrlTrfData; 15672 18DA 3058 movlw 88 15673 18DB 00E8 movwf _inPipes^(0+512) ;volatile 15674 18DC 01E9 clrf (_inPipes+1)^(0+512) ;volatile 15675 15676 ;usb_device.c: 2181: inPipes[0].info.bits.ctrl_trf_mem = 0x01; 15677 18DD 146A bsf (_inPipes^(0+512)+2),0 ;volatile 15678 15679 ;usb_device.c: 2182: inPipes[0].wCount.v[0] = 2; 15680 18DE 3002 movlw 2 15681 18DF 00EB movwf (_inPipes^(0+512)+3) ;volatile 15682 18E0 0008 return 15683 18E1 __end_of_USBStdGetStatusHandler: 15684 18E1 PL203: 15685 18E1 0087 movwf 7 15686 18E2 3F40 moviw [0]fsr1 15687 18E3 00F0 movwf USBStdGetStatusHandler@p 15688 18E4 3F41 moviw [1]fsr1 15689 18E5 0008 return 15690 18E6 __end_ofPL203: 15691 15692 psect text62 15693 1F17 __ptext62: 15694 ;; *************** function _USBStdGetDscHandler ***************** 15695 ;; Defined at: 15696 ;; line 2043 in file "../usb_device.c" 15697 ;; Parameters: Size Location Type 15698 ;; None 15699 ;; Auto vars: Size Location Type 15700 ;; None 15701 ;; Return value: Size Location Type 15702 ;; None void 15703 ;; Registers used: 15704 ;; wreg, fsr0l, fsr0h, status,2, status,0, pclath 15705 ;; Tracked objects: 15706 ;; On entry : 1A/0 15707 ;; On exit : 1B/0 15708 ;; Unchanged: 0/0 15709 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15710 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15711 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15712 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15713 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 15714 ;;Total ram usage: 2 bytes 15715 ;; Hardware stack levels used: 1 15716 ;; This function calls: 15717 ;; Nothing 15718 ;; This function is called by: 15719 ;; _USBCheckStdRequest 15720 ;; This function uses a non-reentrant model 15721 ;; 15722 15723 15724 ;psect for function _USBStdGetDscHandler 15725 1F17 _USBStdGetDscHandler: 15726 1F17 i1l4959: 15727 ;incstack = 0 15728 ; Regs used in _USBStdGetDscHandler: [wreg-fsr0h+status,2+status,0+pclath] 15729 15730 15731 ;usb_device.c: 2045: if(SetupPkt.bmRequestType == 0x80) 15732 1F17 0020 movlb 0 ; select bank0 15733 1F18 0850 movf 80,w ;volatile 15734 1F19 3A80 xorlw 128 15735 1F1A 1D03 skipz 15736 1F1B 0008 return 15737 15738 ;usb_device.c: 2046: { 15739 ;usb_device.c: 2047: inPipes[0].info.Val = 0x00 | 0x80 | 0x40; 15740 1F1C 30C0 movlw 192 15741 1F1D 0024 movlb 4 ; select bank4 15742 1F1E 00EA movwf (_inPipes^(0+512)+2) ;volatile 15743 15744 ;usb_device.c: 2049: switch(SetupPkt.bDescriptorType) 15745 1F1F 2F60 goto i1l4987 15746 1F20 i1l4963: 15747 15748 ;usb_device.c: 2055: inPipes[0].pSrc.bRom = (const uint8_t*)&device_dsc; 15749 1F20 30B5 movlw low (_device_dsc| (0+32768)) 15750 1F21 0024 movlb 4 ; select bank4 15751 1F22 00E8 movwf _inPipes^(0+512) ;volatile 15752 1F23 309E movlw high (_device_dsc| (0+32768)) 15753 1F24 00E9 movwf (_inPipes^(0+512)+1) ;volatile 15754 15755 ;usb_device.c: 2057: inPipes[0].wCount.Val = sizeof(device_dsc); 15756 1F25 3012 movlw 18 15757 1F26 00EB movwf (_inPipes^(0+512)+3) ;volatile 15758 1F27 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 15759 15760 ;usb_device.c: 2058: break; 15761 1F28 0008 return 15762 1F29 i1l4965: 15763 15764 ;usb_device.c: 2063: if(SetupPkt.bDscIndex < 1) 15765 1F29 0852 movf 82,w ;volatile 15766 1F2A 1D03 skipz 15767 1F2B 2F44 goto i1l4973 15768 15769 ;usb_device.c: 2064: { 15770 ;usb_device.c: 2068: inPipes[0].pSrc.bRom = *(USB_CD_Ptr+SetupPkt.bDscIndex); 15771 1F2C 0852 movf 82,w ;volatile 15772 1F2D 00F0 movwf ??_USBStdGetDscHandler 15773 1F2E 3018 movlw low (_USB_CD_Ptr| (0+32768)) 15774 1F2F 277C 319F fcall PL189 ;call to abstracted procedure 15775 1F31 309E movlw high (_USB_CD_Ptr| (0+32768)) 15776 1F32 276D 319F fcall PL167 ;call to abstracted procedure 15777 15778 ;usb_device.c: 2074: inPipes[0].wCount.byte.LB = *(inPipes[0].pSrc.bRom+2); 15779 1F34 0869 movf (_inPipes+1)^(0+512),w ;volatile 15780 1F35 00F1 movwf ??_USBStdGetDscHandler+1 15781 1F36 0868 movf _inPipes^(0+512),w ;volatile 15782 1F37 00F0 movwf ??_USBStdGetDscHandler 15783 1F38 3E02 addlw 2 15784 1F39 2775 319F fcall PL179 ;call to abstracted procedure 15785 1F3B 00EB movwf (_inPipes^(0+512)+3) ;volatile 15786 15787 ;usb_device.c: 2075: inPipes[0].wCount.byte.HB = *(inPipes[0].pSrc.bRom+3); 15788 1F3C 0869 movf (_inPipes+1)^(0+512),w ;volatile 15789 1F3D 00F1 movwf ??_USBStdGetDscHandler+1 15790 1F3E 0868 movf _inPipes^(0+512),w ;volatile 15791 1F3F 00F0 movwf ??_USBStdGetDscHandler 15792 1F40 3E03 addlw 3 15793 1F41 2775 fcall PL179 ;call to abstracted procedure 15794 1F42 00EC movwf (_inPipes^(0+512)+4) ;volatile 15795 15796 ;usb_device.c: 2076: } 15797 1F43 0008 return 15798 1F44 i1l4973: 15799 15800 ;usb_device.c: 2077: else 15801 ;usb_device.c: 2078: { 15802 ;usb_device.c: 2079: inPipes[0].info.Val = 0; 15803 1F44 0024 movlb 4 ; select bank4 15804 1F45 01EA clrf (_inPipes^(0+512)+2) ;volatile 15805 1F46 0008 return 15806 1F47 i1l4975: 15807 15808 ;usb_device.c: 2086: if(SetupPkt.bDscIndex<3) 15809 1F47 3003 movlw 3 15810 1F48 0252 subwf 82,w ;volatile 15811 1F49 1803 skipnc 15812 1F4A 2F5A goto i1l4981 15813 15814 ;usb_device.c: 2087: { 15815 ;usb_device.c: 2089: inPipes[0].pSrc.bRom = *(USB_SD_Ptr+SetupPkt.bDscIndex); 15816 1F4B 0852 movf 82,w ;volatile 15817 1F4C 00F0 movwf ??_USBStdGetDscHandler 15818 1F4D 3012 movlw low (_USB_SD_Ptr| (0+32768)) 15819 1F4E 277C 319F fcall PL189 ;call to abstracted procedure 15820 1F50 309E movlw high (_USB_SD_Ptr| (0+32768)) 15821 1F51 276D fcall PL167 ;call to abstracted procedure 15822 15823 ;usb_device.c: 2091: inPipes[0].wCount.Val = *inPipes[0].pSrc.bRom; 15824 1F52 0868 movf _inPipes^(0+512),w ;volatile 15825 1F53 0084 movwf 4 15826 1F54 0869 movf (_inPipes+1)^(0+512),w ;volatile 15827 1F55 0085 movwf 5 15828 1F56 0800 movf 0,w ;code access 15829 1F57 00EB movwf (_inPipes^(0+512)+3) ;volatile 15830 1F58 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 15831 15832 ;usb_device.c: 2092: } 15833 1F59 0008 return 15834 1F5A i1l4981: 15835 15836 ;usb_device.c: 2102: else 15837 ;usb_device.c: 2103: { 15838 ;usb_device.c: 2104: inPipes[0].info.Val = 0; 15839 1F5A 0024 movlb 4 ; select bank4 15840 1F5B 01EA clrf (_inPipes^(0+512)+2) ;volatile 15841 1F5C 0008 return 15842 1F5D i1l4983: 15843 15844 ;usb_device.c: 2108: inPipes[0].info.Val = 0; 15845 1F5D 0024 movlb 4 ; select bank4 15846 1F5E 01EA clrf (_inPipes^(0+512)+2) ;volatile 15847 15848 ;usb_device.c: 2109: break; 15849 1F5F 0008 return 15850 1F60 i1l4987: 15851 1F60 0020 movlb 0 ; select bank0 15852 1F61 0853 movf 83,w ;volatile 15853 15854 ; Switch size 1, requested type "space" 15855 ; Number of cases is 3, Range of values is 1 to 3 15856 ; switch strategies available: 15857 ; Name Instructions Cycles 15858 ; simple_byte 10 6 (average) 15859 ; direct_byte 15 9 (fixed) 15860 ; jumptable 263 9 (fixed) 15861 ; Chosen strategy is simple_byte 15862 1F62 3A01 xorlw 1 ; case 1 15863 1F63 1903 skipnz 15864 1F64 2F20 goto i1l4963 15865 1F65 3A03 xorlw 3 ; case 2 15866 1F66 1903 skipnz 15867 1F67 2F29 goto i1l4965 15868 1F68 3A01 xorlw 1 ; case 3 15869 1F69 1903 skipnz 15870 1F6A 2F47 goto i1l4975 15871 1F6B 2F5D goto i1l4983 15872 1F6C 0008 return 15873 1F6D __end_of_USBStdGetDscHandler: 15874 1F6D PL167: 15875 1F6D 3D71 addwfc ??_USBStdGetDscHandler+1,w 15876 1F6E 0085 movwf 5 15877 1F6F 3F00 moviw [0]fsr0 15878 1F70 0024 movlb 4 ; select bank4 15879 1F71 00E8 movwf _inPipes^(0+512) ;volatile 15880 1F72 3F01 moviw [1]fsr0 15881 1F73 00E9 movwf (_inPipes+1)^(0+512) ;volatile 15882 1F74 0008 return 15883 1F75 __end_ofPL167: 15884 1F75 PL179: 15885 1F75 0084 movwf 4 15886 1F76 0871 movf ??_USBStdGetDscHandler+1,w 15887 1F77 1803 skipnc 15888 1F78 0A71 incf ??_USBStdGetDscHandler+1,w 15889 1F79 0085 movwf 5 15890 1F7A 0800 movf 0,w ;code access 15891 1F7B 0008 return 15892 1F7C __end_ofPL179: 15893 1F7C PL189: 15894 1F7C 01F1 clrf ??_USBStdGetDscHandler+1 15895 1F7D 35F0 lslf ??_USBStdGetDscHandler,f 15896 1F7E 0DF1 rlf ??_USBStdGetDscHandler+1,f 15897 1F7F 0770 addwf ??_USBStdGetDscHandler,w 15898 1F80 0084 movwf 4 15899 1F81 0008 return 15900 1F82 __end_ofPL189: 15901 15902 psect text65 15903 18E6 __ptext65: 15904 ;; *************** function _USBCheckCDCRequest ***************** 15905 ;; Defined at: 15906 ;; line 147 in file "../usb_device_cdc.c" 15907 ;; Parameters: Size Location Type 15908 ;; None 15909 ;; Auto vars: Size Location Type 15910 ;; None 15911 ;; Return value: Size Location Type 15912 ;; None void 15913 ;; Registers used: 15914 ;; wreg, fsr0l, fsr0h, status,2, status,0 15915 ;; Tracked objects: 15916 ;; On entry : 1F/0 15917 ;; On exit : 1A/0 15918 ;; Unchanged: 0/0 15919 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 15920 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15921 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15922 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15923 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 15924 ;;Total ram usage: 0 bytes 15925 ;; Hardware stack levels used: 1 15926 ;; This function calls: 15927 ;; Nothing 15928 ;; This function is called by: 15929 ;; _USER_USB_CALLBACK_EVENT_HANDLER 15930 ;; This function uses a non-reentrant model 15931 ;; 15932 15933 15934 ;psect for function _USBCheckCDCRequest 15935 18E6 _USBCheckCDCRequest: 15936 18E6 i1l4665: 15937 ;incstack = 0 15938 ; Regs used in _USBCheckCDCRequest: [wreg-fsr0h+status,2+status,0] 15939 15940 15941 ;usb_device_cdc.c: 152: if(SetupPkt.Recipient != (0x01)) return; 15942 18E6 0850 movf 80,w ;volatile 15943 18E7 391F andlw 31 15944 18E8 3A01 xorlw 1 15945 18E9 1D03 btfss 3,2 15946 18EA 0008 return 15947 15948 ;usb_device_cdc.c: 157: if(SetupPkt.RequestType != (0x20>>5)) return; 15949 18EB 0E50 swapf 80,w ;volatile 15950 18EC 0C89 rrf 9,f 15951 18ED 3903 andlw 3 15952 18EE 3A01 xorlw 1 15953 18EF 1D03 btfss 3,2 15954 18F0 0008 return 15955 15956 ;usb_device_cdc.c: 163: if((SetupPkt.bIntfID != 0x0)&& 15957 ;usb_device_cdc.c: 164: (SetupPkt.bIntfID != 0x01)) return; 15958 18F1 0854 movf 84,w ;volatile 15959 18F2 1903 btfsc 3,2 15960 18F3 2920 goto i1l4711 15961 18F4 0354 decf 84,w ;volatile 15962 18F5 1D03 btfss 3,2 15963 18F6 0008 return 15964 18F7 2920 goto i1l4711 15965 18F8 i1l4679: 15966 15967 ;usb_device_cdc.c: 171: inPipes[0].pSrc.bRam = (uint8_t*)&dummy_encapsulated_cmd_respons + e; 15968 18F8 2132 fcall PL193 ;call to abstracted procedure 15969 15970 ;usb_device_cdc.c: 172: inPipes[0].wCount.Val = 0x08; 15971 18F9 3008 movlw 8 15972 18FA 00EB movwf (_inPipes^(0+512)+3) ;volatile 15973 18FB 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 15974 15975 ;usb_device_cdc.c: 173: inPipes[0].info.bits.ctrl_trf_mem = 0x01; 15976 18FC 146A bsf (_inPipes^(0+512)+2),0 ;volatile 15977 15978 ;usb_device_cdc.c: 174: inPipes[0].info.bits.busy = 1; 15979 18FD 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15980 15981 ;usb_device_cdc.c: 175: break; 15982 18FE 0008 return 15983 18FF i1l4687: 15984 15985 ;usb_device_cdc.c: 178: inPipes[0].pSrc.bRam = (uint8_t*)&dummy_encapsulated_cmd_respons + e; 15986 18FF 2132 fcall PL193 ;call to abstracted procedure 15987 15988 ;usb_device_cdc.c: 179: inPipes[0].info.bits.busy = 1; 15989 1900 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 15990 15991 ;usb_device_cdc.c: 180: break; 15992 1901 0008 return 15993 1902 i1l4691: 15994 15995 ;usb_device_cdc.c: 185: outPipes[0].wCount.Val = SetupPkt.wLength; 15996 1902 0857 movf 87,w ;volatile 15997 1903 0025 movlb 5 ; select bank5 15998 1904 01A4 clrf ((_outPipes+1)^(0+640)+3) ;volatile 15999 1905 07A4 addwf ((_outPipes+1)^(0+640)+3),f ;volatile 16000 1906 0020 movlb 0 ; select bank0 16001 1907 0856 movf 86,w ;volatile 16002 1908 0025 movlb 5 ; select bank5 16003 1909 01A3 clrf (_outPipes^(0+640)+3) ;volatile 16004 190A 07A3 addwf (_outPipes^(0+640)+3),f ;volatile 16005 16006 ;usb_device_cdc.c: 186: outPipes[0].pDst.bRam = (uint8_t*)&line_coding._byte[0]; 16007 190B 30DC movlw _line_coding& (0+255) 16008 190C 00A0 movwf _outPipes^(0+640) ;volatile 16009 16010 ;usb_device_cdc.c: 187: outPipes[0].pFunc = (0); 16011 190D 01A5 clrf (_outPipes+5)^(0+640) ;volatile 16012 190E 01A6 clrf (_outPipes+6)^(0+640) ;volatile 16013 16014 ;usb_device_cdc.c: 188: outPipes[0].info.bits.busy = 1; 16015 190F 17A2 bsf (_outPipes^(0+640)+2),7 ;volatile 16016 16017 ;usb_device_cdc.c: 189: break; 16018 1910 0008 return 16019 1911 i1l4699: 16020 16021 ;usb_device_cdc.c: 192: { inPipes[0].pSrc.bRam = (uint8_t*)&line_coding; inPipes[0].wCou + nt.Val = 0x07; inPipes[0].info.Val = 0x40 | 0x80 | 0x01; }; 16022 1911 30DC movlw low _line_coding 16023 1912 0024 movlb 4 ; select bank4 16024 1913 00E8 movwf _inPipes^(0+512) ;volatile 16025 1914 3002 movlw high _line_coding 16026 1915 00E9 movwf (_inPipes+1)^(0+512) ;volatile 16027 1916 3007 movlw 7 16028 1917 00EB movwf (_inPipes^(0+512)+3) ;volatile 16029 1918 01EC clrf ((_inPipes+1)^(0+512)+3) ;volatile 16030 1919 30C1 movlw 193 16031 191A 00EA movwf (_inPipes^(0+512)+2) ;volatile 16032 16033 ;usb_device_cdc.c: 196: break; 16034 191B 0008 return 16035 191C i1l4705: 16036 16037 ;usb_device_cdc.c: 199: control_signal_bitmap._byte = (uint8_t)SetupPkt.wValue; 16038 191C 0852 movf 82,w ;volatile 16039 16040 ;usb_device_cdc.c: 231: inPipes[0].info.bits.busy = 1; 16041 191D 0024 movlb 4 ; select bank4 16042 191E 17EA bsf (_inPipes^(0+512)+2),7 ;volatile 16043 16044 ;usb_device_cdc.c: 232: break; 16045 191F 0008 return 16046 1920 i1l4711: 16047 1920 0851 movf 81,w ;volatile 16048 16049 ; Switch size 1, requested type "space" 16050 ; Number of cases is 5, Range of values is 0 to 34 16051 ; switch strategies available: 16052 ; Name Instructions Cycles 16053 ; simple_byte 16 9 (average) 16054 ; direct_byte 76 6 (fixed) 16055 ; jumptable 260 6 (fixed) 16056 ; Chosen strategy is simple_byte 16057 1921 3A00 xorlw 0 ; case 0 16058 1922 1903 skipnz 16059 1923 28F8 goto i1l4679 16060 1924 3A01 xorlw 1 ; case 1 16061 1925 1903 skipnz 16062 1926 28FF goto i1l4687 16063 1927 3A21 xorlw 33 ; case 32 16064 1928 1903 skipnz 16065 1929 2902 goto i1l4691 16066 192A 3A01 xorlw 1 ; case 33 16067 192B 1903 skipnz 16068 192C 2911 goto i1l4699 16069 192D 3A03 xorlw 3 ; case 34 16070 192E 1903 skipnz 16071 192F 291C goto i1l4705 16072 1930 2931 goto i1l285 16073 1931 i1l285: 16074 1931 0008 return 16075 1932 __end_of_USBCheckCDCRequest: 16076 1932 PL193: 16077 1932 3035 movlw low _dummy_encapsulated_cmd_response 16078 1933 0024 movlb 4 ; select bank4 16079 1934 00E8 movwf _inPipes^(0+512) ;volatile 16080 1935 3003 movlw high _dummy_encapsulated_cmd_response 16081 1936 00E9 movwf (_inPipes+1)^(0+512) ;volatile 16082 1937 0008 return 16083 1938 __end_ofPL193: 16084 16085 psect text66 16086 1D1B __ptext66: 16087 ;; *************** function _CDCInitEP ***************** 16088 ;; Defined at: 16089 ;; line 294 in file "../usb_device_cdc.c" 16090 ;; Parameters: Size Location Type 16091 ;; None 16092 ;; Auto vars: Size Location Type 16093 ;; None 16094 ;; Return value: Size Location Type 16095 ;; None void 16096 ;; Registers used: 16097 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 16098 ;; Tracked objects: 16099 ;; On entry : 1F/0 16100 ;; On exit : 1F/4 16101 ;; Unchanged: 0/0 16102 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 16103 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 16104 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 16105 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 16106 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 16107 ;;Total ram usage: 0 bytes 16108 ;; Hardware stack levels used: 1 16109 ;; Hardware stack levels required when called: 2 16110 ;; This function calls: 16111 ;; _USBEnableEndpoint 16112 ;; i1_USBTransferOnePacket 16113 ;; This function is called by: 16114 ;; _USER_USB_CALLBACK_EVENT_HANDLER 16115 ;; This function uses a non-reentrant model 16116 ;; 16117 16118 16119 ;psect for function _CDCInitEP 16120 1D1B _CDCInitEP: 16121 16122 ;usb_device_cdc.c: 297: line_coding.dwDTERate = 19200; 16123 16124 ;incstack = 0 16125 ; Regs used in _CDCInitEP: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 16126 1D1B 0025 movlb 5 ; select bank5 16127 1D1C 304B movlw 75 16128 1D1D 01DF clrf (_line_coding+3)^(0+640) 16129 1D1E 01DE clrf (_line_coding+2)^(0+640) 16130 1D1F 00DD movwf (_line_coding+1)^(0+640) 16131 1D20 3008 movlw 8 16132 1D21 01DC clrf _line_coding^(0+640) 16133 16134 ;usb_device_cdc.c: 298: line_coding.bCharFormat = 0x00; 16135 1D22 01E0 clrf (_line_coding^(0+640)+4) 16136 1D23 01E1 clrf (_line_coding^(0+640)+5) 16137 16138 ;usb_device_cdc.c: 300: line_coding.bDataBits = 0x08; 16139 1D24 00E2 movwf (_line_coding^(0+640)+6) 16140 1D25 301A movlw 26 16141 16142 ;usb_device_cdc.c: 302: cdc_rx_len = 0; 16143 1D26 01CB clrf _cdc_rx_len^(0+640) 16144 16145 ;usb_device_cdc.c: 315: USBEnableEndpoint(1,0x02|0x10|0x08); 16146 1D27 00F4 movwf USBEnableEndpoint@options 16147 1D28 3001 movlw 1 16148 1D29 2545 319D fcall _USBEnableEndpoint 16149 16150 ;usb_device_cdc.c: 316: USBEnableEndpoint(2,0x02|0x04|0x10|0x08); 16151 1D2B 301E movlw 30 16152 1D2C 00F4 movwf USBEnableEndpoint@options 16153 1D2D 3002 movlw 2 16154 1D2E 2545 319D fcall _USBEnableEndpoint 16155 1D30 3020 movlw 32 16156 16157 ;usb_device_cdc.c: 318: CDCDataOutHandle = USBTransferOnePacket(2,0,(uint8_t*)&cdc_data_ + rx,sizeof(cdc_data_rx)); 16158 1D31 01F0 clrf i1USBTransferOnePacket@dir 16159 1D32 00F1 movwf i1USBTransferOnePacket@data 16160 1D33 3001 movlw 1 16161 1D34 00F2 movwf i1USBTransferOnePacket@data+1 16162 1D35 3040 movlw 64 16163 1D36 00F3 movwf i1USBTransferOnePacket@len 16164 1D37 3002 movlw 2 16165 1D38 2587 fcall i1_USBTransferOnePacket 16166 1D39 0871 movf ?i1_USBTransferOnePacket+1,w 16167 1D3A 0025 movlb 5 ; select bank5 16168 1D3B 01B6 clrf (_CDCDataOutHandle+1)^(0+640) 16169 1D3C 07B6 addwf (_CDCDataOutHandle+1)^(0+640),f 16170 1D3D 0870 movf ?i1_USBTransferOnePacket,w 16171 1D3E 01B5 clrf _CDCDataOutHandle^(0+640) 16172 1D3F 07B5 addwf _CDCDataOutHandle^(0+640),f 16173 16174 ;usb_device_cdc.c: 319: CDCDataInHandle = (0); 16175 1D40 01B3 clrf _CDCDataInHandle^(0+640) 16176 1D41 01B4 clrf (_CDCDataInHandle+1)^(0+640) 16177 16178 ;usb_device_cdc.c: 346: cdc_trf_state = 0; 16179 1D42 0024 movlb 4 ; select bank4 16180 1D43 01E1 clrf _cdc_trf_state^(0+512) 16181 1D44 0008 return 16182 1D45 __end_of_CDCInitEP: 16183 1D45 __ptext68: 16184 ;; *************** function _USBEnableEndpoint ***************** 16185 ;; Defined at: 16186 ;; line 878 in file "../usb_device.c" 16187 ;; Parameters: Size Location Type 16188 ;; ep 1 wreg unsigned char 16189 ;; options 1 4[COMMON] unsigned char 16190 ;; Auto vars: Size Location Type 16191 ;; ep 1 9[COMMON] unsigned char 16192 ;; p 2 7[COMMON] PTR unsigned char 16193 ;; -> UEP0(1), 16194 ;; Return value: Size Location Type 16195 ;; None void 16196 ;; Registers used: 16197 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack 16198 ;; Tracked objects: 16199 ;; On entry : 0/5 16200 ;; On exit : 0/0 16201 ;; Unchanged: 0/0 16202 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 16203 ;; Params: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 16204 ;; Locals: 3 0 0 0 0 0 0 0 0 0 0 0 +0 0 16205 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 16206 ;; Totals: 6 0 0 0 0 0 0 0 0 0 0 0 +0 0 16207 ;;Total ram usage: 6 bytes 16208 ;; Hardware stack levels used: 1 16209 ;; Hardware stack levels required when called: 1 16210 ;; This function calls: 16211 ;; _USBConfigureEndpoint 16212 ;; This function is called by: 16213 ;; _CDCInitEP 16214 ;; This function uses a non-reentrant model 16215 ;; 16216 16217 16218 ;psect for function _USBEnableEndpoint 16219 1D45 _USBEnableEndpoint: 16220 16221 ;incstack = 0 16222 ; Regs used in _USBEnableEndpoint: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] 16223 ;USBEnableEndpoint@ep stored from wreg 16224 1D45 00F9 movwf USBEnableEndpoint@ep 16225 16226 ;usb_device.c: 880: unsigned char* p; 16227 ;usb_device.c: 884: if(options & 0x04) 16228 1D46 1D74 btfss USBEnableEndpoint@options,2 16229 1D47 2D4B goto i1l4621 16230 16231 ;usb_device.c: 885: { 16232 ;usb_device.c: 886: USBConfigureEndpoint(ep, 0); 16233 1D48 01F0 clrf USBConfigureEndpoint@direction 16234 1D49 2562 319D fcall _USBConfigureEndpoint 16235 1D4B i1l4621: 16236 16237 ;usb_device.c: 887: } 16238 ;usb_device.c: 888: if(options & 0x02) 16239 1D4B 1CF4 btfss USBEnableEndpoint@options,1 16240 1D4C 2D51 goto i1l4625 16241 16242 ;usb_device.c: 889: { 16243 ;usb_device.c: 890: USBConfigureEndpoint(ep, 1); 16244 1D4D 01F0 clrf USBConfigureEndpoint@direction 16245 1D4E 0AF0 incf USBConfigureEndpoint@direction,f 16246 1D4F 0879 movf USBEnableEndpoint@ep,w 16247 1D50 2562 fcall _USBConfigureEndpoint 16248 1D51 i1l4625: 16249 16250 ;usb_device.c: 891: } 16251 ;usb_device.c: 899: p = (unsigned char*)(&UEP0+ep); 16252 1D51 0879 movf USBEnableEndpoint@ep,w 16253 1D52 3E98 addlw 152 16254 1D53 00F5 movwf ??_USBEnableEndpoint 16255 1D54 300E movlw 14 16256 1D55 01F6 clrf ??_USBEnableEndpoint+1 16257 1D56 3DF6 addwfc ??_USBEnableEndpoint+1,f 16258 1D57 0875 movf ??_USBEnableEndpoint,w 16259 1D58 00F7 movwf USBEnableEndpoint@p 16260 1D59 0876 movf ??_USBEnableEndpoint+1,w 16261 1D5A 00F8 movwf USBEnableEndpoint@p+1 16262 16263 ;usb_device.c: 901: *p = options; 16264 1D5B 0877 movf USBEnableEndpoint@p,w 16265 1D5C 0086 movwf 6 16266 1D5D 0878 movf USBEnableEndpoint@p+1,w 16267 1D5E 0087 movwf 7 16268 1D5F 0874 movf USBEnableEndpoint@options,w 16269 1D60 0081 movwf 1 16270 1D61 0008 return 16271 1D62 __end_of_USBEnableEndpoint: 16272 1D62 __ptext69: 16273 ;; *************** function _USBConfigureEndpoint ***************** 16274 ;; Defined at: 16275 ;; line 1543 in file "../usb_device.c" 16276 ;; Parameters: Size Location Type 16277 ;; EPNum 1 wreg unsigned char 16278 ;; direction 1 0[COMMON] unsigned char 16279 ;; Auto vars: Size Location Type 16280 ;; EPNum 1 2[COMMON] unsigned char 16281 ;; handle 1 3[COMMON] PTR volatile struct __BD 16282 ;; -> BDT(48), 16283 ;; Return value: Size Location Type 16284 ;; None void 16285 ;; Registers used: 16286 ;; wreg, fsr1l, fsr1h, status,2, status,0 16287 ;; Tracked objects: 16288 ;; On entry : 0/5 16289 ;; On exit : 0/0 16290 ;; Unchanged: 0/0 16291 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 16292 ;; Params: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 16293 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 +0 0 16294 ;; Temps: 1 0 0 0 0 0 0 0 0 0 0 0 +0 0 16295 ;; Totals: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 16296 ;;Total ram usage: 4 bytes 16297 ;; Hardware stack levels used: 1 16298 ;; This function calls: 16299 ;; Nothing 16300 ;; This function is called by: 16301 ;; _USBEnableEndpoint 16302 ;; This function uses a non-reentrant model 16303 ;; 16304 16305 16306 ;psect for function _USBConfigureEndpoint 16307 1D62 _USBConfigureEndpoint: 16308 16309 ;incstack = 0 16310 ; Regs used in _USBConfigureEndpoint: [wreg+fsr1l+fsr1h+status,2+status,0] 16311 ;USBConfigureEndpoint@EPNum stored from wreg 16312 1D62 00F2 movwf USBConfigureEndpoint@EPNum 16313 16314 ;usb_device.c: 1545: volatile BDT_ENTRY* handle; 16315 ;usb_device.c: 1549: handle = (volatile BDT_ENTRY*)&BDT[0]; 16316 1D63 3020 movlw 32 16317 1D64 00F3 movwf USBConfigureEndpoint@handle 16318 16319 ;usb_device.c: 1550: handle += (4*EPNum+2*direction+0u); 16320 1D65 0870 movf USBConfigureEndpoint@direction,w 16321 1D66 00F1 movwf ??_USBConfigureEndpoint 16322 1D67 35F1 lslf ??_USBConfigureEndpoint,f 16323 1D68 0872 movf USBConfigureEndpoint@EPNum,w 16324 1D69 0709 addwf 9,w 16325 1D6A 0709 addwf 9,w 16326 1D6B 0771 addwf ??_USBConfigureEndpoint,w 16327 1D6C 0709 addwf 9,w 16328 1D6D 0709 addwf 9,w 16329 1D6E 07F3 addwf USBConfigureEndpoint@handle,f 16330 16331 ;usb_device.c: 1552: handle->STAT.UOWN = 0; 16332 1D6F 0873 movf USBConfigureEndpoint@handle,w 16333 1D70 0086 movwf 6 16334 1D71 0187 clrf 7 16335 1D72 1381 bcf 1,7 16336 16337 ;usb_device.c: 1557: if(direction == 0) 16338 1D73 08F0 movf USBConfigureEndpoint@direction,f 16339 1D74 1D03 skipz 16340 1D75 2D79 goto i1l4611 16341 16342 ;usb_device.c: 1558: { 16343 ;usb_device.c: 1559: pBDTEntryOut[EPNum] = handle; 16344 1D76 3572 lslf USBConfigureEndpoint@EPNum,w 16345 1D77 3EA7 addlw _pBDTEntryOut& (0+255) 16346 1D78 2D7B goto L42 16347 1D79 i1l4611: 16348 ;usb_device.c: 1560: } 16349 16350 16351 ;usb_device.c: 1561: else 16352 ;usb_device.c: 1562: { 16353 ;usb_device.c: 1563: pBDTEntryIn[EPNum] = handle; 16354 1D79 3572 lslf USBConfigureEndpoint@EPNum,w 16355 1D7A 3E57 addlw _pBDTEntryIn& (0+255) 16356 1D7B L42: 16357 1D7B 0086 movwf 6 16358 1D7C 3002 movlw 2 ; select bank4/5 16359 1D7D 25F3 fcall PL195 ;call to abstracted procedure 16360 16361 ;usb_device.c: 1564: } 16362 ;usb_device.c: 1567: handle->STAT.DTS = 0; 16363 1D7E 0873 movf USBConfigureEndpoint@handle,w 16364 1D7F 0086 movwf 6 16365 1D80 0187 clrf 7 16366 1D81 1301 bcf 1,6 16367 16368 ;usb_device.c: 1568: (handle+1)->STAT.DTS = 1; 16369 1D82 0873 movf USBConfigureEndpoint@handle,w 16370 1D83 3E04 addlw 4 16371 1D84 0086 movwf 6 16372 1D85 1701 bsf 1,6 16373 1D86 0008 return 16374 1D87 __end_of_USBConfigureEndpoint: 16375 1D87 __ptext67: 16376 ;; *************** function i1_USBTransferOnePacket ***************** 16377 ;; Defined at: 16378 ;; line 995 in file "../usb_device.c" 16379 ;; Parameters: Size Location Type 16380 ;; ep 1 wreg unsigned char 16381 ;; dir 1 0[COMMON] unsigned char 16382 ;; data 2 1[COMMON] PTR unsigned char 16383 ;; -> cdc_data_tx(64), NULL(0), cdc_data_rx(64), 16384 ;; len 1 3[COMMON] unsigned char 16385 ;; Auto vars: Size Location Type 16386 ;; ep 1 8[COMMON] unsigned char 16387 ;; USBTransferO 2 9[COMMON] PTR volatile struct __BD 16388 ;; -> RAM(4096), BDT(48), NULL(0), 16389 ;; Return value: Size Location Type 16390 ;; 2 0[COMMON] PTR void 16391 ;; Registers used: 16392 ;; wreg, fsr1l, fsr1h, status,2, status,0 16393 ;; Tracked objects: 16394 ;; On entry : 0/5 16395 ;; On exit : 0/0 16396 ;; Unchanged: 0/0 16397 ;; Data sizes: COMMON BANK0h BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 +1 BANK12 16398 ;; Params: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 16399 ;; Locals: 3 0 0 0 0 0 0 0 0 0 0 0 +0 0 16400 ;; Temps: 4 0 0 0 0 0 0 0 0 0 0 0 +0 0 16401 ;; Totals: 11 0 0 0 0 0 0 0 0 0 0 0 +0 0 16402 ;;Total ram usage: 11 bytes 16403 ;; Hardware stack levels used: 1 16404 ;; This function calls: 16405 ;; Nothing 16406 ;; This function is called by: 16407 ;; _CDCInitEP 16408 ;; This function uses a non-reentrant model 16409 ;; 16410 16411 16412 ;psect for function i1_USBTransferOnePacket 16413 1D87 i1_USBTransferOnePacket: 16414 16415 ;incstack = 0 16416 ; Regs used in i1_USBTransferOnePacket: [wreg+fsr1l+fsr1h+status,2+status,0] 16417 ;i1USBTransferOnePacket@ep stored from wreg 16418 1D87 00F8 movwf i1USBTransferOnePacket@ep 16419 16420 ;usb_device.c: 997: volatile BDT_ENTRY* handle; 16421 ;usb_device.c: 1000: if(dir != 0) 16422 1D88 0870 movf i1USBTransferOnePacket@dir,w 16423 1D89 1903 btfsc 3,2 16424 1D8A 2D90 goto i1l4633 16425 16426 ;usb_device.c: 1001: { 16427 ;usb_device.c: 1003: handle = pBDTEntryIn[ep]; 16428 1D8B 3578 lslf i1USBTransferOnePacket@ep,w 16429 1D8C 3E57 addlw _pBDTEntryIn& (0+255) 16430 1D8D 0086 movwf 6 16431 1D8E 3002 movlw 2 ; select bank4/5 16432 1D8F 2D92 goto L43 16433 1D90 i1l4633: 16434 ;usb_device.c: 1004: } 16435 16436 16437 ;usb_device.c: 1005: else 16438 ;usb_device.c: 1006: { 16439 ;usb_device.c: 1008: handle = pBDTEntryOut[ep]; 16440 1D90 25E9 319D fcall PL173 ;call to abstracted procedure 16441 1D92 L43: 16442 1D92 25F9 319D fcall PL207 ;call to abstracted procedure 16443 1D94 00FA movwf i1USBTransferOnePacket@handle+1 16444 16445 ;usb_device.c: 1009: } 16446 ;usb_device.c: 1013: if(handle == 0) 16447 1D95 0479 iorwf i1USBTransferOnePacket@handle,w 16448 1D96 1D03 skipz 16449 1D97 2D9B goto i1l4641 16450 16451 ;usb_device.c: 1014: { 16452 ;usb_device.c: 1015: return 0; 16453 1D98 01F0 clrf ?i1_USBTransferOnePacket 16454 1D99 01F1 clrf ?i1_USBTransferOnePacket+1 16455 1D9A 0008 return 16456 1D9B i1l4641: 16457 16458 ;usb_device.c: 1016: } 16459 ;usb_device.c: 1029: handle->ADR = (((uint16_t)(data)) & 0x7FFF); 16460 1D9B 0871 movf i1USBTransferOnePacket@data,w 16461 1D9C 00F4 movwf ??i1_USBTransferOnePacket 16462 1D9D 307F movlw 127 16463 1D9E 0572 andwf i1USBTransferOnePacket@data+1,w 16464 1D9F 00F5 movwf ??i1_USBTransferOnePacket+1 16465 1DA0 0879 movf i1USBTransferOnePacket@handle,w 16466 1DA1 0086 movwf 6 16467 1DA2 087A movf i1USBTransferOnePacket@handle+1,w 16468 1DA3 0087 movwf 7 16469 1DA4 3142 addfsr 1,2 16470 1DA5 0874 movf ??i1_USBTransferOnePacket,w 16471 1DA6 3FC0 movwi [0]fsr1 16472 1DA7 0875 movf ??i1_USBTransferOnePacket+1,w 16473 1DA8 3FC1 movwi [1]fsr1 16474 16475 ;usb_device.c: 1030: handle->CNT = len; 16476 1DA9 0879 movf i1USBTransferOnePacket@handle,w 16477 1DAA 3E01 addlw 1 16478 1DAB 00F4 movwf ??i1_USBTransferOnePacket 16479 1DAC 3000 movlw 0 16480 1DAD 3D7A addwfc i1USBTransferOnePacket@handle+1,w 16481 1DAE 00F5 movwf ??i1_USBTransferOnePacket+1 16482 1DAF 0874 movf ??i1_USBTransferOnePacket,w 16483 1DB0 0086 movwf 6 16484 1DB1 0875 movf ??i1_USBTransferOnePacket+1,w 16485 1DB2 0087 movwf 7 16486 1DB3 0873 movf i1USBTransferOnePacket@len,w 16487 1DB4 0081 movwf 1 16488 16489 ;usb_device.c: 1031: handle->STAT.Val &= 0x40; 16490 1DB5 0879 movf i1USBTransferOnePacket@handle,w 16491 1DB6 0086 movwf 6 16492 1DB7 087A movf i1USBTransferOnePacket@handle+1,w 16493 1DB8 0087 movwf 7 16494 1DB9 3040 movlw 64 16495 1DBA 0581 andwf 1,f 16496 16497 ;usb_device.c: 1032: handle->STAT.Val |= (0x08 & 0x08); 16498 1DBB 0879 movf i1USBTransferOnePacket@handle,w 16499 1DBC 0086 movwf 6 16500 1DBD 087A movf i1USBTransferOnePacket@handle+1,w 16501 1DBE 0087 movwf 7 16502 1DBF 1581 bsf 1,3 16503 16504 ;usb_device.c: 1033: handle->STAT.Val |= 0x80; 16505 1DC0 0879 movf i1USBTransferOnePacket@handle,w 16506 1DC1 0086 movwf 6 16507 1DC2 087A movf i1USBTransferOnePacket@handle+1,w 16508 1DC3 0087 movwf 7 16509 1DC4 1781 bsf 1,7 16510 16511 ;usb_device.c: 1036: if(dir != 0) 16512 1DC5 0870 movf i1USBTransferOnePacket@dir,w 16513 1DC6 1903 btfsc 3,2 16514 1DC7 2DD0 goto i1l4651 16515 16516 ;usb_device.c: 1037: { 16517 ;usb_device.c: 1039: pBDTEntryIn[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[ep]) ^ 0x000 + 4); 16518 1DC8 3578 lslf i1USBTransferOnePacket@ep,w 16519 1DC9 3E57 addlw _pBDTEntryIn& (0+255) 16520 1DCA 0086 movwf 6 16521 1DCB 3002 movlw 2 ; select bank4/5 16522 1DCC 25DD 319D fcall PL155 ;call to abstracted procedure 16523 1DCE 3E57 addlw _pBDTEntryIn& (0+255) 16524 1DCF 2DD5 goto L44 16525 1DD0 i1l4651: 16526 ;usb_device.c: 1040: } 16527 16528 16529 ;usb_device.c: 1041: else 16530 ;usb_device.c: 1042: { 16531 ;usb_device.c: 1044: pBDTEntryOut[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryOut[ep]) ^ 0x0 + 004); 16532 1DD0 25E9 319D fcall PL173 ;call to abstracted procedure 16533 1DD2 25DD 319D fcall PL155 ;call to abstracted procedure 16534 1DD4 3EA7 addlw _pBDTEntryOut& (0+255) 16535 1DD5 L44: 16536 1DD5 25ED fcall PL183 ;call to abstracted procedure 16537 16538 ;usb_device.c: 1045: } 16539 ;usb_device.c: 1046: return (void*)handle; 16540 1DD6 087A movf i1USBTransferOnePacket@handle+1,w 16541 1DD7 01F1 clrf ?i1_USBTransferOnePacket+1 16542 1DD8 07F1 addwf ?i1_USBTransferOnePacket+1,f 16543 1DD9 0879 movf i1USBTransferOnePacket@handle,w 16544 1DDA 01F0 clrf ?i1_USBTransferOnePacket 16545 1DDB 07F0 addwf ?i1_USBTransferOnePacket,f 16546 1DDC 0008 return 16547 1DDD __end_ofi1_USBTransferOnePacket: 16548 1DDD PL155: 16549 1DDD 0087 movwf 7 16550 1DDE 3F40 moviw [0]fsr1 16551 1DDF 00F4 movwf ??i1_USBTransferOnePacket 16552 1DE0 3F41 moviw [1]fsr1 16553 1DE1 00F5 movwf ??i1_USBTransferOnePacket+1 16554 1DE2 3004 movlw 4 16555 1DE3 0674 xorwf ??i1_USBTransferOnePacket,w 16556 1DE4 00F6 movwf ??i1_USBTransferOnePacket+2 16557 1DE5 0875 movf ??i1_USBTransferOnePacket+1,w 16558 1DE6 00F7 movwf ??i1_USBTransferOnePacket+3 16559 1DE7 3578 lslf i1USBTransferOnePacket@ep,w 16560 1DE8 0008 return 16561 1DE9 __end_ofPL155: 16562 1DE9 PL173: 16563 1DE9 3578 lslf i1USBTransferOnePacket@ep,w 16564 1DEA 3EA7 addlw _pBDTEntryOut& (0+255) 16565 1DEB 0086 movwf 6 16566 1DEC 3402 retlw 2 ; select bank5/6 16567 1DED __end_ofPL173: 16568 1DED PL183: 16569 1DED 0086 movwf 6 16570 1DEE 0876 movf ??i1_USBTransferOnePacket+2,w 16571 1DEF 3FC0 movwi [0]fsr1 16572 1DF0 0877 movf ??i1_USBTransferOnePacket+3,w 16573 1DF1 3FC1 movwi [1]fsr1 16574 1DF2 0008 return 16575 1DF3 __end_ofPL183: 16576 1DF3 PL195: 16577 1DF3 0087 movwf 7 16578 1DF4 0873 movf USBConfigureEndpoint@handle,w 16579 1DF5 3FC0 movwi [0]fsr1 16580 1DF6 3000 movlw 0 16581 1DF7 3FC1 movwi [1]fsr1 16582 1DF8 0008 return 16583 1DF9 __end_ofPL195: 16584 1DF9 PL207: 16585 1DF9 0087 movwf 7 16586 1DFA 3F40 moviw [0]fsr1 16587 1DFB 00F9 movwf i1USBTransferOnePacket@handle 16588 1DFC 3F41 moviw [1]fsr1 16589 1DFD 0008 return 16590 1DFE __end_ofPL207: Data Sizes: Strings 76 Constant 203 Data 75 BSS 308 Persistent 3 Stack 0 Auto Spaces: Space Size Autos Used COMMON 14 14 14 BANK0h 16 15 16 BANK1 16 16 16 BANK2 16 16 16 BANK3 80 80 80 BANK4 80 55 80 BANK5 80 0 78 BANK6 80 0 47 BANK7 80 0 64 BANK8 80 0 55 BANK9 80 0 64 BANK10 32 0 0 BANK11 0 0 0 BANK12 0 0 0 Pointer List with Targets: print_settings@plockout PTR unsigned char size(1) Largest target is 4 -> plockout(BANK5[4]), USER_USB_CALLBACK_EVENT_HANDLER@pdata PTR void size(2) Largest target is 4096 -> RAM(DATA[4096]), USTATcopy(BANK4[1]), USBActiveConfiguration(BANK4[1]), BDT(ABS[48]), -> NULL(NULL[0]), strlen@s PTR const unsigned char size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), print_settings@buffer(BANK3[60]), readBuffer(BANK9[64]), strlen@cp PTR const unsigned char size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), print_settings@buffer(BANK3[60]), readBuffer(BANK9[64]), memset@p1 PTR void size(2) Largest target is 48 -> USBAlternateInterface(BANK5[2]), BDT(ABS[48]), memset@p PTR unsigned char size(2) Largest target is 48 -> USBAlternateInterface(BANK5[2]), BDT(ABS[48]), memcpy@d1 PTR void size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), SetupPkt(ABS[8]), readBuffer(BANK9[64]), memcpy@d PTR unsigned char size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), SetupPkt(ABS[8]), readBuffer(BANK9[64]), memcpy@s1 PTR const void size(2) Largest target is 64 -> CtrlTrfData(BANK0h[8]), cdc_data_tx(BANK1[64]), NULL(NULL[0]), cdc_data_rx(BANK2[64]), -> SetupPkt(ABS[8]), readBuffer(BANK9[64]), line_coding(BANK5[7]), memcpy@s PTR const unsigned char size(2) Largest target is 64 -> CtrlTrfData(BANK0h[8]), cdc_data_tx(BANK1[64]), NULL(NULL[0]), cdc_data_rx(BANK2[64]), -> SetupPkt(ABS[8]), readBuffer(BANK9[64]), line_coding(BANK5[7]), atoi@s PTR const unsigned char size(1) Largest target is 64 -> readBuffer(BANK9[64]), sprintf@f PTR const unsigned char size(2) Largest target is 31 -> STR_3(CODE[18]), STR_2(CODE[31]), STR_1(CODE[10]), sprintf@sp PTR unsigned char size(2) Largest target is 60 -> ParseBlinkieCommand@buffer(BANK4[40]), print_settings@buffer(BANK3[60]), erase_flash_mem@buffer(BANK3[32]), sprintf@ap PTR void [1] size(1) Largest target is 2 -> ?_sprintf(BANK2[2]), S2409$_cp PTR const unsigned char size(1) Largest target is 0 _val._str._cp PTR const unsigned char size(1) Largest target is 0 debugOut@debugString PTR unsigned char size(2) Largest target is 60 -> ParseBlinkieCommand@buffer(BANK4[40]), print_settings@buffer(BANK3[60]), S2194$start PTR unsigned char size(2) Largest target is 2 -> pattern10(COMMON[2]), pattern9(COMMON[2]), pattern8(COMMON[2]), pattern7(COMMON[2]), -> pattern6(COMMON[2]), pattern5(COMMON[2]), pattern4(COMMON[2]), pattern3(COMMON[2]), -> pattern2(COMMON[2]), pattern1(COMMON[2]), pattern0(COMMON[2]), patterns.start PTR unsigned char size(2) Largest target is 2 -> pattern10(COMMON[2]), pattern9(COMMON[2]), pattern8(COMMON[2]), pattern7(COMMON[2]), -> pattern6(COMMON[2]), pattern5(COMMON[2]), pattern4(COMMON[2]), pattern3(COMMON[2]), -> pattern2(COMMON[2]), pattern1(COMMON[2]), pattern0(COMMON[2]), pattern10 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern9 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern8 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern7 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern6 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern5 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern4 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern3 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern2 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern1 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pattern0 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat9 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat8 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat7 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat6 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat5 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat4 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat3 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat1 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), pat2 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), msg1 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), msg2 PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), ParseBlinkieCommand@cLine PTR unsigned char size(1) Largest target is 64 -> readBuffer(BANK9[64]), setting PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), store_settings@plockout PTR unsigned char size(1) Largest target is 4 -> plockout(BANK5[4]), write_flash_mem@buffer PTR unsigned char size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), store_settings@buffer(BANK3[32]), readBuffer(BANK9[64]), USBStdFeatureReqHandler@pUEP PTR unsigned char size(2) Largest target is 1 -> UEP0(SFR29[1]), USBStdFeatureReqHandler@p PTR struct __BDT size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), USBStdGetStatusHandler@p PTR struct __BDT size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), sp__memset PTR void size(2) Largest target is 48 -> USBAlternateInterface(BANK5[2]), BDT(ABS[48]), USBStdSetCfgHandler@p PTR unsigned char size(2) Largest target is 1 -> UEP1(SFR29[1]), pDst PTR volatile unsigned char size(1) Largest target is 8 -> CtrlTrfData(BANK0h[8]), NULL(NULL[0]), USBConfigureEndpoint@handle PTR volatile struct __BDT size(1) Largest target is 48 -> BDT(ABS[48]), pBDTEntryEP0OutCurrent PTR volatile struct __BDT size(1) Largest target is 48 -> BDT(ABS[48]), NULL(NULL[0]), pBDTEntryEP0OutNext PTR volatile struct __BDT size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), USBTransferOnePacket@data PTR unsigned char size(2) Largest target is 64 -> cdc_data_tx(BANK1[64]), NULL(NULL[0]), cdc_data_rx(BANK2[64]), USBTransferOnePacket@handle PTR volatile struct __BDT size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), USBEnableEndpoint@p PTR unsigned char size(2) Largest target is 1 -> UEP0(SFR29[1]), pBDTEntryOut PTR volatile struct __BDT[3] size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), pBDTEntryIn PTR volatile struct __BDT[3] size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), USBDeviceInit@p PTR unsigned char size(2) Largest target is 1 -> UEP1(SFR29[1]), putrsUSBUSART@data PTR const unsigned char size(1) Largest target is 18 -> buttonMessage(BANK6[18]), putrsUSBUSART@pData PTR const unsigned char size(1) Largest target is 18 -> buttonMessage(BANK6[18]), putUSBUSART@data PTR unsigned char size(2) Largest target is 176 -> buffer(BIGRAM[176]), getsUSBUSART@buffer PTR unsigned char size(1) Largest target is 64 -> readBuffer(BANK9[64]), CDCDataInHandle PTR void size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), sp__USBTransferOnePacket PTR void size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), CDCDataOutHandle PTR void size(2) Largest target is 4096 -> RAM(DATA[4096]), BDT(ABS[48]), NULL(NULL[0]), S746$pFunc PTR FTN()void size(2) Largest target is 0 -> Absolute function(), outPipes.pFunc PTR FTN()void size(2) Largest target is 0 -> Absolute function(), S736$wRam PTR unsigned int size(1) Largest target is 0 outPipes.pDst.wRam PTR unsigned int size(1) Largest target is 0 S736$bRam PTR unsigned char size(1) Largest target is 0 outPipes.pDst.bRam PTR unsigned char size(1) Largest target is 0 S711$wRom PTR const unsigned int size(1) Largest target is 0 inPipes.pSrc.wRom PTR const unsigned int size(1) Largest target is 0 S711$wRam PTR unsigned int size(1) Largest target is 0 inPipes.pSrc.wRam PTR unsigned int size(1) Largest target is 0 S711$bRom PTR const unsigned char size(1) Largest target is 0 inPipes.pSrc.bRom PTR const unsigned char size(1) Largest target is 0 S711$bRam PTR unsigned char size(1) Largest target is 0 inPipes.pSrc.bRam PTR unsigned char size(1) Largest target is 0 pCDCDst.wRom PTR const unsigned int size(1) Largest target is 0 pCDCDst.bRom PTR const unsigned char size(1) Largest target is 0 pCDCDst.wRam PTR unsigned int size(1) Largest target is 0 pCDCDst.bRam PTR unsigned char size(1) Largest target is 0 S478_POINTER$wRom PTR const unsigned int size(1) Largest target is 0 pCDCSrc.wRom PTR const unsigned int size(1) Largest target is 0 S478_POINTER$bRom PTR const unsigned char size(1) Largest target is 0 pCDCSrc.bRom PTR const unsigned char size(1) Largest target is 0 S478_POINTER$wRam PTR unsigned int size(1) Largest target is 0 pCDCSrc.wRam PTR unsigned int size(1) Largest target is 0 S478_POINTER$bRam PTR unsigned char size(1) Largest target is 0 pCDCSrc.bRam PTR unsigned char size(1) Largest target is 0 sp__memcpy PTR void size(2) Largest target is 64 -> ParseBlinkieCommand@buffer(BANK4[40]), SetupPkt(ABS[8]), readBuffer(BANK9[64]), USB_SD_Ptr const PTR const unsigned char [3] size(2) Largest target is 52 -> sd002(CODE[36]), sd001(CODE[52]), sd000(CODE[4]), USB_CD_Ptr const PTR const unsigned char [1] size(2) Largest target is 67 -> configDescriptor1(CODE[67]), fUserId PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), fUserMsgSize PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), fDemoMode PTR unsigned char size(2) Largest target is 0 -> NULL(NULL[0]), Critical Paths under _main in COMMON None. Critical Paths under _SYS_InterruptHigh in COMMON _USBDeviceTasks->_USBCtrlEPService _USBCtrlEPServiceComplete->_USBCtrlEPAllowDataStage _USBCtrlEPAllowDataStage->_USBCtrlTrfTxService _USBCheckStdRequest->_USBStdFeatureReqHandler _CDCInitEP->i1_USBTransferOnePacket _USBEnableEndpoint->_USBConfigureEndpoint _USBCtrlTrfOutHandler->_USBCtrlTrfRxService _USBCtrlTrfRxService->_USBCtrlEPAllowStatusStage _USBCtrlTrfInHandler->_USBCtrlTrfTxService Critical Paths under _main in BANK0h None. Critical Paths under _SYS_InterruptHigh in BANK0h _SYS_InterruptHigh->_USBDeviceTasks _USBWakeFromSuspend->_USER_USB_CALLBACK_EVENT_HANDLER _USBSuspend->_USER_USB_CALLBACK_EVENT_HANDLER _USBCheckStdRequest->_USBStdFeatureReqHandler _USBStdSetCfgHandler->_USER_USB_CALLBACK_EVENT_HANDLER _USBStdFeatureReqHandler->_USER_USB_CALLBACK_EVENT_HANDLER Critical Paths under _main in BANK1 _main->_doWork _main->_update_pattern _update_pattern->_processChars _rand->___lmul _processChars->_get_next_pattern_byte _pattern_done->___bmul _dotCode->_get_next_pattern_byte _get_next_pattern_byte->_packedRead _handle_push_button->_next_pattern _doWork->___awmod _doMenu->_debugPackedOut _getsUSBUSART->_USBTransferOnePacket _ParseBlinkieCommand->_atoi _ParseBlinkieCommand->_sprintf _erase_flash_mem->_sprintf _set_pattern->___lbmod _print_settings->_sprintf _sprintf->___lwmod ___lwmod->___lwdiv _debugOut->___lbmod _next_pattern->___bmul _debugPackedOut->___lbmod _debugPackedOut->_packedRead _back_pattern->___bmul _atoi->___wmul _CDCTxService->_USBTransferOnePacket Critical Paths under _SYS_InterruptHigh in BANK1 None. Critical Paths under _main in BANK2 _main->_update_pattern _update_pattern->_dotCode _ParseBlinkieCommand->_erase_flash_mem _store_settings->_erase_flash_mem _erase_flash_mem->_sprintf _print_settings->_sprintf Critical Paths under _SYS_InterruptHigh in BANK2 None. Critical Paths under _main in BANK3 _update_pattern->_add_and_shift _processChars->_add_and_shift _APP_DeviceCDCBasicDemoTasks->_ParseBlinkieCommand _ParseBlinkieCommand->_store_settings _store_settings->_erase_flash_mem _erase_flash_mem->_sprintf _print_settings->_sprintf Critical Paths under _SYS_InterruptHigh in BANK3 None. Critical Paths under _main in BANK4 _main->_APP_DeviceCDCBasicDemoTasks _APP_DeviceCDCBasicDemoTasks->_ParseBlinkieCommand Critical Paths under _SYS_InterruptHigh in BANK4 None. Critical Paths under _main in BANK5 None. Critical Paths under _SYS_InterruptHigh in BANK5 None. Critical Paths under _main in BANK6 None. Critical Paths under _SYS_InterruptHigh in BANK6 None. Critical Paths under _main in BANK7 None. Critical Paths under _SYS_InterruptHigh in BANK7 None. Critical Paths under _main in BANK8 None. Critical Paths under _SYS_InterruptHigh in BANK8 None. Critical Paths under _main in BANK9 None. Critical Paths under _SYS_InterruptHigh in BANK9 None. Critical Paths under _main in BANK10 None. Critical Paths under _SYS_InterruptHigh in BANK10 None. Critical Paths under _main in BANK11 None. Critical Paths under _SYS_InterruptHigh in BANK11 None. Critical Paths under _main in BANK12 None. Critical Paths under _SYS_InterruptHigh in BANK12 None. Call Graph Tables: --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (0) _main 5 5 0 53156 50 BANK4 5 5 0 _APP_DeviceCDCBasicDemoTasks _USBDeviceAttach _USBDeviceInit _doMenu _doWork _handle_push_button _packedRead _update_pattern --------------------------------------------------------------------------------- (1) _update_pattern 12 12 0 14728 15 BANK1 1 1 0 13 BANK2 3 3 0 _add_and_shift _dotCode _get_next_pattern_byte _next_pattern _pattern_done _processChars _rand _srand _topOfPattern _up_down --------------------------------------------------------------------------------- (2) _up_down 10 9 1 872 0 BANK1 10 9 1 --------------------------------------------------------------------------------- (2) _topOfPattern 0 0 0 0 --------------------------------------------------------------------------------- (2) _rand 6 4 2 470 12 BANK1 2 0 2 0 BANK2 4 4 0 ___lmul _srand --------------------------------------------------------------------------------- (2) _srand 2 0 2 200 0 BANK1 2 0 2 --------------------------------------------------------------------------------- (3) ___lmul 12 4 8 270 0 BANK1 12 4 8 --------------------------------------------------------------------------------- (2) _processChars 2 2 0 5886 13 BANK1 2 2 0 ___wmul _add_and_shift _get_next_pattern_byte _packedRead --------------------------------------------------------------------------------- (3) _add_and_shift 23 23 0 502 0 BANK1 6 6 0 0 BANK3 17 17 0 --------------------------------------------------------------------------------- (2) _pattern_done 3 3 0 291 3 BANK1 3 3 0 ___bmul _setTopOfPattern --------------------------------------------------------------------------------- (2) _dotCode 13 13 0 3249 0 BANK2 13 13 0 _get_next_pattern_byte --------------------------------------------------------------------------------- (3) _get_next_pattern_byte 38 38 0 2322 5 BANK1 8 8 0 ___bmul _packedRead --------------------------------------------------------------------------------- (1) _handle_push_button 15 15 0 659 5 BANK1 1 1 0 0 BANK2 14 14 0 _next_pattern --------------------------------------------------------------------------------- (1) _doWork 10 10 0 1080 6 BANK1 10 10 0 ___awmod _putUSBUSART --------------------------------------------------------------------------------- (2) _putUSBUSART 3 0 3 444 0 BANK1 3 0 3 --------------------------------------------------------------------------------- (2) ___awmod 6 2 4 496 0 BANK1 6 2 4 --------------------------------------------------------------------------------- (1) _doMenu 0 0 0 5569 _debugPackedOut --------------------------------------------------------------------------------- (1) _USBDeviceInit 6 6 0 272 0 BANK1 6 6 0 --------------------------------------------------------------------------------- (1) _USBDeviceAttach 0 0 0 0 --------------------------------------------------------------------------------- (1) _APP_DeviceCDCBasicDemoTasks 2 2 0 28886 48 BANK4 2 2 0 _CDCTxService _ParseBlinkieCommand _getsUSBUSART _memcpy _putrsUSBUSART --------------------------------------------------------------------------------- (2) _putrsUSBUSART 3 3 0 176 0 BANK1 3 3 0 --------------------------------------------------------------------------------- (2) _getsUSBUSART 3 2 1 1786 11 BANK1 3 2 1 _USBTransferOnePacket --------------------------------------------------------------------------------- (2) _ParseBlinkieCommand 51 51 0 24340 77 BANK3 3 3 0 0 BANK4 48 48 0 _atoi _back_pattern _debugOut _debugPackedOut _erase_flash_mem _memcpy _next_pattern _print_settings _set_pattern _sprintf _store_settings _strlen _write_flash_mem --------------------------------------------------------------------------------- (3) _store_settings 36 33 3 4124 41 BANK3 36 33 3 _erase_flash_mem _write_flash_mem --------------------------------------------------------------------------------- (3) _write_flash_mem 7 3 4 690 0 BANK1 7 3 4 --------------------------------------------------------------------------------- (4) _erase_flash_mem 34 32 2 2310 14 BANK2 2 0 2 9 BANK3 32 32 0 _sprintf --------------------------------------------------------------------------------- (3) _set_pattern 1 1 0 670 5 BANK1 1 1 0 ___bmul ___lbmod _setTopOfPattern --------------------------------------------------------------------------------- (3) _print_settings 64 61 3 4253 9 BANK3 64 61 3 _debugOut _sprintf --------------------------------------------------------------------------------- (5) _sprintf 27 13 14 1969 12 BANK1 4 4 0 0 BANK2 14 0 14 0 BANK3 9 9 0 ___lwdiv ___lwmod --------------------------------------------------------------------------------- (6) ___lwmod 5 1 4 337 7 BANK1 5 1 4 ___lwdiv (ARG) --------------------------------------------------------------------------------- (6) ___lwdiv 7 3 4 518 0 BANK1 7 3 4 --------------------------------------------------------------------------------- (4) _debugOut 9 7 2 829 5 BANK1 9 7 2 ___lbmod _strlen --------------------------------------------------------------------------------- (3) _strlen 4 2 2 170 0 BANK1 4 2 2 --------------------------------------------------------------------------------- (2) _next_pattern 2 2 0 247 3 BANK1 2 2 0 ___bmul _setTopOfPattern --------------------------------------------------------------------------------- (2) _memcpy 11 5 6 762 0 BANK1 11 5 6 --------------------------------------------------------------------------------- (2) _debugPackedOut 8 5 3 5569 5 BANK1 8 5 3 ___lbmod _packedRead --------------------------------------------------------------------------------- (3) _packedRead 5 2 3 1937 0 BANK1 5 2 3 --------------------------------------------------------------------------------- (3) ___lbmod 5 4 1 426 0 BANK1 5 4 1 --------------------------------------------------------------------------------- (3) _back_pattern 2 2 0 247 3 BANK1 2 2 0 ___bmul _setTopOfPattern --------------------------------------------------------------------------------- (3) _setTopOfPattern 0 0 0 0 --------------------------------------------------------------------------------- (4) ___bmul 3 2 1 222 0 BANK1 3 2 1 --------------------------------------------------------------------------------- (3) _atoi 10 8 2 1468 6 BANK1 10 8 2 ___wmul _isdigit --------------------------------------------------------------------------------- (4) _isdigit 2 2 0 68 0 BANK1 2 2 0 --------------------------------------------------------------------------------- (3) ___wmul 6 2 4 1100 0 BANK1 6 2 4 --------------------------------------------------------------------------------- (2) _CDCTxService 2 2 0 1731 11 BANK1 2 2 0 _USBTransferOnePacket --------------------------------------------------------------------------------- (3) _USBTransferOnePacket 11 7 4 1594 0 BANK1 11 7 4 --------------------------------------------------------------------------------- Estimated maximum stack depth 6 --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (7) _SYS_InterruptHigh 2 2 0 29581 13 BANK0h 2 2 0 _USBDeviceTasks --------------------------------------------------------------------------------- (8) _USBDeviceTasks 2 2 0 29171 11 BANK0h 2 2 0 _USBCtrlEPAllowStatusStage _USBCtrlEPService _USBIncrement1msInternalTimers _USBStallHandler _USBSuspend _USBWakeFromSuspend _USER_USB_CALLBACK_EVENT_HANDLER i1_USBDeviceInit --------------------------------------------------------------------------------- (9) i1_USBDeviceInit 6 6 0 272 0 COMMON 6 6 0 --------------------------------------------------------------------------------- (9) _USBWakeFromSuspend 0 0 0 3879 _USER_USB_CALLBACK_EVENT_HANDLER --------------------------------------------------------------------------------- (9) _USBSuspend 0 0 0 3879 _USER_USB_CALLBACK_EVENT_HANDLER --------------------------------------------------------------------------------- (9) _USBStallHandler 0 0 0 0 --------------------------------------------------------------------------------- (9) _USBIncrement1msInternalTimers 0 0 0 0 --------------------------------------------------------------------------------- (9) _USBCtrlEPService 1 1 0 17216 13 COMMON 1 1 0 _USBCtrlTrfInHandler _USBCtrlTrfOutHandler _USBCtrlTrfSetupHandler i1_memcpy --------------------------------------------------------------------------------- (10) i1_memcpy 11 5 6 176 0 COMMON 11 5 6 --------------------------------------------------------------------------------- (10) _USBCtrlTrfSetupHandler 0 0 0 16811 _USBCheckStdRequest _USBCtrlEPServiceComplete _USER_USB_CALLBACK_EVENT_HANDLER --------------------------------------------------------------------------------- (11) _USBCtrlEPServiceComplete 2 2 0 92 5 COMMON 2 2 0 _USBCtrlEPAllowDataStage _USBCtrlEPAllowStatusStage --------------------------------------------------------------------------------- (12) _USBCtrlEPAllowDataStage 2 2 0 92 3 COMMON 2 2 0 _USBCtrlTrfTxService --------------------------------------------------------------------------------- (11) _USBCheckStdRequest 0 0 0 12840 _USBStdFeatureReqHandler _USBStdGetDscHandler _USBStdGetStatusHandler _USBStdSetCfgHandler _USER_USB_CALLBACK_EVENT_HANDLER --------------------------------------------------------------------------------- (12) _USBStdSetCfgHandler 4 4 0 4565 6 BANK0h 4 4 0 _USER_USB_CALLBACK_EVENT_HANDLER _memset --------------------------------------------------------------------------------- (13) _memset 8 2 6 526 0 COMMON 8 2 6 --------------------------------------------------------------------------------- (12) _USBStdGetStatusHandler 2 2 0 46 0 COMMON 2 2 0 --------------------------------------------------------------------------------- (12) _USBStdGetDscHandler 2 2 0 0 0 COMMON 2 2 0 --------------------------------------------------------------------------------- (12) _USBStdFeatureReqHandler 7 7 0 4350 11 COMMON 2 2 0 6 BANK0h 5 5 0 _USER_USB_CALLBACK_EVENT_HANDLER --------------------------------------------------------------------------------- (9) _USER_USB_CALLBACK_EVENT_HANDLER 6 0 6 3879 0 BANK0h 6 0 6 _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBCheckCDCRequest --------------------------------------------------------------------------------- (10) _USBCheckCDCRequest 0 0 0 0 --------------------------------------------------------------------------------- (10) _CDCInitEP 0 0 0 1187 _USBEnableEndpoint i1_USBTransferOnePacket --------------------------------------------------------------------------------- (11) i1_USBTransferOnePacket 11 7 4 454 0 COMMON 11 7 4 --------------------------------------------------------------------------------- (11) _USBEnableEndpoint 6 5 1 733 4 COMMON 6 5 1 _USBConfigureEndpoint --------------------------------------------------------------------------------- (12) _USBConfigureEndpoint 4 3 1 400 0 COMMON 4 3 1 --------------------------------------------------------------------------------- (10) _APP_DeviceCDCBasicDemoInitialize 0 0 0 0 --------------------------------------------------------------------------------- (10) _USBCtrlTrfOutHandler 2 2 0 114 6 COMMON 2 2 0 _USBCtrlTrfRxService --------------------------------------------------------------------------------- (11) _USBCtrlTrfRxService 4 4 0 114 2 COMMON 4 4 0 _USBCtrlEPAllowStatusStage --------------------------------------------------------------------------------- (12) _USBCtrlEPAllowStatusStage 2 2 0 0 0 COMMON 2 2 0 --------------------------------------------------------------------------------- (10) _USBCtrlTrfInHandler 3 3 0 115 3 COMMON 3 3 0 _USBCtrlTrfTxService --------------------------------------------------------------------------------- (13) _USBCtrlTrfTxService 3 3 0 92 0 COMMON 3 3 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 13 --------------------------------------------------------------------------------- Call Graph Graphs: _main (ROOT) _APP_DeviceCDCBasicDemoTasks _CDCTxService _USBTransferOnePacket _ParseBlinkieCommand _atoi ___wmul _isdigit _back_pattern ___bmul _setTopOfPattern _debugOut ___lbmod _strlen _debugPackedOut ___lbmod _packedRead _erase_flash_mem _sprintf ___lwdiv ___lwmod ___lwdiv (ARG) _memcpy _next_pattern ___bmul _setTopOfPattern _print_settings _debugOut ___lbmod _strlen _sprintf ___lwdiv ___lwmod ___lwdiv (ARG) _set_pattern ___bmul ___lbmod _setTopOfPattern _sprintf ___lwdiv ___lwmod ___lwdiv (ARG) _store_settings _erase_flash_mem _sprintf ___lwdiv ___lwmod ___lwdiv (ARG) _write_flash_mem _strlen _write_flash_mem _getsUSBUSART _USBTransferOnePacket _memcpy _putrsUSBUSART _USBDeviceAttach _USBDeviceInit _doMenu _debugPackedOut ___lbmod _packedRead _doWork ___awmod _putUSBUSART _handle_push_button _next_pattern ___bmul _setTopOfPattern _packedRead _update_pattern _add_and_shift _dotCode _get_next_pattern_byte ___bmul _packedRead _get_next_pattern_byte ___bmul _packedRead _next_pattern ___bmul _setTopOfPattern _pattern_done ___bmul _setTopOfPattern _processChars ___wmul _add_and_shift _get_next_pattern_byte ___bmul _packedRead _packedRead _rand ___lmul _srand _srand _topOfPattern _up_down _SYS_InterruptHigh (ROOT) _USBDeviceTasks _USBCtrlEPAllowStatusStage _USBCtrlEPService _USBCtrlTrfInHandler _USBCtrlTrfTxService _USBCtrlTrfOutHandler _USBCtrlTrfRxService _USBCtrlEPAllowStatusStage _USBCtrlTrfSetupHandler _USBCheckStdRequest _USBStdFeatureReqHandler _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest _USBStdGetDscHandler _USBStdGetStatusHandler _USBStdSetCfgHandler _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest _memset _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest _USBCtrlEPServiceComplete _USBCtrlEPAllowDataStage _USBCtrlTrfTxService _USBCtrlEPAllowStatusStage _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest i1_memcpy _USBIncrement1msInternalTimers _USBStallHandler _USBSuspend _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest _USBWakeFromSuspend _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest _USER_USB_CALLBACK_EVENT_HANDLER _APP_DeviceCDCBasicDemoInitialize _CDCInitEP _USBEnableEndpoint _USBConfigureEndpoint i1_USBTransferOnePacket _USBCheckCDCRequest i1_USBDeviceInit Address spaces: Name Size Autos Total Cost Usage BIGRAM 3F0 0 0 0 0.0% NULL 0 0 0 0 0.0% CODE 0 0 0 0 0.0% BITCOMMON E 0 0 1 0.0% BITSFR0 0 0 0 1 0.0% SFR0 0 0 0 1 0.0% COMMON E E E 2 100.0% BITSFR1 0 0 0 2 0.0% SFR1 0 0 0 2 0.0% BITSFR2 0 0 0 3 0.0% SFR2 0 0 0 3 0.0% STACK 0 0 0 3 0.0% BITBANK0h 10 0 0 4 0.0% BITSFR3 0 0 0 4 0.0% SFR3 0 0 0 4 0.0% BANK0h 10 F 10 5 100.0% BITSFR4 0 0 0 5 0.0% SFR4 0 0 0 5 0.0% BITBANK1 10 0 0 6 0.0% BITSFR5 0 0 0 6 0.0% SFR5 0 0 0 6 0.0% BANK1 10 10 10 7 100.0% BITSFR6 0 0 0 7 0.0% SFR6 0 0 0 7 0.0% BITBANK2 10 0 0 8 0.0% BITSFR7 0 0 0 8 0.0% SFR7 0 0 0 8 0.0% BANK2 10 10 10 9 100.0% BITSFR8 0 0 0 9 0.0% SFR8 0 0 0 9 0.0% BITBANK3 50 0 0 10 0.0% BITSFR9 0 0 0 10 0.0% SFR9 0 0 0 10 0.0% BANK3 50 50 50 11 100.0% BITSFR10 0 0 0 11 0.0% SFR10 0 0 0 11 0.0% BITBANK4 50 0 0 12 0.0% BITSFR11 0 0 0 12 0.0% SFR11 0 0 0 12 0.0% BANK4 50 37 50 13 100.0% BITSFR12 0 0 0 13 0.0% SFR12 0 0 0 13 0.0% BITBANK5 50 0 0 14 0.0% BITSFR13 0 0 0 14 0.0% SFR13 0 0 0 14 0.0% BANK5 50 0 4E 15 97.5% BITSFR14 0 0 0 15 0.0% SFR14 0 0 0 15 0.0% BITBANK6 50 0 0 16 0.0% BITSFR15 0 0 0 16 0.0% SFR15 0 0 0 16 0.0% BANK6 50 0 2F 17 58.8% BITSFR16 0 0 0 17 0.0% SFR16 0 0 0 17 0.0% BITBANK7 50 0 0 18 0.0% BITSFR17 0 0 0 18 0.0% SFR17 0 0 0 18 0.0% BANK7 50 0 40 19 80.0% BITSFR18 0 0 0 19 0.0% SFR18 0 0 0 19 0.0% BITSFR19 0 0 0 20 0.0% SFR19 0 0 0 20 0.0% ABS 0 0 212 20 0.0% BITBANK8 50 0 0 21 0.0% BITSFR20 0 0 0 21 0.0% SFR20 0 0 0 21 0.0% BANK8 50 0 37 22 68.8% BITSFR21 0 0 0 22 0.0% SFR21 0 0 0 22 0.0% BITBANK9 50 0 0 23 0.0% BITSFR22 0 0 0 23 0.0% SFR22 0 0 0 23 0.0% BANK9 50 0 40 24 80.0% BITSFR23 0 0 0 24 0.0% SFR23 0 0 0 24 0.0% BITBANK10 50 0 0 25 0.0% BITSFR24 0 0 0 25 0.0% SFR24 0 0 0 25 0.0% BANK10 20 0 0 26 0.0% BITSFR25 0 0 0 26 0.0% SFR25 0 0 0 26 0.0% BITBANK11 50 0 0 27 0.0% BITSFR26 0 0 0 27 0.0% SFR26 0 0 0 27 0.0% BITSFR27 0 0 0 28 0.0% SFR27 0 0 0 28 0.0% BANK11 0 0 0 28 0.0% BITBANK12 30 0 0 29 0.0% BITSFR28 0 0 0 29 0.0% SFR28 0 0 0 29 0.0% BITSFR29 0 0 0 30 0.0% SFR29 0 0 0 30 0.0% BANK12 0 0 0 30 0.0% BITSFR30 0 0 0 31 0.0% SFR30 0 0 0 31 0.0% DATA 0 0 212 31 0.0% BITSFR31 0 0 0 32 0.0% SFR31 0 0 0 32 0.0% Microchip Technology PIC Macro Assembler V1.32 build 58300 Symbol Table Sun Mar 08 15:34:51 2020 _USB_SD_Ptr 1E12 pc 0002 ___bmul@product 00E1 __CFG_CP$OFF 0000 ?_print_settings 01A9 _USBDeviceInit 0B10 ___wmul@multiplicand 00E2 __size_of_CDCInitEP 002A USER_USB_CALLBACK_EVENT_HANDLER@event 0060 USER_USB_CALLBACK_EVENT_HANDLER@pdata 0062 __end_of_USBStdGetDscHandler 1F6D l238 0990 l555 0B07 _BDT 0020 l918 1231 l972 0E29 l966 0006 l888 14B9 l969 0003 _UIE 0E92 _UIR 0E90 _update_pattern 0B93 _USBSuspend 04F0 _run 02EC ___awmod@sign 00E5 USBStdSetCfgHandler@i 0069 USBStdSetCfgHandler@p 0066 __CFG_BORV$LO 0000 wreg 0009 _USBDeviceTasks 0362 _USBDeviceState 0260 S7457 1800 ??_USBCtrlTrfRxService 0072 ??_getsUSBUSART 00EC PL201 0F71 _debugPackedOut 1232 PL203 18E1 PL131 06EC PL205 0F76 PL141 0F2B PL133 0F24 PL125 0F10 PL207 1DF9 PL151 070B PL143 118F PL135 05C5 PL127 06CF USBEnableEndpoint@options 0074 PL161 0F50 PL153 0F3C PL145 07AF PL137 07A8 PL129 0F1C PL171 17F4 PL163 1279 PL155 1DDD PL147 07B5 PL139 06F3 PL181 05C9 PL173 1DE9 PL165 19F3 PL157 1273 PL149 0705 PL191 19FA PL183 1DED PL175 0F5A PL167 1F6D PL159 0F48 PL193 1932 PL185 0F65 PL177 0F61 PL169 1280 PL195 1DF3 PL187 17FA PL179 1F75 PL197 0F6B PL189 1F7C PL199 070F __CFG_LVP$OFF 0000 l1121 00B2 l1130 0105 l1212 1886 l1133 0E84 l1310 131F l1223 0E65 l1305 12FC l1254 10F8 l1338 0FDF l1259 1123 l1720 0F85 l1297 12DB l1299 12B5 USBConfigureEndpoint@handle 0073 l5111 12B7 l5201 17BB l6001 15F5 l5131 12FE l5123 12F1 l5107 12B3 l6003 15FE l6031 09C1 l5143 1321 l6007 1602 l6025 09AE l6017 09A3 l6009 0993 l5209 17CB l5161 1358 l5153 1342 l6201 0E67 l5235 091A l5163 135C l5155 134A l6211 0000 l6037 09CA l5229 0917 l5173 13B4 l5165 1389 l5181 128B l6301 0068 l6221 001E l6213 0005 l6205 0E7D l6047 09D9 l6055 09DB l5191 178A l5175 13BC l5183 13CD l6311 0079 l6303 006E l6231 0063 l6223 0021 l6207 0E7F l6073 09F1 l6057 09E0 l6065 09E2 l5193 1795 l6313 007A l6241 0000 l6161 1013 l6233 006A l6225 0025 l6153 0000 l6075 09F4 l6067 09E6 l5507 17F2 l5179 13C8 l6091 1151 l6331 00AC l6251 0010 l6243 0007 l6163 1023 l6235 006E l6227 003A l6219 001A l5533 0A17 l5525 0A0C l6077 0A00 l5461 16BA l4821 13F0 l4813 13E1 l6341 00BC l6253 0012 l6245 000A l5543 0A4C l5519 0A65 l5463 1683 l5383 16EA l6327 00A5 l6255 0014 l6247 000C l6167 102B l5473 17D7 l5465 0000 l5449 1678 l4825 13F4 l4841 1412 l5393 16FA l6329 00A6 l6281 0036 l6257 0015 l6249 000E l5801 0EDB l5651 19DE l5643 19CE l6603 0971 l6611 0992 l6363 115E l6339 00BB l6275 002E l6195 0E61 l5469 17D1 l5485 0F06 l5717 124E l5725 1270 l4837 1406 l4845 1416 l6525 0B56 l6509 0B43 l5733 0DFB l6277 002F l5813 0EF1 l5671 172E l5663 1882 l5727 1233 l5911 145D l6607 098F l6375 1170 l6383 1180 l6367 1165 l6711 1967 l5743 0E20 l6295 0060 l6279 0035 l5807 0EE6 l5673 1729 l5649 19DB l5913 146A l5905 144A l6609 094A l6481 0B1C l6705 195A l6297 0061 l5825 0FE9 l5691 1745 l5683 1740 l5675 1730 l5931 14A0 l5923 1484 l5851 0ADE l6651 11BB l6387 1188 l6379 117C l6635 1100 l6619 10C5 l6723 197E l6299 0067 l5819 0EFC l5771 0E86 l6811 0C4F l5693 176E l5685 176C l5925 1491 l5909 1456 l6661 11F3 l6653 11CB l6629 10ED l6717 1973 l6821 0CCB l6813 0C53 l5951 14CF l5935 14AB l5919 1479 l5847 0ADA l6583 0938 l6567 0B0C l6663 11FD l6655 11D5 l6671 1219 l6639 1119 l6743 19A4 l6751 19B5 l6735 1994 l5783 0EBA l6823 0CD2 l6807 0C48 l5961 1562 l5953 153C l5937 14C6 l5873 0A8F l6585 093A l6497 0B2E l6665 1207 l6657 11DF l6649 11A3 l6673 1223 l6753 19B8 l6729 1989 l5699 177D l5971 1590 l5883 0AA4 l5859 0AEB l6659 11E9 l6755 19C4 l5795 0ED0 l6771 0BB7 l6827 0DCD l5981 15A0 l5965 1567 l5885 0ABB l5877 0AA2 l6597 0962 l6677 122F l6693 193E l5789 0EC5 l6829 0DDE l6781 0BC9 l6765 0BA9 l5983 15A3 l5959 1555 l5887 0ACE l6791 0BDE l6785 0BD4 l6777 0BB9 l5899 143A l6797 0BE0 l6975 08BC l6967 08B4 l6993 08D6 l6995 08DA STR_1 1F0D STR_2 1ECB STR_3 1EEA STR_4 1EFC _LATA 010C _LATC 010E _LEDS 03A0 u4215 17BE u4135 1317 u4155 133A u5045 14DF u5075 1579 u3735 140C u5345 1034 u3695 13E9 u5375 0E57 u6415 08F1 u5565 1176 ??_USBCtrlTrfTxService 0070 u5855 10E6 _UCFG 0E91 u5865 1112 _UEP0 0E98 _UEP1 0E99 _UEIE 0E97 _UEIR 0E93 _UCON 0E8E _TMR0 0015 __CFG_WRT$OFF 0000 _CDCDataInHandle 02B3 USBStdFeatureReqHandler@current_ep_data 0068 _pDst 02D3 get_next_pattern_byte@data 00E9 _head 0264 _pat1 1C82 _pat2 1C86 _atoi 1727 _pat3 1C8F _pat4 1C9E _pat5 1CBF _pat6 1CD4 _pat7 1CE9 _pat8 1CF7 _pat9 1D09 _main 0878 _msg1 1FA0 _msg2 1FC0 _rand 0F7B _tail 0267 update_pattern@temp_red 0320 fsr0h 0005 fsr1h 0007 fsr0l 0004 indf0 0000 indf1 0001 fsr1l 0006 _USBDeviceAttach 0AFB btemp 007E ltemp 007E start 01E3 ttemp 007E wtemp 007E __CFG_IESO$OFF 0000 __size_of_back_pattern 0025 __end_of_USBCheckStdRequest 025B ??_USBCtrlTrfOutHandler 0076 ___bmul@multiplier 00E2 USBDeviceInit@i_1548 00E4 ??_USBStdFeatureReqHandler 007B __size_of_putrsUSBUSART 002B __size_of_add_and_shift 0082 print_settings@buffer 01AC ??_USBStdGetStatusHandler 0070 ?_USBDeviceInit 0070 PMCON2 0196 __end_of_update_pattern 0DF1 ?_atoi 00E6 ?_main 0070 ?_rand 00EC __CFG_WDTE$OFF 0000 __end_of___awmod 118F __end_of___lbmod 17CF __size_of_USBCtrlEPServiceComplete 003B __end_of_USBDeviceTasks 0407 ?_USBCtrlEPServiceComplete 0070 __end_of___lwdiv 13FB __end_of___lwmod 141D i1l506 037C i1memcpy@d1 0070 i1l516 03C9 i1l188 01E1 i1l285 1931 i1l517 0404 i1l518 0401 i1l608 074F i1l705 0226 i1l650 18AA i1l707 0227 i1l716 0248 i1l580 05ED i1l741 0328 i1l645 189F i1l648 18D7 i1l593 06AC i1l649 18A7 i1l690 066A i1l666 050A i1l693 068E i1l776 0434 i1memcpy@s1 0072 _UADDR 0E96 _TRISA 008C _TRISC 008E _USTAT 0E8F __size_of_USBCtrlEPAllowStatusStage 0052 __end_of_debugPackedOut 1273 ___lmul@multiplicand 00E4 __CFG_FCMEN$OFF 0000 __end_of_dotCode 0000 __end_of_USBCtrlEPAllowDataStage 064E _sd000 1EC7 _sd001 1E5D _sd002 1E91 ?_USBIncrement1msInternalTimers 0070 __end_of_dpowers 1E0A _erase_flash_mem 16BD _randf 02D5 __end_of_isdigit 17F4 _randx 0331 atoi@a 00ED _srand 0FCE atoi@s 00EF __CFG_BOREN$OFF 0000 _back_pattern 1876 ltemp0 007E ltemp1 0082 ltemp2 0086 ltemp3 0080 __end_of_up_down 0E81 __end_of_CDCInitEP 1D45 ttemp0 007E ttemp1 0081 ttemp2 0084 ttemp3 0087 ttemp4 007F status 0003 wtemp0 007E wtemp1 0080 wtemp2 0082 wtemp3 0084 wtemp4 0086 wtemp5 0088 wtemp6 007F __end_of_sprintf 13D4 __end_ofi1_memcpy 05B8 __end_ofPL201 0F76 __end_ofPL203 18E6 __end_ofPL131 06F3 __end_ofPL205 0F7B __end_ofPL141 0F3C __end_ofPL133 0F2B __end_ofPL125 0F1C __end_ofPL207 1DFE __end_ofPL151 070F __end_ofPL143 119D __end_ofPL135 05C9 __end_ofPL127 06EC __end_ofPL161 0F5A __end_ofPL153 0F48 __end_ofPL145 07B5 __end_ofPL137 07AF __end_ofPL129 0F24 __end_ofPL171 17FA __end_ofPL163 1280 __end_ofPL155 1DE9 __end_ofPL147 07C2 __end_ofPL139 0705 __end_ofPL181 05CF __end_ofPL173 1DED __end_ofPL165 19FA __end_ofPL157 1279 __end_ofPL149 070B __end_ofPL191 1A00 __end_ofPL183 1DF3 __end_ofPL175 0F61 __end_ofPL167 1F75 __end_ofPL159 0F50 __end_ofPL193 1938 __end_ofPL185 0F6B __end_ofPL177 0F65 __end_ofPL169 1288 __end_ofPL195 1DF9 __end_ofPL187 1800 __end_ofPL179 1F7C __end_ofPL197 0F71 __end_ofPL189 1F82 __end_ofPL199 0715 putUSBUSART@data 00E0 __size_of_USBStdSetCfgHandler 0064 __CFG_MCLRE$OFF 0000 __initialization 081A __end_of_atoi 1784 __end_of_main 08F9 __end_of_rand 0FCE packedRead@h 00E3 __CFG_LPBOR$OFF 0000 __size_of_USBCtrlEPService 0039 ?_update_pattern 0070 ??_atoi 00E8 ??_main 0252 ??_rand 0160 ?_USBDeviceTasks 0070 ?_USBSuspend 0070 __size_of_setTopOfPattern 0000 __CFG_USBLSCLK$48MHz 0000 _fUserMsgSize 1FE1 __size_of_write_flash_mem 003D i1_USBDeviceInit 0511 doMenu@menuOldState 02D7 ?_debugPackedOut 00E5 print_settings@user_id 01AA _cdc_mem_type 02CA _putrsUSBUSART 0AD0 __end_of_USBDeviceAttach 0B10 _CDCDataOutHandle 02B5 ParseBlinkieCommand@buffer 0220 _add_and_shift 0E81 _ACTCON 039B update_pattern@table_type 02DB i1S7461 0800 i1S7459 1814 ?_srand 00E0 _ANSELC 018E getsUSBUSART@len 00EB __size_of_CDCTxService 0070 update_pattern@i 016F i1l5017 025B i1l5009 18CC i1l5051 02BC i1l5043 029B i1l5027 026D i1l5029 026F i1l6101 050E i1l5311 0754 i1l5071 02F7 i1l5055 02CA i1l5313 0765 i1l5081 031C i1l5065 02E5 i1l5057 02D5 i1l5049 02B9 i1l5323 0787 i1l4611 1D79 i1l5067 02EC i1l5325 078F i1l4621 1D4B i1l5093 034A i1l5253 05E3 i1l7101 0095 i1l7021 0020 i1l7013 0014 i1l4711 1920 i1l5095 0350 i1l5271 05F9 i1l5239 05CF i1l6127 04EC i1l4625 1D51 i1l4641 1D9B i1l4633 1D90 i1l4705 191C i1l5089 032E i1l4801 10A4 i1l5361 023D i1l5345 022C i1l5249 05DF i1l6129 04EE i1l6401 051C i1l7201 0131 i1l7113 00A7 i1l7105 009B i1l7041 003E i1l7033 0032 i1l7025 0026 i1l7017 001A i1l4651 1DD0 i1l4731 0407 i1l5371 0253 i1l5347 022E i1l6147 04B6 i1l7051 004D i1l5605 0667 i1l4733 040F i1l5357 023A i1l5349 0230 i1l6149 04B8 i1l7221 014F i1l7213 0143 i1l7205 0137 i1l7141 00D3 i1l7133 00C7 i1l7125 00BB i1l7117 00AD i1l7109 00A1 i1l7037 0038 i1l7029 002C i1l5623 0694 i1l5615 0680 i1l5359 023C i1l5279 0601 i1l7071 006B i1l7063 005F i1l7055 0053 i1l5297 073C i1l4657 05B8 i1l4665 18E6 i1l4737 0413 i1l6417 0530 i1l7241 016F i1l7233 0163 i1l7225 0155 i1l7217 0149 i1l7209 013D i1l7161 00F3 i1l7153 00E5 i1l7145 00D9 i1l7137 00CD i1l7129 00C1 i1l4763 06A8 i1l5619 0688 i1l4691 1902 i1l4915 1042 i1l4907 103A i1l7075 0071 i1l7067 0065 i1l7059 0059 i1l4933 105D i1l5549 01E5 i1l6445 0556 i1l6429 0544 i1l7261 018D i1l7253 0181 i1l7245 0175 i1l7237 0169 i1l7181 0111 i1l7173 0105 i1l7165 00F9 i1l7149 00DF i1l7093 0089 i1l7309 01D7 i1l4775 06C3 i1l4783 06C5 i1l4863 044E i1l5591 073A i1l5575 0715 i1l4687 18FF i1l4679 18F8 i1l7079 0077 i1l4785 06C9 i1l4793 06CB i1l5593 064E i1l4849 0435 i1l5841 059C i1l7281 01AE i1l7273 01A2 i1l7257 0187 i1l7249 017B i1l7185 0117 i1l7177 010B i1l7169 00FF i1l7097 008F i1l7089 0083 i1l5579 071B i1l4699 1911 i1l4963 1F20 i1l4955 108D i1l4981 1F5A i1l4973 1F44 i1l4965 1F29 i1l6901 03B0 i1l7293 01C0 i1l7285 01B4 i1l7277 01A8 i1l7269 019C i1l7197 012B i1l7189 011D i1l7463 0415 i1l4983 1F5D i1l4975 1F47 i1l4959 1F17 i1l4895 062A i1l7465 042F i1l7297 01C6 i1l7289 01BA i1l4987 1F60 i1l4899 063E i1l6851 036F i1l4989 189B i1l6909 03C1 i1l4999 18B4 i1l6935 03EF i1l6919 03CF i1l6937 03FB i1l6929 03E2 i1l6873 0388 i1l6859 0376 i1l6885 039E i1l6895 03AA i1l6879 038D _PMADRH 0192 _PMADRL 0191 u433_25 074B _PMDATH 0194 _PMDATL 0193 _PMCON2 0196 u380_25 0633 _OSCCON 0099 CDCTxService@i 00EB up_down@change 00E5 i1USBTransferOnePacket@handle 0079 __end_of_debugOut 16BD __end_of_ParseBlinkieCommand 1621 __CFG_PWRTE$OFF 0000 _shortPacketStatus 0266 erase_flash_mem@address 016E store_settings@user_msg_size 01C9 USBDeviceTasks@i 006C USBStdFeatureReqHandler@pUEP 0066 USBTransferOnePacket@data 00E1 USBCtrlTrfInHandler@lastDTS 0075 ??_USBDeviceInit 00E0 ___bmul 0F03 ___lmul 0FDB _debugPackedOut$2390 00EA ?_putUSBUSART 00E0 ?_set_pattern 0070 ___wmul 17CF _doMenu 119D __CFG_STVREN$ON 0000 ??___awmod 00E4 ??___lbmod 00E1 __end_of_getsUSBUSART 0AD0 _doWork 10B7 ??___lwdiv 00E4 ??___lwmod 00EB _buffer 2340 _USBEnableEndpoint 1D45 __size_of_USBStdGetStatusHandler 0046 _memcpy 0A59 _memset 109E ___awmod@divisor 00E0 ___awmod@counter 00E4 _user_msg_size 026F ?_USBEnableEndpoint 0074 ??_dotCode 0160 _strobe 02D6 _strlen 1784 __end_of_erase_flash_mem 16EA __size_of_USBTransferOnePacket 0056 packedRead@hiLow 00E2 __size_of_get_next_pattern_byte 0051 ??_isdigit 00E0 __end_of_get_next_pattern_byte 0E42 _CDCTxService 0993 add_and_shift@i 01AE add_and_shift@j 01AF debugPackedOut@i 00EC ?_putrsUSBUSART 0070 APP_DeviceCDCBasicDemoTasks@offset 025F srand@x 00E0 ??_USBEnableEndpoint 0075 ?_add_and_shift 0070 ??_up_down 00E1 ??_sprintf 00EC _CtrlTrfData 0058 ?_APP_DeviceCDCBasicDemoTasks 0070 _controlTransferState 0262 ___lbmod@divisor 00E0 __end_of__initialization 0875 i1USBTransferOnePacket@data 0071 ___lbmod@counter 00E3 __size_of_USBStallHandler 0020 _handle_push_button 1938 ___bmul@multiplicand 00E0 __pcstackBANK0h 0060 __size_of_USBSuspend 000D ??_print_settings 00F0 __pcstackCOMMON 0070 __end_of_USBEnableEndpoint 1D62 __end_of_sd000 1ECB __end_of_sd001 1E91 __end_of_sd002 1EB5 __pidataBANK5 0000 __pidataBANK6 1FE3 __pidataBANK8 07C2 __size_of_USBCtrlEPAllowDataStage 0044 ?_handle_push_button 0070 __size_of_USBConfigureEndpoint 0025 __end_of_srand 0FDB __end_ofi1_USBDeviceInit 0590 __end_of_USBCtrlTrfInHandler 0697 print_settings@user_msg_size 01A9 write_flash_mem@buffer 00E2 _OPTION_REGbits 0095 ?i1_memcpy 0070 _cdc_rx_len 02CB _cdc_tx_len 02CC _buttonMessage 033D ??_USBCtrlTrfSetupHandler 007D _USBTicksSinceSuspendEnd 02C8 ?_USBDeviceAttach 0070 _USBStdGetStatusHandler 189B ??_handle_push_button 00E5 ??_srand 00E2 _buttonPressed 02C9 ??_setTopOfPattern 00E0 ??_write_flash_mem 00E4 __pbssBANK4 0257 __pbssBANK5 02A0 __pbssBANK6 0320 __pbssBANK7 03A0 __pbssBANK9 04A0 ?_pattern_done 0070 ??_APP_DeviceCDCBasicDemoTasks 00F0 __end_of_APP_DeviceCDCBasicDemoInitialize 05C5 __size_of_APP_DeviceCDCBasicDemoInitialize 000D ??_APP_DeviceCDCBasicDemoInitialize 0070 ?_APP_DeviceCDCBasicDemoInitialize 0070 _APP_DeviceCDCBasicDemoInitialize 05B8 print_settings@plockout 01AB _handle_push_button$2353 0162 _handle_push_button$2354 0164 _handle_push_button$2355 0166 _handle_push_button$2356 0168 _handle_push_button$2357 016A __size_of_USBWakeFromSuspend 0014 _pBDTEntryIn 0257 handle_push_button@i 016D __end_of_USBCtrlEPServiceComplete 060A store_settings@plockout 01CB __size_of_USBCheckCDCRequest 004C __pmaintext 0878 ?_next_pattern 0070 USBCtrlTrfRxService@i 0074 ?___bmul 00E0 ?___lmul 00E0 _demo_loops 02CE __CFG_PLLMULT$3x 0000 ?___wmul 00E0 ?_doMenu 0070 ?_doWork 0070 __pintentry 0004 ?_memcpy 00E0 APP_DeviceCDCBasicDemoTasks@i 0251 ?_memset 0070 ___lmul@product 00E8 _device_dsc 1EB5 _USBCtrlEPService 0487 _ep_data_in 02AD ?_strlen 00E0 __end_of_USBCtrlTrfRxService 07A8 ?_erase_flash_mem 016E _USBCheckStdRequest 0216 _configDescriptor1 1E1A ??_putrsUSBUSART 00E0 ??i1_memcpy 0076 ??_add_and_shift 00E0 ?_debugOut 00E5 __end_of_USBCtrlTrfTxService 06CF _USBStdSetCfgHandler 103A _OSCTUNE 0098 ?_USBCheckStdRequest 0070 __size_of_USBStdGetDscHandler 0056 _UIEbits 0E92 __size_of_store_settings 002A _UIRbits 0E90 ??_pattern_done 00E3 _cdc_trf_state 0261 write_flash_mem@i 00E6 ??i1_USBTransferOnePacket 0074 _packedRead 08F9 _pCDCDst 02B7 _pCDCSrc 02B9 __size_of_getsUSBUSART 004F ??_USBIncrement1msInternalTimers 0070 ?_USBStdSetCfgHandler 0070 _CDCInitEP 1D1B ??_next_pattern 00E3 processChars@char_in 02E9 __size_of_USBEnableEndpoint 001D ??_update_pattern 00EF _readBuffer 04A0 ??_USBCheckStdRequest 007D pattern_done@t 00E3 __size_of___bmul 000D __size_of_USBCtrlTrfOutHandler 0027 __size_of___lmul 0025 ___awmod 1154 ___lbmod 17B6 ??_USBDeviceTasks 006B __size_of___wmul 0017 __size_of_doMenu 0095 ___lwdiv 13D4 ??_USBStallHandler 0070 ___lwmod 13FB _fUserId 1FE2 __size_of_doWork 0082 __size_of_APP_DeviceCDCBasicDemoTasks 0075 ?i1_USBDeviceInit 0070 __size_of_putUSBUSART 001B __size_of_set_pattern 001A getsUSBUSART@buffer 00ED __size_of_memcpy 0028 __size_of_memset 0019 ??_debugPackedOut 00E8 __end_of_configDescriptor1 1E5D __ptext1 0B93 _dotCode 0000 __ptext2 0E42 __ptext3 0000 __ptext4 0F7B __ptext5 0FCE __ptext6 0FDB __ptext7 0000 __ptext8 0E81 __ptext9 1009 _inPipes 0268 _USBDeferOUTDataStagePackets 02C3 __size_of_strlen 0018 __end_of_hexpowers 1E12 _dpowers 1E00 _p_count 02BB ??_USBSuspend 007B _p_table 0265 _newTail 02D1 _isdigit 17E6 ___awmod@dividend 00E2 ??_debugOut 00E7 _old_button 02D2 _setting 1FE0 _up_down 0E42 __end_of_USB_CD_Ptr 1E1A _sprintf 1288 _user_id 02EB __size_of_USBCtrlTrfSetupHandler 0031 clrloop0 1F83 _pattern10e 1B68 end_of_initialization 0875 _getsUSBUSART 0A81 __end_of_USB_SD_Ptr 1E18 memcpy@d 00E7 memcpy@n 00E4 memcpy@s 00E9 _pBDTEntryEP0OutNext 025D init_ram 1F8E memset@c 0072 memset@n 0074 memset@p 0076 initloop 1F8F _USB1msTickCount 032D _dummy_encapsulated_cmd_response 0335 ?_USBStdFeatureReqHandler 0070 add_and_shift@in 01B0 ??_USBStdSetCfgHandler 007B ?_CDCInitEP 0070 ?_topOfPattern 0070 __end_of_USBSuspend 04FD _USBCtrlEPAllowDataStage 060A get_next_pattern_byte@pattern_id 00EA __pstringtext 1E00 _USBCtrlEPServiceComplete 05CF _wait_timer 02ED strlen@s 00E0 _USBStatusStageEnabledFlag1 02C5 _USBStatusStageEnabledFlag2 02C6 dotCode@eof 0166 USBEnableEndpoint@p 0077 ?_processChars 0070 _PORTAbits 000C _add_and_shift$2342 01A0 _add_and_shift$2343 01A2 _add_and_shift$2344 01A4 _add_and_shift$2345 01A6 _add_and_shift$2346 01A8 _add_and_shift$2347 01AA _add_and_shift$2348 01AC _processChars$2329 00ED __CFG_FOSC$INTOSC 0000 ___lbmod@dividend 00E2 _BothEP0OutUOWNsSet 02BF USBStdSetCfgHandler@i_1822 0068 USBConfigureEndpoint@EPNum 0072 ?_USBCtrlEPAllowStatusStage 0070 USER_USB_CALLBACK_EVENT_HANDLER@size 0064 APP_DeviceCDCBasicDemoTasks@numBytesRead 0250 _USTATcopy 026E ___lbmod@rem 00E4 i1USBTransferOnePacket@ep 0078 __end_of_USBTransferOnePacket 0A59 __size_ofi1_USBTransferOnePacket 0056 ?_packedRead 00E0 ??_topOfPattern 00E0 putUSBUSART@length 00E2 __CFG_PLLEN$ENABLED 0000 i1USBDeviceInit@i_1548 0074 _USBCtrlTrfSetupHandler 01E5 __size_of_ParseBlinkieCommand 0204 __end_of___bmul 0F10 __end_of_USBDeviceInit 0B93 __end_of_USBIncrement1msInternalTimers 04D0 __size_of_USBIncrement1msInternalTimers 0010 _USBIncrement1msInternalTimers 04C0 __end_of___lmul 1000 i1memcpy@d 0077 i1memcpy@n 0074 i1memcpy@s 0079 __end_of___wmul 17E6 up_down@data 00E0 __end_of_doMenu 1232 ??_processChars 00ED __end_of_pattern_done 103A __end_of_doWork 1139 __end_of_memcpy 0A81 putrsUSBUSART@pData 00E0 __end_of_memset 10B7 _setTopOfPattern 0000 handle_push_button@delay_count 0160 _write_flash_mem 16EA _USBBusIsSuspended 02C1 __end_of_strlen 179C start_initialization 081A ?_USBStdGetStatusHandler 0070 USBCtrlTrfRxService@byteToRead 0075 __end_of_next_pattern 19F3 _get_next_pattern_byte 0DF1 __size_ofi1_memcpy 0028 _pattern_speed 02D4 _store_settings 164E _cdc_data_rx 0120 _cdc_data_tx 00A0 write_flash_mem@address 00E0 __end_of_USBConfigureEndpoint 1D87 processChars@pCharData 02BD print_settings@demo_mode 01E8 __end_of_USBStdFeatureReqHandler 0362 __end_of_USBCtrlEPAllowStatusStage 0487 __end_of_USBCtrlEPService 04C0 ??_USBCtrlEPAllowDataStage 0073 processChars@charLines 02D8 ??_CDCInitEP 007B USBDeviceInit@i 00E5 USBDeviceInit@p 00E2 store_settings@demo_mode 01EC _fDemoMode 1FE0 _pBDTEntryEP0OutCurrent 006F USBTransferOnePacket@dir 00E0 USBTransferOnePacket@len 00E3 ??___bmul 00E1 erase_flash_mem@buffer 01A9 ??___lmul 00E8 ??___wmul 00E4 ??_doMenu 00ED _USBStdGetDscHandler 1F17 ??_doWork 00E6 _back_pattern$2361 00E3 __pdataBANK5 02EC __pdataBANK6 033D __pdataBANK8 0420 ??_memcpy 00E6 ??_memset 0076 i1_USBTransferOnePacket 1D87 ??_strlen 00E2 _USBActiveConfiguration 026D __end_of_USBStdGetStatusHandler 18E1 __pbssBANK0h 006F handle_push_button@temp 016C i1USBTransferOnePacket@dir 0070 __pbssBIGRAM 2340 i1USBTransferOnePacket@len 0073 _fader_cycle 02CF ___latbits 0002 __size_of_packedRead 0025 __end_of_store_settings 1678 __pcstackBANK1 00E0 __pcstackBANK2 0160 __pcstackBANK3 01A0 __size_of_USBCtrlTrfInHandler 0049 __pcstackBANK4 0220 pattern_done@pattern_id 00E5 __end_of__stringdata 1F17 __size_of_debugOut 0045 _isdigit$2559 00E0 ?_USBStdGetDscHandler 0070 __size_of_handle_push_button 0096 ?_back_pattern 0070 __end_of_USBWakeFromSuspend 0511 sprintf@_val 01A4 sprintf@flag 01A3 _doWork$2381 00ED _doWork$2379 00EB sprintf@prec 01A2 _USBStallHandler 04D0 _pBDTEntryOut 02A7 __end_of_USBCheckCDCRequest 1932 __pnvBANK4 026F __pnvBANK5 02EA __size_of_USBDeviceAttach 0015 ___lwdiv@dividend 00E2 _demo_mode 02EA __end_of_setTopOfPattern 0000 store_settings@user_id 01CA __end_of_write_flash_mem 1727 ?___awmod 00E0 ?___lbmod 00E0 debugOut@size 00EC ParseBlinkieCommand@i 024D ParseBlinkieCommand@v 024C ParseBlinkieCommand@x 024A ParseBlinkieCommand@y 024B ?___lwdiv 00E0 ?___lwmod 00E7 processChars@step 02D9 SYS_InterruptHigh@Ax_dir 006D SYS_InterruptHigh@Cx_dir 006E _next_pattern$2359 00E3 ?_dotCode 0070 __pswtext1 1800 __pswtext2 1814 __pswtext3 0800 __size_of_print_settings 002D _USBTransferOnePacket 0A03 ?_isdigit 0070 ?_get_next_pattern_byte 0070 __end_of_topOfPattern 0000 ParseBlinkieCommand@len 024E ?_store_settings 01C9 __end_of_putrsUSBUSART 0AFB __end_of_add_and_shift 0F03 __end_of_USBCtrlTrfOutHandler 073C _hexpowers 1E0A ??_USBStdGetDscHandler 0070 ?_up_down 00E0 _ep_data_out 02B0 ___lwdiv@quotient 00E4 ?_sprintf 0160 __end_of_APP_DeviceCDCBasicDemoTasks 0993 _APP_DeviceCDCBasicDemoTasks 091E __size_of_USBCtrlTrfRxService 006C _menuState 02D0 ??_back_pattern 00E3 USBConfigureEndpoint@direction 0070 debugOut@i 00ED __size_of_srand 000D __size_of_erase_flash_mem 002D __size_of_USBCtrlTrfTxService 0038 __end_of_processChars 0000 ___wmul@product 00E4 _pattern10 1B23 _pattern0e 1A13 _pattern1e 1A1C _pattern2e 1A8B _pattern3e 1A93 _pattern4e 1ADC _pattern5e 1AF7 _pattern6e 1B0A _pattern7e 1B13 _pattern8e 1B21 _pattern9e 1B23 ??_USBCtrlEPServiceComplete 0075 clear_ram0 1F82 _PIE2bits 0092 doWork@len 00EF _PIR2bits 0012 __size_of_pattern_done 0031 ??_putUSBUSART 00E3 ??_set_pattern 00E5 _UEP0bits 0E98 _USBDeferINDataStagePackets 02C2 dotCode@char_in 0169 __size_of_USBCheckStdRequest 0045 _UCONbits 0E8E _USBConfigureEndpoint 1D62 __size_of_USBStdFeatureReqHandler 0107 __stringdata 1ECB update_pattern@delay2 02DA ___wmul@multiplier 00E0 ?_USBTransferOnePacket 00E0 __size_of_next_pattern 0025 _SYS_InterruptHigh 0004 main@delay 0255 _WPUAbits 020C ?_CDCTxService 0070 i1_memcpy 0590 _RemoteWakeup 02C0 ?_SYS_InterruptHigh 0070 __size_ofi1_USBDeviceInit 007F __end_of_USBStallHandler 04F0 get_next_pattern_byte@address 00EB ___lmul@multiplier 00E0 _update_pattern$2322 016D _ParseBlinkieCommand 141D _cycle_count 02CD putrsUSBUSART@data 00E2 ??_USBCtrlEPAllowStatusStage 0070 __end_of_USBStdSetCfgHandler 109E ??_SYS_InterruptHigh 007E set_pattern@id 00E5 _pattern_done 1009 ParseBlinkieCommand@cLine 024F __end_of_device_dsc 1EC7 ??_packedRead 00E3 ?_USBCtrlTrfSetupHandler 0070 USBStdGetStatusHandler@p 0070 USBTransferOnePacket@ep 00E8 _next_pattern 19CE _SetupPkt 0050 ?_setTopOfPattern 0070 ?_write_flash_mem 00E0 ?_ParseBlinkieCommand 0070 ?_USBConfigureEndpoint 0070 ??_USBDeviceAttach 00E0 _ParseBlinkieCommand$2191 0248 __size_of___awmod 003B __size_of___lbmod 0019 __size_of___lwdiv 0027 __size_of___lwmod 0022 __end_of_SYS_InterruptHigh 01E3 __end_of_putUSBUSART 1154 __end_of_set_pattern 17B6 _line_coding 02DC ??_CDCTxService 00EB __size_of_dotCode 0000 sprintf@idx 01A0 store_settings@buffer 01CC __size_of_update_pattern 025E _debugOut 1678 _chardata 1B68 __size_of_isdigit 000E __size_of_USBDeviceTasks 00A5 ___lwdiv@divisor 00E0 __end_of_packedRead 091E ___lwdiv@counter 00E6 __ptext10 0000 __ptext11 0DF1 __ptext20 0AD0 __ptext12 1938 __ptext21 0A81 __ptext13 10B7 __ptext30 13D4 __ptext22 141D __ptext14 1139 __ptext31 1678 __ptext23 164E __ptext15 1154 __ptext40 0F03 __ptext32 1784 __ptext24 16EA __ptext16 119D __ptext41 1727 __ptext33 19CE __ptext25 16BD __ptext17 0B10 __ptext50 04F0 __ptext42 17E6 __ptext34 0A59 __ptext26 179C __ptext18 0AFB __ptext51 04D0 __ptext43 17CF __ptext35 1232 __ptext27 1621 __ptext19 091E __ptext60 109E __ptext52 04C0 __ptext44 0993 __ptext36 08F9 __ptext28 1288 __ptext61 189B __ptext53 0487 __ptext45 0A03 __ptext37 17B6 __ptext29 13FB __ptext70 05B8 __ptext62 1F17 __ptext54 0590 __ptext38 1876 __ptext71 0715 __ptext63 025B __ptext55 01E5 __ptext47 0362 __ptext39 0000 __ptext72 073C __ptext64 0407 __ptext56 05CF __ptext48 0511 __ptext73 0435 __ptext65 18E6 __ptext57 060A __ptext49 04FD __ptext74 064E __ptext66 1D1B __ptext58 0216 __ptext75 0697 __ptext67 1D87 __ptext59 103A __ptext68 1D45 __ptext69 1D62 __size_of_debugPackedOut 0041 __size_of_up_down 003F __size_of_sprintf 014C __size_of_atoi 005D __end_of_USBCtrlTrfSetupHandler 0216 __size_of_main 0081 ?_USBCtrlEPService 0070 __size_of_rand 0053 _pattern0 1A00 _pattern1 1A13 _pattern2 1A1C _pattern3 1A8B _pattern4 1A93 _pattern5 1ADC _pattern6 1AF7 _pattern7 1B0A _pattern8 1B13 _pattern9 1B21 ??_erase_flash_mem 00F0 ??_USBCtrlEPService 007D _patterns 0420 _USBCtrlTrfInHandler 064E _plockout 02E3 debugPackedOut@size 00E7 dotCode@a 016A dotCode@i 016C dotCode@j 016B dotCode@x 0167 dotCode@y 0168 _outPipes 02A0 ??_ParseBlinkieCommand 01ED _USBCtrlTrfOutHandler 0715 atoi@sign 00EC ?i1_USBTransferOnePacket 0070 _USBCtrlEPAllowStatusStage 0435 __end_of_back_pattern 189B ??_USBTransferOnePacket 00E4 __size_of_topOfPattern 0000 _print_settings 1621 putrsUSBUSART@len 00E1 _USBDeferStatusStagePacket 02C4 packedRead@address 00E0 CDCTxService@byte_to_send 00EC i1USBDeviceInit@i 0075 i1USBDeviceInit@p 0072 _INTCONbits 000B ?_USBCtrlTrfInHandler 0070 memcpy@d1 00E0 memcpy@s1 00E2 USBCtrlTrfTxService@byteToSend 0072 isdigit@c 00E1 memset@p1 0070 __size_of_processChars 0000 pic14e$flags 007E ?_USBStallHandler 0070 USBStdFeatureReqHandler@p 0069 intlevel1 0000 sprintf@ap 01A1 sprintf@sp 0160 __size_of_USBDeviceInit 0083 __end_of_USER_USB_CALLBACK_EVENT_HANDLER 0435 __size_of_USER_USB_CALLBACK_EVENT_HANDLER 002E ?_USER_USB_CALLBACK_EVENT_HANDLER 0060 ??_USER_USB_CALLBACK_EVENT_HANDLER 007B _USER_USB_CALLBACK_EVENT_HANDLER 0407 _PMCON1bits 0195 ??i1_USBDeviceInit 0070 ___lwmod@dividend 00E9 __CFG_CLKOUTEN$OFF 0000 _OSCCONbits 0099 _topOfPattern 0000 __end_ofi1_USBTransferOnePacket 1DDD ??_USBConfigureEndpoint 0071 debugPackedOut@address 00E5 ?_USBCtrlTrfOutHandler 0070 _putUSBUSART 1139 _set_pattern 179C __CFG_CPUDIV$NOCLKDIV 0000 _USBCtrlTrfRxService 073C debugOut@debugString 00E5 _USBWakeFromSuspend 04FD _USBStdFeatureReqHandler 025B __end_of_print_settings 164E _USBCheckCDCRequest 18E6 _USBCtrlTrfTxService 0697 _led_data_save 0328 ??_store_settings 00F0 __size_of_SYS_InterruptHigh 01DF ??_get_next_pattern_byte 00E5 _processChars 0000 _OPTION_REG 0095 sprintf@c 01A8 sprintf@f 0162 ?_USBWakeFromSuspend 0070 _up_down$2367 00E6 _up_down$2368 00E8 ___lwmod@divisor 00E7 _get_next_pattern_byte$2231 00E7 ??_USBCtrlTrfInHandler 0073 strlen@cp 00E2 _USBAlternateInterface 02E7 ___lwmod@counter 00EB ?_USBCheckCDCRequest 0070 __end_of_handle_push_button 19CE USBEnableEndpoint@ep 0079 _endpoint_number 0263 ?_USBCtrlTrfRxService 0070 ?_getsUSBUSART 00EB ?_USBCtrlEPAllowDataStage 0070 ?_USBCtrlTrfTxService 0070 _USBStatusStageTimeoutCounter 02C7 ??_USBWakeFromSuspend 007B USBTransferOnePacket@handle 00E9 __end_of_CDCTxService 0A03 ??_USBCheckCDCRequest 0070 _USB_CD_Ptr 1E18