ui_stop.lst

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

LST
1,133
字号
   \   00EB  110000            LD      DE,g_TagInfoBuf1
   \   00EE  210000            LD      HL,g_TagInfoBuf
   \   00F1  EDB0              LDIR
   \   00F3  112100            LD      DE,g_music_vars+33
   \   00F6  3E00              LD      A,BYTE3 fselGetPrevFile
   \   00F8  210000            LD      HL,LWRD fselGetPrevFile
   \   00FB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00FE  110700            LD      DE,g_music_vars+7
   \   0101  3E00              LD      A,BYTE3 fselGetLocation
   \   0103  210000            LD      HL,LWRD fselGetLocation
   \   0106  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0109  ED5B0100          LD      DE,(g_music_vars+1)
   \   010D  3E00              LD      A,BYTE3 fselSetMode
   \   010F  210000            LD      HL,LWRD fselSetMode
   \   0112  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0115  3E00              LD      A,BYTE3 GetInformation
   \   0117  210000            LD      HL,LWRD GetInformation
   \   011A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   011D  010000            LD      BC,g_Openparam
   \   0120  1E01              LD      E,1
   \   0122  3E00              LD      A,BYTE3 musicpSendCommand
   \   0124  210000            LD      HL,LWRD musicpSendCommand
   \   0127  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   012A  010000            LD      BC,0
   \   012D  1E03              LD      E,3
   \   012F  3E00              LD      A,BYTE3 musicpSendCommand
   \   0131  210000            LD      HL,LWRD musicpSendCommand
   \   0134  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0137  2600              LD      H,0
   \   0139  220000            LD      (g_result),HL
   \   013C  AF                XOR     A
   \   013D  320100            LD      (CaltimeFlag),A
   \   0140  320000            LD      (WaitForCaltimeCNT),A
   \   0143  320000            LD      (ui_auto_update),A
   \   0146  210000            LD      HL,UpDisplayFlag
   \   0149  7E                LD      A,(HL)
   \   014A  F6C1              OR      193
   \   014C  77                LD      (HL),A
   \   014D  23                INC     HL
   \   014E  36FF              LD      (HL),255
   \   0150  210000            LD      HL,UpDisplayFlag
   \   0153  CB86              RES     0,(HL)
   \   0155  3E01              LD      A,1
   \   0157  320000            LD      (need_draw),A
   \   015A  C9                RET
   \   015B            ?0138:
   \   015B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   015E  220000            LD      (g_result),HL
   \   0161  C9                RET
   \   0162            ?0141:
   \   0162  3E00              LD      A,BYTE3 ChangeMusic
   \   0164  210000            LD      HL,LWRD ChangeMusic
   \   0167  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   016A  2600              LD      H,0
   \   016C  220000            LD      (g_result),HL
   \   016F            ?0139:
   \   016F  1E04              LD      E,4
   \   0171  3E00              LD      A,BYTE3 fselSetMode
   \   0173  210000            LD      HL,LWRD fselSetMode
   \   0176  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0179  112100            LD      DE,g_music_vars+33
   \   017C  3E00              LD      A,BYTE3 fselGetNextFile
   \   017E  210000            LD      HL,LWRD fselGetNextFile
   \   0181  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0184  110700            LD      DE,g_music_vars+7
   \   0187  3E00              LD      A,BYTE3 fselGetLocation
   \   0189  210000            LD      HL,LWRD fselGetLocation
   \   018C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   018F            ?0140:
   \   018F  3E00              LD      A,BYTE3 GetInformation
   \   0191  210000            LD      HL,LWRD GetInformation
   \   0194  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0197            ?0142:
   \   0197  ED5B0100          LD      DE,(g_music_vars+1)
   \   019B  3E00              LD      A,BYTE3 fselSetMode
   \   019D  210000            LD      HL,LWRD fselSetMode
   \   01A0  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   01A3            ?0145:
   \   01A3  4F                LD      C,A
   \   01A4  47                LD      B,A
   \   01A5            ?0144:
   \   01A5  1E13              LD      E,19
   \   01A7            ?0143:
   \   01A7  3E00              LD      A,BYTE3 musicpSendCommand
   \   01A9  210000            LD      HL,LWRD musicpSendCommand
   \   01AC  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   01AF            ui_stop_loop:
     84          //======================================================================================
     85          
     86          int ui_stop_loop()
     87          //int ui_stop()
     88          {
   \   01AF  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   01B2  F0FF              DEFW    65520
   \   01B4  FDE5              PUSH    IY
     89              mp3_play_status_t status_buf;
     90              char key;
     91              char modekeystore = NULL;
   \   01B6  DD36F900          LD      (IX-7),0
   \   01BA            ?0016:
     92              int result;
     93              char i;
     94          
     95          
     96              while(1)
     97              {
     98                  //清空消息池
     99                  result = ap_get_message();
   \   01BA  CD0000            CALL    LWRD ap_get_message
   \   01BD  4F                LD      C,A
   \   01BE  0600              LD      B,0
   \   01C0  C5                PUSH    BC
   \   01C1  FDE1              POP     IY
    100                  if (result == NULL)
   \   01C3  79                LD      A,C
   \   01C4  B7                OR      A
   \   01C5  280B              JR      Z,?0015
   \   01C7            ?0018:
    101                  {
    102                      break;
   \   01C7            ?0019:
    103                  }
    104                  if (result == AP_MSG_STANDBY)
   \   01C7  FDE5              PUSH    IY
   \   01C9  E1                POP     HL
   \   01CA  3E1D              LD      A,29
   \   01CC  AD                XOR     L
   \   01CD  B4                OR      H
   \   01CE  20EA              JR      NZ,?0016
   \   01D0            ?0020:
    105                  {
    106                      //碰到 standby 消息时要优先处理,否则会漏掉 standby 消息
    107                      return RESULT_STANDBY;
   \   01D0  185F              JR      ?0031
    108                  }
   \   01D2            ?0021:
    109              }
    110          
    111          
    112              while (1)
   \   01D2            ?0015:
   \   01D2            ?0023:
    113              {
    114          
    115          
    116                  key = ap_get_message();
   \   01D2  CD0000            CALL    LWRD ap_get_message
   \   01D5  DD77F8            LD      (IX-8),A
    117                  if (need_draw)
   \   01D8  3A0000            LD      A,(need_draw)
   \   01DB  B7                OR      A
   \   01DC  280C              JR      Z,?0026
   \   01DE            ?0025:
    118                  {
    119                      RefreshMainScreen();
   \   01DE  3E00              LD      A,BYTE3 RefreshMainScreen
   \   01E0  210000            LD      HL,LWRD RefreshMainScreen
   \   01E3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    120                      need_draw = FALSE;
   \   01E6  AF                XOR     A
   \   01E7  320000            LD      (need_draw),A
   \   01EA            ?0026:
    121                  }
    122          
    123                  switch (key)
   \   01EA  DD5EF8            LD      E,(IX-8)
   \   01ED  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   01F0  1000              DEFW    16
   \   01F2  03                DEFB    3
   \   01F3  04                DEFB    4
   \   01F4  05                DEFB    5
   \   01F5  06                DEFB    6
   \   01F6  10                DEFB    16
   \   01F7  1C                DEFB    28
   \   01F8  21                DEFB    33
   \   01F9  25                DEFB    37
   \   01FA  26                DEFB    38
   \   01FB  30                DEFB    48
   \   01FC  32                DEFB    50
   \   01FD  37                DEFB    55
   \   01FE  38                DEFB    56
   \   01FF  45                DEFB    69
   \   0200  46                DEFB    70
   \   0201  81                DEFB    129
   \   0202  3904              DEFW    ?0097
   \   0204  3102              DEFW    ?0031
   \   0206  AC03              DEFW    ?0086
   \   0208  8903              DEFW    ?0078
   \   020A  6604              DEFW    ?0027
   \   020C  1A04              DEFW    ?0093
   \   020E  6604              DEFW    ?0027
   \   0210  4E03              DEFW    ?0067
   \   0212  A303              DEFW    ?0082
   \   0214  8003              DEFW    ?0074
   \   0216  3702              DEFW    ?0032
   \   0218  2402              DEFW    ?0028
   \   021A  4803              DEFW    ?0066
   \   021C  AC03              DEFW    ?0086
   \   021E  8903              DEFW    ?0078
   \   0220  C603              DEFW    ?0090
   \   0222  C603              DEFW    ?0090
   \   0224            ?0028:
    124                  {
    125                      case AP_MSG_RTC:
    126                          if (!CaltimeFlag)
   \   0224  3A0100            LD      A,(CaltimeFlag)
   \   0227  B7                OR      A
   \   0228  2004              JR      NZ,?0030
   \   022A            ?0029:
    127                          {
    128                              WaitForCaltimeCNT++;
   \   022A  210000            LD      HL,WaitForCaltimeCNT
   \   022D  34                INC     (HL)
   \   022E            ?0030:
    129                          }
    130                          break;
   \   022E  C36604            JP      LWRD ?0027
   \   0231            ?0031:
    131          
    132                      case AP_KEY_PLAY | AP_KEY_LONG:
    133                          return RESULT_STANDBY;
   \   0231  210200            LD      HL,2
    134                          break;
   \   0234  C36104            JP      LWRD ?0109
   \   0237            ?0032:
   \   0237            ?0034:
    135          
    136                      case AP_KEY_PLAY | AP_KEY_UP:
    137                           while(ap_get_message()!=NULL);    //clear rtc message.
   \   0237  CD0000            CALL    LWRD ap_get_message
   \   023A  B7                OR      A
   \   023B  20FA              JR      NZ,?0032
   \   023D            ?0035:
   \   023D            ?0033:
    138                          if (CaltimeFlag || ifSelBuffToltalTimeFlag)
   \   023D  3A0100            LD      A,(CaltimeFlag)
   \   0240  B7                OR      A
   \   0241  2006              JR      NZ,?0038
   \   0243  3A0000            LD      A,(ifSelBuffToltalTimeFlag)
   \   0246  B7                OR      A
   \   0247  281C              JR      Z,?0041
   \   0249            ?0038:
   \   0249            ?0039:
   \   0249            ?0036:
    139                          {
    140                              musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
   \   0249  210200            LD      HL,2
   \   024C  39                ADD     HL,SP
   \   024D  4D                LD      C,L
   \   024E  44                LD      B,H
   \   024F  1E83              LD      E,131
   \   0251  CDA701            CALL    LWRD ?0143
    141                              if (status_buf.status == PLAYING_ERROR)
   \   0254  DD7EF0            LD      A,(IX-16)
   \   0257  FE0C              CP      12
   \   0259  200A              JR      NZ,?0041
   \   025B            ?0040:
    142                              {
    143                                  g_music_vars.BreakPTDisTime.hour = 0;
   \   025B  AF                XOR     A
   \   025C  324B00            LD      (g_music_vars+75),A
    144                                  g_music_vars.BreakPTDisTime.minute = 0;
   \   025F  324C00            LD      (g_music_vars+76),A
    145                                  g_music_vars.BreakPTDisTime.second = 0;
   \   0262  324D00            LD      (g_music_vars+77),A
   \   0265            ?0041:
   \   0265            ?0037:
    146                              }
    147                          }
    148          
    149                          musicpSendCommand(MC_RESTORE, NULL);
   \   0265  010000            LD      BC,0
   \   0268  1E45              LD      E,69
   \   026A  CDA701            CALL    LWRD ?0143
    150          
    151                          musicpSendCommand(MC_SETPOWERCOUNT, 5); //set power out level count=2^4=16
   \   026D  010500            LD      BC,5
   \   0270  1E59              LD      E,89
   \   0272  CDA701            CALL    LWRD ?0143
    152          
    153                          if (g_music_vars.MusicOpenMod == Nor_open)
   \   0275  3A0600            LD      A,(g_music_vars+6)
   \   0278  B7                OR      A
   \   0279  2004              JR      NZ,?0043

⌨️ 快捷键说明

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