亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbcmd.asm

?? SL811HS的參考源代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;----------------------------------------------------------------------------
;   Version :    0.11
;   Copyright:   (c)1997-1998, ScanLogic corporation
;   Compiler:    2500 A.D. 8051 Macro Assembler V4.00g
;
;   Revision:    May/22/97        SNguyen                     Created
;                Jun/09/98        SNguyen                     Updated
;
;                  - Add support on DMA (EP3) for ReadFile Host
;                  - Add support on EP2 for WriteFile from Host
;                  - Add support on EP1 for ReadFile from Host
;----------------------------------------------------------------------------
;  Register Usage:
;   Global:
;     R3-R6 registers are not used
;     R7 = USB address from host
;   Local:
;     R1-R0: General usage registers
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;SL11/SL811S ISR using Polling the SL11/SL811S Interrupt bit
;    - Check all end point start here.
;----------------------------------------------------------------------------
ChkEndPoints:
    Poll_IRQ

SL11Int:                        ;this is a entry of ISR
    sRead   IntStatus
    anl     a,#ReadMask
    jz      sIntExit            ;EXIT the SL11Int Subroutine

    jnb     acc.6,CheckEP0
    acall   SL11Init            ;reset SL11/SL811S Chip
sIntExit:
    mEXIT

;--------------------------------------------------------------------------
;Process command from host for EndPoint 0
;-------------------------------------------------------------------------
CheckEP0:
    jb      acc.0,GotEP0        ;Chk if EP0 int goto GotEP0
    ajmp    CheckOther		;check other interrupts

GotEP0:
    sWrite  IntStatus,01h       ;Clr the EP0 int.
    sRead   EP0Counter
    mov     R0,a                ;Compare if base-length equals to
    sRead   EP0XferLen          ;transfer length.
    clr     c
    subb    a,R0                ;R0 = sread(2)-sread(4)
    jz      SetReady            ;if R0==0 goto SetReady
    mov     R0,a                    

    sRead   EP0Control          ;Chk if last packet is Write.
    jnb     acc.2,ChkPacket     ;if bit 2 is clear goto check packet
SetReady:                       
    acall   EP0Receive          ;Set Ready to receive cmd from host
    mEXIT

;-------------------------------------------------------------------------
ChkPacket:
    sRead   EP0Status           ;Chk if setup packet.
    jb      acc.4,ChkPacketSize ;Otherwise It is a vendor try to transfer
    ajmp    SendNullPKG         ;send null package and Exit

;-------------------------------------------------------------------------
SetStall:
    sWrite  EP0Control,23h
    mEXIT

;--------------------------------------------------------------------------
;EndPoint 0, Configuration command table
;--------------------------------------------------------------------------
ConfCmdTable:
    ajmp    GetStatus           ;GET_STATUS    = 0
    ajmp    ClearFeature        ;CLEAR_FEATURE = 1
    ajmp    SendNullPKG         ;RESERVE0      = 2
    ajmp    SetFeature          ;SET_FEATURE   = 3
    ajmp    SendNullPKG         ;RESERVE1      = 4
    ajmp    SetAddress          ;SET_ADDRESS   = 5
    ajmp    GetDescriptor       ;GET_DESCRIPTOR= 6
    ajmp    SetDescriptor       ;SET_DESCRIPTOR= 7
    ajmp    GetConfig           ;GET_CONFIG    = 8
    ajmp    SetConfig           ;SET_CONFIG    = 9
    ajmp    GetInterface        ;GET_INTERFACE = ah
    ajmp    SetInterface        ;SET_INTERFACE = bh

;--------------------------------------------------------------------------
;Check Packet size in EndPoint 0
;--------------------------------------------------------------------------
ChkPacketSize:
    clr     c
    mov     a,R0
    subb    a,#08h              ;R0<8 ? goto ignore small packet
    jc      SetStall            ;Abort and return

;--------------------------------------------------------------------------
;EndPoint 0: Process Configuration command
;--------------------------------------------------------------------------
    acall   GetCmd              ;get 8 bytes command from host

    mov     R0,wLength0         ;get host transfer length
    mov     a,R0                ;R0 = current length size of the host
    mov     b,#EP0XferLen
    acall   SL11Write           ;Setup EP0 Xfer length for re-send package

    clr     c
    jb      bmRequest.6,VendorCmd ;check Vendor Specific command

    mov     a,bRequest
    subb    a,#SET_INTERFACE+1  ;a<SET_INTERFACE then do ConfCmdTable
    jc      DoConfCmdTable

VendorCmd:
    mov     a,bRequest
    subb    a,#40h              ;command offset
    mov     dptr,#CmdTable      ;setup command table
    anl     a,#fh               ;maximun 16 commands
    rl      a
    jmp     @a+dptr             ;execute the command table and exit

DoConfCmdTable:
    mov     dptr,#ConfCmdTable  ;setup command table
    mov     a,bRequest          ;check command index
    rl      a
    jmp     @a+dptr             ;execute the command table and exit

;--------------------------------------------------------------------------
;Chapter 9: Get Status command
; bmRequest
;--------------------------------------------------------------------------
GetStatus:
    mov     a,bmRequest
    cjne    a,#82h,elseChk82
Chk82:
    mov     a,wIndex0		;endpoint number
    anl     a,#0fh	        ;a = (a&0x0f)*16 address EPxControl
    swap    a
    mov     b,a
    acall   SL11Read            ;read EPx Control register
    jnb     acc.5,elseChk82     ;if STALL
    sWrite  EP0Buf,1h           ; Send 1
    ajmp    SendStatus
elseChk82:
    sWrite  EP0Buf,0h  
SendStatus: 
    sWrite  EP0Buf+1,0h
    sjmp    Send47h

;--------------------------------------------------------------------------
;Chapter 9: All other unimplemented commands
;--------------------------------------------------------------------------
SetConfig:
    mov    ConfigReg,wValue0
SetDescriptor:
SetInterface:
SendNullPKG:
    sWrite  EP0XferLen,0
Send47h:
    acall   EP0Send             ;sWrite EP0Control,47h
    mEXIT

;--------------------------------------------------------------------------
;Chapter 9: SetFeature command
; bmRequest
;--------------------------------------------------------------------------
SetFeature:
    mov     a,bmRequest
    cjne    a,#02h,SendNullPKG
    mov     a,wIndex0
    anl     a,#0fh	        ;a = (a&0x0f)*16 address EPxControl
    swap    a
    mov     b,a
    acall   SL11Read            ;Read EPxControl of A
    orl     a,#20h
    acall   SL11Write           ;Set Stall
    mov     a,b
    add     a,#08h              ;Read EPxControl of B
    mov     b,a
    acall   SL11Read
    orl     a,#20h
    acall   SL11Write
    sjmp    SendNullPKG         ;toggle data0 and exit

;--------------------------------------------------------------------------
;Chapter 9: ClearFeature command
; bmRequestType
;--------------------------------------------------------------------------
ClearFeature:
    mov     a,bmRequest
    cjne    a,#02h,SendNullPKG
    mov     a,wIndex0
    anl     a,#0fh	        ;a=(a&0x0f)*16 address of EPxControl
    swap    a
    mov     b,a
    acall   SL11Read            ;clear stall from endpoint A
    anl     a,#0dfh
    acall   SL11Write
    mov     a,b
    add     a,#08h              ;clear stall from endpoint B
    mov     b,a
    acall   SL11Read
    anl     a,#0dfh
    acall   SL11Write
    ajmp    SendNullPKG

;--------------------------------------------------------------------------
;Chapter 9: GetInterface command
;--------------------------------------------------------------------------
GetInterface:
    sWrite  EP0Buf,0
    ajmp    GetCommon 

;--------------------------------------------------------------------------
;Chapter 9: GetConfig command
;--------------------------------------------------------------------------
GetConfig:
    mov     a,ConfigReg
    mov     b,#EP0Buf
    acall   SL11Write
GetCommon:
    ajmp    Send47h           

;--------------------------------------------------------------------------
;Chapter 9: GetDescriptor command
;--------------------------------------------------------------------------
GetDescriptor:
    mov     a,wValue1	       ;Get the Descriptor type
    cjne    a,#DEVICE,ChkConfiguration
    ajmp    DoDevice
ChkConfiguration:
    cjne    a,#CONFIGURATION,ChkInterface
    ajmp    DoConfiguration
ChkInterface:
    cjne    a,#INTERFACE,ChkEndPoint
    ajmp    DoInterface
ChkEndPoint:
    cjne    a,#ENDPOINT,GetDefault
    ajmp    DoEndPoint
GetDefault:
    ajmp    SendNullPKG

;--------------------------------------------------------------------------
;Chapter 9: Setup to transfer the Device table
;--------------------------------------------------------------------------
DoDevice:
    mov     b,#12h
    acall   Min
    mov     dptr,#SL_DEV
SendDescriptor:
    acall   EP0SendPkg          ;Send package from dptr to host
    mEXIT                     

;--------------------------------------------------------------------------
;Chapter 9: Setup to transfer the Configuration table + EndPoints table
;--------------------------------------------------------------------------
DoConfiguration:
    mov     b,#TotalLen
    acall   Min
    mov     dptr,#SL_CONF
    ajmp    SendDescriptor
DoInterface:
    mov     b,#09h
    acall   Min
    mov     dptr,#SL_INTF
    ajmp    SendDescriptor
DoEndPoint:
    mov     b,#7                ;Setup the length
    acall   Min
    mov     a,wValue0           ;read endpoint number from buffer
    cjne    a,#1,ChkEndPoint2
    ajmp    SetEndPoint1
ChkEndPoint2:
    cjne    a,#2,ChkEndPoint3
    ajmp    SetEndPoint2
ChkEndPoint3:
    cjne    a,#3,EndPointOther
    ajmp    SetEndPoint3
EndPointOther:
    ajmp    SendNullPKG
SetEndPoint1:
    mov     dptr,#SL_EP1
    ajmp    SendDescriptor
SetEndPoint2:
    mov     dptr,#SL_EP2
    ajmp    SendDescriptor
SetEndPoint3:
    mov     dptr,#SL_EP3
    ajmp    SendDescriptor

;--------------------------------------------------------------------------
;Chapter 9: SetAddress command
;--------------------------------------------------------------------------
SetAddress:                                                                            
    mov     R7,wValue0          ;r7=host assign the address
    acall   EP0Send             ;send ACK

ChkAddress:                     ;program will loop here until
    sRead   IntStatus           ;the set USBAdd done

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情图区综合网| 日韩欧美高清一区| 久久成人18免费观看| 中文字幕一区二区三区精华液| 色综合天天综合在线视频| 精品一区精品二区高清| 一区二区三区欧美日韩| 国产情人综合久久777777| 欧美性猛交xxxx黑人交| 粉嫩在线一区二区三区视频| 午夜精品久久久久久久久| 国产精品毛片大码女人| 久久综合丝袜日本网| 5月丁香婷婷综合| 欧美日韩精品一区视频| yourporn久久国产精品| 国产高清不卡一区二区| 免费看精品久久片| 日日摸夜夜添夜夜添亚洲女人| 亚洲欧洲精品成人久久奇米网| 精品欧美久久久| 日韩一区二区视频在线观看| 欧美男生操女生| 欧美日韩一区二区三区视频| 欧洲一区二区三区在线| 色哟哟欧美精品| 欧美性xxxxxx少妇| 欧美性感一区二区三区| 欧美日韩一级黄| 欧美私模裸体表演在线观看| 欧美日韩高清影院| 欧美电影免费观看完整版| 欧美一二三区在线| 久久久精品综合| 国产精品美女一区二区| 亚洲激情校园春色| 日韩高清在线观看| 精品一区二区成人精品| 亚洲免费av高清| 三级成人在线视频| 国产很黄免费观看久久| 成人av在线电影| 欧美日本国产视频| 国产欧美精品一区二区色综合 | 国产精品久线观看视频| 国产精品成人一区二区艾草 | 亚洲成av人影院| 免费观看一级特黄欧美大片| 国产精品伊人色| 日韩欧美一级特黄在线播放| 日韩精品中文字幕一区| 中文字幕精品在线不卡| 中文字幕av不卡| 亚洲电影第三页| av在线不卡网| 欧美电影精品一区二区| 亚洲精品免费在线观看| 精品在线一区二区三区| 欧美综合欧美视频| 欧美激情中文字幕一区二区| 丝袜美腿一区二区三区| 成人福利视频在线| 精品第一国产综合精品aⅴ| 亚洲一区二区四区蜜桃| 成人激情免费网站| 国产欧美日本一区视频| 国产制服丝袜一区| 久久综合久久综合久久| 日本视频一区二区三区| 欧美日韩在线三区| 一区二区在线观看视频 | 国产v综合v亚洲欧| 日韩欧美一级在线播放| 麻豆中文一区二区| 欧美xxxx老人做受| 狠狠色综合色综合网络| 日韩欧美国产午夜精品| 极品少妇xxxx精品少妇偷拍| 91精品国产综合久久福利| 国产精品一区二区在线观看不卡| 欧美日韩大陆在线| 日韩国产精品久久久| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区二区在线免费观看| 精品福利一二区| 国产·精品毛片| 亚洲精品五月天| 在线播放一区二区三区| 国产乱人伦偷精品视频免下载| 欧美激情一区不卡| 色视频成人在线观看免| 亚洲成av人片在线观看| 日韩精品专区在线影院重磅| 国产凹凸在线观看一区二区| 亚洲精品国产一区二区精华液 | 亚洲免费大片在线观看| 欧美日韩精品专区| 国产成人一区二区精品非洲| 最好看的中文字幕久久| 欧美一区二区观看视频| 99vv1com这只有精品| 日日夜夜精品免费视频| 国产精品热久久久久夜色精品三区| 91蝌蚪porny| 国产成人av影院| 亚洲国产日韩av| 亚洲特级片在线| 中文字幕一区二区三区蜜月| 色国产精品一区在线观看| 琪琪久久久久日韩精品| 精品福利在线导航| 欧美国产精品一区| 粉嫩aⅴ一区二区三区四区| 丝袜诱惑制服诱惑色一区在线观看 | 美女视频网站久久| 伊人开心综合网| 国产精品久久久久aaaa樱花| 日韩午夜在线观看| 欧美日韩国产123区| 欧美日韩性生活| 欧洲精品视频在线观看| 成人av免费观看| 成人免费毛片a| 99久久综合99久久综合网站| 国产成人aaaa| www.色精品| 91一区二区三区在线播放| 成人aa视频在线观看| 风间由美一区二区三区在线观看 | 97久久超碰国产精品电影| 国产精品一区2区| 国产精品1区2区3区| 精品亚洲成a人在线观看| 精品无人区卡一卡二卡三乱码免费卡| 视频一区二区国产| 蜜臀va亚洲va欧美va天堂| 狠狠网亚洲精品| 99精品黄色片免费大全| 色综合色狠狠综合色| 91久久精品网| 精品国产亚洲在线| 国产精品免费久久久久| 亚洲美女视频一区| 偷窥国产亚洲免费视频| 国产综合久久久久久久久久久久 | 国产成人午夜高潮毛片| 91在线高清观看| 欧美伦理电影网| 国产欧美精品一区二区色综合| 国产精品久久久久久久久晋中| 亚洲图片欧美一区| 国内精品免费**视频| 欧美无砖专区一中文字| 久久综合狠狠综合久久综合88| 亚洲日本在线a| 精品一区二区三区免费视频| 91精品福利在线| 国产精品视频一二| 日韩影院在线观看| 日本韩国一区二区三区视频| 精品国产乱码久久久久久影片| 国产精品天美传媒| 免费在线观看日韩欧美| 一本到一区二区三区| 久久精品一区二区三区不卡| 性做久久久久久| 99精品国产视频| 国产网红主播福利一区二区| 蜜桃视频在线观看一区| 欧美二区在线观看| 亚洲午夜视频在线| 97久久超碰国产精品电影| 日本一区二区视频在线| 国产精品一区二区久久精品爱涩 | 欧美第一区第二区| 美女www一区二区| 日韩免费电影一区| 麻豆精品在线视频| 日韩一级欧美一级| 日本在线播放一区二区三区| 色噜噜夜夜夜综合网| 亚洲欧美成人一区二区三区| 91免费看片在线观看| 国产亚洲视频系列| 午夜天堂影视香蕉久久| 色欧美日韩亚洲| 亚洲国产日韩精品| 欧美videossexotv100| 狠狠色狠狠色合久久伊人| 久久综合视频网| 成人激情动漫在线观看| 亚洲午夜激情av| 欧美人妇做爰xxxⅹ性高电影 | 欧美精选在线播放| 精品一区二区三区的国产在线播放 | 欧美精品一区二区三区在线| 懂色av一区二区三区免费看| 亚洲最大成人网4388xx| 欧美日韩激情在线| 成人中文字幕合集|