summaryrefslogtreecommitdiffstats
path: root/src/dist/default/production/src.production.lst
blob: a97f5ccca92006a14e588a5d11e312dc49e6547e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
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