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

📄 ui_playlist.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	LD	HL,(playlist_active)
	DEC	HL
; 127.	                if(playlist_active/5==cur_grouplist)
	CALL	LWRD ?0076
	JR	NZ,?0033
?0032:
; 128.	                  {
; 129.	                            ShowPlaylist(top,bottom,playlist_active+1,playlist_active,Strname,string_id,1);
	LD	C,1
	PUSH	BC
	LD	L,(IX+10)
	PUSH	HL
	LD	L,(IX-8)
	LD	H,(IX-7)
	PUSH	HL
	LD	A,(playlist_active)
	LD	C,A
	PUSH	BC
	INC	A
	JR	?0069
; 130.	                  }
; 131.	                 else
?0033:
; 132.	                    {
; 133.	                       cur_grouplist=cur_grouplist-1;
	LD	HL,65535
; 134.	                       top=(playlist_active/5)*5; //顶的序号
	CALL	LWRD ?0075
; 135.	                       bottom=top+4;          //底的序号
; 136.	                       FSELGetLocation(location);
	CALL	LWRD ?0071
; 137.	                       reinit_idm_buf_playlist(top, bottom, Strname, string_id,FALSE);       //换页要重新初始化IDM数据
	LD	C,B
	PUSH	BC
	LD	L,(IX+10)
	PUSH	HL
	LD	L,(IX-8)
	LD	H,(IX-7)
	PUSH	HL
	CALL	LWRD ?0073
	POP	HL
	POP	HL
	POP	HL
; 138.	                       FSELSetLocation(location);
	CALL	LWRD ?0072
; 139.	                               ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,1);
	LD	C,1
	PUSH	BC
	LD	L,(IX+10)
	PUSH	HL
	LD	L,(IX-8)
	LD	H,(IX-7)
	PUSH	HL
	LD	A,(playlist_active)
	LD	C,A
	PUSH	BC
?0069:
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0074
	POP	HL
	POP	HL
	POP	HL
	POP	HL
	POP	HL
?0034:
?0031:
?0036:
; 140.	                    }
; 141.	                 }
; 142.	        while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0034
?0037:
; 143.	              break;
?0035:
	JP	LWRD ?0015
?0038:
; 144.	
; 145.	            case AP_KEY_PLAY | AP_KEY_UP:
; 146.	                 FSELSetLocation(location);         //restore the selecting result
	CALL	LWRD ?0072
; 147.	                 result = RESULT_IGNORE;
	LD	(IX-6),52
; 148.	                 goto funreturn;
	JP	LWRD ?0039
; 149.	                 break;
?0040:
; 150.	            case AP_KEY_MODE | AP_KEY_LONG:
; 151.	                 if ( FSELGetLocation(location) )   //store the selecting result
	CALL	LWRD ?0071
	INC	L
	DEC	L
	JR	Z,?0042
?0041:
; 152.	                     result = RESULT_NULL;
	LD	(IX-6),0
; 153.	                 else
	JR	?0043
?0042:
; 154.	                     result = RESULT_IGNORE;
	LD	(IX-6),52
?0043:
; 155.	                 goto funreturn;
	JP	LWRD ?0039
; 156.	                 break;
?0044:
; 157.	            case AP_KEY_MODE | AP_KEY_UP:
; 158.	                 break;
?0045:
; 159.	            case AP_MSG_WAIT_TIMEOUT:
; 160.	                 TimeoutCnt++;
	INC	(IX-4)
; 161.	                 if ( TimeoutCnt >= 24 )  //192秒后退出,因为要看长名滚屏
	LD	A,(IX-4)
	CP	24
	JR	C,?0047
?0046:
; 162.	                 {
; 163.	                    if (FSELGetLocation(location))     //store the selecting result
	CALL	LWRD ?0071
	INC	L
	DEC	L
	JR	Z,?0049
?0048:
; 164.	                        result = RESULT_NULL;
	LD	(IX-6),0
; 165.	                    else
	JR	?0050
?0049:
; 166.	                        result = RESULT_IGNORE;
	LD	(IX-6),52
?0050:
; 167.	                    goto funreturn;
	JR	?0039
?0047:
; 168.	                 }
; 169.	                 break;
	JP	LWRD ?0015
