show_stop_menu.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,396 行 · 第 1/5 页

LST
1,396
字号
   \   00C4            ?0011:
   \   00C4  69                LD      L,C
   \   00C5  60                LD      H,B
   \   00C6  181F              JR      ?0017
   \   00C8            ?0012:
    117                      else if(result != 0) return result;
   \   00C8  7D                LD      A,L
   \   00C9  B4                OR      H
   \   00CA  201B              JR      NZ,?0017
   \   00CC            ?0013:
   \   00CC            ?0014:
    118                  g_record_vars.rec_bitrate = g_list.active;
   \   00CC  3A0400            LD      A,(g_list+4)
   \   00CF  320300            LD      (g_record_vars+3),A
    119              if(g_list.active % 2 == 0)
   \   00D2  ED5B0400          LD      DE,(g_list+4)
   \   00D6  03                INC     BC
   \   00D7  03                INC     BC
   \   00D8  CD0000            CALL    LWRD ?SS_MOD_L02
   \   00DB  7B                LD      A,E
   \   00DC  B2                OR      D
   \   00DD  2004              JR      NZ,?0016
   \   00DF            ?0015:
    120                  channelnum = SINGLE_CH;
   \   00DF  3E01              LD      A,1
   \   00E1  1801              JR      ?0144
    121              else
   \   00E3            ?0016:
    122                  channelnum = DUAL_CH;
   \   00E3  79                LD      A,C
   \   00E4            ?0144:
   \   00E4  320000            LD      (channelnum),A
   \   00E7            ?0017:
    123          
    124              return result;
    125          
    126          }
   \   00E7            ?0018:
   \   00E7  DDE1              POP     IX
   \   00E9  D1                POP     DE
   \   00EA  C1                POP     BC
   \   00EB  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00EE            ?0194:
   \   00EE  110000            LD      DE,g_list
   \   00F1  3E00              LD      A,BYTE3 ui_popup_list
   \   00F3  210000            LD      HL,LWRD ui_popup_list
   \   00F6  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   00F9            show_RecFrom_menu:
    127          
    128          /*
    129          ********************************************************************************
    130          * Description : 录音源选择界面
    131          *
    132          * Arguments   :
    133          *
    134          * Returns     :
    135          *
    136          * Notes       :
    137          *
    138          ********************************************************************************
    139          */
    140          int show_RecFrom_menu(void)
    141          {
   \   00F9  C5                PUSH    BC
   \   00FA  D5                PUSH    DE
   \   00FB  DDE5              PUSH    IX
    142              int result;
    143          
    144              //show rec source menu
    145              g_list.active = g_record_vars.rec_source;
   \   00FD  ED4B0400          LD      BC,(g_record_vars+4)
   \   0101  0600              LD      B,0
   \   0103  ED430400          LD      (g_list+4),BC
    146              g_list.total = 3;
   \   0107  210300            LD      HL,3
   \   010A  220200            LD      (g_list+2),HL
    147          
    148              g_list.strid = RecFrom_string;
   \   010D  212000            LD      HL,RecFrom_string
   \   0110  220000            LD      (g_list),HL
    149              g_list.string_id = g_comval.langid;
   \   0113  3A0C00            LD      A,(g_comval+12)
   \   0116  320800            LD      (g_list+8),A
    150              g_list.headid =MRSTOP4;
   \   0119  214801            LD      HL,328
   \   011C  220600            LD      (g_list+6),HL
    151              result=ui_popup_list(&g_list, NULL);
   \   011F  48                LD      C,B
   \   0120  C5                PUSH    BC
   \   0121  C5                PUSH    BC
   \   0122  CDEE00            CALL    LWRD ?0194
   \   0125  F1                POP     AF
   \   0126  F1                POP     AF
   \   0127  E5                PUSH    HL
   \   0128  DDE1              POP     IX
    152          
    153          
    154              if(result == RESULT_IGNORE) return 0;
   \   012A  3E34              LD      A,52
   \   012C  AD                XOR     L
   \   012D  B4                OR      H
   \   012E  2004              JR      NZ,?0020
   \   0130            ?0019:
   \   0130  69                LD      L,C
   \   0131  60                LD      H,B
   \   0132  1831              JR      ?0025
   \   0134            ?0020:
    155              else if(result != 0) return result;
   \   0134  7D                LD      A,L
   \   0135  B4                OR      H
   \   0136  202A              JR      NZ,?0147
   \   0138            ?0021:
   \   0138            ?0022:
    156          
    157              if (g_list.active != g_record_vars.rec_source)
   \   0138  ED4B0400          LD      BC,(g_record_vars+4)
   \   013C  47                LD      B,A
   \   013D  2A0400            LD      HL,(g_list+4)
   \   0140  ED42              SBC     HL,BC
   \   0142  2818              JR      Z,?0024
   \   0144            ?0023:
    158              {
    159                   g_record_vars.rec_source = g_list.active;
   \   0144  3A0400            LD      A,(g_list+4)
   \   0147  320400            LD      (g_record_vars+4),A
    160                   g_rec_from = rec_source_tab[g_record_vars.rec_source];  //更新当前的录音源! 否则ui_draw()将不能被刷新.
   \   014A  4F                LD      C,A
   \   014B  210000            LD      HL,rec_source_tab
   \   014E  09                ADD     HL,BC
   \   014F  7E                LD      A,(HL)
   \   0150  320000            LD      (g_rec_from),A
    161                   Open_RecRoute(g_rec_from);               //根据当前录音源,打开及设置录音通道  add by ccm 04-07-4 16:01
   \   0153  5F                LD      E,A
   \   0154  3E00              LD      A,BYTE3 Open_RecRoute
   \   0156  210000            LD      HL,LWRD Open_RecRoute
   \   0159  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   015C            ?0024:
    162              }
    163              g_record_vars.rec_source= g_list.active;        //保存当前值
   \   015C  3A0400            LD      A,(g_list+4)
   \   015F  320400            LD      (g_record_vars+4),A
    164          
    165              return result;
   \   0162            ?0147:
   \   0162  DDE5              PUSH    IX
   \   0164  E1                POP     HL
    166          
    167          
    168          }
   \   0165            ?0025:
   \   0165  DDE1              POP     IX
   \   0167  D1                POP     DE
   \   0168  C1                POP     BC
   \   0169  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   016C            show_stop_menu:
    169          
    170          /*
    171          ********************************************************************************
    172          * Description : 停止界面菜单
    173          *
    174          * Arguments   :
    175          *
    176          * Returns     : 结果消息或0
    177                  RESULT_DIR_CHANGED    //录音目录改变
    178          *
    179          * Notes       :
    180          *
    181          ********************************************************************************
    182          */
    183          int show_stop_menu(void)
    184          {
   \   016C  C5                PUSH    BC
   \   016D  D5                PUSH    DE
   \   016E  DDE5              PUSH    IX
   \   0170  DD210000          LD      IX,0
   \   0174  DD39              ADD     IX,SP
   \   0176  21F0FF            LD      HL,65520
   \   0179  39                ADD     HL,SP
   \   017A  F9                LD      SP,HL
    185              int result;
    186              static char active=0;    //保持选中菜单的序号
    187              char file[12];
    188              char menu_flag; //0:卡  1://no 卡
    189              g_list.headid = STOPMENU;
   \   017B  21EA01            LD      HL,490
   \   017E  220600            LD      (g_list+6),HL
    190              if (DRV_DetectUD(1) == 0x20)
   \   0181  5C                LD      E,H
   \   0182  CD0000            CALL    LWRD DRV_DetectUD
   \   0185  FE20              CP      32
   \   0187  ED4B0000          LD      BC,(?0026)
   \   018B  0600              LD      B,0
   \   018D  ED430400          LD      (g_list+4),BC
   \   0191  2011              JR      NZ,?0028
   \   0193            ?0027:
    191              {
    192                   g_list.active = active;
    193                   g_list.total = sizeof(stop_string_card) / 2;
   \   0193  210500            LD      HL,5
   \   0196  220200            LD      (g_list+2),HL
    194                   g_list.strid = stop_string_card;
   \   0199  210800            LD      HL,stop_string_card
   \   019C  220000            LD      (g_list),HL
    195                   menu_flag = 0;
   \   019F  DD70F2            LD      (IX-14),B
    196              }
    197              else
   \   01A2  1810              JR      ?0029
   \   01A4            ?0028:
    198              {
    199          
    200                  g_list.active = active;
    201                  g_list.total = 4;
   \   01A4  210400            LD      HL,4
   \   01A7  220200            LD      (g_list+2),HL
    202                  g_list.strid = stop_string;
   \   01AA  210000            LD      HL,stop_string
   \   01AD  220000            LD      (g_list),HL
    203                  menu_flag = 1;
   \   01B0  DD36F201          LD      (IX-14),1
   \   01B4            ?0029:
    204              }
    205          
    206              g_list.string_id = g_comval.langid;
   \   01B4  3A0C00            LD      A,(g_comval+12)
   \   01B7  320800            LD      (g_list+8),A
    207          
    208              ui_auto_update = FALSE;
   \   01BA  AF                XOR     A
   \   01BB  320000            LD      (ui_auto_update),A
    209              result = ui_popup_list(&g_list, NULL);
   \   01BE  48                LD      C,B
   \   01BF  C5                PUSH    BC
   \   01C0  C5                PUSH    BC
   \   01C1  CDEE00            CALL    LWRD ?0194
   \   01C4  F1                POP     AF
   \   01C5  F1                POP     AF
   \   01C6  DD75F0            LD      (IX-16),L
   \   01C9  DD74F1            LD      (IX-15),H
    210              ui_auto_update = TRUE;
   \   01CC  3E01              LD      A,1
   \   01CE  320000            LD      (ui_auto_update),A
    211          
    212              if(result == RESULT_IGNORE) return 0;
   \   01D1  3E34              LD      A,52
   \   01D3  AD                XOR     L
   \   01D4  B4                OR      H
   \   01D5  CADA03            JP      Z,?0081
   \   01D8            ?0030:
   \   01D8            ?0031:
    213              else if(result != 0) return result;
   \   01D8  7D                LD      A,L
   \   01D9  B4                OR      H
   \   01DA  C2B403            JP      NZ,?0160
   \   01DD            ?0032:
   \   01DD            ?0033:
    214          
    215              active = g_list.active;
   \   01DD  3A0400            LD      A,(g_list+4)
   \   01E0  320000            LD      (?0026),A
    216              if(menu_flag==0)
   \   01E3  AF                XOR     A
   \   01E4  DDB6F2            OR      (IX-14)
   \   01E7  200A              JR      NZ,?0037
   \   01E9            ?0034:
    217              {
    218                  if (DRV_DetectUD(1) != 0x20)
   \   01E9  1E01              LD      E,1
   \   01EB  CD0000            CALL    LWRD DRV_DetectUD
   \   01EE  FE20              CP      32
   \   01F0  C27B03            JP      NZ,?0173
   \   01F3            ?0036:
    219                  {
    220                      show_error(CARDPULL);//显示卡拔出
    221                      g_record_vars.location.disk = 'C';
    222                      fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
    223                      fselGetLocation(&g_record_vars.location);
    224                      //return RESULT_SD_OUT;
    225                      make_dirname();
    226                      return RESULT_DIR_CHANGED;

⌨️ 快捷键说明

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