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
|
gplink-0.13.4 alpha
Copyright (c) 1998-2005 gputils project
Listing File Generated: 6-13-2008 14:34:03
Address Value Disassembly Source
------- ----- ----------- ------
;--------------------------------------------------------
; File Created by SDCC : free open source ANSI-C Compiler
; Version 2.7.4 #4943 (Oct 27 2007) (UNIX)
; This file was generated Fri Jun 13 14:34:02 2008
;--------------------------------------------------------
; PIC port for the 14-bit core
;--------------------------------------------------------
; .module stepmotor1
list p=16f648a
radix dec
include "p16f648a.inc"
LIST
; P16F648A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
;--------------------------------------------------------
; config word
;--------------------------------------------------------
__config 0x3f10
;--------------------------------------------------------
; external declarations
;--------------------------------------------------------
extern _init2
extern _timerTick
extern _processCommand
extern _syncStrobe
extern _setPower
extern _flashLED
extern _LEDon
extern _setFlash
extern _uartTransmit
extern _sendReply
extern _sendMessage
extern _sendDataByte
extern _endMessage
extern _sendMessageISR
extern _sendDataByteISR
extern _endMessageISR
extern _releaseLock
extern _serialInterruptHandler
extern _packetReady
extern _uartNotifyReceive
extern _serial_init
extern _delay_10us
extern _clearwdt
extern _CCP1CON_bits
extern _CMCON_bits
extern _EECON1_bits
extern _INTCON_bits
extern _OPTION_REG_bits
extern _PCON_bits
extern _PIE1_bits
extern _PIR1_bits
extern _PORTA_bits
extern _PORTB_bits
extern _RCSTA_bits
extern _STATUS_bits
extern _T1CON_bits
extern _T2CON_bits
extern _TRISA_bits
extern _TRISB_bits
extern _TXSTA_bits
extern _VRCON_bits
extern _syncEnabled
extern _syncCounter
extern _buffer
extern _serialStatus
extern _INDF
extern _TMR0
extern _PCL
extern _STATUS
extern _FSR
extern _PORTA
extern _PORTB
extern _PCLATH
extern _INTCON
extern _PIR1
extern _TMR1L
extern _TMR1H
extern _T1CON
extern _TMR2
extern _T2CON
extern _CCPR1L
extern _CCPR1H
extern _CCP1CON
extern _RCSTA
extern _TXREG
extern _RCREG
extern _CMCON
extern _OPTION_REG
extern _TRISA
extern _TRISB
extern _PIE1
extern _PCON
extern _PR2
extern _TXSTA
extern _SPBRG
extern _EEDATA
extern _EEADR
extern _EECON1
extern _EECON2
extern _VRCON
extern ___sdcc_saved_fsr
extern __sdcc_gsinit_startup
;--------------------------------------------------------
; global declarations
;--------------------------------------------------------
global _init1
global _main
global _deviceAddress
global PSAVE
global SSAVE
global WSAVE
global STK12
global STK11
global STK10
global STK09
global STK08
global STK07
global STK06
global STK05
global STK04
global STK03
global STK02
global STK01
global STK00
sharebank udata_ovr 0x0070
PSAVE res 1
SSAVE res 1
WSAVE res 1
STK12 res 1
STK11 res 1
STK10 res 1
STK09 res 1
STK08 res 1
STK07 res 1
STK06 res 1
STK05 res 1
STK04 res 1
STK03 res 1
STK02 res 1
STK01 res 1
STK00 res 1
;--------------------------------------------------------
; global definitions
;--------------------------------------------------------
;--------------------------------------------------------
; absolute symbol definitions
;--------------------------------------------------------
;--------------------------------------------------------
; compiler-defined variables
;--------------------------------------------------------
UDL_stepmotor1_0 udata
r0x1001 res 1
r0x1002 res 1
;--------------------------------------------------------
; initialized data
;--------------------------------------------------------
ID_stepmotor1_0 idata
_deviceAddress
db 0x04
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
; udata_ovr
;--------------------------------------------------------
; reset vector
;--------------------------------------------------------
STARTUP code
000000 0000 nop nop
000001 118a bcf 0xa, 0x3 pagesel __sdcc_gsinit_startup
000002 2d7d goto 0x57d goto __sdcc_gsinit_startup
;--------------------------------------------------------
; interrupt and initialization code
;--------------------------------------------------------
c_interrupt code 0x4
__sdcc_interrupt
;***
; pBlock Stats: dbName = I
;***
;entry: _isr ;Function start
; 0 exit points
;functions called:
; _serialInterruptHandler
; _timerTick
; _serialInterruptHandler
; _timerTick
;; Starting pCode block
_isr ;Function start
; 0 exit points
; .line 48; "stepmotor1.c" static void isr() interrupt 0 {
000004 00f2 movwf 0x72 MOVWF WSAVE
000005 0e03 swapf 0x3, w SWAPF STATUS,W
000006 0183 clrf 0x3 CLRF STATUS
000007 00f1 movwf 0x71 MOVWF SSAVE
000008 080a movf 0xa, w MOVF PCLATH,W
000009 018a clrf 0xa CLRF PCLATH
00000a 00f0 movwf 0x70 MOVWF PSAVE
00000b 0804 movf 0x4, w MOVF FSR,W
00000c 1683 bsf 0x3, 0x5 BANKSEL ___sdcc_saved_fsr
00000d 1303 bcf 0x3, 0x6
00000e 00d6 movwf 0x56 MOVWF ___sdcc_saved_fsr
; .line 49; "stepmotor1.c" serialInterruptHandler();
00000f 158a bsf 0xa, 0x3 PAGESEL _serialInterruptHandler
000010 2000 call 0 CALL _serialInterruptHandler
000011 118a bcf 0xa, 0x3 PAGESEL $
; .line 51; "stepmotor1.c" if (TMR1IF) {
000012 1283 bcf 0x3, 0x5 BANKSEL _PIR1_bits
000013 1303 bcf 0x3, 0x6
000014 1c0c btfss 0xc, 0 BTFSS _PIR1_bits,0
000015 281c goto 0x1c GOTO _00107_DS_
; .line 52; "stepmotor1.c" timerTick();
000016 118a bcf 0xa, 0x3 PAGESEL _timerTick
000017 225b call 0x25b CALL _timerTick
000018 118a bcf 0xa, 0x3 PAGESEL $
; .line 53; "stepmotor1.c" TMR1IF = 0;
000019 1283 bcf 0x3, 0x5 BANKSEL _PIR1_bits
00001a 1303 bcf 0x3, 0x6
00001b 100c bcf 0xc, 0 BCF _PIR1_bits,0
_00107_DS_
00001c 1683 bsf 0x3, 0x5 BANKSEL ___sdcc_saved_fsr
00001d 1303 bcf 0x3, 0x6
00001e 0856 movf 0x56, w MOVF ___sdcc_saved_fsr,W
00001f 0084 movwf 0x4 MOVWF FSR
000020 0870 movf 0x70, w MOVF PSAVE,W
000021 008a movwf 0xa MOVWF PCLATH
000022 0183 clrf 0x3 CLRF STATUS
000023 0e71 swapf 0x71, w SWAPF SSAVE,W
000024 0083 movwf 0x3 MOVWF STATUS
000025 0ef2 swapf 0x72, f SWAPF WSAVE,F
000026 0e72 swapf 0x72, w SWAPF WSAVE,W
END_OF_INTERRUPT
000027 0009 retfie RETFIE
;--------------------------------------------------------
; code
;--------------------------------------------------------
code_stepmotor1 code
;***
; pBlock Stats: dbName = M
;***
;entry: _main ;Function start
; 2 exit points
;has an exit
;functions called:
; _init1
; _init2
; _serial_init
; _uartTransmit
; _packetReady
; _processCommand
; _releaseLock
; _syncStrobe
; _clearwdt
; _init1
; _init2
; _serial_init
; _uartTransmit
; _packetReady
; _processCommand
; _releaseLock
; _syncStrobe
; _clearwdt
;2 compiler assigned registers:
; r0x1001
; r0x1002
;; Starting pCode block
_main ;Function start
; 2 exit points
; .line 123; "stepmotor1.c" byte syncEnabled = 0;
000611 1683 bsf 0x3, 0x5 BANKSEL r0x1001
000612 1303 bcf 0x3, 0x6
000613 01cc clrf 0x4c CLRF r0x1001
; .line 125; "stepmotor1.c" init1();
000614 2650 call 0x650 CALL _init1
; .line 126; "stepmotor1.c" init2();
000615 118a bcf 0xa, 0x3 PAGESEL _init2
000616 2560 call 0x560 CALL _init2
000617 118a bcf 0xa, 0x3 PAGESEL $
; .line 127; "stepmotor1.c" serial_init();
000618 158a bsf 0xa, 0x3 PAGESEL _serial_init
000619 23e6 call 0x3e6 CALL _serial_init
00061a 118a bcf 0xa, 0x3 PAGESEL $
; .line 130; "stepmotor1.c" GIE=0;
00061b 1283 bcf 0x3, 0x5 BANKSEL _INTCON_bits
00061c 1303 bcf 0x3, 0x6
00061d 138b bcf 0xb, 0x7 BCF _INTCON_bits,7
; .line 131; "stepmotor1.c" uartTransmit(0);
00061e 3000 movlw 0 MOVLW 0x00
00061f 158a bsf 0xa, 0x3 PAGESEL _uartTransmit
000620 2164 call 0x164 CALL _uartTransmit
000621 118a bcf 0xa, 0x3 PAGESEL $
; .line 132; "stepmotor1.c" GIE=1;
000622 1283 bcf 0x3, 0x5 BANKSEL _INTCON_bits
000623 1303 bcf 0x3, 0x6
000624 178b bsf 0xb, 0x7 BSF _INTCON_bits,7
; .line 134; "stepmotor1.c" if (SYNCA) // Only enable if SYNCA is by default high
000625 1c85 btfss 0x5, 0x1 BTFSS _PORTA_bits,1
000626 2e2b goto 0x62b GOTO _00127_DS_
; .line 135; "stepmotor1.c" syncEnabled = 1;
000627 3001 movlw 0x1 MOVLW 0x01
000628 1683 bsf 0x3, 0x5 BANKSEL r0x1001
000629 1303 bcf 0x3, 0x6
00062a 00cc movwf 0x4c MOVWF r0x1001
_00127_DS_
; .line 138; "stepmotor1.c" if (packetReady()) {
00062b 158a bsf 0xa, 0x3 PAGESEL _packetReady
00062c 20b1 call 0xb1 CALL _packetReady
00062d 118a bcf 0xa, 0x3 PAGESEL $
00062e 1683 bsf 0x3, 0x5 BANKSEL r0x1002
00062f 1303 bcf 0x3, 0x6
000630 00cd movwf 0x4d MOVWF r0x1002
000631 084d movf 0x4d, w MOVF r0x1002,W
000632 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000633 2e3a goto 0x63a GOTO _00119_DS_
; .line 139; "stepmotor1.c" processCommand();
000634 118a bcf 0xa, 0x3 PAGESEL _processCommand
000635 2028 call 0x28 CALL _processCommand
000636 118a bcf 0xa, 0x3 PAGESEL $
; .line 140; "stepmotor1.c" releaseLock();
000637 158a bsf 0xa, 0x3 PAGESEL _releaseLock
000638 2123 call 0x123 CALL _releaseLock
000639 118a bcf 0xa, 0x3 PAGESEL $
_00119_DS_
; .line 142; "stepmotor1.c" if (syncEnabled && !SYNCA) {
00063a 3000 movlw 0 MOVLW 0x00
00063b 1683 bsf 0x3, 0x5 BANKSEL r0x1001
00063c 1303 bcf 0x3, 0x6
00063d 044c iorwf 0x4c, w IORWF r0x1001,W
00063e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00063f 2e4b goto 0x64b GOTO _00124_DS_
000640 1283 bcf 0x3, 0x5 BANKSEL _PORTA_bits
000641 1303 bcf 0x3, 0x6
000642 1885 btfsc 0x5, 0x1 BTFSC _PORTA_bits,1
000643 2e4b goto 0x64b GOTO _00124_DS_
_00120_DS_
; .line 145; "stepmotor1.c" while(!SYNCA)
000644 1283 bcf 0x3, 0x5 BANKSEL _PORTA_bits
000645 1303 bcf 0x3, 0x6
000646 1c85 btfss 0x5, 0x1 BTFSS _PORTA_bits,1
000647 2e44 goto 0x644 GOTO _00120_DS_
; .line 147; "stepmotor1.c" syncStrobe();
000648 118a bcf 0xa, 0x3 PAGESEL _syncStrobe
000649 2237 call 0x237 CALL _syncStrobe
00064a 118a bcf 0xa, 0x3 PAGESEL $
_00124_DS_
; .line 149; "stepmotor1.c" clearwdt();
00064b 118a bcf 0xa, 0x3 PAGESEL _clearwdt
00064c 26fb call 0x6fb CALL _clearwdt
00064d 118a bcf 0xa, 0x3 PAGESEL $
00064e 2e2b goto 0x62b GOTO _00127_DS_
00064f 0008 return RETURN
; exit point of _main
;***
; pBlock Stats: dbName = C
;***
;entry: _init1 ;Function start
; 2 exit points
;has an exit
;; Starting pCode block
_init1 ;Function start
; 2 exit points
; .line 60; "stepmotor1.c" OPTION_REG = BIN(01011111); // Disable TMR0 on RA4, 1:128 WDT, pullups on
000650 305f movlw 0x5f MOVLW 0x5f
000651 1683 bsf 0x3, 0x5 BANKSEL _OPTION_REG
000652 1303 bcf 0x3, 0x6
000653 0081 movwf 0x1 MOVWF _OPTION_REG
; .line 61; "stepmotor1.c" CMCON = 0xff; // Comparator module defaults
000654 30ff movlw 0xff MOVLW 0xff
000655 1283 bcf 0x3, 0x5 BANKSEL _CMCON
000656 1303 bcf 0x3, 0x6
000657 009f movwf 0x1f MOVWF _CMCON
; .line 63; "stepmotor1.c" TRISA = BIN(00101010); // Port A outputs except 1,3 (sync) and 5 (Max)
000658 302a movlw 0x2a MOVLW 0x2a
000659 1683 bsf 0x3, 0x5 BANKSEL _TRISA
00065a 1303 bcf 0x3, 0x6
00065b 0085 movwf 0x5 MOVWF _TRISA
; .line 72; "stepmotor1.c" TRISB = BIN(00000011); // Port B 0,1 input, 2-7 outputs
00065c 3003 movlw 0x3 MOVLW 0x03
00065d 0086 movwf 0x6 MOVWF _TRISB
; .line 89; "stepmotor1.c" PIE1 = BIN(00000000); // All peripheral interrupts initially disabled
00065e 018c clrf 0xc CLRF _PIE1
; .line 90; "stepmotor1.c" INTCON = BIN(00000000); // Interrupts disabled
00065f 1283 bcf 0x3, 0x5 BANKSEL _INTCON
000660 1303 bcf 0x3, 0x6
000661 018b clrf 0xb CLRF _INTCON
; .line 91; "stepmotor1.c" PIR1 = 0; // Clear peripheral interrupt flags
000662 018c clrf 0xc CLRF _PIR1
; .line 92; "stepmotor1.c" SPBRG = 12; // 12 = 19200 (actually 19230) baud @ 4MHz
000663 300c movlw 0xc MOVLW 0x0c
000664 1683 bsf 0x3, 0x5 BANKSEL _SPBRG
000665 1303 bcf 0x3, 0x6
000666 0099 movwf 0x19 MOVWF _SPBRG
; .line 94; "stepmotor1.c" TXSTA = BIN(00000100); // 8 bit high speed
000667 3004 movlw 0x4 MOVLW 0x04
000668 0098 movwf 0x18 MOVWF _TXSTA
; .line 95; "stepmotor1.c" RCSTA = BIN(10000000); // Enable port for 8 bit receive
000669 3080 movlw 0x80 MOVLW 0x80
00066a 1283 bcf 0x3, 0x5 BANKSEL _RCSTA
00066b 1303 bcf 0x3, 0x6
00066c 0098 movwf 0x18 MOVWF _RCSTA
; .line 97; "stepmotor1.c" PORTB = PULLUPS; // Turn on pullups for B0,3
00066d 3001 movlw 0x1 MOVLW 0x01
00066e 0086 movwf 0x6 MOVWF _PORTB
; .line 99; "stepmotor1.c" RCIE = 1; // Enable receive interrupts
00066f 1683 bsf 0x3, 0x5 BANKSEL _PIE1_bits
000670 1303 bcf 0x3, 0x6
000671 168c bsf 0xc, 0x5 BSF _PIE1_bits,5
; .line 100; "stepmotor1.c" CREN = 1; // Start reception
000672 1283 bcf 0x3, 0x5 BANKSEL _RCSTA_bits
000673 1303 bcf 0x3, 0x6
000674 1618 bsf 0x18, 0x4 BSF _RCSTA_bits,4
; .line 102; "stepmotor1.c" TXEN = 1; // Enable transmit
000675 1683 bsf 0x3, 0x5 BANKSEL _TXSTA_bits
000676 1303 bcf 0x3, 0x6
000677 1698 bsf 0x18, 0x5 BSF _TXSTA_bits,5
; .line 103; "stepmotor1.c" PEIE = 1; // Peripheral interrupts on
000678 1283 bcf 0x3, 0x5 BANKSEL _INTCON_bits
000679 1303 bcf 0x3, 0x6
00067a 170b bsf 0xb, 0x6 BSF _INTCON_bits,6
; .line 104; "stepmotor1.c" GIE = 1; // Now turn on interrupts
00067b 178b bsf 0xb, 0x7 BSF _INTCON_bits,7
; .line 106; "stepmotor1.c" PORTB = 0;
00067c 0186 clrf 0x6 CLRF _PORTB
; .line 107; "stepmotor1.c" PORTA = 0;
00067d 0185 clrf 0x5 CLRF _PORTA
; .line 109; "stepmotor1.c" TMR1IE = 0;
00067e 1683 bsf 0x3, 0x5 BANKSEL _PIE1_bits
00067f 1303 bcf 0x3, 0x6
000680 100c bcf 0xc, 0 BCF _PIE1_bits,0
; .line 111; "stepmotor1.c" TMR2 = 0;
000681 1283 bcf 0x3, 0x5 BANKSEL _TMR2
000682 1303 bcf 0x3, 0x6
000683 0191 clrf 0x11 CLRF _TMR2
; .line 112; "stepmotor1.c" CCPR1L = 4; // Default power-up current limiting (25%)
000684 3004 movlw 0x4 MOVLW 0x04
000685 0095 movwf 0x15 MOVWF _CCPR1L
; .line 113; "stepmotor1.c" PR2 = 16;
000686 3010 movlw 0x10 MOVLW 0x10
000687 1683 bsf 0x3, 0x5 BANKSEL _PR2
000688 1303 bcf 0x3, 0x6
000689 0092 movwf 0x12 MOVWF _PR2
; .line 114; "stepmotor1.c" CCP1CON = BIN(00001100); // PWM mode
00068a 300c movlw 0xc MOVLW 0x0c
00068b 1283 bcf 0x3, 0x5 BANKSEL _CCP1CON
00068c 1303 bcf 0x3, 0x6
00068d 0097 movwf 0x17 MOVWF _CCP1CON
; .line 115; "stepmotor1.c" T2CON = BIN(00000100); // Start timer 1:1 prescale, 1:1 postscale
00068e 3004 movlw 0x4 MOVLW 0x04
00068f 0092 movwf 0x12 MOVWF _T2CON
; .line 117; "stepmotor1.c" T1CON = BIN(00000000); // Timer 1 in clock mode with 1:1 scale
000690 0190 clrf 0x10 CLRF _T1CON
; .line 118; "stepmotor1.c" TMR1IE = 1; // Enable timer interrupt
000691 1683 bsf 0x3, 0x5 BANKSEL _PIE1_bits
000692 1303 bcf 0x3, 0x6
000693 140c bsf 0xc, 0 BSF _PIE1_bits,0
000694 0008 return RETURN
; exit point of _init1
; code size estimation:
; 94+ 47 = 141 instructions ( 376 byte)
end
;--------------------------------------------------------
; File Created by SDCC : free open source ANSI-C Compiler
; Version 2.7.4 #4943 (Oct 27 2007) (UNIX)
; This file was generated Fri Jun 13 14:34:02 2008
;--------------------------------------------------------
; PIC port for the 14-bit core
;--------------------------------------------------------
; .module stepmotor2
list p=16f648a
radix dec
include "p16f648a.inc"
LIST
; P16F648A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
;--------------------------------------------------------
; external declarations
;--------------------------------------------------------
extern _flashLED
extern _LEDon
extern _setFlash
extern _uartTransmit
extern _sendReply
extern _sendMessage
extern _sendDataByte
extern _endMessage
extern _sendMessageISR
extern _sendDataByteISR
extern _endMessageISR
extern _releaseLock
extern _serialInterruptHandler
extern _packetReady
extern _uartNotifyReceive
extern _serial_init
extern _delay_10us
extern _clearwdt
extern _CCP1CON_bits
extern _CMCON_bits
extern _EECON1_bits
extern _INTCON_bits
extern _OPTION_REG_bits
extern _PCON_bits
extern _PIE1_bits
extern _PIR1_bits
extern _PORTA_bits
extern _PORTB_bits
extern _RCSTA_bits
extern _STATUS_bits
extern _T1CON_bits
extern _T2CON_bits
extern _TRISA_bits
extern _TRISB_bits
extern _TXSTA_bits
extern _VRCON_bits
extern _syncEnabled
extern _syncCounter
extern _buffer
extern _serialStatus
extern _INDF
extern _TMR0
extern _PCL
extern _STATUS
extern _FSR
extern _PORTA
extern _PORTB
extern _PCLATH
extern _INTCON
extern _PIR1
extern _TMR1L
extern _TMR1H
extern _T1CON
extern _TMR2
extern _T2CON
extern _CCPR1L
extern _CCPR1H
extern _CCP1CON
extern _RCSTA
extern _TXREG
extern _RCREG
extern _CMCON
extern _OPTION_REG
extern _TRISA
extern _TRISB
extern _PIE1
extern _PCON
extern _PR2
extern _TXSTA
extern _SPBRG
extern _EEDATA
extern _EEADR
extern _EECON1
extern _EECON2
extern _VRCON
extern PSAVE
extern SSAVE
extern WSAVE
extern STK12
extern STK11
extern STK10
extern STK09
extern STK08
extern STK07
extern STK06
extern STK05
extern STK04
extern STK03
extern STK02
extern STK01
extern STK00
;--------------------------------------------------------
; global declarations
;--------------------------------------------------------
global _processCommand
global _setPower
global _syncStrobe
global _timerTick
global _init2
global _motor_stop
global _motor_click
global _forward1
global _reverse1
global _setTimer
global _strobe_sync
;--------------------------------------------------------
; global definitions
;--------------------------------------------------------
;--------------------------------------------------------
; absolute symbol definitions
;--------------------------------------------------------
;--------------------------------------------------------
; compiler-defined variables
;--------------------------------------------------------
UDL_stepmotor2_0 udata
r0x1017 res 1
r0x1015 res 1
r0x1016 res 1
r0x1022 res 1
r0x101D res 1
r0x101E res 1
r0x101F res 1
r0x1020 res 1
r0x1021 res 1
r0x1019 res 1
r0x101A res 1
r0x101B res 1
r0x101C res 1
r0x1011 res 1
r0x1014 res 1
_currentPosition res 2
_seekPosition res 2
_maxPosition res 2
_dda_error res 2
_dda_deltay res 2
_dda_deltax res 2
;--------------------------------------------------------
; initialized data
;--------------------------------------------------------
ID_stepmotor2_0 idata
_coilPosition
db 0x00
ID_stepmotor2_1 idata
_function
db 0x00
ID_stepmotor2_2 idata
_speed
db 0x00
ID_stepmotor2_3 idata
_seekNotify
db 0xff
ID_stepmotor2_4 idata
_sync_mode
db 0x00
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
; udata_ovr
;--------------------------------------------------------
; code
;--------------------------------------------------------
code_stepmotor2 code
;***
; pBlock Stats: dbName = C
;***
;entry: _processCommand ;Function start
; 2 exit points
;has an exit
;functions called:
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _sendReply
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _setTimer
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _motor_stop
; _setTimer
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _forward1
; _reverse1
; _setPower
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _sendReply
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _setTimer
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _motor_stop
; _setTimer
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
; _forward1
; _reverse1
; _setPower
; _sendReply
; _sendDataByte
; _sendDataByte
; _sendDataByte
; _endMessage
; _setTimer
;4 compiler assigned registers:
; r0x1011
; r0x1012
; r0x1013
; r0x1014
;; Starting pCode block
_processCommand ;Function start
; 2 exit points
; .line 577; "stepmotor2.c" switch(buffer[0]) {
000028 1283 bcf 0x3, 0x5 BANKSEL _buffer
000029 1303 bcf 0x3, 0x6
00002a 085f movf 0x5f, w MOVF (_buffer + 0),W
00002b 1283 bcf 0x3, 0x5 BANKSEL r0x1011
00002c 1303 bcf 0x3, 0x6
00002d 00d1 movwf 0x51 MOVWF r0x1011
00002e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00002f 2879 goto 0x79 GOTO _00283_DS_
000030 0851 movf 0x51, w MOVF r0x1011,W
000031 3a01 xorlw 0x1 XORLW 0x01
000032 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000033 28dc goto 0xdc GOTO _00295_DS_
000034 0851 movf 0x51, w MOVF r0x1011,W
000035 3a02 xorlw 0x2 XORLW 0x02
000036 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000037 28e8 goto 0xe8 GOTO _00296_DS_
000038 0851 movf 0x51, w MOVF r0x1011,W
000039 3a03 xorlw 0x3 XORLW 0x03
00003a 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00003b 28f4 goto 0xf4 GOTO _00297_DS_
00003c 0851 movf 0x51, w MOVF r0x1011,W
00003d 3a04 xorlw 0x4 XORLW 0x04
00003e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00003f 2907 goto 0x107 GOTO _00298_DS_
000040 0851 movf 0x51, w MOVF r0x1011,W
000041 3a05 xorlw 0x5 XORLW 0x05
000042 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000043 2924 goto 0x124 GOTO _00299_DS_
000044 0851 movf 0x51, w MOVF r0x1011,W
000045 3a06 xorlw 0x6 XORLW 0x06
000046 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000047 294d goto 0x14d GOTO _00303_DS_
000048 0851 movf 0x51, w MOVF r0x1011,W
000049 3a07 xorlw 0x7 XORLW 0x07
00004a 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00004b 2952 goto 0x152 GOTO _00304_DS_
00004c 0851 movf 0x51, w MOVF r0x1011,W
00004d 3a08 xorlw 0x8 XORLW 0x08
00004e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00004f 2959 goto 0x159 GOTO _00305_DS_
000050 0851 movf 0x51, w MOVF r0x1011,W
000051 3a09 xorlw 0x9 XORLW 0x09
000052 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000053 2960 goto 0x160 GOTO _00306_DS_
000054 0851 movf 0x51, w MOVF r0x1011,W
000055 3a0a xorlw 0xa XORLW 0x0a
000056 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000057 296c goto 0x16c GOTO _00307_DS_
000058 0851 movf 0x51, w MOVF r0x1011,W
000059 3a0b xorlw 0xb XORLW 0x0b
00005a 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00005b 2989 goto 0x189 GOTO _00308_DS_
00005c 0851 movf 0x51, w MOVF r0x1011,W
00005d 3a0c xorlw 0xc XORLW 0x0c
00005e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00005f 29eb goto 0x1eb GOTO _00311_DS_
000060 0851 movf 0x51, w MOVF r0x1011,W
000061 3a0d xorlw 0xd XORLW 0x0d
000062 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000063 29ed goto 0x1ed GOTO _00312_DS_
000064 0851 movf 0x51, w MOVF r0x1011,W
000065 3a0e xorlw 0xe XORLW 0x0e
000066 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000067 29ef goto 0x1ef GOTO _00313_DS_
000068 0851 movf 0x51, w MOVF r0x1011,W
000069 3a0f xorlw 0xf XORLW 0x0f
00006a 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00006b 29f7 goto 0x1f7 GOTO _00314_DS_
00006c 0851 movf 0x51, w MOVF r0x1011,W
00006d 3a10 xorlw 0x10 XORLW 0x10
00006e 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00006f 2a0e goto 0x20e GOTO _00315_DS_
000070 0851 movf 0x51, w MOVF r0x1011,W
000071 3afe xorlw 0xfe XORLW 0xfe
000072 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000073 288c goto 0x8c GOTO _00284_DS_
000074 0851 movf 0x51, w MOVF r0x1011,W
000075 3aff xorlw 0xff XORLW 0xff
000076 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000077 28cd goto 0xcd GOTO _00294_DS_
000078 2a19 goto 0x219 GOTO _00316_DS_
_00283_DS_
; .line 579; "stepmotor2.c" sendReply();
000079 158a bsf 0xa, 0x3 PAGESEL _sendReply
00007a 20cd call 0xcd CALL _sendReply
00007b 118a bcf 0xa, 0x3 PAGESEL $
; .line 580; "stepmotor2.c" sendDataByte(CMD_VERSION); // Response type 0
00007c 3000 movlw 0 MOVLW 0x00
00007d 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
00007e 212f call 0x12f CALL _sendDataByte
00007f 118a bcf 0xa, 0x3 PAGESEL $
; .line 581; "stepmotor2.c" sendDataByte(MAJOR_VERSION_NUMBER);
000080 3001 movlw 0x1 MOVLW 0x01
000081 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000082 212f call 0x12f CALL _sendDataByte
000083 118a bcf 0xa, 0x3 PAGESEL $
; .line 582; "stepmotor2.c" sendDataByte(MINOR_VERSION_NUMBER);
000084 3000 movlw 0 MOVLW 0x00
000085 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000086 212f call 0x12f CALL _sendDataByte
000087 118a bcf 0xa, 0x3 PAGESEL $
; .line 583; "stepmotor2.c" endMessage();
000088 158a bsf 0xa, 0x3 PAGESEL _endMessage
000089 2039 call 0x39 CALL _endMessage
00008a 118a bcf 0xa, 0x3 PAGESEL $
; .line 584; "stepmotor2.c" break;
00008b 2a19 goto 0x219 GOTO _00316_DS_
_00284_DS_
; .line 587; "stepmotor2.c" sendReply();
00008c 158a bsf 0xa, 0x3 PAGESEL _sendReply
00008d 20cd call 0xcd CALL _sendReply
00008e 118a bcf 0xa, 0x3 PAGESEL $
; .line 588; "stepmotor2.c" sendDataByte(CMD_CHECKHOSTVERSION);
00008f 30fe movlw 0xfe MOVLW 0xfe
000090 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000091 212f call 0x12f CALL _sendDataByte
000092 118a bcf 0xa, 0x3 PAGESEL $
; .line 589; "stepmotor2.c" if(buffer[1] > OLDHOST_MAJOR_VERSION_NUMBER)
000093 1283 bcf 0x3, 0x5 BANKSEL _buffer
000094 1303 bcf 0x3, 0x6
000095 0860 movf 0x60, w MOVF (_buffer + 1),W
000096 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000097 1303 bcf 0x3, 0x6
000098 00d1 movwf 0x51 MOVWF r0x1011
000099 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00009a 28a0 goto 0xa0 GOTO _00292_DS_
; .line 590; "stepmotor2.c" sendDataByte(0xff);
00009b 30ff movlw 0xff MOVLW 0xff
00009c 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
00009d 212f call 0x12f CALL _sendDataByte
00009e 118a bcf 0xa, 0x3 PAGESEL $
00009f 28c1 goto 0xc1 GOTO _00293_DS_
_00292_DS_
; .line 591; "stepmotor2.c" else if (buffer[1] == OLDHOST_MAJOR_VERSION_NUMBER)
0000a0 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000a1 1303 bcf 0x3, 0x6
0000a2 0860 movf 0x60, w MOVF (_buffer + 1),W
0000a3 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0000a4 1303 bcf 0x3, 0x6
0000a5 00d1 movwf 0x51 MOVWF r0x1011
0000a6 0851 movf 0x51, w MOVF r0x1011,W
0000a7 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0000a8 28bd goto 0xbd GOTO _00289_DS_
; .line 593; "stepmotor2.c" if (buffer[2] >= OLDHOST_MINOR_VERSION_NUMBER)
0000a9 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000aa 1303 bcf 0x3, 0x6
0000ab 0861 movf 0x61, w MOVF (_buffer + 2),W
0000ac 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0000ad 1303 bcf 0x3, 0x6
0000ae 00d1 movwf 0x51 MOVWF r0x1011
;unsigned compare: left < lit(0x8=8), size=1
0000af 3008 movlw 0x8 MOVLW 0x08
0000b0 0251 subwf 0x51, w SUBWF r0x1011,W
0000b1 1c03 btfss 0x3, 0 BTFSS STATUS,0
0000b2 28b8 goto 0xb8 GOTO _00286_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
; .line 594; "stepmotor2.c" sendDataByte(0xff);
0000b3 30ff movlw 0xff MOVLW 0xff
0000b4 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000b5 212f call 0x12f CALL _sendDataByte
0000b6 118a bcf 0xa, 0x3 PAGESEL $
0000b7 28c1 goto 0xc1 GOTO _00293_DS_
_00286_DS_
; .line 596; "stepmotor2.c" sendDataByte(0);
0000b8 3000 movlw 0 MOVLW 0x00
0000b9 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000ba 212f call 0x12f CALL _sendDataByte
0000bb 118a bcf 0xa, 0x3 PAGESEL $
0000bc 28c1 goto 0xc1 GOTO _00293_DS_
_00289_DS_
; .line 598; "stepmotor2.c" sendDataByte(0);
0000bd 3000 movlw 0 MOVLW 0x00
0000be 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000bf 212f call 0x12f CALL _sendDataByte
0000c0 118a bcf 0xa, 0x3 PAGESEL $
_00293_DS_
; .line 599; "stepmotor2.c" sendDataByte(OLDHOST_MAJOR_VERSION_NUMBER);
0000c1 3000 movlw 0 MOVLW 0x00
0000c2 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000c3 212f call 0x12f CALL _sendDataByte
0000c4 118a bcf 0xa, 0x3 PAGESEL $
; .line 600; "stepmotor2.c" sendDataByte(OLDHOST_MINOR_VERSION_NUMBER);
0000c5 3008 movlw 0x8 MOVLW 0x08
0000c6 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000c7 212f call 0x12f CALL _sendDataByte
0000c8 118a bcf 0xa, 0x3 PAGESEL $
; .line 601; "stepmotor2.c" endMessage();
0000c9 158a bsf 0xa, 0x3 PAGESEL _endMessage
0000ca 2039 call 0x39 CALL _endMessage
0000cb 118a bcf 0xa, 0x3 PAGESEL $
; .line 602; "stepmotor2.c" break;
0000cc 2a19 goto 0x219 GOTO _00316_DS_
_00294_DS_
; .line 605; "stepmotor2.c" sendReply();
0000cd 158a bsf 0xa, 0x3 PAGESEL _sendReply
0000ce 20cd call 0xcd CALL _sendReply
0000cf 118a bcf 0xa, 0x3 PAGESEL $
; .line 606; "stepmotor2.c" sendDataByte(CMD_GETMODULETYPE);
0000d0 30ff movlw 0xff MOVLW 0xff
0000d1 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000d2 212f call 0x12f CALL _sendDataByte
0000d3 118a bcf 0xa, 0x3 PAGESEL $
; .line 607; "stepmotor2.c" sendDataByte(LINEAR_AXIS_TYPE);
0000d4 3000 movlw 0 MOVLW 0x00
0000d5 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0000d6 212f call 0x12f CALL _sendDataByte
0000d7 118a bcf 0xa, 0x3 PAGESEL $
; .line 608; "stepmotor2.c" endMessage();
0000d8 158a bsf 0xa, 0x3 PAGESEL _endMessage
0000d9 2039 call 0x39 CALL _endMessage
0000da 118a bcf 0xa, 0x3 PAGESEL $
; .line 609; "stepmotor2.c" break;
0000db 2a19 goto 0x219 GOTO _00316_DS_
_00295_DS_
; .line 613; "stepmotor2.c" function = func_forward;
0000dc 3001 movlw 0x1 MOVLW 0x01
0000dd 1683 bsf 0x3, 0x5 BANKSEL _function
0000de 1303 bcf 0x3, 0x6
0000df 00d0 movwf 0x50 MOVWF _function
; .line 614; "stepmotor2.c" setTimer(buffer[1]);
0000e0 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000e1 1303 bcf 0x3, 0x6
0000e2 0860 movf 0x60, w MOVF (_buffer + 1),W
0000e3 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0000e4 1303 bcf 0x3, 0x6
0000e5 00d1 movwf 0x51 MOVWF r0x1011
0000e6 247f call 0x47f CALL _setTimer
; .line 615; "stepmotor2.c" break;
0000e7 2a19 goto 0x219 GOTO _00316_DS_
_00296_DS_
; .line 619; "stepmotor2.c" function = func_reverse;
0000e8 3002 movlw 0x2 MOVLW 0x02
0000e9 1683 bsf 0x3, 0x5 BANKSEL _function
0000ea 1303 bcf 0x3, 0x6
0000eb 00d0 movwf 0x50 MOVWF _function
; .line 620; "stepmotor2.c" setTimer(buffer[1]);
0000ec 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000ed 1303 bcf 0x3, 0x6
0000ee 0860 movf 0x60, w MOVF (_buffer + 1),W
0000ef 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0000f0 1303 bcf 0x3, 0x6
0000f1 00d1 movwf 0x51 MOVWF r0x1011
0000f2 247f call 0x47f CALL _setTimer
; .line 621; "stepmotor2.c" break;
0000f3 2a19 goto 0x219 GOTO _00316_DS_
_00297_DS_
; .line 625; "stepmotor2.c" currentPosition.bytes[0] = buffer[1];
0000f4 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000f5 1303 bcf 0x3, 0x6
0000f6 0860 movf 0x60, w MOVF (_buffer + 1),W
0000f7 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0000f8 1303 bcf 0x3, 0x6
0000f9 00d1 movwf 0x51 MOVWF r0x1011
0000fa 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0000fb 1303 bcf 0x3, 0x6
0000fc 00d3 movwf 0x53 MOVWF (_currentPosition + 0)
; .line 626; "stepmotor2.c" currentPosition.bytes[1] = buffer[2];
0000fd 1283 bcf 0x3, 0x5 BANKSEL _buffer
0000fe 1303 bcf 0x3, 0x6
0000ff 0861 movf 0x61, w MOVF (_buffer + 2),W
000100 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000101 1303 bcf 0x3, 0x6
000102 00d1 movwf 0x51 MOVWF r0x1011
000103 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000104 1303 bcf 0x3, 0x6
000105 00d4 movwf 0x54 MOVWF (_currentPosition + 1)
; .line 627; "stepmotor2.c" break;
000106 2a19 goto 0x219 GOTO _00316_DS_
_00298_DS_
; .line 631; "stepmotor2.c" sendReply();
000107 158a bsf 0xa, 0x3 PAGESEL _sendReply
000108 20cd call 0xcd CALL _sendReply
000109 118a bcf 0xa, 0x3 PAGESEL $
; .line 632; "stepmotor2.c" sendDataByte(CMD_GETPOS);
00010a 3004 movlw 0x4 MOVLW 0x04
00010b 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
00010c 212f call 0x12f CALL _sendDataByte
00010d 118a bcf 0xa, 0x3 PAGESEL $
; .line 633; "stepmotor2.c" sendDataByte(currentPosition.bytes[0]);
00010e 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00010f 1303 bcf 0x3, 0x6
000110 0853 movf 0x53, w MOVF (_currentPosition + 0),W
000111 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000112 1303 bcf 0x3, 0x6
000113 00d1 movwf 0x51 MOVWF r0x1011
000114 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000115 212f call 0x12f CALL _sendDataByte
000116 118a bcf 0xa, 0x3 PAGESEL $
; .line 634; "stepmotor2.c" sendDataByte(currentPosition.bytes[1]);
000117 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000118 1303 bcf 0x3, 0x6
000119 0854 movf 0x54, w MOVF (_currentPosition + 1),W
00011a 1283 bcf 0x3, 0x5 BANKSEL r0x1011
00011b 1303 bcf 0x3, 0x6
00011c 00d1 movwf 0x51 MOVWF r0x1011
00011d 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
00011e 212f call 0x12f CALL _sendDataByte
00011f 118a bcf 0xa, 0x3 PAGESEL $
; .line 635; "stepmotor2.c" endMessage();
000120 158a bsf 0xa, 0x3 PAGESEL _endMessage
000121 2039 call 0x39 CALL _endMessage
000122 118a bcf 0xa, 0x3 PAGESEL $
; .line 636; "stepmotor2.c" break;
000123 2a19 goto 0x219 GOTO _00316_DS_
_00299_DS_
; .line 640; "stepmotor2.c" seekPosition.bytes[0] = buffer[2];
000124 1283 bcf 0x3, 0x5 BANKSEL _buffer
000125 1303 bcf 0x3, 0x6
000126 0861 movf 0x61, w MOVF (_buffer + 2),W
000127 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000128 1303 bcf 0x3, 0x6
000129 00d1 movwf 0x51 MOVWF r0x1011
00012a 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
00012b 1303 bcf 0x3, 0x6
00012c 00d5 movwf 0x55 MOVWF (_seekPosition + 0)
; .line 641; "stepmotor2.c" seekPosition.bytes[1] = buffer[3];
00012d 1283 bcf 0x3, 0x5 BANKSEL _buffer
00012e 1303 bcf 0x3, 0x6
00012f 0862 movf 0x62, w MOVF (_buffer + 3),W
000130 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000131 1303 bcf 0x3, 0x6
000132 00d1 movwf 0x51 MOVWF r0x1011
000133 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
000134 1303 bcf 0x3, 0x6
000135 00d6 movwf 0x56 MOVWF (_seekPosition + 1)
; .line 643; "stepmotor2.c" if (sync_mode == sync_seek)
000136 1683 bsf 0x3, 0x5 BANKSEL _sync_mode
000137 1303 bcf 0x3, 0x6
000138 0853 movf 0x53, w MOVF _sync_mode,W
000139 3a01 xorlw 0x1 XORLW 0x01
00013a 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
00013b 2941 goto 0x141 GOTO _00301_DS_
; .line 644; "stepmotor2.c" function = func_syncwait;
00013c 3003 movlw 0x3 MOVLW 0x03
00013d 1683 bsf 0x3, 0x5 BANKSEL _function
00013e 1303 bcf 0x3, 0x6
00013f 00d0 movwf 0x50 MOVWF _function
000140 2945 goto 0x145 GOTO _00302_DS_
_00301_DS_
; .line 646; "stepmotor2.c" function = func_seek;
000141 3004 movlw 0x4 MOVLW 0x04
000142 1683 bsf 0x3, 0x5 BANKSEL _function
000143 1303 bcf 0x3, 0x6
000144 00d0 movwf 0x50 MOVWF _function
_00302_DS_
; .line 647; "stepmotor2.c" setTimer(buffer[1]);
000145 1283 bcf 0x3, 0x5 BANKSEL _buffer
000146 1303 bcf 0x3, 0x6
000147 0860 movf 0x60, w MOVF (_buffer + 1),W
000148 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000149 1303 bcf 0x3, 0x6
00014a 00d1 movwf 0x51 MOVWF r0x1011
00014b 247f call 0x47f CALL _setTimer
; .line 648; "stepmotor2.c" break;
00014c 2a19 goto 0x219 GOTO _00316_DS_
_00303_DS_
; .line 652; "stepmotor2.c" motor_stop();
00014d 2557 call 0x557 CALL _motor_stop
; .line 653; "stepmotor2.c" function = func_idle;
00014e 1683 bsf 0x3, 0x5 BANKSEL _function
00014f 1303 bcf 0x3, 0x6
000150 01d0 clrf 0x50 CLRF _function
; .line 654; "stepmotor2.c" break;
000151 2a19 goto 0x219 GOTO _00316_DS_
_00304_DS_
; .line 658; "stepmotor2.c" seekNotify = buffer[1];
000152 1283 bcf 0x3, 0x5 BANKSEL _buffer
000153 1303 bcf 0x3, 0x6
000154 0860 movf 0x60, w MOVF (_buffer + 1),W
000155 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
000156 1303 bcf 0x3, 0x6
000157 00d2 movwf 0x52 MOVWF _seekNotify
; .line 659; "stepmotor2.c" break;
000158 2a19 goto 0x219 GOTO _00316_DS_
_00305_DS_
; .line 663; "stepmotor2.c" sync_mode = buffer[1];
000159 1283 bcf 0x3, 0x5 BANKSEL _buffer
00015a 1303 bcf 0x3, 0x6
00015b 0860 movf 0x60, w MOVF (_buffer + 1),W
00015c 1683 bsf 0x3, 0x5 BANKSEL _sync_mode
00015d 1303 bcf 0x3, 0x6
00015e 00d3 movwf 0x53 MOVWF _sync_mode
; .line 664; "stepmotor2.c" break;
00015f 2a19 goto 0x219 GOTO _00316_DS_
_00306_DS_
; .line 668; "stepmotor2.c" function = func_findmin;
000160 3005 movlw 0x5 MOVLW 0x05
000161 1683 bsf 0x3, 0x5 BANKSEL _function
000162 1303 bcf 0x3, 0x6
000163 00d0 movwf 0x50 MOVWF _function
; .line 669; "stepmotor2.c" setTimer(buffer[1]);
000164 1283 bcf 0x3, 0x5 BANKSEL _buffer
000165 1303 bcf 0x3, 0x6
000166 0860 movf 0x60, w MOVF (_buffer + 1),W
000167 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000168 1303 bcf 0x3, 0x6
000169 00d1 movwf 0x51 MOVWF r0x1011
00016a 247f call 0x47f CALL _setTimer
; .line 670; "stepmotor2.c" break;
00016b 2a19 goto 0x219 GOTO _00316_DS_
_00307_DS_
; .line 674; "stepmotor2.c" sendReply();
00016c 158a bsf 0xa, 0x3 PAGESEL _sendReply
00016d 20cd call 0xcd CALL _sendReply
00016e 118a bcf 0xa, 0x3 PAGESEL $
; .line 675; "stepmotor2.c" sendDataByte(CMD_GETRANGE);
00016f 300a movlw 0xa MOVLW 0x0a
000170 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000171 212f call 0x12f CALL _sendDataByte
000172 118a bcf 0xa, 0x3 PAGESEL $
; .line 676; "stepmotor2.c" sendDataByte(maxPosition.bytes[0]);
000173 1283 bcf 0x3, 0x5 BANKSEL _maxPosition
000174 1303 bcf 0x3, 0x6
000175 0857 movf 0x57, w MOVF (_maxPosition + 0),W
000176 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000177 1303 bcf 0x3, 0x6
000178 00d1 movwf 0x51 MOVWF r0x1011
000179 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
00017a 212f call 0x12f CALL _sendDataByte
00017b 118a bcf 0xa, 0x3 PAGESEL $
; .line 677; "stepmotor2.c" sendDataByte(maxPosition.bytes[1]);
00017c 1283 bcf 0x3, 0x5 BANKSEL _maxPosition
00017d 1303 bcf 0x3, 0x6
00017e 0858 movf 0x58, w MOVF (_maxPosition + 1),W
00017f 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000180 1303 bcf 0x3, 0x6
000181 00d1 movwf 0x51 MOVWF r0x1011
000182 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000183 212f call 0x12f CALL _sendDataByte
000184 118a bcf 0xa, 0x3 PAGESEL $
; .line 678; "stepmotor2.c" endMessage();
000185 158a bsf 0xa, 0x3 PAGESEL _endMessage
000186 2039 call 0x39 CALL _endMessage
000187 118a bcf 0xa, 0x3 PAGESEL $
; .line 679; "stepmotor2.c" break;
000188 2a19 goto 0x219 GOTO _00316_DS_
_00308_DS_
; .line 686; "stepmotor2.c" seekPosition.bytes[0] = buffer[2];
000189 1283 bcf 0x3, 0x5 BANKSEL _buffer
00018a 1303 bcf 0x3, 0x6
00018b 0861 movf 0x61, w MOVF (_buffer + 2),W
00018c 1283 bcf 0x3, 0x5 BANKSEL r0x1011
00018d 1303 bcf 0x3, 0x6
00018e 00d1 movwf 0x51 MOVWF r0x1011
00018f 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
000190 1303 bcf 0x3, 0x6
000191 00d5 movwf 0x55 MOVWF (_seekPosition + 0)
; .line 687; "stepmotor2.c" seekPosition.bytes[1] = buffer[3];
000192 1283 bcf 0x3, 0x5 BANKSEL _buffer
000193 1303 bcf 0x3, 0x6
000194 0862 movf 0x62, w MOVF (_buffer + 3),W
000195 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000196 1303 bcf 0x3, 0x6
000197 00d1 movwf 0x51 MOVWF r0x1011
000198 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
000199 1303 bcf 0x3, 0x6
00019a 00d6 movwf 0x56 MOVWF (_seekPosition + 1)
; .line 688; "stepmotor2.c" dda_deltay.bytes[0] = buffer[4];
00019b 1283 bcf 0x3, 0x5 BANKSEL _buffer
00019c 1303 bcf 0x3, 0x6
00019d 0863 movf 0x63, w MOVF (_buffer + 4),W
00019e 1283 bcf 0x3, 0x5 BANKSEL r0x1011
00019f 1303 bcf 0x3, 0x6
0001a0 00d1 movwf 0x51 MOVWF r0x1011
0001a1 1283 bcf 0x3, 0x5 BANKSEL _dda_deltay
0001a2 1303 bcf 0x3, 0x6
0001a3 00db movwf 0x5b MOVWF (_dda_deltay + 0)
; .line 689; "stepmotor2.c" dda_deltay.bytes[1] = buffer[5];
0001a4 1283 bcf 0x3, 0x5 BANKSEL _buffer
0001a5 1303 bcf 0x3, 0x6
0001a6 0864 movf 0x64, w MOVF (_buffer + 5),W
0001a7 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0001a8 1303 bcf 0x3, 0x6
0001a9 00d1 movwf 0x51 MOVWF r0x1011
0001aa 1283 bcf 0x3, 0x5 BANKSEL _dda_deltay
0001ab 1303 bcf 0x3, 0x6
0001ac 00dc movwf 0x5c MOVWF (_dda_deltay + 1)
; .line 690; "stepmotor2.c" dda_error = 0;
0001ad 1283 bcf 0x3, 0x5 BANKSEL _dda_error
0001ae 1303 bcf 0x3, 0x6
0001af 01d9 clrf 0x59 CLRF _dda_error
0001b0 01da clrf 0x5a CLRF (_dda_error + 1)
; .line 692; "stepmotor2.c" dda_deltax = seekPosition.ival - currentPosition.ival;
0001b1 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0001b2 1303 bcf 0x3, 0x6
0001b3 0855 movf 0x55, w MOVF (_seekPosition + 0),W
0001b4 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0001b5 1303 bcf 0x3, 0x6
0001b6 00d1 movwf 0x51 MOVWF r0x1011
;;101 MOVF (_seekPosition + 1),W
;;99 MOVWF r0x1012
;;120 MOVF (_currentPosition + 0),W
;;118 MOVWF r0x1013
;;111 MOVF (_currentPosition + 1),W
;;119 MOVF r0x1013,W
0001b7 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0001b8 1303 bcf 0x3, 0x6
0001b9 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0001ba 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0001bb 1303 bcf 0x3, 0x6
0001bc 0251 subwf 0x51, w SUBWF r0x1011,W
0001bd 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
0001be 1303 bcf 0x3, 0x6
0001bf 00dd movwf 0x5d MOVWF _dda_deltax
;;100 MOVF r0x1012,W
0001c0 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0001c1 1303 bcf 0x3, 0x6
0001c2 0856 movf 0x56, w MOVF (_seekPosition + 1),W
0001c3 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
0001c4 1303 bcf 0x3, 0x6
0001c5 00de movwf 0x5e MOVWF (_dda_deltax + 1)
;;110 MOVF r0x1014,W
0001c6 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0001c7 1303 bcf 0x3, 0x6
0001c8 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0001c9 1283 bcf 0x3, 0x5 BANKSEL r0x1014
0001ca 1303 bcf 0x3, 0x6
0001cb 00d2 movwf 0x52 MOVWF r0x1014
0001cc 1c03 btfss 0x3, 0 BTFSS STATUS,0
0001cd 0a52 incf 0x52, w INCF r0x1014,W
0001ce 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0001cf 29d3 goto 0x1d3 GOTO _00001_DS_
0001d0 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
0001d1 1303 bcf 0x3, 0x6
0001d2 02de subwf 0x5e, f SUBWF (_dda_deltax + 1),F
;signed compare: left < lit(0x0=0), size=2, mask=ffff
_00001_DS_
; .line 693; "stepmotor2.c" if (dda_deltax < 0) dda_deltax = -dda_deltax;
0001d3 1403 bsf 0x3, 0 BSF STATUS,0
0001d4 1283 bcf 0x3, 0x5 BANKSEL (_dda_deltax + 1)
0001d5 1303 bcf 0x3, 0x6
0001d6 1fde btfss 0x5e, 0x7 BTFSS (_dda_deltax + 1),7
0001d7 1003 bcf 0x3, 0 BCF STATUS,0
0001d8 1c03 btfss 0x3, 0 BTFSS STATUS,0
0001d9 29df goto 0x1df GOTO _00310_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
0001da 09dd comf 0x5d, f COMF _dda_deltax,F
0001db 09de comf 0x5e, f COMF (_dda_deltax + 1),F
0001dc 0add incf 0x5d, f INCF _dda_deltax,F
0001dd 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0001de 0ade incf 0x5e, f INCF (_dda_deltax + 1),F
_00310_DS_
; .line 695; "stepmotor2.c" function = func_ddamaster;
0001df 3007 movlw 0x7 MOVLW 0x07
0001e0 1683 bsf 0x3, 0x5 BANKSEL _function
0001e1 1303 bcf 0x3, 0x6
0001e2 00d0 movwf 0x50 MOVWF _function
; .line 696; "stepmotor2.c" setTimer(buffer[1]);
0001e3 1283 bcf 0x3, 0x5 BANKSEL _buffer
0001e4 1303 bcf 0x3, 0x6
0001e5 0860 movf 0x60, w MOVF (_buffer + 1),W
0001e6 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0001e7 1303 bcf 0x3, 0x6
0001e8 00d1 movwf 0x51 MOVWF r0x1011
0001e9 247f call 0x47f CALL _setTimer
; .line 697; "stepmotor2.c" break;
0001ea 2a19 goto 0x219 GOTO _00316_DS_
_00311_DS_
; .line 700; "stepmotor2.c" forward1();
0001eb 24cd call 0x4cd CALL _forward1
; .line 701; "stepmotor2.c" break;
0001ec 2a19 goto 0x219 GOTO _00316_DS_
_00312_DS_
; .line 704; "stepmotor2.c" reverse1();
0001ed 2497 call 0x497 CALL _reverse1
; .line 705; "stepmotor2.c" break;
0001ee 2a19 goto 0x219 GOTO _00316_DS_
_00313_DS_
; .line 711; "stepmotor2.c" setPower(buffer[1]);
0001ef 1283 bcf 0x3, 0x5 BANKSEL _buffer
0001f0 1303 bcf 0x3, 0x6
0001f1 0860 movf 0x60, w MOVF (_buffer + 1),W
0001f2 1283 bcf 0x3, 0x5 BANKSEL r0x1011
0001f3 1303 bcf 0x3, 0x6
0001f4 00d1 movwf 0x51 MOVWF r0x1011
0001f5 221c call 0x21c CALL _setPower
; .line 712; "stepmotor2.c" break;
0001f6 2a19 goto 0x219 GOTO _00316_DS_
_00314_DS_
; .line 715; "stepmotor2.c" sendReply();
0001f7 158a bsf 0xa, 0x3 PAGESEL _sendReply
0001f8 20cd call 0xcd CALL _sendReply
0001f9 118a bcf 0xa, 0x3 PAGESEL $
; .line 716; "stepmotor2.c" sendDataByte(CMD_GETSENSOR);
0001fa 300f movlw 0xf MOVLW 0x0f
0001fb 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
0001fc 212f call 0x12f CALL _sendDataByte
0001fd 118a bcf 0xa, 0x3 PAGESEL $
; .line 717; "stepmotor2.c" sendDataByte(PORTA);
0001fe 1283 bcf 0x3, 0x5 BANKSEL _PORTA
0001ff 1303 bcf 0x3, 0x6
000200 0805 movf 0x5, w MOVF _PORTA,W
000201 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000202 212f call 0x12f CALL _sendDataByte
000203 118a bcf 0xa, 0x3 PAGESEL $
; .line 718; "stepmotor2.c" sendDataByte(PORTB);
000204 1283 bcf 0x3, 0x5 BANKSEL _PORTB
000205 1303 bcf 0x3, 0x6
000206 0806 movf 0x6, w MOVF _PORTB,W
000207 158a bsf 0xa, 0x3 PAGESEL _sendDataByte
000208 212f call 0x12f CALL _sendDataByte
000209 118a bcf 0xa, 0x3 PAGESEL $
; .line 719; "stepmotor2.c" endMessage();
00020a 158a bsf 0xa, 0x3 PAGESEL _endMessage
00020b 2039 call 0x39 CALL _endMessage
00020c 118a bcf 0xa, 0x3 PAGESEL $
; .line 720; "stepmotor2.c" break;
00020d 2a19 goto 0x219 GOTO _00316_DS_
_00315_DS_
; .line 724; "stepmotor2.c" function = func_homereset;
00020e 3008 movlw 0x8 MOVLW 0x08
00020f 1683 bsf 0x3, 0x5 BANKSEL _function
000210 1303 bcf 0x3, 0x6
000211 00d0 movwf 0x50 MOVWF _function
; .line 725; "stepmotor2.c" setTimer(buffer[1]);
000212 1283 bcf 0x3, 0x5 BANKSEL _buffer
000213 1303 bcf 0x3, 0x6
000214 0860 movf 0x60, w MOVF (_buffer + 1),W
000215 1283 bcf 0x3, 0x5 BANKSEL r0x1011
000216 1303 bcf 0x3, 0x6
000217 00d1 movwf 0x51 MOVWF r0x1011
000218 247f call 0x47f CALL _setTimer
_00316_DS_
000219 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
00021a 1303 bcf 0x3, 0x6
00021b 0008 return RETURN
; exit point of _processCommand
;***
; pBlock Stats: dbName = C
;***
;entry: _setPower ;Function start
; 2 exit points
;has an exit
;2 compiler assigned registers:
; r0x101C
; r0x1016
;; Starting pCode block
_setPower ;Function start
; 2 exit points
; .line 564; "stepmotor2.c" void setPower(byte p)
00021c 1283 bcf 0x3, 0x5 BANKSEL r0x101C
00021d 1303 bcf 0x3, 0x6
00021e 00d0 movwf 0x50 MOVWF r0x101C
;shiftRight_Left2ResultLit:6973: shCount=1, size=1, sign=0, same=0, offr=0
; .line 569; "stepmotor2.c" CCPR1L = p >> 2;
00021f 1003 bcf 0x3, 0 BCF STATUS,0
000220 0c50 rrf 0x50, w RRF r0x101C,W
000221 1283 bcf 0x3, 0x5 BANKSEL _CCPR1L
000222 1303 bcf 0x3, 0x6
000223 0095 movwf 0x15 MOVWF _CCPR1L
;shiftRight_Left2ResultLit:6973: shCount=1, size=1, sign=0, same=1, offr=0
000224 1003 bcf 0x3, 0 BCF STATUS,0
000225 0c95 rrf 0x15, f RRF _CCPR1L,F
; .line 570; "stepmotor2.c" PR2 = 16; // The maximum range
000226 3010 movlw 0x10 MOVLW 0x10
000227 1683 bsf 0x3, 0x5 BANKSEL _PR2
000228 1303 bcf 0x3, 0x6
000229 0092 movwf 0x12 MOVWF _PR2
; .line 572; "stepmotor2.c" CCP1CON = BIN(1100) | ((p & BIN(11)) << 4);
00022a 3003 movlw 0x3 MOVLW 0x03
00022b 1283 bcf 0x3, 0x5 BANKSEL r0x101C
00022c 1303 bcf 0x3, 0x6
00022d 05d0 andwf 0x50, f ANDWF r0x101C,F
00022e 0e50 swapf 0x50, w SWAPF r0x101C,W
00022f 39f0 andlw 0xf0 ANDLW 0xf0
000230 00c6 movwf 0x46 MOVWF r0x1016
000231 300c movlw 0xc MOVLW 0x0c
000232 0446 iorwf 0x46, w IORWF r0x1016,W
000233 1283 bcf 0x3, 0x5 BANKSEL _CCP1CON
000234 1303 bcf 0x3, 0x6
000235 0097 movwf 0x17 MOVWF _CCP1CON
000236 0008 return RETURN
; exit point of _setPower
;***
; pBlock Stats: dbName = C
;***
;entry: _syncStrobe ;Function start
; 2 exit points
;has an exit
;functions called:
; _forward1
; _reverse1
; _forward1
; _reverse1
;; Starting pCode block
_syncStrobe ;Function start
; 2 exit points
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x4=4), size=1
; .line 546; "stepmotor2.c" switch(sync_mode) {
000237 3004 movlw 0x4 MOVLW 0x04
000238 1683 bsf 0x3, 0x5 BANKSEL _sync_mode
000239 1303 bcf 0x3, 0x6
00023a 0253 subwf 0x53, w SUBWF _sync_mode,W
00023b 1803 btfsc 0x3, 0 BTFSC STATUS,0
00023c 2a5a goto 0x25a GOTO _00270_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
00023d 3002 movlw 0x2 MOVLW HIGH(_00274_DS_)
00023e 008a movwf 0xa MOVWF PCLATH
00023f 3046 movlw 0x46 MOVLW _00274_DS_
000240 0753 addwf 0x53, w ADDWF _sync_mode,W
000241 1803 btfsc 0x3, 0 BTFSC STATUS,0
000242 0a8a incf 0xa, f INCF PCLATH,F
000243 1283 bcf 0x3, 0x5 BANKSEL PCL
000244 1303 bcf 0x3, 0x6
000245 0082 movwf 0x2 MOVWF PCL
_00274_DS_
000246 2a4a goto 0x24a GOTO _00263_DS_
000247 2a4b goto 0x24b GOTO _00264_DS_
000248 2a57 goto 0x257 GOTO _00267_DS_
000249 2a59 goto 0x259 GOTO _00268_DS_
_00263_DS_
; .line 548; "stepmotor2.c" break;
00024a 2a5a goto 0x25a GOTO _00270_DS_
_00264_DS_
; .line 550; "stepmotor2.c" if (function = func_syncwait) {
00024b 3003 movlw 0x3 MOVLW 0x03
00024c 1683 bsf 0x3, 0x5 BANKSEL _function
00024d 1303 bcf 0x3, 0x6
00024e 00d0 movwf 0x50 MOVWF _function
; .line 551; "stepmotor2.c" sync_mode = sync_none;
00024f 1683 bsf 0x3, 0x5 BANKSEL _sync_mode
000250 1303 bcf 0x3, 0x6
000251 01d3 clrf 0x53 CLRF _sync_mode
; .line 552; "stepmotor2.c" function = func_seek;
000252 3004 movlw 0x4 MOVLW 0x04
000253 1683 bsf 0x3, 0x5 BANKSEL _function
000254 1303 bcf 0x3, 0x6
000255 00d0 movwf 0x50 MOVWF _function
; .line 554; "stepmotor2.c" break;
000256 2a5a goto 0x25a GOTO _00270_DS_
_00267_DS_
; .line 556; "stepmotor2.c" forward1();
000257 24cd call 0x4cd CALL _forward1
; .line 557; "stepmotor2.c" break;
000258 2a5a goto 0x25a GOTO _00270_DS_
_00268_DS_
; .line 559; "stepmotor2.c" reverse1();
000259 2497 call 0x497 CALL _reverse1
_00270_DS_
; .line 561; "stepmotor2.c" }
00025a 0008 return RETURN
; exit point of _syncStrobe
;***
; pBlock Stats: dbName = C
;***
;entry: _timerTick ;Function start
; 2 exit points
;has an exit
;functions called:
; _LEDon
; _forward1
; _reverse1
; _forward1
; _reverse1
; _LEDon
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _reverse1
; _forward1
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _dda_step
; _reverse1
; _sendMessageISR
; _sendDataByteISR
; _endMessageISR
; _setTimer
; _LEDon
; _forward1
; _reverse1
; _forward1
; _reverse1
; _LEDon
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _reverse1
; _forward1
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _dda_step
; _reverse1
; _sendMessageISR
; _sendDataByteISR
; _endMessageISR
; _setTimer
;5 compiler assigned registers:
; r0x1021
; r0x1019
; r0x101A
; r0x101B
; r0x101C
;; Starting pCode block
_timerTick ;Function start
; 2 exit points
; .line 447; "stepmotor2.c" switch(function) {
00025b 1683 bsf 0x3, 0x5 BANKSEL _function
00025c 1303 bcf 0x3, 0x6
00025d 0850 movf 0x50, w MOVF _function,W
00025e 1283 bcf 0x3, 0x5 BANKSEL r0x1021
00025f 1303 bcf 0x3, 0x6
000260 00cc movwf 0x4c MOVWF r0x1021
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x9=9), size=1
000261 3009 movlw 0x9 MOVLW 0x09
000262 024c subwf 0x4c, w SUBWF r0x1021,W
000263 1803 btfsc 0x3, 0 BTFSC STATUS,0
000264 2b99 goto 0x399 GOTO _00234_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
000265 3002 movlw 0x2 MOVLW HIGH(_00253_DS_)
000266 008a movwf 0xa MOVWF PCLATH
000267 306e movlw 0x6e MOVLW _00253_DS_
000268 074c addwf 0x4c, w ADDWF r0x1021,W
000269 1803 btfsc 0x3, 0 BTFSC STATUS,0
00026a 0a8a incf 0xa, f INCF PCLATH,F
00026b 1283 bcf 0x3, 0x5 BANKSEL PCL
00026c 1303 bcf 0x3, 0x6
00026d 0082 movwf 0x2 MOVWF PCL
_00253_DS_
00026e 2a77 goto 0x277 GOTO _00192_DS_
00026f 2a81 goto 0x281 GOTO _00193_DS_
000270 2a83 goto 0x283 GOTO _00194_DS_
000271 2b67 goto 0x367 GOTO _00222_DS_
000272 2a85 goto 0x285 GOTO _00195_DS_
000273 2b08 goto 0x308 GOTO _00208_DS_
000274 2b17 goto 0x317 GOTO _00212_DS_
000275 2b68 goto 0x368 GOTO _00223_DS_
000276 2b6a goto 0x36a GOTO _00224_DS_
_00192_DS_
; .line 449; "stepmotor2.c" TMR1ON = 0;
000277 1283 bcf 0x3, 0x5 BANKSEL _T1CON_bits
000278 1303 bcf 0x3, 0x6
000279 1010 bcf 0x10, 0 BCF _T1CON_bits,0
; .line 450; "stepmotor2.c" speed = 0;
00027a 1683 bsf 0x3, 0x5 BANKSEL _speed
00027b 1303 bcf 0x3, 0x6
00027c 01d1 clrf 0x51 CLRF _speed
; .line 451; "stepmotor2.c" LEDon();
00027d 158a bsf 0xa, 0x3 PAGESEL _LEDon
00027e 2409 call 0x409 CALL _LEDon
00027f 118a bcf 0xa, 0x3 PAGESEL $
; .line 452; "stepmotor2.c" break;
000280 2b99 goto 0x399 GOTO _00234_DS_
_00193_DS_
; .line 454; "stepmotor2.c" forward1();
000281 24cd call 0x4cd CALL _forward1
; .line 455; "stepmotor2.c" break;
000282 2b99 goto 0x399 GOTO _00234_DS_
_00194_DS_
; .line 457; "stepmotor2.c" reverse1();
000283 2497 call 0x497 CALL _reverse1
; .line 458; "stepmotor2.c" break;
000284 2b99 goto 0x399 GOTO _00234_DS_
_00195_DS_
; .line 460; "stepmotor2.c" if (currentPosition.ival < seekPosition.ival) {
000285 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000286 1303 bcf 0x3, 0x6
000287 0853 movf 0x53, w MOVF (_currentPosition + 0),W
000288 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000289 1303 bcf 0x3, 0x6
00028a 00cc movwf 0x4c MOVWF r0x1021
;;117 MOVF (_currentPosition + 1),W
00028b 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
00028c 1303 bcf 0x3, 0x6
00028d 0855 movf 0x55, w MOVF (_seekPosition + 0),W
00028e 1283 bcf 0x3, 0x5 BANKSEL r0x101A
00028f 1303 bcf 0x3, 0x6
000290 00ce movwf 0x4e MOVWF r0x101A
;;109 MOVF (_seekPosition + 1),W
;;116 MOVF r0x1019,W
000291 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000292 1303 bcf 0x3, 0x6
000293 0854 movf 0x54, w MOVF (_currentPosition + 1),W
000294 1283 bcf 0x3, 0x5 BANKSEL r0x1019
000295 1303 bcf 0x3, 0x6
000296 00cd movwf 0x4d MOVWF r0x1019
000297 3e80 addlw 0x80 ADDLW 0x80
000298 00d0 movwf 0x50 MOVWF r0x101C
;;108 MOVF r0x101B,W
000299 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
00029a 1303 bcf 0x3, 0x6
00029b 0856 movf 0x56, w MOVF (_seekPosition + 1),W
00029c 1283 bcf 0x3, 0x5 BANKSEL r0x101B
00029d 1303 bcf 0x3, 0x6
00029e 00cf movwf 0x4f MOVWF r0x101B
00029f 3e80 addlw 0x80 ADDLW 0x80
0002a0 0250 subwf 0x50, w SUBWF r0x101C,W
0002a1 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0002a2 2aa5 goto 0x2a5 GOTO _00254_DS_
0002a3 084e movf 0x4e, w MOVF r0x101A,W
0002a4 024c subwf 0x4c, w SUBWF r0x1021,W
_00254_DS_
0002a5 1803 btfsc 0x3, 0 BTFSC STATUS,0
0002a6 2aa9 goto 0x2a9 GOTO _00200_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
; .line 461; "stepmotor2.c" forward1();
0002a7 24cd call 0x4cd CALL _forward1
0002a8 2ad3 goto 0x2d3 GOTO _00201_DS_
_00200_DS_
; .line 462; "stepmotor2.c" } else if (currentPosition.ival > seekPosition.ival) {
0002a9 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0002aa 1303 bcf 0x3, 0x6
0002ab 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0002ac 1283 bcf 0x3, 0x5 BANKSEL r0x1021
0002ad 1303 bcf 0x3, 0x6
0002ae 00cc movwf 0x4c MOVWF r0x1021
;;107 MOVF (_currentPosition + 1),W
0002af 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0002b0 1303 bcf 0x3, 0x6
0002b1 0855 movf 0x55, w MOVF (_seekPosition + 0),W
0002b2 1283 bcf 0x3, 0x5 BANKSEL r0x101A
0002b3 1303 bcf 0x3, 0x6
0002b4 00ce movwf 0x4e MOVWF r0x101A
0002b5 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0002b6 1303 bcf 0x3, 0x6
0002b7 0856 movf 0x56, w MOVF (_seekPosition + 1),W
0002b8 1283 bcf 0x3, 0x5 BANKSEL r0x101B
0002b9 1303 bcf 0x3, 0x6
0002ba 00cf movwf 0x4f MOVWF r0x101B
0002bb 3e80 addlw 0x80 ADDLW 0x80
0002bc 00d0 movwf 0x50 MOVWF r0x101C
;;106 MOVF r0x1019,W
0002bd 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0002be 1303 bcf 0x3, 0x6
0002bf 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0002c0 1283 bcf 0x3, 0x5 BANKSEL r0x1019
0002c1 1303 bcf 0x3, 0x6
0002c2 00cd movwf 0x4d MOVWF r0x1019
0002c3 3e80 addlw 0x80 ADDLW 0x80
0002c4 0250 subwf 0x50, w SUBWF r0x101C,W
0002c5 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0002c6 2ac9 goto 0x2c9 GOTO _00255_DS_
0002c7 084c movf 0x4c, w MOVF r0x1021,W
0002c8 024e subwf 0x4e, w SUBWF r0x101A,W
_00255_DS_
0002c9 1803 btfsc 0x3, 0 BTFSC STATUS,0
0002ca 2acd goto 0x2cd GOTO _00197_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
; .line 463; "stepmotor2.c" reverse1();
0002cb 2497 call 0x497 CALL _reverse1
0002cc 2ad3 goto 0x2d3 GOTO _00201_DS_
_00197_DS_
; .line 466; "stepmotor2.c" LEDon();
0002cd 158a bsf 0xa, 0x3 PAGESEL _LEDon
0002ce 2409 call 0x409 CALL _LEDon
0002cf 118a bcf 0xa, 0x3 PAGESEL $
; .line 469; "stepmotor2.c" function=func_idle;
0002d0 1683 bsf 0x3, 0x5 BANKSEL _function
0002d1 1303 bcf 0x3, 0x6
0002d2 01d0 clrf 0x50 CLRF _function
_00201_DS_
; .line 471; "stepmotor2.c" if (function == func_idle && seekNotify != 255) {
0002d3 3000 movlw 0 MOVLW 0x00
0002d4 1683 bsf 0x3, 0x5 BANKSEL _function
0002d5 1303 bcf 0x3, 0x6
0002d6 0450 iorwf 0x50, w IORWF _function,W
0002d7 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0002d8 2b99 goto 0x399 GOTO _00234_DS_
0002d9 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
0002da 1303 bcf 0x3, 0x6
0002db 0852 movf 0x52, w MOVF _seekNotify,W
; .line 472; "stepmotor2.c" if (sendMessageISR(seekNotify)) {
0002dc 3aff xorlw 0xff XORLW 0xff
0002dd 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0002de 2b99 goto 0x399 GOTO _00234_DS_
0002df 0852 movf 0x52, w MOVF _seekNotify,W
0002e0 158a bsf 0xa, 0x3 PAGESEL _sendMessageISR
0002e1 20fa call 0xfa CALL _sendMessageISR
0002e2 118a bcf 0xa, 0x3 PAGESEL $
0002e3 1283 bcf 0x3, 0x5 BANKSEL r0x1021
0002e4 1303 bcf 0x3, 0x6
0002e5 00cc movwf 0x4c MOVWF r0x1021
0002e6 084c movf 0x4c, w MOVF r0x1021,W
0002e7 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0002e8 2b03 goto 0x303 GOTO _00203_DS_
; .line 473; "stepmotor2.c" sendDataByteISR(CMD_SEEK);
0002e9 3005 movlw 0x5 MOVLW 0x05
0002ea 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
0002eb 212d call 0x12d CALL _sendDataByteISR
0002ec 118a bcf 0xa, 0x3 PAGESEL $
; .line 474; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[0]);
0002ed 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0002ee 1303 bcf 0x3, 0x6
0002ef 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0002f0 1283 bcf 0x3, 0x5 BANKSEL r0x1021
0002f1 1303 bcf 0x3, 0x6
0002f2 00cc movwf 0x4c MOVWF r0x1021
0002f3 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
0002f4 212d call 0x12d CALL _sendDataByteISR
0002f5 118a bcf 0xa, 0x3 PAGESEL $
; .line 475; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[1]);
0002f6 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0002f7 1303 bcf 0x3, 0x6
0002f8 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0002f9 1283 bcf 0x3, 0x5 BANKSEL r0x1021
0002fa 1303 bcf 0x3, 0x6
0002fb 00cc movwf 0x4c MOVWF r0x1021
0002fc 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
0002fd 212d call 0x12d CALL _sendDataByteISR
0002fe 118a bcf 0xa, 0x3 PAGESEL $
; .line 476; "stepmotor2.c" endMessageISR();
0002ff 158a bsf 0xa, 0x3 PAGESEL _endMessageISR
000300 205b call 0x5b CALL _endMessageISR
000301 118a bcf 0xa, 0x3 PAGESEL $
000302 2b99 goto 0x399 GOTO _00234_DS_
_00203_DS_
; .line 479; "stepmotor2.c" function=func_seek;
000303 3004 movlw 0x4 MOVLW 0x04
000304 1683 bsf 0x3, 0x5 BANKSEL _function
000305 1303 bcf 0x3, 0x6
000306 00d0 movwf 0x50 MOVWF _function
; .line 482; "stepmotor2.c" break;
000307 2b99 goto 0x399 GOTO _00234_DS_
_00208_DS_
; .line 484; "stepmotor2.c" if (MINSENSOR) {
000308 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
000309 1303 bcf 0x3, 0x6
00030a 1c06 btfss 0x6, 0 BTFSS _PORTB_bits,0
00030b 2b15 goto 0x315 GOTO _00210_DS_
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 485; "stepmotor2.c" currentPosition.bytes[0] = 0;
00030c 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00030d 1303 bcf 0x3, 0x6
00030e 01d3 clrf 0x53 CLRF (_currentPosition + 0)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 486; "stepmotor2.c" currentPosition.bytes[1] = 0;
00030f 01d4 clrf 0x54 CLRF (_currentPosition + 1)
; .line 487; "stepmotor2.c" function = func_findmax;
000310 3006 movlw 0x6 MOVLW 0x06
000311 1683 bsf 0x3, 0x5 BANKSEL _function
000312 1303 bcf 0x3, 0x6
000313 00d0 movwf 0x50 MOVWF _function
000314 2b99 goto 0x399 GOTO _00234_DS_
_00210_DS_
; .line 489; "stepmotor2.c" reverse1();
000315 2497 call 0x497 CALL _reverse1
; .line 491; "stepmotor2.c" break;
000316 2b99 goto 0x399 GOTO _00234_DS_
_00212_DS_
; .line 493; "stepmotor2.c" if (MAXSENSOR) {
000317 1283 bcf 0x3, 0x5 BANKSEL _PORTA_bits
000318 1303 bcf 0x3, 0x6
000319 1e85 btfss 0x5, 0x5 BTFSS _PORTA_bits,5
00031a 2b31 goto 0x331 GOTO _00214_DS_
; .line 494; "stepmotor2.c" maxPosition.bytes[0] = currentPosition.bytes[0];
00031b 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00031c 1303 bcf 0x3, 0x6
00031d 0853 movf 0x53, w MOVF (_currentPosition + 0),W
00031e 1283 bcf 0x3, 0x5 BANKSEL r0x1021
00031f 1303 bcf 0x3, 0x6
000320 00cc movwf 0x4c MOVWF r0x1021
000321 1283 bcf 0x3, 0x5 BANKSEL _maxPosition
000322 1303 bcf 0x3, 0x6
000323 00d7 movwf 0x57 MOVWF (_maxPosition + 0)
; .line 495; "stepmotor2.c" maxPosition.bytes[1] = currentPosition.bytes[1];
000324 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000325 1303 bcf 0x3, 0x6
000326 0854 movf 0x54, w MOVF (_currentPosition + 1),W
000327 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000328 1303 bcf 0x3, 0x6
000329 00cc movwf 0x4c MOVWF r0x1021
00032a 1283 bcf 0x3, 0x5 BANKSEL _maxPosition
00032b 1303 bcf 0x3, 0x6
00032c 00d8 movwf 0x58 MOVWF (_maxPosition + 1)
; .line 496; "stepmotor2.c" function = func_idle;
00032d 1683 bsf 0x3, 0x5 BANKSEL _function
00032e 1303 bcf 0x3, 0x6
00032f 01d0 clrf 0x50 CLRF _function
000330 2b32 goto 0x332 GOTO _00215_DS_
_00214_DS_
; .line 498; "stepmotor2.c" forward1();
000331 24cd call 0x4cd CALL _forward1
_00215_DS_
; .line 500; "stepmotor2.c" if (function == func_idle && seekNotify != 255) {
000332 3000 movlw 0 MOVLW 0x00
000333 1683 bsf 0x3, 0x5 BANKSEL _function
000334 1303 bcf 0x3, 0x6
000335 0450 iorwf 0x50, w IORWF _function,W
000336 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
000337 2b99 goto 0x399 GOTO _00234_DS_
000338 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
000339 1303 bcf 0x3, 0x6
00033a 0852 movf 0x52, w MOVF _seekNotify,W
; .line 501; "stepmotor2.c" if (sendMessageISR(seekNotify)) {
00033b 3aff xorlw 0xff XORLW 0xff
00033c 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00033d 2b99 goto 0x399 GOTO _00234_DS_
00033e 0852 movf 0x52, w MOVF _seekNotify,W
00033f 158a bsf 0xa, 0x3 PAGESEL _sendMessageISR
000340 20fa call 0xfa CALL _sendMessageISR
000341 118a bcf 0xa, 0x3 PAGESEL $
000342 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000343 1303 bcf 0x3, 0x6
000344 00cc movwf 0x4c MOVWF r0x1021
000345 084c movf 0x4c, w MOVF r0x1021,W
000346 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000347 2b62 goto 0x362 GOTO _00217_DS_
; .line 502; "stepmotor2.c" sendDataByteISR(CMD_CALIBRATE);
000348 3009 movlw 0x9 MOVLW 0x09
000349 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
00034a 212d call 0x12d CALL _sendDataByteISR
00034b 118a bcf 0xa, 0x3 PAGESEL $
; .line 503; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[0]);
00034c 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00034d 1303 bcf 0x3, 0x6
00034e 0853 movf 0x53, w MOVF (_currentPosition + 0),W
00034f 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000350 1303 bcf 0x3, 0x6
000351 00cc movwf 0x4c MOVWF r0x1021
000352 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
000353 212d call 0x12d CALL _sendDataByteISR
000354 118a bcf 0xa, 0x3 PAGESEL $
; .line 504; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[1]);
000355 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000356 1303 bcf 0x3, 0x6
000357 0854 movf 0x54, w MOVF (_currentPosition + 1),W
000358 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000359 1303 bcf 0x3, 0x6
00035a 00cc movwf 0x4c MOVWF r0x1021
00035b 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
00035c 212d call 0x12d CALL _sendDataByteISR
00035d 118a bcf 0xa, 0x3 PAGESEL $
; .line 505; "stepmotor2.c" endMessageISR();
00035e 158a bsf 0xa, 0x3 PAGESEL _endMessageISR
00035f 205b call 0x5b CALL _endMessageISR
000360 118a bcf 0xa, 0x3 PAGESEL $
000361 2b99 goto 0x399 GOTO _00234_DS_
_00217_DS_
; .line 508; "stepmotor2.c" function = func_findmax;
000362 3006 movlw 0x6 MOVLW 0x06
000363 1683 bsf 0x3, 0x5 BANKSEL _function
000364 1303 bcf 0x3, 0x6
000365 00d0 movwf 0x50 MOVWF _function
; .line 511; "stepmotor2.c" break;
000366 2b99 goto 0x399 GOTO _00234_DS_
_00222_DS_
; .line 514; "stepmotor2.c" break;
000367 2b99 goto 0x399 GOTO _00234_DS_
_00223_DS_
; .line 516; "stepmotor2.c" dda_step();
000368 23a0 call 0x3a0 CALL _dda_step
; .line 517; "stepmotor2.c" break;
000369 2b99 goto 0x399 GOTO _00234_DS_
_00224_DS_
; .line 519; "stepmotor2.c" if (MINSENSOR) {
00036a 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00036b 1303 bcf 0x3, 0x6
00036c 1c06 btfss 0x6, 0 BTFSS _PORTB_bits,0
00036d 2b76 goto 0x376 GOTO _00226_DS_
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 520; "stepmotor2.c" currentPosition.bytes[0] = 0;
00036e 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00036f 1303 bcf 0x3, 0x6
000370 01d3 clrf 0x53 CLRF (_currentPosition + 0)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 521; "stepmotor2.c" currentPosition.bytes[1] = 0;
000371 01d4 clrf 0x54 CLRF (_currentPosition + 1)
; .line 522; "stepmotor2.c" function = func_idle;
000372 1683 bsf 0x3, 0x5 BANKSEL _function
000373 1303 bcf 0x3, 0x6
000374 01d0 clrf 0x50 CLRF _function
000375 2b77 goto 0x377 GOTO _00227_DS_
_00226_DS_
; .line 524; "stepmotor2.c" reverse1();
000376 2497 call 0x497 CALL _reverse1
_00227_DS_
; .line 526; "stepmotor2.c" if (function == func_idle && seekNotify != 255) {
000377 3000 movlw 0 MOVLW 0x00
000378 1683 bsf 0x3, 0x5 BANKSEL _function
000379 1303 bcf 0x3, 0x6
00037a 0450 iorwf 0x50, w IORWF _function,W
00037b 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
00037c 2b99 goto 0x399 GOTO _00234_DS_
00037d 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
00037e 1303 bcf 0x3, 0x6
00037f 0852 movf 0x52, w MOVF _seekNotify,W
; .line 527; "stepmotor2.c" if (sendMessageISR(seekNotify)) {
000380 3aff xorlw 0xff XORLW 0xff
000381 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000382 2b99 goto 0x399 GOTO _00234_DS_
000383 0852 movf 0x52, w MOVF _seekNotify,W
000384 158a bsf 0xa, 0x3 PAGESEL _sendMessageISR
000385 20fa call 0xfa CALL _sendMessageISR
000386 118a bcf 0xa, 0x3 PAGESEL $
000387 1283 bcf 0x3, 0x5 BANKSEL r0x1021
000388 1303 bcf 0x3, 0x6
000389 00cc movwf 0x4c MOVWF r0x1021
00038a 084c movf 0x4c, w MOVF r0x1021,W
00038b 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
00038c 2b95 goto 0x395 GOTO _00229_DS_
; .line 528; "stepmotor2.c" sendDataByteISR(CMD_HOMERESET);
00038d 3010 movlw 0x10 MOVLW 0x10
00038e 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
00038f 212d call 0x12d CALL _sendDataByteISR
000390 118a bcf 0xa, 0x3 PAGESEL $
; .line 529; "stepmotor2.c" endMessageISR();
000391 158a bsf 0xa, 0x3 PAGESEL _endMessageISR
000392 205b call 0x5b CALL _endMessageISR
000393 118a bcf 0xa, 0x3 PAGESEL $
000394 2b99 goto 0x399 GOTO _00234_DS_
_00229_DS_
; .line 532; "stepmotor2.c" function = func_homereset;
000395 3008 movlw 0x8 MOVLW 0x08
000396 1683 bsf 0x3, 0x5 BANKSEL _function
000397 1303 bcf 0x3, 0x6
000398 00d0 movwf 0x50 MOVWF _function
_00234_DS_
; .line 537; "stepmotor2.c" setTimer(speed);
000399 1683 bsf 0x3, 0x5 BANKSEL _speed
00039a 1303 bcf 0x3, 0x6
00039b 0851 movf 0x51, w MOVF _speed,W
00039c 247f call 0x47f CALL _setTimer
00039d 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
00039e 1303 bcf 0x3, 0x6
00039f 0008 return RETURN
; exit point of _timerTick
;***
; pBlock Stats: dbName = C
;***
;entry: _dda_step ;Function start
; 2 exit points
;has an exit
;functions called:
; _forward1
; _reverse1
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _strobe_sync
; _forward1
; _reverse1
; _sendMessageISR
; _sendDataByteISR
; _sendDataByteISR
; _sendDataByteISR
; _endMessageISR
; _strobe_sync
;5 compiler assigned registers:
; r0x101D
; r0x101E
; r0x101F
; r0x1020
; r0x1021
;; Starting pCode block
_dda_step ;Function start
; 2 exit points
; .line 413; "stepmotor2.c" if (currentPosition.ival == seekPosition.ival) {
0003a0 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0003a1 1303 bcf 0x3, 0x6
0003a2 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0003a3 1283 bcf 0x3, 0x5 BANKSEL r0x101D
0003a4 1303 bcf 0x3, 0x6
0003a5 00c8 movwf 0x48 MOVWF r0x101D
0003a6 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0003a7 1303 bcf 0x3, 0x6
0003a8 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0003a9 1283 bcf 0x3, 0x5 BANKSEL r0x101E
0003aa 1303 bcf 0x3, 0x6
0003ab 00c9 movwf 0x49 MOVWF r0x101E
0003ac 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0003ad 1303 bcf 0x3, 0x6
0003ae 0855 movf 0x55, w MOVF (_seekPosition + 0),W
0003af 1283 bcf 0x3, 0x5 BANKSEL r0x101F
0003b0 1303 bcf 0x3, 0x6
0003b1 00ca movwf 0x4a MOVWF r0x101F
0003b2 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0003b3 1303 bcf 0x3, 0x6
0003b4 0856 movf 0x56, w MOVF (_seekPosition + 1),W
0003b5 1283 bcf 0x3, 0x5 BANKSEL r0x1020
0003b6 1303 bcf 0x3, 0x6
0003b7 00cb movwf 0x4b MOVWF r0x1020
0003b8 084a movf 0x4a, w MOVF r0x101F,W
0003b9 0648 xorwf 0x48, w XORWF r0x101D,W
0003ba 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0003bb 2bc4 goto 0x3c4 GOTO _00163_DS_
0003bc 084b movf 0x4b, w MOVF r0x1020,W
0003bd 0649 xorwf 0x49, w XORWF r0x101E,W
0003be 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0003bf 2bc4 goto 0x3c4 GOTO _00163_DS_
; .line 414; "stepmotor2.c" function = func_idle;
0003c0 1683 bsf 0x3, 0x5 BANKSEL _function
0003c1 1303 bcf 0x3, 0x6
0003c2 01d0 clrf 0x50 CLRF _function
0003c3 2be9 goto 0x3e9 GOTO _00164_DS_
_00163_DS_
; .line 415; "stepmotor2.c" } else if (currentPosition.ival < seekPosition.ival) {
0003c4 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0003c5 1303 bcf 0x3, 0x6
0003c6 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0003c7 1283 bcf 0x3, 0x5 BANKSEL r0x101D
0003c8 1303 bcf 0x3, 0x6
0003c9 00c8 movwf 0x48 MOVWF r0x101D
;;115 MOVF (_currentPosition + 1),W
0003ca 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0003cb 1303 bcf 0x3, 0x6
0003cc 0855 movf 0x55, w MOVF (_seekPosition + 0),W
0003cd 1283 bcf 0x3, 0x5 BANKSEL r0x101F
0003ce 1303 bcf 0x3, 0x6
0003cf 00ca movwf 0x4a MOVWF r0x101F
;;105 MOVF (_seekPosition + 1),W
;;114 MOVF r0x101E,W
0003d0 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0003d1 1303 bcf 0x3, 0x6
0003d2 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0003d3 1283 bcf 0x3, 0x5 BANKSEL r0x101E
0003d4 1303 bcf 0x3, 0x6
0003d5 00c9 movwf 0x49 MOVWF r0x101E
0003d6 3e80 addlw 0x80 ADDLW 0x80
0003d7 00cc movwf 0x4c MOVWF r0x1021
;;104 MOVF r0x1020,W
0003d8 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
0003d9 1303 bcf 0x3, 0x6
0003da 0856 movf 0x56, w MOVF (_seekPosition + 1),W
0003db 1283 bcf 0x3, 0x5 BANKSEL r0x1020
0003dc 1303 bcf 0x3, 0x6
0003dd 00cb movwf 0x4b MOVWF r0x1020
0003de 3e80 addlw 0x80 ADDLW 0x80
0003df 024c subwf 0x4c, w SUBWF r0x1021,W
0003e0 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0003e1 2be4 goto 0x3e4 GOTO _00185_DS_
0003e2 084a movf 0x4a, w MOVF r0x101F,W
0003e3 0248 subwf 0x48, w SUBWF r0x101D,W
_00185_DS_
0003e4 1803 btfsc 0x3, 0 BTFSC STATUS,0
0003e5 2be8 goto 0x3e8 GOTO _00160_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
; .line 416; "stepmotor2.c" forward1();
0003e6 24cd call 0x4cd CALL _forward1
0003e7 2be9 goto 0x3e9 GOTO _00164_DS_
_00160_DS_
; .line 418; "stepmotor2.c" reverse1();
0003e8 2497 call 0x497 CALL _reverse1
_00164_DS_
; .line 420; "stepmotor2.c" if (function == func_idle && seekNotify != 255) {
0003e9 3000 movlw 0 MOVLW 0x00
0003ea 1683 bsf 0x3, 0x5 BANKSEL _function
0003eb 1303 bcf 0x3, 0x6
0003ec 0450 iorwf 0x50, w IORWF _function,W
0003ed 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
0003ee 2c1e goto 0x41e GOTO _00173_DS_
0003ef 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
0003f0 1303 bcf 0x3, 0x6
0003f1 0852 movf 0x52, w MOVF _seekNotify,W
; .line 421; "stepmotor2.c" if (sendMessageISR(seekNotify)) {
0003f2 3aff xorlw 0xff XORLW 0xff
0003f3 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0003f4 2c1e goto 0x41e GOTO _00173_DS_
0003f5 0852 movf 0x52, w MOVF _seekNotify,W
0003f6 158a bsf 0xa, 0x3 PAGESEL _sendMessageISR
0003f7 20fa call 0xfa CALL _sendMessageISR
0003f8 118a bcf 0xa, 0x3 PAGESEL $
0003f9 1283 bcf 0x3, 0x5 BANKSEL r0x101D
0003fa 1303 bcf 0x3, 0x6
0003fb 00c8 movwf 0x48 MOVWF r0x101D
0003fc 0848 movf 0x48, w MOVF r0x101D,W
0003fd 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0003fe 2c19 goto 0x419 GOTO _00166_DS_
; .line 422; "stepmotor2.c" sendDataByteISR(CMD_DDA);
0003ff 300b movlw 0xb MOVLW 0x0b
000400 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
000401 212d call 0x12d CALL _sendDataByteISR
000402 118a bcf 0xa, 0x3 PAGESEL $
; .line 423; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[0]);
000403 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000404 1303 bcf 0x3, 0x6
000405 0853 movf 0x53, w MOVF (_currentPosition + 0),W
000406 1283 bcf 0x3, 0x5 BANKSEL r0x101D
000407 1303 bcf 0x3, 0x6
000408 00c8 movwf 0x48 MOVWF r0x101D
000409 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
00040a 212d call 0x12d CALL _sendDataByteISR
00040b 118a bcf 0xa, 0x3 PAGESEL $
; .line 424; "stepmotor2.c" sendDataByteISR(currentPosition.bytes[1]);
00040c 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
00040d 1303 bcf 0x3, 0x6
00040e 0854 movf 0x54, w MOVF (_currentPosition + 1),W
00040f 1283 bcf 0x3, 0x5 BANKSEL r0x101D
000410 1303 bcf 0x3, 0x6
000411 00c8 movwf 0x48 MOVWF r0x101D
000412 158a bsf 0xa, 0x3 PAGESEL _sendDataByteISR
000413 212d call 0x12d CALL _sendDataByteISR
000414 118a bcf 0xa, 0x3 PAGESEL $
; .line 425; "stepmotor2.c" endMessageISR();
000415 158a bsf 0xa, 0x3 PAGESEL _endMessageISR
000416 205b call 0x5b CALL _endMessageISR
000417 118a bcf 0xa, 0x3 PAGESEL $
000418 2c6a goto 0x46a GOTO _00003_DS_
_00166_DS_
; .line 428; "stepmotor2.c" function = func_ddamaster;
000419 3007 movlw 0x7 MOVLW 0x07
00041a 1683 bsf 0x3, 0x5 BANKSEL _function
00041b 1303 bcf 0x3, 0x6
00041c 00d0 movwf 0x50 MOVWF _function
00041d 2c6a goto 0x46a GOTO _00003_DS_
_00173_DS_
; .line 430; "stepmotor2.c" } else if (function != func_idle) {
00041e 3000 movlw 0 MOVLW 0x00
00041f 1683 bsf 0x3, 0x5 BANKSEL _function
000420 1303 bcf 0x3, 0x6
000421 0450 iorwf 0x50, w IORWF _function,W
000422 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000423 2c6a goto 0x46a GOTO _00003_DS_
;;113 MOVF (_dda_deltay + 0),W
;;103 MOVF (_dda_deltay + 1),W
;;112 MOVF r0x101D,W
; .line 431; "stepmotor2.c" dda_error += dda_deltay.ival;
000424 1283 bcf 0x3, 0x5 BANKSEL _dda_deltay
000425 1303 bcf 0x3, 0x6
000426 085b movf 0x5b, w MOVF (_dda_deltay + 0),W
000427 1283 bcf 0x3, 0x5 BANKSEL r0x101D
000428 1303 bcf 0x3, 0x6
000429 00c8 movwf 0x48 MOVWF r0x101D
00042a 1283 bcf 0x3, 0x5 BANKSEL _dda_error
00042b 1303 bcf 0x3, 0x6
00042c 07d9 addwf 0x59, f ADDWF _dda_error,F
;;102 MOVF r0x101E,W
00042d 1283 bcf 0x3, 0x5 BANKSEL _dda_deltay
00042e 1303 bcf 0x3, 0x6
00042f 085c movf 0x5c, w MOVF (_dda_deltay + 1),W
000430 1283 bcf 0x3, 0x5 BANKSEL r0x101E
000431 1303 bcf 0x3, 0x6
000432 00c9 movwf 0x49 MOVWF r0x101E
000433 1803 btfsc 0x3, 0 BTFSC STATUS,0
000434 0a49 incf 0x49, w INCF r0x101E,W
000435 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000436 2c3a goto 0x43a GOTO _00002_DS_
000437 1283 bcf 0x3, 0x5 BANKSEL _dda_error
000438 1303 bcf 0x3, 0x6
000439 07da addwf 0x5a, f ADDWF (_dda_error + 1),F
_00002_DS_
; .line 432; "stepmotor2.c" if ((dda_error + dda_error) > dda_deltax) {
00043a 1003 bcf 0x3, 0 BCF STATUS,0
00043b 1283 bcf 0x3, 0x5 BANKSEL _dda_error
00043c 1303 bcf 0x3, 0x6
00043d 0d59 rlf 0x59, w RLF _dda_error,W
00043e 1283 bcf 0x3, 0x5 BANKSEL r0x101D
00043f 1303 bcf 0x3, 0x6
000440 00c8 movwf 0x48 MOVWF r0x101D
000441 1283 bcf 0x3, 0x5 BANKSEL _dda_error
000442 1303 bcf 0x3, 0x6
000443 0d5a rlf 0x5a, w RLF (_dda_error + 1),W
000444 1283 bcf 0x3, 0x5 BANKSEL r0x101E
000445 1303 bcf 0x3, 0x6
000446 00c9 movwf 0x49 MOVWF r0x101E
000447 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
000448 1303 bcf 0x3, 0x6
000449 085e movf 0x5e, w MOVF (_dda_deltax + 1),W
00044a 3e80 addlw 0x80 ADDLW 0x80
00044b 1283 bcf 0x3, 0x5 BANKSEL r0x1021
00044c 1303 bcf 0x3, 0x6
00044d 00cc movwf 0x4c MOVWF r0x1021
00044e 0849 movf 0x49, w MOVF r0x101E,W
00044f 3e80 addlw 0x80 ADDLW 0x80
000450 024c subwf 0x4c, w SUBWF r0x1021,W
000451 1d03 btfss 0x3, 0x2 BTFSS STATUS,2
000452 2c57 goto 0x457 GOTO _00187_DS_
000453 0848 movf 0x48, w MOVF r0x101D,W
000454 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
000455 1303 bcf 0x3, 0x6
000456 025d subwf 0x5d, w SUBWF _dda_deltax,W
_00187_DS_
000457 1803 btfsc 0x3, 0 BTFSC STATUS,0
000458 2c6a goto 0x46a GOTO _00003_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
; .line 434; "stepmotor2.c" strobe_sync();
000459 246b call 0x46b CALL _strobe_sync
; .line 435; "stepmotor2.c" dda_error -= dda_deltax;
00045a 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
00045b 1303 bcf 0x3, 0x6
00045c 085d movf 0x5d, w MOVF _dda_deltax,W
00045d 1283 bcf 0x3, 0x5 BANKSEL _dda_error
00045e 1303 bcf 0x3, 0x6
00045f 02d9 subwf 0x59, f SUBWF _dda_error,F
000460 1283 bcf 0x3, 0x5 BANKSEL _dda_deltax
000461 1303 bcf 0x3, 0x6
000462 085e movf 0x5e, w MOVF (_dda_deltax + 1),W
000463 1c03 btfss 0x3, 0 BTFSS STATUS,0
000464 0a5e incf 0x5e, w INCF (_dda_deltax + 1),W
000465 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000466 2c6a goto 0x46a GOTO _00003_DS_
000467 1283 bcf 0x3, 0x5 BANKSEL _dda_error
000468 1303 bcf 0x3, 0x6
000469 02da subwf 0x5a, f SUBWF (_dda_error + 1),F
_00003_DS_
00046a 0008 return RETURN
; exit point of _dda_step
;***
; pBlock Stats: dbName = C
;***
;entry: _strobe_sync ;Function start
; 2 exit points
;has an exit
;1 compiler assigned register :
; r0x1022
;; Starting pCode block
_strobe_sync ;Function start
; 2 exit points
; .line 393; "stepmotor2.c" SYNCA = 0; // Pull low
00046b 1283 bcf 0x3, 0x5 BANKSEL _PORTA_bits
00046c 1303 bcf 0x3, 0x6
00046d 1085 bcf 0x5, 0x1 BCF _PORTA_bits,1
; .line 394; "stepmotor2.c" SYNCA_TRIS = 0; // Set to output during stobe
00046e 1683 bsf 0x3, 0x5 BANKSEL _TRISA_bits
00046f 1303 bcf 0x3, 0x6
000470 1085 bcf 0x5, 0x1 BCF _TRISA_bits,1
; .line 397; "stepmotor2.c" for(delay = 0; delay <= 254; delay++)
000471 30ff movlw 0xff MOVLW 0xff
000472 1283 bcf 0x3, 0x5 BANKSEL r0x1022
000473 1303 bcf 0x3, 0x6
000474 00c7 movwf 0x47 MOVWF r0x1022
_00154_DS_
000475 1283 bcf 0x3, 0x5 BANKSEL r0x1022
000476 1303 bcf 0x3, 0x6
000477 0bc7 decfsz 0x47, f DECFSZ r0x1022,F
000478 2c75 goto 0x475 GOTO _00154_DS_
; .line 400; "stepmotor2.c" SYNCA_TRIS = 1; // Back to input so we don't drive the sync line
000479 1683 bsf 0x3, 0x5 BANKSEL _TRISA_bits
00047a 1303 bcf 0x3, 0x6
00047b 1485 bsf 0x5, 0x1 BSF _TRISA_bits,1
00047c 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
00047d 1303 bcf 0x3, 0x6
00047e 0008 return RETURN
; exit point of _strobe_sync
;***
; pBlock Stats: dbName = C
;***
;entry: _setTimer ;Function start
; 2 exit points
;has an exit
;; Starting pCode block
_setTimer ;Function start
; 2 exit points
; .line 371; "stepmotor2.c" void setTimer(byte newspeed)
00047f 1683 bsf 0x3, 0x5 BANKSEL _speed
000480 1303 bcf 0x3, 0x6
000481 00d1 movwf 0x51 MOVWF _speed
; .line 374; "stepmotor2.c" if (speed) {
000482 0851 movf 0x51, w MOVF _speed,W
000483 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
000484 2c91 goto 0x491 GOTO _00146_DS_
; .line 375; "stepmotor2.c" TMR1ON = 0; //TMR1H, TMR1L should only be set, when TMR1ON is off
000485 1283 bcf 0x3, 0x5 BANKSEL _T1CON_bits
000486 1303 bcf 0x3, 0x6
000487 1010 bcf 0x10, 0 BCF _T1CON_bits,0
; .line 376; "stepmotor2.c" TMR1H = speed;
000488 1683 bsf 0x3, 0x5 BANKSEL _speed
000489 1303 bcf 0x3, 0x6
00048a 0851 movf 0x51, w MOVF _speed,W
00048b 1283 bcf 0x3, 0x5 BANKSEL _TMR1H
00048c 1303 bcf 0x3, 0x6
00048d 008f movwf 0xf MOVWF _TMR1H
; .line 377; "stepmotor2.c" TMR1L = 0;
00048e 018e clrf 0xe CLRF _TMR1L
; .line 378; "stepmotor2.c" TMR1ON = 1;
00048f 1410 bsf 0x10, 0 BSF _T1CON_bits,0
000490 2c94 goto 0x494 GOTO _00147_DS_
_00146_DS_
; .line 380; "stepmotor2.c" TMR1ON = 0;
000491 1283 bcf 0x3, 0x5 BANKSEL _T1CON_bits
000492 1303 bcf 0x3, 0x6
000493 1010 bcf 0x10, 0 BCF _T1CON_bits,0
_00147_DS_
000494 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
000495 1303 bcf 0x3, 0x6
000496 0008 return RETURN
; exit point of _setTimer
;***
; pBlock Stats: dbName = C
;***
;entry: _reverse1 ;Function start
; 2 exit points
;has an exit
;functions called:
; _flashLED
; _motor_stop
; _motor_click
; _flashLED
; _motor_stop
; _motor_click
;2 compiler assigned registers:
; r0x1015
; r0x1016
;; Starting pCode block
_reverse1 ;Function start
; 2 exit points
; .line 353; "stepmotor2.c" flashLED();
000497 158a bsf 0xa, 0x3 PAGESEL _flashLED
000498 240d call 0x40d CALL _flashLED
000499 118a bcf 0xa, 0x3 PAGESEL $
; .line 354; "stepmotor2.c" if (MINSENSOR) {
00049a 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00049b 1303 bcf 0x3, 0x6
00049c 1c06 btfss 0x6, 0 BTFSS _PORTB_bits,0
00049d 2ca3 goto 0x4a3 GOTO _00139_DS_
; .line 356; "stepmotor2.c" motor_stop();
00049e 2557 call 0x557 CALL _motor_stop
; .line 357; "stepmotor2.c" function = func_idle;
00049f 1683 bsf 0x3, 0x5 BANKSEL _function
0004a0 1303 bcf 0x3, 0x6
0004a1 01d0 clrf 0x50 CLRF _function
0004a2 2cca goto 0x4ca GOTO _00140_DS_
_00139_DS_
; .line 359; "stepmotor2.c" currentPosition.ival--;
0004a3 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004a4 1303 bcf 0x3, 0x6
0004a5 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0004a6 1283 bcf 0x3, 0x5 BANKSEL r0x1015
0004a7 1303 bcf 0x3, 0x6
0004a8 00c5 movwf 0x45 MOVWF r0x1015
0004a9 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004aa 1303 bcf 0x3, 0x6
0004ab 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0004ac 1283 bcf 0x3, 0x5 BANKSEL r0x1016
0004ad 1303 bcf 0x3, 0x6
0004ae 00c6 movwf 0x46 MOVWF r0x1016
0004af 30ff movlw 0xff MOVLW 0xff
0004b0 07c5 addwf 0x45, f ADDWF r0x1015,F
0004b1 1c03 btfss 0x3, 0 BTFSS STATUS,0
0004b2 03c6 decf 0x46, f DECF r0x1016,F
;gen.c:9306: size=1/2, offset=0, AOP_TYPE(res)=13
0004b3 0845 movf 0x45, w MOVF r0x1015,W
0004b4 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004b5 1303 bcf 0x3, 0x6
0004b6 00d3 movwf 0x53 MOVWF (_currentPosition + 0)
;gen.c:9306: size=0/2, offset=1, AOP_TYPE(res)=13
0004b7 1283 bcf 0x3, 0x5 BANKSEL r0x1016
0004b8 1303 bcf 0x3, 0x6
0004b9 0846 movf 0x46, w MOVF r0x1016,W
0004ba 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004bb 1303 bcf 0x3, 0x6
0004bc 00d4 movwf 0x54 MOVWF (_currentPosition + 1)
; .line 360; "stepmotor2.c" coilPosition = (coilPosition + stepCount - 1) & (stepCount - 1);
0004bd 3003 movlw 0x3 MOVLW 0x03
0004be 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
0004bf 1303 bcf 0x3, 0x6
0004c0 074f addwf 0x4f, w ADDWF _coilPosition,W
0004c1 1283 bcf 0x3, 0x5 BANKSEL r0x1015
0004c2 1303 bcf 0x3, 0x6
0004c3 00c5 movwf 0x45 MOVWF r0x1015
0004c4 3003 movlw 0x3 MOVLW 0x03
0004c5 0545 andwf 0x45, w ANDWF r0x1015,W
0004c6 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
0004c7 1303 bcf 0x3, 0x6
0004c8 00cf movwf 0x4f MOVWF _coilPosition
; .line 361; "stepmotor2.c" motor_click();
0004c9 2501 call 0x501 CALL _motor_click
_00140_DS_
0004ca 1683 bsf 0x3, 0x5 BANKSEL _coilPosition;
0004cb 1303 bcf 0x3, 0x6
0004cc 0008 return RETURN
; exit point of _reverse1
;***
; pBlock Stats: dbName = C
;***
;entry: _forward1 ;Function start
; 2 exit points
;has an exit
;functions called:
; _flashLED
; _motor_stop
; _motor_click
; _flashLED
; _motor_stop
; _motor_click
;2 compiler assigned registers:
; r0x1015
; r0x1016
;; Starting pCode block
_forward1 ;Function start
; 2 exit points
; .line 333; "stepmotor2.c" flashLED();
0004cd 158a bsf 0xa, 0x3 PAGESEL _flashLED
0004ce 240d call 0x40d CALL _flashLED
0004cf 118a bcf 0xa, 0x3 PAGESEL $
; .line 334; "stepmotor2.c" if (MAXSENSOR) {
0004d0 1283 bcf 0x3, 0x5 BANKSEL _PORTA_bits
0004d1 1303 bcf 0x3, 0x6
0004d2 1e85 btfss 0x5, 0x5 BTFSS _PORTA_bits,5
0004d3 2cd9 goto 0x4d9 GOTO _00132_DS_
; .line 336; "stepmotor2.c" motor_stop();
0004d4 2557 call 0x557 CALL _motor_stop
; .line 337; "stepmotor2.c" function = func_idle;
0004d5 1683 bsf 0x3, 0x5 BANKSEL _function
0004d6 1303 bcf 0x3, 0x6
0004d7 01d0 clrf 0x50 CLRF _function
0004d8 2cfe goto 0x4fe GOTO _00133_DS_
_00132_DS_
; .line 339; "stepmotor2.c" currentPosition.ival++;
0004d9 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004da 1303 bcf 0x3, 0x6
0004db 0853 movf 0x53, w MOVF (_currentPosition + 0),W
0004dc 1283 bcf 0x3, 0x5 BANKSEL r0x1015
0004dd 1303 bcf 0x3, 0x6
0004de 00c5 movwf 0x45 MOVWF r0x1015
0004df 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004e0 1303 bcf 0x3, 0x6
0004e1 0854 movf 0x54, w MOVF (_currentPosition + 1),W
0004e2 1283 bcf 0x3, 0x5 BANKSEL r0x1016
0004e3 1303 bcf 0x3, 0x6
0004e4 00c6 movwf 0x46 MOVWF r0x1016
0004e5 0ac5 incf 0x45, f INCF r0x1015,F
0004e6 1903 btfsc 0x3, 0x2 BTFSC STATUS,2
0004e7 0ac6 incf 0x46, f INCF r0x1016,F
;gen.c:9306: size=1/2, offset=0, AOP_TYPE(res)=13
0004e8 0845 movf 0x45, w MOVF r0x1015,W
0004e9 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004ea 1303 bcf 0x3, 0x6
0004eb 00d3 movwf 0x53 MOVWF (_currentPosition + 0)
;gen.c:9306: size=0/2, offset=1, AOP_TYPE(res)=13
0004ec 1283 bcf 0x3, 0x5 BANKSEL r0x1016
0004ed 1303 bcf 0x3, 0x6
0004ee 0846 movf 0x46, w MOVF r0x1016,W
0004ef 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
0004f0 1303 bcf 0x3, 0x6
0004f1 00d4 movwf 0x54 MOVWF (_currentPosition + 1)
; .line 340; "stepmotor2.c" coilPosition = (coilPosition + 1) & (stepCount - 1);
0004f2 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
0004f3 1303 bcf 0x3, 0x6
0004f4 0a4f incf 0x4f, w INCF _coilPosition,W
0004f5 1283 bcf 0x3, 0x5 BANKSEL r0x1015
0004f6 1303 bcf 0x3, 0x6
0004f7 00c5 movwf 0x45 MOVWF r0x1015
0004f8 3003 movlw 0x3 MOVLW 0x03
0004f9 0545 andwf 0x45, w ANDWF r0x1015,W
0004fa 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
0004fb 1303 bcf 0x3, 0x6
0004fc 00cf movwf 0x4f MOVWF _coilPosition
; .line 341; "stepmotor2.c" motor_click();
0004fd 2501 call 0x501 CALL _motor_click
_00133_DS_
0004fe 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
0004ff 1303 bcf 0x3, 0x6
000500 0008 return RETURN
; exit point of _forward1
;***
; pBlock Stats: dbName = C
;***
;entry: _motor_click ;Function start
; 2 exit points
;has an exit
;1 compiler assigned register :
; r0x1017
;; Starting pCode block
_motor_click ;Function start
; 2 exit points
; .line 192; "stepmotor2.c" cp = coilPosition << 1;
000501 1003 bcf 0x3, 0 BCF STATUS,0
000502 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
000503 1303 bcf 0x3, 0x6
000504 0d4f rlf 0x4f, w RLF _coilPosition,W
000505 1283 bcf 0x3, 0x5 BANKSEL r0x1017
000506 1303 bcf 0x3, 0x6
000507 00c4 movwf 0x44 MOVWF r0x1017
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x8=8), size=1
; .line 194; "stepmotor2.c" switch(cp) {
000508 3008 movlw 0x8 MOVLW 0x08
000509 0244 subwf 0x44, w SUBWF r0x1017,W
00050a 1803 btfsc 0x3, 0 BTFSC STATUS,0
00050b 2d54 goto 0x554 GOTO _00121_DS_
;genSkipc:3694: created from rifx:0xbf8c33d0
00050c 3005 movlw 0x5 MOVLW HIGH(_00126_DS_)
00050d 008a movwf 0xa MOVWF PCLATH
00050e 3015 movlw 0x15 MOVLW _00126_DS_
00050f 0744 addwf 0x44, w ADDWF r0x1017,W
000510 1803 btfsc 0x3, 0 BTFSC STATUS,0
000511 0a8a incf 0xa, f INCF PCLATH,F
000512 1283 bcf 0x3, 0x5 BANKSEL PCL
000513 1303 bcf 0x3, 0x6
000514 0082 movwf 0x2 MOVWF PCL
_00126_DS_
000515 2d4e goto 0x54e GOTO _00120_DS_
000516 2d47 goto 0x547 GOTO _00119_DS_
000517 2d40 goto 0x540 GOTO _00118_DS_
000518 2d39 goto 0x539 GOTO _00117_DS_
000519 2d32 goto 0x532 GOTO _00116_DS_
00051a 2d2b goto 0x52b GOTO _00115_DS_
00051b 2d24 goto 0x524 GOTO _00114_DS_
00051c 2d1d goto 0x51d GOTO _00113_DS_
_00113_DS_
; .line 197; "stepmotor2.c" RB5 = 1;
00051d 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00051e 1303 bcf 0x3, 0x6
00051f 1686 bsf 0x6, 0x5 BSF _PORTB_bits,5
; .line 198; "stepmotor2.c" RB4 = 0;
000520 1206 bcf 0x6, 0x4 BCF _PORTB_bits,4
; .line 199; "stepmotor2.c" RA2 = 1;
000521 1505 bsf 0x5, 0x2 BSF _PORTA_bits,2
; .line 200; "stepmotor2.c" RA0 = 0;
000522 1005 bcf 0x5, 0 BCF _PORTA_bits,0
; .line 201; "stepmotor2.c" break;
000523 2d54 goto 0x554 GOTO _00121_DS_
_00114_DS_
; .line 204; "stepmotor2.c" RB5 = 1;
000524 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
000525 1303 bcf 0x3, 0x6
000526 1686 bsf 0x6, 0x5 BSF _PORTB_bits,5
; .line 205; "stepmotor2.c" RB4 = 0;
000527 1206 bcf 0x6, 0x4 BCF _PORTB_bits,4
; .line 206; "stepmotor2.c" RA2 = 0;
000528 1105 bcf 0x5, 0x2 BCF _PORTA_bits,2
; .line 207; "stepmotor2.c" RA0 = 0;
000529 1005 bcf 0x5, 0 BCF _PORTA_bits,0
; .line 208; "stepmotor2.c" break;
00052a 2d54 goto 0x554 GOTO _00121_DS_
_00115_DS_
; .line 211; "stepmotor2.c" RB5 = 1;
00052b 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00052c 1303 bcf 0x3, 0x6
00052d 1686 bsf 0x6, 0x5 BSF _PORTB_bits,5
; .line 212; "stepmotor2.c" RB4 = 0;
00052e 1206 bcf 0x6, 0x4 BCF _PORTB_bits,4
; .line 213; "stepmotor2.c" RA2 = 0;
00052f 1105 bcf 0x5, 0x2 BCF _PORTA_bits,2
; .line 214; "stepmotor2.c" RA0 = 1;
000530 1405 bsf 0x5, 0 BSF _PORTA_bits,0
; .line 215; "stepmotor2.c" break;
000531 2d54 goto 0x554 GOTO _00121_DS_
_00116_DS_
; .line 218; "stepmotor2.c" RB5 = 0;
000532 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
000533 1303 bcf 0x3, 0x6
000534 1286 bcf 0x6, 0x5 BCF _PORTB_bits,5
; .line 219; "stepmotor2.c" RB4 = 0;
000535 1206 bcf 0x6, 0x4 BCF _PORTB_bits,4
; .line 220; "stepmotor2.c" RA2 = 0;
000536 1105 bcf 0x5, 0x2 BCF _PORTA_bits,2
; .line 221; "stepmotor2.c" RA0 = 1;
000537 1405 bsf 0x5, 0 BSF _PORTA_bits,0
; .line 222; "stepmotor2.c" break;
000538 2d54 goto 0x554 GOTO _00121_DS_
_00117_DS_
; .line 225; "stepmotor2.c" RB5 = 0;
000539 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00053a 1303 bcf 0x3, 0x6
00053b 1286 bcf 0x6, 0x5 BCF _PORTB_bits,5
; .line 226; "stepmotor2.c" RB4 = 1;
00053c 1606 bsf 0x6, 0x4 BSF _PORTB_bits,4
; .line 227; "stepmotor2.c" RA2 = 0;
00053d 1105 bcf 0x5, 0x2 BCF _PORTA_bits,2
; .line 228; "stepmotor2.c" RA0 = 1;
00053e 1405 bsf 0x5, 0 BSF _PORTA_bits,0
; .line 229; "stepmotor2.c" break;
00053f 2d54 goto 0x554 GOTO _00121_DS_
_00118_DS_
; .line 232; "stepmotor2.c" RB5 = 0;
000540 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
000541 1303 bcf 0x3, 0x6
000542 1286 bcf 0x6, 0x5 BCF _PORTB_bits,5
; .line 233; "stepmotor2.c" RB4 = 1;
000543 1606 bsf 0x6, 0x4 BSF _PORTB_bits,4
; .line 234; "stepmotor2.c" RA2 = 0;
000544 1105 bcf 0x5, 0x2 BCF _PORTA_bits,2
; .line 235; "stepmotor2.c" RA0 = 0;
000545 1005 bcf 0x5, 0 BCF _PORTA_bits,0
; .line 236; "stepmotor2.c" break;
000546 2d54 goto 0x554 GOTO _00121_DS_
_00119_DS_
; .line 239; "stepmotor2.c" RB5 = 0;
000547 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
000548 1303 bcf 0x3, 0x6
000549 1286 bcf 0x6, 0x5 BCF _PORTB_bits,5
; .line 240; "stepmotor2.c" RB4 = 1;
00054a 1606 bsf 0x6, 0x4 BSF _PORTB_bits,4
; .line 241; "stepmotor2.c" RA2 = 1;
00054b 1505 bsf 0x5, 0x2 BSF _PORTA_bits,2
; .line 242; "stepmotor2.c" RA0 = 0;
00054c 1005 bcf 0x5, 0 BCF _PORTA_bits,0
; .line 243; "stepmotor2.c" break;
00054d 2d54 goto 0x554 GOTO _00121_DS_
_00120_DS_
; .line 246; "stepmotor2.c" RB5 = 0;
00054e 1283 bcf 0x3, 0x5 BANKSEL _PORTB_bits
00054f 1303 bcf 0x3, 0x6
000550 1286 bcf 0x6, 0x5 BCF _PORTB_bits,5
; .line 247; "stepmotor2.c" RB4 = 0;
000551 1206 bcf 0x6, 0x4 BCF _PORTB_bits,4
; .line 248; "stepmotor2.c" RA2 = 1;
000552 1505 bsf 0x5, 0x2 BSF _PORTA_bits,2
; .line 249; "stepmotor2.c" RA0 = 0;
000553 1005 bcf 0x5, 0 BCF _PORTA_bits,0
_00121_DS_
000554 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
000555 1303 bcf 0x3, 0x6
000556 0008 return RETURN
; exit point of _motor_click
;***
; pBlock Stats: dbName = C
;***
;entry: _motor_stop ;Function start
; 2 exit points
;has an exit
;; Starting pCode block
_motor_stop ;Function start
; 2 exit points
; .line 169; "stepmotor2.c" PORTB = PORTB & BIN(11001111);
000557 30cf movlw 0xcf MOVLW 0xcf
000558 1283 bcf 0x3, 0x5 BANKSEL _PORTB
000559 1303 bcf 0x3, 0x6
00055a 0586 andwf 0x6, f ANDWF _PORTB,F
; .line 170; "stepmotor2.c" PORTA = PORTA & BIN(11111010);
00055b 30fa movlw 0xfa MOVLW 0xfa
00055c 0585 andwf 0x5, f ANDWF _PORTA,F
00055d 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
00055e 1303 bcf 0x3, 0x6
00055f 0008 return RETURN
; exit point of _motor_stop
;***
; pBlock Stats: dbName = C
;***
;entry: _init2 ;Function start
; 2 exit points
;has an exit
;; Starting pCode block
_init2 ;Function start
; 2 exit points
; .line 148; "stepmotor2.c" speed = 0;
000560 1683 bsf 0x3, 0x5 BANKSEL _speed
000561 1303 bcf 0x3, 0x6
000562 01d1 clrf 0x51 CLRF _speed
; .line 149; "stepmotor2.c" function = func_idle;
000563 1683 bsf 0x3, 0x5 BANKSEL _function
000564 1303 bcf 0x3, 0x6
000565 01d0 clrf 0x50 CLRF _function
; .line 150; "stepmotor2.c" coilPosition = 0;
000566 1683 bsf 0x3, 0x5 BANKSEL _coilPosition
000567 1303 bcf 0x3, 0x6
000568 01cf clrf 0x4f CLRF _coilPosition
; .line 151; "stepmotor2.c" sync_mode = sync_none;
000569 1683 bsf 0x3, 0x5 BANKSEL _sync_mode
00056a 1303 bcf 0x3, 0x6
00056b 01d3 clrf 0x53 CLRF _sync_mode
; .line 152; "stepmotor2.c" seekNotify = 255;
00056c 30ff movlw 0xff MOVLW 0xff
00056d 1683 bsf 0x3, 0x5 BANKSEL _seekNotify
00056e 1303 bcf 0x3, 0x6
00056f 00d2 movwf 0x52 MOVWF _seekNotify
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 154; "stepmotor2.c" currentPosition.bytes[0] = 0;
000570 1283 bcf 0x3, 0x5 BANKSEL _currentPosition
000571 1303 bcf 0x3, 0x6
000572 01d3 clrf 0x53 CLRF (_currentPosition + 0)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 155; "stepmotor2.c" currentPosition.bytes[1] = 0;
000573 01d4 clrf 0x54 CLRF (_currentPosition + 1)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 156; "stepmotor2.c" seekPosition.bytes[0] = 0;
000574 1283 bcf 0x3, 0x5 BANKSEL _seekPosition
000575 1303 bcf 0x3, 0x6
000576 01d5 clrf 0x55 CLRF (_seekPosition + 0)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 157; "stepmotor2.c" seekPosition.bytes[1] = 0;
000577 01d6 clrf 0x56 CLRF (_seekPosition + 1)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 158; "stepmotor2.c" maxPosition.bytes[0] = 0;
000578 1283 bcf 0x3, 0x5 BANKSEL _maxPosition
000579 1303 bcf 0x3, 0x6
00057a 01d7 clrf 0x57 CLRF (_maxPosition + 0)
;gen.c:9306: size=0/1, offset=0, AOP_TYPE(res)=13
; .line 159; "stepmotor2.c" maxPosition.bytes[1] = 0;
00057b 01d8 clrf 0x58 CLRF (_maxPosition + 1)
00057c 0008 return RETURN
; exit point of _init2
; code size estimation:
; 749+ 355 = 1104 instructions ( 2918 byte)
end
LIST
; P16F648A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
LIST
; P16F648A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
LIST
; P16F877.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
LIST
; P16F877.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
LIST
; P16F648A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
|