usbdisk_2l.lst

来自「MP3 整个 SDK」· LST 代码 · 共 653 行 · 第 1/2 页

LST
653
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       28/Dec/106  10:23:50 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\ap_udisk\usbdisk_2l.c             #
#       List file     =  d:\case_i_d90f\ap\ap_udisk\.\list\usbdisk_2l.lst    #
#       Object file   =  d:\case_i_d90f\ap\ap_udisk\.\obj\usbdisk_2l.r01     #
#       ASM file      =  d:\case_i_d90f\ap\ap_udisk\.\list\usbdisk_2l.s01    #
#       Command line  =  -v0 -mb -uu -OD:\case_i_d90f\ap\ap_udisk\.\Obj\ -e  #
#                        -K -w -gA -s9 -RCODE -r0 -DUSB_DISK_USING -DIC3951  #
#                        -LD:\case_i_d90f\ap\ap_udisk\.\List\ -q -t8         #
#                        -AD:\case_i_d90f\ap\ap_udisk\.\List\                #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\ap\ap_udisk\usbdisk_2l.c             #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    usbdisk_2l(17)
   \   0000                    RSEG    UDISK_RC(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    UDISK_RD(0)
   \   0000                    RSEG    UDISK_RS(0)
   \   0000                    EXTERN  AlwaysShowCardDisk
   \   0000                    EXTERN  BankSwitch
   \   0000                    EXTERN  DRV_ActiveUD
   \   0000                    EXTERN  DRV_DetectUD
   \   0000                    EXTERN  DispBuf
   \   0000                    PUBLIC  Display
   \   0000                    PUBLIC  FlashLed
   \   0000                    EXTERN  GetSysInfo
   \   0000                    EXTERN  GetSysMsg
   \   0000                    EXTERN  GetUsbAttribute
   \   0000                    EXTERN  GetUsbSetupInfo
   \   0000                    EXTERN  GetUsbVidPid
   \   0000                    PUBLIC  HoldDispState
   \   0000                    PUBLIC  IsCardOut
   \   0000                    PUBLIC  MenuKeyPress
   \   0000                    PUBLIC  MsgManager
   \   0000                    EXTERN  ResOpen
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  UD_SDCardWPDetect
   \   0000                    EXTERN  UDiskGetCardStatus
   \   0000                    EXTERN  UDiskInit
   \   0000                    PUBLIC  UDiskInitAll
   \   0000                    EXTERN  UDiskRun
   \   0000                    EXTERN  UDiskSetDiskNum
   \   0000                    EXTERN  UDiskSetWP
   \   0000                    EXTERN  VMRead
   \   0000                    PUBLIC  g_comval
   \   0000                    EXTERN  res_fp
   \   0000                    EXTERN  sKY_HoldCheck
   \   0000                    EXTERN  sysinfo
   \   0000                    PUBLIC  sysinfopt
   \   0000                    PUBLIC  usbattribute
   \   0000                    PUBLIC  usbsetupinfo
   \   0000                    PUBLIC  vidpidstring
   \   0000                    PUBLIC  wUDiskDisp
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?C_S_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    RSEG    UDISK_RC
   \   0000            MsgManager:
      1          /*
      2          ********************************************************************************
      3          *                       ACTOS
      4          *                      usbdisk
      5          *
      6          *                (c) Copyright 2002-2003, Actions Co,Ld.
      7          *                        All Right Reserved
      8          *
      9          * File   : usbdisk35.c
     10          * By     : Chliang
     11          * Version: v1.00     first version     2003-11-18 11:47
     12          ********************************************************************************
     13          */
     14          #pragma function=non_banked
     15          
     16          #include "Udisk.h"
     17          
     18          #pragma memory=dataseg(UDISK_RD)
     19          usbsetupinfo_t usbsetupinfo;        //U盘安装信息数据结构
     20          ADFU_SysInfo_t *sysinfopt;
     21          usbattri_t usbattribute;            //U盘属性数据结构
     22          vidpid_t vidpidstring;              //PID,VID数据结构
     23          BYTE MenuKeyPress;
     24          BYTE HoldDispState;
     25          BYTE IsCardOut;                     //jpu
     26          comval_t g_comval;                  //全局变量数据结构
     27          extern char DisplayIndi;
     28          extern char *DispBuf;
     29          extern  ADFU_SysInfo_t sysinfo;
     30          #pragma memory=default
     31          
     32          
     33          #pragma memory=constseg(UDISK_RS)
     34          WORD    wUDiskDisp[3]={UDISKRDY,UDISKUPL,UDISKDL};
     35          //WORD    wADFUDisp[7]={UPG_RDY, UPG_BUSY, UPG_DOWN, UPG_UP, UPG_DONE, UPG_DONE, UPG_FAIL};
     36          #pragma memory=default
     37          
     38          
     39          #pragma codeseg(UDISK_RC)
     40          void MsgManager(void)
     41          {
   \   0000  D5                PUSH    DE
     42              char i;
     43              if(MenuKeyPress==1)         //已收到Menu键,不再收消息,以防非空闲状态下跑该函数把KeyUp收走
   \   0001  3A6600            LD      A,(MenuKeyPress)
   \   0004  3D                DEC     A
   \   0005  2817              JR      Z,?0007
   \   0007            ?0002:
   \   0007            ?0003:
     44                      return;
     45              if( (i = GetSysMsg()) == Msg_KeyMenu )          //收到Menu键
   \   0007  CD0000            CALL    LWRD GetSysMsg
   \   000A  FE10              CP      16
   \   000C  2007              JR      NZ,?0005
   \   000E            ?0004:
     46              {
     47                  MenuKeyPress=1;
   \   000E  3E01              LD      A,1
   \   0010  326600            LD      (MenuKeyPress),A
     48                  return;
     49              }
   \   0013  1809              JR      ?0007
   \   0015            ?0005:
     50              else if ( i == MSG_SD_OUT )
   \   0015  FEB1              CP      177
   \   0017  2005              JR      NZ,?0007
   \   0019            ?0006:
     51              {
     52                  IsCardOut = 1;
   \   0019  3E01              LD      A,1
   \   001B  326800            LD      (IsCardOut),A
     53                  return;
     54              }
   \   001E            ?0007:
     55          }
   \   001E            ?0008:
   \   001E  D1                POP     DE
   \   001F  C9                RET
   \   0020            Display:
     56          
     57          
     58          
     59          void Display(char dispIndi)
     60          {
   \   0020  C5                PUSH    BC
   \   0021  DDE5              PUSH    IX
   \   0023  F5                PUSH    AF
   \   0024  F5                PUSH    AF
   \   0025  DD63              LD      IXH,E
     61              char    disptemp = dispIndi & 0x0f;
   \   0027  7B                LD      A,E
   \   0028  E60F              AND     15
   \   002A  210200            LD      HL,2
   \   002D  39                ADD     HL,SP
   \   002E  77                LD      (HL),A
     62              char    i,j,k;
     63          
     64              k = input8(0x27);
   \   002F  DB27              IN      A,(39)
   \   0031  2B                DEC     HL
   \   0032  77                LD      (HL),A
     65              output8(0x27,0x0);          //显示时不开中断,避免低频跑中断服务(下面代码会降频),降低效率
   \   0033  AF                XOR     A
   \   0034  D327              OUT     (39),A
     66              
     67              i = input8(0x00);
   \   0036  DB00              IN      A,(0)
   \   0038  2B                DEC     HL
   \   0039  77                LD      (HL),A
     68              output8(0x00,i | 0x01);     //显示屏不支持60MHz送屏,降频
   \   003A  47                LD      B,A
   \   003B  CBC0              SET     0,B
   \   003D  78                LD      A,B
   \   003E  D300              OUT     (0),A
     69              for(j=0;j<0x40;j++){}
   \   0040  DD2E00            LD      IXL,0
   \   0043            ?0010:
   \   0043  DD7D              LD      A,IXL
   \   0045  FE40              CP      64
   \   0047  3004              JR      NC,?0009
   \   0049            ?0011:
   \   0049  DD2C              INC     IXL
   \   004B  18F6              JR      ?0010
   \   004D            ?0009:
     70              if(dispIndi<0x10)
   \   004D  DD7C              LD      A,IXH
   \   004F  FE10              CP      16
   \   0051  301C              JR      NC,?0014
   \   0053            ?0013:
     71              {    
     72                  if(dispIndi==0x00)               //显示任务指示 0:无显示动作  01:上传  02:下传  03:传输结束
   \   0053  DD44              LD      B,IXH
   \   0055  04                INC     B
   \   0056  05                DEC     B
   \   0057  2007              JR      NZ,?0016
   \   0059            ?0015:
     73                  {
     74                          ResShowPic(UDISKRDY,0,0);
   \   0059  48                LD      C,B
   \   005A  C5                PUSH    BC
   \   005B  11FE00            LD      DE,254
   \   005E  1862              JR      ?0075
     75                          goto displayend;
   \   0060            ?0016:
     76                  }
     77                  if(dispIndi==0x01)
   \   0060  05                DEC     B
   \   0061  2003              JR      NZ,?0019
   \   0063            ?0018:
     78                  {
     79                          ResShowPic(UDISKBCK,0,0);
   \   0063  48                LD      C,B
   \   0064  184C              JR      ?0077
     80                          ResShowPic(UDISKUPL, 68, 76);
     81                          goto displayend;
   \   0066            ?0019:
     82                  }
     83                  if(dispIndi==0x02)
   \   0066  DD44              LD      B,IXH
   \   0068  05                DEC     B
   \   0069  05                DEC     B
   \   006A  205A              JR      NZ,?0023
   \   006C            ?0020:
     84                  {
     85                          ResShowPic(UDISKBCK,0,0);
   \   006C  48                LD      C,B
   \   006D  182F              JR      ?0078
     86                          ResShowPic(UDISKDL, 68, 76);
   \   006F            ?0021:
     87                  }
     88          
     89              }
     90              else
   \   006F            ?0014:
     91              {   
     92                
     93                  switch (disptemp)
   \   006F  210200            LD      HL,2
   \   0072  39                ADD     HL,SP
   \   0073  5E                LD      E,(HL)
   \   0074  CD0000            CALL    LWRD ?C_S_SWITCH_L06
   \   0077  00                DEFB    0
   \   0078  0700              DEFW    7
   \   007A  C600              DEFW    ?0023
   \   007C  8A00              DEFW    ?0024
   \   007E  9200              DEFW    ?0025
   \   0080  9C00              DEFW    ?0026
   \   0082  B000              DEFW    ?0027
   \   0084  C600              DEFW    ?0023
   \   0086  C600              DEFW    ?0023
   \   0088  C600              DEFW    ?0023
   \   008A            ?0024:
     94                  {
     95                      case 0:
     96                          ResShowPic(UPG_RDY,0,0);
   \   008A  0E00              LD      C,0
   \   008C  C5                PUSH    BC
   \   008D  110B00            LD      DE,11
   \   0090  1830              JR      ?0075
     97                          break;
   \   0092            ?0025:
     98                      case 1:                
     99                          ResShowPic(UPG_BUSY,0,30);
   \   0092  0E1E              LD      C,30
   \   0094  C5                PUSH    BC
   \   0095  0E00              LD      C,0
   \   0097  110700            LD      DE,7
   \   009A  1826              JR      ?0075
    100                          break;
   \   009C            ?0026:
    101                      case 2:
    102                          ResShowPic(UDISKBCK,0,0);
   \   009C  0E00              LD      C,0
   \   009E            ?0078:
   \   009E  C5                PUSH    BC
   \   009F  11FC00            LD      DE,252
   \   00A2  CD0000            CALL    LWRD ResShowPic
   \   00A5  F1                POP     AF
    103                          ResShowPic(UDISKDL, 68, 76);
   \   00A6  0E4C              LD      C,76
   \   00A8  C5                PUSH    BC
   \   00A9  0E44              LD      C,68
   \   00AB  11FD00            LD      DE,253
   \   00AE  1812              JR      ?0075
    104                          break;
   \   00B0            ?0027:
    105                      case 3:
    106                          ResShowPic(UDISKBCK,0,0);
   \   00B0  0E00              LD      C,0
   \   00B2            ?0077:
   \   00B2  C5                PUSH    BC
   \   00B3  11FC00            LD      DE,252
   \   00B6  CD0000            CALL    LWRD ResShowPic
   \   00B9  F1                POP     AF
    107                          ResShowPic(UDISKUPL, 68, 76);
   \   00BA  0E4C              LD      C,76
   \   00BC  C5                PUSH    BC
   \   00BD  0E44              LD      C,68
   \   00BF  11FF00            LD      DE,255
   \   00C2            ?0075:
   \   00C2  CD0000            CALL    LWRD ResShowPic
   \   00C5  F1                POP     AF
    108                          break;
   \   00C6            ?0028:
    109                      case 4:
    110                          //ResShowPic(UDISKBCK, 0, 0);
    111                          //ResShowPic(UPG_DONE, 40, 21);
    112                          break;
   \   00C6            ?0029:
    113                      case 5:
    114                          //ResShowPic(UDISKBCK, 0, 0);
    115                          //ResShowPic(UPG_DONE, 40, 21);
    116                          break;
   \   00C6            ?0030:
    117                      case 6:
    118                          //ResShowPic(UDISKBCK, 0, 0);
    119                          //ResShowPic(UPG_FAIL, 40, 21);
    120                          break;
   \   00C6            ?0031:
    121                      default:

⌨️ 快捷键说明

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