?? usblib2.lst
字號:
178 0059 0F02 MOV A,(01H SHL @USB_Tx) ;Change Tx state
179 005A 340B clr intc.0
180 005B 0482 XORM A,R1 ;
181 005C 22E2 call wait_4us
182 005D 3402 CLR R1.@USB_Req ;End request
183 005E 300B set intc.0
184 005F 0003 RET
185 0060
186 0060 ;;wait_zero_len_out:
187 0060 ;; sz r1.@USB_Setup
188 0060 ;; ret ;continue to scan keyboard
189 0060 ;;
190 0060 ;; set r1.@USB_Tx
191 0060 ;; call wait_4us
192 0060 ;; set R1.@usb_req
193 0060 ;; call wait_28us
194 0060 ;; sz R1.@USB_Ready
195 0060 ;; jmp chg_address_now
196 0060 ;; clr r1.@USB_Req
197 0060 ;; jmp wait_zero_len_out
198 0060 ;;
199 0060 ;;chg_address_now:
200 0060 ;; clr r1.@USB_Req
201 0060 ;; rla CMD_ADDR ;Yes
202 0060 ;;;SetAddress:
203 0060 ;; AND A,0FEH ;& save it
204 0060 ;; MOV FIFO_ADDR,A ;Move address to adress buffer
205 0060 ;; SZ bRmtWakeup ;Remote wakeup exist ?
206 0060 ;; SET FIFO_ADDR.0 ;Yes:Set remote wakeup flag
207 0060 ;; MOV A,USB_ADDR_WAKE ;MP1 point to Address register
208 0060 ;; MOV MP1,A ;
209 0060 ;; MOV A,FIFO_ADDR ;Write to Address Register
210 0060 ;; MOV R1,A ;
211 0060 ;; sz CMD_ADDR
212 0060 ;; set baddr_state
213 0060 ;; CLR bFLAG_AdrF ;have finished address write
214 0060 ;;
215 0060 ;; RET
216 0060 ;;----END (End request)
217 0060 ;
218 0060 ;;----END (Write FIFO)
219 0060
220 0060 ;----------------------------------------------------------------------------
221 0060 ;----BEGIN (Clear FIFO)
222 0060 ClearFIFO1:
223 0060 3102 set r1.@USB_Clear
224 0061 3482 clr r1.@USB_Tx
225 0062 22E2 call wait_4us
226 0063 3502 CLR R1.@USB_Clear ;Disable Clear
227 0064 3402 CLR R1.@USB_Req ;End request
228 0065 0003 RET
229 0066
230 0066
231 0066
232 0066
233 0066 ;----END (Clear FIFO)
234 0066 wait_28us:
235 0066 2AD7 jmp $+1
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 5
236 0067 2AD8 jmp $+1
237 0068 2AD9 jmp $+1
238 0069 2ADA jmp $+1
239 006A 2ADB jmp $+1
240 006B 2ADC jmp $+1
241 006C 2ADD jmp $+1
242 006D 2ADE jmp $+1
243 006E 2ADF jmp $+1
244 006F 2AE0 jmp $+1
245 0070 2AE1 jmp $+1
246 0071 2AE2 jmp $+1
247 0072 wait_4us:
248 0072 0003 ret
249 0073
250 0073
251 0073
252 0073
253 0073 ;----------------------------------------------------------------------------
254 0073 ;----BEGIN (Check setup)
255 0073 ;Output: Z = 0:Setup/1:None
256 0073 ;CheckSetup:
257 0073 ; MOV A,USB_MISC ;MP1 point to Misc. register
258 0073 ; MOV MP1,A ;
259 0073 ; MOV A,(01H SHL @USB_Setup) ;Misc. Register Setup flag
260 0073 ; JMP Check
261 0073
262 0073 ;----------------------------------------------------------------------------
263 0073 ;----BEGIN (Get pipe bit)
264 0073 ;Input : ACC pipe number
265 0073 ;Output: ACC pip bit (D0:pipe 0, D1:pipe 1...)
266 0073 GetPipeBit:
267 0073 1485 INC ACC
268 0074 0080 E MOV FIFO_TEMP,A
269 0075 0F80 MOV A,80H
270 0076 GetPipeBitLoop:
271 0076 1885 RL ACC
272 0077 1780 E SDZ FIFO_TEMP
273 0078 2AE6 JMP GetPipeBitLoop
274 0079 0003 RET
275 007A ;----END (Get pipe bit)
276 007A
277 007A ;----------------------------------------------------------------------------
278 007A ;----BEGIN (Set Stall)
279 007A ;Input : ACC = Pipe number
280 007A SetStall:
281 007A 0080 E MOV FIFO_TEMP ,A ;
282 007B 0F43 MOV A,USB_STALL ;MP1 point to Stall register (Read Only)
283 007C 0083 MOV MP1,A ;
284 007D 0700 E MOV A,FIFO_TEMP
285 007E 0500 E OR A,STALL ;Set stall bit
286 007F 2AF6 JMP SetStallTag
287 0080 ;----END (Set Stall)
288 0080
289 0080
290 0080 ;----------------------------------------------------------------------------
291 0080 ;----BEGIN (Clear Stall)
292 0080 ;Input : ACC = Pipe number
293 0080 ClearStall:
294 0080 0080 E MOV FIFO_TEMP,A ;
295 0081 0F43 MOV A,USB_STALL ;MP1 point to Stall register
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 6
296 0082 0083 MOV MP1,A ;
297 0083 0700 E MOV A,FIFO_TEMP
298 0084 0185 CPL ACC ;Clear stall bit
299 0085 0600 E AND A,STALL ;
300 0086 SetStallTag:
301 0086 0080 E MOV STALL,A ;Update Satll buffer
302 0087 0082 MOV R1,A ;Update Stall register
303 0088 0003 RET
304 0089 ;----END (Clear Sta
305 0089
306 0089 ;----------------------------------------------------------------------------
307 0089 ;----BEGIN (Set Address)
308 0089 ;Input : ACC = Address
309 0089 ;SetAddress:
310 0089 ; RL ACC ;Shift address to D1
311 0089 ; AND A,0FEH ;& save it
312 0089 ; MOV FIFO_ADDR,A ;Move address to adress buffer
313 0089 ; SZ STD_FLAG.@RmtWakeup ;Remote wakeup exist ?
314 0089 ; SET FIFO_ADDR.@ADDR_Wake ;Yes:Set remote wakeup flag
315 0089 ; MOV A,USB_ADDR_WAKE ;MP1 point to Address register
316 0089 ; MOV MP1,A ;
317 0089 ; MOV A,FIFO_ADDR ;Write to Address Register
318 0089 ; MOV R1,A ;
319 0089 ; RET
320 0089
321 0089
322 0089
323 0089 ;----- END (USB function) --------------------------------------------------
324 0089
325 0089
326 0089 ;public LEN0_Rd_Check
327 0089 public LEN0_Wr_Check
328 0089 public FIFO0_Rd_Check
329 0089 ;public FIFO0_Rd_Check1
330 0089 public FIFO1_Rd_Check
331 0089 public FIFO2_Rd_Check
332 0089 public FIFO3_Rd_Check
333 0089 public FIFO0_Wr_Check
334 0089 public FIFO1_Wr_Check
335 0089 public FIFO2_Wr_Check
336 0089 public FIFO3_Wr_Check
337 0089 ;public ReadLen0
338 0089 public ReadFIFO0
339 0089 public ReadFIFO1
340 0089 public ReadFIFO2
341 0089 public ReadFIFO3
342 0089 public WriteLen0
343 0089 public WriteFIFO0
344 0089 public WriteFIFO1
345 0089 public WriteFIFO2
346 0089 ;public ClearFIFO0
347 0089 public ClearFIFO1
348 0089 ;public ClearFIFO2
349 0089 ;public CheckSetup
350 0089 ;public CheckPipe
351 0089 public GetPipeBit
352 0089 public SetStall
353 0089 public ClearStall
354 0089 ;public SetAddress
355 0089 ;public SetRemoteFun
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 7
356 0089 ;public END_Request
357 0089 END
0 Errors
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -