📄 usbctrltrf.lst
字号:
232 000966 _USBCtrlTrfInHandler:
233 000000
234 ;usbctrltrf.c: 222: if(usb_device_state==4) { UA
+ DDR = SetupPkt.f.bDevADR._byte; if(UADDR > 0) us
+ b_device_state=5; else usb_device_state=3; };
235 000966 C37B FFE8 movff _usb_device_state,wreg
236 00096A 0A04 xorlw 4
237 00096C A4D8 btfss status,2,c
238 00096E D00A goto l95
239 000970 C482 FF6E movff 1154,3950
240 000974 506E movf 3950,w,c
241 000976 B4D8 btfsc status,2,c
242 000978 D002 goto l96
243 00097A 0E05 movlw 5
244 00097C D001 goto L2
245 00097E l96:
246 00097E 0E03 movlw 3
247 000980 L2:
248 000980 CFE8 F37B movff wreg,_usb_device_state
249 000984 l95:
250 ;usbctrltrf.c: 224: if(ctrl_trf_state == 1)
251 000984 C378 F000 movff _ctrl_trf_state,btemp
252 000988 0400 decf btemp,w
253 00098A A4D8 btfss status,2,c
254 00098C D0F5 goto _USBPrepareForNextSetupTrf
255 ;usbctrltrf.c: 225: {
256 00098E D80B call _USBCtrlTrfTxService ;wreg free
257 ;usbctrltrf.c: 228: if(ep[0].in.a.Stat.a.DTS ==
+ 0)
258 000990 0104 movlb 4
259 000992 BD04 btfsc 4,6,b
260 000994 D004 goto l99
261 ;usbctrltrf.c: 229: ep[0].in.a.Stat._byte = 0x80
+ |0x40|0x08;
262 000996 0EC8 movlw -56
263 000998 CFE8 F404 movff wreg,1028
264 ;usbctrltrf.c: 230: else
265 00099C 0012 return
266 00099E l99:
267 ;usbctrltrf.c: 231: ep[0].in.a.Stat._byte = 0x80
+ |0x00|0x08;
268 00099E 0E88 movlw -120
269 0009A0 CFE8 F404 movff wreg,1028
270 ;usbctrltrf.c: 232: }
271 0009A4 0012 return
272 ;usbctrltrf.c: 234: USBPrepareForNextSetupTrf();
273 ;usbctrltrf.c: 236: }
274 ;usbctrltrf.c: 259: void USBCtrlTrfTxService(voi
+ d)
275 ;usbctrltrf.c: 260: {
276 0009A6 _USBCtrlTrfTxService:
277 000000
278 ;usbctrltrf.c: 261: WORD byte_to_send;
279 0009A6 0100 movlb _wCount shr (0+8)
280 0009A8 0E00 movlw 0
281 0009AA 5DE6 subwf (_wCount+1)& (0+255),w,b
282 0009AC 0E08 movlw 8
283 0009AE B4D8 btfsc status,2,c
284 0009B0 5DE5 subwf _wCount& (0+255),w,b
285 0009B2 B0D8 btfsc status,0,c
286 0009B4 D005 goto l103
287 ;usbctrltrf.c: 267: byte_to_send._word = wCount.
+ _word;
288 0009B6 C0E5 F0FD movff _wCount,?a_USBCtrlTrfTxService
289 0009BA C0E6 F0FE movff _wCount+1,?a_USBCtrlTrfTxService+1
290 ;usbctrltrf.c: 268: else
291 0009BE D004 goto l104
292 0009C0 l103:
293 ;usbctrltrf.c: 269: byte_to_send._word = 8;
294 0009C0 0E08 movlw 8
295 0009C2 0100 movlb __Lparam shr (0+8)
296 0009C4 6FFD movwf ?a_USBCtrlTrfTxService^(__Lparam& (0+6528
+ 0))
297 0009C6 6BFE clrf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280))
298 0009C8 l104:
299 ;usbctrltrf.c: 275: ep[0].in.a.Stat.a.BC9 = 0;
300 0009C8 0104 movlb 4
301 0009CA 9204 bcf 4,1
302 ;usbctrltrf.c: 276: ep[0].in.a.Stat.a.BC8 = 0;
303 0009CC 9004 bcf 4,0
304 ;usbctrltrf.c: 277: ep[0].in.a.Stat._byte |= ((b
+ yte_to_send).d.v[1]);
305 0009CE 0100 movlb __Lparam shr (0+8)
306 0009D0 51FE movf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),w
307 0009D2 0104 movlb 4
308 0009D4 1304 iorwf 4,f,b
309 ;usbctrltrf.c: 278: ep[0].in._byte[1] = ((byte_t
+ o_send).d.v[0]);
310 0009D6 EE04 F005 lfsr 0,1029
311 0009DA C0FD FFEF movff ?a_USBCtrlTrfTxService,indf0
312 ;usbctrltrf.c: 283: wCount._word = wCount._word
+ - byte_to_send._word;
313 0009DE EE00 F0E5 lfsr 0,_wCount
314 0009E2 0100 movlb __Lparam shr (0+8)
315 0009E4 51FD movf ?a_USBCtrlTrfTxService^(__Lparam& (0+65280
+ )),w
316 0009E6 5EEE subwf postinc0,f,c
317 0009E8 51FE movf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),w
318 0009EA 5AED subwfb postdec0,f,c
319 ;usbctrltrf.c: 285: pDst.bRam = (byte*)&CtrlTrfD
+ ata;
320 0009EC 0100 movlb _pDst shr (0+8)
321 0009EE 0EC0 movlw 192
322 0009F0 6FE1 movwf _pDst& (0+255),b
323 0009F2 0E04 movlw 4
324 0009F4 6FE2 movwf (_pDst+1)& (0+255),b
325 ;usbctrltrf.c: 287: if(usb_stat.a.ctrl_trf_mem =
+ = 1)
326 0009F6 0103 movlb _usb_stat shr (0+8)
327 0009F8 B37C btfsc _usb_stat& (0+255),1,b
328 0009FA D01F goto l106
329 0009FC D038 goto l110
330 ;usbctrltrf.c: 288: {
331 0009FE l107:
332 ;usbctrltrf.c: 290: {
333 0009FE C0E3 FFF6 movff _pSrc,tblptrl
334 000A02 C0E4 FFF7 movff _pSrc+1,tblptrh
335 000A06 C0E1 FFE9 movff _pDst,fsr0l
336 000A0A C0E2 FFEA movff _pDst+1,fsr0h
337 000A0E 0E03 movlw (high __ramtop+-1)
338 000A10 64F7 cpfsgt tblptrh,c
339 000A12 D003 bra u147
340 000A14 0008 tblrd *
341 000A16 50F5 movf tablat,w,c
342 000A18 D005 bra u140
343 000A1A u147:
344 000A1A CFF6 FFE1 movff tblptrl,fsr1l
345 000A1E CFF7 FFE2 movff tblptrh,fsr1h
346 000A22 50E7 movf indf1,w,c
347 000A24 u140:
348 000A24 6EEF movwf indf0,c
349 ;usbctrltrf.c: 292: pDst.bRam++;
350 000A26 0100 movlb _pDst shr (0+8)
351 000A28 2BE1 incf _pDst& (0+255),f,b
352 000A2A 0E00 movlw 0
353 000A2C 23E2 addwfc (_pDst+1)& (0+255),f,b
354 ;usbctrltrf.c: 293: pSrc.bRom++;
355 000A2E 2BE3 incf _pSrc& (0+255),f,b
356 000A30 23E4 addwfc (_pSrc+1)& (0+255),f,b
357 ;usbctrltrf.c: 294: byte_to_send._word--;
358 000A32 0100 movlb __Lparam shr (0+8)
359 000A34 07FD decf ?a_USBCtrlTrfTxService^(__Lparam& (0+65280
+ )),f
360 000A36 A0D8 btfss status,0,c
361 000A38 07FE decf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),f
362 000A3A l106:
363 ;usbctrltrf.c: 295: }
364 000A3A 0100 movlb __Lparam shr (0+8)
365 000A3C 51FE movf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),w
366 000A3E 11FD iorwf ?a_USBCtrlTrfTxService^(__Lparam& (0+6528
+ 0)),w
367 000A40 B4D8 btfsc status,2,c
368 000A42 0012 return
369 000A44 D7DC goto l107
370 ;usbctrltrf.c: 296: }
371 ;usbctrltrf.c: 298: {
372 000A46 l111:
373 ;usbctrltrf.c: 300: {
374 000A46 C0E3 FFE1 movff _pSrc,fsr1l
375 000A4A C0E4 FFE2 movff _pSrc+1,fsr1h
376 000A4E C0E1 FFE9 movff _pDst,fsr0l
377 000A52 C0E2 FFEA movff _pDst+1,fsr0h
378 000A56 CFE7 FFEF movff indf1,indf0
379 ;usbctrltrf.c: 302: pDst.bRam++;
380 000A5A 0100 movlb _pDst shr (0+8)
381 000A5C 2BE1 incf _pDst& (0+255),f,b
382 000A5E 0E00 movlw 0
383 000A60 23E2 addwfc (_pDst+1)& (0+255),f,b
384 ;usbctrltrf.c: 303: pSrc.bRam++;
385 000A62 2BE3 incf _pSrc& (0+255),f,b
386 000A64 23E4 addwfc (_pSrc+1)& (0+255),f,b
387 ;usbctrltrf.c: 304: byte_to_send._word--;
388 000A66 0100 movlb __Lparam shr (0+8)
389 000A68 07FD decf ?a_USBCtrlTrfTxService^(__Lparam& (0+65280
+ )),f
390 000A6A A0D8 btfss status,0,c
391 000A6C 07FE decf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),f
392 000A6E l110:
393 ;usbctrltrf.c: 305: }
394 000A6E 0100 movlb __Lparam shr (0+8)
395 000A70 51FE movf (?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
+ 5280)),w
396 000A72 11FD iorwf ?a_USBCtrlTrfTxService^(__Lparam& (0+6528
+ 0)),w
397 000A74 B4D8 btfsc status,2,c
398 000A76 0012 return
399 000A78 D7E6 goto l111
400 ;usbctrltrf.c: 306: }
401 ;usbctrltrf.c: 308: }
402 ;usbctrltrf.c: 330: void USBCtrlTrfRxService(voi
+ d)
403 ;usbctrltrf.c: 331: {
404 000A7A _USBCtrlTrfRxService:
405 000000
406 ;usbctrltrf.c: 332: WORD byte_to_read;
407 000A7A C400 FFE8 movff 1024,wreg
408 000A7E 0B03 andlw 3
409 000A80 0100 movlb __Lparam shr (0+8)
410 000A82 6FFD movwf (?a_USBCtrlTrfRxService+1)^(__Lparam& (0+
+ 65280))
411 ;usbctrltrf.c: 335: ((byte_to_read).d.v[0]) = ep
+ [0].out.a.Cnt;
412 000A84 C401 F0FC movff 1025,?a_USBCtrlTrfRxService
413 ;usbctrltrf.c: 340: wCount._word = wCount._word
+ + byte_to_read._word;
414 000A88 EE00 F0E5 lfsr 0,_wCount
415 000A8C 51FC movf ?a_USBCtrlTrfRxService^(__Lparam& (0+65280
+ )),w
416 000A8E 26EE addwf postinc0,f,c
417 000A90 51FD movf (?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
+ 5280)),w
418 000A92 22ED addwfc postdec0,f,c
419 ;usbctrltrf.c: 342: pSrc.bRam = (byte*)&CtrlTrfD
+ ata;
420 000A94 0100 movlb _pSrc shr (0+8)
421 000A96 0EC0 movlw 192
422 000A98 6FE3 movwf _pSrc& (0+255),b
423 000A9A 0E04 movlw 4
424 000A9C 6FE4 movwf (_pSrc+1)& (0+255),b
425 ;usbctrltrf.c: 344: while(byte_to_read._word)
426 000A9E l114:
427 ;usbctrltrf.c: 350: }
428 000A9E 0100 movlb __Lparam shr (0+8)
429 000AA0 51FD movf (?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
+ 5280)),w
430 000AA2 11FC iorwf ?a_USBCtrlTrfRxService^(__Lparam& (0+6528
+ 0)),w
431 000AA4 B4D8 btfsc status,2,c
432 000AA6 0012 return
433 ;usbctrltrf.c: 345: {
434 000AA8 C0E3 FFE1 movff _pSrc,fsr1l
435 000AAC C0E4 FFE2 movff _pSrc+1,fsr1h
436 000AB0 C0E1 FFE9 movff _pDst,fsr0l
437 000AB4 C0E2 FFEA movff _pDst+1,fsr0h
438 000AB8 CFE7 FFEF movff indf1,indf0
439 ;usbctrltrf.c: 347: pDst.bRam++;
440 000ABC 0100 movlb _pDst shr (0+8)
441 000ABE 2BE1 incf _pDst& (0+255),f,b
442 000AC0 0E00 movlw 0
443 000AC2 23E2 addwfc (_pDst+1)& (0+255),f,b
444 ;usbctrltrf.c: 348: pSrc.bRam++;
445 000AC4 2BE3 incf _pSrc& (0+255),f,b
446 000AC6 23E4 addwfc (_pSrc+1)& (0+255),f,b
447 ;usbctrltrf.c: 349: byte_to_read._word--;
448 000AC8 0100 movlb __Lparam shr (0+8)
449 000ACA 07FC decf ?a_USBCtrlTrfRxService^(__Lparam& (0+65280
+ )),f
450 000ACC A0D8 btfss status,0,c
451 000ACE 07FD decf (?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
+ 5280)),f
452 000AD0 D7E6 goto l114
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -