summaryrefslogtreecommitdiffstats
path: root/src/dist/default/production/src.production.lst
blob: e52a54bb9d2e15251b3e127bd1bdcfb4fdee568e (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
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312 
                                                                                               Fri Mar 02 09:57:11 2018

Microchip Technology Omniscient Code Generator v1.44 (Free mode) build 201709140600
     1                           	processor	18F45K22
     2                           	fnconf	rparam,??,?,0
     3                           	opt	pw 120
     4                           	opt	lm
     5                           	psect	smallconst,global,reloc=2,class=SMALLCONST,delta=1,noexec
     6                           	psect	cinit,global,reloc=2,class=CODE,delta=1
     7                           	psect	bssBANK0,global,class=BANK0,space=1,delta=1,lowdata,noexec
     8                           	psect	cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
     9                           	psect	cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
    10                           	psect	text0,global,reloc=2,class=CODE,delta=1
    11                           	psect	text1,global,reloc=2,class=CODE,delta=1
    12                           	psect	text2,global,reloc=2,class=CODE,delta=1
    13                           	psect	text3,global,reloc=2,class=CODE,delta=1
    14                           	psect	text4,global,reloc=2,class=CODE,delta=1,group=1
    15                           	psect	text5,global,reloc=2,class=CODE,delta=1,inline
    16                           	psect	text6,global,reloc=2,class=CODE,delta=1
    17                           	psect	text7,global,reloc=2,class=CODE,delta=1
    18                           	psect	text8,global,reloc=2,class=CODE,delta=1
    19                           	psect	text9,global,reloc=2,class=CODE,delta=1
    20                           	psect	intcode,global,reloc=2,class=CODE,delta=1
    21                           	psect	intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec
    22                           	psect	rparam,global,class=COMRAM,space=1,delta=1,noexec
    23                           	psect	temp,global,ovrld,common,class=COMRAM,space=1,delta=1
    24  0000                     
    25                           ; Version 1.44
    26                           ; Generated 14/09/2017 GMT
    27                           ; 
    28                           ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip")
    29                           ; All rights reserved.
    30                           ; 
    31                           ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
      +                          ip").
    32                           ; 
    33                           ; Redistribution and use in source and binary forms, with or without modification, are
    34                           ; permitted provided that the following conditions are met:
    35                           ; 
    36                           ;     1. Redistributions of source code must retain the above copyright notice, this lis
      +                          t of
    37                           ;        conditions and the following disclaimer.
    38                           ; 
    39                           ;     2. Redistributions in binary form must reproduce the above copyright notice, this 
      +                          list
    40                           ;        of conditions and the following disclaimer in the documentation and/or other
    41                           ;        materials provided with the distribution.
    42                           ; 
    43                           ;     3. Microchip's name may not be used to endorse or promote products derived from th
      +                          is
    44                           ;        software without specific prior written permission.
    45                           ; 
    46                           ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    47                           ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
      +                          OR
    48                           ; PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
      +                          T,
    49                           ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
    50                           ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
    51                           ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
      +                          RICT
    52                           ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
      +                          SE OF
    53                           ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    54                           ; 
    55                           ; 
    56                           ; Code-generator required, PIC18F45K22 Definitions
    57                           ; 
    58                           ; SFR Addresses
    59  0000                     
    60                           	psect	smallconst
    61  000600                     __psmallconst:
    62                           	opt stack 0
    63  000600  00                 	db	0
    64  000601                     _midi_notes_steps_table:
    65                           	opt stack 0
    66  000601  0024               	dw	36
    67  000603  0026               	dw	38
    68  000605  0028               	dw	40
    69  000607  0029               	dw	41
    70  000609  002B               	dw	43
    71  00060B  002D               	dw	45
    72  00060D  002F               	dw	47
    73  00060F  0030               	dw	48
    74  000611  0032               	dw	50
    75  000613  0034               	dw	52
    76  000615  0035               	dw	53
    77  000617  0037               	dw	55
    78  000619  0039               	dw	57
    79  00061B  003E               	dw	62
    80  00061D  003C               	dw	60
    81  00061F  003B               	dw	59
    82  000621  0040               	dw	64
    83  000623  0041               	dw	65
    84  000625  0043               	dw	67
    85  000627  0045               	dw	69
    86  000629  0047               	dw	71
    87  00062B                     __end_of_midi_notes_steps_table:
    88                           	opt stack 0
    89  0000                     _ANSELD	set	3899
    90  0000                     _ANSELC	set	3898
    91  0000                     _ANSELB	set	3897
    92  0000                     _ANSELA	set	3896
    93  0000                     _RC1REG	set	4014
    94  0000                     _TX2REG	set	3955
    95  0000                     _TX1REG	set	4013
    96  0000                     _TRISDbits	set	3989
    97  0000                     _BAUDCON2bits	set	3952
    98  0000                     _SPBRGH2	set	3958
    99  0000                     _SPBRG2	set	3957
   100  0000                     _RCSTA2bits	set	3953
   101  0000                     _TXSTA2bits	set	3954
   102  0000                     _TRISCbits	set	3988
   103  0000                     _BAUDCON1bits	set	4024
   104  0000                     _SPBRGH1	set	4016
   105  0000                     _SPBRG1	set	4015
   106  0000                     _RCSTA1bits	set	4011
   107  0000                     _TXSTA1bits	set	4012
   108  0000                     _PIE1bits	set	3997
   109  0000                     _T2CONbits	set	4026
   110  0000                     _PR2	set	4027
   111  0000                     _TRISB	set	3987
   112  0000                     _TRISA	set	3986
   113  0000                     _OSCCONbits	set	4051
   114  0000                     _OSCTUNEbits	set	3995
   115  0000                     _INTCONbits	set	4082
   116  0000                     _PORTB	set	3969
   117  0000                     _PORTA	set	3968
   118  0000                     _PIR1bits	set	3998
   119  0000                     _RC1IF	set	31989
   120  0000                     _TX2IF	set	32036
   121  0000                     _TX1IF	set	31988
   122                           
   123                           ; #config settings
   124  00062B  00                 	db	0	; dummy byte at the end
   125  0000                     
   126                           	psect	cinit
   127  000938                     __pcinit:
   128                           	opt stack 0
   129  000938                     start_initialization:
   130                           	opt stack 0
   131  000938                     __initialization:
   132                           	opt stack 0
   133                           
   134                           ; Clear objects allocated to BANK0 (66 bytes)
   135  000938  EE00  F060         	lfsr	0,__pbssBANK0
   136  00093C  0E42               	movlw	66
   137  00093E                     clear_0:
   138  00093E  6AEE               	clrf	postinc0,c
   139  000940  06E8               	decf	wreg,f,c
   140  000942  E1FD               	bnz	clear_0
   141  000944                     end_of_initialization:
   142                           	opt stack 0
   143  000944                     __end_of__initialization:
   144                           	opt stack 0
   145  000944  9035               	bcf	int$flags,0,c	;clear compiler interrupt flag (level 1)
   146  000946  9235               	bcf	int$flags,1,c	;clear compiler interrupt flag (level 2)
   147  000948  0E00               	movlw	low (__Lmediumconst shr (0+16))
   148  00094A  6EF8               	movwf	tblptru,c
   149  00094C  0100               	movlb	0
   150  00094E  EF16  F003         	goto	_main	;jump to C main() function
   151                           tblptru	equ	0xFF8
   152                           postinc0	equ	0xFEE
   153                           wreg	equ	0xFE8
   154                           
   155                           	psect	bssBANK0
   156  000060                     __pbssBANK0:
   157                           	opt stack 0
   158  000060                     _keypresses:
   159                           	opt stack 0
   160  000060                     	ds	2
   161  000062                     _keys_data:
   162                           	opt stack 0
   163  000062                     	ds	64
   164                           tblptru	equ	0xFF8
   165                           postinc0	equ	0xFEE
   166                           wreg	equ	0xFE8
   167                           
   168                           	psect	cstackBANK0
   169  0000A2                     __pcstackBANK0:
   170                           	opt stack 0
   171  0000A2                     ??_main:
   172                           
   173                           ; 1 bytes @ 0x0
   174  0000A2                     	ds	5
   175  0000A7                     main@conf_message:
   176                           	opt stack 0
   177                           
   178                           ; 7 bytes @ 0x5
   179  0000A7                     	ds	7
   180  0000AE                     main@i:
   181                           	opt stack 0
   182                           
   183                           ; 2 bytes @ 0xC
   184  0000AE                     	ds	2
   185  0000B0                     main@message:
   186                           	opt stack 0
   187                           
   188                           ; 7 bytes @ 0xE
   189  0000B0                     	ds	7
   190                           tblptru	equ	0xFF8
   191                           postinc0	equ	0xFEE
   192                           wreg	equ	0xFE8
   193                           
   194                           	psect	cstackCOMRAM
   195  000001                     __pcstackCOMRAM:
   196                           	opt stack 0
   197  000001                     ??_isr:
   198  000001                     
   199                           ; 1 bytes @ 0x0
   200  000001                     	ds	36
   201  000025                     isr@data_a:
   202                           	opt stack 0
   203                           
   204                           ; 1 bytes @ 0x24
   205  000025                     	ds	1
   206  000026                     isr@data_b:
   207                           	opt stack 0
   208                           
   209                           ; 1 bytes @ 0x25
   210  000026                     	ds	1
   211  000027                     _isr$304:
   212                           	opt stack 0
   213                           
   214                           ; 1 bytes @ 0x26
   215  000027                     	ds	1
   216  000028                     _isr$305:
   217                           	opt stack 0
   218                           
   219                           ; 1 bytes @ 0x27
   220  000028                     	ds	1
   221  000029                     isr@i:
   222                           	opt stack 0
   223                           
   224                           ; 1 bytes @ 0x28
   225  000029                     	ds	1
   226  00002A                     eusart2_putch@c:
   227                           	opt stack 0
   228  00002A                     midi_set_status@pkt:
   229                           	opt stack 0
   230  00002A                     midi_set_channel@pkt:
   231                           	opt stack 0
   232  00002A                     memset@p1:
   233                           	opt stack 0
   234                           
   235                           ; 2 bytes @ 0x29
   236  00002A                     	ds	1
   237  00002B                     eusart_write_midi@pkt:
   238                           	opt stack 0
   239                           
   240                           ; 2 bytes @ 0x2A
   241  00002B                     	ds	1
   242  00002C                     midi_set_status@status:
   243                           	opt stack 0
   244  00002C                     midi_set_channel@channel:
   245                           	opt stack 0
   246  00002C                     memset@c:
   247                           	opt stack 0
   248                           
   249                           ; 2 bytes @ 0x2B
   250  00002C                     	ds	1
   251  00002D                     ??_eusart_write_midi:
   252  00002D                     ??_midi_set_status:
   253                           
   254                           ; 1 bytes @ 0x2C
   255  00002D                     	ds	1
   256  00002E                     ??_midi_set_channel:
   257  00002E                     memset@n:
   258                           	opt stack 0
   259                           
   260                           ; 2 bytes @ 0x2D
   261  00002E                     	ds	1
   262  00002F                     eusart_write_midi@length:
   263                           	opt stack 0
   264  00002F                     midi_note_on@pkt:
   265                           	opt stack 0
   266                           
   267                           ; 2 bytes @ 0x2E
   268  00002F                     	ds	1
   269  000030                     memset@p:
   270                           	opt stack 0
   271                           
   272                           ; 2 bytes @ 0x2F
   273  000030                     	ds	1
   274  000031                     eusart_write_midi@data:
   275                           	opt stack 0
   276  000031                     midi_note_on@channel:
   277                           	opt stack 0
   278                           
   279                           ; 2 bytes @ 0x30
   280  000031                     	ds	2
   281  000033                     midi_note_on@note:
   282                           	opt stack 0
   283                           
   284                           ; 1 bytes @ 0x32
   285  000033                     	ds	1
   286  000034                     midi_note_on@velocity:
   287                           	opt stack 0
   288                           
   289                           ; 1 bytes @ 0x33
   290  000034                     	ds	1
   291  000035                     tblptru	equ	0xFF8
   292                           postinc0	equ	0xFEE
   293                           wreg	equ	0xFE8
   294                           
   295                           ; 1 bytes @ 0x34
   296 ;;
   297 ;;Main: autosize = 0, tempsize = 5, incstack = 0, save=0
   298 ;;
   299 ;; *************** function _main *****************
   300 ;; Defined at:
   301 ;;		line 221 in file "main.c"
   302 ;; Parameters:    Size  Location     Type
   303 ;;		None
   304 ;; Auto vars:     Size  Location     Type
   305 ;;  message         7   14[BANK0 ] struct .
   306 ;;  conf_message    7    5[BANK0 ] struct .
   307 ;;  i               2   12[BANK0 ] unsigned int 
   308 ;; Return value:  Size  Location     Type
   309 ;;                  1    wreg      void 
   310 ;; Registers used:
   311 ;;		wreg, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
   312 ;; Tracked objects:
   313 ;;		On entry : 0/0
   314 ;;		On exit  : 0/0
   315 ;;		Unchanged: 0/0
   316 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   317 ;;      Params:         0       0       0       0       0       0       0
   318 ;;      Locals:         0      16       0       0       0       0       0
   319 ;;      Temps:          0       5       0       0       0       0       0
   320 ;;      Totals:         0      21       0       0       0       0       0
   321 ;;Total ram usage:       21 bytes
   322 ;; Hardware stack levels required when called:    3
   323 ;; This function calls:
   324 ;;		_eusart_write_midi
   325 ;;		_init_hw
   326 ;;		_memset
   327 ;;		_midi_note_on
   328 ;; This function is called by:
   329 ;;		Startup code after reset
   330 ;; This function uses a non-reentrant model
   331 ;;
   332                           
   333                           	psect	text0
   334  00062C                     __ptext0:
   335                           	opt stack 0
   336  00062C                     _main:
   337                           	opt stack 28
   338                           
   339                           ;main.c: 223: unsigned i;
   340                           ;main.c: 224: midi_message_t conf_message, message;
   341                           ;main.c: 227: init_hw();
   342                           
   343                           ;incstack = 0
   344  00062C  EC1C  F004         	call	_init_hw	;wreg free
   345                           
   346                           ;main.c: 230: memset(keys_data, 0, sizeof(keys_data));
   347  000630  0E62               	movlw	low _keys_data
   348  000632  6E2A               	movwf	memset@p1,c
   349  000634  0E00               	movlw	high _keys_data
   350  000636  6E2B               	movwf	memset@p1+1,c
   351  000638  0E00               	movlw	0
   352  00063A  6E2D               	movwf	memset@c+1,c
   353  00063C  0E00               	movlw	0
   354  00063E  6E2C               	movwf	memset@c,c
   355  000640  0E00               	movlw	0
   356  000642  6E2F               	movwf	memset@n+1,c
   357  000644  0E40               	movlw	64
   358  000646  6E2E               	movwf	memset@n,c
   359  000648  EC45  F004         	call	_memset	;wreg free
   360                           
   361                           ;main.c: 232: (INTCONbits.GIE = 1);
   362  00064C  8EF2               	bsf	intcon,7,c	;volatile
   363                           
   364                           ;main.c: 239: conf_message.status = PROGRAM_CHANGE;
   365  00064E  0100               	movlb	0	; () banked
   366  000650  51A7               	movf	main@conf_message& (0+255),w,b
   367  000652  0BF0               	andlw	-16
   368  000654  090C               	iorlw	12
   369  000656  6FA7               	movwf	main@conf_message& (0+255),b
   370                           
   371                           ; BSR set to: 0
   372                           ;main.c: 240: conf_message.channel = 0;
   373  000658  99A7               	bcf	main@conf_message& (0+255),4,b
   374  00065A  9BA7               	bcf	main@conf_message& (0+255),5,b
   375  00065C  9DA7               	bcf	main@conf_message& (0+255),6,b
   376  00065E  9FA7               	bcf	main@conf_message& (0+255),7,b
   377                           
   378                           ; BSR set to: 0
   379                           ;main.c: 241: conf_message.data[0] = 9;
   380  000660  0E09               	movlw	9
   381  000662  6FAA               	movwf	(main@conf_message+3)& (0+255),b
   382                           
   383                           ; BSR set to: 0
   384                           ;main.c: 242: conf_message.data_size = 1;
   385  000664  0E00               	movlw	0
   386  000666  6FA9               	movwf	(main@conf_message+2)& (0+255),b
   387  000668  0E01               	movlw	1
   388  00066A  6FA8               	movwf	(main@conf_message+1)& (0+255),b
   389                           
   390                           ; BSR set to: 0
   391                           ;main.c: 244: midi_note_on(&message, 0, midi_notes_steps_table[0], 127);
   392  00066C  0EB0               	movlw	low main@message
   393  00066E  6E2F               	movwf	midi_note_on@pkt,c
   394  000670  0E00               	movlw	high main@message
   395  000672  6E30               	movwf	midi_note_on@pkt+1,c
   396  000674  0E00               	movlw	0
   397  000676  6E32               	movwf	midi_note_on@channel+1,c
   398  000678  0E00               	movlw	0
   399  00067A  6E31               	movwf	midi_note_on@channel,c
   400  00067C  0E01               	movlw	low _midi_notes_steps_table
   401  00067E  6EF6               	movwf	tblptrl,c
   402  000680                     	if	1	;There is more than 1 active tblptr byte
   403  000680  0E06               	movlw	high _midi_notes_steps_table
   404  000682  6EF7               	movwf	tblptrh,c
   405  000684                     	endif
   406  000684                     	if	0	;There are less than 3 active tblptr bytes
   407  000684                     	endif
   408  000684  0008               	tblrd		*
   409  000686  CFF5 F033          	movff	tablat,midi_note_on@note
   410  00068A  0E7F               	movlw	127
   411  00068C  6E34               	movwf	midi_note_on@velocity,c
   412  00068E  ECEB  F003         	call	_midi_note_on	;wreg free
   413                           
   414                           ;main.c: 246: _delay((unsigned long)((500)*(64000000/4000.0)));
   415  000692  0E29               	movlw	41
   416  000694  0100               	movlb	0	; () banked
   417  000696  6FA3               	movwf	(??_main+1)& (0+255),b
   418  000698  0E96               	movlw	150
   419  00069A  6FA2               	movwf	??_main& (0+255),b
   420  00069C  0E7F               	movlw	127
   421  00069E                     u497:
   422  00069E  2EE8               	decfsz	wreg,f,c
   423  0006A0  D7FE               	bra	u497
   424  0006A2  2FA2               	decfsz	??_main& (0+255),f,b
   425  0006A4  D7FC               	bra	u497
   426  0006A6  2FA3               	decfsz	(??_main+1)& (0+255),f,b
   427  0006A8  D7FA               	bra	u497
   428                           
   429                           ;main.c: 247: eusart_write_midi(&conf_message);
   430  0006AA  0EA7               	movlw	low main@conf_message
   431  0006AC  6E2B               	movwf	eusart_write_midi@pkt,c
   432  0006AE  0E00               	movlw	high main@conf_message
   433  0006B0  6E2C               	movwf	eusart_write_midi@pkt+1,c
   434  0006B2  ECB1  F003         	call	_eusart_write_midi	;wreg free
   435  0006B6                     l1158:
   436                           
   437                           ;main.c: 252: for (i = 0; i < 16; i++) {
   438  0006B6  0E00               	movlw	0
   439  0006B8  0100               	movlb	0	; () banked
   440  0006BA  6FAF               	movwf	(main@i+1)& (0+255),b
   441  0006BC  0E00               	movlw	0
   442  0006BE  6FAE               	movwf	main@i& (0+255),b
   443  0006C0                     l1160:
   444                           
   445                           ; BSR set to: 0
   446  0006C0  51AF               	movf	(main@i+1)& (0+255),w,b
   447  0006C2  E1F9               	bnz	l1158
   448  0006C4  0E10               	movlw	16
   449  0006C6  5DAE               	subwf	main@i& (0+255),w,b
   450  0006C8  B0D8               	btfsc	status,0,c
   451  0006CA  D7F5               	goto	l70
   452                           
   453                           ; BSR set to: 0
   454                           ;main.c: 253: if (keypresses & (1<<i)) {
   455                           
   456                           ; BSR set to: 0
   457                           
   458                           ; BSR set to: 0
   459  0006CC  C0AE  F0A2         	movff	main@i,??_main
   460  0006D0  0E01               	movlw	1
   461  0006D2  6FA3               	movwf	(??_main+1)& (0+255),b
   462  0006D4  0E00               	movlw	0
   463  0006D6  6FA4               	movwf	(??_main+2)& (0+255),b
   464  0006D8  2BA2               	incf	??_main& (0+255),f,b
   465  0006DA  D003               	goto	u444
   466  0006DC                     u445:
   467  0006DC  90D8               	bcf	status,0,c
   468  0006DE  37A3               	rlcf	(??_main+1)& (0+255),f,b
   469  0006E0  37A4               	rlcf	(??_main+2)& (0+255),f,b
   470  0006E2                     u444:
   471  0006E2  2FA2               	decfsz	??_main& (0+255),f,b
   472  0006E4  D7FB               	goto	u445
   473  0006E6  0100               	movlb	0	; () banked
   474  0006E8  5160               	movf	_keypresses& (0+255),w,b	;volatile
   475  0006EA  17A3               	andwf	(??_main+1)& (0+255),f,b
   476  0006EC  5161               	movf	(_keypresses+1)& (0+255),w,b	;volatile
   477  0006EE  17A4               	andwf	(??_main+2)& (0+255),f,b
   478  0006F0  51A3               	movf	(??_main+1)& (0+255),w,b
   479  0006F2  11A4               	iorwf	(??_main+2)& (0+255),w,b
   480  0006F4  B4D8               	btfsc	status,2,c
   481  0006F6  D032               	goto	l73
   482                           
   483                           ; BSR set to: 0
   484                           ;main.c: 256: message.data[0] = midi_notes_steps_table[i];
   485  0006F8  90D8               	bcf	status,0,c
   486  0006FA  35AE               	rlcf	main@i& (0+255),w,b
   487  0006FC  6EF6               	movwf	tblptrl,c
   488  0006FE  35AF               	rlcf	(main@i+1)& (0+255),w,b
   489  000700  6EF7               	movwf	tblptrh,c
   490  000702  0E01               	movlw	low _midi_notes_steps_table
   491  000704  26F6               	addwf	tblptrl,f,c
   492  000706  0E06               	movlw	high _midi_notes_steps_table
   493  000708  22F7               	addwfc	tblptrh,f,c
   494  00070A                     	if	0	;There are less than 3 active tblptr bytes
   495  00070A                     	endif
   496  00070A  0008               	tblrd		*
   497  00070C  CFF5 F0B3          	movff	tablat,main@message+3
   498                           
   499                           ; BSR set to: 0
   500                           ;main.c: 259: eusart_write_midi(&message);
   501  000710  0EB0               	movlw	low main@message
   502  000712  6E2B               	movwf	eusart_write_midi@pkt,c
   503  000714  0E00               	movlw	high main@message
   504  000716  6E2C               	movwf	eusart_write_midi@pkt+1,c
   505  000718  ECB1  F003         	call	_eusart_write_midi	;wreg free
   506                           
   507                           ;main.c: 266: _delay((unsigned long)((10)*(64000000/4000.0)));
   508  00071C  0ED0               	movlw	208
   509  00071E  0100               	movlb	0	; () banked
   510  000720  6FA2               	movwf	??_main& (0+255),b
   511  000722  0EC9               	movlw	201
   512  000724                     u507:
   513  000724  2EE8               	decfsz	wreg,f,c
   514  000726  D7FE               	bra	u507
   515  000728  2FA2               	decfsz	??_main& (0+255),f,b
   516  00072A  D7FC               	bra	u507
   517  00072C  D000               	nop2	
   518                           
   519                           ;main.c: 269: keypresses &= ~(1<<i);
   520  00072E  C0AE  F0A2         	movff	main@i,??_main
   521  000732  0E01               	movlw	1
   522  000734  0100               	movlb	0	; () banked
   523  000736  6FA3               	movwf	(??_main+1)& (0+255),b
   524  000738  0E00               	movlw	0
   525  00073A  6FA4               	movwf	(??_main+2)& (0+255),b
   526  00073C  2BA2               	incf	??_main& (0+255),f,b
   527  00073E  D003               	goto	u464
   528  000740                     u465:
   529  000740  90D8               	bcf	status,0,c
   530  000742  37A3               	rlcf	(??_main+1)& (0+255),f,b
   531  000744  37A4               	rlcf	(??_main+2)& (0+255),f,b
   532  000746                     u464:
   533  000746  2FA2               	decfsz	??_main& (0+255),f,b
   534  000748  D7FB               	goto	u465
   535  00074A  0100               	movlb	0	; () banked
   536  00074C  1DA3               	comf	(??_main+1)& (0+255),w,b
   537  00074E  6FA5               	movwf	(??_main+3)& (0+255),b
   538  000750  1DA4               	comf	(??_main+2)& (0+255),w,b
   539  000752  6FA6               	movwf	(??_main+4)& (0+255),b
   540  000754  51A5               	movf	(??_main+3)& (0+255),w,b
   541  000756  1760               	andwf	_keypresses& (0+255),f,b	;volatile
   542  000758  51A6               	movf	(??_main+4)& (0+255),w,b
   543  00075A  1761               	andwf	(_keypresses+1)& (0+255),f,b	;volatile
   544  00075C                     l73:
   545                           
   546                           ; BSR set to: 0
   547                           
   548                           ; BSR set to: 0
   549  00075C  4BAE               	infsnz	main@i& (0+255),f,b
   550  00075E  2BAF               	incf	(main@i+1)& (0+255),f,b
   551  000760  D7AF               	goto	l1160
   552  000762                     __end_of_main:
   553                           	opt stack 0
   554                           tblptru	equ	0xFF8
   555                           tblptrh	equ	0xFF7
   556                           tblptrl	equ	0xFF6
   557                           tablat	equ	0xFF5
   558                           intcon	equ	0xFF2
   559                           postinc0	equ	0xFEE
   560                           wreg	equ	0xFE8
   561                           status	equ	0xFD8
   562                           
   563 ;; *************** function _midi_note_on *****************
   564 ;; Defined at:
   565 ;;		line 62 in file "midi.c"
   566 ;; Parameters:    Size  Location     Type
   567 ;;  pkt             2   46[COMRAM] PTR struct .
   568 ;;		 -> main@message(7), 
   569 ;;  channel         2   48[COMRAM] unsigned int 
   570 ;;  note            1   50[COMRAM] enum E31
   571 ;;  velocity        1   51[COMRAM] unsigned char 
   572 ;; Auto vars:     Size  Location     Type
   573 ;;		None
   574 ;; Return value:  Size  Location     Type
   575 ;;                  2   46[COMRAM] int 
   576 ;; Registers used:
   577 ;;		wreg, fsr2l, fsr2h, status,2, status,0, cstack
   578 ;; Tracked objects:
   579 ;;		On entry : 0/0
   580 ;;		On exit  : 0/0
   581 ;;		Unchanged: 0/0
   582 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   583 ;;      Params:         6       0       0       0       0       0       0
   584 ;;      Locals:         0       0       0       0       0       0       0
   585 ;;      Temps:          0       0       0       0       0       0       0
   586 ;;      Totals:         6       0       0       0       0       0       0
   587 ;;Total ram usage:        6 bytes
   588 ;; Hardware stack levels used:    1
   589 ;; Hardware stack levels required when called:    2
   590 ;; This function calls:
   591 ;;		_midi_set_channel
   592 ;;		_midi_set_status
   593 ;; This function is called by:
   594 ;;		_main
   595 ;; This function uses a non-reentrant model
   596 ;;
   597                           
   598                           	psect	text1
   599  0007D6                     __ptext1:
   600                           	opt stack 0
   601  0007D6                     _midi_note_on:
   602                           	opt stack 28
   603                           
   604                           ;midi.c: 64: if (pkt == (0)) {
   605                           
   606                           ; BSR set to: 0
   607                           ;incstack = 0
   608  0007D6  502F               	movf	midi_note_on@pkt,w,c
   609  0007D8  1030               	iorwf	midi_note_on@pkt+1,w,c
   610  0007DA  B4D8               	btfsc	status,2,c
   611  0007DC  0012               	return	
   612                           
   613                           ;midi.c: 66: }
   614                           ;midi.c: 74: midi_set_status(pkt, NOTE_ON);
   615                           
   616                           ;midi.c: 65: return -1;
   617                           ;	Return value of _midi_note_on is never used
   618  0007DE  C02F  F02A         	movff	midi_note_on@pkt,midi_set_status@pkt
   619  0007E2  C030  F02B         	movff	midi_note_on@pkt+1,midi_set_status@pkt+1
   620  0007E6  0E09               	movlw	9
   621  0007E8  6E2C               	movwf	midi_set_status@status,c
   622  0007EA  EC6E  F004         	call	_midi_set_status	;wreg free
   623                           
   624                           ;midi.c: 75: midi_set_channel(pkt, channel);
   625  0007EE  C02F  F02A         	movff	midi_note_on@pkt,midi_set_channel@pkt
   626  0007F2  C030  F02B         	movff	midi_note_on@pkt+1,midi_set_channel@pkt+1
   627  0007F6  C031  F02C         	movff	midi_note_on@channel,midi_set_channel@channel
   628  0007FA  C032  F02D         	movff	midi_note_on@channel+1,midi_set_channel@channel+1
   629  0007FE  EC5B  F004         	call	_midi_set_channel	;wreg free
   630                           
   631                           ;midi.c: 77: pkt->data[0] = note;
   632  000802  EE20 F003          	lfsr	2,3
   633  000806  502F               	movf	midi_note_on@pkt,w,c
   634  000808  26D9               	addwf	fsr2l,f,c
   635  00080A  5030               	movf	midi_note_on@pkt+1,w,c
   636  00080C  22DA               	addwfc	fsr2h,f,c
   637  00080E  C033  FFDF         	movff	midi_note_on@note,indf2
   638                           
   639                           ;midi.c: 78: pkt->data[1] = velocity;
   640  000812  EE20 F004          	lfsr	2,4
   641  000816  502F               	movf	midi_note_on@pkt,w,c
   642  000818  26D9               	addwf	fsr2l,f,c
   643  00081A  5030               	movf	midi_note_on@pkt+1,w,c
   644  00081C  22DA               	addwfc	fsr2h,f,c
   645  00081E  C034  FFDF         	movff	midi_note_on@velocity,indf2
   646                           
   647                           ;midi.c: 81: pkt->data_size = 2;
   648  000822  EE20 F001          	lfsr	2,1
   649  000826  502F               	movf	midi_note_on@pkt,w,c
   650  000828  26D9               	addwf	fsr2l,f,c
   651  00082A  5030               	movf	midi_note_on@pkt+1,w,c
   652  00082C  22DA               	addwfc	fsr2h,f,c
   653  00082E  0E02               	movlw	2
   654  000830  6EDE               	movwf	postinc2,c
   655  000832  0E00               	movlw	0
   656  000834  6EDD               	movwf	postdec2,c
   657  000836  0012               	return	
   658  000838                     __end_of_midi_note_on:
   659                           	opt stack 0
   660                           tblptru	equ	0xFF8
   661                           tblptrh	equ	0xFF7
   662                           tblptrl	equ	0xFF6
   663                           tablat	equ	0xFF5
   664                           intcon	equ	0xFF2
   665                           postinc0	equ	0xFEE
   666                           wreg	equ	0xFE8
   667                           indf2	equ	0xFDF
   668                           postinc2	equ	0xFDE
   669                           postdec2	equ	0xFDD
   670                           fsr2h	equ	0xFDA
   671                           fsr2l	equ	0xFD9
   672                           status	equ	0xFD8
   673                           
   674 ;; *************** function _midi_set_status *****************
   675 ;; Defined at:
   676 ;;		line 40 in file "midi.c"
   677 ;; Parameters:    Size  Location     Type
   678 ;;  pkt             2   41[COMRAM] PTR struct .
   679 ;;		 -> main@message(7), 
   680 ;;  status          1   43[COMRAM] enum E40
   681 ;; Auto vars:     Size  Location     Type
   682 ;;		None
   683 ;; Return value:  Size  Location     Type
   684 ;;                  2   41[COMRAM] int 
   685 ;; Registers used:
   686 ;;		wreg, fsr2l, fsr2h, status,2, status,0
   687 ;; Tracked objects:
   688 ;;		On entry : 0/0
   689 ;;		On exit  : 0/0
   690 ;;		Unchanged: 0/0
   691 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   692 ;;      Params:         3       0       0       0       0       0       0
   693 ;;      Locals:         0       0       0       0       0       0       0
   694 ;;      Temps:          1       0       0       0       0       0       0
   695 ;;      Totals:         4       0       0       0       0       0       0
   696 ;;Total ram usage:        4 bytes
   697 ;; Hardware stack levels used:    1
   698 ;; Hardware stack levels required when called:    1
   699 ;; This function calls:
   700 ;;		Nothing
   701 ;; This function is called by:
   702 ;;		_midi_note_on
   703 ;;		_midi_note_off
   704 ;; This function uses a non-reentrant model
   705 ;;
   706                           
   707                           	psect	text2
   708  0008DC                     __ptext2:
   709                           	opt stack 0
   710  0008DC                     _midi_set_status:
   711                           	opt stack 28
   712                           
   713                           ;midi.c: 42: if (pkt == (0)) {
   714                           
   715                           ;incstack = 0
   716  0008DC  502A               	movf	midi_set_status@pkt,w,c
   717  0008DE  102B               	iorwf	midi_set_status@pkt+1,w,c
   718  0008E0  B4D8               	btfsc	status,2,c
   719  0008E2  0012               	return	
   720                           
   721                           ;midi.c: 44: }
   722                           ;midi.c: 46: pkt->status = status & 0x0F;
   723                           
   724                           ;midi.c: 43: return -1;
   725                           ;	Return value of _midi_set_status is never used
   726  0008E4  C02C  F02D         	movff	midi_set_status@status,??_midi_set_status
   727  0008E8  0E0F               	movlw	15
   728  0008EA  162D               	andwf	??_midi_set_status,f,c
   729  0008EC  C02A  FFD9         	movff	midi_set_status@pkt,fsr2l
   730  0008F0  C02B  FFDA         	movff	midi_set_status@pkt+1,fsr2h
   731  0008F4  50DF               	movf	indf2,w,c
   732  0008F6  182D               	xorwf	??_midi_set_status,w,c
   733  0008F8  0BF0               	andlw	-16
   734  0008FA  182D               	xorwf	??_midi_set_status,w,c
   735  0008FC  6EDF               	movwf	indf2,c
   736  0008FE  0012               	return	
   737  000900                     __end_of_midi_set_status:
   738                           	opt stack 0
   739                           tblptru	equ	0xFF8
   740                           tblptrh	equ	0xFF7
   741                           tblptrl	equ	0xFF6
   742                           tablat	equ	0xFF5
   743                           intcon	equ	0xFF2
   744                           postinc0	equ	0xFEE
   745                           wreg	equ	0xFE8
   746                           indf2	equ	0xFDF
   747                           postinc2	equ	0xFDE
   748                           postdec2	equ	0xFDD
   749                           fsr2h	equ	0xFDA
   750                           fsr2l	equ	0xFD9
   751                           status	equ	0xFD8
   752                           
   753 ;; *************** function _midi_set_channel *****************
   754 ;; Defined at:
   755 ;;		line 51 in file "midi.c"
   756 ;; Parameters:    Size  Location     Type
   757 ;;  pkt             2   41[COMRAM] PTR struct .
   758 ;;		 -> main@message(7), 
   759 ;;  channel         2   43[COMRAM] unsigned int 
   760 ;; Auto vars:     Size  Location     Type
   761 ;;		None
   762 ;; Return value:  Size  Location     Type
   763 ;;                  2   41[COMRAM] int 
   764 ;; Registers used:
   765 ;;		wreg, fsr2l, fsr2h, status,2, status,0
   766 ;; Tracked objects:
   767 ;;		On entry : 0/0
   768 ;;		On exit  : 0/0
   769 ;;		Unchanged: 0/0
   770 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   771 ;;      Params:         4       0       0       0       0       0       0
   772 ;;      Locals:         0       0       0       0       0       0       0
   773 ;;      Temps:          1       0       0       0       0       0       0
   774 ;;      Totals:         5       0       0       0       0       0       0
   775 ;;Total ram usage:        5 bytes
   776 ;; Hardware stack levels used:    1
   777 ;; Hardware stack levels required when called:    1
   778 ;; This function calls:
   779 ;;		Nothing
   780 ;; This function is called by:
   781 ;;		_midi_note_on
   782 ;;		_midi_note_off
   783 ;; This function uses a non-reentrant model
   784 ;;
   785                           
   786                           	psect	text3
   787  0008B6                     __ptext3:
   788                           	opt stack 0
   789  0008B6                     _midi_set_channel:
   790                           	opt stack 28
   791                           
   792                           ;midi.c: 53: if (pkt == (0)) {
   793                           
   794                           ;incstack = 0
   795  0008B6  502A               	movf	midi_set_channel@pkt,w,c
   796  0008B8  102B               	iorwf	midi_set_channel@pkt+1,w,c
   797  0008BA  B4D8               	btfsc	status,2,c
   798  0008BC  0012               	return	
   799                           
   800                           ;midi.c: 55: }
   801                           ;midi.c: 57: pkt->channel = channel & 0x0F;
   802                           
   803                           ;midi.c: 54: return -1;
   804                           ;	Return value of _midi_set_channel is never used
   805  0008BE  C02C  F02E         	movff	midi_set_channel@channel,??_midi_set_channel
   806  0008C2  0E0F               	movlw	15
   807  0008C4  162E               	andwf	??_midi_set_channel,f,c
   808  0008C6  C02A  FFD9         	movff	midi_set_channel@pkt,fsr2l
   809  0008CA  C02B  FFDA         	movff	midi_set_channel@pkt+1,fsr2h
   810  0008CE  3A2E               	swapf	??_midi_set_channel,f,c
   811  0008D0  50DF               	movf	indf2,w,c
   812  0008D2  182E               	xorwf	??_midi_set_channel,w,c
   813  0008D4  0B0F               	andlw	-241
   814  0008D6  182E               	xorwf	??_midi_set_channel,w,c
   815  0008D8  6EDF               	movwf	indf2,c
   816  0008DA  0012               	return	
   817  0008DC                     __end_of_midi_set_channel:
   818                           	opt stack 0
   819                           tblptru	equ	0xFF8
   820                           tblptrh	equ	0xFF7
   821                           tblptrl	equ	0xFF6
   822                           tablat	equ	0xFF5
   823                           intcon	equ	0xFF2
   824                           postinc0	equ	0xFEE
   825                           wreg	equ	0xFE8
   826                           indf2	equ	0xFDF
   827                           postinc2	equ	0xFDE
   828                           postdec2	equ	0xFDD
   829                           fsr2h	equ	0xFDA
   830                           fsr2l	equ	0xFD9
   831                           status	equ	0xFD8
   832                           
   833 ;; *************** function _memset *****************
   834 ;; Defined at:
   835 ;;		line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
   836 ;; Parameters:    Size  Location     Type
   837 ;;  p1              2   41[COMRAM] PTR void 
   838 ;;		 -> keys_data(64), 
   839 ;;  c               2   43[COMRAM] int 
   840 ;;  n               2   45[COMRAM] unsigned int 
   841 ;; Auto vars:     Size  Location     Type
   842 ;;  p               2   47[COMRAM] PTR unsigned char 
   843 ;;		 -> keys_data(64), 
   844 ;; Return value:  Size  Location     Type
   845 ;;                  2   41[COMRAM] PTR void 
   846 ;; Registers used:
   847 ;;		wreg, fsr2l, fsr2h, status,2, status,0
   848 ;; Tracked objects:
   849 ;;		On entry : 0/0
   850 ;;		On exit  : 0/0
   851 ;;		Unchanged: 0/0
   852 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   853 ;;      Params:         6       0       0       0       0       0       0
   854 ;;      Locals:         2       0       0       0       0       0       0
   855 ;;      Temps:          0       0       0       0       0       0       0
   856 ;;      Totals:         8       0       0       0       0       0       0
   857 ;;Total ram usage:        8 bytes
   858 ;; Hardware stack levels used:    1
   859 ;; Hardware stack levels required when called:    1
   860 ;; This function calls:
   861 ;;		Nothing
   862 ;; This function is called by:
   863 ;;		_main
   864 ;; This function uses a non-reentrant model
   865 ;;
   866                           
   867                           	psect	text4
   868  00088A                     __ptext4:
   869                           	opt stack 0
   870  00088A                     _memset:
   871                           	opt stack 29
   872                           
   873                           ;incstack = 0
   874  00088A  C02A  F030         	movff	memset@p1,memset@p
   875  00088E  C02B  F031         	movff	memset@p1+1,memset@p+1
   876  000892  D008               	goto	l592
   877  000894                     l1070:
   878  000894  C030  FFD9         	movff	memset@p,fsr2l
   879  000898  C031  FFDA         	movff	memset@p+1,fsr2h
   880  00089C  C02C  FFDF         	movff	memset@c,indf2
   881  0008A0  4A30               	infsnz	memset@p,f,c
   882  0008A2  2A31               	incf	memset@p+1,f,c
   883  0008A4                     l592:
   884  0008A4  062E               	decf	memset@n,f,c
   885  0008A6  A0D8               	btfss	status,0,c
   886  0008A8  062F               	decf	memset@n+1,f,c
   887  0008AA  282E               	incf	memset@n,w,c
   888  0008AC  E1F3               	bnz	l1070
   889  0008AE  282F               	incf	memset@n+1,w,c
   890  0008B0  B4D8               	btfsc	status,2,c
   891  0008B2  0012               	return	
   892  0008B4  D7EF               	goto	l593
   893  0008B6                     __end_of_memset:
   894                           	opt stack 0
   895                           tblptru	equ	0xFF8
   896                           tblptrh	equ	0xFF7
   897                           tblptrl	equ	0xFF6
   898                           tablat	equ	0xFF5
   899                           intcon	equ	0xFF2
   900                           postinc0	equ	0xFEE
   901                           wreg	equ	0xFE8
   902                           indf2	equ	0xFDF
   903                           postinc2	equ	0xFDE
   904                           postdec2	equ	0xFDD
   905                           fsr2h	equ	0xFDA
   906                           fsr2l	equ	0xFD9
   907                           status	equ	0xFD8
   908                           
   909 ;; *************** function _init_hw *****************
   910 ;; Defined at:
   911 ;;		line 156 in file "main.c"
   912 ;; Parameters:    Size  Location     Type
   913 ;;		None
   914 ;; Auto vars:     Size  Location     Type
   915 ;;		None
   916 ;; Return value:  Size  Location     Type
   917 ;;                  1    wreg      void 
   918 ;; Registers used:
   919 ;;		wreg, status,2, cstack
   920 ;; Tracked objects:
   921 ;;		On entry : 0/0
   922 ;;		On exit  : 0/0
   923 ;;		Unchanged: 0/0
   924 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
   925 ;;      Params:         0       0       0       0       0       0       0
   926 ;;      Locals:         0       0       0       0       0       0       0
   927 ;;      Temps:          0       0       0       0       0       0       0
   928 ;;      Totals:         0       0       0       0       0       0       0
   929 ;;Total ram usage:        0 bytes
   930 ;; Hardware stack levels used:    1
   931 ;; Hardware stack levels required when called:    2
   932 ;; This function calls:
   933 ;;		_eusart1_init
   934 ;;		_eusart2_init
   935 ;; This function is called by:
   936 ;;		_main
   937 ;; This function uses a non-reentrant model
   938 ;;
   939                           
   940                           	psect	text5
   941  000838                     __ptext5:
   942                           	opt stack 0
   943  000838                     _init_hw:
   944                           	opt stack 28
   945                           
   946                           ;main.c: 158: (INTCONbits.GIE = 0);
   947                           
   948                           ;incstack = 0
   949  000838  9EF2               	bcf	intcon,7,c	;volatile
   950                           
   951                           ;main.c: 162: OSCTUNEbits.PLLEN = 1;
   952  00083A  8C9B               	bsf	3995,6,c	;volatile
   953                           
   954                           ;main.c: 164: OSCTUNEbits.TUN = 0b011111;
   955  00083C  809B               	bsf	3995,0,c	;volatile
   956  00083E  829B               	bsf	3995,1,c	;volatile
   957  000840  849B               	bsf	3995,2,c	;volatile
   958  000842  869B               	bsf	3995,3,c	;volatile
   959  000844  889B               	bsf	3995,4,c	;volatile
   960  000846  9A9B               	bcf	3995,5,c	;volatile
   961                           
   962                           ;main.c: 166: OSCCONbits.IRCF = 0b111;
   963  000848  88D3               	bsf	4051,4,c	;volatile
   964  00084A  8AD3               	bsf	4051,5,c	;volatile
   965  00084C  8CD3               	bsf	4051,6,c	;volatile
   966                           
   967                           ;main.c: 168: OSCCONbits.SCS = 0b00;
   968  00084E  0EFC               	movlw	-4
   969  000850  16D3               	andwf	4051,f,c	;volatile
   970                           
   971                           ;main.c: 172: ANSELA = 0x00;
   972  000852  0E00               	movlw	0
   973  000854  010F               	movlb	15	; () banked
   974  000856  6F38               	movwf	56,b	;volatile
   975                           
   976                           ;main.c: 173: ANSELB = 0x00;
   977  000858  0E00               	movlw	0
   978  00085A  6F39               	movwf	57,b	;volatile
   979                           
   980                           ;main.c: 174: ANSELC = 0x00;
   981  00085C  0E00               	movlw	0
   982  00085E  6F3A               	movwf	58,b	;volatile
   983                           
   984                           ;main.c: 175: ANSELD = 0x00;
   985  000860  0E00               	movlw	0
   986  000862  6F3B               	movwf	59,b	;volatile
   987                           
   988                           ; BSR set to: 15
   989                           ;main.c: 178: TRISA = 0xFF;
   990  000864  6892               	setf	3986,c	;volatile
   991                           
   992                           ; BSR set to: 15
   993                           ;main.c: 179: TRISB = 0xFF;
   994  000866  6893               	setf	3987,c	;volatile
   995                           
   996                           ;main.c: 199: PR2 = 128;
   997  000868  0E80               	movlw	128
   998  00086A  6EBB               	movwf	4027,c	;volatile
   999                           
  1000                           ;main.c: 201: T2CONbits.T2OUTPS = 0b0001;
  1001  00086C  50BA               	movf	4026,w,c	;volatile
  1002  00086E  0B87               	andlw	-121
  1003  000870  0908               	iorlw	8
  1004  000872  6EBA               	movwf	4026,c	;volatile
  1005                           
  1006                           ;main.c: 203: T2CONbits.T2CKPS = 0b11;
  1007  000874  0E03               	movlw	3
  1008  000876  12BA               	iorwf	4026,f,c	;volatile
  1009                           
  1010                           ; BSR set to: 15
  1011                           ;main.c: 205: T2CONbits.TMR2ON = 1;
  1012  000878  84BA               	bsf	4026,2,c	;volatile
  1013                           
  1014                           ; BSR set to: 15
  1015                           ;main.c: 208: PIE1bits.TMR2IE = 1;
  1016  00087A  829D               	bsf	3997,1,c	;volatile
  1017                           
  1018                           ; BSR set to: 15
  1019                           ;main.c: 209: PIR1bits.TMR2IF = 0;
  1020  00087C  929E               	bcf	3998,1,c	;volatile
  1021                           
  1022                           ; BSR set to: 15
  1023                           ;main.c: 212: INTCONbits.PEIE = 1;
  1024  00087E  8CF2               	bsf	intcon,6,c	;volatile
  1025                           
  1026                           ; BSR set to: 15
  1027                           ;main.c: 215: eusart1_init();
  1028  000880  EC8E  F004         	call	_eusart1_init	;wreg free
  1029                           
  1030                           ;main.c: 216: eusart2_init();
  1031  000884  EC80  F004         	call	_eusart2_init	;wreg free
  1032  000888  0012               	return		;funcret
  1033  00088A                     __end_of_init_hw:
  1034                           	opt stack 0
  1035                           tblptru	equ	0xFF8
  1036                           tblptrh	equ	0xFF7
  1037                           tblptrl	equ	0xFF6
  1038                           tablat	equ	0xFF5
  1039                           intcon	equ	0xFF2
  1040                           postinc0	equ	0xFEE
  1041                           wreg	equ	0xFE8
  1042                           indf2	equ	0xFDF
  1043                           postinc2	equ	0xFDE
  1044                           postdec2	equ	0xFDD
  1045                           fsr2h	equ	0xFDA
  1046                           fsr2l	equ	0xFD9
  1047                           status	equ	0xFD8
  1048                           
  1049 ;; *************** function _eusart2_init *****************
  1050 ;; Defined at:
  1051 ;;		line 25 in file "rs232.c"
  1052 ;; Parameters:    Size  Location     Type
  1053 ;;		None
  1054 ;; Auto vars:     Size  Location     Type
  1055 ;;		None
  1056 ;; Return value:  Size  Location     Type
  1057 ;;                  1    wreg      void 
  1058 ;; Registers used:
  1059 ;;		wreg, status,2
  1060 ;; Tracked objects:
  1061 ;;		On entry : 0/0
  1062 ;;		On exit  : 0/0
  1063 ;;		Unchanged: 0/0
  1064 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
  1065 ;;      Params:         0       0       0       0       0       0       0
  1066 ;;      Locals:         0       0       0       0       0       0       0
  1067 ;;      Temps:          0       0       0       0       0       0       0
  1068 ;;      Totals:         0       0       0       0       0       0       0
  1069 ;;Total ram usage:        0 bytes
  1070 ;; Hardware stack levels used:    1
  1071 ;; Hardware stack levels required when called:    1
  1072 ;; This function calls:
  1073 ;;		Nothing
  1074 ;; This function is called by:
  1075 ;;		_init_hw
  1076 ;; This function uses a non-reentrant model
  1077 ;;
  1078                           
  1079                           	psect	text6
  1080  000900                     __ptext6:
  1081                           	opt stack 0
  1082  000900                     _eusart2_init:
  1083                           	opt stack 28
  1084                           
  1085                           ;rs232.c: 28: TXSTA2bits.SYNC = 0;
  1086                           
  1087                           ;incstack = 0
  1088  000900  9872               	bcf	3954,4,c	;volatile
  1089                           
  1090                           ;rs232.c: 29: TXSTA2bits.TX9 = 0;
  1091  000902  9C72               	bcf	3954,6,c	;volatile
  1092                           
  1093                           ;rs232.c: 32: RCSTA2bits.SPEN = 1;
  1094  000904  8E71               	bsf	3953,7,c	;volatile
  1095                           
  1096                           ;rs232.c: 33: SPBRG2 = 31;
  1097  000906  0E1F               	movlw	31
  1098  000908  6E75               	movwf	3957,c	;volatile
  1099                           
  1100                           ;rs232.c: 35: SPBRGH2 = 0;
  1101  00090A  0E00               	movlw	0
  1102  00090C  6E76               	movwf	3958,c	;volatile
  1103                           
  1104                           ;rs232.c: 36: TXSTA2bits.BRGH = 0;
  1105  00090E  9472               	bcf	3954,2,c	;volatile
  1106                           
  1107                           ;rs232.c: 37: BAUDCON2bits.BRG16 = 0;
  1108  000910  9670               	bcf	3952,3,c	;volatile
  1109                           
  1110                           ;rs232.c: 40: TRISDbits.TRISD7 = 1;
  1111  000912  8E95               	bsf	3989,7,c	;volatile
  1112                           
  1113                           ;rs232.c: 41: TRISDbits.TRISD6 = 1;
  1114  000914  8C95               	bsf	3989,6,c	;volatile
  1115                           
  1116                           ;rs232.c: 43: RCSTA2bits.CREN = 1;
  1117  000916  8871               	bsf	3953,4,c	;volatile
  1118                           
  1119                           ;rs232.c: 44: TXSTA2bits.TXEN = 1;
  1120  000918  8A72               	bsf	3954,5,c	;volatile
  1121  00091A  0012               	return		;funcret
  1122  00091C                     __end_of_eusart2_init:
  1123                           	opt stack 0
  1124                           tblptru	equ	0xFF8
  1125                           tblptrh	equ	0xFF7
  1126                           tblptrl	equ	0xFF6
  1127                           tablat	equ	0xFF5
  1128                           intcon	equ	0xFF2
  1129                           postinc0	equ	0xFEE
  1130                           wreg	equ	0xFE8
  1131                           indf2	equ	0xFDF
  1132                           postinc2	equ	0xFDE
  1133                           postdec2	equ	0xFDD
  1134                           fsr2h	equ	0xFDA
  1135                           fsr2l	equ	0xFD9
  1136                           status	equ	0xFD8
  1137                           
  1138 ;; *************** function _eusart1_init *****************
  1139 ;; Defined at:
  1140 ;;		line 4 in file "rs232.c"
  1141 ;; Parameters:    Size  Location     Type
  1142 ;;		None
  1143 ;; Auto vars:     Size  Location     Type
  1144 ;;		None
  1145 ;; Return value:  Size  Location     Type
  1146 ;;                  1    wreg      void 
  1147 ;; Registers used:
  1148 ;;		wreg, status,2
  1149 ;; Tracked objects:
  1150 ;;		On entry : 0/0
  1151 ;;		On exit  : 0/0
  1152 ;;		Unchanged: 0/0
  1153 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
  1154 ;;      Params:         0       0       0       0       0       0       0
  1155 ;;      Locals:         0       0       0       0       0       0       0
  1156 ;;      Temps:          0       0       0       0       0       0       0
  1157 ;;      Totals:         0       0       0       0       0       0       0
  1158 ;;Total ram usage:        0 bytes
  1159 ;; Hardware stack levels used:    1
  1160 ;; Hardware stack levels required when called:    1
  1161 ;; This function calls:
  1162 ;;		Nothing
  1163 ;; This function is called by:
  1164 ;;		_init_hw
  1165 ;; This function uses a non-reentrant model
  1166 ;;
  1167                           
  1168                           	psect	text7
  1169  00091C                     __ptext7:
  1170                           	opt stack 0
  1171  00091C                     _eusart1_init:
  1172                           	opt stack 28
  1173                           
  1174                           ;rs232.c: 7: TXSTA1bits.SYNC = 0;
  1175                           
  1176                           ;incstack = 0
  1177  00091C  98AC               	bcf	4012,4,c	;volatile
  1178                           
  1179                           ;rs232.c: 8: TXSTA1bits.TX9 = 0;
  1180  00091E  9CAC               	bcf	4012,6,c	;volatile
  1181                           
  1182                           ;rs232.c: 11: RCSTA1bits.SPEN = 1;
  1183  000920  8EAB               	bsf	4011,7,c	;volatile
  1184                           
  1185                           ;rs232.c: 12: SPBRG1 = 31;
  1186  000922  0E1F               	movlw	31
  1187  000924  6EAF               	movwf	4015,c	;volatile
  1188                           
  1189                           ;rs232.c: 13: SPBRGH1 = 0;
  1190  000926  0E00               	movlw	0
  1191  000928  6EB0               	movwf	4016,c	;volatile
  1192                           
  1193                           ;rs232.c: 14: TXSTA1bits.BRGH = 0;
  1194  00092A  94AC               	bcf	4012,2,c	;volatile
  1195                           
  1196                           ;rs232.c: 15: BAUDCON1bits.BRG16 = 0;
  1197  00092C  96B8               	bcf	4024,3,c	;volatile
  1198                           
  1199                           ;rs232.c: 18: TRISCbits.TRISC7 = 1;
  1200  00092E  8E94               	bsf	3988,7,c	;volatile
  1201                           
  1202                           ;rs232.c: 19: TRISCbits.TRISC6 = 1;
  1203  000930  8C94               	bsf	3988,6,c	;volatile
  1204                           
  1205                           ;rs232.c: 21: RCSTA1bits.CREN = 1;
  1206  000932  88AB               	bsf	4011,4,c	;volatile
  1207                           
  1208                           ;rs232.c: 22: TXSTA1bits.TXEN = 1;
  1209  000934  8AAC               	bsf	4012,5,c	;volatile
  1210  000936  0012               	return		;funcret
  1211  000938                     __end_of_eusart1_init:
  1212                           	opt stack 0
  1213                           tblptru	equ	0xFF8
  1214                           tblptrh	equ	0xFF7
  1215                           tblptrl	equ	0xFF6
  1216                           tablat	equ	0xFF5
  1217                           intcon	equ	0xFF2
  1218                           postinc0	equ	0xFEE
  1219                           wreg	equ	0xFE8
  1220                           indf2	equ	0xFDF
  1221                           postinc2	equ	0xFDE
  1222                           postdec2	equ	0xFDD
  1223                           fsr2h	equ	0xFDA
  1224                           fsr2l	equ	0xFD9
  1225                           status	equ	0xFD8
  1226                           
  1227 ;; *************** function _eusart_write_midi *****************
  1228 ;; Defined at:
  1229 ;;		line 276 in file "main.c"
  1230 ;; Parameters:    Size  Location     Type
  1231 ;;  pkt             2   42[COMRAM] PTR const struct .
  1232 ;;		 -> main@message(7), main@conf_message(7), 
  1233 ;; Auto vars:     Size  Location     Type
  1234 ;;  data            2   48[COMRAM] PTR unsigned char 
  1235 ;;		 -> message.data(4), main@message(7), conf_message.data(4), main@conf_message(7), 
  1236 ;;  length          2   46[COMRAM] unsigned int 
  1237 ;; Return value:  Size  Location     Type
  1238 ;;                  2   42[COMRAM] int 
  1239 ;; Registers used:
  1240 ;;		wreg, fsr2l, fsr2h, status,2, status,0, cstack
  1241 ;; Tracked objects:
  1242 ;;		On entry : 0/0
  1243 ;;		On exit  : 0/0
  1244 ;;		Unchanged: 0/0
  1245 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
  1246 ;;      Params:         2       0       0       0       0       0       0
  1247 ;;      Locals:         4       0       0       0       0       0       0
  1248 ;;      Temps:          2       0       0       0       0       0       0
  1249 ;;      Totals:         8       0       0       0       0       0       0
  1250 ;;Total ram usage:        8 bytes
  1251 ;; Hardware stack levels used:    1
  1252 ;; Hardware stack levels required when called:    2
  1253 ;; This function calls:
  1254 ;;		_eusart2_putch
  1255 ;; This function is called by:
  1256 ;;		_main
  1257 ;; This function uses a non-reentrant model
  1258 ;;
  1259                           
  1260                           	psect	text8
  1261  000762                     __ptext8:
  1262                           	opt stack 0
  1263  000762                     _eusart_write_midi:
  1264                           	opt stack 28
  1265                           
  1266                           ;main.c: 278: size_t length;
  1267                           ;main.c: 279: uint8_t *data;
  1268                           ;main.c: 281: if (pkt == (0)) {
  1269                           
  1270                           ;incstack = 0
  1271  000762  502B               	movf	eusart_write_midi@pkt,w,c
  1272  000764  102C               	iorwf	eusart_write_midi@pkt+1,w,c
  1273  000766  B4D8               	btfsc	status,2,c
  1274  000768  0012               	return	
  1275                           
  1276                           ;main.c: 283: }
  1277                           ;main.c: 285: length = pkt->data_size;
  1278                           
  1279                           ;main.c: 282: return -1;
  1280                           ;	Return value of _eusart_write_midi is never used
  1281  00076A  EE20 F001          	lfsr	2,1
  1282  00076E  502B               	movf	eusart_write_midi@pkt,w,c
  1283  000770  26D9               	addwf	fsr2l,f,c
  1284  000772  502C               	movf	eusart_write_midi@pkt+1,w,c
  1285  000774  22DA               	addwfc	fsr2h,f,c
  1286  000776  CFDE F02F          	movff	postinc2,eusart_write_midi@length
  1287  00077A  CFDD F030          	movff	postdec2,eusart_write_midi@length+1
  1288                           
  1289                           ;main.c: 286: data = (uint8_t *) pkt->data;
  1290  00077E  0E03               	movlw	3
  1291  000780  242B               	addwf	eusart_write_midi@pkt,w,c
  1292  000782  6E31               	movwf	eusart_write_midi@data,c
  1293  000784  0E00               	movlw	0
  1294  000786  202C               	addwfc	eusart_write_midi@pkt+1,w,c
  1295  000788  6E32               	movwf	eusart_write_midi@data+1,c
  1296                           
  1297                           ;main.c: 288: eusart2_putch((char)((pkt->status << 4) | pkt->channel));
  1298  00078A  C02B  FFD9         	movff	eusart_write_midi@pkt,fsr2l
  1299  00078E  C02C  FFDA         	movff	eusart_write_midi@pkt+1,fsr2h
  1300  000792  38DF               	swapf	indf2,w,c
  1301  000794  0B0F               	andlw	15
  1302  000796  6E2D               	movwf	??_eusart_write_midi& (0+255),c
  1303  000798  C02B  FFD9         	movff	eusart_write_midi@pkt,fsr2l
  1304  00079C  C02C  FFDA         	movff	eusart_write_midi@pkt+1,fsr2h
  1305  0007A0  50DF               	movf	indf2,w,c
  1306  0007A2  0B0F               	andlw	15
  1307  0007A4  6E2E               	movwf	(??_eusart_write_midi+1)& (0+255),c
  1308  0007A6  382E               	swapf	??_eusart_write_midi+1,w,c
  1309  0007A8  0BF0               	andlw	240
  1310  0007AA  102D               	iorwf	??_eusart_write_midi,w,c
  1311  0007AC  ECA9  F004         	call	_eusart2_putch
  1312                           
  1313                           ;main.c: 290: while (length--) {
  1314  0007B0  D009               	goto	l81
  1315  0007B2                     l1100:
  1316                           
  1317                           ;main.c: 291: eusart2_putch((char) *(data++));
  1318  0007B2  C031  FFD9         	movff	eusart_write_midi@data,fsr2l
  1319  0007B6  C032  FFDA         	movff	eusart_write_midi@data+1,fsr2h
  1320  0007BA  50DF               	movf	indf2,w,c
  1321  0007BC  ECA9  F004         	call	_eusart2_putch
  1322  0007C0  4A31               	infsnz	eusart_write_midi@data,f,c
  1323  0007C2  2A32               	incf	eusart_write_midi@data+1,f,c
  1324  0007C4                     l81:
  1325  0007C4  062F               	decf	eusart_write_midi@length,f,c
  1326  0007C6  A0D8               	btfss	status,0,c
  1327  0007C8  0630               	decf	eusart_write_midi@length+1,f,c
  1328  0007CA  282F               	incf	eusart_write_midi@length,w,c
  1329  0007CC  E1F2               	bnz	l1100
  1330  0007CE  2830               	incf	eusart_write_midi@length+1,w,c
  1331  0007D0  B4D8               	btfsc	status,2,c
  1332  0007D2  0012               	return	
  1333  0007D4  D7EE               	goto	l82
  1334  0007D6                     __end_of_eusart_write_midi:
  1335                           	opt stack 0
  1336                           tblptru	equ	0xFF8
  1337                           tblptrh	equ	0xFF7
  1338                           tblptrl	equ	0xFF6
  1339                           tablat	equ	0xFF5
  1340                           intcon	equ	0xFF2
  1341                           postinc0	equ	0xFEE
  1342                           wreg	equ	0xFE8
  1343                           indf2	equ	0xFDF
  1344                           postinc2	equ	0xFDE
  1345                           postdec2	equ	0xFDD
  1346                           fsr2h	equ	0xFDA
  1347                           fsr2l	equ	0xFD9
  1348                           status	equ	0xFD8
  1349                           
  1350 ;; *************** function _eusart2_putch *****************
  1351 ;; Defined at:
  1352 ;;		line 53 in file "rs232.c"
  1353 ;; Parameters:    Size  Location     Type
  1354 ;;  c               1    wreg     unsigned char 
  1355 ;; Auto vars:     Size  Location     Type
  1356 ;;  c               1   41[COMRAM] unsigned char 
  1357 ;; Return value:  Size  Location     Type
  1358 ;;                  1    wreg      void 
  1359 ;; Registers used:
  1360 ;;		wreg
  1361 ;; Tracked objects:
  1362 ;;		On entry : 0/0
  1363 ;;		On exit  : 0/0
  1364 ;;		Unchanged: 0/0
  1365 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
  1366 ;;      Params:         0       0       0       0       0       0       0
  1367 ;;      Locals:         1       0       0       0       0       0       0
  1368 ;;      Temps:          0       0       0       0       0       0       0
  1369 ;;      Totals:         1       0       0       0       0       0       0
  1370 ;;Total ram usage:        1 bytes
  1371 ;; Hardware stack levels used:    1
  1372 ;; Hardware stack levels required when called:    1
  1373 ;; This function calls:
  1374 ;;		Nothing
  1375 ;; This function is called by:
  1376 ;;		_eusart_write_midi
  1377 ;; This function uses a non-reentrant model
  1378 ;;
  1379                           
  1380                           	psect	text9
  1381  000952                     __ptext9:
  1382                           	opt stack 0
  1383  000952                     _eusart2_putch:
  1384                           	opt stack 28
  1385                           
  1386                           ;incstack = 0
  1387                           ;eusart2_putch@c stored from wreg
  1388  000952  6E2A               	movwf	eusart2_putch@c,c
  1389  000954                     
  1390                           ;rs232.c: 55: while (!TX2IF);
  1391  000954  A8A4               	btfss	4004,4,c	;volatile
  1392  000956  D7FE               	goto	l1028
  1393                           
  1394                           ;rs232.c: 56: TX2REG = c;
  1395  000958  C02A  FF73         	movff	eusart2_putch@c,3955	;volatile
  1396  00095C  0012               	return		;funcret
  1397  00095E                     __end_of_eusart2_putch:
  1398                           	opt stack 0
  1399                           tblptru	equ	0xFF8
  1400                           tblptrh	equ	0xFF7
  1401                           tblptrl	equ	0xFF6
  1402                           tablat	equ	0xFF5
  1403                           intcon	equ	0xFF2
  1404                           postinc0	equ	0xFEE
  1405                           wreg	equ	0xFE8
  1406                           indf2	equ	0xFDF
  1407                           postinc2	equ	0xFDE
  1408                           postdec2	equ	0xFDD
  1409                           fsr2h	equ	0xFDA
  1410                           fsr2l	equ	0xFD9
  1411                           status	equ	0xFD8
  1412                           
  1413 ;; *************** function _isr *****************
  1414 ;; Defined at:
  1415 ;;		line 114 in file "main.c"
  1416 ;; Parameters:    Size  Location     Type
  1417 ;;		None
  1418 ;; Auto vars:     Size  Location     Type
  1419 ;;  i               1   40[COMRAM] unsigned char 
  1420 ;;  data_b          1   37[COMRAM] unsigned char 
  1421 ;;  data_a          1   36[COMRAM] unsigned char 
  1422 ;; Return value:  Size  Location     Type
  1423 ;;                  1    wreg      void 
  1424 ;; Registers used:
  1425 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  1426 ;; Tracked objects:
  1427 ;;		On entry : 0/0
  1428 ;;		On exit  : 0/0
  1429 ;;		Unchanged: 0/0
  1430 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5
  1431 ;;      Params:         0       0       0       0       0       0       0
  1432 ;;      Locals:         5       0       0       0       0       0       0
  1433 ;;      Temps:         36       0       0       0       0       0       0
  1434 ;;      Totals:        41       0       0       0       0       0       0
  1435 ;;Total ram usage:       41 bytes
  1436 ;; Hardware stack levels used:    1
  1437 ;; This function calls:
  1438 ;;		Nothing
  1439 ;; This function is called by:
  1440 ;;		Interrupt level 2
  1441 ;; This function uses a non-reentrant model
  1442 ;;
  1443                           
  1444                           	psect	intcode
  1445  000008                     __pintcode:
  1446                           	opt stack 0
  1447  000008                     _isr:
  1448                           	opt stack 28
  1449                           
  1450                           ;incstack = 0
  1451  000008  8235               	bsf	btemp,1,c	;set compiler interrupt flag (level 2)
  1452  00000A  CFFA F013          	movff	pclath,??_isr+18
  1453  00000E  CFFB F014          	movff	pclatu,??_isr+19
  1454  000012  CFE9 F015          	movff	fsr0l,??_isr+20
  1455  000016  CFEA F016          	movff	fsr0h,??_isr+21
  1456  00001A  CFE1 F017          	movff	fsr1l,??_isr+22
  1457  00001E  CFE2 F018          	movff	fsr1h,??_isr+23
  1458  000022  CFD9 F019          	movff	fsr2l,??_isr+24
  1459  000026  CFDA F01A          	movff	fsr2h,??_isr+25
  1460  00002A  CFF3 F01B          	movff	prodl,??_isr+26
  1461  00002E  CFF4 F01C          	movff	prodh,??_isr+27
  1462  000032  CFF6 F01D          	movff	tblptrl,??_isr+28
  1463  000036  CFF7 F01E          	movff	tblptrh,??_isr+29
  1464  00003A  CFF8 F01F          	movff	tblptru,??_isr+30
  1465  00003E  CFF5 F020          	movff	tablat,??_isr+31
  1466  000042  C035  F021         	movff	btemp,??_isr+32
  1467  000046  C036  F022         	movff	btemp+1,??_isr+33
  1468  00004A  C037  F023         	movff	btemp+2,??_isr+34
  1469  00004E  C038  F024         	movff	btemp+3,??_isr+35
  1470                           
  1471                           ;main.c: 116: unsigned char i, data_a, data_b;
  1472                           ;main.c: 122: if (PIR1bits.TMR2IF) {
  1473  000052  A29E               	btfss	3998,1,c	;volatile
  1474  000054  D12F               	goto	i2l55
  1475                           
  1476                           ;main.c: 123: data_a = PORTA;
  1477  000056  CF80 F025          	movff	3968,isr@data_a	;volatile
  1478                           
  1479                           ;main.c: 124: data_b = PORTB;
  1480  00005A  CF81 F026          	movff	3969,isr@data_b	;volatile
  1481                           
  1482                           ;main.c: 126: i = 7;
  1483  00005E  0E07               	movlw	7
  1484  000060  6E29               	movwf	isr@i,c
  1485  000062                     
  1486                           ;main.c: 129: keys_data[i] = (keys_data[i] << 1) | ((data_a >> i) & 0x01);
  1487  000062  5029               	movf	isr@i,w,c
  1488  000064  0D04               	mullw	4
  1489  000066  0E62               	movlw	low _keys_data
  1490  000068  24F3               	addwf	prodl,w,c
  1491  00006A  6ED9               	movwf	fsr2l,c
  1492  00006C  0E00               	movlw	high _keys_data
  1493  00006E  20F4               	addwfc	prodh,w,c
  1494  000070  6EDA               	movwf	fsr2h,c
  1495  000072  CFDE F001          	movff	postinc2,??_isr
  1496  000076  CFDE F002          	movff	postinc2,??_isr+1
  1497  00007A  CFDE F003          	movff	postinc2,??_isr+2
  1498  00007E  CFDE F004          	movff	postinc2,??_isr+3
  1499  000082  90D8               	bcf	status,0,c
  1500  000084  3401               	rlcf	??_isr,w,c
  1501  000086  6E05               	movwf	(??_isr+4)& (0+255),c
  1502  000088  3402               	rlcf	??_isr+1,w,c
  1503  00008A  6E06               	movwf	(??_isr+5)& (0+255),c
  1504  00008C  3403               	rlcf	??_isr+2,w,c
  1505  00008E  6E07               	movwf	(??_isr+6)& (0+255),c
  1506  000090  3404               	rlcf	??_isr+3,w,c
  1507  000092  6E08               	movwf	(??_isr+7)& (0+255),c
  1508  000094  C029  F009         	movff	isr@i,??_isr+8
  1509  000098  C025  F00A         	movff	isr@data_a,??_isr+9
  1510  00009C  2A09               	incf	??_isr+8,f,c
  1511  00009E  D002               	goto	i2u34_44
  1512  0000A0                     i2u34_45:
  1513  0000A0  90D8               	bcf	status,0,c
  1514  0000A2  320A               	rrcf	??_isr+9,f,c
  1515  0000A4                     i2u34_44:
  1516  0000A4  2E09               	decfsz	??_isr+8,f,c
  1517  0000A6  D7FC               	goto	i2u34_45
  1518  0000A8  0E01               	movlw	1
  1519  0000AA  160A               	andwf	??_isr+9,f,c
  1520  0000AC  500A               	movf	??_isr+9,w,c
  1521  0000AE  1005               	iorwf	??_isr+4,w,c
  1522  0000B0  6E0B               	movwf	(??_isr+10)& (0+255),c
  1523  0000B2  5006               	movf	??_isr+5,w,c
  1524  0000B4  6E0C               	movwf	(??_isr+11)& (0+255),c
  1525  0000B6  5007               	movf	??_isr+6,w,c
  1526  0000B8  6E0D               	movwf	(??_isr+12)& (0+255),c
  1527  0000BA  5008               	movf	??_isr+7,w,c
  1528  0000BC  6E0E               	movwf	(??_isr+13)& (0+255),c
  1529  0000BE  5029               	movf	isr@i,w,c
  1530  0000C0  0D04               	mullw	4
  1531  0000C2  0E62               	movlw	low _keys_data
  1532  0000C4  24F3               	addwf	prodl,w,c
  1533  0000C6  6ED9               	movwf	fsr2l,c
  1534  0000C8  0E00               	movlw	high _keys_data
  1535  0000CA  20F4               	addwfc	prodh,w,c
  1536  0000CC  6EDA               	movwf	fsr2h,c
  1537  0000CE  C00B  FFDE         	movff	??_isr+10,postinc2
  1538  0000D2  C00C  FFDE         	movff	??_isr+11,postinc2
  1539  0000D6  C00D  FFDE         	movff	??_isr+12,postinc2
  1540  0000DA  C00E  FFDE         	movff	??_isr+13,postinc2
  1541                           
  1542                           ;main.c: 130: keys_data[i + 8] = (keys_data[i + 8] << 1) | ((data_b >> i) & 0x01);
  1543  0000DE  5029               	movf	isr@i,w,c
  1544  0000E0  6E01               	movwf	??_isr& (0+255),c
  1545  0000E2  6A02               	clrf	(??_isr+1)& (0+255),c
  1546  0000E4  90D8               	bcf	status,0,c
  1547  0000E6  3601               	rlcf	??_isr,f,c
  1548  0000E8  3602               	rlcf	??_isr+1,f,c
  1549  0000EA  90D8               	bcf	status,0,c
  1550  0000EC  3601               	rlcf	??_isr,f,c
  1551  0000EE  3602               	rlcf	??_isr+1,f,c
  1552  0000F0  0E20               	movlw	32
  1553  0000F2  2601               	addwf	??_isr,f,c
  1554  0000F4  0E00               	movlw	0
  1555  0000F6  2202               	addwfc	??_isr+1,f,c
  1556  0000F8  0E62               	movlw	low _keys_data
  1557  0000FA  2401               	addwf	??_isr,w,c
  1558  0000FC  6ED9               	movwf	fsr2l,c
  1559  0000FE  0E00               	movlw	high _keys_data
  1560  000100  2002               	addwfc	??_isr+1,w,c
  1561  000102  6EDA               	movwf	fsr2h,c
  1562  000104  CFDE F003          	movff	postinc2,??_isr+2
  1563  000108  CFDE F004          	movff	postinc2,??_isr+3
  1564  00010C  CFDE F005          	movff	postinc2,??_isr+4
  1565  000110  CFDE F006          	movff	postinc2,??_isr+5
  1566  000114  90D8               	bcf	status,0,c
  1567  000116  3403               	rlcf	??_isr+2,w,c
  1568  000118  6E07               	movwf	(??_isr+6)& (0+255),c
  1569  00011A  3404               	rlcf	??_isr+3,w,c
  1570  00011C  6E08               	movwf	(??_isr+7)& (0+255),c
  1571  00011E  3405               	rlcf	??_isr+4,w,c
  1572  000120  6E09               	movwf	(??_isr+8)& (0+255),c
  1573  000122  3406               	rlcf	??_isr+5,w,c
  1574  000124  6E0A               	movwf	(??_isr+9)& (0+255),c
  1575  000126  C029  F00B         	movff	isr@i,??_isr+10
  1576  00012A  C026  F00C         	movff	isr@data_b,??_isr+11
  1577  00012E  2A0B               	incf	??_isr+10,f,c
  1578  000130  D002               	goto	i2u35_44
  1579  000132                     i2u35_45:
  1580  000132  90D8               	bcf	status,0,c
  1581  000134  320C               	rrcf	??_isr+11,f,c
  1582  000136                     i2u35_44:
  1583  000136  2E0B               	decfsz	??_isr+10,f,c
  1584  000138  D7FC               	goto	i2u35_45
  1585  00013A  0E01               	movlw	1
  1586  00013C  160C               	andwf	??_isr+11,f,c
  1587  00013E  500C               	movf	??_isr+11,w,c
  1588  000140  1007               	iorwf	??_isr+6,w,c
  1589  000142  6E0D               	movwf	(??_isr+12)& (0+255),c
  1590  000144  5008               	movf	??_isr+7,w,c
  1591  000146  6E0E               	movwf	(??_isr+13)& (0+255),c
  1592  000148  5009               	movf	??_isr+8,w,c
  1593  00014A  6E0F               	movwf	(??_isr+14)& (0+255),c
  1594  00014C  500A               	movf	??_isr+9,w,c
  1595  00014E  6E10               	movwf	(??_isr+15)& (0+255),c
  1596  000150  5029               	movf	isr@i,w,c
  1597  000152  6E11               	movwf	(??_isr+16)& (0+255),c
  1598  000154  6A12               	clrf	(??_isr+17)& (0+255),c
  1599  000156  90D8               	bcf	status,0,c
  1600  000158  3611               	rlcf	??_isr+16,f,c
  1601  00015A  3612               	rlcf	??_isr+17,f,c
  1602  00015C  90D8               	bcf	status,0,c
  1603  00015E  3611               	rlcf	??_isr+16,f,c
  1604  000160  3612               	rlcf	??_isr+17,f,c
  1605  000162  0E20               	movlw	32
  1606  000164  2611               	addwf	??_isr+16,f,c
  1607  000166  0E00               	movlw	0
  1608  000168  2212               	addwfc	??_isr+17,f,c
  1609  00016A  0E62               	movlw	low _keys_data
  1610  00016C  2411               	addwf	??_isr+16,w,c
  1611  00016E  6ED9               	movwf	fsr2l,c
  1612  000170  0E00               	movlw	high _keys_data
  1613  000172  2012               	addwfc	??_isr+17,w,c
  1614  000174  6EDA               	movwf	fsr2h,c
  1615  000176  C00D  FFDE         	movff	??_isr+12,postinc2
  1616  00017A  C00E  FFDE         	movff	??_isr+13,postinc2
  1617  00017E  C00F  FFDE         	movff	??_isr+14,postinc2
  1618  000182  C010  FFDE         	movff	??_isr+15,postinc2
  1619                           
  1620                           ;main.c: 135: keypresses |= (keys_data[i] && !(keys_data[i] & 0xFFFFFF00))<<i;
  1621  000186  0E00               	movlw	0
  1622  000188  6E27               	movwf	_isr$304,c
  1623  00018A  5029               	movf	isr@i,w,c
  1624  00018C  0D04               	mullw	4
  1625  00018E  0E62               	movlw	low _keys_data
  1626  000190  24F3               	addwf	prodl,w,c
  1627  000192  6ED9               	movwf	fsr2l,c
  1628  000194  0E00               	movlw	high _keys_data
  1629  000196  20F4               	addwfc	prodh,w,c
  1630  000198  6EDA               	movwf	fsr2h,c
  1631  00019A  50DE               	movf	postinc2,w,c
  1632  00019C  10DE               	iorwf	postinc2,w,c
  1633  00019E  10DE               	iorwf	postinc2,w,c
  1634  0001A0  10DE               	iorwf	postinc2,w,c
  1635  0001A2  B4D8               	btfsc	status,2,c
  1636  0001A4  D01C               	goto	i2l58
  1637  0001A6  5029               	movf	isr@i,w,c
  1638  0001A8  0D04               	mullw	4
  1639  0001AA  0E62               	movlw	low _keys_data
  1640  0001AC  24F3               	addwf	prodl,w,c
  1641  0001AE  6ED9               	movwf	fsr2l,c
  1642  0001B0  0E00               	movlw	high _keys_data
  1643  0001B2  20F4               	addwfc	prodh,w,c
  1644  0001B4  6EDA               	movwf	fsr2h,c
  1645  0001B6  0E00               	movlw	0
  1646  0001B8  14DE               	andwf	postinc2,w,c
  1647  0001BA  6E01               	movwf	??_isr& (0+255),c
  1648  0001BC  0EFF               	movlw	255
  1649  0001BE  14DE               	andwf	postinc2,w,c
  1650  0001C0  6E02               	movwf	(??_isr+1)& (0+255),c
  1651  0001C2  0EFF               	movlw	255
  1652  0001C4  14DE               	andwf	postinc2,w,c
  1653  0001C6  6E03               	movwf	(??_isr+2)& (0+255),c
  1654  0001C8  0EFF               	movlw	255
  1655  0001CA  14DE               	andwf	postinc2,w,c
  1656  0001CC  6E04               	movwf	(??_isr+3)& (0+255),c
  1657  0001CE  5001               	movf	??_isr,w,c
  1658  0001D0  1002               	iorwf	??_isr+1,w,c
  1659  0001D2  1003               	iorwf	??_isr+2,w,c
  1660  0001D4  1004               	iorwf	??_isr+3,w,c
  1661  0001D6  A4D8               	btfss	status,2,c
  1662  0001D8  D002               	goto	i2l58
  1663  0001DA  0E01               	movlw	1
  1664  0001DC  6E27               	movwf	_isr$304,c
  1665  0001DE                     i2l58:
  1666  0001DE  C029  F001         	movff	isr@i,??_isr
  1667  0001E2  5027               	movf	_isr$304,w,c
  1668  0001E4  6E02               	movwf	(??_isr+1)& (0+255),c
  1669  0001E6  6A03               	clrf	(??_isr+2)& (0+255),c
  1670  0001E8  2A01               	incf	??_isr,f,c
  1671  0001EA  D003               	goto	i2u38_44
  1672  0001EC                     i2u38_45:
  1673  0001EC  90D8               	bcf	status,0,c
  1674  0001EE  3602               	rlcf	??_isr+1,f,c
  1675  0001F0  3603               	rlcf	??_isr+2,f,c
  1676  0001F2                     i2u38_44:
  1677  0001F2  2E01               	decfsz	??_isr,f,c
  1678  0001F4  D7FB               	goto	i2u38_45
  1679  0001F6  5002               	movf	??_isr+1,w,c
  1680  0001F8  0100               	movlb	0	; () banked
  1681  0001FA  1360               	iorwf	_keypresses& (0+255),f,b	;volatile
  1682  0001FC  5003               	movf	??_isr+2,w,c
  1683  0001FE  1361               	iorwf	(_keypresses+1)& (0+255),f,b	;volatile
  1684                           
  1685                           ; BSR set to: 0
  1686                           ;main.c: 136: keypresses |= (keys_data[i + 8] && !(keys_data[i + 8] & 0xFFFFFF00))<<(i +
      +                           8);
  1687  000200  0E00               	movlw	0
  1688  000202  6E28               	movwf	_isr$305,c
  1689                           
  1690                           ; BSR set to: 0
  1691  000204  5029               	movf	isr@i,w,c
  1692  000206  6E01               	movwf	??_isr& (0+255),c
  1693  000208  6A02               	clrf	(??_isr+1)& (0+255),c
  1694  00020A  90D8               	bcf	status,0,c
  1695  00020C  3601               	rlcf	??_isr,f,c
  1696  00020E  3602               	rlcf	??_isr+1,f,c
  1697  000210  90D8               	bcf	status,0,c
  1698  000212  3601               	rlcf	??_isr,f,c
  1699  000214  3602               	rlcf	??_isr+1,f,c
  1700  000216  0E20               	movlw	32
  1701  000218  2601               	addwf	??_isr,f,c
  1702  00021A  0E00               	movlw	0
  1703  00021C  2202               	addwfc	??_isr+1,f,c
  1704  00021E  0E62               	movlw	low _keys_data
  1705  000220  2401               	addwf	??_isr,w,c
  1706  000222  6ED9               	movwf	fsr2l,c
  1707  000224  0E00               	movlw	high _keys_data
  1708  000226  2002               	addwfc	??_isr+1,w,c
  1709  000228  6EDA               	movwf	fsr2h,c
  1710  00022A  50DE               	movf	postinc2,w,c
  1711  00022C  10DE               	iorwf	postinc2,w,c
  1712  00022E  10DE               	iorwf	postinc2,w,c
  1713  000230  10DE               	iorwf	postinc2,w,c
  1714  000232  B4D8               	btfsc	status,2,c
  1715  000234  D027               	goto	i2l60
  1716                           
  1717                           ; BSR set to: 0
  1718  000236  5029               	movf	isr@i,w,c
  1719  000238  6E01               	movwf	??_isr& (0+255),c
  1720  00023A  6A02               	clrf	(??_isr+1)& (0+255),c
  1721  00023C  90D8               	bcf	status,0,c
  1722  00023E  3601               	rlcf	??_isr,f,c
  1723  000240  3602               	rlcf	??_isr+1,f,c
  1724  000242  90D8               	bcf	status,0,c
  1725  000244  3601               	rlcf	??_isr,f,c
  1726  000246  3602               	rlcf	??_isr+1,f,c
  1727  000248  0E20               	movlw	32
  1728  00024A  2601               	addwf	??_isr,f,c
  1729  00024C  0E00               	movlw	0
  1730  00024E  2202               	addwfc	??_isr+1,f,c
  1731  000250  0E62               	movlw	low _keys_data
  1732  000252  2401               	addwf	??_isr,w,c
  1733  000254  6ED9               	movwf	fsr2l,c
  1734  000256  0E00               	movlw	high _keys_data
  1735  000258  2002               	addwfc	??_isr+1,w,c
  1736  00025A  6EDA               	movwf	fsr2h,c
  1737  00025C  0E00               	movlw	0
  1738  00025E  14DE               	andwf	postinc2,w,c
  1739  000260  6E03               	movwf	(??_isr+2)& (0+255),c
  1740  000262  0EFF               	movlw	255
  1741  000264  14DE               	andwf	postinc2,w,c
  1742  000266  6E04               	movwf	(??_isr+3)& (0+255),c
  1743  000268  0EFF               	movlw	255
  1744  00026A  14DE               	andwf	postinc2,w,c
  1745  00026C  6E05               	movwf	(??_isr+4)& (0+255),c
  1746  00026E  0EFF               	movlw	255
  1747  000270  14DE               	andwf	postinc2,w,c
  1748  000272  6E06               	movwf	(??_isr+5)& (0+255),c
  1749  000274  5003               	movf	??_isr+2,w,c
  1750  000276  1004               	iorwf	??_isr+3,w,c
  1751  000278  1005               	iorwf	??_isr+4,w,c
  1752  00027A  1006               	iorwf	??_isr+5,w,c
  1753  00027C  A4D8               	btfss	status,2,c
  1754  00027E  D002               	goto	i2l60
  1755                           
  1756                           ; BSR set to: 0
  1757  000280  0E01               	movlw	1
  1758  000282  6E28               	movwf	_isr$305,c
  1759  000284                     i2l60:
  1760                           
  1761                           ; BSR set to: 0
  1762                           
  1763                           ; BSR set to: 0
  1764  000284  C029  F001         	movff	isr@i,??_isr
  1765  000288  0E08               	movlw	8
  1766  00028A  2601               	addwf	??_isr,f,c
  1767  00028C  5028               	movf	_isr$305,w,c
  1768  00028E  6E02               	movwf	(??_isr+1)& (0+255),c
  1769  000290  6A03               	clrf	(??_isr+2)& (0+255),c
  1770  000292  2A01               	incf	??_isr,f,c
  1771  000294  D003               	goto	i2u41_44
  1772  000296                     i2u41_45:
  1773  000296  90D8               	bcf	status,0,c
  1774  000298  3602               	rlcf	??_isr+1,f,c
  1775  00029A  3603               	rlcf	??_isr+2,f,c
  1776  00029C                     i2u41_44:
  1777  00029C  2E01               	decfsz	??_isr,f,c
  1778  00029E  D7FB               	goto	i2u41_45
  1779  0002A0  5002               	movf	??_isr+1,w,c
  1780  0002A2  0100               	movlb	0	; () banked
  1781  0002A4  1360               	iorwf	_keypresses& (0+255),f,b	;volatile
  1782  0002A6  5003               	movf	??_isr+2,w,c
  1783  0002A8  1361               	iorwf	(_keypresses+1)& (0+255),f,b	;volatile
  1784                           
  1785                           ; BSR set to: 0
  1786                           ;main.c: 138: } while (i--);
  1787  0002AA  0629               	decf	isr@i,f,c
  1788  0002AC  2829               	incf	isr@i,w,c
  1789  0002AE  A4D8               	btfss	status,2,c
  1790  0002B0  D6D8               	goto	i2l56
  1791                           
  1792                           ; BSR set to: 0
  1793                           ;main.c: 147: PIR1bits.TMR2IF = 0;
  1794  0002B2  929E               	bcf	3998,1,c	;volatile
  1795  0002B4                     i2l55:
  1796                           
  1797                           ; BSR set to: 0
  1798  0002B4  C024  F038         	movff	??_isr+35,btemp+3
  1799  0002B8  C023  F037         	movff	??_isr+34,btemp+2
  1800  0002BC  C022  F036         	movff	??_isr+33,btemp+1
  1801  0002C0  C021  F035         	movff	??_isr+32,btemp
  1802  0002C4  C020  FFF5         	movff	??_isr+31,tablat
  1803  0002C8  C01F  FFF8         	movff	??_isr+30,tblptru
  1804  0002CC  C01E  FFF7         	movff	??_isr+29,tblptrh
  1805  0002D0  C01D  FFF6         	movff	??_isr+28,tblptrl
  1806  0002D4  C01C  FFF4         	movff	??_isr+27,prodh
  1807  0002D8  C01B  FFF3         	movff	??_isr+26,prodl
  1808  0002DC  C01A  FFDA         	movff	??_isr+25,fsr2h
  1809  0002E0  C019  FFD9         	movff	??_isr+24,fsr2l
  1810  0002E4  C018  FFE2         	movff	??_isr+23,fsr1h
  1811  0002E8  C017  FFE1         	movff	??_isr+22,fsr1l
  1812  0002EC  C016  FFEA         	movff	??_isr+21,fsr0h
  1813  0002F0  C015  FFE9         	movff	??_isr+20,fsr0l
  1814  0002F4  C014  FFFB         	movff	??_isr+19,pclatu
  1815  0002F8  C013  FFFA         	movff	??_isr+18,pclath
  1816  0002FC  9235               	bcf	btemp,1,c	;clear compiler interrupt flag (level 2)
  1817  0002FE  0011               	retfie		f
  1818  000300                     __end_of_isr:
  1819                           	opt stack 0
  1820                           pclatu	equ	0xFFB
  1821                           pclath	equ	0xFFA
  1822                           tblptru	equ	0xFF8
  1823                           tblptrh	equ	0xFF7
  1824                           tblptrl	equ	0xFF6
  1825                           tablat	equ	0xFF5
  1826                           prodh	equ	0xFF4
  1827                           prodl	equ	0xFF3
  1828                           intcon	equ	0xFF2
  1829                           postinc0	equ	0xFEE
  1830                           fsr0h	equ	0xFEA
  1831                           fsr0l	equ	0xFE9
  1832                           wreg	equ	0xFE8
  1833                           fsr1h	equ	0xFE2
  1834                           fsr1l	equ	0xFE1
  1835                           indf2	equ	0xFDF
  1836                           postinc2	equ	0xFDE
  1837                           postdec2	equ	0xFDD
  1838                           fsr2h	equ	0xFDA
  1839                           fsr2l	equ	0xFD9
  1840                           status	equ	0xFD8
  1841                           pclatu	equ	0xFFB
  1842                           pclath	equ	0xFFA
  1843                           tblptru	equ	0xFF8
  1844                           tblptrh	equ	0xFF7
  1845                           tblptrl	equ	0xFF6
  1846                           tablat	equ	0xFF5
  1847                           prodh	equ	0xFF4
  1848                           prodl	equ	0xFF3
  1849                           intcon	equ	0xFF2
  1850                           postinc0	equ	0xFEE
  1851                           fsr0h	equ	0xFEA
  1852                           fsr0l	equ	0xFE9
  1853                           wreg	equ	0xFE8
  1854                           fsr1h	equ	0xFE2
  1855                           fsr1l	equ	0xFE1
  1856                           indf2	equ	0xFDF
  1857                           postinc2	equ	0xFDE
  1858                           postdec2	equ	0xFDD
  1859                           fsr2h	equ	0xFDA
  1860                           fsr2l	equ	0xFD9
  1861                           status	equ	0xFD8
  1862                           
  1863                           	psect	rparam
  1864  0000                     pclatu	equ	0xFFB
  1865                           pclath	equ	0xFFA
  1866                           tblptru	equ	0xFF8
  1867                           tblptrh	equ	0xFF7
  1868                           tblptrl	equ	0xFF6
  1869                           tablat	equ	0xFF5
  1870                           prodh	equ	0xFF4
  1871                           prodl	equ	0xFF3
  1872                           intcon	equ	0xFF2
  1873                           postinc0	equ	0xFEE
  1874                           fsr0h	equ	0xFEA
  1875                           fsr0l	equ	0xFE9
  1876                           wreg	equ	0xFE8
  1877                           fsr1h	equ	0xFE2
  1878                           fsr1l	equ	0xFE1
  1879                           indf2	equ	0xFDF
  1880                           postinc2	equ	0xFDE
  1881                           postdec2	equ	0xFDD
  1882                           fsr2h	equ	0xFDA
  1883                           fsr2l	equ	0xFD9
  1884                           status	equ	0xFD8
  1885                           
  1886                           	psect	temp
  1887  000035                     btemp:
  1888                           	opt stack 0
  1889  000035                     	ds	1
  1890  0000                     int$flags	set	btemp
  1891  0000                     wtemp6	set	btemp+1
  1892                           pclatu	equ	0xFFB
  1893                           pclath	equ	0xFFA
  1894                           tblptru	equ	0xFF8
  1895                           tblptrh	equ	0xFF7
  1896                           tblptrl	equ	0xFF6
  1897                           tablat	equ	0xFF5
  1898                           prodh	equ	0xFF4
  1899                           prodl	equ	0xFF3
  1900                           intcon	equ	0xFF2
  1901                           postinc0	equ	0xFEE
  1902                           fsr0h	equ	0xFEA
  1903                           fsr0l	equ	0xFE9
  1904                           wreg	equ	0xFE8
  1905                           fsr1h	equ	0xFE2
  1906                           fsr1l	equ	0xFE1
  1907                           indf2	equ	0xFDF
  1908                           postinc2	equ	0xFDE
  1909                           postdec2	equ	0xFDD
  1910                           fsr2h	equ	0xFDA
  1911                           fsr2l	equ	0xFD9
  1912                           status	equ	0xFD8


Data Sizes:
    Strings     0
    Constant    42
    Data        0
    BSS         66
    Persistent  0
    Stack       0

Auto Spaces:
    Space          Size  Autos    Used
    COMRAM           94     52      52
    BANK0           160     21      87
    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 64
		 -> keys_data(BANK0[64]), 

    memset@p	PTR unsigned char  size(2) Largest target is 64
		 -> keys_data(BANK0[64]), 

    midi_note_on@pkt	PTR struct . size(2) Largest target is 7
		 -> main@message(BANK0[7]), 

    midi_set_channel@pkt	PTR struct . size(2) Largest target is 7
		 -> main@message(BANK0[7]), 

    midi_set_status@pkt	PTR struct . size(2) Largest target is 7
		 -> main@message(BANK0[7]), 

    eusart_write_midi@data	PTR unsigned char  size(2) Largest target is 7
		 -> message.data(COMRAM[4]), main@message(BANK0[7]), conf_message.data(COMRAM[4]), main@conf_message(BANK0[7]), 

    eusart_write_midi@pkt	PTR const struct . size(2) Largest target is 7
		 -> main@message(BANK0[7]), main@conf_message(BANK0[7]), 

    sp__memset	PTR void  size(2) Largest target is 64
		 -> keys_data(BANK0[64]), 


Critical Paths under _main in COMRAM

    _main->_midi_note_on
    _midi_note_on->_midi_set_channel
    _eusart_write_midi->_eusart2_putch

Critical Paths under _isr in COMRAM

    None.

Critical Paths under _main in BANK0

    None.

Critical Paths under _isr in BANK0

    None.

Critical Paths under _main in BANK1

    None.

Critical Paths under _isr in BANK1

    None.

Critical Paths under _main in BANK2

    None.

Critical Paths under _isr in BANK2

    None.

Critical Paths under _main in BANK3

    None.

Critical Paths under _isr in BANK3

    None.

Critical Paths under _main in BANK4

    None.

Critical Paths under _isr in BANK4

    None.

Critical Paths under _main in BANK5

    None.

Critical Paths under _isr in BANK5

    None.

Call Graph Tables:

 ---------------------------------------------------------------------------------
 (Depth) Function   	        Calls       Base Space   Used Autos Params    Refs
 ---------------------------------------------------------------------------------
 (0) _main                                                21    21      0    2165
                                              0 BANK0     21    21      0
                  _eusart_write_midi
                            _init_hw
                             _memset
                       _midi_note_on
 ---------------------------------------------------------------------------------
 (1) _midi_note_on                                         6     0      6    1242
                                             46 COMRAM     6     0      6
                   _midi_set_channel
                    _midi_set_status
 ---------------------------------------------------------------------------------
 (2) _midi_set_status                                      4     1      3     370
                                             41 COMRAM     4     1      3
 ---------------------------------------------------------------------------------
 (2) _midi_set_channel                                     5     1      4     370
                                             41 COMRAM     5     1      4
 ---------------------------------------------------------------------------------
 (1) _memset                                               8     2      6     324
                                             41 COMRAM     8     2      6
 ---------------------------------------------------------------------------------
 (1) _init_hw                                              0     0      0       0
                       _eusart1_init
                       _eusart2_init
 ---------------------------------------------------------------------------------
 (2) _eusart2_init                                         0     0      0       0
 ---------------------------------------------------------------------------------
 (2) _eusart1_init                                         0     0      0       0
 ---------------------------------------------------------------------------------
 (1) _eusart_write_midi                                    8     6      2     331
                                             42 COMRAM     8     6      2
                      _eusart2_putch
 ---------------------------------------------------------------------------------
 (2) _eusart2_putch                                        1     1      0      22
                                             41 COMRAM     1     1      0
 ---------------------------------------------------------------------------------
 Estimated maximum stack depth 2
 ---------------------------------------------------------------------------------
 (Depth) Function   	        Calls       Base Space   Used Autos Params    Refs
 ---------------------------------------------------------------------------------
 (3) _isr                                                 41    41      0     381
                                              0 COMRAM    41    41      0
 ---------------------------------------------------------------------------------
 Estimated maximum stack depth 3
 ---------------------------------------------------------------------------------

 Call Graph Graphs:

 _main (ROOT)
   _eusart_write_midi
     _eusart2_putch
   _init_hw
     _eusart1_init
     _eusart2_init
   _memset
   _midi_note_on
     _midi_set_channel
     _midi_set_status

 _isr (ROOT)

 Address spaces:
Name               Size   Autos  Total    Cost      Usage
BIGRAM             5FF      0       0      16        0.0%
EEDATA             100      0       0       0        0.0%
BITBANK5           100      0       0      14        0.0%
BANK5              100      0       0      15        0.0%
BITBANK4           100      0       0      12        0.0%
BANK4              100      0       0      13        0.0%
BITBANK3           100      0       0      10        0.0%
BANK3              100      0       0      11        0.0%
BITBANK2           100      0       0       7        0.0%
BANK2              100      0       0       8        0.0%
BITBANK1           100      0       0       5        0.0%
BANK1              100      0       0       6        0.0%
BITBANK0            A0      0       0       3        0.0%
BANK0               A0     15      57       4       54.4%
BITCOMRAM           5E      0       0       0        0.0%
COMRAM              5E     34      34       1       55.3%
BITSFR_1             0      0       0     200        0.0%
SFR_1                0      0       0     200        0.0%
BITSFR               0      0       0     200        0.0%
SFR                  0      0       0     200        0.0%
STACK                0      0       0       2        0.0%
NULL                 0      0       0       0        0.0%
ABS                  0      0      8B       9        0.0%
DATA                 0      0      8B      17        0.0%
CODE                 0      0       0       0        0.0%


Microchip Technology PIC18 Macro Assembler V1.44 build -154322312 
Symbol Table                                                                                   Fri Mar 02 09:57:11 2018

                            l70 06B6                              l81 07C4                              l73 075C  
                            l82 07B2                    __CFG_CP0$OFF 000000                    __CFG_CP1$OFF 000000  
                  __CFG_CP2$OFF 000000                    __CFG_CP3$OFF 000000                     __CFG_LVP$ON 000000  
                           l592 08A4                             l593 0894                    __CFG_CPB$OFF 000000  
                           _PR2 000FBB                    __CFG_CPD$OFF 000000                             u507 0724  
                           u444 06E2                             u445 06DC                             u464 0746  
                           u465 0740                             u497 069E                             _isr 0008  
                           prod 000FF3                             wreg 000FE8                      _TXSTA1bits 000FAC  
                    _TXSTA2bits 000F72                            l1100 07B2                            l1028 0954  
                          l1070 0894                            l1160 06C0                            l1158 06B6  
                          ?_isr 0001                            i2l60 0284                            i2l55 02B4  
                          i2l56 0062                            i2l58 01DE                     main@message 00B0  
                          _main 062C             midi_note_on@channel 0031                            fsr0h 000FEA  
                          fsr1h 000FE2                            fsr2h 000FDA                            fsr0l 000FE9  
                          indf2 000FDF                            fsr1l 000FE1                            fsr2l 000FD9  
                          btemp 0035                   __CFG_BORV$190 000000                            isr@i 0029  
                          prodh 000FF4                            prodl 000FF3                            start 0300  
                 __CFG_IESO$OFF 000000                 midi_note_on@pkt 002F                    ___param_bank 000000  
                         ??_isr 0001                    _BAUDCON1bits 000FB8                    _BAUDCON2bits 000F70  
                         ?_main 0001                           _RC1IF 007CF5                           _TX1IF 007CF4  
                         _TX2IF 007D24                           _PORTA 000F80                           _PORTB 000F81  
                         _TRISA 000F92                           _TRISB 000F93                   __CFG_WRT0$OFF 000000  
                 __CFG_WRT1$OFF 000000                   __CFG_WRT2$OFF 000000                   __CFG_WRT3$OFF 000000  
                __CFG_EBTR0$OFF 000000                  __CFG_FCMEN$OFF 000000                  __CFG_EBTR1$OFF 000000  
                __CFG_EBTR2$OFF 000000                  __CFG_EBTR3$OFF 000000                   __CFG_WRTB$OFF 000000  
                 __CFG_WRTC$OFF 000000                   __CFG_WRTD$OFF 000000                  __CFG_EBTRB$OFF 000000  
               __end_of_init_hw 088A              __CFG_MCLRE$EXTMCLR 000000                           main@i 00AE  
                         pclath 000FFA                           tablat 000FF5               _eusart_write_midi 0762  
       __end_of_midi_set_status 0900                           status 000FD8                           wtemp6 0036  
                __CFG_HFOFST$ON 000000              ?_eusart_write_midi 002B                  __CFG_PBADEN$ON 000000  
       eusart_write_midi@length 002F                 __initialization 0938                midi_note_on@note 0033  
                  __end_of_main 0762             ??_eusart_write_midi 002D            midi_note_on@velocity 0034  
                        ??_main 00A2                   ?_midi_note_on 002F                   __activetblptr 000002  
                __CFG_PLLCFG$ON 000000       __end_of_eusart_write_midi 07D6                          _ANSELA 000F38  
                        _ANSELB 000F39                          _ANSELC 000F3A                          _ANSELD 000F3B  
                        _RC1REG 000FAE                  __CFG_WDTEN$OFF 000000                          _SPBRG1 000FAF  
                        _SPBRG2 000F75                          _TX1REG 000FAD                          _TX2REG 000F73  
                 ?_eusart1_init 0001                   ?_eusart2_init 0001                  __CFG_XINST$OFF 000000  
                __CFG_STVREN$ON 000000        __end_of_midi_set_channel 08DC                          _memset 088A  
                        clear_0 093E           midi_set_status@status 002C                  ??_midi_note_on 0035  
        __size_of_eusart2_putch 000C                       ??_init_hw 002A                    __mediumconst 0000  
                        tblptrh 000FF7                          tblptrl 000FF6                          tblptru 000FF8  
                    __accesstop 0060         __end_of__initialization 0944                ?_midi_set_status 002A  
                ??_eusart1_init 002A                  ??_eusart2_init 002A                   ___rparam_used 000001  
                __pcstackCOMRAM 0001      __size_of_eusart_write_midi 0074                      __pbssBANK0 0060  
              main@conf_message 00A7                   _eusart2_putch 0952              __CFG_CCP2MX$PORTC1 000000  
            __CFG_CCP3MX$PORTB5 000000                         ?_memset 002A                         i2u41_44 029C  
                       i2u41_45 0296                         i2u34_44 00A4                         i2u34_45 00A0  
                       i2u35_44 0136                         i2u35_45 0132                         i2u38_44 01F2  
                       i2u38_45 01EC                         _SPBRGH1 000FB0                         _SPBRGH2 000F76  
                ?_eusart2_putch 0001            __end_of_midi_note_on 0838            eusart_write_midi@pkt 002B  
               __CFG_PWRTEN$OFF 000000                         __Hparam 0000                         __Lparam 0000  
                  __psmallconst 0600                         __pcinit 0938                         _isr$304 0027  
                       _isr$305 0028                 __size_of_memset 002C                         __ramtop 0600  
                       __ptext0 062C                         __ptext1 07D6                         __ptext2 08DC  
                       __ptext3 08B6                         __ptext4 088A                         __ptext5 0838  
                       __ptext6 0900                         __ptext7 091C                         __ptext8 0762  
                       __ptext9 0952            __end_of_eusart1_init 0938            __end_of_eusart2_init 091C  
                     _T2CONbits 000FBA                         _init_hw 0838                    __size_of_isr 02F8  
                    _keypresses 0060            end_of_initialization 0944          _midi_notes_steps_table 0601  
                       memset@c 002C                         memset@n 002E                         memset@p 0030  
                 __Lmediumconst 0000                         postdec2 000FDD                         postinc0 000FEE  
                       postinc2 000FDE               ?_midi_set_channel 002A              ??_midi_set_channel 002E  
                     _TRISCbits 000F94                       _TRISDbits 000F95                 ??_eusart2_putch 002A  
       midi_set_channel@channel 002C                  __end_of_memset 08B6             start_initialization 0938  
                   __end_of_isr 0300           __size_of_midi_note_on 0062        __size_of_midi_set_status 0024  
         __size_of_eusart1_init 001C           __size_of_eusart2_init 001C                        ??_memset 0030  
                  _midi_note_on 07D6                   __pcstackBANK0 00A2              midi_set_status@pkt 002A  
                  _eusart1_init 091C                    _eusart2_init 0900                       __pintcode 0008  
              __CFG_PRICLKEN$ON 000000                     __smallconst 0600                        ?_init_hw 0001  
                     _keys_data 0062                        _PIE1bits 000F9D                        _PIR1bits 000F9E  
              __CFG_WDTPS$32768 000000               ??_midi_set_status 002D  __end_of_midi_notes_steps_table 062B  
     __size_of_midi_set_channel 0026           eusart_write_midi@data 0031                       isr@data_a 0025  
                     isr@data_b 0026                        __Hrparam 0000                        __Lrparam 0000  
            __CFG_BOREN$SBORDIS 000000               __CFG_P2BMX$PORTD2 000000                  eusart2_putch@c 002A  
              __size_of_init_hw 0052           __end_of_eusart2_putch 095E                   __size_of_main 0136  
                      int$flags 0035                     _OSCTUNEbits 000F9B                      _INTCONbits 000FF2  
                      memset@p1 002A             midi_set_channel@pkt 002A                        intlevel2 0000  
                    _RCSTA1bits 000FAB                      _RCSTA2bits 000F71                      _OSCCONbits 000FD3  
             __CFG_T3CMX$PORTC0 000000                _midi_set_channel 08B6               __CFG_FOSC$INTIO67 000000  
               _midi_set_status 08DC