decodermenu.lst

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

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

   \   0000                    NAME    decodermenu(17)
   \   0000                    RSEG    CODE(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    EXTERN  BankSwitch
   \   0000                    EXTERN  DRV_DetectUD
   \   0000                    PUBLIC  MenuInPic
   \   0000                    PUBLIC  MenuStrID
   \   0000                    PUBLIC  MenuStrIDWithCard
   \   0000                    EXTERN  ap_sleep
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselGetNext
   \   0000                    EXTERN  fselGetTotal
   \   0000                    EXTERN  fselInit
   \   0000                    EXTERN  fselSetMode
   \   0000                    EXTERN  g_DiskStateFlag
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_menu_active
   \   0000                    EXTERN  g_viewpic_vars
   \   0000                    PUBLIC  list
   \   0000                    EXTERN  need_sel_file
   \   0000                    PUBLIC  play_text
   \   0000                    PUBLIC  slider
   \   0000                    PUBLIC  sub_list
   \   0000                    EXTERN  ui_delete
   \   0000                    EXTERN  ui_delete_all
   \   0000                    EXTERN  ui_directory
   \   0000                    EXTERN  ui_err_msg
   \   0000                    EXTERN  ui_popup_list
   \   0000                    EXTERN  ui_show_msg
   \   0000                    EXTERN  ui_slider
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_S_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    CODE
   \   0000            MenuInPic:
      1          /****************************************
      2          * File Name: DecoderMenu.c
      3          * Write By : Jack lee
      4          * Date     :2004-9-29 15:22
      5          *
      6          *
      7          *****************************************/
      8          
      9          
     10          
     11          
     12          #include "actos.h"
     13          #include   "ap_common.h"
     14          #include   "display.h"
     15          #include "DSCDec.h"
     16          #include "ap_picdec.h"
     17          extern bool g_menu_active;
     18          extern BYTE g_DiskStateFlag;  
     19          //function_menu_t  Menu;      //define menu
     20          pop_up_list_t list;
     21          pop_up_list_t sub_list;
     22          slider_t slider;    
     23          extern  bool  need_sel_file;       //1 表示要重新选择驱动器
     24          const WORD  MenuStrID[5]={MSTOP1,JPEGSET,MSTOP3,MSTOP4,MSTOP5};//,VSTOPM4};
     25          const WORD  MenuStrIDWithCard[6]={MSTOP1,MSTOP2,JPEGSET,MSTOP3,MSTOP4,MSTOP5};
     26          const WORD play_text[2]={JPEGSET1, JPEGSET2};
     27          
     28          int MenuInPic(void)
     29          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  FDE5              PUSH    IY
   \   0004  DDE5              PUSH    IX
   \   0006  F5                PUSH    AF
     30              int   result,active;
     31              bool  g_card_ok=FALSE;
     32          
     33          
     34              result = DRV_DetectUD(1);  //检查是否有卡
   \   0007  1E01              LD      E,1
   \   0009  CD0000            CALL    LWRD DRV_DetectUD
   \   000C  4F                LD      C,A
   \   000D  0600              LD      B,0
   \   000F  68                LD      L,B
     35              if(result == 0x020)
   \   0010  60                LD      H,B
   \   0011  39                ADD     HL,SP
   \   0012  70                LD      (HL),B
   \   0013  3E20              LD      A,32
   \   0015  A9                XOR     C
   \   0016  2002              JR      NZ,?0003
   \   0018            ?0002:
     36                  g_card_ok = TRUE;
   \   0018  3601              LD      (HL),1
   \   001A            ?0003:
     37              
     38              list.headid = STOPMENU;
   \   001A  21EA01            LD      HL,490
   \   001D  220600            LD      (list+6),HL
     39              list.active=0;
   \   0020  68                LD      L,B
   \   0021  60                LD      H,B
   \   0022  220400            LD      (list+4),HL
     40              if(g_card_ok)
   \   0025  39                ADD     HL,SP
   \   0026  AF                XOR     A
   \   0027  B6                OR      (HL)
   \   0028  280B              JR      Z,?0005
   \   002A            ?0004:
     41              {
     42                  list.total = 6;
   \   002A  210600            LD      HL,6
   \   002D  220200            LD      (list+2),HL
     43                  list.strid = MenuStrIDWithCard;
   \   0030  210A00            LD      HL,MenuStrIDWithCard
   \   0033  1809              JR      ?0080
     44              }
     45              else
   \   0035            ?0005:
     46              {
     47                  list.total = 5;
   \   0035  210500            LD      HL,5
   \   0038  220200            LD      (list+2),HL
     48                  list.strid = MenuStrID;
   \   003B  210000            LD      HL,MenuStrID
   \   003E            ?0080:
   \   003E  220000            LD      (list),HL
   \   0041            ?0006:
     49              }
     50              list.string_id = g_comval.langid;
   \   0041  3A0C00            LD      A,(g_comval+12)
   \   0044  320800            LD      (list+8),A
     51          
     52              result = ui_popup_list(&list, NULL);
   \   0047  48                LD      C,B
   \   0048  C5                PUSH    BC
   \   0049  C5                PUSH    BC
   \   004A  110000            LD      DE,list
   \   004D  3E00              LD      A,BYTE3 ui_popup_list
   \   004F  210000            LD      HL,LWRD ui_popup_list
   \   0052  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0055  F1                POP     AF
   \   0056  F1                POP     AF
   \   0057  E5                PUSH    HL
   \   0058  DDE1              POP     IX
     53          
     54                 if (g_card_ok)
   \   005A  69                LD      L,C
   \   005B  60                LD      H,B
   \   005C  39                ADD     HL,SP
   \   005D  AF                XOR     A
   \   005E  B6                OR      (HL)
   \   005F  2829              JR      Z,?0010
   \   0061            ?0007:
     55                   {
     56          
     57                    if (DRV_DetectUD(1) != 0x20)
   \   0061  1E01              LD      E,1
   \   0063  CD0000            CALL    LWRD DRV_DetectUD
   \   0066  FE20              CP      32
   \   0068  2820              JR      Z,?0010
   \   006A            ?0009:
     58                     {
     59                       g_card_ok=FALSE;
     60                       ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
   \   006A  ED4B0C00          LD      BC,(g_comval+12)
   \   006E  0600              LD      B,0
   \   0070  C5                PUSH    BC
   \   0071  019101            LD      BC,401
   \   0074  59                LD      E,C
   \   0075  50                LD      D,B
   \   0076  3E00              LD      A,BYTE3 ui_err_msg
   \   0078  210000            LD      HL,LWRD ui_err_msg
   \   007B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   007E  F1                POP     AF
     61                       g_viewpic_vars.location.disk = 'C';
   \   007F  3E43              LD      A,67
   \   0081  320400            LD      (g_viewpic_vars+4),A
     62                       return RESULT_SD_OUT;
   \   0084  213600            LD      HL,54
     63                      }
   \   0087  C39703            JP      LWRD ?0062
   \   008A            ?0010:
   \   008A            ?0008:
     64                   }
     65          
     66                 if (result != 0)
   \   008A  DDE5              PUSH    IX
   \   008C  E1                POP     HL
   \   008D  7D                LD      A,L
   \   008E  B4                OR      H
   \   008F  C29403            JP      NZ,?0036
   \   0092            ?0011:
     67                      return result;
   \   0092            ?0012:
     68          
     69                  BankSwitch((unsigned long)FSELInit >> 16);
   \   0092  1E00              LD      E,BYTE3 fselInit
   \   0094  CD0000            CALL    LWRD BankSwitch
     70                  fselGetLocation(& g_viewpic_vars.location);
   \   0097  110400            LD      DE,g_viewpic_vars+4
   \   009A  3E00              LD      A,BYTE3 fselGetLocation
   \   009C  210000            LD      HL,LWRD fselGetLocation
   \   009F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     71          
     72           if(!g_card_ok)
   \   00A2  68                LD      L,B
   \   00A3  60                LD      H,B
   \   00A4  39                ADD     HL,SP
   \   00A5  AF                XOR     A
   \   00A6  B6                OR      (HL)
   \   00A7  ED5B0400          LD      DE,(list+4)
   \   00AB  C2E601            JP      NZ,?0014
   \   00AE            ?0013:
     73            //无卡的情况
     74              {
     75                switch (list.active)
   \   00AE  CD0000            CALL    LWRD ?S_S_SWITCH_L06
   \   00B1  0000              DEFW    0
   \   00B3  0500              DEFW    5
   \   00B5  9003              DEFW    ?0061
   \   00B7  C100              DEFW    ?0016
   \   00B9  CC00              DEFW    ?0019
   \   00BB  6801              DEFW    ?0028
   \   00BD  CA01              DEFW    ?0033
   \   00BF  9003              DEFW    ?0061
   \   00C1            ?0016:
     76                  {
     77                      case 0:
     78                        if (g_viewpic_vars.location.disk == 'H')
   \   00C1  3A0400            LD      A,(g_viewpic_vars+4)
   \   00C4  FE48              CP      72
   \   00C6  C28A02            JP      NZ,?0042
   \   00C9            ?0017:
     79                         {
     80                           g_viewpic_vars.location.disk = 'C';
   \   00C9  C30302            JP      LWRD ?0095
     81                           FSELInit(FSEL_TYPE_DSC, FSEL_ALL_REPEATALL,FSEL_TYPE_COMMONDIR, g_viewpic_vars.location.disk); 
     82                           fselGetLocation(& g_viewpic_vars.location);
     83                           need_sel_file=TRUE; 
   \   00CC            ?0018:
     84                         }
     85          
     86                        result=ui_directory(&g_viewpic_vars.location, FSEL_TYPE_DSC, g_comval.langid);
     87                       FSELSetMode(FSEL_ALL_SEQUENCE);
     88                         g_menu_active = FALSE;
     89                       break;
   \   00CC            ?0019:
     90          
     91                    case 1:
     92                      sub_list.strid = play_text;
   \   00CC  211600            LD      HL,play_text
   \   00CF  220900            LD      (sub_list),HL
     93                      sub_list.total = 2;
   \   00D2  210200            LD      HL,2
   \   00D5  220B00            LD      (sub_list+2),HL
     94                      sub_list.active = g_viewpic_vars.playflag;
   \   00D8  ED4B0200          LD      BC,(g_viewpic_vars+2)
   \   00DC  44                LD      B,H
   \   00DD  ED430D00          LD      (sub_list+4),BC
     95                      sub_list.string_id = g_comval.langid;
   \   00E1  3A0C00            LD      A,(g_comval+12)
   \   00E4  321100            LD      (sub_list+8),A
     96                      sub_list.headid = MenuStrID[list.active];
   \   00E7  EB                EX      DE,HL
   \   00E8  29                ADD     HL,HL
   \   00E9  010000            LD      BC,MenuStrID
   \   00EC  09                ADD     HL,BC
   \   00ED  46                LD      B,(HL)
   \   00EE  23                INC     HL
   \   00EF  66                LD      H,(HL)
   \   00F0  68                LD      L,B
   \   00F1  220F00            LD      (sub_list+6),HL
     97                      result = ui_popup_list(&sub_list, NULL);
   \   00F4  4A                LD      C,D

⌨️ 快捷键说明

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