?0051:
; 170.	
; 171.	            case AP_MSG_SD_OUT:
; 172.	                 //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
; 173.	                 if (location->disk == 'H')
	LD	L,(IX+2)
	LD	H,(IX+3)
	LD	A,(HL)
	CP	72
	JR	NZ,?0053
?0052:
; 174.	                 {
; 175.	                     result = RESULT_SD_OUT;
	LD	(IX-6),54
; 176.	                     goto funreturn;
	JR	?0039
?0053:
; 177.	                 }
; 178.	                 break;
	JP	LWRD ?0015
?0054:
; 179.	
; 180.	            case AP_MSG_SD_IN:
; 181.	                 break;
?0055:
; 182.	
; 183.	            case AP_MSG_RTC:
; 184.	                 break;
?0056:
; 185.	
; 186.	            default:
; 187.	                 key=ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX-5),A
; 188.	                 if(key == RESULT_REDRAW)
	CP	50
	JR	NZ,?0058
?0057:
; 189.	                 {
; 190.	                ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,1);
	LD	C,1
	PUSH	BC
	LD	L,(IX+10)
	PUSH	HL
	LD	L,(IX-8)
	LD	H,(IX-7)
	PUSH	HL
	LD	A,(playlist_active)
	LD	C,A
	PUSH	BC
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0074
	POP	HL
	POP	HL
	POP	HL
	POP	HL
	POP	HL
	JR	?0061
?0058:
; 191.	                 }
; 192.	                 else if( key != 0 )
	XOR	A
	OR	(IX-5)
	JR	Z,?0061
?0060:
; 193.	                 {
; 194.	                        FSELGetLocation(location);      //store the selecting result
	CALL	LWRD ?0071
; 195.	                        result = key;
	LD	B,(IX-5)
	LD	(IX-6),B
; 196.	                        goto funreturn;
	JR	?0039
?0061:
?0059:
; 197.	                 }
; 198.	            if(ScrollFlag)
	LD	A,(ScrollFlag)
	OR	A
	JR	Z,?0063
?0062:
; 199.	                 ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,0);    
	LD	C,0
	PUSH	BC
	LD	L,(IX+10)
	PUSH	HL
	LD	L,(IX-8)
	LD	H,(IX-7)
	PUSH	HL
	LD	A,(playlist_active)
	LD	C,A
	PUSH	BC
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0074
	POP	HL
	POP	HL
	POP	HL
	POP	HL
	POP	HL
?0063:
?0017:
; 200.	        } //switch()
; 201.	    }
; 202.	
; 203.	funreturn:
	JP	LWRD ?0015
?0039:
; 204.	////////////////////////////////换页//////////////////////////////////////
; 205.	    DmaCpy( 0x4000, 0x07, 0x4000, 0x06, 0x2000-1 );     //恢复8K代码到第7页    
	LD	HL,8191
	PUSH	HL
	LD	C,6
	PUSH	BC
	LD	HL,16384
	PUSH	HL
	LD	C,7
	EX	DE,HL
	CALL	LWRD DmaCpy
	POP	HL
	POP	HL
	POP	HL
; 206.	    output8(0x05, i);
	LD	A,(IX-2)
	OUT	(5),A
; 207.	    SetSWAPAddress(pagebak);
	LD	E,(IX-3)
	CALL	LWRD SetSWAPAddress
; 208.	////////////////////////////////换页//////////////////////////////////////
; 209.	
; 210.	
; 211.	    return result;
	LD	L,(IX-6)
	LD	H,0
; 212.	}
?0064:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0071:
	LD	E,(IX+2)
	LD	D,(IX+3)
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0072:
	LD	E,(IX+2)
	LD	D,(IX+3)
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0073:
	PUSH	IY
	POP	BC
	LD	E,(IX-10)
	LD	D,(IX-9)
	LD	A,BYTE3 reinit_idm_buf_playlist
	LD	HL,LWRD reinit_idm_buf_playlist
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0074:
	PUSH	IY
	POP	HL
	LD	C,L
	LD	E,(IX-10)
	LD	A,BYTE3 ShowPlaylist
	LD	HL,LWRD ShowPlaylist
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0075:
	LD	BC,(cur_grouplist)
	ADD	HL,BC
	LD	(cur_grouplist),HL
	LD	BC,5
	LD	DE,(playlist_active)
	CALL	LWRD ?US_DIV_L02
	EX	DE,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-10),L
	LD	(IX-9),H
	LD	BC,4
	ADD	HL,BC
	PUSH	HL
	POP	IY
	RET
?0076:
	LD	(playlist_active),HL
	LD	BC,5
	EX	DE,HL
	CALL	LWRD ?US_DIV_L02
	LD	HL,(cur_grouplist)
	AND	A
	SBC	HL,DE
	RET
DmaCpy:
; 213.	
; 214.	
; 215.	
; 216.	
; 217.	static void DmaCpy(WORD descadd, BYTE descpg, WORD srcadd, BYTE srcpg, WORD Length)
; 218.	{
	CALL	LWRD ?ENT_PARM_DIRECT_L09
; 219.	    output8(REG14_DMA2SRCAddr0, (BYTE)(srcadd));
	LD	A,(IX+8)
	OUT	(20),A
; 220.	    output8(REG15_DMA2SRCAddr1, (BYTE)(srcadd >> 8));
	LD	A,(IX+9)
	OUT	(21),A
; 221.	    output8(REG16_DMA2SRCAddr2, 0x00);
	XOR	A
	OUT	(22),A
; 222.	    output8(REG17_DMA2SRCAddr3, 0x40);                  //IDM/IPM/ZRAM2
	LD	A,64
	OUT	(23),A
; 223.	    output8(REG18_DMA2SRCAddrIntSramReg, srcpg);    //ZRAM2PAGE
	LD	A,(IX+10)
	OUT	(24),A
; 224.	    output8(REG19_DMA2DSTAddr0, (BYTE)(descadd));
	LD	A,E
	OUT	(25),A
; 225.	    output8(REG1A_DMA2DSTAddr1, (BYTE)(descadd >> 8));
	EX	DE,HL
	LD	A,H
	OUT	(26),A
; 226.	    output8(REG1B_DMA2DSTAddr2, 0x00);
	XOR	A
	OUT	(27),A
; 227.	    output8(REG1C_DMA2DSTAddr3, 0x40);                  //IDM/IPM/ZRAM2
	LD	A,64
	OUT	(28),A
; 228.	    output8(REG1D_DMA2DSTAddrIntSram, descpg);        //IDMHPAGE_06
	LD	A,C
	OUT	(29),A
; 229.	    output8(REG1E_DMA2ByteCounterLow, (BYTE)(Length));
	LD	A,(IX+12)
	OUT	(30),A
; 230.	    output8(REG1F_DMA2ByteCounterHi, (BYTE)(Length >> 8));
	LD	A,(IX+13)
	OUT	(31),A
; 231.	    output8(REG20_DMA2Mode, 0x00);
	XOR	A
	OUT	(32),A
; 232.	    output8(REG21_DMA2CMD, 0x01);
	LD	A,1
	OUT	(33),A
?0066:
; 233.	    while( input8(REG21_DMA2CMD)&0x01 != 0x00 ) {}
	IN	A,(33)
	BIT	0,A
	JR	NZ,?0066
?0067:
; 234.	    return;
?0065:
; 235.	}
	JP	LWRD ?LEAVE_DIRECT_L09
	RSEG	UDATA0
playlist_active:
	DEFS	2
cur_grouplist:
	DEFS	2
	END

⌨️ 快捷键说明

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