-
Notifications
You must be signed in to change notification settings - Fork 3
/
GSM.lst
3005 lines (3004 loc) · 101 KB
/
GSM.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
; LST file generated by mikroListExporter - v.2.0
; Date/Time: 05-05-2011 15:03:56
;----------------------------------------------
;Address Opcode ASM
0x0000 0x2C68 GOTO 1128
_Interrupt:
0x0004 0x00FF MOVWF R15
0x0005 0x0E03 SWAPF STATUS, 0
0x0006 0x0183 CLRF STATUS
0x0007 0x00BA MOVWF ___saveSTATUS
0x0008 0x080A MOVF PCLATH, 0
0x0009 0x00B0 MOVWF ___savePCLATH
0x000A 0x018A CLRF PCLATH
;main.c,13 :: void Interrupt() {
;main.c,14 :: if (INTCON.INTF)
0x000B 0x1C8B BTFSS INTCON, 1
0x000C 0x2812 GOTO L_Interrupt0
;main.c,16 :: WaterAlarmFlag = 1;
0x000D 0x3001 MOVLW 1
0x000E 0x00A1 MOVWF _WaterAlarmFlag
;main.c,17 :: INTCON = 0b10010000; // Reset Interrupt Flag and Re-enable Interrupt
0x000F 0x3090 MOVLW 144
0x0010 0x008B MOVWF INTCON
;main.c,18 :: return;
0x0011 0x0008 RETURN
;main.c,19 :: }
L_Interrupt0:
;main.c,20 :: }
L__Interrupt68:
0x0012 0x0830 MOVF ___savePCLATH, 0
0x0013 0x008A MOVWF PCLATH
0x0014 0x0E3A SWAPF ___saveSTATUS, 0
0x0015 0x0083 MOVWF STATUS
0x0016 0x0EFF SWAPF R15, 1
0x0017 0x0E7F SWAPF R15, 0
0x0018 0x0009 RETFIE
; end of _Interrupt
_KeyPadPulse:
;main.c,73 :: void KeyPadPulse(void)
;main.c,75 :: PORTC.B7 = 1;
0x0019 0x1283 BCF STATUS, 5
0x001A 0x1303 BCF STATUS, 6
0x001B 0x1787 BSF PORTC, 7
;main.c,76 :: Delay_ms(1);
0x001C 0x3003 MOVLW 3
0x001D 0x00FC MOVWF R12
0x001E 0x3097 MOVLW 151
0x001F 0x00FD MOVWF R13
L_KeyPadPulse13:
0x0020 0x0BFD DECFSZ R13, 1
0x0021 0x2820 GOTO L_KeyPadPulse13
0x0022 0x0BFC DECFSZ R12, 1
0x0023 0x2820 GOTO L_KeyPadPulse13
0x0024 0x0000 NOP
0x0025 0x0000 NOP
;main.c,77 :: PORTC.B7 = 0;
0x0026 0x1387 BCF PORTC, 7
;main.c,78 :: Delay_ms(1);
0x0027 0x3003 MOVLW 3
0x0028 0x00FC MOVWF R12
0x0029 0x3097 MOVLW 151
0x002A 0x00FD MOVWF R13
L_KeyPadPulse14:
0x002B 0x0BFD DECFSZ R13, 1
0x002C 0x282B GOTO L_KeyPadPulse14
0x002D 0x0BFC DECFSZ R12, 1
0x002E 0x282B GOTO L_KeyPadPulse14
0x002F 0x0000 NOP
0x0030 0x0000 NOP
;main.c,79 :: }
0x0031 0x0008 RETURN
; end of _KeyPadPulse
_UART1_Read:
;__Lib_UART_b75.c,19 ::
;__Lib_UART_b75.c,22 ::
0x0032 0x1283 BCF STATUS, 5
0x0033 0x1303 BCF STATUS, 6
0x0034 0x081A MOVF RCREG, 0
0x0035 0x00F1 MOVWF R1
;__Lib_UART_b75.c,23 ::
0x0036 0x1C98 BTFSS RCSTA, 1
0x0037 0x283A GOTO L_UART1_Read2
;__Lib_UART_b75.c,24 ::
0x0038 0x1218 BCF RCSTA, 4
;__Lib_UART_b75.c,25 ::
0x0039 0x1618 BSF RCSTA, 4
;__Lib_UART_b75.c,26 ::
L_UART1_Read2:
;__Lib_UART_b75.c,27 ::
0x003A 0x0871 MOVF R1, 0
0x003B 0x00F0 MOVWF R0
;__Lib_UART_b75.c,28 ::
0x003C 0x0008 RETURN
; end of _UART1_Read
_UART1_Data_Ready:
;__Lib_UART_b75.c,14 ::
;__Lib_UART_b75.c,15 ::
0x003D 0x3000 MOVLW 0
0x003E 0x1283 BCF STATUS, 5
0x003F 0x1303 BCF STATUS, 6
0x0040 0x1A8C BTFSC PIR1, 5
0x0041 0x3001 MOVLW 1
0x0042 0x00F0 MOVWF R0
;__Lib_UART_b75.c,16 ::
0x0043 0x0008 RETURN
; end of _UART1_Data_Ready
_KeyPadCountTo:
;main.c,81 :: void KeyPadCountTo(char countToVar)
;main.c,83 :: if (CurrentKeyPadCount < countToVar) // Needed count is higher than current count counted to
0x0044 0x1283 BCF STATUS, 5
0x0045 0x1303 BCF STATUS, 6
0x0046 0x0845 MOVF FARG_KeyPadCountTo_countToVar, 0
0x0047 0x0222 SUBWF _CurrentKeyPadCount, 0
0x0048 0x1803 BTFSC STATUS, 0
0x0049 0x2852 GOTO L_KeyPadCountTo15
;main.c,85 :: while (CurrentKeyPadCount < countToVar)
L_KeyPadCountTo16:
0x004A 0x0845 MOVF FARG_KeyPadCountTo_countToVar, 0
0x004B 0x0222 SUBWF _CurrentKeyPadCount, 0
0x004C 0x1803 BTFSC STATUS, 0
0x004D 0x2851 GOTO L_KeyPadCountTo17
;main.c,87 :: KeyPadPulse();
0x004E 0x2019 CALL _KeyPadPulse
;main.c,88 :: CurrentKeyPadCount++;
0x004F 0x0AA2 INCF _CurrentKeyPadCount, 1
;main.c,89 :: }
0x0050 0x284A GOTO L_KeyPadCountTo16
L_KeyPadCountTo17:
;main.c,90 :: return;
0x0051 0x0008 RETURN
;main.c,91 :: } else if (CurrentKeyPadCount > countToVar) { // Needed count is lower than current count counted to, therefor we have to roll over
L_KeyPadCountTo15:
0x0052 0x0822 MOVF _CurrentKeyPadCount, 0
0x0053 0x0245 SUBWF FARG_KeyPadCountTo_countToVar, 0
0x0054 0x1803 BTFSC STATUS, 0
0x0055 0x2867 GOTO L_KeyPadCountTo19
;main.c,92 :: while (CurrentKeyPadCount < 9) // Count to max of BCD Chip
L_KeyPadCountTo20:
0x0056 0x3009 MOVLW 9
0x0057 0x0222 SUBWF _CurrentKeyPadCount, 0
0x0058 0x1803 BTFSC STATUS, 0
0x0059 0x285D GOTO L_KeyPadCountTo21
;main.c,94 :: KeyPadPulse();
0x005A 0x2019 CALL _KeyPadPulse
;main.c,95 :: CurrentKeyPadCount++;
0x005B 0x0AA2 INCF _CurrentKeyPadCount, 1
;main.c,96 :: }
0x005C 0x2856 GOTO L_KeyPadCountTo20
L_KeyPadCountTo21:
;main.c,98 :: KeyPadPulse();
0x005D 0x2019 CALL _KeyPadPulse
;main.c,99 :: CurrentKeyPadCount = 0;
0x005E 0x01A2 CLRF _CurrentKeyPadCount
;main.c,102 :: while (CurrentKeyPadCount < countToVar)
L_KeyPadCountTo22:
0x005F 0x0845 MOVF FARG_KeyPadCountTo_countToVar, 0
0x0060 0x0222 SUBWF _CurrentKeyPadCount, 0
0x0061 0x1803 BTFSC STATUS, 0
0x0062 0x2866 GOTO L_KeyPadCountTo23
;main.c,104 :: KeyPadPulse();
0x0063 0x2019 CALL _KeyPadPulse
;main.c,105 :: CurrentKeyPadCount++;
0x0064 0x0AA2 INCF _CurrentKeyPadCount, 1
;main.c,106 :: }
0x0065 0x285F GOTO L_KeyPadCountTo22
L_KeyPadCountTo23:
;main.c,107 :: return;
0x0066 0x0008 RETURN
;main.c,108 :: }
L_KeyPadCountTo19:
;main.c,109 :: }
0x0067 0x0008 RETURN
; end of _KeyPadCountTo
_GetKeyPad:
;main.c,111 :: char GetKeyPad(void)
;main.c,113 :: KeyPadCountTo(1);
0x0068 0x3001 MOVLW 1
0x0069 0x1283 BCF STATUS, 5
0x006A 0x1303 BCF STATUS, 6
0x006B 0x00C5 MOVWF FARG_KeyPadCountTo_countToVar
0x006C 0x2044 CALL _KeyPadCountTo
;main.c,114 :: Delay_ms(10);
0x006D 0x301A MOVLW 26
0x006E 0x00FC MOVWF R12
0x006F 0x30F8 MOVLW 248
0x0070 0x00FD MOVWF R13
L_GetKeyPad24:
0x0071 0x0BFD DECFSZ R13, 1
0x0072 0x2871 GOTO L_GetKeyPad24
0x0073 0x0BFC DECFSZ R12, 1
0x0074 0x2871 GOTO L_GetKeyPad24
0x0075 0x0000 NOP
;main.c,115 :: if (PORTC.B3) return '1';
0x0076 0x1D87 BTFSS PORTC, 3
0x0077 0x287B GOTO L_GetKeyPad25
0x0078 0x3031 MOVLW 49
0x0079 0x00F0 MOVWF R0
0x007A 0x0008 RETURN
L_GetKeyPad25:
;main.c,116 :: if (PORTC.B5) return '2';
0x007B 0x1E87 BTFSS PORTC, 5
0x007C 0x2880 GOTO L_GetKeyPad26
0x007D 0x3032 MOVLW 50
0x007E 0x00F0 MOVWF R0
0x007F 0x0008 RETURN
L_GetKeyPad26:
;main.c,117 :: if (PORTC.B1) return '3';
0x0080 0x1C87 BTFSS PORTC, 1
0x0081 0x2885 GOTO L_GetKeyPad27
0x0082 0x3033 MOVLW 51
0x0083 0x00F0 MOVWF R0
0x0084 0x0008 RETURN
L_GetKeyPad27:
;main.c,119 :: KeyPadCountTo(2);
0x0085 0x3002 MOVLW 2
0x0086 0x00C5 MOVWF FARG_KeyPadCountTo_countToVar
0x0087 0x2044 CALL _KeyPadCountTo
;main.c,120 :: Delay_ms(10);
0x0088 0x301A MOVLW 26
0x0089 0x00FC MOVWF R12
0x008A 0x30F8 MOVLW 248
0x008B 0x00FD MOVWF R13
L_GetKeyPad28:
0x008C 0x0BFD DECFSZ R13, 1
0x008D 0x288C GOTO L_GetKeyPad28
0x008E 0x0BFC DECFSZ R12, 1
0x008F 0x288C GOTO L_GetKeyPad28
0x0090 0x0000 NOP
;main.c,121 :: if (PORTC.B3) return '4';
0x0091 0x1D87 BTFSS PORTC, 3
0x0092 0x2896 GOTO L_GetKeyPad29
0x0093 0x3034 MOVLW 52
0x0094 0x00F0 MOVWF R0
0x0095 0x0008 RETURN
L_GetKeyPad29:
;main.c,122 :: if (PORTC.B5) return '5';
0x0096 0x1E87 BTFSS PORTC, 5
0x0097 0x289B GOTO L_GetKeyPad30
0x0098 0x3035 MOVLW 53
0x0099 0x00F0 MOVWF R0
0x009A 0x0008 RETURN
L_GetKeyPad30:
;main.c,123 :: if (PORTC.B1) return '6';
0x009B 0x1C87 BTFSS PORTC, 1
0x009C 0x28A0 GOTO L_GetKeyPad31
0x009D 0x3036 MOVLW 54
0x009E 0x00F0 MOVWF R0
0x009F 0x0008 RETURN
L_GetKeyPad31:
;main.c,125 :: KeyPadCountTo(4);
0x00A0 0x3004 MOVLW 4
0x00A1 0x00C5 MOVWF FARG_KeyPadCountTo_countToVar
0x00A2 0x2044 CALL _KeyPadCountTo
;main.c,126 :: Delay_ms(10);
0x00A3 0x301A MOVLW 26
0x00A4 0x00FC MOVWF R12
0x00A5 0x30F8 MOVLW 248
0x00A6 0x00FD MOVWF R13
L_GetKeyPad32:
0x00A7 0x0BFD DECFSZ R13, 1
0x00A8 0x28A7 GOTO L_GetKeyPad32
0x00A9 0x0BFC DECFSZ R12, 1
0x00AA 0x28A7 GOTO L_GetKeyPad32
0x00AB 0x0000 NOP
;main.c,127 :: if (PORTC.B3) return '7';
0x00AC 0x1D87 BTFSS PORTC, 3
0x00AD 0x28B1 GOTO L_GetKeyPad33
0x00AE 0x3037 MOVLW 55
0x00AF 0x00F0 MOVWF R0
0x00B0 0x0008 RETURN
L_GetKeyPad33:
;main.c,128 :: if (PORTC.B5) return '8';
0x00B1 0x1E87 BTFSS PORTC, 5
0x00B2 0x28B6 GOTO L_GetKeyPad34
0x00B3 0x3038 MOVLW 56
0x00B4 0x00F0 MOVWF R0
0x00B5 0x0008 RETURN
L_GetKeyPad34:
;main.c,129 :: if (PORTC.B1) return '9';
0x00B6 0x1C87 BTFSS PORTC, 1
0x00B7 0x28BB GOTO L_GetKeyPad35
0x00B8 0x3039 MOVLW 57
0x00B9 0x00F0 MOVWF R0
0x00BA 0x0008 RETURN
L_GetKeyPad35:
;main.c,131 :: KeyPadCountTo(8);
0x00BB 0x3008 MOVLW 8
0x00BC 0x00C5 MOVWF FARG_KeyPadCountTo_countToVar
0x00BD 0x2044 CALL _KeyPadCountTo
;main.c,132 :: Delay_ms(10);
0x00BE 0x301A MOVLW 26
0x00BF 0x00FC MOVWF R12
0x00C0 0x30F8 MOVLW 248
0x00C1 0x00FD MOVWF R13
L_GetKeyPad36:
0x00C2 0x0BFD DECFSZ R13, 1
0x00C3 0x28C2 GOTO L_GetKeyPad36
0x00C4 0x0BFC DECFSZ R12, 1
0x00C5 0x28C2 GOTO L_GetKeyPad36
0x00C6 0x0000 NOP
;main.c,133 :: if (PORTC.B3) return '*';
0x00C7 0x1D87 BTFSS PORTC, 3
0x00C8 0x28CC GOTO L_GetKeyPad37
0x00C9 0x302A MOVLW 42
0x00CA 0x00F0 MOVWF R0
0x00CB 0x0008 RETURN
L_GetKeyPad37:
;main.c,134 :: if (PORTC.B5) return '0';
0x00CC 0x1E87 BTFSS PORTC, 5
0x00CD 0x28D1 GOTO L_GetKeyPad38
0x00CE 0x3030 MOVLW 48
0x00CF 0x00F0 MOVWF R0
0x00D0 0x0008 RETURN
L_GetKeyPad38:
;main.c,135 :: if (PORTC.B1) return '#';
0x00D1 0x1C87 BTFSS PORTC, 1
0x00D2 0x28D6 GOTO L_GetKeyPad39
0x00D3 0x3023 MOVLW 35
0x00D4 0x00F0 MOVWF R0
0x00D5 0x0008 RETURN
L_GetKeyPad39:
;main.c,137 :: return 0;
0x00D6 0x01F0 CLRF R0
;main.c,138 :: }
0x00D7 0x0008 RETURN
; end of _GetKeyPad
_____DoICP:
;__Lib_System.c,6 ::
;__Lib_System.c,9 ::
0x00D8 0x1283 BCF STATUS, 5
0x00D9 0x1303 BCF STATUS, 6
0x00DA 0x082F MOVF ___DoICPAddr+1, 0
0x00DB 0x008A MOVWF PCLATH
;__Lib_System.c,10 ::
0x00DC 0x082E MOVF ___DoICPAddr, 0
0x00DD 0x0082 MOVWF PCL
;__Lib_System.c,12 ::
0x00DE 0x0008 RETURN
; end of _____DoICP
_UART1_Write:
;__Lib_UART_b75.c,36 ::
;__Lib_UART_b75.c,37 ::
L_UART1_Write3:
0x00DF 0x1683 BSF STATUS, 5
0x00E0 0x1303 BCF STATUS, 6
0x00E1 0x1898 BTFSC TXSTA, 1
0x00E2 0x28E5 GOTO L_UART1_Write4
;__Lib_UART_b75.c,38 ::
0x00E3 0x0000 NOP
0x00E4 0x28DF GOTO L_UART1_Write3
L_UART1_Write4:
;__Lib_UART_b75.c,39 ::
0x00E5 0x1283 BCF STATUS, 5
0x00E6 0x0843 MOVF FARG_UART1_Write_data_, 0
0x00E7 0x0099 MOVWF TXREG
;__Lib_UART_b75.c,40 ::
0x00E8 0x0008 RETURN
; end of _UART1_Write
_WaitForRecieveChar:
;GSM.c,33 :: void WaitForRecieveChar(char delimiterChar)
;GSM.c,35 :: char recieveChar = 0;
0x00E9 0x1283 BCF STATUS, 5
0x00EA 0x1303 BCF STATUS, 6
0x00EB 0x01C4 CLRF WaitForRecieveChar_recieveChar_L0
;GSM.c,36 :: while (1)
L_WaitForRecieveChar4:
;GSM.c,38 :: if (UART1_Data_Ready() > 0) {
0x00EC 0x203D CALL _UART1_Data_Ready
0x00ED 0x0870 MOVF R0, 0
0x00EE 0x3C00 SUBLW 0
0x00EF 0x1803 BTFSC STATUS, 0
0x00F0 0x28F4 GOTO L_WaitForRecieveChar6
;GSM.c,39 :: recieveChar = UART1_Read();
0x00F1 0x2032 CALL _UART1_Read
0x00F2 0x0870 MOVF R0, 0
0x00F3 0x00C4 MOVWF WaitForRecieveChar_recieveChar_L0
;GSM.c,41 :: }
L_WaitForRecieveChar6:
;GSM.c,42 :: if (recieveChar == delimiterChar) break;
0x00F4 0x0844 MOVF WaitForRecieveChar_recieveChar_L0, 0
0x00F5 0x0643 XORWF FARG_WaitForRecieveChar_delimiterChar, 0
0x00F6 0x1D03 BTFSS STATUS, 2
0x00F7 0x28F9 GOTO L_WaitForRecieveChar7
0x00F8 0x28FA GOTO L_WaitForRecieveChar5
L_WaitForRecieveChar7:
;GSM.c,43 :: }
0x00F9 0x28EC GOTO L_WaitForRecieveChar4
L_WaitForRecieveChar5:
;GSM.c,44 :: }
0x00FA 0x0008 RETURN
; end of _WaitForRecieveChar
_Buzzer_Off:
;main.c,26 :: void Buzzer_Off(void)
;main.c,28 :: PORTC.B4 = 0;
0x00FB 0x1283 BCF STATUS, 5
0x00FC 0x1303 BCF STATUS, 6
0x00FD 0x1207 BCF PORTC, 4
;main.c,29 :: }
0x00FE 0x0008 RETURN
; end of _Buzzer_Off
_EmptySerialBuffer:
;GSM.c,65 :: void EmptySerialBuffer(void)
;GSM.c,68 :: while (UART1_Data_Ready() == 1) {
L_EmptySerialBuffer12:
0x00FF 0x203D CALL _UART1_Data_Ready
0x0100 0x0870 MOVF R0, 0
0x0101 0x3A01 XORLW 1
0x0102 0x1D03 BTFSS STATUS, 2
0x0103 0x2906 GOTO L_EmptySerialBuffer13
;GSM.c,69 :: recieveChar = UART1_Read();
0x0104 0x2032 CALL _UART1_Read
;GSM.c,70 :: }
0x0105 0x28FF GOTO L_EmptySerialBuffer12
L_EmptySerialBuffer13:
;GSM.c,71 :: }
0x0106 0x0008 RETURN
; end of _EmptySerialBuffer
_LED_Blink:
;main.c,62 :: void LED_Blink(char count)
;main.c,64 :: while (count > 0) {
L_LED_Blink9:
0x0107 0x1283 BCF STATUS, 5
0x0108 0x1303 BCF STATUS, 6
0x0109 0x0841 MOVF FARG_LED_Blink_count, 0
0x010A 0x3C00 SUBLW 0
0x010B 0x1803 BTFSC STATUS, 0
0x010C 0x292B GOTO L_LED_Blink10
;main.c,65 :: PORTC.B2 = 1;
0x010D 0x1507 BSF PORTC, 2
;main.c,66 :: Delay_ms(100);
0x010E 0x3002 MOVLW 2
0x010F 0x00FB MOVWF R11
0x0110 0x3004 MOVLW 4
0x0111 0x00FC MOVWF R12
0x0112 0x30BA MOVLW 186
0x0113 0x00FD MOVWF R13
L_LED_Blink11:
0x0114 0x0BFD DECFSZ R13, 1
0x0115 0x2914 GOTO L_LED_Blink11
0x0116 0x0BFC DECFSZ R12, 1
0x0117 0x2914 GOTO L_LED_Blink11
0x0118 0x0BFB DECFSZ R11, 1
0x0119 0x2914 GOTO L_LED_Blink11
0x011A 0x0000 NOP
;main.c,67 :: PORTC.B2 = 0;
0x011B 0x1107 BCF PORTC, 2
;main.c,68 :: Delay_ms(100);
0x011C 0x3002 MOVLW 2
0x011D 0x00FB MOVWF R11
0x011E 0x3004 MOVLW 4
0x011F 0x00FC MOVWF R12
0x0120 0x30BA MOVLW 186
0x0121 0x00FD MOVWF R13
L_LED_Blink12:
0x0122 0x0BFD DECFSZ R13, 1
0x0123 0x2922 GOTO L_LED_Blink12
0x0124 0x0BFC DECFSZ R12, 1
0x0125 0x2922 GOTO L_LED_Blink12
0x0126 0x0BFB DECFSZ R11, 1
0x0127 0x2922 GOTO L_LED_Blink12
0x0128 0x0000 NOP
;main.c,69 :: count--;
0x0129 0x03C1 DECF FARG_LED_Blink_count, 1
;main.c,70 :: }
0x012A 0x2907 GOTO L_LED_Blink9
L_LED_Blink10:
;main.c,71 :: }
0x012B 0x0008 RETURN
; end of _LED_Blink
_WaitForRecieveMessage:
;GSM.c,46 :: void WaitForRecieveMessage(const char message[])
;GSM.c,48 :: char pos = 0;
0x012C 0x1283 BCF STATUS, 5
0x012D 0x1303 BCF STATUS, 6
0x012E 0x01C2 CLRF WaitForRecieveMessage_pos_L0
;GSM.c,49 :: while (message[pos] != 0)
L_WaitForRecieveMessage8:
0x012F 0x0842 MOVF WaitForRecieveMessage_pos_L0, 0
0x0130 0x0741 ADDWF FARG_WaitForRecieveMessage_message, 0
0x0131 0x0084 MOVWF FSR
0x0132 0x0800 MOVF INDF, 0
0x0133 0x3A00 XORLW 0
0x0134 0x1903 BTFSC STATUS, 2
0x0135 0x293E GOTO L_WaitForRecieveMessage9
;GSM.c,51 :: WaitForRecieveChar(message[pos]);
0x0136 0x0842 MOVF WaitForRecieveMessage_pos_L0, 0
0x0137 0x0741 ADDWF FARG_WaitForRecieveMessage_message, 0
0x0138 0x0084 MOVWF FSR
0x0139 0x0800 MOVF INDF, 0
0x013A 0x00C3 MOVWF FARG_WaitForRecieveChar_delimiterChar
0x013B 0x20E9 CALL _WaitForRecieveChar
;GSM.c,52 :: pos++;
0x013C 0x0AC2 INCF WaitForRecieveMessage_pos_L0, 1
;GSM.c,53 :: }
0x013D 0x292F GOTO L_WaitForRecieveMessage8
L_WaitForRecieveMessage9:
;GSM.c,54 :: }
0x013E 0x0008 RETURN
; end of _WaitForRecieveMessage
_CancelAlarmOnClick:
;main.c,140 :: void CancelAlarmOnClick(void)
;main.c,143 :: if (WaterAlarmFlag != 0) {
0x013F 0x1283 BCF STATUS, 5
0x0140 0x1303 BCF STATUS, 6
0x0141 0x0821 MOVF _WaterAlarmFlag, 0
0x0142 0x3A00 XORLW 0
0x0143 0x1903 BTFSC STATUS, 2
0x0144 0x294C GOTO L_CancelAlarmOnClick40
;main.c,144 :: if (GetKeyPad() == '#') {
0x0145 0x2068 CALL _GetKeyPad
0x0146 0x0870 MOVF R0, 0
0x0147 0x3A23 XORLW 35
0x0148 0x1D03 BTFSS STATUS, 2
0x0149 0x294C GOTO L_CancelAlarmOnClick41
;main.c,145 :: WaterAlarmFlag = 0; // Clear the Alarm Flag, so the LED isn't turned on after GSM transmission has finished
0x014A 0x01A1 CLRF _WaterAlarmFlag
;main.c,146 :: Buzzer_Off(); // Disable Alarm
0x014B 0x20FB CALL _Buzzer_Off
;main.c,147 :: }
L_CancelAlarmOnClick41:
;main.c,148 :: }
L_CancelAlarmOnClick40:
;main.c,149 :: }
0x014C 0x0008 RETURN
; end of _CancelAlarmOnClick
_LED_Off:
;main.c,58 :: void LED_Off(void)
;main.c,60 :: PORTC.B2 = 0;
0x014D 0x1283 BCF STATUS, 5
0x014E 0x1303 BCF STATUS, 6
0x014F 0x1107 BCF PORTC, 2
;main.c,61 :: }
0x0150 0x0008 RETURN
; end of _LED_Off
_BeepAndBlink:
;main.c,41 :: void BeepAndBlink(char count)
;main.c,43 :: while (count > 0) {
L_BeepAndBlink5:
0x0151 0x1283 BCF STATUS, 5
0x0152 0x1303 BCF STATUS, 6
0x0153 0x0841 MOVF FARG_BeepAndBlink_count, 0
0x0154 0x3C00 SUBLW 0
0x0155 0x1803 BTFSC STATUS, 0
0x0156 0x2977 GOTO L_BeepAndBlink6
;main.c,44 :: PORTC.B2 = 1;
0x0157 0x1507 BSF PORTC, 2
;main.c,45 :: PORTC.B4 = 1;
0x0158 0x1607 BSF PORTC, 4
;main.c,46 :: Delay_ms(100);
0x0159 0x3002 MOVLW 2
0x015A 0x00FB MOVWF R11
0x015B 0x3004 MOVLW 4
0x015C 0x00FC MOVWF R12
0x015D 0x30BA MOVLW 186
0x015E 0x00FD MOVWF R13
L_BeepAndBlink7:
0x015F 0x0BFD DECFSZ R13, 1
0x0160 0x295F GOTO L_BeepAndBlink7
0x0161 0x0BFC DECFSZ R12, 1
0x0162 0x295F GOTO L_BeepAndBlink7
0x0163 0x0BFB DECFSZ R11, 1
0x0164 0x295F GOTO L_BeepAndBlink7
0x0165 0x0000 NOP
;main.c,47 :: PORTC.B2 = 0;
0x0166 0x1107 BCF PORTC, 2
;main.c,48 :: PORTC.B4 = 0;
0x0167 0x1207 BCF PORTC, 4
;main.c,49 :: Delay_ms(100);
0x0168 0x3002 MOVLW 2
0x0169 0x00FB MOVWF R11
0x016A 0x3004 MOVLW 4
0x016B 0x00FC MOVWF R12
0x016C 0x30BA MOVLW 186
0x016D 0x00FD MOVWF R13
L_BeepAndBlink8:
0x016E 0x0BFD DECFSZ R13, 1
0x016F 0x296E GOTO L_BeepAndBlink8
0x0170 0x0BFC DECFSZ R12, 1
0x0171 0x296E GOTO L_BeepAndBlink8
0x0172 0x0BFB DECFSZ R11, 1
0x0173 0x296E GOTO L_BeepAndBlink8
0x0174 0x0000 NOP
;main.c,50 :: count--;
0x0175 0x03C1 DECF FARG_BeepAndBlink_count, 1
;main.c,51 :: }
0x0176 0x2951 GOTO L_BeepAndBlink5
L_BeepAndBlink6:
;main.c,52 :: }
0x0177 0x0008 RETURN
; end of _BeepAndBlink
_UART1_Write_Text_Constant:
;GSM.c,56 :: void UART1_Write_Text_Constant(const char *txt)
;GSM.c,58 :: while (*txt!=0)
L_UART1_Write_Text_Constant10:
0x0178 0x1283 BCF STATUS, 5
0x0179 0x1303 BCF STATUS, 6
0x017A 0x0841 MOVF FARG_UART1_Write_Text_Constant_txt, 0
0x017B 0x00AE MOVWF ___DoICPAddr
0x017C 0x0842 MOVF FARG_UART1_Write_Text_Constant_txt+1, 0
0x017D 0x00AF MOVWF ___DoICPAddr+1
0x017E 0x20D8 CALL _____DoICP
0x017F 0x118A BCF PCLATH, 3
0x0180 0x120A BCF PCLATH, 4
0x0181 0x00F1 MOVWF R1
0x0182 0x0871 MOVF R1, 0
0x0183 0x3A00 XORLW 0
0x0184 0x1903 BTFSC STATUS, 2
0x0185 0x2993 GOTO L_UART1_Write_Text_Constant11
;GSM.c,60 :: UART1_Write(*txt);
0x0186 0x0841 MOVF FARG_UART1_Write_Text_Constant_txt, 0
0x0187 0x00AE MOVWF ___DoICPAddr
0x0188 0x0842 MOVF FARG_UART1_Write_Text_Constant_txt+1, 0
0x0189 0x00AF MOVWF ___DoICPAddr+1
0x018A 0x20D8 CALL _____DoICP
0x018B 0x118A BCF PCLATH, 3
0x018C 0x120A BCF PCLATH, 4
0x018D 0x00C3 MOVWF FARG_UART1_Write_data_
0x018E 0x20DF CALL _UART1_Write
;GSM.c,61 :: txt++;
0x018F 0x0AC1 INCF FARG_UART1_Write_Text_Constant_txt, 1
0x0190 0x1903 BTFSC STATUS, 2
0x0191 0x0AC2 INCF FARG_UART1_Write_Text_Constant_txt+1, 1
;GSM.c,62 :: }
0x0192 0x2978 GOTO L_UART1_Write_Text_Constant10
L_UART1_Write_Text_Constant11:
;GSM.c,63 :: }
0x0193 0x0008 RETURN
; end of _UART1_Write_Text_Constant
_GSM_PowerOff:
;GSM.c,80 :: void GSM_PowerOff(void)
;GSM.c,82 :: PORTB.B6 = 0;
0x0194 0x1283 BCF STATUS, 5
0x0195 0x1303 BCF STATUS, 6
0x0196 0x1306 BCF PORTB, 6
;GSM.c,83 :: Delay_ms(1000);
0x0197 0x300B MOVLW 11
0x0198 0x00FB MOVWF R11
0x0199 0x3026 MOVLW 38
0x019A 0x00FC MOVWF R12
0x019B 0x305D MOVLW 93
0x019C 0x00FD MOVWF R13
L_GSM_PowerOff16:
0x019D 0x0BFD DECFSZ R13, 1
0x019E 0x299D GOTO L_GSM_PowerOff16
0x019F 0x0BFC DECFSZ R12, 1
0x01A0 0x299D GOTO L_GSM_PowerOff16
0x01A1 0x0BFB DECFSZ R11, 1
0x01A2 0x299D GOTO L_GSM_PowerOff16
0x01A3 0x0000 NOP
0x01A4 0x0000 NOP
;GSM.c,84 :: PORTB.B6 = 1;
0x01A5 0x1706 BSF PORTB, 6
;GSM.c,85 :: Delay_ms(2000);
0x01A6 0x3015 MOVLW 21
0x01A7 0x00FB MOVWF R11
0x01A8 0x304B MOVLW 75
0x01A9 0x00FC MOVWF R12
0x01AA 0x30BE MOVLW 190
0x01AB 0x00FD MOVWF R13
L_GSM_PowerOff17:
0x01AC 0x0BFD DECFSZ R13, 1
0x01AD 0x29AC GOTO L_GSM_PowerOff17
0x01AE 0x0BFC DECFSZ R12, 1
0x01AF 0x29AC GOTO L_GSM_PowerOff17
0x01B0 0x0BFB DECFSZ R11, 1
0x01B1 0x29AC GOTO L_GSM_PowerOff17
0x01B2 0x0000 NOP
;GSM.c,86 :: }
0x01B3 0x0008 RETURN
; end of _GSM_PowerOff
_Buzzer_Beep:
;main.c,30 :: void Buzzer_Beep(char count)
;main.c,32 :: while (count > 0) {
L_Buzzer_Beep1:
0x01B4 0x1283 BCF STATUS, 5
0x01B5 0x1303 BCF STATUS, 6
0x01B6 0x083E MOVF FARG_Buzzer_Beep_count, 0
0x01B7 0x3C00 SUBLW 0
0x01B8 0x1803 BTFSC STATUS, 0
0x01B9 0x29D8 GOTO L_Buzzer_Beep2
;main.c,33 :: PORTC.B4 = 1;
0x01BA 0x1607 BSF PORTC, 4
;main.c,34 :: Delay_ms(100);
0x01BB 0x3002 MOVLW 2
0x01BC 0x00FB MOVWF R11
0x01BD 0x3004 MOVLW 4
0x01BE 0x00FC MOVWF R12
0x01BF 0x30BA MOVLW 186
0x01C0 0x00FD MOVWF R13
L_Buzzer_Beep3:
0x01C1 0x0BFD DECFSZ R13, 1
0x01C2 0x29C1 GOTO L_Buzzer_Beep3
0x01C3 0x0BFC DECFSZ R12, 1
0x01C4 0x29C1 GOTO L_Buzzer_Beep3
0x01C5 0x0BFB DECFSZ R11, 1
0x01C6 0x29C1 GOTO L_Buzzer_Beep3
0x01C7 0x0000 NOP
;main.c,35 :: PORTC.B4 = 0;
0x01C8 0x1207 BCF PORTC, 4
;main.c,36 :: Delay_ms(100);
0x01C9 0x3002 MOVLW 2
0x01CA 0x00FB MOVWF R11
0x01CB 0x3004 MOVLW 4
0x01CC 0x00FC MOVWF R12
0x01CD 0x30BA MOVLW 186
0x01CE 0x00FD MOVWF R13
L_Buzzer_Beep4:
0x01CF 0x0BFD DECFSZ R13, 1
0x01D0 0x29CF GOTO L_Buzzer_Beep4
0x01D1 0x0BFC DECFSZ R12, 1
0x01D2 0x29CF GOTO L_Buzzer_Beep4
0x01D3 0x0BFB DECFSZ R11, 1
0x01D4 0x29CF GOTO L_Buzzer_Beep4
0x01D5 0x0000 NOP
;main.c,37 :: count--;
0x01D6 0x03BE DECF FARG_Buzzer_Beep_count, 1
;main.c,38 :: }
0x01D7 0x29B4 GOTO L_Buzzer_Beep1
L_Buzzer_Beep2:
;main.c,39 :: }
0x01D8 0x0008 RETURN
; end of _Buzzer_Beep
_UART1_Write_Text:
;__Lib_UART_b75.c,43 ::
;__Lib_UART_b75.c,44 ::
0x01D9 0x1283 BCF STATUS, 5
0x01DA 0x1303 BCF STATUS, 6
0x01DB 0x01C0 CLRF UART1_Write_Text_counter_L0
;__Lib_UART_b75.c,46 ::
0x01DC 0x083E MOVF FARG_UART1_Write_Text_uart_text, 0
0x01DD 0x0084 MOVWF FSR
0x01DE 0x0800 MOVF INDF, 0
0x01DF 0x00BF MOVWF UART1_Write_Text_data__L0
;__Lib_UART_b75.c,47 ::
L_UART1_Write_Text5:
0x01E0 0x083F MOVF UART1_Write_Text_data__L0, 0
0x01E1 0x3A00 XORLW 0
0x01E2 0x1903 BTFSC STATUS, 2
0x01E3 0x29EE GOTO L_UART1_Write_Text6
;__Lib_UART_b75.c,48 ::
0x01E4 0x083F MOVF UART1_Write_Text_data__L0, 0
0x01E5 0x00C3 MOVWF FARG_UART1_Write_data_
0x01E6 0x20DF CALL _UART1_Write
;__Lib_UART_b75.c,49 ::
0x01E7 0x0AC0 INCF UART1_Write_Text_counter_L0, 1
;__Lib_UART_b75.c,50 ::
0x01E8 0x0840 MOVF UART1_Write_Text_counter_L0, 0
0x01E9 0x073E ADDWF FARG_UART1_Write_Text_uart_text, 0
0x01EA 0x0084 MOVWF FSR
0x01EB 0x0800 MOVF INDF, 0
0x01EC 0x00BF MOVWF UART1_Write_Text_data__L0
;__Lib_UART_b75.c,51 ::
0x01ED 0x29E0 GOTO L_UART1_Write_Text5
L_UART1_Write_Text6:
;__Lib_UART_b75.c,52 ::
0x01EE 0x0008 RETURN
; end of _UART1_Write_Text
_LED_On:
;main.c,54 :: void LED_On(void)
;main.c,56 :: PORTC.B2 = 1;
0x01EF 0x1283 BCF STATUS, 5
0x01F0 0x1303 BCF STATUS, 6
0x01F1 0x1507 BSF PORTC, 2
;main.c,57 :: }
0x01F2 0x0008 RETURN
; end of _LED_On
_GSM_Initialize:
;GSM.c,88 :: void GSM_Initialize(const char firstInit)
;GSM.c,90 :: UART1_Write_Text_Constant("AT");
0x01F3 0x3031 MOVLW ?lstr_1_GSM
0x01F4 0x1283 BCF STATUS, 5
0x01F5 0x1303 BCF STATUS, 6
0x01F6 0x00C1 MOVWF FARG_UART1_Write_Text_Constant_txt
0x01F7 0x3006 MOVLW hi_addr(?lstr_1_GSM)
0x01F8 0x00C2 MOVWF FARG_UART1_Write_Text_Constant_txt+1
0x01F9 0x2178 CALL _UART1_Write_Text_Constant
;GSM.c,91 :: UART1_Write(13); //Carriage return (new line)
0x01FA 0x300D MOVLW 13
0x01FB 0x00C3 MOVWF FARG_UART1_Write_data_
0x01FC 0x20DF CALL _UART1_Write
;GSM.c,92 :: Delay_ms(500);
0x01FD 0x3006 MOVLW 6
0x01FE 0x00FB MOVWF R11
0x01FF 0x3013 MOVLW 19
0x0200 0x00FC MOVWF R12
0x0201 0x30AD MOVLW 173
0x0202 0x00FD MOVWF R13
L_GSM_Initialize18:
0x0203 0x0BFD DECFSZ R13, 1
0x0204 0x2A03 GOTO L_GSM_Initialize18
0x0205 0x0BFC DECFSZ R12, 1
0x0206 0x2A03 GOTO L_GSM_Initialize18
0x0207 0x0BFB DECFSZ R11, 1
0x0208 0x2A03 GOTO L_GSM_Initialize18
0x0209 0x0000 NOP
0x020A 0x0000 NOP
;GSM.c,93 :: UART1_Write_Text_Constant("AT");
0x020B 0x3034 MOVLW ?lstr_2_GSM
0x020C 0x00C1 MOVWF FARG_UART1_Write_Text_Constant_txt
0x020D 0x3006 MOVLW hi_addr(?lstr_2_GSM)
0x020E 0x00C2 MOVWF FARG_UART1_Write_Text_Constant_txt+1
0x020F 0x2178 CALL _UART1_Write_Text_Constant
;GSM.c,94 :: UART1_Write(13); //Carriage return (new line)
0x0210 0x300D MOVLW 13
0x0211 0x00C3 MOVWF FARG_UART1_Write_data_
0x0212 0x20DF CALL _UART1_Write
;GSM.c,95 :: WaitForRecieveChar(0x0A);
0x0213 0x300A MOVLW 10
0x0214 0x00C3 MOVWF FARG_WaitForRecieveChar_delimiterChar
0x0215 0x20E9 CALL _WaitForRecieveChar
;GSM.c,96 :: EmptySerialBuffer();
0x0216 0x20FF CALL _EmptySerialBuffer
;GSM.c,97 :: CancelAlarmOnClick(); // Check if # is held - if true, disable the alarm and buzzer
0x0217 0x213F CALL _CancelAlarmOnClick
;GSM.c,98 :: if (firstInit == 1) BeepAndBlink(1);
0x0218 0x083E MOVF FARG_GSM_Initialize_firstInit, 0
0x0219 0x3A01 XORLW 1
0x021A 0x1D03 BTFSS STATUS, 2
0x021B 0x2A1F GOTO L_GSM_Initialize19
0x021C 0x3001 MOVLW 1
0x021D 0x00C1 MOVWF FARG_BeepAndBlink_count
0x021E 0x2151 CALL _BeepAndBlink
L_GSM_Initialize19:
;GSM.c,100 :: UART1_Write_Text_Constant("AT+CPIN=");
0x021F 0x3004 MOVLW ?lstr_3_GSM
0x0220 0x00C1 MOVWF FARG_UART1_Write_Text_Constant_txt
0x0221 0x3006 MOVLW hi_addr(?lstr_3_GSM)
0x0222 0x00C2 MOVWF FARG_UART1_Write_Text_Constant_txt+1
0x0223 0x2178 CALL _UART1_Write_Text_Constant
;GSM.c,102 :: i = 0;
0x0224 0x01A0 CLRF _i
;GSM.c,103 :: while (SIMPin[i] != 0)
L_GSM_Initialize20:
0x0225 0x0820 MOVF _i, 0
0x0226 0x3E28 ADDLW _SIMPin
0x0227 0x00F0 MOVWF R0
0x0228 0x3006 MOVLW hi_addr(_SIMPin)
0x0229 0x1803 BTFSC STATUS, 0
0x022A 0x3E01 ADDLW 1
0x022B 0x00F1 MOVWF R0+1
0x022C 0x0870 MOVF R0, 0
0x022D 0x00AE MOVWF ___DoICPAddr
0x022E 0x0871 MOVF R0+1, 0
0x022F 0x00AF MOVWF ___DoICPAddr+1
0x0230 0x20D8 CALL _____DoICP
0x0231 0x118A BCF PCLATH, 3
0x0232 0x120A BCF PCLATH, 4
0x0233 0x00F1 MOVWF R1
0x0234 0x0871 MOVF R1, 0
0x0235 0x3A00 XORLW 0
0x0236 0x1903 BTFSC STATUS, 2
0x0237 0x2A4A GOTO L_GSM_Initialize21
;GSM.c,105 :: UART1_Write(SIMPin[i]);
0x0238 0x0820 MOVF _i, 0
0x0239 0x3E28 ADDLW _SIMPin
0x023A 0x00F0 MOVWF R0
0x023B 0x3006 MOVLW hi_addr(_SIMPin)
0x023C 0x1803 BTFSC STATUS, 0
0x023D 0x3E01 ADDLW 1
0x023E 0x00F1 MOVWF R0+1
0x023F 0x0870 MOVF R0, 0
0x0240 0x00AE MOVWF ___DoICPAddr
0x0241 0x0871 MOVF R0+1, 0
0x0242 0x00AF MOVWF ___DoICPAddr+1
0x0243 0x20D8 CALL _____DoICP
0x0244 0x118A BCF PCLATH, 3
0x0245 0x120A BCF PCLATH, 4
0x0246 0x00C3 MOVWF FARG_UART1_Write_data_
0x0247 0x20DF CALL _UART1_Write
;GSM.c,106 :: i++;
0x0248 0x0AA0 INCF _i, 1
;GSM.c,107 :: }
0x0249 0x2A25 GOTO L_GSM_Initialize20
L_GSM_Initialize21:
;GSM.c,108 :: UART1_Write(13);
0x024A 0x300D MOVLW 13
0x024B 0x00C3 MOVWF FARG_UART1_Write_data_
0x024C 0x20DF CALL _UART1_Write
;GSM.c,109 :: WaitForRecieveChar(0x0A);
0x024D 0x300A MOVLW 10
0x024E 0x00C3 MOVWF FARG_WaitForRecieveChar_delimiterChar
0x024F 0x20E9 CALL _WaitForRecieveChar
;GSM.c,110 :: EmptySerialBuffer();
0x0250 0x20FF CALL _EmptySerialBuffer
;GSM.c,111 :: if (firstInit == 1) BeepAndBlink(1);
0x0251 0x083E MOVF FARG_GSM_Initialize_firstInit, 0
0x0252 0x3A01 XORLW 1
0x0253 0x1D03 BTFSS STATUS, 2
0x0254 0x2A58 GOTO L_GSM_Initialize22
0x0255 0x3001 MOVLW 1
0x0256 0x00C1 MOVWF FARG_BeepAndBlink_count
0x0257 0x2151 CALL _BeepAndBlink
L_GSM_Initialize22:
;GSM.c,113 :: WaitForRecieveMessage("Call Ready");
0x0258 0x3023 MOVLW ?lstr4_GSM
0x0259 0x00C1 MOVWF FARG_WaitForRecieveMessage_message
0x025A 0x212C CALL _WaitForRecieveMessage
;GSM.c,114 :: EmptySerialBuffer();
0x025B 0x20FF CALL _EmptySerialBuffer
;GSM.c,115 :: CancelAlarmOnClick(); // Check if # is held - if true, disable the alarm and buzzer
0x025C 0x213F CALL _CancelAlarmOnClick
;GSM.c,116 :: if (firstInit == 1) BeepAndBlink(1);
0x025D 0x083E MOVF FARG_GSM_Initialize_firstInit, 0
0x025E 0x3A01 XORLW 1
0x025F 0x1D03 BTFSS STATUS, 2
0x0260 0x2A64 GOTO L_GSM_Initialize23
0x0261 0x3001 MOVLW 1
0x0262 0x00C1 MOVWF FARG_BeepAndBlink_count
0x0263 0x2151 CALL _BeepAndBlink
L_GSM_Initialize23:
;GSM.c,118 :: UART1_Write_Text_Constant("AT+CREG?");
0x0264 0x3016 MOVLW ?lstr_5_GSM
0x0265 0x00C1 MOVWF FARG_UART1_Write_Text_Constant_txt
0x0266 0x3006 MOVLW hi_addr(?lstr_5_GSM)
0x0267 0x00C2 MOVWF FARG_UART1_Write_Text_Constant_txt+1
0x0268 0x2178 CALL _UART1_Write_Text_Constant
;GSM.c,119 :: UART1_Write(13); //Carriage return (new line)
0x0269 0x300D MOVLW 13
0x026A 0x00C3 MOVWF FARG_UART1_Write_data_
0x026B 0x20DF CALL _UART1_Write
;GSM.c,120 :: WaitForRecieveChar(0x0D);
0x026C 0x300D MOVLW 13
0x026D 0x00C3 MOVWF FARG_WaitForRecieveChar_delimiterChar
0x026E 0x20E9 CALL _WaitForRecieveChar
;GSM.c,121 :: EmptySerialBuffer();
0x026F 0x20FF CALL _EmptySerialBuffer
;GSM.c,122 :: CancelAlarmOnClick(); // Check if # is held - if true, disable the alarm and buzzer
0x0270 0x213F CALL _CancelAlarmOnClick
;GSM.c,123 :: if (firstInit == 1) BeepAndBlink(1);
0x0271 0x083E MOVF FARG_GSM_Initialize_firstInit, 0
0x0272 0x3A01 XORLW 1
0x0273 0x1D03 BTFSS STATUS, 2
0x0274 0x2A78 GOTO L_GSM_Initialize24
0x0275 0x3001 MOVLW 1
0x0276 0x00C1 MOVWF FARG_BeepAndBlink_count
0x0277 0x2151 CALL _BeepAndBlink
L_GSM_Initialize24:
;GSM.c,126 :: Delay_ms(10000); // Wait for the GSM module to connect to the GSM network (Response +CREG: 0,1)
0x0278 0x3066 MOVLW 102
0x0279 0x00FB MOVWF R11
0x027A 0x3076 MOVLW 118
0x027B 0x00FC MOVWF R12
0x027C 0x30C1 MOVLW 193
0x027D 0x00FD MOVWF R13
L_GSM_Initialize25:
0x027E 0x0BFD DECFSZ R13, 1
0x027F 0x2A7E GOTO L_GSM_Initialize25
0x0280 0x0BFC DECFSZ R12, 1
0x0281 0x2A7E GOTO L_GSM_Initialize25
0x0282 0x0BFB DECFSZ R11, 1
0x0283 0x2A7E GOTO L_GSM_Initialize25
;GSM.c,127 :: UART1_Write_Text_Constant("AT+CREG?");
0x0284 0x301F MOVLW ?lstr_6_GSM
0x0285 0x00C1 MOVWF FARG_UART1_Write_Text_Constant_txt
0x0286 0x3006 MOVLW hi_addr(?lstr_6_GSM)
0x0287 0x00C2 MOVWF FARG_UART1_Write_Text_Constant_txt+1
0x0288 0x2178 CALL _UART1_Write_Text_Constant
;GSM.c,128 :: UART1_Write(13);
0x0289 0x300D MOVLW 13
0x028A 0x00C3 MOVWF FARG_UART1_Write_data_
0x028B 0x20DF CALL _UART1_Write
;GSM.c,129 :: WaitForRecieveChar(0x0D);
0x028C 0x300D MOVLW 13
0x028D 0x00C3 MOVWF FARG_WaitForRecieveChar_delimiterChar
0x028E 0x20E9 CALL _WaitForRecieveChar
;GSM.c,130 :: EmptySerialBuffer();
0x028F 0x20FF CALL _EmptySerialBuffer
;GSM.c,131 :: CancelAlarmOnClick(); // Check if # is held - if true, disable the alarm and buzzer
0x0290 0x213F CALL _CancelAlarmOnClick
;GSM.c,132 :: if (firstInit == 1) BeepAndBlink(1);
0x0291 0x083E MOVF FARG_GSM_Initialize_firstInit, 0
0x0292 0x3A01 XORLW 1
0x0293 0x1D03 BTFSS STATUS, 2
0x0294 0x2A98 GOTO L_GSM_Initialize26
0x0295 0x3001 MOVLW 1
0x0296 0x00C1 MOVWF FARG_BeepAndBlink_count
0x0297 0x2151 CALL _BeepAndBlink
L_GSM_Initialize26:
;GSM.c,135 :: }
0x0298 0x0008 RETURN
; end of _GSM_Initialize
_EEPROM_Write:
;__Lib_EEPROM.c,16 ::
;__Lib_EEPROM.c,20 ::
L_EEPROM_Write0:
0x0299 0x1683 BSF STATUS, 5
0x029A 0x1703 BSF STATUS, 6
0x029B 0x1C8C BTFSS EECON1, 1
0x029C 0x2A9F GOTO L_EEPROM_Write1
0x029D 0x0000 NOP
0x029E 0x2A99 GOTO L_EEPROM_Write0
L_EEPROM_Write1:
;__Lib_EEPROM.c,21 ::
0x029F 0x1283 BCF STATUS, 5
0x02A0 0x1303 BCF STATUS, 6
0x02A1 0x083E MOVF FARG_EEPROM_Write_Address, 0
0x02A2 0x1703 BSF STATUS, 6
0x02A3 0x008D MOVWF EEADR
;__Lib_EEPROM.c,22 ::