1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
|
Microchip MPLAB XC8 Assembler V2.05 build -831301201
Tue Aug 13 21:28:15 2019
Microchip MPLAB XC8 C Compiler v2.05 (Free license) build 20181220022703 Og1
1 processor 16F877A
2 opt pw 120
3 opt flic
4 psect idataBANK0,global,class=CODE,delta=2
5 psect idataBANK1,global,class=CODE,delta=2
6 psect idataBANK3,global,class=CODE,delta=2
7 psect strings,global,class=STRING,delta=2
8 psect cinit,global,class=CODE,merge=1,delta=2
9 psect bssCOMMON,global,class=COMMON,space=1,delta=1
10 psect bssBANK0,global,class=BANK0,space=1,delta=1
11 psect dataBANK0,global,class=BANK0,space=1,delta=1
12 psect bssBANK1,global,class=BANK1,space=1,delta=1
13 psect dataBANK1,global,class=BANK1,space=1,delta=1
14 psect dataBANK3,global,class=BANK3,space=1,delta=1
15 psect inittext,global,class=CODE,delta=2
16 psect clrtext,global,class=CODE,delta=2
17 psect cstackBANK1,global,class=BANK1,space=1,delta=1
18 psect cstackCOMMON,global,class=COMMON,space=1,delta=1
19 psect cstackBANK0,global,class=BANK0,space=1,delta=1
20 psect maintext,global,class=CODE,split=1,delta=2
21 psect text1,local,class=CODE,merge=1,delta=2
22 psect text2,local,class=CODE,merge=1,delta=2
23 psect text3,local,class=CODE,merge=1,delta=2
24 psect text4,local,class=CODE,merge=1,delta=2
25 psect text5,local,class=CODE,merge=1,delta=2
26 psect text6,local,class=CODE,merge=1,delta=2
27 psect text7,local,class=CODE,merge=1,delta=2
28 psect text8,local,class=CODE,merge=1,delta=2
29 psect text9,local,class=CODE,merge=1,delta=2
30 psect text10,local,class=CODE,merge=1,delta=2,group=1
31 psect text11,local,class=CODE,merge=1,delta=2,group=1
32 psect text12,local,class=CODE,merge=1,delta=2
33 psect text13,local,class=CODE,merge=1,delta=2
34 psect text14,local,class=CODE,merge=1,delta=2
35 psect text15,local,class=CODE,merge=1,delta=2
36 psect text16,local,class=CODE,merge=1,delta=2,group=1
37 psect text17,local,class=CODE,merge=1,delta=2,group=1
38 psect text18,local,class=CODE,merge=1,delta=2
39 psect text19,local,class=CODE,merge=1,delta=2
40 psect text20,local,class=CODE,merge=1,delta=2
41 psect text21,local,class=CODE,merge=1,delta=2
42 psect text22,local,class=CODE,merge=1,delta=2
43 psect text23,local,class=CODE,merge=1,delta=2
44 psect text24,local,class=CODE,merge=1,delta=2
45 psect text25,local,class=CODE,merge=1,delta=2
46 psect text26,local,class=CODE,merge=1,delta=2
47 psect text27,local,class=CODE,merge=1,delta=2
48 psect text28,local,class=CODE,merge=1,delta=2
49 psect text29,local,class=CODE,merge=1,delta=2
50 psect text30,local,class=CODE,merge=1,delta=2
51 psect text31,local,class=CODE,merge=1,delta=2
52 psect text32,local,class=CODE,merge=1,delta=2
53 psect text33,local,class=CODE,merge=1,delta=2,group=1
54 psect text34,local,class=CODE,merge=1,delta=2
55 psect text35,local,class=CODE,merge=1,delta=2
56 psect text36,local,class=CODE,merge=1,delta=2
57 psect text37,local,class=CODE,merge=1,delta=2
58 psect text38,local,class=CODE,merge=1,delta=2
59 psect text39,local,class=CODE,merge=1,delta=2
60 psect text40,local,class=CODE,merge=1,delta=2
61 psect text41,local,class=CODE,merge=1,delta=2
62 psect text42,local,class=CODE,merge=1,delta=2
63 psect text43,local,class=CODE,merge=1,delta=2
64 psect intentry,global,class=CODE,delta=2
65 dabs 1,0x7E,2
66 0000
67 ; Version 2.05
68 ; Generated 20/12/2018 GMT
69 ;
70 ; Copyright © 2018, Microchip Technology Inc. and its subsidiaries ("Microchip")
71 ; All rights reserved.
72 ;
73 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ ip").
74 ;
75 ; Redistribution and use in source and binary forms, with or without modification, are
76 ; permitted provided that the following conditions are met:
77 ;
78 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ t of
79 ; conditions and the following disclaimer.
80 ;
81 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ list
82 ; of conditions and the following disclaimer in the documentation and/or other
83 ; materials provided with the distribution.
84 ;
85 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ is
86 ; software without specific prior written permission.
87 ;
88 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
89 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ OR
90 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ T,
91 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
92 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
93 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ RICT
94 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ SE OF
95 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
96 ;
97 ;
98 ; Code-generator required, PIC16F877A Definitions
99 ;
100 ; SFR Addresses
101 0000 ;#
102 0001 ;#
103 0002 ;#
104 0003 ;#
105 0004 ;#
106 0005 ;#
107 0006 ;#
108 0007 ;#
109 0008 ;#
110 0009 ;#
111 000A ;#
112 000B ;#
113 000C ;#
114 000D ;#
115 000E ;#
116 000E ;#
117 000F ;#
118 0010 ;#
119 0011 ;#
120 0012 ;#
121 0013 ;#
122 0014 ;#
123 0015 ;#
124 0015 ;#
125 0016 ;#
126 0017 ;#
127 0018 ;#
128 0019 ;#
129 001A ;#
130 001B ;#
131 001B ;#
132 001C ;#
133 001D ;#
134 001E ;#
135 001F ;#
136 0081 ;#
137 0085 ;#
138 0086 ;#
139 0087 ;#
140 0088 ;#
141 0089 ;#
142 008C ;#
143 008D ;#
144 008E ;#
145 0091 ;#
146 0092 ;#
147 0093 ;#
148 0094 ;#
149 0098 ;#
150 0099 ;#
151 009C ;#
152 009D ;#
153 009E ;#
154 009F ;#
155 010C ;#
156 010D ;#
157 010E ;#
158 010F ;#
159 018C ;#
160 018D ;#
161 0000 ;#
162 0001 ;#
163 0002 ;#
164 0003 ;#
165 0004 ;#
166 0005 ;#
167 0006 ;#
168 0007 ;#
169 0008 ;#
170 0009 ;#
171 000A ;#
172 000B ;#
173 000C ;#
174 000D ;#
175 000E ;#
176 000E ;#
177 000F ;#
178 0010 ;#
179 0011 ;#
180 0012 ;#
181 0013 ;#
182 0014 ;#
183 0015 ;#
184 0015 ;#
185 0016 ;#
186 0017 ;#
187 0018 ;#
188 0019 ;#
189 001A ;#
190 001B ;#
191 001B ;#
192 001C ;#
193 001D ;#
194 001E ;#
195 001F ;#
196 0081 ;#
197 0085 ;#
198 0086 ;#
199 0087 ;#
200 0088 ;#
201 0089 ;#
202 008C ;#
203 008D ;#
204 008E ;#
205 0091 ;#
206 0092 ;#
207 0093 ;#
208 0094 ;#
209 0098 ;#
210 0099 ;#
211 009C ;#
212 009D ;#
213 009E ;#
214 009F ;#
215 010C ;#
216 010D ;#
217 010E ;#
218 010F ;#
219 018C ;#
220 018D ;#
221 0000 ;#
222 0001 ;#
223 0002 ;#
224 0003 ;#
225 0004 ;#
226 0005 ;#
227 0006 ;#
228 0007 ;#
229 0008 ;#
230 0009 ;#
231 000A ;#
232 000B ;#
233 000C ;#
234 000D ;#
235 000E ;#
236 000E ;#
237 000F ;#
238 0010 ;#
239 0011 ;#
240 0012 ;#
241 0013 ;#
242 0014 ;#
243 0015 ;#
244 0015 ;#
245 0016 ;#
246 0017 ;#
247 0018 ;#
248 0019 ;#
249 001A ;#
250 001B ;#
251 001B ;#
252 001C ;#
253 001D ;#
254 001E ;#
255 001F ;#
256 0081 ;#
257 0085 ;#
258 0086 ;#
259 0087 ;#
260 0088 ;#
261 0089 ;#
262 008C ;#
263 008D ;#
264 008E ;#
265 0091 ;#
266 0092 ;#
267 0093 ;#
268 0094 ;#
269 0098 ;#
270 0099 ;#
271 009C ;#
272 009D ;#
273 009E ;#
274 009F ;#
275 010C ;#
276 010D ;#
277 010E ;#
278 010F ;#
279 018C ;#
280 018D ;#
281 0000 ;#
282 0001 ;#
283 0002 ;#
284 0003 ;#
285 0004 ;#
286 0005 ;#
287 0006 ;#
288 0007 ;#
289 0008 ;#
290 0009 ;#
291 000A ;#
292 000B ;#
293 000C ;#
294 000D ;#
295 000E ;#
296 000E ;#
297 000F ;#
298 0010 ;#
299 0011 ;#
300 0012 ;#
301 0013 ;#
302 0014 ;#
303 0015 ;#
304 0015 ;#
305 0016 ;#
306 0017 ;#
307 0018 ;#
308 0019 ;#
309 001A ;#
310 001B ;#
311 001B ;#
312 001C ;#
313 001D ;#
314 001E ;#
315 001F ;#
316 0081 ;#
317 0085 ;#
318 0086 ;#
319 0087 ;#
320 0088 ;#
321 0089 ;#
322 008C ;#
323 008D ;#
324 008E ;#
325 0091 ;#
326 0092 ;#
327 0093 ;#
328 0094 ;#
329 0098 ;#
330 0099 ;#
331 009C ;#
332 009D ;#
333 009E ;#
334 009F ;#
335 010C ;#
336 010D ;#
337 010E ;#
338 010F ;#
339 018C ;#
340 018D ;#
341 0000 ;#
342 0001 ;#
343 0002 ;#
344 0003 ;#
345 0004 ;#
346 0005 ;#
347 0006 ;#
348 0007 ;#
349 0008 ;#
350 0009 ;#
351 000A ;#
352 000B ;#
353 000C ;#
354 000D ;#
355 000E ;#
356 000E ;#
357 000F ;#
358 0010 ;#
359 0011 ;#
360 0012 ;#
361 0013 ;#
362 0014 ;#
363 0015 ;#
364 0015 ;#
365 0016 ;#
366 0017 ;#
367 0018 ;#
368 0019 ;#
369 001A ;#
370 001B ;#
371 001B ;#
372 001C ;#
373 001D ;#
374 001E ;#
375 001F ;#
376 0081 ;#
377 0085 ;#
378 0086 ;#
379 0087 ;#
380 0088 ;#
381 0089 ;#
382 008C ;#
383 008D ;#
384 008E ;#
385 0091 ;#
386 0092 ;#
387 0093 ;#
388 0094 ;#
389 0098 ;#
390 0099 ;#
391 009C ;#
392 009D ;#
393 009E ;#
394 009F ;#
395 010C ;#
396 010D ;#
397 010E ;#
398 010F ;#
399 018C ;#
400 018D ;#
401 0000 ;#
402 0001 ;#
403 0002 ;#
404 0003 ;#
405 0004 ;#
406 0005 ;#
407 0006 ;#
408 0007 ;#
409 0008 ;#
410 0009 ;#
411 000A ;#
412 000B ;#
413 000C ;#
414 000D ;#
415 000E ;#
416 000E ;#
417 000F ;#
418 0010 ;#
419 0011 ;#
420 0012 ;#
421 0013 ;#
422 0014 ;#
423 0015 ;#
424 0015 ;#
425 0016 ;#
426 0017 ;#
427 0018 ;#
428 0019 ;#
429 001A ;#
430 001B ;#
431 001B ;#
432 001C ;#
433 001D ;#
434 001E ;#
435 001F ;#
436 0081 ;#
437 0085 ;#
438 0086 ;#
439 0087 ;#
440 0088 ;#
441 0089 ;#
442 008C ;#
443 008D ;#
444 008E ;#
445 0091 ;#
446 0092 ;#
447 0093 ;#
448 0094 ;#
449 0098 ;#
450 0099 ;#
451 009C ;#
452 009D ;#
453 009E ;#
454 009F ;#
455 010C ;#
456 010D ;#
457 010E ;#
458 010F ;#
459 018C ;#
460 018D ;#
461 0000 ;#
462 0001 ;#
463 0002 ;#
464 0003 ;#
465 0004 ;#
466 0005 ;#
467 0006 ;#
468 0007 ;#
469 0008 ;#
470 0009 ;#
471 000A ;#
472 000B ;#
473 000C ;#
474 000D ;#
475 000E ;#
476 000E ;#
477 000F ;#
478 0010 ;#
479 0011 ;#
480 0012 ;#
481 0013 ;#
482 0014 ;#
483 0015 ;#
484 0015 ;#
485 0016 ;#
486 0017 ;#
487 0018 ;#
488 0019 ;#
489 001A ;#
490 001B ;#
491 001B ;#
492 001C ;#
493 001D ;#
494 001E ;#
495 001F ;#
496 0081 ;#
497 0085 ;#
498 0086 ;#
499 0087 ;#
500 0088 ;#
501 0089 ;#
502 008C ;#
503 008D ;#
504 008E ;#
505 0091 ;#
506 0092 ;#
507 0093 ;#
508 0094 ;#
509 0098 ;#
510 0099 ;#
511 009C ;#
512 009D ;#
513 009E ;#
514 009F ;#
515 010C ;#
516 010D ;#
517 010E ;#
518 010F ;#
519 018C ;#
520 018D ;#
521 0000 ;#
522 0001 ;#
523 0002 ;#
524 0003 ;#
525 0004 ;#
526 0005 ;#
527 0006 ;#
528 0007 ;#
529 0008 ;#
530 0009 ;#
531 000A ;#
532 000B ;#
533 000C ;#
534 000D ;#
535 000E ;#
536 000E ;#
537 000F ;#
538 0010 ;#
539 0011 ;#
540 0012 ;#
541 0013 ;#
542 0014 ;#
543 0015 ;#
544 0015 ;#
545 0016 ;#
546 0017 ;#
547 0018 ;#
548 0019 ;#
549 001A ;#
550 001B ;#
551 001B ;#
552 001C ;#
553 001D ;#
554 001E ;#
555 001F ;#
556 0081 ;#
557 0085 ;#
558 0086 ;#
559 0087 ;#
560 0088 ;#
561 0089 ;#
562 008C ;#
563 008D ;#
564 008E ;#
565 0091 ;#
566 0092 ;#
567 0093 ;#
568 0094 ;#
569 0098 ;#
570 0099 ;#
571 009C ;#
572 009D ;#
573 009E ;#
574 009F ;#
575 010C ;#
576 010D ;#
577 010E ;#
578 010F ;#
579 018C ;#
580 018D ;#
581
582 psect idataBANK0
583 1741 __pidataBANK0:
584
585 ;initializer for _month
586 1741 3401 retlw 1
587 1742 3400 retlw 0
588
589 ;initializer for _date
590 1743 3401 retlw 1
591 1744 3400 retlw 0
592
593 ;initializer for _temp_sign
594 1745 3420 retlw 32
595
596 psect idataBANK1
597 087D __pidataBANK1:
598
599 ;initializer for _century
600 087D 3414 retlw 20
601 087E 3400 retlw 0
602
603 ;initializer for _day
604 087F 3401 retlw 1
605 0880 3400 retlw 0
606
607 ;initializer for _dayOfWeek
608 0881 3453 retlw 83
609 0882 3475 retlw 117
610 0883 346E retlw 110
611 0884 3400 retlw 0
612 0885 344D retlw 77
613 0886 346F retlw 111
614 0887 346E retlw 110
615 0888 3400 retlw 0
616 0889 3454 retlw 84
617 088A 3475 retlw 117
618 088B 3465 retlw 101
619 088C 3400 retlw 0
620 088D 3457 retlw 87
621 088E 3465 retlw 101
622 088F 3464 retlw 100
623 0890 3400 retlw 0
624 0891 3454 retlw 84
625 0892 3468 retlw 104
626 0893 3475 retlw 117
627 0894 3400 retlw 0
628 0895 3446 retlw 70
629 0896 3472 retlw 114
630 0897 3469 retlw 105
631 0898 3400 retlw 0
632 0899 3453 retlw 83
633 089A 3461 retlw 97
634 089B 3474 retlw 116
635 089C 3400 retlw 0
636
637 psect idataBANK3
638 09B6 __pidataBANK3:
639
640 ;initializer for _monthOfYear
641 09B6 344A retlw 74
642 09B7 3461 retlw 97
643 09B8 346E retlw 110
644 09B9 3400 retlw 0
645 09BA 3446 retlw 70
646 09BB 3465 retlw 101
647 09BC 3462 retlw 98
648 09BD 3400 retlw 0
649 09BE 344D retlw 77
650 09BF 3461 retlw 97
651 09C0 3472 retlw 114
652 09C1 3400 retlw 0
653 09C2 3441 retlw 65
654 09C3 3470 retlw 112
655 09C4 3472 retlw 114
656 09C5 3400 retlw 0
657 09C6 344D retlw 77
658 09C7 3461 retlw 97
659 09C8 3479 retlw 121
660 09C9 3400 retlw 0
661 09CA 344A retlw 74
662 09CB 3475 retlw 117
663 09CC 346E retlw 110
664 09CD 3400 retlw 0
665 09CE 344A retlw 74
666 09CF 3475 retlw 117
667 09D0 346C retlw 108
668 09D1 3400 retlw 0
669 09D2 3441 retlw 65
670 09D3 3475 retlw 117
671 09D4 3467 retlw 103
672 09D5 3400 retlw 0
673 09D6 3453 retlw 83
674 09D7 3465 retlw 101
675 09D8 3470 retlw 112
676 09D9 3400 retlw 0
677 09DA 344F retlw 79
678 09DB 3463 retlw 99
679 09DC 3474 retlw 116
680 09DD 3400 retlw 0
681 09DE 344E retlw 78
682 09DF 346F retlw 111
683 09E0 3476 retlw 118
684 09E1 3400 retlw 0
685 09E2 3444 retlw 68
686 09E3 3465 retlw 101
687 09E4 3463 retlw 99
688 09E5 3400 retlw 0
689 001E _ADRESH set 30
690 001F _ADCON0bits set 31
691 001F _ADCON0 set 31
692 001A _RCREG set 26
693 0019 _TXREG set 25
694 0013 _SSPBUF set 19
695 0014 _SSPCON set 20
696 0008 _PORTD set 8
697 0007 _PORTC set 7
698 00FF _ADCS1 set 255
699 00FE _ADCS0 set 254
700 0041 _RD1 set 65
701 0065 _RCIF set 101
702 00C1 _OERR set 193
703 0064 _TXIF set 100
704 00C6 _RX9 set 198
705 00C4 _CREN set 196
706 00C7 _SPEN set 199
707 00A4 _CKP set 164
708 0043 _RD3 set 67
709 0042 _RD2 set 66
710 0047 _RD7 set 71
711 0046 _RD6 set 70
712 0045 _RD5 set 69
713 0044 _RD4 set 68
714 0059 _INTF set 89
715 0034 _RB4 set 52
716 0035 _RB5 set 53
717 0032 _RB2 set 50
718 005C _INTE set 92
719 005F _GIE set 95
720 009E _ADRESL set 158
721 0099 _SPBRG set 153
722 0094 _SSPSTAT set 148
723 0093 _SSPADD set 147
724 0091 _SSPCON2 set 145
725 0088 _TRISD set 136
726 0087 _TRISC set 135
727 0081 _OPTION_REGbits set 129
728 0086 _TRISBbits set 134
729 04FA _PCFG2 set 1274
730 04F9 _PCFG1 set 1273
731 04F8 _PCFG0 set 1272
732 04FF _ADFM set 1279
733 04C6 _TX9 set 1222
734 04C5 _TXEN set 1221
735 04C4 _SYNC set 1220
736 04C2 _BRGH set 1218
737 043F _TRISC7 set 1087
738 043E _TRISC6 set 1086
739 048C _ACKEN set 1164
740 048D _ACKDT set 1165
741 048B _RCEN set 1163
742 048A _PEN set 1162
743 0489 _RSEN set 1161
744 0488 _SEN set 1160
745 04A7 _SMP set 1191
746 043C _TRISC4 set 1084
747 043B _TRISC3 set 1083
748 0428 _TRISA0 set 1064
749
750 psect strings
751 0800 __pstrings:
752 0800 stringtab:
753 0800 __stringtab:
754
755 ; String table - string pointers are 1 byte each
756 0800 1BFF btfsc btemp+1,7
757 0801 280A ljmp stringcode
758 0802 1383 bcf 3,7
759 0803 187F btfsc btemp+1,0
760 0804 1783 bsf 3,7
761 0805 0800 movf 0,w
762 0806 0A84 incf 4,f
763 0807 1903 skipnz
764 0808 0AFF incf btemp+1,f
765 0809 0008 return
766 080A stringcode:
767 080A stringdir:
768 080A 3008 movlw high stringdir
769 080B 008A movwf 10
770 080C 0804 movf 4,w
771 080D 0A84 incf 4,f
772 080E 0782 addwf 2,f
773 080F __stringbase:
774 080F 3400 retlw 0
775 0810 __end_of__stringtab:
776 0810 STR_4:
777 0810 3420 retlw 32 ;' '
778 0811 3464 retlw 100 ;'d'
779 0812 3464 retlw 100 ;'d'
780 0813 3464 retlw 100 ;'d'
781 0814 3420 retlw 32 ;' '
782 0815 3444 retlw 68 ;'D'
783 0816 3444 retlw 68 ;'D'
784 0817 342F retlw 47 ;'/'
785 0818 344D retlw 77 ;'M'
786 0819 344D retlw 77 ;'M'
787 081A 342F retlw 47 ;'/'
788 081B 3443 retlw 67 ;'C'
789 081C 3443 retlw 67 ;'C'
790 081D 3459 retlw 89 ;'Y'
791 081E 3459 retlw 89 ;'Y'
792 081F 3420 retlw 32 ;' '
793 0820 3400 retlw 0
794 0821 STR_3:
795 0821 3448 retlw 72 ;'H'
796 0822 3448 retlw 72 ;'H'
797 0823 343A retlw 58 ;':'
798 0824 346D retlw 109 ;'m'
799 0825 346D retlw 109 ;'m'
800 0826 343A retlw 58 ;':'
801 0827 3473 retlw 115 ;'s'
802 0828 3473 retlw 115 ;'s'
803 0829 3420 retlw 32 ;' '
804 082A 342D retlw 45 ;'-'
805 082B 3450 retlw 80 ;'P'
806 082C 3450 retlw 80 ;'P'
807 082D 342E retlw 46 ;'.'
808 082E 3450 retlw 80 ;'P'
809 082F 3400 retlw 0
810 0830 STR_1:
811 0830 3444 retlw 68 ;'D'
812 0831 3465 retlw 101 ;'e'
813 0832 3473 retlw 115 ;'s'
814 0833 346B retlw 107 ;'k'
815 0834 3420 retlw 32 ;' '
816 0835 3443 retlw 67 ;'C'
817 0836 346C retlw 108 ;'l'
818 0837 346F retlw 111 ;'o'
819 0838 3463 retlw 99 ;'c'
820 0839 346B retlw 107 ;'k'
821 083A 3400 retlw 0
822 083B STR_2:
823 083B 3456 retlw 86 ;'V'
824 083C 3431 retlw 49 ;'1'
825 083D 3400 retlw 0
826 081F
827 ; #config settings
828 0000
829 psect cinit
830 000F start_initialization:
831 000F __initialization:
832
833 ; Initialize objects allocated to BANK3
834 000F 1783 bsf 3,7 ;select IRP bank2
835 0010 30C0 movlw low (__pdataBANK3+48)
836 0011 00FD movwf btemp+-1
837 0012 3009 movlw high __pidataBANK3
838 0013 00FE movwf btemp
839 0014 30B6 movlw low __pidataBANK3
840 0015 00FF movwf btemp+1
841 0016 3090 movlw low __pdataBANK3
842 0017 0084 movwf 4
843 0018 160A 118A 27AD 120A 118A fcall init_ram0
844
845 ; Initialize objects allocated to BANK1
846 001D 1383 bcf 3,7 ;select IRP bank0
847 001E 30C0 movlw low (__pdataBANK1+32)
848 001F 00FD movwf btemp+-1
849 0020 3008 movlw high __pidataBANK1
850 0021 00FE movwf btemp
851 0022 307D movlw low __pidataBANK1
852 0023 00FF movwf btemp+1
853 0024 30A0 movlw low __pdataBANK1
854 0025 0084 movwf 4
855 0026 160A 118A 27AD 120A 118A fcall init_ram0
856
857 ; Initialize objects allocated to BANK0
858 002B 306E movlw low (__pdataBANK0+5)
859 002C 00FD movwf btemp+-1
860 002D 3017 movlw high __pidataBANK0
861 002E 00FE movwf btemp
862 002F 3041 movlw low __pidataBANK0
863 0030 00FF movwf btemp+1
864 0031 3069 movlw low __pdataBANK0
865 0032 0084 movwf 4
866 0033 160A 118A 27AD 120A 118A fcall init_ram0
867
868 ; Clear objects allocated to BANK1
869 0038 30C0 movlw low __pbssBANK1
870 0039 0084 movwf 4
871 003A 30D2 movlw low (__pbssBANK1+18)
872 003B 160A 118A 2763 120A 118A fcall clear_ram0
873
874 ; Clear objects allocated to BANK0
875 0040 3057 movlw low __pbssBANK0
876 0041 0084 movwf 4
877 0042 3069 movlw low (__pbssBANK0+18)
878 0043 160A 118A 2763 fcall clear_ram0
879
880 ; Clear objects allocated to COMMON
881 0046 01FA clrf __pbssCOMMON& (0+127)
882 0047 01FB clrf (__pbssCOMMON+1)& (0+127)
883 0048 end_of_initialization:
884 ;End of C runtime variable initialization code
885
886 0048 __end_of__initialization:
887 0048 0183 clrf 3
888 0049 120A 118A 2DA0 ljmp _main ;jump to C main() function
889
890 psect bssCOMMON
891 007A __pbssCOMMON:
892 007A _ldr:
893 007A ds 2
894
895 psect bssBANK0
896 0057 __pbssBANK0:
897 0057 _temperature_msb:
898 0057 ds 2
899 0059 _temperature_lsb:
900 0059 ds 2
901 005B _control_reg:
902 005B ds 2
903 005D _year:
904 005D ds 2
905 005F _hour:
906 005F ds 2
907 0061 _min:
908 0061 ds 2
909 0063 _sec:
910 0063 ds 2
911 0065 _edit_datetime:
912 0065 ds 2
913 0067 _brtlvl_chg:
914 0067 ds 2
915
916 psect dataBANK0
917 0069 __pdataBANK0:
918 0069 _month:
919 0069 ds 2
920 006B _date:
921 006B ds 2
922 006D _temp_sign:
923 006D ds 1
924
925 psect bssBANK1
926 00C0 __pbssBANK1:
927 00C0 _alarm2_status:
928 00C0 ds 2
929 00C2 _alarm1_status:
930 00C2 ds 2
931 00C4 _status_reg:
932 00C4 ds 2
933 00C6 _alarm2_hour:
934 00C6 ds 2
935 00C8 _alarm2_min:
936 00C8 ds 2
937 00CA _alarm1_hour:
938 00CA ds 2
939 00CC _alarm1_min:
940 00CC ds 2
941 00CE _alarm1_sec:
942 00CE ds 2
943 00D0 _update:
944 00D0 ds 2
945
946 psect dataBANK1
947 00A0 __pdataBANK1:
948 00A0 _century:
949 00A0 ds 2
950 00A2 _day:
951 00A2 ds 2
952 00A4 _dayOfWeek:
953 00A4 ds 28
954
955 psect dataBANK3
956 0190 __pdataBANK3:
957 0190 _monthOfYear:
958 0190 ds 48
959
960 psect inittext
961 17A9 init_fetch0:
962 ; Called with low address in FSR and high address in W
963
964 17A9 087E movf 126,w
965 17AA 008A movwf 10
966 17AB 087F movf 127,w
967 17AC 0082 movwf 2
968 17AD init_ram0:
969 ;Called with:
970 ; high address of idata address in btemp
971 ; low address of idata address in btemp+1
972 ; low address of data in FSR
973 ; high address + 1 of data in btemp-1
974
975 17AD 27A9 160A 118A fcall init_fetch0
976 17B0 0080 movwf 0
977 17B1 0A84 incf 4,f
978 17B2 0804 movf 4,w
979 17B3 067D xorwf 125,w
980 17B4 1903 btfsc 3,2
981 17B5 3400 retlw 0
982 17B6 0AFF incf 127,f
983 17B7 1903 btfsc 3,2
984 17B8 0AFE incf 126,f
985 17B9 2FAD goto init_ram0
986
987 psect clrtext
988 1763 clear_ram0:
989 ; Called with FSR containing the base address, and
990 ; W with the last address+1
991
992 1763 0064 clrwdt ;clear the watchdog before getting into this loop
993 1764 clrloop0:
994 1764 0180 clrf 0 ;clear RAM location pointed to by FSR
995 1765 0A84 incf 4,f ;increment pointer
996 1766 0604 xorwf 4,w ;XOR with final address
997 1767 1903 btfsc 3,2 ;have we reached the end yet?
998 1768 3400 retlw 0 ;all done for this memory range, return
999 1769 0604 xorwf 4,w ;XOR again to restore value
1000 176A 2F64 goto clrloop0 ;do the next byte
1001
1002 psect cstackBANK1
1003 00D2 __pcstackBANK1:
1004 00D2 ??_main:
1005
1006 ; 1 bytes @ 0x0
1007 00D2 ds 3
1008
1009 psect cstackCOMMON
1010 0070 __pcstackCOMMON:
1011 0070 ?_Adc_Init:
1012 0070 ?_Lcd_Init:
1013 ; 1 bytes @ 0x0
1014
1015 0070 ?_display_Intro:
1016 ; 1 bytes @ 0x0
1017
1018 0070 ?_display_Lcd_Layout:
1019 ; 1 bytes @ 0x0
1020
1021 0070 ?_Lcd_Write_Char:
1022 ; 1 bytes @ 0x0
1023
1024 0070 ?_Update_Current_Date_Time:
1025 ; 1 bytes @ 0x0
1026
1027 0070 ?_Read_Alarms_Temp:
1028 ; 1 bytes @ 0x0
1029
1030 0070 ?_Get_Alarm_Status:
1031 ; 1 bytes @ 0x0
1032
1033 0070 ?_format_Temperature:
1034 ; 1 bytes @ 0x0
1035
1036 0070 ?_update_Display:
1037 ; 1 bytes @ 0x0
1038
1039 0070 ?_edit_Date_Time:
1040 ; 1 bytes @ 0x0
1041
1042 0070 ?_Lcd_Clear:
1043 ; 1 bytes @ 0x0
1044
1045 0070 ?_Set_Time:
1046 ; 1 bytes @ 0x0
1047
1048 0070 ?_Set_Date:
1049 ; 1 bytes @ 0x0
1050
1051 0070 ?_main:
1052 ; 1 bytes @ 0x0
1053
1054 0070 ?_isr:
1055 ; 1 bytes @ 0x0
1056
1057 0070 ??_isr:
1058 ; 1 bytes @ 0x0
1059
1060 0070 ?_Lcd_Port:
1061 ; 1 bytes @ 0x0
1062
1063 0070 ?_Lcd_Cmd:
1064 ; 1 bytes @ 0x0
1065
1066 0070 ?_I2C_Master_Wait:
1067 ; 1 bytes @ 0x0
1068
1069 0070 ?_I2C_Master_Start:
1070 ; 1 bytes @ 0x0
1071
1072 0070 ?_I2C_Master_Repeated_Start:
1073 ; 1 bytes @ 0x0
1074
1075 0070 ?_I2C_Master_Stop:
1076 ; 1 bytes @ 0x0
1077
1078
1079 ; 1 bytes @ 0x0
1080 0070 ds 2
1081 0072 ?_I2C_Master_Init:
1082 0072 ??_Adc_Init:
1083 ; 1 bytes @ 0x2
1084
1085 0072 ??_Get_Alarm_Status:
1086 ; 1 bytes @ 0x2
1087
1088 0072 ?_alarm:
1089 ; 1 bytes @ 0x2
1090
1091 0072 ??_Lcd_Port:
1092 ; 1 bytes @ 0x2
1093
1094 0072 ??_I2C_Master_Wait:
1095 ; 1 bytes @ 0x2
1096
1097 0072 ??_I2C_Master_Start:
1098 ; 1 bytes @ 0x2
1099
1100 0072 ??_I2C_Master_Repeated_Start:
1101 ; 1 bytes @ 0x2
1102
1103 0072 ??_I2C_Master_Stop:
1104 ; 1 bytes @ 0x2
1105
1106 0072 ?_Adc_Read:
1107 ; 1 bytes @ 0x2
1108
1109 0072 ?_I2C_Master_Read:
1110 ; 2 bytes @ 0x2
1111
1112 0072 ?___wmul:
1113 ; 2 bytes @ 0x2
1114
1115 0072 ?___awdiv:
1116 ; 2 bytes @ 0x2
1117
1118 0072 ?___awmod:
1119 ; 2 bytes @ 0x2
1120
1121 0072 Lcd_Port@a:
1122 ; 2 bytes @ 0x2
1123
1124 0072 I2C_Master_Read@ack:
1125 ; 1 bytes @ 0x2
1126
1127 0072 alarm@numberOfBeeps:
1128 ; 2 bytes @ 0x2
1129
1130 0072 Adc_Read@channel:
1131 ; 2 bytes @ 0x2
1132
1133 0072 ___wmul@multiplier:
1134 ; 2 bytes @ 0x2
1135
1136 0072 ___awdiv@divisor:
1137 ; 2 bytes @ 0x2
1138
1139 0072 ___awmod@divisor:
1140 ; 2 bytes @ 0x2
1141
1142 0072 I2C_Master_Init@freq_K:
1143 ; 2 bytes @ 0x2
1144
1145
1146 ; 4 bytes @ 0x2
1147 0072 ds 1
1148 0073 ??_Lcd_Write_Char:
1149 0073 ??_Lcd_Cmd:
1150 ; 1 bytes @ 0x3
1151
1152
1153 ; 1 bytes @ 0x3
1154 0073 ds 1
1155 0074 ??_Adc_Read:
1156 0074 ??_alarm:
1157 ; 1 bytes @ 0x4
1158
1159 0074 ??_I2C_Master_Read:
1160 ; 1 bytes @ 0x4
1161
1162 0074 Lcd_Write_Char@temp:
1163 ; 1 bytes @ 0x4
1164
1165 0074 ___wmul@multiplicand:
1166 ; 1 bytes @ 0x4
1167
1168 0074 ___awdiv@dividend:
1169 ; 2 bytes @ 0x4
1170
1171 0074 ___awmod@dividend:
1172 ; 2 bytes @ 0x4
1173
1174
1175 ; 2 bytes @ 0x4
1176 0074 ds 1
1177 0075 Lcd_Cmd@a:
1178 0075 Lcd_Write_Char@y:
1179 ; 1 bytes @ 0x5
1180
1181
1182 ; 1 bytes @ 0x5
1183 0075 ds 1
1184 0076 ??_I2C_Master_Init:
1185 0076 ?_Lcd_Set_Cursor:
1186 ; 1 bytes @ 0x6
1187
1188 0076 ??_Lcd_Clear:
1189 ; 1 bytes @ 0x6
1190
1191 0076 ??___wmul:
1192 ; 1 bytes @ 0x6
1193
1194 0076 ??___awdiv:
1195 ; 1 bytes @ 0x6
1196
1197 0076 ??___awmod:
1198 ; 1 bytes @ 0x6
1199
1200 0076 Lcd_Set_Cursor@b:
1201 ; 1 bytes @ 0x6
1202
1203 0076 Lcd_Write_Char@a:
1204 ; 1 bytes @ 0x6
1205
1206 0076 I2C_Master_Read@incoming:
1207 ; 1 bytes @ 0x6
1208
1209 0076 ___wmul@product:
1210 ; 2 bytes @ 0x6
1211
1212
1213 ; 2 bytes @ 0x6
1214 0076 ds 1
1215 0077 ?_Vfd_Set_Brightness:
1216 0077 ??_Lcd_Set_Cursor:
1217 ; 1 bytes @ 0x7
1218
1219 0077 ___awmod@counter:
1220 ; 1 bytes @ 0x7
1221
1222 0077 Vfd_Set_Brightness@level:
1223 ; 1 bytes @ 0x7
1224
1225
1226 ; 2 bytes @ 0x7
1227 0077 ds 1
1228 0078 ??_format_Temperature:
1229 0078 ??___lwdiv:
1230 ; 1 bytes @ 0x8
1231
1232 0078 ?_BCD_2_DEC:
1233 ; 1 bytes @ 0x8
1234
1235 0078 ___awmod@sign:
1236 ; 2 bytes @ 0x8
1237
1238 0078 BCD_2_DEC@to_convert:
1239 ; 1 bytes @ 0x8
1240
1241
1242 ; 2 bytes @ 0x8
1243 0078 ds 1
1244 0079 ??_Set_Sqwe:
1245 0079 ??_Set_Time:
1246 ; 1 bytes @ 0x9
1247
1248 0079 ??_Set_Date:
1249 ; 1 bytes @ 0x9
1250
1251 0079 ??_I2C_Master_Write:
1252 ; 1 bytes @ 0x9
1253
1254 0079 ??___lwmod:
1255 ; 1 bytes @ 0x9
1256
1257
1258 ; 1 bytes @ 0x9
1259 0079 ds 1
1260 007A ??_Update_Current_Date_Time:
1261 007A ??_Read_Alarms_Temp:
1262 ; 1 bytes @ 0xA
1263
1264 007A ??_Set_DayOfWeek:
1265 ; 1 bytes @ 0xA
1266
1267 007A ??_display_Digit:
1268 ; 1 bytes @ 0xA
1269
1270
1271 psect cstackBANK0
1272 0020 __pcstackBANK0:
1273 ; 1 bytes @ 0xA
1274
1275 0020 ??_Vfd_Set_Brightness:
1276 0020 ??_BCD_2_DEC:
1277 ; 1 bytes @ 0x0
1278
1279 0020 ?___lwdiv:
1280 ; 1 bytes @ 0x0
1281
1282 0020 Lcd_Set_Cursor@a:
1283 ; 2 bytes @ 0x0
1284
1285 0020 ___awdiv@counter:
1286 ; 1 bytes @ 0x0
1287
1288 0020 alarm@i:
1289 ; 1 bytes @ 0x0
1290
1291 0020 ___lwdiv@divisor:
1292 ; 2 bytes @ 0x0
1293
1294
1295 ; 2 bytes @ 0x0
1296 0020 ds 1
1297 0021 Lcd_Set_Cursor@z:
1298 0021 ___awdiv@sign:
1299 ; 1 bytes @ 0x1
1300
1301
1302 ; 1 bytes @ 0x1
1303 0021 ds 1
1304 0022 ??_Lcd_Init:
1305 0022 Lcd_Set_Cursor@y:
1306 ; 1 bytes @ 0x2
1307
1308 0022 alarm@j:
1309 ; 1 bytes @ 0x2
1310
1311 0022 ___awdiv@quotient:
1312 ; 2 bytes @ 0x2
1313
1314 0022 ___lwdiv@dividend:
1315 ; 2 bytes @ 0x2
1316
1317
1318 ; 2 bytes @ 0x2
1319 0022 ds 1
1320 0023 Lcd_Set_Cursor@temp:
1321
1322 ; 1 bytes @ 0x3
1323 0023 ds 1
1324 0024 ?_DEC_2_BCD:
1325 0024 ___lwdiv@counter:
1326 ; 2 bytes @ 0x4
1327
1328 0024 DEC_2_BCD@to_convert:
1329 ; 1 bytes @ 0x4
1330
1331
1332 ; 2 bytes @ 0x4
1333 0024 ds 1
1334 0025 ___lwdiv@quotient:
1335
1336 ; 2 bytes @ 0x5
1337 0025 ds 1
1338 0026 ??_DEC_2_BCD:
1339
1340 ; 1 bytes @ 0x6
1341 0026 ds 1
1342 0027 ?___lwmod:
1343 0027 ___lwmod@divisor:
1344 ; 2 bytes @ 0x7
1345
1346
1347 ; 2 bytes @ 0x7
1348 0027 ds 1
1349 0028 ?_I2C_Master_Write:
1350 0028 I2C_Master_Write@data:
1351 ; 1 bytes @ 0x8
1352
1353
1354 ; 2 bytes @ 0x8
1355 0028 ds 1
1356 0029 ___lwmod@dividend:
1357
1358 ; 2 bytes @ 0x9
1359 0029 ds 1
1360 002A ?_Set_Sqwe:
1361 002A Set_Sqwe@contvalue:
1362 ; 1 bytes @ 0xA
1363
1364
1365 ; 2 bytes @ 0xA
1366 002A ds 1
1367 002B ___lwmod@counter:
1368
1369 ; 1 bytes @ 0xB
1370 002B ds 1
1371 002C ?_display_Digit:
1372 002C ?_Get_DayOfWeek:
1373 ; 1 bytes @ 0xC
1374
1375 002C ?_Get_Is_Leap_Year:
1376 ; 2 bytes @ 0xC
1377
1378 002C display_Digit@data:
1379 ; 2 bytes @ 0xC
1380
1381 002C Get_DayOfWeek@y:
1382 ; 2 bytes @ 0xC
1383
1384 002C Get_Is_Leap_Year@y:
1385 ; 2 bytes @ 0xC
1386
1387
1388 ; 2 bytes @ 0xC
1389 002C ds 2
1390 002E ??_Get_Is_Leap_Year:
1391 002E Get_DayOfWeek@m:
1392 ; 1 bytes @ 0xE
1393
1394
1395 ; 2 bytes @ 0xE
1396 002E ds 2
1397 0030 _Get_Is_Leap_Year$401:
1398 0030 Get_DayOfWeek@d:
1399 ; 1 bytes @ 0x10
1400
1401
1402 ; 2 bytes @ 0x10
1403 0030 ds 1
1404 0031 ?_Get_Days_In_Month:
1405 0031 Get_Days_In_Month@y:
1406 ; 2 bytes @ 0x11
1407
1408
1409 ; 2 bytes @ 0x11
1410 0031 ds 1
1411 0032 ??_Get_DayOfWeek:
1412
1413 ; 1 bytes @ 0x12
1414 0032 ds 1
1415 0033 Get_Days_In_Month@m:
1416
1417 ; 2 bytes @ 0x13
1418 0033 ds 2
1419 0035 ??_Get_Days_In_Month:
1420
1421 ; 1 bytes @ 0x15
1422 0035 ds 7
1423 003C ?_Get_WeekDay:
1424 003C ?_Set_DayOfWeek:
1425 ; 1 bytes @ 0x1C
1426
1427 003C Get_WeekDay@d:
1428 ; 1 bytes @ 0x1C
1429
1430 003C Set_DayOfWeek@dow:
1431 ; 2 bytes @ 0x1C
1432
1433
1434 ; 2 bytes @ 0x1C
1435 003C ds 2
1436 003E ??_Get_WeekDay:
1437
1438 ; 1 bytes @ 0x1E
1439 003E ds 1
1440 003F ?_Lcd_Write_String:
1441 003F Lcd_Write_String@a:
1442 ; 1 bytes @ 0x1F
1443
1444
1445 ; 2 bytes @ 0x1F
1446 003F ds 2
1447 0041 ??_Lcd_Write_String:
1448
1449 ; 1 bytes @ 0x21
1450 0041 ds 3
1451 0044 Lcd_Write_String@i:
1452
1453 ; 2 bytes @ 0x24
1454 0044 ds 2
1455 0046 ??_display_Intro:
1456 0046 ??_display_Lcd_Layout:
1457 ; 1 bytes @ 0x26
1458
1459 0046 ??_update_Display:
1460 ; 1 bytes @ 0x26
1461
1462 0046 ??_edit_Date_Time:
1463 ; 1 bytes @ 0x26
1464
1465
1466 ; 1 bytes @ 0x26
1467 0046 ds 5
1468 004B edit_Date_Time@hour_org:
1469
1470 ; 2 bytes @ 0x2B
1471 004B ds 2
1472 004D edit_Date_Time@min_org:
1473
1474 ; 2 bytes @ 0x2D
1475 004D ds 2
1476 004F edit_Date_Time@year_org:
1477
1478 ; 2 bytes @ 0x2F
1479 004F ds 2
1480 0051 edit_Date_Time@month_org:
1481
1482 ; 2 bytes @ 0x31
1483 0051 ds 2
1484 0053 edit_Date_Time@date_org:
1485
1486 ; 2 bytes @ 0x33
1487 0053 ds 2
1488 0055 edit_Date_Time@sec_org:
1489
1490 ; 2 bytes @ 0x35
1491 0055 ds 2
1492
1493 psect maintext
1494 05A0 __pmaintext:
1495 ;;
1496 ;;Main: autosize = 0, tempsize = 3, incstack = 0, save=0
1497 ;;
1498 ;; *************** function _main *****************
1499 ;; Defined at:
1500 ;; line 43 in file "main.c"
1501 ;; Parameters: Size Location Type
1502 ;; None
1503 ;; Auto vars: Size Location Type
1504 ;; None
1505 ;; Return value: Size Location Type
1506 ;; 1 wreg void
1507 ;; Registers used:
1508 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
1509 ;; Tracked objects:
1510 ;; On entry : B00/0
1511 ;; On exit : 0/0
1512 ;; Unchanged: 0/0
1513 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1514 ;; Params: 0 0 0 0 0
1515 ;; Locals: 0 0 0 0 0
1516 ;; Temps: 0 0 3 0 0
1517 ;; Totals: 0 0 3 0 0
1518 ;;Total ram usage: 3 bytes
1519 ;; Hardware stack levels required when called: 5
1520 ;; This function calls:
1521 ;; _Adc_Init
1522 ;; _Adc_Read
1523 ;; _Get_Alarm_Status
1524 ;; _I2C_Master_Init
1525 ;; _Lcd_Init
1526 ;; _Lcd_Set_Cursor
1527 ;; _Lcd_Write_Char
1528 ;; _Read_Alarms_Temp
1529 ;; _Set_Sqwe
1530 ;; _Update_Current_Date_Time
1531 ;; _Vfd_Set_Brightness
1532 ;; _display_Intro
1533 ;; _display_Lcd_Layout
1534 ;; _edit_Date_Time
1535 ;; _format_Temperature
1536 ;; _update_Display
1537 ;; This function is called by:
1538 ;; Startup code after reset
1539 ;; This function uses a non-reentrant model
1540 ;;
1541
1542
1543 ;psect for function _main
1544 05A0 _main:
1545
1546 ;main.c: 45: TRISA0 = 0x01;
1547
1548 ;incstack = 0
1549 ; Regs used in _main: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
1550 05A0 1683 bsf 3,5 ;RP0=1, select bank1
1551 05A1 1303 bcf 3,6 ;RP1=0, select bank1
1552 05A2 1405 bsf 5,0 ;volatile
1553
1554 ;main.c: 47: TRISBbits.TRISB2 = 1;
1555 05A3 1506 bsf 6,2 ;volatile
1556
1557 ;main.c: 48: TRISBbits.TRISB4 = 1;
1558 05A4 1606 bsf 6,4 ;volatile
1559
1560 ;main.c: 49: TRISBbits.TRISB5 = 1;
1561 05A5 1686 bsf 6,5 ;volatile
1562
1563 ;main.c: 51: GIE = 0;
1564 05A6 138B bcf 11,7 ;volatile
1565
1566 ;main.c: 52: OPTION_REGbits.nRBPU = 0;
1567 05A7 1381 bcf 1,7 ;volatile
1568
1569 ;main.c: 53: INTE = 1;
1570 05A8 160B bsf 11,4 ;volatile
1571
1572 ;main.c: 54: GIE = 1;
1573 05A9 178B bsf 11,7 ;volatile
1574
1575 ;main.c: 56: TRISC = 0x00;
1576 05AA 0187 clrf 7 ;volatile
1577
1578 ;main.c: 57: PORTC = 0x00;
1579 05AB 1283 bcf 3,5 ;RP0=0, select bank0
1580 05AC 1303 bcf 3,6 ;RP1=0, select bank0
1581 05AD 0187 clrf 7 ;volatile
1582
1583 ;main.c: 59: TRISD = 0x00;
1584 05AE 1683 bsf 3,5 ;RP0=1, select bank1
1585 05AF 1303 bcf 3,6 ;RP1=0, select bank1
1586 05B0 0188 clrf 8 ;volatile
1587
1588 ;main.c: 60: PORTD = 0x00;
1589 05B1 1283 bcf 3,5 ;RP0=0, select bank0
1590 05B2 1303 bcf 3,6 ;RP1=0, select bank0
1591 05B3 0188 clrf 8 ;volatile
1592
1593 ;main.c: 71: I2C_Master_Init(100000);
1594 05B4 3000 movlw 0
1595 05B5 00F5 movwf I2C_Master_Init@freq_K+3
1596 05B6 3001 movlw 1
1597 05B7 00F4 movwf I2C_Master_Init@freq_K+2
1598 05B8 3086 movlw 134
1599 05B9 00F3 movwf I2C_Master_Init@freq_K+1
1600 05BA 30A0 movlw 160
1601 05BB 00F2 movwf I2C_Master_Init@freq_K
1602 05BC 160A 118A 27BA 120A 118A fcall _I2C_Master_Init
1603
1604 ;main.c: 80: Adc_Init();
1605 05C1 160A 118A 277F 120A 118A fcall _Adc_Init
1606
1607 ;main.c: 89: Lcd_Init();
1608 05C6 120A 158A 2603 120A 118A fcall _Lcd_Init
1609
1610 ;main.c: 98: Vfd_Set_Brightness(0);
1611 05CB 3000 movlw 0
1612 05CC 00F7 movwf Vfd_Set_Brightness@level
1613 05CD 00F8 movwf Vfd_Set_Brightness@level+1
1614 05CE 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness
1615
1616 ;main.c: 101: display_Intro();
1617 05D3 120A 158A 2379 120A 118A fcall _display_Intro
1618
1619 ;main.c: 102: display_Lcd_Layout();
1620 05D8 120A 158A 23BC 120A 118A fcall _display_Lcd_Layout
1621
1622 ;main.c: 120: Set_Sqwe(0x40);
1623 05DD 3040 movlw 64
1624 05DE 1283 bcf 3,5 ;RP0=0, select bank0
1625 05DF 1303 bcf 3,6 ;RP1=0, select bank0
1626 05E0 00AA movwf Set_Sqwe@contvalue
1627 05E1 3000 movlw 0
1628 05E2 00AB movwf Set_Sqwe@contvalue+1
1629 05E3 120A 158A 2107 120A 118A fcall _Set_Sqwe
1630
1631 ;main.c: 123: Vfd_Set_Brightness(3);
1632 05E8 3003 movlw 3
1633 05E9 00F7 movwf Vfd_Set_Brightness@level
1634 05EA 3000 movlw 0
1635 05EB 00F8 movwf Vfd_Set_Brightness@level+1
1636 05EC 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness
1637 05F1 l3250:
1638
1639 ;main.c: 137: if (update) {
1640 05F1 1683 bsf 3,5 ;RP0=1, select bank1
1641 05F2 1303 bcf 3,6 ;RP1=0, select bank1
1642 05F3 0850 movf _update^(0+128),w
1643 05F4 0451 iorwf (_update+1)^(0+128),w
1644 05F5 1903 btfsc 3,2
1645 05F6 2E46 goto l3260
1646
1647 ;main.c: 138: Lcd_Set_Cursor(1, 3);
1648 05F7 3003 movlw 3
1649 05F8 00D2 movwf ??_main^(0+128)
1650 05F9 0852 movf ??_main^(0+128),w
1651 05FA 00F6 movwf Lcd_Set_Cursor@b
1652 05FB 3001 movlw 1
1653 05FC 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1654
1655 ;main.c: 139: Lcd_Write_Char(':');
1656 0601 303A movlw 58
1657 0602 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
1658
1659 ;main.c: 140: Lcd_Set_Cursor(1, 6);
1660 0607 3006 movlw 6
1661 0608 1683 bsf 3,5 ;RP0=1, select bank1
1662 0609 1303 bcf 3,6 ;RP1=0, select bank1
1663 060A 00D2 movwf ??_main^(0+128)
1664 060B 0852 movf ??_main^(0+128),w
1665 060C 00F6 movwf Lcd_Set_Cursor@b
1666 060D 3001 movlw 1
1667 060E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1668
1669 ;main.c: 141: Lcd_Write_Char(':');
1670 0613 303A movlw 58
1671 0614 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
1672
1673 ;main.c: 142: Update_Current_Date_Time();
1674 0619 120A 158A 2710 120A 118A fcall _Update_Current_Date_Time
1675
1676 ;main.c: 143: Read_Alarms_Temp();
1677 061E 120A 118A 26C8 120A 118A fcall _Read_Alarms_Temp
1678
1679 ;main.c: 144: Get_Alarm_Status();
1680 0623 120A 158A 205D 120A 118A fcall _Get_Alarm_Status
1681
1682 ;main.c: 145: format_Temperature();
1683 0628 120A 158A 224E 120A 118A fcall _format_Temperature
1684
1685 ;main.c: 146: update_Display();
1686 062D 120A 118A 2473 120A 118A fcall _update_Display
1687
1688 ;main.c: 147: update = 0;
1689 0632 1683 bsf 3,5 ;RP0=1, select bank1
1690 0633 1303 bcf 3,6 ;RP1=0, select bank1
1691 0634 01D0 clrf _update^(0+128)
1692 0635 01D1 clrf (_update+1)^(0+128)
1693
1694 ;main.c: 148: _delay((unsigned long)((500)*(20000000/4000.0)));
1695 0636 300D movlw 13
1696 0637 1683 bsf 3,5 ;RP0=1, select bank1
1697 0638 1303 bcf 3,6 ;RP1=0, select bank1
1698 0639 00D4 movwf (??_main^(0+128)+2)
1699 063A 30AF movlw 175
1700 063B 00D3 movwf (??_main^(0+128)+1)
1701 063C 30B5 movlw 181
1702 063D 00D2 movwf ??_main^(0+128)
1703 063E u2927:
1704 063E 0BD2 decfsz ??_main^(0+128),f
1705 063F 2E3E goto u2927
1706 0640 0BD3 decfsz (??_main^(0+128)+1),f
1707 0641 2E3E goto u2927
1708 0642 0BD4 decfsz (??_main^(0+128)+2),f
1709 0643 2E3E goto u2927
1710 0644 2E45 nop2
1711
1712 ;main.c: 149: } else {
1713 0645 2E68 goto l3262
1714 0646 l3260:
1715
1716 ;main.c: 150: Lcd_Set_Cursor(1, 3);
1717 0646 3003 movlw 3
1718 0647 00D2 movwf ??_main^(0+128)
1719 0648 0852 movf ??_main^(0+128),w
1720 0649 00F6 movwf Lcd_Set_Cursor@b
1721 064A 3001 movlw 1
1722 064B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1723
1724 ;main.c: 151: Lcd_Write_Char(' ');
1725 0650 3020 movlw 32
1726 0651 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
1727
1728 ;main.c: 152: Lcd_Set_Cursor(1, 6);
1729 0656 3006 movlw 6
1730 0657 1683 bsf 3,5 ;RP0=1, select bank1
1731 0658 1303 bcf 3,6 ;RP1=0, select bank1
1732 0659 00D2 movwf ??_main^(0+128)
1733 065A 0852 movf ??_main^(0+128),w
1734 065B 00F6 movwf Lcd_Set_Cursor@b
1735 065C 3001 movlw 1
1736 065D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1737
1738 ;main.c: 153: Lcd_Write_Char(' ');
1739 0662 3020 movlw 32
1740 0663 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
1741 0668 l3262:
1742
1743 ;main.c: 161: if (!RB2) {
1744 0668 1283 bcf 3,5 ;RP0=0, select bank0
1745 0669 1303 bcf 3,6 ;RP1=0, select bank0
1746 066A 1906 btfsc 6,2 ;volatile
1747 066B 2E7F goto l3268
1748
1749 ;main.c: 162: _delay((unsigned long)((250)*(20000000/4000.0)));
1750 066C 3007 movlw 7
1751 066D 1683 bsf 3,5 ;RP0=1, select bank1
1752 066E 1303 bcf 3,6 ;RP1=0, select bank1
1753 066F 00D4 movwf (??_main^(0+128)+2)
1754 0670 3058 movlw 88
1755 0671 00D3 movwf (??_main^(0+128)+1)
1756 0672 3059 movlw 89
1757 0673 00D2 movwf ??_main^(0+128)
1758 0674 u2937:
1759 0674 0BD2 decfsz ??_main^(0+128),f
1760 0675 2E74 goto u2937
1761 0676 0BD3 decfsz (??_main^(0+128)+1),f
1762 0677 2E74 goto u2937
1763 0678 0BD4 decfsz (??_main^(0+128)+2),f
1764 0679 2E74 goto u2937
1765
1766 ;main.c: 163: edit_Date_Time();
1767 067A 120A 118A 204C 120A 118A fcall _edit_Date_Time
1768 067F l3268:
1769
1770 ;main.c: 175: ldr = Adc_Read(0);
1771 067F 3000 movlw 0
1772 0680 00F2 movwf Adc_Read@channel
1773 0681 00F3 movwf Adc_Read@channel+1
1774 0682 120A 158A 2040 120A 118A fcall _Adc_Read
1775 0687 0873 movf ?_Adc_Read+1,w
1776 0688 00FB movwf _ldr+1
1777 0689 0872 movf ?_Adc_Read,w
1778 068A 00FA movwf _ldr
1779
1780 ;main.c: 177: if (brtlvl_chg != ldr/256) {
1781 068B 087B movf _ldr+1,w
1782 068C 1683 bsf 3,5 ;RP0=1, select bank1
1783 068D 1303 bcf 3,6 ;RP1=0, select bank1
1784 068E 00D3 movwf (??_main^(0+128)+1)
1785 068F 087A movf _ldr,w
1786 0690 00D2 movwf ??_main^(0+128)
1787 0691 0853 movf (??_main^(0+128)+1),w
1788 0692 00D2 movwf ??_main^(0+128)
1789 0693 01D3 clrf (??_main^(0+128)+1)
1790 0694 1283 bcf 3,5 ;RP0=0, select bank0
1791 0695 1303 bcf 3,6 ;RP1=0, select bank0
1792 0696 0868 movf _brtlvl_chg+1,w
1793 0697 1683 bsf 3,5 ;RP0=1, select bank1
1794 0698 1303 bcf 3,6 ;RP1=0, select bank1
1795 0699 0653 xorwf (??_main+1)^(0+128),w
1796 069A 1D03 skipz
1797 069B 2EA2 goto u2915
1798 069C 1283 bcf 3,5 ;RP0=0, select bank0
1799 069D 1303 bcf 3,6 ;RP1=0, select bank0
1800 069E 0867 movf _brtlvl_chg,w
1801 069F 1683 bsf 3,5 ;RP0=1, select bank1
1802 06A0 1303 bcf 3,6 ;RP1=0, select bank1
1803 06A1 0652 xorwf ??_main^(0+128),w
1804 06A2 u2915:
1805 06A2 1903 skipnz
1806 06A3 2DF1 goto l3250
1807
1808 ;main.c: 178: Vfd_Set_Brightness(ldr/256);
1809 06A4 087B movf _ldr+1,w
1810 06A5 00D3 movwf (??_main^(0+128)+1)
1811 06A6 087A movf _ldr,w
1812 06A7 00D2 movwf ??_main^(0+128)
1813 06A8 0853 movf (??_main^(0+128)+1),w
1814 06A9 00D2 movwf ??_main^(0+128)
1815 06AA 01D3 clrf (??_main^(0+128)+1)
1816 06AB 0852 movf ??_main^(0+128),w
1817 06AC 00F7 movwf Vfd_Set_Brightness@level
1818 06AD 0853 movf (??_main+1)^(0+128),w
1819 06AE 00F8 movwf Vfd_Set_Brightness@level+1
1820 06AF 120A 158A 20BE 120A 118A fcall _Vfd_Set_Brightness
1821
1822 ;main.c: 179: brtlvl_chg = ldr/256;
1823 06B4 087B movf _ldr+1,w
1824 06B5 1683 bsf 3,5 ;RP0=1, select bank1
1825 06B6 1303 bcf 3,6 ;RP1=0, select bank1
1826 06B7 00D3 movwf (??_main^(0+128)+1)
1827 06B8 087A movf _ldr,w
1828 06B9 00D2 movwf ??_main^(0+128)
1829 06BA 0853 movf (??_main^(0+128)+1),w
1830 06BB 00D2 movwf ??_main^(0+128)
1831 06BC 01D3 clrf (??_main^(0+128)+1)
1832 06BD 0852 movf ??_main^(0+128),w
1833 06BE 1283 bcf 3,5 ;RP0=0, select bank0
1834 06BF 1303 bcf 3,6 ;RP1=0, select bank0
1835 06C0 00E7 movwf _brtlvl_chg
1836 06C1 1683 bsf 3,5 ;RP0=1, select bank1
1837 06C2 1303 bcf 3,6 ;RP1=0, select bank1
1838 06C3 0853 movf (??_main+1)^(0+128),w
1839 06C4 1283 bcf 3,5 ;RP0=0, select bank0
1840 06C5 1303 bcf 3,6 ;RP1=0, select bank0
1841 06C6 00E8 movwf _brtlvl_chg+1
1842 06C7 2DF1 goto l3250
1843 06C8 __end_of_main:
1844
1845 psect text1
1846 0473 __ptext1:
1847 ;; *************** function _update_Display *****************
1848 ;; Defined at:
1849 ;; line 279 in file "main.c"
1850 ;; Parameters: Size Location Type
1851 ;; None
1852 ;; Auto vars: Size Location Type
1853 ;; None
1854 ;; Return value: Size Location Type
1855 ;; 1 wreg void
1856 ;; Registers used:
1857 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
1858 ;; Tracked objects:
1859 ;; On entry : 0/0
1860 ;; On exit : 0/0
1861 ;; Unchanged: 0/0
1862 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1863 ;; Params: 0 0 0 0 0
1864 ;; Locals: 0 0 0 0 0
1865 ;; Temps: 0 1 0 0 0
1866 ;; Totals: 0 1 0 0 0
1867 ;;Total ram usage: 1 bytes
1868 ;; Hardware stack levels used: 1
1869 ;; Hardware stack levels required when called: 4
1870 ;; This function calls:
1871 ;; _Get_WeekDay
1872 ;; _Lcd_Set_Cursor
1873 ;; _Lcd_Write_Char
1874 ;; _Lcd_Write_String
1875 ;; ___lwdiv
1876 ;; _alarm
1877 ;; _display_Digit
1878 ;; This function is called by:
1879 ;; _main
1880 ;; This function uses a non-reentrant model
1881 ;;
1882
1883
1884 ;psect for function _update_Display
1885 0473 _update_Display:
1886
1887 ;main.c: 281: Lcd_Set_Cursor(1, 1);
1888
1889 ;incstack = 0
1890 ; Regs used in _update_Display: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
1891 0473 01F6 clrf Lcd_Set_Cursor@b
1892 0474 0AF6 incf Lcd_Set_Cursor@b,f
1893 0475 3001 movlw 1
1894 0476 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1895
1896 ;main.c: 282: display_Digit(hour);
1897 047B 1283 bcf 3,5 ;RP0=0, select bank0
1898 047C 1303 bcf 3,6 ;RP1=0, select bank0
1899 047D 0860 movf _hour+1,w
1900 047E 00AD movwf display_Digit@data+1
1901 047F 085F movf _hour,w
1902 0480 00AC movwf display_Digit@data
1903 0481 120A 158A 2187 120A 118A fcall _display_Digit
1904
1905 ;main.c: 285: Lcd_Set_Cursor(1, 4);
1906 0486 3004 movlw 4
1907 0487 1283 bcf 3,5 ;RP0=0, select bank0
1908 0488 1303 bcf 3,6 ;RP1=0, select bank0
1909 0489 00C6 movwf ??_update_Display
1910 048A 0846 movf ??_update_Display,w
1911 048B 00F6 movwf Lcd_Set_Cursor@b
1912 048C 3001 movlw 1
1913 048D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1914
1915 ;main.c: 286: display_Digit(min);
1916 0492 1283 bcf 3,5 ;RP0=0, select bank0
1917 0493 1303 bcf 3,6 ;RP1=0, select bank0
1918 0494 0862 movf _min+1,w
1919 0495 00AD movwf display_Digit@data+1
1920 0496 0861 movf _min,w
1921 0497 00AC movwf display_Digit@data
1922 0498 120A 158A 2187 120A 118A fcall _display_Digit
1923
1924 ;main.c: 289: Lcd_Set_Cursor(1, 7);
1925 049D 3007 movlw 7
1926 049E 1283 bcf 3,5 ;RP0=0, select bank0
1927 049F 1303 bcf 3,6 ;RP1=0, select bank0
1928 04A0 00C6 movwf ??_update_Display
1929 04A1 0846 movf ??_update_Display,w
1930 04A2 00F6 movwf Lcd_Set_Cursor@b
1931 04A3 3001 movlw 1
1932 04A4 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1933
1934 ;main.c: 290: display_Digit(sec);
1935 04A9 1283 bcf 3,5 ;RP0=0, select bank0
1936 04AA 1303 bcf 3,6 ;RP1=0, select bank0
1937 04AB 0864 movf _sec+1,w
1938 04AC 00AD movwf display_Digit@data+1
1939 04AD 0863 movf _sec,w
1940 04AE 00AC movwf display_Digit@data
1941 04AF 120A 158A 2187 120A 118A fcall _display_Digit
1942
1943 ;main.c: 293: Lcd_Set_Cursor(2, 6);
1944 04B4 3006 movlw 6
1945 04B5 1283 bcf 3,5 ;RP0=0, select bank0
1946 04B6 1303 bcf 3,6 ;RP1=0, select bank0
1947 04B7 00C6 movwf ??_update_Display
1948 04B8 0846 movf ??_update_Display,w
1949 04B9 00F6 movwf Lcd_Set_Cursor@b
1950 04BA 3002 movlw 2
1951 04BB 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1952
1953 ;main.c: 294: display_Digit(date);
1954 04C0 1283 bcf 3,5 ;RP0=0, select bank0
1955 04C1 1303 bcf 3,6 ;RP1=0, select bank0
1956 04C2 086C movf _date+1,w
1957 04C3 00AD movwf display_Digit@data+1
1958 04C4 086B movf _date,w
1959 04C5 00AC movwf display_Digit@data
1960 04C6 120A 158A 2187 120A 118A fcall _display_Digit
1961
1962 ;main.c: 297: Lcd_Set_Cursor(2, 9);
1963 04CB 3009 movlw 9
1964 04CC 1283 bcf 3,5 ;RP0=0, select bank0
1965 04CD 1303 bcf 3,6 ;RP1=0, select bank0
1966 04CE 00C6 movwf ??_update_Display
1967 04CF 0846 movf ??_update_Display,w
1968 04D0 00F6 movwf Lcd_Set_Cursor@b
1969 04D1 3002 movlw 2
1970 04D2 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1971
1972 ;main.c: 298: display_Digit(month);
1973 04D7 1283 bcf 3,5 ;RP0=0, select bank0
1974 04D8 1303 bcf 3,6 ;RP1=0, select bank0
1975 04D9 086A movf _month+1,w
1976 04DA 00AD movwf display_Digit@data+1
1977 04DB 0869 movf _month,w
1978 04DC 00AC movwf display_Digit@data
1979 04DD 120A 158A 2187 120A 118A fcall _display_Digit
1980
1981 ;main.c: 301: Lcd_Set_Cursor(2, 12);
1982 04E2 300C movlw 12
1983 04E3 1283 bcf 3,5 ;RP0=0, select bank0
1984 04E4 1303 bcf 3,6 ;RP1=0, select bank0
1985 04E5 00C6 movwf ??_update_Display
1986 04E6 0846 movf ??_update_Display,w
1987 04E7 00F6 movwf Lcd_Set_Cursor@b
1988 04E8 3002 movlw 2
1989 04E9 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
1990
1991 ;main.c: 302: display_Digit(century);
1992 04EE 3014 movlw 20
1993 04EF 1283 bcf 3,5 ;RP0=0, select bank0
1994 04F0 1303 bcf 3,6 ;RP1=0, select bank0
1995 04F1 00AC movwf display_Digit@data
1996 04F2 3000 movlw 0
1997 04F3 00AD movwf display_Digit@data+1
1998 04F4 120A 158A 2187 120A 118A fcall _display_Digit
1999
2000 ;main.c: 305: Lcd_Set_Cursor(2, 14);
2001 04F9 300E movlw 14
2002 04FA 1283 bcf 3,5 ;RP0=0, select bank0
2003 04FB 1303 bcf 3,6 ;RP1=0, select bank0
2004 04FC 00C6 movwf ??_update_Display
2005 04FD 0846 movf ??_update_Display,w
2006 04FE 00F6 movwf Lcd_Set_Cursor@b
2007 04FF 3002 movlw 2
2008 0500 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2009
2010 ;main.c: 306: display_Digit(year);
2011 0505 1283 bcf 3,5 ;RP0=0, select bank0
2012 0506 1303 bcf 3,6 ;RP1=0, select bank0
2013 0507 085E movf _year+1,w
2014 0508 00AD movwf display_Digit@data+1
2015 0509 085D movf _year,w
2016 050A 00AC movwf display_Digit@data
2017 050B 120A 158A 2187 120A 118A fcall _display_Digit
2018
2019 ;main.c: 309: Lcd_Set_Cursor(2, 2);
2020 0510 3002 movlw 2
2021 0511 1283 bcf 3,5 ;RP0=0, select bank0
2022 0512 1303 bcf 3,6 ;RP1=0, select bank0
2023 0513 00C6 movwf ??_update_Display
2024 0514 0846 movf ??_update_Display,w
2025 0515 00F6 movwf Lcd_Set_Cursor@b
2026 0516 3002 movlw 2
2027 0517 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2028
2029 ;main.c: 310: Lcd_Write_String(Get_WeekDay(day));
2030 051C 1683 bsf 3,5 ;RP0=1, select bank1
2031 051D 1303 bcf 3,6 ;RP1=0, select bank1
2032 051E 0823 movf (_day+1)^(0+128),w
2033 051F 1283 bcf 3,5 ;RP0=0, select bank0
2034 0520 1303 bcf 3,6 ;RP1=0, select bank0
2035 0521 00BD movwf Get_WeekDay@d+1
2036 0522 1683 bsf 3,5 ;RP0=1, select bank1
2037 0523 1303 bcf 3,6 ;RP1=0, select bank1
2038 0524 0822 movf _day^(0+128),w
2039 0525 1283 bcf 3,5 ;RP0=0, select bank0
2040 0526 1303 bcf 3,6 ;RP1=0, select bank0
2041 0527 00BC movwf Get_WeekDay@d
2042 0528 160A 118A 278B 120A 118A fcall _Get_WeekDay
2043 052D 1283 bcf 3,5 ;RP0=0, select bank0
2044 052E 1303 bcf 3,6 ;RP1=0, select bank0
2045 052F 00BF movwf Lcd_Write_String@a
2046 0530 3000 movlw 0
2047 0531 00C0 movwf Lcd_Write_String@a+1
2048 0532 120A 158A 2338 120A 118A fcall _Lcd_Write_String
2049
2050 ;main.c: 313: Lcd_Set_Cursor(1, 10);
2051 0537 300A movlw 10
2052 0538 1283 bcf 3,5 ;RP0=0, select bank0
2053 0539 1303 bcf 3,6 ;RP1=0, select bank0
2054 053A 00C6 movwf ??_update_Display
2055 053B 0846 movf ??_update_Display,w
2056 053C 00F6 movwf Lcd_Set_Cursor@b
2057 053D 3001 movlw 1
2058 053E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2059
2060 ;main.c: 314: Lcd_Write_Char(temp_sign);
2061 0543 1283 bcf 3,5 ;RP0=0, select bank0
2062 0544 1303 bcf 3,6 ;RP1=0, select bank0
2063 0545 086D movf _temp_sign,w
2064 0546 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2065
2066 ;main.c: 315: display_Digit(temperature_msb);
2067 054B 1283 bcf 3,5 ;RP0=0, select bank0
2068 054C 1303 bcf 3,6 ;RP1=0, select bank0
2069 054D 0858 movf _temperature_msb+1,w
2070 054E 00AD movwf display_Digit@data+1
2071 054F 0857 movf _temperature_msb,w
2072 0550 00AC movwf display_Digit@data
2073 0551 120A 158A 2187 120A 118A fcall _display_Digit
2074
2075 ;main.c: 316: Lcd_Set_Cursor(1, 14);
2076 0556 300E movlw 14
2077 0557 1283 bcf 3,5 ;RP0=0, select bank0
2078 0558 1303 bcf 3,6 ;RP1=0, select bank0
2079 0559 00C6 movwf ??_update_Display
2080 055A 0846 movf ??_update_Display,w
2081 055B 00F6 movwf Lcd_Set_Cursor@b
2082 055C 3001 movlw 1
2083 055D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2084
2085 ;main.c: 317: Lcd_Write_Char(((temperature_lsb / 10) + '0'));
2086 0562 300A movlw 10
2087 0563 1283 bcf 3,5 ;RP0=0, select bank0
2088 0564 1303 bcf 3,6 ;RP1=0, select bank0
2089 0565 00A0 movwf ___lwdiv@divisor
2090 0566 3000 movlw 0
2091 0567 00A1 movwf ___lwdiv@divisor+1
2092 0568 085A movf _temperature_lsb+1,w
2093 0569 00A3 movwf ___lwdiv@dividend+1
2094 056A 0859 movf _temperature_lsb,w
2095 056B 00A2 movwf ___lwdiv@dividend
2096 056C 120A 158A 22FA 120A 118A fcall ___lwdiv
2097 0571 1283 bcf 3,5 ;RP0=0, select bank0
2098 0572 1303 bcf 3,6 ;RP1=0, select bank0
2099 0573 0820 movf ?___lwdiv,w
2100 0574 3E30 addlw 48
2101 0575 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2102
2103 ;main.c: 320: if (min == 00 && sec == 00) {
2104 057A 1283 bcf 3,5 ;RP0=0, select bank0
2105 057B 1303 bcf 3,6 ;RP1=0, select bank0
2106 057C 0861 movf _min,w
2107 057D 0462 iorwf _min+1,w
2108 057E 1D03 btfss 3,2
2109 057F 2D8D goto l2978
2110 0580 0863 movf _sec,w
2111 0581 0464 iorwf _sec+1,w
2112 0582 1D03 btfss 3,2
2113 0583 2D8D goto l2978
2114
2115 ;main.c: 321: alarm(2);
2116 0584 3002 movlw 2
2117 0585 00F2 movwf alarm@numberOfBeeps
2118 0586 3000 movlw 0
2119 0587 00F3 movwf alarm@numberOfBeeps+1
2120 0588 120A 158A 2403 120A 118A fcall _alarm
2121 058D l2978:
2122
2123 ;main.c: 325: if (min == 30 && sec == 00) {
2124 058D 301E movlw 30
2125 058E 1283 bcf 3,5 ;RP0=0, select bank0
2126 058F 1303 bcf 3,6 ;RP1=0, select bank0
2127 0590 0661 xorwf _min,w
2128 0591 0462 iorwf _min+1,w
2129 0592 1D03 btfss 3,2
2130 0593 0008 return
2131 0594 0863 movf _sec,w
2132 0595 0464 iorwf _sec+1,w
2133 0596 1D03 btfss 3,2
2134 0597 0008 return
2135
2136 ;main.c: 326: alarm(1);
2137 0598 3001 movlw 1
2138 0599 00F2 movwf alarm@numberOfBeeps
2139 059A 3000 movlw 0
2140 059B 00F3 movwf alarm@numberOfBeeps+1
2141 059C 120A 158A 2403 fcall _alarm
2142 059F 0008 return
2143 05A0 __end_of_update_Display:
2144
2145 psect text2
2146 0C03 __ptext2:
2147 ;; *************** function _alarm *****************
2148 ;; Defined at:
2149 ;; line 4 in file "beep.c"
2150 ;; Parameters: Size Location Type
2151 ;; numberOfBeep 2 2[COMMON] unsigned int
2152 ;; Auto vars: Size Location Type
2153 ;; j 2 2[BANK0 ] int
2154 ;; i 2 0[BANK0 ] int
2155 ;; Return value: Size Location Type
2156 ;; 1 wreg void
2157 ;; Registers used:
2158 ;; wreg, status,2, btemp+1
2159 ;; Tracked objects:
2160 ;; On entry : 0/0
2161 ;; On exit : 0/0
2162 ;; Unchanged: 0/0
2163 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2164 ;; Params: 2 0 0 0 0
2165 ;; Locals: 0 4 0 0 0
2166 ;; Temps: 3 0 0 0 0
2167 ;; Totals: 5 4 0 0 0
2168 ;;Total ram usage: 9 bytes
2169 ;; Hardware stack levels used: 1
2170 ;; Hardware stack levels required when called: 1
2171 ;; This function calls:
2172 ;; Nothing
2173 ;; This function is called by:
2174 ;; _update_Display
2175 ;; This function uses a non-reentrant model
2176 ;;
2177
2178
2179 ;psect for function _alarm
2180 0C03 _alarm:
2181
2182 ;beep.c: 5: for (int i = 0; i < numberOfBeeps; i++) {
2183
2184 ;incstack = 0
2185 ; Regs used in _alarm: [wreg+status,2+btemp+1]
2186 0C03 1283 bcf 3,5 ;RP0=0, select bank0
2187 0C04 1303 bcf 3,6 ;RP1=0, select bank0
2188 0C05 01A0 clrf alarm@i
2189 0C06 01A1 clrf alarm@i+1
2190 0C07 l540:
2191 0C07 0873 movf alarm@numberOfBeeps+1,w
2192 0C08 0221 subwf alarm@i+1,w
2193 0C09 1D03 skipz
2194 0C0A 2C0D goto u2465
2195 0C0B 0872 movf alarm@numberOfBeeps,w
2196 0C0C 0220 subwf alarm@i,w
2197 0C0D u2465:
2198 0C0D 1803 btfsc 3,0
2199 0C0E 0008 return
2200
2201 ;beep.c: 6: for (int j = 0; j < 250; j++) {
2202 0C0F 01A2 clrf alarm@j
2203 0C10 01A3 clrf alarm@j+1
2204 0C11 l542:
2205
2206 ;beep.c: 7: RD1 = 1;
2207 0C11 1283 bcf 3,5 ;RP0=0, select bank0
2208 0C12 1303 bcf 3,6 ;RP1=0, select bank0
2209 0C13 1488 bsf 8,1 ;volatile
2210
2211 ;beep.c: 8: _delay((unsigned long)((375)*(20000000/4000000.0)));
2212 0C14 3003 movlw 3
2213 0C15 00F5 movwf ??_alarm+1
2214 0C16 306E movlw 110
2215 0C17 00F4 movwf ??_alarm
2216 0C18 u2947:
2217 0C18 0BF4 decfsz ??_alarm,f
2218 0C19 2C18 goto u2947
2219 0C1A 0BF5 decfsz ??_alarm+1,f
2220 0C1B 2C18 goto u2947
2221
2222 ;beep.c: 9: RD1 = 0;
2223 0C1C 1283 bcf 3,5 ;RP0=0, select bank0
2224 0C1D 1303 bcf 3,6 ;RP1=0, select bank0
2225 0C1E 1088 bcf 8,1 ;volatile
2226
2227 ;beep.c: 10: _delay((unsigned long)((125)*(20000000/4000000.0)));
2228 0C1F 30D0 movlw 208
2229 0C20 00F4 movwf ??_alarm
2230 0C21 u2957:
2231 0C21 0BF4 decfsz ??_alarm,f
2232 0C22 2C21 goto u2957
2233
2234 ;beep.c: 11: }
2235 0C23 3001 movlw 1
2236 0C24 1283 bcf 3,5 ;RP0=0, select bank0
2237 0C25 1303 bcf 3,6 ;RP1=0, select bank0
2238 0C26 07A2 addwf alarm@j,f
2239 0C27 1803 skipnc
2240 0C28 0AA3 incf alarm@j+1,f
2241 0C29 3000 movlw 0
2242 0C2A 07A3 addwf alarm@j+1,f
2243 0C2B 0823 movf alarm@j+1,w
2244 0C2C 3A80 xorlw 128
2245 0C2D 00FF movwf 127
2246 0C2E 3080 movlw 128
2247 0C2F 027F subwf 127,w
2248 0C30 1D03 skipz
2249 0C31 2C34 goto u2455
2250 0C32 30FA movlw 250
2251 0C33 0222 subwf alarm@j,w
2252 0C34 u2455:
2253 0C34 1C03 skipc
2254 0C35 2C11 goto l542
2255
2256 ;beep.c: 13: _delay((unsigned long)((500)*(20000000/4000.0)));
2257 0C36 300D movlw 13
2258 0C37 00F6 movwf ??_alarm+2
2259 0C38 30AF movlw 175
2260 0C39 00F5 movwf ??_alarm+1
2261 0C3A 30B6 movlw 182
2262 0C3B 00F4 movwf ??_alarm
2263 0C3C u2967:
2264 0C3C 0BF4 decfsz ??_alarm,f
2265 0C3D 2C3C goto u2967
2266 0C3E 0BF5 decfsz ??_alarm+1,f
2267 0C3F 2C3C goto u2967
2268 0C40 0BF6 decfsz ??_alarm+2,f
2269 0C41 2C3C goto u2967
2270 0C42 0000 nop
2271
2272 ;beep.c: 14: }
2273 0C43 3001 movlw 1
2274 0C44 1283 bcf 3,5 ;RP0=0, select bank0
2275 0C45 1303 bcf 3,6 ;RP1=0, select bank0
2276 0C46 07A0 addwf alarm@i,f
2277 0C47 1803 skipnc
2278 0C48 0AA1 incf alarm@i+1,f
2279 0C49 3000 movlw 0
2280 0C4A 07A1 addwf alarm@i+1,f
2281 0C4B 2C07 goto l540
2282 0C4C __end_of_alarm:
2283
2284 psect text3
2285 0A4E __ptext3:
2286 ;; *************** function _format_Temperature *****************
2287 ;; Defined at:
2288 ;; line 218 in file "main.c"
2289 ;; Parameters: Size Location Type
2290 ;; None
2291 ;; Auto vars: Size Location Type
2292 ;; None
2293 ;; Return value: Size Location Type
2294 ;; 1 wreg void
2295 ;; Registers used:
2296 ;; wreg, status,2, status,0, pclath, cstack
2297 ;; Tracked objects:
2298 ;; On entry : 0/0
2299 ;; On exit : 0/0
2300 ;; Unchanged: 0/0
2301 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2302 ;; Params: 0 0 0 0 0
2303 ;; Locals: 0 0 0 0 0
2304 ;; Temps: 1 0 0 0 0
2305 ;; Totals: 1 0 0 0 0
2306 ;;Total ram usage: 1 bytes
2307 ;; Hardware stack levels used: 1
2308 ;; Hardware stack levels required when called: 2
2309 ;; This function calls:
2310 ;; ___wmul
2311 ;; This function is called by:
2312 ;; _main
2313 ;; This function uses a non-reentrant model
2314 ;;
2315
2316
2317 ;psect for function _format_Temperature
2318 0A4E _format_Temperature:
2319
2320 ;main.c: 222: if (temperature_msb < 0) {
2321
2322 ;incstack = 0
2323 ; Regs used in _format_Temperature: [wreg+status,2+status,0+pclath+cstack]
2324 0A4E 1283 bcf 3,5 ;RP0=0, select bank0
2325 0A4F 1303 bcf 3,6 ;RP1=0, select bank0
2326 0A50 1FD8 btfss _temperature_msb+1,7
2327 0A51 2A67 goto l2400
2328
2329 ;main.c: 223: temperature_msb *= -1;
2330 0A52 30FF movlw 255
2331 0A53 00F2 movwf ___wmul@multiplier
2332 0A54 30FF movlw 255
2333 0A55 00F3 movwf ___wmul@multiplier+1
2334 0A56 0858 movf _temperature_msb+1,w
2335 0A57 00F5 movwf ___wmul@multiplicand+1
2336 0A58 0857 movf _temperature_msb,w
2337 0A59 00F4 movwf ___wmul@multiplicand
2338 0A5A 120A 158A 209D 120A 158A fcall ___wmul
2339 0A5F 0873 movf ?___wmul+1,w
2340 0A60 1283 bcf 3,5 ;RP0=0, select bank0
2341 0A61 1303 bcf 3,6 ;RP1=0, select bank0
2342 0A62 00D8 movwf _temperature_msb+1
2343 0A63 0872 movf ?___wmul,w
2344 0A64 00D7 movwf _temperature_msb
2345
2346 ;main.c: 224: temp_sign = '-';
2347 0A65 302D movlw 45
2348 0A66 2A68 goto L1
2349 0A67 l2400:
2350 ;main.c: 225: } else {
2351
2352
2353 ;main.c: 226: temp_sign = '+';
2354 0A67 302B movlw 43
2355 0A68 L1:
2356 0A68 00F8 movwf ??_format_Temperature
2357 0A69 0878 movf ??_format_Temperature,w
2358 0A6A 00ED movwf _temp_sign
2359
2360 ;main.c: 230: temperature_lsb >>= 6;
2361 0A6B 3006 movlw 6
2362 0A6C u1735:
2363 0A6C 1003 clrc
2364 0A6D 0CDA rrf _temperature_lsb+1,f
2365 0A6E 0CD9 rrf _temperature_lsb,f
2366 0A6F 3EFF addlw -1
2367 0A70 1D03 skipz
2368 0A71 2A6C goto u1735
2369
2370 ;main.c: 233: temperature_lsb *= 25;
2371 0A72 3019 movlw 25
2372 0A73 00F2 movwf ___wmul@multiplier
2373 0A74 3000 movlw 0
2374 0A75 00F3 movwf ___wmul@multiplier+1
2375 0A76 085A movf _temperature_lsb+1,w
2376 0A77 00F5 movwf ___wmul@multiplicand+1
2377 0A78 0859 movf _temperature_lsb,w
2378 0A79 00F4 movwf ___wmul@multiplicand
2379 0A7A 120A 158A 209D fcall ___wmul
2380 0A7D 0873 movf ?___wmul+1,w
2381 0A7E 1283 bcf 3,5 ;RP0=0, select bank0
2382 0A7F 1303 bcf 3,6 ;RP1=0, select bank0
2383 0A80 00DA movwf _temperature_lsb+1
2384 0A81 0872 movf ?___wmul,w
2385 0A82 00D9 movwf _temperature_lsb
2386 0A83 0008 return
2387 0A84 __end_of_format_Temperature:
2388
2389 psect text4
2390 004C __ptext4:
2391 ;; *************** function _edit_Date_Time *****************
2392 ;; Defined at:
2393 ;; line 349 in file "main.c"
2394 ;; Parameters: Size Location Type
2395 ;; None
2396 ;; Auto vars: Size Location Type
2397 ;; sec_org 2 53[BANK0 ] unsigned int
2398 ;; date_org 2 51[BANK0 ] unsigned int
2399 ;; month_org 2 49[BANK0 ] unsigned int
2400 ;; year_org 2 47[BANK0 ] unsigned int
2401 ;; min_org 2 45[BANK0 ] unsigned int
2402 ;; hour_org 2 43[BANK0 ] unsigned int
2403 ;; updateRTC 2 0 int
2404 ;; Return value: Size Location Type
2405 ;; 1 wreg void
2406 ;; Registers used:
2407 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
2408 ;; Tracked objects:
2409 ;; On entry : 0/0
2410 ;; On exit : 0/0
2411 ;; Unchanged: 0/0
2412 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2413 ;; Params: 0 0 0 0 0
2414 ;; Locals: 0 14 0 0 0
2415 ;; Temps: 0 3 0 0 0
2416 ;; Totals: 0 17 0 0 0
2417 ;;Total ram usage: 17 bytes
2418 ;; Hardware stack levels used: 1
2419 ;; Hardware stack levels required when called: 4
2420 ;; This function calls:
2421 ;; _Get_DayOfWeek
2422 ;; _Get_Days_In_Month
2423 ;; _Get_WeekDay
2424 ;; _Lcd_Set_Cursor
2425 ;; _Lcd_Write_Char
2426 ;; _Lcd_Write_String
2427 ;; _Set_Date
2428 ;; _Set_DayOfWeek
2429 ;; _Set_Time
2430 ;; _display_Digit
2431 ;; This function is called by:
2432 ;; _main
2433 ;; This function uses a non-reentrant model
2434 ;;
2435
2436
2437 ;psect for function _edit_Date_Time
2438 004C _edit_Date_Time:
2439
2440 ;main.c: 355: unsigned int hour_org = hour;
2441
2442 ;incstack = 0
2443 ; Regs used in _edit_Date_Time: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
2444 004C 1283 bcf 3,5 ;RP0=0, select bank0
2445 004D 1303 bcf 3,6 ;RP1=0, select bank0
2446 004E 0860 movf _hour+1,w
2447 004F 00CC movwf edit_Date_Time@hour_org+1
2448 0050 085F movf _hour,w
2449 0051 00CB movwf edit_Date_Time@hour_org
2450
2451 ;main.c: 356: unsigned int min_org = min;
2452 0052 0862 movf _min+1,w
2453 0053 00CE movwf edit_Date_Time@min_org+1
2454 0054 0861 movf _min,w
2455 0055 00CD movwf edit_Date_Time@min_org
2456
2457 ;main.c: 357: unsigned int sec_org = sec;
2458 0056 0864 movf _sec+1,w
2459 0057 00D6 movwf edit_Date_Time@sec_org+1
2460 0058 0863 movf _sec,w
2461 0059 00D5 movwf edit_Date_Time@sec_org
2462
2463 ;main.c: 358: unsigned int year_org = year;
2464 005A 085E movf _year+1,w
2465 005B 00D0 movwf edit_Date_Time@year_org+1
2466 005C 085D movf _year,w
2467 005D 00CF movwf edit_Date_Time@year_org
2468
2469 ;main.c: 359: unsigned int month_org = month;
2470 005E 086A movf _month+1,w
2471 005F 00D2 movwf edit_Date_Time@month_org+1
2472 0060 0869 movf _month,w
2473 0061 00D1 movwf edit_Date_Time@month_org
2474
2475 ;main.c: 360: unsigned int date_org = date;
2476 0062 086C movf _date+1,w
2477 0063 00D4 movwf edit_Date_Time@date_org+1
2478 0064 086B movf _date,w
2479 0065 00D3 movwf edit_Date_Time@date_org
2480
2481 ;main.c: 362: Lcd_Set_Cursor(2, 16);
2482 0066 3010 movlw 16
2483 0067 00C6 movwf ??_edit_Date_Time
2484 0068 0846 movf ??_edit_Date_Time,w
2485 0069 00F6 movwf Lcd_Set_Cursor@b
2486 006A 3002 movlw 2
2487 006B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2488
2489 ;main.c: 363: Lcd_Write_Char('S');
2490 0070 3053 movlw 83
2491 0071 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2492 0076 2BE9 goto L2
2493 0077 l3004:
2494 ;main.c: 365: while (edit_datetime > 0 && edit_datetime < 7) {
2495
2496 ;main.c: 364: edit_datetime++;
2497
2498
2499 ;main.c: 368: Lcd_Set_Cursor(1, 3);
2500 0077 3003 movlw 3
2501 0078 00C6 movwf ??_edit_Date_Time
2502 0079 0846 movf ??_edit_Date_Time,w
2503 007A 00F6 movwf Lcd_Set_Cursor@b
2504 007B 3001 movlw 1
2505 007C 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2506
2507 ;main.c: 369: Lcd_Write_Char(':');
2508 0081 303A movlw 58
2509 0082 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2510
2511 ;main.c: 370: Lcd_Set_Cursor(1, 6);
2512 0087 3006 movlw 6
2513 0088 1283 bcf 3,5 ;RP0=0, select bank0
2514 0089 1303 bcf 3,6 ;RP1=0, select bank0
2515 008A 00C6 movwf ??_edit_Date_Time
2516 008B 0846 movf ??_edit_Date_Time,w
2517 008C 00F6 movwf Lcd_Set_Cursor@b
2518 008D 3001 movlw 1
2519 008E 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2520
2521 ;main.c: 371: Lcd_Write_Char(':');
2522 0093 303A movlw 58
2523 0094 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2524
2525 ;main.c: 373: switch (edit_datetime) {
2526 0099 2BBC goto l3188
2527 009A l3006:
2528
2529 ;main.c: 375: Lcd_Set_Cursor(2, 16);
2530 009A 3010 movlw 16
2531 009B 00C6 movwf ??_edit_Date_Time
2532 009C 0846 movf ??_edit_Date_Time,w
2533 009D 00F6 movwf Lcd_Set_Cursor@b
2534 009E 3002 movlw 2
2535 009F 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2536
2537 ;main.c: 376: Lcd_Write_Char('h');
2538 00A4 3068 movlw 104
2539 00A5 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2540
2541 ;main.c: 377: if (!RB5) {
2542 00AA 1283 bcf 3,5 ;RP0=0, select bank0
2543 00AB 1303 bcf 3,6 ;RP1=0, select bank0
2544 00AC 1A86 btfsc 6,5 ;volatile
2545 00AD 28E1 goto l181
2546
2547 ;main.c: 378: _delay((unsigned long)((250)*(20000000/4000.0)));
2548 00AE 3007 movlw 7
2549 00AF 1283 bcf 3,5 ;RP0=0, select bank0
2550 00B0 1303 bcf 3,6 ;RP1=0, select bank0
2551 00B1 00C8 movwf ??_edit_Date_Time+2
2552 00B2 3058 movlw 88
2553 00B3 00C7 movwf ??_edit_Date_Time+1
2554 00B4 3059 movlw 89
2555 00B5 00C6 movwf ??_edit_Date_Time
2556 00B6 u2977:
2557 00B6 0BC6 decfsz ??_edit_Date_Time,f
2558 00B7 28B6 goto u2977
2559 00B8 0BC7 decfsz ??_edit_Date_Time+1,f
2560 00B9 28B6 goto u2977
2561 00BA 0BC8 decfsz ??_edit_Date_Time+2,f
2562 00BB 28B6 goto u2977
2563
2564 ;main.c: 379: if (hour == 0) {
2565 00BC 1283 bcf 3,5 ;RP0=0, select bank0
2566 00BD 1303 bcf 3,6 ;RP1=0, select bank0
2567 00BE 085F movf _hour,w
2568 00BF 0460 iorwf _hour+1,w
2569 00C0 1D03 btfss 3,2
2570 00C1 28C7 goto l3016
2571
2572 ;main.c: 380: hour = 23;
2573 00C2 3017 movlw 23
2574 00C3 00DF movwf _hour
2575 00C4 3000 movlw 0
2576 00C5 00E0 movwf _hour+1
2577
2578 ;main.c: 381: } else {
2579 00C6 28CD goto l3018
2580 00C7 l3016:
2581
2582 ;main.c: 382: hour -= 1;
2583 00C7 3001 movlw 1
2584 00C8 02DF subwf _hour,f
2585 00C9 3000 movlw 0
2586 00CA 1C03 skipc
2587 00CB 03E0 decf _hour+1,f
2588 00CC 02E0 subwf _hour+1,f
2589 00CD l3018:
2590
2591 ;main.c: 384: Lcd_Set_Cursor(1, 1);
2592 00CD 01F6 clrf Lcd_Set_Cursor@b
2593 00CE 0AF6 incf Lcd_Set_Cursor@b,f
2594 00CF 3001 movlw 1
2595 00D0 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2596
2597 ;main.c: 385: display_Digit(hour);
2598 00D5 1283 bcf 3,5 ;RP0=0, select bank0
2599 00D6 1303 bcf 3,6 ;RP1=0, select bank0
2600 00D7 0860 movf _hour+1,w
2601 00D8 00AD movwf display_Digit@data+1
2602 00D9 085F movf _hour,w
2603 00DA 00AC movwf display_Digit@data
2604 00DB 120A 158A 2187 120A 118A fcall _display_Digit
2605
2606 ;main.c: 387: } else if (!RB4) {
2607 00E0 2BD7 goto l188
2608 00E1 l181:
2609 00E1 1A06 btfsc 6,4 ;volatile
2610 00E2 2BD7 goto l188
2611
2612 ;main.c: 388: _delay((unsigned long)((250)*(20000000/4000.0)));
2613 00E3 3007 movlw 7
2614 00E4 1283 bcf 3,5 ;RP0=0, select bank0
2615 00E5 1303 bcf 3,6 ;RP1=0, select bank0
2616 00E6 00C8 movwf ??_edit_Date_Time+2
2617 00E7 3058 movlw 88
2618 00E8 00C7 movwf ??_edit_Date_Time+1
2619 00E9 3059 movlw 89
2620 00EA 00C6 movwf ??_edit_Date_Time
2621 00EB u2987:
2622 00EB 0BC6 decfsz ??_edit_Date_Time,f
2623 00EC 28EB goto u2987
2624 00ED 0BC7 decfsz ??_edit_Date_Time+1,f
2625 00EE 28EB goto u2987
2626 00EF 0BC8 decfsz ??_edit_Date_Time+2,f
2627 00F0 28EB goto u2987
2628
2629 ;main.c: 389: if (hour + 1 > 23) {
2630 00F1 1283 bcf 3,5 ;RP0=0, select bank0
2631 00F2 1303 bcf 3,6 ;RP1=0, select bank0
2632 00F3 085F movf _hour,w
2633 00F4 3E01 addlw 1
2634 00F5 00C6 movwf ??_edit_Date_Time
2635 00F6 0860 movf _hour+1,w
2636 00F7 1803 skipnc
2637 00F8 3E01 addlw 1
2638 00F9 3E00 addlw 0
2639 00FA 00C7 movwf ??_edit_Date_Time+1
2640 00FB 3000 movlw 0
2641 00FC 0247 subwf ??_edit_Date_Time+1,w
2642 00FD 3018 movlw 24
2643 00FE 1903 skipnz
2644 00FF 0246 subwf ??_edit_Date_Time,w
2645 0100 1C03 skipc
2646 0101 2905 goto l3028
2647
2648 ;main.c: 390: hour = 0;
2649 0102 01DF clrf _hour
2650 0103 01E0 clrf _hour+1
2651
2652 ;main.c: 391: } else {
2653 0104 28CD goto l3018
2654 0105 l3028:
2655
2656 ;main.c: 392: hour += 1;
2657 0105 3001 movlw 1
2658 0106 07DF addwf _hour,f
2659 0107 1803 skipnc
2660 0108 0AE0 incf _hour+1,f
2661 0109 3000 movlw 0
2662 010A 07E0 addwf _hour+1,f
2663 010B 28CD goto l3018
2664 010C l3034:
2665 ;main.c: 395: Lcd_Set_Cursor(1, 1);
2666
2667
2668 ;main.c: 402: Lcd_Set_Cursor(2, 16);
2669 010C 3010 movlw 16
2670 010D 00C6 movwf ??_edit_Date_Time
2671 010E 0846 movf ??_edit_Date_Time,w
2672 010F 00F6 movwf Lcd_Set_Cursor@b
2673 0110 3002 movlw 2
2674 0111 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2675
2676 ;main.c: 403: Lcd_Write_Char('m');
2677 0116 306D movlw 109
2678 0117 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2679
2680 ;main.c: 404: if (!RB5) {
2681 011C 1283 bcf 3,5 ;RP0=0, select bank0
2682 011D 1303 bcf 3,6 ;RP1=0, select bank0
2683 011E 1A86 btfsc 6,5 ;volatile
2684 011F 2955 goto l190
2685
2686 ;main.c: 405: _delay((unsigned long)((250)*(20000000/4000.0)));
2687 0120 3007 movlw 7
2688 0121 1283 bcf 3,5 ;RP0=0, select bank0
2689 0122 1303 bcf 3,6 ;RP1=0, select bank0
2690 0123 00C8 movwf ??_edit_Date_Time+2
2691 0124 3058 movlw 88
2692 0125 00C7 movwf ??_edit_Date_Time+1
2693 0126 3059 movlw 89
2694 0127 00C6 movwf ??_edit_Date_Time
2695 0128 u2997:
2696 0128 0BC6 decfsz ??_edit_Date_Time,f
2697 0129 2928 goto u2997
2698 012A 0BC7 decfsz ??_edit_Date_Time+1,f
2699 012B 2928 goto u2997
2700 012C 0BC8 decfsz ??_edit_Date_Time+2,f
2701 012D 2928 goto u2997
2702
2703 ;main.c: 406: if (min == 0) {
2704 012E 1283 bcf 3,5 ;RP0=0, select bank0
2705 012F 1303 bcf 3,6 ;RP1=0, select bank0
2706 0130 0861 movf _min,w
2707 0131 0462 iorwf _min+1,w
2708 0132 1D03 btfss 3,2
2709 0133 2939 goto l3044
2710
2711 ;main.c: 407: min = 59;
2712 0134 303B movlw 59
2713 0135 00E1 movwf _min
2714 0136 3000 movlw 0
2715 0137 00E2 movwf _min+1
2716
2717 ;main.c: 408: } else {
2718 0138 293F goto l3046
2719 0139 l3044:
2720
2721 ;main.c: 409: min -= 1;
2722 0139 3001 movlw 1
2723 013A 02E1 subwf _min,f
2724 013B 3000 movlw 0
2725 013C 1C03 skipc
2726 013D 03E2 decf _min+1,f
2727 013E 02E2 subwf _min+1,f
2728 013F l3046:
2729
2730 ;main.c: 411: Lcd_Set_Cursor(1, 4);
2731 013F 3004 movlw 4
2732 0140 00C6 movwf ??_edit_Date_Time
2733 0141 0846 movf ??_edit_Date_Time,w
2734 0142 00F6 movwf Lcd_Set_Cursor@b
2735 0143 3001 movlw 1
2736 0144 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2737
2738 ;main.c: 412: display_Digit(min);
2739 0149 1283 bcf 3,5 ;RP0=0, select bank0
2740 014A 1303 bcf 3,6 ;RP1=0, select bank0
2741 014B 0862 movf _min+1,w
2742 014C 00AD movwf display_Digit@data+1
2743 014D 0861 movf _min,w
2744 014E 00AC movwf display_Digit@data
2745 014F 120A 158A 2187 120A 118A fcall _display_Digit
2746
2747 ;main.c: 414: } else if (!RB4) {
2748 0154 2BD7 goto l188
2749 0155 l190:
2750 0155 1A06 btfsc 6,4 ;volatile
2751 0156 2BD7 goto l188
2752
2753 ;main.c: 415: _delay((unsigned long)((250)*(20000000/4000.0)));
2754 0157 3007 movlw 7
2755 0158 1283 bcf 3,5 ;RP0=0, select bank0
2756 0159 1303 bcf 3,6 ;RP1=0, select bank0
2757 015A 00C8 movwf ??_edit_Date_Time+2
2758 015B 3058 movlw 88
2759 015C 00C7 movwf ??_edit_Date_Time+1
2760 015D 3059 movlw 89
2761 015E 00C6 movwf ??_edit_Date_Time
2762 015F u3007:
2763 015F 0BC6 decfsz ??_edit_Date_Time,f
2764 0160 295F goto u3007
2765 0161 0BC7 decfsz ??_edit_Date_Time+1,f
2766 0162 295F goto u3007
2767 0163 0BC8 decfsz ??_edit_Date_Time+2,f
2768 0164 295F goto u3007
2769
2770 ;main.c: 416: if (min + 1 > 59) {
2771 0165 1283 bcf 3,5 ;RP0=0, select bank0
2772 0166 1303 bcf 3,6 ;RP1=0, select bank0
2773 0167 0861 movf _min,w
2774 0168 3E01 addlw 1
2775 0169 00C6 movwf ??_edit_Date_Time
2776 016A 0862 movf _min+1,w
2777 016B 1803 skipnc
2778 016C 3E01 addlw 1
2779 016D 3E00 addlw 0
2780 016E 00C7 movwf ??_edit_Date_Time+1
2781 016F 3000 movlw 0
2782 0170 0247 subwf ??_edit_Date_Time+1,w
2783 0171 303C movlw 60
2784 0172 1903 skipnz
2785 0173 0246 subwf ??_edit_Date_Time,w
2786 0174 1C03 skipc
2787 0175 2979 goto l3056
2788
2789 ;main.c: 417: min = 0;
2790 0176 01E1 clrf _min
2791 0177 01E2 clrf _min+1
2792
2793 ;main.c: 418: } else {
2794 0178 293F goto l3046
2795 0179 l3056:
2796
2797 ;main.c: 419: min += 1;
2798 0179 3001 movlw 1
2799 017A 07E1 addwf _min,f
2800 017B 1803 skipnc
2801 017C 0AE2 incf _min+1,f
2802 017D 3000 movlw 0
2803 017E 07E2 addwf _min+1,f
2804 017F 293F goto l3046
2805 0180 l3062:
2806 ;main.c: 422: Lcd_Set_Cursor(1, 4);
2807
2808
2809 ;main.c: 429: Lcd_Set_Cursor(2, 16);
2810 0180 3010 movlw 16
2811 0181 00C6 movwf ??_edit_Date_Time
2812 0182 0846 movf ??_edit_Date_Time,w
2813 0183 00F6 movwf Lcd_Set_Cursor@b
2814 0184 3002 movlw 2
2815 0185 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2816
2817 ;main.c: 430: Lcd_Write_Char('s');
2818 018A 3073 movlw 115
2819 018B 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2820
2821 ;main.c: 431: if (!RB5) {
2822 0190 1283 bcf 3,5 ;RP0=0, select bank0
2823 0191 1303 bcf 3,6 ;RP1=0, select bank0
2824 0192 1A86 btfsc 6,5 ;volatile
2825 0193 29B4 goto l198
2826
2827 ;main.c: 432: _delay((unsigned long)((250)*(20000000/4000.0)));
2828 0194 3007 movlw 7
2829 0195 1283 bcf 3,5 ;RP0=0, select bank0
2830 0196 1303 bcf 3,6 ;RP1=0, select bank0
2831 0197 00C8 movwf ??_edit_Date_Time+2
2832 0198 3058 movlw 88
2833 0199 00C7 movwf ??_edit_Date_Time+1
2834 019A 3059 movlw 89
2835 019B 00C6 movwf ??_edit_Date_Time
2836 019C u3017:
2837 019C 0BC6 decfsz ??_edit_Date_Time,f
2838 019D 299C goto u3017
2839 019E 0BC7 decfsz ??_edit_Date_Time+1,f
2840 019F 299C goto u3017
2841 01A0 0BC8 decfsz ??_edit_Date_Time+2,f
2842 01A1 299C goto u3017
2843
2844 ;main.c: 433: if (sec == 0) {
2845 01A2 1283 bcf 3,5 ;RP0=0, select bank0
2846 01A3 1303 bcf 3,6 ;RP1=0, select bank0
2847 01A4 0863 movf _sec,w
2848 01A5 0464 iorwf _sec+1,w
2849 01A6 1D03 btfss 3,2
2850 01A7 29AD goto l3072
2851
2852 ;main.c: 434: sec = 59;
2853 01A8 303B movlw 59
2854 01A9 00E3 movwf _sec
2855 01AA 3000 movlw 0
2856 01AB 00E4 movwf _sec+1
2857
2858 ;main.c: 435: } else {
2859 01AC 29DE goto l3088
2860 01AD l3072:
2861
2862 ;main.c: 436: sec -= 1;
2863 01AD 3001 movlw 1
2864 01AE 02E3 subwf _sec,f
2865 01AF 3000 movlw 0
2866 01B0 1C03 skipc
2867 01B1 03E4 decf _sec+1,f
2868 01B2 02E4 subwf _sec+1,f
2869 01B3 29DE goto l3088
2870 01B4 l198:
2871 ;main.c: 440: if (sec_org != sec) {
2872
2873 ;main.c: 439: display_Digit(sec);
2874
2875 ;main.c: 438: Lcd_Set_Cursor(1, 7);
2876
2877 01B4 1A06 btfsc 6,4 ;volatile
2878 01B5 2BD7 goto l188
2879
2880 ;main.c: 445: _delay((unsigned long)((250)*(20000000/4000.0)));
2881 01B6 3007 movlw 7
2882 01B7 1283 bcf 3,5 ;RP0=0, select bank0
2883 01B8 1303 bcf 3,6 ;RP1=0, select bank0
2884 01B9 00C8 movwf ??_edit_Date_Time+2
2885 01BA 3058 movlw 88
2886 01BB 00C7 movwf ??_edit_Date_Time+1
2887 01BC 3059 movlw 89
2888 01BD 00C6 movwf ??_edit_Date_Time
2889 01BE u3027:
2890 01BE 0BC6 decfsz ??_edit_Date_Time,f
2891 01BF 29BE goto u3027
2892 01C0 0BC7 decfsz ??_edit_Date_Time+1,f
2893 01C1 29BE goto u3027
2894 01C2 0BC8 decfsz ??_edit_Date_Time+2,f
2895 01C3 29BE goto u3027
2896
2897 ;main.c: 446: if (sec + 1 > 59) {
2898 01C4 1283 bcf 3,5 ;RP0=0, select bank0
2899 01C5 1303 bcf 3,6 ;RP1=0, select bank0
2900 01C6 0863 movf _sec,w
2901 01C7 3E01 addlw 1
2902 01C8 00C6 movwf ??_edit_Date_Time
2903 01C9 0864 movf _sec+1,w
2904 01CA 1803 skipnc
2905 01CB 3E01 addlw 1
2906 01CC 3E00 addlw 0
2907 01CD 00C7 movwf ??_edit_Date_Time+1
2908 01CE 3000 movlw 0
2909 01CF 0247 subwf ??_edit_Date_Time+1,w
2910 01D0 303C movlw 60
2911 01D1 1903 skipnz
2912 01D2 0246 subwf ??_edit_Date_Time,w
2913 01D3 1C03 skipc
2914 01D4 29D8 goto l3086
2915
2916 ;main.c: 447: sec = 0;
2917 01D5 01E3 clrf _sec
2918 01D6 01E4 clrf _sec+1
2919
2920 ;main.c: 448: } else {
2921 01D7 29DE goto l3088
2922 01D8 l3086:
2923
2924 ;main.c: 449: sec += 1;
2925 01D8 3001 movlw 1
2926 01D9 07E3 addwf _sec,f
2927 01DA 1803 skipnc
2928 01DB 0AE4 incf _sec+1,f
2929 01DC 3000 movlw 0
2930 01DD 07E4 addwf _sec+1,f
2931 01DE l3088:
2932
2933 ;main.c: 452: Lcd_Set_Cursor(1, 7);
2934 01DE 3007 movlw 7
2935 01DF 00C6 movwf ??_edit_Date_Time
2936 01E0 0846 movf ??_edit_Date_Time,w
2937 01E1 00F6 movwf Lcd_Set_Cursor@b
2938 01E2 3001 movlw 1
2939 01E3 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2940
2941 ;main.c: 453: display_Digit(sec);
2942 01E8 1283 bcf 3,5 ;RP0=0, select bank0
2943 01E9 1303 bcf 3,6 ;RP1=0, select bank0
2944 01EA 0864 movf _sec+1,w
2945 01EB 00AD movwf display_Digit@data+1
2946 01EC 0863 movf _sec,w
2947 01ED 00AC movwf display_Digit@data
2948 01EE 120A 158A 2187 120A 118A fcall _display_Digit
2949
2950 ;main.c: 454: if (sec_org != sec) {
2951 01F3 1283 bcf 3,5 ;RP0=0, select bank0
2952 01F4 1303 bcf 3,6 ;RP1=0, select bank0
2953 01F5 0864 movf _sec+1,w
2954 01F6 0656 xorwf edit_Date_Time@sec_org+1,w
2955 01F7 1D03 skipz
2956 01F8 2BD7 goto l188
2957 01F9 0863 movf _sec,w
2958 01FA 0655 xorwf edit_Date_Time@sec_org,w
2959 01FB 2BD7 goto l188
2960 01FC l3094:
2961
2962 ;main.c: 462: Lcd_Set_Cursor(2, 16);
2963 01FC 3010 movlw 16
2964 01FD 00C6 movwf ??_edit_Date_Time
2965 01FE 0846 movf ??_edit_Date_Time,w
2966 01FF 00F6 movwf Lcd_Set_Cursor@b
2967 0200 3002 movlw 2
2968 0201 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
2969
2970 ;main.c: 463: Lcd_Write_Char('D');
2971 0206 3044 movlw 68
2972 0207 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
2973
2974 ;main.c: 464: if (!RB5) {
2975 020C 1283 bcf 3,5 ;RP0=0, select bank0
2976 020D 1303 bcf 3,6 ;RP1=0, select bank0
2977 020E 1A86 btfsc 6,5 ;volatile
2978 020F 2A90 goto l208
2979
2980 ;main.c: 465: _delay((unsigned long)((250)*(20000000/4000.0)));
2981 0210 3007 movlw 7
2982 0211 1283 bcf 3,5 ;RP0=0, select bank0
2983 0212 1303 bcf 3,6 ;RP1=0, select bank0
2984 0213 00C8 movwf ??_edit_Date_Time+2
2985 0214 3058 movlw 88
2986 0215 00C7 movwf ??_edit_Date_Time+1
2987 0216 3059 movlw 89
2988 0217 00C6 movwf ??_edit_Date_Time
2989 0218 u3037:
2990 0218 0BC6 decfsz ??_edit_Date_Time,f
2991 0219 2A18 goto u3037
2992 021A 0BC7 decfsz ??_edit_Date_Time+1,f
2993 021B 2A18 goto u3037
2994 021C 0BC8 decfsz ??_edit_Date_Time+2,f
2995 021D 2A18 goto u3037
2996
2997 ;main.c: 466: if (date - 1 == 0) {
2998 021E 1283 bcf 3,5 ;RP0=0, select bank0
2999 021F 1303 bcf 3,6 ;RP1=0, select bank0
3000 0220 086B movf _date,w
3001 0221 3EFF addlw 255
3002 0222 00C6 movwf ??_edit_Date_Time
3003 0223 086C movf _date+1,w
3004 0224 1803 skipnc
3005 0225 3E01 addlw 1
3006 0226 3EFF addlw 255
3007 0227 00C7 movwf ??_edit_Date_Time+1
3008 0228 0846 movf ??_edit_Date_Time,w
3009 0229 0447 iorwf ??_edit_Date_Time+1,w
3010 022A 1D03 btfss 3,2
3011 022B 2A40 goto l3104
3012
3013 ;main.c: 467: date = Get_Days_In_Month(year, month);
3014 022C 085E movf _year+1,w
3015 022D 00B2 movwf Get_Days_In_Month@y+1
3016 022E 085D movf _year,w
3017 022F 00B1 movwf Get_Days_In_Month@y
3018 0230 086A movf _month+1,w
3019 0231 00B4 movwf Get_Days_In_Month@m+1
3020 0232 0869 movf _month,w
3021 0233 00B3 movwf Get_Days_In_Month@m
3022 0234 120A 118A 27C5 120A 118A fcall _Get_Days_In_Month
3023 0239 1283 bcf 3,5 ;RP0=0, select bank0
3024 023A 1303 bcf 3,6 ;RP1=0, select bank0
3025 023B 0832 movf ?_Get_Days_In_Month+1,w
3026 023C 00EC movwf _date+1
3027 023D 0831 movf ?_Get_Days_In_Month,w
3028 023E 00EB movwf _date
3029
3030 ;main.c: 468: } else {
3031 023F 2A46 goto l3106
3032 0240 l3104:
3033
3034 ;main.c: 469: date -= 1;
3035 0240 3001 movlw 1
3036 0241 02EB subwf _date,f
3037 0242 3000 movlw 0
3038 0243 1C03 skipc
3039 0244 03EC decf _date+1,f
3040 0245 02EC subwf _date+1,f
3041 0246 l3106:
3042
3043 ;main.c: 472: Lcd_Set_Cursor(2, 2);
3044 0246 3002 movlw 2
3045 0247 00C6 movwf ??_edit_Date_Time
3046 0248 0846 movf ??_edit_Date_Time,w
3047 0249 00F6 movwf Lcd_Set_Cursor@b
3048 024A 3002 movlw 2
3049 024B 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3050
3051 ;main.c: 473: Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month
+ , date)));
3052 0250 1283 bcf 3,5 ;RP0=0, select bank0
3053 0251 1303 bcf 3,6 ;RP1=0, select bank0
3054 0252 085E movf _year+1,w
3055 0253 00AD movwf Get_DayOfWeek@y+1
3056 0254 085D movf _year,w
3057 0255 00AC movwf Get_DayOfWeek@y
3058 0256 086A movf _month+1,w
3059 0257 00AF movwf Get_DayOfWeek@m+1
3060 0258 0869 movf _month,w
3061 0259 00AE movwf Get_DayOfWeek@m
3062 025A 086C movf _date+1,w
3063 025B 00B1 movwf Get_DayOfWeek@d+1
3064 025C 086B movf _date,w
3065 025D 00B0 movwf Get_DayOfWeek@d
3066 025E 120A 158A 266C 120A 118A fcall _Get_DayOfWeek
3067 0263 1283 bcf 3,5 ;RP0=0, select bank0
3068 0264 1303 bcf 3,6 ;RP1=0, select bank0
3069 0265 082D movf ?_Get_DayOfWeek+1,w
3070 0266 00BD movwf Get_WeekDay@d+1
3071 0267 082C movf ?_Get_DayOfWeek,w
3072 0268 00BC movwf Get_WeekDay@d
3073 0269 160A 118A 278B 120A 118A fcall _Get_WeekDay
3074 026E 1283 bcf 3,5 ;RP0=0, select bank0
3075 026F 1303 bcf 3,6 ;RP1=0, select bank0
3076 0270 00BF movwf Lcd_Write_String@a
3077 0271 3000 movlw 0
3078 0272 00C0 movwf Lcd_Write_String@a+1
3079 0273 120A 158A 2338 120A 118A fcall _Lcd_Write_String
3080
3081 ;main.c: 474: Lcd_Set_Cursor(2, 6);
3082 0278 3006 movlw 6
3083 0279 1283 bcf 3,5 ;RP0=0, select bank0
3084 027A 1303 bcf 3,6 ;RP1=0, select bank0
3085 027B 00C6 movwf ??_edit_Date_Time
3086 027C 0846 movf ??_edit_Date_Time,w
3087 027D 00F6 movwf Lcd_Set_Cursor@b
3088 027E 3002 movlw 2
3089 027F 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3090
3091 ;main.c: 475: display_Digit(date);
3092 0284 1283 bcf 3,5 ;RP0=0, select bank0
3093 0285 1303 bcf 3,6 ;RP1=0, select bank0
3094 0286 086C movf _date+1,w
3095 0287 00AD movwf display_Digit@data+1
3096 0288 086B movf _date,w
3097 0289 00AC movwf display_Digit@data
3098 028A 120A 158A 2187 120A 118A fcall _display_Digit
3099
3100 ;main.c: 477: } else if (!RB4) {
3101 028F 2BD7 goto l188
3102 0290 l208:
3103 0290 1A06 btfsc 6,4 ;volatile
3104 0291 2BD7 goto l188
3105
3106 ;main.c: 478: _delay((unsigned long)((250)*(20000000/4000.0)));
3107 0292 3007 movlw 7
3108 0293 1283 bcf 3,5 ;RP0=0, select bank0
3109 0294 1303 bcf 3,6 ;RP1=0, select bank0
3110 0295 00C8 movwf ??_edit_Date_Time+2
3111 0296 3058 movlw 88
3112 0297 00C7 movwf ??_edit_Date_Time+1
3113 0298 3059 movlw 89
3114 0299 00C6 movwf ??_edit_Date_Time
3115 029A u3047:
3116 029A 0BC6 decfsz ??_edit_Date_Time,f
3117 029B 2A9A goto u3047
3118 029C 0BC7 decfsz ??_edit_Date_Time+1,f
3119 029D 2A9A goto u3047
3120 029E 0BC8 decfsz ??_edit_Date_Time+2,f
3121 029F 2A9A goto u3047
3122
3123 ;main.c: 480: if (date + 1 > Get_Days_In_Month(year, month)) {
3124 02A0 1283 bcf 3,5 ;RP0=0, select bank0
3125 02A1 1303 bcf 3,6 ;RP1=0, select bank0
3126 02A2 086B movf _date,w
3127 02A3 3E01 addlw 1
3128 02A4 00C6 movwf ??_edit_Date_Time
3129 02A5 086C movf _date+1,w
3130 02A6 1803 skipnc
3131 02A7 3E01 addlw 1
3132 02A8 3E00 addlw 0
3133 02A9 00C7 movwf ??_edit_Date_Time+1
3134 02AA 085E movf _year+1,w
3135 02AB 00B2 movwf Get_Days_In_Month@y+1
3136 02AC 085D movf _year,w
3137 02AD 00B1 movwf Get_Days_In_Month@y
3138 02AE 086A movf _month+1,w
3139 02AF 00B4 movwf Get_Days_In_Month@m+1
3140 02B0 0869 movf _month,w
3141 02B1 00B3 movwf Get_Days_In_Month@m
3142 02B2 120A 118A 27C5 120A 118A fcall _Get_Days_In_Month
3143 02B7 1283 bcf 3,5 ;RP0=0, select bank0
3144 02B8 1303 bcf 3,6 ;RP1=0, select bank0
3145 02B9 0847 movf ??_edit_Date_Time+1,w
3146 02BA 0232 subwf ?_Get_Days_In_Month+1,w
3147 02BB 1D03 skipz
3148 02BC 2ABF goto u2705
3149 02BD 0846 movf ??_edit_Date_Time,w
3150 02BE 0231 subwf ?_Get_Days_In_Month,w
3151 02BF u2705:
3152 02BF 1803 skipnc
3153 02C0 2AC6 goto l3120
3154
3155 ;main.c: 481: date = 1;
3156 02C1 3001 movlw 1
3157 02C2 00EB movwf _date
3158 02C3 3000 movlw 0
3159 02C4 00EC movwf _date+1
3160
3161 ;main.c: 482: } else {
3162 02C5 2A46 goto l3106
3163 02C6 l3120:
3164
3165 ;main.c: 483: date += 1;
3166 02C6 3001 movlw 1
3167 02C7 07EB addwf _date,f
3168 02C8 1803 skipnc
3169 02C9 0AEC incf _date+1,f
3170 02CA 3000 movlw 0
3171 02CB 07EC addwf _date+1,f
3172 02CC 2A46 goto l3106
3173 02CD l3130:
3174 ;main.c: 488: Lcd_Set_Cursor(2, 6);
3175
3176 ;main.c: 487: Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month
+ , date)));
3177
3178 ;main.c: 486: Lcd_Set_Cursor(2, 2);
3179
3180
3181 ;main.c: 495: Lcd_Set_Cursor(2, 16);
3182 02CD 3010 movlw 16
3183 02CE 00C6 movwf ??_edit_Date_Time
3184 02CF 0846 movf ??_edit_Date_Time,w
3185 02D0 00F6 movwf Lcd_Set_Cursor@b
3186 02D1 3002 movlw 2
3187 02D2 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3188
3189 ;main.c: 496: Lcd_Write_Char('M');
3190 02D7 304D movlw 77
3191 02D8 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
3192
3193 ;main.c: 497: if (!RB5) {
3194 02DD 1283 bcf 3,5 ;RP0=0, select bank0
3195 02DE 1303 bcf 3,6 ;RP1=0, select bank0
3196 02DF 1A86 btfsc 6,5 ;volatile
3197 02E0 2B1B goto l216
3198
3199 ;main.c: 498: _delay((unsigned long)((250)*(20000000/4000.0)));
3200 02E1 3007 movlw 7
3201 02E2 1283 bcf 3,5 ;RP0=0, select bank0
3202 02E3 1303 bcf 3,6 ;RP1=0, select bank0
3203 02E4 00C8 movwf ??_edit_Date_Time+2
3204 02E5 3058 movlw 88
3205 02E6 00C7 movwf ??_edit_Date_Time+1
3206 02E7 3059 movlw 89
3207 02E8 00C6 movwf ??_edit_Date_Time
3208 02E9 u3057:
3209 02E9 0BC6 decfsz ??_edit_Date_Time,f
3210 02EA 2AE9 goto u3057
3211 02EB 0BC7 decfsz ??_edit_Date_Time+1,f
3212 02EC 2AE9 goto u3057
3213 02ED 0BC8 decfsz ??_edit_Date_Time+2,f
3214 02EE 2AE9 goto u3057
3215
3216 ;main.c: 499: if (month - 1 == 0) {
3217 02EF 1283 bcf 3,5 ;RP0=0, select bank0
3218 02F0 1303 bcf 3,6 ;RP1=0, select bank0
3219 02F1 0869 movf _month,w
3220 02F2 3EFF addlw 255
3221 02F3 00C6 movwf ??_edit_Date_Time
3222 02F4 086A movf _month+1,w
3223 02F5 1803 skipnc
3224 02F6 3E01 addlw 1
3225 02F7 3EFF addlw 255
3226 02F8 00C7 movwf ??_edit_Date_Time+1
3227 02F9 0846 movf ??_edit_Date_Time,w
3228 02FA 0447 iorwf ??_edit_Date_Time+1,w
3229 02FB 1D03 btfss 3,2
3230 02FC 2AFF goto l3140
3231
3232 ;main.c: 500: month = 12;
3233 02FD 300C movlw 12
3234 02FE 2B3D goto L3
3235 02FF l3140:
3236 ;main.c: 501: } else {
3237
3238
3239 ;main.c: 502: month -= 1;
3240 02FF 3001 movlw 1
3241 0300 02E9 subwf _month,f
3242 0301 3000 movlw 0
3243 0302 1C03 skipc
3244 0303 03EA decf _month+1,f
3245 0304 02EA subwf _month+1,f
3246 0305 l3142:
3247
3248 ;main.c: 504: Lcd_Set_Cursor(2, 9);
3249 0305 3009 movlw 9
3250 0306 00C6 movwf ??_edit_Date_Time
3251 0307 0846 movf ??_edit_Date_Time,w
3252 0308 00F6 movwf Lcd_Set_Cursor@b
3253 0309 3002 movlw 2
3254 030A 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3255
3256 ;main.c: 505: display_Digit(month);
3257 030F 1283 bcf 3,5 ;RP0=0, select bank0
3258 0310 1303 bcf 3,6 ;RP1=0, select bank0
3259 0311 086A movf _month+1,w
3260 0312 00AD movwf display_Digit@data+1
3261 0313 0869 movf _month,w
3262 0314 00AC movwf display_Digit@data
3263 0315 120A 158A 2187 120A 118A fcall _display_Digit
3264
3265 ;main.c: 507: } else if (!RB4) {
3266 031A 2BD7 goto l188
3267 031B l216:
3268 031B 1A06 btfsc 6,4 ;volatile
3269 031C 2BD7 goto l188
3270
3271 ;main.c: 508: _delay((unsigned long)((250)*(20000000/4000.0)));
3272 031D 3007 movlw 7
3273 031E 1283 bcf 3,5 ;RP0=0, select bank0
3274 031F 1303 bcf 3,6 ;RP1=0, select bank0
3275 0320 00C8 movwf ??_edit_Date_Time+2
3276 0321 3058 movlw 88
3277 0322 00C7 movwf ??_edit_Date_Time+1
3278 0323 3059 movlw 89
3279 0324 00C6 movwf ??_edit_Date_Time
3280 0325 u3067:
3281 0325 0BC6 decfsz ??_edit_Date_Time,f
3282 0326 2B25 goto u3067
3283 0327 0BC7 decfsz ??_edit_Date_Time+1,f
3284 0328 2B25 goto u3067
3285 0329 0BC8 decfsz ??_edit_Date_Time+2,f
3286 032A 2B25 goto u3067
3287
3288 ;main.c: 509: if (month + 1 > 12) {
3289 032B 1283 bcf 3,5 ;RP0=0, select bank0
3290 032C 1303 bcf 3,6 ;RP1=0, select bank0
3291 032D 0869 movf _month,w
3292 032E 3E01 addlw 1
3293 032F 00C6 movwf ??_edit_Date_Time
3294 0330 086A movf _month+1,w
3295 0331 1803 skipnc
3296 0332 3E01 addlw 1
3297 0333 3E00 addlw 0
3298 0334 00C7 movwf ??_edit_Date_Time+1
3299 0335 3000 movlw 0
3300 0336 0247 subwf ??_edit_Date_Time+1,w
3301 0337 300D movlw 13
3302 0338 1903 skipnz
3303 0339 0246 subwf ??_edit_Date_Time,w
3304 033A 1C03 skipc
3305 033B 2B41 goto l3152
3306
3307 ;main.c: 510: month = 1;
3308 033C 3001 movlw 1
3309 033D L3:
3310 033D 00E9 movwf _month
3311 033E 3000 movlw 0
3312 033F 00EA movwf _month+1
3313
3314 ;main.c: 511: } else {
3315 0340 2B05 goto l3142
3316 0341 l3152:
3317
3318 ;main.c: 512: month += 1;
3319 0341 3001 movlw 1
3320 0342 07E9 addwf _month,f
3321 0343 1803 skipnc
3322 0344 0AEA incf _month+1,f
3323 0345 3000 movlw 0
3324 0346 07EA addwf _month+1,f
3325 0347 2B05 goto l3142
3326 0348 l3158:
3327 ;main.c: 515: Lcd_Set_Cursor(2, 9);
3328
3329
3330 ;main.c: 522: Lcd_Set_Cursor(2, 16);
3331 0348 3010 movlw 16
3332 0349 00C6 movwf ??_edit_Date_Time
3333 034A 0846 movf ??_edit_Date_Time,w
3334 034B 00F6 movwf Lcd_Set_Cursor@b
3335 034C 3002 movlw 2
3336 034D 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3337
3338 ;main.c: 523: Lcd_Write_Char('Y');
3339 0352 3059 movlw 89
3340 0353 120A 158A 2284 120A 118A fcall _Lcd_Write_Char
3341
3342 ;main.c: 524: if (!RB5) {
3343 0358 1283 bcf 3,5 ;RP0=0, select bank0
3344 0359 1303 bcf 3,6 ;RP1=0, select bank0
3345 035A 1A86 btfsc 6,5 ;volatile
3346 035B 2B91 goto l224
3347
3348 ;main.c: 525: _delay((unsigned long)((250)*(20000000/4000.0)));
3349 035C 3007 movlw 7
3350 035D 1283 bcf 3,5 ;RP0=0, select bank0
3351 035E 1303 bcf 3,6 ;RP1=0, select bank0
3352 035F 00C8 movwf ??_edit_Date_Time+2
3353 0360 3058 movlw 88
3354 0361 00C7 movwf ??_edit_Date_Time+1
3355 0362 3059 movlw 89
3356 0363 00C6 movwf ??_edit_Date_Time
3357 0364 u3077:
3358 0364 0BC6 decfsz ??_edit_Date_Time,f
3359 0365 2B64 goto u3077
3360 0366 0BC7 decfsz ??_edit_Date_Time+1,f
3361 0367 2B64 goto u3077
3362 0368 0BC8 decfsz ??_edit_Date_Time+2,f
3363 0369 2B64 goto u3077
3364
3365 ;main.c: 526: if (year == 0) {
3366 036A 1283 bcf 3,5 ;RP0=0, select bank0
3367 036B 1303 bcf 3,6 ;RP1=0, select bank0
3368 036C 085D movf _year,w
3369 036D 045E iorwf _year+1,w
3370 036E 1D03 btfss 3,2
3371 036F 2B75 goto l3168
3372
3373 ;main.c: 527: year = 99;
3374 0370 3063 movlw 99
3375 0371 00DD movwf _year
3376 0372 3000 movlw 0
3377 0373 00DE movwf _year+1
3378
3379 ;main.c: 528: } else {
3380 0374 2B7B goto l3170
3381 0375 l3168:
3382
3383 ;main.c: 529: year -= 1;
3384 0375 3001 movlw 1
3385 0376 02DD subwf _year,f
3386 0377 3000 movlw 0
3387 0378 1C03 skipc
3388 0379 03DE decf _year+1,f
3389 037A 02DE subwf _year+1,f
3390 037B l3170:
3391
3392 ;main.c: 531: Lcd_Set_Cursor(2, 14);
3393 037B 300E movlw 14
3394 037C 00C6 movwf ??_edit_Date_Time
3395 037D 0846 movf ??_edit_Date_Time,w
3396 037E 00F6 movwf Lcd_Set_Cursor@b
3397 037F 3002 movlw 2
3398 0380 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3399
3400 ;main.c: 532: display_Digit(year);
3401 0385 1283 bcf 3,5 ;RP0=0, select bank0
3402 0386 1303 bcf 3,6 ;RP1=0, select bank0
3403 0387 085E movf _year+1,w
3404 0388 00AD movwf display_Digit@data+1
3405 0389 085D movf _year,w
3406 038A 00AC movwf display_Digit@data
3407 038B 120A 158A 2187 120A 118A fcall _display_Digit
3408
3409 ;main.c: 534: } else if (!RB4) {
3410 0390 2BD7 goto l188
3411 0391 l224:
3412 0391 1A06 btfsc 6,4 ;volatile
3413 0392 2BD7 goto l188
3414
3415 ;main.c: 535: _delay((unsigned long)((250)*(20000000/4000.0)));
3416 0393 3007 movlw 7
3417 0394 1283 bcf 3,5 ;RP0=0, select bank0
3418 0395 1303 bcf 3,6 ;RP1=0, select bank0
3419 0396 00C8 movwf ??_edit_Date_Time+2
3420 0397 3058 movlw 88
3421 0398 00C7 movwf ??_edit_Date_Time+1
3422 0399 3059 movlw 89
3423 039A 00C6 movwf ??_edit_Date_Time
3424 039B u3087:
3425 039B 0BC6 decfsz ??_edit_Date_Time,f
3426 039C 2B9B goto u3087
3427 039D 0BC7 decfsz ??_edit_Date_Time+1,f
3428 039E 2B9B goto u3087
3429 039F 0BC8 decfsz ??_edit_Date_Time+2,f
3430 03A0 2B9B goto u3087
3431
3432 ;main.c: 536: if (year + 1 > 99) {
3433 03A1 1283 bcf 3,5 ;RP0=0, select bank0
3434 03A2 1303 bcf 3,6 ;RP1=0, select bank0
3435 03A3 085D movf _year,w
3436 03A4 3E01 addlw 1
3437 03A5 00C6 movwf ??_edit_Date_Time
3438 03A6 085E movf _year+1,w
3439 03A7 1803 skipnc
3440 03A8 3E01 addlw 1
3441 03A9 3E00 addlw 0
3442 03AA 00C7 movwf ??_edit_Date_Time+1
3443 03AB 3000 movlw 0
3444 03AC 0247 subwf ??_edit_Date_Time+1,w
3445 03AD 3064 movlw 100
3446 03AE 1903 skipnz
3447 03AF 0246 subwf ??_edit_Date_Time,w
3448 03B0 1C03 skipc
3449 03B1 2BB5 goto l3180
3450
3451 ;main.c: 537: year = 0;
3452 03B2 01DD clrf _year
3453 03B3 01DE clrf _year+1
3454
3455 ;main.c: 538: } else {
3456 03B4 2B7B goto l3170
3457 03B5 l3180:
3458
3459 ;main.c: 539: year += 1;
3460 03B5 3001 movlw 1
3461 03B6 07DD addwf _year,f
3462 03B7 1803 skipnc
3463 03B8 0ADE incf _year+1,f
3464 03B9 3000 movlw 0
3465 03BA 07DE addwf _year+1,f
3466 03BB 2B7B goto l3170
3467 03BC l3188:
3468 ;main.c: 542: Lcd_Set_Cursor(2, 14);
3469
3470
3471 ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 1 sub-sw
+ itches
3472 ; Switch size 1, requested type "simple"
3473 ; Number of cases is 1, Range of values is 0 to 0
3474 ; switch strategies available:
3475 ; Name Instructions Cycles
3476 ; simple_byte 4 3 (average)
3477 ; direct_byte 11 8 (fixed)
3478 ; jumptable 260 6 (fixed)
3479 ; Chosen strategy is simple_byte
3480 03BC 1283 bcf 3,5 ;RP0=0, select bank0
3481 03BD 1303 bcf 3,6 ;RP1=0, select bank0
3482 03BE 0866 movf _edit_datetime+1,w
3483 03BF 3A00 xorlw 0 ; case 0
3484 03C0 1903 skipnz
3485 03C1 2BC3 goto l3310
3486 03C2 2BD7 goto l188
3487 03C3 l3310:
3488
3489 ; Switch size 1, requested type "simple"
3490 ; Number of cases is 6, Range of values is 1 to 6
3491 ; switch strategies available:
3492 ; Name Instructions Cycles
3493 ; simple_byte 19 10 (average)
3494 ; direct_byte 29 11 (fixed)
3495 ; jumptable 263 9 (fixed)
3496 ; Chosen strategy is simple_byte
3497 03C3 0865 movf _edit_datetime,w
3498 03C4 3A01 xorlw 1 ; case 1
3499 03C5 1903 skipnz
3500 03C6 289A goto l3006
3501 03C7 3A03 xorlw 3 ; case 2
3502 03C8 1903 skipnz
3503 03C9 290C goto l3034
3504 03CA 3A01 xorlw 1 ; case 3
3505 03CB 1903 skipnz
3506 03CC 2980 goto l3062
3507 03CD 3A07 xorlw 7 ; case 4
3508 03CE 1903 skipnz
3509 03CF 2B48 goto l3158
3510 03D0 3A01 xorlw 1 ; case 5
3511 03D1 1903 skipnz
3512 03D2 2ACD goto l3130
3513 03D3 3A03 xorlw 3 ; case 6
3514 03D4 1903 skipnz
3515 03D5 29FC goto l3094
3516 03D6 2BD7 goto l188
3517 03D7 l188:
3518
3519 ;main.c: 554: if (!RB2) {
3520 03D7 1283 bcf 3,5 ;RP0=0, select bank0
3521 03D8 1303 bcf 3,6 ;RP1=0, select bank0
3522 03D9 1906 btfsc 6,2 ;volatile
3523 03DA 2BF1 goto l3192
3524
3525 ;main.c: 555: _delay((unsigned long)((250)*(20000000/4000.0)));
3526 03DB 3007 movlw 7
3527 03DC 1283 bcf 3,5 ;RP0=0, select bank0
3528 03DD 1303 bcf 3,6 ;RP1=0, select bank0
3529 03DE 00C8 movwf ??_edit_Date_Time+2
3530 03DF 3058 movlw 88
3531 03E0 00C7 movwf ??_edit_Date_Time+1
3532 03E1 3059 movlw 89
3533 03E2 00C6 movwf ??_edit_Date_Time
3534 03E3 u3097:
3535 03E3 0BC6 decfsz ??_edit_Date_Time,f
3536 03E4 2BE3 goto u3097
3537 03E5 0BC7 decfsz ??_edit_Date_Time+1,f
3538 03E6 2BE3 goto u3097
3539 03E7 0BC8 decfsz ??_edit_Date_Time+2,f
3540 03E8 2BE3 goto u3097
3541 03E9 L2:
3542
3543 ;main.c: 556: edit_datetime++;
3544 03E9 3001 movlw 1
3545 03EA 1283 bcf 3,5 ;RP0=0, select bank0
3546 03EB 1303 bcf 3,6 ;RP1=0, select bank0
3547 03EC 07E5 addwf _edit_datetime,f
3548 03ED 1803 skipnc
3549 03EE 0AE6 incf _edit_datetime+1,f
3550 03EF 3000 movlw 0
3551 03F0 07E6 addwf _edit_datetime+1,f
3552 03F1 l3192:
3553
3554 ;main.c: 365: while (edit_datetime > 0 && edit_datetime < 7) {
3555 03F1 0865 movf _edit_datetime,w
3556 03F2 0466 iorwf _edit_datetime+1,w
3557 03F3 1903 btfsc 3,2
3558 03F4 2BFC goto l3196
3559 03F5 3000 movlw 0
3560 03F6 0266 subwf _edit_datetime+1,w
3561 03F7 3007 movlw 7
3562 03F8 1903 skipnz
3563 03F9 0265 subwf _edit_datetime,w
3564 03FA 1C03 skipc
3565 03FB 2877 goto l3004
3566 03FC l3196:
3567
3568 ;main.c: 567: if (edit_datetime > 6) {
3569 03FC 3000 movlw 0
3570 03FD 0266 subwf _edit_datetime+1,w
3571 03FE 3007 movlw 7
3572 03FF 1903 skipnz
3573 0400 0265 subwf _edit_datetime,w
3574 0401 1C03 skipc
3575 0402 0008 return
3576
3577 ;main.c: 568: Lcd_Set_Cursor(2, 16);
3578 0403 3010 movlw 16
3579 0404 00C6 movwf ??_edit_Date_Time
3580 0405 0846 movf ??_edit_Date_Time,w
3581 0406 00F6 movwf Lcd_Set_Cursor@b
3582 0407 3002 movlw 2
3583 0408 120A 158A 2497 120A 118A fcall _Lcd_Set_Cursor
3584
3585 ;main.c: 569: Lcd_Write_String(" ");
3586 040D 3010 movlw (low (((STR_4+15)-__stringbase)| (0+32768)))& (0+255)
3587 040E 1283 bcf 3,5 ;RP0=0, select bank0
3588 040F 1303 bcf 3,6 ;RP1=0, select bank0
3589 0410 00BF movwf Lcd_Write_String@a
3590 0411 3080 movlw 128
3591 0412 00C0 movwf Lcd_Write_String@a+1
3592 0413 120A 158A 2338 120A 118A fcall _Lcd_Write_String
3593
3594 ;main.c: 570: edit_datetime = 0;
3595 0418 1283 bcf 3,5 ;RP0=0, select bank0
3596 0419 1303 bcf 3,6 ;RP1=0, select bank0
3597 041A 01E5 clrf _edit_datetime
3598 041B 01E6 clrf _edit_datetime+1
3599
3600 ;main.c: 576: if(hour_org != hour || min_org != min || sec_org != sec
3601 041C 0860 movf _hour+1,w
3602 041D 064C xorwf edit_Date_Time@hour_org+1,w
3603 041E 1D03 skipz
3604 041F 2C22 goto u2835
3605 0420 085F movf _hour,w
3606 0421 064B xorwf edit_Date_Time@hour_org,w
3607 0422 u2835:
3608 0422 1D03 skipz
3609 0423 2C4C goto l3218
3610 0424 0862 movf _min+1,w
3611 0425 064E xorwf edit_Date_Time@min_org+1,w
3612 0426 1D03 skipz
3613 0427 2C2A goto u2845
3614 0428 0861 movf _min,w
3615 0429 064D xorwf edit_Date_Time@min_org,w
3616 042A u2845:
3617 042A 1D03 skipz
3618 042B 2C4C goto l3218
3619 042C 0864 movf _sec+1,w
3620 042D 0656 xorwf edit_Date_Time@sec_org+1,w
3621 042E 1D03 skipz
3622 042F 2C32 goto u2855
3623 0430 0863 movf _sec,w
3624 0431 0655 xorwf edit_Date_Time@sec_org,w
3625 0432 u2855:
3626 0432 1D03 skipz
3627 0433 2C4C goto l3218
3628 0434 085E movf _year+1,w
3629 0435 0650 xorwf edit_Date_Time@year_org+1,w
3630 0436 1D03 skipz
3631 0437 2C3A goto u2865
3632 0438 085D movf _year,w
3633 0439 064F xorwf edit_Date_Time@year_org,w
3634 043A u2865:
3635 043A 1D03 skipz
3636 043B 2C4C goto l3218
3637 043C 086A movf _month+1,w
3638 043D 0652 xorwf edit_Date_Time@month_org+1,w
3639 043E 1D03 skipz
3640 043F 2C42 goto u2875
3641 0440 0869 movf _month,w
3642 0441 0651 xorwf edit_Date_Time@month_org,w
3643 0442 u2875:
3644 0442 1D03 skipz
3645 0443 2C4C goto l3218
3646 0444 086C movf _date+1,w
3647 0445 0654 xorwf edit_Date_Time@date_org+1,w
3648 0446 1D03 skipz
3649 0447 2C4A goto u2885
3650 0448 086B movf _date,w
3651 0449 0653 xorwf edit_Date_Time@date_org,w
3652 044A u2885:
3653 044A 1903 skipnz
3654 044B 0008 return
3655 044C l3218:
3656
3657 ;main.c: 579: Set_Time();
3658 044C 120A 158A 2542 120A 118A fcall _Set_Time
3659
3660 ;main.c: 580: Set_DayOfWeek(Get_DayOfWeek(year, month, date));
3661 0451 1283 bcf 3,5 ;RP0=0, select bank0
3662 0452 1303 bcf 3,6 ;RP1=0, select bank0
3663 0453 085E movf _year+1,w
3664 0454 00AD movwf Get_DayOfWeek@y+1
3665 0455 085D movf _year,w
3666 0456 00AC movwf Get_DayOfWeek@y
3667 0457 086A movf _month+1,w
3668 0458 00AF movwf Get_DayOfWeek@m+1
3669 0459 0869 movf _month,w
3670 045A 00AE movwf Get_DayOfWeek@m
3671 045B 086C movf _date+1,w
3672 045C 00B1 movwf Get_DayOfWeek@d+1
3673 045D 086B movf _date,w
3674 045E 00B0 movwf Get_DayOfWeek@d
3675 045F 120A 158A 266C 120A 118A fcall _Get_DayOfWeek
3676 0464 1283 bcf 3,5 ;RP0=0, select bank0
3677 0465 1303 bcf 3,6 ;RP1=0, select bank0
3678 0466 082D movf ?_Get_DayOfWeek+1,w
3679 0467 00BD movwf Set_DayOfWeek@dow+1
3680 0468 082C movf ?_Get_DayOfWeek,w
3681 0469 00BC movwf Set_DayOfWeek@dow
3682 046A 120A 158A 2131 120A 118A fcall _Set_DayOfWeek
3683
3684 ;main.c: 581: Set_Date();
3685 046F 120A 158A 25A2 fcall _Set_Date
3686 0472 0008 return
3687 0473 __end_of_edit_Date_Time:
3688
3689 psect text5
3690 0987 __ptext5:
3691 ;; *************** function _display_Digit *****************
3692 ;; Defined at:
3693 ;; line 245 in file "main.c"
3694 ;; Parameters: Size Location Type
3695 ;; data 2 12[BANK0 ] unsigned int
3696 ;; Auto vars: Size Location Type
3697 ;; None
3698 ;; Return value: Size Location Type
3699 ;; 1 wreg void
3700 ;; Registers used:
3701 ;; wreg, status,2, status,0, pclath, cstack
3702 ;; Tracked objects:
3703 ;; On entry : 0/0
3704 ;; On exit : 0/0
3705 ;; Unchanged: 0/0
3706 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
3707 ;; Params: 0 2 0 0 0
3708 ;; Locals: 0 0 0 0 0
3709 ;; Temps: 0 0 0 0 0
3710 ;; Totals: 0 2 0 0 0
3711 ;;Total ram usage: 2 bytes
3712 ;; Hardware stack levels used: 1
3713 ;; Hardware stack levels required when called: 3
3714 ;; This function calls:
3715 ;; _Lcd_Write_Char
3716 ;; ___lwdiv
3717 ;; ___lwmod
3718 ;; This function is called by:
3719 ;; _update_Display
3720 ;; _edit_Date_Time
3721 ;; This function uses a non-reentrant model
3722 ;;
3723
3724
3725 ;psect for function _display_Digit
3726 0987 _display_Digit:
3727
3728 ;main.c: 246: Lcd_Write_Char(((data / 10) + '0'));
3729
3730 ;incstack = 0
3731 ; Regs used in _display_Digit: [wreg+status,2+status,0+pclath+cstack]
3732 0987 300A movlw 10
3733 0988 1283 bcf 3,5 ;RP0=0, select bank0
3734 0989 1303 bcf 3,6 ;RP1=0, select bank0
3735 098A 00A0 movwf ___lwdiv@divisor
3736 098B 3000 movlw 0
3737 098C 00A1 movwf ___lwdiv@divisor+1
3738 098D 082D movf display_Digit@data+1,w
3739 098E 00A3 movwf ___lwdiv@dividend+1
3740 098F 082C movf display_Digit@data,w
3741 0990 00A2 movwf ___lwdiv@dividend
3742 0991 120A 158A 22FA 120A 158A fcall ___lwdiv
3743 0996 1283 bcf 3,5 ;RP0=0, select bank0
3744 0997 1303 bcf 3,6 ;RP1=0, select bank0
3745 0998 0820 movf ?___lwdiv,w
3746 0999 3E30 addlw 48
3747 099A 120A 158A 2284 120A 158A fcall _Lcd_Write_Char
3748
3749 ;main.c: 247: Lcd_Write_Char(((data % 10) + '0'));
3750 099F 300A movlw 10
3751 09A0 1283 bcf 3,5 ;RP0=0, select bank0
3752 09A1 1303 bcf 3,6 ;RP1=0, select bank0
3753 09A2 00A7 movwf ___lwmod@divisor
3754 09A3 3000 movlw 0
3755 09A4 00A8 movwf ___lwmod@divisor+1
3756 09A5 082D movf display_Digit@data+1,w
3757 09A6 00AA movwf ___lwmod@dividend+1
3758 09A7 082C movf display_Digit@data,w
3759 09A8 00A9 movwf ___lwmod@dividend
3760 09A9 120A 158A 21E6 120A 158A fcall ___lwmod
3761 09AE 1283 bcf 3,5 ;RP0=0, select bank0
3762 09AF 1303 bcf 3,6 ;RP1=0, select bank0
3763 09B0 0827 movf ?___lwmod,w
3764 09B1 3E30 addlw 48
3765 09B2 120A 158A 2284 fcall _Lcd_Write_Char
3766 09B5 0008 return
3767 09B6 __end_of_display_Digit:
3768
3769 psect text6
3770 0D42 __ptext6:
3771 ;; *************** function _Set_Time *****************
3772 ;; Defined at:
3773 ;; line 93 in file "ds3231.c"
3774 ;; Parameters: Size Location Type
3775 ;; None
3776 ;; Auto vars: Size Location Type
3777 ;; None
3778 ;; Return value: Size Location Type
3779 ;; 1 wreg void
3780 ;; Registers used:
3781 ;; wreg, status,2, status,0, pclath, cstack
3782 ;; Tracked objects:
3783 ;; On entry : 0/0
3784 ;; On exit : 0/0
3785 ;; Unchanged: 0/0
3786 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
3787 ;; Params: 0 0 0 0 0
3788 ;; Locals: 0 0 0 0 0
3789 ;; Temps: 0 0 0 0 0
3790 ;; Totals: 0 0 0 0 0
3791 ;;Total ram usage: 0 bytes
3792 ;; Hardware stack levels used: 1
3793 ;; Hardware stack levels required when called: 3
3794 ;; This function calls:
3795 ;; _DEC_2_BCD
3796 ;; _I2C_Master_Start
3797 ;; _I2C_Master_Stop
3798 ;; _I2C_Master_Write
3799 ;; This function is called by:
3800 ;; _edit_Date_Time
3801 ;; This function uses a non-reentrant model
3802 ;;
3803
3804
3805 ;psect for function _Set_Time
3806 0D42 _Set_Time:
3807
3808 ;ds3231.c: 94: I2C_Master_Start();
3809
3810 ;incstack = 0
3811 ; Regs used in _Set_Time: [wreg+status,2+status,0+pclath+cstack]
3812 0D42 160A 118A 274D 120A 158A fcall _I2C_Master_Start
3813
3814 ;ds3231.c: 95: I2C_Master_Write(0xD0);
3815 0D47 30D0 movlw 208
3816 0D48 1283 bcf 3,5 ;RP0=0, select bank0
3817 0D49 1303 bcf 3,6 ;RP1=0, select bank0
3818 0D4A 00A8 movwf I2C_Master_Write@data
3819 0D4B 3000 movlw 0
3820 0D4C 00A9 movwf I2C_Master_Write@data+1
3821 0D4D 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3822
3823 ;ds3231.c: 96: I2C_Master_Write(0);
3824 0D52 3000 movlw 0
3825 0D53 1283 bcf 3,5 ;RP0=0, select bank0
3826 0D54 1303 bcf 3,6 ;RP1=0, select bank0
3827 0D55 00A8 movwf I2C_Master_Write@data
3828 0D56 00A9 movwf I2C_Master_Write@data+1
3829 0D57 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3830
3831 ;ds3231.c: 97: I2C_Master_Write(DEC_2_BCD(sec));
3832 0D5C 1283 bcf 3,5 ;RP0=0, select bank0
3833 0D5D 1303 bcf 3,6 ;RP1=0, select bank0
3834 0D5E 0864 movf _sec+1,w
3835 0D5F 00A5 movwf DEC_2_BCD@to_convert+1
3836 0D60 0863 movf _sec,w
3837 0D61 00A4 movwf DEC_2_BCD@to_convert
3838 0D62 120A 158A 221A 120A 158A fcall _DEC_2_BCD
3839 0D67 1283 bcf 3,5 ;RP0=0, select bank0
3840 0D68 1303 bcf 3,6 ;RP1=0, select bank0
3841 0D69 0825 movf ?_DEC_2_BCD+1,w
3842 0D6A 00A9 movwf I2C_Master_Write@data+1
3843 0D6B 0824 movf ?_DEC_2_BCD,w
3844 0D6C 00A8 movwf I2C_Master_Write@data
3845 0D6D 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3846
3847 ;ds3231.c: 98: I2C_Master_Write(DEC_2_BCD(min));
3848 0D72 1283 bcf 3,5 ;RP0=0, select bank0
3849 0D73 1303 bcf 3,6 ;RP1=0, select bank0
3850 0D74 0862 movf _min+1,w
3851 0D75 00A5 movwf DEC_2_BCD@to_convert+1
3852 0D76 0861 movf _min,w
3853 0D77 00A4 movwf DEC_2_BCD@to_convert
3854 0D78 120A 158A 221A 120A 158A fcall _DEC_2_BCD
3855 0D7D 1283 bcf 3,5 ;RP0=0, select bank0
3856 0D7E 1303 bcf 3,6 ;RP1=0, select bank0
3857 0D7F 0825 movf ?_DEC_2_BCD+1,w
3858 0D80 00A9 movwf I2C_Master_Write@data+1
3859 0D81 0824 movf ?_DEC_2_BCD,w
3860 0D82 00A8 movwf I2C_Master_Write@data
3861 0D83 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3862
3863 ;ds3231.c: 99: I2C_Master_Write(DEC_2_BCD(hour));
3864 0D88 1283 bcf 3,5 ;RP0=0, select bank0
3865 0D89 1303 bcf 3,6 ;RP1=0, select bank0
3866 0D8A 0860 movf _hour+1,w
3867 0D8B 00A5 movwf DEC_2_BCD@to_convert+1
3868 0D8C 085F movf _hour,w
3869 0D8D 00A4 movwf DEC_2_BCD@to_convert
3870 0D8E 120A 158A 221A 120A 158A fcall _DEC_2_BCD
3871 0D93 1283 bcf 3,5 ;RP0=0, select bank0
3872 0D94 1303 bcf 3,6 ;RP1=0, select bank0
3873 0D95 0825 movf ?_DEC_2_BCD+1,w
3874 0D96 00A9 movwf I2C_Master_Write@data+1
3875 0D97 0824 movf ?_DEC_2_BCD,w
3876 0D98 00A8 movwf I2C_Master_Write@data
3877 0D99 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3878
3879 ;ds3231.c: 100: I2C_Master_Stop();
3880 0D9E 160A 118A 2754 fcall _I2C_Master_Stop
3881 0DA1 0008 return
3882 0DA2 __end_of_Set_Time:
3883
3884 psect text7
3885 0931 __ptext7:
3886 ;; *************** function _Set_DayOfWeek *****************
3887 ;; Defined at:
3888 ;; line 77 in file "ds3231.c"
3889 ;; Parameters: Size Location Type
3890 ;; dow 2 28[BANK0 ] int
3891 ;; Auto vars: Size Location Type
3892 ;; None
3893 ;; Return value: Size Location Type
3894 ;; 1 wreg void
3895 ;; Registers used:
3896 ;; wreg, status,2, status,0, pclath, cstack
3897 ;; Tracked objects:
3898 ;; On entry : 0/0
3899 ;; On exit : 0/0
3900 ;; Unchanged: 0/0
3901 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
3902 ;; Params: 0 2 0 0 0
3903 ;; Locals: 0 0 0 0 0
3904 ;; Temps: 0 0 0 0 0
3905 ;; Totals: 0 2 0 0 0
3906 ;;Total ram usage: 2 bytes
3907 ;; Hardware stack levels used: 1
3908 ;; Hardware stack levels required when called: 3
3909 ;; This function calls:
3910 ;; _I2C_Master_Start
3911 ;; _I2C_Master_Stop
3912 ;; _I2C_Master_Write
3913 ;; This function is called by:
3914 ;; _edit_Date_Time
3915 ;; This function uses a non-reentrant model
3916 ;;
3917
3918
3919 ;psect for function _Set_DayOfWeek
3920 0931 _Set_DayOfWeek:
3921
3922 ;ds3231.c: 78: I2C_Master_Start();
3923
3924 ;incstack = 0
3925 ; Regs used in _Set_DayOfWeek: [wreg+status,2+status,0+pclath+cstack]
3926 0931 160A 118A 274D 120A 158A fcall _I2C_Master_Start
3927
3928 ;ds3231.c: 79: I2C_Master_Write(0xD0);
3929 0936 30D0 movlw 208
3930 0937 1283 bcf 3,5 ;RP0=0, select bank0
3931 0938 1303 bcf 3,6 ;RP1=0, select bank0
3932 0939 00A8 movwf I2C_Master_Write@data
3933 093A 3000 movlw 0
3934 093B 00A9 movwf I2C_Master_Write@data+1
3935 093C 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3936
3937 ;ds3231.c: 80: I2C_Master_Write(3);
3938 0941 3003 movlw 3
3939 0942 1283 bcf 3,5 ;RP0=0, select bank0
3940 0943 1303 bcf 3,6 ;RP1=0, select bank0
3941 0944 00A8 movwf I2C_Master_Write@data
3942 0945 3000 movlw 0
3943 0946 00A9 movwf I2C_Master_Write@data+1
3944 0947 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3945
3946 ;ds3231.c: 81: I2C_Master_Write(dow);
3947 094C 1283 bcf 3,5 ;RP0=0, select bank0
3948 094D 1303 bcf 3,6 ;RP1=0, select bank0
3949 094E 083D movf Set_DayOfWeek@dow+1,w
3950 094F 00A9 movwf I2C_Master_Write@data+1
3951 0950 083C movf Set_DayOfWeek@dow,w
3952 0951 00A8 movwf I2C_Master_Write@data
3953 0952 160A 118A 275B 120A 158A fcall _I2C_Master_Write
3954
3955 ;ds3231.c: 82: I2C_Master_Stop();
3956 0957 160A 118A 2754 fcall _I2C_Master_Stop
3957 095A 0008 return
3958 095B __end_of_Set_DayOfWeek:
3959
3960 psect text8
3961 0DA2 __ptext8:
3962 ;; *************** function _Set_Date *****************
3963 ;; Defined at:
3964 ;; line 67 in file "ds3231.c"
3965 ;; Parameters: Size Location Type
3966 ;; None
3967 ;; Auto vars: Size Location Type
3968 ;; None
3969 ;; Return value: Size Location Type
3970 ;; 1 wreg void
3971 ;; Registers used:
3972 ;; wreg, status,2, status,0, pclath, cstack
3973 ;; Tracked objects:
3974 ;; On entry : 0/0
3975 ;; On exit : 0/0
3976 ;; Unchanged: 0/0
3977 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
3978 ;; Params: 0 0 0 0 0
3979 ;; Locals: 0 0 0 0 0
3980 ;; Temps: 0 0 0 0 0
3981 ;; Totals: 0 0 0 0 0
3982 ;;Total ram usage: 0 bytes
3983 ;; Hardware stack levels used: 1
3984 ;; Hardware stack levels required when called: 3
3985 ;; This function calls:
3986 ;; _DEC_2_BCD
3987 ;; _I2C_Master_Start
3988 ;; _I2C_Master_Stop
3989 ;; _I2C_Master_Write
3990 ;; This function is called by:
3991 ;; _edit_Date_Time
3992 ;; This function uses a non-reentrant model
3993 ;;
3994
3995
3996 ;psect for function _Set_Date
3997 0DA2 _Set_Date:
3998
3999 ;ds3231.c: 68: I2C_Master_Start();
4000
4001 ;incstack = 0
4002 ; Regs used in _Set_Date: [wreg+status,2+status,0+pclath+cstack]
4003 0DA2 160A 118A 274D 120A 158A fcall _I2C_Master_Start
4004
4005 ;ds3231.c: 69: I2C_Master_Write(0xD0);
4006 0DA7 30D0 movlw 208
4007 0DA8 1283 bcf 3,5 ;RP0=0, select bank0
4008 0DA9 1303 bcf 3,6 ;RP1=0, select bank0
4009 0DAA 00A8 movwf I2C_Master_Write@data
4010 0DAB 3000 movlw 0
4011 0DAC 00A9 movwf I2C_Master_Write@data+1
4012 0DAD 160A 118A 275B 120A 158A fcall _I2C_Master_Write
4013
4014 ;ds3231.c: 70: I2C_Master_Write(4);
4015 0DB2 3004 movlw 4
4016 0DB3 1283 bcf 3,5 ;RP0=0, select bank0
4017 0DB4 1303 bcf 3,6 ;RP1=0, select bank0
4018 0DB5 00A8 movwf I2C_Master_Write@data
4019 0DB6 3000 movlw 0
4020 0DB7 00A9 movwf I2C_Master_Write@data+1
4021 0DB8 160A 118A 275B 120A 158A fcall _I2C_Master_Write
4022
4023 ;ds3231.c: 71: I2C_Master_Write(DEC_2_BCD(date));
4024 0DBD 1283 bcf 3,5 ;RP0=0, select bank0
4025 0DBE 1303 bcf 3,6 ;RP1=0, select bank0
4026 0DBF 086C movf _date+1,w
4027 0DC0 00A5 movwf DEC_2_BCD@to_convert+1
4028 0DC1 086B movf _date,w
4029 0DC2 00A4 movwf DEC_2_BCD@to_convert
4030 0DC3 120A 158A 221A 120A 158A fcall _DEC_2_BCD
4031 0DC8 1283 bcf 3,5 ;RP0=0, select bank0
4032 0DC9 1303 bcf 3,6 ;RP1=0, select bank0
4033 0DCA 0825 movf ?_DEC_2_BCD+1,w
4034 0DCB 00A9 movwf I2C_Master_Write@data+1
4035 0DCC 0824 movf ?_DEC_2_BCD,w
4036 0DCD 00A8 movwf I2C_Master_Write@data
4037 0DCE 160A 118A 275B 120A 158A fcall _I2C_Master_Write
4038
4039 ;ds3231.c: 72: I2C_Master_Write(DEC_2_BCD(month));
4040 0DD3 1283 bcf 3,5 ;RP0=0, select bank0
4041 0DD4 1303 bcf 3,6 ;RP1=0, select bank0
4042 0DD5 086A movf _month+1,w
4043 0DD6 00A5 movwf DEC_2_BCD@to_convert+1
4044 0DD7 0869 movf _month,w
4045 0DD8 00A4 movwf DEC_2_BCD@to_convert
4046 0DD9 120A 158A 221A 120A 158A fcall _DEC_2_BCD
4047 0DDE 1283 bcf 3,5 ;RP0=0, select bank0
4048 0DDF 1303 bcf 3,6 ;RP1=0, select bank0
4049 0DE0 0825 movf ?_DEC_2_BCD+1,w
4050 0DE1 00A9 movwf I2C_Master_Write@data+1
4051 0DE2 0824 movf ?_DEC_2_BCD,w
4052 0DE3 00A8 movwf I2C_Master_Write@data
4053 0DE4 160A 118A 275B 120A 158A fcall _I2C_Master_Write
4054
4055 ;ds3231.c: 73: I2C_Master_Write(DEC_2_BCD(year));
4056 0DE9 1283 bcf 3,5 ;RP0=0, select bank0
4057 0DEA 1303 bcf 3,6 ;RP1=0, select bank0
4058 0DEB 085E movf _year+1,w
4059 0DEC 00A5 movwf DEC_2_BCD@to_convert+1
4060 0DED 085D movf _year,w
4061 0DEE 00A4 movwf DEC_2_BCD@to_convert
4062 0DEF 120A 158A 221A 120A 158A fcall _DEC_2_BCD
4063 0DF4 1283 bcf 3,5 ;RP0=0, select bank0
4064 0DF5 1303 bcf 3,6 ;RP1=0, select bank0
4065 0DF6 0825 movf ?_DEC_2_BCD+1,w
4066 0DF7 00A9 movwf I2C_Master_Write@data+1
4067 0DF8 0824 movf ?_DEC_2_BCD,w
4068 0DF9 00A8 movwf I2C_Master_Write@data
4069 0DFA 160A 118A 275B 120A 158A fcall _I2C_Master_Write
4070
4071 ;ds3231.c: 74: I2C_Master_Stop();
4072 0DFF 160A 118A 2754 fcall _I2C_Master_Stop
4073 0E02 0008 return
4074 0E03 __end_of_Set_Date:
4075
4076 psect text9
4077 0A1A __ptext9:
4078 ;; *************** function _DEC_2_BCD *****************
4079 ;; Defined at:
4080 ;; line 21 in file "ds3231.c"
4081 ;; Parameters: Size Location Type
4082 ;; to_convert 2 4[BANK0 ] int
4083 ;; Auto vars: Size Location Type
4084 ;; None
4085 ;; Return value: Size Location Type
4086 ;; 2 4[BANK0 ] int
4087 ;; Registers used:
4088 ;; wreg, status,2, status,0, pclath, cstack
4089 ;; Tracked objects:
4090 ;; On entry : 0/0
4091 ;; On exit : 0/0
4092 ;; Unchanged: 0/0
4093 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4094 ;; Params: 0 2 0 0 0
4095 ;; Locals: 0 0 0 0 0
4096 ;; Temps: 0 2 0 0 0
4097 ;; Totals: 0 4 0 0 0
4098 ;;Total ram usage: 4 bytes
4099 ;; Hardware stack levels used: 1
4100 ;; Hardware stack levels required when called: 2
4101 ;; This function calls:
4102 ;; ___awdiv
4103 ;; ___awmod
4104 ;; This function is called by:
4105 ;; _Set_Date
4106 ;; _Set_Time
4107 ;; _Write_Alarms
4108 ;; This function uses a non-reentrant model
4109 ;;
4110
4111
4112 ;psect for function _DEC_2_BCD
4113 0A1A _DEC_2_BCD:
4114
4115 ;ds3231.c: 22: return ((to_convert / 10) << 4) + (to_convert % 10);
4116
4117 ;incstack = 0
4118 ; Regs used in _DEC_2_BCD: [wreg+status,2+status,0+pclath+cstack]
4119 0A1A 300A movlw 10
4120 0A1B 00F2 movwf ___awdiv@divisor
4121 0A1C 3000 movlw 0
4122 0A1D 00F3 movwf ___awdiv@divisor+1
4123 0A1E 1283 bcf 3,5 ;RP0=0, select bank0
4124 0A1F 1303 bcf 3,6 ;RP1=0, select bank0
4125 0A20 0825 movf DEC_2_BCD@to_convert+1,w
4126 0A21 00F5 movwf ___awdiv@dividend+1
4127 0A22 0824 movf DEC_2_BCD@to_convert,w
4128 0A23 00F4 movwf ___awdiv@dividend
4129 0A24 120A 158A 24E7 120A 158A fcall ___awdiv
4130 0A29 0872 movf ?___awdiv,w
4131 0A2A 1283 bcf 3,5 ;RP0=0, select bank0
4132 0A2B 1303 bcf 3,6 ;RP1=0, select bank0
4133 0A2C 00A6 movwf ??_DEC_2_BCD
4134 0A2D 0873 movf ?___awdiv+1,w
4135 0A2E 00A7 movwf ??_DEC_2_BCD+1
4136 0A2F 0EA6 swapf ??_DEC_2_BCD,f
4137 0A30 0EA7 swapf ??_DEC_2_BCD+1,f
4138 0A31 30F0 movlw 240
4139 0A32 05A7 andwf ??_DEC_2_BCD+1,f
4140 0A33 0826 movf ??_DEC_2_BCD,w
4141 0A34 390F andlw 15
4142 0A35 04A7 iorwf ??_DEC_2_BCD+1,f
4143 0A36 30F0 movlw 240
4144 0A37 05A6 andwf ??_DEC_2_BCD,f
4145 0A38 300A movlw 10
4146 0A39 00F2 movwf ___awmod@divisor
4147 0A3A 3000 movlw 0
4148 0A3B 00F3 movwf ___awmod@divisor+1
4149 0A3C 0825 movf DEC_2_BCD@to_convert+1,w
4150 0A3D 00F5 movwf ___awmod@dividend+1
4151 0A3E 0824 movf DEC_2_BCD@to_convert,w
4152 0A3F 00F4 movwf ___awmod@dividend
4153 0A40 120A 158A 244C fcall ___awmod
4154 0A43 0872 movf ?___awmod,w
4155 0A44 1283 bcf 3,5 ;RP0=0, select bank0
4156 0A45 1303 bcf 3,6 ;RP1=0, select bank0
4157 0A46 0726 addwf ??_DEC_2_BCD,w
4158 0A47 00A4 movwf ?_DEC_2_BCD
4159 0A48 0873 movf ?___awmod+1,w
4160 0A49 1803 skipnc
4161 0A4A 0A73 incf ?___awmod+1,w
4162 0A4B 0727 addwf ??_DEC_2_BCD+1,w
4163 0A4C 00A5 movwf ?_DEC_2_BCD+1
4164 0A4D 0008 return
4165 0A4E __end_of_DEC_2_BCD:
4166
4167 psect text10
4168 0C4C __ptext10:
4169 ;; *************** function ___awmod *****************
4170 ;; Defined at:
4171 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awmod.c"
4172 ;; Parameters: Size Location Type
4173 ;; divisor 2 2[COMMON] int
4174 ;; dividend 2 4[COMMON] int
4175 ;; Auto vars: Size Location Type
4176 ;; sign 1 8[COMMON] unsigned char
4177 ;; counter 1 7[COMMON] unsigned char
4178 ;; Return value: Size Location Type
4179 ;; 2 2[COMMON] int
4180 ;; Registers used:
4181 ;; wreg, status,2, status,0
4182 ;; Tracked objects:
4183 ;; On entry : 0/0
4184 ;; On exit : 0/0
4185 ;; Unchanged: 0/0
4186 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4187 ;; Params: 4 0 0 0 0
4188 ;; Locals: 2 0 0 0 0
4189 ;; Temps: 1 0 0 0 0
4190 ;; Totals: 7 0 0 0 0
4191 ;;Total ram usage: 7 bytes
4192 ;; Hardware stack levels used: 1
4193 ;; Hardware stack levels required when called: 1
4194 ;; This function calls:
4195 ;; Nothing
4196 ;; This function is called by:
4197 ;; _DEC_2_BCD
4198 ;; This function uses a non-reentrant model
4199 ;;
4200
4201
4202 ;psect for function ___awmod
4203 0C4C ___awmod:
4204
4205 ;incstack = 0
4206 ; Regs used in ___awmod: [wreg+status,2+status,0]
4207 0C4C 01F8 clrf ___awmod@sign
4208 0C4D 1FF5 btfss ___awmod@dividend+1,7
4209 0C4E 2C56 goto l2072
4210 0C4F 09F4 comf ___awmod@dividend,f
4211 0C50 09F5 comf ___awmod@dividend+1,f
4212 0C51 0AF4 incf ___awmod@dividend,f
4213 0C52 1903 skipnz
4214 0C53 0AF5 incf ___awmod@dividend+1,f
4215 0C54 01F8 clrf ___awmod@sign
4216 0C55 0AF8 incf ___awmod@sign,f
4217 0C56 l2072:
4218 0C56 1FF3 btfss ___awmod@divisor+1,7
4219 0C57 2C5D goto l2076
4220 0C58 09F2 comf ___awmod@divisor,f
4221 0C59 09F3 comf ___awmod@divisor+1,f
4222 0C5A 0AF2 incf ___awmod@divisor,f
4223 0C5B 1903 skipnz
4224 0C5C 0AF3 incf ___awmod@divisor+1,f
4225 0C5D l2076:
4226 0C5D 0872 movf ___awmod@divisor,w
4227 0C5E 0473 iorwf ___awmod@divisor+1,w
4228 0C5F 1903 btfsc 3,2
4229 0C60 2C8A goto l2094
4230 0C61 01F7 clrf ___awmod@counter
4231 0C62 0AF7 incf ___awmod@counter,f
4232 0C63 l2084:
4233 0C63 1BF3 btfsc ___awmod@divisor+1,7
4234 0C64 2C71 goto l2086
4235 0C65 3001 movlw 1
4236 0C66 u1315:
4237 0C66 1003 clrc
4238 0C67 0DF2 rlf ___awmod@divisor,f
4239 0C68 0DF3 rlf ___awmod@divisor+1,f
4240 0C69 3EFF addlw -1
4241 0C6A 1D03 skipz
4242 0C6B 2C66 goto u1315
4243 0C6C 3001 movlw 1
4244 0C6D 00F6 movwf ??___awmod
4245 0C6E 0876 movf ??___awmod,w
4246 0C6F 07F7 addwf ___awmod@counter,f
4247 0C70 2C63 goto l2084
4248 0C71 l2086:
4249 0C71 0873 movf ___awmod@divisor+1,w
4250 0C72 0275 subwf ___awmod@dividend+1,w
4251 0C73 1D03 skipz
4252 0C74 2C77 goto u1335
4253 0C75 0872 movf ___awmod@divisor,w
4254 0C76 0274 subwf ___awmod@dividend,w
4255 0C77 u1335:
4256 0C77 1C03 skipc
4257 0C78 2C7F goto l2090
4258 0C79 0872 movf ___awmod@divisor,w
4259 0C7A 02F4 subwf ___awmod@dividend,f
4260 0C7B 0873 movf ___awmod@divisor+1,w
4261 0C7C 1C03 skipc
4262 0C7D 03F5 decf ___awmod@dividend+1,f
4263 0C7E 02F5 subwf ___awmod@dividend+1,f
4264 0C7F l2090:
4265 0C7F 3001 movlw 1
4266 0C80 u1345:
4267 0C80 1003 clrc
4268 0C81 0CF3 rrf ___awmod@divisor+1,f
4269 0C82 0CF2 rrf ___awmod@divisor,f
4270 0C83 3EFF addlw -1
4271 0C84 1D03 skipz
4272 0C85 2C80 goto u1345
4273 0C86 3001 movlw 1
4274 0C87 02F7 subwf ___awmod@counter,f
4275 0C88 1D03 btfss 3,2
4276 0C89 2C71 goto l2086
4277 0C8A l2094:
4278 0C8A 0878 movf ___awmod@sign,w
4279 0C8B 1903 btfsc 3,2
4280 0C8C 2C92 goto l2098
4281 0C8D 09F4 comf ___awmod@dividend,f
4282 0C8E 09F5 comf ___awmod@dividend+1,f
4283 0C8F 0AF4 incf ___awmod@dividend,f
4284 0C90 1903 skipnz
4285 0C91 0AF5 incf ___awmod@dividend+1,f
4286 0C92 l2098:
4287 0C92 0875 movf ___awmod@dividend+1,w
4288 0C93 00F3 movwf ?___awmod+1
4289 0C94 0874 movf ___awmod@dividend,w
4290 0C95 00F2 movwf ?___awmod
4291 0C96 0008 return
4292 0C97 __end_of___awmod:
4293
4294 psect text11
4295 0CE7 __ptext11:
4296 ;; *************** function ___awdiv *****************
4297 ;; Defined at:
4298 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\awdiv.c"
4299 ;; Parameters: Size Location Type
4300 ;; divisor 2 2[COMMON] int
4301 ;; dividend 2 4[COMMON] int
4302 ;; Auto vars: Size Location Type
4303 ;; quotient 2 2[BANK0 ] int
4304 ;; sign 1 1[BANK0 ] unsigned char
4305 ;; counter 1 0[BANK0 ] unsigned char
4306 ;; Return value: Size Location Type
4307 ;; 2 2[COMMON] int
4308 ;; Registers used:
4309 ;; wreg, status,2, status,0
4310 ;; Tracked objects:
4311 ;; On entry : 0/0
4312 ;; On exit : 0/0
4313 ;; Unchanged: 0/0
4314 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4315 ;; Params: 4 0 0 0 0
4316 ;; Locals: 0 4 0 0 0
4317 ;; Temps: 1 0 0 0 0
4318 ;; Totals: 5 4 0 0 0
4319 ;;Total ram usage: 9 bytes
4320 ;; Hardware stack levels used: 1
4321 ;; Hardware stack levels required when called: 1
4322 ;; This function calls:
4323 ;; Nothing
4324 ;; This function is called by:
4325 ;; _DEC_2_BCD
4326 ;; This function uses a non-reentrant model
4327 ;;
4328
4329
4330 ;psect for function ___awdiv
4331 0CE7 ___awdiv:
4332
4333 ;incstack = 0
4334 ; Regs used in ___awdiv: [wreg+status,2+status,0]
4335 0CE7 1283 bcf 3,5 ;RP0=0, select bank0
4336 0CE8 1303 bcf 3,6 ;RP1=0, select bank0
4337 0CE9 01A1 clrf ___awdiv@sign
4338 0CEA 1FF3 btfss ___awdiv@divisor+1,7
4339 0CEB 2CF3 goto l2790
4340 0CEC 09F2 comf ___awdiv@divisor,f
4341 0CED 09F3 comf ___awdiv@divisor+1,f
4342 0CEE 0AF2 incf ___awdiv@divisor,f
4343 0CEF 1903 skipnz
4344 0CF0 0AF3 incf ___awdiv@divisor+1,f
4345 0CF1 01A1 clrf ___awdiv@sign
4346 0CF2 0AA1 incf ___awdiv@sign,f
4347 0CF3 l2790:
4348 0CF3 1FF5 btfss ___awdiv@dividend+1,7
4349 0CF4 2CFE goto l2796
4350 0CF5 09F4 comf ___awdiv@dividend,f
4351 0CF6 09F5 comf ___awdiv@dividend+1,f
4352 0CF7 0AF4 incf ___awdiv@dividend,f
4353 0CF8 1903 skipnz
4354 0CF9 0AF5 incf ___awdiv@dividend+1,f
4355 0CFA 3001 movlw 1
4356 0CFB 00F6 movwf ??___awdiv
4357 0CFC 0876 movf ??___awdiv,w
4358 0CFD 06A1 xorwf ___awdiv@sign,f
4359 0CFE l2796:
4360 0CFE 01A2 clrf ___awdiv@quotient
4361 0CFF 01A3 clrf ___awdiv@quotient+1
4362 0D00 0872 movf ___awdiv@divisor,w
4363 0D01 0473 iorwf ___awdiv@divisor+1,w
4364 0D02 1903 btfsc 3,2
4365 0D03 2D35 goto l2818
4366 0D04 01A0 clrf ___awdiv@counter
4367 0D05 0AA0 incf ___awdiv@counter,f
4368 0D06 l2806:
4369 0D06 1BF3 btfsc ___awdiv@divisor+1,7
4370 0D07 2D14 goto l2808
4371 0D08 3001 movlw 1
4372 0D09 u2225:
4373 0D09 1003 clrc
4374 0D0A 0DF2 rlf ___awdiv@divisor,f
4375 0D0B 0DF3 rlf ___awdiv@divisor+1,f
4376 0D0C 3EFF addlw -1
4377 0D0D 1D03 skipz
4378 0D0E 2D09 goto u2225
4379 0D0F 3001 movlw 1
4380 0D10 00F6 movwf ??___awdiv
4381 0D11 0876 movf ??___awdiv,w
4382 0D12 07A0 addwf ___awdiv@counter,f
4383 0D13 2D06 goto l2806
4384 0D14 l2808:
4385 0D14 3001 movlw 1
4386 0D15 u2245:
4387 0D15 1003 clrc
4388 0D16 0DA2 rlf ___awdiv@quotient,f
4389 0D17 0DA3 rlf ___awdiv@quotient+1,f
4390 0D18 3EFF addlw -1
4391 0D19 1D03 skipz
4392 0D1A 2D15 goto u2245
4393 0D1B 0873 movf ___awdiv@divisor+1,w
4394 0D1C 0275 subwf ___awdiv@dividend+1,w
4395 0D1D 1D03 skipz
4396 0D1E 2D21 goto u2255
4397 0D1F 0872 movf ___awdiv@divisor,w
4398 0D20 0274 subwf ___awdiv@dividend,w
4399 0D21 u2255:
4400 0D21 1C03 skipc
4401 0D22 2D2A goto l2814
4402 0D23 0872 movf ___awdiv@divisor,w
4403 0D24 02F4 subwf ___awdiv@dividend,f
4404 0D25 0873 movf ___awdiv@divisor+1,w
4405 0D26 1C03 skipc
4406 0D27 03F5 decf ___awdiv@dividend+1,f
4407 0D28 02F5 subwf ___awdiv@dividend+1,f
4408 0D29 1422 bsf ___awdiv@quotient,0
4409 0D2A l2814:
4410 0D2A 3001 movlw 1
4411 0D2B u2265:
4412 0D2B 1003 clrc
4413 0D2C 0CF3 rrf ___awdiv@divisor+1,f
4414 0D2D 0CF2 rrf ___awdiv@divisor,f
4415 0D2E 3EFF addlw -1
4416 0D2F 1D03 skipz
4417 0D30 2D2B goto u2265
4418 0D31 3001 movlw 1
4419 0D32 02A0 subwf ___awdiv@counter,f
4420 0D33 1D03 btfss 3,2
4421 0D34 2D14 goto l2808
4422 0D35 l2818:
4423 0D35 0821 movf ___awdiv@sign,w
4424 0D36 1903 btfsc 3,2
4425 0D37 2D3D goto l2822
4426 0D38 09A2 comf ___awdiv@quotient,f
4427 0D39 09A3 comf ___awdiv@quotient+1,f
4428 0D3A 0AA2 incf ___awdiv@quotient,f
4429 0D3B 1903 skipnz
4430 0D3C 0AA3 incf ___awdiv@quotient+1,f
4431 0D3D l2822:
4432 0D3D 0823 movf ___awdiv@quotient+1,w
4433 0D3E 00F3 movwf ?___awdiv+1
4434 0D3F 0822 movf ___awdiv@quotient,w
4435 0D40 00F2 movwf ?___awdiv
4436 0D41 0008 return
4437 0D42 __end_of___awdiv:
4438
4439 psect text12
4440 178B __ptext12:
4441 ;; *************** function _Get_WeekDay *****************
4442 ;; Defined at:
4443 ;; line 38 in file "ds3231.c"
4444 ;; Parameters: Size Location Type
4445 ;; d 2 28[BANK0 ] unsigned int
4446 ;; Auto vars: Size Location Type
4447 ;; None
4448 ;; Return value: Size Location Type
4449 ;; 1 wreg PTR unsigned char
4450 ;; Registers used:
4451 ;; wreg, status,2, status,0
4452 ;; Tracked objects:
4453 ;; On entry : 0/0
4454 ;; On exit : 0/0
4455 ;; Unchanged: 0/0
4456 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4457 ;; Params: 0 2 0 0 0
4458 ;; Locals: 0 0 0 0 0
4459 ;; Temps: 0 1 0 0 0
4460 ;; Totals: 0 3 0 0 0
4461 ;;Total ram usage: 3 bytes
4462 ;; Hardware stack levels used: 1
4463 ;; Hardware stack levels required when called: 1
4464 ;; This function calls:
4465 ;; Nothing
4466 ;; This function is called by:
4467 ;; _update_Display
4468 ;; _edit_Date_Time
4469 ;; This function uses a non-reentrant model
4470 ;;
4471
4472
4473 ;psect for function _Get_WeekDay
4474 178B _Get_WeekDay:
4475
4476 ;ds3231.c: 39: return dayOfWeek[d - 1];
4477
4478 ;incstack = 0
4479 ; Regs used in _Get_WeekDay: [wreg+status,2+status,0]
4480 178B 1283 bcf 3,5 ;RP0=0, select bank0
4481 178C 1303 bcf 3,6 ;RP1=0, select bank0
4482 178D 083C movf Get_WeekDay@d,w
4483 178E 00BE movwf ??_Get_WeekDay
4484 178F 3001 movlw 1
4485 1790 u1655:
4486 1790 1003 clrc
4487 1791 0DBE rlf ??_Get_WeekDay,f
4488 1792 3EFF addlw -1
4489 1793 1D03 skipz
4490 1794 2F90 goto u1655
4491 1795 1003 clrc
4492 1796 0D3E rlf ??_Get_WeekDay,w
4493 1797 3EA0 addlw (low ((_dayOfWeek| 0+252)))& (0+255)
4494 1798 0008 return
4495 1799 __end_of_Get_WeekDay:
4496
4497 psect text13
4498 07C5 __ptext13:
4499 ;; *************** function _Get_Days_In_Month *****************
4500 ;; Defined at:
4501 ;; line 29 in file "ds3231.c"
4502 ;; Parameters: Size Location Type
4503 ;; y 2 17[BANK0 ] unsigned int
4504 ;; m 2 19[BANK0 ] unsigned int
4505 ;; Auto vars: Size Location Type
4506 ;; None
4507 ;; Return value: Size Location Type
4508 ;; 2 17[BANK0 ] unsigned int
4509 ;; Registers used:
4510 ;; wreg, status,2, status,0, pclath, cstack
4511 ;; Tracked objects:
4512 ;; On entry : 0/0
4513 ;; On exit : 0/0
4514 ;; Unchanged: 0/0
4515 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4516 ;; Params: 0 4 0 0 0
4517 ;; Locals: 0 0 0 0 0
4518 ;; Temps: 0 3 0 0 0
4519 ;; Totals: 0 7 0 0 0
4520 ;;Total ram usage: 7 bytes
4521 ;; Hardware stack levels used: 1
4522 ;; Hardware stack levels required when called: 3
4523 ;; This function calls:
4524 ;; _Get_Is_Leap_Year
4525 ;; ___lwmod
4526 ;; This function is called by:
4527 ;; _edit_Date_Time
4528 ;; This function uses a non-reentrant model
4529 ;;
4530
4531
4532 ;psect for function _Get_Days_In_Month
4533 07C5 _Get_Days_In_Month:
4534
4535 ;ds3231.c: 30: return (m == 2) ?
4536
4537 ;incstack = 0
4538 ; Regs used in _Get_Days_In_Month: [wreg+status,2+status,0+pclath+cstack]
4539 07C5 3002 movlw 2
4540 07C6 1283 bcf 3,5 ;RP0=0, select bank0
4541 07C7 1303 bcf 3,6 ;RP1=0, select bank0
4542 07C8 0633 xorwf Get_Days_In_Month@m,w
4543 07C9 0434 iorwf Get_Days_In_Month@m+1,w
4544 07CA 1903 btfsc 3,2
4545 07CB 2FED goto l2922
4546 07CC 3007 movlw 7
4547 07CD 00A7 movwf ___lwmod@divisor
4548 07CE 3000 movlw 0
4549 07CF 00A8 movwf ___lwmod@divisor+1
4550 07D0 0833 movf Get_Days_In_Month@m,w
4551 07D1 3EFF addlw 255
4552 07D2 00A9 movwf ___lwmod@dividend
4553 07D3 0834 movf Get_Days_In_Month@m+1,w
4554 07D4 1803 skipnc
4555 07D5 3E01 addlw 1
4556 07D6 3EFF addlw 255
4557 07D7 00AA movwf ___lwmod@dividend+1
4558 07D8 120A 158A 21E6 fcall ___lwmod
4559 07DB 3001 movlw 1
4560 07DC 1283 bcf 3,5 ;RP0=0, select bank0
4561 07DD 1303 bcf 3,6 ;RP1=0, select bank0
4562 07DE 0527 andwf ?___lwmod,w
4563 07DF 00B5 movwf ??_Get_Days_In_Month
4564 07E0 3000 movlw 0
4565 07E1 0528 andwf ?___lwmod+1,w
4566 07E2 00B6 movwf ??_Get_Days_In_Month+1
4567 07E3 301F movlw 31
4568 07E4 00B7 movwf ??_Get_Days_In_Month+2
4569 07E5 0835 movf ??_Get_Days_In_Month,w
4570 07E6 0237 subwf ??_Get_Days_In_Month+2,w
4571 07E7 00B1 movwf ?_Get_Days_In_Month
4572 07E8 0936 comf ??_Get_Days_In_Month+1,w
4573 07E9 1803 skipnc
4574 07EA 3E01 addlw 1
4575 07EB 00B2 movwf ?_Get_Days_In_Month+1
4576 07EC 0008 return
4577 07ED l2922:
4578 07ED 0832 movf Get_Days_In_Month@y+1,w
4579 07EE 00AD movwf Get_Is_Leap_Year@y+1
4580 07EF 0831 movf Get_Days_In_Month@y,w
4581 07F0 00AC movwf Get_Is_Leap_Year@y
4582 07F1 120A 158A 22BD fcall _Get_Is_Leap_Year
4583 07F4 1283 bcf 3,5 ;RP0=0, select bank0
4584 07F5 1303 bcf 3,6 ;RP1=0, select bank0
4585 07F6 082C movf ?_Get_Is_Leap_Year,w
4586 07F7 3E1C addlw 28
4587 07F8 00B1 movwf ?_Get_Days_In_Month
4588 07F9 082D movf ?_Get_Is_Leap_Year+1,w
4589 07FA 1803 skipnc
4590 07FB 3E01 addlw 1
4591 07FC 3E00 addlw 0
4592 07FD 00B2 movwf ?_Get_Days_In_Month+1
4593 07FE 0008 return
4594 07FF __end_of_Get_Days_In_Month:
4595
4596 psect text14
4597 0ABD __ptext14:
4598 ;; *************** function _Get_Is_Leap_Year *****************
4599 ;; Defined at:
4600 ;; line 34 in file "ds3231.c"
4601 ;; Parameters: Size Location Type
4602 ;; y 2 12[BANK0 ] unsigned int
4603 ;; Auto vars: Size Location Type
4604 ;; None
4605 ;; Return value: Size Location Type
4606 ;; 2 12[BANK0 ] unsigned int
4607 ;; Registers used:
4608 ;; wreg, status,2, status,0, pclath, cstack
4609 ;; Tracked objects:
4610 ;; On entry : 0/0
4611 ;; On exit : 0/0
4612 ;; Unchanged: 0/0
4613 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4614 ;; Params: 0 2 0 0 0
4615 ;; Locals: 0 1 0 0 0
4616 ;; Temps: 0 2 0 0 0
4617 ;; Totals: 0 5 0 0 0
4618 ;;Total ram usage: 5 bytes
4619 ;; Hardware stack levels used: 1
4620 ;; Hardware stack levels required when called: 2
4621 ;; This function calls:
4622 ;; ___lwmod
4623 ;; This function is called by:
4624 ;; _Get_Days_In_Month
4625 ;; This function uses a non-reentrant model
4626 ;;
4627
4628
4629 ;psect for function _Get_Is_Leap_Year
4630 0ABD _Get_Is_Leap_Year:
4631
4632 ;ds3231.c: 35: return (year % 4) || ((year % 100 == 0) && (year % 400)) ? 0 : 1;
4633
4634 ;incstack = 0
4635 ; Regs used in _Get_Is_Leap_Year: [wreg+status,2+status,0+pclath+cstack]
4636 0ABD 1283 bcf 3,5 ;RP0=0, select bank0
4637 0ABE 1303 bcf 3,6 ;RP1=0, select bank0
4638 0ABF 01B0 clrf _Get_Is_Leap_Year$401
4639 0AC0 3003 movlw 3
4640 0AC1 055D andwf _year,w
4641 0AC2 00AE movwf ??_Get_Is_Leap_Year
4642 0AC3 3000 movlw 0
4643 0AC4 055E andwf _year+1,w
4644 0AC5 00AF movwf ??_Get_Is_Leap_Year+1
4645 0AC6 082E movf ??_Get_Is_Leap_Year,w
4646 0AC7 042F iorwf ??_Get_Is_Leap_Year+1,w
4647 0AC8 1D03 btfss 3,2
4648 0AC9 2AF2 goto l2860
4649 0ACA 3064 movlw 100
4650 0ACB 00A7 movwf ___lwmod@divisor
4651 0ACC 3000 movlw 0
4652 0ACD 00A8 movwf ___lwmod@divisor+1
4653 0ACE 085E movf _year+1,w
4654 0ACF 00AA movwf ___lwmod@dividend+1
4655 0AD0 085D movf _year,w
4656 0AD1 00A9 movwf ___lwmod@dividend
4657 0AD2 120A 158A 21E6 120A 158A fcall ___lwmod
4658 0AD7 1283 bcf 3,5 ;RP0=0, select bank0
4659 0AD8 1303 bcf 3,6 ;RP1=0, select bank0
4660 0AD9 0827 movf ?___lwmod,w
4661 0ADA 0428 iorwf ?___lwmod+1,w
4662 0ADB 1D03 btfss 3,2
4663 0ADC 2AF0 goto l2780
4664 0ADD 3090 movlw 144
4665 0ADE 00A7 movwf ___lwmod@divisor
4666 0ADF 3001 movlw 1
4667 0AE0 00A8 movwf ___lwmod@divisor+1
4668 0AE1 085E movf _year+1,w
4669 0AE2 00AA movwf ___lwmod@dividend+1
4670 0AE3 085D movf _year,w
4671 0AE4 00A9 movwf ___lwmod@dividend
4672 0AE5 120A 158A 21E6 120A 158A fcall ___lwmod
4673 0AEA 1283 bcf 3,5 ;RP0=0, select bank0
4674 0AEB 1303 bcf 3,6 ;RP1=0, select bank0
4675 0AEC 0827 movf ?___lwmod,w
4676 0AED 0428 iorwf ?___lwmod+1,w
4677 0AEE 1D03 btfss 3,2
4678 0AEF 2AF2 goto l2860
4679 0AF0 l2780:
4680 0AF0 01B0 clrf _Get_Is_Leap_Year$401
4681 0AF1 0AB0 incf _Get_Is_Leap_Year$401,f
4682 0AF2 l2860:
4683 0AF2 0830 movf _Get_Is_Leap_Year$401,w
4684 0AF3 00AE movwf ??_Get_Is_Leap_Year
4685 0AF4 01AF clrf ??_Get_Is_Leap_Year+1
4686 0AF5 082E movf ??_Get_Is_Leap_Year,w
4687 0AF6 00AC movwf ?_Get_Is_Leap_Year
4688 0AF7 082F movf ??_Get_Is_Leap_Year+1,w
4689 0AF8 00AD movwf ?_Get_Is_Leap_Year+1
4690 0AF9 0008 return
4691 0AFA __end_of_Get_Is_Leap_Year:
4692
4693 psect text15
4694 0E6C __ptext15:
4695 ;; *************** function _Get_DayOfWeek *****************
4696 ;; Defined at:
4697 ;; line 25 in file "ds3231.c"
4698 ;; Parameters: Size Location Type
4699 ;; y 2 12[BANK0 ] unsigned int
4700 ;; m 2 14[BANK0 ] unsigned int
4701 ;; d 2 16[BANK0 ] unsigned int
4702 ;; Auto vars: Size Location Type
4703 ;; None
4704 ;; Return value: Size Location Type
4705 ;; 2 12[BANK0 ] unsigned int
4706 ;; Registers used:
4707 ;; wreg, status,2, status,0, pclath, cstack
4708 ;; Tracked objects:
4709 ;; On entry : 0/0
4710 ;; On exit : 0/0
4711 ;; Unchanged: 0/0
4712 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4713 ;; Params: 0 6 0 0 0
4714 ;; Locals: 0 0 0 0 0
4715 ;; Temps: 0 10 0 0 0
4716 ;; Totals: 0 16 0 0 0
4717 ;;Total ram usage: 16 bytes
4718 ;; Hardware stack levels used: 1
4719 ;; Hardware stack levels required when called: 2
4720 ;; This function calls:
4721 ;; ___lwdiv
4722 ;; ___lwmod
4723 ;; ___wmul
4724 ;; This function is called by:
4725 ;; _edit_Date_Time
4726 ;; This function uses a non-reentrant model
4727 ;;
4728
4729
4730 ;psect for function _Get_DayOfWeek
4731 0E6C _Get_DayOfWeek:
4732
4733 ;ds3231.c: 26: return (d += m < 3 ? y-- : y - 2, 23 * m / 9 + d + 4 + y / 4 - y / 10
+ 0 + y / 400) % 7 + 1;
4734
4735 ;incstack = 0
4736 ; Regs used in _Get_DayOfWeek: [wreg+status,2+status,0+pclath+cstack]
4737 0E6C 3000 movlw 0
4738 0E6D 1283 bcf 3,5 ;RP0=0, select bank0
4739 0E6E 1303 bcf 3,6 ;RP1=0, select bank0
4740 0E6F 022F subwf Get_DayOfWeek@m+1,w
4741 0E70 3003 movlw 3
4742 0E71 1903 skipnz
4743 0E72 022E subwf Get_DayOfWeek@m,w
4744 0E73 1C03 skipc
4745 0E74 2E84 goto l2930
4746 0E75 082C movf Get_DayOfWeek@y,w
4747 0E76 3EFE addlw 254
4748 0E77 00B2 movwf ??_Get_DayOfWeek
4749 0E78 082D movf Get_DayOfWeek@y+1,w
4750 0E79 1803 skipnc
4751 0E7A 3E01 addlw 1
4752 0E7B 3EFF addlw 255
4753 0E7C 00B3 movwf ??_Get_DayOfWeek+1
4754 0E7D 0832 movf ??_Get_DayOfWeek,w
4755 0E7E 07B0 addwf Get_DayOfWeek@d,f
4756 0E7F 1803 skipnc
4757 0E80 0AB1 incf Get_DayOfWeek@d+1,f
4758 0E81 0833 movf ??_Get_DayOfWeek+1,w
4759 0E82 07B1 addwf Get_DayOfWeek@d+1,f
4760 0E83 2E90 goto l2932
4761 0E84 l2930:
4762 0E84 082C movf Get_DayOfWeek@y,w
4763 0E85 07B0 addwf Get_DayOfWeek@d,f
4764 0E86 1803 skipnc
4765 0E87 0AB1 incf Get_DayOfWeek@d+1,f
4766 0E88 082D movf Get_DayOfWeek@y+1,w
4767 0E89 07B1 addwf Get_DayOfWeek@d+1,f
4768 0E8A 3001 movlw 1
4769 0E8B 02AC subwf Get_DayOfWeek@y,f
4770 0E8C 3000 movlw 0
4771 0E8D 1C03 skipc
4772 0E8E 03AD decf Get_DayOfWeek@y+1,f
4773 0E8F 02AD subwf Get_DayOfWeek@y+1,f
4774 0E90 l2932:
4775 0E90 3007 movlw 7
4776 0E91 00A7 movwf ___lwmod@divisor
4777 0E92 3000 movlw 0
4778 0E93 00A8 movwf ___lwmod@divisor+1
4779 0E94 082D movf Get_DayOfWeek@y+1,w
4780 0E95 00B3 movwf ??_Get_DayOfWeek+1
4781 0E96 082C movf Get_DayOfWeek@y,w
4782 0E97 00B2 movwf ??_Get_DayOfWeek
4783 0E98 1003 clrc
4784 0E99 0CB3 rrf ??_Get_DayOfWeek+1,f
4785 0E9A 0CB2 rrf ??_Get_DayOfWeek,f
4786 0E9B 1003 clrc
4787 0E9C 0CB3 rrf ??_Get_DayOfWeek+1,f
4788 0E9D 0CB2 rrf ??_Get_DayOfWeek,f
4789 0E9E 3009 movlw 9
4790 0E9F 00A0 movwf ___lwdiv@divisor
4791 0EA0 3000 movlw 0
4792 0EA1 00A1 movwf ___lwdiv@divisor+1
4793 0EA2 082F movf Get_DayOfWeek@m+1,w
4794 0EA3 00F3 movwf ___wmul@multiplier+1
4795 0EA4 082E movf Get_DayOfWeek@m,w
4796 0EA5 00F2 movwf ___wmul@multiplier
4797 0EA6 3017 movlw 23
4798 0EA7 00F4 movwf ___wmul@multiplicand
4799 0EA8 3000 movlw 0
4800 0EA9 00F5 movwf ___wmul@multiplicand+1
4801 0EAA 120A 158A 209D 120A 158A fcall ___wmul
4802 0EAF 0873 movf ?___wmul+1,w
4803 0EB0 1283 bcf 3,5 ;RP0=0, select bank0
4804 0EB1 1303 bcf 3,6 ;RP1=0, select bank0
4805 0EB2 00A3 movwf ___lwdiv@dividend+1
4806 0EB3 0872 movf ?___wmul,w
4807 0EB4 00A2 movwf ___lwdiv@dividend
4808 0EB5 120A 158A 22FA 120A 158A fcall ___lwdiv
4809 0EBA 1283 bcf 3,5 ;RP0=0, select bank0
4810 0EBB 1303 bcf 3,6 ;RP1=0, select bank0
4811 0EBC 0832 movf ??_Get_DayOfWeek,w
4812 0EBD 0720 addwf ?___lwdiv,w
4813 0EBE 00B4 movwf ??_Get_DayOfWeek+2
4814 0EBF 0833 movf ??_Get_DayOfWeek+1,w
4815 0EC0 1803 skipnc
4816 0EC1 0A33 incf ??_Get_DayOfWeek+1,w
4817 0EC2 0721 addwf ?___lwdiv+1,w
4818 0EC3 00B5 movwf ??_Get_DayOfWeek+3
4819 0EC4 3090 movlw 144
4820 0EC5 00A0 movwf ___lwdiv@divisor
4821 0EC6 3001 movlw 1
4822 0EC7 00A1 movwf ___lwdiv@divisor+1
4823 0EC8 082D movf Get_DayOfWeek@y+1,w
4824 0EC9 00A3 movwf ___lwdiv@dividend+1
4825 0ECA 082C movf Get_DayOfWeek@y,w
4826 0ECB 00A2 movwf ___lwdiv@dividend
4827 0ECC 120A 158A 22FA 120A 158A fcall ___lwdiv
4828 0ED1 1283 bcf 3,5 ;RP0=0, select bank0
4829 0ED2 1303 bcf 3,6 ;RP1=0, select bank0
4830 0ED3 0820 movf ?___lwdiv,w
4831 0ED4 0734 addwf ??_Get_DayOfWeek+2,w
4832 0ED5 00B6 movwf ??_Get_DayOfWeek+4
4833 0ED6 0821 movf ?___lwdiv+1,w
4834 0ED7 1803 skipnc
4835 0ED8 0A21 incf ?___lwdiv+1,w
4836 0ED9 0735 addwf ??_Get_DayOfWeek+3,w
4837 0EDA 00B7 movwf ??_Get_DayOfWeek+5
4838 0EDB 3064 movlw 100
4839 0EDC 00A0 movwf ___lwdiv@divisor
4840 0EDD 3000 movlw 0
4841 0EDE 00A1 movwf ___lwdiv@divisor+1
4842 0EDF 082D movf Get_DayOfWeek@y+1,w
4843 0EE0 00A3 movwf ___lwdiv@dividend+1
4844 0EE1 082C movf Get_DayOfWeek@y,w
4845 0EE2 00A2 movwf ___lwdiv@dividend
4846 0EE3 120A 158A 22FA 120A 158A fcall ___lwdiv
4847 0EE8 1283 bcf 3,5 ;RP0=0, select bank0
4848 0EE9 1303 bcf 3,6 ;RP1=0, select bank0
4849 0EEA 0820 movf ?___lwdiv,w
4850 0EEB 0236 subwf ??_Get_DayOfWeek+4,w
4851 0EEC 00B8 movwf ??_Get_DayOfWeek+6
4852 0EED 0821 movf ?___lwdiv+1,w
4853 0EEE 1C03 skipc
4854 0EEF 0A21 incf ?___lwdiv+1,w
4855 0EF0 0237 subwf ??_Get_DayOfWeek+5,w
4856 0EF1 00B9 movwf ??_Get_DayOfWeek+7
4857 0EF2 0830 movf Get_DayOfWeek@d,w
4858 0EF3 0738 addwf ??_Get_DayOfWeek+6,w
4859 0EF4 00BA movwf ??_Get_DayOfWeek+8
4860 0EF5 0831 movf Get_DayOfWeek@d+1,w
4861 0EF6 1803 skipnc
4862 0EF7 0A31 incf Get_DayOfWeek@d+1,w
4863 0EF8 0739 addwf ??_Get_DayOfWeek+7,w
4864 0EF9 00BB movwf ??_Get_DayOfWeek+9
4865 0EFA 083A movf ??_Get_DayOfWeek+8,w
4866 0EFB 3E04 addlw 4
4867 0EFC 00A9 movwf ___lwmod@dividend
4868 0EFD 083B movf ??_Get_DayOfWeek+9,w
4869 0EFE 1803 skipnc
4870 0EFF 3E01 addlw 1
4871 0F00 3E00 addlw 0
4872 0F01 00AA movwf ___lwmod@dividend+1
4873 0F02 120A 158A 21E6 fcall ___lwmod
4874 0F05 1283 bcf 3,5 ;RP0=0, select bank0
4875 0F06 1303 bcf 3,6 ;RP1=0, select bank0
4876 0F07 0827 movf ?___lwmod,w
4877 0F08 3E01 addlw 1
4878 0F09 00AC movwf ?_Get_DayOfWeek
4879 0F0A 0828 movf ?___lwmod+1,w
4880 0F0B 1803 skipnc
4881 0F0C 3E01 addlw 1
4882 0F0D 3E00 addlw 0
4883 0F0E 00AD movwf ?_Get_DayOfWeek+1
4884 0F0F 0008 return
4885 0F10 __end_of_Get_DayOfWeek:
4886
4887 psect text16
4888 09E6 __ptext16:
4889 ;; *************** function ___lwmod *****************
4890 ;; Defined at:
4891 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwmod.c"
4892 ;; Parameters: Size Location Type
4893 ;; divisor 2 7[BANK0 ] unsigned int
4894 ;; dividend 2 9[BANK0 ] unsigned int
4895 ;; Auto vars: Size Location Type
4896 ;; counter 1 11[BANK0 ] unsigned char
4897 ;; Return value: Size Location Type
4898 ;; 2 7[BANK0 ] unsigned int
4899 ;; Registers used:
4900 ;; wreg, status,2, status,0
4901 ;; Tracked objects:
4902 ;; On entry : 0/0
4903 ;; On exit : 0/0
4904 ;; Unchanged: 0/0
4905 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
4906 ;; Params: 0 4 0 0 0
4907 ;; Locals: 0 1 0 0 0
4908 ;; Temps: 1 0 0 0 0
4909 ;; Totals: 1 5 0 0 0
4910 ;;Total ram usage: 6 bytes
4911 ;; Hardware stack levels used: 1
4912 ;; Hardware stack levels required when called: 1
4913 ;; This function calls:
4914 ;; Nothing
4915 ;; This function is called by:
4916 ;; _display_Digit
4917 ;; _Get_DayOfWeek
4918 ;; _Get_Days_In_Month
4919 ;; _Get_Is_Leap_Year
4920 ;; This function uses a non-reentrant model
4921 ;;
4922
4923
4924 ;psect for function ___lwmod
4925 09E6 ___lwmod:
4926
4927 ;incstack = 0
4928 ; Regs used in ___lwmod: [wreg+status,2+status,0]
4929 09E6 1283 bcf 3,5 ;RP0=0, select bank0
4930 09E7 1303 bcf 3,6 ;RP1=0, select bank0
4931 09E8 0827 movf ___lwmod@divisor,w
4932 09E9 0428 iorwf ___lwmod@divisor+1,w
4933 09EA 1903 btfsc 3,2
4934 09EB 2A15 goto l2844
4935 09EC 01AB clrf ___lwmod@counter
4936 09ED 0AAB incf ___lwmod@counter,f
4937 09EE l2834:
4938 09EE 1BA8 btfsc ___lwmod@divisor+1,7
4939 09EF 29FC goto l2836
4940 09F0 3001 movlw 1
4941 09F1 u2305:
4942 09F1 1003 clrc
4943 09F2 0DA7 rlf ___lwmod@divisor,f
4944 09F3 0DA8 rlf ___lwmod@divisor+1,f
4945 09F4 3EFF addlw -1
4946 09F5 1D03 skipz
4947 09F6 29F1 goto u2305
4948 09F7 3001 movlw 1
4949 09F8 00F9 movwf ??___lwmod
4950 09F9 0879 movf ??___lwmod,w
4951 09FA 07AB addwf ___lwmod@counter,f
4952 09FB 29EE goto l2834
4953 09FC l2836:
4954 09FC 0828 movf ___lwmod@divisor+1,w
4955 09FD 022A subwf ___lwmod@dividend+1,w
4956 09FE 1D03 skipz
4957 09FF 2A02 goto u2325
4958 0A00 0827 movf ___lwmod@divisor,w
4959 0A01 0229 subwf ___lwmod@dividend,w
4960 0A02 u2325:
4961 0A02 1C03 skipc
4962 0A03 2A0A goto l2840
4963 0A04 0827 movf ___lwmod@divisor,w
4964 0A05 02A9 subwf ___lwmod@dividend,f
4965 0A06 0828 movf ___lwmod@divisor+1,w
4966 0A07 1C03 skipc
4967 0A08 03AA decf ___lwmod@dividend+1,f
4968 0A09 02AA subwf ___lwmod@dividend+1,f
4969 0A0A l2840:
4970 0A0A 3001 movlw 1
4971 0A0B u2335:
4972 0A0B 1003 clrc
4973 0A0C 0CA8 rrf ___lwmod@divisor+1,f
4974 0A0D 0CA7 rrf ___lwmod@divisor,f
4975 0A0E 3EFF addlw -1
4976 0A0F 1D03 skipz
4977 0A10 2A0B goto u2335
4978 0A11 3001 movlw 1
4979 0A12 02AB subwf ___lwmod@counter,f
4980 0A13 1D03 btfss 3,2
4981 0A14 29FC goto l2836
4982 0A15 l2844:
4983 0A15 082A movf ___lwmod@dividend+1,w
4984 0A16 00A8 movwf ?___lwmod+1
4985 0A17 0829 movf ___lwmod@dividend,w
4986 0A18 00A7 movwf ?___lwmod
4987 0A19 0008 return
4988 0A1A __end_of___lwmod:
4989
4990 psect text17
4991 0AFA __ptext17:
4992 ;; *************** function ___lwdiv *****************
4993 ;; Defined at:
4994 ;; line 5 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\lwdiv.c"
4995 ;; Parameters: Size Location Type
4996 ;; divisor 2 0[BANK0 ] unsigned int
4997 ;; dividend 2 2[BANK0 ] unsigned int
4998 ;; Auto vars: Size Location Type
4999 ;; quotient 2 5[BANK0 ] unsigned int
5000 ;; counter 1 4[BANK0 ] unsigned char
5001 ;; Return value: Size Location Type
5002 ;; 2 0[BANK0 ] unsigned int
5003 ;; Registers used:
5004 ;; wreg, status,2, status,0
5005 ;; Tracked objects:
5006 ;; On entry : 0/0
5007 ;; On exit : 0/0
5008 ;; Unchanged: 0/0
5009 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5010 ;; Params: 0 4 0 0 0
5011 ;; Locals: 0 3 0 0 0
5012 ;; Temps: 1 0 0 0 0
5013 ;; Totals: 1 7 0 0 0
5014 ;;Total ram usage: 8 bytes
5015 ;; Hardware stack levels used: 1
5016 ;; Hardware stack levels required when called: 1
5017 ;; This function calls:
5018 ;; Nothing
5019 ;; This function is called by:
5020 ;; _display_Digit
5021 ;; _update_Display
5022 ;; _Get_DayOfWeek
5023 ;; This function uses a non-reentrant model
5024 ;;
5025
5026
5027 ;psect for function ___lwdiv
5028 0AFA ___lwdiv:
5029
5030 ;incstack = 0
5031 ; Regs used in ___lwdiv: [wreg+status,2+status,0]
5032 0AFA 1283 bcf 3,5 ;RP0=0, select bank0
5033 0AFB 1303 bcf 3,6 ;RP1=0, select bank0
5034 0AFC 01A5 clrf ___lwdiv@quotient
5035 0AFD 01A6 clrf ___lwdiv@quotient+1
5036 0AFE 0820 movf ___lwdiv@divisor,w
5037 0AFF 0421 iorwf ___lwdiv@divisor+1,w
5038 0B00 1903 btfsc 3,2
5039 0B01 2B33 goto l2886
5040 0B02 01A4 clrf ___lwdiv@counter
5041 0B03 0AA4 incf ___lwdiv@counter,f
5042 0B04 l2874:
5043 0B04 1BA1 btfsc ___lwdiv@divisor+1,7
5044 0B05 2B12 goto l2876
5045 0B06 3001 movlw 1
5046 0B07 u2395:
5047 0B07 1003 clrc
5048 0B08 0DA0 rlf ___lwdiv@divisor,f
5049 0B09 0DA1 rlf ___lwdiv@divisor+1,f
5050 0B0A 3EFF addlw -1
5051 0B0B 1D03 skipz
5052 0B0C 2B07 goto u2395
5053 0B0D 3001 movlw 1
5054 0B0E 00F8 movwf ??___lwdiv
5055 0B0F 0878 movf ??___lwdiv,w
5056 0B10 07A4 addwf ___lwdiv@counter,f
5057 0B11 2B04 goto l2874
5058 0B12 l2876:
5059 0B12 3001 movlw 1
5060 0B13 u2415:
5061 0B13 1003 clrc
5062 0B14 0DA5 rlf ___lwdiv@quotient,f
5063 0B15 0DA6 rlf ___lwdiv@quotient+1,f
5064 0B16 3EFF addlw -1
5065 0B17 1D03 skipz
5066 0B18 2B13 goto u2415
5067 0B19 0821 movf ___lwdiv@divisor+1,w
5068 0B1A 0223 subwf ___lwdiv@dividend+1,w
5069 0B1B 1D03 skipz
5070 0B1C 2B1F goto u2425
5071 0B1D 0820 movf ___lwdiv@divisor,w
5072 0B1E 0222 subwf ___lwdiv@dividend,w
5073 0B1F u2425:
5074 0B1F 1C03 skipc
5075 0B20 2B28 goto l2882
5076 0B21 0820 movf ___lwdiv@divisor,w
5077 0B22 02A2 subwf ___lwdiv@dividend,f
5078 0B23 0821 movf ___lwdiv@divisor+1,w
5079 0B24 1C03 skipc
5080 0B25 03A3 decf ___lwdiv@dividend+1,f
5081 0B26 02A3 subwf ___lwdiv@dividend+1,f
5082 0B27 1425 bsf ___lwdiv@quotient,0
5083 0B28 l2882:
5084 0B28 3001 movlw 1
5085 0B29 u2435:
5086 0B29 1003 clrc
5087 0B2A 0CA1 rrf ___lwdiv@divisor+1,f
5088 0B2B 0CA0 rrf ___lwdiv@divisor,f
5089 0B2C 3EFF addlw -1
5090 0B2D 1D03 skipz
5091 0B2E 2B29 goto u2435
5092 0B2F 3001 movlw 1
5093 0B30 02A4 subwf ___lwdiv@counter,f
5094 0B31 1D03 btfss 3,2
5095 0B32 2B12 goto l2876
5096 0B33 l2886:
5097 0B33 0826 movf ___lwdiv@quotient+1,w
5098 0B34 00A1 movwf ?___lwdiv+1
5099 0B35 0825 movf ___lwdiv@quotient,w
5100 0B36 00A0 movwf ?___lwdiv
5101 0B37 0008 return
5102 0B38 __end_of___lwdiv:
5103
5104 psect text18
5105 0BBC __ptext18:
5106 ;; *************** function _display_Lcd_Layout *****************
5107 ;; Defined at:
5108 ;; line 264 in file "main.c"
5109 ;; Parameters: Size Location Type
5110 ;; None
5111 ;; Auto vars: Size Location Type
5112 ;; None
5113 ;; Return value: Size Location Type
5114 ;; 1 wreg void
5115 ;; Registers used:
5116 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
5117 ;; Tracked objects:
5118 ;; On entry : 0/0
5119 ;; On exit : 0/0
5120 ;; Unchanged: 0/0
5121 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5122 ;; Params: 0 0 0 0 0
5123 ;; Locals: 0 0 0 0 0
5124 ;; Temps: 0 3 0 0 0
5125 ;; Totals: 0 3 0 0 0
5126 ;;Total ram usage: 3 bytes
5127 ;; Hardware stack levels used: 1
5128 ;; Hardware stack levels required when called: 4
5129 ;; This function calls:
5130 ;; _Lcd_Clear
5131 ;; _Lcd_Set_Cursor
5132 ;; _Lcd_Write_Char
5133 ;; _Lcd_Write_String
5134 ;; This function is called by:
5135 ;; _main
5136 ;; This function uses a non-reentrant model
5137 ;;
5138
5139
5140 ;psect for function _display_Lcd_Layout
5141 0BBC _display_Lcd_Layout:
5142
5143 ;main.c: 266: Lcd_Clear();
5144
5145 ;incstack = 0
5146 ; Regs used in _display_Lcd_Layout: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
5147 0BBC 160A 118A 2774 120A 158A fcall _Lcd_Clear
5148
5149 ;main.c: 267: Lcd_Set_Cursor(1, 1);
5150 0BC1 01F6 clrf Lcd_Set_Cursor@b
5151 0BC2 0AF6 incf Lcd_Set_Cursor@b,f
5152 0BC3 3001 movlw 1
5153 0BC4 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor
5154
5155 ;main.c: 268: Lcd_Write_String("HH:mm:ss -PP.P");
5156 0BC9 3012 movlw (low ((STR_3-__stringbase)| (0+32768)))& (0+255)
5157 0BCA 1283 bcf 3,5 ;RP0=0, select bank0
5158 0BCB 1303 bcf 3,6 ;RP1=0, select bank0
5159 0BCC 00BF movwf Lcd_Write_String@a
5160 0BCD 3080 movlw 128
5161 0BCE 00C0 movwf Lcd_Write_String@a+1
5162 0BCF 120A 158A 2338 120A 158A fcall _Lcd_Write_String
5163
5164 ;main.c: 269: Lcd_Write_Char(0xDF);
5165 0BD4 30DF movlw 223
5166 0BD5 120A 158A 2284 120A 158A fcall _Lcd_Write_Char
5167
5168 ;main.c: 270: Lcd_Write_Char('C');
5169 0BDA 3043 movlw 67
5170 0BDB 120A 158A 2284 120A 158A fcall _Lcd_Write_Char
5171
5172 ;main.c: 271: Lcd_Set_Cursor(2, 1);
5173 0BE0 01F6 clrf Lcd_Set_Cursor@b
5174 0BE1 0AF6 incf Lcd_Set_Cursor@b,f
5175 0BE2 3002 movlw 2
5176 0BE3 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor
5177
5178 ;main.c: 272: Lcd_Write_String(" ddd DD/MM/CCYY ");
5179 0BE8 3001 movlw (low ((STR_4-__stringbase)| (0+32768)))& (0+255)
5180 0BE9 1283 bcf 3,5 ;RP0=0, select bank0
5181 0BEA 1303 bcf 3,6 ;RP1=0, select bank0
5182 0BEB 00BF movwf Lcd_Write_String@a
5183 0BEC 3080 movlw 128
5184 0BED 00C0 movwf Lcd_Write_String@a+1
5185 0BEE 120A 158A 2338 120A 158A fcall _Lcd_Write_String
5186
5187 ;main.c: 274: _delay((unsigned long)((1000)*(20000000/4000.0)));
5188 0BF3 301A movlw 26
5189 0BF4 1283 bcf 3,5 ;RP0=0, select bank0
5190 0BF5 1303 bcf 3,6 ;RP1=0, select bank0
5191 0BF6 00C8 movwf ??_display_Lcd_Layout+2
5192 0BF7 305E movlw 94
5193 0BF8 00C7 movwf ??_display_Lcd_Layout+1
5194 0BF9 306D movlw 109
5195 0BFA 00C6 movwf ??_display_Lcd_Layout
5196 0BFB u3107:
5197 0BFB 0BC6 decfsz ??_display_Lcd_Layout,f
5198 0BFC 2BFB goto u3107
5199 0BFD 0BC7 decfsz ??_display_Lcd_Layout+1,f
5200 0BFE 2BFB goto u3107
5201 0BFF 0BC8 decfsz ??_display_Lcd_Layout+2,f
5202 0C00 2BFB goto u3107
5203 0C01 2C02 nop2
5204 0C02 0008 return
5205 0C03 __end_of_display_Lcd_Layout:
5206
5207 psect text19
5208 0B79 __ptext19:
5209 ;; *************** function _display_Intro *****************
5210 ;; Defined at:
5211 ;; line 252 in file "main.c"
5212 ;; Parameters: Size Location Type
5213 ;; None
5214 ;; Auto vars: Size Location Type
5215 ;; None
5216 ;; Return value: Size Location Type
5217 ;; 1 wreg void
5218 ;; Registers used:
5219 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
5220 ;; Tracked objects:
5221 ;; On entry : 0/0
5222 ;; On exit : 0/0
5223 ;; Unchanged: 0/0
5224 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5225 ;; Params: 0 0 0 0 0
5226 ;; Locals: 0 0 0 0 0
5227 ;; Temps: 0 3 0 0 0
5228 ;; Totals: 0 3 0 0 0
5229 ;;Total ram usage: 3 bytes
5230 ;; Hardware stack levels used: 1
5231 ;; Hardware stack levels required when called: 4
5232 ;; This function calls:
5233 ;; _Lcd_Clear
5234 ;; _Lcd_Set_Cursor
5235 ;; _Lcd_Write_String
5236 ;; This function is called by:
5237 ;; _main
5238 ;; This function uses a non-reentrant model
5239 ;;
5240
5241
5242 ;psect for function _display_Intro
5243 0B79 _display_Intro:
5244
5245 ;main.c: 254: Lcd_Clear();
5246
5247 ;incstack = 0
5248 ; Regs used in _display_Intro: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
5249 0B79 160A 118A 2774 120A 158A fcall _Lcd_Clear
5250
5251 ;main.c: 255: Lcd_Set_Cursor(1, 4);
5252 0B7E 3004 movlw 4
5253 0B7F 1283 bcf 3,5 ;RP0=0, select bank0
5254 0B80 1303 bcf 3,6 ;RP1=0, select bank0
5255 0B81 00C6 movwf ??_display_Intro
5256 0B82 0846 movf ??_display_Intro,w
5257 0B83 00F6 movwf Lcd_Set_Cursor@b
5258 0B84 3001 movlw 1
5259 0B85 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor
5260
5261 ;main.c: 256: Lcd_Write_String("Desk Clock");
5262 0B8A 3021 movlw (low ((STR_1-__stringbase)| (0+32768)))& (0+255)
5263 0B8B 1283 bcf 3,5 ;RP0=0, select bank0
5264 0B8C 1303 bcf 3,6 ;RP1=0, select bank0
5265 0B8D 00BF movwf Lcd_Write_String@a
5266 0B8E 3080 movlw 128
5267 0B8F 00C0 movwf Lcd_Write_String@a+1
5268 0B90 120A 158A 2338 120A 158A fcall _Lcd_Write_String
5269
5270 ;main.c: 257: Lcd_Set_Cursor(2, 15);
5271 0B95 300F movlw 15
5272 0B96 1283 bcf 3,5 ;RP0=0, select bank0
5273 0B97 1303 bcf 3,6 ;RP1=0, select bank0
5274 0B98 00C6 movwf ??_display_Intro
5275 0B99 0846 movf ??_display_Intro,w
5276 0B9A 00F6 movwf Lcd_Set_Cursor@b
5277 0B9B 3002 movlw 2
5278 0B9C 120A 158A 2497 120A 158A fcall _Lcd_Set_Cursor
5279
5280 ;main.c: 258: Lcd_Write_String("V1");
5281 0BA1 302C movlw (low ((STR_2-__stringbase)| (0+32768)))& (0+255)
5282 0BA2 1283 bcf 3,5 ;RP0=0, select bank0
5283 0BA3 1303 bcf 3,6 ;RP1=0, select bank0
5284 0BA4 00BF movwf Lcd_Write_String@a
5285 0BA5 3080 movlw 128
5286 0BA6 00C0 movwf Lcd_Write_String@a+1
5287 0BA7 120A 158A 2338 120A 158A fcall _Lcd_Write_String
5288
5289 ;main.c: 259: _delay((unsigned long)((1000)*(20000000/4000.0)));
5290 0BAC 301A movlw 26
5291 0BAD 1283 bcf 3,5 ;RP0=0, select bank0
5292 0BAE 1303 bcf 3,6 ;RP1=0, select bank0
5293 0BAF 00C8 movwf ??_display_Intro+2
5294 0BB0 305E movlw 94
5295 0BB1 00C7 movwf ??_display_Intro+1
5296 0BB2 306D movlw 109
5297 0BB3 00C6 movwf ??_display_Intro
5298 0BB4 u3117:
5299 0BB4 0BC6 decfsz ??_display_Intro,f
5300 0BB5 2BB4 goto u3117
5301 0BB6 0BC7 decfsz ??_display_Intro+1,f
5302 0BB7 2BB4 goto u3117
5303 0BB8 0BC8 decfsz ??_display_Intro+2,f
5304 0BB9 2BB4 goto u3117
5305 0BBA 2BBB nop2
5306 0BBB 0008 return
5307 0BBC __end_of_display_Intro:
5308
5309 psect text20
5310 0B38 __ptext20:
5311 ;; *************** function _Lcd_Write_String *****************
5312 ;; Defined at:
5313 ;; line 93 in file "lcd.c"
5314 ;; Parameters: Size Location Type
5315 ;; a 2 31[BANK0 ] PTR unsigned char
5316 ;; -> dayOfWeek(28), STR_5(2), STR_4(17), STR_3(15),
5317 ;; -> STR_2(3), STR_1(11),
5318 ;; Auto vars: Size Location Type
5319 ;; i 2 36[BANK0 ] int
5320 ;; Return value: Size Location Type
5321 ;; 1 wreg void
5322 ;; Registers used:
5323 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
5324 ;; Tracked objects:
5325 ;; On entry : 0/0
5326 ;; On exit : 0/0
5327 ;; Unchanged: 0/0
5328 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5329 ;; Params: 0 2 0 0 0
5330 ;; Locals: 0 2 0 0 0
5331 ;; Temps: 0 3 0 0 0
5332 ;; Totals: 0 7 0 0 0
5333 ;;Total ram usage: 7 bytes
5334 ;; Hardware stack levels used: 1
5335 ;; Hardware stack levels required when called: 3
5336 ;; This function calls:
5337 ;; _Lcd_Write_Char
5338 ;; This function is called by:
5339 ;; _display_Intro
5340 ;; _display_Lcd_Layout
5341 ;; _update_Display
5342 ;; _edit_Date_Time
5343 ;; This function uses a non-reentrant model
5344 ;;
5345
5346
5347 ;psect for function _Lcd_Write_String
5348 0B38 _Lcd_Write_String:
5349
5350 ;lcd.c: 94: int i;;lcd.c: 95: for (i = 0; a[i] != '\0'; i++)
5351
5352 ;incstack = 0
5353 ; Regs used in _Lcd_Write_String: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
5354 0B38 1283 bcf 3,5 ;RP0=0, select bank0
5355 0B39 1303 bcf 3,6 ;RP1=0, select bank0
5356 0B3A 01C4 clrf Lcd_Write_String@i
5357 0B3B 01C5 clrf Lcd_Write_String@i+1
5358 0B3C l2262:
5359 0B3C 0844 movf Lcd_Write_String@i,w
5360 0B3D 073F addwf Lcd_Write_String@a,w
5361 0B3E 00C2 movwf ??_Lcd_Write_String+1
5362 0B3F 0840 movf Lcd_Write_String@a+1,w
5363 0B40 00C1 movwf ??_Lcd_Write_String
5364 0B41 1803 skipnc
5365 0B42 0AC1 incf ??_Lcd_Write_String,f
5366 0B43 1BC4 btfsc Lcd_Write_String@i,7
5367 0B44 03C1 decf ??_Lcd_Write_String,f
5368 0B45 1283 bcf 3,5 ;RP0=0, select bank0
5369 0B46 1303 bcf 3,6 ;RP1=0, select bank0
5370 0B47 0841 movf ??_Lcd_Write_String,w
5371 0B48 00C3 movwf ??_Lcd_Write_String+2
5372 0B49 0843 movf ??_Lcd_Write_String+2,w
5373 0B4A 00FF movwf 127
5374 0B4B 0842 movf ??_Lcd_Write_String+1,w
5375 0B4C 0084 movwf 4
5376 0B4D 120A 158A 2000 120A 158A fcall stringtab
5377 0B52 3A00 xorlw 0
5378 0B53 1903 btfsc 3,2
5379 0B54 0008 return
5380
5381 ;lcd.c: 96: Lcd_Write_Char(a[i]);
5382 0B55 0844 movf Lcd_Write_String@i,w
5383 0B56 073F addwf Lcd_Write_String@a,w
5384 0B57 00C2 movwf ??_Lcd_Write_String+1
5385 0B58 0840 movf Lcd_Write_String@a+1,w
5386 0B59 00C1 movwf ??_Lcd_Write_String
5387 0B5A 1803 skipnc
5388 0B5B 0AC1 incf ??_Lcd_Write_String,f
5389 0B5C 1BC4 btfsc Lcd_Write_String@i,7
5390 0B5D 03C1 decf ??_Lcd_Write_String,f
5391 0B5E 1283 bcf 3,5 ;RP0=0, select bank0
5392 0B5F 1303 bcf 3,6 ;RP1=0, select bank0
5393 0B60 0841 movf ??_Lcd_Write_String,w
5394 0B61 00C3 movwf ??_Lcd_Write_String+2
5395 0B62 0843 movf ??_Lcd_Write_String+2,w
5396 0B63 00FF movwf 127
5397 0B64 0842 movf ??_Lcd_Write_String+1,w
5398 0B65 0084 movwf 4
5399 0B66 120A 158A 2000 120A 158A fcall stringtab
5400 0B6B 120A 158A 2284 120A 158A fcall _Lcd_Write_Char
5401 0B70 3001 movlw 1
5402 0B71 1283 bcf 3,5 ;RP0=0, select bank0
5403 0B72 1303 bcf 3,6 ;RP1=0, select bank0
5404 0B73 07C4 addwf Lcd_Write_String@i,f
5405 0B74 1803 skipnc
5406 0B75 0AC5 incf Lcd_Write_String@i+1,f
5407 0B76 3000 movlw 0
5408 0B77 07C5 addwf Lcd_Write_String@i+1,f
5409 0B78 2B3C goto l2262
5410 0B79 __end_of_Lcd_Write_String:
5411
5412 psect text21
5413 0C97 __ptext21:
5414 ;; *************** function _Lcd_Set_Cursor *****************
5415 ;; Defined at:
5416 ;; line 40 in file "lcd.c"
5417 ;; Parameters: Size Location Type
5418 ;; a 1 wreg unsigned char
5419 ;; b 1 6[COMMON] unsigned char
5420 ;; Auto vars: Size Location Type
5421 ;; a 1 0[BANK0 ] unsigned char
5422 ;; temp 1 3[BANK0 ] unsigned char
5423 ;; y 1 2[BANK0 ] unsigned char
5424 ;; z 1 1[BANK0 ] unsigned char
5425 ;; Return value: Size Location Type
5426 ;; 1 wreg void
5427 ;; Registers used:
5428 ;; wreg, status,2, status,0, pclath, cstack
5429 ;; Tracked objects:
5430 ;; On entry : 0/0
5431 ;; On exit : 0/0
5432 ;; Unchanged: 0/0
5433 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5434 ;; Params: 1 0 0 0 0
5435 ;; Locals: 0 4 0 0 0
5436 ;; Temps: 2 0 0 0 0
5437 ;; Totals: 3 4 0 0 0
5438 ;;Total ram usage: 7 bytes
5439 ;; Hardware stack levels used: 1
5440 ;; Hardware stack levels required when called: 3
5441 ;; This function calls:
5442 ;; _Lcd_Cmd
5443 ;; This function is called by:
5444 ;; _main
5445 ;; _display_Intro
5446 ;; _display_Lcd_Layout
5447 ;; _update_Display
5448 ;; _edit_Date_Time
5449 ;; This function uses a non-reentrant model
5450 ;;
5451
5452
5453 ;psect for function _Lcd_Set_Cursor
5454 0C97 _Lcd_Set_Cursor:
5455
5456 ;incstack = 0
5457 ; Regs used in _Lcd_Set_Cursor: [wreg+status,2+status,0+pclath+cstack]
5458 ;Lcd_Set_Cursor@a stored from wreg
5459 0C97 1283 bcf 3,5 ;RP0=0, select bank0
5460 0C98 1303 bcf 3,6 ;RP1=0, select bank0
5461 0C99 00A0 movwf Lcd_Set_Cursor@a
5462
5463 ;lcd.c: 41: char temp, z, y;;lcd.c: 42: if (a == 1) {
5464 0C9A 0320 decf Lcd_Set_Cursor@a,w
5465 0C9B 1D03 btfss 3,2
5466 0C9C 2CC0 goto l2242
5467
5468 ;lcd.c: 43: temp = 0x80 + b - 1;
5469 0C9D 0876 movf Lcd_Set_Cursor@b,w
5470 0C9E 3E7F addlw 127
5471 0C9F 00F7 movwf ??_Lcd_Set_Cursor
5472 0CA0 0877 movf ??_Lcd_Set_Cursor,w
5473 0CA1 00A3 movwf Lcd_Set_Cursor@temp
5474
5475 ;lcd.c: 44: z = temp >> 4;
5476 0CA2 0823 movf Lcd_Set_Cursor@temp,w
5477 0CA3 00F7 movwf ??_Lcd_Set_Cursor
5478 0CA4 3004 movlw 4
5479 0CA5 u1595:
5480 0CA5 1003 clrc
5481 0CA6 0CF7 rrf ??_Lcd_Set_Cursor,f
5482 0CA7 3EFF addlw -1
5483 0CA8 1D03 skipz
5484 0CA9 2CA5 goto u1595
5485 0CAA 0877 movf ??_Lcd_Set_Cursor,w
5486 0CAB 00F8 movwf ??_Lcd_Set_Cursor+1
5487 0CAC 0878 movf ??_Lcd_Set_Cursor+1,w
5488 0CAD 00A1 movwf Lcd_Set_Cursor@z
5489
5490 ;lcd.c: 45: y = temp & 0x0F;
5491 0CAE 0823 movf Lcd_Set_Cursor@temp,w
5492 0CAF 390F andlw 15
5493 0CB0 00F7 movwf ??_Lcd_Set_Cursor
5494 0CB1 0877 movf ??_Lcd_Set_Cursor,w
5495 0CB2 00A2 movwf Lcd_Set_Cursor@y
5496
5497 ;lcd.c: 46: Lcd_Cmd(z);
5498 0CB3 0821 movf Lcd_Set_Cursor@z,w
5499 0CB4 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
5500
5501 ;lcd.c: 47: Lcd_Cmd(y);
5502 0CB9 1283 bcf 3,5 ;RP0=0, select bank0
5503 0CBA 1303 bcf 3,6 ;RP1=0, select bank0
5504 0CBB 0822 movf Lcd_Set_Cursor@y,w
5505 0CBC 160A 118A 27E6 fcall _Lcd_Cmd
5506
5507 ;lcd.c: 48: } else if (a == 2) {
5508 0CBF 0008 return
5509 0CC0 l2242:
5510 0CC0 3002 movlw 2
5511 0CC1 0620 xorwf Lcd_Set_Cursor@a,w
5512 0CC2 1D03 btfss 3,2
5513 0CC3 0008 return
5514
5515 ;lcd.c: 49: temp = 0xC0 + b - 1;
5516 0CC4 0876 movf Lcd_Set_Cursor@b,w
5517 0CC5 3EBF addlw 191
5518 0CC6 00F7 movwf ??_Lcd_Set_Cursor
5519 0CC7 0877 movf ??_Lcd_Set_Cursor,w
5520 0CC8 00A3 movwf Lcd_Set_Cursor@temp
5521
5522 ;lcd.c: 50: z = temp >> 4;
5523 0CC9 0823 movf Lcd_Set_Cursor@temp,w
5524 0CCA 00F7 movwf ??_Lcd_Set_Cursor
5525 0CCB 3004 movlw 4
5526 0CCC u1615:
5527 0CCC 1003 clrc
5528 0CCD 0CF7 rrf ??_Lcd_Set_Cursor,f
5529 0CCE 3EFF addlw -1
5530 0CCF 1D03 skipz
5531 0CD0 2CCC goto u1615
5532 0CD1 0877 movf ??_Lcd_Set_Cursor,w
5533 0CD2 00F8 movwf ??_Lcd_Set_Cursor+1
5534 0CD3 0878 movf ??_Lcd_Set_Cursor+1,w
5535 0CD4 00A1 movwf Lcd_Set_Cursor@z
5536
5537 ;lcd.c: 51: y = temp & 0x0F;
5538 0CD5 0823 movf Lcd_Set_Cursor@temp,w
5539 0CD6 390F andlw 15
5540 0CD7 00F7 movwf ??_Lcd_Set_Cursor
5541 0CD8 0877 movf ??_Lcd_Set_Cursor,w
5542 0CD9 00A2 movwf Lcd_Set_Cursor@y
5543
5544 ;lcd.c: 52: Lcd_Cmd(z);
5545 0CDA 0821 movf Lcd_Set_Cursor@z,w
5546 0CDB 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
5547
5548 ;lcd.c: 53: Lcd_Cmd(y);
5549 0CE0 1283 bcf 3,5 ;RP0=0, select bank0
5550 0CE1 1303 bcf 3,6 ;RP1=0, select bank0
5551 0CE2 0822 movf Lcd_Set_Cursor@y,w
5552 0CE3 160A 118A 27E6 fcall _Lcd_Cmd
5553 0CE6 0008 return
5554 0CE7 __end_of_Lcd_Set_Cursor:
5555
5556 psect text22
5557 1774 __ptext22:
5558 ;; *************** function _Lcd_Clear *****************
5559 ;; Defined at:
5560 ;; line 35 in file "lcd.c"
5561 ;; Parameters: Size Location Type
5562 ;; None
5563 ;; Auto vars: Size Location Type
5564 ;; None
5565 ;; Return value: Size Location Type
5566 ;; 1 wreg void
5567 ;; Registers used:
5568 ;; wreg, status,2, status,0, pclath, cstack
5569 ;; Tracked objects:
5570 ;; On entry : 0/0
5571 ;; On exit : 0/0
5572 ;; Unchanged: 0/0
5573 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5574 ;; Params: 0 0 0 0 0
5575 ;; Locals: 0 0 0 0 0
5576 ;; Temps: 0 0 0 0 0
5577 ;; Totals: 0 0 0 0 0
5578 ;;Total ram usage: 0 bytes
5579 ;; Hardware stack levels used: 1
5580 ;; Hardware stack levels required when called: 3
5581 ;; This function calls:
5582 ;; _Lcd_Cmd
5583 ;; This function is called by:
5584 ;; _display_Intro
5585 ;; _display_Lcd_Layout
5586 ;; This function uses a non-reentrant model
5587 ;;
5588
5589
5590 ;psect for function _Lcd_Clear
5591 1774 _Lcd_Clear:
5592
5593 ;lcd.c: 36: Lcd_Cmd(0);
5594
5595 ;incstack = 0
5596 ; Regs used in _Lcd_Clear: [wreg+status,2+status,0+pclath+cstack]
5597 1774 3000 movlw 0
5598 1775 160A 118A 27E6 160A 118A fcall _Lcd_Cmd
5599
5600 ;lcd.c: 37: Lcd_Cmd(1);
5601 177A 3001 movlw 1
5602 177B 160A 118A 27E6 fcall _Lcd_Cmd
5603 177E 0008 return
5604 177F __end_of_Lcd_Clear:
5605
5606 psect text23
5607 0F10 __ptext23:
5608 ;; *************** function _Update_Current_Date_Time *****************
5609 ;; Defined at:
5610 ;; line 103 in file "ds3231.c"
5611 ;; Parameters: Size Location Type
5612 ;; None
5613 ;; Auto vars: Size Location Type
5614 ;; None
5615 ;; Return value: Size Location Type
5616 ;; 1 wreg void
5617 ;; Registers used:
5618 ;; wreg, status,2, status,0, pclath, cstack
5619 ;; Tracked objects:
5620 ;; On entry : 0/0
5621 ;; On exit : 0/0
5622 ;; Unchanged: 0/0
5623 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5624 ;; Params: 0 0 0 0 0
5625 ;; Locals: 0 0 0 0 0
5626 ;; Temps: 0 0 0 0 0
5627 ;; Totals: 0 0 0 0 0
5628 ;;Total ram usage: 0 bytes
5629 ;; Hardware stack levels used: 1
5630 ;; Hardware stack levels required when called: 3
5631 ;; This function calls:
5632 ;; _BCD_2_DEC
5633 ;; _I2C_Master_Read
5634 ;; _I2C_Master_Start
5635 ;; _I2C_Master_Stop
5636 ;; _I2C_Master_Write
5637 ;; This function is called by:
5638 ;; _main
5639 ;; This function uses a non-reentrant model
5640 ;;
5641
5642
5643 ;psect for function _Update_Current_Date_Time
5644 0F10 _Update_Current_Date_Time:
5645
5646 ;ds3231.c: 105: I2C_Master_Start();
5647
5648 ;incstack = 0
5649 ; Regs used in _Update_Current_Date_Time: [wreg+status,2+status,0+pclath+cstack]
5650 0F10 160A 118A 274D 120A 158A fcall _I2C_Master_Start
5651
5652 ;ds3231.c: 106: I2C_Master_Write(0xD0);
5653 0F15 30D0 movlw 208
5654 0F16 1283 bcf 3,5 ;RP0=0, select bank0
5655 0F17 1303 bcf 3,6 ;RP1=0, select bank0
5656 0F18 00A8 movwf I2C_Master_Write@data
5657 0F19 3000 movlw 0
5658 0F1A 00A9 movwf I2C_Master_Write@data+1
5659 0F1B 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5660
5661 ;ds3231.c: 107: I2C_Master_Write(0);
5662 0F20 3000 movlw 0
5663 0F21 1283 bcf 3,5 ;RP0=0, select bank0
5664 0F22 1303 bcf 3,6 ;RP1=0, select bank0
5665 0F23 00A8 movwf I2C_Master_Write@data
5666 0F24 00A9 movwf I2C_Master_Write@data+1
5667 0F25 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5668
5669 ;ds3231.c: 108: I2C_Master_Stop();
5670 0F2A 160A 118A 2754 120A 158A fcall _I2C_Master_Stop
5671
5672 ;ds3231.c: 111: I2C_Master_Start();
5673 0F2F 160A 118A 274D 120A 158A fcall _I2C_Master_Start
5674
5675 ;ds3231.c: 112: I2C_Master_Write(0xD1);
5676 0F34 30D1 movlw 209
5677 0F35 1283 bcf 3,5 ;RP0=0, select bank0
5678 0F36 1303 bcf 3,6 ;RP1=0, select bank0
5679 0F37 00A8 movwf I2C_Master_Write@data
5680 0F38 3000 movlw 0
5681 0F39 00A9 movwf I2C_Master_Write@data+1
5682 0F3A 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5683
5684 ;ds3231.c: 113: sec = BCD_2_DEC(I2C_Master_Read(1));
5685 0F3F 3001 movlw 1
5686 0F40 00F2 movwf I2C_Master_Read@ack
5687 0F41 3000 movlw 0
5688 0F42 00F3 movwf I2C_Master_Read@ack+1
5689 0F43 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5690 0F48 0873 movf ?_I2C_Master_Read+1,w
5691 0F49 00F9 movwf BCD_2_DEC@to_convert+1
5692 0F4A 0872 movf ?_I2C_Master_Read,w
5693 0F4B 00F8 movwf BCD_2_DEC@to_convert
5694 0F4C 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5695 0F51 0879 movf ?_BCD_2_DEC+1,w
5696 0F52 1283 bcf 3,5 ;RP0=0, select bank0
5697 0F53 1303 bcf 3,6 ;RP1=0, select bank0
5698 0F54 00E4 movwf _sec+1
5699 0F55 0878 movf ?_BCD_2_DEC,w
5700 0F56 00E3 movwf _sec
5701
5702 ;ds3231.c: 114: min = BCD_2_DEC(I2C_Master_Read(1));
5703 0F57 3001 movlw 1
5704 0F58 00F2 movwf I2C_Master_Read@ack
5705 0F59 3000 movlw 0
5706 0F5A 00F3 movwf I2C_Master_Read@ack+1
5707 0F5B 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5708 0F60 0873 movf ?_I2C_Master_Read+1,w
5709 0F61 00F9 movwf BCD_2_DEC@to_convert+1
5710 0F62 0872 movf ?_I2C_Master_Read,w
5711 0F63 00F8 movwf BCD_2_DEC@to_convert
5712 0F64 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5713 0F69 0879 movf ?_BCD_2_DEC+1,w
5714 0F6A 1283 bcf 3,5 ;RP0=0, select bank0
5715 0F6B 1303 bcf 3,6 ;RP1=0, select bank0
5716 0F6C 00E2 movwf _min+1
5717 0F6D 0878 movf ?_BCD_2_DEC,w
5718 0F6E 00E1 movwf _min
5719
5720 ;ds3231.c: 115: hour = BCD_2_DEC(I2C_Master_Read(1));
5721 0F6F 3001 movlw 1
5722 0F70 00F2 movwf I2C_Master_Read@ack
5723 0F71 3000 movlw 0
5724 0F72 00F3 movwf I2C_Master_Read@ack+1
5725 0F73 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5726 0F78 0873 movf ?_I2C_Master_Read+1,w
5727 0F79 00F9 movwf BCD_2_DEC@to_convert+1
5728 0F7A 0872 movf ?_I2C_Master_Read,w
5729 0F7B 00F8 movwf BCD_2_DEC@to_convert
5730 0F7C 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5731 0F81 0879 movf ?_BCD_2_DEC+1,w
5732 0F82 1283 bcf 3,5 ;RP0=0, select bank0
5733 0F83 1303 bcf 3,6 ;RP1=0, select bank0
5734 0F84 00E0 movwf _hour+1
5735 0F85 0878 movf ?_BCD_2_DEC,w
5736 0F86 00DF movwf _hour
5737
5738 ;ds3231.c: 116: day = I2C_Master_Read(1);
5739 0F87 3001 movlw 1
5740 0F88 00F2 movwf I2C_Master_Read@ack
5741 0F89 3000 movlw 0
5742 0F8A 00F3 movwf I2C_Master_Read@ack+1
5743 0F8B 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5744 0F90 0873 movf ?_I2C_Master_Read+1,w
5745 0F91 1683 bsf 3,5 ;RP0=1, select bank1
5746 0F92 1303 bcf 3,6 ;RP1=0, select bank1
5747 0F93 00A3 movwf (_day+1)^(0+128)
5748 0F94 0872 movf ?_I2C_Master_Read,w
5749 0F95 00A2 movwf _day^(0+128)
5750
5751 ;ds3231.c: 117: date = BCD_2_DEC(I2C_Master_Read(1));
5752 0F96 3001 movlw 1
5753 0F97 00F2 movwf I2C_Master_Read@ack
5754 0F98 3000 movlw 0
5755 0F99 00F3 movwf I2C_Master_Read@ack+1
5756 0F9A 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5757 0F9F 0873 movf ?_I2C_Master_Read+1,w
5758 0FA0 00F9 movwf BCD_2_DEC@to_convert+1
5759 0FA1 0872 movf ?_I2C_Master_Read,w
5760 0FA2 00F8 movwf BCD_2_DEC@to_convert
5761 0FA3 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5762 0FA8 0879 movf ?_BCD_2_DEC+1,w
5763 0FA9 1283 bcf 3,5 ;RP0=0, select bank0
5764 0FAA 1303 bcf 3,6 ;RP1=0, select bank0
5765 0FAB 00EC movwf _date+1
5766 0FAC 0878 movf ?_BCD_2_DEC,w
5767 0FAD 00EB movwf _date
5768
5769 ;ds3231.c: 118: month = BCD_2_DEC(I2C_Master_Read(1));
5770 0FAE 3001 movlw 1
5771 0FAF 00F2 movwf I2C_Master_Read@ack
5772 0FB0 3000 movlw 0
5773 0FB1 00F3 movwf I2C_Master_Read@ack+1
5774 0FB2 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5775 0FB7 0873 movf ?_I2C_Master_Read+1,w
5776 0FB8 00F9 movwf BCD_2_DEC@to_convert+1
5777 0FB9 0872 movf ?_I2C_Master_Read,w
5778 0FBA 00F8 movwf BCD_2_DEC@to_convert
5779 0FBB 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5780 0FC0 0879 movf ?_BCD_2_DEC+1,w
5781 0FC1 1283 bcf 3,5 ;RP0=0, select bank0
5782 0FC2 1303 bcf 3,6 ;RP1=0, select bank0
5783 0FC3 00EA movwf _month+1
5784 0FC4 0878 movf ?_BCD_2_DEC,w
5785 0FC5 00E9 movwf _month
5786
5787 ;ds3231.c: 119: year = BCD_2_DEC(I2C_Master_Read(1));
5788 0FC6 3001 movlw 1
5789 0FC7 00F2 movwf I2C_Master_Read@ack
5790 0FC8 3000 movlw 0
5791 0FC9 00F3 movwf I2C_Master_Read@ack+1
5792 0FCA 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5793 0FCF 0873 movf ?_I2C_Master_Read+1,w
5794 0FD0 00F9 movwf BCD_2_DEC@to_convert+1
5795 0FD1 0872 movf ?_I2C_Master_Read,w
5796 0FD2 00F8 movwf BCD_2_DEC@to_convert
5797 0FD3 120A 158A 20E0 120A 158A fcall _BCD_2_DEC
5798 0FD8 0879 movf ?_BCD_2_DEC+1,w
5799 0FD9 1283 bcf 3,5 ;RP0=0, select bank0
5800 0FDA 1303 bcf 3,6 ;RP1=0, select bank0
5801 0FDB 00DE movwf _year+1
5802 0FDC 0878 movf ?_BCD_2_DEC,w
5803 0FDD 00DD movwf _year
5804
5805 ;ds3231.c: 120: I2C_Master_Stop();
5806 0FDE 160A 118A 2754 120A 158A fcall _I2C_Master_Stop
5807
5808 ;ds3231.c: 124: I2C_Master_Start();
5809 0FE3 160A 118A 274D 120A 158A fcall _I2C_Master_Start
5810
5811 ;ds3231.c: 125: I2C_Master_Write(0xD1);
5812 0FE8 30D1 movlw 209
5813 0FE9 1283 bcf 3,5 ;RP0=0, select bank0
5814 0FEA 1303 bcf 3,6 ;RP1=0, select bank0
5815 0FEB 00A8 movwf I2C_Master_Write@data
5816 0FEC 3000 movlw 0
5817 0FED 00A9 movwf I2C_Master_Write@data+1
5818 0FEE 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5819
5820 ;ds3231.c: 126: I2C_Master_Read(1);
5821 0FF3 3001 movlw 1
5822 0FF4 00F2 movwf I2C_Master_Read@ack
5823 0FF5 3000 movlw 0
5824 0FF6 00F3 movwf I2C_Master_Read@ack+1
5825 0FF7 120A 158A 215B 120A 158A fcall _I2C_Master_Read
5826
5827 ;ds3231.c: 127: I2C_Master_Stop();
5828 0FFC 160A 118A 2754 fcall _I2C_Master_Stop
5829 0FFF 0008 return
5830 1000 __end_of_Update_Current_Date_Time:
5831
5832 psect text24
5833 0907 __ptext24:
5834 ;; *************** function _Set_Sqwe *****************
5835 ;; Defined at:
5836 ;; line 85 in file "ds3231.c"
5837 ;; Parameters: Size Location Type
5838 ;; contvalue 2 10[BANK0 ] int
5839 ;; Auto vars: Size Location Type
5840 ;; None
5841 ;; Return value: Size Location Type
5842 ;; 1 wreg void
5843 ;; Registers used:
5844 ;; wreg, status,2, status,0, pclath, cstack
5845 ;; Tracked objects:
5846 ;; On entry : 0/0
5847 ;; On exit : 0/0
5848 ;; Unchanged: 0/0
5849 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5850 ;; Params: 0 2 0 0 0
5851 ;; Locals: 0 0 0 0 0
5852 ;; Temps: 0 0 0 0 0
5853 ;; Totals: 0 2 0 0 0
5854 ;;Total ram usage: 2 bytes
5855 ;; Hardware stack levels used: 1
5856 ;; Hardware stack levels required when called: 3
5857 ;; This function calls:
5858 ;; _I2C_Master_Start
5859 ;; _I2C_Master_Stop
5860 ;; _I2C_Master_Write
5861 ;; This function is called by:
5862 ;; _main
5863 ;; This function uses a non-reentrant model
5864 ;;
5865
5866
5867 ;psect for function _Set_Sqwe
5868 0907 _Set_Sqwe:
5869
5870 ;ds3231.c: 86: I2C_Master_Start();
5871
5872 ;incstack = 0
5873 ; Regs used in _Set_Sqwe: [wreg+status,2+status,0+pclath+cstack]
5874 0907 160A 118A 274D 120A 158A fcall _I2C_Master_Start
5875
5876 ;ds3231.c: 87: I2C_Master_Write(0xD0);
5877 090C 30D0 movlw 208
5878 090D 1283 bcf 3,5 ;RP0=0, select bank0
5879 090E 1303 bcf 3,6 ;RP1=0, select bank0
5880 090F 00A8 movwf I2C_Master_Write@data
5881 0910 3000 movlw 0
5882 0911 00A9 movwf I2C_Master_Write@data+1
5883 0912 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5884
5885 ;ds3231.c: 88: I2C_Master_Write(0x0E);
5886 0917 300E movlw 14
5887 0918 1283 bcf 3,5 ;RP0=0, select bank0
5888 0919 1303 bcf 3,6 ;RP1=0, select bank0
5889 091A 00A8 movwf I2C_Master_Write@data
5890 091B 3000 movlw 0
5891 091C 00A9 movwf I2C_Master_Write@data+1
5892 091D 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5893
5894 ;ds3231.c: 89: I2C_Master_Write(contvalue);
5895 0922 1283 bcf 3,5 ;RP0=0, select bank0
5896 0923 1303 bcf 3,6 ;RP1=0, select bank0
5897 0924 082B movf Set_Sqwe@contvalue+1,w
5898 0925 00A9 movwf I2C_Master_Write@data+1
5899 0926 082A movf Set_Sqwe@contvalue,w
5900 0927 00A8 movwf I2C_Master_Write@data
5901 0928 160A 118A 275B 120A 158A fcall _I2C_Master_Write
5902
5903 ;ds3231.c: 90: I2C_Master_Stop();
5904 092D 160A 118A 2754 fcall _I2C_Master_Stop
5905 0930 0008 return
5906 0931 __end_of_Set_Sqwe:
5907
5908 psect text25
5909 06C8 __ptext25:
5910 ;; *************** function _Read_Alarms_Temp *****************
5911 ;; Defined at:
5912 ;; line 42 in file "ds3231.c"
5913 ;; Parameters: Size Location Type
5914 ;; None
5915 ;; Auto vars: Size Location Type
5916 ;; None
5917 ;; Return value: Size Location Type
5918 ;; 1 wreg void
5919 ;; Registers used:
5920 ;; wreg, status,2, status,0, pclath, cstack
5921 ;; Tracked objects:
5922 ;; On entry : 0/0
5923 ;; On exit : 0/0
5924 ;; Unchanged: 0/0
5925 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
5926 ;; Params: 0 0 0 0 0
5927 ;; Locals: 0 0 0 0 0
5928 ;; Temps: 0 0 0 0 0
5929 ;; Totals: 0 0 0 0 0
5930 ;;Total ram usage: 0 bytes
5931 ;; Hardware stack levels used: 1
5932 ;; Hardware stack levels required when called: 3
5933 ;; This function calls:
5934 ;; _BCD_2_DEC
5935 ;; _I2C_Master_Read
5936 ;; _I2C_Master_Repeated_Start
5937 ;; _I2C_Master_Start
5938 ;; _I2C_Master_Stop
5939 ;; _I2C_Master_Write
5940 ;; This function is called by:
5941 ;; _main
5942 ;; This function uses a non-reentrant model
5943 ;;
5944
5945
5946 ;psect for function _Read_Alarms_Temp
5947 06C8 _Read_Alarms_Temp:
5948
5949 ;ds3231.c: 43: I2C_Master_Start();
5950
5951 ;incstack = 0
5952 ; Regs used in _Read_Alarms_Temp: [wreg+status,2+status,0+pclath+cstack]
5953 06C8 160A 118A 274D 120A 118A fcall _I2C_Master_Start
5954
5955 ;ds3231.c: 44: I2C_Master_Write(0xD0);
5956 06CD 30D0 movlw 208
5957 06CE 1283 bcf 3,5 ;RP0=0, select bank0
5958 06CF 1303 bcf 3,6 ;RP1=0, select bank0
5959 06D0 00A8 movwf I2C_Master_Write@data
5960 06D1 3000 movlw 0
5961 06D2 00A9 movwf I2C_Master_Write@data+1
5962 06D3 160A 118A 275B 120A 118A fcall _I2C_Master_Write
5963
5964 ;ds3231.c: 45: I2C_Master_Write(0x07);
5965 06D8 3007 movlw 7
5966 06D9 1283 bcf 3,5 ;RP0=0, select bank0
5967 06DA 1303 bcf 3,6 ;RP1=0, select bank0
5968 06DB 00A8 movwf I2C_Master_Write@data
5969 06DC 3000 movlw 0
5970 06DD 00A9 movwf I2C_Master_Write@data+1
5971 06DE 160A 118A 275B 120A 118A fcall _I2C_Master_Write
5972
5973 ;ds3231.c: 46: I2C_Master_Repeated_Start();
5974 06E3 160A 118A 2746 120A 118A fcall _I2C_Master_Repeated_Start
5975
5976 ;ds3231.c: 49: I2C_Master_Write(0xD1);
5977 06E8 30D1 movlw 209
5978 06E9 1283 bcf 3,5 ;RP0=0, select bank0
5979 06EA 1303 bcf 3,6 ;RP1=0, select bank0
5980 06EB 00A8 movwf I2C_Master_Write@data
5981 06EC 3000 movlw 0
5982 06ED 00A9 movwf I2C_Master_Write@data+1
5983 06EE 160A 118A 275B 120A 118A fcall _I2C_Master_Write
5984
5985 ;ds3231.c: 50: alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
5986 06F3 3001 movlw 1
5987 06F4 00F2 movwf I2C_Master_Read@ack
5988 06F5 3000 movlw 0
5989 06F6 00F3 movwf I2C_Master_Read@ack+1
5990 06F7 120A 158A 215B 120A 118A fcall _I2C_Master_Read
5991 06FC 0873 movf ?_I2C_Master_Read+1,w
5992 06FD 00F9 movwf BCD_2_DEC@to_convert+1
5993 06FE 0872 movf ?_I2C_Master_Read,w
5994 06FF 00F8 movwf BCD_2_DEC@to_convert
5995 0700 120A 158A 20E0 120A 118A fcall _BCD_2_DEC
5996 0705 0879 movf ?_BCD_2_DEC+1,w
5997 0706 1683 bsf 3,5 ;RP0=1, select bank1
5998 0707 1303 bcf 3,6 ;RP1=0, select bank1
5999 0708 00CF movwf (_alarm1_sec+1)^(0+128)
6000 0709 0878 movf ?_BCD_2_DEC,w
6001 070A 00CE movwf _alarm1_sec^(0+128)
6002
6003 ;ds3231.c: 51: alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
6004 070B 3001 movlw 1
6005 070C 00F2 movwf I2C_Master_Read@ack
6006 070D 3000 movlw 0
6007 070E 00F3 movwf I2C_Master_Read@ack+1
6008 070F 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6009 0714 0873 movf ?_I2C_Master_Read+1,w
6010 0715 00F9 movwf BCD_2_DEC@to_convert+1
6011 0716 0872 movf ?_I2C_Master_Read,w
6012 0717 00F8 movwf BCD_2_DEC@to_convert
6013 0718 120A 158A 20E0 120A 118A fcall _BCD_2_DEC
6014 071D 0879 movf ?_BCD_2_DEC+1,w
6015 071E 1683 bsf 3,5 ;RP0=1, select bank1
6016 071F 1303 bcf 3,6 ;RP1=0, select bank1
6017 0720 00CD movwf (_alarm1_min+1)^(0+128)
6018 0721 0878 movf ?_BCD_2_DEC,w
6019 0722 00CC movwf _alarm1_min^(0+128)
6020
6021 ;ds3231.c: 52: alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
6022 0723 3001 movlw 1
6023 0724 00F2 movwf I2C_Master_Read@ack
6024 0725 3000 movlw 0
6025 0726 00F3 movwf I2C_Master_Read@ack+1
6026 0727 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6027 072C 0873 movf ?_I2C_Master_Read+1,w
6028 072D 00F9 movwf BCD_2_DEC@to_convert+1
6029 072E 0872 movf ?_I2C_Master_Read,w
6030 072F 00F8 movwf BCD_2_DEC@to_convert
6031 0730 120A 158A 20E0 120A 118A fcall _BCD_2_DEC
6032 0735 0879 movf ?_BCD_2_DEC+1,w
6033 0736 1683 bsf 3,5 ;RP0=1, select bank1
6034 0737 1303 bcf 3,6 ;RP1=0, select bank1
6035 0738 00CB movwf (_alarm1_hour+1)^(0+128)
6036 0739 0878 movf ?_BCD_2_DEC,w
6037 073A 00CA movwf _alarm1_hour^(0+128)
6038
6039 ;ds3231.c: 53: I2C_Master_Read(1);
6040 073B 3001 movlw 1
6041 073C 00F2 movwf I2C_Master_Read@ack
6042 073D 3000 movlw 0
6043 073E 00F3 movwf I2C_Master_Read@ack+1
6044 073F 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6045
6046 ;ds3231.c: 54: alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
6047 0744 3001 movlw 1
6048 0745 00F2 movwf I2C_Master_Read@ack
6049 0746 3000 movlw 0
6050 0747 00F3 movwf I2C_Master_Read@ack+1
6051 0748 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6052 074D 0873 movf ?_I2C_Master_Read+1,w
6053 074E 00F9 movwf BCD_2_DEC@to_convert+1
6054 074F 0872 movf ?_I2C_Master_Read,w
6055 0750 00F8 movwf BCD_2_DEC@to_convert
6056 0751 120A 158A 20E0 120A 118A fcall _BCD_2_DEC
6057 0756 0879 movf ?_BCD_2_DEC+1,w
6058 0757 1683 bsf 3,5 ;RP0=1, select bank1
6059 0758 1303 bcf 3,6 ;RP1=0, select bank1
6060 0759 00C9 movwf (_alarm2_min+1)^(0+128)
6061 075A 0878 movf ?_BCD_2_DEC,w
6062 075B 00C8 movwf _alarm2_min^(0+128)
6063
6064 ;ds3231.c: 55: alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
6065 075C 3001 movlw 1
6066 075D 00F2 movwf I2C_Master_Read@ack
6067 075E 3000 movlw 0
6068 075F 00F3 movwf I2C_Master_Read@ack+1
6069 0760 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6070 0765 0873 movf ?_I2C_Master_Read+1,w
6071 0766 00F9 movwf BCD_2_DEC@to_convert+1
6072 0767 0872 movf ?_I2C_Master_Read,w
6073 0768 00F8 movwf BCD_2_DEC@to_convert
6074 0769 120A 158A 20E0 120A 118A fcall _BCD_2_DEC
6075 076E 0879 movf ?_BCD_2_DEC+1,w
6076 076F 1683 bsf 3,5 ;RP0=1, select bank1
6077 0770 1303 bcf 3,6 ;RP1=0, select bank1
6078 0771 00C7 movwf (_alarm2_hour+1)^(0+128)
6079 0772 0878 movf ?_BCD_2_DEC,w
6080 0773 00C6 movwf _alarm2_hour^(0+128)
6081
6082 ;ds3231.c: 56: I2C_Master_Read(1);
6083 0774 3001 movlw 1
6084 0775 00F2 movwf I2C_Master_Read@ack
6085 0776 3000 movlw 0
6086 0777 00F3 movwf I2C_Master_Read@ack+1
6087 0778 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6088
6089 ;ds3231.c: 57: control_reg = I2C_Master_Read(1);
6090 077D 3001 movlw 1
6091 077E 00F2 movwf I2C_Master_Read@ack
6092 077F 3000 movlw 0
6093 0780 00F3 movwf I2C_Master_Read@ack+1
6094 0781 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6095 0786 0873 movf ?_I2C_Master_Read+1,w
6096 0787 1283 bcf 3,5 ;RP0=0, select bank0
6097 0788 1303 bcf 3,6 ;RP1=0, select bank0
6098 0789 00DC movwf _control_reg+1
6099 078A 0872 movf ?_I2C_Master_Read,w
6100 078B 00DB movwf _control_reg
6101
6102 ;ds3231.c: 58: status_reg = I2C_Master_Read(1);
6103 078C 3001 movlw 1
6104 078D 00F2 movwf I2C_Master_Read@ack
6105 078E 3000 movlw 0
6106 078F 00F3 movwf I2C_Master_Read@ack+1
6107 0790 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6108 0795 0873 movf ?_I2C_Master_Read+1,w
6109 0796 1683 bsf 3,5 ;RP0=1, select bank1
6110 0797 1303 bcf 3,6 ;RP1=0, select bank1
6111 0798 00C5 movwf (_status_reg+1)^(0+128)
6112 0799 0872 movf ?_I2C_Master_Read,w
6113 079A 00C4 movwf _status_reg^(0+128)
6114
6115 ;ds3231.c: 59: I2C_Master_Read(1);
6116 079B 3001 movlw 1
6117 079C 00F2 movwf I2C_Master_Read@ack
6118 079D 3000 movlw 0
6119 079E 00F3 movwf I2C_Master_Read@ack+1
6120 079F 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6121
6122 ;ds3231.c: 61: temperature_msb = I2C_Master_Read(1);
6123 07A4 3001 movlw 1
6124 07A5 00F2 movwf I2C_Master_Read@ack
6125 07A6 3000 movlw 0
6126 07A7 00F3 movwf I2C_Master_Read@ack+1
6127 07A8 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6128 07AD 0873 movf ?_I2C_Master_Read+1,w
6129 07AE 1283 bcf 3,5 ;RP0=0, select bank0
6130 07AF 1303 bcf 3,6 ;RP1=0, select bank0
6131 07B0 00D8 movwf _temperature_msb+1
6132 07B1 0872 movf ?_I2C_Master_Read,w
6133 07B2 00D7 movwf _temperature_msb
6134
6135 ;ds3231.c: 63: temperature_lsb = I2C_Master_Read(0);
6136 07B3 3000 movlw 0
6137 07B4 00F2 movwf I2C_Master_Read@ack
6138 07B5 00F3 movwf I2C_Master_Read@ack+1
6139 07B6 120A 158A 215B 120A 118A fcall _I2C_Master_Read
6140 07BB 0873 movf ?_I2C_Master_Read+1,w
6141 07BC 1283 bcf 3,5 ;RP0=0, select bank0
6142 07BD 1303 bcf 3,6 ;RP1=0, select bank0
6143 07BE 00DA movwf _temperature_lsb+1
6144 07BF 0872 movf ?_I2C_Master_Read,w
6145 07C0 00D9 movwf _temperature_lsb
6146
6147 ;ds3231.c: 64: I2C_Master_Stop();
6148 07C1 160A 118A 2754 fcall _I2C_Master_Stop
6149 07C4 0008 return
6150 07C5 __end_of_Read_Alarms_Temp:
6151
6152 psect text26
6153 175B __ptext26:
6154 ;; *************** function _I2C_Master_Write *****************
6155 ;; Defined at:
6156 ;; line 43 in file "i2c.c"
6157 ;; Parameters: Size Location Type
6158 ;; data 2 8[BANK0 ] unsigned int
6159 ;; Auto vars: Size Location Type
6160 ;; None
6161 ;; Return value: Size Location Type
6162 ;; 1 wreg void
6163 ;; Registers used:
6164 ;; wreg, status,2, status,0, pclath, cstack
6165 ;; Tracked objects:
6166 ;; On entry : 0/0
6167 ;; On exit : 0/0
6168 ;; Unchanged: 0/0
6169 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6170 ;; Params: 0 2 0 0 0
6171 ;; Locals: 0 0 0 0 0
6172 ;; Temps: 0 0 0 0 0
6173 ;; Totals: 0 2 0 0 0
6174 ;;Total ram usage: 2 bytes
6175 ;; Hardware stack levels used: 1
6176 ;; Hardware stack levels required when called: 2
6177 ;; This function calls:
6178 ;; _I2C_Master_Wait
6179 ;; This function is called by:
6180 ;; _Read_Alarms_Temp
6181 ;; _Set_Date
6182 ;; _Set_DayOfWeek
6183 ;; _Set_Sqwe
6184 ;; _Set_Time
6185 ;; _Update_Current_Date_Time
6186 ;; _Write_Alarms
6187 ;; This function uses a non-reentrant model
6188 ;;
6189
6190
6191 ;psect for function _I2C_Master_Write
6192 175B _I2C_Master_Write:
6193
6194 ;i2c.c: 44: I2C_Master_Wait();
6195
6196 ;incstack = 0
6197 ; Regs used in _I2C_Master_Write: [wreg+status,2+status,0+pclath+cstack]
6198 175B 160A 118A 276B fcall _I2C_Master_Wait
6199
6200 ;i2c.c: 45: SSPBUF = data;
6201 175E 1283 bcf 3,5 ;RP0=0, select bank0
6202 175F 1303 bcf 3,6 ;RP1=0, select bank0
6203 1760 0828 movf I2C_Master_Write@data,w
6204 1761 0093 movwf 19 ;volatile
6205 1762 0008 return
6206 1763 __end_of_I2C_Master_Write:
6207
6208 psect text27
6209 1754 __ptext27:
6210 ;; *************** function _I2C_Master_Stop *****************
6211 ;; Defined at:
6212 ;; line 38 in file "i2c.c"
6213 ;; Parameters: Size Location Type
6214 ;; None
6215 ;; Auto vars: Size Location Type
6216 ;; None
6217 ;; Return value: Size Location Type
6218 ;; 1 wreg void
6219 ;; Registers used:
6220 ;; wreg, status,2, status,0, pclath, cstack
6221 ;; Tracked objects:
6222 ;; On entry : 0/0
6223 ;; On exit : 0/0
6224 ;; Unchanged: 0/0
6225 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6226 ;; Params: 0 0 0 0 0
6227 ;; Locals: 0 0 0 0 0
6228 ;; Temps: 0 0 0 0 0
6229 ;; Totals: 0 0 0 0 0
6230 ;;Total ram usage: 0 bytes
6231 ;; Hardware stack levels used: 1
6232 ;; Hardware stack levels required when called: 2
6233 ;; This function calls:
6234 ;; _I2C_Master_Wait
6235 ;; This function is called by:
6236 ;; _Read_Alarms_Temp
6237 ;; _Set_Date
6238 ;; _Set_DayOfWeek
6239 ;; _Set_Sqwe
6240 ;; _Set_Time
6241 ;; _Update_Current_Date_Time
6242 ;; _Write_Alarms
6243 ;; This function uses a non-reentrant model
6244 ;;
6245
6246
6247 ;psect for function _I2C_Master_Stop
6248 1754 _I2C_Master_Stop:
6249
6250 ;i2c.c: 39: I2C_Master_Wait();
6251
6252 ;incstack = 0
6253 ; Regs used in _I2C_Master_Stop: [wreg+status,2+status,0+pclath+cstack]
6254 1754 160A 118A 276B fcall _I2C_Master_Wait
6255
6256 ;i2c.c: 40: PEN = 1;
6257 1757 1683 bsf 3,5 ;RP0=1, select bank1
6258 1758 1303 bcf 3,6 ;RP1=0, select bank1
6259 1759 1511 bsf 17,2 ;volatile
6260 175A 0008 return
6261 175B __end_of_I2C_Master_Stop:
6262
6263 psect text28
6264 174D __ptext28:
6265 ;; *************** function _I2C_Master_Start *****************
6266 ;; Defined at:
6267 ;; line 28 in file "i2c.c"
6268 ;; Parameters: Size Location Type
6269 ;; None
6270 ;; Auto vars: Size Location Type
6271 ;; None
6272 ;; Return value: Size Location Type
6273 ;; 1 wreg void
6274 ;; Registers used:
6275 ;; wreg, status,2, status,0, pclath, cstack
6276 ;; Tracked objects:
6277 ;; On entry : 0/0
6278 ;; On exit : 0/0
6279 ;; Unchanged: 0/0
6280 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6281 ;; Params: 0 0 0 0 0
6282 ;; Locals: 0 0 0 0 0
6283 ;; Temps: 0 0 0 0 0
6284 ;; Totals: 0 0 0 0 0
6285 ;;Total ram usage: 0 bytes
6286 ;; Hardware stack levels used: 1
6287 ;; Hardware stack levels required when called: 2
6288 ;; This function calls:
6289 ;; _I2C_Master_Wait
6290 ;; This function is called by:
6291 ;; _Read_Alarms_Temp
6292 ;; _Set_Date
6293 ;; _Set_DayOfWeek
6294 ;; _Set_Sqwe
6295 ;; _Set_Time
6296 ;; _Update_Current_Date_Time
6297 ;; _Write_Alarms
6298 ;; This function uses a non-reentrant model
6299 ;;
6300
6301
6302 ;psect for function _I2C_Master_Start
6303 174D _I2C_Master_Start:
6304
6305 ;i2c.c: 29: I2C_Master_Wait();
6306
6307 ;incstack = 0
6308 ; Regs used in _I2C_Master_Start: [wreg+status,2+status,0+pclath+cstack]
6309 174D 160A 118A 276B fcall _I2C_Master_Wait
6310
6311 ;i2c.c: 30: SEN = 1;
6312 1750 1683 bsf 3,5 ;RP0=1, select bank1
6313 1751 1303 bcf 3,6 ;RP1=0, select bank1
6314 1752 1411 bsf 17,0 ;volatile
6315 1753 0008 return
6316 1754 __end_of_I2C_Master_Start:
6317
6318 psect text29
6319 1746 __ptext29:
6320 ;; *************** function _I2C_Master_Repeated_Start *****************
6321 ;; Defined at:
6322 ;; line 33 in file "i2c.c"
6323 ;; Parameters: Size Location Type
6324 ;; None
6325 ;; Auto vars: Size Location Type
6326 ;; None
6327 ;; Return value: Size Location Type
6328 ;; 1 wreg void
6329 ;; Registers used:
6330 ;; wreg, status,2, status,0, pclath, cstack
6331 ;; Tracked objects:
6332 ;; On entry : 0/0
6333 ;; On exit : 0/0
6334 ;; Unchanged: 0/0
6335 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6336 ;; Params: 0 0 0 0 0
6337 ;; Locals: 0 0 0 0 0
6338 ;; Temps: 0 0 0 0 0
6339 ;; Totals: 0 0 0 0 0
6340 ;;Total ram usage: 0 bytes
6341 ;; Hardware stack levels used: 1
6342 ;; Hardware stack levels required when called: 2
6343 ;; This function calls:
6344 ;; _I2C_Master_Wait
6345 ;; This function is called by:
6346 ;; _Read_Alarms_Temp
6347 ;; This function uses a non-reentrant model
6348 ;;
6349
6350
6351 ;psect for function _I2C_Master_Repeated_Start
6352 1746 _I2C_Master_Repeated_Start:
6353
6354 ;i2c.c: 34: I2C_Master_Wait();
6355
6356 ;incstack = 0
6357 ; Regs used in _I2C_Master_Repeated_Start: [wreg+status,2+status,0+pclath+cstack]
6358 1746 160A 118A 276B fcall _I2C_Master_Wait
6359
6360 ;i2c.c: 35: RSEN = 1;
6361 1749 1683 bsf 3,5 ;RP0=1, select bank1
6362 174A 1303 bcf 3,6 ;RP1=0, select bank1
6363 174B 1491 bsf 17,1 ;volatile
6364 174C 0008 return
6365 174D __end_of_I2C_Master_Repeated_Start:
6366
6367 psect text30
6368 095B __ptext30:
6369 ;; *************** function _I2C_Master_Read *****************
6370 ;; Defined at:
6371 ;; line 48 in file "i2c.c"
6372 ;; Parameters: Size Location Type
6373 ;; ack 2 2[COMMON] unsigned short
6374 ;; Auto vars: Size Location Type
6375 ;; incoming 2 6[COMMON] unsigned short
6376 ;; Return value: Size Location Type
6377 ;; 2 2[COMMON] unsigned short
6378 ;; Registers used:
6379 ;; wreg, status,2, status,0, pclath, cstack
6380 ;; Tracked objects:
6381 ;; On entry : 0/0
6382 ;; On exit : 0/0
6383 ;; Unchanged: 0/0
6384 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6385 ;; Params: 2 0 0 0 0
6386 ;; Locals: 2 0 0 0 0
6387 ;; Temps: 2 0 0 0 0
6388 ;; Totals: 6 0 0 0 0
6389 ;;Total ram usage: 6 bytes
6390 ;; Hardware stack levels used: 1
6391 ;; Hardware stack levels required when called: 2
6392 ;; This function calls:
6393 ;; _I2C_Master_Wait
6394 ;; This function is called by:
6395 ;; _Read_Alarms_Temp
6396 ;; _Update_Current_Date_Time
6397 ;; This function uses a non-reentrant model
6398 ;;
6399
6400
6401 ;psect for function _I2C_Master_Read
6402 095B _I2C_Master_Read:
6403
6404 ;i2c.c: 49: unsigned short incoming;;i2c.c: 50: I2C_Master_Wait();
6405
6406 ;incstack = 0
6407 ; Regs used in _I2C_Master_Read: [wreg+status,2+status,0+pclath+cstack]
6408 095B 160A 118A 276B 120A 158A fcall _I2C_Master_Wait
6409
6410 ;i2c.c: 51: RCEN = 1;
6411 0960 1683 bsf 3,5 ;RP0=1, select bank1
6412 0961 1303 bcf 3,6 ;RP1=0, select bank1
6413 0962 1591 bsf 17,3 ;volatile
6414
6415 ;i2c.c: 53: I2C_Master_Wait();
6416 0963 160A 118A 276B 120A 158A fcall _I2C_Master_Wait
6417
6418 ;i2c.c: 54: incoming = SSPBUF;
6419 0968 1283 bcf 3,5 ;RP0=0, select bank0
6420 0969 1303 bcf 3,6 ;RP1=0, select bank0
6421 096A 0813 movf 19,w ;volatile
6422 096B 00F4 movwf ??_I2C_Master_Read
6423 096C 01F5 clrf ??_I2C_Master_Read+1
6424 096D 0874 movf ??_I2C_Master_Read,w
6425 096E 00F6 movwf I2C_Master_Read@incoming
6426 096F 0875 movf ??_I2C_Master_Read+1,w
6427 0970 00F7 movwf I2C_Master_Read@incoming+1
6428
6429 ;i2c.c: 56: I2C_Master_Wait();
6430 0971 160A 118A 276B 120A 158A fcall _I2C_Master_Wait
6431
6432 ;i2c.c: 57: ACKDT = (ack) ? 0 : 1;
6433 0976 0872 movf I2C_Master_Read@ack,w
6434 0977 0473 iorwf I2C_Master_Read@ack+1,w
6435 0978 1D03 btfss 3,2
6436 0979 297E goto u1700
6437 097A 1683 bsf 3,5 ;RP0=1, select bank1
6438 097B 1303 bcf 3,6 ;RP1=0, select bank1
6439 097C 1691 bsf 17,5 ;volatile
6440 097D 2981 goto l2322
6441 097E u1700:
6442 097E 1683 bsf 3,5 ;RP0=1, select bank1
6443 097F 1303 bcf 3,6 ;RP1=0, select bank1
6444 0980 1291 bcf 17,5 ;volatile
6445 0981 l2322:
6446
6447 ;i2c.c: 58: ACKEN = 1;
6448 0981 1611 bsf 17,4 ;volatile
6449
6450 ;i2c.c: 60: return incoming;
6451 0982 0877 movf I2C_Master_Read@incoming+1,w
6452 0983 00F3 movwf ?_I2C_Master_Read+1
6453 0984 0876 movf I2C_Master_Read@incoming,w
6454 0985 00F2 movwf ?_I2C_Master_Read
6455 0986 0008 return
6456 0987 __end_of_I2C_Master_Read:
6457
6458 psect text31
6459 176B __ptext31:
6460 ;; *************** function _I2C_Master_Wait *****************
6461 ;; Defined at:
6462 ;; line 24 in file "i2c.c"
6463 ;; Parameters: Size Location Type
6464 ;; None
6465 ;; Auto vars: Size Location Type
6466 ;; None
6467 ;; Return value: Size Location Type
6468 ;; 1 wreg void
6469 ;; Registers used:
6470 ;; wreg, status,2
6471 ;; Tracked objects:
6472 ;; On entry : 0/0
6473 ;; On exit : 0/0
6474 ;; Unchanged: 0/0
6475 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6476 ;; Params: 0 0 0 0 0
6477 ;; Locals: 0 0 0 0 0
6478 ;; Temps: 0 0 0 0 0
6479 ;; Totals: 0 0 0 0 0
6480 ;;Total ram usage: 0 bytes
6481 ;; Hardware stack levels used: 1
6482 ;; Hardware stack levels required when called: 1
6483 ;; This function calls:
6484 ;; Nothing
6485 ;; This function is called by:
6486 ;; _I2C_Master_Start
6487 ;; _I2C_Master_Repeated_Start
6488 ;; _I2C_Master_Stop
6489 ;; _I2C_Master_Write
6490 ;; _I2C_Master_Read
6491 ;; This function uses a non-reentrant model
6492 ;;
6493
6494
6495 ;psect for function _I2C_Master_Wait
6496 176B _I2C_Master_Wait:
6497 176B l2016:
6498 ;i2c.c: 25: while ((SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100));
6499
6500 ;incstack = 0
6501 ; Regs used in _I2C_Master_Wait: [wreg+status,2]
6502
6503 176B 1683 bsf 3,5 ;RP0=1, select bank1
6504 176C 1303 bcf 3,6 ;RP1=0, select bank1
6505 176D 0811 movf 17,w ;volatile
6506 176E 391F andlw 31
6507 176F 1D03 btfss 3,2
6508 1770 2F6B goto l2016
6509 1771 1D14 btfss 20,2 ;volatile
6510 1772 0008 return
6511 1773 2F6B goto l2016
6512 1774 __end_of_I2C_Master_Wait:
6513
6514 psect text32
6515 08E0 __ptext32:
6516 ;; *************** function _BCD_2_DEC *****************
6517 ;; Defined at:
6518 ;; line 17 in file "ds3231.c"
6519 ;; Parameters: Size Location Type
6520 ;; to_convert 2 8[COMMON] int
6521 ;; Auto vars: Size Location Type
6522 ;; None
6523 ;; Return value: Size Location Type
6524 ;; 2 8[COMMON] int
6525 ;; Registers used:
6526 ;; wreg, status,2, status,0, pclath, cstack
6527 ;; Tracked objects:
6528 ;; On entry : 0/0
6529 ;; On exit : 0/0
6530 ;; Unchanged: 0/0
6531 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6532 ;; Params: 2 0 0 0 0
6533 ;; Locals: 0 0 0 0 0
6534 ;; Temps: 0 2 0 0 0
6535 ;; Totals: 2 2 0 0 0
6536 ;;Total ram usage: 4 bytes
6537 ;; Hardware stack levels used: 1
6538 ;; Hardware stack levels required when called: 2
6539 ;; This function calls:
6540 ;; ___wmul
6541 ;; This function is called by:
6542 ;; _Read_Alarms_Temp
6543 ;; _Update_Current_Date_Time
6544 ;; This function uses a non-reentrant model
6545 ;;
6546
6547
6548 ;psect for function _BCD_2_DEC
6549 08E0 _BCD_2_DEC:
6550
6551 ;ds3231.c: 18: return (to_convert >> 4) * 10 + (to_convert & 0x0F);
6552
6553 ;incstack = 0
6554 ; Regs used in _BCD_2_DEC: [wreg+status,2+status,0+pclath+cstack]
6555 08E0 300F movlw 15
6556 08E1 0578 andwf BCD_2_DEC@to_convert,w
6557 08E2 1283 bcf 3,5 ;RP0=0, select bank0
6558 08E3 1303 bcf 3,6 ;RP1=0, select bank0
6559 08E4 00A0 movwf ??_BCD_2_DEC
6560 08E5 3000 movlw 0
6561 08E6 0579 andwf BCD_2_DEC@to_convert+1,w
6562 08E7 00A1 movwf ??_BCD_2_DEC+1
6563 08E8 0E78 swapf BCD_2_DEC@to_convert,w
6564 08E9 390F andlw 15
6565 08EA 00F2 movwf ___wmul@multiplier
6566 08EB 0E79 swapf BCD_2_DEC@to_convert+1,w
6567 08EC 39F0 andlw 240
6568 08ED 04F2 iorwf ___wmul@multiplier,f
6569 08EE 0E79 swapf BCD_2_DEC@to_convert+1,w
6570 08EF 390F andlw 15
6571 08F0 00F3 movwf ___wmul@multiplier+1
6572 08F1 30F0 movlw 240
6573 08F2 1DF3 btfss ___wmul@multiplier+1,3
6574 08F3 3000 movlw 0
6575 08F4 04F3 iorwf ___wmul@multiplier+1,f
6576 08F5 300A movlw 10
6577 08F6 00F4 movwf ___wmul@multiplicand
6578 08F7 3000 movlw 0
6579 08F8 00F5 movwf ___wmul@multiplicand+1
6580 08F9 120A 158A 209D fcall ___wmul
6581 08FC 1283 bcf 3,5 ;RP0=0, select bank0
6582 08FD 1303 bcf 3,6 ;RP1=0, select bank0
6583 08FE 0820 movf ??_BCD_2_DEC,w
6584 08FF 0772 addwf ?___wmul,w
6585 0900 00F8 movwf ?_BCD_2_DEC
6586 0901 0821 movf ??_BCD_2_DEC+1,w
6587 0902 1803 skipnc
6588 0903 0A21 incf ??_BCD_2_DEC+1,w
6589 0904 0773 addwf ?___wmul+1,w
6590 0905 00F9 movwf ?_BCD_2_DEC+1
6591 0906 0008 return
6592 0907 __end_of_BCD_2_DEC:
6593
6594 psect text33
6595 089D __ptext33:
6596 ;; *************** function ___wmul *****************
6597 ;; Defined at:
6598 ;; line 15 in file "C:\Program Files (x86)\Microchip\xc8\v2.05\pic\sources\c90\common\Umul16.c"
6599 ;; Parameters: Size Location Type
6600 ;; multiplier 2 2[COMMON] unsigned int
6601 ;; multiplicand 2 4[COMMON] unsigned int
6602 ;; Auto vars: Size Location Type
6603 ;; product 2 6[COMMON] unsigned int
6604 ;; Return value: Size Location Type
6605 ;; 2 2[COMMON] unsigned int
6606 ;; Registers used:
6607 ;; wreg, status,2, status,0
6608 ;; Tracked objects:
6609 ;; On entry : 0/0
6610 ;; On exit : 0/0
6611 ;; Unchanged: 0/0
6612 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6613 ;; Params: 4 0 0 0 0
6614 ;; Locals: 2 0 0 0 0
6615 ;; Temps: 0 0 0 0 0
6616 ;; Totals: 6 0 0 0 0
6617 ;;Total ram usage: 6 bytes
6618 ;; Hardware stack levels used: 1
6619 ;; Hardware stack levels required when called: 1
6620 ;; This function calls:
6621 ;; Nothing
6622 ;; This function is called by:
6623 ;; _format_Temperature
6624 ;; _BCD_2_DEC
6625 ;; _Get_DayOfWeek
6626 ;; This function uses a non-reentrant model
6627 ;;
6628
6629
6630 ;psect for function ___wmul
6631 089D ___wmul:
6632
6633 ;incstack = 0
6634 ; Regs used in ___wmul: [wreg+status,2+status,0]
6635 089D 01F6 clrf ___wmul@product
6636 089E 01F7 clrf ___wmul@product+1
6637 089F l2184:
6638 089F 1C72 btfss ___wmul@multiplier,0
6639 08A0 28A7 goto l662
6640 08A1 0874 movf ___wmul@multiplicand,w
6641 08A2 07F6 addwf ___wmul@product,f
6642 08A3 1803 skipnc
6643 08A4 0AF7 incf ___wmul@product+1,f
6644 08A5 0875 movf ___wmul@multiplicand+1,w
6645 08A6 07F7 addwf ___wmul@product+1,f
6646 08A7 l662:
6647 08A7 3001 movlw 1
6648 08A8 u1485:
6649 08A8 1003 clrc
6650 08A9 0DF4 rlf ___wmul@multiplicand,f
6651 08AA 0DF5 rlf ___wmul@multiplicand+1,f
6652 08AB 3EFF addlw -1
6653 08AC 1D03 skipz
6654 08AD 28A8 goto u1485
6655 08AE 3001 movlw 1
6656 08AF u1495:
6657 08AF 1003 clrc
6658 08B0 0CF3 rrf ___wmul@multiplier+1,f
6659 08B1 0CF2 rrf ___wmul@multiplier,f
6660 08B2 3EFF addlw -1
6661 08B3 1D03 skipz
6662 08B4 28AF goto u1495
6663 08B5 0872 movf ___wmul@multiplier,w
6664 08B6 0473 iorwf ___wmul@multiplier+1,w
6665 08B7 1D03 btfss 3,2
6666 08B8 289F goto l2184
6667 08B9 0877 movf ___wmul@product+1,w
6668 08BA 00F3 movwf ?___wmul+1
6669 08BB 0876 movf ___wmul@product,w
6670 08BC 00F2 movwf ?___wmul
6671 08BD 0008 return
6672 08BE __end_of___wmul:
6673
6674 psect text34
6675 0E03 __ptext34:
6676 ;; *************** function _Lcd_Init *****************
6677 ;; Defined at:
6678 ;; line 57 in file "lcd.c"
6679 ;; Parameters: Size Location Type
6680 ;; None
6681 ;; Auto vars: Size Location Type
6682 ;; None
6683 ;; Return value: Size Location Type
6684 ;; 1 wreg void
6685 ;; Registers used:
6686 ;; wreg, status,2, status,0, pclath, cstack
6687 ;; Tracked objects:
6688 ;; On entry : 0/0
6689 ;; On exit : 0/0
6690 ;; Unchanged: 0/0
6691 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6692 ;; Params: 0 0 0 0 0
6693 ;; Locals: 0 0 0 0 0
6694 ;; Temps: 0 2 0 0 0
6695 ;; Totals: 0 2 0 0 0
6696 ;;Total ram usage: 2 bytes
6697 ;; Hardware stack levels used: 1
6698 ;; Hardware stack levels required when called: 4
6699 ;; This function calls:
6700 ;; _Lcd_Cmd
6701 ;; _Lcd_Port
6702 ;; _Vfd_Set_Brightness
6703 ;; This function is called by:
6704 ;; _main
6705 ;; This function uses a non-reentrant model
6706 ;;
6707
6708
6709 ;psect for function _Lcd_Init
6710 0E03 _Lcd_Init:
6711
6712 ;lcd.c: 58: Lcd_Port(0x00);
6713
6714 ;incstack = 0
6715 ; Regs used in _Lcd_Init: [wreg+status,2+status,0+pclath+cstack]
6716 0E03 3000 movlw 0
6717 0E04 160A 118A 27CC 120A 158A fcall _Lcd_Port
6718
6719 ;lcd.c: 59: _delay((unsigned long)((20)*(20000000/4000.0)));
6720 0E09 3082 movlw 130
6721 0E0A 1283 bcf 3,5 ;RP0=0, select bank0
6722 0E0B 1303 bcf 3,6 ;RP1=0, select bank0
6723 0E0C 00A3 movwf ??_Lcd_Init+1
6724 0E0D 30DD movlw 221
6725 0E0E 00A2 movwf ??_Lcd_Init
6726 0E0F u3127:
6727 0E0F 0BA2 decfsz ??_Lcd_Init,f
6728 0E10 2E0F goto u3127
6729 0E11 0BA3 decfsz ??_Lcd_Init+1,f
6730 0E12 2E0F goto u3127
6731
6732 ;lcd.c: 60: Lcd_Cmd(0x03);
6733 0E13 3003 movlw 3
6734 0E14 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6735
6736 ;lcd.c: 61: _delay((unsigned long)((5)*(20000000/4000.0)));
6737 0E19 3021 movlw 33
6738 0E1A 1283 bcf 3,5 ;RP0=0, select bank0
6739 0E1B 1303 bcf 3,6 ;RP1=0, select bank0
6740 0E1C 00A3 movwf ??_Lcd_Init+1
6741 0E1D 3075 movlw 117
6742 0E1E 00A2 movwf ??_Lcd_Init
6743 0E1F u3137:
6744 0E1F 0BA2 decfsz ??_Lcd_Init,f
6745 0E20 2E1F goto u3137
6746 0E21 0BA3 decfsz ??_Lcd_Init+1,f
6747 0E22 2E1F goto u3137
6748 0E23 2E24 nop2
6749
6750 ;lcd.c: 62: Lcd_Cmd(0x03);
6751 0E24 3003 movlw 3
6752 0E25 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6753
6754 ;lcd.c: 63: _delay((unsigned long)((11)*(20000000/4000.0)));
6755 0E2A 3048 movlw 72
6756 0E2B 1283 bcf 3,5 ;RP0=0, select bank0
6757 0E2C 1303 bcf 3,6 ;RP1=0, select bank0
6758 0E2D 00A3 movwf ??_Lcd_Init+1
6759 0E2E 306B movlw 107
6760 0E2F 00A2 movwf ??_Lcd_Init
6761 0E30 u3147:
6762 0E30 0BA2 decfsz ??_Lcd_Init,f
6763 0E31 2E30 goto u3147
6764 0E32 0BA3 decfsz ??_Lcd_Init+1,f
6765 0E33 2E30 goto u3147
6766 0E34 2E35 nop2
6767
6768 ;lcd.c: 64: Lcd_Cmd(0x03);
6769 0E35 3003 movlw 3
6770 0E36 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6771
6772 ;lcd.c: 66: Lcd_Cmd(0x02);
6773 0E3B 3002 movlw 2
6774 0E3C 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6775
6776 ;lcd.c: 68: Vfd_Set_Brightness(0);
6777 0E41 3000 movlw 0
6778 0E42 00F7 movwf Vfd_Set_Brightness@level
6779 0E43 00F8 movwf Vfd_Set_Brightness@level+1
6780 0E44 120A 158A 20BE 120A 158A fcall _Vfd_Set_Brightness
6781
6782 ;lcd.c: 70: Lcd_Cmd(0x02);
6783 0E49 3002 movlw 2
6784 0E4A 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6785
6786 ;lcd.c: 71: Lcd_Cmd(0x08);
6787 0E4F 3008 movlw 8
6788 0E50 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6789
6790 ;lcd.c: 72: Lcd_Cmd(0x00);
6791 0E55 3000 movlw 0
6792 0E56 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6793
6794 ;lcd.c: 73: Lcd_Cmd(0x0C);
6795 0E5B 300C movlw 12
6796 0E5C 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6797
6798 ;lcd.c: 74: Lcd_Cmd(0x00);
6799 0E61 3000 movlw 0
6800 0E62 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6801
6802 ;lcd.c: 75: Lcd_Cmd(0x06);
6803 0E67 3006 movlw 6
6804 0E68 160A 118A 27E6 fcall _Lcd_Cmd
6805 0E6B 0008 return
6806 0E6C __end_of_Lcd_Init:
6807
6808 psect text35
6809 08BE __ptext35:
6810 ;; *************** function _Vfd_Set_Brightness *****************
6811 ;; Defined at:
6812 ;; line 111 in file "lcd.c"
6813 ;; Parameters: Size Location Type
6814 ;; level 2 7[COMMON] int
6815 ;; Auto vars: Size Location Type
6816 ;; None
6817 ;; Return value: Size Location Type
6818 ;; 1 wreg void
6819 ;; Registers used:
6820 ;; wreg, status,2, status,0, pclath, cstack
6821 ;; Tracked objects:
6822 ;; On entry : 0/0
6823 ;; On exit : 0/0
6824 ;; Unchanged: 0/0
6825 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6826 ;; Params: 2 0 0 0 0
6827 ;; Locals: 0 0 0 0 0
6828 ;; Temps: 0 2 0 0 0
6829 ;; Totals: 2 2 0 0 0
6830 ;;Total ram usage: 4 bytes
6831 ;; Hardware stack levels used: 1
6832 ;; Hardware stack levels required when called: 3
6833 ;; This function calls:
6834 ;; _Lcd_Cmd
6835 ;; _Lcd_Write_Char
6836 ;; This function is called by:
6837 ;; _main
6838 ;; _Lcd_Init
6839 ;; This function uses a non-reentrant model
6840 ;;
6841
6842
6843 ;psect for function _Vfd_Set_Brightness
6844 08BE _Vfd_Set_Brightness:
6845
6846 ;lcd.c: 112: Lcd_Cmd(0x03);
6847
6848 ;incstack = 0
6849 ; Regs used in _Vfd_Set_Brightness: [wreg+status,2+status,0+pclath+cstack]
6850 08BE 3003 movlw 3
6851 08BF 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6852
6853 ;lcd.c: 113: _delay((unsigned long)((11)*(20000000/4000.0)));
6854 08C4 3048 movlw 72
6855 08C5 1283 bcf 3,5 ;RP0=0, select bank0
6856 08C6 1303 bcf 3,6 ;RP1=0, select bank0
6857 08C7 00A1 movwf ??_Vfd_Set_Brightness+1
6858 08C8 306B movlw 107
6859 08C9 00A0 movwf ??_Vfd_Set_Brightness
6860 08CA u3157:
6861 08CA 0BA0 decfsz ??_Vfd_Set_Brightness,f
6862 08CB 28CA goto u3157
6863 08CC 0BA1 decfsz ??_Vfd_Set_Brightness+1,f
6864 08CD 28CA goto u3157
6865 08CE 28CF nop2
6866
6867 ;lcd.c: 114: Lcd_Cmd(0x03);
6868 08CF 3003 movlw 3
6869 08D0 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6870
6871 ;lcd.c: 116: Lcd_Cmd(0x02);
6872 08D5 3002 movlw 2
6873 08D6 160A 118A 27E6 120A 158A fcall _Lcd_Cmd
6874
6875 ;lcd.c: 117: Lcd_Write_Char(level);
6876 08DB 0877 movf Vfd_Set_Brightness@level,w
6877 08DC 120A 158A 2284 fcall _Lcd_Write_Char
6878 08DF 0008 return
6879 08E0 __end_of_Vfd_Set_Brightness:
6880
6881 psect text36
6882 0A84 __ptext36:
6883 ;; *************** function _Lcd_Write_Char *****************
6884 ;; Defined at:
6885 ;; line 78 in file "lcd.c"
6886 ;; Parameters: Size Location Type
6887 ;; a 1 wreg unsigned char
6888 ;; Auto vars: Size Location Type
6889 ;; a 1 6[COMMON] unsigned char
6890 ;; y 1 5[COMMON] unsigned char
6891 ;; temp 1 4[COMMON] unsigned char
6892 ;; Return value: Size Location Type
6893 ;; 1 wreg void
6894 ;; Registers used:
6895 ;; wreg, status,2, status,0, pclath, cstack
6896 ;; Tracked objects:
6897 ;; On entry : 0/0
6898 ;; On exit : 0/0
6899 ;; Unchanged: 0/0
6900 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
6901 ;; Params: 0 0 0 0 0
6902 ;; Locals: 3 0 0 0 0
6903 ;; Temps: 1 0 0 0 0
6904 ;; Totals: 4 0 0 0 0
6905 ;;Total ram usage: 4 bytes
6906 ;; Hardware stack levels used: 1
6907 ;; Hardware stack levels required when called: 2
6908 ;; This function calls:
6909 ;; _Lcd_Port
6910 ;; This function is called by:
6911 ;; _main
6912 ;; _display_Digit
6913 ;; _display_Lcd_Layout
6914 ;; _update_Display
6915 ;; _edit_Date_Time
6916 ;; _Lcd_Write_String
6917 ;; _Vfd_Set_Brightness
6918 ;; This function uses a non-reentrant model
6919 ;;
6920
6921
6922 ;psect for function _Lcd_Write_Char
6923 0A84 _Lcd_Write_Char:
6924
6925 ;incstack = 0
6926 ; Regs used in _Lcd_Write_Char: [wreg+status,2+status,0+pclath+cstack]
6927 ;Lcd_Write_Char@a stored from wreg
6928 0A84 00F6 movwf Lcd_Write_Char@a
6929
6930 ;lcd.c: 79: char temp, y;;lcd.c: 80: temp = a & 0x0F;
6931 0A85 0876 movf Lcd_Write_Char@a,w
6932 0A86 390F andlw 15
6933 0A87 00F3 movwf ??_Lcd_Write_Char
6934 0A88 0873 movf ??_Lcd_Write_Char,w
6935 0A89 00F4 movwf Lcd_Write_Char@temp
6936
6937 ;lcd.c: 81: y = a & 0xF0;
6938 0A8A 0876 movf Lcd_Write_Char@a,w
6939 0A8B 39F0 andlw 240
6940 0A8C 00F3 movwf ??_Lcd_Write_Char
6941 0A8D 0873 movf ??_Lcd_Write_Char,w
6942 0A8E 00F5 movwf Lcd_Write_Char@y
6943
6944 ;lcd.c: 82: RD2 = 1;
6945 0A8F 1283 bcf 3,5 ;RP0=0, select bank0
6946 0A90 1303 bcf 3,6 ;RP1=0, select bank0
6947 0A91 1508 bsf 8,2 ;volatile
6948
6949 ;lcd.c: 83: Lcd_Port(y >> 4);
6950 0A92 0875 movf Lcd_Write_Char@y,w
6951 0A93 00F3 movwf ??_Lcd_Write_Char
6952 0A94 3004 movlw 4
6953 0A95 u1435:
6954 0A95 1003 clrc
6955 0A96 0CF3 rrf ??_Lcd_Write_Char,f
6956 0A97 3EFF addlw -1
6957 0A98 1D03 skipz
6958 0A99 2A95 goto u1435
6959 0A9A 0873 movf ??_Lcd_Write_Char,w
6960 0A9B 160A 118A 27CC 120A 158A fcall _Lcd_Port
6961
6962 ;lcd.c: 84: RD3 = 1;
6963 0AA0 1283 bcf 3,5 ;RP0=0, select bank0
6964 0AA1 1303 bcf 3,6 ;RP1=0, select bank0
6965 0AA2 1588 bsf 8,3 ;volatile
6966
6967 ;lcd.c: 85: _delay((unsigned long)((40)*(20000000/4000000.0)));
6968 0AA3 3042 movlw 66
6969 0AA4 00F3 movwf ??_Lcd_Write_Char
6970 0AA5 u3167:
6971 0AA5 0BF3 decfsz ??_Lcd_Write_Char,f
6972 0AA6 2AA5 goto u3167
6973 0AA7 0000 nop
6974
6975 ;lcd.c: 86: RD3 = 0;
6976 0AA8 1283 bcf 3,5 ;RP0=0, select bank0
6977 0AA9 1303 bcf 3,6 ;RP1=0, select bank0
6978 0AAA 1188 bcf 8,3 ;volatile
6979
6980 ;lcd.c: 87: Lcd_Port(temp);
6981 0AAB 0874 movf Lcd_Write_Char@temp,w
6982 0AAC 160A 118A 27CC 120A 158A fcall _Lcd_Port
6983
6984 ;lcd.c: 88: RD3 = 1;
6985 0AB1 1283 bcf 3,5 ;RP0=0, select bank0
6986 0AB2 1303 bcf 3,6 ;RP1=0, select bank0
6987 0AB3 1588 bsf 8,3 ;volatile
6988
6989 ;lcd.c: 89: _delay((unsigned long)((40)*(20000000/4000000.0)));
6990 0AB4 3042 movlw 66
6991 0AB5 00F3 movwf ??_Lcd_Write_Char
6992 0AB6 u3177:
6993 0AB6 0BF3 decfsz ??_Lcd_Write_Char,f
6994 0AB7 2AB6 goto u3177
6995 0AB8 0000 nop
6996
6997 ;lcd.c: 90: RD3 = 0;
6998 0AB9 1283 bcf 3,5 ;RP0=0, select bank0
6999 0ABA 1303 bcf 3,6 ;RP1=0, select bank0
7000 0ABB 1188 bcf 8,3 ;volatile
7001 0ABC 0008 return
7002 0ABD __end_of_Lcd_Write_Char:
7003
7004 psect text37
7005 17E6 __ptext37:
7006 ;; *************** function _Lcd_Cmd *****************
7007 ;; Defined at:
7008 ;; line 27 in file "lcd.c"
7009 ;; Parameters: Size Location Type
7010 ;; a 1 wreg unsigned char
7011 ;; Auto vars: Size Location Type
7012 ;; a 1 5[COMMON] unsigned char
7013 ;; Return value: Size Location Type
7014 ;; 1 wreg void
7015 ;; Registers used:
7016 ;; wreg, status,2, status,0, pclath, cstack
7017 ;; Tracked objects:
7018 ;; On entry : 0/0
7019 ;; On exit : 0/0
7020 ;; Unchanged: 0/0
7021 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7022 ;; Params: 0 0 0 0 0
7023 ;; Locals: 1 0 0 0 0
7024 ;; Temps: 2 0 0 0 0
7025 ;; Totals: 3 0 0 0 0
7026 ;;Total ram usage: 3 bytes
7027 ;; Hardware stack levels used: 1
7028 ;; Hardware stack levels required when called: 2
7029 ;; This function calls:
7030 ;; _Lcd_Port
7031 ;; This function is called by:
7032 ;; _Lcd_Clear
7033 ;; _Lcd_Set_Cursor
7034 ;; _Lcd_Init
7035 ;; _Vfd_Set_Brightness
7036 ;; _Lcd_Shift_Right
7037 ;; _Lcd_Shift_Left
7038 ;; This function uses a non-reentrant model
7039 ;;
7040
7041
7042 ;psect for function _Lcd_Cmd
7043 17E6 _Lcd_Cmd:
7044
7045 ;incstack = 0
7046 ; Regs used in _Lcd_Cmd: [wreg+status,2+status,0+pclath+cstack]
7047 ;Lcd_Cmd@a stored from wreg
7048 17E6 00F5 movwf Lcd_Cmd@a
7049
7050 ;lcd.c: 28: RD2 = 0;
7051 17E7 1283 bcf 3,5 ;RP0=0, select bank0
7052 17E8 1303 bcf 3,6 ;RP1=0, select bank0
7053 17E9 1108 bcf 8,2 ;volatile
7054
7055 ;lcd.c: 29: Lcd_Port(a);
7056 17EA 0875 movf Lcd_Cmd@a,w
7057 17EB 160A 118A 27CC 160A 118A fcall _Lcd_Port
7058
7059 ;lcd.c: 30: RD3 = 1;
7060 17F0 1283 bcf 3,5 ;RP0=0, select bank0
7061 17F1 1303 bcf 3,6 ;RP1=0, select bank0
7062 17F2 1588 bsf 8,3 ;volatile
7063
7064 ;lcd.c: 31: _delay((unsigned long)((4)*(20000000/4000.0)));
7065 17F3 301A movlw 26
7066 17F4 00F4 movwf ??_Lcd_Cmd+1
7067 17F5 30F8 movlw 248
7068 17F6 00F3 movwf ??_Lcd_Cmd
7069 17F7 u3187:
7070 17F7 0BF3 decfsz ??_Lcd_Cmd,f
7071 17F8 2FF7 goto u3187
7072 17F9 0BF4 decfsz ??_Lcd_Cmd+1,f
7073 17FA 2FF7 goto u3187
7074 17FB 0000 nop
7075
7076 ;lcd.c: 32: RD3 = 0;
7077 17FC 1283 bcf 3,5 ;RP0=0, select bank0
7078 17FD 1303 bcf 3,6 ;RP1=0, select bank0
7079 17FE 1188 bcf 8,3 ;volatile
7080 17FF 0008 return
7081 1800 __end_of_Lcd_Cmd:
7082
7083 psect text38
7084 17CC __ptext38:
7085 ;; *************** function _Lcd_Port *****************
7086 ;; Defined at:
7087 ;; line 5 in file "lcd.c"
7088 ;; Parameters: Size Location Type
7089 ;; a 1 wreg unsigned char
7090 ;; Auto vars: Size Location Type
7091 ;; a 1 2[COMMON] unsigned char
7092 ;; Return value: Size Location Type
7093 ;; 1 wreg void
7094 ;; Registers used:
7095 ;; wreg
7096 ;; Tracked objects:
7097 ;; On entry : 0/0
7098 ;; On exit : 0/0
7099 ;; Unchanged: 0/0
7100 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7101 ;; Params: 0 0 0 0 0
7102 ;; Locals: 1 0 0 0 0
7103 ;; Temps: 0 0 0 0 0
7104 ;; Totals: 1 0 0 0 0
7105 ;;Total ram usage: 1 bytes
7106 ;; Hardware stack levels used: 1
7107 ;; Hardware stack levels required when called: 1
7108 ;; This function calls:
7109 ;; Nothing
7110 ;; This function is called by:
7111 ;; _Lcd_Cmd
7112 ;; _Lcd_Init
7113 ;; _Lcd_Write_Char
7114 ;; This function uses a non-reentrant model
7115 ;;
7116
7117
7118 ;psect for function _Lcd_Port
7119 17CC _Lcd_Port:
7120
7121 ;incstack = 0
7122 ; Regs used in _Lcd_Port: [wreg]
7123 ;Lcd_Port@a stored from wreg
7124 17CC 00F2 movwf Lcd_Port@a
7125
7126 ;lcd.c: 6: if (a & 1)
7127 17CD 1C72 btfss Lcd_Port@a,0
7128 17CE 2FD3 goto l265
7129
7130 ;lcd.c: 7: RD4 = 1;
7131 17CF 1283 bcf 3,5 ;RP0=0, select bank0
7132 17D0 1303 bcf 3,6 ;RP1=0, select bank0
7133 17D1 1608 bsf 8,4 ;volatile
7134 17D2 2FD6 goto l266
7135 17D3 l265:
7136 ;lcd.c: 8: else
7137
7138
7139 ;lcd.c: 9: RD4 = 0;
7140 17D3 1283 bcf 3,5 ;RP0=0, select bank0
7141 17D4 1303 bcf 3,6 ;RP1=0, select bank0
7142 17D5 1208 bcf 8,4 ;volatile
7143 17D6 l266:
7144
7145 ;lcd.c: 11: if (a & 2)
7146 17D6 1CF2 btfss Lcd_Port@a,1
7147 17D7 2FDA goto l267
7148
7149 ;lcd.c: 12: RD5 = 1;
7150 17D8 1688 bsf 8,5 ;volatile
7151 17D9 2FDB goto l268
7152 17DA l267:
7153 ;lcd.c: 13: else
7154
7155
7156 ;lcd.c: 14: RD5 = 0;
7157 17DA 1288 bcf 8,5 ;volatile
7158 17DB l268:
7159
7160 ;lcd.c: 16: if (a & 4)
7161 17DB 1D72 btfss Lcd_Port@a,2
7162 17DC 2FDF goto l269
7163
7164 ;lcd.c: 17: RD6 = 1;
7165 17DD 1708 bsf 8,6 ;volatile
7166 17DE 2FE0 goto l270
7167 17DF l269:
7168 ;lcd.c: 18: else
7169
7170
7171 ;lcd.c: 19: RD6 = 0;
7172 17DF 1308 bcf 8,6 ;volatile
7173 17E0 l270:
7174
7175 ;lcd.c: 21: if (a & 8)
7176 17E0 1DF2 btfss Lcd_Port@a,3
7177 17E1 2FE4 goto l271
7178
7179 ;lcd.c: 22: RD7 = 1;
7180 17E2 1788 bsf 8,7 ;volatile
7181 17E3 0008 return
7182 17E4 l271:
7183 ;lcd.c: 23: else
7184
7185
7186 ;lcd.c: 24: RD7 = 0;
7187 17E4 1388 bcf 8,7 ;volatile
7188 17E5 0008 return
7189 17E6 __end_of_Lcd_Port:
7190
7191 psect text39
7192 17BA __ptext39:
7193 ;; *************** function _I2C_Master_Init *****************
7194 ;; Defined at:
7195 ;; line 8 in file "i2c.c"
7196 ;; Parameters: Size Location Type
7197 ;; freq_K 4 2[COMMON] const unsigned long
7198 ;; Auto vars: Size Location Type
7199 ;; None
7200 ;; Return value: Size Location Type
7201 ;; 1 wreg void
7202 ;; Registers used:
7203 ;; wreg, status,2
7204 ;; Tracked objects:
7205 ;; On entry : 0/0
7206 ;; On exit : 0/0
7207 ;; Unchanged: 0/0
7208 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7209 ;; Params: 4 0 0 0 0
7210 ;; Locals: 0 0 0 0 0
7211 ;; Temps: 0 0 0 0 0
7212 ;; Totals: 4 0 0 0 0
7213 ;;Total ram usage: 4 bytes
7214 ;; Hardware stack levels used: 1
7215 ;; Hardware stack levels required when called: 1
7216 ;; This function calls:
7217 ;; Nothing
7218 ;; This function is called by:
7219 ;; _main
7220 ;; This function uses a non-reentrant model
7221 ;;
7222
7223
7224 ;psect for function _I2C_Master_Init
7225 17BA _I2C_Master_Init:
7226
7227 ;i2c.c: 8: void I2C_Master_Init(const unsigned long freq_K);i2c.c: 9: {;i2c.c: 10: T
+ RISC3 = 1;
7228
7229 ;incstack = 0
7230 ; Regs used in _I2C_Master_Init: [wreg+status,2]
7231 17BA 1683 bsf 3,5 ;RP0=1, select bank1
7232 17BB 1303 bcf 3,6 ;RP1=0, select bank1
7233 17BC 1587 bsf 7,3 ;volatile
7234
7235 ;i2c.c: 11: TRISC4 = 1;
7236 17BD 1607 bsf 7,4 ;volatile
7237
7238 ;i2c.c: 13: SSPCON = 0b00101000;
7239 17BE 3028 movlw 40
7240 17BF 1283 bcf 3,5 ;RP0=0, select bank0
7241 17C0 1303 bcf 3,6 ;RP1=0, select bank0
7242 17C1 0094 movwf 20 ;volatile
7243
7244 ;i2c.c: 14: SSPCON2 = 0b00000000;
7245 17C2 1683 bsf 3,5 ;RP0=1, select bank1
7246 17C3 1303 bcf 3,6 ;RP1=0, select bank1
7247 17C4 0191 clrf 17 ;volatile
7248
7249 ;i2c.c: 17: SSPADD = 49;
7250 17C5 3031 movlw 49
7251 17C6 0093 movwf 19 ;volatile
7252
7253 ;i2c.c: 20: SMP = 1;
7254 17C7 1794 bsf 20,7 ;volatile
7255
7256 ;i2c.c: 21: CKP = 0;
7257 17C8 1283 bcf 3,5 ;RP0=0, select bank0
7258 17C9 1303 bcf 3,6 ;RP1=0, select bank0
7259 17CA 1214 bcf 20,4 ;volatile
7260 17CB 0008 return
7261 17CC __end_of_I2C_Master_Init:
7262
7263 psect text40
7264 085D __ptext40:
7265 ;; *************** function _Get_Alarm_Status *****************
7266 ;; Defined at:
7267 ;; line 238 in file "main.c"
7268 ;; Parameters: Size Location Type
7269 ;; None
7270 ;; Auto vars: Size Location Type
7271 ;; None
7272 ;; Return value: Size Location Type
7273 ;; 1 wreg void
7274 ;; Registers used:
7275 ;; wreg, status,2, status,0
7276 ;; Tracked objects:
7277 ;; On entry : 0/0
7278 ;; On exit : 0/0
7279 ;; Unchanged: 0/0
7280 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7281 ;; Params: 0 0 0 0 0
7282 ;; Locals: 0 0 0 0 0
7283 ;; Temps: 2 0 0 0 0
7284 ;; Totals: 2 0 0 0 0
7285 ;;Total ram usage: 2 bytes
7286 ;; Hardware stack levels used: 1
7287 ;; Hardware stack levels required when called: 1
7288 ;; This function calls:
7289 ;; Nothing
7290 ;; This function is called by:
7291 ;; _main
7292 ;; This function uses a non-reentrant model
7293 ;;
7294
7295
7296 ;psect for function _Get_Alarm_Status
7297 085D _Get_Alarm_Status:
7298
7299 ;main.c: 239: alarm1_status = control_reg & 0x01;
7300
7301 ;incstack = 0
7302 ; Regs used in _Get_Alarm_Status: [wreg+status,2+status,0]
7303 085D 3001 movlw 1
7304 085E 1283 bcf 3,5 ;RP0=0, select bank0
7305 085F 1303 bcf 3,6 ;RP1=0, select bank0
7306 0860 055B andwf _control_reg,w
7307 0861 1683 bsf 3,5 ;RP0=1, select bank1
7308 0862 1303 bcf 3,6 ;RP1=0, select bank1
7309 0863 00C2 movwf _alarm1_status^(0+128)
7310 0864 3000 movlw 0
7311 0865 1283 bcf 3,5 ;RP0=0, select bank0
7312 0866 1303 bcf 3,6 ;RP1=0, select bank0
7313 0867 055C andwf _control_reg+1,w
7314 0868 1683 bsf 3,5 ;RP0=1, select bank1
7315 0869 1303 bcf 3,6 ;RP1=0, select bank1
7316 086A 00C3 movwf (_alarm1_status+1)^(0+128)
7317
7318 ;main.c: 240: alarm2_status = (control_reg >> 1) & 0x01;
7319 086B 1283 bcf 3,5 ;RP0=0, select bank0
7320 086C 1303 bcf 3,6 ;RP1=0, select bank0
7321 086D 085C movf _control_reg+1,w
7322 086E 00F3 movwf ??_Get_Alarm_Status+1
7323 086F 085B movf _control_reg,w
7324 0870 00F2 movwf ??_Get_Alarm_Status
7325 0871 1003 clrc
7326 0872 0CF3 rrf ??_Get_Alarm_Status+1,f
7327 0873 0CF2 rrf ??_Get_Alarm_Status,f
7328 0874 3001 movlw 1
7329 0875 0572 andwf ??_Get_Alarm_Status,w
7330 0876 1683 bsf 3,5 ;RP0=1, select bank1
7331 0877 1303 bcf 3,6 ;RP1=0, select bank1
7332 0878 00C0 movwf _alarm2_status^(0+128)
7333 0879 3000 movlw 0
7334 087A 0573 andwf ??_Get_Alarm_Status+1,w
7335 087B 00C1 movwf (_alarm2_status+1)^(0+128)
7336 087C 0008 return
7337 087D __end_of_Get_Alarm_Status:
7338
7339 psect text41
7340 0840 __ptext41:
7341 ;; *************** function _Adc_Read *****************
7342 ;; Defined at:
7343 ;; line 25 in file "adc.c"
7344 ;; Parameters: Size Location Type
7345 ;; channel 2 2[COMMON] unsigned int
7346 ;; Auto vars: Size Location Type
7347 ;; None
7348 ;; Return value: Size Location Type
7349 ;; 2 2[COMMON] unsigned int
7350 ;; Registers used:
7351 ;; wreg, status,2, status,0
7352 ;; Tracked objects:
7353 ;; On entry : 0/0
7354 ;; On exit : 0/0
7355 ;; Unchanged: 0/0
7356 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7357 ;; Params: 2 0 0 0 0
7358 ;; Locals: 0 0 0 0 0
7359 ;; Temps: 1 0 0 0 0
7360 ;; Totals: 3 0 0 0 0
7361 ;;Total ram usage: 3 bytes
7362 ;; Hardware stack levels used: 1
7363 ;; Hardware stack levels required when called: 1
7364 ;; This function calls:
7365 ;; Nothing
7366 ;; This function is called by:
7367 ;; _main
7368 ;; This function uses a non-reentrant model
7369 ;;
7370
7371
7372 ;psect for function _Adc_Read
7373 0840 _Adc_Read:
7374
7375 ;adc.c: 26: ADCON0bits.CHS = channel;
7376
7377 ;incstack = 0
7378 ; Regs used in _Adc_Read: [wreg+status,2+status,0]
7379 0840 0872 movf Adc_Read@channel,w
7380 0841 00F4 movwf ??_Adc_Read
7381 0842 0DF4 rlf ??_Adc_Read,f
7382 0843 0DF4 rlf ??_Adc_Read,f
7383 0844 0DF4 rlf ??_Adc_Read,f
7384 0845 1283 bcf 3,5 ;RP0=0, select bank0
7385 0846 1303 bcf 3,6 ;RP1=0, select bank0
7386 0847 081F movf 31,w ;volatile
7387 0848 0674 xorwf ??_Adc_Read,w
7388 0849 39C7 andlw -57
7389 084A 0674 xorwf ??_Adc_Read,w
7390 084B 009F movwf 31 ;volatile
7391
7392 ;adc.c: 27: ADCON0bits.ADON = 1;
7393 084C 141F bsf 31,0 ;volatile
7394
7395 ;adc.c: 28: _delay((unsigned long)((5)*(20000000/4000000.0)));
7396 084D 3008 movlw 8
7397 084E 00F4 movwf ??_Adc_Read
7398 084F u3197:
7399 084F 0BF4 decfsz ??_Adc_Read,f
7400 0850 284F goto u3197
7401
7402 ;adc.c: 29: ADCON0bits.GO_DONE = 1;
7403 0851 1283 bcf 3,5 ;RP0=0, select bank0
7404 0852 1303 bcf 3,6 ;RP1=0, select bank0
7405 0853 151F bsf 31,2 ;volatile
7406 0854 l573:
7407 ;adc.c: 30: while (ADCON0bits.GO_DONE == 1);
7408
7409 0854 191F btfsc 31,2 ;volatile
7410 0855 2854 goto l573
7411
7412 ;adc.c: 31: return ((ADRESH << 8) + ADRESL);
7413 0856 081E movf 30,w ;volatile
7414 0857 00F3 movwf ?_Adc_Read+1
7415 0858 1683 bsf 3,5 ;RP0=1, select bank1
7416 0859 1303 bcf 3,6 ;RP1=0, select bank1
7417 085A 081E movf 30,w ;volatile
7418 085B 00F2 movwf ?_Adc_Read
7419 085C 0008 return
7420 085D __end_of_Adc_Read:
7421
7422 psect text42
7423 177F __ptext42:
7424 ;; *************** function _Adc_Init *****************
7425 ;; Defined at:
7426 ;; line 10 in file "adc.c"
7427 ;; Parameters: Size Location Type
7428 ;; None
7429 ;; Auto vars: Size Location Type
7430 ;; None
7431 ;; Return value: Size Location Type
7432 ;; 1 wreg void
7433 ;; Registers used:
7434 ;; status,2
7435 ;; Tracked objects:
7436 ;; On entry : 0/0
7437 ;; On exit : 0/0
7438 ;; Unchanged: 0/0
7439 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7440 ;; Params: 0 0 0 0 0
7441 ;; Locals: 0 0 0 0 0
7442 ;; Temps: 0 0 0 0 0
7443 ;; Totals: 0 0 0 0 0
7444 ;;Total ram usage: 0 bytes
7445 ;; Hardware stack levels used: 1
7446 ;; Hardware stack levels required when called: 1
7447 ;; This function calls:
7448 ;; Nothing
7449 ;; This function is called by:
7450 ;; _main
7451 ;; This function uses a non-reentrant model
7452 ;;
7453
7454
7455 ;psect for function _Adc_Init
7456 177F _Adc_Init:
7457
7458 ;adc.c: 11: ADCON0 = 0x00;
7459
7460 ;incstack = 0
7461 ; Regs used in _Adc_Init: [status,2]
7462 177F 1283 bcf 3,5 ;RP0=0, select bank0
7463 1780 1303 bcf 3,6 ;RP1=0, select bank0
7464 1781 019F clrf 31 ;volatile
7465
7466 ;adc.c: 12: ADCS0 = 0;
7467 1782 131F bcf 31,6 ;volatile
7468
7469 ;adc.c: 13: ADCS1 = 1;
7470 1783 179F bsf 31,7 ;volatile
7471
7472 ;adc.c: 16: ADFM = 1;
7473 1784 1683 bsf 3,5 ;RP0=1, select bank1
7474 1785 1303 bcf 3,6 ;RP1=0, select bank1
7475 1786 179F bsf 31,7 ;volatile
7476
7477 ;adc.c: 22: PCFG0 = PCFG1 = PCFG2 = 0;
7478 1787 111F bcf 31,2 ;volatile
7479 1788 109F bcf 31,1 ;volatile
7480 1789 101F bcf 31,0 ;volatile
7481 178A 0008 return
7482 178B __end_of_Adc_Init:
7483
7484 psect text43
7485 1799 __ptext43:
7486 ;; *************** function _isr *****************
7487 ;; Defined at:
7488 ;; line 592 in file "main.c"
7489 ;; Parameters: Size Location Type
7490 ;; None
7491 ;; Auto vars: Size Location Type
7492 ;; None
7493 ;; Return value: Size Location Type
7494 ;; 1 wreg void
7495 ;; Registers used:
7496 ;; wreg
7497 ;; Tracked objects:
7498 ;; On entry : 0/0
7499 ;; On exit : 0/0
7500 ;; Unchanged: 0/0
7501 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
7502 ;; Params: 0 0 0 0 0
7503 ;; Locals: 0 0 0 0 0
7504 ;; Temps: 2 0 0 0 0
7505 ;; Totals: 2 0 0 0 0
7506 ;;Total ram usage: 2 bytes
7507 ;; Hardware stack levels used: 1
7508 ;; This function calls:
7509 ;; Nothing
7510 ;; This function is called by:
7511 ;; Interrupt level 1
7512 ;; This function uses a non-reentrant model
7513 ;;
7514
7515
7516 ;psect for function _isr
7517 1799 _isr:
7518
7519 ;main.c: 593: if (INTF == 1) {
7520 1799 1C8B btfss 11,1 ;volatile
7521 179A 2FA2 goto i1l246
7522
7523 ;main.c: 594: update = 1;
7524 179B 3001 movlw 1
7525 179C 1683 bsf 3,5 ;RP0=1, select bank1
7526 179D 1303 bcf 3,6 ;RP1=0, select bank1
7527 179E 00D0 movwf _update^(0+128)
7528 179F 3000 movlw 0
7529 17A0 00D1 movwf (_update^(0+128)+1)
7530
7531 ;main.c: 595: INTF = 0;
7532 17A1 108B bcf 11,1 ;volatile
7533 17A2 i1l246:
7534 17A2 0871 movf ??_isr+1,w
7535 17A3 008A movwf 10
7536 17A4 0E70 swapf ??_isr^(0+4294967168),w
7537 17A5 0083 movwf 3
7538 17A6 0EFE swapf 126,f
7539 17A7 0E7E swapf 126,w
7540 17A8 0009 retfie
7541 17A9 __end_of_isr:
7542 007E btemp set 126 ;btemp
7543 007E wtemp0 set 126
7544
7545 psect intentry
7546 0004 __pintentry:
7547 ;incstack = 0
7548 ; Regs used in _isr: [wreg]
7549
7550 0004 interrupt_function:
7551 007E saved_w set btemp
7552 0004 00FE movwf btemp
7553 0005 0E03 swapf 3,w
7554 0006 00F0 movwf ??_isr
7555 0007 080A movf 10,w
7556 0008 00F1 movwf ??_isr+1
7557 0009 160A 118A 2F99 ljmp _isr
Data Sizes:
Strings 46
Constant 0
Data 85
BSS 38
Persistent 0
Stack 0
Auto Spaces:
Space Size Autos Used
COMMON 14 10 12
BANK0 80 55 78
BANK1 80 3 53
BANK3 96 0 48
BANK2 96 0 0
Pointer List with Targets:
Lcd_Write_String@a PTR unsigned char size(2) Largest target is 28
-> dayOfWeek(BANK1[28]), STR_5(CODE[2]), STR_4(CODE[17]), STR_3(CODE[15]),
-> STR_2(CODE[3]), STR_1(CODE[11]),
sp__Get_WeekDay PTR unsigned char size(1) Largest target is 28
-> dayOfWeek(BANK1[28]),
Critical Paths under _main in COMMON
_format_Temperature->___wmul
_display_Digit->___lwmod
_DEC_2_BCD->___awmod
_Get_Days_In_Month->___lwmod
_Get_Is_Leap_Year->___lwmod
_Get_DayOfWeek->___lwmod
___lwmod->___lwdiv
___lwdiv->___wmul
_Lcd_Set_Cursor->_Lcd_Cmd
_Lcd_Clear->_Lcd_Cmd
_Update_Current_Date_Time->_BCD_2_DEC
_Read_Alarms_Temp->_BCD_2_DEC
_BCD_2_DEC->_I2C_Master_Read
_BCD_2_DEC->___wmul
_Lcd_Init->_Vfd_Set_Brightness
_Vfd_Set_Brightness->_Lcd_Write_Char
_Lcd_Write_Char->_Lcd_Port
_Lcd_Cmd->_Lcd_Port
Critical Paths under _isr in COMMON
None.
Critical Paths under _main in BANK0
_main->_edit_Date_Time
_update_Display->_Lcd_Write_String
_edit_Date_Time->_Lcd_Write_String
_display_Digit->___lwmod
_Set_Time->_I2C_Master_Write
_Set_DayOfWeek->_Get_DayOfWeek
_Set_Date->_I2C_Master_Write
_DEC_2_BCD->___awdiv
_Get_WeekDay->_Get_DayOfWeek
_Get_Days_In_Month->_Get_Is_Leap_Year
_Get_Is_Leap_Year->___lwmod
_Get_DayOfWeek->___lwmod
___lwmod->___lwdiv
_display_Lcd_Layout->_Lcd_Write_String
_display_Intro->_Lcd_Write_String
_Lcd_Write_String->_Get_WeekDay
_Update_Current_Date_Time->_I2C_Master_Write
_Set_Sqwe->_I2C_Master_Write
_Read_Alarms_Temp->_I2C_Master_Write
_I2C_Master_Write->_DEC_2_BCD
_Lcd_Init->_Vfd_Set_Brightness
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 BANK3
None.
Critical Paths under _isr in BANK3
None.
Critical Paths under _main in BANK2
None.
Critical Paths under _isr in BANK2
None.
Call Graph Tables:
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(0) _main 3 3 0 69007
0 BANK1 3 3 0
_Adc_Init
_Adc_Read
_Get_Alarm_Status
_I2C_Master_Init
_Lcd_Init
_Lcd_Set_Cursor
_Lcd_Write_Char
_Read_Alarms_Temp
_Set_Sqwe
_Update_Current_Date_Time
_Vfd_Set_Brightness
_display_Intro
_display_Lcd_Layout
_edit_Date_Time
_format_Temperature
_update_Display
---------------------------------------------------------------------------------
(1) _update_Display 1 1 0 10646
38 BANK0 1 1 0
_Get_WeekDay
_Lcd_Set_Cursor
_Lcd_Write_Char
_Lcd_Write_String
___lwdiv
_alarm
_display_Digit
---------------------------------------------------------------------------------
(2) _alarm 9 7 2 316
2 COMMON 5 3 2
0 BANK0 4 4 0
---------------------------------------------------------------------------------
(1) _format_Temperature 1 1 0 700
8 COMMON 1 1 0
___wmul
---------------------------------------------------------------------------------
(1) _edit_Date_Time 17 17 0 28337
38 BANK0 17 17 0
_Get_DayOfWeek
_Get_Days_In_Month
_Get_WeekDay
_Lcd_Set_Cursor
_Lcd_Write_Char
_Lcd_Write_String
_Set_Date
_Set_DayOfWeek
_Set_Time
_display_Digit
---------------------------------------------------------------------------------
(2) _display_Digit 2 0 2 4313
12 BANK0 2 0 2
_Lcd_Write_Char
___lwdiv
___lwmod
---------------------------------------------------------------------------------
(2) _Set_Time 0 0 0 4641
_DEC_2_BCD
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(2) _Set_DayOfWeek 2 0 2 2704
28 BANK0 2 0 2
_Get_DayOfWeek (ARG)
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(2) _Set_Date 0 0 0 4641
_DEC_2_BCD
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(3) _DEC_2_BCD 4 2 2 2035
4 BANK0 4 2 2
___awdiv
___awmod
---------------------------------------------------------------------------------
(4) ___awmod 7 3 4 448
2 COMMON 7 3 4
---------------------------------------------------------------------------------
(4) ___awdiv 9 5 4 625
2 COMMON 5 1 4
0 BANK0 4 4 0
---------------------------------------------------------------------------------
(2) _Get_WeekDay 3 1 2 250
28 BANK0 3 1 2
_Get_DayOfWeek (ARG)
---------------------------------------------------------------------------------
(2) _Get_Days_In_Month 7 3 4 2844
17 BANK0 7 3 4
_Get_Is_Leap_Year
___lwmod
---------------------------------------------------------------------------------
(3) _Get_Is_Leap_Year 5 3 2 1259
12 BANK0 5 3 2
___lwmod
---------------------------------------------------------------------------------
(2) _Get_DayOfWeek 16 10 6 4040
12 BANK0 16 10 6
___lwdiv
___lwmod
___wmul
---------------------------------------------------------------------------------
(3) ___lwmod 6 2 4 1132
9 COMMON 1 1 0
7 BANK0 5 1 4
___lwdiv (ARG)
___wmul (ARG)
---------------------------------------------------------------------------------
(3) ___lwdiv 8 4 4 1141
8 COMMON 1 1 0
0 BANK0 7 3 4
___wmul (ARG)
---------------------------------------------------------------------------------
(1) _display_Lcd_Layout 3 3 0 4736
38 BANK0 3 3 0
_Lcd_Clear
_Lcd_Set_Cursor
_Lcd_Write_Char
_Lcd_Write_String
---------------------------------------------------------------------------------
(1) _display_Intro 3 3 0 4558
38 BANK0 3 3 0
_Lcd_Clear
_Lcd_Set_Cursor
_Lcd_Write_String
---------------------------------------------------------------------------------
(2) _Lcd_Write_String 7 5 2 876
31 BANK0 7 5 2
_Get_DayOfWeek (ARG)
_Get_WeekDay (ARG)
_Lcd_Write_Char
---------------------------------------------------------------------------------
(2) _Lcd_Set_Cursor 7 6 1 3572
6 COMMON 3 2 1
0 BANK0 4 4 0
_Lcd_Cmd
---------------------------------------------------------------------------------
(2) _Lcd_Clear 0 0 0 110
_Lcd_Cmd
---------------------------------------------------------------------------------
(1) _Update_Current_Date_Time 0 0 0 5923
_BCD_2_DEC
_I2C_Master_Read
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(1) _Set_Sqwe 2 0 2 2704
10 BANK0 2 0 2
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(1) _Read_Alarms_Temp 0 0 0 5923
_BCD_2_DEC
_I2C_Master_Read
_I2C_Master_Repeated_Start
_I2C_Master_Start
_I2C_Master_Stop
_I2C_Master_Write
---------------------------------------------------------------------------------
(3) _I2C_Master_Write 2 0 2 2606
8 BANK0 2 0 2
_DEC_2_BCD (ARG)
_I2C_Master_Wait
---------------------------------------------------------------------------------
(3) _I2C_Master_Stop 0 0 0 0
_I2C_Master_Wait
---------------------------------------------------------------------------------
(3) _I2C_Master_Start 0 0 0 0
_I2C_Master_Wait
---------------------------------------------------------------------------------
(2) _I2C_Master_Repeated_Start 0 0 0 0
_I2C_Master_Wait
---------------------------------------------------------------------------------
(2) _I2C_Master_Read 6 4 2 1565
2 COMMON 6 4 2
_I2C_Master_Wait
---------------------------------------------------------------------------------
(4) _I2C_Master_Wait 0 0 0 0
---------------------------------------------------------------------------------
(2) _BCD_2_DEC 4 2 2 1752
8 COMMON 2 0 2
0 BANK0 2 2 0
_I2C_Master_Read (ARG)
___wmul
---------------------------------------------------------------------------------
(2) ___wmul 6 2 4 700
2 COMMON 6 2 4
---------------------------------------------------------------------------------
(1) _Lcd_Init 2 2 0 877
2 BANK0 2 2 0
_Lcd_Cmd
_Lcd_Port
_Vfd_Set_Brightness
---------------------------------------------------------------------------------
(1) _Vfd_Set_Brightness 4 2 2 679
7 COMMON 2 0 2
0 BANK0 2 2 0
_Lcd_Cmd
_Lcd_Write_Char
---------------------------------------------------------------------------------
(3) _Lcd_Write_Char 4 4 0 178
3 COMMON 4 4 0
_Lcd_Port
---------------------------------------------------------------------------------
(3) _Lcd_Cmd 3 3 0 110
3 COMMON 3 3 0
_Lcd_Port
---------------------------------------------------------------------------------
(4) _Lcd_Port 1 1 0 88
2 COMMON 1 1 0
---------------------------------------------------------------------------------
(1) _I2C_Master_Init 4 0 4 76
2 COMMON 4 0 4
---------------------------------------------------------------------------------
(1) _Get_Alarm_Status 2 2 0 0
2 COMMON 2 2 0
---------------------------------------------------------------------------------
(1) _Adc_Read 3 1 2 98
2 COMMON 3 1 2
---------------------------------------------------------------------------------
(1) _Adc_Init 0 0 0 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 4
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(5) _isr 2 2 0 0
0 COMMON 2 2 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 5
---------------------------------------------------------------------------------
Call Graph Graphs:
_main (ROOT)
_Adc_Init
_Adc_Read
_Get_Alarm_Status
_I2C_Master_Init
_Lcd_Init
_Lcd_Cmd
_Lcd_Port
_Lcd_Port
_Vfd_Set_Brightness
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_Lcd_Set_Cursor
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_Read_Alarms_Temp
_BCD_2_DEC
_I2C_Master_Read (ARG)
_I2C_Master_Wait
___wmul (ARG)
_I2C_Master_Read
_I2C_Master_Wait
_I2C_Master_Repeated_Start
_I2C_Master_Wait
_I2C_Master_Start
_I2C_Master_Wait
_I2C_Master_Stop
_I2C_Master_Wait
_I2C_Master_Write
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_Set_Sqwe
_I2C_Master_Start
_I2C_Master_Wait
_I2C_Master_Stop
_I2C_Master_Wait
_I2C_Master_Write
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_Update_Current_Date_Time
_BCD_2_DEC
_I2C_Master_Read (ARG)
_I2C_Master_Wait
___wmul (ARG)
_I2C_Master_Read
_I2C_Master_Wait
_I2C_Master_Start
_I2C_Master_Wait
_I2C_Master_Stop
_I2C_Master_Wait
_I2C_Master_Write
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_Vfd_Set_Brightness
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_display_Intro
_Lcd_Clear
_Lcd_Cmd
_Lcd_Port
_Lcd_Set_Cursor
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_String
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Get_WeekDay (ARG)
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Write_Char (ARG)
_Lcd_Port
_display_Lcd_Layout
_Lcd_Clear
_Lcd_Cmd
_Lcd_Port
_Lcd_Set_Cursor
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_Lcd_Write_String
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Get_WeekDay (ARG)
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Write_Char (ARG)
_Lcd_Port
_edit_Date_Time
_Get_DayOfWeek
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Get_Days_In_Month
_Get_Is_Leap_Year
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
_Get_WeekDay
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Set_Cursor
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_Lcd_Write_String
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Get_WeekDay (ARG)
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Write_Char (ARG)
_Lcd_Port
_Set_Date
_DEC_2_BCD
___awdiv
___awmod
_I2C_Master_Start
_I2C_Master_Wait
_I2C_Master_Stop
_I2C_Master_Wait
_I2C_Master_Write
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_Set_DayOfWeek
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_I2C_Master_Start (ARG)
_I2C_Master_Wait
_I2C_Master_Stop (ARG)
_I2C_Master_Wait
_I2C_Master_Write (ARG)
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_Set_Time
_DEC_2_BCD
___awdiv
___awmod
_I2C_Master_Start
_I2C_Master_Wait
_I2C_Master_Stop
_I2C_Master_Wait
_I2C_Master_Write
_DEC_2_BCD (ARG)
___awdiv
___awmod
_I2C_Master_Wait (ARG)
_display_Digit
_Lcd_Write_Char
_Lcd_Port
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
_format_Temperature
___wmul
_update_Display
_Get_WeekDay
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Set_Cursor
_Lcd_Cmd
_Lcd_Port
_Lcd_Write_Char
_Lcd_Port
_Lcd_Write_String
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Get_WeekDay (ARG)
_Get_DayOfWeek (ARG)
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
___wmul
_Lcd_Write_Char (ARG)
_Lcd_Port
___lwdiv
___wmul (ARG)
_alarm
_display_Digit
_Lcd_Write_Char
_Lcd_Port
___lwdiv
___wmul (ARG)
___lwmod
___lwdiv (ARG)
___wmul (ARG)
___wmul (ARG)
_isr (ROOT)
Address spaces:
Name Size Autos Total Cost Usage
BANK3 60 0 30 9 50.0%
BITBANK3 60 0 0 8 0.0%
SFR3 0 0 0 4 0.0%
BITSFR3 0 0 0 4 0.0%
BANK2 60 0 0 11 0.0%
BITBANK2 60 0 0 10 0.0%
SFR2 0 0 0 5 0.0%
BITSFR2 0 0 0 5 0.0%
BANK1 50 3 35 7 66.3%
BITBANK1 50 0 0 6 0.0%
SFR1 0 0 0 2 0.0%
BITSFR1 0 0 0 2 0.0%
BANK0 50 37 4E 5 97.5%
BITBANK0 50 0 0 4 0.0%
SFR0 0 0 0 1 0.0%
BITSFR0 0 0 0 1 0.0%
COMMON E A C 1 85.7%
BITCOMMON E 0 0 0 0.0%
CODE 0 0 0 0 0.0%
DATA 0 0 BF 12 0.0%
ABS 0 0 BF 3 0.0%
NULL 0 0 0 0 0.0%
STACK 0 0 0 2 0.0%
EEDATA 100 0 0 0 0.0%
Microchip Technology PIC Macro Assembler V2.05 build -831301201
Symbol Table Tue Aug 13 21:28:15 2019
pc 0002 __CFG_CP$OFF 0000
___awdiv@sign 0021 __size_of_DEC_2_BCD 0034
fsr 0004 ___wmul@multiplicand 0074
l224 0391 l216 031B
l208 0290 l181 00E1
l270 17E0 l190 0155
l271 17E4 l265 17D3
l266 17D6 l267 17DA
l268 17DB l188 03D7
l540 0C07 l269 17DF
l198 01B4 l542 0C11
l573 0854 l662 08A7
_CKP 00A4 _GIE 005F
_RB2 0032 _RB4 0034
_RB5 0035 _RD1 0041
_RD2 0042 _RD3 0043
_RD4 0044 _RD5 0045
__size_of_edit_Date_Time 0427 _RD6 0046
_RD7 0047 _PEN 048A
__CFG_CPD$OFF 0000 _SEN 0488
_RX9 00C6 _SMP 04A7
_TX9 04C6 _day 00A2
_ldr 007A _min 0061
_sec 0063 _isr 1799
fsr0 0004 indf 0000
___awmod@sign 0078 __CFG_FOSC$HS 0000
?_display_Digit 002C ?_display_Intro 0070
__CFG_LVP$OFF 0000 __end_of_update_Display 05A0
l2016 176B l3004 0077
l3006 009A l2072 0C56
l3120 02C6 l3104 0240
l3016 00C7 l2400 0A67
l2322 0981 l2242 0CC0
l2090 0C7F l3130 02CD
l3106 0246 l3034 010C
l3018 00CD l2084 0C63
l2076 0C5D l3140 02FF
l3044 0139 l3028 0105
l2262 0B3C l2086 0C71
l2094 0C8A l3310 03C3
l3142 0305 l3062 0180
l3046 013F l2184 089F
l3152 0341 l3072 01AD
l3056 0179 l2098 0C92
l3218 044C l3170 037B
l3250 05F1 l3180 03B5
l3260 0646 l3158 0348
l3094 01FC l3086 01D8
l3262 0668 l3168 0375
l3088 01DE l3192 03F1
l3196 03FC l3188 03BC
l3268 067F l2822 0D3D
l2814 0D2A l2806 0D06
l2840 0A0A l2808 0D14
l2834 09EE l2930 0E84
l2922 07ED l2818 0D35
l2836 09FC l2844 0A15
l2932 0E90 l2780 0AF0
l2860 0AF2 l2790 0CF3
l2882 0B28 l2874 0B04
l2876 0B12 l2796 0CFE
l2886 0B33 l2978 058D
_ADFM 04FF ?_isr 0070
STR_1 0830 STR_2 083B
STR_3 0821 STR_4 0810
STR_5 081F _BRGH 04C2
_CREN 00C4 __end_of_Get_WeekDay 1799
u1315 0C66 u1335 0C77
u3007 015F u2305 09F1
u2225 0D09 u1345 0C80
u3017 019C u1435 0A95
u3107 0BFB u3027 01BE
u1700 097E u3117 0BB4
u2325 0A02 u2245 0D15
u3037 0218 u3127 0E0F
u1615 0CCC u2415 0B13
u2335 0A0B u2255 0D21
u3047 029A u3137 0E1F
u2425 0B1F u2265 0D2B
u3057 02E9 u3147 0E30
u2435 0B29 u3067 0325
u3157 08CA u1485 08A8
u3077 0364 u3167 0AA5
u1495 08AF u1655 1790
u3087 039B u1735 0A6C
u2455 0C34 u3177 0AB6
u3097 03E3 u2705 02BF
u2465 0C0D u3187 17F7
u1595 0CA5 u2395 0B07
u3197 084F u2835 0422
u2915 06A2 u2845 042A
_INTE 005C _INTF 0059
u2855 0432 u2927 063E
u2865 043A u2937 0674
u2875 0442 u2947 0C18
_RCEN 048B _RCIF 0065
u2885 044A u2957 0C21
u2967 0C3C u2977 00B6
u2987 00EB u2997 0128
_OERR 00C1 _SPEN 00C7
_RSEN 0489 _TXEN 04C5
_TXIF 0064 _SYNC 04C4
__CFG_WRT$OFF 0000 ?_Lcd_Write_String 003F
_date 006B _main 05A0
_hour 005F _year 005D
btemp 007E __CFG_BOREN$ON 0000
start 000C ??_Lcd_Write_String 0041
__end_of_Lcd_Cmd 1800 ??_isr 0070
I2C_Master_Init@freq_K 0072 __end_of_Get_Is_Leap_Year 0AFA
?_I2C_Master_Init 0072 ?_I2C_Master_Read 0072
?_I2C_Master_Wait 0070 ?_I2C_Master_Stop 0070
_ADCS0 00FE _ADCS1 00FF
?_main 0070 _ACKEN 048C
_ACKDT 048D __end_of___awdiv 0D42
__CFG_WDTE$OFF 0000 __end_of___awmod 0C97
___awdiv@divisor 0072 _PCFG0 04F8
_PCFG1 04F9 _PCFG2 04FA
__end_of___lwdiv 0B38 i1l246 17A2
__end_of___lwmod 0A1A ___awdiv@counter 0020
_RCREG 001A _SPBRG 0099
_PORTC 0007 _PORTD 0008
__size_of_Lcd_Set_Cursor 0050 _TRISC 0087
_TRISD 0088 _TXREG 0019
__CFG_PWRTE$ON 0000 _display_Lcd_Layout 0BBC
__end_of_BCD_2_DEC 0907 __end_of_Get_DayOfWeek 0F10
_alarm 0C03 __end_of_Adc_Init 178B
__end_of_Adc_Read 085D ?_update_Display 0070
_month 0069 pclath 000A
__end_of_DEC_2_BCD 0A4E ?_display_Lcd_Layout 0070
status 0003 wtemp0 007E
__end_of_Lcd_Init 0E6C __end_of_Lcd_Port 17E6
__initialization 000F __end_of_main 06C8
?_Get_Alarm_Status 0070 ??_display_Lcd_Layout 0046
??_main 00D2 ??_Get_Alarm_Status 0072
__end_of_Set_Date 0E03 __size_of_Lcd_Clear 000B
__end_of_Set_Time 0DA2 __end_of_Set_Sqwe 0931
??_display_Digit 007A _Get_WeekDay 178B
?_I2C_Master_Start 0070 ??_display_Intro 0046
?_I2C_Master_Write 0028 ?_alarm 0072
??_I2C_Master_Start 0072 _ADCON0 001F
??_I2C_Master_Write 0079 _ADRESH 001E
_ADRESL 009E ___awdiv@dividend 0074
??_Lcd_Cmd 0073 __size_of_Lcd_Write_Char 0039
_SSPADD 0093 _TRISA0 0428
_TRISC3 043B _TRISC4 043C
_TRISC6 043E _TRISC7 043F
_SSPCON 0014 _SSPBUF 0013
___wmul 089D ??___awdiv 0076
??___awmod 0076 ??___lwdiv 0078
??___lwmod 0079 ?_Read_Alarms_Temp 0070
Adc_Read@channel 0072 alarm@i 0020
alarm@j 0022 ___awdiv@quotient 0022
___awmod@divisor 0072 ___awmod@counter 0077
_update 00D0 __end_of_Update_Current_Date_Time 1000
??_Read_Alarms_Temp 007A _edit_Date_Time 004C
__end_of_Vfd_Set_Brightness 08E0 saved_w 007E
Lcd_Set_Cursor@a 0020 Lcd_Set_Cursor@b 0076
Lcd_Set_Cursor@y 0022 Lcd_Set_Cursor@z 0021
__end_of__initialization 0048 __end_of_Lcd_Clear 177F
__pcstackCOMMON 0070 __pidataBANK0 1741
__pidataBANK1 087D __pidataBANK3 09B6
__end_of_alarm 0C4C __end_of_edit_Date_Time 0473
?_Adc_Init 0070 ?_Adc_Read 0072
__size_of_Set_DayOfWeek 002A _Lcd_Set_Cursor 0C97
_OPTION_REGbits 0081 _temperature_lsb 0059
_temperature_msb 0057 ?_Lcd_Init 0070
??_alarm 0074 ?_Lcd_Port 0070
_alarm1_min 00CC _alarm1_sec 00CE
_alarm2_min 00C8 __pbssBANK0 0057
__pbssBANK1 00C0 alarm@numberOfBeeps 0072
__end_of_format_Temperature 0A84 ?_Set_Date 0070
?_Set_Time 0070 ?_Set_Sqwe 002A
__pmaintext 05A0 ?___wmul 0072
__pintentry 0004 Set_DayOfWeek@dow 003C
?_edit_Date_Time 0070 ??_Adc_Init 0072
??_Adc_Read 0074 __size_of_Lcd_Write_String 0041
?_Get_Is_Leap_Year 002C __end_of_Lcd_Set_Cursor 0CE7
I2C_Master_Read@incoming 0076 ??_Get_Is_Leap_Year 002E
??_update_Display 0046 _Update_Current_Date_Time 0F10
??_Lcd_Init 0022 ??_Lcd_Port 0072
_SSPCON2 0091 Get_Days_In_Month@m 0033
Get_Days_In_Month@y 0031 _SSPSTAT 0094
__stringtab 0800 _BCD_2_DEC 08E0
_Lcd_Write_Char 0A84 _Lcd_Cmd 17E6
_Set_DayOfWeek 0931 ??_Set_Date 0079
_DEC_2_BCD 0A1A ??_Set_Time 0079
??_Set_Sqwe 0079 _brtlvl_chg 0067
display_Digit@data 002C ___awdiv 0CE7
___awmod 0C4C __size_of___wmul 0021
___lwdiv 0AFA ___lwmod 09E6
?_Lcd_Set_Cursor 0076 _century 00A0
__ptext1 0473 __ptext2 0C03
__ptext3 0A4E __ptext4 004C
__ptext5 0987 __ptext6 0D42
__ptext7 0931 __ptext8 0DA2
__ptext9 0A1A __size_of_isr 0010
?_Get_WeekDay 003C ___awmod@dividend 0074
__size_of_I2C_Master_Init 0012 __size_of_I2C_Master_Read 002C
_Get_Days_In_Month 07C5 __size_of_I2C_Master_Wait 0009
__size_of_I2C_Master_Stop 0007 edit_Date_Time@min_org 004D
clrloop0 1764 ?_Get_Days_In_Month 0031
edit_Date_Time@sec_org 0055 __size_of_Get_Alarm_Status 0020
__end_of_Lcd_Write_Char 0ABD end_of_initialization 0048
?_BCD_2_DEC 0078 ?_Set_DayOfWeek 003C
??_Get_Days_In_Month 0035 __size_of_I2C_Master_Start 0007
?_DEC_2_BCD 0024 __size_of_I2C_Master_Write 0008
Lcd_Port@a 0072 __size_of_Get_DayOfWeek 00A4
_alarm1_status 00C2 _alarm2_status 00C0
__size_of_display_Lcd_Layout 0047 __end_of_Get_Days_In_Month 07FF
_TRISBbits 0086 __end_of_display_Digit 09B6
__end_of_display_Intro 0BBC _Get_Is_Leap_Year$401 0030
__size_of_Read_Alarms_Temp 00FD ?_Lcd_Write_Char 0070
Lcd_Write_String@a 003F Lcd_Write_String@i 0044
_Vfd_Set_Brightness 08BE _status_reg 00C4
?_Vfd_Set_Brightness 0077 _Lcd_Clear 1774
BCD_2_DEC@to_convert 0078 __end_of___wmul 08BE
_Lcd_Write_String 0B38 __size_of_Adc_Init 000C
__size_of_Adc_Read 001D start_initialization 000F
??_Vfd_Set_Brightness 0020 __end_of_isr 17A9
_Get_DayOfWeek 0E6C ??_Set_DayOfWeek 007A
__size_of_Lcd_Init 0069 __size_of_Lcd_Port 001A
??_BCD_2_DEC 0020 ??_I2C_Master_Init 0076
??_I2C_Master_Read 0074 ??_I2C_Master_Wait 0072
??_I2C_Master_Stop 0072 ??_DEC_2_BCD 0026
??_edit_Date_Time 0046 __size_of_Set_Date 0061
?_Lcd_Clear 0070 __size_of_Set_Time 0060
??___wmul 0076 __size_of_Set_Sqwe 002A
init_fetch0 17A9 __pdataBANK0 0069
__pdataBANK1 00A0 __pdataBANK3 0190
Lcd_Write_Char@a 0076 ??_Update_Current_Date_Time 007A
Lcd_Write_Char@y 0075 _format_Temperature 0A4E
_alarm1_hour 00CA _alarm2_hour 00C6
__size_of_I2C_Master_Repeated_Start 0007 ?_I2C_Master_Repeated_Start 0070
__size_of_Get_Days_In_Month 003A __pbssCOMMON 007A
___latbits 0002 __pcstackBANK0 0020
__pcstackBANK1 00D2 ?_format_Temperature 0070
?_Get_DayOfWeek 002C __size_of_Get_WeekDay 000E
_Get_Alarm_Status 085D __size_of_Get_Is_Leap_Year 003D
?_Lcd_Cmd 0070 _dayOfWeek 00A4
_I2C_Master_Start 174D _I2C_Master_Write 175B
??_format_Temperature 0078 ___lwdiv@dividend 0022
??_Lcd_Set_Cursor 0077 ?___awdiv 0072
?___awmod 0072 ?___lwdiv 0020
?___lwmod 0027 _edit_datetime 0065
I2C_Master_Write@data 0028 __pstrings 0800
__end_of_I2C_Master_Repeated_Start 174D Get_Is_Leap_Year@y 002C
___lwdiv@quotient 0025 __size_of_alarm 0049
_Read_Alarms_Temp 06C8 interrupt_function 0004
___wmul@product 0076 clear_ram0 1763
Lcd_Cmd@a 0075 ??_Lcd_Clear 0076
_temp_sign 006D _Adc_Init 177F
_Adc_Read 0840 _ADCON0bits 001F
__stringbase 080F ___wmul@multiplier 0072
??_Lcd_Write_Char 0073 ??_Get_DayOfWeek 0032
_Lcd_Init 0E03 _Lcd_Port 17CC
_control_reg 005B edit_Date_Time@month_org 0051
__end_of_Lcd_Write_String 0B79 Get_WeekDay@d 003C
Vfd_Set_Brightness@level 0077 __size_of_update_Display 012D
__size_of_Lcd_Cmd 001A _Set_Date 0DA2
_Set_Time 0D42 _Set_Sqwe 0907
__end_of_display_Lcd_Layout 0C03 __size_of___awdiv 005B
__size_of___awmod 004B __size_of___lwdiv 003E
__size_of___lwmod 0034 __end_of__stringtab 0810
_I2C_Master_Init 17BA _I2C_Master_Read 095B
_I2C_Master_Wait 176B _I2C_Master_Stop 1754
___lwdiv@divisor 0020 Get_DayOfWeek@d 0030
Get_DayOfWeek@m 002E ___lwdiv@counter 0024
Get_DayOfWeek@y 002C __ptext10 0C4C
__ptext11 0CE7 __ptext20 0B38
__ptext12 178B __ptext21 0C97
__ptext13 07C5 __ptext30 095B
__ptext22 1774 __ptext14 0ABD
__ptext31 176B __ptext23 0F10
__ptext15 0E6C __ptext40 085D
__ptext32 08E0 __ptext24 0907
__ptext16 09E6 __ptext41 0840
__ptext33 089D __ptext25 06C8
__ptext17 0AFA __ptext42 177F
__ptext34 0E03 __ptext26 175B
__ptext18 0BBC __ptext43 1799
__ptext35 08BE __ptext27 1754
__ptext19 0B79 __ptext36 0A84
__ptext28 174D __ptext37 17E6
__ptext29 1746 __ptext38 17CC
__ptext39 17BA _Get_Is_Leap_Year 0ABD
__size_of_main 0128 edit_Date_Time@date_org 0053
__size_of_display_Digit 002F __end_of_Get_Alarm_Status 087D
__size_of_display_Intro 0043 edit_Date_Time@hour_org 004B
Set_Sqwe@contvalue 002A I2C_Master_Read@ack 0072
??_I2C_Master_Repeated_Start 0072 __end_of_I2C_Master_Start 1754
__end_of_I2C_Master_Write 1763 edit_Date_Time@year_org 004F
init_ram0 17AD __size_of_Vfd_Set_Brightness 0022
Lcd_Write_Char@temp 0074 intlevel1 0000
_monthOfYear 0190 __end_of_Set_DayOfWeek 095B
___lwmod@dividend 0029 stringcode 080A
__end_of_Read_Alarms_Temp 07C5 __end_of_I2C_Master_Init 17CC
__end_of_I2C_Master_Read 0987 __end_of_I2C_Master_Wait 1774
__end_of_I2C_Master_Stop 175B Lcd_Set_Cursor@temp 0023
??_Get_WeekDay 003E ___lwmod@divisor 0027
___lwmod@counter 002B stringdir 080A
stringtab 0800 _display_Digit 0987
_display_Intro 0B79 __size_of_Update_Current_Date_Time 00F0
?_Update_Current_Date_Time 0070 _update_Display 0473
_I2C_Master_Repeated_Start 1746 DEC_2_BCD@to_convert 0024
__size_of_format_Temperature 0036 __size_of_BCD_2_DEC 0027
|