show_stop_menu.lst

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

LST
1,396
字号
   \   0485  DD74F1            LD      (IX-15),H
    430          
    431              if(result == RESULT_IGNORE) return 0;
   \   0488  3E34              LD      A,52
   \   048A  AD                XOR     L
   \   048B  B4                OR      H
   \   048C  CA8106            JP      Z,?0137
   \   048F            ?0087:
   \   048F            ?0088:
    432              else if(result != 0) return result;
   \   048F  7D                LD      A,L
   \   0490  B4                OR      H
   \   0491  C26206            JP      NZ,?0184
   \   0494            ?0089:
   \   0494            ?0090:
    433              active = g_list.active;
   \   0494  3A0400            LD      A,(g_list+4)
   \   0497  320100            LD      (?0083),A
    434              if(menu_flag==0)
   \   049A  AF                XOR     A
   \   049B  DDB6F2            OR      (IX-14)
   \   049E  200A              JR      NZ,?0094
   \   04A0            ?0091:
    435              {
    436                  if (DRV_DetectUD(1) != 0x20)
   \   04A0  1E01              LD      E,1
   \   04A2  CD0000            CALL    LWRD DRV_DetectUD
   \   04A5  FE20              CP      32
   \   04A7  C22906            JP      NZ,?0192
   \   04AA            ?0093:
    437                  {
    438                      show_error(CARDPULL);//显示卡拔出
    439                      g_record_vars.location.disk = 'C';
    440                      fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
    441                      fselGetLocation(&g_record_vars.location);
    442                      //return RESULT_SD_OUT;
    443                       make_dirname();
    444                      return  RESULT_DIR_CHANGED;
    445                  }
   \   04AA            ?0094:
   \   04AA            ?0092:
    446              }
    447          
    448              if(menu_flag)
   \   04AA  AF                XOR     A
   \   04AB  DDB6F2            OR      (IX-14)
   \   04AE  ED5B0400          LD      DE,(g_list+4)
   \   04B2  286D              JR      Z,?0096
   \   04B4            ?0095:
    449              {
    450              switch( g_list.active )
   \   04B4  CD0000            CALL    LWRD ?S_S_SWITCH_L06
   \   04B7  0000              DEFW    0
   \   04B9  0300              DEFW    3
   \   04BB  8106              DEFW    ?0137
   \   04BD  C304              DEFW    ?0098
   \   04BF  7706              DEFW    ?0135
   \   04C1  8106              DEFW    ?0137
   \   04C3            ?0098:
    451              {
    452              case 0:        //local folder
    453                  if(g_record_vars.location.disk=='H')
   \   04C3  3A0A00            LD      A,(g_record_vars+10)
   \   04C6  FE48              CP      72
   \   04C8  2005              JR      NZ,?0100
   \   04CA            ?0099:
    454                  {
    455                          g_record_vars.location.disk='C' ;
    456          
    457                          memset(g_record_vars.location.filename,0,12);
   \   04CA  CDE503            CALL    LWRD ?0195
    458                      }
    459                  else
   \   04CD  1810              JR      ?0101
   \   04CF            ?0100:
    460                  {
    461                         memcpy(file, g_record_vars.location.filename,12);
   \   04CF  0E0C              LD      C,12
   \   04D1  210400            LD      HL,4
   \   04D4  39                ADD     HL,SP
   \   04D5  EB                EX      DE,HL
   \   04D6  212400            LD      HL,g_record_vars+36
   \   04D9  EDB0              LDIR
    462                          g_record_vars.location.filename[0] = 0;
   \   04DB  AF                XOR     A
   \   04DC  322400            LD      (g_record_vars+36),A
   \   04DF            ?0101:
    463                  }
    464          
    465                  fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
   \   04DF  210A00            LD      HL,g_record_vars+10
   \   04E2  4E                LD      C,(HL)
   \   04E3  C5                PUSH    BC
   \   04E4  0E00              LD      C,0
   \   04E6  C5                PUSH    BC
   \   04E7  CDF303            CALL    LWRD ?0197
   \   04EA  F1                POP     AF
   \   04EB  F1                POP     AF
    466                  fselGetLocation(&g_record_vars.location);
   \   04EC  CDFF03            CALL    LWRD ?0198
    467                  result =  ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
   \   04EF  C5                PUSH    BC
   \   04F0  CD0F04            CALL    LWRD ?0199
   \   04F3  F1                POP     AF
   \   04F4  DD75F0            LD      (IX-16),L
   \   04F7  DD74F1            LD      (IX-15),H
    468                  memcpy(g_record_vars.location.filename, file, 12);
   \   04FA  010C00            LD      BC,12
   \   04FD  112400            LD      DE,g_record_vars+36
   \   0500  210400            LD      HL,4
   \   0503  39                ADD     HL,SP
   \   0504  EDB0              LDIR
    469                  g_menu_active = FALSE;
   \   0506  AF                XOR     A
   \   0507  320000            LD      (g_menu_active),A
    470                  if(result == RESULT_IGNORE) return 0;
   \   050A  3E34              LD      A,52
   \   050C  DDAEF0            XOR     (IX-16)
   \   050F  DDB6F1            OR      (IX-15)
   \   0512  CA8106            JP      Z,?0137
   \   0515            ?0102:
   \   0515            ?0103:
    471                  else if(result != 0) return result;
   \   0515  DD7EF0            LD      A,(IX-16)
   \   0518  DDB6F1            OR      (IX-15)
   \   051B  CA6A06            JP      Z,?0134
   \   051E            ?0104:
   \   051E  C36206            JP      LWRD ?0184
    472                  else
   \   0521            ?0105:
    473                       {
    474                         make_dirname();
    475                         return RESULT_DIR_CHANGED;
    476                      }
   \   0521            ?0106:
    477          
    478          
    479              case 1:        //rec type
    480                  result =  show_rectype_menu();
    481          
    482                  return result;
    483                  //break;
    484              case 2:        //exit
   \   0521            ?0107:
    485                  return 0;
    486              default:
   \   0521            ?0108:
   \   0521            ?0097:
    487                  //ASSERT(FALSE);
    488                  ;
    489              }//switch
    490             }
    491              else
   \   0521            ?0096:
    492              {
    493                  switch( g_list.active )
   \   0521  CD0000            CALL    LWRD ?S_S_SWITCH_L06
   \   0524  0000              DEFW    0
   \   0526  0400              DEFW    4
   \   0528  8106              DEFW    ?0137
   \   052A  3205              DEFW    ?0111
   \   052C  9505              DEFW    ?0119
   \   052E  7706              DEFW    ?0135
   \   0530  8106              DEFW    ?0137
   \   0532            ?0111:
    494                  {
    495                  case 0:        //local folder
    496          
    497                      if(g_record_vars.location.disk=='H')
   \   0532  3A0A00            LD      A,(g_record_vars+10)
   \   0535  FE48              CP      72
   \   0537  2005              JR      NZ,?0113
   \   0539            ?0112:
    498                      {
    499                              g_record_vars.location.disk='C' ;
    500          
    501                              memset(g_record_vars.location.filename,0,12);
   \   0539  CDE503            CALL    LWRD ?0195
    502                          }
    503                      else
   \   053C  1810              JR      ?0114
   \   053E            ?0113:
    504                      {
    505                             memcpy(file, g_record_vars.location.filename,12);
   \   053E  0E0C              LD      C,12
   \   0540  210400            LD      HL,4
   \   0543  39                ADD     HL,SP
   \   0544  EB                EX      DE,HL
   \   0545  212400            LD      HL,g_record_vars+36
   \   0548  EDB0              LDIR
    506                              g_record_vars.location.filename[0] = 0;
   \   054A  AF                XOR     A
   \   054B  322400            LD      (g_record_vars+36),A
   \   054E            ?0114:
    507                      }
    508          
    509                      fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
   \   054E  210A00            LD      HL,g_record_vars+10
   \   0551  4E                LD      C,(HL)
   \   0552  C5                PUSH    BC
   \   0553  0E00              LD      C,0
   \   0555  C5                PUSH    BC
   \   0556  CDF303            CALL    LWRD ?0197
   \   0559  F1                POP     AF
   \   055A  F1                POP     AF
    510                      fselGetLocation(&g_record_vars.location);
   \   055B  CDFF03            CALL    LWRD ?0198
    511                      result =  ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
   \   055E  C5                PUSH    BC
   \   055F  CD0F04            CALL    LWRD ?0199
   \   0562  F1                POP     AF
   \   0563  DD75F0            LD      (IX-16),L
   \   0566  DD74F1            LD      (IX-15),H
    512                      memcpy(g_record_vars.location.filename, file, 12);
   \   0569  010C00            LD      BC,12
   \   056C  112400            LD      DE,g_record_vars+36
   \   056F  210400            LD      HL,4
   \   0572  39                ADD     HL,SP
   \   0573  EDB0              LDIR
    513                      g_menu_active = FALSE;
   \   0575  AF                XOR     A
   \   0576  320000            LD      (g_menu_active),A
    514                      if(result == RESULT_IGNORE)
   \   0579  3E34              LD      A,52
   \   057B  DDAEF0            XOR     (IX-16)
   \   057E  DDB6F1            OR      (IX-15)
   \   0581  2006              JR      NZ,?0116
   \   0583            ?0115:
    515                         result= 0;
   \   0583  DD77F0            LD      (IX-16),A
   \   0586  DD77F1            LD      (IX-15),A
   \   0589            ?0116:
    516                      if(result != 0) return result;
   \   0589  DD7EF0            LD      A,(IX-16)
   \   058C  DDB6F1            OR      (IX-15)
   \   058F  CA6A06            JP      Z,?0134
   \   0592            ?0117:
   \   0592  C36206            JP      LWRD ?0184
    517                  else
   \   0595            ?0118:
    518                       {
    519                         make_dirname();
    520                         return RESULT_DIR_CHANGED;
    521                      }
   \   0595            ?0119:
    522          
    523                     case 1:        //card folder
    524          
    525                      if(g_record_vars.location.disk=='C')
   \   0595  3A0A00            LD      A,(g_record_vars+10)
   \   0598  FE43              CP      67
   \   059A  2049              JR      NZ,?0121
   \   059C            ?0120:
    526                      {
    527                              g_record_vars.location.disk='H' ;
   \   059C  3E48              LD      A,72
   \   059E  320A00            LD      (g_record_vars+10),A
    528                              result=fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
   \   05A1  4F                LD      C,A
   \   05A2  C5                PUSH    BC
   \   05A3  48                LD      C,B
   \   05A4  C5                PUSH    BC
   \   05A5  CDF303            CALL    LWRD ?0197
   \   05A8  F1                POP     AF
   \   05A9  F1                POP     AF
    529                              if(!result)
   \   05AA  7D                LD      A,L
   \   05AB  B7                OR      A
   \   05AC  201B              JR      NZ,?0123
   \   05AE            ?0122:
    530                              {
    531                                  g_record_vars.location.disk='C';
    532                                  show_error(CREADERR);//显示卡错
   \   05AE  CD1C04            CALL    LWRD ?0200
    533                                  fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
   \   05B1  210A00            LD      HL,g_record_vars+1

⌨️ 快捷键说明

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