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
|
Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312
Tue Feb 27 10:27:03 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 cinit,global,reloc=2,class=CODE,delta=1
6 psect bssBANK0,global,class=BANK0,space=1,delta=1,lowdata,noexec
7 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
8 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
9 psect text0,global,reloc=2,class=CODE,delta=1
10 psect text1,global,reloc=2,class=CODE,delta=1
11 psect text2,global,reloc=2,class=CODE,delta=1
12 psect text3,global,reloc=2,class=CODE,delta=1
13 psect text4,global,reloc=2,class=CODE,delta=1,group=1
14 psect text5,global,reloc=2,class=CODE,delta=1,inline
15 psect text6,global,reloc=2,class=CODE,delta=1
16 psect text7,global,reloc=2,class=CODE,delta=1
17 psect text8,global,reloc=2,class=CODE,delta=1
18 psect text9,global,reloc=2,class=CODE,delta=1
19 psect intcode,global,reloc=2,class=CODE,delta=1
20 psect intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec
21 psect rparam,global,class=COMRAM,space=1,delta=1,noexec
22 psect temp,global,ovrld,common,class=COMRAM,space=1,delta=1
23 0000
24 ; Version 1.44
25 ; Generated 14/09/2017 GMT
26 ;
27 ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip")
28 ; All rights reserved.
29 ;
30 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ ip").
31 ;
32 ; Redistribution and use in source and binary forms, with or without modification, are
33 ; permitted provided that the following conditions are met:
34 ;
35 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ t of
36 ; conditions and the following disclaimer.
37 ;
38 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ list
39 ; of conditions and the following disclaimer in the documentation and/or other
40 ; materials provided with the distribution.
41 ;
42 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ is
43 ; software without specific prior written permission.
44 ;
45 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
46 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ OR
47 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ T,
48 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
49 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
50 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ RICT
51 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ SE OF
52 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53 ;
54 ;
55 ; Code-generator required, PIC18F45K22 Definitions
56 ;
57 ; SFR Addresses
58 0000 _ANSELD set 3899
59 0000 _ANSELC set 3898
60 0000 _ANSELB set 3897
61 0000 _ANSELA set 3896
62 0000 _RC1REG set 4014
63 0000 _TX2REG set 3955
64 0000 _TX1REG set 4013
65 0000 _BAUDCON2bits set 3952
66 0000 _SPBRGH2 set 3958
67 0000 _SPBRG2 set 3957
68 0000 _RCSTA2bits set 3953
69 0000 _TXSTA2bits set 3954
70 0000 _TRISCbits set 3988
71 0000 _BAUDCON1bits set 4024
72 0000 _SPBRGH1 set 4016
73 0000 _SPBRG1 set 4015
74 0000 _RCSTA1bits set 4011
75 0000 _TXSTA1bits set 4012
76 0000 _PIE1bits set 3997
77 0000 _T2CONbits set 4026
78 0000 _PR2 set 4027
79 0000 _TRISDbits set 3989
80 0000 _TRISB set 3987
81 0000 _TRISA set 3986
82 0000 _OSCCONbits set 4051
83 0000 _OSCTUNEbits set 3995
84 0000 _INTCONbits set 4082
85 0000 _PORTAbits set 3968
86 0000 _PORTB set 3969
87 0000 _PORTA set 3968
88 0000 _PIR1bits set 3998
89 0000 _PORTDbits set 3971
90 0000 _RC1IF set 31989
91 0000 _TX2IF set 32036
92 0000 _TX1IF set 31988
93
94 ; #config settings
95 0000
96 psect cinit
97 00061C __pcinit:
98 opt stack 0
99 00061C start_initialization:
100 opt stack 0
101 00061C __initialization:
102 opt stack 0
103
104 ; Clear objects allocated to BANK0 (66 bytes)
105 00061C EE00 F060 lfsr 0,__pbssBANK0
106 000620 0E42 movlw 66
107 000622 clear_0:
108 000622 6AEE clrf postinc0,c
109 000624 06E8 decf wreg,f,c
110 000626 E1FD bnz clear_0
111 000628 end_of_initialization:
112 opt stack 0
113 000628 __end_of__initialization:
114 opt stack 0
115 000628 9034 bcf int$flags,0,c ;clear compiler interrupt flag (level 1)
116 00062A 9234 bcf int$flags,1,c ;clear compiler interrupt flag (level 2)
117 00062C 0E00 movlw low (__Lmediumconst shr (0+16))
118 00062E 6EF8 movwf tblptru,c
119 000630 0100 movlb 0
120 000632 EFAB F001 goto _main ;jump to C main() function
121 tblptru equ 0xFF8
122 postinc0 equ 0xFEE
123 wreg equ 0xFE8
124
125 psect bssBANK0
126 000060 __pbssBANK0:
127 opt stack 0
128 000060 _keypresses:
129 opt stack 0
130 000060 ds 2
131 000062 _keys_data:
132 opt stack 0
133 000062 ds 64
134 tblptru equ 0xFF8
135 postinc0 equ 0xFEE
136 wreg equ 0xFE8
137
138 psect cstackBANK0
139 0000A2 __pcstackBANK0:
140 opt stack 0
141 0000A2 midi_note_on@pkt:
142 opt stack 0
143
144 ; 2 bytes @ 0x0
145 0000A2 ds 2
146 0000A4 midi_note_on@channel:
147 opt stack 0
148
149 ; 2 bytes @ 0x2
150 0000A4 ds 2
151 0000A6 midi_note_on@note:
152 opt stack 0
153
154 ; 1 bytes @ 0x4
155 0000A6 ds 1
156 0000A7 midi_note_on@velocity:
157 opt stack 0
158
159 ; 1 bytes @ 0x5
160 0000A7 ds 1
161 0000A8 ??_main:
162
163 ; 1 bytes @ 0x6
164 0000A8 ds 5
165 0000AD main@i:
166 opt stack 0
167
168 ; 2 bytes @ 0xB
169 0000AD ds 2
170 0000AF main@message:
171 opt stack 0
172
173 ; 7 bytes @ 0xD
174 0000AF ds 7
175 tblptru equ 0xFF8
176 postinc0 equ 0xFEE
177 wreg equ 0xFE8
178
179 psect cstackCOMRAM
180 000001 __pcstackCOMRAM:
181 opt stack 0
182 000001 ??_isr:
183 000001
184 ; 1 bytes @ 0x0
185 000001 ds 36
186 000025 isr@data_a:
187 opt stack 0
188
189 ; 1 bytes @ 0x24
190 000025 ds 1
191 000026 isr@data_b:
192 opt stack 0
193
194 ; 1 bytes @ 0x25
195 000026 ds 1
196 000027 _isr$595:
197 opt stack 0
198
199 ; 1 bytes @ 0x26
200 000027 ds 1
201 000028 _isr$596:
202 opt stack 0
203
204 ; 1 bytes @ 0x27
205 000028 ds 1
206 000029 _isr$605:
207 opt stack 0
208
209 ; 1 bytes @ 0x28
210 000029 ds 1
211 00002A isr@i:
212 opt stack 0
213
214 ; 1 bytes @ 0x29
215 00002A ds 1
216 00002B eusart2_putch@c:
217 opt stack 0
218 00002B midi_set_status@pkt:
219 opt stack 0
220 00002B midi_set_channel@pkt:
221 opt stack 0
222 00002B memset@p1:
223 opt stack 0
224
225 ; 2 bytes @ 0x2A
226 00002B ds 1
227 00002C eusart_write_midi@pkt:
228 opt stack 0
229
230 ; 2 bytes @ 0x2B
231 00002C ds 1
232 00002D midi_set_status@status:
233 opt stack 0
234 00002D midi_set_channel@channel:
235 opt stack 0
236 00002D memset@c:
237 opt stack 0
238
239 ; 2 bytes @ 0x2C
240 00002D ds 1
241 00002E ??_eusart_write_midi:
242 00002E ??_midi_set_status:
243
244 ; 1 bytes @ 0x2D
245 00002E ds 1
246 00002F ??_midi_set_channel:
247 00002F memset@n:
248 opt stack 0
249
250 ; 2 bytes @ 0x2E
251 00002F ds 1
252 000030 eusart_write_midi@length:
253 opt stack 0
254
255 ; 2 bytes @ 0x2F
256 000030 ds 1
257 000031 memset@p:
258 opt stack 0
259
260 ; 2 bytes @ 0x30
261 000031 ds 1
262 000032 eusart_write_midi@data:
263 opt stack 0
264
265 ; 2 bytes @ 0x31
266 000032 ds 2
267 tblptru equ 0xFF8
268 postinc0 equ 0xFEE
269 wreg equ 0xFE8
270
271 ;;
272 ;;Main: autosize = 0, tempsize = 5, incstack = 0, save=0
273 ;;
274 ;; *************** function _main *****************
275 ;; Defined at:
276 ;; line 215 in file "main.c"
277 ;; Parameters: Size Location Type
278 ;; None
279 ;; Auto vars: Size Location Type
280 ;; message 7 13[BANK0 ] struct .
281 ;; i 2 11[BANK0 ] unsigned int
282 ;; Return value: Size Location Type
283 ;; 1 wreg void
284 ;; Registers used:
285 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
286 ;; Tracked objects:
287 ;; On entry : 0/0
288 ;; On exit : 0/0
289 ;; Unchanged: 0/0
290 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
291 ;; Params: 0 0 0 0 0 0 0
292 ;; Locals: 0 9 0 0 0 0 0
293 ;; Temps: 0 5 0 0 0 0 0
294 ;; Totals: 0 14 0 0 0 0 0
295 ;;Total ram usage: 14 bytes
296 ;; Hardware stack levels required when called: 3
297 ;; This function calls:
298 ;; _eusart_write_midi
299 ;; _init_hw
300 ;; _memset
301 ;; _midi_note_on
302 ;; This function is called by:
303 ;; Startup code after reset
304 ;; This function uses a non-reentrant model
305 ;;
306
307 psect text0
308 000356 __ptext0:
309 opt stack 0
310 000356 _main:
311 opt stack 28
312
313 ;main.c: 217: unsigned i;
314 ;main.c: 218: midi_message_t message;
315 ;main.c: 221: init_hw();
316
317 ;incstack = 0
318 000356 EC86 F002 call _init_hw ;wreg free
319
320 ;main.c: 224: memset(keys_data, 0, sizeof(keys_data));
321 00035A 0E62 movlw low _keys_data
322 00035C 6E2B movwf memset@p1,c
323 00035E 0E00 movlw high _keys_data
324 000360 6E2C movwf memset@p1+1,c
325 000362 0E00 movlw 0
326 000364 6E2E movwf memset@c+1,c
327 000366 0E00 movlw 0
328 000368 6E2D movwf memset@c,c
329 00036A 0E00 movlw 0
330 00036C 6E30 movwf memset@n+1,c
331 00036E 0E40 movlw 64
332 000370 6E2F movwf memset@n,c
333 000372 ECB7 F002 call _memset ;wreg free
334
335 ;main.c: 226: (INTCONbits.GIE = 1);
336 000376 8EF2 bsf intcon,7,c ;volatile
337
338 ;main.c: 229: PORTDbits.RD1 = 0;
339 000378 9283 bcf 3971,1,c ;volatile
340
341 ;main.c: 232: midi_note_on(&message, 0x0, 0x3C, 0x7F);
342 00037A 0EAF movlw low main@message
343 00037C 0100 movlb 0 ; () banked
344 00037E 6FA2 movwf midi_note_on@pkt& (0+255),b
345 000380 0E00 movlw high main@message
346 000382 6FA3 movwf (midi_note_on@pkt+1)& (0+255),b
347 000384 0E00 movlw 0
348 000386 6FA5 movwf (midi_note_on@channel+1)& (0+255),b
349 000388 0E00 movlw 0
350 00038A 6FA4 movwf midi_note_on@channel& (0+255),b
351 00038C 0E3C movlw 60
352 00038E 6FA6 movwf midi_note_on@note& (0+255),b
353 000390 0E7F movlw 127
354 000392 6FA7 movwf midi_note_on@velocity& (0+255),b
355 000394 EC53 F002 call _midi_note_on ;wreg free
356 000398 l1202:
357
358 ;main.c: 237: for (i = 0; i < 16; i++) {
359 000398 0E00 movlw 0
360 00039A 0100 movlb 0 ; () banked
361 00039C 6FAE movwf (main@i+1)& (0+255),b
362 00039E 0E00 movlw 0
363 0003A0 6FAD movwf main@i& (0+255),b
364 0003A2 l1204:
365
366 ; BSR set to: 0
367 0003A2 51AE movf (main@i+1)& (0+255),w,b
368 0003A4 E1F9 bnz l1202
369 0003A6 0E10 movlw 16
370 0003A8 5DAD subwf main@i& (0+255),w,b
371 0003AA B0D8 btfsc status,0,c
372 0003AC D7F5 goto l76
373
374 ; BSR set to: 0
375 ;main.c: 238: if (keypresses & (1<<i)) {
376
377 ; BSR set to: 0
378
379 ; BSR set to: 0
380 0003AE C0AD F0A8 movff main@i,??_main
381 0003B2 0E01 movlw 1
382 0003B4 6FA9 movwf (??_main+1)& (0+255),b
383 0003B6 0E00 movlw 0
384 0003B8 6FAA movwf (??_main+2)& (0+255),b
385 0003BA 2BA8 incf ??_main& (0+255),f,b
386 0003BC D003 goto u524
387 0003BE u525:
388 0003BE 90D8 bcf status,0,c
389 0003C0 37A9 rlcf (??_main+1)& (0+255),f,b
390 0003C2 37AA rlcf (??_main+2)& (0+255),f,b
391 0003C4 u524:
392 0003C4 2FA8 decfsz ??_main& (0+255),f,b
393 0003C6 D7FB goto u525
394 0003C8 0100 movlb 0 ; () banked
395 0003CA 5160 movf _keypresses& (0+255),w,b ;volatile
396 0003CC 17A9 andwf (??_main+1)& (0+255),f,b
397 0003CE 5161 movf (_keypresses+1)& (0+255),w,b ;volatile
398 0003D0 17AA andwf (??_main+2)& (0+255),f,b
399 0003D2 51A9 movf (??_main+1)& (0+255),w,b
400 0003D4 11AA iorwf (??_main+2)& (0+255),w,b
401 0003D6 B4D8 btfsc status,2,c
402 0003D8 D029 goto l79
403
404 ; BSR set to: 0
405 ;main.c: 241: message.data[0] = 0x3C + i;
406 0003DA 51AD movf main@i& (0+255),w,b
407 0003DC 0F3C addlw 60
408 0003DE 6FB2 movwf (main@message+3)& (0+255),b
409
410 ; BSR set to: 0
411 ;main.c: 244: eusart_write_midi(&message);
412 0003E0 0EAF movlw low main@message
413 0003E2 6E2C movwf eusart_write_midi@pkt,c
414 0003E4 0E00 movlw high main@message
415 0003E6 6E2D movwf eusart_write_midi@pkt+1,c
416 0003E8 EC19 F002 call _eusart_write_midi ;wreg free
417
418 ;main.c: 251: _delay((unsigned long)((10)*(64000000/4000.0)));
419 0003EC 0ED0 movlw 208
420 0003EE 0100 movlb 0 ; () banked
421 0003F0 6FA8 movwf ??_main& (0+255),b
422 0003F2 0EC9 movlw 201
423 0003F4 u577:
424 0003F4 2EE8 decfsz wreg,f,c
425 0003F6 D7FE bra u577
426 0003F8 2FA8 decfsz ??_main& (0+255),f,b
427 0003FA D7FC bra u577
428 0003FC D000 nop2
429
430 ;main.c: 254: keypresses &= ~(1<<i);
431 0003FE C0AD F0A8 movff main@i,??_main
432 000402 0E01 movlw 1
433 000404 0100 movlb 0 ; () banked
434 000406 6FA9 movwf (??_main+1)& (0+255),b
435 000408 0E00 movlw 0
436 00040A 6FAA movwf (??_main+2)& (0+255),b
437 00040C 2BA8 incf ??_main& (0+255),f,b
438 00040E D003 goto u544
439 000410 u545:
440 000410 90D8 bcf status,0,c
441 000412 37A9 rlcf (??_main+1)& (0+255),f,b
442 000414 37AA rlcf (??_main+2)& (0+255),f,b
443 000416 u544:
444 000416 2FA8 decfsz ??_main& (0+255),f,b
445 000418 D7FB goto u545
446 00041A 0100 movlb 0 ; () banked
447 00041C 1DA9 comf (??_main+1)& (0+255),w,b
448 00041E 6FAB movwf (??_main+3)& (0+255),b
449 000420 1DAA comf (??_main+2)& (0+255),w,b
450 000422 6FAC movwf (??_main+4)& (0+255),b
451 000424 51AB movf (??_main+3)& (0+255),w,b
452 000426 1760 andwf _keypresses& (0+255),f,b ;volatile
453 000428 51AC movf (??_main+4)& (0+255),w,b
454 00042A 1761 andwf (_keypresses+1)& (0+255),f,b ;volatile
455 00042C l79:
456
457 ; BSR set to: 0
458
459 ; BSR set to: 0
460 00042C 4BAD infsnz main@i& (0+255),f,b
461 00042E 2BAE incf (main@i+1)& (0+255),f,b
462 000430 D7B8 goto l1204
463 000432 __end_of_main:
464 opt stack 0
465 tblptru equ 0xFF8
466 intcon equ 0xFF2
467 postinc0 equ 0xFEE
468 wreg equ 0xFE8
469 status equ 0xFD8
470
471 ;; *************** function _midi_note_on *****************
472 ;; Defined at:
473 ;; line 62 in file "midi.c"
474 ;; Parameters: Size Location Type
475 ;; pkt 2 0[BANK0 ] PTR struct .
476 ;; -> main@message(7),
477 ;; channel 2 2[BANK0 ] unsigned int
478 ;; note 1 4[BANK0 ] enum E31
479 ;; velocity 1 5[BANK0 ] unsigned char
480 ;; Auto vars: Size Location Type
481 ;; None
482 ;; Return value: Size Location Type
483 ;; 2 0[BANK0 ] int
484 ;; Registers used:
485 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
486 ;; Tracked objects:
487 ;; On entry : 0/0
488 ;; On exit : 0/0
489 ;; Unchanged: 0/0
490 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
491 ;; Params: 0 6 0 0 0 0 0
492 ;; Locals: 0 0 0 0 0 0 0
493 ;; Temps: 0 0 0 0 0 0 0
494 ;; Totals: 0 6 0 0 0 0 0
495 ;;Total ram usage: 6 bytes
496 ;; Hardware stack levels used: 1
497 ;; Hardware stack levels required when called: 2
498 ;; This function calls:
499 ;; _midi_set_channel
500 ;; _midi_set_status
501 ;; This function is called by:
502 ;; _main
503 ;; This function uses a non-reentrant model
504 ;;
505
506 psect text1
507 0004A6 __ptext1:
508 opt stack 0
509 0004A6 _midi_note_on:
510 opt stack 28
511
512 ;midi.c: 64: if (pkt == (0)) {
513
514 ; BSR set to: 0
515 ;incstack = 0
516 0004A6 0100 movlb 0 ; () banked
517 0004A8 51A2 movf midi_note_on@pkt& (0+255),w,b
518 0004AA 11A3 iorwf (midi_note_on@pkt+1)& (0+255),w,b
519 0004AC B4D8 btfsc status,2,c
520 0004AE 0012 return
521
522 ; BSR set to: 0
523 ;midi.c: 66: }
524 ;midi.c: 74: midi_set_status(pkt, NOTE_ON);
525
526 ; BSR set to: 0
527
528 ; BSR set to: 0
529 ;midi.c: 65: return -1;
530 ; Return value of _midi_note_on is never used
531 0004B0 C0A2 F02B movff midi_note_on@pkt,midi_set_status@pkt
532 0004B4 C0A3 F02C movff midi_note_on@pkt+1,midi_set_status@pkt+1
533 0004B8 0E08 movlw 8
534 0004BA 6E2D movwf midi_set_status@status,c
535 0004BC ECE0 F002 call _midi_set_status ;wreg free
536
537 ;midi.c: 75: midi_set_channel(pkt, channel);
538 0004C0 C0A2 F02B movff midi_note_on@pkt,midi_set_channel@pkt
539 0004C4 C0A3 F02C movff midi_note_on@pkt+1,midi_set_channel@pkt+1
540 0004C8 C0A4 F02D movff midi_note_on@channel,midi_set_channel@channel
541 0004CC C0A5 F02E movff midi_note_on@channel+1,midi_set_channel@channel+1
542 0004D0 ECCD F002 call _midi_set_channel ;wreg free
543
544 ;midi.c: 77: pkt->data[0] = note;
545 0004D4 0100 movlb 0 ; () banked
546 0004D6 EE20 F003 lfsr 2,3
547 0004DA 51A2 movf midi_note_on@pkt& (0+255),w,b
548 0004DC 26D9 addwf fsr2l,f,c
549 0004DE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
550 0004E0 22DA addwfc fsr2h,f,c
551 0004E2 C0A6 FFDF movff midi_note_on@note,indf2
552
553 ; BSR set to: 0
554 ;midi.c: 78: pkt->data[1] = velocity;
555 0004E6 EE20 F004 lfsr 2,4
556 0004EA 51A2 movf midi_note_on@pkt& (0+255),w,b
557 0004EC 26D9 addwf fsr2l,f,c
558 0004EE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
559 0004F0 22DA addwfc fsr2h,f,c
560 0004F2 C0A7 FFDF movff midi_note_on@velocity,indf2
561
562 ; BSR set to: 0
563 ;midi.c: 81: pkt->data_size = 2;
564 0004F6 EE20 F001 lfsr 2,1
565 0004FA 51A2 movf midi_note_on@pkt& (0+255),w,b
566 0004FC 26D9 addwf fsr2l,f,c
567 0004FE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
568 000500 22DA addwfc fsr2h,f,c
569 000502 0E02 movlw 2
570 000504 6EDE movwf postinc2,c
571 000506 0E00 movlw 0
572 000508 6EDD movwf postdec2,c
573 00050A 0012 return
574 00050C __end_of_midi_note_on:
575 opt stack 0
576 tblptru equ 0xFF8
577 intcon equ 0xFF2
578 postinc0 equ 0xFEE
579 wreg equ 0xFE8
580 indf2 equ 0xFDF
581 postinc2 equ 0xFDE
582 postdec2 equ 0xFDD
583 fsr2h equ 0xFDA
584 fsr2l equ 0xFD9
585 status equ 0xFD8
586
587 ;; *************** function _midi_set_status *****************
588 ;; Defined at:
589 ;; line 40 in file "midi.c"
590 ;; Parameters: Size Location Type
591 ;; pkt 2 42[COMRAM] PTR struct .
592 ;; -> main@message(7),
593 ;; status 1 44[COMRAM] enum E40
594 ;; Auto vars: Size Location Type
595 ;; None
596 ;; Return value: Size Location Type
597 ;; 2 42[COMRAM] int
598 ;; Registers used:
599 ;; wreg, fsr2l, fsr2h, status,2, status,0
600 ;; Tracked objects:
601 ;; On entry : 0/0
602 ;; On exit : 0/0
603 ;; Unchanged: 0/0
604 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
605 ;; Params: 3 0 0 0 0 0 0
606 ;; Locals: 0 0 0 0 0 0 0
607 ;; Temps: 1 0 0 0 0 0 0
608 ;; Totals: 4 0 0 0 0 0 0
609 ;;Total ram usage: 4 bytes
610 ;; Hardware stack levels used: 1
611 ;; Hardware stack levels required when called: 1
612 ;; This function calls:
613 ;; Nothing
614 ;; This function is called by:
615 ;; _midi_note_on
616 ;; _midi_note_off
617 ;; This function uses a non-reentrant model
618 ;;
619
620 psect text2
621 0005C0 __ptext2:
622 opt stack 0
623 0005C0 _midi_set_status:
624 opt stack 28
625
626 ;midi.c: 42: if (pkt == (0)) {
627
628 ; BSR set to: 0
629 ;incstack = 0
630 0005C0 502B movf midi_set_status@pkt,w,c
631 0005C2 102C iorwf midi_set_status@pkt+1,w,c
632 0005C4 B4D8 btfsc status,2,c
633 0005C6 0012 return
634
635 ;midi.c: 44: }
636 ;midi.c: 46: pkt->status = status & 0x0F;
637
638 ;midi.c: 43: return -1;
639 ; Return value of _midi_set_status is never used
640 0005C8 C02D F02E movff midi_set_status@status,??_midi_set_status
641 0005CC 0E0F movlw 15
642 0005CE 162E andwf ??_midi_set_status,f,c
643 0005D0 C02B FFD9 movff midi_set_status@pkt,fsr2l
644 0005D4 C02C FFDA movff midi_set_status@pkt+1,fsr2h
645 0005D8 50DF movf indf2,w,c
646 0005DA 182E xorwf ??_midi_set_status,w,c
647 0005DC 0BF0 andlw -16
648 0005DE 182E xorwf ??_midi_set_status,w,c
649 0005E0 6EDF movwf indf2,c
650 0005E2 0012 return
651 0005E4 __end_of_midi_set_status:
652 opt stack 0
653 tblptru equ 0xFF8
654 intcon equ 0xFF2
655 postinc0 equ 0xFEE
656 wreg equ 0xFE8
657 indf2 equ 0xFDF
658 postinc2 equ 0xFDE
659 postdec2 equ 0xFDD
660 fsr2h equ 0xFDA
661 fsr2l equ 0xFD9
662 status equ 0xFD8
663
664 ;; *************** function _midi_set_channel *****************
665 ;; Defined at:
666 ;; line 51 in file "midi.c"
667 ;; Parameters: Size Location Type
668 ;; pkt 2 42[COMRAM] PTR struct .
669 ;; -> main@message(7),
670 ;; channel 2 44[COMRAM] unsigned int
671 ;; Auto vars: Size Location Type
672 ;; None
673 ;; Return value: Size Location Type
674 ;; 2 42[COMRAM] int
675 ;; Registers used:
676 ;; wreg, fsr2l, fsr2h, status,2, status,0
677 ;; Tracked objects:
678 ;; On entry : 0/0
679 ;; On exit : 0/0
680 ;; Unchanged: 0/0
681 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
682 ;; Params: 4 0 0 0 0 0 0
683 ;; Locals: 0 0 0 0 0 0 0
684 ;; Temps: 1 0 0 0 0 0 0
685 ;; Totals: 5 0 0 0 0 0 0
686 ;;Total ram usage: 5 bytes
687 ;; Hardware stack levels used: 1
688 ;; Hardware stack levels required when called: 1
689 ;; This function calls:
690 ;; Nothing
691 ;; This function is called by:
692 ;; _midi_note_on
693 ;; _midi_note_off
694 ;; This function uses a non-reentrant model
695 ;;
696
697 psect text3
698 00059A __ptext3:
699 opt stack 0
700 00059A _midi_set_channel:
701 opt stack 28
702
703 ;midi.c: 53: if (pkt == (0)) {
704
705 ;incstack = 0
706 00059A 502B movf midi_set_channel@pkt,w,c
707 00059C 102C iorwf midi_set_channel@pkt+1,w,c
708 00059E B4D8 btfsc status,2,c
709 0005A0 0012 return
710
711 ;midi.c: 55: }
712 ;midi.c: 57: pkt->channel = channel & 0x0F;
713
714 ;midi.c: 54: return -1;
715 ; Return value of _midi_set_channel is never used
716 0005A2 C02D F02F movff midi_set_channel@channel,??_midi_set_channel
717 0005A6 0E0F movlw 15
718 0005A8 162F andwf ??_midi_set_channel,f,c
719 0005AA C02B FFD9 movff midi_set_channel@pkt,fsr2l
720 0005AE C02C FFDA movff midi_set_channel@pkt+1,fsr2h
721 0005B2 3A2F swapf ??_midi_set_channel,f,c
722 0005B4 50DF movf indf2,w,c
723 0005B6 182F xorwf ??_midi_set_channel,w,c
724 0005B8 0B0F andlw -241
725 0005BA 182F xorwf ??_midi_set_channel,w,c
726 0005BC 6EDF movwf indf2,c
727 0005BE 0012 return
728 0005C0 __end_of_midi_set_channel:
729 opt stack 0
730 tblptru equ 0xFF8
731 intcon equ 0xFF2
732 postinc0 equ 0xFEE
733 wreg equ 0xFE8
734 indf2 equ 0xFDF
735 postinc2 equ 0xFDE
736 postdec2 equ 0xFDD
737 fsr2h equ 0xFDA
738 fsr2l equ 0xFD9
739 status equ 0xFD8
740
741 ;; *************** function _memset *****************
742 ;; Defined at:
743 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
744 ;; Parameters: Size Location Type
745 ;; p1 2 42[COMRAM] PTR void
746 ;; -> keys_data(64),
747 ;; c 2 44[COMRAM] int
748 ;; n 2 46[COMRAM] unsigned int
749 ;; Auto vars: Size Location Type
750 ;; p 2 48[COMRAM] PTR unsigned char
751 ;; -> keys_data(64),
752 ;; Return value: Size Location Type
753 ;; 2 42[COMRAM] PTR void
754 ;; Registers used:
755 ;; wreg, fsr2l, fsr2h, status,2, status,0
756 ;; Tracked objects:
757 ;; On entry : 0/0
758 ;; On exit : 0/0
759 ;; Unchanged: 0/0
760 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
761 ;; Params: 6 0 0 0 0 0 0
762 ;; Locals: 2 0 0 0 0 0 0
763 ;; Temps: 0 0 0 0 0 0 0
764 ;; Totals: 8 0 0 0 0 0 0
765 ;;Total ram usage: 8 bytes
766 ;; Hardware stack levels used: 1
767 ;; Hardware stack levels required when called: 1
768 ;; This function calls:
769 ;; Nothing
770 ;; This function is called by:
771 ;; _main
772 ;; This function uses a non-reentrant model
773 ;;
774
775 psect text4
776 00056E __ptext4:
777 opt stack 0
778 00056E _memset:
779 opt stack 29
780
781 ;incstack = 0
782 00056E C02B F031 movff memset@p1,memset@p
783 000572 C02C F032 movff memset@p1+1,memset@p+1
784 000576 D008 goto l596
785 000578 l1110:
786 000578 C031 FFD9 movff memset@p,fsr2l
787 00057C C032 FFDA movff memset@p+1,fsr2h
788 000580 C02D FFDF movff memset@c,indf2
789 000584 4A31 infsnz memset@p,f,c
790 000586 2A32 incf memset@p+1,f,c
791 000588 l596:
792 000588 062F decf memset@n,f,c
793 00058A A0D8 btfss status,0,c
794 00058C 0630 decf memset@n+1,f,c
795 00058E 282F incf memset@n,w,c
796 000590 E1F3 bnz l1110
797 000592 2830 incf memset@n+1,w,c
798 000594 B4D8 btfsc status,2,c
799 000596 0012 return
800 000598 D7EF goto l597
801 00059A __end_of_memset:
802 opt stack 0
803 tblptru equ 0xFF8
804 intcon equ 0xFF2
805 postinc0 equ 0xFEE
806 wreg equ 0xFE8
807 indf2 equ 0xFDF
808 postinc2 equ 0xFDE
809 postdec2 equ 0xFDD
810 fsr2h equ 0xFDA
811 fsr2l equ 0xFD9
812 status equ 0xFD8
813
814 ;; *************** function _init_hw *****************
815 ;; Defined at:
816 ;; line 150 in file "main.c"
817 ;; Parameters: Size Location Type
818 ;; None
819 ;; Auto vars: Size Location Type
820 ;; None
821 ;; Return value: Size Location Type
822 ;; 1 wreg void
823 ;; Registers used:
824 ;; wreg, status,2, cstack
825 ;; Tracked objects:
826 ;; On entry : 0/0
827 ;; On exit : 0/0
828 ;; Unchanged: 0/0
829 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
830 ;; Params: 0 0 0 0 0 0 0
831 ;; Locals: 0 0 0 0 0 0 0
832 ;; Temps: 0 0 0 0 0 0 0
833 ;; Totals: 0 0 0 0 0 0 0
834 ;;Total ram usage: 0 bytes
835 ;; Hardware stack levels used: 1
836 ;; Hardware stack levels required when called: 2
837 ;; This function calls:
838 ;; _eusart1_init
839 ;; _eusart2_init
840 ;; This function is called by:
841 ;; _main
842 ;; This function uses a non-reentrant model
843 ;;
844
845 psect text5
846 00050C __ptext5:
847 opt stack 0
848 00050C _init_hw:
849 opt stack 28
850
851 ;main.c: 152: (INTCONbits.GIE = 0);
852
853 ;incstack = 0
854 00050C 9EF2 bcf intcon,7,c ;volatile
855
856 ;main.c: 156: OSCTUNEbits.PLLEN = 1;
857 00050E 8C9B bsf 3995,6,c ;volatile
858
859 ;main.c: 158: OSCTUNEbits.TUN = 0b011111;
860 000510 809B bsf 3995,0,c ;volatile
861 000512 829B bsf 3995,1,c ;volatile
862 000514 849B bsf 3995,2,c ;volatile
863 000516 869B bsf 3995,3,c ;volatile
864 000518 889B bsf 3995,4,c ;volatile
865 00051A 9A9B bcf 3995,5,c ;volatile
866
867 ;main.c: 160: OSCCONbits.IRCF = 0b111;
868 00051C 88D3 bsf 4051,4,c ;volatile
869 00051E 8AD3 bsf 4051,5,c ;volatile
870 000520 8CD3 bsf 4051,6,c ;volatile
871
872 ;main.c: 162: OSCCONbits.SCS = 0b00;
873 000522 0EFC movlw -4
874 000524 16D3 andwf 4051,f,c ;volatile
875
876 ;main.c: 166: ANSELA = 0x00;
877 000526 0E00 movlw 0
878 000528 010F movlb 15 ; () banked
879 00052A 6F38 movwf 56,b ;volatile
880
881 ;main.c: 167: ANSELB = 0x00;
882 00052C 0E00 movlw 0
883 00052E 6F39 movwf 57,b ;volatile
884
885 ;main.c: 168: ANSELC = 0x00;
886 000530 0E00 movlw 0
887 000532 6F3A movwf 58,b ;volatile
888
889 ;main.c: 169: ANSELD = 0x00;
890 000534 0E00 movlw 0
891 000536 6F3B movwf 59,b ;volatile
892
893 ; BSR set to: 15
894 ;main.c: 172: TRISA = 0xFF;
895 000538 6892 setf 3986,c ;volatile
896
897 ; BSR set to: 15
898 ;main.c: 173: TRISB = 0xFF;
899 00053A 6893 setf 3987,c ;volatile
900
901 ; BSR set to: 15
902 ;main.c: 176: TRISDbits.TRISD1 = 0;
903 00053C 9295 bcf 3989,1,c ;volatile
904
905 ; BSR set to: 15
906 ;main.c: 177: TRISDbits.TRISD2 = 0;
907 00053E 9495 bcf 3989,2,c ;volatile
908
909 ; BSR set to: 15
910 ;main.c: 178: TRISDbits.TRISD3 = 0;
911 000540 9695 bcf 3989,3,c ;volatile
912
913 ; BSR set to: 15
914 ;main.c: 179: TRISDbits.TRISD4 = 0;
915 000542 9895 bcf 3989,4,c ;volatile
916
917 ; BSR set to: 15
918 ;main.c: 182: PORTDbits.RD1 = 1;
919 000544 8283 bsf 3971,1,c ;volatile
920
921 ; BSR set to: 15
922 ;main.c: 184: PORTDbits.RD2 = 0;
923 000546 9483 bcf 3971,2,c ;volatile
924
925 ; BSR set to: 15
926 ;main.c: 186: PORTDbits.RD3 = 1;
927 000548 8683 bsf 3971,3,c ;volatile
928
929 ; BSR set to: 15
930 ;main.c: 188: PORTDbits.RD4 = 0;
931 00054A 9883 bcf 3971,4,c ;volatile
932
933 ;main.c: 193: PR2 = 128;
934 00054C 0E80 movlw 128
935 00054E 6EBB movwf 4027,c ;volatile
936
937 ;main.c: 195: T2CONbits.T2OUTPS = 0b0001;
938 000550 50BA movf 4026,w,c ;volatile
939 000552 0B87 andlw -121
940 000554 0908 iorlw 8
941 000556 6EBA movwf 4026,c ;volatile
942
943 ;main.c: 197: T2CONbits.T2CKPS = 0b11;
944 000558 0E03 movlw 3
945 00055A 12BA iorwf 4026,f,c ;volatile
946
947 ; BSR set to: 15
948 ;main.c: 199: T2CONbits.TMR2ON = 1;
949 00055C 84BA bsf 4026,2,c ;volatile
950
951 ; BSR set to: 15
952 ;main.c: 202: PIE1bits.TMR2IE = 1;
953 00055E 829D bsf 3997,1,c ;volatile
954
955 ; BSR set to: 15
956 ;main.c: 203: PIR1bits.TMR2IF = 0;
957 000560 929E bcf 3998,1,c ;volatile
958
959 ; BSR set to: 15
960 ;main.c: 206: INTCONbits.PEIE = 1;
961 000562 8CF2 bsf intcon,6,c ;volatile
962
963 ; BSR set to: 15
964 ;main.c: 209: eusart1_init();
965 000564 EC00 F003 call _eusart1_init ;wreg free
966
967 ;main.c: 210: eusart2_init();
968 000568 ECF2 F002 call _eusart2_init ;wreg free
969 00056C 0012 return ;funcret
970 00056E __end_of_init_hw:
971 opt stack 0
972 tblptru equ 0xFF8
973 intcon equ 0xFF2
974 postinc0 equ 0xFEE
975 wreg equ 0xFE8
976 indf2 equ 0xFDF
977 postinc2 equ 0xFDE
978 postdec2 equ 0xFDD
979 fsr2h equ 0xFDA
980 fsr2l equ 0xFD9
981 status equ 0xFD8
982
983 ;; *************** function _eusart2_init *****************
984 ;; Defined at:
985 ;; line 25 in file "rs232.c"
986 ;; Parameters: Size Location Type
987 ;; None
988 ;; Auto vars: Size Location Type
989 ;; None
990 ;; Return value: Size Location Type
991 ;; 1 wreg void
992 ;; Registers used:
993 ;; wreg, status,2
994 ;; Tracked objects:
995 ;; On entry : 0/0
996 ;; On exit : 0/0
997 ;; Unchanged: 0/0
998 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
999 ;; Params: 0 0 0 0 0 0 0
1000 ;; Locals: 0 0 0 0 0 0 0
1001 ;; Temps: 0 0 0 0 0 0 0
1002 ;; Totals: 0 0 0 0 0 0 0
1003 ;;Total ram usage: 0 bytes
1004 ;; Hardware stack levels used: 1
1005 ;; Hardware stack levels required when called: 1
1006 ;; This function calls:
1007 ;; Nothing
1008 ;; This function is called by:
1009 ;; _init_hw
1010 ;; This function uses a non-reentrant model
1011 ;;
1012
1013 psect text6
1014 0005E4 __ptext6:
1015 opt stack 0
1016 0005E4 _eusart2_init:
1017 opt stack 28
1018
1019 ;rs232.c: 28: TXSTA2bits.SYNC = 0;
1020
1021 ;incstack = 0
1022 0005E4 9872 bcf 3954,4,c ;volatile
1023
1024 ;rs232.c: 29: TXSTA2bits.TX9 = 0;
1025 0005E6 9C72 bcf 3954,6,c ;volatile
1026
1027 ;rs232.c: 32: RCSTA2bits.SPEN = 1;
1028 0005E8 8E71 bsf 3953,7,c ;volatile
1029
1030 ;rs232.c: 33: SPBRG2 = 31;
1031 0005EA 0E1F movlw 31
1032 0005EC 6E75 movwf 3957,c ;volatile
1033
1034 ;rs232.c: 34: SPBRGH2 = 0;
1035 0005EE 0E00 movlw 0
1036 0005F0 6E76 movwf 3958,c ;volatile
1037
1038 ;rs232.c: 35: TXSTA2bits.BRGH = 0;
1039 0005F2 9472 bcf 3954,2,c ;volatile
1040
1041 ;rs232.c: 36: BAUDCON2bits.BRG16 = 0;
1042 0005F4 9670 bcf 3952,3,c ;volatile
1043
1044 ;rs232.c: 39: TRISDbits.TRISD7 = 1;
1045 0005F6 8E95 bsf 3989,7,c ;volatile
1046
1047 ;rs232.c: 40: TRISDbits.TRISD6 = 1;
1048 0005F8 8C95 bsf 3989,6,c ;volatile
1049
1050 ;rs232.c: 42: RCSTA2bits.CREN = 1;
1051 0005FA 8871 bsf 3953,4,c ;volatile
1052
1053 ;rs232.c: 43: TXSTA2bits.TXEN = 1;
1054 0005FC 8A72 bsf 3954,5,c ;volatile
1055 0005FE 0012 return ;funcret
1056 000600 __end_of_eusart2_init:
1057 opt stack 0
1058 tblptru equ 0xFF8
1059 intcon equ 0xFF2
1060 postinc0 equ 0xFEE
1061 wreg equ 0xFE8
1062 indf2 equ 0xFDF
1063 postinc2 equ 0xFDE
1064 postdec2 equ 0xFDD
1065 fsr2h equ 0xFDA
1066 fsr2l equ 0xFD9
1067 status equ 0xFD8
1068
1069 ;; *************** function _eusart1_init *****************
1070 ;; Defined at:
1071 ;; line 4 in file "rs232.c"
1072 ;; Parameters: Size Location Type
1073 ;; None
1074 ;; Auto vars: Size Location Type
1075 ;; None
1076 ;; Return value: Size Location Type
1077 ;; 1 wreg void
1078 ;; Registers used:
1079 ;; wreg, status,2
1080 ;; Tracked objects:
1081 ;; On entry : 0/0
1082 ;; On exit : 0/0
1083 ;; Unchanged: 0/0
1084 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1085 ;; Params: 0 0 0 0 0 0 0
1086 ;; Locals: 0 0 0 0 0 0 0
1087 ;; Temps: 0 0 0 0 0 0 0
1088 ;; Totals: 0 0 0 0 0 0 0
1089 ;;Total ram usage: 0 bytes
1090 ;; Hardware stack levels used: 1
1091 ;; Hardware stack levels required when called: 1
1092 ;; This function calls:
1093 ;; Nothing
1094 ;; This function is called by:
1095 ;; _init_hw
1096 ;; This function uses a non-reentrant model
1097 ;;
1098
1099 psect text7
1100 000600 __ptext7:
1101 opt stack 0
1102 000600 _eusart1_init:
1103 opt stack 28
1104
1105 ;rs232.c: 7: TXSTA1bits.SYNC = 0;
1106
1107 ;incstack = 0
1108 000600 98AC bcf 4012,4,c ;volatile
1109
1110 ;rs232.c: 8: TXSTA1bits.TX9 = 0;
1111 000602 9CAC bcf 4012,6,c ;volatile
1112
1113 ;rs232.c: 11: RCSTA1bits.SPEN = 1;
1114 000604 8EAB bsf 4011,7,c ;volatile
1115
1116 ;rs232.c: 12: SPBRG1 = 31;
1117 000606 0E1F movlw 31
1118 000608 6EAF movwf 4015,c ;volatile
1119
1120 ;rs232.c: 13: SPBRGH1 = 0;
1121 00060A 0E00 movlw 0
1122 00060C 6EB0 movwf 4016,c ;volatile
1123
1124 ;rs232.c: 14: TXSTA1bits.BRGH = 0;
1125 00060E 94AC bcf 4012,2,c ;volatile
1126
1127 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0;
1128 000610 96B8 bcf 4024,3,c ;volatile
1129
1130 ;rs232.c: 18: TRISCbits.TRISC7 = 1;
1131 000612 8E94 bsf 3988,7,c ;volatile
1132
1133 ;rs232.c: 19: TRISCbits.TRISC6 = 1;
1134 000614 8C94 bsf 3988,6,c ;volatile
1135
1136 ;rs232.c: 21: RCSTA1bits.CREN = 1;
1137 000616 88AB bsf 4011,4,c ;volatile
1138
1139 ;rs232.c: 22: TXSTA1bits.TXEN = 1;
1140 000618 8AAC bsf 4012,5,c ;volatile
1141 00061A 0012 return ;funcret
1142 00061C __end_of_eusart1_init:
1143 opt stack 0
1144 tblptru equ 0xFF8
1145 intcon equ 0xFF2
1146 postinc0 equ 0xFEE
1147 wreg equ 0xFE8
1148 indf2 equ 0xFDF
1149 postinc2 equ 0xFDE
1150 postdec2 equ 0xFDD
1151 fsr2h equ 0xFDA
1152 fsr2l equ 0xFD9
1153 status equ 0xFD8
1154
1155 ;; *************** function _eusart_write_midi *****************
1156 ;; Defined at:
1157 ;; line 261 in file "main.c"
1158 ;; Parameters: Size Location Type
1159 ;; pkt 2 43[COMRAM] PTR const struct .
1160 ;; -> main@message(7),
1161 ;; Auto vars: Size Location Type
1162 ;; data 2 49[COMRAM] PTR unsigned char
1163 ;; -> message.data(4), main@message(7),
1164 ;; length 2 47[COMRAM] unsigned int
1165 ;; Return value: Size Location Type
1166 ;; 2 43[COMRAM] int
1167 ;; Registers used:
1168 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
1169 ;; Tracked objects:
1170 ;; On entry : 0/0
1171 ;; On exit : 0/0
1172 ;; Unchanged: 0/0
1173 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1174 ;; Params: 2 0 0 0 0 0 0
1175 ;; Locals: 4 0 0 0 0 0 0
1176 ;; Temps: 2 0 0 0 0 0 0
1177 ;; Totals: 8 0 0 0 0 0 0
1178 ;;Total ram usage: 8 bytes
1179 ;; Hardware stack levels used: 1
1180 ;; Hardware stack levels required when called: 2
1181 ;; This function calls:
1182 ;; _eusart2_putch
1183 ;; This function is called by:
1184 ;; _main
1185 ;; This function uses a non-reentrant model
1186 ;;
1187
1188 psect text8
1189 000432 __ptext8:
1190 opt stack 0
1191 000432 _eusart_write_midi:
1192 opt stack 28
1193
1194 ;main.c: 263: size_t length;
1195 ;main.c: 264: uint8_t *data;
1196 ;main.c: 266: if (pkt == (0)) {
1197
1198 ;incstack = 0
1199 000432 502C movf eusart_write_midi@pkt,w,c
1200 000434 102D iorwf eusart_write_midi@pkt+1,w,c
1201 000436 B4D8 btfsc status,2,c
1202 000438 0012 return
1203
1204 ;main.c: 268: }
1205 ;main.c: 270: length = pkt->data_size;
1206
1207 ;main.c: 267: return -1;
1208 ; Return value of _eusart_write_midi is never used
1209 00043A EE20 F001 lfsr 2,1
1210 00043E 502C movf eusart_write_midi@pkt,w,c
1211 000440 26D9 addwf fsr2l,f,c
1212 000442 502D movf eusart_write_midi@pkt+1,w,c
1213 000444 22DA addwfc fsr2h,f,c
1214 000446 CFDE F030 movff postinc2,eusart_write_midi@length
1215 00044A CFDD F031 movff postdec2,eusart_write_midi@length+1
1216
1217 ;main.c: 271: data = (uint8_t *) pkt->data;
1218 00044E 0E03 movlw 3
1219 000450 242C addwf eusart_write_midi@pkt,w,c
1220 000452 6E32 movwf eusart_write_midi@data,c
1221 000454 0E00 movlw 0
1222 000456 202D addwfc eusart_write_midi@pkt+1,w,c
1223 000458 6E33 movwf eusart_write_midi@data+1,c
1224
1225 ;main.c: 273: eusart2_putch((char)((pkt->status << 4) | pkt->channel));
1226 00045A C02C FFD9 movff eusart_write_midi@pkt,fsr2l
1227 00045E C02D FFDA movff eusart_write_midi@pkt+1,fsr2h
1228 000462 38DF swapf indf2,w,c
1229 000464 0B0F andlw 15
1230 000466 6E2E movwf ??_eusart_write_midi& (0+255),c
1231 000468 C02C FFD9 movff eusart_write_midi@pkt,fsr2l
1232 00046C C02D FFDA movff eusart_write_midi@pkt+1,fsr2h
1233 000470 50DF movf indf2,w,c
1234 000472 0B0F andlw 15
1235 000474 6E2F movwf (??_eusart_write_midi+1)& (0+255),c
1236 000476 382F swapf ??_eusart_write_midi+1,w,c
1237 000478 0BF0 andlw 240
1238 00047A 102E iorwf ??_eusart_write_midi,w,c
1239 00047C EC1B F003 call _eusart2_putch
1240
1241 ;main.c: 275: while (length--) {
1242 000480 D009 goto l87
1243 000482 l1140:
1244
1245 ;main.c: 276: eusart2_putch((char) *(data++));
1246 000482 C032 FFD9 movff eusart_write_midi@data,fsr2l
1247 000486 C033 FFDA movff eusart_write_midi@data+1,fsr2h
1248 00048A 50DF movf indf2,w,c
1249 00048C EC1B F003 call _eusart2_putch
1250 000490 4A32 infsnz eusart_write_midi@data,f,c
1251 000492 2A33 incf eusart_write_midi@data+1,f,c
1252 000494 l87:
1253 000494 0630 decf eusart_write_midi@length,f,c
1254 000496 A0D8 btfss status,0,c
1255 000498 0631 decf eusart_write_midi@length+1,f,c
1256 00049A 2830 incf eusart_write_midi@length,w,c
1257 00049C E1F2 bnz l1140
1258 00049E 2831 incf eusart_write_midi@length+1,w,c
1259 0004A0 B4D8 btfsc status,2,c
1260 0004A2 0012 return
1261 0004A4 D7EE goto l88
1262 0004A6 __end_of_eusart_write_midi:
1263 opt stack 0
1264 tblptru equ 0xFF8
1265 intcon equ 0xFF2
1266 postinc0 equ 0xFEE
1267 wreg equ 0xFE8
1268 indf2 equ 0xFDF
1269 postinc2 equ 0xFDE
1270 postdec2 equ 0xFDD
1271 fsr2h equ 0xFDA
1272 fsr2l equ 0xFD9
1273 status equ 0xFD8
1274
1275 ;; *************** function _eusart2_putch *****************
1276 ;; Defined at:
1277 ;; line 52 in file "rs232.c"
1278 ;; Parameters: Size Location Type
1279 ;; c 1 wreg unsigned char
1280 ;; Auto vars: Size Location Type
1281 ;; c 1 42[COMRAM] unsigned char
1282 ;; Return value: Size Location Type
1283 ;; 1 wreg void
1284 ;; Registers used:
1285 ;; wreg
1286 ;; Tracked objects:
1287 ;; On entry : 0/0
1288 ;; On exit : 0/0
1289 ;; Unchanged: 0/0
1290 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1291 ;; Params: 0 0 0 0 0 0 0
1292 ;; Locals: 1 0 0 0 0 0 0
1293 ;; Temps: 0 0 0 0 0 0 0
1294 ;; Totals: 1 0 0 0 0 0 0
1295 ;;Total ram usage: 1 bytes
1296 ;; Hardware stack levels used: 1
1297 ;; Hardware stack levels required when called: 1
1298 ;; This function calls:
1299 ;; Nothing
1300 ;; This function is called by:
1301 ;; _eusart_write_midi
1302 ;; This function uses a non-reentrant model
1303 ;;
1304
1305 psect text9
1306 000636 __ptext9:
1307 opt stack 0
1308 000636 _eusart2_putch:
1309 opt stack 28
1310
1311 ;incstack = 0
1312 ;eusart2_putch@c stored from wreg
1313 000636 6E2B movwf eusart2_putch@c,c
1314 000638
1315 ;rs232.c: 54: while (!TX2IF);
1316 000638 A8A4 btfss 4004,4,c ;volatile
1317 00063A D7FE goto l1052
1318
1319 ;rs232.c: 55: TX2REG = c;
1320 00063C C02B FF73 movff eusart2_putch@c,3955 ;volatile
1321 000640 0012 return ;funcret
1322 000642 __end_of_eusart2_putch:
1323 opt stack 0
1324 tblptru equ 0xFF8
1325 intcon equ 0xFF2
1326 postinc0 equ 0xFEE
1327 wreg equ 0xFE8
1328 indf2 equ 0xFDF
1329 postinc2 equ 0xFDE
1330 postdec2 equ 0xFDD
1331 fsr2h equ 0xFDA
1332 fsr2l equ 0xFD9
1333 status equ 0xFD8
1334
1335 ;; *************** function _isr *****************
1336 ;; Defined at:
1337 ;; line 113 in file "main.c"
1338 ;; Parameters: Size Location Type
1339 ;; None
1340 ;; Auto vars: Size Location Type
1341 ;; i 1 41[COMRAM] unsigned char
1342 ;; data_b 1 37[COMRAM] unsigned char
1343 ;; data_a 1 36[COMRAM] unsigned char
1344 ;; Return value: Size Location Type
1345 ;; 1 wreg void
1346 ;; Registers used:
1347 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
1348 ;; Tracked objects:
1349 ;; On entry : 0/0
1350 ;; On exit : 0/0
1351 ;; Unchanged: 0/0
1352 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1353 ;; Params: 0 0 0 0 0 0 0
1354 ;; Locals: 6 0 0 0 0 0 0
1355 ;; Temps: 36 0 0 0 0 0 0
1356 ;; Totals: 42 0 0 0 0 0 0
1357 ;;Total ram usage: 42 bytes
1358 ;; Hardware stack levels used: 1
1359 ;; This function calls:
1360 ;; Nothing
1361 ;; This function is called by:
1362 ;; Interrupt level 2
1363 ;; This function uses a non-reentrant model
1364 ;;
1365
1366 psect intcode
1367 000008 __pintcode:
1368 opt stack 0
1369 000008 _isr:
1370 opt stack 28
1371
1372 ;incstack = 0
1373 000008 8234 bsf btemp,1,c ;set compiler interrupt flag (level 2)
1374 00000A CFFA F013 movff pclath,??_isr+18
1375 00000E CFFB F014 movff pclatu,??_isr+19
1376 000012 CFE9 F015 movff fsr0l,??_isr+20
1377 000016 CFEA F016 movff fsr0h,??_isr+21
1378 00001A CFE1 F017 movff fsr1l,??_isr+22
1379 00001E CFE2 F018 movff fsr1h,??_isr+23
1380 000022 CFD9 F019 movff fsr2l,??_isr+24
1381 000026 CFDA F01A movff fsr2h,??_isr+25
1382 00002A CFF3 F01B movff prodl,??_isr+26
1383 00002E CFF4 F01C movff prodh,??_isr+27
1384 000032 CFF6 F01D movff tblptrl,??_isr+28
1385 000036 CFF7 F01E movff tblptrh,??_isr+29
1386 00003A CFF8 F01F movff tblptru,??_isr+30
1387 00003E CFF5 F020 movff tablat,??_isr+31
1388 000042 C034 F021 movff btemp,??_isr+32
1389 000046 C035 F022 movff btemp+1,??_isr+33
1390 00004A C036 F023 movff btemp+2,??_isr+34
1391 00004E C037 F024 movff btemp+3,??_isr+35
1392
1393 ;main.c: 115: unsigned char i, data_a, data_b;
1394 ;main.c: 117: PORTDbits.RD3 = 0;
1395 000052 9683 bcf 3971,3,c ;volatile
1396
1397 ;main.c: 119: if (PIR1bits.TMR2IF) {
1398 000054 A29E btfss 3998,1,c ;volatile
1399 000056 D156 goto i2l59
1400
1401 ;main.c: 120: data_a = PORTA;
1402 000058 CF80 F025 movff 3968,isr@data_a ;volatile
1403
1404 ;main.c: 121: data_b = PORTB;
1405 00005C CF81 F026 movff 3969,isr@data_b ;volatile
1406
1407 ;main.c: 122: i = 7;
1408 000060 0E07 movlw 7
1409 000062 6E2A movwf isr@i,c
1410 000064
1411 ;main.c: 125: keys_data[i] = (keys_data[i] << 1) | ((data_a >> i) & 0x01);
1412 000064 502A movf isr@i,w,c
1413 000066 0D04 mullw 4
1414 000068 0E62 movlw low _keys_data
1415 00006A 24F3 addwf prodl,w,c
1416 00006C 6ED9 movwf fsr2l,c
1417 00006E 0E00 movlw high _keys_data
1418 000070 20F4 addwfc prodh,w,c
1419 000072 6EDA movwf fsr2h,c
1420 000074 CFDE F001 movff postinc2,??_isr
1421 000078 CFDE F002 movff postinc2,??_isr+1
1422 00007C CFDE F003 movff postinc2,??_isr+2
1423 000080 CFDE F004 movff postinc2,??_isr+3
1424 000084 90D8 bcf status,0,c
1425 000086 3401 rlcf ??_isr,w,c
1426 000088 6E05 movwf (??_isr+4)& (0+255),c
1427 00008A 3402 rlcf ??_isr+1,w,c
1428 00008C 6E06 movwf (??_isr+5)& (0+255),c
1429 00008E 3403 rlcf ??_isr+2,w,c
1430 000090 6E07 movwf (??_isr+6)& (0+255),c
1431 000092 3404 rlcf ??_isr+3,w,c
1432 000094 6E08 movwf (??_isr+7)& (0+255),c
1433 000096 C02A F009 movff isr@i,??_isr+8
1434 00009A C025 F00A movff isr@data_a,??_isr+9
1435 00009E 2A09 incf ??_isr+8,f,c
1436 0000A0 D002 goto i2u38_44
1437 0000A2 i2u38_45:
1438 0000A2 90D8 bcf status,0,c
1439 0000A4 320A rrcf ??_isr+9,f,c
1440 0000A6 i2u38_44:
1441 0000A6 2E09 decfsz ??_isr+8,f,c
1442 0000A8 D7FC goto i2u38_45
1443 0000AA 0E01 movlw 1
1444 0000AC 160A andwf ??_isr+9,f,c
1445 0000AE 500A movf ??_isr+9,w,c
1446 0000B0 1005 iorwf ??_isr+4,w,c
1447 0000B2 6E0B movwf (??_isr+10)& (0+255),c
1448 0000B4 5006 movf ??_isr+5,w,c
1449 0000B6 6E0C movwf (??_isr+11)& (0+255),c
1450 0000B8 5007 movf ??_isr+6,w,c
1451 0000BA 6E0D movwf (??_isr+12)& (0+255),c
1452 0000BC 5008 movf ??_isr+7,w,c
1453 0000BE 6E0E movwf (??_isr+13)& (0+255),c
1454 0000C0 502A movf isr@i,w,c
1455 0000C2 0D04 mullw 4
1456 0000C4 0E62 movlw low _keys_data
1457 0000C6 24F3 addwf prodl,w,c
1458 0000C8 6ED9 movwf fsr2l,c
1459 0000CA 0E00 movlw high _keys_data
1460 0000CC 20F4 addwfc prodh,w,c
1461 0000CE 6EDA movwf fsr2h,c
1462 0000D0 C00B FFDE movff ??_isr+10,postinc2
1463 0000D4 C00C FFDE movff ??_isr+11,postinc2
1464 0000D8 C00D FFDE movff ??_isr+12,postinc2
1465 0000DC C00E FFDE movff ??_isr+13,postinc2
1466
1467 ;main.c: 126: keys_data[i + 8] = (keys_data[i + 8] << 1) | ((data_b >> i) & 0x01);
1468 0000E0 502A movf isr@i,w,c
1469 0000E2 6E01 movwf ??_isr& (0+255),c
1470 0000E4 6A02 clrf (??_isr+1)& (0+255),c
1471 0000E6 90D8 bcf status,0,c
1472 0000E8 3601 rlcf ??_isr,f,c
1473 0000EA 3602 rlcf ??_isr+1,f,c
1474 0000EC 90D8 bcf status,0,c
1475 0000EE 3601 rlcf ??_isr,f,c
1476 0000F0 3602 rlcf ??_isr+1,f,c
1477 0000F2 0E20 movlw 32
1478 0000F4 2601 addwf ??_isr,f,c
1479 0000F6 0E00 movlw 0
1480 0000F8 2202 addwfc ??_isr+1,f,c
1481 0000FA 0E62 movlw low _keys_data
1482 0000FC 2401 addwf ??_isr,w,c
1483 0000FE 6ED9 movwf fsr2l,c
1484 000100 0E00 movlw high _keys_data
1485 000102 2002 addwfc ??_isr+1,w,c
1486 000104 6EDA movwf fsr2h,c
1487 000106 CFDE F003 movff postinc2,??_isr+2
1488 00010A CFDE F004 movff postinc2,??_isr+3
1489 00010E CFDE F005 movff postinc2,??_isr+4
1490 000112 CFDE F006 movff postinc2,??_isr+5
1491 000116 90D8 bcf status,0,c
1492 000118 3403 rlcf ??_isr+2,w,c
1493 00011A 6E07 movwf (??_isr+6)& (0+255),c
1494 00011C 3404 rlcf ??_isr+3,w,c
1495 00011E 6E08 movwf (??_isr+7)& (0+255),c
1496 000120 3405 rlcf ??_isr+4,w,c
1497 000122 6E09 movwf (??_isr+8)& (0+255),c
1498 000124 3406 rlcf ??_isr+5,w,c
1499 000126 6E0A movwf (??_isr+9)& (0+255),c
1500 000128 C02A F00B movff isr@i,??_isr+10
1501 00012C C026 F00C movff isr@data_b,??_isr+11
1502 000130 2A0B incf ??_isr+10,f,c
1503 000132 D002 goto i2u39_44
1504 000134 i2u39_45:
1505 000134 90D8 bcf status,0,c
1506 000136 320C rrcf ??_isr+11,f,c
1507 000138 i2u39_44:
1508 000138 2E0B decfsz ??_isr+10,f,c
1509 00013A D7FC goto i2u39_45
1510 00013C 0E01 movlw 1
1511 00013E 160C andwf ??_isr+11,f,c
1512 000140 500C movf ??_isr+11,w,c
1513 000142 1007 iorwf ??_isr+6,w,c
1514 000144 6E0D movwf (??_isr+12)& (0+255),c
1515 000146 5008 movf ??_isr+7,w,c
1516 000148 6E0E movwf (??_isr+13)& (0+255),c
1517 00014A 5009 movf ??_isr+8,w,c
1518 00014C 6E0F movwf (??_isr+14)& (0+255),c
1519 00014E 500A movf ??_isr+9,w,c
1520 000150 6E10 movwf (??_isr+15)& (0+255),c
1521 000152 502A movf isr@i,w,c
1522 000154 6E11 movwf (??_isr+16)& (0+255),c
1523 000156 6A12 clrf (??_isr+17)& (0+255),c
1524 000158 90D8 bcf status,0,c
1525 00015A 3611 rlcf ??_isr+16,f,c
1526 00015C 3612 rlcf ??_isr+17,f,c
1527 00015E 90D8 bcf status,0,c
1528 000160 3611 rlcf ??_isr+16,f,c
1529 000162 3612 rlcf ??_isr+17,f,c
1530 000164 0E20 movlw 32
1531 000166 2611 addwf ??_isr+16,f,c
1532 000168 0E00 movlw 0
1533 00016A 2212 addwfc ??_isr+17,f,c
1534 00016C 0E62 movlw low _keys_data
1535 00016E 2411 addwf ??_isr+16,w,c
1536 000170 6ED9 movwf fsr2l,c
1537 000172 0E00 movlw high _keys_data
1538 000174 2012 addwfc ??_isr+17,w,c
1539 000176 6EDA movwf fsr2h,c
1540 000178 C00D FFDE movff ??_isr+12,postinc2
1541 00017C C00E FFDE movff ??_isr+13,postinc2
1542 000180 C00F FFDE movff ??_isr+14,postinc2
1543 000184 C010 FFDE movff ??_isr+15,postinc2
1544
1545 ;main.c: 131: keypresses |= (keys_data[i] && !(keys_data[i] & 0xFFFFFF00))<<i;
1546 000188 0E00 movlw 0
1547 00018A 6E27 movwf _isr$595,c
1548 00018C 502A movf isr@i,w,c
1549 00018E 0D04 mullw 4
1550 000190 0E62 movlw low _keys_data
1551 000192 24F3 addwf prodl,w,c
1552 000194 6ED9 movwf fsr2l,c
1553 000196 0E00 movlw high _keys_data
1554 000198 20F4 addwfc prodh,w,c
1555 00019A 6EDA movwf fsr2h,c
1556 00019C 50DE movf postinc2,w,c
1557 00019E 10DE iorwf postinc2,w,c
1558 0001A0 10DE iorwf postinc2,w,c
1559 0001A2 10DE iorwf postinc2,w,c
1560 0001A4 B4D8 btfsc status,2,c
1561 0001A6 D01C goto i2l62
1562 0001A8 502A movf isr@i,w,c
1563 0001AA 0D04 mullw 4
1564 0001AC 0E62 movlw low _keys_data
1565 0001AE 24F3 addwf prodl,w,c
1566 0001B0 6ED9 movwf fsr2l,c
1567 0001B2 0E00 movlw high _keys_data
1568 0001B4 20F4 addwfc prodh,w,c
1569 0001B6 6EDA movwf fsr2h,c
1570 0001B8 0E00 movlw 0
1571 0001BA 14DE andwf postinc2,w,c
1572 0001BC 6E01 movwf ??_isr& (0+255),c
1573 0001BE 0EFF movlw 255
1574 0001C0 14DE andwf postinc2,w,c
1575 0001C2 6E02 movwf (??_isr+1)& (0+255),c
1576 0001C4 0EFF movlw 255
1577 0001C6 14DE andwf postinc2,w,c
1578 0001C8 6E03 movwf (??_isr+2)& (0+255),c
1579 0001CA 0EFF movlw 255
1580 0001CC 14DE andwf postinc2,w,c
1581 0001CE 6E04 movwf (??_isr+3)& (0+255),c
1582 0001D0 5001 movf ??_isr,w,c
1583 0001D2 1002 iorwf ??_isr+1,w,c
1584 0001D4 1003 iorwf ??_isr+2,w,c
1585 0001D6 1004 iorwf ??_isr+3,w,c
1586 0001D8 A4D8 btfss status,2,c
1587 0001DA D002 goto i2l62
1588 0001DC 0E01 movlw 1
1589 0001DE 6E27 movwf _isr$595,c
1590 0001E0 i2l62:
1591 0001E0 C02A F001 movff isr@i,??_isr
1592 0001E4 5027 movf _isr$595,w,c
1593 0001E6 6E02 movwf (??_isr+1)& (0+255),c
1594 0001E8 6A03 clrf (??_isr+2)& (0+255),c
1595 0001EA 2A01 incf ??_isr,f,c
1596 0001EC D003 goto i2u42_44
1597 0001EE i2u42_45:
1598 0001EE 90D8 bcf status,0,c
1599 0001F0 3602 rlcf ??_isr+1,f,c
1600 0001F2 3603 rlcf ??_isr+2,f,c
1601 0001F4 i2u42_44:
1602 0001F4 2E01 decfsz ??_isr,f,c
1603 0001F6 D7FB goto i2u42_45
1604 0001F8 5002 movf ??_isr+1,w,c
1605 0001FA 0100 movlb 0 ; () banked
1606 0001FC 1360 iorwf _keypresses& (0+255),f,b ;volatile
1607 0001FE 5003 movf ??_isr+2,w,c
1608 000200 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
1609
1610 ; BSR set to: 0
1611 ;main.c: 132: keypresses |= (keys_data[i + 8] && !(keys_data[i + 8] & 0xFFFFFF00))<<(i +
+ 8);
1612 000202 0E00 movlw 0
1613 000204 6E28 movwf _isr$596,c
1614
1615 ; BSR set to: 0
1616 000206 502A movf isr@i,w,c
1617 000208 6E01 movwf ??_isr& (0+255),c
1618 00020A 6A02 clrf (??_isr+1)& (0+255),c
1619 00020C 90D8 bcf status,0,c
1620 00020E 3601 rlcf ??_isr,f,c
1621 000210 3602 rlcf ??_isr+1,f,c
1622 000212 90D8 bcf status,0,c
1623 000214 3601 rlcf ??_isr,f,c
1624 000216 3602 rlcf ??_isr+1,f,c
1625 000218 0E20 movlw 32
1626 00021A 2601 addwf ??_isr,f,c
1627 00021C 0E00 movlw 0
1628 00021E 2202 addwfc ??_isr+1,f,c
1629 000220 0E62 movlw low _keys_data
1630 000222 2401 addwf ??_isr,w,c
1631 000224 6ED9 movwf fsr2l,c
1632 000226 0E00 movlw high _keys_data
1633 000228 2002 addwfc ??_isr+1,w,c
1634 00022A 6EDA movwf fsr2h,c
1635 00022C 50DE movf postinc2,w,c
1636 00022E 10DE iorwf postinc2,w,c
1637 000230 10DE iorwf postinc2,w,c
1638 000232 10DE iorwf postinc2,w,c
1639 000234 B4D8 btfsc status,2,c
1640 000236 D027 goto i2l64
1641
1642 ; BSR set to: 0
1643 000238 502A movf isr@i,w,c
1644 00023A 6E01 movwf ??_isr& (0+255),c
1645 00023C 6A02 clrf (??_isr+1)& (0+255),c
1646 00023E 90D8 bcf status,0,c
1647 000240 3601 rlcf ??_isr,f,c
1648 000242 3602 rlcf ??_isr+1,f,c
1649 000244 90D8 bcf status,0,c
1650 000246 3601 rlcf ??_isr,f,c
1651 000248 3602 rlcf ??_isr+1,f,c
1652 00024A 0E20 movlw 32
1653 00024C 2601 addwf ??_isr,f,c
1654 00024E 0E00 movlw 0
1655 000250 2202 addwfc ??_isr+1,f,c
1656 000252 0E62 movlw low _keys_data
1657 000254 2401 addwf ??_isr,w,c
1658 000256 6ED9 movwf fsr2l,c
1659 000258 0E00 movlw high _keys_data
1660 00025A 2002 addwfc ??_isr+1,w,c
1661 00025C 6EDA movwf fsr2h,c
1662 00025E 0E00 movlw 0
1663 000260 14DE andwf postinc2,w,c
1664 000262 6E03 movwf (??_isr+2)& (0+255),c
1665 000264 0EFF movlw 255
1666 000266 14DE andwf postinc2,w,c
1667 000268 6E04 movwf (??_isr+3)& (0+255),c
1668 00026A 0EFF movlw 255
1669 00026C 14DE andwf postinc2,w,c
1670 00026E 6E05 movwf (??_isr+4)& (0+255),c
1671 000270 0EFF movlw 255
1672 000272 14DE andwf postinc2,w,c
1673 000274 6E06 movwf (??_isr+5)& (0+255),c
1674 000276 5003 movf ??_isr+2,w,c
1675 000278 1004 iorwf ??_isr+3,w,c
1676 00027A 1005 iorwf ??_isr+4,w,c
1677 00027C 1006 iorwf ??_isr+5,w,c
1678 00027E A4D8 btfss status,2,c
1679 000280 D002 goto i2l64
1680
1681 ; BSR set to: 0
1682 000282 0E01 movlw 1
1683 000284 6E28 movwf _isr$596,c
1684 000286 i2l64:
1685
1686 ; BSR set to: 0
1687
1688 ; BSR set to: 0
1689 000286 C02A F001 movff isr@i,??_isr
1690 00028A 0E08 movlw 8
1691 00028C 2601 addwf ??_isr,f,c
1692 00028E 5028 movf _isr$596,w,c
1693 000290 6E02 movwf (??_isr+1)& (0+255),c
1694 000292 6A03 clrf (??_isr+2)& (0+255),c
1695 000294 2A01 incf ??_isr,f,c
1696 000296 D003 goto i2u45_44
1697 000298 i2u45_45:
1698 000298 90D8 bcf status,0,c
1699 00029A 3602 rlcf ??_isr+1,f,c
1700 00029C 3603 rlcf ??_isr+2,f,c
1701 00029E i2u45_44:
1702 00029E 2E01 decfsz ??_isr,f,c
1703 0002A0 D7FB goto i2u45_45
1704 0002A2 5002 movf ??_isr+1,w,c
1705 0002A4 0100 movlb 0 ; () banked
1706 0002A6 1360 iorwf _keypresses& (0+255),f,b ;volatile
1707 0002A8 5003 movf ??_isr+2,w,c
1708 0002AA 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
1709
1710 ; BSR set to: 0
1711 ;main.c: 134: } while (i--);
1712 0002AC 062A decf isr@i,f,c
1713 0002AE 282A incf isr@i,w,c
1714 0002B0 A4D8 btfss status,2,c
1715 0002B2 D6D8 goto i2l60
1716
1717 ; BSR set to: 0
1718 ;main.c: 138: PORTDbits.RD4 = PORTAbits.RA0;
1719 0002B4 A080 btfss 3968,0,c ;volatile
1720 0002B6 D002 bra i2u47_45
1721 0002B8 8883 bsf 3971,4,c ;volatile
1722 0002BA D001 bra i2u47_47
1723 0002BC i2u47_45:
1724 0002BC 9883 bcf 3971,4,c ;volatile
1725 0002BE i2u47_47:
1726
1727 ;main.c: 139: PORTDbits.RD2 = (keys_data[0] && !(keys_data[0] & 0xFFFFFF00));
1728 0002BE 0E00 movlw 0
1729 0002C0 6E29 movwf _isr$605,c
1730 0002C2 0100 movlb 0 ; () banked
1731 0002C4 5162 movf _keys_data& (0+255),w,b ;volatile
1732 0002C6 1163 iorwf (_keys_data+1)& (0+255),w,b ;volatile
1733 0002C8 1164 iorwf (_keys_data+2)& (0+255),w,b ;volatile
1734 0002CA 1165 iorwf (_keys_data+3)& (0+255),w,b ;volatile
1735 0002CC B4D8 btfsc status,2,c
1736 0002CE D014 goto i2l67
1737
1738 ; BSR set to: 0
1739 0002D0 0E00 movlw 0
1740 0002D2 1562 andwf _keys_data& (0+255),w,b ;volatile
1741 0002D4 6E01 movwf ??_isr& (0+255),c
1742 0002D6 0EFF movlw 255
1743 0002D8 1563 andwf (_keys_data+1)& (0+255),w,b ;volatile
1744 0002DA 6E02 movwf (??_isr+1)& (0+255),c
1745 0002DC 0EFF movlw 255
1746 0002DE 1564 andwf (_keys_data+2)& (0+255),w,b ;volatile
1747 0002E0 6E03 movwf (??_isr+2)& (0+255),c
1748 0002E2 0EFF movlw 255
1749 0002E4 1565 andwf (_keys_data+3)& (0+255),w,b ;volatile
1750 0002E6 6E04 movwf (??_isr+3)& (0+255),c
1751 0002E8 5001 movf ??_isr,w,c
1752 0002EA 1002 iorwf ??_isr+1,w,c
1753 0002EC 1003 iorwf ??_isr+2,w,c
1754 0002EE 1004 iorwf ??_isr+3,w,c
1755 0002F0 A4D8 btfss status,2,c
1756 0002F2 D002 goto i2l67
1757
1758 ; BSR set to: 0
1759 0002F4 0E01 movlw 1
1760 0002F6 6E29 movwf _isr$605,c
1761 0002F8 i2l67:
1762
1763 ; BSR set to: 0
1764
1765 ; BSR set to: 0
1766 0002F8 B029 btfsc _isr$605,0,c
1767 0002FA D002 bra i2u50_45
1768 0002FC 9483 bcf 3971,2,c ;volatile
1769 0002FE D001 bra i2u50_46
1770 000300 i2u50_45:
1771 000300 8483 bsf 3971,2,c ;volatile
1772 000302 i2u50_46:
1773
1774 ;main.c: 143: PIR1bits.TMR2IF = 0;
1775 000302 929E bcf 3998,1,c ;volatile
1776 000304 i2l59:
1777
1778 ;main.c: 144: }
1779 ;main.c: 146: PORTDbits.RD3 = 1;
1780 000304 8683 bsf 3971,3,c ;volatile
1781 000306 C024 F037 movff ??_isr+35,btemp+3
1782 00030A C023 F036 movff ??_isr+34,btemp+2
1783 00030E C022 F035 movff ??_isr+33,btemp+1
1784 000312 C021 F034 movff ??_isr+32,btemp
1785 000316 C020 FFF5 movff ??_isr+31,tablat
1786 00031A C01F FFF8 movff ??_isr+30,tblptru
1787 00031E C01E FFF7 movff ??_isr+29,tblptrh
1788 000322 C01D FFF6 movff ??_isr+28,tblptrl
1789 000326 C01C FFF4 movff ??_isr+27,prodh
1790 00032A C01B FFF3 movff ??_isr+26,prodl
1791 00032E C01A FFDA movff ??_isr+25,fsr2h
1792 000332 C019 FFD9 movff ??_isr+24,fsr2l
1793 000336 C018 FFE2 movff ??_isr+23,fsr1h
1794 00033A C017 FFE1 movff ??_isr+22,fsr1l
1795 00033E C016 FFEA movff ??_isr+21,fsr0h
1796 000342 C015 FFE9 movff ??_isr+20,fsr0l
1797 000346 C014 FFFB movff ??_isr+19,pclatu
1798 00034A C013 FFFA movff ??_isr+18,pclath
1799 00034E 9234 bcf btemp,1,c ;clear compiler interrupt flag (level 2)
1800 000350 0011 retfie f
1801 000352 __end_of_isr:
1802 opt stack 0
1803 0000 pclatu equ 0xFFB
1804 pclath equ 0xFFA
1805 tblptru equ 0xFF8
1806 tblptrh equ 0xFF7
1807 tblptrl equ 0xFF6
1808 tablat equ 0xFF5
1809 prodh equ 0xFF4
1810 prodl equ 0xFF3
1811 intcon equ 0xFF2
1812 postinc0 equ 0xFEE
1813 fsr0h equ 0xFEA
1814 fsr0l equ 0xFE9
1815 wreg equ 0xFE8
1816 fsr1h equ 0xFE2
1817 fsr1l equ 0xFE1
1818 indf2 equ 0xFDF
1819 postinc2 equ 0xFDE
1820 postdec2 equ 0xFDD
1821 fsr2h equ 0xFDA
1822 fsr2l equ 0xFD9
1823 status equ 0xFD8
1824 pclatu equ 0xFFB
1825 pclath equ 0xFFA
1826 tblptru equ 0xFF8
1827 tblptrh equ 0xFF7
1828 tblptrl equ 0xFF6
1829 tablat equ 0xFF5
1830 prodh equ 0xFF4
1831 prodl equ 0xFF3
1832 intcon equ 0xFF2
1833 postinc0 equ 0xFEE
1834 fsr0h equ 0xFEA
1835 fsr0l equ 0xFE9
1836 wreg equ 0xFE8
1837 fsr1h equ 0xFE2
1838 fsr1l equ 0xFE1
1839 indf2 equ 0xFDF
1840 postinc2 equ 0xFDE
1841 postdec2 equ 0xFDD
1842 fsr2h equ 0xFDA
1843 fsr2l equ 0xFD9
1844 status equ 0xFD8
1845
1846 psect rparam
1847 0000 pclatu equ 0xFFB
1848 pclath equ 0xFFA
1849 tblptru equ 0xFF8
1850 tblptrh equ 0xFF7
1851 tblptrl equ 0xFF6
1852 tablat equ 0xFF5
1853 prodh equ 0xFF4
1854 prodl equ 0xFF3
1855 intcon equ 0xFF2
1856 postinc0 equ 0xFEE
1857 fsr0h equ 0xFEA
1858 fsr0l equ 0xFE9
1859 wreg equ 0xFE8
1860 fsr1h equ 0xFE2
1861 fsr1l equ 0xFE1
1862 indf2 equ 0xFDF
1863 postinc2 equ 0xFDE
1864 postdec2 equ 0xFDD
1865 fsr2h equ 0xFDA
1866 fsr2l equ 0xFD9
1867 status equ 0xFD8
1868
1869 psect temp
1870 000034 btemp:
1871 opt stack 0
1872 000034 ds 1
1873 0000 int$flags set btemp
1874 0000 wtemp6 set btemp+1
1875 pclatu equ 0xFFB
1876 pclath equ 0xFFA
1877 tblptru equ 0xFF8
1878 tblptrh equ 0xFF7
1879 tblptrl equ 0xFF6
1880 tablat equ 0xFF5
1881 prodh equ 0xFF4
1882 prodl equ 0xFF3
1883 intcon equ 0xFF2
1884 postinc0 equ 0xFEE
1885 fsr0h equ 0xFEA
1886 fsr0l equ 0xFE9
1887 wreg equ 0xFE8
1888 fsr1h equ 0xFE2
1889 fsr1l equ 0xFE1
1890 indf2 equ 0xFDF
1891 postinc2 equ 0xFDE
1892 postdec2 equ 0xFDD
1893 fsr2h equ 0xFDA
1894 fsr2l equ 0xFD9
1895 status equ 0xFD8
Data Sizes:
Strings 0
Constant 0
Data 0
BSS 66
Persistent 0
Stack 0
Auto Spaces:
Space Size Autos Used
COMRAM 94 51 51
BANK0 160 20 86
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]),
eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7
-> main@message(BANK0[7]),
sp__memset PTR void size(2) Largest target is 64
-> keys_data(BANK0[64]),
Critical Paths under _main in COMRAM
_main->_eusart_write_midi
_midi_note_on->_midi_set_channel
_eusart_write_midi->_eusart2_putch
Critical Paths under _isr in COMRAM
None.
Critical Paths under _main in BANK0
_main->_midi_note_on
Critical Paths under _isr in BANK0
None.
Critical Paths under _main in BANK1
None.
Critical Paths under _isr in BANK1
None.
Critical Paths under _main in BANK2
None.
Critical Paths under _isr in BANK2
None.
Critical Paths under _main in BANK3
None.
Critical Paths under _isr in BANK3
None.
Critical Paths under _main in BANK4
None.
Critical Paths under _isr in BANK4
None.
Critical Paths under _main in BANK5
None.
Critical Paths under _isr in BANK5
None.
Call Graph Tables:
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(0) _main 14 14 0 2013
6 BANK0 14 14 0
_eusart_write_midi
_init_hw
_memset
_midi_note_on
---------------------------------------------------------------------------------
(1) _midi_note_on 6 0 6 1242
0 BANK0 6 0 6
_midi_set_channel
_midi_set_status
---------------------------------------------------------------------------------
(2) _midi_set_status 4 1 3 370
42 COMRAM 4 1 3
---------------------------------------------------------------------------------
(2) _midi_set_channel 5 1 4 370
42 COMRAM 5 1 4
---------------------------------------------------------------------------------
(1) _memset 8 2 6 324
42 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 255
43 COMRAM 8 6 2
_eusart2_putch
---------------------------------------------------------------------------------
(2) _eusart2_putch 1 1 0 22
42 COMRAM 1 1 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 2
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(3) _isr 42 42 0 405
0 COMRAM 42 42 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 14 56 4 53.8%
BITCOMRAM 5E 0 0 0 0.0%
COMRAM 5E 33 33 1 54.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 89 9 0.0%
DATA 0 0 89 17 0.0%
CODE 0 0 0 0 0.0%
Microchip Technology PIC18 Macro Assembler V1.44 build -154322312
Symbol Table Tue Feb 27 10:27:03 2018
l76 0398 l87 0494 l79 042C
l88 0482 __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000
__CFG_CP2$OFF 000000 __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000
l596 0588 l597 0578 __CFG_CPB$OFF 000000
_PR2 000FBB __CFG_CPD$OFF 000000 u524 03C4
u525 03BE u544 0416 u545 0410
u577 03F4 _isr 0008 prod 000FF3
wreg 000FE8 _TXSTA1bits 000FAC _TXSTA2bits 000F72
l1110 0578 l1202 0398 l1052 0638
l1140 0482 l1204 03A2 ?_isr 0001
i2l60 0064 i2l62 01E0 i2l64 0286
i2l59 0304 i2l67 02F8 main@message 00AF
_main 0356 midi_note_on@channel 00A4 fsr0h 000FEA
fsr1h 000FE2 fsr2h 000FDA fsr0l 000FE9
indf2 000FDF fsr1l 000FE1 fsr2l 000FD9
btemp 0034 __CFG_BORV$190 000000 isr@i 002A
prodh 000FF4 prodl 000FF3 start 0352
__CFG_IESO$OFF 000000 midi_note_on@pkt 00A2 ___param_bank 000000
??_isr 0001 _BAUDCON1bits 000FB8 _BAUDCON2bits 000F70
?_main 0001 _RC1IF 007CF5 __CFG_WDTEN$ON 000000
_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 056E __CFG_MCLRE$EXTMCLR 000000
main@i 00AD pclath 000FFA tablat 000FF5
_eusart_write_midi 0432 __end_of_midi_set_status 05E4 status 000FD8
wtemp6 0035 __CFG_HFOFST$ON 000000 ?_eusart_write_midi 002C
__CFG_PBADEN$ON 000000 eusart_write_midi@length 0030 __initialization 061C
midi_note_on@note 00A6 __end_of_main 0432 ??_eusart_write_midi 002E
midi_note_on@velocity 00A7 ??_main 00A8 ?_midi_note_on 00A2
__activetblptr 000002 __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 04A6
_ANSELA 000F38 _ANSELB 000F39 _ANSELC 000F3A
_ANSELD 000F3B _RC1REG 000FAE _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 05C0 _memset 056E
clear_0 0622 midi_set_status@status 002D ??_midi_note_on 0030
__size_of_eusart2_putch 000C ??_init_hw 002B tblptrh 000FF7
tblptrl 000FF6 tblptru 000FF8 __accesstop 0060
__end_of__initialization 0628 ?_midi_set_status 002B ??_eusart1_init 002B
??_eusart2_init 002B ___rparam_used 000001 __pcstackCOMRAM 0001
__size_of_eusart_write_midi 0074 __pbssBANK0 0060 _eusart2_putch 0636
__CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 002B
i2u42_44 01F4 i2u50_45 0300 i2u42_45 01EE
i2u50_46 0302 i2u45_44 029E i2u45_45 0298
i2u38_44 00A6 i2u38_45 00A2 i2u39_44 0138
i2u47_45 02BC i2u39_45 0134 i2u47_47 02BE
_SPBRGH1 000FB0 _SPBRGH2 000F76 ?_eusart2_putch 0001
__end_of_midi_note_on 050C eusart_write_midi@pkt 002C __CFG_PWRTEN$OFF 000000
__Hparam 0000 __Lparam 0000 __pcinit 061C
_isr$605 0029 _isr$595 0027 _isr$596 0028
__size_of_memset 002C __ramtop 0600 __ptext0 0356
__ptext1 04A6 __ptext2 05C0 __ptext3 059A
__ptext4 056E __ptext5 050C __ptext6 05E4
__ptext7 0600 __ptext8 0432 __ptext9 0636
__end_of_eusart1_init 061C __end_of_eusart2_init 0600 _T2CONbits 000FBA
_init_hw 050C __size_of_isr 034A _keypresses 0060
end_of_initialization 0628 memset@c 002D memset@n 002F
memset@p 0031 __Lmediumconst 0000 postdec2 000FDD
postinc0 000FEE postinc2 000FDE ?_midi_set_channel 002B
_PORTAbits 000F80 _PORTDbits 000F83 ??_midi_set_channel 002F
__CFG_FOSC$INTIO7 000000 _TRISCbits 000F94 _TRISDbits 000F95
??_eusart2_putch 002B midi_set_channel@channel 002D __end_of_memset 059A
start_initialization 061C __end_of_isr 0352 __size_of_midi_note_on 0066
__size_of_midi_set_status 0024 __size_of_eusart1_init 001C __size_of_eusart2_init 001C
??_memset 0031 _midi_note_on 04A6 __pcstackBANK0 00A2
midi_set_status@pkt 002B _eusart1_init 0600 _eusart2_init 05E4
__pintcode 0008 __CFG_PRICLKEN$ON 000000 ?_init_hw 0001
_keys_data 0062 _PIE1bits 000F9D _PIR1bits 000F9E
__CFG_WDTPS$32768 000000 ??_midi_set_status 002E __size_of_midi_set_channel 0026
eusart_write_midi@data 0032 isr@data_a 0025 isr@data_b 0026
__Hrparam 0000 __Lrparam 0000 __CFG_BOREN$SBORDIS 000000
__CFG_P2BMX$PORTD2 000000 eusart2_putch@c 002B __size_of_init_hw 0062
__end_of_eusart2_putch 0642 __size_of_main 00DC int$flags 0034
_OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 002B
midi_set_channel@pkt 002B intlevel2 0000 _RCSTA1bits 000FAB
_RCSTA2bits 000F71 _OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000
_midi_set_channel 059A _midi_set_status 05C0
|