⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userlist_add.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   0146  DD6E02            LD      L,(IX+2)
   \   0149  DD6603            LD      H,(IX+3)
   \   014C  CB3C              SRL     H
   \   014E  CB1D              RR      L
   \   0150  CB3C              SRL     H
   \   0152  CB1D              RR      L
   \   0154  220E02            LD      (save_offset),HL
     84                  }
     85                  else
   \   0157            ?0022:
     86                  {
     87                     output8(0x27,IO27);
     88                     return TRUE;
     89                  }
   \   0157            ?0023:
   \   0157            ?0020:
     90              }
     91              if(FS_FSeek(1+offset/4,FS_SEEK_FFROMSTART,fp))
   \   0157  2A0C02            LD      HL,(fp)
   \   015A  E5                PUSH    HL
   \   015B  0E00              LD      C,0
   \   015D  C5                PUSH    BC
   \   015E  DD5E02            LD      E,(IX+2)
   \   0161  DD5603            LD      D,(IX+3)
   \   0164  CB3A              SRL     D
   \   0166  CB1B              RR      E
   \   0168  CB3A              SRL     D
   \   016A  CB1B              RR      E
   \   016C  13                INC     DE
   \   016D  41                LD      B,C
   \   016E  CD0000            CALL    LWRD FS_FSeek
   \   0171  E1                POP     HL
   \   0172  E1                POP     HL
   \   0173  B7                OR      A
   \   0174  2811              JR      Z,?0025
   \   0176            ?0024:
     92                  {
     93                     FS_FRead(buffer_list,1,fp);
   \   0176  2A0C02            LD      HL,(fp)
   \   0179  E5                PUSH    HL
   \   017A  CDEF00            CALL    LWRD ?0075
   \   017D  E1                POP     HL
     94                     output8(0x27,IO27);
   \   017E            ?0067:
   \   017E  DD7EFE            LD      A,(IX-2)
   \   0181  D327              OUT     (39),A
     95                     return TRUE;
   \   0183  2E01              LD      L,1
     96                  }
   \   0185  1807              JR      ?0026
   \   0187            ?0025:
     97                  else
     98                  {
     99                     output8(0x27,IO27);
   \   0187  DD7EFE            LD      A,(IX-2)
   \   018A  D327              OUT     (39),A
    100                     return FALSE;
   \   018C  2E00              LD      L,0
    101                  }
   \   018E            ?0026:
   \   018E  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
    102          }    
   \   0191            check_playlist:
    103          
    104          BOOL check_playlist(file_location_t *location)
    105          {
   \   0191  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0194  0000              DEFW    0
   \   0196  FDE5              PUSH    IY
    106              WORD next;
    107              next = FirstOffset;
   \   0198  FD2A0000          LD      IY,(FirstOffset)
   \   019C            ?0029:
    108              do
    109              {
    110                  if(Read_DataA(next))
   \   019C  FDE5              PUSH    IY
   \   019E  D1                POP     DE
   \   019F  CD0102            CALL    LWRD ?0079
   \   01A2  2C                INC     L
   \   01A3  2D                DEC     L
   \   01A4  28F6              JR      Z,?0029
   \   01A6            ?0030:
    111                  {
    112                      memcpy(&temp_list,buffer_list+(next%8)*64,2);  //prev
   \   01A6  010200            LD      BC,2
   \   01A9  FDE5              PUSH    IY
   \   01AB  E1                POP     HL
   \   01AC  7D                LD      A,L
   \   01AD  E607              AND     7
   \   01AF  5F                LD      E,A
   \   01B0  AF                XOR     A
   \   01B1  57                LD      D,A
   \   01B2  0606              LD      B,6
   \   01B4  CD0000            CALL    LWRD ?S_LSH_L02
   \   01B7  210000            LD      HL,buffer_list
   \   01BA  19                ADD     HL,DE
   \   01BB  111002            LD      DE,temp_list
   \   01BE  47                LD      B,A
   \   01BF  EDB0              LDIR
    113                      
    114                      if(strcmp(temp_list.filename,location->filename)==0)
   \   01C1  112B02            LD      DE,temp_list+27
   \   01C4  211A00            LD      HL,26
   \   01C7  DD4E02            LD      C,(IX+2)
   \   01CA  DD4603            LD      B,(IX+3)
   \   01CD  09                ADD     HL,BC
   \   01CE  CD0000            CALL    LWRD ?STRCMP_L11
   \   01D1  7D                LD      A,L
   \   01D2  B4                OR      H
   \   01D3  2004              JR      NZ,?0033
   \   01D5            ?0032:
    115                      {
    116                          return TRUE;
   \   01D5  2E01              LD      L,1
    117                      }
   \   01D7  1814              JR      ?0036
   \   01D9            ?0033:
    118                      if(next==LastOffset)
   \   01D9  2A0000            LD      HL,(LastOffset)
   \   01DC  FDE5              PUSH    IY
   \   01DE  C1                POP     BC
   \   01DF  ED42              SBC     HL,BC
   \   01E1  2004              JR      NZ,?0035
   \   01E3            ?0034:
    119                         return FALSE;
   \   01E3  2E00              LD      L,0
   \   01E5  1806              JR      ?0036
   \   01E7            ?0035:
    120                      next = temp_list.NextOffset;
   \   01E7  FD2A3902          LD      IY,(temp_list+41)
   \   01EB            ?0031:
    121                  }
    122              }while(1);
   \   01EB  18AF              JR      ?0029
    123              return FALSE;
    124              
    125          } 
   \   01ED            ?0036:
   \   01ED  FDE1              POP     IY
   \   01EF  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   01F2            ?0080:
   \   01F2  0607              LD      B,7
   \   01F4  CD0000            CALL    LWRD ?S_LSH_L02
   \   01F7  DD73F8            LD      (IX-8),E
   \   01FA  DD72F9            LD      (IX-7),D
   \   01FD  ED5B0000          LD      DE,(LastOffset)
   \   0201            ?0079:
   \   0201  3E00              LD      A,BYTE3 Read_DataA
   \   0203  211201            LD      HL,LWRD Read_DataA
   \   0206  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0209            Add_UserPL:
    126          
    127          BOOL Add_UserPL(file_location_t *location)
    128          {
   \   0209  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   020C  F8FF              DEFW    65528
    129               
    130              
    131               
    132              WORD next;
    133              WORD prev;
    134              WORD Offset; 
    135              char IO27 = input8(0x27);   
   \   020E  DB27              IN      A,(39)
   \   0210  DD77FE            LD      (IX-2),A
    136              if(PlaylistCount>100)
   \   0213  ED4B0000          LD      BC,(PlaylistCount)
   \   0217  216400            LD      HL,100
   \   021A  A7                AND     A
   \   021B  ED42              SBC     HL,BC
   \   021D  382C              JR      C,?0071
   \   021F            ?0037:
    137                  return FALSE;
   \   021F            ?0038:
    138              need_WPL=TRUE;
   \   021F  3E01              LD      A,1
   \   0221  320000            LD      (need_WPL),A
    139              save_offset=0xffff;
   \   0224  21FFFF            LD      HL,65535
   \   0227  220E02            LD      (save_offset),HL
    140              memset(buffer_list,0,512);
   \   022A  010002            LD      BC,512
   \   022D  110000            LD      DE,buffer_list
   \   0230  23                INC     HL
   \   0231  CD0000            CALL    LWRD ?MEMSET_L11
    141              memset(file,0x20,12);
   \   0234  010C00            LD      BC,12
   \   0237  110002            LD      DE,file
   \   023A  2E20              LD      L,32
   \   023C  CDAB00            CALL    LWRD ?0073
    142              file[0]='U';
    143              file[1]='S';
    144              file[2]='E';
    145              file[3]='R';
    146              file[4]='P';
    147              file[5]='L';
    148              file[8]='P';
    149              file[9]='L';
    150              file[11]=0;
    151              output8(0x27,0x00);
   \   023F  D327              OUT     (39),A
    152              FS_CD(FS_CD_ROOT);
   \   0241  CDDB00            CALL    LWRD ?0074
    153              fp=FS_FOpen(file,0);
    154              if(fp==NULL)
   \   0244  200A              JR      NZ,?0040
   \   0246            ?0039:
    155              {
    156                output8(0x27,IO27);
   \   0246  DD7EFE            LD      A,(IX-2)
   \   0249  D327              OUT     (39),A
    157                return FALSE ;
   \   024B            ?0071:
   \   024B  2E00              LD      L,0
    158                         
    159              }
   \   024D  C36A03            JP      LWRD ?0050
   \   0250            ?0040:
    160          
    161              if(PlaylistCount==0)
   \   0250  2A0000            LD      HL,(PlaylistCount)
   \   0253  7D                LD      A,L
   \   0254  B4                OR      H
   \   0255  23                INC     HL
   \   0256  220000            LD      (PlaylistCount),HL
   \   0259  204A              JR      NZ,?0042
   \   025B            ?0041:
    162              {
    163                  PlaylistCount++;
    164                  FirstOffset = 0;
   \   025B  6F                LD      L,A
   \   025C  67                LD      H,A
   \   025D  220000            LD      (FirstOffset),HL
    165                  LastOffset = 1;
   \   0260  23                INC     HL
   \   0261  220000            LD      (LastOffset),HL
    166                  if(Read_DataA(0))
   \   0264  5C                LD      E,H
   \   0265  54                LD      D,H
   \   0266  CD0102            CALL    LWRD ?0079
   \   0269  2C                INC     L
   \   026A  2D                DEC     L
   \   026B  2835              JR      Z,?0044
   \   026D            ?0043:
    167                  {
    168                       
    169                      buffer_list[0]=1;  //flag
   \   026D  3E01              LD      A,1
   \   026F  320000            LD      (buffer_list),A
    170                      memcpy(buffer_list+1,location,38);  //location
   \   0272  012600            LD      BC,38
   \   0275  110100            LD      DE,buffer_list+1
   \   0278  DD6E02            LD      L,(IX+2)
   \   027B  DD6603            LD      H,(IX+3)
   \   027E  EDB0              LDIR
    171                      memcpy(buffer_list+43,g_TagInfoBuf,64);
   \   0280  0E40              LD      C,64
   \   0282  112B00            LD      DE,buffer_list+43
   \   0285  210000            LD      HL,g_TagInfoBuf
   \   0288  EDB0              LDIR
    172                      memcpy(buffer_list+38+1,&FirstOffset,2);  //prev
   \   028A  03                INC     BC
   \   028B  03                INC     BC
   \   028C  112700            LD      DE,buffer_list+39
   \   028F  210000            LD      HL,FirstOffset
   \   0292  EDB0              LDIR
    173                      memcpy(buffer_list+38+2+1,&LastOffset,2); //next
   \   0294  03                INC     BC
   \   0295  03                INC     BC
   \   0296  112900            LD      DE,buffer_list+41
   \   0299  210000            LD      HL,LastOffset
   \   029C  EDB0              LDIR
    174                      LastOffset = 0;
   \   029E  ED430000          LD      (LastOffset),BC
   \   02A2            ?0044:
    175                     
    176                  }
    177                  
    178              }
    179              else
   \   02A2  C35803            JP      LWRD ?0047
   \   02A5            ?0042:
    180              {
    181              
    182                   
    183                   PlaylistCount++;
    184                   Offset = (LastOffset%4)*USER_PLAYLIST_SIZE;
   \   02A5  2A0000            LD      HL,(LastOffset)
   \   02A8  7D                LD      A,L
   \   02A9  E603              AND     3
   \   02AB  6F                LD      L,A
   \   02AC  2600              LD      H,0
   \   02AE  EB                EX      DE,HL
    185                   if(Read_DataA(LastOffset))
   \   02AF  CDF201            CALL    LWRD ?0080
   \   02B2  2C                INC     L
   \   02B3  2D                DEC     L
   \   02B4  CA5803            JP      Z,?0047
   \   02B7            ?0046:
    186                   {
    187                       //处理最后item
    188                       memcpy(&next,buffer_list+Offset+38+2+1,2); //next
   \   02B7  210200            LD      HL,2
   \   02BA  39                ADD     HL,SP
   \   02BB  EB                EX      DE,HL
   \   02BC  212900            LD      HL,buffer_list+41
   \   02BF  DD4EF8            LD      C,(IX-8)
   \   02C2  DD46F9            LD      B,(IX-7)
   \   02C5  09                ADD     HL,BC
   \   02C6  010200            LD      BC,2
   \   02C9  EDB0              LDIR

⌨️ 快捷键说明

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