show_stop_menu.lst

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

LST
1,396
字号
    330                                   channelnum = SINGLE_CH;
   \   032A  3E01              LD      A,1
   \   032C  320000            LD      (channelnum),A
   \   032F            ?0068:
    331                                 }
    332                                  
    333                         //g_record_vars.location.filename[0] = 0;
    334                                 memset(g_record_vars.location.filename,0,12);
   \   032F  010C00            LD      BC,12
   \   0332  CDEC03            CALL    LWRD ?0196
    335                      }
    336                      else
   \   0335  181C              JR      ?0071
   \   0337            ?0064:
    337                      {
    338                              memcpy(file, g_record_vars.location.filename,12);
   \   0337  0E0C              LD      C,12
   \   0339  210400            LD      HL,4
   \   033C  39                ADD     HL,SP
   \   033D  EB                EX      DE,HL
   \   033E  212400            LD      HL,g_record_vars+36
   \   0341  EDB0              LDIR
    339                              g_record_vars.location.filename[0] = 0;
   \   0343  AF                XOR     A
   \   0344  322400            LD      (g_record_vars+36),A
    340                              fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk); 
   \   0347  210A00            LD      HL,g_record_vars+10
   \   034A  4E                LD      C,(HL)
   \   034B  C5                PUSH    BC
   \   034C  48                LD      C,B
   \   034D  C5                PUSH    BC
   \   034E  CDF303            CALL    LWRD ?0197
   \   0351  F1                POP     AF
   \   0352  F1                POP     AF
   \   0353            ?0071:
    341                      }
    342          
    343                      fselGetLocation(&g_record_vars.location);
   \   0353  CDFF03            CALL    LWRD ?0198
    344                      result =  ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
   \   0356  C5                PUSH    BC
   \   0357  CD0F04            CALL    LWRD ?0199
   \   035A  F1                POP     AF
   \   035B  DD75F0            LD      (IX-16),L
   \   035E  DD74F1            LD      (IX-15),H
    345                      memcpy(g_record_vars.location.filename, file, 12);
   \   0361  010C00            LD      BC,12
   \   0364  112400            LD      DE,g_record_vars+36
   \   0367  210400            LD      HL,4
   \   036A  39                ADD     HL,SP
   \   036B  EDB0              LDIR
    346                      g_menu_active = FALSE;
   \   036D  AF                XOR     A
   \   036E  320000            LD      (g_menu_active),A
    347          
    348                      if (result == RESULT_SD_OUT)
   \   0371  3E36              LD      A,54
   \   0373  DDAEF0            XOR     (IX-16)
   \   0376  DDB6F1            OR      (IX-15)
   \   0379  2021              JR      NZ,?0073
   \   037B            ?0072:
    349                      {
    350                                  show_error(CARDPULL);//显示卡拔出
   \   037B            ?0173:
   \   037B  119101            LD      DE,401
   \   037E  CD2404            CALL    LWRD ?0201
    351                                  g_record_vars.location.disk = 'C';
   \   0381  3E43              LD      A,67
   \   0383  320A00            LD      (g_record_vars+10),A
    352                                  fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
   \   0386  4F                LD      C,A
   \   0387  C5                PUSH    BC
   \   0388  48                LD      C,B
   \   0389  C5                PUSH    BC
   \   038A  CDF303            CALL    LWRD ?0197
   \   038D  F1                POP     AF
   \   038E  F1                POP     AF
    353                                  fselGetLocation(&g_record_vars.location);
   \   038F  110A00            LD      DE,g_record_vars+10
   \   0392  3E00              LD      A,BYTE3 fselGetLocation
   \   0394  210000            LD      HL,LWRD fselGetLocation
   \   0397  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    354                                  make_dirname();
   \   039A  1820              JR      ?0077
    355                                  return RESULT_DIR_CHANGED;
    356                                  //return 0;
    357                      }
   \   039C            ?0073:
    358          
    359                      if(result == RESULT_IGNORE)
   \   039C  3E34              LD      A,52
   \   039E  DDAEF0            XOR     (IX-16)
   \   03A1  DDB6F1            OR      (IX-15)
   \   03A4  2006              JR      NZ,?0075
   \   03A6            ?0074:
    360                         result= 0;
   \   03A6  DD77F0            LD      (IX-16),A
   \   03A9  DD77F1            LD      (IX-15),A
   \   03AC            ?0075:
    361                      if(result != 0) return result;
   \   03AC  DD7EF0            LD      A,(IX-16)
   \   03AF  DDB6F1            OR      (IX-15)
   \   03B2  2808              JR      Z,?0077
   \   03B4            ?0076:
   \   03B4            ?0160:
   \   03B4  DD6EF0            LD      L,(IX-16)
   \   03B7  DD66F1            LD      H,(IX-15)
    362                      else
   \   03BA  1820              JR      ?0082
   \   03BC            ?0077:
    363                       {
    364                         make_dirname();
   \   03BC  3E00              LD      A,BYTE3 make_dirname
   \   03BE  210000            LD      HL,LWRD make_dirname
   \   03C1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    365                         return RESULT_DIR_CHANGED;
   \   03C4  216700            LD      HL,103
    366                      }
   \   03C7  1813              JR      ?0082
   \   03C9            ?0078:
    367          
    368          
    369          
    370                  case 2:
    371                      result =  show_RecFrom_menu();
   \   03C9  3E00              LD      A,BYTE3 show_RecFrom_menu
   \   03CB  21F900            LD      HL,LWRD show_RecFrom_menu
   \   03CE  1805              JR      ?0167
    372          
    373                      return result;
    374          
    375                  case 3:        //rec type
   \   03D0            ?0079:
    376                      result =  show_rectype_menu();
   \   03D0  3E00              LD      A,BYTE3 show_rectype_menu
   \   03D2  219100            LD      HL,LWRD show_rectype_menu
   \   03D5            ?0167:
   \   03D5  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    377          
    378                      return result;
    379                  //break;
    380                  case 4:        //exit
   \   03D8  1802              JR      ?0082
   \   03DA            ?0080:
    381                      return 0;
    382                  default:
   \   03DA            ?0081:
   \   03DA            ?0053:
    383                  //ASSERT(FALSE);
    384                  ;
    385              }//switch
    386              }
    387              return 0;
   \   03DA  69                LD      L,C
   \   03DB  60                LD      H,B
    388          
    389          }
   \   03DC            ?0082:
   \   03DC  DDF9              LD      SP,IX
   \   03DE  DDE1              POP     IX
   \   03E0  D1                POP     DE
   \   03E1  C1                POP     BC
   \   03E2  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03E5            ?0195:
   \   03E5  3E43              LD      A,67
   \   03E7  320A00            LD      (g_record_vars+10),A
   \   03EA  0E0C              LD      C,12
   \   03EC            ?0196:
   \   03EC  112400            LD      DE,g_record_vars+36
   \   03EF  68                LD      L,B
   \   03F0  C30000            JP      LWRD ?MEMSET_L11
   \   03F3            ?0197:
   \   03F3  0E07              LD      C,7
   \   03F5  1E02              LD      E,2
   \   03F7  3E00              LD      A,BYTE3 fselInit
   \   03F9  210000            LD      HL,LWRD fselInit
   \   03FC  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   03FF            ?0198:
   \   03FF  110A00            LD      DE,g_record_vars+10
   \   0402  3E00              LD      A,BYTE3 fselGetLocation
   \   0404  210000            LD      HL,LWRD fselGetLocation
   \   0407  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   040A  210C00            LD      HL,g_comval+12
   \   040D  4E                LD      C,(HL)
   \   040E  C9                RET
   \   040F            ?0199:
   \   040F  0E02              LD      C,2
   \   0411  110A00            LD      DE,g_record_vars+10
   \   0414  3E00              LD      A,BYTE3 ui_directory
   \   0416  210000            LD      HL,LWRD ui_directory
   \   0419  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   041C            ?0200:
   \   041C  3E43              LD      A,67
   \   041E  320A00            LD      (g_record_vars+10),A
   \   0421  119401            LD      DE,404
   \   0424            ?0201:
   \   0424  3E00              LD      A,BYTE3 show_error
   \   0426  210000            LD      HL,LWRD show_error
   \   0429  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   042C            fm_show_stop_menu:
    390          
    391          /*
    392          ********************************************************************************
    393          * Description : FM录音停止菜单界面
    394          *
    395          * Arguments   :
    396          *
    397          * Returns     : 结果消息或0
    398                  RESULT_DIR_CHANGED  //录音目录改变
    399          *
    400          * Notes       :
    401          *
    402          ********************************************************************************
    403          */
    404          
    405          int fm_show_stop_menu(void)
    406          {
   \   042C  C5                PUSH    BC
   \   042D  D5                PUSH    DE
   \   042E  DDE5              PUSH    IX
   \   0430  DD210000          LD      IX,0
   \   0434  DD39              ADD     IX,SP
   \   0436  21F0FF            LD      HL,65520
   \   0439  39                ADD     HL,SP
   \   043A  F9                LD      SP,HL
    407              int result;
    408              static char active=0;   //保持选中菜单的序号
    409              char file[12];
    410              char menu_flag; //0:卡  1://no 卡
    411              g_list.headid = STOPMENU;
   \   043B  21EA01            LD      HL,490
   \   043E  220600            LD      (g_list+6),HL
    412              if (DRV_DetectUD(1) == 0x20)  //card
   \   0441  5C                LD      E,H
   \   0442  CD0000            CALL    LWRD DRV_DetectUD
   \   0445  FE20              CP      32
   \   0447  ED4B0100          LD      BC,(?0083)
   \   044B  0600              LD      B,0
   \   044D  ED430400          LD      (g_list+4),BC
   \   0451  2011              JR      NZ,?0085
   \   0453            ?0084:
    413              {
    414                  g_list.active = active;
    415                  g_list.total = sizeof(fm_stop_string_card) / 2;
   \   0453  210400            LD      HL,4
   \   0456  220200            LD      (g_list+2),HL
    416                  g_list.strid = fm_stop_string_card;
   \   0459  211800            LD      HL,fm_stop_string_card
   \   045C  220000            LD      (g_list),HL
    417                  menu_flag = 0;
   \   045F  DD70F2            LD      (IX-14),B
    418              }
    419              else
   \   0462  1810              JR      ?0086
   \   0464            ?0085:
    420              {
    421                  g_list.active = active;
    422                  g_list.total = 3;
   \   0464  210300            LD      HL,3
   \   0467  220200            LD      (g_list+2),HL
    423                  g_list.strid = fm_stop_string;
   \   046A  211200            LD      HL,fm_stop_string
   \   046D  220000            LD      (g_list),HL
    424                  menu_flag = 1;
   \   0470  DD36F201          LD      (IX-14),1
   \   0474            ?0086:
    425              }
    426          
    427              g_list.string_id = g_comval.langid;
   \   0474  3A0C00            LD      A,(g_comval+12)
   \   0477  320800            LD      (g_list+8),A
    428          
    429              result = ui_popup_list(&g_list, NULL);
   \   047A  48                LD      C,B
   \   047B  C5                PUSH    BC
   \   047C  C5                PUSH    BC
   \   047D  CDEE00            CALL    LWRD ?0194
   \   0480  F1                POP     AF
   \   0481  F1                POP     AF
   \   0482  DD75F0            LD      (IX-16),L

⌨️ 快捷键说明

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