Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312 Fri Feb 23 16:30:02 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 idataCOMRAM,global,class=CODE,delta=1,noexec 6 psect cinit,global,reloc=2,class=CODE,delta=1 7 psect bssCOMRAM,global,class=COMRAM,space=1,delta=1,noexec 8 psect dataCOMRAM,global,class=COMRAM,space=1,delta=1,noexec 9 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec 10 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec 11 psect text0,global,reloc=2,class=CODE,delta=1 12 psect text1,global,reloc=2,class=CODE,delta=1 13 psect text2,global,reloc=2,class=CODE,delta=1 14 psect text3,global,reloc=2,class=CODE,delta=1 15 psect text4,global,reloc=2,class=CODE,delta=1,group=1 16 psect text5,global,reloc=2,class=CODE,delta=1,inline 17 psect text6,global,reloc=2,class=CODE,delta=1 18 psect text7,global,reloc=2,class=CODE,delta=1 19 psect text8,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 idataCOMRAM 61 000424 __pidataCOMRAM: 62 opt stack 0 63 64 ;initializer for _midi_base_scale 65 000424 003C dw 60 66 0000 _ANSELD set 3899 67 0000 _ANSELC set 3898 68 0000 _ANSELB set 3897 69 0000 _ANSELA set 3896 70 0000 _RC1REG set 4014 71 0000 _TX1REG set 4013 72 0000 _TRISCbits set 3988 73 0000 _BAUDCON1bits set 4024 74 0000 _SPBRGH1 set 4016 75 0000 _SPBRG1 set 4015 76 0000 _RCSTA1bits set 4011 77 0000 _TXSTA1bits set 4012 78 0000 _PIE1bits set 3997 79 0000 _T2CONbits set 4026 80 0000 _PR2 set 4027 81 0000 _TRISDbits set 3989 82 0000 _TRISB set 3987 83 0000 _TRISA set 3986 84 0000 _OSCCONbits set 4051 85 0000 _OSCTUNEbits set 3995 86 0000 _INTCONbits set 4082 87 0000 _PORTAbits set 3968 88 0000 _PORTB set 3969 89 0000 _PORTA set 3968 90 0000 _PIR1bits set 3998 91 0000 _PORTDbits set 3971 92 0000 _RC1IF set 31989 93 0000 _TX1IF set 31988 94 95 ; #config settings 96 0000 97 psect cinit 98 000354 __pcinit: 99 opt stack 0 100 000354 start_initialization: 101 opt stack 0 102 000354 __initialization: 103 opt stack 0 104 105 ; Initialize objects allocated to COMRAM (2 bytes) 106 ; load TBLPTR registers with __pidataCOMRAM 107 000354 0E24 movlw low __pidataCOMRAM 108 000356 6EF6 movwf tblptrl,c 109 000358 0E04 movlw high __pidataCOMRAM 110 00035A 6EF7 movwf tblptrh,c 111 00035C 0E00 movlw low (__pidataCOMRAM shr (0+16)) 112 00035E 6EF8 movwf tblptru,c 113 000360 0009 tblrd *+ ;fetch initializer 114 000362 CFF5 F043 movff tablat,__pdataCOMRAM 115 000366 0009 tblrd *+ ;fetch initializer 116 000368 CFF5 F044 movff tablat,__pdataCOMRAM+1 117 118 ; Clear objects allocated to COMRAM (30 bytes) 119 00036C EE00 F025 lfsr 0,__pbssCOMRAM 120 000370 0E1E movlw 30 121 000372 clear_0: 122 000372 6AEE clrf postinc0,c 123 000374 06E8 decf wreg,f,c 124 000376 E1FD bnz clear_0 125 000378 end_of_initialization: 126 opt stack 0 127 000378 __end_of__initialization: 128 opt stack 0 129 000378 9045 bcf int$flags,0,c ;clear compiler interrupt flag (level 1) 130 00037A 9245 bcf int$flags,1,c ;clear compiler interrupt flag (level 2) 131 00037C 0E00 movlw low (__Lmediumconst shr (0+16)) 132 00037E 6EF8 movwf tblptru,c 133 000380 0100 movlb 0 134 000382 EF84 F001 goto _main ;jump to C main() function 135 tblptru equ 0xFF8 136 tblptrh equ 0xFF7 137 tblptrl equ 0xFF6 138 tablat equ 0xFF5 139 postinc0 equ 0xFEE 140 wreg equ 0xFE8 141 142 psect bssCOMRAM 143 000025 __pbssCOMRAM: 144 opt stack 0 145 000025 _keypresses: 146 opt stack 0 147 000025 ds 30 148 tblptru equ 0xFF8 149 tblptrh equ 0xFF7 150 tblptrl equ 0xFF6 151 tablat equ 0xFF5 152 postinc0 equ 0xFEE 153 wreg equ 0xFE8 154 155 psect dataCOMRAM 156 000043 __pdataCOMRAM: 157 opt stack 0 158 000043 _midi_base_scale: 159 opt stack 0 160 000043 ds 2 161 tblptru equ 0xFF8 162 tblptrh equ 0xFF7 163 tblptrl equ 0xFF6 164 tablat equ 0xFF5 165 postinc0 equ 0xFEE 166 wreg equ 0xFE8 167 168 psect cstackBANK0 169 000060 __pcstackBANK0: 170 opt stack 0 171 000060 ??_midi_note_on: 172 173 ; 1 bytes @ 0x0 174 000060 ds 2 175 000062 main@sample_message: 176 opt stack 0 177 178 ; 7 bytes @ 0x2 179 000062 ds 7 180 tblptru equ 0xFF8 181 tblptrh equ 0xFF7 182 tblptrl equ 0xFF6 183 tablat equ 0xFF5 184 postinc0 equ 0xFEE 185 wreg equ 0xFE8 186 187 psect cstackCOMRAM 188 000001 __pcstackCOMRAM: 189 opt stack 0 190 000001 ??_isr: 191 000001 192 ; 1 bytes @ 0x0 193 000001 ds 22 194 000017 _isr$592: 195 opt stack 0 196 197 ; 1 bytes @ 0x16 198 000017 ds 1 199 000018 isr@data: 200 opt stack 0 201 202 ; 1 bytes @ 0x17 203 000018 ds 1 204 000019 isr@i: 205 opt stack 0 206 207 ; 1 bytes @ 0x18 208 000019 ds 1 209 00001A putch@c: 210 opt stack 0 211 00001A midi_set_status@pkt: 212 opt stack 0 213 00001A midi_set_channel@pkt: 214 opt stack 0 215 00001A memset@p1: 216 opt stack 0 217 218 ; 2 bytes @ 0x19 219 00001A ds 1 220 00001B eusart_write_midi@pkt: 221 opt stack 0 222 223 ; 2 bytes @ 0x1A 224 00001B ds 1 225 00001C midi_set_status@status: 226 opt stack 0 227 00001C midi_set_channel@channel: 228 opt stack 0 229 00001C memset@c: 230 opt stack 0 231 232 ; 2 bytes @ 0x1B 233 00001C ds 1 234 00001D ??_eusart_write_midi: 235 00001D ??_midi_set_status: 236 237 ; 1 bytes @ 0x1C 238 00001D ds 1 239 00001E ??_midi_set_channel: 240 00001E memset@n: 241 opt stack 0 242 243 ; 2 bytes @ 0x1D 244 00001E ds 1 245 00001F eusart_write_midi@length: 246 opt stack 0 247 00001F midi_note_on@pkt: 248 opt stack 0 249 250 ; 2 bytes @ 0x1E 251 00001F ds 1 252 000020 memset@p: 253 opt stack 0 254 255 ; 2 bytes @ 0x1F 256 000020 ds 1 257 000021 eusart_write_midi@data: 258 opt stack 0 259 000021 midi_note_on@channel: 260 opt stack 0 261 262 ; 2 bytes @ 0x20 263 000021 ds 2 264 000023 midi_note_on@note: 265 opt stack 0 266 267 ; 1 bytes @ 0x22 268 000023 ds 1 269 000024 midi_note_on@velocity: 270 opt stack 0 271 272 ; 1 bytes @ 0x23 273 000024 ds 1 274 000025 tblptru equ 0xFF8 275 tblptrh equ 0xFF7 276 tblptrl equ 0xFF6 277 tablat equ 0xFF5 278 postinc0 equ 0xFEE 279 wreg equ 0xFE8 280 281 ; 1 bytes @ 0x24 282 ;; 283 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0 284 ;; 285 ;; *************** function _main ***************** 286 ;; Defined at: 287 ;; line 204 in file "main.c" 288 ;; Parameters: Size Location Type 289 ;; None 290 ;; Auto vars: Size Location Type 291 ;; sample_messa 7 2[BANK0 ] struct . 292 ;; data 1 0 unsigned char 293 ;; i 1 0 unsigned char 294 ;; Return value: Size Location Type 295 ;; 1 wreg void 296 ;; Registers used: 297 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack 298 ;; Tracked objects: 299 ;; On entry : 0/0 300 ;; On exit : 0/0 301 ;; Unchanged: 0/0 302 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 303 ;; Params: 0 0 0 0 0 0 0 304 ;; Locals: 0 7 0 0 0 0 0 305 ;; Temps: 0 0 0 0 0 0 0 306 ;; Totals: 0 7 0 0 0 0 0 307 ;;Total ram usage: 7 bytes 308 ;; Hardware stack levels required when called: 3 309 ;; This function calls: 310 ;; _eusart_write_midi 311 ;; _init_hw 312 ;; _memset 313 ;; _midi_note_on 314 ;; This function is called by: 315 ;; Startup code after reset 316 ;; This function uses a non-reentrant model 317 ;; 318 319 psect text0 320 000308 __ptext0: 321 opt stack 0 322 000308 _main: 323 opt stack 28 324 325 ;main.c: 206: unsigned char i, data; 326 ;main.c: 207: midi_message_t sample_message; 327 ;main.c: 210: init_hw(); 328 329 ;incstack = 0 330 000308 EC54 F001 call _init_hw ;wreg free 331 332 ;main.c: 213: memset(keypresses, 0, sizeof(keypresses)); 333 00030C 0E25 movlw low _keypresses 334 00030E 6E1A movwf memset@p1,c 335 000310 0E00 movlw high _keypresses 336 000312 6E1B movwf memset@p1+1,c 337 000314 0E00 movlw 0 338 000316 6E1D movwf memset@c+1,c 339 000318 0E00 movlw 0 340 00031A 6E1C movwf memset@c,c 341 00031C 0E00 movlw 0 342 00031E 6E1F movwf memset@n+1,c 343 000320 0E1E movlw 30 344 000322 6E1E movwf memset@n,c 345 000324 ECC3 F001 call _memset ;wreg free 346 347 ;main.c: 216: midi_note_on(&sample_message, 0x0, 0x3C, 0x7F); 348 000328 0E62 movlw low main@sample_message 349 00032A 6E1F movwf midi_note_on@pkt,c 350 00032C 0E00 movlw high main@sample_message 351 00032E 6E20 movwf midi_note_on@pkt+1,c 352 000330 0E00 movlw 0 353 000332 6E22 movwf midi_note_on@channel+1,c 354 000334 0E00 movlw 0 355 000336 6E21 movwf midi_note_on@channel,c 356 000338 0E3C movlw 60 357 00033A 6E23 movwf midi_note_on@note,c 358 00033C 0E7F movlw 127 359 00033E 6E24 movwf midi_note_on@velocity,c 360 000340 ECDE F000 call _midi_note_on ;wreg free 361 362 ;main.c: 217: PORTDbits.RD1 = 0; 363 000344 9283 bcf 3971,1,c ;volatile 364 000346 365 ;main.c: 221: eusart_write_midi(&sample_message); 366 000346 0E62 movlw low main@sample_message 367 000348 6E1B movwf eusart_write_midi@pkt,c 368 00034A 0E00 movlw high main@sample_message 369 00034C 6E1C movwf eusart_write_midi@pkt+1,c 370 00034E EC1A F001 call _eusart_write_midi ;wreg free 371 000352 D7F9 goto l70 372 000354 __end_of_main: 373 opt stack 0 374 tblptru equ 0xFF8 375 tblptrh equ 0xFF7 376 tblptrl equ 0xFF6 377 tablat equ 0xFF5 378 postinc0 equ 0xFEE 379 wreg equ 0xFE8 380 381 ;; *************** function _midi_note_on ***************** 382 ;; Defined at: 383 ;; line 62 in file "midi.c" 384 ;; Parameters: Size Location Type 385 ;; pkt 2 30[COMRAM] PTR struct . 386 ;; -> main@sample_message(7), 387 ;; channel 2 32[COMRAM] unsigned int 388 ;; note 1 34[COMRAM] enum E31 389 ;; velocity 1 35[COMRAM] unsigned char 390 ;; Auto vars: Size Location Type 391 ;; None 392 ;; Return value: Size Location Type 393 ;; 2 30[COMRAM] int 394 ;; Registers used: 395 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack 396 ;; Tracked objects: 397 ;; On entry : 0/0 398 ;; On exit : 0/0 399 ;; Unchanged: 0/0 400 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 401 ;; Params: 6 0 0 0 0 0 0 402 ;; Locals: 0 0 0 0 0 0 0 403 ;; Temps: 0 2 0 0 0 0 0 404 ;; Totals: 6 2 0 0 0 0 0 405 ;;Total ram usage: 8 bytes 406 ;; Hardware stack levels used: 1 407 ;; Hardware stack levels required when called: 2 408 ;; This function calls: 409 ;; _midi_set_channel 410 ;; _midi_set_status 411 ;; This function is called by: 412 ;; _main 413 ;; This function uses a non-reentrant model 414 ;; 415 416 psect text1 417 0001BC __ptext1: 418 opt stack 0 419 0001BC _midi_note_on: 420 opt stack 28 421 422 ;midi.c: 64: if (pkt == (0)) { 423 424 ;incstack = 0 425 0001BC 501F movf midi_note_on@pkt,w,c 426 0001BE 1020 iorwf midi_note_on@pkt+1,w,c 427 0001C0 B4D8 btfsc status,2,c 428 0001C2 0012 return 429 430 ;midi.c: 66: } 431 ;midi.c: 68: if (pkt->data == (0)) { 432 433 ;midi.c: 65: return -1; 434 ; Return value of _midi_note_on is never used 435 0001C4 0E03 movlw 3 436 0001C6 241F addwf midi_note_on@pkt,w,c 437 0001C8 0100 movlb 0 ; () banked 438 0001CA 6F60 movwf ??_midi_note_on& (0+255),b 439 0001CC 0E00 movlw 0 440 0001CE 2020 addwfc midi_note_on@pkt+1,w,c 441 0001D0 6F61 movwf (??_midi_note_on+1)& (0+255),b 442 0001D2 5160 movf ??_midi_note_on& (0+255),w,b 443 0001D4 1161 iorwf (??_midi_note_on+1)& (0+255),w,b 444 0001D6 B4D8 btfsc status,2,c 445 0001D8 0012 return 446 447 ; BSR set to: 0 448 ;midi.c: 70: } 449 ;midi.c: 72: midi_set_status(pkt, NOTE_ON); 450 451 ; BSR set to: 0 452 453 ; BSR set to: 0 454 ;midi.c: 69: return -2; 455 ; Return value of _midi_note_on is never used 456 0001DA C01F F01A movff midi_note_on@pkt,midi_set_status@pkt 457 0001DE C020 F01B movff midi_note_on@pkt+1,midi_set_status@pkt+1 458 0001E2 0E08 movlw 8 459 0001E4 6E1C movwf midi_set_status@status,c 460 0001E6 ECEC F001 call _midi_set_status ;wreg free 461 462 ;midi.c: 73: midi_set_channel(pkt, channel); 463 0001EA C01F F01A movff midi_note_on@pkt,midi_set_channel@pkt 464 0001EE C020 F01B movff midi_note_on@pkt+1,midi_set_channel@pkt+1 465 0001F2 C021 F01C movff midi_note_on@channel,midi_set_channel@channel 466 0001F6 C022 F01D movff midi_note_on@channel+1,midi_set_channel@channel+1 467 0001FA ECD9 F001 call _midi_set_channel ;wreg free 468 469 ;midi.c: 75: pkt->data[0] = note; 470 0001FE EE20 F003 lfsr 2,3 471 000202 501F movf midi_note_on@pkt,w,c 472 000204 26D9 addwf fsr2l,f,c 473 000206 5020 movf midi_note_on@pkt+1,w,c 474 000208 22DA addwfc fsr2h,f,c 475 00020A C023 FFDF movff midi_note_on@note,indf2 476 477 ;midi.c: 76: pkt->data[1] = velocity; 478 00020E EE20 F004 lfsr 2,4 479 000212 501F movf midi_note_on@pkt,w,c 480 000214 26D9 addwf fsr2l,f,c 481 000216 5020 movf midi_note_on@pkt+1,w,c 482 000218 22DA addwfc fsr2h,f,c 483 00021A C024 FFDF movff midi_note_on@velocity,indf2 484 485 ;midi.c: 79: pkt->data_size = 2; 486 00021E EE20 F001 lfsr 2,1 487 000222 501F movf midi_note_on@pkt,w,c 488 000224 26D9 addwf fsr2l,f,c 489 000226 5020 movf midi_note_on@pkt+1,w,c 490 000228 22DA addwfc fsr2h,f,c 491 00022A 0E02 movlw 2 492 00022C 6EDE movwf postinc2,c 493 00022E 0E00 movlw 0 494 000230 6EDD movwf postdec2,c 495 000232 0012 return 496 000234 __end_of_midi_note_on: 497 opt stack 0 498 tblptru equ 0xFF8 499 tblptrh equ 0xFF7 500 tblptrl equ 0xFF6 501 tablat equ 0xFF5 502 postinc0 equ 0xFEE 503 wreg equ 0xFE8 504 indf2 equ 0xFDF 505 postinc2 equ 0xFDE 506 postdec2 equ 0xFDD 507 fsr2h equ 0xFDA 508 fsr2l equ 0xFD9 509 status equ 0xFD8 510 511 ;; *************** function _midi_set_status ***************** 512 ;; Defined at: 513 ;; line 40 in file "midi.c" 514 ;; Parameters: Size Location Type 515 ;; pkt 2 25[COMRAM] PTR struct . 516 ;; -> main@sample_message(7), 517 ;; status 1 27[COMRAM] enum E40 518 ;; Auto vars: Size Location Type 519 ;; None 520 ;; Return value: Size Location Type 521 ;; 2 25[COMRAM] int 522 ;; Registers used: 523 ;; wreg, fsr2l, fsr2h, status,2, status,0 524 ;; Tracked objects: 525 ;; On entry : 0/0 526 ;; On exit : 0/0 527 ;; Unchanged: 0/0 528 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 529 ;; Params: 3 0 0 0 0 0 0 530 ;; Locals: 0 0 0 0 0 0 0 531 ;; Temps: 1 0 0 0 0 0 0 532 ;; Totals: 4 0 0 0 0 0 0 533 ;;Total ram usage: 4 bytes 534 ;; Hardware stack levels used: 1 535 ;; Hardware stack levels required when called: 1 536 ;; This function calls: 537 ;; Nothing 538 ;; This function is called by: 539 ;; _midi_note_on 540 ;; _midi_note_off 541 ;; This function uses a non-reentrant model 542 ;; 543 544 psect text2 545 0003D8 __ptext2: 546 opt stack 0 547 0003D8 _midi_set_status: 548 opt stack 28 549 550 ;midi.c: 42: if (pkt == (0)) { 551 552 ;incstack = 0 553 0003D8 501A movf midi_set_status@pkt,w,c 554 0003DA 101B iorwf midi_set_status@pkt+1,w,c 555 0003DC B4D8 btfsc status,2,c 556 0003DE 0012 return 557 558 ;midi.c: 44: } 559 ;midi.c: 46: pkt->status = status & 0x0F; 560 561 ;midi.c: 43: return -1; 562 ; Return value of _midi_set_status is never used 563 0003E0 C01C F01D movff midi_set_status@status,??_midi_set_status 564 0003E4 0E0F movlw 15 565 0003E6 161D andwf ??_midi_set_status,f,c 566 0003E8 C01A FFD9 movff midi_set_status@pkt,fsr2l 567 0003EC C01B FFDA movff midi_set_status@pkt+1,fsr2h 568 0003F0 50DF movf indf2,w,c 569 0003F2 181D xorwf ??_midi_set_status,w,c 570 0003F4 0BF0 andlw -16 571 0003F6 181D xorwf ??_midi_set_status,w,c 572 0003F8 6EDF movwf indf2,c 573 0003FA 0012 return 574 0003FC __end_of_midi_set_status: 575 opt stack 0 576 tblptru equ 0xFF8 577 tblptrh equ 0xFF7 578 tblptrl equ 0xFF6 579 tablat equ 0xFF5 580 postinc0 equ 0xFEE 581 wreg equ 0xFE8 582 indf2 equ 0xFDF 583 postinc2 equ 0xFDE 584 postdec2 equ 0xFDD 585 fsr2h equ 0xFDA 586 fsr2l equ 0xFD9 587 status equ 0xFD8 588 589 ;; *************** function _midi_set_channel ***************** 590 ;; Defined at: 591 ;; line 51 in file "midi.c" 592 ;; Parameters: Size Location Type 593 ;; pkt 2 25[COMRAM] PTR struct . 594 ;; -> main@sample_message(7), 595 ;; channel 2 27[COMRAM] unsigned int 596 ;; Auto vars: Size Location Type 597 ;; None 598 ;; Return value: Size Location Type 599 ;; 2 25[COMRAM] int 600 ;; Registers used: 601 ;; wreg, fsr2l, fsr2h, status,2, status,0 602 ;; Tracked objects: 603 ;; On entry : 0/0 604 ;; On exit : 0/0 605 ;; Unchanged: 0/0 606 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 607 ;; Params: 4 0 0 0 0 0 0 608 ;; Locals: 0 0 0 0 0 0 0 609 ;; Temps: 1 0 0 0 0 0 0 610 ;; Totals: 5 0 0 0 0 0 0 611 ;;Total ram usage: 5 bytes 612 ;; Hardware stack levels used: 1 613 ;; Hardware stack levels required when called: 1 614 ;; This function calls: 615 ;; Nothing 616 ;; This function is called by: 617 ;; _midi_note_on 618 ;; _midi_note_off 619 ;; This function uses a non-reentrant model 620 ;; 621 622 psect text3 623 0003B2 __ptext3: 624 opt stack 0 625 0003B2 _midi_set_channel: 626 opt stack 28 627 628 ;midi.c: 53: if (pkt == (0)) { 629 630 ;incstack = 0 631 0003B2 501A movf midi_set_channel@pkt,w,c 632 0003B4 101B iorwf midi_set_channel@pkt+1,w,c 633 0003B6 B4D8 btfsc status,2,c 634 0003B8 0012 return 635 636 ;midi.c: 55: } 637 ;midi.c: 57: pkt->channel = channel & 0x0F; 638 639 ;midi.c: 54: return -1; 640 ; Return value of _midi_set_channel is never used 641 0003BA C01C F01E movff midi_set_channel@channel,??_midi_set_channel 642 0003BE 0E0F movlw 15 643 0003C0 161E andwf ??_midi_set_channel,f,c 644 0003C2 C01A FFD9 movff midi_set_channel@pkt,fsr2l 645 0003C6 C01B FFDA movff midi_set_channel@pkt+1,fsr2h 646 0003CA 3A1E swapf ??_midi_set_channel,f,c 647 0003CC 50DF movf indf2,w,c 648 0003CE 181E xorwf ??_midi_set_channel,w,c 649 0003D0 0B0F andlw -241 650 0003D2 181E xorwf ??_midi_set_channel,w,c 651 0003D4 6EDF movwf indf2,c 652 0003D6 0012 return 653 0003D8 __end_of_midi_set_channel: 654 opt stack 0 655 tblptru equ 0xFF8 656 tblptrh equ 0xFF7 657 tblptrl equ 0xFF6 658 tablat equ 0xFF5 659 postinc0 equ 0xFEE 660 wreg equ 0xFE8 661 indf2 equ 0xFDF 662 postinc2 equ 0xFDE 663 postdec2 equ 0xFDD 664 fsr2h equ 0xFDA 665 fsr2l equ 0xFD9 666 status equ 0xFD8 667 668 ;; *************** function _memset ***************** 669 ;; Defined at: 670 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c" 671 ;; Parameters: Size Location Type 672 ;; p1 2 25[COMRAM] PTR void 673 ;; -> keypresses(30), 674 ;; c 2 27[COMRAM] int 675 ;; n 2 29[COMRAM] unsigned int 676 ;; Auto vars: Size Location Type 677 ;; p 2 31[COMRAM] PTR unsigned char 678 ;; -> keypresses(30), 679 ;; Return value: Size Location Type 680 ;; 2 25[COMRAM] PTR void 681 ;; Registers used: 682 ;; wreg, fsr2l, fsr2h, status,2, status,0 683 ;; Tracked objects: 684 ;; On entry : 0/0 685 ;; On exit : 0/0 686 ;; Unchanged: 0/0 687 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 688 ;; Params: 6 0 0 0 0 0 0 689 ;; Locals: 2 0 0 0 0 0 0 690 ;; Temps: 0 0 0 0 0 0 0 691 ;; Totals: 8 0 0 0 0 0 0 692 ;;Total ram usage: 8 bytes 693 ;; Hardware stack levels used: 1 694 ;; Hardware stack levels required when called: 1 695 ;; This function calls: 696 ;; Nothing 697 ;; This function is called by: 698 ;; _main 699 ;; This function uses a non-reentrant model 700 ;; 701 702 psect text4 703 000386 __ptext4: 704 opt stack 0 705 000386 _memset: 706 opt stack 29 707 708 ;incstack = 0 709 000386 C01A F020 movff memset@p1,memset@p 710 00038A C01B F021 movff memset@p1+1,memset@p+1 711 00038E D008 goto l569 712 000390 l1129: 713 000390 C020 FFD9 movff memset@p,fsr2l 714 000394 C021 FFDA movff memset@p+1,fsr2h 715 000398 C01C FFDF movff memset@c,indf2 716 00039C 4A20 infsnz memset@p,f,c 717 00039E 2A21 incf memset@p+1,f,c 718 0003A0 l569: 719 0003A0 061E decf memset@n,f,c 720 0003A2 A0D8 btfss status,0,c 721 0003A4 061F decf memset@n+1,f,c 722 0003A6 281E incf memset@n,w,c 723 0003A8 E1F3 bnz l1129 724 0003AA 281F incf memset@n+1,w,c 725 0003AC B4D8 btfsc status,2,c 726 0003AE 0012 return 727 0003B0 D7EF goto l570 728 0003B2 __end_of_memset: 729 opt stack 0 730 tblptru equ 0xFF8 731 tblptrh equ 0xFF7 732 tblptrl equ 0xFF6 733 tablat equ 0xFF5 734 postinc0 equ 0xFEE 735 wreg equ 0xFE8 736 indf2 equ 0xFDF 737 postinc2 equ 0xFDE 738 postdec2 equ 0xFDD 739 fsr2h equ 0xFDA 740 fsr2l equ 0xFD9 741 status equ 0xFD8 742 743 ;; *************** function _init_hw ***************** 744 ;; Defined at: 745 ;; line 140 in file "main.c" 746 ;; Parameters: Size Location Type 747 ;; None 748 ;; Auto vars: Size Location Type 749 ;; None 750 ;; Return value: Size Location Type 751 ;; 1 wreg void 752 ;; Registers used: 753 ;; wreg, status,2, cstack 754 ;; Tracked objects: 755 ;; On entry : 0/0 756 ;; On exit : 0/0 757 ;; Unchanged: 0/0 758 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 759 ;; Params: 0 0 0 0 0 0 0 760 ;; Locals: 0 0 0 0 0 0 0 761 ;; Temps: 0 0 0 0 0 0 0 762 ;; Totals: 0 0 0 0 0 0 0 763 ;;Total ram usage: 0 bytes 764 ;; Hardware stack levels used: 1 765 ;; Hardware stack levels required when called: 2 766 ;; This function calls: 767 ;; _eusart1_init 768 ;; This function is called by: 769 ;; _main 770 ;; This function uses a non-reentrant model 771 ;; 772 773 psect text5 774 0002A8 __ptext5: 775 opt stack 0 776 0002A8 _init_hw: 777 opt stack 28 778 779 ;main.c: 142: (INTCONbits.GIE = 0); 780 781 ;incstack = 0 782 0002A8 9EF2 bcf intcon,7,c ;volatile 783 784 ;main.c: 146: OSCTUNEbits.PLLEN = 1; 785 0002AA 8C9B bsf 3995,6,c ;volatile 786 787 ;main.c: 148: OSCTUNEbits.TUN = 0b011111; 788 0002AC 809B bsf 3995,0,c ;volatile 789 0002AE 829B bsf 3995,1,c ;volatile 790 0002B0 849B bsf 3995,2,c ;volatile 791 0002B2 869B bsf 3995,3,c ;volatile 792 0002B4 889B bsf 3995,4,c ;volatile 793 0002B6 9A9B bcf 3995,5,c ;volatile 794 795 ;main.c: 150: OSCCONbits.IRCF = 0b111; 796 0002B8 88D3 bsf 4051,4,c ;volatile 797 0002BA 8AD3 bsf 4051,5,c ;volatile 798 0002BC 8CD3 bsf 4051,6,c ;volatile 799 800 ;main.c: 152: OSCCONbits.SCS = 0b00; 801 0002BE 0EFC movlw -4 802 0002C0 16D3 andwf 4051,f,c ;volatile 803 804 ;main.c: 156: ANSELA = 0x00; 805 0002C2 0E00 movlw 0 806 0002C4 010F movlb 15 ; () banked 807 0002C6 6F38 movwf 56,b ;volatile 808 809 ;main.c: 157: ANSELB = 0x00; 810 0002C8 0E00 movlw 0 811 0002CA 6F39 movwf 57,b ;volatile 812 813 ;main.c: 158: ANSELC = 0x00; 814 0002CC 0E00 movlw 0 815 0002CE 6F3A movwf 58,b ;volatile 816 817 ;main.c: 159: ANSELD = 0x00; 818 0002D0 0E00 movlw 0 819 0002D2 6F3B movwf 59,b ;volatile 820 821 ; BSR set to: 15 822 ;main.c: 162: TRISA = 0xFF; 823 0002D4 6892 setf 3986,c ;volatile 824 825 ; BSR set to: 15 826 ;main.c: 163: TRISB = 0xFF; 827 0002D6 6893 setf 3987,c ;volatile 828 829 ; BSR set to: 15 830 ;main.c: 165: TRISDbits.TRISD1 = 0; 831 0002D8 9295 bcf 3989,1,c ;volatile 832 833 ; BSR set to: 15 834 ;main.c: 166: TRISDbits.TRISD2 = 0; 835 0002DA 9495 bcf 3989,2,c ;volatile 836 837 ; BSR set to: 15 838 ;main.c: 167: TRISDbits.TRISD3 = 0; 839 0002DC 9695 bcf 3989,3,c ;volatile 840 841 ; BSR set to: 15 842 ;main.c: 168: TRISDbits.TRISD4 = 0; 843 0002DE 9895 bcf 3989,4,c ;volatile 844 845 ; BSR set to: 15 846 ;main.c: 171: PORTDbits.RD1 = 1; 847 0002E0 8283 bsf 3971,1,c ;volatile 848 849 ; BSR set to: 15 850 ;main.c: 173: PORTDbits.RD2 = 0; 851 0002E2 9483 bcf 3971,2,c ;volatile 852 853 ; BSR set to: 15 854 ;main.c: 175: PORTDbits.RD3 = 1; 855 0002E4 8683 bsf 3971,3,c ;volatile 856 857 ; BSR set to: 15 858 ;main.c: 177: PORTDbits.RD4 = 0; 859 0002E6 9883 bcf 3971,4,c ;volatile 860 861 ;main.c: 181: PR2 = 128; 862 0002E8 0E80 movlw 128 863 0002EA 6EBB movwf 4027,c ;volatile 864 865 ;main.c: 183: T2CONbits.T2OUTPS = 0b0011; 866 0002EC 50BA movf 4026,w,c ;volatile 867 0002EE 0B87 andlw -121 868 0002F0 0918 iorlw 24 869 0002F2 6EBA movwf 4026,c ;volatile 870 871 ;main.c: 185: T2CONbits.T2CKPS = 0b11; 872 0002F4 0E03 movlw 3 873 0002F6 12BA iorwf 4026,f,c ;volatile 874 875 ; BSR set to: 15 876 ;main.c: 187: T2CONbits.TMR2ON = 1; 877 0002F8 84BA bsf 4026,2,c ;volatile 878 879 ; BSR set to: 15 880 ;main.c: 190: PIE1bits.TMR2IE = 1; 881 0002FA 829D bsf 3997,1,c ;volatile 882 883 ; BSR set to: 15 884 ;main.c: 191: PIR1bits.TMR2IF = 0; 885 0002FC 929E bcf 3998,1,c ;volatile 886 887 ; BSR set to: 15 888 ;main.c: 194: INTCONbits.PEIE = 1; 889 0002FE 8CF2 bsf intcon,6,c ;volatile 890 891 ; BSR set to: 15 892 ;main.c: 197: eusart1_init(); 893 000300 ECFE F001 call _eusart1_init ;wreg free 894 895 ;main.c: 199: (INTCONbits.GIE = 1); 896 000304 8EF2 bsf intcon,7,c ;volatile 897 000306 0012 return ;funcret 898 000308 __end_of_init_hw: 899 opt stack 0 900 tblptru equ 0xFF8 901 tblptrh equ 0xFF7 902 tblptrl equ 0xFF6 903 tablat equ 0xFF5 904 intcon equ 0xFF2 905 postinc0 equ 0xFEE 906 wreg equ 0xFE8 907 indf2 equ 0xFDF 908 postinc2 equ 0xFDE 909 postdec2 equ 0xFDD 910 fsr2h equ 0xFDA 911 fsr2l equ 0xFD9 912 status equ 0xFD8 913 914 ;; *************** function _eusart1_init ***************** 915 ;; Defined at: 916 ;; line 4 in file "rs232.c" 917 ;; Parameters: Size Location Type 918 ;; None 919 ;; Auto vars: Size Location Type 920 ;; None 921 ;; Return value: Size Location Type 922 ;; 1 wreg void 923 ;; Registers used: 924 ;; wreg, status,2 925 ;; Tracked objects: 926 ;; On entry : 0/0 927 ;; On exit : 0/0 928 ;; Unchanged: 0/0 929 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 930 ;; Params: 0 0 0 0 0 0 0 931 ;; Locals: 0 0 0 0 0 0 0 932 ;; Temps: 0 0 0 0 0 0 0 933 ;; Totals: 0 0 0 0 0 0 0 934 ;;Total ram usage: 0 bytes 935 ;; Hardware stack levels used: 1 936 ;; Hardware stack levels required when called: 1 937 ;; This function calls: 938 ;; Nothing 939 ;; This function is called by: 940 ;; _init_hw 941 ;; This function uses a non-reentrant model 942 ;; 943 944 psect text6 945 0003FC __ptext6: 946 opt stack 0 947 0003FC _eusart1_init: 948 opt stack 28 949 950 ;rs232.c: 7: TXSTA1bits.SYNC = 0; 951 952 ;incstack = 0 953 0003FC 98AC bcf 4012,4,c ;volatile 954 955 ;rs232.c: 8: TXSTA1bits.TX9 = 0; 956 0003FE 9CAC bcf 4012,6,c ;volatile 957 958 ;rs232.c: 11: RCSTA1bits.SPEN = 1; 959 000400 8EAB bsf 4011,7,c ;volatile 960 961 ;rs232.c: 12: SPBRG1 = 31; 962 000402 0E1F movlw 31 963 000404 6EAF movwf 4015,c ;volatile 964 965 ;rs232.c: 13: SPBRGH1 = 0; 966 000406 0E00 movlw 0 967 000408 6EB0 movwf 4016,c ;volatile 968 969 ;rs232.c: 14: TXSTA1bits.BRGH = 0; 970 00040A 94AC bcf 4012,2,c ;volatile 971 972 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0; 973 00040C 96B8 bcf 4024,3,c ;volatile 974 975 ;rs232.c: 18: TRISCbits.TRISC7 = 1; 976 00040E 8E94 bsf 3988,7,c ;volatile 977 978 ;rs232.c: 19: TRISCbits.TRISC6 = 1; 979 000410 8C94 bsf 3988,6,c ;volatile 980 981 ;rs232.c: 20: RCSTA1bits.CREN = 1; 982 000412 88AB bsf 4011,4,c ;volatile 983 984 ;rs232.c: 21: TXSTA1bits.TXEN = 1; 985 000414 8AAC bsf 4012,5,c ;volatile 986 000416 0012 return ;funcret 987 000418 __end_of_eusart1_init: 988 opt stack 0 989 tblptru equ 0xFF8 990 tblptrh equ 0xFF7 991 tblptrl equ 0xFF6 992 tablat equ 0xFF5 993 intcon equ 0xFF2 994 postinc0 equ 0xFEE 995 wreg equ 0xFE8 996 indf2 equ 0xFDF 997 postinc2 equ 0xFDE 998 postdec2 equ 0xFDD 999 fsr2h equ 0xFDA 1000 fsr2l equ 0xFD9 1001 status equ 0xFD8 1002 1003 ;; *************** function _eusart_write_midi ***************** 1004 ;; Defined at: 1005 ;; line 226 in file "main.c" 1006 ;; Parameters: Size Location Type 1007 ;; pkt 2 26[COMRAM] PTR const struct . 1008 ;; -> main@sample_message(7), 1009 ;; Auto vars: Size Location Type 1010 ;; data 2 32[COMRAM] PTR unsigned char 1011 ;; -> sample_message.data(4), main@sample_message(7), 1012 ;; length 2 30[COMRAM] unsigned int 1013 ;; Return value: Size Location Type 1014 ;; 2 26[COMRAM] int 1015 ;; Registers used: 1016 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack 1017 ;; Tracked objects: 1018 ;; On entry : 0/0 1019 ;; On exit : 0/0 1020 ;; Unchanged: 0/0 1021 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1022 ;; Params: 2 0 0 0 0 0 0 1023 ;; Locals: 4 0 0 0 0 0 0 1024 ;; Temps: 2 0 0 0 0 0 0 1025 ;; Totals: 8 0 0 0 0 0 0 1026 ;;Total ram usage: 8 bytes 1027 ;; Hardware stack levels used: 1 1028 ;; Hardware stack levels required when called: 2 1029 ;; This function calls: 1030 ;; _putch 1031 ;; This function is called by: 1032 ;; _main 1033 ;; This function uses a non-reentrant model 1034 ;; 1035 1036 psect text7 1037 000234 __ptext7: 1038 opt stack 0 1039 000234 _eusart_write_midi: 1040 opt stack 28 1041 1042 ;main.c: 228: size_t length; 1043 ;main.c: 229: uint8_t *data; 1044 ;main.c: 231: if (pkt == (0)) { 1045 1046 ;incstack = 0 1047 000234 501B movf eusart_write_midi@pkt,w,c 1048 000236 101C iorwf eusart_write_midi@pkt+1,w,c 1049 000238 B4D8 btfsc status,2,c 1050 00023A 0012 return 1051 1052 ;main.c: 233: } 1053 ;main.c: 235: length = pkt->data_size; 1054 1055 ;main.c: 232: return -1; 1056 ; Return value of _eusart_write_midi is never used 1057 00023C EE20 F001 lfsr 2,1 1058 000240 501B movf eusart_write_midi@pkt,w,c 1059 000242 26D9 addwf fsr2l,f,c 1060 000244 501C movf eusart_write_midi@pkt+1,w,c 1061 000246 22DA addwfc fsr2h,f,c 1062 000248 CFDE F01F movff postinc2,eusart_write_midi@length 1063 00024C CFDD F020 movff postdec2,eusart_write_midi@length+1 1064 1065 ;main.c: 236: data = (uint8_t *) pkt->data; 1066 000250 0E03 movlw 3 1067 000252 241B addwf eusart_write_midi@pkt,w,c 1068 000254 6E21 movwf eusart_write_midi@data,c 1069 000256 0E00 movlw 0 1070 000258 201C addwfc eusart_write_midi@pkt+1,w,c 1071 00025A 6E22 movwf eusart_write_midi@data+1,c 1072 1073 ;main.c: 238: putch((char)((pkt->status << 4) | pkt->channel)); 1074 00025C C01B FFD9 movff eusart_write_midi@pkt,fsr2l 1075 000260 C01C FFDA movff eusart_write_midi@pkt+1,fsr2h 1076 000264 38DF swapf indf2,w,c 1077 000266 0B0F andlw 15 1078 000268 6E1D movwf ??_eusart_write_midi& (0+255),c 1079 00026A C01B FFD9 movff eusart_write_midi@pkt,fsr2l 1080 00026E C01C FFDA movff eusart_write_midi@pkt+1,fsr2h 1081 000272 50DF movf indf2,w,c 1082 000274 0B0F andlw 15 1083 000276 6E1E movwf (??_eusart_write_midi+1)& (0+255),c 1084 000278 381E swapf ??_eusart_write_midi+1,w,c 1085 00027A 0BF0 andlw 240 1086 00027C 101D iorwf ??_eusart_write_midi,w,c 1087 00027E EC0C F002 call _putch 1088 1089 ;main.c: 240: while (length--) { 1090 000282 D009 goto l78 1091 000284 l1163: 1092 1093 ;main.c: 241: putch((char) *(data++)); 1094 000284 C021 FFD9 movff eusart_write_midi@data,fsr2l 1095 000288 C022 FFDA movff eusart_write_midi@data+1,fsr2h 1096 00028C 50DF movf indf2,w,c 1097 00028E EC0C F002 call _putch 1098 000292 4A21 infsnz eusart_write_midi@data,f,c 1099 000294 2A22 incf eusart_write_midi@data+1,f,c 1100 000296 l78: 1101 000296 061F decf eusart_write_midi@length,f,c 1102 000298 A0D8 btfss status,0,c 1103 00029A 0620 decf eusart_write_midi@length+1,f,c 1104 00029C 281F incf eusart_write_midi@length,w,c 1105 00029E E1F2 bnz l1163 1106 0002A0 2820 incf eusart_write_midi@length+1,w,c 1107 0002A2 B4D8 btfsc status,2,c 1108 0002A4 0012 return 1109 0002A6 D7EE goto l79 1110 0002A8 __end_of_eusart_write_midi: 1111 opt stack 0 1112 tblptru equ 0xFF8 1113 tblptrh equ 0xFF7 1114 tblptrl equ 0xFF6 1115 tablat equ 0xFF5 1116 intcon equ 0xFF2 1117 postinc0 equ 0xFEE 1118 wreg equ 0xFE8 1119 indf2 equ 0xFDF 1120 postinc2 equ 0xFDE 1121 postdec2 equ 0xFDD 1122 fsr2h equ 0xFDA 1123 fsr2l equ 0xFD9 1124 status equ 0xFD8 1125 1126 ;; *************** function _putch ***************** 1127 ;; Defined at: 1128 ;; line 29 in file "rs232.c" 1129 ;; Parameters: Size Location Type 1130 ;; c 1 wreg unsigned char 1131 ;; Auto vars: Size Location Type 1132 ;; c 1 25[COMRAM] unsigned char 1133 ;; Return value: Size Location Type 1134 ;; 1 wreg void 1135 ;; Registers used: 1136 ;; wreg 1137 ;; Tracked objects: 1138 ;; On entry : 0/0 1139 ;; On exit : 0/0 1140 ;; Unchanged: 0/0 1141 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1142 ;; Params: 0 0 0 0 0 0 0 1143 ;; Locals: 1 0 0 0 0 0 0 1144 ;; Temps: 0 0 0 0 0 0 0 1145 ;; Totals: 1 0 0 0 0 0 0 1146 ;;Total ram usage: 1 bytes 1147 ;; Hardware stack levels used: 1 1148 ;; Hardware stack levels required when called: 1 1149 ;; This function calls: 1150 ;; Nothing 1151 ;; This function is called by: 1152 ;; _eusart_write_midi 1153 ;; _getche 1154 ;; This function uses a non-reentrant model 1155 ;; 1156 1157 psect text8 1158 000418 __ptext8: 1159 opt stack 0 1160 000418 _putch: 1161 opt stack 28 1162 1163 ;incstack = 0 1164 ;putch@c stored from wreg 1165 000418 6E1A movwf putch@c,c 1166 00041A 1167 ;rs232.c: 31: while (!TX1IF); 1168 00041A A89E btfss 3998,4,c ;volatile 1169 00041C D7FE goto l1071 1170 1171 ;rs232.c: 32: TX1REG = c; 1172 00041E C01A FFAD movff putch@c,4013 ;volatile 1173 000422 0012 return ;funcret 1174 000424 __end_of_putch: 1175 opt stack 0 1176 tblptru equ 0xFF8 1177 tblptrh equ 0xFF7 1178 tblptrl equ 0xFF6 1179 tablat equ 0xFF5 1180 intcon equ 0xFF2 1181 postinc0 equ 0xFEE 1182 wreg equ 0xFE8 1183 indf2 equ 0xFDF 1184 postinc2 equ 0xFDE 1185 postdec2 equ 0xFDD 1186 fsr2h equ 0xFDA 1187 fsr2l equ 0xFD9 1188 status equ 0xFD8 1189 1190 ;; *************** function _isr ***************** 1191 ;; Defined at: 1192 ;; line 101 in file "main.c" 1193 ;; Parameters: Size Location Type 1194 ;; None 1195 ;; Auto vars: Size Location Type 1196 ;; i 1 24[COMRAM] unsigned char 1197 ;; data 1 23[COMRAM] unsigned char 1198 ;; Return value: Size Location Type 1199 ;; 1 wreg void 1200 ;; Registers used: 1201 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh 1202 ;; Tracked objects: 1203 ;; On entry : 0/0 1204 ;; On exit : 0/0 1205 ;; Unchanged: 0/0 1206 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 1207 ;; Params: 0 0 0 0 0 0 0 1208 ;; Locals: 3 0 0 0 0 0 0 1209 ;; Temps: 22 0 0 0 0 0 0 1210 ;; Totals: 25 0 0 0 0 0 0 1211 ;;Total ram usage: 25 bytes 1212 ;; Hardware stack levels used: 1 1213 ;; This function calls: 1214 ;; Nothing 1215 ;; This function is called by: 1216 ;; Interrupt level 2 1217 ;; This function uses a non-reentrant model 1218 ;; 1219 1220 psect intcode 1221 000008 __pintcode: 1222 opt stack 0 1223 000008 _isr: 1224 opt stack 28 1225 1226 ;incstack = 0 1227 000008 8245 bsf btemp,1,c ;set compiler interrupt flag (level 2) 1228 00000A CFFA F005 movff pclath,??_isr+4 1229 00000E CFFB F006 movff pclatu,??_isr+5 1230 000012 CFE9 F007 movff fsr0l,??_isr+6 1231 000016 CFEA F008 movff fsr0h,??_isr+7 1232 00001A CFE1 F009 movff fsr1l,??_isr+8 1233 00001E CFE2 F00A movff fsr1h,??_isr+9 1234 000022 CFD9 F00B movff fsr2l,??_isr+10 1235 000026 CFDA F00C movff fsr2h,??_isr+11 1236 00002A CFF3 F00D movff prodl,??_isr+12 1237 00002E CFF4 F00E movff prodh,??_isr+13 1238 000032 CFF6 F00F movff tblptrl,??_isr+14 1239 000036 CFF7 F010 movff tblptrh,??_isr+15 1240 00003A CFF8 F011 movff tblptru,??_isr+16 1241 00003E CFF5 F012 movff tablat,??_isr+17 1242 000042 C045 F013 movff btemp,??_isr+18 1243 000046 C046 F014 movff btemp+1,??_isr+19 1244 00004A C047 F015 movff btemp+2,??_isr+20 1245 00004E C048 F016 movff btemp+3,??_isr+21 1246 1247 ;main.c: 103: unsigned char i, data; 1248 ;main.c: 105: PORTDbits.RD3 = 0; 1249 000052 9683 bcf 3971,3,c ;volatile 1250 1251 ;main.c: 107: if (PIR1bits.TMR2IF) { 1252 000054 A29E btfss 3998,1,c ;volatile 1253 000056 D089 goto i2l55 1254 1255 ;main.c: 109: data = PORTA; 1256 000058 CF80 F018 movff 3968,isr@data ;volatile 1257 1258 ;main.c: 110: i = 7; 1259 00005C 0E07 movlw 7 1260 00005E 6E19 movwf isr@i,c 1261 000060 1262 ;main.c: 112: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); 1263 000060 5019 movf isr@i,w,c 1264 000062 0D02 mullw 2 1265 000064 0E25 movlw low _keypresses 1266 000066 24F3 addwf prodl,w,c 1267 000068 6ED9 movwf fsr2l,c 1268 00006A 0E00 movlw high _keypresses 1269 00006C 20F4 addwfc prodh,w,c 1270 00006E 6EDA movwf fsr2h,c 1271 000070 CFDE F001 movff postinc2,??_isr 1272 000074 CFDD F002 movff postdec2,??_isr+1 1273 000078 90D8 bcf status,0,c 1274 00007A 3601 rlcf ??_isr,f,c 1275 00007C 3602 rlcf ??_isr+1,f,c 1276 00007E C019 F003 movff isr@i,??_isr+2 1277 000082 C018 F004 movff isr@data,??_isr+3 1278 000086 2A03 incf ??_isr+2,f,c 1279 000088 D002 goto i2u29_44 1280 00008A i2u29_45: 1281 00008A 90D8 bcf status,0,c 1282 00008C 3204 rrcf ??_isr+3,f,c 1283 00008E i2u29_44: 1284 00008E 2E03 decfsz ??_isr+2,f,c 1285 000090 D7FC goto i2u29_45 1286 000092 0E01 movlw 1 1287 000094 1604 andwf ??_isr+3,f,c 1288 000096 5004 movf ??_isr+3,w,c 1289 000098 1201 iorwf ??_isr,f,c 1290 00009A 0E00 movlw 0 1291 00009C 1202 iorwf ??_isr+1,f,c 1292 00009E 5019 movf isr@i,w,c 1293 0000A0 0D02 mullw 2 1294 0000A2 0E25 movlw low _keypresses 1295 0000A4 24F3 addwf prodl,w,c 1296 0000A6 6ED9 movwf fsr2l,c 1297 0000A8 0E00 movlw high _keypresses 1298 0000AA 20F4 addwfc prodh,w,c 1299 0000AC 6EDA movwf fsr2h,c 1300 0000AE C001 FFDE movff ??_isr,postinc2 1301 0000B2 C002 FFDD movff ??_isr+1,postdec2 1302 1303 ;main.c: 113: } while (i--); 1304 0000B6 0619 decf isr@i,f,c 1305 0000B8 2819 incf isr@i,w,c 1306 0000BA A4D8 btfss status,2,c 1307 0000BC D7D1 goto i2l56 1308 1309 ;main.c: 115: data = PORTB; 1310 0000BE CF81 F018 movff 3969,isr@data ;volatile 1311 1312 ;main.c: 116: i = 7; 1313 0000C2 0E07 movlw 7 1314 0000C4 6E19 movwf isr@i,c 1315 0000C6 1316 ;main.c: 118: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); 1317 0000C6 5019 movf isr@i,w,c 1318 0000C8 0D02 mullw 2 1319 0000CA 0E25 movlw low _keypresses 1320 0000CC 24F3 addwf prodl,w,c 1321 0000CE 6ED9 movwf fsr2l,c 1322 0000D0 0E00 movlw high _keypresses 1323 0000D2 20F4 addwfc prodh,w,c 1324 0000D4 6EDA movwf fsr2h,c 1325 0000D6 CFDE F001 movff postinc2,??_isr 1326 0000DA CFDD F002 movff postdec2,??_isr+1 1327 0000DE 90D8 bcf status,0,c 1328 0000E0 3601 rlcf ??_isr,f,c 1329 0000E2 3602 rlcf ??_isr+1,f,c 1330 0000E4 C019 F003 movff isr@i,??_isr+2 1331 0000E8 C018 F004 movff isr@data,??_isr+3 1332 0000EC 2A03 incf ??_isr+2,f,c 1333 0000EE D002 goto i2u31_44 1334 0000F0 i2u31_45: 1335 0000F0 90D8 bcf status,0,c 1336 0000F2 3204 rrcf ??_isr+3,f,c 1337 0000F4 i2u31_44: 1338 0000F4 2E03 decfsz ??_isr+2,f,c 1339 0000F6 D7FC goto i2u31_45 1340 0000F8 0E01 movlw 1 1341 0000FA 1604 andwf ??_isr+3,f,c 1342 0000FC 5004 movf ??_isr+3,w,c 1343 0000FE 1201 iorwf ??_isr,f,c 1344 000100 0E00 movlw 0 1345 000102 1202 iorwf ??_isr+1,f,c 1346 000104 5019 movf isr@i,w,c 1347 000106 0D02 mullw 2 1348 000108 0E25 movlw low _keypresses 1349 00010A 24F3 addwf prodl,w,c 1350 00010C 6ED9 movwf fsr2l,c 1351 00010E 0E00 movlw high _keypresses 1352 000110 20F4 addwfc prodh,w,c 1353 000112 6EDA movwf fsr2h,c 1354 000114 C001 FFDE movff ??_isr,postinc2 1355 000118 C002 FFDD movff ??_isr+1,postdec2 1356 1357 ;main.c: 119: } while (i-- - 8); 1358 00011C 0EF8 movlw 248 1359 00011E 6E01 movwf ??_isr& (0+255),c 1360 000120 0EFF movlw 255 1361 000122 6E02 movwf (??_isr+1)& (0+255),c 1362 000124 0619 decf isr@i,f,c 1363 000126 2819 incf isr@i,w,c 1364 000128 6E03 movwf (??_isr+2)& (0+255),c 1365 00012A 6A04 clrf (??_isr+3)& (0+255),c 1366 00012C 5001 movf ??_isr,w,c 1367 00012E 2603 addwf ??_isr+2,f,c 1368 000130 5002 movf ??_isr+1,w,c 1369 000132 2204 addwfc ??_isr+3,f,c 1370 000134 5003 movf ??_isr+2,w,c 1371 000136 1004 iorwf ??_isr+3,w,c 1372 000138 A4D8 btfss status,2,c 1373 00013A D7C5 goto i2l58 1374 1375 ;main.c: 129: PORTDbits.RD4 = PORTAbits.RA0; 1376 00013C A080 btfss 3968,0,c ;volatile 1377 00013E D002 bra i2u33_45 1378 000140 8883 bsf 3971,4,c ;volatile 1379 000142 D001 bra i2u33_47 1380 000144 i2u33_45: 1381 000144 9883 bcf 3971,4,c ;volatile 1382 000146 i2u33_47: 1383 1384 ;main.c: 130: PORTDbits.RD2 = (keypresses[0] && !(keypresses[0] & 0xFF00)); 1385 000146 0E00 movlw 0 1386 000148 6E17 movwf _isr$592,c 1387 00014A 5025 movf _keypresses,w,c ;volatile 1388 00014C 1026 iorwf _keypresses+1,w,c ;volatile 1389 00014E B4D8 btfsc status,2,c 1390 000150 D006 goto i2l61 1391 000152 0EFF movlw 255 1392 000154 1426 andwf _keypresses+1,w,c ;volatile 1393 000156 A4D8 btfss status,2,c 1394 000158 D002 goto i2l61 1395 00015A 0E01 movlw 1 1396 00015C 6E17 movwf _isr$592,c 1397 00015E i2l61: 1398 00015E B017 btfsc _isr$592,0,c 1399 000160 D002 bra i2u36_45 1400 000162 9483 bcf 3971,2,c ;volatile 1401 000164 D001 bra i2u36_46 1402 000166 i2u36_45: 1403 000166 8483 bsf 3971,2,c ;volatile 1404 000168 i2u36_46: 1405 1406 ;main.c: 133: PIR1bits.TMR2IF = 0; 1407 000168 929E bcf 3998,1,c ;volatile 1408 00016A i2l55: 1409 1410 ;main.c: 134: } 1411 ;main.c: 136: PORTDbits.RD3 = 1; 1412 00016A 8683 bsf 3971,3,c ;volatile 1413 00016C C016 F048 movff ??_isr+21,btemp+3 1414 000170 C015 F047 movff ??_isr+20,btemp+2 1415 000174 C014 F046 movff ??_isr+19,btemp+1 1416 000178 C013 F045 movff ??_isr+18,btemp 1417 00017C C012 FFF5 movff ??_isr+17,tablat 1418 000180 C011 FFF8 movff ??_isr+16,tblptru 1419 000184 C010 FFF7 movff ??_isr+15,tblptrh 1420 000188 C00F FFF6 movff ??_isr+14,tblptrl 1421 00018C C00E FFF4 movff ??_isr+13,prodh 1422 000190 C00D FFF3 movff ??_isr+12,prodl 1423 000194 C00C FFDA movff ??_isr+11,fsr2h 1424 000198 C00B FFD9 movff ??_isr+10,fsr2l 1425 00019C C00A FFE2 movff ??_isr+9,fsr1h 1426 0001A0 C009 FFE1 movff ??_isr+8,fsr1l 1427 0001A4 C008 FFEA movff ??_isr+7,fsr0h 1428 0001A8 C007 FFE9 movff ??_isr+6,fsr0l 1429 0001AC C006 FFFB movff ??_isr+5,pclatu 1430 0001B0 C005 FFFA movff ??_isr+4,pclath 1431 0001B4 9245 bcf btemp,1,c ;clear compiler interrupt flag (level 2) 1432 0001B6 0011 retfie f 1433 0001B8 __end_of_isr: 1434 opt stack 0 1435 0000 pclatu equ 0xFFB 1436 pclath equ 0xFFA 1437 tblptru equ 0xFF8 1438 tblptrh equ 0xFF7 1439 tblptrl equ 0xFF6 1440 tablat equ 0xFF5 1441 prodh equ 0xFF4 1442 prodl equ 0xFF3 1443 intcon equ 0xFF2 1444 postinc0 equ 0xFEE 1445 fsr0h equ 0xFEA 1446 fsr0l equ 0xFE9 1447 wreg equ 0xFE8 1448 fsr1h equ 0xFE2 1449 fsr1l equ 0xFE1 1450 indf2 equ 0xFDF 1451 postinc2 equ 0xFDE 1452 postdec2 equ 0xFDD 1453 fsr2h equ 0xFDA 1454 fsr2l equ 0xFD9 1455 status equ 0xFD8 1456 pclatu equ 0xFFB 1457 pclath equ 0xFFA 1458 tblptru equ 0xFF8 1459 tblptrh equ 0xFF7 1460 tblptrl equ 0xFF6 1461 tablat equ 0xFF5 1462 prodh equ 0xFF4 1463 prodl equ 0xFF3 1464 intcon equ 0xFF2 1465 postinc0 equ 0xFEE 1466 fsr0h equ 0xFEA 1467 fsr0l equ 0xFE9 1468 wreg equ 0xFE8 1469 fsr1h equ 0xFE2 1470 fsr1l equ 0xFE1 1471 indf2 equ 0xFDF 1472 postinc2 equ 0xFDE 1473 postdec2 equ 0xFDD 1474 fsr2h equ 0xFDA 1475 fsr2l equ 0xFD9 1476 status equ 0xFD8 1477 1478 psect rparam 1479 0000 pclatu equ 0xFFB 1480 pclath equ 0xFFA 1481 tblptru equ 0xFF8 1482 tblptrh equ 0xFF7 1483 tblptrl equ 0xFF6 1484 tablat equ 0xFF5 1485 prodh equ 0xFF4 1486 prodl equ 0xFF3 1487 intcon equ 0xFF2 1488 postinc0 equ 0xFEE 1489 fsr0h equ 0xFEA 1490 fsr0l equ 0xFE9 1491 wreg equ 0xFE8 1492 fsr1h equ 0xFE2 1493 fsr1l equ 0xFE1 1494 indf2 equ 0xFDF 1495 postinc2 equ 0xFDE 1496 postdec2 equ 0xFDD 1497 fsr2h equ 0xFDA 1498 fsr2l equ 0xFD9 1499 status equ 0xFD8 1500 1501 psect temp 1502 000045 btemp: 1503 opt stack 0 1504 000045 ds 1 1505 0000 int$flags set btemp 1506 0000 wtemp6 set btemp+1 1507 pclatu equ 0xFFB 1508 pclath equ 0xFFA 1509 tblptru equ 0xFF8 1510 tblptrh equ 0xFF7 1511 tblptrl equ 0xFF6 1512 tablat equ 0xFF5 1513 prodh equ 0xFF4 1514 prodl equ 0xFF3 1515 intcon equ 0xFF2 1516 postinc0 equ 0xFEE 1517 fsr0h equ 0xFEA 1518 fsr0l equ 0xFE9 1519 wreg equ 0xFE8 1520 fsr1h equ 0xFE2 1521 fsr1l equ 0xFE1 1522 indf2 equ 0xFDF 1523 postinc2 equ 0xFDE 1524 postdec2 equ 0xFDD 1525 fsr2h equ 0xFDA 1526 fsr2l equ 0xFD9 1527 status equ 0xFD8 Data Sizes: Strings 0 Constant 0 Data 2 BSS 30 Persistent 0 Stack 0 Auto Spaces: Space Size Autos Used COMRAM 94 36 68 BANK0 160 9 9 BANK1 256 0 0 BANK2 256 0 0 BANK3 256 0 0 BANK4 256 0 0 BANK5 256 0 0 Pointer List with Targets: memset@p1 PTR void size(2) Largest target is 30 -> keypresses(COMRAM[30]), memset@p PTR unsigned char size(2) Largest target is 30 -> keypresses(COMRAM[30]), midi_note_on@pkt PTR struct . size(2) Largest target is 7 -> main@sample_message(BANK0[7]), midi_set_channel@pkt PTR struct . size(2) Largest target is 7 -> main@sample_message(BANK0[7]), midi_set_status@pkt PTR struct . size(2) Largest target is 7 -> main@sample_message(BANK0[7]), eusart_write_midi@data PTR unsigned char size(2) Largest target is 7 -> sample_message.data(COMRAM[4]), main@sample_message(BANK0[7]), eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7 -> main@sample_message(BANK0[7]), sp__memset PTR void size(2) Largest target is 30 -> keypresses(COMRAM[30]), Critical Paths under _main in COMRAM _main->_midi_note_on _midi_note_on->_midi_set_channel _eusart_write_midi->_putch Critical Paths under _isr in COMRAM None. Critical Paths under _main in BANK0 _main->_midi_note_on 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 9 9 0 2419 2 BANK0 7 7 0 _eusart_write_midi _init_hw _memset _midi_note_on --------------------------------------------------------------------------------- (1) _midi_note_on 8 2 6 1576 30 COMRAM 6 0 6 0 BANK0 2 2 0 _midi_set_channel _midi_set_status --------------------------------------------------------------------------------- (2) _midi_set_status 4 1 3 453 25 COMRAM 4 1 3 --------------------------------------------------------------------------------- (2) _midi_set_channel 5 1 4 453 25 COMRAM 5 1 4 --------------------------------------------------------------------------------- (1) _memset 8 2 6 407 25 COMRAM 8 2 6 --------------------------------------------------------------------------------- (1) _init_hw 0 0 0 0 _eusart1_init --------------------------------------------------------------------------------- (2) _eusart1_init 0 0 0 0 --------------------------------------------------------------------------------- (1) _eusart_write_midi 8 6 2 338 26 COMRAM 8 6 2 _putch --------------------------------------------------------------------------------- (2) _putch 1 1 0 22 25 COMRAM 1 1 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 2 --------------------------------------------------------------------------------- (Depth) Function Calls Base Space Used Autos Params Refs --------------------------------------------------------------------------------- (3) _isr 25 25 0 248 0 COMRAM 25 25 0 --------------------------------------------------------------------------------- Estimated maximum stack depth 3 --------------------------------------------------------------------------------- Call Graph Graphs: _main (ROOT) _eusart_write_midi _putch _init_hw _eusart1_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 9 9 4 5.6% BITCOMRAM 5E 0 0 0 0.0% COMRAM 5E 24 44 1 72.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 4D 9 0.0% DATA 0 0 4D 17 0.0% CODE 0 0 0 0 0.0% Microchip Technology PIC18 Macro Assembler V1.44 build -154322312 Symbol Table Fri Feb 23 16:30:02 2018 l70 0346 l78 0296 l79 0284 __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000 __CFG_CP2$OFF 000000 __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000 l570 0390 l569 03A0 __CFG_CPB$OFF 000000 _PR2 000FBB __CFG_CPD$OFF 000000 _isr 0008 prod 000FF3 wreg 000FE8 _TXSTA1bits 000FAC l1071 041A l1129 0390 l1163 0284 ?_isr 0001 i2l61 015E i2l55 016A i2l56 0060 i2l58 00C6 _main 0308 midi_note_on@channel 0021 fsr0h 000FEA fsr1h 000FE2 fsr2h 000FDA fsr0l 000FE9 indf2 000FDF fsr1l 000FE1 fsr2l 000FD9 btemp 0045 __CFG_BORV$190 000000 isr@i 0019 prodh 000FF4 prodl 000FF3 start 01B8 __CFG_IESO$OFF 000000 midi_note_on@pkt 001F ___param_bank 000000 ??_isr 0001 _BAUDCON1bits 000FB8 ?_main 0001 _RC1IF 007CF5 __CFG_WDTEN$ON 000000 _TX1IF 007CF4 _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 0308 __CFG_MCLRE$EXTMCLR 000000 _putch 0418 pclath 000FFA tablat 000FF5 _eusart_write_midi 0234 __end_of_midi_set_status 03FC status 000FD8 wtemp6 0046 __CFG_HFOFST$ON 000000 ?_eusart_write_midi 001B __CFG_PBADEN$ON 000000 eusart_write_midi@length 001F __initialization 0354 midi_note_on@note 0023 __end_of_main 0354 ??_eusart_write_midi 001D midi_note_on@velocity 0024 ??_main 0025 ?_midi_note_on 001F __activetblptr 000002 __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 02A8 _ANSELA 000F38 ?_putch 0001 _ANSELB 000F39 _ANSELC 000F3A _ANSELD 000F3B _RC1REG 000FAE _SPBRG1 000FAF _TX1REG 000FAD ?_eusart1_init 0001 __CFG_XINST$OFF 000000 __CFG_STVREN$ON 000000 __end_of_midi_set_channel 03D8 _memset 0386 clear_0 0372 midi_set_status@status 001C ??_midi_note_on 0060 ??_init_hw 001A __pdataCOMRAM 0043 tblptrh 000FF7 tblptrl 000FF6 tblptru 000FF8 putch@c 001A __accesstop 0060 __end_of__initialization 0378 ?_midi_set_status 001A ??_eusart1_init 001A ___rparam_used 000001 __pcstackCOMRAM 0001 __end_of_putch 0424 __size_of_eusart_write_midi 0074 ??_putch 001A __CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 001A i2u31_44 00F4 i2u31_45 00F0 i2u33_45 0144 i2u33_47 0146 i2u36_45 0166 i2u36_46 0168 i2u29_44 008E i2u29_45 008A _SPBRGH1 000FB0 __end_of_midi_note_on 0234 eusart_write_midi@pkt 001B __CFG_PWRTEN$OFF 000000 __Hparam 0000 __Lparam 0000 __pcinit 0354 _isr$592 0017 __size_of_memset 002C __ramtop 0600 __ptext0 0308 __ptext1 01BC __ptext2 03D8 __ptext3 03B2 __ptext4 0386 __ptext5 02A8 __ptext6 03FC __ptext7 0234 __ptext8 0418 __end_of_eusart1_init 0418 _T2CONbits 000FBA _init_hw 02A8 __size_of_isr 01B0 _keypresses 0025 end_of_initialization 0378 isr@data 0018 memset@c 001C memset@n 001E memset@p 0020 __Lmediumconst 0000 postdec2 000FDD postinc0 000FEE postinc2 000FDE ?_midi_set_channel 001A _PORTAbits 000F80 _PORTDbits 000F83 ??_midi_set_channel 001E __CFG_FOSC$INTIO7 000000 _TRISCbits 000F94 _TRISDbits 000F95 midi_set_channel@channel 001C __pidataCOMRAM 0424 __end_of_memset 03B2 start_initialization 0354 __end_of_isr 01B8 __size_of_midi_note_on 0078 __size_of_midi_set_status 0024 __size_of_eusart1_init 001C ??_memset 0020 _midi_note_on 01BC __pbssCOMRAM 0025 __pcstackBANK0 0060 midi_set_status@pkt 001A _eusart1_init 03FC __pintcode 0008 __CFG_PRICLKEN$ON 000000 main@sample_message 0062 ?_init_hw 0001 __size_of_putch 000C _PIE1bits 000F9D _PIR1bits 000F9E __CFG_WDTPS$32768 000000 ??_midi_set_status 001D __size_of_midi_set_channel 0026 eusart_write_midi@data 0021 __Hrparam 0000 __Lrparam 0000 __CFG_BOREN$SBORDIS 000000 __CFG_P2BMX$PORTD2 000000 __size_of_init_hw 0060 _midi_base_scale 0043 __size_of_main 004C int$flags 0045 _OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 001A midi_set_channel@pkt 001A intlevel2 0000 _RCSTA1bits 000FAB _OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000 _midi_set_channel 03B2 _midi_set_status 03D8