summaryrefslogtreecommitdiff
path: root/demo/keypad_display.lst
blob: 82a90497c4d326b4856d48d358bf3b5d4f53bd20 (plain)
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
                              1 ;--------------------------------------------------------
                              2 ; File Created by SDCC : free open source ANSI-C Compiler
                              3 ; Version 2.9.0 #5416 (Feb  3 2010) (UNIX)
                              4 ; This file was generated Sun Dec 16 06:02:14 2012
                              5 ;--------------------------------------------------------
                              6 	.module keypad_display
                              7 	.optsdcc -mmcs51 --model-small
                              8 	
                              9 ;--------------------------------------------------------
                             10 ; Public variables in this module
                             11 ;--------------------------------------------------------
                             12 	.globl _main
                             13 	.globl _CY
                             14 	.globl _AC
                             15 	.globl _F0
                             16 	.globl _RS1
                             17 	.globl _RS0
                             18 	.globl _OV
                             19 	.globl _F1
                             20 	.globl _P
                             21 	.globl _PS
                             22 	.globl _PT1
                             23 	.globl _PX1
                             24 	.globl _PT0
                             25 	.globl _PX0
                             26 	.globl _RD
                             27 	.globl _WR
                             28 	.globl _T1
                             29 	.globl _T0
                             30 	.globl _INT1
                             31 	.globl _INT0
                             32 	.globl _TXD
                             33 	.globl _RXD
                             34 	.globl _P3_7
                             35 	.globl _P3_6
                             36 	.globl _P3_5
                             37 	.globl _P3_4
                             38 	.globl _P3_3
                             39 	.globl _P3_2
                             40 	.globl _P3_1
                             41 	.globl _P3_0
                             42 	.globl _EA
                             43 	.globl _ES
                             44 	.globl _ET1
                             45 	.globl _EX1
                             46 	.globl _ET0
                             47 	.globl _EX0
                             48 	.globl _P2_7
                             49 	.globl _P2_6
                             50 	.globl _P2_5
                             51 	.globl _P2_4
                             52 	.globl _P2_3
                             53 	.globl _P2_2
                             54 	.globl _P2_1
                             55 	.globl _P2_0
                             56 	.globl _SM0
                             57 	.globl _SM1
                             58 	.globl _SM2
                             59 	.globl _REN
                             60 	.globl _TB8
                             61 	.globl _RB8
                             62 	.globl _TI
                             63 	.globl _RI
                             64 	.globl _P1_7
                             65 	.globl _P1_6
                             66 	.globl _P1_5
                             67 	.globl _P1_4
                             68 	.globl _P1_3
                             69 	.globl _P1_2
                             70 	.globl _P1_1
                             71 	.globl _P1_0
                             72 	.globl _TF1
                             73 	.globl _TR1
                             74 	.globl _TF0
                             75 	.globl _TR0
                             76 	.globl _IE1
                             77 	.globl _IT1
                             78 	.globl _IE0
                             79 	.globl _IT0
                             80 	.globl _P0_7
                             81 	.globl _P0_6
                             82 	.globl _P0_5
                             83 	.globl _P0_4
                             84 	.globl _P0_3
                             85 	.globl _P0_2
                             86 	.globl _P0_1
                             87 	.globl _P0_0
                             88 	.globl _B
                             89 	.globl _ACC
                             90 	.globl _PSW
                             91 	.globl _IP
                             92 	.globl _P3
                             93 	.globl _IE
                             94 	.globl _P2
                             95 	.globl _SBUF
                             96 	.globl _SCON
                             97 	.globl _P1
                             98 	.globl _TH1
                             99 	.globl _TH0
                            100 	.globl _TL1
                            101 	.globl _TL0
                            102 	.globl _TMOD
                            103 	.globl _TCON
                            104 	.globl _PCON
                            105 	.globl _DPH
                            106 	.globl _DPL
                            107 	.globl _SP
                            108 	.globl _P0
                            109 	.globl _row
                            110 	.globl _state
                            111 ;--------------------------------------------------------
                            112 ; special function registers
                            113 ;--------------------------------------------------------
                            114 	.area RSEG    (DATA)
                    0080    115 G$P0$0$0 == 0x0080
                    0080    116 _P0	=	0x0080
                    0081    117 G$SP$0$0 == 0x0081
                    0081    118 _SP	=	0x0081
                    0082    119 G$DPL$0$0 == 0x0082
                    0082    120 _DPL	=	0x0082
                    0083    121 G$DPH$0$0 == 0x0083
                    0083    122 _DPH	=	0x0083
                    0087    123 G$PCON$0$0 == 0x0087
                    0087    124 _PCON	=	0x0087
                    0088    125 G$TCON$0$0 == 0x0088
                    0088    126 _TCON	=	0x0088
                    0089    127 G$TMOD$0$0 == 0x0089
                    0089    128 _TMOD	=	0x0089
                    008A    129 G$TL0$0$0 == 0x008a
                    008A    130 _TL0	=	0x008a
                    008B    131 G$TL1$0$0 == 0x008b
                    008B    132 _TL1	=	0x008b
                    008C    133 G$TH0$0$0 == 0x008c
                    008C    134 _TH0	=	0x008c
                    008D    135 G$TH1$0$0 == 0x008d
                    008D    136 _TH1	=	0x008d
                    0090    137 G$P1$0$0 == 0x0090
                    0090    138 _P1	=	0x0090
                    0098    139 G$SCON$0$0 == 0x0098
                    0098    140 _SCON	=	0x0098
                    0099    141 G$SBUF$0$0 == 0x0099
                    0099    142 _SBUF	=	0x0099
                    00A0    143 G$P2$0$0 == 0x00a0
                    00A0    144 _P2	=	0x00a0
                    00A8    145 G$IE$0$0 == 0x00a8
                    00A8    146 _IE	=	0x00a8
                    00B0    147 G$P3$0$0 == 0x00b0
                    00B0    148 _P3	=	0x00b0
                    00B8    149 G$IP$0$0 == 0x00b8
                    00B8    150 _IP	=	0x00b8
                    00D0    151 G$PSW$0$0 == 0x00d0
                    00D0    152 _PSW	=	0x00d0
                    00E0    153 G$ACC$0$0 == 0x00e0
                    00E0    154 _ACC	=	0x00e0
                    00F0    155 G$B$0$0 == 0x00f0
                    00F0    156 _B	=	0x00f0
                            157 ;--------------------------------------------------------
                            158 ; special function bits
                            159 ;--------------------------------------------------------
                            160 	.area RSEG    (DATA)
                    0080    161 G$P0_0$0$0 == 0x0080
                    0080    162 _P0_0	=	0x0080
                    0081    163 G$P0_1$0$0 == 0x0081
                    0081    164 _P0_1	=	0x0081
                    0082    165 G$P0_2$0$0 == 0x0082
                    0082    166 _P0_2	=	0x0082
                    0083    167 G$P0_3$0$0 == 0x0083
                    0083    168 _P0_3	=	0x0083
                    0084    169 G$P0_4$0$0 == 0x0084
                    0084    170 _P0_4	=	0x0084
                    0085    171 G$P0_5$0$0 == 0x0085
                    0085    172 _P0_5	=	0x0085
                    0086    173 G$P0_6$0$0 == 0x0086
                    0086    174 _P0_6	=	0x0086
                    0087    175 G$P0_7$0$0 == 0x0087
                    0087    176 _P0_7	=	0x0087
                    0088    177 G$IT0$0$0 == 0x0088
                    0088    178 _IT0	=	0x0088
                    0089    179 G$IE0$0$0 == 0x0089
                    0089    180 _IE0	=	0x0089
                    008A    181 G$IT1$0$0 == 0x008a
                    008A    182 _IT1	=	0x008a
                    008B    183 G$IE1$0$0 == 0x008b
                    008B    184 _IE1	=	0x008b
                    008C    185 G$TR0$0$0 == 0x008c
                    008C    186 _TR0	=	0x008c
                    008D    187 G$TF0$0$0 == 0x008d
                    008D    188 _TF0	=	0x008d
                    008E    189 G$TR1$0$0 == 0x008e
                    008E    190 _TR1	=	0x008e
                    008F    191 G$TF1$0$0 == 0x008f
                    008F    192 _TF1	=	0x008f
                    0090    193 G$P1_0$0$0 == 0x0090
                    0090    194 _P1_0	=	0x0090
                    0091    195 G$P1_1$0$0 == 0x0091
                    0091    196 _P1_1	=	0x0091
                    0092    197 G$P1_2$0$0 == 0x0092
                    0092    198 _P1_2	=	0x0092
                    0093    199 G$P1_3$0$0 == 0x0093
                    0093    200 _P1_3	=	0x0093
                    0094    201 G$P1_4$0$0 == 0x0094
                    0094    202 _P1_4	=	0x0094
                    0095    203 G$P1_5$0$0 == 0x0095
                    0095    204 _P1_5	=	0x0095
                    0096    205 G$P1_6$0$0 == 0x0096
                    0096    206 _P1_6	=	0x0096
                    0097    207 G$P1_7$0$0 == 0x0097
                    0097    208 _P1_7	=	0x0097
                    0098    209 G$RI$0$0 == 0x0098
                    0098    210 _RI	=	0x0098
                    0099    211 G$TI$0$0 == 0x0099
                    0099    212 _TI	=	0x0099
                    009A    213 G$RB8$0$0 == 0x009a
                    009A    214 _RB8	=	0x009a
                    009B    215 G$TB8$0$0 == 0x009b
                    009B    216 _TB8	=	0x009b
                    009C    217 G$REN$0$0 == 0x009c
                    009C    218 _REN	=	0x009c
                    009D    219 G$SM2$0$0 == 0x009d
                    009D    220 _SM2	=	0x009d
                    009E    221 G$SM1$0$0 == 0x009e
                    009E    222 _SM1	=	0x009e
                    009F    223 G$SM0$0$0 == 0x009f
                    009F    224 _SM0	=	0x009f
                    00A0    225 G$P2_0$0$0 == 0x00a0
                    00A0    226 _P2_0	=	0x00a0
                    00A1    227 G$P2_1$0$0 == 0x00a1
                    00A1    228 _P2_1	=	0x00a1
                    00A2    229 G$P2_2$0$0 == 0x00a2
                    00A2    230 _P2_2	=	0x00a2
                    00A3    231 G$P2_3$0$0 == 0x00a3
                    00A3    232 _P2_3	=	0x00a3
                    00A4    233 G$P2_4$0$0 == 0x00a4
                    00A4    234 _P2_4	=	0x00a4
                    00A5    235 G$P2_5$0$0 == 0x00a5
                    00A5    236 _P2_5	=	0x00a5
                    00A6    237 G$P2_6$0$0 == 0x00a6
                    00A6    238 _P2_6	=	0x00a6
                    00A7    239 G$P2_7$0$0 == 0x00a7
                    00A7    240 _P2_7	=	0x00a7
                    00A8    241 G$EX0$0$0 == 0x00a8
                    00A8    242 _EX0	=	0x00a8
                    00A9    243 G$ET0$0$0 == 0x00a9
                    00A9    244 _ET0	=	0x00a9
                    00AA    245 G$EX1$0$0 == 0x00aa
                    00AA    246 _EX1	=	0x00aa
                    00AB    247 G$ET1$0$0 == 0x00ab
                    00AB    248 _ET1	=	0x00ab
                    00AC    249 G$ES$0$0 == 0x00ac
                    00AC    250 _ES	=	0x00ac
                    00AF    251 G$EA$0$0 == 0x00af
                    00AF    252 _EA	=	0x00af
                    00B0    253 G$P3_0$0$0 == 0x00b0
                    00B0    254 _P3_0	=	0x00b0
                    00B1    255 G$P3_1$0$0 == 0x00b1
                    00B1    256 _P3_1	=	0x00b1
                    00B2    257 G$P3_2$0$0 == 0x00b2
                    00B2    258 _P3_2	=	0x00b2
                    00B3    259 G$P3_3$0$0 == 0x00b3
                    00B3    260 _P3_3	=	0x00b3
                    00B4    261 G$P3_4$0$0 == 0x00b4
                    00B4    262 _P3_4	=	0x00b4
                    00B5    263 G$P3_5$0$0 == 0x00b5
                    00B5    264 _P3_5	=	0x00b5
                    00B6    265 G$P3_6$0$0 == 0x00b6
                    00B6    266 _P3_6	=	0x00b6
                    00B7    267 G$P3_7$0$0 == 0x00b7
                    00B7    268 _P3_7	=	0x00b7
                    00B0    269 G$RXD$0$0 == 0x00b0
                    00B0    270 _RXD	=	0x00b0
                    00B1    271 G$TXD$0$0 == 0x00b1
                    00B1    272 _TXD	=	0x00b1
                    00B2    273 G$INT0$0$0 == 0x00b2
                    00B2    274 _INT0	=	0x00b2
                    00B3    275 G$INT1$0$0 == 0x00b3
                    00B3    276 _INT1	=	0x00b3
                    00B4    277 G$T0$0$0 == 0x00b4
                    00B4    278 _T0	=	0x00b4
                    00B5    279 G$T1$0$0 == 0x00b5
                    00B5    280 _T1	=	0x00b5
                    00B6    281 G$WR$0$0 == 0x00b6
                    00B6    282 _WR	=	0x00b6
                    00B7    283 G$RD$0$0 == 0x00b7
                    00B7    284 _RD	=	0x00b7
                    00B8    285 G$PX0$0$0 == 0x00b8
                    00B8    286 _PX0	=	0x00b8
                    00B9    287 G$PT0$0$0 == 0x00b9
                    00B9    288 _PT0	=	0x00b9
                    00BA    289 G$PX1$0$0 == 0x00ba
                    00BA    290 _PX1	=	0x00ba
                    00BB    291 G$PT1$0$0 == 0x00bb
                    00BB    292 _PT1	=	0x00bb
                    00BC    293 G$PS$0$0 == 0x00bc
                    00BC    294 _PS	=	0x00bc
                    00D0    295 G$P$0$0 == 0x00d0
                    00D0    296 _P	=	0x00d0
                    00D1    297 G$F1$0$0 == 0x00d1
                    00D1    298 _F1	=	0x00d1
                    00D2    299 G$OV$0$0 == 0x00d2
                    00D2    300 _OV	=	0x00d2
                    00D3    301 G$RS0$0$0 == 0x00d3
                    00D3    302 _RS0	=	0x00d3
                    00D4    303 G$RS1$0$0 == 0x00d4
                    00D4    304 _RS1	=	0x00d4
                    00D5    305 G$F0$0$0 == 0x00d5
                    00D5    306 _F0	=	0x00d5
                    00D6    307 G$AC$0$0 == 0x00d6
                    00D6    308 _AC	=	0x00d6
                    00D7    309 G$CY$0$0 == 0x00d7
                    00D7    310 _CY	=	0x00d7
                            311 ;--------------------------------------------------------
                            312 ; overlayable register banks
                            313 ;--------------------------------------------------------
                            314 	.area REG_BANK_0	(REL,OVR,DATA)
   0000                     315 	.ds 8
                            316 ;--------------------------------------------------------
                            317 ; internal ram data
                            318 ;--------------------------------------------------------
                            319 	.area DSEG    (DATA)
                    0000    320 G$state$0$0==.
   0000                     321 _state::
   0000                     322 	.ds 1
                    0001    323 G$row$0$0==.
   0001                     324 _row::
   0001                     325 	.ds 2
                            326 ;--------------------------------------------------------
                            327 ; overlayable items in internal ram 
                            328 ;--------------------------------------------------------
                            329 	.area OSEG    (OVR,DATA)
                            330 ;--------------------------------------------------------
                            331 ; Stack segment in internal ram 
                            332 ;--------------------------------------------------------
                            333 	.area	SSEG	(DATA)
   0000                     334 __start__stack:
   0000                     335 	.ds	1
                            336 
                            337 ;--------------------------------------------------------
                            338 ; indirectly addressable internal ram data
                            339 ;--------------------------------------------------------
                            340 	.area ISEG    (DATA)
                            341 ;--------------------------------------------------------
                            342 ; absolute internal ram data
                            343 ;--------------------------------------------------------
                            344 	.area IABS    (ABS,DATA)
                            345 	.area IABS    (ABS,DATA)
                            346 ;--------------------------------------------------------
                            347 ; bit data
                            348 ;--------------------------------------------------------
                            349 	.area BSEG    (BIT)
                            350 ;--------------------------------------------------------
                            351 ; paged external ram data
                            352 ;--------------------------------------------------------
                            353 	.area PSEG    (PAG,XDATA)
                            354 ;--------------------------------------------------------
                            355 ; external ram data
                            356 ;--------------------------------------------------------
                            357 	.area XSEG    (XDATA)
                            358 ;--------------------------------------------------------
                            359 ; absolute external ram data
                            360 ;--------------------------------------------------------
                            361 	.area XABS    (ABS,XDATA)
                            362 ;--------------------------------------------------------
                            363 ; external initialized ram data
                            364 ;--------------------------------------------------------
                            365 	.area XISEG   (XDATA)
                            366 	.area HOME    (CODE)
                            367 	.area GSINIT0 (CODE)
                            368 	.area GSINIT1 (CODE)
                            369 	.area GSINIT2 (CODE)
                            370 	.area GSINIT3 (CODE)
                            371 	.area GSINIT4 (CODE)
                            372 	.area GSINIT5 (CODE)
                            373 	.area GSINIT  (CODE)
                            374 	.area GSFINAL (CODE)
                            375 	.area CSEG    (CODE)
                            376 ;--------------------------------------------------------
                            377 ; interrupt vector 
                            378 ;--------------------------------------------------------
                            379 	.area HOME    (CODE)
   0000                     380 __interrupt_vect:
   0000 02s00r00            381 	ljmp	__sdcc_gsinit_startup
                            382 ;--------------------------------------------------------
                            383 ; global & static initialisations
                            384 ;--------------------------------------------------------
                            385 	.area HOME    (CODE)
                            386 	.area GSINIT  (CODE)
                            387 	.area GSFINAL (CODE)
                            388 	.area GSINIT  (CODE)
                            389 	.globl __sdcc_gsinit_startup
                            390 	.globl __sdcc_program_startup
                            391 	.globl __start__stack
                            392 	.globl __mcs51_genXINIT
                            393 	.globl __mcs51_genXRAMCLEAR
                            394 	.globl __mcs51_genRAMCLEAR
                            395 	.area GSFINAL (CODE)
   0000 02s00r03            396 	ljmp	__sdcc_program_startup
                            397 ;--------------------------------------------------------
                            398 ; Home
                            399 ;--------------------------------------------------------
                            400 	.area HOME    (CODE)
                            401 	.area HOME    (CODE)
   0003                     402 __sdcc_program_startup:
   0003 12s00r00            403 	lcall	_main
                            404 ;	return from main will lock up
   0006 80 FE               405 	sjmp .
                            406 ;--------------------------------------------------------
                            407 ; code
                            408 ;--------------------------------------------------------
                            409 	.area CSEG    (CODE)
                            410 ;------------------------------------------------------------
                            411 ;Allocation info for local variables in function 'main'
                            412 ;------------------------------------------------------------
                            413 ;------------------------------------------------------------
                    0000    414 	G$main$0$0 ==.
                    0000    415 	C$keypad_display.c$38$0$0 ==.
                            416 ;	keypad_display.c:38: int main()
                            417 ;	-----------------------------------------
                            418 ;	 function main
                            419 ;	-----------------------------------------
   0000                     420 _main:
                    0002    421 	ar2 = 0x02
                    0003    422 	ar3 = 0x03
                    0004    423 	ar4 = 0x04
                    0005    424 	ar5 = 0x05
                    0006    425 	ar6 = 0x06
                    0007    426 	ar7 = 0x07
                    0000    427 	ar0 = 0x00
                    0001    428 	ar1 = 0x01
                    0000    429 	C$keypad_display.c$40$1$1 ==.
                            430 ;	keypad_display.c:40: while(1) {
   0000                     431 00123$:
                    0000    432 	C$keypad_display.c$41$2$2 ==.
                            433 ;	keypad_display.c:41: for(row=0; row<4; row++) {
   0000 E4                  434 	clr	a
   0001 F5*01               435 	mov	_row,a
   0003 F5*02               436 	mov	(_row + 1),a
   0005                     437 00118$:
   0005 C3                  438 	clr	c
   0006 E5*01               439 	mov	a,_row
   0008 94 04               440 	subb	a,#0x04
   000A E5*02               441 	mov	a,(_row + 1)
   000C 64 80               442 	xrl	a,#0x80
   000E 94 80               443 	subb	a,#0x80
   0010 50 EE               444 	jnc	00123$
                    0012    445 	C$keypad_display.c$42$3$3 ==.
                            446 ;	keypad_display.c:42: P1=keypad[row];
   0012 E5*01               447 	mov	a,_row
   0014 24r00               448 	add	a,#_keypad
   0016 F5 82               449 	mov	dpl,a
   0018 E5*02               450 	mov	a,(_row + 1)
   001A 34s00               451 	addc	a,#(_keypad >> 8)
   001C F5 83               452 	mov	dph,a
   001E E4                  453 	clr	a
   001F 93                  454 	movc	a,@a+dptr
   0020 F5 90               455 	mov	_P1,a
                    0022    456 	C$keypad_display.c$48$3$3 ==.
                            457 ;	keypad_display.c:48: _endasm;
                            458 	
   0022 85 90*00            459 	          mov _state, P1
                            460 	        
                    0025    461 	C$keypad_display.c$53$3$3 ==.
                            462 ;	keypad_display.c:53: state&=0x0f;
   0025 53r00 0F            463 	anl	_state,#0x0F
                    0028    464 	C$keypad_display.c$54$3$3 ==.
                            465 ;	keypad_display.c:54: state^=0x0f;
   0028 63r00 0F            466 	xrl	_state,#0x0F
                    002B    467 	C$keypad_display.c$56$3$3 ==.
                            468 ;	keypad_display.c:56: if(state & 1) {
   002B E5*00               469 	mov	a,_state
   002D 30 E0 05            470 	jnb	acc.0,00111$
                    0030    471 	C$keypad_display.c$57$4$4 ==.
                            472 ;	keypad_display.c:57: state=0;
   0030 75*00 00            473 	mov	_state,#0x00
   0033 80 1F               474 	sjmp	00112$
   0035                     475 00111$:
                    0035    476 	C$keypad_display.c$58$3$3 ==.
                            477 ;	keypad_display.c:58: } else if(state & 2) {
   0035 E5*00               478 	mov	a,_state
   0037 30 E1 05            479 	jnb	acc.1,00108$
                    003A    480 	C$keypad_display.c$59$4$5 ==.
                            481 ;	keypad_display.c:59: state=1;
   003A 75*00 01            482 	mov	_state,#0x01
   003D 80 15               483 	sjmp	00112$
   003F                     484 00108$:
                    003F    485 	C$keypad_display.c$60$3$3 ==.
                            486 ;	keypad_display.c:60: } else if(state & 4) {
   003F E5*00               487 	mov	a,_state
   0041 30 E2 05            488 	jnb	acc.2,00105$
                    0044    489 	C$keypad_display.c$61$4$6 ==.
                            490 ;	keypad_display.c:61: state=2;
   0044 75*00 02            491 	mov	_state,#0x02
   0047 80 0B               492 	sjmp	00112$
   0049                     493 00105$:
                    0049    494 	C$keypad_display.c$62$3$3 ==.
                            495 ;	keypad_display.c:62: } else if(state & 8) {
   0049 E5*00               496 	mov	a,_state
   004B 20 E3 03            497 	jb	acc.3,00142$
   004E 02s00rA7            498 	ljmp	00120$
   0051                     499 00142$:
                    0051    500 	C$keypad_display.c$63$4$7 ==.
                            501 ;	keypad_display.c:63: state=3;
   0051 75*00 03            502 	mov	_state,#0x03
                    0054    503 	C$keypad_display.c$65$3$3 ==.
                            504 ;	keypad_display.c:65: continue;
   0054                     505 00112$:
                    0054    506 	C$keypad_display.c$68$3$3 ==.
                            507 ;	keypad_display.c:68: switch(row) {
   0054 E4                  508 	clr	a
   0055 B5*01 06            509 	cjne	a,_row,00143$
   0058 E4                  510 	clr	a
   0059 B5*02 02            511 	cjne	a,(_row + 1),00143$
   005C 80 23               512 	sjmp	00113$
   005E                     513 00143$:
   005E 74 01               514 	mov	a,#0x01
   0060 B5*01 06            515 	cjne	a,_row,00144$
   0063 E4                  516 	clr	a
   0064 B5*02 02            517 	cjne	a,(_row + 1),00144$
   0067 80 22               518 	sjmp	00114$
   0069                     519 00144$:
   0069 74 02               520 	mov	a,#0x02
   006B B5*01 06            521 	cjne	a,_row,00145$
   006E E4                  522 	clr	a
   006F B5*02 02            523 	cjne	a,(_row + 1),00145$
   0072 80 21               524 	sjmp	00115$
   0074                     525 00145$:
   0074 74 03               526 	mov	a,#0x03
   0076 B5*01 06            527 	cjne	a,_row,00146$
   0079 E4                  528 	clr	a
   007A B5*02 02            529 	cjne	a,(_row + 1),00146$
   007D 80 20               530 	sjmp	00116$
   007F                     531 00146$:
                    007F    532 	C$keypad_display.c$69$4$9 ==.
                            533 ;	keypad_display.c:69: case 0:
   007F 80 26               534 	sjmp	00120$
   0081                     535 00113$:
                    0081    536 	C$keypad_display.c$70$4$9 ==.
                            537 ;	keypad_display.c:70: P3=display_0[state];
   0081 E5*00               538 	mov	a,_state
   0083 90s00r04            539 	mov	dptr,#_display_0
   0086 93                  540 	movc	a,@a+dptr
   0087 F5 B0               541 	mov	_P3,a
                    0089    542 	C$keypad_display.c$71$4$9 ==.
                            543 ;	keypad_display.c:71: break;
                    0089    544 	C$keypad_display.c$72$4$9 ==.
                            545 ;	keypad_display.c:72: case 1:
   0089 80 1C               546 	sjmp	00120$
   008B                     547 00114$:
                    008B    548 	C$keypad_display.c$73$4$9 ==.
                            549 ;	keypad_display.c:73: P3=display_1[state];
   008B E5*00               550 	mov	a,_state
   008D 90s00r08            551 	mov	dptr,#_display_1
   0090 93                  552 	movc	a,@a+dptr
   0091 F5 B0               553 	mov	_P3,a
                    0093    554 	C$keypad_display.c$74$4$9 ==.
                            555 ;	keypad_display.c:74: break;
                    0093    556 	C$keypad_display.c$75$4$9 ==.
                            557 ;	keypad_display.c:75: case 2:
   0093 80 12               558 	sjmp	00120$
   0095                     559 00115$:
                    0095    560 	C$keypad_display.c$76$4$9 ==.
                            561 ;	keypad_display.c:76: P3=display_2[state];
   0095 E5*00               562 	mov	a,_state
   0097 90s00r0C            563 	mov	dptr,#_display_2
   009A 93                  564 	movc	a,@a+dptr
   009B F5 B0               565 	mov	_P3,a
                    009D    566 	C$keypad_display.c$77$4$9 ==.
                            567 ;	keypad_display.c:77: break;
                    009D    568 	C$keypad_display.c$78$4$9 ==.
                            569 ;	keypad_display.c:78: case 3:
   009D 80 08               570 	sjmp	00120$
   009F                     571 00116$:
                    009F    572 	C$keypad_display.c$79$4$9 ==.
                            573 ;	keypad_display.c:79: P3=display_3[state];
   009F E5*00               574 	mov	a,_state
   00A1 90s00r10            575 	mov	dptr,#_display_3
   00A4 93                  576 	movc	a,@a+dptr
   00A5 F5 B0               577 	mov	_P3,a
                    00A7    578 	C$keypad_display.c$81$2$2 ==.
                            579 ;	keypad_display.c:81: }
   00A7                     580 00120$:
                    00A7    581 	C$keypad_display.c$41$2$2 ==.
                            582 ;	keypad_display.c:41: for(row=0; row<4; row++) {
   00A7 05*01               583 	inc	_row
   00A9 E4                  584 	clr	a
   00AA B5*01 02            585 	cjne	a,_row,00147$
   00AD 05*02               586 	inc	(_row + 1)
   00AF                     587 00147$:
                    00AF    588 	C$keypad_display.c$84$1$1 ==.
                    00AF    589 	XG$main$0$0 ==.
   00AF 02s00r05            590 	ljmp	00118$
                            591 	.area CSEG    (CODE)
                            592 	.area CONST   (CODE)
                    0000    593 Fkeypad_display$keypad$0$0 == .
   0000                     594 _keypad:
   0000 EF                  595 	.db #0xEF
   0001 DF                  596 	.db #0xDF
   0002 BF                  597 	.db #0xBF
   0003 7F                  598 	.db #0x7F
                    0004    599 Fkeypad_display$display_0$0$0 == .
   0004                     600 _display_0:
   0004 F9                  601 	.db #0xF9
   0005 64                  602 	.db #0x64
   0006 70                  603 	.db #0x70
   0007 48                  604 	.db #0x48
                    0008    605 Fkeypad_display$display_1$0$0 == .
   0008                     606 _display_1:
   0008 59                  607 	.db #0x59
   0009 52                  608 	.db #0x52
   000A 42                  609 	.db #0x42
   000B 40                  610 	.db #0x40
                    000C    611 Fkeypad_display$display_2$0$0 == .
   000C                     612 _display_2:
   000C F8                  613 	.db #0xF8
   000D 40                  614 	.db #0x40
   000E 50                  615 	.db #0x50
   000F C6                  616 	.db #0xC6
                    0010    617 Fkeypad_display$display_3$0$0 == .
   0010                     618 _display_3:
   0010 79                  619 	.db #0x79
   0011 C0                  620 	.db #0xC0
   0012 49                  621 	.db #0x49
   0013 C0                  622 	.db #0xC0
                            623 	.area XINIT   (CODE)
                            624 	.area CABS    (ABS,CODE)