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

📄 usb_int.lst

📁 HT82J97滑鼠DEMO程序
💻 LST
字号:
"File: USB_INT.ASM   Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              include		body.inc




   2  0000              include     usbrf1.inc


   3  0000              include     usbFIFO.inc


   4  0000              
   5  0000              extern      FIFO_SendLen    :byte
   6  0000              extern      FIFO_Type       :byte
   7  0000              extern      stall           :byte
   8  0000              
   9  0000              extern      bSend_Continue  :bit        ;has control pipe data to transmitter
  10  0000              extern      bFIFO_Full      :bit
  11  0000              
  12  0000              extern      nCmdIndex       :byte       ;set output or set feature
  13  0000              extern      bsetup_flag     :bit        ;there are setup cmd received   
  14  0000              extern      bDataUpdate_IN     :bit
  15  0000              extern      bDataUpdate_OUT     :bit
  16  0000              extern      bwait_setup     :bit
  17  0000              
  18  0000              extern      FIFO0_Wr_Check  :near       ;usblib1.asm
  19  0000              extern      FIFO0_Rd_Check  :near       ;usblib1.asm
  20  0000              extern      FIFO1_Wr_Check  :near       ;usblib1.asm
  21  0000              extern      FIFO2_Wr_Check  :near       ;usblib1.asm
  22  0000              EXTERN      FIFO2_Rd_Check  :NEAR
  23  0000              
  24  0000              extern      LEN0_Wr_Check   :near       ;usblib1.asm
  25  0000              extern      WriteLen0       :near       ;usblib1.asm
  26  0000              extern      ReadFIFO0       :near       ;usblib1.asm
  27  0000              extern      WriteFIFO0      :near       ;usblib1.asm
  28  0000              extern      WriteFIFO1      :near       ;usblib1.asm
  29  0000              extern      WriteFIFO2      :near       ;usblib1.asm
  30  0000              extern      ReadFIFO2       :near
  31  0000              
  32  0000              extern      StandardRequest :near       ;std6.asm
  33  0000              extern      ClassRequest    :near       ;std6.asm
  34  0000              extern      ReadNextCnf     :near       ;std6.asm
  35  0000              extern      FromUSB         :near       ;serial.asm
  36  0000              extern      ToUSB           :near       ;serial.asm
  37  0000              EXTERN      FromUSB1        :NEAR
  38  0000              
  39  0000              ;wait 3 continuous IN
  40  0000              extern      bhas_data_out_previous  :bit
  41  0000              extern      bhas_data_out_previous1 :bit
  42  0000              extern      bhas_data_out_previous2 :bit
  43  0000              
  44  0000              usbint_var      .section    'data'
  45  0000  00          isr_usb_acc     db          ?
  46  0001  00          isr_usb_status  db          ?
  47  0002  00          isr_usb_mp1     db          ?
  48  0003  00          isr_usb_mp0     db          ?
  49  0004  00          isr_usb_tblp    db          ?
  50  0005  00          int_reg_temp    db          ?           ;for store USB pipe int register
  51  0006              
