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

📄 rb.lst

📁 演示了如何开发WINDOES下I/O口驱动
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  RB                                                                     23/07/99 16:57:48 PAGE     1


DOS MACRO ASSEMBLER A51 V5.28m
OBJECT MODULE PLACED IN RB.OBJ
ASSEMBLER INVOKED BY: C:\ANCHOR\KEIL2K\BIN\A51.EXE RB.A51 RB(0) DB EP

LOC  OBJ            LINE     SOURCE

                       1     NAME    ReaderBoard
                       2     
                       3     $INCLUDE(../Declare.A51)
                =1     4     ; This module declares the variables and constants used in the examples
                =1     5     ; It is common to all of the examples
                =1     6     ;
                =1     7     ; Declare Special Function Registers used
  00A8          =1     8     EI              DATA    0A8H
  00E8          =1     9     EIE             DATA    0E8H    ; EZ-USB specific
  0091          =1    10     EXIF            DATA    091H    ; EZ-USB specific
  00D8          =1    11     EICON           DATA    0D8H    ; EZ-USB specific
  0092          =1    12     PageReg         DATA    092H    ; EZ-USB specific, used with MOVX @Ri
  0086          =1    13     DPS             DATA    086H    ; EZ-USB specific, used with dual data pointers
                =1    14     ;
                =1    15     ; "External" memory locations used, EZ-USB specific
                =1    16     ; Note that most of these variables are in Page 7FH
  7FE8          =1    17     SETUPDAT        EQU     07FE8H
  7FD4          =1    18     SUDPTR          EQU     07FD4H
  7FB4          =1    19     EP0Control      EQU     07FB4H
  7F00          =1    20     EP0InBuffer     EQU     07F00H
  7EC0          =1    21     EP0OutBuffer    EQU     07EC0H          ; Not in Page 7FH
  7E80          =1    22     EP1InBuffer     EQU     07E80H          ; Not in Page 7FH
  7FB5          =1    23     IN0ByteCount    EQU     07FB5H
  7FC5          =1    24     Out0ByteCount   EQU     07FC5H
  7FB7          =1    25     IN1ByteCount    EQU     07FB7H
  7FAC          =1    26     IN07IEN         EQU     07FACH
  7FA9          =1    27     IN07IRQ         EQU     07FA9H
  7FAD          =1    28     OUT07IEN        EQU     07FADH
  7FAA          =1    29     OUT07IRQ        EQU     07FAAH
  7FAE          =1    30     USBIEN          EQU     07FAEH
  7FAB          =1    31     USBIRQ          EQU     07FABH
  7FD6          =1    32     USBControl      EQU     07FD6H
  7FA6          =1    33     I2CData         EQU     07FA6H
  7FA5          =1    34     I2CControl      EQU     07FA5H
  7F93          =1    35     PortA_Config    EQU     07F93H
  7F94          =1    36     PortB_Config    EQU     07F94H
  7F95          =1    37     PortC_Config    EQU     07F95H
  7F96          =1    38     PortA_OUT       EQU     07F96H
  7F97          =1    39     PortB_OUT       EQU     07F97H
  7F98          =1    40     PortC_OUT       EQU     07F98H
  7F99          =1    41     PortA_PINS      EQU     07F99H
  7F9A          =1    42     PortB_PINS      EQU     07F9AH
  7F9B          =1    43     PortC_PINS      EQU     07F9BH
  7F9C          =1    44     PortA_OE        EQU     07F9CH
  7F9D          =1    45     PortB_OE        EQU     07F9DH
  7F9E          =1    46     PortC_OE        EQU     07F9EH
                =1    47     ;
                =1    48     ; Byte Variables
                =1    49                     
