1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
|
Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312
Fri Feb 23 16:30:02 2018
Microchip Technology Omniscient Code Generator v1.44 (Free mode) build 201709140600
1 processor 18F45K22
2 fnconf rparam,??,?,0
3 opt pw 120
4 opt lm
5 psect idataCOMRAM,global,class=CODE,delta=1,noexec
6 psect cinit,global,reloc=2,class=CODE,delta=1
7 psect bssCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
8 psect dataCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
9 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
10 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
11 psect text0,global,reloc=2,class=CODE,delta=1
12 psect text1,global,reloc=2,class=CODE,delta=1
13 psect text2,global,reloc=2,class=CODE,delta=1
14 psect text3,global,reloc=2,class=CODE,delta=1
15 psect text4,global,reloc=2,class=CODE,delta=1,group=1
16 psect text5,global,reloc=2,class=CODE,delta=1,inline
17 psect text6,global,reloc=2,class=CODE,delta=1
18 psect text7,global,reloc=2,class=CODE,delta=1
19 psect text8,global,reloc=2,class=CODE,delta=1
20 psect intcode,global,reloc=2,class=CODE,delta=1
21 psect intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec
22 psect rparam,global,class=COMRAM,space=1,delta=1,noexec
23 psect temp,global,ovrld,common,class=COMRAM,space=1,delta=1
24 0000
25 ; Version 1.44
26 ; Generated 14/09/2017 GMT
27 ;
28 ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip")
29 ; All rights reserved.
30 ;
31 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ ip").
32 ;
33 ; Redistribution and use in source and binary forms, with or without modification, are
34 ; permitted provided that the following conditions are met:
35 ;
36 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ t of
37 ; conditions and the following disclaimer.
38 ;
39 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ list
40 ; of conditions and the following disclaimer in the documentation and/or other
41 ; materials provided with the distribution.
42 ;
43 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ is
44 ; software without specific prior written permission.
45 ;
46 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
47 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ OR
48 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ T,
49 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
50 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
51 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ RICT
52 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ SE OF
53 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54 ;
55 ;
56 ; Code-generator required, PIC18F45K22 Definitions
57 ;
58 ; SFR Addresses
59 0000
60 psect idataCOMRAM
61 000424 __pidataCOMRAM:
62 opt stack 0
63
64 ;initializer for _midi_base_scale
65 000424 003C dw 60
66 0000 _ANSELD set 3899
67 0000 _ANSELC set 3898
68 0000 _ANSELB set 3897
69 0000 _ANSELA set 3896
70 0000 _RC1REG set 4014
71 0000 _TX1REG set 4013
72 0000 _TRISCbits set 3988
73 0000 _BAUDCON1bits set 4024
74 0000 _SPBRGH1 set 4016
75 0000 _SPBRG1 set 4015
76 0000 _RCSTA1bits set 4011
77 0000 _TXSTA1bits set 4012
78 0000 _PIE1bits set 3997
79 0000 _T2CONbits set 4026
80 0000 _PR2 set 4027
81 0000 _TRISDbits set 3989
82 0000 _TRISB set 3987
83 0000 _TRISA set 3986
84 0000 _OSCCONbits set 4051
85 0000 _OSCTUNEbits set 3995
86 0000 _INTCONbits set 4082
87 0000 _PORTAbits set 3968
88 0000 _PORTB set 3969
89 0000 _PORTA set 3968
90 0000 _PIR1bits set 3998
91 0000 _PORTDbits set 3971
92 0000 _RC1IF set 31989
93 0000 _TX1IF set 31988
94
95 ; #config settings
96 0000
97 psect cinit
98 000354 __pcinit:
99 opt stack 0
100 000354 start_initialization:
101 opt stack 0
102 000354 __initialization:
103 opt stack 0
104
105 ; Initialize objects allocated to COMRAM (2 bytes)
106 ; load TBLPTR registers with __pidataCOMRAM
107 000354 0E24 movlw low __pidataCOMRAM
108 000356 6EF6 movwf tblptrl,c
109 000358 0E04 movlw high __pidataCOMRAM
110 00035A 6EF7 movwf tblptrh,c
111 00035C 0E00 movlw low (__pidataCOMRAM shr (0+16))
112 00035E 6EF8 movwf tblptru,c
113 000360 0009 tblrd *+ ;fetch initializer
114 000362 CFF5 F043 movff tablat,__pdataCOMRAM
115 000366 0009 tblrd *+ ;fetch initializer
116 000368 CFF5 F044 movff tablat,__pdataCOMRAM+1
117
118 ; Clear objects allocated to COMRAM (30 bytes)
119 00036C EE00 F025 lfsr 0,__pbssCOMRAM
120 000370 0E1E movlw 30
121 000372 clear_0:
122 000372 6AEE clrf postinc0,c
123 000374 06E8 decf wreg,f,c
124 000376 E1FD bnz clear_0
125 000378 end_of_initialization:
126 opt stack 0
127 000378 __end_of__initialization:
128 opt stack 0
129 000378 9045 bcf int$flags,0,c ;clear compiler interrupt flag (level 1)
130 00037A 9245 bcf int$flags,1,c ;clear compiler interrupt flag (level 2)
131 00037C 0E00 movlw low (__Lmediumconst shr (0+16))
132 00037E 6EF8 movwf tblptru,c
133 000380 0100 movlb 0
134 000382 EF84 F001 goto _main ;jump to C main() function
135 tblptru equ 0xFF8
136 tblptrh equ 0xFF7
137 tblptrl equ 0xFF6
138 tablat equ 0xFF5
139 postinc0 equ 0xFEE
140 wreg equ 0xFE8
141
142 psect bssCOMRAM
143 000025 __pbssCOMRAM:
144 opt stack 0
145 000025 _keypresses:
146 opt stack 0
147 000025 ds 30
148 tblptru equ 0xFF8
149 tblptrh equ 0xFF7
150 tblptrl equ 0xFF6
151 tablat equ 0xFF5
152 postinc0 equ 0xFEE
153 wreg equ 0xFE8
154
155 psect dataCOMRAM
156 000043 __pdataCOMRAM:
157 opt stack 0
158 000043 _midi_base_scale:
159 opt stack 0
160 000043 ds 2
161 tblptru equ 0xFF8
162 tblptrh equ 0xFF7
163 tblptrl equ 0xFF6
164 tablat equ 0xFF5
165 postinc0 equ 0xFEE
166 wreg equ 0xFE8
167
168 psect cstackBANK0
169 000060 __pcstackBANK0:
170 opt stack 0
171 000060 ??_midi_note_on:
172
173 ; 1 bytes @ 0x0
174 000060 ds 2
175 000062 main@sample_message:
176 opt stack 0
177
178 ; 7 bytes @ 0x2
179 000062 ds 7
180 tblptru equ 0xFF8
181 tblptrh equ 0xFF7
182 tblptrl equ 0xFF6
183 tablat equ 0xFF5
184 postinc0 equ 0xFEE
185 wreg equ 0xFE8
186
187 psect cstackCOMRAM
188 000001 __pcstackCOMRAM:
189 opt stack 0
190 000001 ??_isr:
191 000001
192 ; 1 bytes @ 0x0
193 000001 ds 22
194 000017 _isr$592:
195 opt stack 0
196
197 ; 1 bytes @ 0x16
198 000017 ds 1
199 000018 isr@data:
200 opt stack 0
201
202 ; 1 bytes @ 0x17
203 000018 ds 1
204 000019 isr@i:
205 opt stack 0
206
207 ; 1 bytes @ 0x18
208 000019 ds 1
209 00001A putch@c:
210 opt stack 0
211 00001A midi_set_status@pkt:
212 opt stack 0
213 00001A midi_set_channel@pkt:
214 opt stack 0
215 00001A memset@p1:
216 opt stack 0
217
218 ; 2 bytes @ 0x19
219 00001A ds 1
220 00001B eusart_write_midi@pkt:
221 opt stack 0
222
223 ; 2 bytes @ 0x1A
224 00001B ds 1
225 00001C midi_set_status@status:
226 opt stack 0
227 00001C midi_set_channel@channel:
228 opt stack 0
229 00001C memset@c:
230 opt stack 0
231
232 ; 2 bytes @ 0x1B
233 00001C ds 1
234 00001D ??_eusart_write_midi:
235 00001D ??_midi_set_status:
236
237 ; 1 bytes @ 0x1C
238 00001D ds 1
239 00001E ??_midi_set_channel:
240 00001E memset@n:
241 opt stack 0
242
243 ; 2 bytes @ 0x1D
244 00001E ds 1
245 00001F eusart_write_midi@length:
246 opt stack 0
247 00001F midi_note_on@pkt:
248 opt stack 0
249
250 ; 2 bytes @ 0x1E
251 00001F ds 1
252 000020 memset@p:
253 opt stack 0
254
255 ; 2 bytes @ 0x1F
256 000020 ds 1
257 000021 eusart_write_midi@data:
258 opt stack 0
259 000021 midi_note_on@channel:
260 opt stack 0
261
262 ; 2 bytes @ 0x20
263 000021 ds 2
264 000023 midi_note_on@note:
265 opt stack 0
266
267 ; 1 bytes @ 0x22
268 000023 ds 1
269 000024 midi_note_on@velocity:
270 opt stack 0
271
272 ; 1 bytes @ 0x23
273 000024 ds 1
274 000025 tblptru equ 0xFF8
275 tblptrh equ 0xFF7
276 tblptrl equ 0xFF6
277 tablat equ 0xFF5
278 postinc0 equ 0xFEE
279 wreg equ 0xFE8
280
281 ; 1 bytes @ 0x24
282 ;;
283 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0
284 ;;
285 ;; *************** function _main *****************
286 ;; Defined at:
287 ;; line 204 in file "main.c"
288 ;; Parameters: Size Location Type
289 ;; None
290 ;; Auto vars: Size Location Type
291 ;; sample_messa 7 2[BANK0 ] struct .
292 ;; data 1 0 unsigned char
293 ;; i 1 0 unsigned char
294 ;; Return value: Size Location Type
295 ;; 1 wreg void
296 ;; Registers used:
297 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
298 ;; Tracked objects:
299 ;; On entry : 0/0
300 ;; On exit : 0/0
301 ;; Unchanged: 0/0
302 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
303 ;; Params: 0 0 0 0 0 0 0
304 ;; Locals: 0 7 0 0 0 0 0
305 ;; Temps: 0 0 0 0 0 0 0
306 ;; Totals: 0 7 0 0 0 0 0
307 ;;Total ram usage: 7 bytes
308 ;; Hardware stack levels required when called: 3
309 ;; This function calls:
310 ;; _eusart_write_midi
311 ;; _init_hw
312 ;; _memset
313 ;; _midi_note_on
314 ;; This function is called by:
315 ;; Startup code after reset
316 ;; This function uses a non-reentrant model
317 ;;
318
319 psect text0
320 000308 __ptext0:
321 opt stack 0
322 000308 _main:
323 opt stack 28
324
325 ;main.c: 206: unsigned char i, data;
326 ;main.c: 207: midi_message_t sample_message;
327 ;main.c: 210: init_hw();
328
329 ;incstack = 0
330 000308 EC54 F001 call _init_hw ;wreg free
331
332 ;main.c: 213: memset(keypresses, 0, sizeof(keypresses));
333 00030C 0E25 movlw low _keypresses
334 00030E 6E1A movwf memset@p1,c
335 000310 0E00 movlw high _keypresses
336 000312 6E1B movwf memset@p1+1,c
337 000314 0E00 movlw 0
338 000316 6E1D movwf memset@c+1,c
339 000318 0E00 movlw 0
340 00031A 6E1C movwf memset@c,c
341 00031C 0E00 movlw 0
342 00031E 6E1F movwf memset@n+1,c
343 000320 0E1E movlw 30
344 000322 6E1E movwf memset@n,c
345 000324 ECC3 F001 call _memset ;wreg free
346
347 ;main.c: 216: midi_note_on(&sample_message, 0x0, 0x3C, 0x7F);
348 000328 0E62 movlw low main@sample_message
349 00032A 6E1F movwf midi_note_on@pkt,c
350 00032C 0E00 movlw high main@sample_message
351 00032E 6E20 movwf midi_note_on@pkt+1,c
352 000330 0E00 movlw 0
353 000332 6E22 movwf midi_note_on@channel+1,c
354 000334 0E00 movlw 0
355 000336 6E21 movwf midi_note_on@channel,c
356 000338 0E3C movlw 60
357 00033A 6E23 movwf midi_note_on@note,c
358 00033C 0E7F movlw 127
359 00033E 6E24 movwf midi_note_on@velocity,c
360 000340 ECDE F000 call _midi_note_on ;wreg free
361
362 ;main.c: 217: PORTDbits.RD1 = 0;
363 000344 9283 bcf 3971,1,c ;volatile
364 000346
365 ;main.c: 221: eusart_write_midi(&sample_message);
366 000346 0E62 movlw low main@sample_message
367 000348 6E1B movwf eusart_write_midi@pkt,c
368 00034A 0E00 movlw high main@sample_message
369 00034C 6E1C movwf eusart_write_midi@pkt+1,c
370 00034E EC1A F001 call _eusart_write_midi ;wreg free
371 000352 D7F9 goto l70
372 000354 __end_of_main:
373 opt stack 0
374 tblptru equ 0xFF8
375 tblptrh equ 0xFF7
376 tblptrl equ 0xFF6
377 tablat equ 0xFF5
378 postinc0 equ 0xFEE
379 wreg equ 0xFE8
380
381 ;; *************** function _midi_note_on *****************
382 ;; Defined at:
383 ;; line 62 in file "midi.c"
384 ;; Parameters: Size Location Type
385 ;; pkt 2 30[COMRAM] PTR struct .
386 ;; -> main@sample_message(7),
387 ;; channel 2 32[COMRAM] unsigned int
388 ;; note 1 34[COMRAM] enum E31
389 ;; velocity 1 35[COMRAM] unsigned char
390 ;; Auto vars: Size Location Type
391 ;; None
392 ;; Return value: Size Location Type
393 ;; 2 30[COMRAM] int
394 ;; Registers used:
395 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
396 ;; Tracked objects:
397 ;; On entry : 0/0
398 ;; On exit : 0/0
399 ;; Unchanged: 0/0
400 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
401 ;; Params: 6 0 0 0 0 0 0
402 ;; Locals: 0 0 0 0 0 0 0
403 ;; Temps: 0 2 0 0 0 0 0
404 ;; Totals: 6 2 0 0 0 0 0
405 ;;Total ram usage: 8 bytes
406 ;; Hardware stack levels used: 1
407 ;; Hardware stack levels required when called: 2
408 ;; This function calls:
409 ;; _midi_set_channel
410 ;; _midi_set_status
411 ;; This function is called by:
412 ;; _main
413 ;; This function uses a non-reentrant model
414 ;;
415
416 psect text1
417 0001BC __ptext1:
418 opt stack 0
419 0001BC _midi_note_on:
420 opt stack 28
421
422 ;midi.c: 64: if (pkt == (0)) {
423
424 ;incstack = 0
425 0001BC 501F movf midi_note_on@pkt,w,c
426 0001BE 1020 iorwf midi_note_on@pkt+1,w,c
427 0001C0 B4D8 btfsc status,2,c
428 0001C2 0012 return
429
430 ;midi.c: 66: }
431 ;midi.c: 68: if (pkt->data == (0)) {
432
433 ;midi.c: 65: return -1;
434 ; Return value of _midi_note_on is never used
435 0001C4 0E03 movlw 3
436 0001C6 241F addwf midi_note_on@pkt,w,c
437 0001C8 0100 movlb 0 ; () banked
438 0001CA 6F60 movwf ??_midi_note_on& (0+255),b
439 0001CC 0E00 movlw 0
440 0001CE 2020 addwfc midi_note_on@pkt+1,w,c
441 0001D0 6F61 movwf (??_midi_note_on+1)& (0+255),b
442 0001D2 5160 movf ??_midi_note_on& (0+255),w,b
443 0001D4 1161 iorwf (??_midi_note_on+1)& (0+255),w,b
444 0001D6 B4D8 btfsc status,2,c
445 0001D8 0012 return
446
447 ; BSR set to: 0
448 ;midi.c: 70: }
449 ;midi.c: 72: midi_set_status(pkt, NOTE_ON);
450
451 ; BSR set to: 0
452
453 ; BSR set to: 0
454 ;midi.c: 69: return -2;
455 ; Return value of _midi_note_on is never used
456 0001DA C01F F01A movff midi_note_on@pkt,midi_set_status@pkt
457 0001DE C020 F01B movff midi_note_on@pkt+1,midi_set_status@pkt+1
458 0001E2 0E08 movlw 8
459 0001E4 6E1C movwf midi_set_status@status,c
460 0001E6 ECEC F001 call _midi_set_status ;wreg free
461
462 ;midi.c: 73: midi_set_channel(pkt, channel);
463 0001EA C01F F01A movff midi_note_on@pkt,midi_set_channel@pkt
464 0001EE C020 F01B movff midi_note_on@pkt+1,midi_set_channel@pkt+1
465 0001F2 C021 F01C movff midi_note_on@channel,midi_set_channel@channel
466 0001F6 C022 F01D movff midi_note_on@channel+1,midi_set_channel@channel+1
467 0001FA ECD9 F001 call _midi_set_channel ;wreg free
468
469 ;midi.c: 75: pkt->data[0] = note;
470 0001FE EE20 F003 lfsr 2,3
471 000202 501F movf midi_note_on@pkt,w,c
472 000204 26D9 addwf fsr2l,f,c
473 000206 5020 movf midi_note_on@pkt+1,w,c
474 000208 22DA addwfc fsr2h,f,c
475 00020A C023 FFDF movff midi_note_on@note,indf2
476
477 ;midi.c: 76: pkt->data[1] = velocity;
478 00020E EE20 F004 lfsr 2,4
479 000212 501F movf midi_note_on@pkt,w,c
480 000214 26D9 addwf fsr2l,f,c
481 000216 5020 movf midi_note_on@pkt+1,w,c
482 000218 22DA addwfc fsr2h,f,c
483 00021A C024 FFDF movff midi_note_on@velocity,indf2
484
485 ;midi.c: 79: pkt->data_size = 2;
486 00021E EE20 F001 lfsr 2,1
487 000222 501F movf midi_note_on@pkt,w,c
488 000224 26D9 addwf fsr2l,f,c
489 000226 5020 movf midi_note_on@pkt+1,w,c
490 000228 22DA addwfc fsr2h,f,c
491 00022A 0E02 movlw 2
492 00022C 6EDE movwf postinc2,c
493 00022E 0E00 movlw 0
494 000230 6EDD movwf postdec2,c
495 000232 0012 return
496 000234 __end_of_midi_note_on:
497 opt stack 0
498 tblptru equ 0xFF8
499 tblptrh equ 0xFF7
500 tblptrl equ 0xFF6
501 tablat equ 0xFF5
502 postinc0 equ 0xFEE
503 wreg equ 0xFE8
504 indf2 equ 0xFDF
505 postinc2 equ 0xFDE
506 postdec2 equ 0xFDD
507 fsr2h equ 0xFDA
508 fsr2l equ 0xFD9
509 status equ 0xFD8
510
511 ;; *************** function _midi_set_status *****************
512 ;; Defined at:
513 ;; line 40 in file "midi.c"
514 ;; Parameters: Size Location Type
515 ;; pkt 2 25[COMRAM] PTR struct .
516 ;; -> main@sample_message(7),
517 ;; status 1 27[COMRAM] enum E40
518 ;; Auto vars: Size Location Type
519 ;; None
520 ;; Return value: Size Location Type
521 ;; 2 25[COMRAM] int
522 ;; Registers used:
523 ;; wreg, fsr2l, fsr2h, status,2, status,0
524 ;; Tracked objects:
525 ;; On entry : 0/0
526 ;; On exit : 0/0
527 ;; Unchanged: 0/0
528 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
529 ;; Params: 3 0 0 0 0 0 0
530 ;; Locals: 0 0 0 0 0 0 0
531 ;; Temps: 1 0 0 0 0 0 0
532 ;; Totals: 4 0 0 0 0 0 0
533 ;;Total ram usage: 4 bytes
534 ;; Hardware stack levels used: 1
535 ;; Hardware stack levels required when called: 1
536 ;; This function calls:
537 ;; Nothing
538 ;; This function is called by:
539 ;; _midi_note_on
540 ;; _midi_note_off
541 ;; This function uses a non-reentrant model
542 ;;
543
544 psect text2
545 0003D8 __ptext2:
546 opt stack 0
547 0003D8 _midi_set_status:
548 opt stack 28
549
550 ;midi.c: 42: if (pkt == (0)) {
551
552 ;incstack = 0
553 0003D8 501A movf midi_set_status@pkt,w,c
554 0003DA 101B iorwf midi_set_status@pkt+1,w,c
555 0003DC B4D8 btfsc status,2,c
556 0003DE 0012 return
557
558 ;midi.c: 44: }
559 ;midi.c: 46: pkt->status = status & 0x0F;
560
561 ;midi.c: 43: return -1;
562 ; Return value of _midi_set_status is never used
563 0003E0 C01C F01D movff midi_set_status@status,??_midi_set_status
564 0003E4 0E0F movlw 15
565 0003E6 161D andwf ??_midi_set_status,f,c
566 0003E8 C01A FFD9 movff midi_set_status@pkt,fsr2l
567 0003EC C01B FFDA movff midi_set_status@pkt+1,fsr2h
568 0003F0 50DF movf indf2,w,c
569 0003F2 181D xorwf ??_midi_set_status,w,c
570 0003F4 0BF0 andlw -16
571 0003F6 181D xorwf ??_midi_set_status,w,c
572 0003F8 6EDF movwf indf2,c
573 0003FA 0012 return
574 0003FC __end_of_midi_set_status:
575 opt stack 0
576 tblptru equ 0xFF8
577 tblptrh equ 0xFF7
578 tblptrl equ 0xFF6
579 tablat equ 0xFF5
580 postinc0 equ 0xFEE
581 wreg equ 0xFE8
582 indf2 equ 0xFDF
583 postinc2 equ 0xFDE
584 postdec2 equ 0xFDD
585 fsr2h equ 0xFDA
586 fsr2l equ 0xFD9
587 status equ 0xFD8
588
589 ;; *************** function _midi_set_channel *****************
590 ;; Defined at:
591 ;; line 51 in file "midi.c"
592 ;; Parameters: Size Location Type
593 ;; pkt 2 25[COMRAM] PTR struct .
594 ;; -> main@sample_message(7),
595 ;; channel 2 27[COMRAM] unsigned int
596 ;; Auto vars: Size Location Type
597 ;; None
598 ;; Return value: Size Location Type
599 ;; 2 25[COMRAM] int
600 ;; Registers used:
601 ;; wreg, fsr2l, fsr2h, status,2, status,0
602 ;; Tracked objects:
603 ;; On entry : 0/0
604 ;; On exit : 0/0
605 ;; Unchanged: 0/0
606 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
607 ;; Params: 4 0 0 0 0 0 0
608 ;; Locals: 0 0 0 0 0 0 0
609 ;; Temps: 1 0 0 0 0 0 0
610 ;; Totals: 5 0 0 0 0 0 0
611 ;;Total ram usage: 5 bytes
612 ;; Hardware stack levels used: 1
613 ;; Hardware stack levels required when called: 1
614 ;; This function calls:
615 ;; Nothing
616 ;; This function is called by:
617 ;; _midi_note_on
618 ;; _midi_note_off
619 ;; This function uses a non-reentrant model
620 ;;
621
622 psect text3
623 0003B2 __ptext3:
624 opt stack 0
625 0003B2 _midi_set_channel:
626 opt stack 28
627
628 ;midi.c: 53: if (pkt == (0)) {
629
630 ;incstack = 0
631 0003B2 501A movf midi_set_channel@pkt,w,c
632 0003B4 101B iorwf midi_set_channel@pkt+1,w,c
633 0003B6 B4D8 btfsc status,2,c
634 0003B8 0012 return
635
636 ;midi.c: 55: }
637 ;midi.c: 57: pkt->channel = channel & 0x0F;
638
639 ;midi.c: 54: return -1;
640 ; Return value of _midi_set_channel is never used
641 0003BA C01C F01E movff midi_set_channel@channel,??_midi_set_channel
642 0003BE 0E0F movlw 15
643 0003C0 161E andwf ??_midi_set_channel,f,c
644 0003C2 C01A FFD9 movff midi_set_channel@pkt,fsr2l
645 0003C6 C01B FFDA movff midi_set_channel@pkt+1,fsr2h
646 0003CA 3A1E swapf ??_midi_set_channel,f,c
647 0003CC 50DF movf indf2,w,c
648 0003CE 181E xorwf ??_midi_set_channel,w,c
649 0003D0 0B0F andlw -241
650 0003D2 181E xorwf ??_midi_set_channel,w,c
651 0003D4 6EDF movwf indf2,c
652 0003D6 0012 return
653 0003D8 __end_of_midi_set_channel:
654 opt stack 0
655 tblptru equ 0xFF8
656 tblptrh equ 0xFF7
657 tblptrl equ 0xFF6
658 tablat equ 0xFF5
659 postinc0 equ 0xFEE
660 wreg equ 0xFE8
661 indf2 equ 0xFDF
662 postinc2 equ 0xFDE
663 postdec2 equ 0xFDD
664 fsr2h equ 0xFDA
665 fsr2l equ 0xFD9
666 status equ 0xFD8
667
668 ;; *************** function _memset *****************
669 ;; Defined at:
670 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
671 ;; Parameters: Size Location Type
672 ;; p1 2 25[COMRAM] PTR void
673 ;; -> keypresses(30),
674 ;; c 2 27[COMRAM] int
675 ;; n 2 29[COMRAM] unsigned int
676 ;; Auto vars: Size Location Type
677 ;; p 2 31[COMRAM] PTR unsigned char
678 ;; -> keypresses(30),
679 ;; Return value: Size Location Type
680 ;; 2 25[COMRAM] PTR void
681 ;; Registers used:
682 ;; wreg, fsr2l, fsr2h, status,2, status,0
683 ;; Tracked objects:
684 ;; On entry : 0/0
685 ;; On exit : 0/0
686 ;; Unchanged: 0/0
687 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
688 ;; Params: 6 0 0 0 0 0 0
689 ;; Locals: 2 0 0 0 0 0 0
690 ;; Temps: 0 0 0 0 0 0 0
691 ;; Totals: 8 0 0 0 0 0 0
692 ;;Total ram usage: 8 bytes
693 ;; Hardware stack levels used: 1
694 ;; Hardware stack levels required when called: 1
695 ;; This function calls:
696 ;; Nothing
697 ;; This function is called by:
698 ;; _main
699 ;; This function uses a non-reentrant model
700 ;;
701
702 psect text4
703 000386 __ptext4:
704 opt stack 0
705 000386 _memset:
706 opt stack 29
707
708 ;incstack = 0
709 000386 C01A F020 movff memset@p1,memset@p
710 00038A C01B F021 movff memset@p1+1,memset@p+1
711 00038E D008 goto l569
712 000390 l1129:
713 000390 C020 FFD9 movff memset@p,fsr2l
714 000394 C021 FFDA movff memset@p+1,fsr2h
715 000398 C01C FFDF movff memset@c,indf2
716 00039C 4A20 infsnz memset@p,f,c
717 00039E 2A21 incf memset@p+1,f,c
718 0003A0 l569:
719 0003A0 061E decf memset@n,f,c
720 0003A2 A0D8 btfss status,0,c
721 0003A4 061F decf memset@n+1,f,c
722 0003A6 281E incf memset@n,w,c
723 0003A8 E1F3 bnz l1129
724 0003AA 281F incf memset@n+1,w,c
725 0003AC B4D8 btfsc status,2,c
726 0003AE 0012 return
727 0003B0 D7EF goto l570
728 0003B2 __end_of_memset:
729 opt stack 0
730 tblptru equ 0xFF8
731 tblptrh equ 0xFF7
732 tblptrl equ 0xFF6
733 tablat equ 0xFF5
734 postinc0 equ 0xFEE
735 wreg equ 0xFE8
736 indf2 equ 0xFDF
737 postinc2 equ 0xFDE
738 postdec2 equ 0xFDD
739 fsr2h equ 0xFDA
740 fsr2l equ 0xFD9
741 status equ 0xFD8
742
743 ;; *************** function _init_hw *****************
744 ;; Defined at:
745 ;; line 140 in file "main.c"
746 ;; Parameters: Size Location Type
747 ;; None
748 ;; Auto vars: Size Location Type
749 ;; None
750 ;; Return value: Size Location Type
751 ;; 1 wreg void
752 ;; Registers used:
753 ;; wreg, status,2, cstack
754 ;; Tracked objects:
755 ;; On entry : 0/0
756 ;; On exit : 0/0
757 ;; Unchanged: 0/0
758 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
759 ;; Params: 0 0 0 0 0 0 0
760 ;; Locals: 0 0 0 0 0 0 0
761 ;; Temps: 0 0 0 0 0 0 0
762 ;; Totals: 0 0 0 0 0 0 0
763 ;;Total ram usage: 0 bytes
764 ;; Hardware stack levels used: 1
765 ;; Hardware stack levels required when called: 2
766 ;; This function calls:
767 ;; _eusart1_init
768 ;; This function is called by:
769 ;; _main
770 ;; This function uses a non-reentrant model
771 ;;
772
773 psect text5
774 0002A8 __ptext5:
775 opt stack 0
776 0002A8 _init_hw:
777 opt stack 28
778
779 ;main.c: 142: (INTCONbits.GIE = 0);
780
781 ;incstack = 0
782 0002A8 9EF2 bcf intcon,7,c ;volatile
783
784 ;main.c: 146: OSCTUNEbits.PLLEN = 1;
785 0002AA 8C9B bsf 3995,6,c ;volatile
786
787 ;main.c: 148: OSCTUNEbits.TUN = 0b011111;
788 0002AC 809B bsf 3995,0,c ;volatile
789 0002AE 829B bsf 3995,1,c ;volatile
790 0002B0 849B bsf 3995,2,c ;volatile
791 0002B2 869B bsf 3995,3,c ;volatile
792 0002B4 889B bsf 3995,4,c ;volatile
793 0002B6 9A9B bcf 3995,5,c ;volatile
794
795 ;main.c: 150: OSCCONbits.IRCF = 0b111;
796 0002B8 88D3 bsf 4051,4,c ;volatile
797 0002BA 8AD3 bsf 4051,5,c ;volatile
798 0002BC 8CD3 bsf 4051,6,c ;volatile
799
800 ;main.c: 152: OSCCONbits.SCS = 0b00;
801 0002BE 0EFC movlw -4
802 0002C0 16D3 andwf 4051,f,c ;volatile
803
804 ;main.c: 156: ANSELA = 0x00;
805 0002C2 0E00 movlw 0
806 0002C4 010F movlb 15 ; () banked
807 0002C6 6F38 movwf 56,b ;volatile
808
809 ;main.c: 157: ANSELB = 0x00;
810 0002C8 0E00 movlw 0
811 0002CA 6F39 movwf 57,b ;volatile
812
813 ;main.c: 158: ANSELC = 0x00;
814 0002CC 0E00 movlw 0
815 0002CE 6F3A movwf 58,b ;volatile
816
817 ;main.c: 159: ANSELD = 0x00;
818 0002D0 0E00 movlw 0
819 0002D2 6F3B movwf 59,b ;volatile
820
821 ; BSR set to: 15
822 ;main.c: 162: TRISA = 0xFF;
823 0002D4 6892 setf 3986,c ;volatile
824
825 ; BSR set to: 15
826 ;main.c: 163: TRISB = 0xFF;
827 0002D6 6893 setf 3987,c ;volatile
828
829 ; BSR set to: 15
830 ;main.c: 165: TRISDbits.TRISD1 = 0;
831 0002D8 9295 bcf 3989,1,c ;volatile
832
833 ; BSR set to: 15
834 ;main.c: 166: TRISDbits.TRISD2 = 0;
835 0002DA 9495 bcf 3989,2,c ;volatile
836
837 ; BSR set to: 15
838 ;main.c: 167: TRISDbits.TRISD3 = 0;
839 0002DC 9695 bcf 3989,3,c ;volatile
840
841 ; BSR set to: 15
842 ;main.c: 168: TRISDbits.TRISD4 = 0;
843 0002DE 9895 bcf 3989,4,c ;volatile
844
845 ; BSR set to: 15
846 ;main.c: 171: PORTDbits.RD1 = 1;
847 0002E0 8283 bsf 3971,1,c ;volatile
848
849 ; BSR set to: 15
850 ;main.c: 173: PORTDbits.RD2 = 0;
851 0002E2 9483 bcf 3971,2,c ;volatile
852
853 ; BSR set to: 15
854 ;main.c: 175: PORTDbits.RD3 = 1;
855 0002E4 8683 bsf 3971,3,c ;volatile
856
857 ; BSR set to: 15
858 ;main.c: 177: PORTDbits.RD4 = 0;
859 0002E6 9883 bcf 3971,4,c ;volatile
860
861 ;main.c: 181: PR2 = 128;
862 0002E8 0E80 movlw 128
863 0002EA 6EBB movwf 4027,c ;volatile
864
865 ;main.c: 183: T2CONbits.T2OUTPS = 0b0011;
866 0002EC 50BA movf 4026,w,c ;volatile
867 0002EE 0B87 andlw -121
868 0002F0 0918 iorlw 24
869 0002F2 6EBA movwf 4026,c ;volatile
870
871 ;main.c: 185: T2CONbits.T2CKPS = 0b11;
872 0002F4 0E03 movlw 3
873 0002F6 12BA iorwf 4026,f,c ;volatile
874
875 ; BSR set to: 15
876 ;main.c: 187: T2CONbits.TMR2ON = 1;
877 0002F8 84BA bsf 4026,2,c ;volatile
878
879 ; BSR set to: 15
880 ;main.c: 190: PIE1bits.TMR2IE = 1;
881 0002FA 829D bsf 3997,1,c ;volatile
882
883 ; BSR set to: 15
884 ;main.c: 191: PIR1bits.TMR2IF = 0;
885 0002FC 929E bcf 3998,1,c ;volatile
886
887 ; BSR set to: 15
888 ;main.c: 194: INTCONbits.PEIE = 1;
889 0002FE 8CF2 bsf intcon,6,c ;volatile
890
891 ; BSR set to: 15
892 ;main.c: 197: eusart1_init();
893 000300 ECFE F001 call _eusart1_init ;wreg free
894
895 ;main.c: 199: (INTCONbits.GIE = 1);
896 000304 8EF2 bsf intcon,7,c ;volatile
897 000306 0012 return ;funcret
898 000308 __end_of_init_hw:
899 opt stack 0
900 tblptru equ 0xFF8
901 tblptrh equ 0xFF7
902 tblptrl equ 0xFF6
903 tablat equ 0xFF5
904 intcon equ 0xFF2
905 postinc0 equ 0xFEE
906 wreg equ 0xFE8
907 indf2 equ 0xFDF
908 postinc2 equ 0xFDE
909 postdec2 equ 0xFDD
910 fsr2h equ 0xFDA
911 fsr2l equ 0xFD9
912 status equ 0xFD8
913
914 ;; *************** function _eusart1_init *****************
915 ;; Defined at:
916 ;; line 4 in file "rs232.c"
917 ;; Parameters: Size Location Type
918 ;; None
919 ;; Auto vars: Size Location Type
920 ;; None
921 ;; Return value: Size Location Type
922 ;; 1 wreg void
923 ;; Registers used:
924 ;; wreg, status,2
925 ;; Tracked objects:
926 ;; On entry : 0/0
927 ;; On exit : 0/0
928 ;; Unchanged: 0/0
929 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
930 ;; Params: 0 0 0 0 0 0 0
931 ;; Locals: 0 0 0 0 0 0 0
932 ;; Temps: 0 0 0 0 0 0 0
933 ;; Totals: 0 0 0 0 0 0 0
934 ;;Total ram usage: 0 bytes
935 ;; Hardware stack levels used: 1
936 ;; Hardware stack levels required when called: 1
937 ;; This function calls:
938 ;; Nothing
939 ;; This function is called by:
940 ;; _init_hw
941 ;; This function uses a non-reentrant model
942 ;;
943
944 psect text6
945 0003FC __ptext6:
946 opt stack 0
947 0003FC _eusart1_init:
948 opt stack 28
949
950 ;rs232.c: 7: TXSTA1bits.SYNC = 0;
951
952 ;incstack = 0
953 0003FC 98AC bcf 4012,4,c ;volatile
954
955 ;rs232.c: 8: TXSTA1bits.TX9 = 0;
956 0003FE 9CAC bcf 4012,6,c ;volatile
957
958 ;rs232.c: 11: RCSTA1bits.SPEN = 1;
959 000400 8EAB bsf 4011,7,c ;volatile
960
961 ;rs232.c: 12: SPBRG1 = 31;
962 000402 0E1F movlw 31
963 000404 6EAF movwf 4015,c ;volatile
964
965 ;rs232.c: 13: SPBRGH1 = 0;
966 000406 0E00 movlw 0
967 000408 6EB0 movwf 4016,c ;volatile
968
969 ;rs232.c: 14: TXSTA1bits.BRGH = 0;
970 00040A 94AC bcf 4012,2,c ;volatile
971
972 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0;
973 00040C 96B8 bcf 4024,3,c ;volatile
974
975 ;rs232.c: 18: TRISCbits.TRISC7 = 1;
976 00040E 8E94 bsf 3988,7,c ;volatile
977
978 ;rs232.c: 19: TRISCbits.TRISC6 = 1;
979 000410 8C94 bsf 3988,6,c ;volatile
980
981 ;rs232.c: 20: RCSTA1bits.CREN = 1;
982 000412 88AB bsf 4011,4,c ;volatile
983
984 ;rs232.c: 21: TXSTA1bits.TXEN = 1;
985 000414 8AAC bsf 4012,5,c ;volatile
986 000416 0012 return ;funcret
987 000418 __end_of_eusart1_init:
988 opt stack 0
989 tblptru equ 0xFF8
990 tblptrh equ 0xFF7
991 tblptrl equ 0xFF6
992 tablat equ 0xFF5
993 intcon equ 0xFF2
994 postinc0 equ 0xFEE
995 wreg equ 0xFE8
996 indf2 equ 0xFDF
997 postinc2 equ 0xFDE
998 postdec2 equ 0xFDD
999 fsr2h equ 0xFDA
1000 fsr2l equ 0xFD9
1001 status equ 0xFD8
1002
1003 ;; *************** function _eusart_write_midi *****************
1004 ;; Defined at:
1005 ;; line 226 in file "main.c"
1006 ;; Parameters: Size Location Type
1007 ;; pkt 2 26[COMRAM] PTR const struct .
1008 ;; -> main@sample_message(7),
1009 ;; Auto vars: Size Location Type
1010 ;; data 2 32[COMRAM] PTR unsigned char
1011 ;; -> sample_message.data(4), main@sample_message(7),
1012 ;; length 2 30[COMRAM] unsigned int
1013 ;; Return value: Size Location Type
1014 ;; 2 26[COMRAM] int
1015 ;; Registers used:
1016 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
1017 ;; Tracked objects:
1018 ;; On entry : 0/0
1019 ;; On exit : 0/0
1020 ;; Unchanged: 0/0
1021 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1022 ;; Params: 2 0 0 0 0 0 0
1023 ;; Locals: 4 0 0 0 0 0 0
1024 ;; Temps: 2 0 0 0 0 0 0
1025 ;; Totals: 8 0 0 0 0 0 0
1026 ;;Total ram usage: 8 bytes
1027 ;; Hardware stack levels used: 1
1028 ;; Hardware stack levels required when called: 2
1029 ;; This function calls:
1030 ;; _putch
1031 ;; This function is called by:
1032 ;; _main
1033 ;; This function uses a non-reentrant model
1034 ;;
1035
1036 psect text7
1037 000234 __ptext7:
1038 opt stack 0
1039 000234 _eusart_write_midi:
1040 opt stack 28
1041
1042 ;main.c: 228: size_t length;
1043 ;main.c: 229: uint8_t *data;
1044 ;main.c: 231: if (pkt == (0)) {
1045
1046 ;incstack = 0
1047 000234 501B movf eusart_write_midi@pkt,w,c
1048 000236 101C iorwf eusart_write_midi@pkt+1,w,c
1049 000238 B4D8 btfsc status,2,c
1050 00023A 0012 return
1051
1052 ;main.c: 233: }
1053 ;main.c: 235: length = pkt->data_size;
1054
1055 ;main.c: 232: return -1;
1056 ; Return value of _eusart_write_midi is never used
1057 00023C EE20 F001 lfsr 2,1
1058 000240 501B movf eusart_write_midi@pkt,w,c
1059 000242 26D9 addwf fsr2l,f,c
1060 000244 501C movf eusart_write_midi@pkt+1,w,c
1061 000246 22DA addwfc fsr2h,f,c
1062 000248 CFDE F01F movff postinc2,eusart_write_midi@length
1063 00024C CFDD F020 movff postdec2,eusart_write_midi@length+1
1064
1065 ;main.c: 236: data = (uint8_t *) pkt->data;
1066 000250 0E03 movlw 3
1067 000252 241B addwf eusart_write_midi@pkt,w,c
1068 000254 6E21 movwf eusart_write_midi@data,c
1069 000256 0E00 movlw 0
1070 000258 201C addwfc eusart_write_midi@pkt+1,w,c
1071 00025A 6E22 movwf eusart_write_midi@data+1,c
1072
1073 ;main.c: 238: putch((char)((pkt->status << 4) | pkt->channel));
1074 00025C C01B FFD9 movff eusart_write_midi@pkt,fsr2l
1075 000260 C01C FFDA movff eusart_write_midi@pkt+1,fsr2h
1076 000264 38DF swapf indf2,w,c
1077 000266 0B0F andlw 15
1078 000268 6E1D movwf ??_eusart_write_midi& (0+255),c
1079 00026A C01B FFD9 movff eusart_write_midi@pkt,fsr2l
1080 00026E C01C FFDA movff eusart_write_midi@pkt+1,fsr2h
1081 000272 50DF movf indf2,w,c
1082 000274 0B0F andlw 15
1083 000276 6E1E movwf (??_eusart_write_midi+1)& (0+255),c
1084 000278 381E swapf ??_eusart_write_midi+1,w,c
1085 00027A 0BF0 andlw 240
1086 00027C 101D iorwf ??_eusart_write_midi,w,c
1087 00027E EC0C F002 call _putch
1088
1089 ;main.c: 240: while (length--) {
1090 000282 D009 goto l78
1091 000284 l1163:
1092
1093 ;main.c: 241: putch((char) *(data++));
1094 000284 C021 FFD9 movff eusart_write_midi@data,fsr2l
1095 000288 C022 FFDA movff eusart_write_midi@data+1,fsr2h
1096 00028C 50DF movf indf2,w,c
1097 00028E EC0C F002 call _putch
1098 000292 4A21 infsnz eusart_write_midi@data,f,c
1099 000294 2A22 incf eusart_write_midi@data+1,f,c
1100 000296 l78:
1101 000296 061F decf eusart_write_midi@length,f,c
1102 000298 A0D8 btfss status,0,c
1103 00029A 0620 decf eusart_write_midi@length+1,f,c
1104 00029C 281F incf eusart_write_midi@length,w,c
1105 00029E E1F2 bnz l1163
1106 0002A0 2820 incf eusart_write_midi@length+1,w,c
1107 0002A2 B4D8 btfsc status,2,c
1108 0002A4 0012 return
1109 0002A6 D7EE goto l79
1110 0002A8 __end_of_eusart_write_midi:
1111 opt stack 0
1112 tblptru equ 0xFF8
1113 tblptrh equ 0xFF7
1114 tblptrl equ 0xFF6
1115 tablat equ 0xFF5
1116 intcon equ 0xFF2
1117 postinc0 equ 0xFEE
1118 wreg equ 0xFE8
1119 indf2 equ 0xFDF
1120 postinc2 equ 0xFDE
1121 postdec2 equ 0xFDD
1122 fsr2h equ 0xFDA
1123 fsr2l equ 0xFD9
1124 status equ 0xFD8
1125
1126 ;; *************** function _putch *****************
1127 ;; Defined at:
1128 ;; line 29 in file "rs232.c"
1129 ;; Parameters: Size Location Type
1130 ;; c 1 wreg unsigned char
1131 ;; Auto vars: Size Location Type
1132 ;; c 1 25[COMRAM] unsigned char
1133 ;; Return value: Size Location Type
1134 ;; 1 wreg void
1135 ;; Registers used:
1136 ;; wreg
1137 ;; Tracked objects:
1138 ;; On entry : 0/0
1139 ;; On exit : 0/0
1140 ;; Unchanged: 0/0
1141 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1142 ;; Params: 0 0 0 0 0 0 0
1143 ;; Locals: 1 0 0 0 0 0 0
1144 ;; Temps: 0 0 0 0 0 0 0
1145 ;; Totals: 1 0 0 0 0 0 0
1146 ;;Total ram usage: 1 bytes
1147 ;; Hardware stack levels used: 1
1148 ;; Hardware stack levels required when called: 1
1149 ;; This function calls:
1150 ;; Nothing
1151 ;; This function is called by:
1152 ;; _eusart_write_midi
1153 ;; _getche
1154 ;; This function uses a non-reentrant model
1155 ;;
1156
1157 psect text8
1158 000418 __ptext8:
1159 opt stack 0
1160 000418 _putch:
1161 opt stack 28
1162
1163 ;incstack = 0
1164 ;putch@c stored from wreg
1165 000418 6E1A movwf putch@c,c
1166 00041A
1167 ;rs232.c: 31: while (!TX1IF);
1168 00041A A89E btfss 3998,4,c ;volatile
1169 00041C D7FE goto l1071
1170
1171 ;rs232.c: 32: TX1REG = c;
1172 00041E C01A FFAD movff putch@c,4013 ;volatile
1173 000422 0012 return ;funcret
1174 000424 __end_of_putch:
1175 opt stack 0
1176 tblptru equ 0xFF8
1177 tblptrh equ 0xFF7
1178 tblptrl equ 0xFF6
1179 tablat equ 0xFF5
1180 intcon equ 0xFF2
1181 postinc0 equ 0xFEE
1182 wreg equ 0xFE8
1183 indf2 equ 0xFDF
1184 postinc2 equ 0xFDE
1185 postdec2 equ 0xFDD
1186 fsr2h equ 0xFDA
1187 fsr2l equ 0xFD9
1188 status equ 0xFD8
1189
1190 ;; *************** function _isr *****************
1191 ;; Defined at:
1192 ;; line 101 in file "main.c"
1193 ;; Parameters: Size Location Type
1194 ;; None
1195 ;; Auto vars: Size Location Type
1196 ;; i 1 24[COMRAM] unsigned char
1197 ;; data 1 23[COMRAM] unsigned char
1198 ;; Return value: Size Location Type
1199 ;; 1 wreg void
1200 ;; Registers used:
1201 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
1202 ;; Tracked objects:
1203 ;; On entry : 0/0
1204 ;; On exit : 0/0
1205 ;; Unchanged: 0/0
1206 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
1207 ;; Params: 0 0 0 0 0 0 0
1208 ;; Locals: 3 0 0 0 0 0 0
1209 ;; Temps: 22 0 0 0 0 0 0
1210 ;; Totals: 25 0 0 0 0 0 0
1211 ;;Total ram usage: 25 bytes
1212 ;; Hardware stack levels used: 1
1213 ;; This function calls:
1214 ;; Nothing
1215 ;; This function is called by:
1216 ;; Interrupt level 2
1217 ;; This function uses a non-reentrant model
1218 ;;
1219
1220 psect intcode
1221 000008 __pintcode:
1222 opt stack 0
1223 000008 _isr:
1224 opt stack 28
1225
1226 ;incstack = 0
1227 000008 8245 bsf btemp,1,c ;set compiler interrupt flag (level 2)
1228 00000A CFFA F005 movff pclath,??_isr+4
1229 00000E CFFB F006 movff pclatu,??_isr+5
1230 000012 CFE9 F007 movff fsr0l,??_isr+6
1231 000016 CFEA F008 movff fsr0h,??_isr+7
1232 00001A CFE1 F009 movff fsr1l,??_isr+8
1233 00001E CFE2 F00A movff fsr1h,??_isr+9
1234 000022 CFD9 F00B movff fsr2l,??_isr+10
1235 000026 CFDA F00C movff fsr2h,??_isr+11
1236 00002A CFF3 F00D movff prodl,??_isr+12
1237 00002E CFF4 F00E movff prodh,??_isr+13
1238 000032 CFF6 F00F movff tblptrl,??_isr+14
1239 000036 CFF7 F010 movff tblptrh,??_isr+15
1240 00003A CFF8 F011 movff tblptru,??_isr+16
1241 00003E CFF5 F012 movff tablat,??_isr+17
1242 000042 C045 F013 movff btemp,??_isr+18
1243 000046 C046 F014 movff btemp+1,??_isr+19
1244 00004A C047 F015 movff btemp+2,??_isr+20
1245 00004E C048 F016 movff btemp+3,??_isr+21
1246
1247 ;main.c: 103: unsigned char i, data;
1248 ;main.c: 105: PORTDbits.RD3 = 0;
1249 000052 9683 bcf 3971,3,c ;volatile
1250
1251 ;main.c: 107: if (PIR1bits.TMR2IF) {
1252 000054 A29E btfss 3998,1,c ;volatile
1253 000056 D089 goto i2l55
1254
1255 ;main.c: 109: data = PORTA;
1256 000058 CF80 F018 movff 3968,isr@data ;volatile
1257
1258 ;main.c: 110: i = 7;
1259 00005C 0E07 movlw 7
1260 00005E 6E19 movwf isr@i,c
1261 000060
1262 ;main.c: 112: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01);
1263 000060 5019 movf isr@i,w,c
1264 000062 0D02 mullw 2
1265 000064 0E25 movlw low _keypresses
1266 000066 24F3 addwf prodl,w,c
1267 000068 6ED9 movwf fsr2l,c
1268 00006A 0E00 movlw high _keypresses
1269 00006C 20F4 addwfc prodh,w,c
1270 00006E 6EDA movwf fsr2h,c
1271 000070 CFDE F001 movff postinc2,??_isr
1272 000074 CFDD F002 movff postdec2,??_isr+1
1273 000078 90D8 bcf status,0,c
1274 00007A 3601 rlcf ??_isr,f,c
1275 00007C 3602 rlcf ??_isr+1,f,c
1276 00007E C019 F003 movff isr@i,??_isr+2
1277 000082 C018 F004 movff isr@data,??_isr+3
1278 000086 2A03 incf ??_isr+2,f,c
1279 000088 D002 goto i2u29_44
1280 00008A i2u29_45:
1281 00008A 90D8 bcf status,0,c
1282 00008C 3204 rrcf ??_isr+3,f,c
1283 00008E i2u29_44:
1284 00008E 2E03 decfsz ??_isr+2,f,c
1285 000090 D7FC goto i2u29_45
1286 000092 0E01 movlw 1
1287 000094 1604 andwf ??_isr+3,f,c
1288 000096 5004 movf ??_isr+3,w,c
1289 000098 1201 iorwf ??_isr,f,c
1290 00009A 0E00 movlw 0
1291 00009C 1202 iorwf ??_isr+1,f,c
1292 00009E 5019 movf isr@i,w,c
1293 0000A0 0D02 mullw 2
1294 0000A2 0E25 movlw low _keypresses
1295 0000A4 24F3 addwf prodl,w,c
1296 0000A6 6ED9 movwf fsr2l,c
1297 0000A8 0E00 movlw high _keypresses
1298 0000AA 20F4 addwfc prodh,w,c
1299 0000AC 6EDA movwf fsr2h,c
1300 0000AE C001 FFDE movff ??_isr,postinc2
1301 0000B2 C002 FFDD movff ??_isr+1,postdec2
1302
1303 ;main.c: 113: } while (i--);
1304 0000B6 0619 decf isr@i,f,c
1305 0000B8 2819 incf isr@i,w,c
1306 0000BA A4D8 btfss status,2,c
1307 0000BC D7D1 goto i2l56
1308
1309 ;main.c: 115: data = PORTB;
1310 0000BE CF81 F018 movff 3969,isr@data ;volatile
1311
1312 ;main.c: 116: i = 7;
1313 0000C2 0E07 movlw 7
1314 0000C4 6E19 movwf isr@i,c
1315 0000C6
1316 ;main.c: 118: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01);
1317 0000C6 5019 movf isr@i,w,c
1318 0000C8 0D02 mullw 2
1319 0000CA 0E25 movlw low _keypresses
1320 0000CC 24F3 addwf prodl,w,c
1321 0000CE 6ED9 movwf fsr2l,c
1322 0000D0 0E00 movlw high _keypresses
1323 0000D2 20F4 addwfc prodh,w,c
1324 0000D4 6EDA movwf fsr2h,c
1325 0000D6 CFDE F001 movff postinc2,??_isr
1326 0000DA CFDD F002 movff postdec2,??_isr+1
1327 0000DE 90D8 bcf status,0,c
1328 0000E0 3601 rlcf ??_isr,f,c
1329 0000E2 3602 rlcf ??_isr+1,f,c
1330 0000E4 C019 F003 movff isr@i,??_isr+2
1331 0000E8 C018 F004 movff isr@data,??_isr+3
1332 0000EC 2A03 incf ??_isr+2,f,c
1333 0000EE D002 goto i2u31_44
1334 0000F0 i2u31_45:
1335 0000F0 90D8 bcf status,0,c
1336 0000F2 3204 rrcf ??_isr+3,f,c
1337 0000F4 i2u31_44:
1338 0000F4 2E03 decfsz ??_isr+2,f,c
1339 0000F6 D7FC goto i2u31_45
1340 0000F8 0E01 movlw 1
1341 0000FA 1604 andwf ??_isr+3,f,c
1342 0000FC 5004 movf ??_isr+3,w,c
1343 0000FE 1201 iorwf ??_isr,f,c
1344 000100 0E00 movlw 0
1345 000102 1202 iorwf ??_isr+1,f,c
1346 000104 5019 movf isr@i,w,c
1347 000106 0D02 mullw 2
1348 000108 0E25 movlw low _keypresses
1349 00010A 24F3 addwf prodl,w,c
1350 00010C 6ED9 movwf fsr2l,c
1351 00010E 0E00 movlw high _keypresses
1352 000110 20F4 addwfc prodh,w,c
1353 000112 6EDA movwf fsr2h,c
1354 000114 C001 FFDE movff ??_isr,postinc2
1355 000118 C002 FFDD movff ??_isr+1,postdec2
1356
1357 ;main.c: 119: } while (i-- - 8);
1358 00011C 0EF8 movlw 248
1359 00011E 6E01 movwf ??_isr& (0+255),c
1360 000120 0EFF movlw 255
1361 000122 6E02 movwf (??_isr+1)& (0+255),c
1362 000124 0619 decf isr@i,f,c
1363 000126 2819 incf isr@i,w,c
1364 000128 6E03 movwf (??_isr+2)& (0+255),c
1365 00012A 6A04 clrf (??_isr+3)& (0+255),c
1366 00012C 5001 movf ??_isr,w,c
1367 00012E 2603 addwf ??_isr+2,f,c
1368 000130 5002 movf ??_isr+1,w,c
1369 000132 2204 addwfc ??_isr+3,f,c
1370 000134 5003 movf ??_isr+2,w,c
1371 000136 1004 iorwf ??_isr+3,w,c
1372 000138 A4D8 btfss status,2,c
1373 00013A D7C5 goto i2l58
1374
1375 ;main.c: 129: PORTDbits.RD4 = PORTAbits.RA0;
1376 00013C A080 btfss 3968,0,c ;volatile
1377 00013E D002 bra i2u33_45
1378 000140 8883 bsf 3971,4,c ;volatile
1379 000142 D001 bra i2u33_47
1380 000144 i2u33_45:
1381 000144 9883 bcf 3971,4,c ;volatile
1382 000146 i2u33_47:
1383
1384 ;main.c: 130: PORTDbits.RD2 = (keypresses[0] && !(keypresses[0] & 0xFF00));
1385 000146 0E00 movlw 0
1386 000148 6E17 movwf _isr$592,c
1387 00014A 5025 movf _keypresses,w,c ;volatile
1388 00014C 1026 iorwf _keypresses+1,w,c ;volatile
1389 00014E B4D8 btfsc status,2,c
1390 000150 D006 goto i2l61
1391 000152 0EFF movlw 255
1392 000154 1426 andwf _keypresses+1,w,c ;volatile
1393 000156 A4D8 btfss status,2,c
1394 000158 D002 goto i2l61
1395 00015A 0E01 movlw 1
1396 00015C 6E17 movwf _isr$592,c
1397 00015E i2l61:
1398 00015E B017 btfsc _isr$592,0,c
1399 000160 D002 bra i2u36_45
1400 000162 9483 bcf 3971,2,c ;volatile
1401 000164 D001 bra i2u36_46
1402 000166 i2u36_45:
1403 000166 8483 bsf 3971,2,c ;volatile
1404 000168 i2u36_46:
1405
1406 ;main.c: 133: PIR1bits.TMR2IF = 0;
1407 000168 929E bcf 3998,1,c ;volatile
1408 00016A i2l55:
1409
1410 ;main.c: 134: }
1411 ;main.c: 136: PORTDbits.RD3 = 1;
1412 00016A 8683 bsf 3971,3,c ;volatile
1413 00016C C016 F048 movff ??_isr+21,btemp+3
1414 000170 C015 F047 movff ??_isr+20,btemp+2
1415 000174 C014 F046 movff ??_isr+19,btemp+1
1416 000178 C013 F045 movff ??_isr+18,btemp
1417 00017C C012 FFF5 movff ??_isr+17,tablat
1418 000180 C011 FFF8 movff ??_isr+16,tblptru
1419 000184 C010 FFF7 movff ??_isr+15,tblptrh
1420 000188 C00F FFF6 movff ??_isr+14,tblptrl
1421 00018C C00E FFF4 movff ??_isr+13,prodh
1422 000190 C00D FFF3 movff ??_isr+12,prodl
1423 000194 C00C FFDA movff ??_isr+11,fsr2h
1424 000198 C00B FFD9 movff ??_isr+10,fsr2l
1425 00019C C00A FFE2 movff ??_isr+9,fsr1h
1426 0001A0 C009 FFE1 movff ??_isr+8,fsr1l
1427 0001A4 C008 FFEA movff ??_isr+7,fsr0h
1428 0001A8 C007 FFE9 movff ??_isr+6,fsr0l
1429 0001AC C006 FFFB movff ??_isr+5,pclatu
1430 0001B0 C005 FFFA movff ??_isr+4,pclath
1431 0001B4 9245 bcf btemp,1,c ;clear compiler interrupt flag (level 2)
1432 0001B6 0011 retfie f
1433 0001B8 __end_of_isr:
1434 opt stack 0
1435 0000 pclatu equ 0xFFB
1436 pclath equ 0xFFA
1437 tblptru equ 0xFF8
1438 tblptrh equ 0xFF7
1439 tblptrl equ 0xFF6
1440 tablat equ 0xFF5
1441 prodh equ 0xFF4
1442 prodl equ 0xFF3
1443 intcon equ 0xFF2
1444 postinc0 equ 0xFEE
1445 fsr0h equ 0xFEA
1446 fsr0l equ 0xFE9
1447 wreg equ 0xFE8
1448 fsr1h equ 0xFE2
1449 fsr1l equ 0xFE1
1450 indf2 equ 0xFDF
1451 postinc2 equ 0xFDE
1452 postdec2 equ 0xFDD
1453 fsr2h equ 0xFDA
1454 fsr2l equ 0xFD9
1455 status equ 0xFD8
1456 pclatu equ 0xFFB
1457 pclath equ 0xFFA
1458 tblptru equ 0xFF8
1459 tblptrh equ 0xFF7
1460 tblptrl equ 0xFF6
1461 tablat equ 0xFF5
1462 prodh equ 0xFF4
1463 prodl equ 0xFF3
1464 intcon equ 0xFF2
1465 postinc0 equ 0xFEE
1466 fsr0h equ 0xFEA
1467 fsr0l equ 0xFE9
1468 wreg equ 0xFE8
1469 fsr1h equ 0xFE2
1470 fsr1l equ 0xFE1
1471 indf2 equ 0xFDF
1472 postinc2 equ 0xFDE
1473 postdec2 equ 0xFDD
1474 fsr2h equ 0xFDA
1475 fsr2l equ 0xFD9
1476 status equ 0xFD8
1477
1478 psect rparam
1479 0000 pclatu equ 0xFFB
1480 pclath equ 0xFFA
1481 tblptru equ 0xFF8
1482 tblptrh equ 0xFF7
1483 tblptrl equ 0xFF6
1484 tablat equ 0xFF5
1485 prodh equ 0xFF4
1486 prodl equ 0xFF3
1487 intcon equ 0xFF2
1488 postinc0 equ 0xFEE
1489 fsr0h equ 0xFEA
1490 fsr0l equ 0xFE9
1491 wreg equ 0xFE8
1492 fsr1h equ 0xFE2
1493 fsr1l equ 0xFE1
1494 indf2 equ 0xFDF
1495 postinc2 equ 0xFDE
1496 postdec2 equ 0xFDD
1497 fsr2h equ 0xFDA
1498 fsr2l equ 0xFD9
1499 status equ 0xFD8
1500
1501 psect temp
1502 000045 btemp:
1503 opt stack 0
1504 000045 ds 1
1505 0000 int$flags set btemp
1506 0000 wtemp6 set btemp+1
1507 pclatu equ 0xFFB
1508 pclath equ 0xFFA
1509 tblptru equ 0xFF8
1510 tblptrh equ 0xFF7
1511 tblptrl equ 0xFF6
1512 tablat equ 0xFF5
1513 prodh equ 0xFF4
1514 prodl equ 0xFF3
1515 intcon equ 0xFF2
1516 postinc0 equ 0xFEE
1517 fsr0h equ 0xFEA
1518 fsr0l equ 0xFE9
1519 wreg equ 0xFE8
1520 fsr1h equ 0xFE2
1521 fsr1l equ 0xFE1
1522 indf2 equ 0xFDF
1523 postinc2 equ 0xFDE
1524 postdec2 equ 0xFDD
1525 fsr2h equ 0xFDA
1526 fsr2l equ 0xFD9
1527 status equ 0xFD8
Data Sizes:
Strings 0
Constant 0
Data 2
BSS 30
Persistent 0
Stack 0
Auto Spaces:
Space Size Autos Used
COMRAM 94 36 68
BANK0 160 9 9
BANK1 256 0 0
BANK2 256 0 0
BANK3 256 0 0
BANK4 256 0 0
BANK5 256 0 0
Pointer List with Targets:
memset@p1 PTR void size(2) Largest target is 30
-> keypresses(COMRAM[30]),
memset@p PTR unsigned char size(2) Largest target is 30
-> keypresses(COMRAM[30]),
midi_note_on@pkt PTR struct . size(2) Largest target is 7
-> main@sample_message(BANK0[7]),
midi_set_channel@pkt PTR struct . size(2) Largest target is 7
-> main@sample_message(BANK0[7]),
midi_set_status@pkt PTR struct . size(2) Largest target is 7
-> main@sample_message(BANK0[7]),
eusart_write_midi@data PTR unsigned char size(2) Largest target is 7
-> sample_message.data(COMRAM[4]), main@sample_message(BANK0[7]),
eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7
-> main@sample_message(BANK0[7]),
sp__memset PTR void size(2) Largest target is 30
-> keypresses(COMRAM[30]),
Critical Paths under _main in COMRAM
_main->_midi_note_on
_midi_note_on->_midi_set_channel
_eusart_write_midi->_putch
Critical Paths under _isr in COMRAM
None.
Critical Paths under _main in BANK0
_main->_midi_note_on
Critical Paths under _isr in BANK0
None.
Critical Paths under _main in BANK1
None.
Critical Paths under _isr in BANK1
None.
Critical Paths under _main in BANK2
None.
Critical Paths under _isr in BANK2
None.
Critical Paths under _main in BANK3
None.
Critical Paths under _isr in BANK3
None.
Critical Paths under _main in BANK4
None.
Critical Paths under _isr in BANK4
None.
Critical Paths under _main in BANK5
None.
Critical Paths under _isr in BANK5
None.
Call Graph Tables:
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(0) _main 9 9 0 2419
2 BANK0 7 7 0
_eusart_write_midi
_init_hw
_memset
_midi_note_on
---------------------------------------------------------------------------------
(1) _midi_note_on 8 2 6 1576
30 COMRAM 6 0 6
0 BANK0 2 2 0
_midi_set_channel
_midi_set_status
---------------------------------------------------------------------------------
(2) _midi_set_status 4 1 3 453
25 COMRAM 4 1 3
---------------------------------------------------------------------------------
(2) _midi_set_channel 5 1 4 453
25 COMRAM 5 1 4
---------------------------------------------------------------------------------
(1) _memset 8 2 6 407
25 COMRAM 8 2 6
---------------------------------------------------------------------------------
(1) _init_hw 0 0 0 0
_eusart1_init
---------------------------------------------------------------------------------
(2) _eusart1_init 0 0 0 0
---------------------------------------------------------------------------------
(1) _eusart_write_midi 8 6 2 338
26 COMRAM 8 6 2
_putch
---------------------------------------------------------------------------------
(2) _putch 1 1 0 22
25 COMRAM 1 1 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 2
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(3) _isr 25 25 0 248
0 COMRAM 25 25 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 3
---------------------------------------------------------------------------------
Call Graph Graphs:
_main (ROOT)
_eusart_write_midi
_putch
_init_hw
_eusart1_init
_memset
_midi_note_on
_midi_set_channel
_midi_set_status
_isr (ROOT)
Address spaces:
Name Size Autos Total Cost Usage
BIGRAM 5FF 0 0 16 0.0%
EEDATA 100 0 0 0 0.0%
BITBANK5 100 0 0 14 0.0%
BANK5 100 0 0 15 0.0%
BITBANK4 100 0 0 12 0.0%
BANK4 100 0 0 13 0.0%
BITBANK3 100 0 0 10 0.0%
BANK3 100 0 0 11 0.0%
BITBANK2 100 0 0 7 0.0%
BANK2 100 0 0 8 0.0%
BITBANK1 100 0 0 5 0.0%
BANK1 100 0 0 6 0.0%
BITBANK0 A0 0 0 3 0.0%
BANK0 A0 9 9 4 5.6%
BITCOMRAM 5E 0 0 0 0.0%
COMRAM 5E 24 44 1 72.3%
BITSFR_1 0 0 0 200 0.0%
SFR_1 0 0 0 200 0.0%
BITSFR 0 0 0 200 0.0%
SFR 0 0 0 200 0.0%
STACK 0 0 0 2 0.0%
NULL 0 0 0 0 0.0%
ABS 0 0 4D 9 0.0%
DATA 0 0 4D 17 0.0%
CODE 0 0 0 0 0.0%
Microchip Technology PIC18 Macro Assembler V1.44 build -154322312
Symbol Table Fri Feb 23 16:30:02 2018
l70 0346 l78 0296 l79 0284
__CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000 __CFG_CP2$OFF 000000
__CFG_CP3$OFF 000000 __CFG_LVP$ON 000000 l570 0390
l569 03A0 __CFG_CPB$OFF 000000 _PR2 000FBB
__CFG_CPD$OFF 000000 _isr 0008 prod 000FF3
wreg 000FE8 _TXSTA1bits 000FAC l1071 041A
l1129 0390 l1163 0284 ?_isr 0001
i2l61 015E i2l55 016A i2l56 0060
i2l58 00C6 _main 0308 midi_note_on@channel 0021
fsr0h 000FEA fsr1h 000FE2 fsr2h 000FDA
fsr0l 000FE9 indf2 000FDF fsr1l 000FE1
fsr2l 000FD9 btemp 0045 __CFG_BORV$190 000000
isr@i 0019 prodh 000FF4 prodl 000FF3
start 01B8 __CFG_IESO$OFF 000000 midi_note_on@pkt 001F
___param_bank 000000 ??_isr 0001 _BAUDCON1bits 000FB8
?_main 0001 _RC1IF 007CF5 __CFG_WDTEN$ON 000000
_TX1IF 007CF4 _PORTA 000F80 _PORTB 000F81
_TRISA 000F92 _TRISB 000F93 __CFG_WRT0$OFF 000000
__CFG_WRT1$OFF 000000 __CFG_WRT2$OFF 000000 __CFG_WRT3$OFF 000000
__CFG_EBTR0$OFF 000000 __CFG_FCMEN$OFF 000000 __CFG_EBTR1$OFF 000000
__CFG_EBTR2$OFF 000000 __CFG_EBTR3$OFF 000000 __CFG_WRTB$OFF 000000
__CFG_WRTC$OFF 000000 __CFG_WRTD$OFF 000000 __CFG_EBTRB$OFF 000000
__end_of_init_hw 0308 __CFG_MCLRE$EXTMCLR 000000 _putch 0418
pclath 000FFA tablat 000FF5 _eusart_write_midi 0234
__end_of_midi_set_status 03FC status 000FD8 wtemp6 0046
__CFG_HFOFST$ON 000000 ?_eusart_write_midi 001B __CFG_PBADEN$ON 000000
eusart_write_midi@length 001F __initialization 0354 midi_note_on@note 0023
__end_of_main 0354 ??_eusart_write_midi 001D midi_note_on@velocity 0024
??_main 0025 ?_midi_note_on 001F __activetblptr 000002
__CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 02A8 _ANSELA 000F38
?_putch 0001 _ANSELB 000F39 _ANSELC 000F3A
_ANSELD 000F3B _RC1REG 000FAE _SPBRG1 000FAF
_TX1REG 000FAD ?_eusart1_init 0001 __CFG_XINST$OFF 000000
__CFG_STVREN$ON 000000 __end_of_midi_set_channel 03D8 _memset 0386
clear_0 0372 midi_set_status@status 001C ??_midi_note_on 0060
??_init_hw 001A __pdataCOMRAM 0043 tblptrh 000FF7
tblptrl 000FF6 tblptru 000FF8 putch@c 001A
__accesstop 0060 __end_of__initialization 0378 ?_midi_set_status 001A
??_eusart1_init 001A ___rparam_used 000001 __pcstackCOMRAM 0001
__end_of_putch 0424 __size_of_eusart_write_midi 0074 ??_putch 001A
__CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 001A
i2u31_44 00F4 i2u31_45 00F0 i2u33_45 0144
i2u33_47 0146 i2u36_45 0166 i2u36_46 0168
i2u29_44 008E i2u29_45 008A _SPBRGH1 000FB0
__end_of_midi_note_on 0234 eusart_write_midi@pkt 001B __CFG_PWRTEN$OFF 000000
__Hparam 0000 __Lparam 0000 __pcinit 0354
_isr$592 0017 __size_of_memset 002C __ramtop 0600
__ptext0 0308 __ptext1 01BC __ptext2 03D8
__ptext3 03B2 __ptext4 0386 __ptext5 02A8
__ptext6 03FC __ptext7 0234 __ptext8 0418
__end_of_eusart1_init 0418 _T2CONbits 000FBA _init_hw 02A8
__size_of_isr 01B0 _keypresses 0025 end_of_initialization 0378
isr@data 0018 memset@c 001C memset@n 001E
memset@p 0020 __Lmediumconst 0000 postdec2 000FDD
postinc0 000FEE postinc2 000FDE ?_midi_set_channel 001A
_PORTAbits 000F80 _PORTDbits 000F83 ??_midi_set_channel 001E
__CFG_FOSC$INTIO7 000000 _TRISCbits 000F94 _TRISDbits 000F95
midi_set_channel@channel 001C __pidataCOMRAM 0424 __end_of_memset 03B2
start_initialization 0354 __end_of_isr 01B8 __size_of_midi_note_on 0078
__size_of_midi_set_status 0024 __size_of_eusart1_init 001C ??_memset 0020
_midi_note_on 01BC __pbssCOMRAM 0025 __pcstackBANK0 0060
midi_set_status@pkt 001A _eusart1_init 03FC __pintcode 0008
__CFG_PRICLKEN$ON 000000 main@sample_message 0062 ?_init_hw 0001
__size_of_putch 000C _PIE1bits 000F9D _PIR1bits 000F9E
__CFG_WDTPS$32768 000000 ??_midi_set_status 001D __size_of_midi_set_channel 0026
eusart_write_midi@data 0021 __Hrparam 0000 __Lrparam 0000
__CFG_BOREN$SBORDIS 000000 __CFG_P2BMX$PORTD2 000000 __size_of_init_hw 0060
_midi_base_scale 0043 __size_of_main 004C int$flags 0045
_OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 001A
midi_set_channel@pkt 001A intlevel2 0000 _RCSTA1bits 000FAB
_OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000 _midi_set_channel 03B2
_midi_set_status 03D8
|