📄 key.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888 Tue Feb 10 14:15:21 2009
Licensed to: ONE TWO
1 processor 16F688
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect text2,local,class=CODE,delta=2
7 psect text5,local,class=CODE,delta=2
8 psect text6,local,class=CODE,delta=2
9 psect text7,local,class=CODE,delta=2
10 psect text8,local,class=CODE,delta=2
11 psect text9,local,class=CODE,delta=2
12 psect rbss_1,global,class=BANK1,space=1,delta=
+ 1
13 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24
25 psect __Z88888RS_
26 0120
27 0120
28
29 psect const1
30 00D2 0782 addwf 2
31 00D3 _KEY_REPEAT_CTL
32 00D3 3400 retlw 0
33 00D4 340A retlw 10
34 00D5 3400 retlw 0
35 00D6 3458 retlw 88
36 00D7 3402 retlw 2
37 00D8 3401 retlw 1
38 00D9 340F retlw 15
39 00DA 3400 retlw 0
40 00DB 34F4 retlw 244
41 00DC 3401 retlw 1
42 00DD 3402 retlw 2
43 00DE 340F retlw 15
44 00DF 3400 retlw 0
45 00E0 34F4 retlw 244
46 00E1 3401 retlw 1
47 00E2 3403 retlw 3
48 00E3 340F retlw 15
49 00E4 3400 retlw 0
50 00E5 34F4 retlw 244
51 00E6 3401 retlw 1
52 00E7 3404 retlw 4
53 00E8 340F retlw 15
54 00E9 3400 retlw 0
55 00EA 34F4 retlw 244
56 00EB 3401 retlw 1
57
58 psect text2
59 ;key.c: 43: void saveKeyCtlTime(void)
60 ;key.c: 44: {
61 0639 _saveKeyCtlTime
62 ;key.c: 45: keyCtlBlock.sTime=loadSystemTime(6)
+ ;
63 0639 3006 movlw 6
64 063A 118A 21A7 118A fcall _loadSystemTime
65 063D 0870 movf btemp,w
66 063E 1683 bsf 3,5
67 063F 00BE movwf (_keyCtlBlock+9)^(0+128)
68 0640 0871 movf btemp+1,w
69 0641 00BF movwf (_keyCtlBlock+10)^(0+128)
70 0642 0872 movf btemp+2,w
71 0643 00C0 movwf (_keyCtlBlock+11)^(0+128)
72 0644 0873 movf btemp+3,w
73 0645 00C1 movwf (_keyCtlBlock+12)^(0+128)
74 ;key.c: 46: }
75 0646 1283 bcf 3,5
76 0647 0008 return
77 0648 _keyPortInput
78 ; _keyIn assigned to ?a_keyPortInput+0
79 0000 _keyPortInput$keyIn set ?a_keyPortInput
80 ;key.c: 17: unsigned int keyIn;
81 0648 0183 clrf 3 ;select bank 0
82 0649 0805 movf 5,w ;volatile
83 064A 00B7 movwf ?a_keyPortInput
84 064B 01B8 clrf ?a_keyPortInput+1
85 ;key.c: 19: keyIn=keyIn&0x0027;
86 064C 3027 movlw 39
87 064D 05B7 andwf ?a_keyPortInput
88 064E 01B8 clrf ?a_keyPortInput+1
89 ;key.c: 20: return(keyIn);
90 064F 0838 movf ?a_keyPortInput+1,w
91 0650 00F1 movwf btemp+1
92 0651 0837 movf ?a_keyPortInput,w
93 0652 00F0 movwf btemp
94 ;key.c: 21: }
95 0653 0008 return
96 0654 _readKeyInput
97 ; _key assigned to ?a_readKeyInput+0
98 0000 _readKeyInput$key set ?a_readKeyInput
99 ; _input assigned to ?a_readKeyInput+1
100 0000 _readKeyInput$input set ?a_readKeyInput+1
101 ;key.c: 25: unsigned int input;
102 0654 2648 fcall _keyPortInput
103 0655 0870 movf btemp,w
104 0656 00B5 movwf ?a_readKeyInput+1
105 0657 0871 movf btemp+1,w
106 0658 00B6 movwf ?a_readKeyInput+2
107 ;key.c: 28: if (input ==0x0026)
108 0659 0835 movf ?a_readKeyInput+1,w
109 065A 3A26 xorlw 38
110 065B 0436 iorwf ?a_readKeyInput+2,w
111 065C 1D03 btfss 3,2
112 065D 2E61 goto l8
113 ;key.c: 29: key=0x01;
114 065E 01B4 clrf ?a_readKeyInput
115 065F 0AB4 incf ?a_readKeyInput
116 ;key.c: 30: else if (input ==0x0025)
117 0660 2E7F goto l9
118 0661 l8
119 0661 0835 movf ?a_readKeyInput+1,w
120 0662 3A25 xorlw 37
121 0663 0436 iorwf ?a_readKeyInput+2,w
122 0664 1D03 btfss 3,2
123 0665 2E68 goto l10
124 ;key.c: 31: key=0x02;
125 0666 3002 movlw 2
126 0667 2E7E goto L3
127 ;key.c: 32: else if (input ==0x0023)
128 0668 l10
129 0668 0835 movf ?a_readKeyInput+1,w
130 0669 3A23 xorlw 35
131 066A 0436 iorwf ?a_readKeyInput+2,w
132 066B 1D03 btfss 3,2
133 066C 2E6F goto l12
134 ;key.c: 33: key=0x03;
135 066D 3003 movlw 3
136 066E 2E7E goto L3
137 ;key.c: 34: else if (input ==0x0007)
138 066F l12
139 066F 0835 movf ?a_readKeyInput+1,w
140 0670 3A07 xorlw 7
141 0671 0436 iorwf ?a_readKeyInput+2,w
142 0672 1D03 btfss 3,2
143 0673 2E76 goto l14
144 ;key.c: 35: key=0x04;
145 0674 3004 movlw 4
146 0675 2E7E goto L3
147 ;key.c: 36: else if (input ==0x0027)
148 0676 l14
149 0676 0835 movf ?a_readKeyInput+1,w
150 0677 3A27 xorlw 39
151 0678 0436 iorwf ?a_readKeyInput+2,w
152 0679 1D03 btfss 3,2
153 067A 2E7D goto l16
154 ;key.c: 37: key=0x00;
155 067B 01B4 clrf ?a_readKeyInput
156 ;key.c: 38: else key=0xFF;
157 067C 2E7F goto l9
158 067D l16
159 067D 30FF movlw -1
160 067E L3
161 067E 00B4 movwf ?a_readKeyInput
162 067F l9
163 ;key.c: 39: return (key);
164 067F 0834 movf ?a_readKeyInput,w
165 ;key.c: 40: }
166 0680 0008 return
167 ;key.c: 48: unsigned char checkKeyRepeat(void)
168 ;key.c: 49: {
169 0681 _checkKeyRepeat
170 ; _rd assigned to ?a_checkKeyRepeat+0
171 0000 _checkKeyRepeat$rd set ?a_checkKeyRepeat
172 ; _tRepeat assigned to ?a_checkKeyRepeat+1
173 0000 _checkKeyRepeat$tRepeat set ?a_checkKeyRepeat+1
174 ; _tDelay assigned to ?a_checkKeyRepeat+3
175 0000 _checkKeyRepeat$tDelay set ?a_checkKeyRepeat+3
176 ; _tStart assigned to ?a_checkKeyRepeat+5
177 0000 _checkKeyRepeat$tStart set ?a_checkKeyRepeat+5
178 ; _time assigned to ?a_checkKeyRepeat+9
179 0000 _checkKeyRepeat$time set ?a_checkKeyRepeat+9
180 ;key.c: 50: unsigned long time;
181 0681 0183 clrf 3 ;select bank 0
182 0682 01B4 clrf ?a_checkKeyRepeat
183 ;key.c: 54: tDelay=(keyCtlBlock.pRepeatCtl)->tD
+ elay;
184 0683 1683 bsf 3,5
185 0684 0843 movf (_keyCtlBlock+14)^(0+128),w
186 0685 3E03 addlw 3
187 0686 0084 movwf 4
188 0687 1383 bcf 3,7
189 0688 0800 movf 0,w
190 0689 1283 bcf 3,5
191 068A 00B7 movwf ?a_checkKeyRepeat+3
192 068B 0A84 incf 4
193 068C 0800 movf 0,w
194 068D 00B8 movwf ?a_checkKeyRepeat+4
195 ;key.c: 55: tRepeat=(keyCtlBlock.pRepeatCtl)->t
+ Repeat;
196 068E 1683 bsf 3,5
197 068F 0A43 incf (_keyCtlBlock+14)^(0+128),w
198 0690 0084 movwf 4
199 0691 0800 movf 0,w
200 0692 1283 bcf 3,5
201 0693 00B5 movwf ?a_checkKeyRepeat+1
202 0694 0A84 incf 4
203 0695 0800 movf 0,w
204 0696 00B6 movwf ?a_checkKeyRepeat+2
205 ;key.c: 56: tStart=keyCtlBlock.sTime;
206 0697 1683 bsf 3,5
207 0698 083E movf (_keyCtlBlock+9)^(0+128),w
208 0699 1283 bcf 3,5
209 069A 00B9 movwf ?a_checkKeyRepeat+5
210 069B 1683 bsf 3,5
211 069C 083F movf (_keyCtlBlock+10)^(0+128),w
212 069D 1283 bcf 3,5
213 069E 00BA movwf ?a_checkKeyRepeat+6
214 069F 1683 bsf 3,5
215 06A0 0840 movf (_keyCtlBlock+11)^(0+128),w
216 06A1 1283 bcf 3,5
217 06A2 00BB movwf ?a_checkKeyRepeat+7
218 06A3 1683 bsf 3,5
219 06A4 0841 movf (_keyCtlBlock+12)^(0+128),w
220 06A5 1283 bcf 3,5
221 06A6 00BC movwf ?a_checkKeyRepeat+8
222 ;key.c: 57: time=loadSystemTime(6);
223 06A7 3006 movlw 6
224 06A8 118A 21A7 118A fcall _loadSystemTime
225 06AB 0870 movf btemp,w
226 06AC 00BD movwf ?a_checkKeyRepeat+9
227 06AD 0871 movf btemp+1,w
228 06AE 00BE movwf ?a_checkKeyRepeat+10
229 06AF 0872 movf btemp+2,w
230 06B0 00BF movwf ?a_checkKeyRepeat+11
231 06B1 0873 movf btemp+3,w
232 06B2 00C0 movwf ?a_checkKeyRepeat+12
233 ;key.c: 58: if (keyCtlBlock.repeat==1)
234 06B3 1683 bsf 3,5
235 06B4 0B42 decfsz (_keyCtlBlock+13)^(0+128),w
236 06B5 2F09 goto l20
237 ;key.c: 59: { time=time-tStart-tDelay;
238 06B6 1283 bcf 3,5
239 06B7 0837 movf ?a_checkKeyRepeat+3,w
240 06B8 00F4 movwf btemp+4
241 06B9 0838 movf ?a_checkKeyRepeat+4,w
242 06BA 00F5 movwf btemp+5
243 06BB 01F6 clrf btemp+6
244 06BC 01F7 clrf btemp+7
245 06BD 0839 movf ?a_checkKeyRepeat+5,w
246 06BE 023D subwf ?a_checkKeyRepeat+9,w
247 06BF 00F0 movwf btemp
248 06C0 083E movf ?a_checkKeyRepeat+10,w
249 06C1 00F1 movwf btemp+1
250 06C2 083A movf ?a_checkKeyRepeat+6,w
251 06C3 1C03 btfss 3,0
252 06C4 0F3A incfsz ?a_checkKeyRepeat+6,w
253 06C5 02F1 subwf btemp+1
254 06C6 083F movf ?a_checkKeyRepeat+11,w
255 06C7 00F2 movwf btemp+2
256 06C8 083B movf ?a_checkKeyRepeat+7,w
257 06C9 1C03 btfss 3,0
258 06CA 0F3B incfsz ?a_checkKeyRepeat+7,w
259 06CB 02F2 subwf btemp+2
260 06CC 0840 movf ?a_checkKeyRepeat+12,w
261 06CD 00F3 movwf btemp+3
262 06CE 083C movf ?a_checkKeyRepeat+8,w
263 06CF 1C03 btfss 3,0
264 06D0 0F3C incfsz ?a_checkKeyRepeat+8,w
265 06D1 02F3 subwf btemp+3
266 06D2 0874 movf btemp+4,w
267 06D3 0270 subwf btemp,w
268 06D4 00F8 movwf btemp+8
269 06D5 0871 movf btemp+1,w
270 06D6 00F9 movwf btemp+9
271 06D7 0875 movf btemp+5,w
272 06D8 1C03 btfss 3,0
273 06D9 0F75 incfsz btemp+5,w
274 06DA 02F9 subwf btemp+9
275 06DB 0872 movf btemp+2,w
276 06DC 00FA movwf btemp+10
277 06DD 0876 movf btemp+6,w
278 06DE 1C03 btfss 3,0
279 06DF 0F76 incfsz btemp+6,w
280 06E0 02FA subwf btemp+10
281 06E1 0873 movf btemp+3,w
282 06E2 00FB movwf btemp+11
283 06E3 0877 movf btemp+7,w
284 06E4 1C03 btfss 3,0
285 06E5 0F77 incfsz btemp+7,w
286 06E6 02FB subwf btemp+11
287 06E7 0878 movf btemp+8,w
288 06E8 00BD movwf ?a_checkKeyRepeat+9
289 06E9 0879 movf btemp+9,w
290 06EA 00BE movwf ?a_checkKeyRepeat+10
291 06EB 087A movf btemp+10,w
292 06EC 00BF movwf ?a_checkKeyRepeat+11
293 06ED 087B movf btemp+11,w
294 06EE 00C0 movwf ?a_checkKeyRepeat+12
295 ;key.c: 60: if ((time%tRepeat)==0)
296 06EF 0835 movf ?a_checkKeyRepeat+1,w
297 06F0 00F4 movwf btemp+4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -