summaryrefslogtreecommitdiffstats
path: root/src/dist/default/production/src.production.lst
diff options
context:
space:
mode:
Diffstat (limited to 'src/dist/default/production/src.production.lst')
-rw-r--r--src/dist/default/production/src.production.lst1813
1 files changed, 1813 insertions, 0 deletions
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