ui_userlist.lst

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

LST
1,141
字号
   \   03DF            ?0070:
    278                       {
    279                           memcpy(&CurOffset,disbuff+(new_active-1)*30+28,2);                 
   \   03DF  010200            LD      BC,2
   \   03E2  210A00            LD      HL,10
   \   03E5  39                ADD     HL,SP
   \   03E6  E5                PUSH    HL
   \   03E7  211C02            LD      HL,disbuff+28
   \   03EA  4F                LD      C,A
   \   03EB  0B                DEC     BC
   \   03EC  1828              JR      ?0101
    280                       } 
    281                      // memcpy(&CurOffset,disbuff+26,2);
    282                      else          //active = 0;从双向链表被删除项的后继的直接前驱找当前的offset
   \   03EE            ?0071:
    283                      {
    284                        if(g_list_count == vTotal-1)   //最后一项
   \   03EE  21FFFF            LD      HL,65535
   \   03F1  ED4BC602          LD      BC,(vTotal)
   \   03F5  09                ADD     HL,BC
   \   03F6  FDE5              PUSH    IY
   \   03F8  C1                POP     BC
   \   03F9  A7                AND     A
   \   03FA  ED42              SBC     HL,BC
   \   03FC  200B              JR      NZ,?0074
   \   03FE            ?0073:
    285                          CurOffset = vLastOffset;           //最后一项的偏移
   \   03FE  2AC402            LD      HL,(vLastOffset)
   \   0401  DD75FC            LD      (IX-4),L
   \   0404  DD74FD            LD      (IX-3),H
    286                        else
   \   0407  181A              JR      ?0075
   \   0409            ?0074:
    287                          memcpy(&CurOffset,disbuff+(new_active+1)*30+26,2);
   \   0409  010200            LD      BC,2
   \   040C  210A00            LD      HL,10
   \   040F  39                ADD     HL,SP
   \   0410  E5                PUSH    HL
   \   0411  211A02            LD      HL,disbuff+26
   \   0414  4F                LD      C,A
   \   0415  03                INC     BC
   \   0416            ?0101:
   \   0416  111E00            LD      DE,30
   \   0419  CD0000            CALL    LWRD ?S_MUL_L02
   \   041C  19                ADD     HL,DE
   \   041D  D1                POP     DE
   \   041E  010200            LD      BC,2
   \   0421  EDB0              LDIR
   \   0423            ?0075:
   \   0423            ?0072:
    288                      } 
    289                       user_pl_del(CurOffset);  
   \   0423  DD5EFC            LD      E,(IX-4)
   \   0426  DD56FD            LD      D,(IX-3)
   \   0429  3E00              LD      A,BYTE3 user_pl_del
   \   042B  210000            LD      HL,LWRD user_pl_del
   \   042E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    290                       
    291                       if(PlaylistCount==0)
   \   0431  2A0000            LD      HL,(PlaylistCount)
   \   0434  7D                LD      A,L
   \   0435  B4                OR      H
   \   0436  200C              JR      NZ,?0077
   \   0438            ?0076:
    292                       {
    293                         FirstOffset = 0;
   \   0438  6F                LD      L,A
   \   0439  67                LD      H,A
   \   043A  220000            LD      (FirstOffset),HL
    294                         LastOffset  =0;    
   \   043D  220000            LD      (LastOffset),HL
    295                         WrHead_PL(1);             //删除所有文件,将所有信息clear zhangxs add 2007.05.11
   \   0440  1E01              LD      E,1
   \   0442  1802              JR      ?0102
    296                       }
    297                       else 
   \   0444            ?0077:
    298                        WrHead_PL(0); 
   \   0444  1E00              LD      E,0
   \   0446            ?0102:
   \   0446  3E00              LD      A,BYTE3 WrHead_PL
   \   0448  210000            LD      HL,LWRD WrHead_PL
   \   044B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   044E            ?0078:
    299                       /* 
    300                       if(location->PL_Cur>(g_list_count+1))  //删除的是当前曲且为最后一曲,取下一曲为列表第一曲 
    301                       {
    302                        location->PL_Cur = 1;                //  
    303                        return  RESULT_USERLIST;              //需要重新选择列表文件     
    304                       } 
    305                       */
    306                       if(g_music_vars.fselmod == FSEL_TYPE_USERPL)  //当前为收藏夹模式要重新选择
   \   044E  3A5100            LD      A,(g_music_vars+81)
   \   0451  3D                DEC     A
   \   0452  3D                DEC     A
   \   0453  203C              JR      NZ,?0080
   \   0455            ?0079:
    307                      {
    308                       // if(location->PL_Cur == (g_list_count+1)) //删除的是当前曲,取下一曲
    309                      //  {
    310                          // location->PL_Cur ++; 
    311                          // if((g_list_count+1) == vTotal)
    312                          //   location->PL_Cur =1;            // 删除的是当前曲且为最后一曲,取下一曲为列表第一曲  
    313                          // else   
    314                          // location->PL_Cur++;              //取下一曲 
    315                         if(location->PL_Cur>=(g_list_count+1)) //删除为当前曲或者
   \   0455  FDE5              PUSH    IY
   \   0457  C1                POP     BC
   \   0458  03                INC     BC
   \   0459  212900            LD      HL,41
   \   045C  DD5E02            LD      E,(IX+2)
   \   045F  DD5603            LD      D,(IX+3)
   \   0462  19                ADD     HL,DE
   \   0463  56                LD      D,(HL)
   \   0464  23                INC     HL
   \   0465  66                LD      H,(HL)
   \   0466  6A                LD      L,D
   \   0467  A7                AND     A
   \   0468  ED42              SBC     HL,BC
   \   046A  3820              JR      C,?0084
   \   046C            ?0081:
    316                          {
    317                           location->PL_Cur--;                                    
   \   046C  212900            LD      HL,41
   \   046F  4B                LD      C,E
   \   0470  DD4603            LD      B,(IX+3)
   \   0473  09                ADD     HL,BC
   \   0474  5E                LD      E,(HL)
   \   0475  23                INC     HL
   \   0476  56                LD      D,(HL)
   \   0477  1B                DEC     DE
   \   0478  72                LD      (HL),D
   \   0479  2B                DEC     HL
   \   047A  73                LD      (HL),E
    318                           if(location->PL_Cur==0)
   \   047B  212900            LD      HL,41
   \   047E  09                ADD     HL,BC
   \   047F  7E                LD      A,(HL)
   \   0480  23                INC     HL
   \   0481  B6                OR      (HL)
   \   0482  2008              JR      NZ,?0084
   \   0484            ?0083:
    319                           location->PL_Cur = 1; 
   \   0484  212900            LD      HL,41
   \   0487  09                ADD     HL,BC
   \   0488  3601              LD      (HL),1
   \   048A  23                INC     HL
   \   048B  77                LD      (HL),A
   \   048C            ?0084:
   \   048C            ?0082:
    320                          }                       
    321                           //return  RESULT_USERLIST;
    322                       // }                       
    323                        return RESULT_USERLIST;     
   \   048C  216C00            LD      HL,108
    324                      }                                   //非收藏夹模式不重新选择文件
   \   048F  184E              JR      ?0094
   \   0491            ?0080:
    325                      else                                
    326                      return NULL;   
   \   0491  210000            LD      HL,0
    327                  }          
   \   0494  1849              JR      ?0094
    328                       break;
   \   0496            ?0085:
    329                //  case AP_KEY_MODE | AP_KEY_LONG:    //修改为返回main ap      
    330                //       break;
    331                                     
    332                  case AP_MSG_WAIT_TIMEOUT:
    333                       output8(0x27,00);
    334                       FS_FClose(fpview);
   \   0496  CDE404            CALL    LWRD ?0108
    335                       output8(0x27,IO27);                             
    336                      return  RESULT_IGNORE;   
   \   0499            ?0104:
   \   0499  213400            LD      HL,52
    337                      break;
   \   049C  1841              JR      ?0094
   \   049E            ?0086:
    338                                         
    339                    default:
    340                       key = ap_handle_hotkey(key);
   \   049E  CD0000            CALL    LWRD ap_handle_hotkey
   \   04A1  DD77FA            LD      (IX-6),A
    341                       if(key == RESULT_REDRAW) 
   \   04A4  FE32              CP      50
   \   04A6  2006              JR      NZ,?0088
   \   04A8            ?0087:
    342                         need_draw = TRUE;
   \   04A8  DD36F501          LD      (IX-11),1
    343                       else 
   \   04AC  1810              JR      ?0091
   \   04AE            ?0088:
    344                        if(key != 0)
   \   04AE  AF                XOR     A
   \   04AF  DDB6FA            OR      (IX-6)
   \   04B2  280A              JR      Z,?0091
   \   04B4            ?0090:
    345                        {
    346                          output8(0x27,00);
    347                          FS_FClose(fpview);
   \   04B4  CDE404            CALL    LWRD ?0108
    348                          output8(0x27,IO27); 
    349                          return key;
   \   04B7  DD6EFA            LD      L,(IX-6)
   \   04BA  2600              LD      H,0
    350                        }                                
   \   04BC  1821              JR      ?0094
   \   04BE            ?0091:
   \   04BE            ?0089:
    351                        if(ScrollFlag) 
   \   04BE  3A0000            LD      A,(ScrollFlag)
   \   04C1  B7                OR      A
   \   04C2  2818              JR      Z,?0093
   \   04C4            ?0092:
    352                        ui_viewlist(old_active,new_active,list_num,type,1);                       
   \   04C4  0E01              LD      C,1
   \   04C6  C5                PUSH    BC
   \   04C7  DD6E04            LD      L,(IX+4)
   \   04CA  E5                PUSH    HL
   \   04CB  DD6EF8            LD      L,(IX-8)
   \   04CE  E5                PUSH    HL
   \   04CF  48                LD      C,B
   \   04D0  58                LD      E,B
   \   04D1  3E00              LD      A,BYTE3 ui_viewlist
   \   04D3  210000            LD      HL,LWRD ui_viewlist
   \   04D6  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04D9  E1                POP     HL
   \   04DA  E1                POP     HL
   \   04DB  E1                POP     HL
   \   04DC            ?0093:
   \   04DC            ?0053:
   \   04DC  C35B02            JP      LWRD ?0047
    353               }//switch 
    354             } //while 
    355             output8(0x27,00);
    356             FS_FClose(fpview);
    357             output8(0x27,IO27);
    358             return RESULT_IGNORE;     
    359          }
   \   04DF            ?0094:
   \   04DF  FDE1              POP     IY
   \   04E1  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   04E4            ?0108:
   \   04E4  AF                XOR     A
   \   04E5            ?0107:
   \   04E5  D327              OUT     (39),A
   \   04E7  ED5BC002          LD      DE,(fpview)
   \   04EB  CD0000            CALL    LWRD FS_FClose
   \   04EE  DD7EF7            LD      A,(IX-9)
   \   04F1  D327              OUT     (39),A
   \   04F3  C9                RET
    360          
   \   0000                    RSEG    CSTR
   \   0000            ?0002:
   \   0000  3A                DEFB    ':'
   \   0001  00                DEFB    0
   \   0000                    RSEG    APD_UI_PLAYLIST
   \   0000            vbuff:
   \   0200                    DEFS    512
   \   0200            disbuff:
   \   02B4                    DEFS    180
   \   02B4            vfilename:
   \   02C0                    DEFS    12
   \   02C0            fpview:
   \   02C2                    DEFS    2
   \   02C2            vFirstOffset:
   \   02C4                    DEFS    2
   \   02C4            vLastOffset:
   \   02C6                    DEFS    2
   \   02C6            vTotal:
   \   02C8                    DEFS    2
   \   02C8            vsave_offset:
   \   02CA                    DEFS    2
   \   02CA                    END

Errors: none
Warnings: none
Code size: 1268
Constant size: 2
Static variable size: Data(714) Iram(0)

⌨️ 快捷键说明

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