"File: USB_INT.ASM   Holtek Cross-Assembler  Version 2.86      Page 2

  52  0006              ;**************************************************************************
  53  0006              ;*          External INT subroutine
  54  0006              ;**************************************************************************
  55  0006              
  56  0000              Ext         .Section at 350h 'code'
  57  0000              ;External interrupt service routine
  58  0000              EXT_START:
  59  0000              ;           clr             wdt 
  60  0000              ;           MOV             ISR_USB_ACC,A           ;Save ACC
  61  0000              ;           MOV             A,STATUS                ;Save STATUS
  62  0000              
  63  0000  0080     R              MOV             isr_usb_status,A        
  64  0001              
  65  0001  0F01                    MOV             A,USB_REG_BANK          ;Set bank pointer to USB control
  66  0002  0084                    MOV             BP,A                    ;register bank  
  67  0003              
  68  0003  0703                    MOV             A,MP1
  69  0004  0080     R              MOV             isr_usb_mp1,A
  70  0005  0701                    mov             a,mp0
  71  0006  0080     R              mov             isr_USB_mp0,a
  72  0007  0707                    mov             a,tblp
  73  0008  0080     R              mov             isr_usb_tblp,a
  74  0009              
  75  0009  348B                    clr             intc.1
  76  000A  300B                    set             intc.0
  77  000B              
  78  000B              ;-----------------------------------------------------------------------------------
  79  000B  381A                    snz             suspend_line
  80  000C  2B70                    jmp             check_Access_FIFO
  81  000D              
  82  000D  0FFC                    mov             a,11111100b             ;clear Int_reg within suspend state
  83  000E  069B                    andm            a,Int_reg
  84  000F              
  85  000F  3D9A                    sz              resume_line
  86  0010  2B62                    jmp             turn_on_usb
  87  0011              
  88  0011              ;turn_off_usb:
  89  0011  2B63                    jmp             Exit_of_Ext_start
  90  0012              turn_on_usb:
  91  0012  319C                    set             on_usb_clk              ;turn on USB CLK    
  92  0013              ;-----------------------------------------------------------------------------------
  93  0013              ;ExitExt:
  94  0013              Exit_of_EXT_START:
  95  0013  0700     R              mov             a,isr_usb_tblp
  96  0014  0087                    mov             tblp,a
  97  0015  0700     R              mov             a,isr_usb_mp0
  98  0016  0081                    mov             mp0,a
  99  0017  0700     R              MOV             A,isr_usb_mp1
 100  0018  0083                    MOV             MP1,A   
 101  0019  1F04                    clr             BP                      ;register bank  
 102  001A              
 103  001A  0700     R              MOV             A,Isr_usb_status        ;Restore STATUS
 104  001B  008A                    MOV             STATUS,A                ;
 105  001C  0700     R              MOV             A,isr_usb_acc           ;Restore ACC
 106  001D  340B                    clr             intc.0
 107  001E  308B                    set             intc.1
 108  001F  0004                    RETI   
 109  0020              ;-----------------------------------------------------------------------------------
 110  0020              check_Access_FIFO:
 111  0020  319C                    set             on_usb_clk              ;turn on USB CLK    
"File: USB_INT.ASM   Holtek Cross-Assembler  Version 2.86      Page 3

 112  0021  361C                    clr             regulator_off           
 113  0022              
 114  0022  3C1B                    sz              Int_reg.@int0           
 115  0023  2B77                    jmp             AccessFIFO0
 116  0024  3C9B                    sz              Int_reg.@int1               
 117  0025  2BEE                    jmp             AccessFIFO1
 118  0026  2B63                    jmp             Exit_of_Ext_start
 119  0027              ;-----------------------------------------------------------------------------------
 120  0027              Check_Pipe0:                
 121  0027              AccessFIFO0:
 122  0027  311A                    set             chk_usb_reset_event     ;set usb mode flag; special use for USB+PS2
 123  0028  341B                    clr             Int_reg.@int0           ;clr pipe0 int flag 
 124  0029              
 125  0029  0F46                    MOV             A,USB_MISC              ;MP1 point to Misc. register
 126  002A  0083                    MOV             MP1,A                   ;
 127  002B              ;------------------------------------------------------------------------------------
 128  002B  3C00     E              sz              bwait_setup
 129  002C  2B7F                    jmp             wait_next_setup         ; wait_setup=1;
 130  002D              
 131  002D  3B82                    snz             r1.@usb_len0            ; (wait_setup=0) 
 132  002E  2B81                    jmp             wait_3in             	; out, in
 133  002F              ;------------------------------------------------------------------------------------
 134  002F              wait_next_setup:                                    ; wait_setup=1
 135  002F  3A82                    snz             r1.@USB_Setup           ; packet size=0(usb_len==0)
 136  0030  2BBD                    JMP             ExitExt0
 137  0031              ;-------------------------------------------------------------------------------------- 
 138  0031              ;Host has read data out from FIFO 0
 139  0031              wait_3in:
 140  0031  3800     E                  snz     bhas_data_out_previous1		;bhas_data_out_previousl=0,

⌨️ 快捷键说明

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