⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p1.lst

📁 实现2个ps/2接口转到1个USB接口功能
💻 LST
📖 第 1 页 / 共 5 页
字号:
(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 + -