----            =1    50                     DSEG    AT 20H
0020            =1    51     FLAGS:          DS      1       ; This register is bit-addressable
                =1    52     ; Bit Variables
  0000          =1    53     Configured      EQU     FLAGS.0 ; Is this device configured
  0001          =1    54     STALL           EQU     FLAGS.1 ; Need to STALL endpoint 0
  0002          =1    55     SendData        EQU     FLAGS.2 ; Need to send data to PC Host
  0003          =1    56     IsDescriptor    EQU     FLAGS.3 ; Enable a shortcut reply
                =1    57     ;
0021            =1    58     MonitorSpace:   DS      1FH     ; Used by Dscope
A51 MACRO ASSEMBLER  RB                                                                     23/07/99 16:57:48 PAGE     2

0040            =1    59     Temp:           DS      1       ; A temporary working register
0041            =1    60     Idle_Time:      DS      1       ; The time the PC host wants us to wait
0042            =1    61     Expired_Time:   DS      1       ; A downcounter for timed Reports
0043            =1    62     ReplyBuffer:    DS      3       ; First byte is Count
0046            =1    63     CurrentConfiguration:
0046            =1    64                     DS      1       ; Some examples support > 1 configurations
                =1    65     ;
                =1    66     ; Declare the specific variables used by each of the examples
  0047          =1    67     Overlay         EQU     $
0047            =1    68     Old_Buttons:    DS      1       ; Used by BAL: stores current button position
0048            =1    69     LEDstrobe:      DS      1       ; Used by BAL: strobe one LED on at a time
0049            =1    70     LEDvalue:       DS      1       ; Used by BAL: stores current LED value
004A            =1    71     Msec_Counter:   DS      1       ; Used by BAL: counts up to 4 msec
                =1    72     
0047            =1    73                     ORG Overlay     ; Overlay the variables (only one set in use at any one tim
                             e)
0047            =1    74     I2CDataByte:    DS      1       ; Used by I2C: keep a local copy of data read from I2C bus
                =1    75     
0047            =1    76                     ORG Overlay
0047            =1    77     LightValues:    DS      6       ; Used by LP: local buffer for light brightness
                =1    78     
0047            =1    79                     ORG Overlay
0047            =1    80     CurrentPosition:DS      1       ; Used by Stepper: motor has 16 stable positions
0048            =1    81     MotorControl:   DS      3       ; Used by Stepper: direction, Low(count) and High(count)
                =1    82     
0047            =1    83                     ORG Overlay
0047            =1    84     LimitValues:    DS      12      ; Used by Temps: local buffer for limits
                =1    85     
0047            =1    86                     ORG Overlay
0047            =1    87     ButtonsValue:   DS      1       ; Used by RB: buttons are read each full scan
0048            =1    88     DisplayPosition:DS      1       ; Used by RB: holds current display position
0049            =1    89     LEDBuffer:      DS      42      ; Used by RB: local buffer for reader board
                =1    90     
                =1    91     ;
                      92     $INCLUDE(../Vectors.A51)
                =1    93     ; This module is common to all of the examples.
                =1    94     ; It contains all of the interrupt vector declarations and
                =1    95     ; the first level interrupt servicing (register save, call subroutine,
                =1    96     ; clear interrupt source, restore registers, return)
                =1    97     ; Suspend and Resume are handled totally in this module
                =1    98     ;
                =1    99     ; A Reset sends us to Program space location 0
----            =1   100             CSEG AT 0               ; Code space
                =1   101             USING 0                 ; Reset forces Register Bank 0
0000 020362     =1   102             LJMP    Reset
                =1   103     ;
                =1   104     ; The interrupt vector table is also located here
                =1   105     ; EZ-USB has two levels of USB interrupts:
                =1   106     ; 1-the main level is described in this table (at ORG 43H)
                =1   107     ; 2-there are 21 sources of USB interrupts and these are described in USB_ISR
                =1   108     ; This means that two levels of acknowledgement and clearing will be required   
                =1   109     ;       LJMP    INT0_ISR        ; Features not used are commented out
                =1   110     ;       ORG     0BH
                =1   111     ;       LJMP    Timer0_ISR
                =1   112     ;       ORG     13H
                =1   113     ;       LJMP    INT1_ISR
                =1   114     ;       ORG     1BH
                =1   115     ;       LJMP    Timer1_ISR
                =1   116     ;       ORG     23H
                =1   117     ;       LJMP    UART0_ISR
                =1   118     ;       ORG     2BH
                =1   119     ;       LJMP    Timer2_ISR
                =1   120     ;       ORG     33H
                =1   121     ;       LJMP    WakeUp_ISR
                =1   122     ;       ORG     3BH
                =1   123     ;       LJMP    UART1_ISR
A51 MACRO ASSEMBLER  RB                                                                     23/07/99 16:57:48 PAGE     3

0043            =1   124             ORG     43H
0043 020100     =1   125             LJMP    USB_ISR         ; Auto Vector will replace byte 45H
                =1   126     ;       ORG     4BH
                =1   127     ;       LJMP    I2C_ISR
                =1   128     ;       ORG     53H
                =1   129     ;       LJMP    INT4_ISR
                =1   130     ;       ORG     5BH
                =1   131     ;       LJMP    INT5_ISR
                =1   132     ;       ORG     63H
                =1   133     ;       LJMP    INT6_ISR
                =1   134     
00E0            =1   135             ORG     0E0H            ; Keep out of the way of dScope monitor
                =1   136                                     ; If you are not using dScope then this memory hole
                =1   137                                     ; may be used for useful routines.
0100            =1   138             ORG     100H    
0100 02013C     =1   139     USB_ISR:LJMP    SUDAV_ISR
0103 00         =1   140             DB      0               ; Pad entries to 4 bytes
0104 020158     =1   141             LJMP    SOF_ISR
0107 00         =1   142             DB      0
0108 020118     =1   143             LJMP    SUTOK_ISR
010B 00         =1   144             DB      0
010C 020129     =1   145             LJMP    Suspend_ISR
010F 00         =1   146             DB      0
0110 020120     =1   147             LJMP    USBReset_ISR
0113 00         =1   148             DB      0
0114 020118     =1   149             LJMP    Reserved
0117 00         =1   150             DB      0
                =1   151     ;       LJMP    EP0In_ISR       ; Endpoint Interrupts are not used in these examples
                =1   152     ;       DB      0               ; Comment out features not used
                =1   153     ;       LJMP    EP0Out_ISR
                =1   154     ;       DB      0
                =1   155     ;       LJMP    EP1In_ISR
                =1   156     ;       DB      0
                =1   157     ;       LJMP    EP1Out_ISR
                =1   158     ;       DB      0
                =1   159     ;       LJMP    EP2In_ISR
                =1   160     ;       DB      0
                =1   161     ;       LJMP    EP2Out_ISR
                =1   162     ;       DB      0
                =1   163     ;       LJMP    EP3In_ISR
                =1   164     ;       DB      0
                =1   165     ;       LJMP    EP3Out_ISR
                =1   166     ;       DB      0
                =1   167     ;       LJMP    EP4In_ISR
                =1   168     ;       DB      0
                =1   169     ;       LJMP    EP4Out_ISR
                =1   170     ;       DB      0
                =1   171     ;       LJMP    EP5In_ISR
                =1   172     ;       DB      0
                =1   173     ;       LJMP    EP5Out_ISR
                =1   174     ;       DB      0
                =1   175     ;       LJMP    EP6In_ISR
                =1   176     ;       DB      0
                =1   177     ;       LJMP    EP6Out_ISR
                =1   178     ;       DB      0
                =1   179     ;       LJMP    EP7In_ISR
                =1   180     ;       DB      0
                =1   181     ;       LJMP    EP7Out_ISR              
                =1   182     ; End of Interrupt Vector tables
                =1   183     
                =1   184     ; When a feature is used insert the required interrupt processing here

⌨️ 快捷键说明

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