Files
xc8-picamp/dist/default/debug/W4_-_Pot___Rotary_-_kopie.debug.lst
2023-11-23 23:04:00 +01:00

2807 lines
140 KiB
Plaintext

Microchip MPLAB XC8 Assembler V2.45 build 20230818022343
Thu Nov 23 22:00:47 2023
Microchip MPLAB XC8 C Compiler v2.45 (Free license) build 20230818022343 Og1
1 processor 16F887
2 pagewidth 120
3 opt flic
4 psect idataBANK0,global,class=CODE,delta=2,noexec
5 psect cinit,global,class=CODE,merge=1,delta=2
6 psect bssCOMMON,global,class=COMMON,space=1,delta=1,noexec
7 psect bssBANK0,global,class=BANK0,space=1,delta=1,noexec
8 psect dataBANK0,global,class=BANK0,space=1,delta=1,noexec
9 psect inittext,global,class=CODE,delta=2
10 psect cstackCOMMON,global,class=COMMON,space=1,delta=1,noexec
11 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
12 psect maintext,global,class=CODE,split=1,delta=2
13 psect text1,local,class=CODE,merge=1,delta=2
14 psect text2,local,class=CODE,merge=1,delta=2
15 psect text3,local,class=CODE,merge=1,delta=2
16 psect text4,local,class=CODE,merge=1,delta=2,group=1
17 psect text5,local,class=CODE,merge=1,delta=2,group=1
18 psect text6,local,class=CODE,merge=1,delta=2
19 psect text7,local,class=CODE,merge=1,delta=2
20 psect text8,local,class=CODE,merge=1,delta=2
21 psect text9,local,class=CODE,merge=1,delta=2
22 psect text10,local,class=CODE,merge=1,delta=2
23 psect text11,local,class=CODE,merge=1,delta=2
24 psect intentry,global,class=CODE,delta=2
25 psect text12,local,class=CODE,merge=1,delta=2
26 psect config,global,abs,ovrld,class=CONFIG,space=4,delta=2,noexec
27 dabs 1,0x7E,2
28 0000
29 ; Generated 22/03/2023 GMT
30 ;
31 ; Copyright © 2023, Microchip Technology Inc. and its subsidiaries ("Microchip")
32 ; All rights reserved.
33 ;
34 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ ip").
35 ;
36 ; Redistribution and use in source and binary forms, with or without modification, are
37 ; permitted provided that the following conditions are met:
38 ;
39 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ t of
40 ; conditions and the following disclaimer.
41 ;
42 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ list
43 ; of conditions and the following disclaimer in the documentation and/or other
44 ; materials provided with the distribution. Publication is not required when
45 ; this file is used in an embedded application.
46 ;
47 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ is
48 ; software without specific prior written permission.
49 ;
50 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
51 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ OR
52 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ T,
53 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
54 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
55 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ RICT
56 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ SE OF
57 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
58 ;
59 ;
60 ; Code-generator required, PIC16F887 Definitions
61 ;
62 ; SFR Addresses
63 0000 ;#
64 0001 ;#
65 0002 ;#
66 0003 ;#
67 0004 ;#
68 0005 ;#
69 0006 ;#
70 0007 ;#
71 0008 ;#
72 0009 ;#
73 000A ;#
74 000B ;#
75 000C ;#
76 000D ;#
77 000E ;#
78 000E ;#
79 000F ;#
80 0010 ;#
81 0011 ;#
82 0012 ;#
83 0013 ;#
84 0014 ;#
85 0015 ;#
86 0015 ;#
87 0016 ;#
88 0017 ;#
89 0018 ;#
90 0019 ;#
91 001A ;#
92 001B ;#
93 001B ;#
94 001C ;#
95 001D ;#
96 001E ;#
97 001F ;#
98 0081 ;#
99 0085 ;#
100 0086 ;#
101 0087 ;#
102 0088 ;#
103 0089 ;#
104 008C ;#
105 008D ;#
106 008E ;#
107 008F ;#
108 0090 ;#
109 0091 ;#
110 0092 ;#
111 0093 ;#
112 0093 ;#
113 0093 ;#
114 0094 ;#
115 0095 ;#
116 0096 ;#
117 0097 ;#
118 0098 ;#
119 0099 ;#
120 009A ;#
121 009B ;#
122 009C ;#
123 009D ;#
124 009E ;#
125 009F ;#
126 0105 ;#
127 0107 ;#
128 0108 ;#
129 0109 ;#
130 010C ;#
131 010C ;#
132 010D ;#
133 010E ;#
134 010F ;#
135 0185 ;#
136 0187 ;#
137 0188 ;#
138 0189 ;#
139 018C ;#
140 018D ;#
141 0000 ;#
142 0001 ;#
143 0002 ;#
144 0003 ;#
145 0004 ;#
146 0005 ;#
147 0006 ;#
148 0007 ;#
149 0008 ;#
150 0009 ;#
151 000A ;#
152 000B ;#
153 000C ;#
154 000D ;#
155 000E ;#
156 000E ;#
157 000F ;#
158 0010 ;#
159 0011 ;#
160 0012 ;#
161 0013 ;#
162 0014 ;#
163 0015 ;#
164 0015 ;#
165 0016 ;#
166 0017 ;#
167 0018 ;#
168 0019 ;#
169 001A ;#
170 001B ;#
171 001B ;#
172 001C ;#
173 001D ;#
174 001E ;#
175 001F ;#
176 0081 ;#
177 0085 ;#
178 0086 ;#
179 0087 ;#
180 0088 ;#
181 0089 ;#
182 008C ;#
183 008D ;#
184 008E ;#
185 008F ;#
186 0090 ;#
187 0091 ;#
188 0092 ;#
189 0093 ;#
190 0093 ;#
191 0093 ;#
192 0094 ;#
193 0095 ;#
194 0096 ;#
195 0097 ;#
196 0098 ;#
197 0099 ;#
198 009A ;#
199 009B ;#
200 009C ;#
201 009D ;#
202 009E ;#
203 009F ;#
204 0105 ;#
205 0107 ;#
206 0108 ;#
207 0109 ;#
208 010C ;#
209 010C ;#
210 010D ;#
211 010E ;#
212 010F ;#
213 0185 ;#
214 0187 ;#
215 0188 ;#
216 0189 ;#
217 018C ;#
218 018D ;#
219 0000 ;#
220 0001 ;#
221 0002 ;#
222 0003 ;#
223 0004 ;#
224 0005 ;#
225 0006 ;#
226 0007 ;#
227 0008 ;#
228 0009 ;#
229 000A ;#
230 000B ;#
231 000C ;#
232 000D ;#
233 000E ;#
234 000E ;#
235 000F ;#
236 0010 ;#
237 0011 ;#
238 0012 ;#
239 0013 ;#
240 0014 ;#
241 0015 ;#
242 0015 ;#
243 0016 ;#
244 0017 ;#
245 0018 ;#
246 0019 ;#
247 001A ;#
248 001B ;#
249 001B ;#
250 001C ;#
251 001D ;#
252 001E ;#
253 001F ;#
254 0081 ;#
255 0085 ;#
256 0086 ;#
257 0087 ;#
258 0088 ;#
259 0089 ;#
260 008C ;#
261 008D ;#
262 008E ;#
263 008F ;#
264 0090 ;#
265 0091 ;#
266 0092 ;#
267 0093 ;#
268 0093 ;#
269 0093 ;#
270 0094 ;#
271 0095 ;#
272 0096 ;#
273 0097 ;#
274 0098 ;#
275 0099 ;#
276 009A ;#
277 009B ;#
278 009C ;#
279 009D ;#
280 009E ;#
281 009F ;#
282 0105 ;#
283 0107 ;#
284 0108 ;#
285 0109 ;#
286 010C ;#
287 010C ;#
288 010D ;#
289 010E ;#
290 010F ;#
291 0185 ;#
292 0187 ;#
293 0188 ;#
294 0189 ;#
295 018C ;#
296 018D ;#
297 0000 ;#
298 0001 ;#
299 0002 ;#
300 0003 ;#
301 0004 ;#
302 0005 ;#
303 0006 ;#
304 0007 ;#
305 0008 ;#
306 0009 ;#
307 000A ;#
308 000B ;#
309 000C ;#
310 000D ;#
311 000E ;#
312 000E ;#
313 000F ;#
314 0010 ;#
315 0011 ;#
316 0012 ;#
317 0013 ;#
318 0014 ;#
319 0015 ;#
320 0015 ;#
321 0016 ;#
322 0017 ;#
323 0018 ;#
324 0019 ;#
325 001A ;#
326 001B ;#
327 001B ;#
328 001C ;#
329 001D ;#
330 001E ;#
331 001F ;#
332 0081 ;#
333 0085 ;#
334 0086 ;#
335 0087 ;#
336 0088 ;#
337 0089 ;#
338 008C ;#
339 008D ;#
340 008E ;#
341 008F ;#
342 0090 ;#
343 0091 ;#
344 0092 ;#
345 0093 ;#
346 0093 ;#
347 0093 ;#
348 0094 ;#
349 0095 ;#
350 0096 ;#
351 0097 ;#
352 0098 ;#
353 0099 ;#
354 009A ;#
355 009B ;#
356 009C ;#
357 009D ;#
358 009E ;#
359 009F ;#
360 0105 ;#
361 0107 ;#
362 0108 ;#
363 0109 ;#
364 010C ;#
365 010C ;#
366 010D ;#
367 010E ;#
368 010F ;#
369 0185 ;#
370 0187 ;#
371 0188 ;#
372 0189 ;#
373 018C ;#
374 018D ;#
375 0000 ;#
376 0001 ;#
377 0002 ;#
378 0003 ;#
379 0004 ;#
380 0005 ;#
381 0006 ;#
382 0007 ;#
383 0008 ;#
384 0009 ;#
385 000A ;#
386 000B ;#
387 000C ;#
388 000D ;#
389 000E ;#
390 000E ;#
391 000F ;#
392 0010 ;#
393 0011 ;#
394 0012 ;#
395 0013 ;#
396 0014 ;#
397 0015 ;#
398 0015 ;#
399 0016 ;#
400 0017 ;#
401 0018 ;#
402 0019 ;#
403 001A ;#
404 001B ;#
405 001B ;#
406 001C ;#
407 001D ;#
408 001E ;#
409 001F ;#
410 0081 ;#
411 0085 ;#
412 0086 ;#
413 0087 ;#
414 0088 ;#
415 0089 ;#
416 008C ;#
417 008D ;#
418 008E ;#
419 008F ;#
420 0090 ;#
421 0091 ;#
422 0092 ;#
423 0093 ;#
424 0093 ;#
425 0093 ;#
426 0094 ;#
427 0095 ;#
428 0096 ;#
429 0097 ;#
430 0098 ;#
431 0099 ;#
432 009A ;#
433 009B ;#
434 009C ;#
435 009D ;#
436 009E ;#
437 009F ;#
438 0105 ;#
439 0107 ;#
440 0108 ;#
441 0109 ;#
442 010C ;#
443 010C ;#
444 010D ;#
445 010E ;#
446 010F ;#
447 0185 ;#
448 0187 ;#
449 0188 ;#
450 0189 ;#
451 018C ;#
452 018D ;#
453
454 psect idataBANK0
455 0484 __pidataBANK0:
456
457 ;initializer for pic_init@F1595
458 0484 3401 retlw 1
459 0485 3401 retlw 1
460 0486 3407 retlw 7
461 0487 3400 retlw 0
462 0488 3400 retlw 0
463 0489 3400 retlw 0
464 048A 3401 retlw 1
465
466 ;initializer for pic_init@F1593
467 048B 3401 retlw 1
468 048C 3401 retlw 1
469 048D 3400 retlw 0
470 048E 3400 retlw 0
471 048F 3401 retlw 1
472 0490 3401 retlw 1
473
474 ;initializer for pic_init@F1591
475 0491 3401 retlw 1
476 0492 3403 retlw 3
477 0493 3401 retlw 1
478 001E _ADRESH set 30
479 0006 _PORTB set 6
480 0006 _PORTBbits set 6
481 0005 _PORTA set 5
482 001F _ADCON0bits set 31
483 000B _INTCONbits set 11
484 00F9 _GO set 249
485 009E _ADRESL set 158
486 0089 _TRISEbits set 137
487 0086 _TRISBbits set 134
488 0085 _TRISA set 133
489 009F _ADCON1bits set 159
490 0081 _OPTION_REGbits set 129
491 0096 _IOCBbits set 150
492 008F _OSCCONbits set 143
493 0188 _ANSELbits set 392
494 0189 _ANSELH set 393
495 0188 _ANSEL set 392
496
497 psect cinit
498 07E4 start_initialization:
499 ; #config settings
500
501 07E4 __initialization:
502
503 ; Initialize objects allocated to BANK0
504 07E4 1383 bcf 3,7 ;select IRP bank0
505 07E5 3053 movlw low (__pdataBANK0+16)
506 07E6 00FD movwf btemp+-1
507 07E7 3004 movlw high __pidataBANK0
508 07E8 00FE movwf btemp
509 07E9 3084 movlw low __pidataBANK0
510 07EA 00FF movwf btemp+1
511 07EB 3043 movlw low __pdataBANK0
512 07EC 0084 movwf 4
513 07ED 120A 118A 24AA 120A 118A fcall init_ram0
514
515 ; Clear objects allocated to BANK0
516 07F2 01D3 clrf __pbssBANK0& (0+127)
517 07F3 01D4 clrf (__pbssBANK0+1)& (0+127)
518 07F4 01D5 clrf (__pbssBANK0+2)& (0+127)
519 07F5 01D6 clrf (__pbssBANK0+3)& (0+127)
520 07F6 01D7 clrf (__pbssBANK0+4)& (0+127)
521 07F7 01D8 clrf (__pbssBANK0+5)& (0+127)
522 07F8 01D9 clrf (__pbssBANK0+6)& (0+127)
523 07F9 01DA clrf (__pbssBANK0+7)& (0+127)
524 07FA 01DB clrf (__pbssBANK0+8)& (0+127)
525
526 ; Clear objects allocated to COMMON
527 07FB 01FD clrf __pbssCOMMON& (0+127)
528 07FC end_of_initialization:
529 ;End of C runtime variable initialization code
530
531 07FC __end_of__initialization:
532 07FC 0183 clrf 3
533 07FD 120A 118A 2C77 ljmp _main ;jump to C main() function
534
535 psect bssCOMMON
536 007D __pbssCOMMON:
537 007D _count:
538 007D ds 1
539
540 psect bssBANK0
541 0053 __pbssBANK0:
542 0053 pic_loop@F1586:
543 0053 ds 8
544 005B parse_rotary@prevState:
545 005B ds 1
546
547 psect dataBANK0
548 0043 __pdataBANK0:
549 0043 pic_init@F1595:
550 0043 ds 7
551 004A pic_init@F1593:
552 004A ds 6
553 0050 pic_init@F1591:
554 0050 ds 3
555
556 psect inittext
557 04A6 init_fetch0:
558 ; Called with low address in FSR and high address in W
559
560 04A6 087E movf btemp,w
561 04A7 008A movwf 10
562 04A8 087F movf btemp+1,w
563 04A9 0082 movwf 2
564 04AA init_ram0:
565 ;Called with:
566 ; high address of idata address in btemp
567 ; low address of idata address in btemp+1
568 ; low address of data in FSR
569 ; high address + 1 of data in btemp-1
570
571 04AA 120A 118A 24A6 120A 118A fcall init_fetch0
572 04AF 0080 movwf 0
573 04B0 0A84 incf 4,f
574 04B1 0804 movf 4,w
575 04B2 067D xorwf btemp+-1,w
576 04B3 1903 btfsc 3,2
577 04B4 3400 retlw 0
578 04B5 0AFF incf btemp+1,f
579 04B6 1903 btfsc 3,2
580 04B7 0AFE incf btemp,f
581 04B8 2CAA goto init_ram0
582
583 psect cstackCOMMON
584 0071 __pcstackCOMMON:
585 0071 ?_pic_init:
586 0071 ?_pic_loop:
587 ; 1 bytes @ 0x0
588
589 0071 ?_init_gpio:
590 ; 1 bytes @ 0x0
591
592 0071 ?_parse_rotary:
593 ; 1 bytes @ 0x0
594
595 0071 ?_main:
596 ; 1 bytes @ 0x0
597
598 0071 ?_isr:
599 ; 1 bytes @ 0x0
600
601 0071 parse_rotary@pinB:
602 ; 1 bytes @ 0x0
603
604
605 ; 1 bytes @ 0x0
606 0071 ds 1
607 0072 parse_rotary@counter:
608
609 ; 1 bytes @ 0x1
610 0072 ds 1
611 0073 parse_rotary@max:
612
613 ; 1 bytes @ 0x2
614 0073 ds 1
615 0074 parse_rotary@min:
616
617 ; 1 bytes @ 0x3
618 0074 ds 1
619 0075 ??_parse_rotary:
620
621 ; 1 bytes @ 0x4
622 0075 ds 1
623 0076 parse_rotary@pinA:
624
625 ; 1 bytes @ 0x5
626 0076 ds 1
627 0077 parse_rotary@state:
628
629 ; 1 bytes @ 0x6
630 0077 ds 1
631 0078 ??_isr:
632
633 ; 1 bytes @ 0x7
634 0078 ds 5
635
636 psect cstackBANK0
637 0020 __pcstackBANK0:
638 0020 ??_init_gpio:
639 0020 ?_init_osc:
640 ; 1 bytes @ 0x0
641
642 0020 ?_init_int:
643 ; 1 bytes @ 0x0
644
645 0020 ?_init_adc:
646 ; 1 bytes @ 0x0
647
648 0020 ?_read_potentiometer:
649 ; 1 bytes @ 0x0
650
651 0020 ?___wmul:
652 ; 2 bytes @ 0x0
653
654 0020 ?___awdiv:
655 ; 2 bytes @ 0x0
656
657 0020 ___wmul@multiplier:
658 ; 2 bytes @ 0x0
659
660 0020 ___awdiv@divisor:
661 ; 2 bytes @ 0x0
662
663 0020 init_osc@config:
664 ; 2 bytes @ 0x0
665
666 0020 init_int@config:
667 ; 3 bytes @ 0x0
668
669 0020 init_adc@config:
670 ; 6 bytes @ 0x0
671
672
673 ; 7 bytes @ 0x0
674 0020 ds 2
675 0022 ??_read_potentiometer:
676 0022 read_potentiometer@result:
677 ; 1 bytes @ 0x2
678
679 0022 ___wmul@multiplicand:
680 ; 2 bytes @ 0x2
681
682 0022 ___awdiv@dividend:
683 ; 2 bytes @ 0x2
684
685
686 ; 2 bytes @ 0x2
687 0022 ds 1
688 0023 ??_init_osc:
689
690 ; 1 bytes @ 0x3
691 0023 ds 1
692 0024 ??___wmul:
693 0024 ??___awdiv:
694 ; 1 bytes @ 0x4
695
696 0024 ___awdiv@counter:
697 ; 1 bytes @ 0x4
698
699 0024 ___wmul@product:
700 ; 1 bytes @ 0x4
701
702
703 ; 2 bytes @ 0x4
704 0024 ds 1
705 0025 ___awdiv@sign:
706
707 ; 1 bytes @ 0x5
708 0025 ds 1
709 0026 ??_init_int:
710 0026 ___awdiv@quotient:
711 ; 1 bytes @ 0x6
712
713
714 ; 2 bytes @ 0x6
715 0026 ds 1
716 0027 ??_init_adc:
717
718 ; 1 bytes @ 0x7
719 0027 ds 1
720 0028 ??_pic_init:
721 0028 ?_populate_step_array:
722 ; 1 bytes @ 0x8
723
724 0028 populate_step_array@size:
725 ; 1 bytes @ 0x8
726
727
728 ; 2 bytes @ 0x8
729 0028 ds 2
730 002A populate_step_array@potLimit:
731
732 ; 2 bytes @ 0xA
733 002A ds 2
734 002C ??_populate_step_array:
735 002C pic_init@adc_config:
736 ; 1 bytes @ 0xC
737
738
739 ; 7 bytes @ 0xC
740 002C ds 2
741 002E populate_step_array@i:
742
743 ; 2 bytes @ 0xE
744 002E ds 2
745 0030 populate_step_array@array:
746
747 ; 1 bytes @ 0x10
748 0030 ds 1
749 0031 ??_pic_loop:
750
751 ; 1 bytes @ 0x11
752 0031 ds 2
753 0033 pic_init@int_config:
754
755 ; 6 bytes @ 0x13
756 0033 ds 4
757 0037 pic_loop@stepArray:
758
759 ; 8 bytes @ 0x17
760 0037 ds 2
761 0039 pic_init@osc_config:
762
763 ; 3 bytes @ 0x19
764 0039 ds 6
765 003F pic_loop@result:
766
767 ; 2 bytes @ 0x1F
768 003F ds 2
769 0041 pic_loop@i:
770
771 ; 2 bytes @ 0x21
772 0041 ds 2
773 0043 ??_main:
774
775 psect maintext
776 0477 __pmaintext:
777 ; 1 bytes @ 0x23
778 ;;
779 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0
780 ;;
781 ;; *************** function _main *****************
782 ;; Defined at:
783 ;; line 18 in file "src/main.c"
784 ;; Parameters: Size Location Type
785 ;; None
786 ;; Auto vars: Size Location Type
787 ;; None
788 ;; Return value: Size Location Type
789 ;; 1 wreg void
790 ;; Registers used:
791 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
792 ;; Tracked objects:
793 ;; On entry : B00/0
794 ;; On exit : 0/0
795 ;; Unchanged: 0/0
796 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
797 ;; Params: 0 0 0 0 0
798 ;; Locals: 0 0 0 0 0
799 ;; Temps: 0 0 0 0 0
800 ;; Totals: 0 0 0 0 0
801 ;;Total ram usage: 0 bytes
802 ;; Hardware stack levels required when called: 5
803 ;; This function calls:
804 ;; _pic_init
805 ;; _pic_loop
806 ;; This function is called by:
807 ;; Startup code after reset
808 ;; This function uses a non-reentrant model
809 ;;
810
811 0477 _main:
812 ;psect for function _main
813
814 0477 l1072:
815 ;incstack = 0
816 ; Regs used in _main: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
817
818
819 ;src/main.c: 20: pic_init();
820 0477 120A 118A 26CA 120A 118A fcall _pic_init
821 047C l1074:
822
823 ;src/main.c: 23: pic_loop();
824 047C 120A 118A 2743 120A 118A fcall _pic_loop
825 0481 l75:
826 0481 120A 118A 2810 ljmp start
827 0484 __end_of_main:
828
829 psect text1
830 0743 __ptext1:
831 ;; *************** function _pic_loop *****************
832 ;; Defined at:
833 ;; line 26 in file "src/main.c"
834 ;; Parameters: Size Location Type
835 ;; None
836 ;; Auto vars: Size Location Type
837 ;; i 2 33[BANK0 ] int
838 ;; result 2 31[BANK0 ] int
839 ;; stepArray 8 23[BANK0 ] int [4]
840 ;; Return value: Size Location Type
841 ;; 1 wreg void
842 ;; Registers used:
843 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
844 ;; Tracked objects:
845 ;; On entry : 0/0
846 ;; On exit : 0/0
847 ;; Unchanged: 0/0
848 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
849 ;; Params: 0 0 0 0 0
850 ;; Locals: 0 12 0 0 0
851 ;; Temps: 0 6 0 0 0
852 ;; Totals: 0 18 0 0 0
853 ;;Total ram usage: 18 bytes
854 ;; Hardware stack levels used: 1
855 ;; Hardware stack levels required when called: 4
856 ;; This function calls:
857 ;; _populate_step_array
858 ;; _read_potentiometer
859 ;; This function is called by:
860 ;; _main
861 ;; This function uses a non-reentrant model
862 ;;
863
864 0743 _pic_loop:
865 ;psect for function _pic_loop
866
867 0743 l1022:
868 ;incstack = 0
869 ; Regs used in _pic_loop: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
870
871
872 ;src/main.c: 28: int stepArray[4] = {0};
873 0743 3037 movlw pic_loop@stepArray& (0+255)
874 0744 0084 movwf 4
875 0745 3008 movlw 8
876 0746 00FF movwf btemp+1
877 0747 u620:
878 0747 1383 bcf 3,7 ;select IRP bank0
879 0748 0180 clrf 0
880 0749 0A84 incf 4,f
881 074A 0BFF decfsz btemp+1,f
882 074B 2F47 goto u620
883 074C l1024:
884
885 ;src/main.c: 29: populate_step_array(stepArray, 4, 1023);
886 074C 3004 movlw 4
887 074D 1283 bcf 3,5 ;RP0=0, select bank0
888 074E 1303 bcf 3,6 ;RP1=0, select bank0
889 074F 00A8 movwf populate_step_array@size
890 0750 3000 movlw 0
891 0751 00A9 movwf populate_step_array@size+1
892 0752 30FF movlw 255
893 0753 00AA movwf populate_step_array@potLimit
894 0754 3003 movlw 3
895 0755 00AB movwf populate_step_array@potLimit+1
896 0756 3037 movlw (low (pic_loop@stepArray| 0))& (0+255)
897 0757 120A 118A 2605 120A 118A fcall _populate_step_array
898 075C l1026:
899
900 ;src/main.c: 33: int result = read_potentiometer();
901 075C 120A 118A 24B9 120A 118A fcall _read_potentiometer
902 0761 1283 bcf 3,5 ;RP0=0, select bank0
903 0762 1303 bcf 3,6 ;RP1=0, select bank0
904 0763 0821 movf ?_read_potentiometer+1,w
905 0764 00C0 movwf pic_loop@result+1
906 0765 0820 movf ?_read_potentiometer,w
907 0766 00BF movwf pic_loop@result
908 0767 l1028:
909
910 ;src/main.c: 39: for (int i = 0; i < 4; i++) {
911 0767 01C1 clrf pic_loop@i
912 0768 01C2 clrf pic_loop@i+1
913 0769 l1034:
914
915 ;src/main.c: 40: if (result > (stepArray[i] - 2)) {
916 0769 1283 bcf 3,5 ;RP0=0, select bank0
917 076A 1303 bcf 3,6 ;RP1=0, select bank0
918 076B 0841 movf pic_loop@i,w
919 076C 00B1 movwf ??_pic_loop
920 076D 0731 addwf ??_pic_loop,w
921 076E 3E37 addlw (low (pic_loop@stepArray| 0))& (0+255)
922 076F 0084 movwf 4
923 0770 1383 bcf 3,7 ;select IRP bank0
924 0771 0800 movf 0,w
925 0772 00B2 movwf ??_pic_loop+1
926 0773 0A84 incf 4,f
927 0774 0800 movf 0,w
928 0775 00B3 movwf ??_pic_loop+2
929 0776 0832 movf ??_pic_loop+1,w
930 0777 3EFE addlw 254
931 0778 00B4 movwf ??_pic_loop+3
932 0779 0833 movf ??_pic_loop+2,w
933 077A 1803 skipnc
934 077B 3E01 addlw 1
935 077C 3EFF addlw 255
936 077D 00B5 movwf ??_pic_loop+4
937 077E 0835 movf ??_pic_loop+4,w
938 077F 3A80 xorlw 128
939 0780 00B6 movwf ??_pic_loop+5
940 0781 0840 movf pic_loop@result+1,w
941 0782 3A80 xorlw 128
942 0783 0236 subwf ??_pic_loop+5,w
943 0784 1D03 skipz
944 0785 2F88 goto u635
945 0786 083F movf pic_loop@result,w
946 0787 0234 subwf ??_pic_loop+3,w
947 0788 u635:
948 0788 1803 skipnc
949 0789 2F8B goto u631
950 078A 2F8C goto u630
951 078B u631:
952 078B 2F9C goto l1038
953 078C u630:
954 078C l1036:
955
956 ;src/main.c: 41: PORTA = (unsigned char)(PORTA & ~(1 << i));
957 078C 3001 movlw 1
958 078D 1283 bcf 3,5 ;RP0=0, select bank0
959 078E 1303 bcf 3,6 ;RP1=0, select bank0
960 078F 00B1 movwf ??_pic_loop
961 0790 0A41 incf pic_loop@i,w
962 0791 2F94 goto u644
963 0792 u645:
964 0792 1003 clrc
965 0793 0DB1 rlf ??_pic_loop,f
966 0794 u644:
967 0794 3EFF addlw -1
968 0795 1D03 skipz
969 0796 2F92 goto u645
970 0797 0831 movf ??_pic_loop,w
971 0798 3AFF xorlw 255
972 0799 0505 andwf 5,w ;volatile
973 079A 0085 movwf 5 ;volatile
974
975 ;src/main.c: 42: } else if (result <= (stepArray[i] - 2)) {
976 079B 2FCD goto l1042
977 079C l1038:
978 079C 1283 bcf 3,5 ;RP0=0, select bank0
979 079D 1303 bcf 3,6 ;RP1=0, select bank0
980 079E 0841 movf pic_loop@i,w
981 079F 00B1 movwf ??_pic_loop
982 07A0 0731 addwf ??_pic_loop,w
983 07A1 3E37 addlw (low (pic_loop@stepArray| 0))& (0+255)
984 07A2 0084 movwf 4
985 07A3 1383 bcf 3,7 ;select IRP bank0
986 07A4 0800 movf 0,w
987 07A5 00B2 movwf ??_pic_loop+1
988 07A6 0A84 incf 4,f
989 07A7 0800 movf 0,w
990 07A8 00B3 movwf ??_pic_loop+2
991 07A9 0832 movf ??_pic_loop+1,w
992 07AA 3EFE addlw 254
993 07AB 00B4 movwf ??_pic_loop+3
994 07AC 0833 movf ??_pic_loop+2,w
995 07AD 1803 skipnc
996 07AE 3E01 addlw 1
997 07AF 3EFF addlw 255
998 07B0 00B5 movwf ??_pic_loop+4
999 07B1 0835 movf ??_pic_loop+4,w
1000 07B2 3A80 xorlw 128
1001 07B3 00B6 movwf ??_pic_loop+5
1002 07B4 0840 movf pic_loop@result+1,w
1003 07B5 3A80 xorlw 128
1004 07B6 0236 subwf ??_pic_loop+5,w
1005 07B7 1D03 skipz
1006 07B8 2FBB goto u655
1007 07B9 083F movf pic_loop@result,w
1008 07BA 0234 subwf ??_pic_loop+3,w
1009 07BB u655:
1010 07BB 1C03 skipc
1011 07BC 2FBE goto u651
1012 07BD 2FBF goto u650
1013 07BE u651:
1014 07BE 2FCD goto l1042
1015 07BF u650:
1016 07BF l1040:
1017
1018 ;src/main.c: 43: PORTA = (unsigned char)(PORTA | (1 << i));
1019 07BF 3001 movlw 1
1020 07C0 1283 bcf 3,5 ;RP0=0, select bank0
1021 07C1 1303 bcf 3,6 ;RP1=0, select bank0
1022 07C2 00B1 movwf ??_pic_loop
1023 07C3 0A41 incf pic_loop@i,w
1024 07C4 2FC7 goto u664
1025 07C5 u665:
1026 07C5 1003 clrc
1027 07C6 0DB1 rlf ??_pic_loop,f
1028 07C7 u664:
1029 07C7 3EFF addlw -1
1030 07C8 1D03 skipz
1031 07C9 2FC5 goto u665
1032 07CA 0831 movf ??_pic_loop,w
1033 07CB 0405 iorwf 5,w ;volatile
1034 07CC 0085 movwf 5 ;volatile
1035 07CD l1042:
1036
1037 ;src/main.c: 45: }
1038 07CD 3001 movlw 1
1039 07CE 1283 bcf 3,5 ;RP0=0, select bank0
1040 07CF 1303 bcf 3,6 ;RP1=0, select bank0
1041 07D0 07C1 addwf pic_loop@i,f
1042 07D1 1803 skipnc
1043 07D2 0AC2 incf pic_loop@i+1,f
1044 07D3 3000 movlw 0
1045 07D4 07C2 addwf pic_loop@i+1,f
1046 07D5 l1044:
1047 07D5 0842 movf pic_loop@i+1,w
1048 07D6 3A80 xorlw 128
1049 07D7 00FF movwf btemp+1
1050 07D8 3080 movlw 128
1051 07D9 027F subwf btemp+1,w
1052 07DA 1D03 skipz
1053 07DB 2FDE goto u675
1054 07DC 3004 movlw 4
1055 07DD 0241 subwf pic_loop@i,w
1056 07DE u675:
1057 07DE 1C03 skipc
1058 07DF 2FE1 goto u671
1059 07E0 2FE2 goto u670
1060 07E1 u671:
1061 07E1 2F69 goto l1034
1062 07E2 u670:
1063 07E2 2F5C goto l1026
1064 07E3 0008 return
1065 07E4 __end_of_pic_loop:
1066
1067 psect text2
1068 04B9 __ptext2:
1069 ;; *************** function _read_potentiometer *****************
1070 ;; Defined at:
1071 ;; line 10 in file "src/potentiometer.c"
1072 ;; Parameters: Size Location Type
1073 ;; None
1074 ;; Auto vars: Size Location Type
1075 ;; result 2 2[BANK0 ] int
1076 ;; Return value: Size Location Type
1077 ;; 2 0[BANK0 ] int
1078 ;; Registers used:
1079 ;; wreg
1080 ;; Tracked objects:
1081 ;; On entry : 0/0
1082 ;; On exit : 0/0
1083 ;; Unchanged: 0/0
1084 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1085 ;; Params: 0 2 0 0 0
1086 ;; Locals: 0 2 0 0 0
1087 ;; Temps: 0 0 0 0 0
1088 ;; Totals: 0 4 0 0 0
1089 ;;Total ram usage: 4 bytes
1090 ;; Hardware stack levels used: 1
1091 ;; Hardware stack levels required when called: 2
1092 ;; This function calls:
1093 ;; Nothing
1094 ;; This function is called by:
1095 ;; _pic_loop
1096 ;; This function uses a non-reentrant model
1097 ;;
1098
1099 04B9 _read_potentiometer:
1100 ;psect for function _read_potentiometer
1101
1102 04B9 l986:
1103 ;incstack = 0
1104 ; Regs used in _read_potentiometer: [wreg]
1105
1106
1107 ;src/potentiometer.c: 12: _delay((unsigned long)((5)*(500000/4000000.0)));
1108 ;src/potentiometer.c: 16: GO = 1;
1109 04B9 1283 bcf 3,5 ;RP0=0, select bank0
1110 04BA 1303 bcf 3,6 ;RP1=0, select bank0
1111 04BB 149F bsf 31,1 ;volatile
1112 04BC l139:
1113 ;src/potentiometer.c: 17: while (GO) continue;
1114
1115 04BC 189F btfsc 31,1 ;volatile
1116 04BD 2CBF goto u591
1117 04BE 2CC0 goto u590
1118 04BF u591:
1119 04BF 2CBC goto l139
1120 04C0 u590:
1121 04C0 l988:
1122
1123 ;src/potentiometer.c: 21: int result = (ADRESH * 256) + ADRESL;
1124 04C0 081E movf 30,w ;volatile
1125 04C1 00A3 movwf read_potentiometer@result+1
1126 04C2 1683 bsf 3,5 ;RP0=1, select bank1
1127 04C3 1303 bcf 3,6 ;RP1=0, select bank1
1128 04C4 081E movf 30,w ;volatile
1129 04C5 1283 bcf 3,5 ;RP0=0, select bank0
1130 04C6 1303 bcf 3,6 ;RP1=0, select bank0
1131 04C7 00A2 movwf read_potentiometer@result
1132
1133 ;src/potentiometer.c: 23: return result;
1134 04C8 0823 movf read_potentiometer@result+1,w
1135 04C9 00A1 movwf ?_read_potentiometer+1
1136 04CA 0822 movf read_potentiometer@result,w
1137 04CB 00A0 movwf ?_read_potentiometer
1138 04CC l142:
1139 04CC 0008 return
1140 04CD __end_of_read_potentiometer:
1141
1142 psect text3
1143 0605 __ptext3:
1144 ;; *************** function _populate_step_array *****************
1145 ;; Defined at:
1146 ;; line 3 in file "src/potentiometer.c"
1147 ;; Parameters: Size Location Type
1148 ;; array 1 wreg PTR int
1149 ;; -> pic_loop@stepArray(8),
1150 ;; size 2 8[BANK0 ] int
1151 ;; potLimit 2 10[BANK0 ] int
1152 ;; Auto vars: Size Location Type
1153 ;; array 1 16[BANK0 ] PTR int
1154 ;; -> pic_loop@stepArray(8),
1155 ;; i 2 14[BANK0 ] int
1156 ;; Return value: Size Location Type
1157 ;; 1 wreg void
1158 ;; Registers used:
1159 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
1160 ;; Tracked objects:
1161 ;; On entry : 0/0
1162 ;; On exit : 0/0
1163 ;; Unchanged: 0/0
1164 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1165 ;; Params: 0 4 0 0 0
1166 ;; Locals: 0 3 0 0 0
1167 ;; Temps: 0 2 0 0 0
1168 ;; Totals: 0 9 0 0 0
1169 ;;Total ram usage: 9 bytes
1170 ;; Hardware stack levels used: 1
1171 ;; Hardware stack levels required when called: 3
1172 ;; This function calls:
1173 ;; ___awdiv
1174 ;; ___wmul
1175 ;; This function is called by:
1176 ;; _pic_loop
1177 ;; This function uses a non-reentrant model
1178 ;;
1179
1180 0605 _populate_step_array:
1181 ;psect for function _populate_step_array
1182
1183
1184 ;incstack = 0
1185 ; Regs used in _populate_step_array: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack
+ ]
1186 ;populate_step_array@array stored from wreg
1187 0605 1283 bcf 3,5 ;RP0=0, select bank0
1188 0606 1303 bcf 3,6 ;RP1=0, select bank0
1189 0607 00B0 movwf populate_step_array@array
1190 0608 l976:
1191
1192 ;src/potentiometer.c: 4: array[0] = potLimit / (size + 1);
1193 0608 0828 movf populate_step_array@size,w
1194 0609 3E01 addlw 1
1195 060A 00A0 movwf ___awdiv@divisor
1196 060B 0829 movf populate_step_array@size+1,w
1197 060C 1803 skipnc
1198 060D 3E01 addlw 1
1199 060E 3E00 addlw 0
1200 060F 00A1 movwf ___awdiv@divisor+1
1201 0610 082B movf populate_step_array@potLimit+1,w
1202 0611 00A3 movwf ___awdiv@dividend+1
1203 0612 082A movf populate_step_array@potLimit,w
1204 0613 00A2 movwf ___awdiv@dividend
1205 0614 120A 118A 2661 120A 118A fcall ___awdiv
1206 0619 1283 bcf 3,5 ;RP0=0, select bank0
1207 061A 1303 bcf 3,6 ;RP1=0, select bank0
1208 061B 0830 movf populate_step_array@array,w
1209 061C 0084 movwf 4
1210 061D 0820 movf ?___awdiv,w
1211 061E 1383 bcf 3,7 ;select IRP bank0
1212 061F 0080 movwf 0
1213 0620 0A84 incf 4,f
1214 0621 0821 movf ?___awdiv+1,w
1215 0622 0080 movwf 0
1216 0623 l978:
1217
1218 ;src/potentiometer.c: 5: for (int i = 0; i < size; i++){
1219 0623 01AE clrf populate_step_array@i
1220 0624 01AF clrf populate_step_array@i+1
1221 0625 2E52 goto l984
1222 0626 l980:
1223
1224 ;src/potentiometer.c: 6: array[i] = array[0] * (i + 1);
1225 0626 1283 bcf 3,5 ;RP0=0, select bank0
1226 0627 1303 bcf 3,6 ;RP1=0, select bank0
1227 0628 082E movf populate_step_array@i,w
1228 0629 3E01 addlw 1
1229 062A 00A0 movwf ___wmul@multiplier
1230 062B 082F movf populate_step_array@i+1,w
1231 062C 1803 skipnc
1232 062D 3E01 addlw 1
1233 062E 3E00 addlw 0
1234 062F 00A1 movwf ___wmul@multiplier+1
1235 0630 0830 movf populate_step_array@array,w
1236 0631 0084 movwf 4
1237 0632 1383 bcf 3,7 ;select IRP bank0
1238 0633 0800 movf 0,w
1239 0634 00A2 movwf ___wmul@multiplicand
1240 0635 0A84 incf 4,f
1241 0636 0800 movf 0,w
1242 0637 00A3 movwf ___wmul@multiplicand+1
1243 0638 120A 118A 24CD 120A 118A fcall ___wmul
1244 063D 1283 bcf 3,5 ;RP0=0, select bank0
1245 063E 1303 bcf 3,6 ;RP1=0, select bank0
1246 063F 082E movf populate_step_array@i,w
1247 0640 00AC movwf ??_populate_step_array
1248 0641 072C addwf ??_populate_step_array,w
1249 0642 0730 addwf populate_step_array@array,w
1250 0643 00AD movwf ??_populate_step_array+1
1251 0644 082D movf ??_populate_step_array+1,w
1252 0645 0084 movwf 4
1253 0646 0820 movf ?___wmul,w
1254 0647 1383 bcf 3,7 ;select IRP bank0
1255 0648 0080 movwf 0
1256 0649 0A84 incf 4,f
1257 064A 0821 movf ?___wmul+1,w
1258 064B 0080 movwf 0
1259 064C l982:
1260
1261 ;src/potentiometer.c: 7: }
1262 064C 3001 movlw 1
1263 064D 07AE addwf populate_step_array@i,f
1264 064E 1803 skipnc
1265 064F 0AAF incf populate_step_array@i+1,f
1266 0650 3000 movlw 0
1267 0651 07AF addwf populate_step_array@i+1,f
1268 0652 l984:
1269 0652 082F movf populate_step_array@i+1,w
1270 0653 3A80 xorlw 128
1271 0654 00AC movwf ??_populate_step_array
1272 0655 0829 movf populate_step_array@size+1,w
1273 0656 3A80 xorlw 128
1274 0657 022C subwf ??_populate_step_array,w
1275 0658 1D03 skipz
1276 0659 2E5C goto u585
1277 065A 0828 movf populate_step_array@size,w
1278 065B 022E subwf populate_step_array@i,w
1279 065C u585:
1280 065C 1C03 skipc
1281 065D 2E5F goto u581
1282 065E 2E60 goto u580
1283 065F u581:
1284 065F 2E26 goto l980
1285 0660 u580:
1286 0660 l136:
1287 0660 0008 return
1288 0661 __end_of_populate_step_array:
1289
1290 psect text4
1291 04CD __ptext4:
1292 ;; *************** function ___wmul *****************
1293 ;; Defined at:
1294 ;; line 15 in file "C:\Program Files\Microchip\xc8\v2.45\pic\sources\c99\common\Umul16.c"
1295 ;; Parameters: Size Location Type
1296 ;; multiplier 2 0[BANK0 ] unsigned int
1297 ;; multiplicand 2 2[BANK0 ] unsigned int
1298 ;; Auto vars: Size Location Type
1299 ;; product 2 4[BANK0 ] unsigned int
1300 ;; Return value: Size Location Type
1301 ;; 2 0[BANK0 ] unsigned int
1302 ;; Registers used:
1303 ;; wreg, status,2, status,0
1304 ;; Tracked objects:
1305 ;; On entry : 0/0
1306 ;; On exit : 0/0
1307 ;; Unchanged: 0/0
1308 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1309 ;; Params: 0 4 0 0 0
1310 ;; Locals: 0 2 0 0 0
1311 ;; Temps: 0 0 0 0 0
1312 ;; Totals: 0 6 0 0 0
1313 ;;Total ram usage: 6 bytes
1314 ;; Hardware stack levels used: 1
1315 ;; Hardware stack levels required when called: 2
1316 ;; This function calls:
1317 ;; Nothing
1318 ;; This function is called by:
1319 ;; _populate_step_array
1320 ;; This function uses a non-reentrant model
1321 ;;
1322
1323 04CD ___wmul:
1324 ;psect for function ___wmul
1325
1326 04CD l886:
1327 ;incstack = 0
1328 ; Regs used in ___wmul: [wreg+status,2+status,0]
1329
1330 04CD 1283 bcf 3,5 ;RP0=0, select bank0
1331 04CE 1303 bcf 3,6 ;RP1=0, select bank0
1332 04CF 01A4 clrf ___wmul@product
1333 04D0 01A5 clrf ___wmul@product+1
1334 04D1 l888:
1335 04D1 1C20 btfss ___wmul@multiplier,0
1336 04D2 2CD4 goto u381
1337 04D3 2CD5 goto u380
1338 04D4 u381:
1339 04D4 2CDB goto l228
1340 04D5 u380:
1341 04D5 l890:
1342 04D5 0822 movf ___wmul@multiplicand,w
1343 04D6 07A4 addwf ___wmul@product,f
1344 04D7 1803 skipnc
1345 04D8 0AA5 incf ___wmul@product+1,f
1346 04D9 0823 movf ___wmul@multiplicand+1,w
1347 04DA 07A5 addwf ___wmul@product+1,f
1348 04DB l228:
1349 04DB 3001 movlw 1
1350 04DC u395:
1351 04DC 1003 clrc
1352 04DD 0DA2 rlf ___wmul@multiplicand,f
1353 04DE 0DA3 rlf ___wmul@multiplicand+1,f
1354 04DF 3EFF addlw -1
1355 04E0 1D03 skipz
1356 04E1 2CDC goto u395
1357 04E2 l892:
1358 04E2 3001 movlw 1
1359 04E3 u405:
1360 04E3 1003 clrc
1361 04E4 0CA1 rrf ___wmul@multiplier+1,f
1362 04E5 0CA0 rrf ___wmul@multiplier,f
1363 04E6 3EFF addlw -1
1364 04E7 1D03 skipz
1365 04E8 2CE3 goto u405
1366 04E9 l894:
1367 04E9 0820 movf ___wmul@multiplier,w
1368 04EA 0421 iorwf ___wmul@multiplier+1,w
1369 04EB 1D03 btfss 3,2
1370 04EC 2CEE goto u411
1371 04ED 2CEF goto u410
1372 04EE u411:
1373 04EE 2CD1 goto l888
1374 04EF u410:
1375 04EF l896:
1376 04EF 0825 movf ___wmul@product+1,w
1377 04F0 00A1 movwf ?___wmul+1
1378 04F1 0824 movf ___wmul@product,w
1379 04F2 00A0 movwf ?___wmul
1380 04F3 l230:
1381 04F3 0008 return
1382 04F4 __end_of___wmul:
1383
1384 psect text5
1385 0661 __ptext5:
1386 ;; *************** function ___awdiv *****************
1387 ;; Defined at:
1388 ;; line 5 in file "C:\Program Files\Microchip\xc8\v2.45\pic\sources\c99\common\awdiv.c"
1389 ;; Parameters: Size Location Type
1390 ;; divisor 2 0[BANK0 ] int
1391 ;; dividend 2 2[BANK0 ] int
1392 ;; Auto vars: Size Location Type
1393 ;; quotient 2 6[BANK0 ] int
1394 ;; sign 1 5[BANK0 ] unsigned char
1395 ;; counter 1 4[BANK0 ] unsigned char
1396 ;; Return value: Size Location Type
1397 ;; 2 0[BANK0 ] int
1398 ;; Registers used:
1399 ;; wreg, status,2, status,0, btemp+1
1400 ;; Tracked objects:
1401 ;; On entry : 0/0
1402 ;; On exit : 0/0
1403 ;; Unchanged: 0/0
1404 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1405 ;; Params: 0 4 0 0 0
1406 ;; Locals: 0 4 0 0 0
1407 ;; Temps: 0 0 0 0 0
1408 ;; Totals: 0 8 0 0 0
1409 ;;Total ram usage: 8 bytes
1410 ;; Hardware stack levels used: 1
1411 ;; Hardware stack levels required when called: 2
1412 ;; This function calls:
1413 ;; Nothing
1414 ;; This function is called by:
1415 ;; _populate_step_array
1416 ;; This function uses a non-reentrant model
1417 ;;
1418
1419 0661 ___awdiv:
1420 ;psect for function ___awdiv
1421
1422 0661 l900:
1423 ;incstack = 0
1424 ; Regs used in ___awdiv: [wreg+status,2+status,0+btemp+1]
1425
1426 0661 1283 bcf 3,5 ;RP0=0, select bank0
1427 0662 1303 bcf 3,6 ;RP1=0, select bank0
1428 0663 01A5 clrf ___awdiv@sign
1429 0664 l902:
1430 0664 1FA1 btfss ___awdiv@divisor+1,7
1431 0665 2E67 goto u421
1432 0666 2E68 goto u420
1433 0667 u421:
1434 0667 2E6F goto l908
1435 0668 u420:
1436 0668 l904:
1437 0668 09A0 comf ___awdiv@divisor,f
1438 0669 09A1 comf ___awdiv@divisor+1,f
1439 066A 0AA0 incf ___awdiv@divisor,f
1440 066B 1903 skipnz
1441 066C 0AA1 incf ___awdiv@divisor+1,f
1442 066D l906:
1443 066D 01A5 clrf ___awdiv@sign
1444 066E 0AA5 incf ___awdiv@sign,f
1445 066F l908:
1446 066F 1FA3 btfss ___awdiv@dividend+1,7
1447 0670 2E72 goto u431
1448 0671 2E73 goto u430
1449 0672 u431:
1450 0672 2E7C goto l914
1451 0673 u430:
1452 0673 l910:
1453 0673 09A2 comf ___awdiv@dividend,f
1454 0674 09A3 comf ___awdiv@dividend+1,f
1455 0675 0AA2 incf ___awdiv@dividend,f
1456 0676 1903 skipnz
1457 0677 0AA3 incf ___awdiv@dividend+1,f
1458 0678 l912:
1459 0678 3001 movlw 1
1460 0679 00FF movwf btemp+1
1461 067A 087F movf btemp+1,w
1462 067B 06A5 xorwf ___awdiv@sign,f
1463 067C l914:
1464 067C 01A6 clrf ___awdiv@quotient
1465 067D 01A7 clrf ___awdiv@quotient+1
1466 067E l916:
1467 067E 0820 movf ___awdiv@divisor,w
1468 067F 0421 iorwf ___awdiv@divisor+1,w
1469 0680 1903 btfsc 3,2
1470 0681 2E83 goto u441
1471 0682 2E84 goto u440
1472 0683 u441:
1473 0683 2EBB goto l936
1474 0684 u440:
1475 0684 l918:
1476 0684 01A4 clrf ___awdiv@counter
1477 0685 0AA4 incf ___awdiv@counter,f
1478 0686 2E92 goto l924
1479 0687 l920:
1480 0687 3001 movlw 1
1481 0688 u455:
1482 0688 1003 clrc
1483 0689 0DA0 rlf ___awdiv@divisor,f
1484 068A 0DA1 rlf ___awdiv@divisor+1,f
1485 068B 3EFF addlw -1
1486 068C 1D03 skipz
1487 068D 2E88 goto u455
1488 068E l922:
1489 068E 3001 movlw 1
1490 068F 00FF movwf btemp+1
1491 0690 087F movf btemp+1,w
1492 0691 07A4 addwf ___awdiv@counter,f
1493 0692 l924:
1494 0692 1FA1 btfss ___awdiv@divisor+1,7
1495 0693 2E95 goto u461
1496 0694 2E96 goto u460
1497 0695 u461:
1498 0695 2E87 goto l920
1499 0696 u460:
1500 0696 l926:
1501 0696 3001 movlw 1
1502 0697 u475:
1503 0697 1003 clrc
1504 0698 0DA6 rlf ___awdiv@quotient,f
1505 0699 0DA7 rlf ___awdiv@quotient+1,f
1506 069A 3EFF addlw -1
1507 069B 1D03 skipz
1508 069C 2E97 goto u475
1509 069D 0821 movf ___awdiv@divisor+1,w
1510 069E 0223 subwf ___awdiv@dividend+1,w
1511 069F 1D03 skipz
1512 06A0 2EA3 goto u485
1513 06A1 0820 movf ___awdiv@divisor,w
1514 06A2 0222 subwf ___awdiv@dividend,w
1515 06A3 u485:
1516 06A3 1C03 skipc
1517 06A4 2EA6 goto u481
1518 06A5 2EA7 goto u480
1519 06A6 u481:
1520 06A6 2EAE goto l932
1521 06A7 u480:
1522 06A7 l928:
1523 06A7 0820 movf ___awdiv@divisor,w
1524 06A8 02A2 subwf ___awdiv@dividend,f
1525 06A9 0821 movf ___awdiv@divisor+1,w
1526 06AA 1C03 skipc
1527 06AB 03A3 decf ___awdiv@dividend+1,f
1528 06AC 02A3 subwf ___awdiv@dividend+1,f
1529 06AD l930:
1530 06AD 1426 bsf ___awdiv@quotient,0
1531 06AE l932:
1532 06AE 3001 movlw 1
1533 06AF u495:
1534 06AF 1003 clrc
1535 06B0 0CA1 rrf ___awdiv@divisor+1,f
1536 06B1 0CA0 rrf ___awdiv@divisor,f
1537 06B2 3EFF addlw -1
1538 06B3 1D03 skipz
1539 06B4 2EAF goto u495
1540 06B5 l934:
1541 06B5 3001 movlw 1
1542 06B6 02A4 subwf ___awdiv@counter,f
1543 06B7 1D03 btfss 3,2
1544 06B8 2EBA goto u501
1545 06B9 2EBB goto u500
1546 06BA u501:
1547 06BA 2E96 goto l926
1548 06BB u500:
1549 06BB l936:
1550 06BB 0825 movf ___awdiv@sign,w
1551 06BC 1903 btfsc 3,2
1552 06BD 2EBF goto u511
1553 06BE 2EC0 goto u510
1554 06BF u511:
1555 06BF 2EC5 goto l940
1556 06C0 u510:
1557 06C0 l938:
1558 06C0 09A6 comf ___awdiv@quotient,f
1559 06C1 09A7 comf ___awdiv@quotient+1,f
1560 06C2 0AA6 incf ___awdiv@quotient,f
1561 06C3 1903 skipnz
1562 06C4 0AA7 incf ___awdiv@quotient+1,f
1563 06C5 l940:
1564 06C5 0827 movf ___awdiv@quotient+1,w
1565 06C6 00A1 movwf ?___awdiv+1
1566 06C7 0826 movf ___awdiv@quotient,w
1567 06C8 00A0 movwf ?___awdiv
1568 06C9 l381:
1569 06C9 0008 return
1570 06CA __end_of___awdiv:
1571
1572 psect text6
1573 06CA __ptext6:
1574 ;; *************** function _pic_init *****************
1575 ;; Defined at:
1576 ;; line 49 in file "src/main.c"
1577 ;; Parameters: Size Location Type
1578 ;; None
1579 ;; Auto vars: Size Location Type
1580 ;; adc_config 7 12[BANK0 ] struct .
1581 ;; int_config 6 19[BANK0 ] struct .
1582 ;; osc_config 3 25[BANK0 ] struct .
1583 ;; Return value: Size Location Type
1584 ;; 1 wreg void
1585 ;; Registers used:
1586 ;; wreg, fsr0l, fsr0h, status,2, status,0, pclath, cstack
1587 ;; Tracked objects:
1588 ;; On entry : 0/0
1589 ;; On exit : 0/0
1590 ;; Unchanged: 0/0
1591 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1592 ;; Params: 0 0 0 0 0
1593 ;; Locals: 0 16 0 0 0
1594 ;; Temps: 0 4 0 0 0
1595 ;; Totals: 0 20 0 0 0
1596 ;;Total ram usage: 20 bytes
1597 ;; Hardware stack levels used: 1
1598 ;; Hardware stack levels required when called: 3
1599 ;; This function calls:
1600 ;; _init_adc
1601 ;; _init_gpio
1602 ;; _init_int
1603 ;; _init_osc
1604 ;; This function is called by:
1605 ;; _main
1606 ;; This function uses a non-reentrant model
1607 ;;
1608
1609 06CA _pic_init:
1610 ;psect for function _pic_init
1611
1612 06CA l1008:
1613 ;incstack = 0
1614 ; Regs used in _pic_init: [wreg-fsr0h+status,2+status,0+pclath+cstack]
1615
1616
1617 ;src/main.c: 50: OscillatorConfig osc_config = {INTERNAL_CLK, KHZ500, INTERNAL_FOSC};
1618 06CA 1283 bcf 3,5 ;RP0=0, select bank0
1619 06CB 1303 bcf 3,6 ;RP1=0, select bank0
1620 06CC 0850 movf pic_init@F1591,w
1621 06CD 00B9 movwf pic_init@osc_config
1622 06CE 0851 movf pic_init@F1591+1,w
1623 06CF 00BA movwf pic_init@osc_config+1
1624 06D0 0852 movf pic_init@F1591+2,w
1625 06D1 00BB movwf pic_init@osc_config+2
1626 06D2 l1010:
1627
1628 ;src/main.c: 51: InterruptConfig int_config = { GIE_ENABLED, EINT_ENABLED, PEIE_DISABL
+ ED,
1629 06D2 3033 movlw pic_init@int_config& (0+255)
1630 06D3 0084 movwf 4
1631 06D4 084A movf pic_init@F1593,w
1632 06D5 1383 bcf 3,7 ;select IRP bank0
1633 06D6 0080 movwf 0
1634 06D7 0A84 incf 4,f
1635 06D8 084B movf pic_init@F1593+1,w
1636 06D9 0080 movwf 0
1637 06DA 0A84 incf 4,f
1638 06DB 084C movf pic_init@F1593+2,w
1639 06DC 0080 movwf 0
1640 06DD 0A84 incf 4,f
1641 06DE 084D movf pic_init@F1593+3,w
1642 06DF 0080 movwf 0
1643 06E0 0A84 incf 4,f
1644 06E1 084E movf pic_init@F1593+4,w
1645 06E2 0080 movwf 0
1646 06E3 0A84 incf 4,f
1647 06E4 084F movf pic_init@F1593+5,w
1648 06E5 0080 movwf 0
1649 06E6 l1012:
1650
1651 ;src/main.c: 53: ADCConfig adc_config = { ADC_ON, ADC_RIGHT, ADC_AN07, ADC_FOSC02, VRE
+ F_PLUSPIN, VREF_MINPIN, ADC_IN_PROGRESS };
1652 06E6 302C movlw pic_init@adc_config& (0+255)
1653 06E7 0084 movwf 4
1654 06E8 3043 movlw low pic_init@F1595
1655 06E9 00A8 movwf ??_pic_init
1656 06EA 0804 movf 4,w
1657 06EB 00A9 movwf ??_pic_init+1
1658 06EC 3007 movlw 7
1659 06ED 00AA movwf ??_pic_init+2
1660 06EE u600:
1661 06EE 0828 movf ??_pic_init,w
1662 06EF 0084 movwf 4
1663 06F0 1383 bcf 3,7 ;select IRP bank0
1664 06F1 0800 movf 0,w
1665 06F2 00AB movwf ??_pic_init+3
1666 06F3 0AA8 incf ??_pic_init,f
1667 06F4 0829 movf ??_pic_init+1,w
1668 06F5 0084 movwf 4
1669 06F6 082B movf ??_pic_init+3,w
1670 06F7 0080 movwf 0
1671 06F8 0AA9 incf ??_pic_init+1,f
1672 06F9 0BAA decfsz ??_pic_init+2,f
1673 06FA 2EEE goto u600
1674 06FB l1014:
1675
1676 ;src/main.c: 55: init_osc(osc_config);
1677 06FB 0839 movf pic_init@osc_config,w
1678 06FC 00A0 movwf init_osc@config
1679 06FD 083A movf pic_init@osc_config+1,w
1680 06FE 00A1 movwf init_osc@config+1
1681 06FF 083B movf pic_init@osc_config+2,w
1682 0700 00A2 movwf init_osc@config+2
1683 0701 120A 118A 2554 120A 118A fcall _init_osc
1684 0706 l1016:
1685
1686 ;src/main.c: 56: init_int(int_config);
1687 0706 3020 movlw init_int@config& (0+255)
1688 0707 0084 movwf 4
1689 0708 1283 bcf 3,5 ;RP0=0, select bank0
1690 0709 1303 bcf 3,6 ;RP1=0, select bank0
1691 070A 0833 movf pic_init@int_config,w
1692 070B 1383 bcf 3,7 ;select IRP bank0
1693 070C 0080 movwf 0
1694 070D 0A84 incf 4,f
1695 070E 0834 movf pic_init@int_config+1,w
1696 070F 0080 movwf 0
1697 0710 0A84 incf 4,f
1698 0711 0835 movf pic_init@int_config+2,w
1699 0712 0080 movwf 0
1700 0713 0A84 incf 4,f
1701 0714 0836 movf pic_init@int_config+3,w
1702 0715 0080 movwf 0
1703 0716 0A84 incf 4,f
1704 0717 0837 movf pic_init@int_config+4,w
1705 0718 0080 movwf 0
1706 0719 0A84 incf 4,f
1707 071A 0838 movf pic_init@int_config+5,w
1708 071B 0080 movwf 0
1709 071C 120A 118A 2587 120A 118A fcall _init_int
1710 0721 l1018:
1711
1712 ;src/main.c: 57: init_adc(adc_config);
1713 0721 3020 movlw init_adc@config& (0+255)
1714 0722 0084 movwf 4
1715 0723 302C movlw low pic_init@adc_config
1716 0724 1283 bcf 3,5 ;RP0=0, select bank0
1717 0725 1303 bcf 3,6 ;RP1=0, select bank0
1718 0726 00A8 movwf ??_pic_init
1719 0727 0804 movf 4,w
1720 0728 00A9 movwf ??_pic_init+1
1721 0729 3007 movlw 7
1722 072A 00AA movwf ??_pic_init+2
1723 072B u610:
1724 072B 0828 movf ??_pic_init,w
1725 072C 0084 movwf 4
1726 072D 1383 bcf 3,7 ;select IRP bank0
1727 072E 0800 movf 0,w
1728 072F 00AB movwf ??_pic_init+3
1729 0730 0AA8 incf ??_pic_init,f
1730 0731 0829 movf ??_pic_init+1,w
1731 0732 0084 movwf 4
1732 0733 082B movf ??_pic_init+3,w
1733 0734 0080 movwf 0
1734 0735 0AA9 incf ??_pic_init+1,f
1735 0736 0BAA decfsz ??_pic_init+2,f
1736 0737 2F2B goto u610
1737 0738 120A 118A 24F4 120A 118A fcall _init_adc
1738 073D l1020:
1739
1740 ;src/main.c: 58: init_gpio();
1741 073D 120A 118A 2494 120A 118A fcall _init_gpio
1742 0742 l97:
1743 0742 0008 return
1744 0743 __end_of_pic_init:
1745
1746 psect text7
1747 0554 __ptext7:
1748 ;; *************** function _init_osc *****************
1749 ;; Defined at:
1750 ;; line 27 in file "src/initialisation.c"
1751 ;; Parameters: Size Location Type
1752 ;; config 3 0[BANK0 ] struct .
1753 ;; Auto vars: Size Location Type
1754 ;; None
1755 ;; Return value: Size Location Type
1756 ;; 1 wreg void
1757 ;; Registers used:
1758 ;; wreg, status,2, status,0
1759 ;; Tracked objects:
1760 ;; On entry : 0/0
1761 ;; On exit : 0/0
1762 ;; Unchanged: 0/0
1763 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1764 ;; Params: 0 3 0 0 0
1765 ;; Locals: 0 0 0 0 0
1766 ;; Temps: 0 1 0 0 0
1767 ;; Totals: 0 4 0 0 0
1768 ;;Total ram usage: 4 bytes
1769 ;; Hardware stack levels used: 1
1770 ;; Hardware stack levels required when called: 2
1771 ;; This function calls:
1772 ;; Nothing
1773 ;; This function is called by:
1774 ;; _pic_init
1775 ;; This function uses a non-reentrant model
1776 ;;
1777
1778 0554 _init_osc:
1779 ;psect for function _init_osc
1780
1781 0554 l944:
1782 ;incstack = 0
1783 ; Regs used in _init_osc: [wreg+status,2+status,0]
1784
1785
1786 ;src/initialisation.c: 29: OSCCONbits.SCS = config.SCS;
1787 0554 1283 bcf 3,5 ;RP0=0, select bank0
1788 0555 1303 bcf 3,6 ;RP1=0, select bank0
1789 0556 0C20 rrf init_osc@config,w
1790 0557 1683 bsf 3,5 ;RP0=1, select bank1
1791 0558 1303 bcf 3,6 ;RP1=0, select bank1
1792 0559 1C03 skipc
1793 055A 100F bcf 15,0 ;volatile
1794 055B 1803 skipnc
1795 055C 140F bsf 15,0 ;volatile
1796 055D l946:
1797
1798 ;src/initialisation.c: 31: OSCCONbits.IRCF = config.IRCF;
1799 055D 1283 bcf 3,5 ;RP0=0, select bank0
1800 055E 1303 bcf 3,6 ;RP1=0, select bank0
1801 055F 0821 movf init_osc@config+1,w
1802 0560 00A3 movwf ??_init_osc
1803 0561 0EA3 swapf ??_init_osc,f
1804 0562 1683 bsf 3,5 ;RP0=1, select bank1
1805 0563 1303 bcf 3,6 ;RP1=0, select bank1
1806 0564 080F movf 15,w ;volatile
1807 0565 1283 bcf 3,5 ;RP0=0, select bank0
1808 0566 1303 bcf 3,6 ;RP1=0, select bank0
1809 0567 0623 xorwf ??_init_osc,w
1810 0568 398F andlw -113
1811 0569 0623 xorwf ??_init_osc,w
1812 056A 1683 bsf 3,5 ;RP0=1, select bank1
1813 056B 1303 bcf 3,6 ;RP1=0, select bank1
1814 056C 008F movwf 15 ;volatile
1815 056D l948:
1816
1817 ;src/initialisation.c: 33: OSCCONbits.OSTS = config.OSTS;
1818 056D 1283 bcf 3,5 ;RP0=0, select bank0
1819 056E 1303 bcf 3,6 ;RP1=0, select bank0
1820 056F 0C22 rrf init_osc@config+2,w
1821 0570 1683 bsf 3,5 ;RP0=1, select bank1
1822 0571 1303 bcf 3,6 ;RP1=0, select bank1
1823 0572 1C03 skipc
1824 0573 118F bcf 15,3 ;volatile
1825 0574 1803 skipnc
1826 0575 158F bsf 15,3 ;volatile
1827
1828 ;src/initialisation.c: 36: if (OSCCONbits.IRCF == KHZ032) {
1829 0576 0E0F swapf 15,w ;volatile
1830 0577 3907 andlw 7
1831 0578 3A00 xorlw 0
1832 0579 1D03 skipz
1833 057A 2D7C goto u521
1834 057B 2D7D goto u520
1835 057C u521:
1836 057C 2D82 goto l20
1837 057D u520:
1838 057D l16:
1839 057D 1C8F btfss 15,1 ;volatile
1840 057E 2D80 goto u531
1841 057F 2D81 goto u530
1842 0580 u531:
1843 0580 2D7D goto l16
1844 0581 u530:
1845 0581 2D86 goto l23
1846 0582 l20:
1847 0582 1D0F btfss 15,2 ;volatile
1848 0583 2D85 goto u541
1849 0584 2D86 goto u540
1850 0585 u541:
1851 0585 2D82 goto l20
1852 0586 u540:
1853 0586 l23:
1854 0586 0008 return
1855 0587 __end_of_init_osc:
1856
1857 psect text8
1858 0587 __ptext8:
1859 ;; *************** function _init_int *****************
1860 ;; Defined at:
1861 ;; line 44 in file "src/initialisation.c"
1862 ;; Parameters: Size Location Type
1863 ;; config 6 0[BANK0 ] struct .
1864 ;; Auto vars: Size Location Type
1865 ;; None
1866 ;; Return value: Size Location Type
1867 ;; 1 wreg void
1868 ;; Registers used:
1869 ;; wreg, status,0
1870 ;; Tracked objects:
1871 ;; On entry : 0/0
1872 ;; On exit : 0/0
1873 ;; Unchanged: 0/0
1874 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
1875 ;; Params: 0 6 0 0 0
1876 ;; Locals: 0 0 0 0 0
1877 ;; Temps: 0 0 0 0 0
1878 ;; Totals: 0 6 0 0 0
1879 ;;Total ram usage: 6 bytes
1880 ;; Hardware stack levels used: 1
1881 ;; Hardware stack levels required when called: 2
1882 ;; This function calls:
1883 ;; Nothing
1884 ;; This function is called by:
1885 ;; _pic_init
1886 ;; This function uses a non-reentrant model
1887 ;;
1888
1889 0587 _init_int:
1890 ;psect for function _init_int
1891
1892 0587 l952:
1893 ;incstack = 0
1894 ; Regs used in _init_int: [wreg+status,0]
1895
1896
1897 ;src/initialisation.c: 46: INTCONbits.GIE = config.GIE;
1898 0587 1283 bcf 3,5 ;RP0=0, select bank0
1899 0588 1303 bcf 3,6 ;RP1=0, select bank0
1900 0589 0C20 rrf init_int@config,w
1901 058A 1C03 skipc
1902 058B 138B bcf 11,7 ;volatile
1903 058C 1803 skipnc
1904 058D 178B bsf 11,7 ;volatile
1905
1906 ;src/initialisation.c: 48: INTCONbits.INTE = config.EINT;
1907 058E 0C21 rrf init_int@config+1,w
1908 058F 1C03 skipc
1909 0590 120B bcf 11,4 ;volatile
1910 0591 1803 skipnc
1911 0592 160B bsf 11,4 ;volatile
1912
1913 ;src/initialisation.c: 51: INTCONbits.PEIE = config.PEIE;
1914 0593 0C22 rrf init_int@config+2,w
1915 0594 1C03 skipc
1916 0595 130B bcf 11,6 ;volatile
1917 0596 1803 skipnc
1918 0597 170B bsf 11,6 ;volatile
1919
1920 ;src/initialisation.c: 53: INTCONbits.T0IE = config.T0IE;
1921 0598 0C23 rrf init_int@config+3,w
1922 0599 1C03 skipc
1923 059A 128B bcf 11,5 ;volatile
1924 059B 1803 skipnc
1925 059C 168B bsf 11,5 ;volatile
1926
1927 ;src/initialisation.c: 56: INTCONbits.RBIE = config.RBIE;
1928 059D 0C24 rrf init_int@config+4,w
1929 059E 1C03 skipc
1930 059F 118B bcf 11,3 ;volatile
1931 05A0 1803 skipnc
1932 05A1 158B bsf 11,3 ;volatile
1933 05A2 l954:
1934
1935 ;src/initialisation.c: 59: IOCBbits.IOCB4 = 1;
1936 05A2 1683 bsf 3,5 ;RP0=1, select bank1
1937 05A3 1303 bcf 3,6 ;RP1=0, select bank1
1938 05A4 1616 bsf 22,4 ;volatile
1939 05A5 l956:
1940
1941 ;src/initialisation.c: 60: IOCBbits.IOCB5 = 1;
1942 05A5 1696 bsf 22,5 ;volatile
1943
1944 ;src/initialisation.c: 63: OPTION_REGbits.INTEDG = config.INTEDG;
1945 05A6 1283 bcf 3,5 ;RP0=0, select bank0
1946 05A7 1303 bcf 3,6 ;RP1=0, select bank0
1947 05A8 0C25 rrf init_int@config+5,w
1948 05A9 1683 bsf 3,5 ;RP0=1, select bank1
1949 05AA 1303 bcf 3,6 ;RP1=0, select bank1
1950 05AB 1C03 skipc
1951 05AC 1301 bcf 1,6 ;volatile
1952 05AD 1803 skipnc
1953 05AE 1701 bsf 1,6 ;volatile
1954 05AF l958:
1955
1956 ;src/initialisation.c: 66: if (INTCONbits.INTE == EINT_ENABLED) {
1957 05AF 1E0B btfss 11,4 ;volatile
1958 05B0 2DB2 goto u551
1959 05B1 2DB3 goto u550
1960 05B2 u551:
1961 05B2 2DB4 goto l26
1962 05B3 u550:
1963 05B3 l960:
1964
1965 ;src/initialisation.c: 67: INTCONbits.INTF = INT_AWAITING;
1966 05B3 108B bcf 11,1 ;volatile
1967 05B4 l26:
1968 ;src/initialisation.c: 68: }
1969
1970
1971 ;src/initialisation.c: 69: if (INTCONbits.RBIE == RBINT_ENABLED) {
1972 05B4 1D8B btfss 11,3 ;volatile
1973 05B5 2DB7 goto u561
1974 05B6 2DB8 goto u560
1975 05B7 u561:
1976 05B7 2DB9 goto l27
1977 05B8 u560:
1978 05B8 l962:
1979
1980 ;src/initialisation.c: 70: INTCONbits.RBIF = INT_AWAITING;
1981 05B8 100B bcf 11,0 ;volatile
1982 05B9 l27:
1983 ;src/initialisation.c: 71: }
1984
1985
1986 ;src/initialisation.c: 72: if (INTCONbits.T0IE == T0INT_ENABLED) {
1987 05B9 1E8B btfss 11,5 ;volatile
1988 05BA 2DBC goto u571
1989 05BB 2DBD goto u570
1990 05BC u571:
1991 05BC 2DBE goto l29
1992 05BD u570:
1993 05BD l964:
1994
1995 ;src/initialisation.c: 73: INTCONbits.T0IF = INT_AWAITING;
1996 05BD 110B bcf 11,2 ;volatile
1997 05BE l29:
1998 05BE 0008 return
1999 05BF __end_of_init_int:
2000
2001 psect text9
2002 0494 __ptext9:
2003 ;; *************** function _init_gpio *****************
2004 ;; Defined at:
2005 ;; line 63 in file "src/main.c"
2006 ;; Parameters: Size Location Type
2007 ;; None
2008 ;; Auto vars: Size Location Type
2009 ;; None
2010 ;; Return value: Size Location Type
2011 ;; 1 wreg void
2012 ;; Registers used:
2013 ;; wreg, status,2
2014 ;; Tracked objects:
2015 ;; On entry : 0/0
2016 ;; On exit : 0/0
2017 ;; Unchanged: 0/0
2018 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2019 ;; Params: 0 0 0 0 0
2020 ;; Locals: 0 0 0 0 0
2021 ;; Temps: 0 0 0 0 0
2022 ;; Totals: 0 0 0 0 0
2023 ;;Total ram usage: 0 bytes
2024 ;; Hardware stack levels used: 1
2025 ;; Hardware stack levels required when called: 2
2026 ;; This function calls:
2027 ;; Nothing
2028 ;; This function is called by:
2029 ;; _pic_init
2030 ;; This function uses a non-reentrant model
2031 ;;
2032
2033 0494 _init_gpio:
2034 ;psect for function _init_gpio
2035
2036 0494 l992:
2037 ;incstack = 0
2038 ; Regs used in _init_gpio: [wreg+status,2]
2039
2040
2041 ;src/main.c: 68: TRISA = 0;
2042 0494 1683 bsf 3,5 ;RP0=1, select bank1
2043 0495 1303 bcf 3,6 ;RP1=0, select bank1
2044 0496 0185 clrf 5 ;volatile
2045 0497 l994:
2046
2047 ;src/main.c: 69: PORTA = OFF;
2048 0497 3001 movlw 1
2049 0498 1283 bcf 3,5 ;RP0=0, select bank0
2050 0499 1303 bcf 3,6 ;RP1=0, select bank0
2051 049A 0085 movwf 5 ;volatile
2052 049B l996:
2053
2054 ;src/main.c: 71: TRISBbits.TRISB4 = 1;
2055 049B 1683 bsf 3,5 ;RP0=1, select bank1
2056 049C 1303 bcf 3,6 ;RP1=0, select bank1
2057 049D 1606 bsf 6,4 ;volatile
2058 049E l998:
2059
2060 ;src/main.c: 72: TRISBbits.TRISB5 = 1;
2061 049E 1686 bsf 6,5 ;volatile
2062 049F l1000:
2063
2064 ;src/main.c: 75: TRISEbits.TRISE2 = 1;
2065 049F 1509 bsf 9,2 ;volatile
2066 04A0 l1002:
2067
2068 ;src/main.c: 78: ANSEL = 0;
2069 04A0 1683 bsf 3,5 ;RP0=1, select bank3
2070 04A1 1703 bsf 3,6 ;RP1=1, select bank3
2071 04A2 0188 clrf 8 ;volatile
2072 04A3 l1004:
2073
2074 ;src/main.c: 79: ANSELH = 0;
2075 04A3 0189 clrf 9 ;volatile
2076 04A4 l1006:
2077
2078 ;src/main.c: 80: ANSELbits.ANS7 = 1;
2079 04A4 1788 bsf 8,7 ;volatile
2080 04A5 l100:
2081 04A5 0008 return
2082 04A6 __end_of_init_gpio:
2083
2084 psect text10
2085 04F4 __ptext10:
2086 ;; *************** function _init_adc *****************
2087 ;; Defined at:
2088 ;; line 78 in file "src/initialisation.c"
2089 ;; Parameters: Size Location Type
2090 ;; config 7 0[BANK0 ] struct .
2091 ;; Auto vars: Size Location Type
2092 ;; None
2093 ;; Return value: Size Location Type
2094 ;; 1 wreg void
2095 ;; Registers used:
2096 ;; wreg, status,2, status,0
2097 ;; Tracked objects:
2098 ;; On entry : 0/0
2099 ;; On exit : 0/0
2100 ;; Unchanged: 0/0
2101 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2102 ;; Params: 0 7 0 0 0
2103 ;; Locals: 0 0 0 0 0
2104 ;; Temps: 0 1 0 0 0
2105 ;; Totals: 0 8 0 0 0
2106 ;;Total ram usage: 8 bytes
2107 ;; Hardware stack levels used: 1
2108 ;; Hardware stack levels required when called: 2
2109 ;; This function calls:
2110 ;; Nothing
2111 ;; This function is called by:
2112 ;; _pic_init
2113 ;; This function uses a non-reentrant model
2114 ;;
2115
2116 04F4 _init_adc:
2117 ;psect for function _init_adc
2118
2119 04F4 l966:
2120 ;incstack = 0
2121 ; Regs used in _init_adc: [wreg+status,2+status,0]
2122
2123
2124 ;src/initialisation.c: 79: ADCON0bits.ADON = config.ADON;
2125 04F4 1283 bcf 3,5 ;RP0=0, select bank0
2126 04F5 1303 bcf 3,6 ;RP1=0, select bank0
2127 04F6 0C20 rrf init_adc@config,w
2128 04F7 1C03 skipc
2129 04F8 101F bcf 31,0 ;volatile
2130 04F9 1803 skipnc
2131 04FA 141F bsf 31,0 ;volatile
2132
2133 ;src/initialisation.c: 80: ADCON0bits.GO_nDONE = config.GO_nDONE;
2134 04FB 0C26 rrf init_adc@config+6,w
2135 04FC 1C03 skipc
2136 04FD 109F bcf 31,1 ;volatile
2137 04FE 1803 skipnc
2138 04FF 149F bsf 31,1 ;volatile
2139 0500 l968:
2140
2141 ;src/initialisation.c: 81: ADCON0bits.CHS = config.CHS;
2142 0500 0822 movf init_adc@config+2,w
2143 0501 00A7 movwf ??_init_adc
2144 0502 0DA7 rlf ??_init_adc,f
2145 0503 0DA7 rlf ??_init_adc,f
2146 0504 081F movf 31,w ;volatile
2147 0505 0627 xorwf ??_init_adc,w
2148 0506 39C3 andlw -61
2149 0507 0627 xorwf ??_init_adc,w
2150 0508 009F movwf 31 ;volatile
2151 0509 l970:
2152
2153 ;src/initialisation.c: 83: ADCON1bits.ADFM = config.ADFM;
2154 0509 0C21 rrf init_adc@config+1,w
2155 050A 1683 bsf 3,5 ;RP0=1, select bank1
2156 050B 1303 bcf 3,6 ;RP1=0, select bank1
2157 050C 1C03 skipc
2158 050D 139F bcf 31,7 ;volatile
2159 050E 1803 skipnc
2160 050F 179F bsf 31,7 ;volatile
2161 0510 l972:
2162
2163 ;src/initialisation.c: 84: ADCON1bits.VCFG1 = config.VCFG1;
2164 0510 1283 bcf 3,5 ;RP0=0, select bank0
2165 0511 1303 bcf 3,6 ;RP1=0, select bank0
2166 0512 0C25 rrf init_adc@config+5,w
2167 0513 1683 bsf 3,5 ;RP0=1, select bank1
2168 0514 1303 bcf 3,6 ;RP1=0, select bank1
2169 0515 1C03 skipc
2170 0516 129F bcf 31,5 ;volatile
2171 0517 1803 skipnc
2172 0518 169F bsf 31,5 ;volatile
2173 0519 l974:
2174
2175 ;src/initialisation.c: 85: ADCON1bits.VCFG0 = config.VCFG0;
2176 0519 1283 bcf 3,5 ;RP0=0, select bank0
2177 051A 1303 bcf 3,6 ;RP1=0, select bank0
2178 051B 0C24 rrf init_adc@config+4,w
2179 051C 1683 bsf 3,5 ;RP0=1, select bank1
2180 051D 1303 bcf 3,6 ;RP1=0, select bank1
2181 051E 1C03 skipc
2182 051F 121F bcf 31,4 ;volatile
2183 0520 1803 skipnc
2184 0521 161F bsf 31,4 ;volatile
2185 0522 l32:
2186 0522 0008 return
2187 0523 __end_of_init_adc:
2188
2189 psect text11
2190 0523 __ptext11:
2191 ;; *************** function _isr *****************
2192 ;; Defined at:
2193 ;; line 84 in file "src/main.c"
2194 ;; Parameters: Size Location Type
2195 ;; None
2196 ;; Auto vars: Size Location Type
2197 ;; None
2198 ;; Return value: Size Location Type
2199 ;; 1 wreg void
2200 ;; Registers used:
2201 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1, pclath, cstack
2202 ;; Tracked objects:
2203 ;; On entry : 0/0
2204 ;; On exit : 0/0
2205 ;; Unchanged: 0/0
2206 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2207 ;; Params: 0 0 0 0 0
2208 ;; Locals: 0 0 0 0 0
2209 ;; Temps: 5 0 0 0 0
2210 ;; Totals: 5 0 0 0 0
2211 ;;Total ram usage: 5 bytes
2212 ;; Hardware stack levels used: 1
2213 ;; Hardware stack levels required when called: 1
2214 ;; This function calls:
2215 ;; _parse_rotary
2216 ;; This function is called by:
2217 ;; Interrupt level 1
2218 ;; This function uses a non-reentrant model
2219 ;;
2220
2221 0523 _isr:
2222 ;psect for function _isr
2223
2224 0523 i1l1076:
2225
2226 ;src/main.c: 85: if (INTCONbits.RBIF == 1) {
2227 0523 1C0B btfss 11,0 ;volatile
2228 0524 2D26 goto u73_21
2229 0525 2D27 goto u73_20
2230 0526 u73_21:
2231 0526 2D49 goto i1l106
2232 0527 u73_20:
2233 0527 i1l1078:
2234
2235 ;src/main.c: 87: parse_rotary(PORTBbits.RB4, PORTBbits.RB5, &count, 4, 0);
2236 0527 3000 movlw 0
2237 0528 1283 bcf 3,5 ;RP0=0, select bank0
2238 0529 1303 bcf 3,6 ;RP1=0, select bank0
2239 052A 1A86 btfsc 6,5 ;volatile
2240 052B 3001 movlw 1
2241 052C 00F1 movwf parse_rotary@pinB
2242 052D 307D movlw (low (_count| 0))& (0+255)
2243 052E 00F2 movwf parse_rotary@counter
2244 052F 3004 movlw 4
2245 0530 00F3 movwf parse_rotary@max
2246 0531 01F4 clrf parse_rotary@min
2247 0532 0E06 swapf 6,w ;volatile
2248 0533 3901 andlw 1
2249 0534 120A 118A 25BF 120A 118A fcall _parse_rotary
2250 0539 i1l1080:
2251
2252 ;src/main.c: 88: PORTA = (unsigned char) (~(1 << count));
2253 0539 3001 movlw 1
2254 053A 00F8 movwf ??_isr
2255 053B 0A7D incf _count,w
2256 053C 2D3F goto u74_24
2257 053D u74_25:
2258 053D 1003 clrc
2259 053E 0DF8 rlf ??_isr,f
2260 053F u74_24:
2261 053F 3EFF addlw -1
2262 0540 1D03 skipz
2263 0541 2D3D goto u74_25
2264 0542 0878 movf ??_isr,w
2265 0543 3AFF xorlw 255
2266 0544 1283 bcf 3,5 ;RP0=0, select bank0
2267 0545 1303 bcf 3,6 ;RP1=0, select bank0
2268 0546 0085 movwf 5 ;volatile
2269 0547 i1l1082:
2270
2271 ;src/main.c: 91: INTCONbits.RBIF = INT_AWAITING;
2272 0547 100B bcf 11,0 ;volatile
2273 0548 i1l1084:
2274
2275 ;src/main.c: 92: INTCONbits.INTF = INT_AWAITING;
2276 0548 108B bcf 11,1 ;volatile
2277 0549 i1l106:
2278 0549 087C movf ??_isr+4,w
2279 054A 00FF movwf btemp+1
2280 054B 087B movf ??_isr+3,w
2281 054C 008A movwf 10
2282 054D 087A movf ??_isr+2,w
2283 054E 0084 movwf 4
2284 054F 0E79 swapf ??_isr+1,w
2285 0550 0083 movwf 3
2286 0551 0EFE swapf btemp,f
2287 0552 0E7E swapf btemp,w
2288 0553 0009 retfie
2289 0554 __end_of_isr:
2290
2291 psect intentry
2292 0004 __pintentry:
2293 ;incstack = 0
2294 ; Regs used in _isr: [wreg-fsr0h+status,2+status,0+btemp+1+pclath+cstack]
2295
2296 0004 interrupt_function:
2297 007E saved_w set btemp
2298 0004 00FE movwf btemp
2299 0005 0E03 swapf 3,w
2300 0006 00F9 movwf ??_isr+1
2301 0007 0804 movf 4,w
2302 0008 00FA movwf ??_isr+2
2303 0009 080A movf 10,w
2304 000A 00FB movwf ??_isr+3
2305 000B 087F movf btemp+1,w
2306 000C 00FC movwf ??_isr+4
2307 000D 120A 118A 2D23 ljmp _isr
2308
2309 psect text12
2310 05BF __ptext12:
2311 ;; *************** function _parse_rotary *****************
2312 ;; Defined at:
2313 ;; line 7 in file "src/rotary_encoder.c"
2314 ;; Parameters: Size Location Type
2315 ;; pinA 1 wreg unsigned char
2316 ;; pinB 1 0[COMMON] unsigned char
2317 ;; counter 1 1[COMMON] PTR unsigned char
2318 ;; -> count(1),
2319 ;; max 1 2[COMMON] unsigned char
2320 ;; min 1 3[COMMON] unsigned char
2321 ;; Auto vars: Size Location Type
2322 ;; pinA 1 5[COMMON] unsigned char
2323 ;; state 1 6[COMMON] unsigned char
2324 ;; Return value: Size Location Type
2325 ;; 1 wreg void
2326 ;; Registers used:
2327 ;; wreg, fsr0l, fsr0h, status,2, status,0, btemp+1
2328 ;; Tracked objects:
2329 ;; On entry : 0/0
2330 ;; On exit : 0/0
2331 ;; Unchanged: 0/0
2332 ;; Data sizes: COMMON BANK0 BANK1 BANK3 BANK2
2333 ;; Params: 4 0 0 0 0
2334 ;; Locals: 2 0 0 0 0
2335 ;; Temps: 1 0 0 0 0
2336 ;; Totals: 7 0 0 0 0
2337 ;;Total ram usage: 7 bytes
2338 ;; Hardware stack levels used: 1
2339 ;; This function calls:
2340 ;; Nothing
2341 ;; This function is called by:
2342 ;; _isr
2343 ;; This function uses a non-reentrant model
2344 ;;
2345
2346 05BF _parse_rotary:
2347 ;psect for function _parse_rotary
2348
2349
2350 ;incstack = 0
2351 ; Regs used in _parse_rotary: [wreg-fsr0h+status,2+status,0+btemp+1]
2352 ;parse_rotary@pinA stored from wreg
2353 05BF 00F6 movwf parse_rotary@pinA
2354 05C0 i1l1046:
2355
2356 ;src/rotary_encoder.c: 9: static unsigned char prevState;;src/rotary_encoder.c: 10:
+ unsigned char state;;src/rotary_encoder.c: 13: _delay((unsigned long)((1)*(500000/4000
+ .0)));
2357 05C0 3029 movlw 41
2358 05C1 00F5 movwf ??_parse_rotary
2359 05C2 u75_27:
2360 05C2 0BF5 decfsz ??_parse_rotary,f
2361 05C3 2DC2 goto u75_27
2362 05C4 0000 nop
2363 05C5 i1l1048:
2364
2365 ;src/rotary_encoder.c: 16: state = (unsigned char)(pinB << 1 | pinA);
2366 05C5 0871 movf parse_rotary@pinB,w
2367 05C6 00F5 movwf ??_parse_rotary
2368 05C7 0775 addwf ??_parse_rotary,w
2369 05C8 0476 iorwf parse_rotary@pinA,w
2370 05C9 00F7 movwf parse_rotary@state
2371 05CA i1l1050:
2372
2373 ;src/rotary_encoder.c: 19: if (prevState == 0) {
2374 05CA 1283 bcf 3,5 ;RP0=0, select bank0
2375 05CB 1303 bcf 3,6 ;RP1=0, select bank0
2376 05CC 085B movf parse_rotary@prevState,w
2377 05CD 1D03 btfss 3,2
2378 05CE 2DD0 goto u68_21
2379 05CF 2DD1 goto u68_20
2380 05D0 u68_21:
2381 05D0 2DE7 goto i1l1060
2382 05D1 u68_20:
2383 05D1 i1l1052:
2384
2385 ;src/rotary_encoder.c: 20: if (state == ROTATE_LEFT) (*counter)--;
2386 05D1 0377 decf parse_rotary@state,w
2387 05D2 1D03 btfss 3,2
2388 05D3 2DD5 goto u69_21
2389 05D4 2DD6 goto u69_20
2390 05D5 u69_21:
2391 05D5 2DDB goto i1l1056
2392 05D6 u69_20:
2393 05D6 i1l1054:
2394 05D6 0872 movf parse_rotary@counter,w
2395 05D7 0084 movwf 4
2396 05D8 3001 movlw 1
2397 05D9 0280 subwf 0,f
2398 05DA 2DE7 goto i1l1060
2399 05DB i1l1056:
2400 05DB 3002 movlw 2
2401 05DC 0677 xorwf parse_rotary@state,w
2402 05DD 1D03 btfss 3,2
2403 05DE 2DE0 goto u70_21
2404 05DF 2DE1 goto u70_20
2405 05E0 u70_21:
2406 05E0 2DE7 goto i1l1060
2407 05E1 u70_20:
2408 05E1 i1l1058:
2409 05E1 3001 movlw 1
2410 05E2 00FF movwf btemp+1
2411 05E3 0872 movf parse_rotary@counter,w
2412 05E4 0084 movwf 4
2413 05E5 087F movf btemp+1,w
2414 05E6 0780 addwf 0,f
2415 05E7 i1l1060:
2416
2417 ;src/rotary_encoder.c: 25: if (*counter > max) *counter = min;
2418 05E7 0872 movf parse_rotary@counter,w
2419 05E8 0084 movwf 4
2420 05E9 0800 movf 0,w
2421 05EA 0273 subwf parse_rotary@max,w
2422 05EB 1803 skipnc
2423 05EC 2DEE goto u71_21
2424 05ED 2DEF goto u71_20
2425 05EE u71_21:
2426 05EE 2DF4 goto i1l1064
2427 05EF u71_20:
2428 05EF i1l1062:
2429 05EF 0872 movf parse_rotary@counter,w
2430 05F0 0084 movwf 4
2431 05F1 0874 movf parse_rotary@min,w
2432 05F2 0080 movwf 0
2433 05F3 2E00 goto i1l1068
2434 05F4 i1l1064:
2435 05F4 0872 movf parse_rotary@counter,w
2436 05F5 0084 movwf 4
2437 05F6 0874 movf parse_rotary@min,w
2438 05F7 0200 subwf 0,w
2439 05F8 1803 skipnc
2440 05F9 2DFB goto u72_21
2441 05FA 2DFC goto u72_20
2442 05FB u72_21:
2443 05FB 2E00 goto i1l1068
2444 05FC u72_20:
2445 05FC i1l1066:
2446 05FC 0872 movf parse_rotary@counter,w
2447 05FD 0084 movwf 4
2448 05FE 0873 movf parse_rotary@max,w
2449 05FF 0080 movwf 0
2450 0600 i1l1068:
2451
2452 ;src/rotary_encoder.c: 30: prevState = state;
2453 0600 0877 movf parse_rotary@state,w
2454 0601 00DB movwf parse_rotary@prevState
2455 0602 i1l1070:
2456
2457 ;src/rotary_encoder.c: 31: PORTB = PORTB;
2458 0602 0806 movf 6,w ;volatile
2459 0603 0086 movwf 6 ;volatile
2460 0604 i1l122:
2461 0604 0008 return
2462 0605 __end_of_parse_rotary:
2463 007E btemp set 126 ;btemp
2464 007E wtemp0 set 126
2465
2466 psect config
2467
2468 ;Config register CONFIG1 @ 0x2007
2469 ; Oscillator Selection bits
2470 ; FOSC = INTRC_NOCLKOUT, INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O f
+ unction on RA7/OSC1/CLKIN
2471 ; Watchdog Timer Enable bit
2472 ; WDTE = OFF, WDT disabled and can be enabled by SWDTEN bit of the WDTCON register
2473 ; Power-up Timer Enable bit
2474 ; PWRTE = ON, PWRT enabled
2475 ; RE3/MCLR pin function select bit
2476 ; MCLRE = OFF, RE3/MCLR pin function is digital input, MCLR internally tied to VDD
2477 ; Code Protection bit
2478 ; CP = OFF, Program memory code protection is disabled
2479 ; Data Code Protection bit
2480 ; CPD = OFF, Data memory code protection is disabled
2481 ; Brown Out Reset Selection bits
2482 ; BOREN = ON, BOR enabled
2483 ; Internal External Switchover bit
2484 ; IESO = OFF, Internal/External Switchover mode is disabled
2485 ; Fail-Safe Clock Monitor Enabled bit
2486 ; FCMEN = OFF, Fail-Safe Clock Monitor is disabled
2487 ; Low Voltage Programming Enable bit
2488 ; LVP = OFF, RB3 pin has digital I/O, HV on MCLR must be used for programming
2489 ; In-Circuit Debugger Mode bit
2490 ; DEBUG = 0x1, unprogrammed default
2491 2007 org 8199
2492 2007 23C4 dw 9156
2493
2494 ;Config register CONFIG2 @ 0x2008
2495 ; Brown-out Reset Selection bit
2496 ; BOR4V = BOR40V, Brown-out Reset set to 4.0V
2497 ; Flash Program Memory Self Write Enable bits
2498 ; WRT = OFF, Write protection off
2499 2008 org 8200
2500 2008 3FFF dw 16383
Data Sizes:
Strings 0
Constant 0
Data 16
BSS 10
Persistent 0
Stack 0
Auto Spaces:
Space Size Autos Used
COMMON 13 12 13
BANK0 80 35 60
BANK1 80 0 0
BANK3 85 0 0
BANK2 96 0 0
Pointer List with Targets:
parse_rotary@counter PTR unsigned char size(1) Largest target is 1
-> count(COMMON[1]),
populate_step_array@array PTR int size(1) Largest target is 8
-> pic_loop@stepArray(BANK0[8]),
Critical Paths under _main in COMMON
None.
Critical Paths under _isr in COMMON
_isr->_parse_rotary
Critical Paths under _main in BANK0
_main->_pic_loop
_pic_loop->_populate_step_array
_populate_step_array->___awdiv
_pic_init->_init_adc
Critical Paths under _isr in BANK0
None.
Critical Paths under _main in BANK1
None.
Critical Paths under _isr in BANK1
None.
Critical Paths under _main in BANK3
None.
Critical Paths under _isr in BANK3
None.
Critical Paths under _main in BANK2
None.
Critical Paths under _isr in BANK2
None.
Call Graph Tables:
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(0) _main 0 0 0 1996
_pic_init
_pic_loop
---------------------------------------------------------------------------------
(1) _pic_loop 18 18 0 1357
17 BANK0 18 18 0
_populate_step_array
_read_potentiometer
---------------------------------------------------------------------------------
(2) _read_potentiometer 4 2 2 23
0 BANK0 4 2 2
---------------------------------------------------------------------------------
(2) _populate_step_array 9 5 4 1081
8 BANK0 9 5 4
___awdiv
___wmul
---------------------------------------------------------------------------------
(3) ___wmul 6 2 4 244
0 BANK0 6 2 4
---------------------------------------------------------------------------------
(3) ___awdiv 8 4 4 452
0 BANK0 8 4 4
---------------------------------------------------------------------------------
(1) _pic_init 20 20 0 639
8 BANK0 20 20 0
_init_adc
_init_gpio
_init_int
_init_osc
---------------------------------------------------------------------------------
(2) _init_osc 4 1 3 144
0 BANK0 4 1 3
---------------------------------------------------------------------------------
(2) _init_int 6 0 6 213
0 BANK0 6 0 6
---------------------------------------------------------------------------------
(2) _init_gpio 0 0 0 0
---------------------------------------------------------------------------------
(2) _init_adc 8 1 7 213
0 BANK0 8 1 7
---------------------------------------------------------------------------------
Estimated maximum stack depth 3
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
(4) _isr 5 5 0 635
7 COMMON 5 5 0
_parse_rotary
---------------------------------------------------------------------------------
(5) _parse_rotary 7 3 4 635
0 COMMON 7 3 4
---------------------------------------------------------------------------------
Estimated maximum stack depth 5
---------------------------------------------------------------------------------
Call Graph Graphs:
_main (ROOT)
_pic_init
_init_adc
_init_gpio
_init_int
_init_osc
_pic_loop
_populate_step_array
___awdiv
___wmul
_read_potentiometer
_isr (ROOT)
_parse_rotary
Address spaces:
Name Size Autos Total Cost Usage
BANK3 55 0 0 9 0.0%
BITBANK3 55 0 0 8 0.0%
SFR3 0 0 0 4 0.0%
BITSFR3 0 0 0 4 0.0%
BANK2 60 0 0 11 0.0%
BITBANK2 60 0 0 10 0.0%
SFR2 0 0 0 5 0.0%
BITSFR2 0 0 0 5 0.0%
BANK1 50 0 0 7 0.0%
BITBANK1 50 0 0 6 0.0%
SFR1 0 0 0 2 0.0%
BITSFR1 0 0 0 2 0.0%
BANK0 50 23 3C 5 75.0%
BITBANK0 50 0 0 4 0.0%
SFR0 0 0 0 1 0.0%
BITSFR0 0 0 0 1 0.0%
COMMON D C D 1 100.0%
BITCOMMON D 0 0 0 0.0%
CODE 0 0 0 0 0.0%
DATA 0 0 49 12 0.0%
ABS 0 0 49 3 0.0%
NULL 0 0 0 0 0.0%
STACK 0 0 0 2 0.0%
EEDATA 100 0 0 0 0.0%
Microchip Technology PIC Macro Assembler V2.45 build 20230818022343
Symbol Table Thu Nov 23 22:00:47 2023
pic_init@F1591 0050 pic_init@F1593 004A pic_init@F1595 0043
pc 0002 l20 0582 l23 0586
l32 0522 l16 057D l26 05B4
l27 05B9 l29 05BE l75 0481
l97 0742 _GO 00F9 ___awdiv@sign 0025
fsr 0004 ___wmul@multiplicand 0022 l100 04A5
l230 04F3 l142 04CC l136 0660
l139 04BC l228 04DB l381 06C9
l900 0661 l910 0673 l902 0664
l920 0687 l912 0678 l904 0668
l930 06AD l922 068E l914 067C
l906 066D l940 06C5 l932 06AE
l924 0692 l916 067E l908 066F
l934 06B5 l926 0696 l918 0684
l960 05B3 l952 0587 l944 0554
l928 06A7 l936 06BB l970 0509
l962 05B8 l954 05A2 l946 055D
l938 06C0 l890 04D5 l972 0510
l964 05BD l956 05A5 l948 056D
l892 04E2 l980 0626 l974 0519
l966 04F4 l958 05AF l894 04E9
l886 04CD l982 064C l968 0500
l992 0494 l896 04EF l888 04D1
l984 0652 l976 0608 l994 0497
l978 0623 l986 04B9 l996 049B
l988 04C0 l998 049E u410 04EF
u411 04EE u500 06BB u420 0668
u501 06BA u421 0667 u405 04E3
u510 06C0 u430 0673 u511 06BF
u431 0672 u520 057D u600 06EE
u440 0684 u521 057C u441 0683
u530 0581 u610 072B u531 0580
u540 0586 u460 0696 u380 04D5
u620 0747 u541 0585 u461 0695
u381 04D4 u550 05B3 u630 078C
u551 05B2 u455 0688 u631 078B
u560 05B8 u480 06A7 u561 05B7
u481 06A6 u570 05BD u650 07BF
u571 05BC u475 0697 u395 04DC
u651 07BE u635 0788 u580 0660
u644 0794 u485 06A3 u581 065F
u645 0792 u590 04C0 u670 07E2
u495 06AF u591 04BF u671 07E1
u655 07BB u664 07C7 u585 065C
u665 07C5 u675 07DE _isr 0523
fsr0 0004 indf 0000 pic_loop@F1586 0053
l1000 049F l1002 04A0 l1010 06D2
l1004 04A3 l1020 073D l1012 06E6
l1006 04A4 l1014 06FB l1022 0743
l1016 0706 l1008 06CA l1040 07BF
l1024 074C l1018 0721 l1042 07CD
l1034 0769 l1026 075C l1044 07D5
l1036 078C l1028 0767 l1038 079C
l1072 0477 l1074 047C ?_isr 0071
_main 0477 btemp 007E start 0010
pic_loop@stepArray 0037 ??_isr 0078 ?_main 0071
__end_of___awdiv 06CA _ANSEL 0188 ___awdiv@divisor 0020
parse_rotary@max 0073 parse_rotary@min 0074 i1l122 0604
i1l106 0549 ___awdiv@counter 0024 _PORTA 0005
_PORTB 0006 u70_20 05E1 u70_21 05E0
u71_20 05EF u71_21 05EE u72_20 05FC
u72_21 05FB u73_20 0527 u73_21 0526
_TRISA 0085 u74_24 053F u74_25 053D
u75_27 05C2 u68_20 05D1 u68_21 05D0
u69_20 05D6 u69_21 05D5 _populate_step_array 0605
_count 007D pclath 000A status 0003
wtemp0 007E read_potentiometer@result 0022 ?_populate_step_array 0028
pic_loop@result 003F __initialization 07E4 __end_of_main 0484
??_main 0043 _ADRESH 001E _ADRESL 009E
___awdiv@dividend 0022 _ANSELH 0189 parse_rotary@pinA 0076
parse_rotary@pinB 0071 i1l1050 05CA i1l1052 05D1
i1l1060 05E7 i1l1070 0602 i1l1062 05EF
i1l1054 05D6 i1l1046 05C0 i1l1064 05F4
i1l1056 05DB i1l1048 05C5 i1l1080 0539
i1l1066 05FC i1l1058 05E1 i1l1082 0547
i1l1068 0600 i1l1084 0548 i1l1076 0523
i1l1078 0527 ??_populate_step_array 002C ___wmul 04CD
??___awdiv 0024 __end_of_init_adc 0523 __end_of_init_int 05BF
__end_of_init_osc 0587 ___awdiv@quotient 0026 __end_of_pic_init 0743
__end_of_pic_loop 07E4 saved_w 007E __end_of__initialization 07FC
populate_step_array@array 0030 __pcstackCOMMON 0071 __pidataBANK0 0484
?_parse_rotary 0071 _OPTION_REGbits 0081 __pbssBANK0 0053
__pmaintext 0477 ?___wmul 0020 __pintentry 0004
??_parse_rotary 0075 parse_rotary@state 0077 ?_init_adc 0020
?_init_int 0020 ?_init_osc 0020 ?_pic_init 0071
?_pic_loop 0071 __end_of_read_potentiometer 04CD ___awdiv 0661
_ANSELbits 0188 __ptext1 0743 __ptext2 04B9
__ptext3 0605 __ptext4 04CD __ptext5 0661
__ptext6 06CA __ptext7 0554 __ptext8 0587
__ptext9 0494 __end_of_init_gpio 04A6 parse_rotary@counter 0072
end_of_initialization 07FC ??_init_adc 0027 ??_init_int 0026
??_init_osc 0023 ??_pic_init 0028 ??_pic_loop 0031
_PORTBbits 0006 _TRISBbits 0086 _TRISEbits 0089
__end_of_populate_step_array 0661 __end_of_parse_rotary 0605 __end_of___wmul 04F4
start_initialization 07E4 __end_of_isr 0554 ??___wmul 0024
init_fetch0 04A6 init_adc@config 0020 __pdataBANK0 0043
populate_step_array@potLimit 002A __pbssCOMMON 007D ___latbits 0002
populate_step_array@size 0028 __pcstackBANK0 0020 ?___awdiv 0020
pic_init@adc_config 002C _read_potentiometer 04B9 _init_gpio 0494
?_read_potentiometer 0020 interrupt_function 0004 ___wmul@product 0024
_IOCBbits 0096 ??_read_potentiometer 0022 _parse_rotary 05BF
_ADCON0bits 001F _ADCON1bits 009F ___wmul@multiplier 0020
init_int@config 0020 ?_init_gpio 0071 parse_rotary@prevState 005B
init_osc@config 0020 pic_loop@i 0041 pic_init@int_config 0033
__ptext10 04F4 __ptext11 0523 __ptext12 05BF
_init_adc 04F4 _init_int 0587 _init_osc 0554
_pic_init 06CA _pic_loop 0743 pic_init@osc_config 0039
_INTCONbits 000B init_ram0 04AA ??_init_gpio 0020
intlevel1 0000 _OSCCONbits 008F populate_step_array@i 002E