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

📄 epphal.lst

📁 飞利浦usb D12芯片fireware 源程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 154      =1          unsigned char dataBuffer[MAX_CONTROLDATA_SIZE];
 155      =1  } CONTROL_XFER;
 156      =1  
 157      =1  /*
 158      =1     //*************************************************************************
 159      =1     // USB utility functions
 160      =1     //*************************************************************************
 161      =1  */
 162      =1  #ifndef __C51__
           =1 void interrupt timer_isr(void);
           =1 void interrupt usb_isr(void);
           =1 #endif
 166      =1  
 167      =1  void fn_usb_isr();
 168      =1  
 169      =1  extern void suspend_change(void);
 170      =1  extern void stall_ep0(void);
 171      =1  extern void disconnect_USB(void);
 172      =1  extern void connect_USB(void);
 173      =1  extern void reconnect_USB(void);
 174      =1  extern void init_unconfig(void);
 175      =1  extern void init_config(void);
 176      =1  extern void single_transmit(unsigned char * pData, unsigned char len);
 177      =1  extern void code_transmit(unsigned char code * pRomData, unsigned short len);
 178      =1  
 179      =1  extern void control_handler();
 180      =1  extern void check_key_LED(void);
 181      =1  extern void setup_dma();
 182      =1  #ifndef __C51__
           =1 extern void setup_io(); // V2.1, x86 only
           =1 #endif
 185      =1  
 186      =1  void dma_start(PIO_REQUEST);
 187      =1  
 188      =1  #define IN_TOKEN_DMA    1
 189      =1  #define OUT_TOKEN_DMA   0
 190      =1  
 191      =1  #ifndef __C51__
           =1         #define DMA_BUFFER_SIZE         64000
           =1 #else
 194      =1          #define DMA_BUFFER_SIZE         16384
 195      =1  #endif
 196      =1  
 197      =1  #define DMA_IDLE        0
 198      =1  #define DMA_RUNNING     1
 199      =1  #define DMA_PENDING     2
 200      =1  
 201      =1  #define SETUP_DMA_REQUEST               0x0471
 202      =1  #define GET_FIRMWARE_VERSION    0x0472
 203      =1  #define GET_SET_TWAIN_REQUEST   0x0473
 204      =1  
 205      =1  typedef struct _TWAIN_FILEINFO {
 206      =1          unsigned char   bPage;    // bPage bit 7 - 5 map to uSize bit 18 - 16
 207      =1          unsigned char   uSizeH;    // uSize bit 15 - 8
 208      =1          unsigned char   uSizeL;    // uSize bit 7 - 0
 209      =1  } TWAIN_FILEINFO, *PTWAIN_FILEINFO;
 210      =1  
 211      =1  #endif
 212      =1  
  28          
  29          extern EPPFLAGS bEPPflags;
  30          
C51 COMPILER V8.02   EPPHAL                                                                07/27/2007 11:10:49 PAGE 10  

  31          void outportb(unsigned char port, unsigned char val)
  32          {
  33   1              unsigned char xdata *ext_address;
  34   1      
  35   1              MCU_HOSTDACK =1;
  36   1      
  37   1              ext_address=0xff00 + port;
  38   1              *ext_address = val;
  39   1      
  40   1              MCU_HOSTDACK =0;
  41   1      }
  42          
  43          unsigned char inportb(unsigned char port)
  44          {
  45   1              unsigned char c;
  46   1              unsigned char xdata *ext_address;
  47   1      
  48   1              MCU_HOSTDACK =1;
  49   1      
  50   1              ext_address=0xff00 + port;
  51   1              c = *ext_address ;
  52   1      
  53   1              MCU_HOSTDACK =0;
  54   1      
  55   1              return c;
  56   1      }
  57          
  58          void eppAwrite(unsigned char A_data)
  59          {
  60   1               MCU_HOSTDACK =1;
  61   1      
  62   1               if(bEPPflags.bits.verbose)
  63   1                      printf("eppAwrite = 0x%bx.\n", A_data);
  64   1      
  65   1               P0 = (A_data | 0x80);
  66   1      
  67   1               EPP_WRITE = 0;
  68   1      
  69   1               EPP_DSTROBE = 1;
  70   1               EPP_ASTROBE = 1;
  71   1               EPP_ASTROBE = 0;
  72   1               EPP_ASTROBE = 1;
  73   1      
  74   1               P0 = (A_data & 0x7F);
  75   1      
  76   1               EPP_ASTROBE = 0;
  77   1               EPP_ASTROBE = 1;
  78   1      
  79   1               MCU_HOSTDACK =0;
  80   1      }
  81          
  82          void program_cpld(unsigned short uSize, unsigned char bCommand)
  83          {
  84   1              MCU_HOSTDACK = 1;
  85   1      
  86   1              outportb(CPLD_CNT0, LSB(uSize));   // set CPLD counter
  87   1              outportb(CPLD_CNT1, MSB(uSize));
  88   1      
  89   1              if(bEPPflags.bits.verbose)
  90   1                      printf("CPLD counter read back = 0x%bx, 0x%bx.\n", inportb(CPLD_CNT0),
  91   1                              inportb(CPLD_CNT1));
  92   1      
C51 COMPILER V8.02   EPPHAL                                                                07/27/2007 11:10:49 PAGE 11  

  93   1              if(bCommand & 0x1) {
  94   2                      MCU_DMARD_WR = 0;
  95   2                      EPP_WRITE = 1;     // IN_TOKEN_DMA;
  96   2              }
  97   1              else {
  98   2                      MCU_DMARD_WR = 1;
  99   2                      EPP_WRITE = 0;     // OUT_TOKEN_DMA;
 100   2              }
 101   1      
 102   1              MCU_HOSTDACK = 0;
 103   1      }
 104          
 105          void dma_start(PIO_REQUEST pio)
 106          {
 107   1              eppAwrite( (pio->uAddressL >> 13) +  (pio->bAddressH << 3) );
 108   1              program_cpld(pio->uSize, pio->bCommand);
 109   1      }
 110          
 111          #endif
C51 COMPILER V8.02   EPPHAL                                                                07/27/2007 11:10:49 PAGE 12  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _outportb (BEGIN)
                                           ; SOURCE LINE # 31
;---- Variable 'val' assigned to Register 'R5' ----
;---- Variable 'port' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 32
                                           ; SOURCE LINE # 35
0000 D2A1              SETB    MCU_HOSTDACK
                                           ; SOURCE LINE # 37
0002 E4                CLR     A
0003 2F                ADD     A,R7
0004 FF                MOV     R7,A
0005 E4                CLR     A
0006 34FF              ADDC    A,#0FFH
;---- Variable 'ext_address' assigned to Register 'DPTR' ----
0008 8F82              MOV     DPL,R7
000A F583              MOV     DPH,A
                                           ; SOURCE LINE # 38
000C ED                MOV     A,R5
000D F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 40
000E C2A1              CLR     MCU_HOSTDACK
                                           ; SOURCE LINE # 41
0010 22                RET     
             ; FUNCTION _outportb (END)

             ; FUNCTION _inportb (BEGIN)
                                           ; SOURCE LINE # 43
;---- Variable 'port' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 44
                                           ; SOURCE LINE # 48
0000 D2A1              SETB    MCU_HOSTDACK
                                           ; SOURCE LINE # 50
0002 E4                CLR     A
0003 2F                ADD     A,R7
0004 FF                MOV     R7,A
0005 E4                CLR     A
0006 34FF              ADDC    A,#0FFH
;---- Variable 'ext_address' assigned to Register 'DPTR' ----
0008 8F82              MOV     DPL,R7
000A F583              MOV     DPH,A
                                           ; SOURCE LINE # 51
000C E0                MOVX    A,@DPTR
000D FF                MOV     R7,A
;---- Variable 'c' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 53
000E C2A1              CLR     MCU_HOSTDACK
                                           ; SOURCE LINE # 55
                                           ; SOURCE LINE # 56
0010         ?C0002:
0010 22                RET     
             ; FUNCTION _inportb (END)

             ; FUNCTION _eppAwrite (BEGIN)
                                           ; SOURCE LINE # 58
0000 900000      R     MOV     DPTR,#A_data
0003 EF                MOV     A,R7
0004 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
C51 COMPILER V8.02   EPPHAL                                                                07/27/2007 11:10:49 PAGE 13  

0005 D2A1              SETB    MCU_HOSTDACK
                                           ; SOURCE LINE # 62
0007 900000      E     MOV     DPTR,#bEPPflags+01H
000A E0                MOVX    A,@DPTR
000B FF                MOV     R7,A
000C C3                CLR     C
000D 13                RRC     A
000E 30E011            JNB     ACC.0,?C0003
                                           ; SOURCE LINE # 63
0011 7BFF              MOV     R3,#0FFH
0013 7A00        R     MOV     R2,#HIGH ?SC_0
0015 7900        R     MOV     R1,#LOW ?SC_0
0017 900000      R     MOV     DPTR,#A_data
001A E0                MOVX    A,@DPTR
001B 900000      E     MOV     DPTR,#?_printf?BYTE+03H
001E F0                MOVX    @DPTR,A
001F 120000      E     LCALL   _printf
0022         ?C0003:
                                           ; SOURCE LINE # 65
0022 900000      R     MOV     DPTR,#A_data
0025 E0                MOVX    A,@DPTR
0026 FF                MOV     R7,A
0027 4480              ORL     A,#080H
0029 F580              MOV     P0,A
                                           ; SOURCE LINE # 67
002B C290              CLR     EPP_WRITE
                                           ; SOURCE LINE # 69
002D D291              SETB    EPP_DSTROBE
                                           ; SOURCE LINE # 70
002F D292              SETB    EPP_ASTROBE
                                           ; SOURCE LINE # 71
0031 C292              CLR     EPP_ASTROBE
                                           ; SOURCE LINE # 72
0033 D292              SETB    EPP_ASTROBE
                                           ; SOURCE LINE # 74
0035 EF                MOV     A,R7
0036 547F              ANL     A,#07FH
0038 F580              MOV     P0,A
                                           ; SOURCE LINE # 76
003A C292              CLR     EPP_ASTROBE
                                           ; SOURCE LINE # 77
003C D292              SETB    EPP_ASTROBE
                                           ; SOURCE LINE # 79
003E C2A1              CLR     MCU_HOSTDACK

⌨️ 快捷键说明

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