From a588c9f6e6f0946844ed27e618d792cd025d4362 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Feb 2018 16:31:32 +0100 Subject: No time for commit msg --- src/dist/default/production/src.production.lst | 1813 ++++++++++++++++++++++++ 1 file changed, 1813 insertions(+) create mode 100644 src/dist/default/production/src.production.lst (limited to 'src/dist/default/production/src.production.lst') diff --git a/src/dist/default/production/src.production.lst b/src/dist/default/production/src.production.lst new file mode 100644 index 0000000..a97f5cc --- /dev/null +++ b/src/dist/default/production/src.production.lst @@ -0,0 +1,1813 @@ + + +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 -- cgit v1.2.1