-
Notifications
You must be signed in to change notification settings - Fork 1
/
unit02_03_upDownCounterKeyLCD.lst
837 lines (836 loc) · 30.6 KB
/
unit02_03_upDownCounterKeyLCD.lst
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
; LST file generated by mikroListExporter - v.2.0
; Date/Time: 29/10/2019 01:40:05 PM
;----------------------------------------------
;Address Opcode ASM
0x0000 0xF001EF58 GOTO 688
0x0004 0x0000 NOP
0x0006 0x0000 NOP
0x0008 0xF000EF00 GOTO 0
0x000C 0x0000 NOP
0x000E 0x0000 NOP
0x0010 0x0000 NOP
0x0012 0x0000 NOP
0x0014 0x0000 NOP
0x0016 0x0000 NOP
0x0018 0xD7F3 BRA 0
_Delay_50us:
;__Lib_Delays.c,19 :: void Delay_50us() {
;__Lib_Delays.c,20 :: Delay_us(50);
0x001C 0x0E21 MOVLW 33
0x001E 0x6E0D MOVWF R13, 0
L_Delay_50us2:
0x0020 0x2E0D DECFSZ R13, 1, 0
0x0022 0xD7FE BRA L_Delay_50us2
;__Lib_Delays.c,21 :: }
L_end_Delay_50us:
0x0024 0x0012 RETURN 0
; end of _Delay_50us
_Delay_5500us:
;__Lib_Delays.c,31 :: void Delay_5500us() {
;__Lib_Delays.c,32 :: Delay_us(5500);
0x0026 0x0E0F MOVLW 15
0x0028 0x6E0C MOVWF R12, 0
0x002A 0x0E47 MOVLW 71
0x002C 0x6E0D MOVWF R13, 0
L_Delay_5500us5:
0x002E 0x2E0D DECFSZ R13, 1, 0
0x0030 0xD7FE BRA L_Delay_5500us5
0x0032 0x2E0C DECFSZ R12, 1, 0
0x0034 0xD7FC BRA L_Delay_5500us5
0x0036 0x0000 NOP
0x0038 0x0000 NOP
;__Lib_Delays.c,33 :: }
L_end_Delay_5500us:
0x003A 0x0012 RETURN 0
; end of _Delay_5500us
_Delay_1us:
;__Lib_Delays.c,7 :: void Delay_1us() {
;__Lib_Delays.c,8 :: Delay_us(1);
0x003C 0x0000 NOP
0x003E 0x0000 NOP
;__Lib_Delays.c,9 :: }
L_end_Delay_1us:
0x0040 0x0012 RETURN 0
; end of _Delay_1us
_Lcd_Cmd:
;__Lib_Lcd.c,18 ::
;__Lib_Lcd.c,20 ::
0x0042 0xBE31 BTFSC FARG_Lcd_Cmd_out_char, 7
0x0044 0xD002 BRA L__Lcd_Cmd21
0x0046 0x9E8C BCF LCD_D7, BitPos(LCD_D7+0)
0x0048 0xD001 BRA L__Lcd_Cmd22
L__Lcd_Cmd21:
0x004A 0x8E8C BSF LCD_D7, BitPos(LCD_D7+0)
L__Lcd_Cmd22:
;__Lib_Lcd.c,21 ::
0x004C 0xBC31 BTFSC FARG_Lcd_Cmd_out_char, 6
0x004E 0xD002 BRA L__Lcd_Cmd23
0x0050 0x9C8C BCF LCD_D6, BitPos(LCD_D6+0)
0x0052 0xD001 BRA L__Lcd_Cmd24
L__Lcd_Cmd23:
0x0054 0x8C8C BSF LCD_D6, BitPos(LCD_D6+0)
L__Lcd_Cmd24:
;__Lib_Lcd.c,22 ::
0x0056 0xBA31 BTFSC FARG_Lcd_Cmd_out_char, 5
0x0058 0xD002 BRA L__Lcd_Cmd25
0x005A 0x9A8C BCF LCD_D5, BitPos(LCD_D5+0)
0x005C 0xD001 BRA L__Lcd_Cmd26
L__Lcd_Cmd25:
0x005E 0x8A8C BSF LCD_D5, BitPos(LCD_D5+0)
L__Lcd_Cmd26:
;__Lib_Lcd.c,23 ::
0x0060 0xB831 BTFSC FARG_Lcd_Cmd_out_char, 4
0x0062 0xD002 BRA L__Lcd_Cmd27
0x0064 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
0x0066 0xD001 BRA L__Lcd_Cmd28
L__Lcd_Cmd27:
0x0068 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
L__Lcd_Cmd28:
;__Lib_Lcd.c,25 ::
0x006A 0xB01C BTFSC __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
0x006C 0xD002 BRA L__Lcd_Cmd29
0x006E 0x848D BSF LCD_RS, BitPos(LCD_RS+0)
0x0070 0xD001 BRA L__Lcd_Cmd30
L__Lcd_Cmd29:
0x0072 0x948D BCF LCD_RS, BitPos(LCD_RS+0)
L__Lcd_Cmd30:
;__Lib_Lcd.c,28 ::
0x0074 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,29 ::
0x0076 0xDFE2 RCALL _Delay_1us
;__Lib_Lcd.c,30 ::
0x0078 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,33 ::
0x007A 0xB631 BTFSC FARG_Lcd_Cmd_out_char, 3
0x007C 0xD002 BRA L__Lcd_Cmd31
0x007E 0x9E8C BCF LCD_D7, BitPos(LCD_D7+0)
0x0080 0xD001 BRA L__Lcd_Cmd32
L__Lcd_Cmd31:
0x0082 0x8E8C BSF LCD_D7, BitPos(LCD_D7+0)
L__Lcd_Cmd32:
;__Lib_Lcd.c,34 ::
0x0084 0xB431 BTFSC FARG_Lcd_Cmd_out_char, 2
0x0086 0xD002 BRA L__Lcd_Cmd33
0x0088 0x9C8C BCF LCD_D6, BitPos(LCD_D6+0)
0x008A 0xD001 BRA L__Lcd_Cmd34
L__Lcd_Cmd33:
0x008C 0x8C8C BSF LCD_D6, BitPos(LCD_D6+0)
L__Lcd_Cmd34:
;__Lib_Lcd.c,35 ::
0x008E 0xB231 BTFSC FARG_Lcd_Cmd_out_char, 1
0x0090 0xD002 BRA L__Lcd_Cmd35
0x0092 0x9A8C BCF LCD_D5, BitPos(LCD_D5+0)
0x0094 0xD001 BRA L__Lcd_Cmd36
L__Lcd_Cmd35:
0x0096 0x8A8C BSF LCD_D5, BitPos(LCD_D5+0)
L__Lcd_Cmd36:
;__Lib_Lcd.c,36 ::
0x0098 0xB031 BTFSC FARG_Lcd_Cmd_out_char, 0
0x009A 0xD002 BRA L__Lcd_Cmd37
0x009C 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
0x009E 0xD001 BRA L__Lcd_Cmd38
L__Lcd_Cmd37:
0x00A0 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
L__Lcd_Cmd38:
;__Lib_Lcd.c,38 ::
0x00A2 0xB01C BTFSC __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
0x00A4 0xD002 BRA L__Lcd_Cmd39
0x00A6 0x848D BSF LCD_RS, BitPos(LCD_RS+0)
0x00A8 0xD001 BRA L__Lcd_Cmd40
L__Lcd_Cmd39:
0x00AA 0x948D BCF LCD_RS, BitPos(LCD_RS+0)
L__Lcd_Cmd40:
;__Lib_Lcd.c,40 ::
0x00AC 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,41 ::
0x00AE 0xDFC6 RCALL _Delay_1us
;__Lib_Lcd.c,42 ::
0x00B0 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,44 ::
0x00B2 0xA01C BTFSS __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
0x00B4 0xD002 BRA L_Lcd_Cmd0
;__Lib_Lcd.c,45 ::
0x00B6 0xDFB7 RCALL _Delay_5500us
0x00B8 0xD001 BRA L_Lcd_Cmd1
L_Lcd_Cmd0:
;__Lib_Lcd.c,47 ::
0x00BA 0xDFB0 RCALL _Delay_50us
L_Lcd_Cmd1:
;__Lib_Lcd.c,48 ::
L_end_Lcd_Cmd:
0x00BC 0x0012 RETURN 0
; end of _Lcd_Cmd
_Div_16X16_U:
;__Lib_Math.c,102 ::
;__Lib_Math.c,109 ::
0x00BE 0x6A08 CLRF R8, 0
;__Lib_Math.c,110 ::
0x00C0 0x6A09 CLRF R9, 0
;__Lib_Math.c,111 ::
0x00C2 0x0E10 MOVLW 16
;__Lib_Math.c,112 ::
0x00C4 0x6E0C MOVWF R12, 0
;__Lib_Math.c,113 ::
0x00C6 0x3401 RLCF R1, 0, 0
;__Lib_Math.c,114 ::
0x00C8 0x3608 RLCF R8, 1, 0
;__Lib_Math.c,115 ::
0x00CA 0x3609 RLCF R9, 1, 0
;__Lib_Math.c,116 ::
0x00CC 0x5004 MOVF R4, 0, 0
;__Lib_Math.c,117 ::
0x00CE 0x5E08 SUBWF R8, 1, 0
;__Lib_Math.c,118 ::
0x00D0 0x5005 MOVF R5, 0, 0
;__Lib_Math.c,119 ::
0x00D2 0xA0D8 BTFSS STATUS, 0, 0
;__Lib_Math.c,120 ::
0x00D4 0x3C05 INCFSZ R5, 0, 0
;__Lib_Math.c,121 ::
0x00D6 0x5E09 SUBWF R9, 1, 0
;__Lib_Math.c,122 ::
0x00D8 0xB0D8 BTFSC STATUS, 0, 0
;__Lib_Math.c,123 ::
0x00DA 0xD007 BRA $+16
;__Lib_Math.c,124 ::
0x00DC 0x5004 MOVF R4, 0, 0
;__Lib_Math.c,125 ::
0x00DE 0x2608 ADDWF R8, 1, 0
;__Lib_Math.c,126 ::
0x00E0 0x5005 MOVF R5, 0, 0
;__Lib_Math.c,127 ::
0x00E2 0xB0D8 BTFSC STATUS, 0, 0
;__Lib_Math.c,128 ::
0x00E4 0x3C05 INCFSZ R5, 0, 0
;__Lib_Math.c,129 ::
0x00E6 0x2609 ADDWF R9, 1, 0
;__Lib_Math.c,130 ::
0x00E8 0x90D8 BCF STATUS, 0, 0
;__Lib_Math.c,131 ::
0x00EA 0x3600 RLCF R0, 1, 0
;__Lib_Math.c,132 ::
0x00EC 0x3601 RLCF R1, 1, 0
;__Lib_Math.c,133 ::
0x00EE 0x2E0C DECFSZ R12, 1, 0
;__Lib_Math.c,134 ::
0x00F0 0xD7EA BRA $-42
;__Lib_Math.c,136 ::
L_end_Div_16X16_U:
0x00F2 0x0012 RETURN 0
; end of _Div_16X16_U
_Lcd_Chr_CP:
;__Lib_Lcd.c,50 ::
;__Lib_Lcd.c,52 ::
0x00F4 0x901C BCF __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
;__Lib_Lcd.c,53 ::
0x00F6 0xF031C030 MOVFF FARG_Lcd_Chr_CP_out_char, FARG_Lcd_Cmd_out_char
0x00FA 0xDFA3 RCALL _Lcd_Cmd
;__Lib_Lcd.c,54 ::
0x00FC 0x801C BSF __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
;__Lib_Lcd.c,55 ::
L_end_Lcd_Chr_CP:
0x00FE 0x0012 RETURN 0
; end of _Lcd_Chr_CP
_Lcd_Init:
;__Lib_Lcd.c,84 ::
;__Lib_Lcd.c,86 ::
0x0100 0x9296 BCF LCD_EN_Direction, BitPos(LCD_EN_Direction+0)
;__Lib_Lcd.c,87 ::
0x0102 0x9496 BCF LCD_RS_Direction, BitPos(LCD_RS_Direction+0)
;__Lib_Lcd.c,88 ::
0x0104 0x9895 BCF LCD_D4_Direction, BitPos(LCD_D4_Direction+0)
;__Lib_Lcd.c,89 ::
0x0106 0x9A95 BCF LCD_D5_Direction, BitPos(LCD_D5_Direction+0)
;__Lib_Lcd.c,90 ::
0x0108 0x9C95 BCF LCD_D6_Direction, BitPos(LCD_D6_Direction+0)
;__Lib_Lcd.c,91 ::
0x010A 0x9E95 BCF LCD_D7_Direction, BitPos(LCD_D7_Direction+0)
;__Lib_Lcd.c,93 ::
0x010C 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,94 ::
0x010E 0x948D BCF LCD_RS, BitPos(LCD_RS+0)
;__Lib_Lcd.c,95 ::
0x0110 0x9E8C BCF LCD_D7, BitPos(LCD_D7+0)
;__Lib_Lcd.c,96 ::
0x0112 0x9C8C BCF LCD_D6, BitPos(LCD_D6+0)
;__Lib_Lcd.c,97 ::
0x0114 0x9A8C BCF LCD_D5, BitPos(LCD_D5+0)
;__Lib_Lcd.c,98 ::
0x0116 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,100 ::
0x0118 0xDF86 RCALL _Delay_5500us
;__Lib_Lcd.c,101 ::
0x011A 0xDF85 RCALL _Delay_5500us
;__Lib_Lcd.c,102 ::
0x011C 0xDF84 RCALL _Delay_5500us
;__Lib_Lcd.c,105 ::
0x011E 0x8A8C BSF LCD_D5, BitPos(LCD_D5+0)
;__Lib_Lcd.c,106 ::
0x0120 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,107 ::
0x0122 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,108 ::
0x0124 0xDF8B RCALL _Delay_1us
;__Lib_Lcd.c,109 ::
0x0126 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,110 ::
0x0128 0xDF7E RCALL _Delay_5500us
;__Lib_Lcd.c,112 ::
0x012A 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,113 ::
0x012C 0xDF87 RCALL _Delay_1us
;__Lib_Lcd.c,114 ::
0x012E 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,115 ::
0x0130 0xDF7A RCALL _Delay_5500us
;__Lib_Lcd.c,117 ::
0x0132 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,118 ::
0x0134 0xDF83 RCALL _Delay_1us
;__Lib_Lcd.c,119 ::
0x0136 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,120 ::
0x0138 0xDF76 RCALL _Delay_5500us
;__Lib_Lcd.c,123 ::
0x013A 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,124 ::
0x013C 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,125 ::
0x013E 0xDF7E RCALL _Delay_1us
;__Lib_Lcd.c,126 ::
0x0140 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,127 ::
0x0142 0xDF71 RCALL _Delay_5500us
;__Lib_Lcd.c,130 ::
0x0144 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,131 ::
0x0146 0xDF7A RCALL _Delay_1us
;__Lib_Lcd.c,132 ::
0x0148 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,134 ::
0x014A 0x9A8C BCF LCD_D5, BitPos(LCD_D5+0)
;__Lib_Lcd.c,135 ::
0x014C 0x8E8C BSF LCD_D7, BitPos(LCD_D7+0)
;__Lib_Lcd.c,136 ::
0x014E 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,137 ::
0x0150 0xDF75 RCALL _Delay_1us
;__Lib_Lcd.c,138 ::
0x0152 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,139 ::
0x0154 0xDF68 RCALL _Delay_5500us
;__Lib_Lcd.c,142 ::
0x0156 0x9E8C BCF LCD_D7, BitPos(LCD_D7+0)
;__Lib_Lcd.c,143 ::
0x0158 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,144 ::
0x015A 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,145 ::
0x015C 0xDF6F RCALL _Delay_1us
;__Lib_Lcd.c,146 ::
0x015E 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,148 ::
0x0160 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,149 ::
0x0162 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,150 ::
0x0164 0xDF6B RCALL _Delay_1us
;__Lib_Lcd.c,151 ::
0x0166 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,152 ::
0x0168 0xDF5E RCALL _Delay_5500us
;__Lib_Lcd.c,155 ::
0x016A 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,156 ::
0x016C 0xDF67 RCALL _Delay_1us
;__Lib_Lcd.c,157 ::
0x016E 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,159 ::
0x0170 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,160 ::
0x0172 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,161 ::
0x0174 0xDF63 RCALL _Delay_1us
;__Lib_Lcd.c,162 ::
0x0176 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,163 ::
0x0178 0xDF56 RCALL _Delay_5500us
;__Lib_Lcd.c,166 ::
0x017A 0x988C BCF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,167 ::
0x017C 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,168 ::
0x017E 0xDF5E RCALL _Delay_1us
;__Lib_Lcd.c,169 ::
0x0180 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,171 ::
0x0182 0x8E8C BSF LCD_D7, BitPos(LCD_D7+0)
;__Lib_Lcd.c,172 ::
0x0184 0x8C8C BSF LCD_D6, BitPos(LCD_D6+0)
;__Lib_Lcd.c,173 ::
0x0186 0x8A8C BSF LCD_D5, BitPos(LCD_D5+0)
;__Lib_Lcd.c,174 ::
0x0188 0x888C BSF LCD_D4, BitPos(LCD_D4+0)
;__Lib_Lcd.c,175 ::
0x018A 0x828D BSF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,176 ::
0x018C 0xDF57 RCALL _Delay_1us
;__Lib_Lcd.c,177 ::
0x018E 0x928D BCF LCD_EN, BitPos(LCD_EN+0)
;__Lib_Lcd.c,179 ::
0x0190 0xDF4A RCALL _Delay_5500us
;__Lib_Lcd.c,181 ::
0x0192 0x801C BSF __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
;__Lib_Lcd.c,182 ::
L_end_Lcd_Init:
0x0194 0x0012 RETURN 0
; end of _Lcd_Init
___CC2DW:
;__Lib_System.c,21 ::
;__Lib_System.c,23 ::
_CC2DL_Loop1:
;__Lib_System.c,24 ::
0x0196 0x0009 TBLRD*+
;__Lib_System.c,25 ::
0x0198 0xFFE6CFF5 MOVFF TABLAT, POSTINC1
;__Lib_System.c,26 ::
0x019C 0x0600 DECF R0, 1, 0
;__Lib_System.c,27 ::
0x019E 0xE1FB BNZ _CC2DL_Loop1
;__Lib_System.c,28 ::
0x01A0 0x0601 DECF R1, 1, 0
;__Lib_System.c,29 ::
0x01A2 0xE1F9 BNZ _CC2DL_Loop1
;__Lib_System.c,31 ::
L_end___CC2DW:
0x01A4 0x0012 RETURN 0
; end of ___CC2DW
_WordToStr:
;__Lib_Conversions.c,98 ::
;__Lib_Conversions.c,103 ::
0x01A6 0x6A2D CLRF WordToStr_len_L0
L_WordToStr11:
0x01A8 0x0E05 MOVLW 5
0x01AA 0x5C2D SUBWF WordToStr_len_L0, 0
0x01AC 0xE20A BC L_WordToStr12
;__Lib_Conversions.c,104 ::
0x01AE 0x502D MOVF WordToStr_len_L0, 0
0x01B0 0x242B ADDWF FARG_WordToStr_output, 0
0x01B2 0x6EE1 MOVWF FSR1L
0x01B4 0x0E00 MOVLW 0
0x01B6 0x202C ADDWFC FARG_WordToStr_output+1, 0
0x01B8 0x6EE2 MOVWF FSR1L+1
0x01BA 0x0E20 MOVLW 32
0x01BC 0x6EE6 MOVWF POSTINC1
;__Lib_Conversions.c,103 ::
0x01BE 0x2A2D INCF WordToStr_len_L0, 1
;__Lib_Conversions.c,104 ::
0x01C0 0xD7F3 BRA L_WordToStr11
L_WordToStr12:
;__Lib_Conversions.c,105 ::
0x01C2 0x502D MOVF WordToStr_len_L0, 0
0x01C4 0x242B ADDWF FARG_WordToStr_output, 0
0x01C6 0x6EE1 MOVWF FSR1L
0x01C8 0x0E00 MOVLW 0
0x01CA 0x202C ADDWFC FARG_WordToStr_output+1, 0
0x01CC 0x6EE2 MOVWF FSR1L+1
0x01CE 0x6AE6 CLRF POSTINC1
0x01D0 0x062D DECF WordToStr_len_L0, 1
;__Lib_Conversions.c,107 ::
L_WordToStr14:
;__Lib_Conversions.c,108 ::
0x01D2 0x502D MOVF WordToStr_len_L0, 0
0x01D4 0x242B ADDWF FARG_WordToStr_output, 0
0x01D6 0x6E2E MOVWF FLOC__WordToStr
0x01D8 0x0E00 MOVLW 0
0x01DA 0x202C ADDWFC FARG_WordToStr_output+1, 0
0x01DC 0x6E2F MOVWF FLOC__WordToStr+1
0x01DE 0x0E0A MOVLW 10
0x01E0 0x6E04 MOVWF R4
0x01E2 0x0E00 MOVLW 0
0x01E4 0x6E05 MOVWF R5
0x01E6 0xF000C029 MOVFF FARG_WordToStr_input, R0
0x01EA 0xF001C02A MOVFF FARG_WordToStr_input+1, R1
0x01EE 0xDF67 RCALL _Div_16X16_U
0x01F0 0xF000C008 MOVFF R8, R0
0x01F4 0xF001C009 MOVFF R9, R1
0x01F8 0x0E30 MOVLW 48
0x01FA 0x2600 ADDWF R0, 1
0x01FC 0xFFE1C02E MOVFF FLOC__WordToStr, FSR1L
0x0200 0xFFE2C02F MOVFF FLOC__WordToStr+1, FSR1H
0x0204 0xFFE6C000 MOVFF R0, POSTINC1
;__Lib_Conversions.c,109 ::
0x0208 0x0E0A MOVLW 10
0x020A 0x6E04 MOVWF R4
0x020C 0x0E00 MOVLW 0
0x020E 0x6E05 MOVWF R5
0x0210 0xF000C029 MOVFF FARG_WordToStr_input, R0
0x0214 0xF001C02A MOVFF FARG_WordToStr_input+1, R1
0x0218 0xDF52 RCALL _Div_16X16_U
0x021A 0xF029C000 MOVFF R0, FARG_WordToStr_input
0x021E 0xF02AC001 MOVFF R1, FARG_WordToStr_input+1
;__Lib_Conversions.c,110 ::
0x0222 0x0E00 MOVLW 0
0x0224 0x1801 XORWF R1, 0
0x0226 0xE102 BNZ L__WordToStr159
0x0228 0x0E00 MOVLW 0
0x022A 0x1800 XORWF R0, 0
L__WordToStr159:
0x022C 0xE101 BNZ L_WordToStr16
;__Lib_Conversions.c,111 ::
0x022E 0xD002 BRA L_WordToStr15
L_WordToStr16:
;__Lib_Conversions.c,112 ::
0x0230 0x062D DECF WordToStr_len_L0, 1
;__Lib_Conversions.c,113 ::
0x0232 0xD7CF BRA L_WordToStr14
L_WordToStr15:
;__Lib_Conversions.c,114 ::
L_end_WordToStr:
0x0234 0x0012 RETURN 0
; end of _WordToStr
_Lcd_Out:
;__Lib_Lcd.c,184 ::
;__Lib_Lcd.c,187 ::
0x0236 0xD00F BRA L_Lcd_Out11
;__Lib_Lcd.c,188 ::
L_Lcd_Out13:
0x0238 0x0E80 MOVLW 128
0x023A 0x6E29 MOVWF FARG_Lcd_Out_row
0x023C 0xD019 BRA L_Lcd_Out12
;__Lib_Lcd.c,189 ::
L_Lcd_Out14:
0x023E 0x0EC0 MOVLW 192
0x0240 0x6E29 MOVWF FARG_Lcd_Out_row
0x0242 0xD016 BRA L_Lcd_Out12
;__Lib_Lcd.c,190 ::
L_Lcd_Out15:
0x0244 0x0E94 MOVLW 148
0x0246 0x6E29 MOVWF FARG_Lcd_Out_row
0x0248 0xD013 BRA L_Lcd_Out12
;__Lib_Lcd.c,191 ::
L_Lcd_Out16:
0x024A 0x0ED4 MOVLW 212
0x024C 0x6E29 MOVWF FARG_Lcd_Out_row
0x024E 0xD010 BRA L_Lcd_Out12
;__Lib_Lcd.c,192 ::
L_Lcd_Out17:
0x0250 0x0E80 MOVLW 128
0x0252 0x6E29 MOVWF FARG_Lcd_Out_row
;__Lib_Lcd.c,193 ::
0x0254 0xD00D BRA L_Lcd_Out12
L_Lcd_Out11:
0x0256 0x5029 MOVF FARG_Lcd_Out_row, 0
0x0258 0x0A01 XORLW 1
0x025A 0xE0EE BZ L_Lcd_Out13
0x025C 0x5029 MOVF FARG_Lcd_Out_row, 0
0x025E 0x0A02 XORLW 2
0x0260 0xE0EE BZ L_Lcd_Out14
0x0262 0x5029 MOVF FARG_Lcd_Out_row, 0
0x0264 0x0A03 XORLW 3
0x0266 0xE0EE BZ L_Lcd_Out15
0x0268 0x5029 MOVF FARG_Lcd_Out_row, 0
0x026A 0x0A04 XORLW 4
0x026C 0xE0EE BZ L_Lcd_Out16
0x026E 0xD7F0 BRA L_Lcd_Out17
L_Lcd_Out12:
;__Lib_Lcd.c,194 ::
0x0270 0x042A DECF FARG_Lcd_Out_column, 0
0x0272 0x6E00 MOVWF R0
0x0274 0x5029 MOVF FARG_Lcd_Out_row, 0
0x0276 0x2600 ADDWF R0, 1
0x0278 0xF029C000 MOVFF R0, FARG_Lcd_Out_row
;__Lib_Lcd.c,196 ::
0x027C 0xF031C000 MOVFF R0, FARG_Lcd_Cmd_out_char
0x0280 0xDEE0 RCALL _Lcd_Cmd
;__Lib_Lcd.c,197 ::
0x0282 0x901C BCF __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
;__Lib_Lcd.c,198 ::
0x0284 0x6A2D CLRF Lcd_Out_i_L0
;__Lib_Lcd.c,199 ::
L_Lcd_Out18:
0x0286 0x502D MOVF Lcd_Out_i_L0, 0
0x0288 0x242B ADDWF FARG_Lcd_Out_text, 0
0x028A 0x6EE9 MOVWF FSR0L
0x028C 0x0E00 MOVLW 0
0x028E 0x202C ADDWFC FARG_Lcd_Out_text+1, 0
0x0290 0x6EEA MOVWF FSR0L+1
0x0292 0x52EE MOVF POSTINC0, 1
0x0294 0xE00B BZ L_Lcd_Out19
;__Lib_Lcd.c,200 ::
0x0296 0x502D MOVF Lcd_Out_i_L0, 0
0x0298 0x242B ADDWF FARG_Lcd_Out_text, 0
0x029A 0x6EE9 MOVWF FSR0L
0x029C 0x0E00 MOVLW 0
0x029E 0x202C ADDWFC FARG_Lcd_Out_text+1, 0
0x02A0 0x6EEA MOVWF FSR0L+1
0x02A2 0xF030CFEE MOVFF POSTINC0, FARG_Lcd_Chr_CP_out_char
0x02A6 0xDF26 RCALL _Lcd_Chr_CP
0x02A8 0x2A2D INCF Lcd_Out_i_L0, 1
0x02AA 0xD7ED BRA L_Lcd_Out18
L_Lcd_Out19:
;__Lib_Lcd.c,201 ::
0x02AC 0x801C BSF __Lib_Lcd_cmd_status, BitPos(__Lib_Lcd_cmd_status+0)
;__Lib_Lcd.c,202 ::
L_end_Lcd_Out:
0x02AE 0x0012 RETURN 0
; end of _Lcd_Out
_main:
0x02B0 0x0E56 MOVLW 86
0x02B2 0x6E15 MOVWF ?lstr1_unit02_03_upDownCounterKeyLCD
0x02B4 0x0E61 MOVLW 97
0x02B6 0x6E16 MOVWF 22
0x02B8 0x0E6C MOVLW 108
0x02BA 0x6E17 MOVWF 23
0x02BC 0x0E75 MOVLW 117
0x02BE 0x6E18 MOVWF 24
0x02C0 0x0E65 MOVLW 101
0x02C2 0x6E19 MOVWF 25
0x02C4 0x0E3A MOVLW 58
0x02C6 0x6E1A MOVWF 26
0x02C8 0x6A1B CLRF 27
;unit02_03_upDownCounterKeyLCD.c,107 :: void main(){
;unit02_03_upDownCounterKeyLCD.c,108 :: signed int counter = 0 ;
0x02CA 0x6A27 CLRF main_counter_L0
0x02CC 0x6A28 CLRF main_counter_L0+1
;unit02_03_upDownCounterKeyLCD.c,114 :: ADCON1 |= 0X0F; // Config all ADC's pins as digital
0x02CE 0x0E0F MOVLW 15
0x02D0 0x12C1 IORWF ADCON1, 1
;unit02_03_upDownCounterKeyLCD.c,117 :: TRISB.RB0 = 1; // Up key ON PORTB.RB0
0x02D2 0x8093 BSF TRISB, 0
;unit02_03_upDownCounterKeyLCD.c,118 :: PORTB.RB0 = 1;
0x02D4 0x8081 BSF PORTB, 0
;unit02_03_upDownCounterKeyLCD.c,120 :: TRISB.RB1 = 1; // Down key ON PORTB.RB3
0x02D6 0x8293 BSF TRISB, 1
;unit02_03_upDownCounterKeyLCD.c,121 :: PORTB.RB1 = 1;
0x02D8 0x8281 BSF PORTB, 1
;unit02_03_upDownCounterKeyLCD.c,123 :: Lcd_Init(); // Initialize LCD
0x02DA 0xDF12 RCALL _Lcd_Init
;unit02_03_upDownCounterKeyLCD.c,125 :: Lcd_Cmd(_LCD_CLEAR); // Clear display
0x02DC 0x0E01 MOVLW 1
0x02DE 0x6E31 MOVWF FARG_Lcd_Cmd_out_char
0x02E0 0xDEB0 RCALL _Lcd_Cmd
;unit02_03_upDownCounterKeyLCD.c,126 :: Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
0x02E2 0x0E0C MOVLW 12
0x02E4 0x6E31 MOVWF FARG_Lcd_Cmd_out_char
0x02E6 0xDEAD RCALL _Lcd_Cmd
;unit02_03_upDownCounterKeyLCD.c,128 :: Lcd_Out(1, 1, "Value:"); // Write heading text in the first line
0x02E8 0x0E01 MOVLW 1
0x02EA 0x6E29 MOVWF FARG_Lcd_Out_row
0x02EC 0x0E01 MOVLW 1
0x02EE 0x6E2A MOVWF FARG_Lcd_Out_column
0x02F0 0x0E15 MOVLW ?lstr1_unit02_03_upDownCounterKeyLCD
0x02F2 0x6E2B MOVWF FARG_Lcd_Out_text
0x02F4 0x0E00 MOVLW hi_addr(?lstr1_unit02_03_upDownCounterKeyLCD)
0x02F6 0x6E2C MOVWF FARG_Lcd_Out_text+1
0x02F8 0xDF9E RCALL _Lcd_Out
;unit02_03_upDownCounterKeyLCD.c,130 :: while(TRUE)
L_main0:
;unit02_03_upDownCounterKeyLCD.c,132 :: if ( UP_KEY == 0 )
0x02FA 0xB081 BTFSC PORTB, 0
0x02FC 0xD022 BRA L_main2
;unit02_03_upDownCounterKeyLCD.c,134 :: counter++;
0x02FE 0x4A27 INFSNZ main_counter_L0, 1
0x0300 0x2A28 INCF main_counter_L0+1, 1
;unit02_03_upDownCounterKeyLCD.c,135 :: WordToStr(counter, txt);
0x0302 0xF029C027 MOVFF main_counter_L0, FARG_WordToStr_input
0x0306 0xF02AC028 MOVFF main_counter_L0+1, FARG_WordToStr_input+1
0x030A 0x0E1D MOVLW main_txt_L0
0x030C 0x6E2B MOVWF FARG_WordToStr_output
0x030E 0x0E00 MOVLW hi_addr(main_txt_L0)
0x0310 0x6E2C MOVWF FARG_WordToStr_output+1
0x0312 0xDF49 RCALL _WordToStr
;unit02_03_upDownCounterKeyLCD.c,136 :: Lcd_Out(1,7, txt);
0x0314 0x0E01 MOVLW 1
0x0316 0x6E29 MOVWF FARG_Lcd_Out_row
0x0318 0x0E07 MOVLW 7
0x031A 0x6E2A MOVWF FARG_Lcd_Out_column
0x031C 0x0E1D MOVLW main_txt_L0
0x031E 0x6E2B MOVWF FARG_Lcd_Out_text
0x0320 0x0E00 MOVLW hi_addr(main_txt_L0)
0x0322 0x6E2C MOVWF FARG_Lcd_Out_text+1
0x0324 0xDF88 RCALL _Lcd_Out
;unit02_03_upDownCounterKeyLCD.c,137 :: Delay_ms(300); // debouncing
0x0326 0x0E04 MOVLW 4
0x0328 0x6E0B MOVWF R11, 0
0x032A 0x0E0C MOVLW 12
0x032C 0x6E0C MOVWF R12, 0
0x032E 0x0E33 MOVLW 51
0x0330 0x6E0D MOVWF R13, 0
L_main3:
0x0332 0x2E0D DECFSZ R13, 1, 0
0x0334 0xD7FE BRA L_main3
0x0336 0x2E0C DECFSZ R12, 1, 0
0x0338 0xD7FC BRA L_main3
0x033A 0x2E0B DECFSZ R11, 1, 0
0x033C 0xD7FA BRA L_main3
0x033E 0x0000 NOP
0x0340 0x0000 NOP
;unit02_03_upDownCounterKeyLCD.c,138 :: }
L_main2:
;unit02_03_upDownCounterKeyLCD.c,140 :: if ( DOWN_KEY == 0 )
0x0342 0xB281 BTFSC PORTB, 1
0x0344 0xD024 BRA L_main4
;unit02_03_upDownCounterKeyLCD.c,142 :: counter--;
0x0346 0x0E01 MOVLW 1
0x0348 0x5E27 SUBWF main_counter_L0, 1
0x034A 0x0E00 MOVLW 0
0x034C 0x5A28 SUBWFB main_counter_L0+1, 1
;unit02_03_upDownCounterKeyLCD.c,143 :: WordToStr(counter, txt);
0x034E 0xF029C027 MOVFF main_counter_L0, FARG_WordToStr_input
0x0352 0xF02AC028 MOVFF main_counter_L0+1, FARG_WordToStr_input+1
0x0356 0x0E1D MOVLW main_txt_L0
0x0358 0x6E2B MOVWF FARG_WordToStr_output
0x035A 0x0E00 MOVLW hi_addr(main_txt_L0)
0x035C 0x6E2C MOVWF FARG_WordToStr_output+1
0x035E 0xDF23 RCALL _WordToStr
;unit02_03_upDownCounterKeyLCD.c,144 :: Lcd_Out(1,7, txt);
0x0360 0x0E01 MOVLW 1
0x0362 0x6E29 MOVWF FARG_Lcd_Out_row
0x0364 0x0E07 MOVLW 7
0x0366 0x6E2A MOVWF FARG_Lcd_Out_column
0x0368 0x0E1D MOVLW main_txt_L0
0x036A 0x6E2B MOVWF FARG_Lcd_Out_text
0x036C 0x0E00 MOVLW hi_addr(main_txt_L0)
0x036E 0x6E2C MOVWF FARG_Lcd_Out_text+1
0x0370 0xDF62 RCALL _Lcd_Out
;unit02_03_upDownCounterKeyLCD.c,145 :: Delay_ms(300); // debouncing
0x0372 0x0E04 MOVLW 4
0x0374 0x6E0B MOVWF R11, 0
0x0376 0x0E0C MOVLW 12
0x0378 0x6E0C MOVWF R12, 0
0x037A 0x0E33 MOVLW 51
0x037C 0x6E0D MOVWF R13, 0
L_main5:
0x037E 0x2E0D DECFSZ R13, 1, 0
0x0380 0xD7FE BRA L_main5
0x0382 0x2E0C DECFSZ R12, 1, 0
0x0384 0xD7FC BRA L_main5
0x0386 0x2E0B DECFSZ R11, 1, 0
0x0388 0xD7FA BRA L_main5
0x038A 0x0000 NOP
0x038C 0x0000 NOP
;unit02_03_upDownCounterKeyLCD.c,146 :: }
L_main4:
;unit02_03_upDownCounterKeyLCD.c,148 :: }
0x038E 0xD7B5 BRA L_main0
;unit02_03_upDownCounterKeyLCD.c,150 :: }
L_end_main:
0x0390 0xD7FF BRA $+0
; end of _main
Symbol List:
//** Routines locations **
//ADDRESS SIZE PROCEDURE
//----------------------------------------------
0x001C [10] _Delay_50us
0x0026 [22] _Delay_5500us
0x003C [6] _Delay_1us
0x0042 [124] _Lcd_Cmd
0x00BE [54] _Div_16X16_U
0x00F4 [12] _Lcd_Chr_CP
0x0100 [150] _Lcd_Init
0x0196 [16] ___CC2DW
0x01A6 [144] _WordToStr
0x0236 [122] _Lcd_Out
0x02B0 [226] _main
//** Variables locations **
//ADDRESS SIZE VARIABLE
//----------------------------------------------
0x0000 [1] R0
0x0001 [1] R1
0x0002 [2] memcpy_dd_L0
0x0002 [1] R2
0x0002 [2] memchr_s_L0
0x0002 [2] strlen_cp_L0
0x0002 [2] memset_pp_L0
0x0003 [2] memmove_tt_L0
0x0003 [2] Ltrim_original_L0
0x0003 [1] R3
0x0004 [2] strncat_cp_L0
0x0004 [2] memcpy_ss_L0
0x0004 [1] R4
0x0004 [2] strcpy_cp_L0
0x0004 [2] strcat_cp_L0
0x0004 [2] strncpy_cp_L0
0x0005 [2] memmove_ff_L0
0x0005 [1] R5
0x0005 [2] Ltrim_p_L0
0x0005 [2] LongWordToHex_input_half_L0
0x0005 [2] LongIntToHex_input_half_L0
0x0006 [1] R6
0x0007 [1] R7
0x0008 [1] R8
0x0009 [1] R9
0x000A [1] R10
0x000B [1] R11
0x000C [1] R12
0x000D [1] R13
0x000E [1] R14
0x000F [1] R15
0x0010 [1] R16
0x0011 [1] R17
0x0012 [1] R18
0x0013 [1] R19
0x0014 [1] R20
0x0015 [7] ?lstr1_unit02_03_upDownCounterKeyLCD
0x001C [0] __Lib_Lcd_cmd_status
0x001D [10] main_txt_L0
0x0027 [2] main_counter_L0
0x0029 [1] FARG_Lcd_Out_row
0x0029 [2] FARG_WordToStr_input
0x002A [1] FARG_Lcd_Out_column
0x002B [2] FARG_WordToStr_output
0x002B [2] FARG_Lcd_Out_text
0x002D [1] WordToStr_len_L0
0x002D [1] Lcd_Out_i_L0
0x002E [2] FLOC__WordToStr
0x0030 [1] FARG_Lcd_Chr_CP_out_char
0x0031 [1] FARG_Lcd_Cmd_out_char
0x0F81 [1] PORTB
0x0F8C [0] LCD_D7
0x0F8C [0] LATD4_bit
0x0F8C [0] LCD_D6
0x0F8C [0] LATD7_bit
0x0F8C [0] LATD6_bit
0x0F8C [0] LATD5_bit
0x0F8C [0] LCD_D5
0x0F8C [0] LCD_D4
0x0F8D [0] LATE2_bit
0x0F8D [0] LCD_EN
0x0F8D [0] LATE1_bit
0x0F8D [0] LCD_RS
0x0F93 [1] TRISB
0x0F95 [0] LCD_D5_Direction
0x0F95 [0] LCD_D4_Direction
0x0F95 [0] TRISD6_bit
0x0F95 [0] TRISD7_bit
0x0F95 [0] TRISD5_bit
0x0F95 [0] TRISD4_bit
0x0F95 [0] LCD_D7_Direction
0x0F95 [0] LCD_D6_Direction
0x0F96 [0] LCD_RS_Direction
0x0F96 [0] LCD_EN_Direction
0x0F96 [0] TRISE2_bit
0x0F96 [0] TRISE1_bit
0x0FC1 [1] ADCON1
0x0FD8 [1] STATUS
0x0FD9 [1] FSR2L
0x0FDA [1] FSR2H
0x0FDE [1] POSTINC2
0x0FE0 [1] BSR
0x0FE1 [1] FSR1L
0x0FE2 [1] FSR1H
0x0FE4 [1] PREINC1
0x0FE6 [1] POSTINC1
0x0FE7 [1] INDF1
0x0FE8 [1] WREG
0x0FE9 [1] FSR0L
0x0FEA [1] FSR0H
0x0FEE [1] POSTINC0
0x0FF3 [1] PRODL
0x0FF4 [1] PRODH
0x0FF5 [1] TABLAT
0x0FF6 [3] TBLPTR
0x0FF6 [1] TBLPTRL
0x0FF7 [1] TBLPTRH
0x0FF8 [1] TBLPTRU