ui_progress.lst

来自「MP3 整个 SDK」· LST 代码 · 共 209 行

LST
209
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:05 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_progress.c              #
#       List file     =  d:\case_i_d90f\ap\ap_fmrecord\list\ui_progress.lst  #
#       Object file   =  d:\case_i_d90f\ap\ap_fmrecord\obj\ui_progress.r01   #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_fmrecord\Obj\ -e -K  #
#                        -w -gA -s9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d90f\ap\ap_fmrecord\List\ -q -t8 -X     #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\AP\COMMON\ui_progress.c              #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_progress(17)
   \   0000                    RSEG    COM_CTRL(0)
   \   0000                    EXTERN  GetDCStatus
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  SetTextOutMode
   \   0000                    PUBLIC  ui_show_progress
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    COM_CTRL
   \   0000            ui_show_progress:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *           ap common lib file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.                             
      7          *             All Right Reserved                          
      8          *
      9          *  $Id: ui_progress.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */
     12          #pragma codeseg(COM_CTRL)
     13          
     14          #include "ap_common.h"
     15          
     16          
     17          /*
     18          ********************************************************************************
     19          * Description : 进度条
     20          *
     21          * Arguments   :
     22          *
     23          * Returns     : 
     24          *
     25          * Notes       :
     26          *
     27          ********************************************************************************
     28          */
     29          int ui_show_progress(const progress_t *progress, int string_id)
     30          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  C5                PUSH    BC
   \   0005  21F6FF            LD      HL,65526
   \   0008  39                ADD     HL,SP
   \   0009  F9                LD      SP,HL
   \   000A  D5                PUSH    DE
   \   000B  DDE1              POP     IX
     31              bool need_draw=TRUE;
     32              char key;
     33              int width, step, value;
     34              
     35              DC  oldDC_sav;    
     36              GetDCStatus(&oldDC_sav);
   \   000D  EB                EX      DE,HL
   \   000E  CD0000            CALL    LWRD GetDCStatus
     37              
     38              // 计算每一个步长的长度
     39              value = slider_pox_x_def + (slider_width_def) * (progress->value - progress->min) / (progress->max - progress->min);
   \   0011  DD5E00            LD      E,(IX+0)
   \   0014  DD5601            LD      D,(IX+1)
   \   0017  DD6E04            LD      L,(IX+4)
   \   001A  DD6605            LD      H,(IX+5)
   \   001D  A7                AND     A
   \   001E  ED52              SBC     HL,DE
   \   0020  29                ADD     HL,HL
   \   0021  29                ADD     HL,HL
   \   0022  29                ADD     HL,HL
   \   0023  29                ADD     HL,HL
   \   0024  29                ADD     HL,HL
   \   0025  29                ADD     HL,HL
   \   0026  29                ADD     HL,HL
   \   0027  EB                EX      DE,HL
   \   0028  DD4E00            LD      C,(IX+0)
   \   002B  DD4601            LD      B,(IX+1)
   \   002E  DD6E02            LD      L,(IX+2)
   \   0031  DD6603            LD      H,(IX+3)
   \   0034  A7                AND     A
   \   0035  ED42              SBC     HL,BC
   \   0037  4D                LD      C,L
   \   0038  44                LD      B,H
   \   0039  CD0000            CALL    LWRD ?SS_DIV_L02
   \   003C  212D00            LD      HL,45
   \   003F  19                ADD     HL,DE
   \   0040  E5                PUSH    HL
   \   0041  FDE1              POP     IY
     40              //width = slider_width_def / step;
     41              // 可能会越界
     42               
     43                  if(need_draw)
   \   0043  AF                XOR     A
   \   0044  3C                INC     A
   \   0045  2857              JR      Z,?0003
   \   0047            ?0002:
     44                  {               
     45                          ResShowPic(SSBCK,0,0);
   \   0047  0E00              LD      C,0
   \   0049  C5                PUSH    BC
   \   004A  11DD00            LD      DE,221
   \   004D  3E00              LD      A,BYTE3 ResShowPic
   \   004F  210000            LD      HL,LWRD ResShowPic
   \   0052  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0055  F1                POP     AF
     46                          ResShowPic(SSLIDER,slider_pox_x_def,slider_pox_y_def);
   \   0056  0E37              LD      C,55
   \   0058  C5                PUSH    BC
   \   0059  0E2D              LD      C,45
   \   005B  11DE00            LD      DE,222
   \   005E  3E00              LD      A,BYTE3 ResShowPic
   \   0060  210000            LD      HL,LWRD ResShowPic
   \   0063  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0066  F1                POP     AF
     47                          SetPenColor(Color_WHITE_def);
   \   0067  010000            LD      BC,0
   \   006A  11FFFF            LD      DE,65535
   \   006D  CD0000            CALL    LWRD SetPenColor
     48                  //SetBackgdColor(Color_MENU_def);
     49                  SetTextOutMode(1);
   \   0070  1E01              LD      E,1
   \   0072  CD0000            CALL    LWRD SetTextOutMode
     50                  ResShowMultiString(SMAIN7, progress->string_id, menuhead_s_pos_x_def, menuhead_s_pos_y_def);
   \   0075  0E94              LD      C,148
   \   0077  C5                PUSH    BC
   \   0078  0E16              LD      C,22
   \   007A  C5                PUSH    BC
   \   007B  DD4E06            LD      C,(IX+6)
   \   007E  116E01            LD      DE,366
   \   0081  3E00              LD      A,BYTE3 ResShowMultiString
   \   0083  210000            LD      HL,LWRD ResShowMultiString
   \   0086  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0089  F1                POP     AF
   \   008A  F1                POP     AF
     51                  ResShowPic(SLIDPTR, value, slider_cursor_y_def); 
   \   008B  0E37              LD      C,55
   \   008D  C5                PUSH    BC
   \   008E  FDE5              PUSH    IY
   \   0090  E1                POP     HL
   \   0091  4D                LD      C,L
   \   0092  11DC00            LD      DE,220
   \   0095  3E00              LD      A,BYTE3 ResShowPic
   \   0097  210000            LD      HL,LWRD ResShowPic
   \   009A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   009D  F1                POP     AF
   \   009E            ?0003:
     52                                   
     53                  }
     54                     SetPenColor(oldDC_sav.PenColor);
   \   009E  210000            LD      HL,0
   \   00A1  39                ADD     HL,SP
   \   00A2  5E                LD      E,(HL)
   \   00A3  23                INC     HL
   \   00A4  56                LD      D,(HL)
   \   00A5  23                INC     HL
   \   00A6  4E                LD      C,(HL)
   \   00A7  23                INC     HL
   \   00A8  46                LD      B,(HL)
   \   00A9  CD0000            CALL    LWRD SetPenColor
     55              SetBackgdColor(oldDC_sav.BackgdColor);
   \   00AC  210400            LD      HL,4
   \   00AF  39                ADD     HL,SP
   \   00B0  5E                LD      E,(HL)
   \   00B1  23                INC     HL
   \   00B2  56                LD      D,(HL)
   \   00B3  23                INC     HL
   \   00B4  4E                LD      C,(HL)
   \   00B5  23                INC     HL
   \   00B6  46                LD      B,(HL)
   \   00B7  CD0000            CALL    LWRD SetBackgdColor
     56          }
   \   00BA  210C00            LD      HL,12
   \   00BD  39                ADD     HL,SP
   \   00BE  F9                LD      SP,HL
   \   00BF  DDE1              POP     IX
   \   00C1  FDE1              POP     IY
   \   00C3  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00C6                    END

Errors: none
Warnings: none
Code size: 198
Constant size: 0
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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