📄 drawusb.lst
字号:
(0093) IF (USB_CB_SRC_d2h_std_dev_08 & USB_NOT_SUPPORTED)
(0094) export USB_CB_d2h_std_dev_08
(0095) USB_CB_d2h_std_dev_08:
(0096) ENDIF
(0097)
(0098) ; h2d_std_dev
(0099) IF (USB_CB_SRC_h2d_std_dev_00 & USB_NOT_SUPPORTED)
(0100) export USB_CB_h2d_std_dev_00
(0101) USB_CB_h2d_std_dev_00:
(0102) ENDIF
(0103) IF (USB_CB_SRC_h2d_std_dev_01 & USB_NOT_SUPPORTED)
(0104) export USB_CB_h2d_std_dev_01
(0105) USB_CB_h2d_std_dev_01:
(0106) ENDIF
(0107) IF (USB_CB_SRC_h2d_std_dev_02 & USB_NOT_SUPPORTED)
(0108) export USB_CB_h2d_std_dev_02
(0109) USB_CB_h2d_std_dev_02:
(0110) ENDIF
(0111) IF (USB_CB_SRC_h2d_std_dev_03 & USB_NOT_SUPPORTED)
(0112) export USB_CB_h2d_std_dev_03
(0113) USB_CB_h2d_std_dev_03:
(0114) ENDIF
(0115) IF (USB_CB_SRC_h2d_std_dev_04 & USB_NOT_SUPPORTED)
(0116) export USB_CB_h2d_std_dev_04
(0117) USB_CB_h2d_std_dev_04:
(0118) ENDIF
(0119) IF (USB_CB_SRC_h2d_std_dev_05 & USB_NOT_SUPPORTED)
(0120) export USB_CB_h2d_std_dev_05
(0121) USB_CB_h2d_std_dev_05:
(0122) ENDIF
(0123) IF (USB_CB_SRC_h2d_std_dev_06 & USB_NOT_SUPPORTED)
(0124) export USB_CB_h2d_std_dev_06
(0125) USB_CB_h2d_std_dev_06:
(0126) ENDIF
(0127) IF (USB_CB_SRC_h2d_std_dev_07 & USB_NOT_SUPPORTED)
(0128) export USB_CB_h2d_std_dev_07
(0129) USB_CB_h2d_std_dev_07:
(0130) ENDIF
(0131) IF (USB_CB_SRC_h2d_std_dev_08 & USB_NOT_SUPPORTED)
(0132) export USB_CB_h2d_std_dev_08
(0133) USB_CB_h2d_std_dev_08:
(0134) ENDIF
(0135) IF (USB_CB_SRC_h2d_std_dev_09 & USB_NOT_SUPPORTED)
(0136) export USB_CB_h2d_std_dev_09
(0137) USB_CB_h2d_std_dev_09:
(0138) ENDIF
(0139)
(0140) ; d2h_std_ifc
(0141) IF (USB_CB_SRC_d2h_std_ifc_00 & USB_NOT_SUPPORTED)
(0142) export USB_CB_d2h_std_ifc_00
(0143) USB_CB_d2h_std_ifc_00:
(0144) ENDIF
(0145) IF (USB_CB_SRC_d2h_std_ifc_01 & USB_NOT_SUPPORTED)
(0146) export USB_CB_d2h_std_ifc_01
(0147) USB_CB_d2h_std_ifc_01:
(0148) ENDIF
(0149) IF (USB_CB_SRC_d2h_std_ifc_02 & USB_NOT_SUPPORTED)
(0150) export USB_CB_d2h_std_ifc_02
(0151) USB_CB_d2h_std_ifc_02:
(0152) ENDIF
(0153) IF (USB_CB_SRC_d2h_std_ifc_03 & USB_NOT_SUPPORTED)
(0154) export USB_CB_d2h_std_ifc_03
(0155) USB_CB_d2h_std_ifc_03:
(0156) ENDIF
(0157) IF (USB_CB_SRC_d2h_std_ifc_04 & USB_NOT_SUPPORTED)
(0158) export USB_CB_d2h_std_ifc_04
(0159) USB_CB_d2h_std_ifc_04:
(0160) ENDIF
(0161) IF (USB_CB_SRC_d2h_std_ifc_05 & USB_NOT_SUPPORTED)
(0162) export USB_CB_d2h_std_ifc_05
(0163) USB_CB_d2h_std_ifc_05:
(0164) ENDIF
(0165) IF (USB_CB_SRC_d2h_std_ifc_06 & USB_NOT_SUPPORTED)
(0166) export USB_CB_d2h_std_ifc_06
(0167) USB_CB_d2h_std_ifc_06:
(0168) ENDIF
(0169) IF (USB_CB_SRC_d2h_std_ifc_07 & USB_NOT_SUPPORTED)
(0170) export USB_CB_d2h_std_ifc_07
(0171) USB_CB_d2h_std_ifc_07:
(0172) ENDIF
(0173) IF (USB_CB_SRC_d2h_std_ifc_08 & USB_NOT_SUPPORTED)
(0174) export USB_CB_d2h_std_ifc_08
(0175) USB_CB_d2h_std_ifc_08:
(0176) ENDIF
(0177) IF (USB_CB_SRC_d2h_std_ifc_09 & USB_NOT_SUPPORTED)
(0178) export USB_CB_d2h_std_ifc_09
(0179) USB_CB_d2h_std_ifc_09:
(0180) ENDIF
(0181) IF (USB_CB_SRC_d2h_std_ifc_10 & USB_NOT_SUPPORTED)
(0182) export USB_CB_d2h_std_ifc_10
(0183) USB_CB_d2h_std_ifc_10:
(0184) ENDIF
(0185)
(0186) ; d2h_std_ifc
(0187) IF (USB_CB_SRC_h2d_std_ifc_00 & USB_NOT_SUPPORTED)
(0188) export USB_CB_h2d_std_ifc_00
(0189) USB_CB_h2d_std_ifc_00:
(0190) ENDIF
(0191)
(0192) ; d2h_std_ep
(0193) IF (USB_CB_SRC_d2h_std_ep_00 & USB_NOT_SUPPORTED)
(0194) export USB_CB_d2h_std_ep_00
(0195) USB_CB_d2h_std_ep_00:
(0196) ENDIF
(0197)
(0198) ; h2d_std_ep
(0199) IF (USB_CB_SRC_h2d_std_ep_00 & USB_NOT_SUPPORTED)
(0200) export USB_CB_h2d_std_ep_00
(0201) USB_CB_h2d_std_ep_00:
(0202) ENDIF
(0203) IF (USB_CB_SRC_h2d_std_ep_01 & USB_NOT_SUPPORTED)
(0204) export USB_CB_h2d_std_ep_01
(0205) USB_CB_h2d_std_ep_01:
(0206) ENDIF
(0207) IF (USB_CB_SRC_h2d_std_ep_02 & USB_NOT_SUPPORTED)
(0208) export USB_CB_h2d_std_ep_02
(0209) USB_CB_h2d_std_ep_02:
(0210) ENDIF
(0211) IF (USB_CB_SRC_h2d_std_ep_03 & USB_NOT_SUPPORTED)
(0212) export USB_CB_h2d_std_ep_03
(0213) USB_CB_h2d_std_ep_03:
(0214) ENDIF
(0215)
(0216) export USB_Not_Supported
(0217) export _USB_Not_Supported
(0218) USB_Not_Supported:
(0219) _USB_Not_Supported:
0302: 50 00 MOV A,0 (0220) MOV A, 0 ; Count 0
0304: 57 03 MOV X,3 (0221) MOV X, USB_MODE_STALL_IN_OUT ; Stall the request
0306: 7D 05 8B LJMP 0x058B (0222) LJMP USB_EP0_UPD_MODE_EXIT
0309: 00 SWI
030A: 01 00 ADD A,0
030C: 02 00 ADD A,[__r1]
030E: 2C 00 OR [0],A
0310: 00 SWI
0311: DE 55 JNC 0x0167
(0223) ;-----------------------------------------------------------------------------
(0224) ; FUNCTION NAME: USB_CB_d2h_std_dev_00
(0225) ;
(0226) ; DESCRIPTION: Get Device Status
(0227) ;
(0228) ;****************************************************************
(0229) ; STANDARD DEVICE IN REQUEST: Get_Device_Status
(0230) ;****************************************************************
(0231) ;
(0232) ; bmRequestType : (IN | STANDARD | DEVICE) = 80h
(0233) ; bRequest : GET_STATUS = 00h
(0234) ; wValue : RESERVED = 0000h
(0235) ; wIndex : RESERVED = 0000h
(0236) ; wLength : SIZEOF_ENDPOINT_STATUS = 0002h
(0237) ;
(0238) ; The GET_DEVICE_STATUS request returns the current device status.
(0239) ;
(0240) ;****************************************************************
(0241) ;-----------------------------------------------------------------------------
(0242) ;
(0243) ; ARGUMENTS:
(0244) ;
(0245) ; RETURNS:
(0246) ;
(0247) ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
(0248) ;
(0249) ; THEORY of OPERATION or PROCEDURE:
(0250) ;
(0251) ;-----------------------------------------------------------------------------
(0252) IF (USB_CB_SRC_d2h_std_dev_00 & USB_UM_SUPPLIED)
(0253) .LITERAL
(0254) GetStatusTransferDescrTable:
(0255) TD_START_TABLE 1 ; One entry
(0256) TD_ENTRY USB_DS_RAM, 2, USB_TransferBuffer, NULL_PTR ; Intermediate Buffer
(0257) .ENDLITERAL
(0258) export USB_CB_d2h_std_dev_00
(0259) USB_CB_d2h_std_dev_00:
0313: 3F 00 MVI [__r1],A (0260) MOV [USB_t2], 0 ; Use the UM temp var--Selector
(0261)
0315: 55 2D 00 MOV [USB_TransferBuffer+1],0(0262) MOV [USB_TransferBuffer+1], 0 ; Use the UM Transfer Buffer
0318: 5F 2C 25 MOV [USB_TransferType+1],[USB_DeviceStatus](0263) MOV [USB_TransferBuffer], [USB_DeviceStatus]
(0264)
031B: 50 03 MOV A,3 (0265) MOV A,>GetStatusTransferDescrTable ; Get the ROM Address MSB
031D: 57 09 MOV X,9 (0266) MOV X,<GetStatusTransferDescrTable ; Get the ROM Address LSB
031F: 82 56 JMP 0x0576 (0267) JMP USB_GetTableEntry_Local_Std
(0268) ENDIF
(0269) ;-----------------------------------------------------------------------------
(0270) ; FUNCTION NAME: USB_CB_d2h_std_dev_06
(0271) ;
(0272) ; DESCRIPTION: Get Device Descriptor
(0273) ;
(0274) ;****************************************************************
(0275) ; STANDARD DEVICE IN REQUEST: Get_Device_Descriptor
(0276) ;****************************************************************
(0277) ;
(0278) ; bmRequestType : (IN | STANDARD | DEVICE) = 80h
(0279) ; bRequest : GET_DESCRIPTOR = 06h
(0280) ; wValue : DESCRIPTOR TYPE | INDEX = xxxxh
(0281) ; wIndex : ZERO or LANG_ID = xxxxh
(0282) ; wLength : SIZEOF_DESCRIPTOR = --xxh
(0283) ;
(0284) ; The GET_DEVICE_DESCRIPTOR returns the specified descriptor if
(0285) ; the descriptor exists.
(0286) ;
(0287) ; The upper byte of wValue contains the descriptor type and
(0288) ; the lower byte contains the descriptor index. wIndex
(0289) ; contains either 0000h or the Language ID. wLength contains
(0290) ; the descriptor length. The actual descriptor information is
(0291) ; transferred in subsequent data packets.
(0292) ;
(0293) ;****************************************************************
(0294) ;
(0295) ;-----------------------------------------------------------------------------
(0296) ;
(0297) ; ARGUMENTS:
(0298) ;
(0299) ; RETURNS:
(0300) ;
(0301) ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
(0302) ;
(0303) ; THEORY of OPERATION or PROCEDURE:
(0304) ;
(0305) ;-----------------------------------------------------------------------------
(0306) IF (USB_CB_SRC_d2h_std_dev_06 & USB_UM_SUPPLIED)
(0307) export USB_CB_d2h_std_dev_06
(0308) USB_CB_d2h_std_dev_06:
(0309) ;-----------------------------------------------------------------------------
(0310) ; Dispatch to the proper handler
(0311) ;-----------------------------------------------------------------------------
0321: 5D 53 MOV A,REG[83] (0312) MOV A, REG[USB_EP0DATA+wValueHi] ; Get the descrptor type
0323: 64 ASL A (0313) ASL A ; Make it into a offset
0324: 39 08 CMP A,8 (0314) CMP A, GET_DESCR_DISPATCH_SIZE ; Validity check
0326: DF DB JNC 0x0302 (0315) JNC USB_Not_Supported
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -