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

📄 usb_req.asm

📁 使用5509A的usb的程序代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;*                        SATA,SATD,RDM,FRCT,SMUL                              *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 10 words                                             *
;*                        (1 return address/alignment)                         *
;*                        (9 local values)                                     *
;*******************************************************************************
_USB_reqSetConfiguration:
	.line	2
;* T0    assigned to _DevNum
	.sym	_DevNum,12, 10, 17, 16, $$fake0
;* AR0   assigned to _USB_Setup
	.sym	_USB_Setup,17, 24, 17, 23, $$fake6
;* AR1   assigned to _hInEp
	.sym	_hInEp,19, 24, 17, 23, $$fake2
;* AR2   assigned to _hOutEp
	.sym	_hOutEp,21, 24, 17, 23, $$fake2
	.sym	_DevNum,0, 10, 1, 16, $$fake0
	.sym	_USB_Setup,2, 24, 1, 23, $$fake6
	.sym	_hInEp,4, 24, 1, 23, $$fake2
	.sym	_hOutEp,6, 24, 1, 23, $$fake2
	.sym	_ret_stat,8, 10, 1, 16, $$fake5
        AADD #-9, SP
        MOV XAR2, dbl(*SP(#6))
        MOV XAR1, dbl(*SP(#4))
        MOV XAR0, dbl(*SP(#2))
        MOV T0, *SP(#0) ; |468| 
	.line	6
        MOV dbl(*SP(#2)), XAR3
        MOV *AR3(short(#3)), AR1 ; |472| 
        BCC L23,AR1 == #0 ; |472| 
                                        ; branch occurs	; |472| 
        MOV dbl(*SP(#2)), XAR3
        CMP *AR3(short(#3)) == #1, TC1 ; |472| 
        BCC L24,!TC1 ; |472| 
                                        ; branch occurs	; |472| 
L23:    
	.line	8
        MOV dbl(*SP(#2)), XAR3
        MOV *AR3(short(#3)), AR1 ; |474| 
        MOV AR1, *(#_usbCurConfigStat) ; |474| 
	.line	9
        MOV dbl(*(#_data)), XAR2
        AMAR *AR2, XAR3
        AMAR *AR3+
        MOV XAR3, dbl(*(#_data))
        MOV #39321, *AR2 ; |475| 
	.line	10
        AMOV #_usbEpObjOut2, XAR0 ; |476| 
        MOV #0, T1
        MOV #64, T0 ; |476| 
        AMOV #_Endpt2Buff, XAR1 ; |476| 
        CALL #_vUSB_postTransaction ; |476| 
                                        ; call occurs [#_vUSB_postTransaction]	; |476| 
	.line	11
        MOV #2, *SP(#8) ; |477| 
	.line	12
        B L25     ; |478| 
                                        ; branch occurs	; |478| 
L24:    
	.line	18
        MOV #1, *SP(#8) ; |484| 
L25:    
	.line	21
        MOV *SP(#8), T0 ; |487| 
	.line	22
        AADD #9, SP ; |487| 
        RET       ; |487| 
                                        ; return occurs	; |487| 
	.endfunc	488,000000000h,9



	.sect	".text"
	.align 4
	.global	_USB_reqClearFeature
	.sym	_USB_reqClearFeature,_USB_reqClearFeature, 42, 2, 0, $$fake5
	.func	504
;*******************************************************************************
;* FUNCTION NAME: _USB_reqClearFeature                                         *
;*                                                                             *
;*   Function Uses Regs : T0,T1,AR0,XAR0,AR1,XAR1,AR2,XAR2,AR3,XAR3,SP,TC1,M40,*
;*                        SATA,SATD,RDM,FRCT,SMUL                              *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 14 words                                             *
;*                        (2 return address/alignment)                         *
;*                        (12 local values)                                    *
;*******************************************************************************
_USB_reqClearFeature:
	.line	2
;* T0    assigned to _DevNum
	.sym	_DevNum,12, 10, 17, 16, $$fake0
;* AR0   assigned to _USB_Setup
	.sym	_USB_Setup,17, 24, 17, 23, $$fake6
;* AR1   assigned to _hInEp
	.sym	_hInEp,19, 24, 17, 23, $$fake2
;* AR2   assigned to _hOutEp
	.sym	_hOutEp,21, 24, 17, 23, $$fake2
	.sym	_DevNum,0, 10, 1, 16, $$fake0
	.sym	_USB_Setup,2, 24, 1, 23, $$fake6
	.sym	_hInEp,4, 24, 1, 23, $$fake2
	.sym	_hOutEp,6, 24, 1, 23, $$fake2
	.sym	_hEPx,8, 24, 1, 23, $$fake2
	.sym	_Endpt,10, 13, 1, 16
	.sym	_ret_stat,11, 10, 1, 16, $$fake5
        AADD #-13, SP
        MOV XAR2, dbl(*SP(#6))
        MOV XAR1, dbl(*SP(#4))
        MOV XAR0, dbl(*SP(#2))
        MOV T0, *SP(#0) ; |505| 
	.line	5
        MOV #2, *SP(#11) ; |508| 
	.line	8
        B L29     ; |511| 
                                        ; branch occurs	; |511| 
L26:    
	.line	13
        MOV dbl(*SP(#2)), XAR3
        MOV uns(low_byte(*AR3(short(#4)))), AR1 ; |516| 
        MOV AR1, *SP(#10) ; |516| 
	.line	15

        MOV AR1, T1
||      MOV #0, T0

        CALL #_vUSB_epNumToHandle ; |518| 
                                        ; call occurs [#_vUSB_epNumToHandle]	; |518| 
        MOV XAR0, dbl(*SP(#8))
	.line	17
        MOV dbl(*SP(#8)), XAR0
        CALL #_vUSB_clearEndptStall ; |520| 
                                        ; call occurs [#_vUSB_clearEndptStall]	; |520| 
	.line	18
        B L30     ; |521| 
                                        ; branch occurs	; |521| 
L27:    
	.line	23
        MOV #0, T1
        MOV #0, T0
        CALL #_vUSB_setRemoteWakeup ; |526| 
                                        ; call occurs [#_vUSB_setRemoteWakeup]	; |526| 
	.line	24
        B L30     ; |527| 
                                        ; branch occurs	; |527| 
L28:    
	.line	30
        MOV #1, *SP(#11) ; |533| 
	.line	31
        B L30     ; |534| 
                                        ; branch occurs	; |534| 
L29:    
	.line	8
        MOV dbl(*SP(#2)), XAR3
        MOV *AR3(short(#3)), AR1 ; |511| 
        BCC L26,AR1 == #0 ; |511| 
                                        ; branch occurs	; |511| 
        MOV #1, AR2

        CMPU AR1 == AR2, TC1 ; |511| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L27,TC1 ; |511| 
                                        ; branch occurs	; |511| 
        B L28     ; |511| 
                                        ; branch occurs	; |511| 
L30:    
	.line	35
        MOV *SP(#11), T0 ; |538| 
	.line	36
        AADD #13, SP ; |538| 
        RET       ; |538| 
                                        ; return occurs	; |538| 
	.endfunc	539,000000000h,13



	.sect	".text"
	.align 4
	.global	_USB_reqGetStatus
	.sym	_USB_reqGetStatus,_USB_reqGetStatus, 42, 2, 0, $$fake5
	.func	555
;*******************************************************************************
;* FUNCTION NAME: _USB_reqGetStatus                                            *
;*                                                                             *
;*   Function Uses Regs : AC0,AC1,T0,T1,AR0,XAR0,AR1,XAR1,AR2,XAR2,AR3,XAR3,SP,*
;*                        CARRY,TC1,M40,SATA,SATD,RDM,FRCT,SMUL                *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 14 words                                             *
;*                        (2 return address/alignment)                         *
;*                        (12 local values)                                    *
;*******************************************************************************
_USB_reqGetStatus:
	.line	2
;* T0    assigned to _DevNum
	.sym	_DevNum,12, 10, 17, 16, $$fake0
;* AR0   assigned to _USB_Setup
	.sym	_USB_Setup,17, 24, 17, 23, $$fake6
;* AR1   assigned to _hInEp
	.sym	_hInEp,19, 24, 17, 23, $$fake2
;* AR2   assigned to _hOutEp
	.sym	_hOutEp,21, 24, 17, 23, $$fake2
	.sym	_DevNum,0, 10, 1, 16, $$fake0
	.sym	_USB_Setup,2, 24, 1, 23, $$fake6
	.sym	_hInEp,4, 24, 1, 23, $$fake2
	.sym	_hOutEp,6, 24, 1, 23, $$fake2
	.sym	_hEPx,8, 24, 1, 23, $$fake2
	.sym	_Endpt,10, 13, 1, 16
	.sym	_ret_stat,11, 10, 1, 16, $$fake5
        AADD #-13, SP
        MOV XAR2, dbl(*SP(#6))
        MOV XAR1, dbl(*SP(#4))
        MOV XAR0, dbl(*SP(#2))
        MOV T0, *SP(#0) ; |556| 
	.line	5
        MOV #3, *SP(#11) ; |559| 
	.line	7
        B L35     ; |561| 
                                        ; branch occurs	; |561| 
L31:    
	.line	11
        MOV #0, T0
        CALL #_vUSB_getRemoteWakeupStat ; |565| 
                                        ; call occurs [#_vUSB_getRemoteWakeupStat]	; |565| 
        MOV *(#_usbCurDevStat), AC0 ; |565| 
        MOV T0, AC1 ; |565| 
        OR AC1 << #1, AC0 ; |565| 
        MOV AC0, *(#(_gen_purpose_buffer+1)) ; |565| 
	.line	12
        MOV #0, T1
        AMOV #_gen_purpose_buffer, XAR1 ; |566| 
        MOV dbl(*SP(#4)), XAR0
        MOV #2, T0
        CALL #_vUSB_postTransaction ; |566| 
                                        ; call occurs [#_vUSB_postTransaction]	; |566| 
	.line	13
        B L36     ; |567| 
                                        ; branch occurs	; |567| 
L32:    
	.line	18
        MOV *(#_usbCurIntrfcStat), AR1 ; |572| 
        MOV AR1, *(#(_gen_purpose_buffer+1)) ; |572| 
	.line	19
        MOV dbl(*SP(#4)), XAR0
        MOV #0, T1
        MOV #2, T0
        AMOV #_gen_purpose_buffer, XAR1 ; |573| 
        CALL #_vUSB_postTransaction ; |573| 
                                        ; call occurs [#_vUSB_postTransaction]	; |573| 
	.line	20
        B L36     ; |574| 
                                        ; branch occurs	; |574| 
L33:    
	.line	25
        MOV dbl(*SP(#2)), XAR3
        MOV uns(low_byte(*AR3(short(#4)))), AR1 ; |579| 
        MOV AR1, *SP(#10) ; |579| 
	.line	26

        MOV AR1, T1
||      MOV #0, T0

        CALL #_vUSB_epNumToHandle ; |580| 
                                        ; call occurs [#_vUSB_epNumToHandle]	; |580| 
        MOV XAR0, dbl(*SP(#8))
	.line	27
        MOV dbl(*SP(#8)), XAR0
        CALL #_vUSB_getEndptStall ; |581| 
                                        ; call occurs [#_vUSB_getEndptStall]	; |581| 
        MOV T0, *(#(_gen_purpose_buffer+1)) ; |581| 
	.line	28
        AMOV #_gen_purpose_buffer, XAR1 ; |582| 
        MOV dbl(*SP(#4)), XAR0
        MOV #0, T1
        MOV #2, T0
        CALL #_vUSB_postTransaction ; |582| 
                                        ; call occurs [#_vUSB_postTransaction]	; |582| 
	.line	29
        B L36     ; |583| 
                                        ; branch occurs	; |583| 
L34:    
	.line	36
        MOV #1, *SP(#11) ; |590| 
	.line	37
        B L36     ; |591| 
                                        ; branch occurs	; |591| 
L35:    
	.line	7
        MOV dbl(*SP(#2)), XAR3
        MOV *AR3(short(#1)), AR1 ; |561| 
        SUB #128, AR1, AR2 ; |561| 
        BCC L31,AR2 == #0 ; |561| 
                                        ; branch occurs	; |561| 
        MOV #1, AR1

        CMPU AR2 == AR1, TC1 ; |561| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L32,TC1 ; |561| 
                                        ; branch occurs	; |561| 
        MOV #2, AR1

        CMPU AR2 == AR1, TC1 ; |561| 
||      NOP       ; 	avoids Silicon Exception CPU_24

        BCC L33,TC1 ; |561| 
                                        ; branch occurs	; |561| 
        B L34     ; |561| 
                                        ; branch occurs	; |561| 
L36:    
	.line	41
        MOV *SP(#11), T0 ; |595| 
	.line	42
        AADD #13, SP ; |595| 
        RET       ; |595| 
                                        ; return occurs	; |595| 
	.endfunc	596,000000000h,13



	.sect	".text"
	.align 4
	.global	_USB_reqSetFeature
	.sym	_USB_reqSetFeature,_USB_reqSetFeature, 42, 2, 0, $$fake5
	.func	612
;*******************************************************************************
;* FUNCTION NAME: _USB_reqSetFeature                                           *
;*                                                                             *
;*   Function Uses Regs : T0,T1,AR0,XAR0,AR1,XAR1,AR2,XAR2,AR3,XAR3,SP,TC1,M40,*
;*                        SATA,SATD,RDM,FRCT,SMUL                              *
;*   Stack Frame        : Compact (No Frame Pointer, w/ debug)                 *
;*   Total Frame Size   : 14 words                                             *
;*                        (2 return address/alignment)                         *
;*                        (12 local values)                                    *
;*******************************************************************************
_USB_reqSetFeature:
	.line	2
;* T0    assigned to _D

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -