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

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

?? descript.asm

?? USB HID mouse device firmware source code using PIC s MCU
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;                            Software License Agreement
;
; The software supplied herewith by Microchip Technology Incorporated (the "Company")
; for its PICmicro(r) Microcontroller is intended and supplied to you, the Company's
; customer, for use solely and exclusively on Microchip PICmicro Microcontroller
; products.
;
; The software is owned by the Company and/or its supplier, and is protected under
; applicable copyright laws. All rights are reserved. Any use in violation of the
; foregoing restrictions may subject the user to criminal sanctions under applicable
; laws, as well as to civil liability for the breach of the terms and conditions of
; this license.
;
; THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES, WHETHER EXPRESS,
; IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE
; COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
; CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
;
; ###############################################################################
;   filename:           DESCRIPT.ASM
;
; This file contains a set of descriptors for a standard mouse.  
;
; ###############################################################################
;
;   Author:             Dan Butler and Reston Condit
;   Company:            Microchip Technology Inc
;
;   Revision:           1.21
;   Date:               08 August 2001
;   Assembled using     MPASM 2.61
;   Revision History:
;   23 August 2000      DZB Changed descriptor pointers to 16 bits.
;   24 August 2000      DZB Moved EP1 & 2 configuration from USBReset
;                           to Set_Configuration to implement requirement in
;                           USB V1.1 spec paragraph 5.3.1.2
;   28 August 2000      DZB Force data toggle on OUT packets in PutUSB
;   20 March 2001       DZB Reduced use of common RAM
;   20 March 2001       DZB Put and Get use their own temp variable (GPtemp) to
;                           avoid collisions with the ISR's use of temp.
;   29 March 2001       DZB Fixed saving of bank bits in GetUSB
;   02 May 2001         DZB Implemented SHOW_ENUM_STATUS to show enumeration
;                           status on the PORTB LEDs: 0- Powered, 1- Default,
;                           2- addressed, 3- configured, 4- sleep, 
;                           5- EP0 Activity, 6- EP1 Activity, 7- EP2 Activity
;   03 August 2001      RAC Made distinct GetEP and PutEP macros for endpoints 1 
;                           and 2.  These functions are GetEP1, GetEP2, PutEP1, and 
;                           PutEP2.  Instances of the these macros are created in
;                           usb_ch9.asm.
;   08 August 2001      RAC Corrected various banking and paging issues.
;   15 August           RAC Added Report_desc_index function in descript.asm.
;                           This function allows more than one report descriptor
;                           to be used.  
;
;################################################################################
;
;   include files:
;       P16C765.inc     Rev 1.00
;       usb_defs.inc    Rev 1.00
;
;################################################################################
#include <p16C765.inc>
#include "usb_defs.inc"

USBBANK code
    global  Config_desc_index
    global  Report_desc_index
    global  Descriptions
    global  string_index
    global  DeviceDescriptor
    global  ReportDescriptor
    global  ReportDescriptorLen
    global  String0
    global  String0_end
    global  StringDescriptions
    global  HID_Descriptor

    extern  EP0_start
    extern  temp    ; temp var used in get config index
    extern  temp2   ; another temp, in bank2 

; ******************************************************************
; Given a configuration descriptor index, returns the beginning address
; of the descriptor within the descriptions table
; ******************************************************************
Config_desc_index
    movwf   temp
    movlw   HIGH CDI_start
    movwf   PCLATH
    movlw   low  CDI_start
    addwf   temp,w
    btfsc   STATUS,C
    incf    PCLATH,f
    movwf   PCL
CDI_start           ; this table calculates the offsets for each configuration
    retlw   low  Config1       ; descriptor from the beginning
    retlw   high Config1       ; of the table, effectively
    ; more configurations can be added here
    ; retlw   low Config2
    ; retlw   high Config2
    ; etc....

; ******************************************************************
; Given a report descriptor index, returns the beginning address
; of the descriptor within the descriptions table
; ******************************************************************
Report_desc_index
    movwf   temp
    movlw   HIGH RDI_start
    movwf   PCLATH
    movlw   low  RDI_start
    addwf   temp,w
    btfsc   STATUS,C
    incf    PCLATH,f
    movwf   PCL
RDI_start       ; this table calculates the offsets for each report
    retlw   low  ReportDescriptorLen  ; descriptor from the beginning
    retlw   high ReportDescriptorLen  ; of the table, effectively
    ; more reports can be added here
    ; retlw   low  ReportDescriptorLen2
    ; retlw   high ReportDescriptorLen2
    ; etc....

; ******************************************************************
; This table is polled by the host immediately after USB Reset has been released.
; This table defines the maximum packet size EP0 can take.
; See section 9.6.1 of the Rev 1.0 USB specification.
; These fields are application DEPENDENT. Modify these to meet
; your specifications.
; the offset is passed in P0 and P1 (P0 is low order byte).
; ******************************************************************
Descriptions
    banksel EP0_start
    movf    EP0_start+1,w
    movwf   PCLATH
    movf    EP0_start,w
    movwf   PCL

DeviceDescriptor
StartDevDescr
    retlw   0x12    ; bLength    Length of this descriptor
    retlw   0x01    ; bDescType This is a DEVICE descriptor
    retlw   0x00    ; bcdUSB    USB revision 1.10 (low byte)
    retlw   0x01    ; high byte
    retlw   0x00    ; bDeviceClass    zero means each interface operates independently
    retlw   0x00    ; bDeviceSubClass
    retlw   0x00    ; bDeviceProtocol
    retlw   0x08    ; bMaxPacketSize0 - inited in UsbInit()
    retlw   0xD8    ; idVendor - 0x04D8 is Microchip Vendor ID
    retlw   0x04    ; high order byte
    retlw   0x01    ; idProduct
    retlw   0x00
    retlw   0x41    ; bcdDevice
    retlw   0x04
    retlw   0x01    ; iManufacturer
    retlw   0x02    ; iProduct
    retlw   0x00    ; iSerialNumber - 3
    retlw   NUM_CONFIGURATIONS    ; bNumConfigurations

; ******************************************************************
; This table is retrieved by the host after the address has been set.
; This table defines the configurations available for the device.
; See section 9.6.2 of the Rev 1.0 USB specification (page 184).
; These fields are application DEPENDENT. 
; Modify these to meet your specifications.
; ******************************************************************
Config1
    retlw   0x09    ; bLength    Length of this descriptor
    retlw   0x02    ; bDescType    2=CONFIGURATION
    retlw   EndConfig1 - Config1
    retlw   0x00
    retlw   0x01    ; bNumInterfaces    Number of interfaces
    retlw   0x01    ; bConfigValue    Configuration Value
    retlw   0x04    ; iConfig    String Index for this config = #01
    retlw   0xA0    ; bmAttributes    attributes - bus powered
    retlw   0x32    ; MaxPower    self-powered draws 0 mA from the bus.
Interface1
    retlw   0x09    ; length of descriptor
    retlw   INTERFACE
    retlw   0x00    ; number of interface, 0 based array
    retlw   0x00    ; alternate setting
    retlw   0x01    ; number of endpoints used in this interface
    retlw   0x03    ; interface class - assigned by the USB
    retlw   0x01    ; boot device
    retlw   0x02    ; interface protocol - mouse
    retlw   0x05    ; index to string descriptor that describes this interface
HID_Descriptor
    retlw   0x09    ; descriptor size (9 bytes)
    retlw   0x21    ; descriptor type (HID)
    retlw   0x00
    retlw   0x01    ; HID class release number (1.00)
    retlw   0x00    ; Localized country code (none)
    retlw   0x01    ; # of HID class descriptor to follow (1)
    retlw   0x22    ; Report descriptor type (HID)
    retlw   (end_ReportDescriptor - ReportDescriptor)
    retlw   0x00
Endpoint1
    retlw   0x07    ; length of descriptor
    retlw   ENDPOINT
    retlw   0x81    ; EP1, In
    retlw   0x03    ; Interrupt
    retlw   0x04    ; max packet size (4 bytes) low order byte
    retlw   0x00    ; max packet size (4 bytes) high order byte
    retlw   0x0A    ; polling interval (10ms)
EndConfig1

ReportDescriptorLen
    retlw   low     (end_ReportDescriptor-ReportDescriptor)

ReportDescriptor
    retlw   0x05
    retlw   0x01    ; usage page (generic desktop)
    retlw   0x09
    retlw   0x02    ; usage (mouse)
    retlw   0xA1
    retlw   0x01    ; collection (application)
    retlw   0x09
    retlw   0x01    ;   usage (pointer)
    retlw   0xA1
    retlw   0x00    ;   collection (linked)
    retlw   0x05
    retlw   0x09    ;     usage page (buttons)
    retlw   0x19
    retlw   0x01    ;     usage minimum (1)
    retlw   0x29
    retlw   0x03    ;     usage maximum (3)
    retlw   0x15
    retlw   0x00    ;     logical minimum (0)
    retlw   0x25
    retlw   0x01    ;     logical maximum (1)
    retlw   0x95
    retlw   0x03    ;     report count (3)
    retlw   0x75
    retlw   0x01    ;     report size (1)
    retlw   0x81
    retlw   0x02    ;     input (3 button bits)
    retlw   0x95
    retlw   0x01    ;     report count (1)
    retlw   0x75
    retlw   0x05    ;     report size (5)
    retlw   0x81
    retlw   0x01    ;     input (constant 5 bit padding)
    retlw   0x05
    retlw   0x01    ;     usage page (generic desktop)
    retlw   0x09
    retlw   0x30    ;     usage (X)
    retlw   0x09
    retlw   0x31    ;     usage (Y)
    retlw   0x15
    retlw   0x81    ;     logical minimum (-127)
    retlw   0x25
    retlw   0x7F    ;     logical maximum (127)
    retlw   0x75
    retlw   0x08    ;     report size (8)
    retlw   0x95
    retlw   0x03    ;     report count (2)
    retlw   0x81
    retlw   0x06    ;     input (2 position bytes X & Y)
    retlw   0xC0    ;   end collection
    retlw   0xC0    ; end collection
end_ReportDescriptor

StringDescriptions
    banksel EP0_start
    movf    EP0_start+1,w
    movwf   PCLATH
    movf    EP0_start,w
    movwf   PCL

; ******************************************************************
; Given a configuration descriptor index, returns the beginning address
; of the descriptor within the descriptions table
; ******************************************************************
string_index        ; langid in W reg, string offset in EP0_start
    movwf   temp
    bcf     STATUS,C
    rlf     temp, f
    pagesel langid_index
    call    langid_index
    movwf   temp2
    incf    temp, f
    pagesel langid_index
    call    langid_index
    movwf   temp
    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜私人影院久久久久| 99精品欧美一区二区三区小说 | 日韩欧美国产一区在线观看| 久久综合九色欧美综合狠狠| 亚洲青青青在线视频| 韩日精品视频一区| 91精品国产乱码久久蜜臀| 亚洲日本丝袜连裤袜办公室| 精品一区二区三区在线观看| 欧美午夜不卡在线观看免费| |精品福利一区二区三区| 久久99久久久欧美国产| 91精品国产91久久久久久最新毛片| 国产精品二三区| 国产91丝袜在线播放0| 欧美大片国产精品| 婷婷开心久久网| 在线观看国产日韩| 亚洲人午夜精品天堂一二香蕉| 国产精品白丝av| 久久99精品国产.久久久久| 国产一区二区导航在线播放| 不卡的电视剧免费网站有什么| 日韩一级二级三级| 亚洲va在线va天堂| 欧洲中文字幕精品| 日韩视频在线永久播放| 秋霞国产午夜精品免费视频| 国产精品三级视频| 欧美美女喷水视频| 99热这里都是精品| 伦理电影国产精品| 亚洲免费在线看| 精品久久久久久综合日本欧美 | 亚洲欧美一区二区视频| 欧美色窝79yyyycom| 国产精品77777竹菊影视小说| 亚洲视频1区2区| 久久久99精品免费观看不卡| 欧美丝袜丝nylons| 99re这里只有精品首页| 久久精品噜噜噜成人av农村| 亚洲综合成人在线| 欧美激情一区二区在线| 日韩你懂的电影在线观看| 91丨porny丨国产| 国产不卡视频一区| 精品影院一区二区久久久| 亚洲国产精品久久人人爱| 国产精品久久久久毛片软件| 久久久精品免费网站| 欧美日韩aaaaaa| 欧美午夜片在线看| www.日韩在线| 成人免费观看av| 国产在线播精品第三| 蜜臀av性久久久久蜜臀av麻豆| 亚洲一区二区精品3399| 中文字幕一区二区日韩精品绯色| 欧美成人福利视频| 欧美一区二区三级| 欧美日韩国产一区二区三区地区| 91网上在线视频| 成人动漫精品一区二区| 国产黄色精品网站| 国产美女精品人人做人人爽| 久久精品国产99国产| 免费久久精品视频| 蜜臀av一区二区| 精品一区二区三区在线视频| 蜜臀99久久精品久久久久久软件| 日韩精品一级二级| 日本不卡免费在线视频| 免播放器亚洲一区| 狠狠色丁香九九婷婷综合五月| 麻豆91在线观看| 免费不卡在线观看| 国产一区二区三区在线观看免费| 久久国内精品自在自线400部| 九九精品一区二区| 精品一区二区三区不卡| 韩国av一区二区三区四区| 国产在线视频精品一区| 大尺度一区二区| 91小视频免费看| 欧洲一区二区三区在线| 欧美日韩极品在线观看一区| 欧美一区二区三区爱爱| 久久在线免费观看| 中文字幕视频一区二区三区久| 亚洲视频中文字幕| 亚洲成av人综合在线观看| 免费视频最近日韩| 国产乱理伦片在线观看夜一区| 国产成人精品亚洲777人妖| k8久久久一区二区三区| 欧美在线观看视频在线| 欧美一区二区视频在线观看2020| 欧美v日韩v国产v| 欧美激情一区二区| 亚洲小说春色综合另类电影| 日日摸夜夜添夜夜添亚洲女人| 久久精品国产亚洲5555| av男人天堂一区| 欧美乱熟臀69xxxxxx| 国产亚洲欧洲一区高清在线观看| 亚洲视频资源在线| 日韩av不卡在线观看| 成人视屏免费看| 精品视频在线免费| 国产视频一区二区三区在线观看| 亚洲女人小视频在线观看| 婷婷成人综合网| 国产成人欧美日韩在线电影| 欧美三级蜜桃2在线观看| 久久夜色精品国产噜噜av| 亚洲人吸女人奶水| 韩国v欧美v日本v亚洲v| 欧美在线制服丝袜| 久久蜜桃一区二区| 亚洲成av人影院| 丁香啪啪综合成人亚洲小说| 欧美日韩国产综合一区二区三区| 久久日一线二线三线suv| 亚洲综合免费观看高清完整版在线 | 久久久久久免费毛片精品| 亚洲精品视频免费看| 狠狠色狠狠色综合系列| 欧美日韩一卡二卡| 国产精品女人毛片| 老司机午夜精品99久久| 欧洲av在线精品| 亚洲精品免费一二三区| 国产美女视频91| 制服丝袜成人动漫| 亚洲精品大片www| 国产成人在线视频网址| 日韩欧美一区在线观看| 亚洲精品日日夜夜| 不卡高清视频专区| 精品久久久久一区| 日本视频中文字幕一区二区三区| 一本久久a久久免费精品不卡| 久久精品人人做人人爽97| 日本不卡免费在线视频| 欧美伊人久久久久久久久影院| 国产精品乱码一区二区三区软件 | 中文字幕一区二区三区不卡在线| 精油按摩中文字幕久久| 欧美一卡二卡在线| 五月天视频一区| 欧美私人免费视频| 亚洲综合在线免费观看| 99久久国产综合色|国产精品| 欧美国产一区在线| 国产成人午夜99999| 久久精品一区蜜桃臀影院| 国内精品伊人久久久久av一坑| 5858s免费视频成人| 无吗不卡中文字幕| 欧美精品久久久久久久多人混战 | 日日夜夜免费精品视频| 欧美男同性恋视频网站| 一区二区三区免费网站| 91性感美女视频| 亚洲视频香蕉人妖| 91在线视频18| 亚洲精品视频在线观看网站| 色综合天天做天天爱| 亚洲精品成人少妇| 日本国产一区二区| 亚洲成va人在线观看| 91精品国产综合久久福利| 日韩精品色哟哟| 欧美一区二区福利在线| 久久精品国产亚洲aⅴ| 精品久久久久久久久久久久包黑料 | 免费在线观看一区| 日韩色在线观看| 狠狠色丁香久久婷婷综合_中| 精品成人佐山爱一区二区| 国内精品在线播放| 国产精品嫩草久久久久| 91麻豆产精品久久久久久| 亚洲制服欧美中文字幕中文字幕| 欧美色图12p| 蜜桃视频免费观看一区| 久久影院视频免费| gogo大胆日本视频一区| 亚洲精品成人在线| 日韩区在线观看| 成人美女视频在线观看| 一区二区三区精品| 日韩一二三区视频| 国产suv精品一区二区883| 亚洲精选视频在线| 日韩区在线观看| a在线播放不卡| 日本一区中文字幕| 中文字幕成人av|