?? p1.lst
字號:
(0394) INT1_GET_Z:
(0395) _INT1_GET_Z:
(0396) RAM_PROLOGUE RAM_USE_CLASS_1
(0397) MOV A,[INT1_BYTE3]
0354: 51 16 MOV A,[22]
(0398) RAM_EPILOGUE RAM_USE_CLASS_1
(0399) RET
0356: 7F RET
FILE: lib\myusb_std.asm
(0001) ;;*****************************************************************************
(0002) ;;*****************************************************************************
(0003) ;; FILENAME: myUSB_std.asm
(0004) ;; Version: 1.5, Updated on 2005/08/17 at 15:01:28
(0005) ;; Generated by PSoC Designer ver 4.2 b1013 : 02 September, 2004
(0006) ;;
(0007) ;; DESCRIPTION: USB Device User Module software implementation file
(0008) ;; for the enCoRe II family of devices
(0009) ;;
(0010) ;; NOTE: User Module APIs conform to the fastcall convention for marshalling
(0011) ;; arguments and observe the associated "Registers are volatile" policy.
(0012) ;; This means it is the caller's responsibility to preserve any values
(0013) ;; in the X and A registers that are still needed after the API
(0014) ;; function returns. Even though these registers may be preserved now,
(0015) ;; there is no guarantee they will be preserved in future releases.
(0016) ;;-----------------------------------------------------------------------------
(0017) ;; Copyright (c) Cypress Semiconductor 2004. All Rights Reserved.
(0018) ;;*****************************************************************************
(0019) ;;*****************************************************************************
(0020)
(0021) include "m8c.inc"
(0022) include "myUSB_macros.inc"
(0023) include "myUSB.inc"
(0024)
(0025) ;-----------------------------------------------
(0026) ; Global Symbols
(0027) ;-----------------------------------------------
(0028)
(0029) AREA bss (RAM,REL)
(0030)
(0031) ;-----------------------------------------------
(0032) ; Constant Definitions
(0033) ;-----------------------------------------------
(0034) ;-----------------------------------------------
(0035) ; Variable Allocation
(0036) ;-----------------------------------------------
(0037)
(0038) AREA UserModules (ROM, REL)
(0039)
(0040) ;-----------------------------------------------------------------------------
(0041) ; FUNCTION NAME: myUSB_Not_Supported
(0042) ;
(0043) ; DESCRIPTION: The myUSB_Not_Supported routine is invoked for any
(0044) ; USB request that is not supported. It is invoked with a
(0045) ; JMP/LJMP and does not return. It exits through the common
(0046) ; EP0 exit.
(0047) ;
(0048) ;-----------------------------------------------------------------------------
(0049) ;
(0050) ; ARGUMENTS: None
(0051) ;
(0052) ; RETURNS: Does not return
(0053) ;
(0054) ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
(0055) ;
(0056) ; THEORY of OPERATION or PROCEDURE:
(0057) ;
(0058) ;-----------------------------------------------------------------------------
(0059)
(0060) ; d2h_std_dev
(0061) IF (USB_CB_SRC_d2h_std_dev_00 & USB_NOT_SUPPORTED)
(0062) export myUSB_CB_d2h_std_dev_00
(0063) myUSB_CB_d2h_std_dev_00:
(0064) ENDIF
(0065) IF (USB_CB_SRC_d2h_std_dev_01 & USB_NOT_SUPPORTED)
(0066) export myUSB_CB_d2h_std_dev_01
(0067) myUSB_CB_d2h_std_dev_01:
(0068) ENDIF
(0069) IF (USB_CB_SRC_d2h_std_dev_02 & USB_NOT_SUPPORTED)
(0070) export myUSB_CB_d2h_std_dev_02
(0071) myUSB_CB_d2h_std_dev_02:
(0072) ENDIF
(0073) IF (USB_CB_SRC_d2h_std_dev_03 & USB_NOT_SUPPORTED)
(0074) export myUSB_CB_d2h_std_dev_03
(0075) myUSB_CB_d2h_std_dev_03:
(0076) ENDIF
(0077) IF (USB_CB_SRC_d2h_std_dev_04 & USB_NOT_SUPPORTED)
(0078) export myUSB_CB_d2h_std_dev_04
(0079) myUSB_CB_d2h_std_dev_04:
(0080) ENDIF
(0081) IF (USB_CB_SRC_d2h_std_dev_05 & USB_NOT_SUPPORTED)
(0082) export myUSB_CB_d2h_std_dev_05
(0083) myUSB_CB_d2h_std_dev_05:
(0084) ENDIF
(0085) IF (USB_CB_SRC_d2h_std_dev_06 & USB_NOT_SUPPORTED)
(0086) export myUSB_CB_d2h_std_dev_06
(0087) myUSB_CB_d2h_std_dev_06:
(0088) ENDIF
(0089) IF (USB_CB_SRC_d2h_std_dev_07 & USB_NOT_SUPPORTED)
(0090) export myUSB_CB_d2h_std_dev_07
(0091) myUSB_CB_d2h_std_dev_07:
(0092) ENDIF
(0093) IF (USB_CB_SRC_d2h_std_dev_08 & USB_NOT_SUPPORTED)
(0094) export myUSB_CB_d2h_std_dev_08
(0095) myUSB_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 myUSB_CB_h2d_std_dev_00
(0101) myUSB_CB_h2d_std_dev_00:
(0102) ENDIF
(0103) IF (USB_CB_SRC_h2d_std_dev_01 & USB_NOT_SUPPORTED)
(0104) export myUSB_CB_h2d_std_dev_01
(0105) myUSB_CB_h2d_std_dev_01:
(0106) ENDIF
(0107) IF (USB_CB_SRC_h2d_std_dev_02 & USB_NOT_SUPPORTED)
(0108) export myUSB_CB_h2d_std_dev_02
(0109) myUSB_CB_h2d_std_dev_02:
(0110) ENDIF
(0111) IF (USB_CB_SRC_h2d_std_dev_03 & USB_NOT_SUPPORTED)
(0112) export myUSB_CB_h2d_std_dev_03
(0113) myUSB_CB_h2d_std_dev_03:
(0114) ENDIF
(0115) IF (USB_CB_SRC_h2d_std_dev_04 & USB_NOT_SUPPORTED)
(0116) export myUSB_CB_h2d_std_dev_04
(0117) myUSB_CB_h2d_std_dev_04:
(0118) ENDIF
(0119) IF (USB_CB_SRC_h2d_std_dev_05 & USB_NOT_SUPPORTED)
(0120) export myUSB_CB_h2d_std_dev_05
(0121) myUSB_CB_h2d_std_dev_05:
(0122) ENDIF
(0123) IF (USB_CB_SRC_h2d_std_dev_06 & USB_NOT_SUPPORTED)
(0124) export myUSB_CB_h2d_std_dev_06
(0125) myUSB_CB_h2d_std_dev_06:
(0126) ENDIF
(0127) IF (USB_CB_SRC_h2d_std_dev_07 & USB_NOT_SUPPORTED)
(0128) export myUSB_CB_h2d_std_dev_07
(0129) myUSB_CB_h2d_std_dev_07:
(0130) ENDIF
(0131) IF (USB_CB_SRC_h2d_std_dev_08 & USB_NOT_SUPPORTED)
(0132) export myUSB_CB_h2d_std_dev_08
(0133) myUSB_CB_h2d_std_dev_08:
(0134) ENDIF
(0135) IF (USB_CB_SRC_h2d_std_dev_09 & USB_NOT_SUPPORTED)
(0136) export myUSB_CB_h2d_std_dev_09
(0137) myUSB_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 myUSB_CB_d2h_std_ifc_00
(0143) myUSB_CB_d2h_std_ifc_00:
(0144) ENDIF
(0145) IF (USB_CB_SRC_d2h_std_ifc_01 & USB_NOT_SUPPORTED)
(0146) export myUSB_CB_d2h_std_ifc_01
(0147) myUSB_CB_d2h_std_ifc_01:
(0148) ENDIF
(0149) IF (USB_CB_SRC_d2h_std_ifc_02 & USB_NOT_SUPPORTED)
(0150) export myUSB_CB_d2h_std_ifc_02
(0151) myUSB_CB_d2h_std_ifc_02:
(0152) ENDIF
(0153) IF (USB_CB_SRC_d2h_std_ifc_03 & USB_NOT_SUPPORTED)
(0154) export myUSB_CB_d2h_std_ifc_03
(0155) myUSB_CB_d2h_std_ifc_03:
(0156) ENDIF
(0157) IF (USB_CB_SRC_d2h_std_ifc_04 & USB_NOT_SUPPORTED)
(0158) export myUSB_CB_d2h_std_ifc_04
(0159) myUSB_CB_d2h_std_ifc_04:
(0160) ENDIF
(0161) IF (USB_CB_SRC_d2h_std_ifc_05 & USB_NOT_SUPPORTED)
(0162) export myUSB_CB_d2h_std_ifc_05
(0163) myUSB_CB_d2h_std_ifc_05:
(0164) ENDIF
(0165) IF (USB_CB_SRC_d2h_std_ifc_06 & USB_NOT_SUPPORTED)
(0166) export myUSB_CB_d2h_std_ifc_06
(0167) myUSB_CB_d2h_std_ifc_06:
(0168) ENDIF
(0169) IF (USB_CB_SRC_d2h_std_ifc_07 & USB_NOT_SUPPORTED)
(0170) export myUSB_CB_d2h_std_ifc_07
(0171) myUSB_CB_d2h_std_ifc_07:
(0172) ENDIF
(0173) IF (USB_CB_SRC_d2h_std_ifc_08 & USB_NOT_SUPPORTED)
(0174) export myUSB_CB_d2h_std_ifc_08
(0175) myUSB_CB_d2h_std_ifc_08:
(0176) ENDIF
(0177) IF (USB_CB_SRC_d2h_std_ifc_09 & USB_NOT_SUPPORTED)
(0178) export myUSB_CB_d2h_std_ifc_09
(0179) myUSB_CB_d2h_std_ifc_09:
(0180) ENDIF
(0181) IF (USB_CB_SRC_d2h_std_ifc_10 & USB_NOT_SUPPORTED)
(0182) export myUSB_CB_d2h_std_ifc_10
(0183) myUSB_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 myUSB_CB_h2d_std_ifc_00
(0189) myUSB_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 myUSB_CB_d2h_std_ep_00
(0195) myUSB_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 myUSB_CB_h2d_std_ep_00
(0201) myUSB_CB_h2d_std_ep_00:
(0202) ENDIF
(0203) IF (USB_CB_SRC_h2d_std_ep_01 & USB_NOT_SUPPORTED)
(0204) export myUSB_CB_h2d_std_ep_01
(0205) myUSB_CB_h2d_std_ep_01:
(0206) ENDIF
(0207) IF (USB_CB_SRC_h2d_std_ep_02 & USB_NOT_SUPPORTED)
(0208) export myUSB_CB_h2d_std_ep_02
(0209) myUSB_CB_h2d_std_ep_02:
(0210) ENDIF
(0211) IF (USB_CB_SRC_h2d_std_ep_03 & USB_NOT_SUPPORTED)
(0212) export myUSB_CB_h2d_std_ep_03
(0213) myUSB_CB_h2d_std_ep_03:
(0214) ENDIF
(0215)
(0216) export myUSB_Not_Supported
(0217) export _myUSB_Not_Supported
(0218) myUSB_Not_Supported:
(0219) _myUSB_Not_Supported:
(0220) MOV A, 0 ; Count 0
0357: 50 00 MOV A,0
(0221) MOV X, USB_MODE_STALL_IN_OUT ; Stall the request
0359: 57 03 MOV X,3
(0222) LJMP myUSB_EP0_UPD_MODE_EXIT
035B: 7D 05 F1 LJMP 0x05F1
035E: 00 SWI
035F: 01 00 ADD A,0
0361: 02 00 ADD A,[__r0]
0363: 58 00 MOV X,[0]
0365: 00 SWI
0366: DE 55 JNC 0x01BC
(0223) ;-----------------------------------------------------------------------------
(0224) ; FUNCTION NAME: myUSB_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, myUSB_TransferBuffer, NULL_PTR ; Intermediate Buffer
(0257) .ENDLITERAL
(0258) export myUSB_CB_d2h_std_dev_00
(0259) myUSB_CB_d2h_std_dev_00:
(0260) MOV [myUSB_t2], 0 ; Use the UM temp var--Selector
0368: 6B 00 RLC [__r0]
(0261)
(0262) MOV [myUSB_TransferBuffer+1], 0 ; Use the UM Transfer Buffer
036A: 55 59 00 MOV [myUSB_TransferBuffer+1],0
(0263) MOV [myUSB_TransferBuffer], [myUSB_DeviceStatus]
036D: 5F 58 50 MOV [myUSB_TransferType+1],[myUSB_DeviceStatus]
(0264)
(0265) MOV A,>GetStatusTransferDescrTable ; Get the ROM Address MSB
0370: 50 03 MOV A,3
(0266) MOV X,<GetStatusTransferDescrTable ; Get the ROM Address LSB
0372: 57 5E MOV X,94
(0267) JMP myUSB_GetTableEntry_Local_Std
0374: 82 67 JMP 0x05DC
(0268) ENDIF
(0269) ;-----------------------------------------------------------------------------
(0270) ; FUNCTION NAME: myUSB_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 myUSB_CB_d2h_std_dev_06
(0308) myUSB_CB_d2h_std_dev_06:
(0309) ;-----------------------------------------------------------------------------
(0310) ; Dispatch to the proper handler
(0311) ;-----------------------------------------------------------------------------
(0312) MOV A, REG[myUSB_EP0DATA+wValueHi] ; Get the descrptor type
0376: 5D 53 MOV A,REG[83]
(0313) ASL A ; Make it into a offset
0378: 64 ASL A
(0314) CMP A, GET_DESCR_DISPATCH_SIZE ; Validity check
0379: 39 08 CMP A,8
(0315) JNC myUSB_Not_Supported
037B: DF DB JNC 0x0357
(0316)
(0317) JACC GET_DESCR_DISPATCH
037D: E0 01 JACC 0x037F
(0318)
(0319) GET_DESCR_DISPATCH:
(0320) JMP myUSB_Not_Supported ; Invalid
037F: 8F D7 JMP 0x0357
(0321) JMP myUSB_SendDeviceDescr ; Device Descriptor
0381: 80 28 JMP 0x03AA
(0322) JMP myUSB_SendConfigDescr ; Configuration Descriptor
0383: 80 03 JMP 0x0387
(0323) IF myUSB_bNumStringDescrs ; Number of String Descriptor defined with the Wizard
(0324) JMP myUSB_SendStringDescr ; String Descriptor
0385: 80 34 JMP 0x03BA
(0325) ELSE
(0326) JMP myUSB_Not_Supported ; Not supported if we don't have
(0327) ; any String Descriptor
(0328) ENDIF
(0329) GET_DESCR_DISPATCH_END:
(0330) GET_DESCR_DISPATCH_SIZE: EQU (GET_DESCR_DISPATCH_END - GET_DESCR_DISPATCH)
(0331) ;-----------------------------------------------------------------------------
(0332) ; Configuration Descriptor Handler
(0333) ;----------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -