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

📄 userlist_add.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
    189                       //添加item
    190                       prev = LastOffset;
   \   02CB  2A0000            LD      HL,(LastOffset)
   \   02CE  DD75FC            LD      (IX-4),L
   \   02D1  DD74FD            LD      (IX-3),H
    191                       LastOffset = next;
   \   02D4  DD4EFA            LD      C,(IX-6)
   \   02D7  DD46FB            LD      B,(IX-5)
   \   02DA  ED430000          LD      (LastOffset),BC
    192                       Offset = (LastOffset%4)*USER_PLAYLIST_SIZE;
   \   02DE  79                LD      A,C
   \   02DF  E603              AND     3
   \   02E1  5F                LD      E,A
   \   02E2  1600              LD      D,0
    193                       //添加item
    194                       Read_DataA(LastOffset);
   \   02E4  CDF201            CALL    LWRD ?0080
    195                      memcpy(buffer_list+1+Offset,location,38);  //location
   \   02E7  012600            LD      BC,38
   \   02EA  210100            LD      HL,buffer_list+1
   \   02ED  DD5EF8            LD      E,(IX-8)
   \   02F0  DD56F9            LD      D,(IX-7)
   \   02F3  19                ADD     HL,DE
   \   02F4  EB                EX      DE,HL
   \   02F5  DD6E02            LD      L,(IX+2)
   \   02F8  DD6603            LD      H,(IX+3)
   \   02FB  EDB0              LDIR
    196                      memcpy(buffer_list+43+Offset,g_TagInfoBuf,64);
   \   02FD  0E40              LD      C,64
   \   02FF  212B00            LD      HL,buffer_list+43
   \   0302  DD5EF8            LD      E,(IX-8)
   \   0305  DD56F9            LD      D,(IX-7)
   \   0308  19                ADD     HL,DE
   \   0309  EB                EX      DE,HL
   \   030A  210000            LD      HL,g_TagInfoBuf
   \   030D  EDB0              LDIR
    197                      memcpy(buffer_list+38+1+Offset,&prev,2);  //prev
   \   030F  03                INC     BC
   \   0310  03                INC     BC
   \   0311  212700            LD      HL,buffer_list+39
   \   0314  DD5EF8            LD      E,(IX-8)
   \   0317  DD56F9            LD      D,(IX-7)
   \   031A  19                ADD     HL,DE
   \   031B  EB                EX      DE,HL
   \   031C  210400            LD      HL,4
   \   031F  39                ADD     HL,SP
   \   0320  EDB0              LDIR
    198                       if(buffer_list[Offset]!=2) //==2 表示之前已用过
   \   0322  210000            LD      HL,buffer_list
   \   0325  DD4EF8            LD      C,(IX-8)
   \   0328  DD46F9            LD      B,(IX-7)
   \   032B  09                ADD     HL,BC
   \   032C  46                LD      B,(HL)
   \   032D  05                DEC     B
   \   032E  05                DEC     B
   \   032F  281B              JR      Z,?0049
   \   0331            ?0048:
    199                       {
    200                           next++;
   \   0331  DD34FA            INC     (IX-6)
   \   0334  2003              JR      NZ,?0070
   \   0336  DD34FB            INC     (IX-5)
   \   0339            ?0070:
    201                           memcpy(buffer_list+38+1+Offset+2,&next,2);  //prev
   \   0339  010200            LD      BC,2
   \   033C  212900            LD      HL,buffer_list+41
   \   033F  DD5EF8            LD      E,(IX-8)
   \   0342  DD56F9            LD      D,(IX-7)
   \   0345  19                ADD     HL,DE
   \   0346  EB                EX      DE,HL
   \   0347  69                LD      L,C
   \   0348  60                LD      H,B
   \   0349  39                ADD     HL,SP
   \   034A  EDB0              LDIR
   \   034C            ?0049:
    202                       }
    203                       buffer_list[Offset]=1;
   \   034C  210000            LD      HL,buffer_list
   \   034F  DD4EF8            LD      C,(IX-8)
   \   0352  DD46F9            LD      B,(IX-7)
   \   0355  09                ADD     HL,BC
   \   0356  3601              LD      (HL),1
   \   0358            ?0047:
   \   0358            ?0045:
    204                      // FS_FWrite(buffer_list,1,fp);
    205                   }
    206                  
    207              }
    208          //    IO27 = input8(0x27);
    209          //    output8(0x27,00);
    210              FS_FWrite(buffer_list,1,fp);
   \   0358  2A0C02            LD      HL,(fp)
   \   035B  E5                PUSH    HL
   \   035C  CD0A01            CALL    LWRD ?0078
   \   035F  E1                POP     HL
    211              
    212              FS_FClose(fp);
   \   0360  CD0301            CALL    LWRD ?0077
    213              output8(0x27,IO27);
   \   0363  DD7EFE            LD      A,(IX-2)
   \   0366  D327              OUT     (39),A
    214              return TRUE;
   \   0368  2E01              LD      L,1
    215          }
   \   036A            ?0050:
   \   036A  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   036D            WrHead_PL:
    216          
    217          BOOL WrHead_PL(char ClearFlag)
    218          {
   \   036D  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0370  FEFF              DEFW    65534
    219               char i;
    220              char IO27;
    221              IO27 = input8(0x27);
   \   0372  DB27              IN      A,(39)
   \   0374  DD77FF            LD      (IX-1),A
    222              output8(0x27,00);
   \   0377  AF                XOR     A
   \   0378  D327              OUT     (39),A
    223              memset(file,0x20,12);
   \   037A  CDA200            CALL    LWRD ?0072
    224              file[0]='U';
    225              file[1]='S';
    226              file[2]='E';
    227              file[3]='R';
    228              file[4]='P';
    229              file[5]='L';
    230              file[8]='P';
    231              file[9]='L';
    232              file[11]=0;
    233              
    234              FS_CD(FS_CD_ROOT);
   \   037D  CDDB00            CALL    LWRD ?0074
    235              fp=FS_FOpen(file,0);
    236              if(fp!=NULL)
   \   0380  287F              JR      Z,?0056
   \   0382            ?0051:
    237              {
    238                   if(FS_FRead(buffer_list,1,fp))
   \   0382  E5                PUSH    HL
   \   0383  CDEF00            CALL    LWRD ?0075
   \   0386  E1                POP     HL
   \   0387  B7                OR      A
   \   0388  2877              JR      Z,?0056
   \   038A            ?0053:
    239                   {
    240                              if(memcmp(buffer_list,file,6)==0)
   \   038A  CDF700            CALL    LWRD ?0076
   \   038D  7D                LD      A,L
   \   038E  B4                OR      H
   \   038F  2070              JR      NZ,?0056
   \   0391            ?0055:
    241                              {
    242                                  memcpy(buffer_list+6,&FirstOffset,2);
   \   0391  0E02              LD      C,2
   \   0393  110600            LD      DE,buffer_list+6
   \   0396  210000            LD      HL,FirstOffset
   \   0399  EDB0              LDIR
    243                                  memcpy(buffer_list+6+2,&LastOffset,2);
   \   039B  03                INC     BC
   \   039C  03                INC     BC
   \   039D  110800            LD      DE,buffer_list+8
   \   03A0  210000            LD      HL,LastOffset
   \   03A3  EDB0              LDIR
    244                                  memcpy(buffer_list+6+2+2,&PlaylistCount,2);
   \   03A5  03                INC     BC
   \   03A6  03                INC     BC
   \   03A7  110A00            LD      DE,buffer_list+10
   \   03AA  210000            LD      HL,PlaylistCount
   \   03AD  EDB0              LDIR
    245                                  FS_FWrite(buffer_list,1,fp);                         
   \   03AF  2A0C02            LD      HL,(fp)
   \   03B2  E5                PUSH    HL
   \   03B3  CD0A01            CALL    LWRD ?0078
   \   03B6  E1                POP     HL
    246                                  if(ClearFlag)
   \   03B7  AF                XOR     A
   \   03B8  DDB602            OR      (IX+2)
   \   03BB  2838              JR      Z,?0059
   \   03BD            ?0057:
    247                                  {
    248                                    memset(buffer_list,0,512);   
   \   03BD  010002            LD      BC,512
   \   03C0  110000            LD      DE,buffer_list
   \   03C3  69                LD      L,C
   \   03C4  CD0000            CALL    LWRD ?MEMSET_L11
    249                                    FS_FSeek(1,FS_SEEK_FFROMSTART,fp);   //读写之后要先seek
   \   03C7  2A0C02            LD      HL,(fp)
   \   03CA  E5                PUSH    HL
   \   03CB  0E00              LD      C,0
   \   03CD  C5                PUSH    BC
   \   03CE  41                LD      B,C
   \   03CF  110100            LD      DE,1
   \   03D2  CD0000            CALL    LWRD FS_FSeek
   \   03D5  E1                POP     HL
   \   03D6  E1                POP     HL
    250                                    for(i=0;i<USERPL_NUM/8+1;i++)
   \   03D7  DD36FE00          LD      (IX-2),0
   \   03DB            ?0060:
   \   03DB  DD7EFE            LD      A,(IX-2)
   \   03DE  FE66              CP      102
   \   03E0  3013              JR      NC,?0059
   \   03E2            ?0061:
    251                                    {  
    252                                     output8(0x4e,input8(0x4e)|0x08);
   \   03E2  DB4E              IN      A,(78)
   \   03E4  CBDF              SET     3,A
   \   03E6  D34E              OUT     (78),A
    253                                     FS_FWrite(buffer_list,1,fp);              ;
   \   03E8  2A0C02            LD      HL,(fp)
   \   03EB  E5                PUSH    HL
   \   03EC  CD0A01            CALL    LWRD ?0078
   \   03EF  E1                POP     HL
   \   03F0  DD34FE            INC     (IX-2)
    254                                    }
    255                                  }                         
   \   03F3  18E6              JR      ?0060
   \   03F5            ?0059:
   \   03F5            ?0058:
    256                                  FS_FClose(fp);
   \   03F5  CD0301            CALL    LWRD ?0077
    257                                  output8(0x27,IO27);
   \   03F8  DD7EFF            LD      A,(IX-1)
   \   03FB  D327              OUT     (39),A
    258                                  return TRUE;
   \   03FD  2E01              LD      L,1
    259                              }
   \   03FF  180A              JR      ?0063
   \   0401            ?0056:
   \   0401            ?0054:
   \   0401            ?0052:
    260                    }
    261              }
    262              FS_FClose(fp);
   \   0401  CD0301            CALL    LWRD ?0077
    263              output8(0x27,IO27);
   \   0404  DD7EFF            LD      A,(IX-1)
   \   0407  D327              OUT     (39),A
    264              return FALSE;       
   \   0409  2E00              LD      L,0
    265                   
    266          } 
   \   040B            ?0063:
   \   040B  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
    267          /* 
    268          BOOL Clear_PL(void)
    269          {
    270              char i;
    271              char IO27;    
    272              IO27 = input8(0x27);
    273              output8(0x27,00);
    274              memset(file,0x20,12);
    275              file[0]='U';
    276              file[1]='S';
    277              file[2]='E';
    278              file[3]='R';
    279              file[4]='P';
    280              file[5]='L';
    281              file[8]='P';
    282              file[9]='L';
    283              file[11]=0;    
    284              FS_CD(FS_CD_ROOT);
    285              fp=FS_FOpen(file,0);     
    286              if(fp!=NULL)
    287              {
    288                 memset(buffer_list,0,512);
    289                 memcpy(buffer_list,file,6);    
    290                 FS_FWrite(buffer_list,1,fp);   
    291                 memset(buffer_list,0,512);   
    292                 FS_FWrite(buffer_list,1,fp);   
    293                         
    294                 for(i=0;i<USERPL_NUM/8+1;i++)
    295                 {  
    296                      output8(0x4e,input8(0x4e)|0x08);
    297                      FS_FWrite(buffer_list,1,fp);              ;
    298                 }        
    299                 FS_FClose(fp); 
    300                 output8(0x27,IO27);
    301                 return TRUE;                             
    302             }
    303              FS_FClose(fp);
    304              output8(0x27,IO27);
    305              return FALSE;             
    306          
    307          }     
    308          */ 
    309          #endif
   \   0000                    RSEG    CSTR
   \   0000            ?0004:
   \   0000  3A                DEFB    ':'
   \   0001  00                DEFB    0
   \   0000                    RSEG    APD_USERPL
   \   0000            buffer_list:
   \   0200                    DEFS    512
   \   0200            file:
   \   020C                    DEFS    12
   \   020C            fp:
   \   020E                    DEFS    2
   \   020E            save_offset:
   \   0210                    DEFS    2
   \   0210            temp_list:
   \   023B                    DEFS    43
   \   023B                    END

Errors: none
Warnings: none
Code size: 1038
Constant size: 2
Static variable size: Data(571) Iram(0)

⌨️ 快捷键说明

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