📄 usbctrltrf.lst
字号:
HI-TECH Software PICC-18 Macro Assembler V8.35PL3
Serial number: HCPIC18-15668 Wed Jun 15 13:32:21 2005
Licensed to: DESIGNREM LTD
1 processor 18F4550
2 opt pw 80
3 psect __Z15668RS_,global,delta=1
4 psect text,global,reloc=2,class=CODE,delta=1
5 psect bigbss,global,class=BIGRAM,space=1,delta=
+ 1
6 psect bss,global,class=RAM,space=1,delta=1
7 psect temp,global,ovrld,common,class=COMRAM,spa
+ ce=1,delta=1
8 psect intsave_regs,global,class=BIGRAM,space=1,
+ delta=1
9 000000
10 000000
11 000000
12 000000
13 000000
14 000000
15 000000
16 000000
17 000000
18 000000
19 000000
20 000000
21 000000
22 000000
23 000000
24 000000
25 000000
26 000000
27 000000
28 000000
29 000000
30 000000
31 000000
32 000000
33 000000
34 000000
35 000000
36 000000
37 000000
38 000000
39 000000
40 000000
41 000000
42 000000
43 000000
44 000000
45 000000
46 000000
47 000000
48 000000
49 000000
50 000000
51 000000
52 000000
53 000000
54 000000
55 000000
56 000000
57 000000
58 000000
59 000000
60 000000
61 000000
62 000000
63 000000
64 000000
65 000000
66 000000
67 000000
68 000000
69 000000
70 000000
71 000000
72 000000
73 000000
74 000000
75 000000
76 000000
77 000000
78 000000
79 000000
80 000000
81 000000
82 000000
83 000000
84 000000
85 000000
86 000000
87 000000
88 000000
89 000000
90 000000
91 000000
92 000000
93 000000
94 000000
95 000000
96 000000
97 000000
98
99 psect __Z15668RS_
100 000004
101 000004
102
103 psect text
104 0008B4 _USBCtrlEPService:
105 ; _byte_to_read assigned to ?a_USBCtrlTrfRxServi
+ ce+0
106 000000 _USBCtrlTrfRxService$byte_to_read set ?a_USBCtrl
+ TrfRxService
107 ; _byte_to_send assigned to ?a_USBCtrlTrfTxServi
+ ce+0
108 000000 _USBCtrlTrfTxService$byte_to_send set ?a_USBCtrl
+ TrfTxService
109 ; _i assigned to ?a_USBCtrlTrfSetupHandler+0
110 000000 _USBCtrlTrfSetupHandler$i set ?a_USBCtrlTrfSetup
+ Handler
111 000000
112 ;usbctrltrf.c: 79: if(USTAT == (0x00<<3)|(0<<2))
113 0008B4 506C movf 3948,w,c ;volatile
114 0008B6 A4D8 btfss status,2,c
115 0008B8 D00A goto l79
116 ;usbctrltrf.c: 80: {
117 0008BA EE04 F000 lfsr 0,1024
118 0008BE 30EF rrcf indf0,w,c
119 0008C0 6E00 movwf btemp
120 0008C2 3000 rrcf btemp,w
121 0008C4 0B0F andlw 15
122 0008C6 0A0D xorlw 13
123 0008C8 B4D8 btfsc status,2,c
124 ;usbctrltrf.c: 82: USBCtrlTrfSetupHandler();
125 0008CA D00E goto _USBCtrlTrfSetupHandler ;wreg free
126 ;usbctrltrf.c: 83: else
127 ;usbctrltrf.c: 84: USBCtrlTrfOutHandler();
128 0008CC D03B goto _USBCtrlTrfOutHandler ;wreg free
129 ;usbctrltrf.c: 85: }
130 0008CE l79:
131 0008CE 506C movf 3948,w,c ;volatile
132 0008D0 0E00 movlw 0
133 0008D2 B4D8 btfsc status,2,c
134 0008D4 0E01 movlw 1
135 0008D6 6E00 movwf btemp
136 0008D8 6A01 clrf btemp+1
137 0008DA 0E04 movlw 4
138 0008DC 1200 iorwf btemp,f
139 0008DE 5001 movf btemp+1,w
140 0008E0 1000 iorwf btemp,w
141 0008E2 A4D8 btfss status,2,c
142 ;usbctrltrf.c: 87: USBCtrlTrfInHandler();
143 0008E4 D840 call _USBCtrlTrfInHandler ;wreg free
144 ;usbctrltrf.c: 89: }
145 0008E6 0012 return
146 ;usbctrltrf.c: 132: void USBCtrlTrfSetupHandler(
+ void)
147 ;usbctrltrf.c: 133: {
148 0008E8 _USBCtrlTrfSetupHandler:
149 000000
150 ;usbctrltrf.c: 134: byte i;
151 0008E8 0103 movlb _ctrl_trf_state shr (0+8)
152 0008EA 6B78 clrf _ctrl_trf_state& (0+255),b
153 ;usbctrltrf.c: 138: ctrl_trf_session_owner = 0;
154 0008EC 0103 movlb _ctrl_trf_session_owner shr (0+8)
155 0008EE 6B77 clrf _ctrl_trf_session_owner& (0+255),b
156 ;usbctrltrf.c: 139: wCount._word = 0;
157 0008F0 0100 movlb _wCount shr (0+8)
158 0008F2 6BE5 clrf _wCount& (0+255),b
159 0008F4 6BE6 clrf (_wCount+1)& (0+255),b
160 ;usbctrltrf.c: 142: USBCheckStdRequest();
161 0008F6 EC1A F000 call _USBCheckStdRequest ;wreg free
162 ;usbctrltrf.c: 144: for(i=0;i < (sizeof(ClassReq
+ Handler)/sizeof(pFunc));i++)
163 0008FA 0100 movlb __Lparam shr (0+8)
164 0008FC 6BFC clrf ?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
+ 280))
165 0008FE l85:
166 ;usbctrltrf.c: 145: {
167 ;usbctrltrf.c: 146: if(ctrl_trf_session_owner !=
+ 0)break;
168 0008FE 0103 movlb _ctrl_trf_session_owner shr (0+8)
169 000900 5377 movf _ctrl_trf_session_owner& (0+255),f,b
170 000902 A4D8 btfss status,2,c
171 000904 D0E6 goto _USBCtrlEPServiceComplete
172 ;usbctrltrf.c: 147: ClassReqHandler[i]();
173 000906 0100 movlb __Lparam shr (0+8)
174 000908 90D8 bcf status,0,c
175 00090A 35FC rlcf ?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
+ 280)),w
176 00090C 6E00 movwf btemp
177 00090E 6A01 clrf btemp+1
178 000910 3601 rlcf btemp+1,f
179 000912 5000 movf btemp,w
180 000914 0FCB addlw low _ClassReqHandler
181 000916 6EF6 movwf tblptrl,c
182 000918 5001 movf btemp+1,w
183 00091A 6EF7 movwf tblptrh,c
184 00091C 0E04 movlw high _ClassReqHandler
185 00091E 22F7 addwfc tblptrh,f,c
186 000920 0009 tblrd *+
187 000922 CFF5 F000 movff tablat,btemp
188 000926 0009 tblrd *+
189 000928 CFF5 F001 movff tablat,btemp+1
190 00092C C000 FFF6 movff btemp,tblptrl
191 000930 C001 FFF7 movff btemp+1,tblptrh
192 000934 EC02 F000 call indir_func
193 ;usbctrltrf.c: 148: }
194 000938 0100 movlb __Lparam shr (0+8)
195 00093A 2BFC incf ?a_USBCtrlTrfSetupHandler^(__Lparam& (0+65
+ 280)),f
196 00093C 0E00 movlw 0
197 00093E 65FC cpfsgt ?a_USBCtrlTrfSetupHandler^(__Lparam& (0+
+ 65280))
198 000940 D7DE goto l85
199 ;usbctrltrf.c: 151: USBCtrlEPServiceComplete();
200 000942 D0C7 goto _USBCtrlEPServiceComplete ;wreg free
201 ;usbctrltrf.c: 153: }
202 ;usbctrltrf.c: 175: void USBCtrlTrfOutHandler(vo
+ id)
203 ;usbctrltrf.c: 176: {
204 000944 _USBCtrlTrfOutHandler:
205 000000
206 ;usbctrltrf.c: 177: if(ctrl_trf_state == 2)
207 000944 C378 FFE8 movff _ctrl_trf_state,wreg
208 000948 0A02 xorlw 2
209 00094A A4D8 btfss status,2,c
210 00094C D115 goto _USBPrepareForNextSetupTrf
211 ;usbctrltrf.c: 178: {
212 00094E D895 call _USBCtrlTrfRxService ;wreg free
213 ;usbctrltrf.c: 186: if(ep[0].out.a.Stat.a.DTS ==
+ 0)
214 000950 0104 movlb 4
215 000952 BD00 btfsc 0,6,b
216 000954 D004 goto l91
217 ;usbctrltrf.c: 187: ep[0].out.a.Stat._byte = 0x8
+ 0|0x40|0x08;
218 000956 0EC8 movlw -56
219 000958 CFE8 F400 movff wreg,1024
220 ;usbctrltrf.c: 188: else
221 00095C 0012 return
222 00095E l91:
223 ;usbctrltrf.c: 189: ep[0].out.a.Stat._byte = 0x8
+ 0|0x00|0x08;
224 00095E 0E88 movlw -120
225 000960 CFE8 F400 movff wreg,1024
226 ;usbctrltrf.c: 190: }
227 000964 0012 return
228 ;usbctrltrf.c: 192: USBPrepareForNextSetupTrf();
229 ;usbctrltrf.c: 194: }
230 ;usbctrltrf.c: 220: void USBCtrlTrfInHandler(voi
+ d)
231 ;usbctrltrf.c: 221: {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -