-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmeter_logger.lst
9978 lines (9883 loc) · 555 KB
/
meter_logger.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
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
gplink-1.2.0 #980 (Oct 25 2013)
Copyright (c) 1998-2013 gputils project
Listing File Generated: 7-10-2014 02:46:16
Address Value Disassembly Source
------- ----- ----------- ------
;--------------------------------------------------------
; File Created by SDCC : free open source ANSI-C Compiler
; Version 3.4.0 #8981 (Jul 1 2014) (Mac OS X x86_64)
; This file was generated Thu Jul 10 02:46:16 2014
;--------------------------------------------------------
; PIC16 port for the Microchip 16-bit core micros
;--------------------------------------------------------
list p=18f2550
radix dec
CONFIG PLLDIV=2
CONFIG CPUDIV=OSC1_PLL2
CONFIG USBDIV=1
CONFIG FOSC=INTOSC_XT
CONFIG FCMEN=OFF
CONFIG IESO=OFF
CONFIG PWRT=OFF
CONFIG BOR=OFF
CONFIG BORV=3
CONFIG VREGEN=OFF
CONFIG WDT=OFF
CONFIG WDTPS=32768
CONFIG CCP2MX=ON
CONFIG PBADEN=OFF
CONFIG LPT1OSC=OFF
CONFIG MCLRE=ON
CONFIG STVREN=ON
CONFIG LVP=ON
CONFIG XINST=OFF
CONFIG CP0=OFF
CONFIG CP1=OFF
CONFIG CP2=OFF
CONFIG CP3=OFF
CONFIG CPB=OFF
CONFIG CPD=OFF
CONFIG WRT0=OFF
CONFIG WRT1=OFF
CONFIG WRT2=OFF
CONFIG WRT3=OFF
CONFIG WRTC=OFF
CONFIG WRTB=OFF
CONFIG WRTD=OFF
CONFIG EBTR0=OFF
CONFIG EBTR1=OFF
CONFIG EBTR2=OFF
CONFIG EBTR3=OFF
CONFIG EBTRB=OFF
;--------------------------------------------------------
; public variables in this module
;--------------------------------------------------------
global _c
global _sleep_ms
global _init_system
global _get_dev_id
global _my_usart_open
global _reverse
global _testo_valid_err_corr
global _testo_ir_enable
global _testo_ir_disable
global _rs232_8n2_tx_enable
global _rs232_8n2_tx_disable
global _rs232_8n2_rx_enable
global _rs232_8n2_rx_disable
global _rs232_8n2_tx_byte
global _rs232_7e1_tx_enable
global _rs232_7e1_tx_disable
global _rs232_7e1_rx_enable
global _rs232_7e1_rx_disable
global _rs232_7e1_tx_byte
global _fsk_tx_enable
global _fsk_tx_disable
global _fsk_rx_enable
global _fsk_rx_disable
global _send_fsk_high
global _send_fsk_low
global _fsk_tx_byte
global _fifo_in_use
global _fifo_put
global _fifo_get
global _fifo_snoop
global _get_battery_level
global _flash_led
global __debug
global __debug2
global _timer_0
global _last_timer_0
global _timer_1_ms
global _timer0_reload
global _debug_buffer
global _fifo_head
global _fifo_tail
global _fifo_buffer_0
global _fifo_buffer_1
global _fifo_buffer_2
global _fifo_buffer_3
global _codec_type
global _led_flash
global _testo_ir_proto
global _rs232_proto
global _fsk_proto
global _main
;--------------------------------------------------------
; extern variables in this module
;--------------------------------------------------------
extern __gptrput1
extern _UFRMLbits
extern _UFRMHbits
extern _UIRbits
extern _UIEbits
extern _UEIRbits
extern _UEIEbits
extern _USTATbits
extern _UCONbits
extern _UADDRbits
extern _UCFGbits
extern _UEP0bits
extern _UEP1bits
extern _UEP2bits
extern _UEP3bits
extern _UEP4bits
extern _UEP5bits
extern _UEP6bits
extern _UEP7bits
extern _UEP8bits
extern _UEP9bits
extern _UEP10bits
extern _UEP11bits
extern _UEP12bits
extern _UEP13bits
extern _UEP14bits
extern _UEP15bits
extern _PORTAbits
extern _PORTBbits
extern _PORTCbits
extern _PORTEbits
extern _LATAbits
extern _LATBbits
extern _LATCbits
extern _DDRAbits
extern _TRISAbits
extern _DDRBbits
extern _TRISBbits
extern _DDRCbits
extern _TRISCbits
extern _OSCTUNEbits
extern _PIE1bits
extern _PIR1bits
extern _IPR1bits
extern _PIE2bits
extern _PIR2bits
extern _IPR2bits
extern _EECON1bits
extern _RCSTAbits
extern _TXSTAbits
extern _T3CONbits
extern _CMCONbits
extern _CVRCONbits
extern _CCP1ASbits
extern _ECCP1ASbits
extern _CCP1DELbits
extern _ECCP1DELbits
extern _BAUDCONbits
extern _BAUDCTLbits
extern _CCP2CONbits
extern _CCP1CONbits
extern _ADCON2bits
extern _ADCON1bits
extern _ADCON0bits
extern _SSPCON2bits
extern _SSPCON1bits
extern _SSPSTATbits
extern _T2CONbits
extern _T1CONbits
extern _RCONbits
extern _WDTCONbits
extern _HLVDCONbits
extern _LVDCONbits
extern _OSCCONbits
extern _T0CONbits
extern _STATUSbits
extern _INTCON3bits
extern _INTCON2bits
extern _INTCONbits
extern _STKPTRbits
extern _stdin
extern _stdout
extern _UFRM
extern _UFRML
extern _UFRMH
extern _UIR
extern _UIE
extern _UEIR
extern _UEIE
extern _USTAT
extern _UCON
extern _UADDR
extern _UCFG
extern _UEP0
extern _UEP1
extern _UEP2
extern _UEP3
extern _UEP4
extern _UEP5
extern _UEP6
extern _UEP7
extern _UEP8
extern _UEP9
extern _UEP10
extern _UEP11
extern _UEP12
extern _UEP13
extern _UEP14
extern _UEP15
extern _PORTA
extern _PORTB
extern _PORTC
extern _PORTE
extern _LATA
extern _LATB
extern _LATC
extern _DDRA
extern _TRISA
extern _DDRB
extern _TRISB
extern _DDRC
extern _TRISC
extern _OSCTUNE
extern _PIE1
extern _PIR1
extern _IPR1
extern _PIE2
extern _PIR2
extern _IPR2
extern _EECON1
extern _EECON2
extern _EEDATA
extern _EEADR
extern _RCSTA
extern _TXSTA
extern _TXREG
extern _RCREG
extern _SPBRG
extern _SPBRGH
extern _T3CON
extern _TMR3
extern _TMR3L
extern _TMR3H
extern _CMCON
extern _CVRCON
extern _CCP1AS
extern _ECCP1AS
extern _CCP1DEL
extern _ECCP1DEL
extern _BAUDCON
extern _BAUDCTL
extern _CCP2CON
extern _CCPR2
extern _CCPR2L
extern _CCPR2H
extern _CCP1CON
extern _CCPR1
extern _CCPR1L
extern _CCPR1H
extern _ADCON2
extern _ADCON1
extern _ADCON0
extern _ADRES
extern _ADRESL
extern _ADRESH
extern _SSPCON2
extern _SSPCON1
extern _SSPSTAT
extern _SSPADD
extern _SSPBUF
extern _T2CON
extern _PR2
extern _TMR2
extern _T1CON
extern _TMR1
extern _TMR1L
extern _TMR1H
extern _RCON
extern _WDTCON
extern _HLVDCON
extern _LVDCON
extern _OSCCON
extern _T0CON
extern _TMR0
extern _TMR0L
extern _TMR0H
extern _STATUS
extern _FSR2L
extern _FSR2H
extern _PLUSW2
extern _PREINC2
extern _POSTDEC2
extern _POSTINC2
extern _INDF2
extern _BSR
extern _FSR1L
extern _FSR1H
extern _PLUSW1
extern _PREINC1
extern _POSTDEC1
extern _POSTINC1
extern _INDF1
extern _WREG
extern _FSR0L
extern _FSR0H
extern _PLUSW0
extern _PREINC0
extern _POSTDEC0
extern _POSTINC0
extern _INDF0
extern _INTCON3
extern _INTCON2
extern _INTCON
extern _PROD
extern _PRODL
extern _PRODH
extern _TABLAT
extern _TBLPTR
extern _TBLPTRL
extern _TBLPTRH
extern _TBLPTRU
extern _PC
extern _PCL
extern _PCLATH
extern _PCLATU
extern _STKPTR
extern _TOS
extern _TOSL
extern _TOSH
extern _TOSU
extern _sprintf
extern _usart_drdy
extern _usart_getc
extern _usart_putc
extern _usart_puts
extern _adc_open
extern _adc_close
extern _adc_conv
extern _adc_busy
extern _adc_read
extern _adc_setchannel
extern __mullong
extern __divulong
;--------------------------------------------------------
; Equates to used internal registers
;--------------------------------------------------------
STATUS equ 0xfd8
PCL equ 0xff9
PCLATH equ 0xffa
PCLATU equ 0xffb
WREG equ 0xfe8
BSR equ 0xfe0
FSR0L equ 0xfe9
FSR0H equ 0xfea
FSR1L equ 0xfe1
FSR2L equ 0xfd9
INDF0 equ 0xfef
POSTINC1 equ 0xfe6
POSTDEC1 equ 0xfe5
PREINC1 equ 0xfe4
PLUSW2 equ 0xfdb
PRODL equ 0xff3
PRODH equ 0xff4
; Internal registers
.registers udata_ovr 0x0000
r0x00 res 1
r0x01 res 1
r0x02 res 1
r0x03 res 1
r0x04 res 1
r0x05 res 1
r0x06 res 1
r0x07 res 1
r0x08 res 1
r0x09 res 1
r0x0a res 1
r0x0b res 1
r0x0c res 1
r0x0d res 1
udata_meter_logger_0 udata
_c res 1
udata_meter_logger_1 udata
_timer_1_ms res 2
udata_meter_logger_2 udata
_fifo_head res 2
udata_meter_logger_3 udata
_fifo_tail res 2
udata_meter_logger_4 udata
_debug_buffer res 128
udata_meter_logger_5 udata
_main_cmd_1_90 res 1
udata_meter_logger_6 udata
_main_sub_cmd_1_90 res 1
udata_meter_logger_7 udata
_timer_0 res 2
udata_meter_logger_8 udata
_timer0_reload res 2
udata_meter_logger_9 udata
_last_timer_0 res 2
udata_meter_logger_10 udata
_codec_type res 1
udata_meter_logger_11 udata
_testo_ir_proto res 6
udata_meter_logger_12 udata
_rs232_proto res 7
udata_meter_logger_13 udata
_fsk_proto res 16
udata_meter_logger_14 udata
_led_flash res 2
udata_meter_logger_15 udata
_fifo_buffer_0 res 256
udata_meter_logger_16 udata
_fifo_buffer_1 res 256
udata_meter_logger_17 udata
_fifo_buffer_2 res 256
udata_meter_logger_18 udata
_fifo_buffer_3 res 256
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
; ; Starting pCode block for absolute section
; ;-----------------------------------------
S_meter_logger_ivec_0x1_isr_high_prio code 0X000008
ivec_0x1_isr_high_prio:
000008 ef06 goto 0x260c GOTO _isr_high_prio
00000a f013
; ; Starting pCode block for absolute section
; ;-----------------------------------------
S_meter_logger_ivec_0x2_isr_low_prio code 0X000018
ivec_0x2_isr_low_prio:
000018 ef54 goto 0x4aa8 GOTO _isr_low_prio
00001a f025
; I code from now on!
; ; Starting pCode block
S_meter_logger__main code
_main:
; .line 124; meter_logger.c OSCCONbits.SCS = 0x10;
00001c 50d3 movf 0xd3, 0, 0 MOVF _OSCCONbits, W
00001e 0bfc andlw 0xfc ANDLW 0xfc
000020 6ed3 movwf 0xd3, 0 MOVWF _OSCCONbits
; .line 126; meter_logger.c OSCCONbits.IRCF = 0x7; // 8 MHz
000022 50d3 movf 0xd3, 0, 0 MOVF _OSCCONbits, W
000024 0b8f andlw 0x8f ANDLW 0x8f
000026 0970 iorlw 0x70 IORLW 0x70
000028 6ed3 movwf 0xd3, 0 MOVWF _OSCCONbits
00002a 0105 movlb 0x5 BANKSEL _timer_1_ms
; .line 129; meter_logger.c timer_1_ms = 0;
00002c 6b41 clrf 0x41, 0x1 CLRF _timer_1_ms, B
; removed redundant BANKSEL
00002e 6b42 clrf 0x42, 0x1 CLRF (_timer_1_ms + 1), B
000030 0105 movlb 0x5 BANKSEL _fifo_head
; .line 131; meter_logger.c fifo_head = 0;
000032 6b43 clrf 0x43, 0x1 CLRF _fifo_head, B
; removed redundant BANKSEL
000034 6b44 clrf 0x44, 0x1 CLRF (_fifo_head + 1), B
000036 0105 movlb 0x5 BANKSEL _fifo_tail
; .line 132; meter_logger.c fifo_tail = 0;
000038 6b45 clrf 0x45, 0x1 CLRF _fifo_tail, B
; removed redundant BANKSEL
00003a 6b46 clrf 0x46, 0x1 CLRF (_fifo_tail + 1), B
; .line 134; meter_logger.c init_system();
00003c ec30 call 0x4e60, 0 CALL _init_system
00003e f027
; .line 135; meter_logger.c LED_PIN = 1;
000040 8881 bsf 0x81, 0x4, 0 BSF _PORTBbits, 4
; .line 136; meter_logger.c sleep_ms(100);
000042 0e00 movlw 0 MOVLW 0x00
000044 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000046 0e64 movlw 0x64 MOVLW 0x64
000048 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00004a ecb6 call 0x4b6c, 0 CALL _sleep_ms
00004c f025
00004e 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
000050 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
; .line 137; meter_logger.c LED_PIN = 0;
000052 9881 bcf 0x81, 0x4, 0 BCF _PORTBbits, 4
; .line 144; meter_logger.c get_battery_level();
000054 ecd6 call 0x37ac, 0 CALL _get_battery_level
000056 f01b
; .line 147; meter_logger.c dev_id = get_dev_id();
000058 ecc9 call 0x4d92, 0 CALL _get_dev_id
00005a f026
00005c 6e00 movwf 0, 0 MOVWF r0x00
00005e cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01
000060 f001
; .line 149; meter_logger.c if (dev_id == 0x1240) {
000062 5000 movf 0, 0, 0 MOVF r0x00, W
000064 0a40 xorlw 0x40 XORLW 0x40
000066 e103 bnz 0x6e BNZ _00334_DS_
000068 5001 movf 0x1, 0, 0 MOVF r0x01, W
00006a 0a12 xorlw 0x12 XORLW 0x12
00006c e001 bz 0x70 BZ _00335_DS_
_00334_DS_:
00006e d01d bra 0xaa BRA _00109_DS_
_00335_DS_:
; .line 150; meter_logger.c sprintf(debug_buffer, "Processor: pic18f2550\n\r");
000070 0e00 movlw 0 MOVLW UPPER(___str_0)
000072 6e04 movwf 0x4, 0 MOVWF r0x04
000074 0e2f movlw 0x2f MOVLW HIGH(___str_0)
000076 6e03 movwf 0x3, 0 MOVWF r0x03
000078 0e0a movlw 0xa MOVLW LOW(___str_0)
00007a 6e02 movwf 0x2, 0 MOVWF r0x02
00007c 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
00007e 6e06 movwf 0x6, 0 MOVWF r0x06
000080 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000082 6e05 movwf 0x5, 0 MOVWF r0x05
000084 0e80 movlw 0x80 MOVLW 0x80
000086 6e07 movwf 0x7, 0 MOVWF r0x07
000088 5004 movf 0x4, 0, 0 MOVF r0x04, W
00008a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00008c 5003 movf 0x3, 0, 0 MOVF r0x03, W
00008e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000090 5002 movf 0x2, 0, 0 MOVF r0x02, W
000092 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000094 5007 movf 0x7, 0, 0 MOVF r0x07, W
000096 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000098 5006 movf 0x6, 0, 0 MOVF r0x06, W
00009a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00009c 5005 movf 0x5, 0, 0 MOVF r0x05, W
00009e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000a0 ec18 call 0x4630, 0 CALL _sprintf
0000a2 f023
0000a4 0e06 movlw 0x6 MOVLW 0x06
0000a6 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
0000a8 d044 bra 0x132 BRA _00110_DS_
_00109_DS_:
; .line 152; meter_logger.c else if (dev_id == 0x2a40) {
0000aa 5000 movf 0, 0, 0 MOVF r0x00, W
0000ac 0a40 xorlw 0x40 XORLW 0x40
0000ae e103 bnz 0xb6 BNZ _00336_DS_
0000b0 5001 movf 0x1, 0, 0 MOVF r0x01, W
0000b2 0a2a xorlw 0x2a XORLW 0x2a
0000b4 e001 bz 0xb8 BZ _00337_DS_
_00336_DS_:
0000b6 d01d bra 0xf2 BRA _00106_DS_
_00337_DS_:
; .line 153; meter_logger.c sprintf(debug_buffer, "Processor: pic18f2553\n\r");
0000b8 0e00 movlw 0 MOVLW UPPER(___str_1)
0000ba 6e04 movwf 0x4, 0 MOVWF r0x04
0000bc 0e2f movlw 0x2f MOVLW HIGH(___str_1)
0000be 6e03 movwf 0x3, 0 MOVWF r0x03
0000c0 0e22 movlw 0x22 MOVLW LOW(___str_1)
0000c2 6e02 movwf 0x2, 0 MOVWF r0x02
0000c4 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
0000c6 6e06 movwf 0x6, 0 MOVWF r0x06
0000c8 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
0000ca 6e05 movwf 0x5, 0 MOVWF r0x05
0000cc 0e80 movlw 0x80 MOVLW 0x80
0000ce 6e07 movwf 0x7, 0 MOVWF r0x07
0000d0 5004 movf 0x4, 0, 0 MOVF r0x04, W
0000d2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000d4 5003 movf 0x3, 0, 0 MOVF r0x03, W
0000d6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000d8 5002 movf 0x2, 0, 0 MOVF r0x02, W
0000da 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000dc 5007 movf 0x7, 0, 0 MOVF r0x07, W
0000de 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000e0 5006 movf 0x6, 0, 0 MOVF r0x06, W
0000e2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000e4 5005 movf 0x5, 0, 0 MOVF r0x05, W
0000e6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0000e8 ec18 call 0x4630, 0 CALL _sprintf
0000ea f023
0000ec 0e06 movlw 0x6 MOVLW 0x06
0000ee 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
0000f0 d020 bra 0x132 BRA _00110_DS_
_00106_DS_:
; .line 156; meter_logger.c sprintf(debug_buffer, "Processor: unsupported, device id: 0x%04x\n\r", dev_id);
0000f2 0e00 movlw 0 MOVLW UPPER(___str_2)
0000f4 6e04 movwf 0x4, 0 MOVWF r0x04
0000f6 0e2f movlw 0x2f MOVLW HIGH(___str_2)
0000f8 6e03 movwf 0x3, 0 MOVWF r0x03
0000fa 0e3a movlw 0x3a MOVLW LOW(___str_2)
0000fc 6e02 movwf 0x2, 0 MOVWF r0x02
0000fe 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000100 6e06 movwf 0x6, 0 MOVWF r0x06
000102 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000104 6e05 movwf 0x5, 0 MOVWF r0x05
000106 0e80 movlw 0x80 MOVLW 0x80
000108 6e07 movwf 0x7, 0 MOVWF r0x07
00010a 5001 movf 0x1, 0, 0 MOVF r0x01, W
00010c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00010e 5000 movf 0, 0, 0 MOVF r0x00, W
000110 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000112 5004 movf 0x4, 0, 0 MOVF r0x04, W
000114 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000116 5003 movf 0x3, 0, 0 MOVF r0x03, W
000118 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00011a 5002 movf 0x2, 0, 0 MOVF r0x02, W
00011c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00011e 5007 movf 0x7, 0, 0 MOVF r0x07, W
000120 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000122 5006 movf 0x6, 0, 0 MOVF r0x06, W
000124 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000126 5005 movf 0x5, 0, 0 MOVF r0x05, W
000128 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00012a ec18 call 0x4630, 0 CALL _sprintf
00012c f023
00012e 0e08 movlw 0x8 MOVLW 0x08
000130 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
_00110_DS_:
; .line 158; meter_logger.c usart_puts(debug_buffer);
000132 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000134 6e01 movwf 0x1, 0 MOVWF r0x01
000136 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000138 6e00 movwf 0, 0 MOVWF r0x00
00013a 0e80 movlw 0x80 MOVLW 0x80
00013c 6e02 movwf 0x2, 0 MOVWF r0x02
00013e 5002 movf 0x2, 0, 0 MOVF r0x02, W
000140 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000142 5001 movf 0x1, 0, 0 MOVF r0x01, W
000144 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000146 5000 movf 0, 0, 0 MOVF r0x00, W
000148 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00014a ec8d call 0x4d1a, 0 CALL _usart_puts
00014c f026
00014e 0e03 movlw 0x3 MOVLW 0x03
000150 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 161; meter_logger.c fsk_rx_enable();
000152 ec02 call 0x4e04, 0 CALL _fsk_rx_enable
000154 f027
_00171_DS_:
; .line 163; meter_logger.c if (fifo_get(&cmd)) {
000156 0e05 movlw 0x5 MOVLW HIGH(_main_cmd_1_90)
000158 6e01 movwf 0x1, 0 MOVWF r0x01
00015a 0e50 movlw 0x50 MOVLW LOW(_main_cmd_1_90)
00015c 6e00 movwf 0, 0 MOVWF r0x00
00015e 0e80 movlw 0x80 MOVLW 0x80
000160 6e02 movwf 0x2, 0 MOVWF r0x02
000162 5002 movf 0x2, 0, 0 MOVF r0x02, W
000164 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000166 5001 movf 0x1, 0, 0 MOVF r0x01, W
000168 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00016a 5000 movf 0, 0, 0 MOVF r0x00, W
00016c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00016e eca1 call 0x4142, 0 CALL _fifo_get
000170 f020
000172 6e00 movwf 0, 0 MOVWF r0x00
000174 0e03 movlw 0x3 MOVLW 0x03
000176 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
000178 5000 movf 0, 0, 0 MOVF r0x00, W
00017a e0ed bz 0x156 BZ _00171_DS_
; .line 164; meter_logger.c switch (cmd) {
00017c 0efb movlw 0xfb MOVLW 0xfb
00017e 0105 movlb 0x5 BANKSEL _main_cmd_1_90
000180 5d50 subwf 0x50, 0, 0x1 SUBWF _main_cmd_1_90, W, B
000182 a0d8 btfss 0xd8, 0, 0 BTFSS STATUS, 0
000184 ef67 goto 0xece GOTO _00165_DS_
000186 f007
000188 0e05 movlw 0x5 MOVLW 0x05
; removed redundant BANKSEL
00018a 2550 addwf 0x50, 0, 0x1 ADDWF _main_cmd_1_90, W, B
00018c 6e00 movwf 0, 0 MOVWF r0x00
00018e 6afa clrf 0xfa, 0 CLRF PCLATH
000190 6afb clrf 0xfb, 0 CLRF PCLATU
000192 3400 rlcf 0, 0, 0 RLCF r0x00, W
000194 36fa rlcf 0xfa, 0x1, 0 RLCF PCLATH, F
000196 34e8 rlcf 0xe8, 0, 0 RLCF WREG, W
000198 36fa rlcf 0xfa, 0x1, 0 RLCF PCLATH, F
00019a 0bfc andlw 0xfc ANDLW 0xfc
00019c 0fac addlw 0xac ADDLW LOW(_00339_DS_)
00019e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001a0 0e01 movlw 0x1 MOVLW HIGH(_00339_DS_)
0001a2 22fa addwfc 0xfa, 0x1, 0 ADDWFC PCLATH, F
0001a4 0e00 movlw 0 MOVLW UPPER(_00339_DS_)
0001a6 22fb addwfc 0xfb, 0x1, 0 ADDWFC PCLATU, F
0001a8 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W
0001aa 6ef9 movwf 0xf9, 0 MOVWF PCL
_00339_DS_:
0001ac ef61 goto 0xec2 GOTO _00163_DS_
0001ae f007
0001b0 ef30 goto 0xa60 GOTO _00145_DS_
0001b2 f005
0001b4 effe goto 0x5fc GOTO _00127_DS_
0001b6 f002
0001b8 efe0 goto 0x1c0 GOTO _00111_DS_
0001ba f000
0001bc eff9 goto 0x3f2 GOTO _00119_DS_
0001be f001
_00111_DS_:
; .line 166; meter_logger.c fsk_rx_disable();
0001c0 ec05 call 0x540a, 0 CALL _fsk_rx_disable
0001c2 f02a
; .line 167; meter_logger.c usart_puts("\n\rpress print on testo\n\r");
0001c4 0e00 movlw 0 MOVLW UPPER(___str_3)
0001c6 6e02 movwf 0x2, 0 MOVWF r0x02
0001c8 0e2f movlw 0x2f MOVLW HIGH(___str_3)
0001ca 6e01 movwf 0x1, 0 MOVWF r0x01
0001cc 0e66 movlw 0x66 MOVLW LOW(___str_3)
0001ce 6e00 movwf 0, 0 MOVWF r0x00
0001d0 5002 movf 0x2, 0, 0 MOVF r0x02, W
0001d2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001d4 5001 movf 0x1, 0, 0 MOVF r0x01, W
0001d6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001d8 5000 movf 0, 0, 0 MOVF r0x00, W
0001da 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001dc ec8d call 0x4d1a, 0 CALL _usart_puts
0001de f026
0001e0 0e03 movlw 0x3 MOVLW 0x03
0001e2 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 168; meter_logger.c testo_ir_enable();
0001e4 ecf9 call 0x4ff2, 0 CALL _testo_ir_enable
0001e6 f027
; .line 170; meter_logger.c last_fifo_size = 0;
0001e8 6a00 clrf 0, 0 CLRF r0x00
0001ea 6a01 clrf 0x1, 0 CLRF r0x01
; .line 171; meter_logger.c sleep_ms(10000); // 10 seconds to start printing
0001ec 0e27 movlw 0x27 MOVLW 0x27
0001ee 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001f0 0e10 movlw 0x10 MOVLW 0x10
0001f2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0001f4 ecb6 call 0x4b6c, 0 CALL _sleep_ms
0001f6 f025
0001f8 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
0001fa 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
; .line 172; meter_logger.c fifo_size = fifo_in_use();
0001fc ec34 call 0x5068, 0 CALL _fifo_in_use
0001fe f028
000200 6e02 movwf 0x2, 0 MOVWF r0x02
000202 cff3 movff 0xff3, 0x3 MOVFF PRODL, r0x03
000204 f003
_00112_DS_:
; .line 173; meter_logger.c while (fifo_size > last_fifo_size) { // and wait while we are still receiving data
000206 5003 movf 0x3, 0, 0 MOVF r0x03, W
000208 5c01 subwf 0x1, 0, 0 SUBWF r0x01, W
00020a e102 bnz 0x210 BNZ _00340_DS_
00020c 5002 movf 0x2, 0, 0 MOVF r0x02, W
00020e 5c00 subwf 0, 0, 0 SUBWF r0x00, W
_00340_DS_:
000210 e212 bc 0x236 BC _00114_DS_
; .line 174; meter_logger.c last_fifo_size = fifo_size;
000212 c002 movff 0x2, 0 MOVFF r0x02, r0x00
000214 f000
000216 c003 movff 0x3, 0x1 MOVFF r0x03, r0x01
000218 f001
; .line 175; meter_logger.c sleep_ms(200); // return data when no data for 200 ms
00021a 0e00 movlw 0 MOVLW 0x00
00021c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00021e 0ec8 movlw 0xc8 MOVLW 0xc8
000220 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000222 ecb6 call 0x4b6c, 0 CALL _sleep_ms
000224 f025
000226 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
000228 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
; .line 176; meter_logger.c fifo_size = fifo_in_use();
00022a ec34 call 0x5068, 0 CALL _fifo_in_use
00022c f028
00022e 6e02 movwf 0x2, 0 MOVWF r0x02
000230 cff3 movff 0xff3, 0x3 MOVFF PRODL, r0x03
000232 f003
000234 d7e8 bra 0x206 BRA _00112_DS_
_00114_DS_:
; .line 178; meter_logger.c testo_ir_disable();
000236 ec0f call 0x541e, 0 CALL _testo_ir_disable
000238 f02a
; .line 184; meter_logger.c sprintf(debug_buffer, "<- ");
00023a 0e00 movlw 0 MOVLW UPPER(___str_4)
00023c 6e06 movwf 0x6, 0 MOVWF r0x06
00023e 0e2f movlw 0x2f MOVLW HIGH(___str_4)
000240 6e05 movwf 0x5, 0 MOVWF r0x05
000242 0e80 movlw 0x80 MOVLW LOW(___str_4)
000244 6e04 movwf 0x4, 0 MOVWF r0x04
000246 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000248 6e08 movwf 0x8, 0 MOVWF r0x08
00024a 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
00024c 6e07 movwf 0x7, 0 MOVWF r0x07
00024e 0e80 movlw 0x80 MOVLW 0x80
000250 6e09 movwf 0x9, 0 MOVWF r0x09
000252 5006 movf 0x6, 0, 0 MOVF r0x06, W
000254 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000256 5005 movf 0x5, 0, 0 MOVF r0x05, W
000258 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00025a 5004 movf 0x4, 0, 0 MOVF r0x04, W
00025c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00025e 5009 movf 0x9, 0, 0 MOVF r0x09, W
000260 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000262 5008 movf 0x8, 0, 0 MOVF r0x08, W
000264 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000266 5007 movf 0x7, 0, 0 MOVF r0x07, W
000268 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00026a ec18 call 0x4630, 0 CALL _sprintf
00026c f023
00026e 0e06 movlw 0x6 MOVLW 0x06
000270 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 185; meter_logger.c usart_puts(debug_buffer);
000272 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000274 6e05 movwf 0x5, 0 MOVWF r0x05
000276 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000278 6e04 movwf 0x4, 0 MOVWF r0x04
00027a 0e80 movlw 0x80 MOVLW 0x80
00027c 6e06 movwf 0x6, 0 MOVWF r0x06
00027e 5006 movf 0x6, 0, 0 MOVF r0x06, W
000280 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000282 5005 movf 0x5, 0, 0 MOVF r0x05, W
000284 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000286 5004 movf 0x4, 0, 0 MOVF r0x04, W
000288 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00028a ec8d call 0x4d1a, 0 CALL _usart_puts
00028c f026
00028e 0e03 movlw 0x3 MOVLW 0x03
000290 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 186; meter_logger.c for (i = 0; i < fifo_in_use(); i++) {
000292 6a04 clrf 0x4, 0 CLRF r0x04
000294 6a05 clrf 0x5, 0 CLRF r0x05
_00174_DS_:
000296 ec34 call 0x5068, 0 CALL _fifo_in_use
000298 f028
00029a 6e06 movwf 0x6, 0 MOVWF r0x06
00029c cff3 movff 0xff3, 0x7 MOVFF PRODL, r0x07
00029e f007
0002a0 5007 movf 0x7, 0, 0 MOVF r0x07, W
0002a2 5c05 subwf 0x5, 0, 0 SUBWF r0x05, W
0002a4 e102 bnz 0x2aa BNZ _00341_DS_
0002a6 5006 movf 0x6, 0, 0 MOVF r0x06, W
0002a8 5c04 subwf 0x4, 0, 0 SUBWF r0x04, W
_00341_DS_:
0002aa b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0
0002ac d04c bra 0x346 BRA _00115_DS_
; .line 188; meter_logger.c fifo_get(&sub_cmd);
0002ae 0e05 movlw 0x5 MOVLW HIGH(_main_sub_cmd_1_90)
0002b0 6e07 movwf 0x7, 0 MOVWF r0x07
0002b2 0e51 movlw 0x51 MOVLW LOW(_main_sub_cmd_1_90)
0002b4 6e06 movwf 0x6, 0 MOVWF r0x06
0002b6 0e80 movlw 0x80 MOVLW 0x80
0002b8 6e08 movwf 0x8, 0 MOVWF r0x08
0002ba 5008 movf 0x8, 0, 0 MOVF r0x08, W
0002bc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002be 5007 movf 0x7, 0, 0 MOVF r0x07, W
0002c0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002c2 5006 movf 0x6, 0, 0 MOVF r0x06, W
0002c4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002c6 eca1 call 0x4142, 0 CALL _fifo_get
0002c8 f020
0002ca 0e03 movlw 0x3 MOVLW 0x03
0002cc 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 190; meter_logger.c sprintf(debug_buffer, "%d ", sub_cmd);
0002ce c551 movff 0x551, 0x6 MOVFF _main_sub_cmd_1_90, r0x06
0002d0 f006
0002d2 6a07 clrf 0x7, 0 CLRF r0x07
0002d4 0e00 movlw 0 MOVLW UPPER(___str_5)
0002d6 6e0a movwf 0xa, 0 MOVWF r0x0a
0002d8 0e2f movlw 0x2f MOVLW HIGH(___str_5)
0002da 6e09 movwf 0x9, 0 MOVWF r0x09
0002dc 0e84 movlw 0x84 MOVLW LOW(___str_5)
0002de 6e08 movwf 0x8, 0 MOVWF r0x08
0002e0 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
0002e2 6e0c movwf 0xc, 0 MOVWF r0x0c
0002e4 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
0002e6 6e0b movwf 0xb, 0 MOVWF r0x0b
0002e8 0e80 movlw 0x80 MOVLW 0x80
0002ea 6e0d movwf 0xd, 0 MOVWF r0x0d
0002ec 5007 movf 0x7, 0, 0 MOVF r0x07, W
0002ee 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002f0 5006 movf 0x6, 0, 0 MOVF r0x06, W
0002f2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002f4 500a movf 0xa, 0, 0 MOVF r0x0a, W
0002f6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002f8 5009 movf 0x9, 0, 0 MOVF r0x09, W
0002fa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
0002fc 5008 movf 0x8, 0, 0 MOVF r0x08, W
0002fe 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000300 500d movf 0xd, 0, 0 MOVF r0x0d, W
000302 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000304 500c movf 0xc, 0, 0 MOVF r0x0c, W
000306 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000308 500b movf 0xb, 0, 0 MOVF r0x0b, W
00030a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00030c ec18 call 0x4630, 0 CALL _sprintf
00030e f023
000310 0e08 movlw 0x8 MOVLW 0x08
000312 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 191; meter_logger.c usart_puts(debug_buffer);
000314 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000316 6e07 movwf 0x7, 0 MOVWF r0x07
000318 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
00031a 6e06 movwf 0x6, 0 MOVWF r0x06
00031c 0e80 movlw 0x80 MOVLW 0x80
00031e 6e08 movwf 0x8, 0 MOVWF r0x08
000320 5008 movf 0x8, 0, 0 MOVF r0x08, W
000322 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000324 5007 movf 0x7, 0, 0 MOVF r0x07, W
000326 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000328 5006 movf 0x6, 0, 0 MOVF r0x06, W
00032a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00032c ec8d call 0x4d1a, 0 CALL _usart_puts
00032e f026
000330 0e03 movlw 0x3 MOVLW 0x03
000332 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
000334 0105 movlb 0x5 BANKSEL _main_sub_cmd_1_90
; .line 193; meter_logger.c fifo_put(sub_cmd);
000336 5151 movf 0x51, 0, 0x1 MOVF _main_sub_cmd_1_90, W, B
000338 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00033a ecfd call 0x43fa, 0 CALL _fifo_put
00033c f021
00033e 52e6 movf 0xe6, 0x1, 0 MOVF POSTINC1, F
; .line 186; meter_logger.c for (i = 0; i < fifo_in_use(); i++) {
000340 4a04 infsnz 0x4, 0x1, 0 INFSNZ r0x04, F
000342 2a05 incf 0x5, 0x1, 0 INCF r0x05, F
000344 d7a8 bra 0x296 BRA _00174_DS_
_00115_DS_:
; .line 195; meter_logger.c sprintf(debug_buffer, "\n\r");
000346 0e00 movlw 0 MOVLW UPPER(___str_6)
000348 6e06 movwf 0x6, 0 MOVWF r0x06
00034a 0e2f movlw 0x2f MOVLW HIGH(___str_6)
00034c 6e05 movwf 0x5, 0 MOVWF r0x05
00034e 0e88 movlw 0x88 MOVLW LOW(___str_6)
000350 6e04 movwf 0x4, 0 MOVWF r0x04
000352 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000354 6e08 movwf 0x8, 0 MOVWF r0x08
000356 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000358 6e07 movwf 0x7, 0 MOVWF r0x07
00035a 0e80 movlw 0x80 MOVLW 0x80
00035c 6e09 movwf 0x9, 0 MOVWF r0x09
00035e 5006 movf 0x6, 0, 0 MOVF r0x06, W
000360 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000362 5005 movf 0x5, 0, 0 MOVF r0x05, W
000364 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000366 5004 movf 0x4, 0, 0 MOVF r0x04, W
000368 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00036a 5009 movf 0x9, 0, 0 MOVF r0x09, W
00036c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00036e 5008 movf 0x8, 0, 0 MOVF r0x08, W
000370 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000372 5007 movf 0x7, 0, 0 MOVF r0x07, W
000374 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000376 ec18 call 0x4630, 0 CALL _sprintf
000378 f023
00037a 0e06 movlw 0x6 MOVLW 0x06
00037c 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 196; meter_logger.c usart_puts(debug_buffer);
00037e 0e00 movlw 0 MOVLW HIGH(_debug_buffer)
000380 6e05 movwf 0x5, 0 MOVWF r0x05
000382 0e60 movlw 0x60 MOVLW LOW(_debug_buffer)
000384 6e04 movwf 0x4, 0 MOVWF r0x04
000386 0e80 movlw 0x80 MOVLW 0x80
000388 6e06 movwf 0x6, 0 MOVWF r0x06
00038a 5006 movf 0x6, 0, 0 MOVF r0x06, W
00038c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
00038e 5005 movf 0x5, 0, 0 MOVF r0x05, W
000390 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000392 5004 movf 0x4, 0, 0 MOVF r0x04, W
000394 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1
000396 ec8d call 0x4d1a, 0 CALL _usart_puts
000398 f026
00039a 0e03 movlw 0x3 MOVLW 0x03
00039c 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F
; .line 198; meter_logger.c fsk_tx_enable();
00039e ec6b call 0x50d6, 0 CALL _fsk_tx_enable
0003a0 f028
_00116_DS_:
; .line 199; meter_logger.c while (fifo_get(&cmd)) { // and send them via fsk
0003a2 0e05 movlw 0x5 MOVLW HIGH(_main_cmd_1_90)
0003a4 6e05 movwf 0x5, 0 MOVWF r0x05
0003a6 0e50 movlw 0x50 MOVLW LOW(_main_cmd_1_90)
0003a8 6e04 movwf 0x4, 0 MOVWF r0x04
0003aa 0e80 movlw 0x80 MOVLW 0x80
0003ac 6e06 movwf 0x6, 0 MOVWF r0x06
0003ae 5006 movf 0x6, 0, 0 MOVF r0x06, W