sub_function1.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 418 行 · 第 1/2 页

LST
418
字号
     73                  FSELSetMode( FSEL_ALL_REPEATALL );//PLAY 时按键
     74                      break;                                          
   \   007F            ?0023:
   \   007F  FE06              CP      6
   \   0081  2016              JR      NZ,?0027
     75                  case FSEL_DIR_INTRO:
     76                  FSELSetMode(g_amv_vars.repeat_mode);   
   \   0083  ED5B0300          LD      DE,(g_amv_vars+3)
   \   0087  3E00              LD      A,BYTE3 fselSetMode
   \   0089  210000            LD      HL,LWRD fselSetMode
   \   008C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   008F            ?0024:
     77          
     78          
     79                  default:
     80                      FSELSetMode(g_amv_vars.repeat_mode);//
   \   008F  1808              JR      ?0027
     81                      break;
   \   0091            ?0021:
   \   0091            ?0020:
     82                  }
     83              }
     84              else if (mod == Stop_key)
   \   0091  AF                XOR     A
   \   0092  B6                OR      (HL)
   \   0093  2004              JR      NZ,?0027
   \   0095            ?0026:
     85              {//
     86                  FSELSetMode(FSEL_ALL_REPEATALL);//STOP时按键
   \   0095            ?0052:
   \   0095  1E04              LD      E,4
   \   0097  1804              JR      ?0048
     87              }
     88              else
   \   0099            ?0027:
     89              {//正常播放的情况
     90                  FSELSetMode(g_amv_vars.repeat_mode);
   \   0099  ED5B0300          LD      DE,(g_amv_vars+3)
   \   009D            ?0048:
   \   009D  3E00              LD      A,BYTE3 fselSetMode
   \   009F  210000            LD      HL,LWRD fselSetMode
   \   00A2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00A5            ?0028:
   \   00A5            ?0025:
     91              }
     92          
     93              switch (Direct)
   \   00A5  210200            LD      HL,2
   \   00A8  39                ADD     HL,SP
   \   00A9  5E                LD      E,(HL)
   \   00AA  CD0000            CALL    LWRD ?C_S_SWITCH_L06
   \   00AD  00                DEFB    0
   \   00AE  0500              DEFW    5
   \   00B0  E000              DEFW    ?0035
   \   00B2  E300              DEFW    ?0029
   \   00B4  E300              DEFW    ?0029
   \   00B6  BC00              DEFW    ?0032
   \   00B8  C200              DEFW    ?0033
   \   00BA  CC00              DEFW    ?0034
   \   00BC            ?0030:
     94              {
     95                  case Music_Reset_Head:
     96                      break;
   \   00BC            ?0031:
     97          
     98                  case Music_Reset_End:
     99                      break;
   \   00BC            ?0032:
    100          
    101                  case Music_Cur:
    102                      result = TRUE;
   \   00BC  2B                DEC     HL
   \   00BD  2B                DEC     HL
   \   00BE  3601              LD      (HL),1
    103                      break;
   \   00C0  1821              JR      ?0029
   \   00C2            ?0033:
    104          
    105                  case Music_Next:
    106                      result = FSELGetNext(g_amv_vars.location.filename);
   \   00C2  111F00            LD      DE,g_amv_vars+31
   \   00C5  3E00              LD      A,BYTE3 fselGetNextFile
   \   00C7  210000            LD      HL,LWRD fselGetNextFile
   \   00CA  1808              JR      ?0049
    107                      break;
   \   00CC            ?0034:
    108          
    109                  case Music_Prev:
    110                      result = FSELGetPrev(g_amv_vars.location.filename);
   \   00CC  111F00            LD      DE,g_amv_vars+31
   \   00CF  3E00              LD      A,BYTE3 fselGetPrevFile
   \   00D1  210000            LD      HL,LWRD fselGetPrevFile
   \   00D4            ?0049:
   \   00D4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00D7  E5                PUSH    HL
   \   00D8  210200            LD      HL,2
   \   00DB  39                ADD     HL,SP
   \   00DC  C1                POP     BC
   \   00DD  71                LD      (HL),C
    111                      break;
   \   00DE  1803              JR      ?0029
   \   00E0            ?0035:
    112          
    113                  default:
    114                      return FALSE;
   \   00E0  69                LD      L,C
    115              }
   \   00E1  1859              JR      ?0038
   \   00E3            ?0029:
    116          
    117              if (!result)
   \   00E3  210000            LD      HL,0
   \   00E6  39                ADD     HL,SP
   \   00E7  AF                XOR     A
   \   00E8  B6                OR      (HL)
   \   00E9  2003              JR      NZ,?0037
   \   00EB            ?0036:
    118              {
    119                  return result;
   \   00EB  6F                LD      L,A
    120              }
   \   00EC  184E              JR      ?0038
   \   00EE            ?0037:
    121              //取当前歌曲数状态
    122              g_musicamount = (WORD)FSELGetTotal();
   \   00EE  3E00              LD      A,BYTE3 fselGetTotal
   \   00F0  210000            LD      HL,LWRD fselGetTotal
   \   00F3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00F6  7D                LD      A,L
   \   00F7  320000            LD      (g_musicamount),A
    123              g_musicsequence = (WORD)FSELGetNo();
   \   00FA  3E00              LD      A,BYTE3 fselGetNo
   \   00FC  210000            LD      HL,LWRD fselGetNo
   \   00FF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0102  7D                LD      A,L
   \   0103  320000            LD      (g_musicsequence),A
    124              FSELSetMode(g_amv_vars.repeat_mode);
   \   0106  ED5B0300          LD      DE,(g_amv_vars+3)
   \   010A  3E00              LD      A,BYTE3 fselSetMode
   \   010C  210000            LD      HL,LWRD fselSetMode
   \   010F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    125          
    126              //确保选择器与AP的目录对应
    127              fselGetLocation(& g_amv_vars.location);
   \   0112  110500            LD      DE,g_amv_vars+5
   \   0115  3E00              LD      A,BYTE3 fselGetLocation
   \   0117  210000            LD      HL,LWRD fselGetLocation
   \   011A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    128              //获取目录的长名
    129              make_dirname();
   \   011D  3E00              LD      A,BYTE3 make_dirname
   \   011F  210000            LD      HL,LWRD make_dirname
   \   0122  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    130          
    131              //检测Music的类型
    132              g_currentMusicType = CheckMusicType(g_amv_vars.location.filename);
   \   0125  111F00            LD      DE,g_amv_vars+31
   \   0128  3E00              LD      A,BYTE3 CheckMusicType
   \   012A  210000            LD      HL,LWRD CheckMusicType
   \   012D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0130  7D                LD      A,L
   \   0131  320000            LD      (g_currentMusicType),A
    133              //找歌词文件并打开
    134          
    135             //清 WATCH_DOG
    136              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   0134  DB4E              IN      A,(78)
   \   0136  CBDF              SET     3,A
   \   0138  D34E              OUT     (78),A
    137          
    138              return TRUE;
   \   013A  2E01              LD      L,1
    139          }
   \   013C            ?0038:
   \   013C  F1                POP     AF
   \   013D  F1                POP     AF
   \   013E  F1                POP     AF
   \   013F  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0142            SelectCurMusic:
    140          
    141          //===================重选当前歌曲=========================
    142          void SelectCurMusic(void)
    143          {
   \   0142  C5                PUSH    BC
   \   0143  D5                PUSH    DE
    144                  ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
   \   0144  0E01              LD      C,1
   \   0146  1E02              LD      E,2
   \   0148  3E00              LD      A,BYTE3 ChangeMusic
   \   014A  215300            LD      HL,LWRD ChangeMusic
   \   014D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    145                  GetInformation();          //取文件信息
   \   0150  3E00              LD      A,BYTE3 GetInformation
   \   0152  210000            LD      HL,LWRD GetInformation
   \   0155  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    146          }
   \   0158  D1                POP     DE
   \   0159  C1                POP     BC
   \   015A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    147          //========================================================
   \   015D                    END

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

⌨️ 快捷键说明

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