Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312 Fri Mar 02 09:57:11 2018 Microchip Technology Omniscient Code Generator v1.44 (Free mode) build 201709140600 1 processor 18F45K22 2 fnconf rparam,??,?,0 3 opt pw 120 4 opt lm 5 psect smallconst,global,reloc=2,class=SMALLCONST,delta=1,noexec 6 psect cinit,global,reloc=2,class=CODE,delta=1 7 psect bssBANK0,global,class=BANK0,space=1,delta=1,lowdata,noexec 8 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec 9 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec 10 psect text0,global,reloc=2,class=CODE,delta=1 11 psect text1,global,reloc=2,class=CODE,delta=1 12 psect text2,global,reloc=2,class=CODE,delta=1 13 psect text3,global,reloc=2,class=CODE,delta=1 14 psect text4,global,reloc=2,class=CODE,delta=1,group=1 15 psect text5,global,reloc=2,class=CODE,delta=1,inline 16 psect text6,global,reloc=2,class=CODE,delta=1 17 psect text7,global,reloc=2,class=CODE,delta=1 18 psect text8,global,reloc=2,class=CODE,delta=1 19 psect text9,global,reloc=2,class=CODE,delta=1 20 psect intcode,global,reloc=2,class=CODE,delta=1 21 psect intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec 22 psect rparam,global,class=COMRAM,space=1,delta=1,noexec 23 psect temp,global,ovrld,common,class=COMRAM,space=1,delta=1 24 0000 25 ; Version 1.44 26 ; Generated 14/09/2017 GMT 27 ; 28 ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip") 29 ; All rights reserved. 30 ; 31 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch + ip"). 32 ; 33 ; Redistribution and use in source and binary forms, with or without modification, are 34 ; permitted provided that the following conditions are met: 35 ; 36 ; 1. Redistributions of source code must retain the above copyright notice, this lis + t of 37 ; conditions and the following disclaimer. 38 ; 39 ; 2. Redistributions in binary form must reproduce the above copyright notice, this + list 40 ; of conditions and the following disclaimer in the documentation and/or other 41 ; materials provided with the distribution. 42 ; 43 ; 3. Microchip's name may not be used to endorse or promote products derived from th + is 44 ; software without specific prior written permission. 45 ; 46 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 47 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F + OR 48 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC + T, 49 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO 50 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS 51 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST + RICT 52 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U + SE OF 53 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 54 ; 55 ; 56 ; Code-generator required, PIC18F45K22 Definitions 57 ; 58 ; SFR Addresses 59 0000 60 psect smallconst 61 000600 __psmallconst: 62 opt stack 0 63 000600 00 db 0 64 000601 _midi_notes_steps_table: 65 opt stack 0 66 000601 0024 dw 36 67 000603 0026 dw 38 68 000605 0028 dw 40 69 000607 0029 dw 41 70 000609 002B dw 43 71 00060B 002D dw 45 72 00060D 002F dw 47 73 00060F 0030 dw 48 74 000611 0032 dw 50 75 000613 0034 dw 52 76 000615 0035 dw 53 77 000617 0037 dw 55 78 000619 0039 dw 57 79 00061B 003E dw 62 80 00061D 003C dw 60 81 00061F 003B dw 59 82 000621 0040 dw 64 83 000623 0041 dw 65 84 000625 0043 dw 67 85 000627 0045 dw 69 86 000629 0047 dw 71 87 00062B __end_of_midi_notes_steps_table: 88 opt stack 0 89 0000 _ANSELD set 3899 90 0000 _ANSELC set 3898 91 0000 _ANSELB set 3897 92 0000 _ANSELA set 3896 93 0000 _RC1REG set 4014 94 0000 _TX2REG set 3955 95 0000 _TX1REG set 4013 96 0000 _TRISDbits set 3989 97 0000 _BAUDCON2bits set 3952 98 0000 _SPBRGH2 set 3958 99 0000 _SPBRG2 set 3957 100 0000 _RCSTA2bits set 3953 101 0000 _TXSTA2bits set 3954 102 0000 _TRISCbits set 3988 103 0000 _BAUDCON1bits set 4024 104 0000 _SPBRGH1 set 4016 105 0000 _SPBRG1 set 4015 106 0000 _RCSTA1bits set 4011 107 0000 _TXSTA1bits set 4012 108 0000 _PIE1bits set 3997 109 0000 _T2CONbits set 4026 110 0000 _PR2 set 4027 111 0000 _TRISB set 3987 112 0000 _TRISA set 3986 113 0000 _OSCCONbits set 4051 114 0000 _OSCTUNEbits set 3995 115 0000 _INTCONbits set 4082 116 0000 _PORTB set 3969 117 0000 _PORTA set 3968 118 0000 _PIR1bits set 3998 119 0000 _RC1IF set 31989 120 0000 _TX2IF set 32036 121 0000 _TX1IF set 31988 122 123 ; #config settings 124 00062B 00 db 0 ; dummy byte at the end 125 0000 126 psect cinit 127 000938 __pcinit: 128 opt stack 0 129 000938 start_initialization: 130 opt stack 0 131 000938 __initialization: 132 opt stack 0 133 134 ; Clear objects allocated to BANK0 (66 bytes) 135 000938 EE00 F060 lfsr 0,__pbssBANK0 136 00093C 0E42 movlw 66 137 00093E clear_0: 138 00093E 6AEE clrf postinc0,c 139 000940 06E8 decf wreg,f,c 140 000942 E1FD bnz clear_0 141 000944 end_of_initialization: 142 opt stack 0 143 000944 __end_of__initialization: 144 opt stack 0 145 000944 9035 bcf int$flags,0,c ;clear compiler interrupt flag (level 1) 146 000946 9235 bcf int$flags,1,c ;clear compiler interrupt flag (level 2) 147 000948 0E00 movlw low (__Lmediumconst shr (0+16)) 148 00094A 6EF8 movwf tblptru,c 149 00094C 0100 movlb 0 150 00094E EF16 F003 goto _main ;jump to C main() function 151 tblptru equ 0xFF8 152 postinc0 equ 0xFEE 153 wreg equ 0xFE8 154 155 psect bssBANK0 156 000060 __pbssBANK0: 157 opt stack 0 158 000060 _keypresses: 159 opt stack 0 160 000060 ds 2 161 000062 _keys_data: 162 opt stack 0 163 000062 ds 64 164 tblptru equ 0xFF8 165 postinc0 equ 0xFEE 166 wreg equ 0xFE8 167 168 psect cstackBANK0 169 0000A2 __pcstackBANK0: 170 opt stack 0 171 0000A2 ??_main: 172 173 ; 1 bytes @ 0x0 174 0000A2 ds 5 175 0000A7 main@conf_message: 176 opt stack 0 177 178 ; 7 bytes @ 0x5 179 0000A7 ds 7 180 0000AE main@i: 181 opt stack 0 182 183 ; 2 bytes @ 0xC 184 0000AE ds 2 185 0000B0 main@message: 186 opt stack 0 187 188 ; 7 bytes @ 0xE 189 0000B0 ds 7 190 tblptru equ 0xFF8 191 postinc0 equ 0xFEE 192 wreg equ 0xFE8 193 194 psect cstackCOMRAM 195 000001 __pcstackCOMRAM: 196 opt stack 0 197 000001 ??_isr: 198 000001 199 ; 1 bytes @ 0x0 200 000001 ds 36 201 000025 isr@data_a: 202 opt stack 0 203 204 ; 1 bytes @ 0x24 205 000025 ds 1 206 000026 isr@data_b: 207 opt stack 0 208 209 ; 1 bytes @ 0x25 210 000026 ds 1 211 000027 _isr$304: 212 opt stack 0 213 214 ; 1 bytes @ 0x26 215 000027 ds 1 216 000028 _isr$305: 217 opt stack 0 218 219 ; 1 bytes @ 0x27 220 000028 ds 1 221 000029 isr@i: 222 opt stack 0 223 224 ; 1 bytes @ 0x28 225 000029 ds 1 226 00002A eusart2_putch@c: 227 opt stack 0 228 00002A midi_set_status@pkt: 229 opt stack 0 230 00002A midi_set_channel@pkt: 231 opt stack 0 232 00002A memset@p1: 233 opt stack 0 234 235 ; 2 bytes @ 0x29 236 00002A ds 1 237 00002B eusart_write_midi@pkt: 238 opt stack 0 239 240 ; 2 bytes @ 0x2A 241 00002B ds 1 242 00002C midi_set_status@status: 243 opt stack 0 244 00002C midi_set_channel@channel: 245 opt stack 0 246 00002C memset@c: 247 opt stack 0 248 249 ; 2 bytes @ 0x2B 250 00002C ds 1 251 00002D ??_eusart_write_midi: 252 00002D ??_midi_set_status: 253 254 ; 1 bytes @ 0x2C 255 00002D ds 1 256 00002E ??_midi_set_channel: 257 00002E memset@n: 258 opt stack 0 259 260 ; 2 bytes @ 0x2D 261 00002E ds 1 262 00002F eusart_write_midi@length: 263 opt stack 0 264 00002F midi_note_on@pkt: 265 opt stack 0 266 267 ; 2 bytes @ 0x2E 268 00002F ds 1 269 000030 memset@p: 270 opt stack 0 271 272 ; 2 bytes @ 0x2F 273 000030 ds 1 274 000031 eusart_write_midi@data: 275 opt stack 0 276 000031 midi_note_on@channel: 277 opt stack 0 278 279 ; 2 bytes @ 0x30 280 000031 ds 2 281 000033 midi_note_on@note: 282 opt stack 0 283 284 ; 1 bytes @ 0x32 285 000033 ds 1 286 000034 midi_note_on@velocity: 287 opt stack 0 288 289 ; 1 bytes @ 0x33 290 000034 ds 1 291 000035 tblptru equ 0xFF8 292 postinc0 equ 0xFEE 293 wreg equ 0xFE8 294 295 ; 1 bytes @ 0x34 296 ;; 297 ;;Main: autosize = 0, tempsize = 5, incstack = 0, save=0 298 ;; 299 ;; *************** function _main ***************** 300 ;; Defined at: 301 ;; line 221 in file "main.c" 302 ;; Parameters: Size Location Type 303 ;; None 304 ;; Auto vars: Size Location Type 305 ;; message 7 14[BANK0 ] struct . 306 ;; conf_message 7 5[BANK0 ] struct . 307 ;; i 2 12[BANK0 ] unsigned int 308 ;; Return value: Size Location Type 309 ;; 1 wreg void 310 ;; Registers used: 311 ;; wreg, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack 312 ;; Tracked objects: 313 ;; On entry : 0/0 314 ;; On exit : 0/0 315 ;; Unchanged: 0/0 316 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 317 ;; Params: 0 0 0 0 0 0 0 318 ;; Locals: 0 16 0 0 0 0 0 319 ;; Temps: 0 5 0 0 0 0 0 320 ;; Totals: 0 21 0 0 0 0 0 321 ;;Total ram usage: 21 bytes 322 ;; Hardware stack levels required when called: 3 323 ;; This function calls: 324 ;; _eusart_write_midi 325 ;; _init_hw 326 ;; _memset 327 ;; _midi_note_on 328 ;; This function is called by: 329 ;; Startup code after reset 330 ;; This function uses a non-reentrant model 331 ;; 332 333 psect text0 334 00062C __ptext0: 335 opt stack 0 336 00062C _main: 337 opt stack 28 338 339 ;main.c: 223: unsigned i; 340 ;main.c: 224: midi_message_t conf_message, message; 341 ;main.c: 227: init_hw(); 342 343 ;incstack = 0 344 00062C EC1C F004 call _init_hw ;wreg free 345 346 ;main.c: 230: memset(keys_data, 0, sizeof(keys_data)); 347 000630 0E62 movlw low _keys_data 348 000632 6E2A movwf memset@p1,c 349 000634 0E00 movlw high _keys_data 350 000636 6E2B movwf memset@p1+1,c 351 000638 0E00 movlw 0 352 00063A 6E2D movwf memset@c+1,c 353 00063C 0E00 movlw 0 354 00063E 6E2C movwf memset@c,c 355 000640 0E00 movlw 0 356 000642 6E2F movwf memset@n+1,c 357 000644 0E40 movlw 64 358 000646 6E2E movwf memset@n,c 359 000648 EC45 F004 call _memset ;wreg free 360 361 ;main.c: 232: (INTCONbits.GIE = 1); 362 00064C 8EF2 bsf intcon,7,c ;volatile 363 364 ;main.c: 239: conf_message.status = PROGRAM_CHANGE; 365 00064E 0100 movlb 0 ; () banked 366 000650 51A7 movf main@conf_message& (0+255),w,b 367 000652 0BF0 andlw -16 368 000654 090C iorlw 12 369 000656 6FA7 movwf main@conf_message& (0+255),b 370 371 ; BSR set to: 0 372 ;main.c: 240: conf_message.channel = 0; 373 000658 99A7 bcf main@conf_message& (0+255),4,b 374 00065A 9BA7 bcf main@conf_message& (0+255),5,b 375 00065C 9DA7 bcf main@conf_message& (0+255),6,b 376 00065E 9FA7 bcf main@conf_message& (0+255),7,b 377 378 ; BSR set to: 0 379 ;main.c: 241: conf_message.data[0] = 9; 380 000660 0E09 movlw 9 381 000662 6FAA movwf (main@conf_message+3)& (0+255),b 382 383 ; BSR set to: 0 384 ;main.c: 242: conf_message.data_size = 1; 385 000664 0E00 movlw 0 386 000666 6FA9 movwf (main@conf_message+2)& (0+255),b 387 000668 0E01 movlw 1 388 00066A 6FA8 movwf (main@conf_message+1)& (0+255),b 389 390 ; BSR set to: 0 391 ;main.c: 244: midi_note_on(&message, 0, midi_notes_steps_table[0], 127); 392 00066C 0EB0 movlw low main@message 393 00066E 6E2F movwf midi_note_on@pkt,c 394 000670 0E00 movlw high main@message 395 000672 6E30 movwf midi_note_on@pkt+1,c 396 000674 0E00 movlw 0 397 000676 6E32 movwf midi_note_on@channel+1,c 398 000678 0E00 movlw 0 399 00067A 6E31 movwf midi_note_on@channel,c 400 00067C 0E01 movlw low _midi_notes_steps_table 401 00067E 6EF6 movwf tblptrl,c 402 000680 if 1 ;There is more than 1 active tblptr byte 403 000680 0E06 movlw high _midi_notes_steps_table 404 000682 6EF7 movwf tblptrh,c 405 000684 endif 406 000684 if 0 ;There are less than 3 active tblptr bytes 407 000684 endif 408 000684 0008 tblrd * 409 000686 CFF5 F033 movff tablat,midi_note_on@note 410 00068A 0E7F movlw 127 411 00068C 6E34 movwf midi_note_on@velocity,c 412 00068E ECEB F003 call _midi_note_on ;wreg free 413 414 ;main.c: 246: _delay((unsigned long)((500)*(64000000/4000.0))); 415 000692 0E29 movlw 41 416 000694 0100 movlb 0 ; () banked 417 000696 6FA3 movwf (??_main+1)& (0+255),b 418 000698 0E96 movlw 150 419 00069A 6FA2 movwf ??_main& (0+255),b 420 00069C 0E7F movlw 127 421 00069E u497: 422 00069E 2EE8 decfsz wreg,f,c 423 0006A0 D7FE bra u497 424 0006A2 2FA2 decfsz ??_main& (0+255),f,b 425 0006A4 D7FC bra u497 426 0006A6 2FA3 decfsz (??_main+1)& (0+255),f,b 427 0006A8 D7FA bra u497 428 429 ;main.c: 247: eusart_write_midi(&conf_message); 430 0006AA 0EA7 movlw low main@conf_message 431 0006AC 6E2B movwf eusart_write_midi@pkt,c 432 0006AE 0E00 movlw high main@conf_message 433 0006B0 6E2C movwf eusart_write_midi@pkt+1,c 434 0006B2 ECB1 F003 call _eusart_write_midi ;wreg free 435 0006B6 l1158: 436 437 ;main.c: 252: for (i = 0; i < 16; i++) { 438 0006B6 0E00 movlw 0 439 0006B8 0100 movlb 0 ; () banked 440 0006BA 6FAF movwf (main@i+1)& (0+255),b 441 0006BC 0E00 movlw 0 442 0006BE 6FAE movwf main@i& (0+255),b 443 0006C0 l1160: 444 445 ; BSR set to: 0 446 0006C0 51AF movf (main@i+1)& (0+255),w,b 447 0006C2 E1F9 bnz l1158 448 0006C4 0E10 movlw 16 449 0006C6 5DAE subwf main@i& (0+255),w,b 450 0006C8 B0D8 btfsc status,0,c 451 0006CA D7F5 goto l70 452 453 ; BSR set to: 0 454 ;main.c: 253: if (keypresses & (1< main@message(7), 569 ;; channel 2 48[COMRAM] unsigned int 570 ;; note 1 50[COMRAM] enum E31 571 ;; velocity 1 51[COMRAM] unsigned char 572 ;; Auto vars: Size Location Type 573 ;; None 574 ;; Return value: Size Location Type 575 ;; 2 46[COMRAM] int 576 ;; Registers used: 577 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack 578 ;; Tracked objects: 579 ;; On entry : 0/0 580 ;; On exit : 0/0 581 ;; Unchanged: 0/0 582 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 583 ;; Params: 6 0 0 0 0 0 0 584 ;; Locals: 0 0 0 0 0 0 0 585 ;; Temps: 0 0 0 0 0 0 0 586 ;; Totals: 6 0 0 0 0 0 0 587 ;;Total ram usage: 6 bytes 588 ;; Hardware stack levels used: 1 589 ;; Hardware stack levels required when called: 2 590 ;; This function calls: 591 ;; _midi_set_channel 592 ;; _midi_set_status 593 ;; This function is called by: 594 ;; _main 595 ;; This function uses a non-reentrant model 596 ;; 597 598 psect text1 599 0007D6 __ptext1: 600 opt stack 0 601 0007D6 _midi_note_on: 602 opt stack 28 603 604 ;midi.c: 64: if (pkt == (0)) { 605 606 ; BSR set to: 0 607 ;incstack = 0 608 0007D6 502F movf midi_note_on@pkt,w,c 609 0007D8 1030 iorwf midi_note_on@pkt+1,w,c 610 0007DA B4D8 btfsc status,2,c 611 0007DC 0012 return 612 613 ;midi.c: 66: } 614 ;midi.c: 74: midi_set_status(pkt, NOTE_ON); 615 616 ;midi.c: 65: return -1; 617 ; Return value of _midi_note_on is never used 618 0007DE C02F F02A movff midi_note_on@pkt,midi_set_status@pkt 619 0007E2 C030 F02B movff midi_note_on@pkt+1,midi_set_status@pkt+1 620 0007E6 0E09 movlw 9 621 0007E8 6E2C movwf midi_set_status@status,c 622 0007EA EC6E F004 call _midi_set_status ;wreg free 623 624 ;midi.c: 75: midi_set_channel(pkt, channel); 625 0007EE C02F F02A movff midi_note_on@pkt,midi_set_channel@pkt 626 0007F2 C030 F02B movff midi_note_on@pkt+1,midi_set_channel@pkt+1 627 0007F6 C031 F02C movff midi_note_on@channel,midi_set_channel@channel 628 0007FA C032 F02D movff midi_note_on@channel+1,midi_set_channel@channel+1 629 0007FE EC5B F004 call _midi_set_channel ;wreg free 630 631 ;midi.c: 77: pkt->data[0] = note; 632 000802 EE20 F003 lfsr 2,3 633 000806 502F movf midi_note_on@pkt,w,c 634 000808 26D9 addwf fsr2l,f,c 635 00080A 5030 movf midi_note_on@pkt+1,w,c 636 00080C 22DA addwfc fsr2h,f,c 637 00080E C033 FFDF movff midi_note_on@note,indf2 638 639 ;midi.c: 78: pkt->data[1] = velocity; 640 000812 EE20 F004 lfsr 2,4 641 000816 502F movf midi_note_on@pkt,w,c 642 000818 26D9 addwf fsr2l,f,c 643 00081A 5030 movf midi_note_on@pkt+1,w,c 644 00081C 22DA addwfc fsr2h,f,c 645 00081E C034 FFDF movff midi_note_on@velocity,indf2 646 647 ;midi.c: 81: pkt->data_size = 2; 648 000822 EE20 F001 lfsr 2,1 649 000826 502F movf midi_note_on@pkt,w,c 650 000828 26D9 addwf fsr2l,f,c 651 00082A 5030 movf midi_note_on@pkt+1,w,c 652 00082C 22DA addwfc fsr2h,f,c 653 00082E 0E02 movlw 2 654 000830 6EDE movwf postinc2,c 655 000832 0E00 movlw 0 656 000834 6EDD movwf postdec2,c 657 000836 0012 return 658 000838 __end_of_midi_note_on: 659 opt stack 0 660 tblptru equ 0xFF8 661 tblptrh equ 0xFF7 662 tblptrl equ 0xFF6 663 tablat equ 0xFF5 664 intcon equ 0xFF2 665 postinc0 equ 0xFEE 666 wreg equ 0xFE8 667 indf2 equ 0xFDF 668 postinc2 equ 0xFDE 669 postdec2 equ 0xFDD 670 fsr2h equ 0xFDA 671 fsr2l equ 0xFD9 672 status equ 0xFD8 673 674 ;; *************** function _midi_set_status ***************** 675 ;; Defined at: 676 ;; line 40 in file "midi.c" 677 ;; Parameters: Size Location Type 678 ;; pkt 2 41[COMRAM] PTR struct . 679 ;; -> main@message(7), 680 ;; status 1 43[COMRAM] enum E40 681 ;; Auto vars: Size Location Type 682 ;; None 683 ;; Return value: Size Location Type 684 ;; 2 41[COMRAM] int 685 ;; Registers used: 686 ;; wreg, fsr2l, fsr2h, status,2, status,0 687 ;; Tracked objects: 688 ;; On entry : 0/0 689 ;; On exit : 0/0 690 ;; Unchanged: 0/0 691 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 692 ;; Params: 3 0 0 0 0 0 0 693 ;; Locals: 0 0 0 0 0 0 0 694 ;; Temps: 1 0 0 0 0 0 0 695 ;; Totals: 4 0 0 0 0 0 0 696 ;;Total ram usage: 4 bytes 697 ;; Hardware stack levels used: 1 698 ;; Hardware stack levels required when called: 1 699 ;; This function calls: 700 ;; Nothing 701 ;; This function is called by: 702 ;; _midi_note_on 703 ;; _midi_note_off 704 ;; This function uses a non-reentrant model 705 ;; 706 707 psect text2 708 0008DC __ptext2: 709 opt stack 0 710 0008DC _midi_set_status: 711 opt stack 28 712 713 ;midi.c: 42: if (pkt == (0)) { 714 715 ;incstack = 0 716 0008DC 502A movf midi_set_status@pkt,w,c 717 0008DE 102B iorwf midi_set_status@pkt+1,w,c 718 0008E0 B4D8 btfsc status,2,c 719 0008E2 0012 return 720 721 ;midi.c: 44: } 722 ;midi.c: 46: pkt->status = status & 0x0F; 723 724 ;midi.c: 43: return -1; 725 ; Return value of _midi_set_status is never used 726 0008E4 C02C F02D movff midi_set_status@status,??_midi_set_status 727 0008E8 0E0F movlw 15 728 0008EA 162D andwf ??_midi_set_status,f,c 729 0008EC C02A FFD9 movff midi_set_status@pkt,fsr2l 730 0008F0 C02B FFDA movff midi_set_status@pkt+1,fsr2h 731 0008F4 50DF movf indf2,w,c 732 0008F6 182D xorwf ??_midi_set_status,w,c 733 0008F8 0BF0 andlw -16 734 0008FA 182D xorwf ??_midi_set_status,w,c 735 0008FC 6EDF movwf indf2,c 736 0008FE 0012 return 737 000900 __end_of_midi_set_status: 738 opt stack 0 739 tblptru equ 0xFF8 740 tblptrh equ 0xFF7 741 tblptrl equ 0xFF6 742 tablat equ 0xFF5 743 intcon equ 0xFF2 744 postinc0 equ 0xFEE 745 wreg equ 0xFE8 746 indf2 equ 0xFDF 747 postinc2 equ 0xFDE 748 postdec2 equ 0xFDD 749 fsr2h equ 0xFDA 750 fsr2l equ 0xFD9 751 status equ 0xFD8 752 753 ;; *************** function _midi_set_channel ***************** 754 ;; Defined at: 755 ;; line 51 in file "midi.c" 756 ;; Parameters: Size Location Type 757 ;; pkt 2 41[COMRAM] PTR struct . 758 ;; -> main@message(7), 759 ;; channel 2 43[COMRAM] unsigned int 760 ;; Auto vars: Size Location Type 761 ;; None 762 ;; Return value: Size Location Type 763 ;; 2 41[COMRAM] int 764 ;; Registers used: 765 ;; wreg, fsr2l, fsr2h, status,2, status,0 766 ;; Tracked objects: 767 ;; On entry : 0/0 768 ;; On exit : 0/0 769 ;; Unchanged: 0/0 770 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 771 ;; Params: 4 0 0 0 0 0 0 772 ;; Locals: 0 0 0 0 0 0 0 773 ;; Temps: 1 0 0 0 0 0 0 774 ;; Totals: 5 0 0 0 0 0 0 775 ;;Total ram usage: 5 bytes 776 ;; Hardware stack levels used: 1 777 ;; Hardware stack levels required when called: 1 778 ;; This function calls: 779 ;; Nothing 780 ;; This function is called by: 781 ;; _midi_note_on 782 ;; _midi_note_off 783 ;; This function uses a non-reentrant model 784 ;; 785 786 psect text3 787 0008B6 __ptext3: 788 opt stack 0 789 0008B6 _midi_set_channel: 790 opt stack 28 791 792 ;midi.c: 53: if (pkt == (0)) { 793 794 ;incstack = 0 795 0008B6 502A movf midi_set_channel@pkt,w,c 796 0008B8 102B iorwf midi_set_channel@pkt+1,w,c 797 0008BA B4D8 btfsc status,2,c 798 0008BC 0012 return 799 800 ;midi.c: 55: } 801 ;midi.c: 57: pkt->channel = channel & 0x0F; 802 803 ;midi.c: 54: return -1; 804 ; Return value of _midi_set_channel is never used 805 0008BE C02C F02E movff midi_set_channel@channel,??_midi_set_channel 806 0008C2 0E0F movlw 15 807 0008C4 162E andwf ??_midi_set_channel,f,c 808 0008C6 C02A FFD9 movff midi_set_channel@pkt,fsr2l 809 0008CA C02B FFDA movff midi_set_channel@pkt+1,fsr2h 810 0008CE 3A2E swapf ??_midi_set_channel,f,c 811 0008D0 50DF movf indf2,w,c 812 0008D2 182E xorwf ??_midi_set_channel,w,c 813 0008D4 0B0F andlw -241 814 0008D6 182E xorwf ??_midi_set_channel,w,c 815 0008D8 6EDF movwf indf2,c 816 0008DA 0012 return 817 0008DC __end_of_midi_set_channel: 818 opt stack 0 819 tblptru equ 0xFF8 820 tblptrh equ 0xFF7 821 tblptrl equ 0xFF6 822 tablat equ 0xFF5 823 intcon equ 0xFF2 824 postinc0 equ 0xFEE 825 wreg equ 0xFE8 826 indf2 equ 0xFDF 827 postinc2 equ 0xFDE 828 postdec2 equ 0xFDD 829 fsr2h equ 0xFDA 830 fsr2l equ 0xFD9 831 status equ 0xFD8 832 833 ;; *************** function _memset ***************** 834 ;; Defined at: 835 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c" 836 ;; Parameters: Size Location Type 837 ;; p1 2 41[COMRAM] PTR void 838 ;; -> keys_data(64), 839 ;; c 2 43[COMRAM] int 840 ;; n 2 45[COMRAM] unsigned int 841 ;; Auto vars: Size Location Type 842 ;; p 2 47[COMRAM] PTR unsigned char 843 ;; -> keys_data(64), 844 ;; Return value: Size Location Type 845 ;; 2 41[COMRAM] PTR void 846 ;; Registers used: 847 ;; wreg, fsr2l, fsr2h, status,2, status,0 848 ;; Tracked objects: 849 ;; On entry : 0/0 850 ;; On exit : 0/0 851 ;; Unchanged: 0/0 852 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 853 ;; Params: 6 0 0 0 0 0 0 854 ;; Locals: 2 0 0 0 0 0 0 855 ;; Temps: 0 0 0 0 0 0 0 856 ;; Totals: 8 0 0 0 0 0 0 857 ;;Total ram usage: 8 bytes 858 ;; Hardware stack levels used: 1 859 ;; Hardware stack levels required when called: 1 860 ;; This function calls: 861 ;; Nothing 862 ;; This function is called by: 863 ;; _main 864 ;; This function uses a non-reentrant model 865 ;; 866 867 psect text4 868 00088A __ptext4: 869 opt stack 0 870 00088A _memset: 871 opt stack 29 872 873 ;incstack = 0 874 00088A C02A F030 movff memset@p1,memset@p 875 00088E C02B F031 movff memset@p1+1,memset@p+1 876 000892 D008 goto l592 877 000894 l1070: 878 000894 C030 FFD9 movff memset@p,fsr2l 879 000898 C031 FFDA movff memset@p+1,fsr2h 880 00089C C02C FFDF movff memset@c,indf2 881 0008A0 4A30 infsnz memset@p,f,c 882 0008A2 2A31 incf memset@p+1,f,c 883 0008A4 l592: 884 0008A4 062E decf memset@n,f,c 885 0008A6 A0D8 btfss status,0,c 886 0008A8 062F decf memset@n+1,f,c 887 0008AA 282E incf memset@n,w,c 888 0008AC E1F3 bnz l1070 889 0008AE 282F incf memset@n+1,w,c 890 0008B0 B4D8 btfsc status,2,c 891 0008B2 0012 return 892 0008B4 D7EF goto l593 893 0008B6 __end_of_memset: 894 opt stack 0 895 tblptru equ 0xFF8 896 tblptrh equ 0xFF7 897 tblptrl equ 0xFF6 898 tablat equ 0xFF5 899 intcon equ 0xFF2 900 postinc0 equ 0xFEE 901 wreg equ 0xFE8 902 indf2 equ 0xFDF 903 postinc2 equ 0xFDE 904 postdec2 equ 0xFDD 905 fsr2h equ 0xFDA 906 fsr2l equ 0xFD9 907 status equ 0xFD8 908 909 ;; *************** function _init_hw ***************** 910 ;; Defined at: 911 ;; line 156 in file "main.c" 912 ;; Parameters: Size Location Type 913 ;; None 914 ;; Auto vars: Size Location Type 915 ;; None 916 ;; Return value: Size Location Type 917 ;; 1 wreg void 918 ;; Registers used: 919 ;; wreg, status,2, cstack 920 ;; Tracked objects: 921 ;; On entry : 0/0 922 ;; On exit : 0/0 923 ;; Unchanged: 0/0 924 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 925 ;; Params: 0 0 0 0 0 0 0 926 ;; Locals: 0 0 0 0 0 0 0 927 ;; Temps: 0 0 0 0 0 0 0 928 ;; Totals: 0 0 0 0 0 0 0 929 ;;Total ram usage: 0 bytes 930 ;; Hardware stack levels used: 1 931 ;; Hardware stack levels required when called: 2 932 ;; This function calls: 933 ;; _eusart1_init 934 ;; _eusart2_init 935 ;; This function is called by: 936 ;; _main 937 ;; This function uses a non-reentrant model 938 ;; 939 940 psect text5 941 000838 __ptext5: 942 opt stack 0 943 000838 _init_hw: 944 opt stack 28 945 946 ;main.c: 158: (INTCONbits.GIE = 0); 947 948 ;incstack = 0 949 000838 9EF2 bcf intcon,7,c ;volatile 950 951 ;main.c: 162: OSCTUNEbits.PLLEN = 1; 952 00083A 8C9B bsf 3995,6,c ;volatile 953 954 ;main.c: 164: OSCTUNEbits.TUN = 0b011111; 955 00083C 809B bsf 3995,0,c ;volatile 956 00083E 829B bsf 3995,1,c ;volatile 957 000840 849B bsf 3995,2,c ;volatile 958 000842 869B bsf 3995,3,c ;volatile 959 000844 889B bsf 3995,4,c ;volatile 960 000846 9A9B bcf 3995,5,c ;volatile 961 962 ;main.c: 166: OSCCONbits.IRCF = 0b111; 963 000848 88D3 bsf 4051,4,c ;volatile 964 00084A 8AD3 bsf 4051,5,c ;volatile 965 00084C 8CD3 bsf 4051,6,c ;volatile 966 967 ;main.c: 168: OSCCONbits.SCS = 0b00; 968 00084E 0EFC movlw -4 969 000850 16D3 andwf 4051,f,c ;volatile 970 971 ;main.c: 172: ANSELA = 0x00; 972 000852 0E00 movlw 0 973 000854 010F movlb 15 ; () banked 974 000856 6F38 movwf 56,b ;volatile 975 976 ;main.c: 173: ANSELB = 0x00; 977 000858 0E00 movlw 0 978 00085A 6F39 movwf 57,b ;volatile 979 980 ;main.c: 174: ANSELC = 0x00; 981 00085C 0E00 movlw 0 982 00085E 6F3A movwf 58,b ;volatile 983 984 ;main.c: 175: ANSELD = 0x00; 985 000860 0E00 movlw 0 986 000862 6F3B movwf 59,b ;volatile 987 988 ; BSR set to: 15 989 ;main.c: 178: TRISA = 0xFF; 990 000864 6892 setf 3986,c ;volatile 991 992 ; BSR set to: 15 993 ;main.c: 179: TRISB = 0xFF; 994 000866 6893 setf 3987,c ;volatile 995 996 ;main.c: 199: PR2 = 128; 997 000868 0E80 movlw 128 998 00086A 6EBB movwf 4027,c ;volatile 999 1000 ;main.c: 201: T2CONbits.T2OUTPS = 0b0001; 1001 00086C 50BA movf 4026,w,c ;volatile 1002 00086E 0B87 andlw -121 1003 000870 0908 iorlw 8 1004 000872 6EBA movwf 4026,c ;volatile 1005 1006 ;main.c: 203: T2CONbits.T2CKPS = 0b11; 1007 000874 0E03 movlw 3 1008 000876 12BA iorwf 4026,f,c ;volatile 1009 1010 ; BSR set to: 15 1011 ;main.c: 205: T2CONbits.TMR2ON = 1; 1012 000878 84BA bsf 4026,2,c ;volatile 1013 1014 ; BSR set to: 15 1015 ;main.c: 208: PIE1bits.TMR2IE = 1; 1016 00087A 829D bsf 3997,1,c ;volatile 1017 1018 ; BSR set to: 15 1019 ;main.c: 209: PIR1bits.TMR2IF = 0; 1020 00087C 929E bcf 3998,1,c ;volatile 1021 1022 ; BSR set to: 15 1023 ;main.c: 212: INTCONbits.PEIE = 1; 1024 00087E 8CF2 bsf intcon,6,c ;volatile 1025 1026 ; BSR set to: 15 1027 ;main.c: 215: eusart1_init(); 1028 000880 EC8E F004 call _eusart1_init ;wreg free 1029 1030 ;main.c: 216: eusart2_init(); 1031 000884 EC80 F004 call _eusart2_init ;wreg free 1032 000888 0012 return ;funcret 1033 00088A __end_of_init_hw: 1034 opt stack 0 1035 tblptru equ 0xFF8 1036 tblptrh equ 0xFF7 1037 tblptrl equ 0xFF6 1038 tablat equ 0xFF5 1039 intcon equ 0xFF2 1040 postinc0 equ 0xFEE 1041 wreg equ 0xFE8 1042 indf2 equ 0xFDF 1043 postinc2 equ 0xFDE 1044 postdec2 equ 0xFDD 1045 fsr2h equ 0xFDA 1046 fsr2l equ 0xFD9 1047 status equ 0xFD8 1048 1049 ;; *************** function _eusart2_init ***************** 1050 ;; Defined at: 1051 ;; line 25 in file "rs232.c" 1052 ;; Parameters: Size Location Type 1053 ;; None 1054 ;; Auto vars: Size Location Type 1055 ;; None 1056 ;; Return value: Size Location Type 1057 ;; 1 wreg void 1058 ;; Registers used: 1059 ;; wreg, status,2 1060 ;; Tracked objects: 1061 ;; On entry : 0/0 1062 ;; On exit : 0/0 1063 ;; Unchanged: 0/0 1064 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1065 ;; Params: 0 0 0 0 0 0 0 1066 ;; Locals: 0 0 0 0 0 0 0 1067 ;; Temps: 0 0 0 0 0 0 0 1068 ;; Totals: 0 0 0 0 0 0 0 1069 ;;Total ram usage: 0 bytes 1070 ;; Hardware stack levels used: 1 1071 ;; Hardware stack levels required when called: 1 1072 ;; This function calls: 1073 ;; Nothing 1074 ;; This function is called by: 1075 ;; _init_hw 1076 ;; This function uses a non-reentrant model 1077 ;; 1078 1079 psect text6 1080 000900 __ptext6: 1081 opt stack 0 1082 000900 _eusart2_init: 1083 opt stack 28 1084 1085 ;rs232.c: 28: TXSTA2bits.SYNC = 0; 1086 1087 ;incstack = 0 1088 000900 9872 bcf 3954,4,c ;volatile 1089 1090 ;rs232.c: 29: TXSTA2bits.TX9 = 0; 1091 000902 9C72 bcf 3954,6,c ;volatile 1092 1093 ;rs232.c: 32: RCSTA2bits.SPEN = 1; 1094 000904 8E71 bsf 3953,7,c ;volatile 1095 1096 ;rs232.c: 33: SPBRG2 = 31; 1097 000906 0E1F movlw 31 1098 000908 6E75 movwf 3957,c ;volatile 1099 1100 ;rs232.c: 35: SPBRGH2 = 0; 1101 00090A 0E00 movlw 0 1102 00090C 6E76 movwf 3958,c ;volatile 1103 1104 ;rs232.c: 36: TXSTA2bits.BRGH = 0; 1105 00090E 9472 bcf 3954,2,c ;volatile 1106 1107 ;rs232.c: 37: BAUDCON2bits.BRG16 = 0; 1108 000910 9670 bcf 3952,3,c ;volatile 1109 1110 ;rs232.c: 40: TRISDbits.TRISD7 = 1; 1111 000912 8E95 bsf 3989,7,c ;volatile 1112 1113 ;rs232.c: 41: TRISDbits.TRISD6 = 1; 1114 000914 8C95 bsf 3989,6,c ;volatile 1115 1116 ;rs232.c: 43: RCSTA2bits.CREN = 1; 1117 000916 8871 bsf 3953,4,c ;volatile 1118 1119 ;rs232.c: 44: TXSTA2bits.TXEN = 1; 1120 000918 8A72 bsf 3954,5,c ;volatile 1121 00091A 0012 return ;funcret 1122 00091C __end_of_eusart2_init: 1123 opt stack 0 1124 tblptru equ 0xFF8 1125 tblptrh equ 0xFF7 1126 tblptrl equ 0xFF6 1127 tablat equ 0xFF5 1128 intcon equ 0xFF2 1129 postinc0 equ 0xFEE 1130 wreg equ 0xFE8 1131 indf2 equ 0xFDF 1132 postinc2 equ 0xFDE 1133 postdec2 equ 0xFDD 1134 fsr2h equ 0xFDA 1135 fsr2l equ 0xFD9 1136 status equ 0xFD8 1137 1138 ;; *************** function _eusart1_init ***************** 1139 ;; Defined at: 1140 ;; line 4 in file "rs232.c" 1141 ;; Parameters: Size Location Type 1142 ;; None 1143 ;; Auto vars: Size Location Type 1144 ;; None 1145 ;; Return value: Size Location Type 1146 ;; 1 wreg void 1147 ;; Registers used: 1148 ;; wreg, status,2 1149 ;; Tracked objects: 1150 ;; On entry : 0/0 1151 ;; On exit : 0/0 1152 ;; Unchanged: 0/0 1153 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1154 ;; Params: 0 0 0 0 0 0 0 1155 ;; Locals: 0 0 0 0 0 0 0 1156 ;; Temps: 0 0 0 0 0 0 0 1157 ;; Totals: 0 0 0 0 0 0 0 1158 ;;Total ram usage: 0 bytes 1159 ;; Hardware stack levels used: 1 1160 ;; Hardware stack levels required when called: 1 1161 ;; This function calls: 1162 ;; Nothing 1163 ;; This function is called by: 1164 ;; _init_hw 1165 ;; This function uses a non-reentrant model 1166 ;; 1167 1168 psect text7 1169 00091C __ptext7: 1170 opt stack 0 1171 00091C _eusart1_init: 1172 opt stack 28 1173 1174 ;rs232.c: 7: TXSTA1bits.SYNC = 0; 1175 1176 ;incstack = 0 1177 00091C 98AC bcf 4012,4,c ;volatile 1178 1179 ;rs232.c: 8: TXSTA1bits.TX9 = 0; 1180 00091E 9CAC bcf 4012,6,c ;volatile 1181 1182 ;rs232.c: 11: RCSTA1bits.SPEN = 1; 1183 000920 8EAB bsf 4011,7,c ;volatile 1184 1185 ;rs232.c: 12: SPBRG1 = 31; 1186 000922 0E1F movlw 31 1187 000924 6EAF movwf 4015,c ;volatile 1188 1189 ;rs232.c: 13: SPBRGH1 = 0; 1190 000926 0E00 movlw 0 1191 000928 6EB0 movwf 4016,c ;volatile 1192 1193 ;rs232.c: 14: TXSTA1bits.BRGH = 0; 1194 00092A 94AC bcf 4012,2,c ;volatile 1195 1196 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0; 1197 00092C 96B8 bcf 4024,3,c ;volatile 1198 1199 ;rs232.c: 18: TRISCbits.TRISC7 = 1; 1200 00092E 8E94 bsf 3988,7,c ;volatile 1201 1202 ;rs232.c: 19: TRISCbits.TRISC6 = 1; 1203 000930 8C94 bsf 3988,6,c ;volatile 1204 1205 ;rs232.c: 21: RCSTA1bits.CREN = 1; 1206 000932 88AB bsf 4011,4,c ;volatile 1207 1208 ;rs232.c: 22: TXSTA1bits.TXEN = 1; 1209 000934 8AAC bsf 4012,5,c ;volatile 1210 000936 0012 return ;funcret 1211 000938 __end_of_eusart1_init: 1212 opt stack 0 1213 tblptru equ 0xFF8 1214 tblptrh equ 0xFF7 1215 tblptrl equ 0xFF6 1216 tablat equ 0xFF5 1217 intcon equ 0xFF2 1218 postinc0 equ 0xFEE 1219 wreg equ 0xFE8 1220 indf2 equ 0xFDF 1221 postinc2 equ 0xFDE 1222 postdec2 equ 0xFDD 1223 fsr2h equ 0xFDA 1224 fsr2l equ 0xFD9 1225 status equ 0xFD8 1226 1227 ;; *************** function _eusart_write_midi ***************** 1228 ;; Defined at: 1229 ;; line 276 in file "main.c" 1230 ;; Parameters: Size Location Type 1231 ;; pkt 2 42[COMRAM] PTR const struct . 1232 ;; -> main@message(7), main@conf_message(7), 1233 ;; Auto vars: Size Location Type 1234 ;; data 2 48[COMRAM] PTR unsigned char 1235 ;; -> message.data(4), main@message(7), conf_message.data(4), main@conf_message(7), 1236 ;; length 2 46[COMRAM] unsigned int 1237 ;; Return value: Size Location Type 1238 ;; 2 42[COMRAM] int 1239 ;; Registers used: 1240 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack 1241 ;; Tracked objects: 1242 ;; On entry : 0/0 1243 ;; On exit : 0/0 1244 ;; Unchanged: 0/0 1245 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1246 ;; Params: 2 0 0 0 0 0 0 1247 ;; Locals: 4 0 0 0 0 0 0 1248 ;; Temps: 2 0 0 0 0 0 0 1249 ;; Totals: 8 0 0 0 0 0 0 1250 ;;Total ram usage: 8 bytes 1251 ;; Hardware stack levels used: 1 1252 ;; Hardware stack levels required when called: 2 1253 ;; This function calls: 1254 ;; _eusart2_putch 1255 ;; This function is called by: 1256 ;; _main 1257 ;; This function uses a non-reentrant model 1258 ;; 1259 1260 psect text8 1261 000762 __ptext8: 1262 opt stack 0 1263 000762 _eusart_write_midi: 1264 opt stack 28 1265 1266 ;main.c: 278: size_t length; 1267 ;main.c: 279: uint8_t *data; 1268 ;main.c: 281: if (pkt == (0)) { 1269 1270 ;incstack = 0 1271 000762 502B movf eusart_write_midi@pkt,w,c 1272 000764 102C iorwf eusart_write_midi@pkt+1,w,c 1273 000766 B4D8 btfsc status,2,c 1274 000768 0012 return 1275 1276 ;main.c: 283: } 1277 ;main.c: 285: length = pkt->data_size; 1278 1279 ;main.c: 282: return -1; 1280 ; Return value of _eusart_write_midi is never used 1281 00076A EE20 F001 lfsr 2,1 1282 00076E 502B movf eusart_write_midi@pkt,w,c 1283 000770 26D9 addwf fsr2l,f,c 1284 000772 502C movf eusart_write_midi@pkt+1,w,c 1285 000774 22DA addwfc fsr2h,f,c 1286 000776 CFDE F02F movff postinc2,eusart_write_midi@length 1287 00077A CFDD F030 movff postdec2,eusart_write_midi@length+1 1288 1289 ;main.c: 286: data = (uint8_t *) pkt->data; 1290 00077E 0E03 movlw 3 1291 000780 242B addwf eusart_write_midi@pkt,w,c 1292 000782 6E31 movwf eusart_write_midi@data,c 1293 000784 0E00 movlw 0 1294 000786 202C addwfc eusart_write_midi@pkt+1,w,c 1295 000788 6E32 movwf eusart_write_midi@data+1,c 1296 1297 ;main.c: 288: eusart2_putch((char)((pkt->status << 4) | pkt->channel)); 1298 00078A C02B FFD9 movff eusart_write_midi@pkt,fsr2l 1299 00078E C02C FFDA movff eusart_write_midi@pkt+1,fsr2h 1300 000792 38DF swapf indf2,w,c 1301 000794 0B0F andlw 15 1302 000796 6E2D movwf ??_eusart_write_midi& (0+255),c 1303 000798 C02B FFD9 movff eusart_write_midi@pkt,fsr2l 1304 00079C C02C FFDA movff eusart_write_midi@pkt+1,fsr2h 1305 0007A0 50DF movf indf2,w,c 1306 0007A2 0B0F andlw 15 1307 0007A4 6E2E movwf (??_eusart_write_midi+1)& (0+255),c 1308 0007A6 382E swapf ??_eusart_write_midi+1,w,c 1309 0007A8 0BF0 andlw 240 1310 0007AA 102D iorwf ??_eusart_write_midi,w,c 1311 0007AC ECA9 F004 call _eusart2_putch 1312 1313 ;main.c: 290: while (length--) { 1314 0007B0 D009 goto l81 1315 0007B2 l1100: 1316 1317 ;main.c: 291: eusart2_putch((char) *(data++)); 1318 0007B2 C031 FFD9 movff eusart_write_midi@data,fsr2l 1319 0007B6 C032 FFDA movff eusart_write_midi@data+1,fsr2h 1320 0007BA 50DF movf indf2,w,c 1321 0007BC ECA9 F004 call _eusart2_putch 1322 0007C0 4A31 infsnz eusart_write_midi@data,f,c 1323 0007C2 2A32 incf eusart_write_midi@data+1,f,c 1324 0007C4 l81: 1325 0007C4 062F decf eusart_write_midi@length,f,c 1326 0007C6 A0D8 btfss status,0,c 1327 0007C8 0630 decf eusart_write_midi@length+1,f,c 1328 0007CA 282F incf eusart_write_midi@length,w,c 1329 0007CC E1F2 bnz l1100 1330 0007CE 2830 incf eusart_write_midi@length+1,w,c 1331 0007D0 B4D8 btfsc status,2,c 1332 0007D2 0012 return 1333 0007D4 D7EE goto l82 1334 0007D6 __end_of_eusart_write_midi: 1335 opt stack 0 1336 tblptru equ 0xFF8 1337 tblptrh equ 0xFF7 1338 tblptrl equ 0xFF6 1339 tablat equ 0xFF5 1340 intcon equ 0xFF2 1341 postinc0 equ 0xFEE 1342 wreg equ 0xFE8 1343 indf2 equ 0xFDF 1344 postinc2 equ 0xFDE 1345 postdec2 equ 0xFDD 1346 fsr2h equ 0xFDA 1347 fsr2l equ 0xFD9 1348 status equ 0xFD8 1349 1350 ;; *************** function _eusart2_putch ***************** 1351 ;; Defined at: 1352 ;; line 53 in file "rs232.c" 1353 ;; Parameters: Size Location Type 1354 ;; c 1 wreg unsigned char 1355 ;; Auto vars: Size Location Type 1356 ;; c 1 41[COMRAM] unsigned char 1357 ;; Return value: Size Location Type 1358 ;; 1 wreg void 1359 ;; Registers used: 1360 ;; wreg 1361 ;; Tracked objects: 1362 ;; On entry : 0/0 1363 ;; On exit : 0/0 1364 ;; Unchanged: 0/0 1365 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1366 ;; Params: 0 0 0 0 0 0 0 1367 ;; Locals: 1 0 0 0 0 0 0 1368 ;; Temps: 0 0 0 0 0 0 0 1369 ;; Totals: 1 0 0 0 0 0 0 1370 ;;Total ram usage: 1 bytes 1371 ;; Hardware stack levels used: 1 1372 ;; Hardware stack levels required when called: 1 1373 ;; This function calls: 1374 ;; Nothing 1375 ;; This function is called by: 1376 ;; _eusart_write_midi 1377 ;; This function uses a non-reentrant model 1378 ;; 1379 1380 psect text9 1381 000952 __ptext9: 1382 opt stack 0 1383 000952 _eusart2_putch: 1384 opt stack 28 1385 1386 ;incstack = 0 1387 ;eusart2_putch@c stored from wreg 1388 000952 6E2A movwf eusart2_putch@c,c 1389 000954 1390 ;rs232.c: 55: while (!TX2IF); 1391 000954 A8A4 btfss 4004,4,c ;volatile 1392 000956 D7FE goto l1028 1393 1394 ;rs232.c: 56: TX2REG = c; 1395 000958 C02A FF73 movff eusart2_putch@c,3955 ;volatile 1396 00095C 0012 return ;funcret 1397 00095E __end_of_eusart2_putch: 1398 opt stack 0 1399 tblptru equ 0xFF8 1400 tblptrh equ 0xFF7 1401 tblptrl equ 0xFF6 1402 tablat equ 0xFF5 1403 intcon equ 0xFF2 1404 postinc0 equ 0xFEE 1405 wreg equ 0xFE8 1406 indf2 equ 0xFDF 1407 postinc2 equ 0xFDE 1408 postdec2 equ 0xFDD 1409 fsr2h equ 0xFDA 1410 fsr2l equ 0xFD9 1411 status equ 0xFD8 1412 1413 ;; *************** function _isr ***************** 1414 ;; Defined at: 1415 ;; line 114 in file "main.c" 1416 ;; Parameters: Size Location Type 1417 ;; None 1418 ;; Auto vars: Size Location Type 1419 ;; i 1 40[COMRAM] unsigned char 1420 ;; data_b 1 37[COMRAM] unsigned char 1421 ;; data_a 1 36[COMRAM] unsigned char 1422 ;; Return value: Size Location Type 1423 ;; 1 wreg void 1424 ;; Registers used: 1425 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh 1426 ;; Tracked objects: 1427 ;; On entry : 0/0 1428 ;; On exit : 0/0 1429 ;; Unchanged: 0/0 1430 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1431 ;; Params: 0 0 0 0 0 0 0 1432 ;; Locals: 5 0 0 0 0 0 0 1433 ;; Temps: 36 0 0 0 0 0 0 1434 ;; Totals: 41 0 0 0 0 0 0 1435 ;;Total ram usage: 41 bytes 1436 ;; Hardware stack levels used: 1 1437 ;; This function calls: 1438 ;; Nothing 1439 ;; This function is called by: 1440 ;; Interrupt level 2 1441 ;; This function uses a non-reentrant model 1442 ;; 1443 1444 psect intcode 1445 000008 __pintcode: 1446 opt stack 0 1447 000008 _isr: 1448 opt stack 28 1449 1450 ;incstack = 0 1451 000008 8235 bsf btemp,1,c ;set compiler interrupt flag (level 2) 1452 00000A CFFA F013 movff pclath,??_isr+18 1453 00000E CFFB F014 movff pclatu,??_isr+19 1454 000012 CFE9 F015 movff fsr0l,??_isr+20 1455 000016 CFEA F016 movff fsr0h,??_isr+21 1456 00001A CFE1 F017 movff fsr1l,??_isr+22 1457 00001E CFE2 F018 movff fsr1h,??_isr+23 1458 000022 CFD9 F019 movff fsr2l,??_isr+24 1459 000026 CFDA F01A movff fsr2h,??_isr+25 1460 00002A CFF3 F01B movff prodl,??_isr+26 1461 00002E CFF4 F01C movff prodh,??_isr+27 1462 000032 CFF6 F01D movff tblptrl,??_isr+28 1463 000036 CFF7 F01E movff tblptrh,??_isr+29 1464 00003A CFF8 F01F movff tblptru,??_isr+30 1465 00003E CFF5 F020 movff tablat,??_isr+31 1466 000042 C035 F021 movff btemp,??_isr+32 1467 000046 C036 F022 movff btemp+1,??_isr+33 1468 00004A C037 F023 movff btemp+2,??_isr+34 1469 00004E C038 F024 movff btemp+3,??_isr+35 1470 1471 ;main.c: 116: unsigned char i, data_a, data_b; 1472 ;main.c: 122: if (PIR1bits.TMR2IF) { 1473 000052 A29E btfss 3998,1,c ;volatile 1474 000054 D12F goto i2l55 1475 1476 ;main.c: 123: data_a = PORTA; 1477 000056 CF80 F025 movff 3968,isr@data_a ;volatile 1478 1479 ;main.c: 124: data_b = PORTB; 1480 00005A CF81 F026 movff 3969,isr@data_b ;volatile 1481 1482 ;main.c: 126: i = 7; 1483 00005E 0E07 movlw 7 1484 000060 6E29 movwf isr@i,c 1485 000062 1486 ;main.c: 129: keys_data[i] = (keys_data[i] << 1) | ((data_a >> i) & 0x01); 1487 000062 5029 movf isr@i,w,c 1488 000064 0D04 mullw 4 1489 000066 0E62 movlw low _keys_data 1490 000068 24F3 addwf prodl,w,c 1491 00006A 6ED9 movwf fsr2l,c 1492 00006C 0E00 movlw high _keys_data 1493 00006E 20F4 addwfc prodh,w,c 1494 000070 6EDA movwf fsr2h,c 1495 000072 CFDE F001 movff postinc2,??_isr 1496 000076 CFDE F002 movff postinc2,??_isr+1 1497 00007A CFDE F003 movff postinc2,??_isr+2 1498 00007E CFDE F004 movff postinc2,??_isr+3 1499 000082 90D8 bcf status,0,c 1500 000084 3401 rlcf ??_isr,w,c 1501 000086 6E05 movwf (??_isr+4)& (0+255),c 1502 000088 3402 rlcf ??_isr+1,w,c 1503 00008A 6E06 movwf (??_isr+5)& (0+255),c 1504 00008C 3403 rlcf ??_isr+2,w,c 1505 00008E 6E07 movwf (??_isr+6)& (0+255),c 1506 000090 3404 rlcf ??_isr+3,w,c 1507 000092 6E08 movwf (??_isr+7)& (0+255),c 1508 000094 C029 F009 movff isr@i,??_isr+8 1509 000098 C025 F00A movff isr@data_a,??_isr+9 1510 00009C 2A09 incf ??_isr+8,f,c 1511 00009E D002 goto i2u34_44 1512 0000A0 i2u34_45: 1513 0000A0 90D8 bcf status,0,c 1514 0000A2 320A rrcf ??_isr+9,f,c 1515 0000A4 i2u34_44: 1516 0000A4 2E09 decfsz ??_isr+8,f,c 1517 0000A6 D7FC goto i2u34_45 1518 0000A8 0E01 movlw 1 1519 0000AA 160A andwf ??_isr+9,f,c 1520 0000AC 500A movf ??_isr+9,w,c 1521 0000AE 1005 iorwf ??_isr+4,w,c 1522 0000B0 6E0B movwf (??_isr+10)& (0+255),c 1523 0000B2 5006 movf ??_isr+5,w,c 1524 0000B4 6E0C movwf (??_isr+11)& (0+255),c 1525 0000B6 5007 movf ??_isr+6,w,c 1526 0000B8 6E0D movwf (??_isr+12)& (0+255),c 1527 0000BA 5008 movf ??_isr+7,w,c 1528 0000BC 6E0E movwf (??_isr+13)& (0+255),c 1529 0000BE 5029 movf isr@i,w,c 1530 0000C0 0D04 mullw 4 1531 0000C2 0E62 movlw low _keys_data 1532 0000C4 24F3 addwf prodl,w,c 1533 0000C6 6ED9 movwf fsr2l,c 1534 0000C8 0E00 movlw high _keys_data 1535 0000CA 20F4 addwfc prodh,w,c 1536 0000CC 6EDA movwf fsr2h,c 1537 0000CE C00B FFDE movff ??_isr+10,postinc2 1538 0000D2 C00C FFDE movff ??_isr+11,postinc2 1539 0000D6 C00D FFDE movff ??_isr+12,postinc2 1540 0000DA C00E FFDE movff ??_isr+13,postinc2 1541 1542 ;main.c: 130: keys_data[i + 8] = (keys_data[i + 8] << 1) | ((data_b >> i) & 0x01); 1543 0000DE 5029 movf isr@i,w,c 1544 0000E0 6E01 movwf ??_isr& (0+255),c 1545 0000E2 6A02 clrf (??_isr+1)& (0+255),c 1546 0000E4 90D8 bcf status,0,c 1547 0000E6 3601 rlcf ??_isr,f,c 1548 0000E8 3602 rlcf ??_isr+1,f,c 1549 0000EA 90D8 bcf status,0,c 1550 0000EC 3601 rlcf ??_isr,f,c 1551 0000EE 3602 rlcf ??_isr+1,f,c 1552 0000F0 0E20 movlw 32 1553 0000F2 2601 addwf ??_isr,f,c 1554 0000F4 0E00 movlw 0 1555 0000F6 2202 addwfc ??_isr+1,f,c 1556 0000F8 0E62 movlw low _keys_data 1557 0000FA 2401 addwf ??_isr,w,c 1558 0000FC 6ED9 movwf fsr2l,c 1559 0000FE 0E00 movlw high _keys_data 1560 000100 2002 addwfc ??_isr+1,w,c 1561 000102 6EDA movwf fsr2h,c 1562 000104 CFDE F003 movff postinc2,??_isr+2 1563 000108 CFDE F004 movff postinc2,??_isr+3 1564 00010C CFDE F005 movff postinc2,??_isr+4 1565 000110 CFDE F006 movff postinc2,??_isr+5 1566 000114 90D8 bcf status,0,c 1567 000116 3403 rlcf ??_isr+2,w,c 1568 000118 6E07 movwf (??_isr+6)& (0+255),c 1569 00011A 3404 rlcf ??_isr+3,w,c 1570 00011C 6E08 movwf (??_isr+7)& (0+255),c 1571 00011E 3405 rlcf ??_isr+4,w,c 1572 000120 6E09 movwf (??_isr+8)& (0+255),c 1573 000122 3406 rlcf ??_isr+5,w,c 1574 000124 6E0A movwf (??_isr+9)& (0+255),c 1575 000126 C029 F00B movff isr@i,??_isr+10 1576 00012A C026 F00C movff isr@data_b,??_isr+11 1577 00012E 2A0B incf ??_isr+10,f,c 1578 000130 D002 goto i2u35_44 1579 000132 i2u35_45: 1580 000132 90D8 bcf status,0,c 1581 000134 320C rrcf ??_isr+11,f,c 1582 000136 i2u35_44: 1583 000136 2E0B decfsz ??_isr+10,f,c 1584 000138 D7FC goto i2u35_45 1585 00013A 0E01 movlw 1 1586 00013C 160C andwf ??_isr+11,f,c 1587 00013E 500C movf ??_isr+11,w,c 1588 000140 1007 iorwf ??_isr+6,w,c 1589 000142 6E0D movwf (??_isr+12)& (0+255),c 1590 000144 5008 movf ??_isr+7,w,c 1591 000146 6E0E movwf (??_isr+13)& (0+255),c 1592 000148 5009 movf ??_isr+8,w,c 1593 00014A 6E0F movwf (??_isr+14)& (0+255),c 1594 00014C 500A movf ??_isr+9,w,c 1595 00014E 6E10 movwf (??_isr+15)& (0+255),c 1596 000150 5029 movf isr@i,w,c 1597 000152 6E11 movwf (??_isr+16)& (0+255),c 1598 000154 6A12 clrf (??_isr+17)& (0+255),c 1599 000156 90D8 bcf status,0,c 1600 000158 3611 rlcf ??_isr+16,f,c 1601 00015A 3612 rlcf ??_isr+17,f,c 1602 00015C 90D8 bcf status,0,c 1603 00015E 3611 rlcf ??_isr+16,f,c 1604 000160 3612 rlcf ??_isr+17,f,c 1605 000162 0E20 movlw 32 1606 000164 2611 addwf ??_isr+16,f,c 1607 000166 0E00 movlw 0 1608 000168 2212 addwfc ??_isr+17,f,c 1609 00016A 0E62 movlw low _keys_data 1610 00016C 2411 addwf ??_isr+16,w,c 1611 00016E 6ED9 movwf fsr2l,c 1612 000170 0E00 movlw high _keys_data 1613 000172 2012 addwfc ??_isr+17,w,c 1614 000174 6EDA movwf fsr2h,c 1615 000176 C00D FFDE movff ??_isr+12,postinc2 1616 00017A C00E FFDE movff ??_isr+13,postinc2 1617 00017E C00F FFDE movff ??_isr+14,postinc2 1618 000182 C010 FFDE movff ??_isr+15,postinc2 1619 1620 ;main.c: 135: keypresses |= (keys_data[i] && !(keys_data[i] & 0xFFFFFF00))< keys_data(BANK0[64]), memset@p PTR unsigned char size(2) Largest target is 64 -> keys_data(BANK0[64]), midi_note_on@pkt PTR struct . size(2) Largest target is 7 -> main@message(BANK0[7]), midi_set_channel@pkt PTR struct . size(2) Largest target is 7 -> main@message(BANK0[7]), midi_set_status@pkt PTR struct . size(2) Largest target is 7 -> main@message(BANK0[7]), eusart_write_midi@data PTR unsigned char size(2) Largest target is 7 -> message.data(COMRAM[4]), main@message(BANK0[7]), conf_message.data(COMRAM[4]), main@conf_message(BANK0[7]), eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7 -> main@message(BANK0[7]), main@conf_message(BANK0[7]), sp__memset PTR void size(2) Largest target is 64 -> keys_data(BANK0[64]), Critical Paths under _main in COMRAM _main->_midi_note_on _midi_note_on->_midi_set_channel _eusart_write_midi->_eusart2_putch Critical Paths under _isr in COMRAM None. Critical Paths under _main in BANK0 None. Critical Paths under _isr in BANK0 None. Critical Paths under _main in BANK1 None. Critical Paths under _isr in BANK1 None. Critical Paths under _main in BANK2 None. Critical Paths under _isr in BANK2 None. Critical Paths under _main in BANK3 None. Critical Paths under _isr in BANK3 None. Critical Paths under _main in BANK4 None. Critical Paths under _isr in BANK4 None. Critical Paths under _main in BANK5 None. Critical Paths under _isr in BANK5 None. Call Graph Tables: --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (0) _main 21 21 0 2165 0 BANK0 21 21 0 _eusart_write_midi _init_hw _memset _midi_note_on --------------------------------------------------------------------------------- (1) _midi_note_on 6 0 6 1242 46 COMRAM 6 0 6 _midi_set_channel _midi_set_status --------------------------------------------------------------------------------- (2) _midi_set_status 4 1 3 370 41 COMRAM 4 1 3 --------------------------------------------------------------------------------- (2) _midi_set_channel 5 1 4 370 41 COMRAM 5 1 4 --------------------------------------------------------------------------------- (1) _memset 8 2 6 324 41 COMRAM 8 2 6 --------------------------------------------------------------------------------- (1) _init_hw 0 0 0 0 _eusart1_init _eusart2_init --------------------------------------------------------------------------------- (2) _eusart2_init 0 0 0 0 --------------------------------------------------------------------------------- (2) _eusart1_init 0 0 0 0 --------------------------------------------------------------------------------- (1) _eusart_write_midi 8 6 2 331 42 COMRAM 8 6 2 _eusart2_putch --------------------------------------------------------------------------------- (2) _eusart2_putch 1 1 0 22 41 COMRAM 1 1 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 2 --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (3) _isr 41 41 0 381 0 COMRAM 41 41 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 3 --------------------------------------------------------------------------------- Call Graph Graphs: _main (ROOT) _eusart_write_midi _eusart2_putch _init_hw _eusart1_init _eusart2_init _memset _midi_note_on _midi_set_channel _midi_set_status _isr (ROOT) Address spaces: Name Size Autos Total Cost Usage BIGRAM 5FF 0 0 16 0.0% EEDATA 100 0 0 0 0.0% BITBANK5 100 0 0 14 0.0% BANK5 100 0 0 15 0.0% BITBANK4 100 0 0 12 0.0% BANK4 100 0 0 13 0.0% BITBANK3 100 0 0 10 0.0% BANK3 100 0 0 11 0.0% BITBANK2 100 0 0 7 0.0% BANK2 100 0 0 8 0.0% BITBANK1 100 0 0 5 0.0% BANK1 100 0 0 6 0.0% BITBANK0 A0 0 0 3 0.0% BANK0 A0 15 57 4 54.4% BITCOMRAM 5E 0 0 0 0.0% COMRAM 5E 34 34 1 55.3% BITSFR_1 0 0 0 200 0.0% SFR_1 0 0 0 200 0.0% BITSFR 0 0 0 200 0.0% SFR 0 0 0 200 0.0% STACK 0 0 0 2 0.0% NULL 0 0 0 0 0.0% ABS 0 0 8B 9 0.0% DATA 0 0 8B 17 0.0% CODE 0 0 0 0 0.0% Microchip Technology PIC18 Macro Assembler V1.44 build -154322312 Symbol Table Fri Mar 02 09:57:11 2018 l70 06B6 l81 07C4 l73 075C l82 07B2 __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000 __CFG_CP2$OFF 000000 __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000 l592 08A4 l593 0894 __CFG_CPB$OFF 000000 _PR2 000FBB __CFG_CPD$OFF 000000 u507 0724 u444 06E2 u445 06DC u464 0746 u465 0740 u497 069E _isr 0008 prod 000FF3 wreg 000FE8 _TXSTA1bits 000FAC _TXSTA2bits 000F72 l1100 07B2 l1028 0954 l1070 0894 l1160 06C0 l1158 06B6 ?_isr 0001 i2l60 0284 i2l55 02B4 i2l56 0062 i2l58 01DE main@message 00B0 _main 062C midi_note_on@channel 0031 fsr0h 000FEA fsr1h 000FE2 fsr2h 000FDA fsr0l 000FE9 indf2 000FDF fsr1l 000FE1 fsr2l 000FD9 btemp 0035 __CFG_BORV$190 000000 isr@i 0029 prodh 000FF4 prodl 000FF3 start 0300 __CFG_IESO$OFF 000000 midi_note_on@pkt 002F ___param_bank 000000 ??_isr 0001 _BAUDCON1bits 000FB8 _BAUDCON2bits 000F70 ?_main 0001 _RC1IF 007CF5 _TX1IF 007CF4 _TX2IF 007D24 _PORTA 000F80 _PORTB 000F81 _TRISA 000F92 _TRISB 000F93 __CFG_WRT0$OFF 000000 __CFG_WRT1$OFF 000000 __CFG_WRT2$OFF 000000 __CFG_WRT3$OFF 000000 __CFG_EBTR0$OFF 000000 __CFG_FCMEN$OFF 000000 __CFG_EBTR1$OFF 000000 __CFG_EBTR2$OFF 000000 __CFG_EBTR3$OFF 000000 __CFG_WRTB$OFF 000000 __CFG_WRTC$OFF 000000 __CFG_WRTD$OFF 000000 __CFG_EBTRB$OFF 000000 __end_of_init_hw 088A __CFG_MCLRE$EXTMCLR 000000 main@i 00AE pclath 000FFA tablat 000FF5 _eusart_write_midi 0762 __end_of_midi_set_status 0900 status 000FD8 wtemp6 0036 __CFG_HFOFST$ON 000000 ?_eusart_write_midi 002B __CFG_PBADEN$ON 000000 eusart_write_midi@length 002F __initialization 0938 midi_note_on@note 0033 __end_of_main 0762 ??_eusart_write_midi 002D midi_note_on@velocity 0034 ??_main 00A2 ?_midi_note_on 002F __activetblptr 000002 __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 07D6 _ANSELA 000F38 _ANSELB 000F39 _ANSELC 000F3A _ANSELD 000F3B _RC1REG 000FAE __CFG_WDTEN$OFF 000000 _SPBRG1 000FAF _SPBRG2 000F75 _TX1REG 000FAD _TX2REG 000F73 ?_eusart1_init 0001 ?_eusart2_init 0001 __CFG_XINST$OFF 000000 __CFG_STVREN$ON 000000 __end_of_midi_set_channel 08DC _memset 088A clear_0 093E midi_set_status@status 002C ??_midi_note_on 0035 __size_of_eusart2_putch 000C ??_init_hw 002A __mediumconst 0000 tblptrh 000FF7 tblptrl 000FF6 tblptru 000FF8 __accesstop 0060 __end_of__initialization 0944 ?_midi_set_status 002A ??_eusart1_init 002A ??_eusart2_init 002A ___rparam_used 000001 __pcstackCOMRAM 0001 __size_of_eusart_write_midi 0074 __pbssBANK0 0060 main@conf_message 00A7 _eusart2_putch 0952 __CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 002A i2u41_44 029C i2u41_45 0296 i2u34_44 00A4 i2u34_45 00A0 i2u35_44 0136 i2u35_45 0132 i2u38_44 01F2 i2u38_45 01EC _SPBRGH1 000FB0 _SPBRGH2 000F76 ?_eusart2_putch 0001 __end_of_midi_note_on 0838 eusart_write_midi@pkt 002B __CFG_PWRTEN$OFF 000000 __Hparam 0000 __Lparam 0000 __psmallconst 0600 __pcinit 0938 _isr$304 0027 _isr$305 0028 __size_of_memset 002C __ramtop 0600 __ptext0 062C __ptext1 07D6 __ptext2 08DC __ptext3 08B6 __ptext4 088A __ptext5 0838 __ptext6 0900 __ptext7 091C __ptext8 0762 __ptext9 0952 __end_of_eusart1_init 0938 __end_of_eusart2_init 091C _T2CONbits 000FBA _init_hw 0838 __size_of_isr 02F8 _keypresses 0060 end_of_initialization 0944 _midi_notes_steps_table 0601 memset@c 002C memset@n 002E memset@p 0030 __Lmediumconst 0000 postdec2 000FDD postinc0 000FEE postinc2 000FDE ?_midi_set_channel 002A ??_midi_set_channel 002E _TRISCbits 000F94 _TRISDbits 000F95 ??_eusart2_putch 002A midi_set_channel@channel 002C __end_of_memset 08B6 start_initialization 0938 __end_of_isr 0300 __size_of_midi_note_on 0062 __size_of_midi_set_status 0024 __size_of_eusart1_init 001C __size_of_eusart2_init 001C ??_memset 0030 _midi_note_on 07D6 __pcstackBANK0 00A2 midi_set_status@pkt 002A _eusart1_init 091C _eusart2_init 0900 __pintcode 0008 __CFG_PRICLKEN$ON 000000 __smallconst 0600 ?_init_hw 0001 _keys_data 0062 _PIE1bits 000F9D _PIR1bits 000F9E __CFG_WDTPS$32768 000000 ??_midi_set_status 002D __end_of_midi_notes_steps_table 062B __size_of_midi_set_channel 0026 eusart_write_midi@data 0031 isr@data_a 0025 isr@data_b 0026 __Hrparam 0000 __Lrparam 0000 __CFG_BOREN$SBORDIS 000000 __CFG_P2BMX$PORTD2 000000 eusart2_putch@c 002A __size_of_init_hw 0052 __end_of_eusart2_putch 095E __size_of_main 0136 int$flags 0035 _OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 002A midi_set_channel@pkt 002A intlevel2 0000 _RCSTA1bits 000FAB _RCSTA2bits 000F71 _OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000 _midi_set_channel 08B6 __CFG_FOSC$INTIO67 000000 _midi_set_status 08DC