📄 usblib2.lst
字号:
142 0047 1080 E SZ FIFO_SendLen ;Any data to write ?
143 0048 2ACA JMP WriteFIFOTag ;Yes
144 0049 2AD8 JMP EndWrite ;No
145 004A WriteFIFOTag:
146 004A 0700 E MOV A,FIFO_NO ;FIFO NO.
147 004B 0083 MOV MP1,A ;
148 004C
149 004C 339B SET FIFO_w_c_b
150 004D 0700 MOV A,R0 ;Write data to FIFO
151 004E 0082 MOV R1,A ;
152 004F 379B CLR FIFO_w_c_b
153 0050
154 0050 1580 E DEC FIFO_SendLen ;Getting data length++
155 0051 1481 INC MP0 ;Update to next pointer
156 0052 0F46 MOV A,USB_MISC ;End of FIFO ?
157 0053 0083 MOV MP1,A ;
158 0054 22E7 call wait_28us
159 0055 3F02 SZ R1.@USB_Ready ;
160 0056 2AC7 JMP WriteFIFOLoop ;No
161 0057 2AD8 jmp EndWrite
162 0058 ;------------------------------------------------------------------------
163 0058 WriteLen0:
164 0058 EndWrite:
165 0058 ;----------------------------------------------------------------------------
166 0058 ;----BEGIN (End request)
167 0058 E1ND_Request:
168 0058 0F46 MOV A,USB_MISC
169 0059 0083 MOV MP1,A
170 005A 0F02 MOV A,(01H SHL @USB_Tx) ;Change Tx state
171 005B 340B clr intc.0
172 005C 0482 XORM A,R1 ;
173 005D 22F3 call wait_4us
174 005E 3402 CLR R1.@USB_Req ;End request
175 005F 300B set intc.0
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 4
176 0060 0003 RET
177 0061 ;----------------------------------------------------------------------------
178 0061 ;----BEGIN (Clear FIFO)
179 0061 ClearFIFO1:
180 0061 3102 set r1.@USB_Clear
181 0062 3482 clr r1.@USB_Tx
182 0063 22F3 call wait_4us
183 0064 3502 CLR R1.@USB_Clear ;Disable Clear
184 0065 3402 CLR R1.@USB_Req ;End request
185 0066 0003 RET
186 0067
187 0067
188 0067
189 0067
190 0067 ;----END (Clear FIFO)
191 0067 wait_28us:
192 0067 2AE8 jmp $+1
193 0068 2AE9 jmp $+1
194 0069 2AEA jmp $+1
195 006A 2AEB jmp $+1
196 006B 2AEC jmp $+1
197 006C 2AED jmp $+1
198 006D 2AEE jmp $+1
199 006E 2AEF jmp $+1
200 006F 2AF0 jmp $+1
201 0070 2AF1 jmp $+1
202 0071 2AF2 jmp $+1
203 0072 2AF3 jmp $+1
204 0073 wait_4us:
205 0073 0003 ret
206 0074
207 0074
208 0074
209 0074
210 0074 ;----------------------------------------------------------------------------
211 0074 ;----BEGIN (Get pipe bit)
212 0074 ;Input : ACC pipe number
213 0074 ;Output: ACC pip bit (D0:pipe 0, D1:pipe 1...)
214 0074 GetPipeBit:
215 0074 1485 INC ACC
216 0075 0080 E MOV FIFO_TEMP,A
217 0076 0F80 MOV A,80H
218 0077 GetPipeBitLoop:
219 0077 1885 RL ACC
220 0078 1780 E SDZ FIFO_TEMP
221 0079 2AF7 JMP GetPipeBitLoop
222 007A 0003 RET
223 007B ;----END (Get pipe bit)
224 007B
225 007B ;----------------------------------------------------------------------------
226 007B ;----BEGIN (Set Stall)
227 007B ;Input : ACC = Pipe number
228 007B SetStall:
229 007B 0080 E MOV FIFO_TEMP ,A ;
230 007C 0F43 MOV A,USB_STALL ;MP1 point to Stall register (Read Only)
231 007D 0083 MOV MP1,A ;
232 007E 0700 E MOV A,FIFO_TEMP
233 007F 0500 E OR A,STALL ;Set stall bit
234 0080 2B07 JMP SetStallTag
235 0081 ;----END (Set Stall)
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 5
236 0081
237 0081
238 0081 ;----------------------------------------------------------------------------
239 0081 ;----BEGIN (Clear Stall)
240 0081 ;Input : ACC = Pipe number
241 0081 ClearStall:
242 0081 0080 E MOV FIFO_TEMP,A ;
243 0082 0F43 MOV A,USB_STALL ;MP1 point to Stall register
244 0083 0083 MOV MP1,A ;
245 0084 0700 E MOV A,FIFO_TEMP
246 0085 0185 CPL ACC ;Clear stall bit
247 0086 0600 E AND A,STALL ;
248 0087 SetStallTag:
249 0087 0080 E MOV STALL,A ;Update Satll buffer
250 0088 0082 MOV R1,A ;Update Stall register
251 0089 0003 RET
252 008A ;----END (Clear Sta
253 008A
254 008A
255 008A ;public LEN0_Rd_Check
256 008A public LEN0_Wr_Check
257 008A public FIFO0_Rd_Check
258 008A ;public FIFO0_Rd_Check1
259 008A public FIFO1_Rd_Check
260 008A public FIFO2_Rd_Check
261 008A public FIFO3_Rd_Check
262 008A public FIFO0_Wr_Check
263 008A public FIFO1_Wr_Check
264 008A public FIFO2_Wr_Check
265 008A public FIFO3_Wr_Check
266 008A ;public ReadLen0
267 008A public ReadFIFO0
268 008A public ReadFIFO1
269 008A public ReadFIFO2
270 008A public ReadFIFO3
271 008A public WriteLen0
272 008A public WriteFIFO0
273 008A public WriteFIFO1
274 008A public WriteFIFO2
275 008A ;public ClearFIFO0
276 008A public ClearFIFO1
277 008A ;public ClearFIFO2
278 008A ;public CheckSetup
279 008A ;public CheckPipe
280 008A public GetPipeBit
281 008A public SetStall
282 008A public ClearStall
283 008A ;public SetAddress
284 008A ;public SetRemoteFun
285 008A ;public END_Request
286 008A END
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -