-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCarLock.lst
380 lines (379 loc) · 12.5 KB
/
CarLock.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
; LST file generated by mikroListExporter - v.2.0
; Date/Time: 22-Aug-22 10:43:19 AM
;----------------------------------------------
;Address Opcode ASM
0x0000 0x2839 GOTO 57
_____DoICP:
;__Lib_System.c,6 ::
;__Lib_System.c,9 ::
0x0003 0x1283 BCF STATUS, 5
0x0004 0x081B MOVF ___DoICPAddr+1, 0
0x0005 0x008A MOVWF PCLATH
;__Lib_System.c,10 ::
0x0006 0x081A MOVF ___DoICPAddr, 0
0x0007 0x0082 MOVWF PCL
;__Lib_System.c,12 ::
L_end_____DoICP:
0x0008 0x0008 RETURN
; end of _____DoICP
___CC2DW:
;__Lib_System.c,134 ::
;__Lib_System.c,137 ::
_CC2D_Loop1:
;__Lib_System.c,139 ::
0x0009 0x2003 CALL _____DoICP
0x000A 0x118A BCF PCLATH, 3
0x000B 0x120A BCF PCLATH, 4
;__Lib_System.c,141 ::
0x000C 0x0080 MOVWF INDF
;__Lib_System.c,142 ::
0x000D 0x0A84 INCF FSR, 1
;__Lib_System.c,143 ::
0x000E 0x0A9A INCF ___DoICPAddr, 1
;__Lib_System.c,145 ::
0x000F 0x1903 BTFSC STATUS, 2
;__Lib_System.c,146 ::
0x0010 0x0A9B INCF ___DoICPAddr+1, 1
;__Lib_System.c,147 ::
0x0011 0x03C0 DECF R0, 1
;__Lib_System.c,149 ::
0x0012 0x1D03 BTFSS STATUS, 2
;__Lib_System.c,150 ::
0x0013 0x2809 GOTO _CC2D_Loop1
;__Lib_System.c,152 ::
L_end___CC2DW:
0x0014 0x0008 RETURN
; end of ___CC2DW
_unlock:
;CarLock.c,40 :: void unlock()
;CarLock.c,42 :: x = 0;
0x0015 0x1283 BCF STATUS, 5
0x0016 0x018C CLRF CarLock_x
0x0017 0x018D CLRF CarLock_x+1
;CarLock.c,43 :: PORTB.B6 = 1;
0x0018 0x1706 BSF PORTB, 6
;CarLock.c,44 :: unlocked = 1;
0x0019 0x3001 MOVLW 1
0x001A 0x0090 MOVWF CarLock_unlocked
0x001B 0x3000 MOVLW 0
0x001C 0x0091 MOVWF CarLock_unlocked+1
;CarLock.c,46 :: PORTB.B5 = 0;
0x001D 0x1286 BCF PORTB, 5
;CarLock.c,47 :: locked = 0;
0x001E 0x018E CLRF CarLock_locked
0x001F 0x018F CLRF CarLock_locked+1
;CarLock.c,49 :: enabled = 0;
0x0020 0x0194 CLRF _enabled
0x0021 0x0195 CLRF _enabled+1
;CarLock.c,50 :: current = 2;
0x0022 0x3002 MOVLW 2
0x0023 0x0096 MOVWF _current
0x0024 0x3000 MOVLW 0
0x0025 0x0097 MOVWF _current+1
;CarLock.c,52 :: }
L_end_unlock:
0x0026 0x0008 RETURN
; end of _unlock
_lock:
;CarLock.c,26 :: void lock()
;CarLock.c,28 :: x = 0;
0x0027 0x1283 BCF STATUS, 5
0x0028 0x018C CLRF CarLock_x
0x0029 0x018D CLRF CarLock_x+1
;CarLock.c,29 :: PORTB.B5 = 1;
0x002A 0x1686 BSF PORTB, 5
;CarLock.c,30 :: locked = 1;
0x002B 0x3001 MOVLW 1
0x002C 0x008E MOVWF CarLock_locked
0x002D 0x3000 MOVLW 0
0x002E 0x008F MOVWF CarLock_locked+1
;CarLock.c,32 :: PORTB.B6 = 0;
0x002F 0x1306 BCF PORTB, 6
;CarLock.c,33 :: unlocked = 0;
0x0030 0x0190 CLRF CarLock_unlocked
0x0031 0x0191 CLRF CarLock_unlocked+1
;CarLock.c,35 :: enabled = 0;
0x0032 0x0194 CLRF _enabled
0x0033 0x0195 CLRF _enabled+1
;CarLock.c,36 :: current = 1;
0x0034 0x3001 MOVLW 1
0x0035 0x0096 MOVWF _current
0x0036 0x3000 MOVLW 0
0x0037 0x0097 MOVWF _current+1
;CarLock.c,38 :: }
L_end_lock:
0x0038 0x0008 RETURN
; end of _lock
_main:
0x0039 0x1283 BCF STATUS, 5
0x003A 0x018C CLRF CarLock_x
0x003B 0x018D CLRF 13
0x003C 0x018E CLRF CarLock_locked
0x003D 0x018F CLRF 15
0x003E 0x0190 CLRF CarLock_unlocked
0x003F 0x0191 CLRF 17
0x0040 0x0192 CLRF _pressed
0x0041 0x0193 CLRF 19
0x0042 0x0194 CLRF _enabled
0x0043 0x0195 CLRF 21
0x0044 0x0196 CLRF _current
0x0045 0x0197 CLRF 23
0x0046 0x0198 CLRF CarLock_time
0x0047 0x0199 CLRF 25
;CarLock.c,54 :: void main()
;CarLock.c,56 :: TRISB = 0b00000110;
0x0048 0x3006 MOVLW 6
0x0049 0x1683 BSF STATUS, 5
0x004A 0x0086 MOVWF TRISB
;CarLock.c,58 :: do
L_main0:
;CarLock.c,60 :: if (PORTB.B1 == 1 && PORTB.B2 == 1 && enabled == 1 && current != 1) // Check Lock
0x004B 0x1283 BCF STATUS, 5
0x004C 0x1C86 BTFSS PORTB, 1
0x004D 0x2873 GOTO L_main5
0x004E 0x1D06 BTFSS PORTB, 2
0x004F 0x2873 GOTO L_main5
0x0050 0x3000 MOVLW 0
0x0051 0x0615 XORWF _enabled+1, 0
0x0052 0x1D03 BTFSS STATUS, 2
0x0053 0x2856 GOTO L__main29
0x0054 0x3001 MOVLW 1
0x0055 0x0614 XORWF _enabled, 0
L__main29:
0x0056 0x1D03 BTFSS STATUS, 2
0x0057 0x2873 GOTO L_main5
0x0058 0x3000 MOVLW 0
0x0059 0x0617 XORWF _current+1, 0
0x005A 0x1D03 BTFSS STATUS, 2
0x005B 0x285E GOTO L__main30
0x005C 0x3001 MOVLW 1
0x005D 0x0616 XORWF _current, 0
L__main30:
0x005E 0x1903 BTFSC STATUS, 2
0x005F 0x2873 GOTO L_main5
L__main25:
;CarLock.c,62 :: time++;
0x0060 0x0A98 INCF CarLock_time, 1
0x0061 0x1903 BTFSC STATUS, 2
0x0062 0x0A99 INCF CarLock_time+1, 1
;CarLock.c,64 :: if (time >= inTimeCheck)
0x0063 0x3080 MOVLW 128
0x0064 0x0619 XORWF CarLock_time+1, 0
0x0065 0x00C0 MOVWF R0
0x0066 0x3080 MOVLW 128
0x0067 0x3A00 XORLW 0
0x0068 0x0240 SUBWF R0, 0
0x0069 0x1D03 BTFSS STATUS, 2
0x006A 0x286D GOTO L__main31
0x006B 0x3020 MOVLW 32
0x006C 0x0218 SUBWF CarLock_time, 0
L__main31:
0x006D 0x1C03 BTFSS STATUS, 0
0x006E 0x2872 GOTO L_main6
;CarLock.c,66 :: time = 0;
0x006F 0x0198 CLRF CarLock_time
0x0070 0x0199 CLRF CarLock_time+1
;CarLock.c,67 :: lock();
0x0071 0x2027 CALL _lock
;CarLock.c,68 :: }
L_main6:
;CarLock.c,69 :: }
0x0072 0x28D0 GOTO L_main7
L_main5:
0x0073 0x1283 BCF STATUS, 5
;CarLock.c,70 :: else if (PORTB.B1 == 0 && PORTB.B2 == 0 && enabled == 1 && current != 2) // Check Unlock
0x0074 0x1886 BTFSC PORTB, 1
0x0075 0x289B GOTO L_main10
0x0076 0x1906 BTFSC PORTB, 2
0x0077 0x289B GOTO L_main10
0x0078 0x3000 MOVLW 0
0x0079 0x0615 XORWF _enabled+1, 0
0x007A 0x1D03 BTFSS STATUS, 2
0x007B 0x287E GOTO L__main32
0x007C 0x3001 MOVLW 1
0x007D 0x0614 XORWF _enabled, 0
L__main32:
0x007E 0x1D03 BTFSS STATUS, 2
0x007F 0x289B GOTO L_main10
0x0080 0x3000 MOVLW 0
0x0081 0x0617 XORWF _current+1, 0
0x0082 0x1D03 BTFSS STATUS, 2
0x0083 0x2886 GOTO L__main33
0x0084 0x3002 MOVLW 2
0x0085 0x0616 XORWF _current, 0
L__main33:
0x0086 0x1903 BTFSC STATUS, 2
0x0087 0x289B GOTO L_main10
L__main24:
;CarLock.c,72 :: time++;
0x0088 0x0A98 INCF CarLock_time, 1
0x0089 0x1903 BTFSC STATUS, 2
0x008A 0x0A99 INCF CarLock_time+1, 1
;CarLock.c,74 :: if (time >= inTimeCheck)
0x008B 0x3080 MOVLW 128
0x008C 0x0619 XORWF CarLock_time+1, 0
0x008D 0x00C0 MOVWF R0
0x008E 0x3080 MOVLW 128
0x008F 0x3A00 XORLW 0
0x0090 0x0240 SUBWF R0, 0
0x0091 0x1D03 BTFSS STATUS, 2
0x0092 0x2895 GOTO L__main34
0x0093 0x3020 MOVLW 32
0x0094 0x0218 SUBWF CarLock_time, 0
L__main34:
0x0095 0x1C03 BTFSS STATUS, 0
0x0096 0x289A GOTO L_main11
;CarLock.c,76 :: time = 0;
0x0097 0x0198 CLRF CarLock_time
0x0098 0x0199 CLRF CarLock_time+1
;CarLock.c,77 :: unlock();
0x0099 0x2015 CALL _unlock
;CarLock.c,78 :: }
L_main11:
;CarLock.c,79 :: }
0x009A 0x28D0 GOTO L_main12
L_main10:
;CarLock.c,80 :: else if (locked == 1 || unlocked == 1)
0x009B 0x3000 MOVLW 0
0x009C 0x060F XORWF CarLock_locked+1, 0
0x009D 0x1D03 BTFSS STATUS, 2
0x009E 0x28A1 GOTO L__main35
0x009F 0x3001 MOVLW 1
0x00A0 0x060E XORWF CarLock_locked, 0
L__main35:
0x00A1 0x1903 BTFSC STATUS, 2
0x00A2 0x28AC GOTO L__main23
0x00A3 0x3000 MOVLW 0
0x00A4 0x0611 XORWF CarLock_unlocked+1, 0
0x00A5 0x1D03 BTFSS STATUS, 2
0x00A6 0x28A9 GOTO L__main36
0x00A7 0x3001 MOVLW 1
0x00A8 0x0610 XORWF CarLock_unlocked, 0
L__main36:
0x00A9 0x1903 BTFSC STATUS, 2
0x00AA 0x28AC GOTO L__main23
0x00AB 0x28C4 GOTO L_main15
L__main23:
;CarLock.c,82 :: x++;
0x00AC 0x0A8C INCF CarLock_x, 1
0x00AD 0x1903 BTFSC STATUS, 2
0x00AE 0x0A8D INCF CarLock_x+1, 1
;CarLock.c,84 :: if (x >= outTimeCheck)
0x00AF 0x3080 MOVLW 128
0x00B0 0x060D XORWF CarLock_x+1, 0
0x00B1 0x00C0 MOVWF R0
0x00B2 0x3080 MOVLW 128
0x00B3 0x3A00 XORLW 0
0x00B4 0x0240 SUBWF R0, 0
0x00B5 0x1D03 BTFSS STATUS, 2
0x00B6 0x28B9 GOTO L__main37
0x00B7 0x30B9 MOVLW 185
0x00B8 0x020C SUBWF CarLock_x, 0
L__main37:
0x00B9 0x1C03 BTFSS STATUS, 0
0x00BA 0x28C3 GOTO L_main16
;CarLock.c,86 :: locked = 0;
0x00BB 0x1283 BCF STATUS, 5
0x00BC 0x018E CLRF CarLock_locked
0x00BD 0x018F CLRF CarLock_locked+1
;CarLock.c,87 :: unlocked = 0;
0x00BE 0x0190 CLRF CarLock_unlocked
0x00BF 0x0191 CLRF CarLock_unlocked+1
;CarLock.c,88 :: PORTB = 0x00;
0x00C0 0x0186 CLRF PORTB
;CarLock.c,89 :: x = 0;
0x00C1 0x018C CLRF CarLock_x
0x00C2 0x018D CLRF CarLock_x+1
;CarLock.c,90 :: }
L_main16:
;CarLock.c,91 :: }
0x00C3 0x28D0 GOTO L_main17
L_main15:
0x00C4 0x1283 BCF STATUS, 5
;CarLock.c,92 :: else if (PORTB.B1 == 0 && PORTB.B2 == 1)
0x00C5 0x1886 BTFSC PORTB, 1
0x00C6 0x28D0 GOTO L_main20
0x00C7 0x1D06 BTFSS PORTB, 2
0x00C8 0x28D0 GOTO L_main20
L__main22:
;CarLock.c,94 :: pressed = 0;
0x00C9 0x0192 CLRF _pressed
0x00CA 0x0193 CLRF _pressed+1
;CarLock.c,95 :: current = 0;
0x00CB 0x0196 CLRF _current
0x00CC 0x0197 CLRF _current+1
;CarLock.c,96 :: time = 0;
0x00CD 0x0198 CLRF CarLock_time
0x00CE 0x0199 CLRF CarLock_time+1
;CarLock.c,97 :: PORTB = 0x00;
0x00CF 0x0186 CLRF PORTB
;CarLock.c,98 :: }
L_main20:
L_main17:
L_main12:
L_main7:
;CarLock.c,105 :: Delay_ms(interval);
0x00D0 0x301A MOVLW 26
0x00D1 0x00CC MOVWF R12
0x00D2 0x30F8 MOVLW 248
0x00D3 0x00CD MOVWF R13
L_main21:
0x00D4 0x0BCD DECFSZ R13, 1
0x00D5 0x28D4 GOTO L_main21
0x00D6 0x0BCC DECFSZ R12, 1
0x00D7 0x28D4 GOTO L_main21
0x00D8 0x0000 NOP
;CarLock.c,106 :: enabled = 1;
0x00D9 0x3001 MOVLW 1
0x00DA 0x0094 MOVWF _enabled
0x00DB 0x3000 MOVLW 0
0x00DC 0x0095 MOVWF _enabled+1
;CarLock.c,107 :: } while (1);
0x00DD 0x284B GOTO L_main0
;CarLock.c,108 :: }
L_end_main:
0x00DE 0x28DE GOTO $+0
; end of _main
Symbol List:
//** Routines locations **
//ADDRESS SIZE PROCEDURE
//----------------------------------------------
0x0003 [6] _____DoICP
0x0009 [12] ___CC2DW
0x0015 [18] _unlock
0x0027 [18] _lock
0x0039 [166] _main
//** Variables locations **
//ADDRESS SIZE VARIABLE
//----------------------------------------------
0x0000 [1] INDF
0x0002 [1] PCL
0x0003 [1] STATUS
0x0004 [1] FSR
0x0006 [1] PORTB
0x000A [1] PCLATH
0x000C [2] CarLock_x
0x000E [2] CarLock_locked
0x0010 [2] CarLock_unlocked
0x0012 [2] _pressed
0x0014 [2] _enabled
0x0016 [2] _current
0x0018 [2] CarLock_time
0x001A [2] ___DoICPAddr
0x0040 [1] R0
0x0041 [1] R1
0x0042 [1] R2
0x0043 [1] R3
0x0044 [1] R4
0x0045 [1] R5
0x0046 [1] R6
0x0047 [1] R7
0x0048 [1] R8
0x0049 [1] R9
0x004A [1] R10
0x004B [1] R11
0x004C [1] R12
0x004D [1] R13
0x004E [1] R14
0x004F [1] R15
0x0086 [1] TRISB