ui_main.s01

来自「MP3 整个 SDK」· S01 代码 · 共 899 行 · 第 1/2 页

S01
899
字号
	ADD	A,208
; 164.	    main_ResShowPic(PRGNUM0+id,POS_SONGTIME+24,POSY_SONGTIME);
	LD	C,50
	PUSH	BC
	LD	C,86
	CALL	LWRD ?0092
	POP	AF
; 165.	    string++;
; 166.	    id= *string-0x30;
	LD	A,(IX+2)
	ADD	A,208
; 167.	    main_ResShowPic(PRGNUM0+id,POS_SONGTIME+40,POSY_SONGTIME);
	LD	C,50
	PUSH	BC
	LD	C,102
	CALL	LWRD ?0092
	POP	AF
; 168.	    string++;
; 169.	    id= *string-0x30;
	LD	A,(IX+3)
	ADD	A,208
; 170.	    main_ResShowPic(PRGNUM0+id,POS_SONGTIME+62,POSY_SONGTIME);
	LD	C,50
	PUSH	BC
	LD	C,124
	CALL	LWRD ?0092
	POP	AF
; 171.	    string++;
; 172.	    id= *string-0x30;
	LD	A,(IX+4)
	ADD	A,208
; 173.	    main_ResShowPic(PRGNUM0+id,POS_SONGTIME+78,POSY_SONGTIME);
	LD	C,50
	PUSH	BC
	LD	C,140
	CALL	LWRD ?0092
	POP	AF
; 174.	}
	POP	HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_f:
; 175.	
; 176.	
; 177.	void ui_show_f(const char *string)                //文件名/滚屏显示
; 178.	{
	PUSH	BC
	PUSH	DE
; 179.	    SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
	LD	C,110
?0087:
	LD	E,45
	CALL	LWRD SetTextPos
; 180.	    PutS(string, -1);
	LD	C,255
	LD	HL,0
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD PutS
; 181.	}
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_g:
; 182.	
; 183.	void ui_show_g(const char *string)         //文件名显示
; 184.	{
	PUSH	BC
	PUSH	DE
; 185.	    SetTextPos(POS_FILENAME, POSY_FILENAME);
	LD	C,79
	JP	LWRD ?0087
; 186.	    PutS(string, -1);
; 187.	}
ui_show_vol:
; 188.	
; 189.	void ui_show_vol(BYTE volume)         //显示音量信息
; 190.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
; 191.	        char temp[3];
; 192.	        itoa_2(volume, temp);
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 193.	        main_ResShowPic(TVNUM0+temp[0]-0x30,POS_VOl,POSY_VOl);
	LD	C,162
	PUSH	BC
	LD	C,24
	LD	HL,2
	ADD	HL,SP
	LD	E,(HL)
	LD	D,0
	LD	HL,193
	CALL	LWRD ?0093
	POP	AF
; 194.	       main_ResShowPic(TVNUM0+temp[1]-0x30,POS_VOl+6,POSY_VOl);
	LD	C,162
	PUSH	BC
	LD	C,30
	LD	HL,3
	ADD	HL,SP
	LD	E,(HL)
	LD	D,0
	LD	HL,193
?0088:
	CALL	LWRD ?0093
	POP	AF
; 195.	}
	POP	HL
	POP	HL
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_bitrate:
; 196.	
; 197.	void ui_show_bitrate(int bitvalue)    //显示比特率
; 198.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
; 199.	    char temp[4];
; 200.	    itoa_3(bitvalue,temp);
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	A,BYTE3 itoa_3
	LD	HL,LWRD itoa_3
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 201.	    main_ResShowPic(MBIT0+temp[0]-0x30,POS_BITRATE,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,9
	LD	HL,2
	ADD	HL,SP
	LD	E,(HL)
	LD	D,0
	LD	HL,33
	CALL	LWRD ?0093
	POP	AF
; 202.	    main_ResShowPic(MBIT0+temp[1]-0x30,POS_BITRATE+6,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,15
	LD	HL,3
	ADD	HL,SP
	LD	E,(HL)
	LD	D,0
	LD	HL,33
	CALL	LWRD ?0093
	POP	AF
; 203.	    main_ResShowPic(MBIT0+temp[2]-0x30,POS_BITRATE+12,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,21
	LD	HL,4
	ADD	HL,SP
	LD	E,(HL)
	LD	D,0
	LD	HL,33
	JP	LWRD ?0088
; 204.	
; 205.	}
ui_show_batt:
; 206.	
; 207.	/* event r: reset
; 208.	 * event l: battery empty
; 209.	 * event h: battery full
; 210.	 * event n: nmi, auto standby
; 211.	 * event r1: stop recording point, file < 32M
; 212.	 * event r2: stop recording point, file > 32M
; 213.	 *
; 214.	 * value    voltage        碱性电池    镍氢电池    锂电池
; 215.	 * 0         0.90        r
; 216.	 * 1        0.94
; 217.	 * 2        0.98        n        r
; 218.	 * 3        1.02
; 219.	 * 4        1.06        l,r1        n
; 220.	 * 5        1.10        r2        l,r1
; 221.	 * 6        1.14                r2
; 222.	 * 7        1.18
; 223.	 * 8        1.22
; 224.	 * 9        1.26
; 225.	 * 10        1.30                        n
; 226.	 * 11        1.34                        l,r1
; 227.	 * 12        1.38        h        h        r2
; 228.	 * 13        1.42
; 229.	 * 14        1.46
; 230.	 * 15        1.50                        h
; 231.	 */
; 232.	//0~15, -1 表示正在充电
; 233.	void ui_show_batt(int value, char batt_type, bool fmflag)
; 234.	{
	PUSH	IX
	PUSH	BC
	PUSH	DE
	POP	IX
; 235.	    static int cur_value=0;    //当前电量值
; 236.	
; 237.	    //ASSERT(value == -1 || (value >= 0 && value <= 15));
; 238.	    if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
	LD	E,0
	CALL	LWRD sKY_ChargeSet
	OR	A
	JR	Z,?0009
	IN	A,(156)
	CP	228
	JR	NC,?0009
?0011:
?0010:
?0008:
; 239.	    {
; 240.	       cur_value++;
	LD	HL,(?0007)
	INC	HL
	LD	(?0007),HL
; 241.	        if(cur_value > 8) cur_value = 0;
	LD	C,L
	LD	B,H
	LD	HL,8
	OR	128
	SBC	HL,BC
	JP	PO,?0065
	XOR	H
?0065:
	JP	P,?0040
?0012:
	JR	?0080
?0013:
; 242.	    }
; 243.	
; 244.	    else
?0009:
; 245.	    {
; 246.	        if(batt_type == BATT_TYPE_ALKALINE)    //碱性电池
	XOR	A
	OR	C
	JR	NZ,?0016
?0015:
; 247.	        {
; 248.	            if(value < 62) cur_value = 0;    //batt empty
	LD	BC,32830
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	C,?0080
?0017:
?0018:
; 249.	            else if(value > 116 ) cur_value = 8;    //batt full
	PUSH	IX
	POP	BC
	LD	HL,116
	OR	128
	SBC	HL,BC
	JP	PO,?0066
	XOR	H
?0066:
	JP	M,?0079
?0020:
?0021:
; 250.	            else cur_value = (value - 62) / 7;      // 116 - 62
	LD	HL,65474
	ADD	HL,BC
	EX	DE,HL
	LD	BC,7
	JR	?0073
?0022:
?0019:
?0016:
; 251.	        }
; 252.	        else if(batt_type == BATT_TYPE_NIH)    //镍氢电池
	LD	B,C
	DEC	B
	JR	NZ,?0025
?0024:
; 253.	        {
; 254.	            if(value < 69) cur_value = 0;    //batt empty
	LD	BC,32837
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	C,?0080
?0026:
?0027:
; 255.	            else if(value > 116 ) cur_value = 8;    //batt full
	PUSH	IX
	POP	BC
	LD	HL,116
	OR	128
	SBC	HL,BC
	JP	PO,?0067
	XOR	H
?0067:
	JP	M,?0079
?0029:
?0030:
; 256.	            else cur_value = (value - 69) / 6;
	LD	HL,65467
	ADD	HL,BC
	EX	DE,HL
	LD	BC,6
	JR	?0073
?0031:
?0028:
?0025:
; 257.	        }
; 258.	        else if(batt_type == BATT_TYPE_LITHIUM)    //锂电池
	LD	HL,0
	ADD	HL,SP
	LD	B,(HL)
	DEC	B
	DEC	B
	JR	NZ,?0040
?0033:
; 259.	        {
; 260.	            if(value < 175) cur_value = 0;    //batt empty
	LD	BC,32943
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0036
?0035:
?0080:
	LD	HL,0
	JR	?0071
?0036:
; 261.	            else if(value > 201)cur_value = 8;
	PUSH	IX
	POP	BC
	LD	HL,201
	OR	L
	SBC	HL,BC
	JP	PO,?0068
	XOR	H
?0068:
	JP	P,?0039
?0038:
?0079:
	LD	HL,8
?0071:
	LD	(?0007),HL
	JR	?0040
?0039:
; 262.	            else cur_value = (value - 175) / 4;    //  zxs change
	LD	HL,65361
	ADD	HL,BC
	EX	DE,HL
	LD	BC,4
?0073:
	CALL	LWRD ?SS_DIV_L02
	LD	(?0007),DE
?0040:
?0037:
; 263.	        }
; 264.	        else ASSERT(FALSE);
?0034:
?0041:
?0032:
?0023:
?0014:
; 265.	    }
; 266.	      if(!fmflag)
?0042:
; 267.	       main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
; 268.	      else
?0043:
; 269.	       main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
	LD	C,162
	PUSH	BC
	LD	C,193
	LD	HL,19
	LD	DE,(?0007)
	CALL	LWRD ?0093
	POP	AF
?0044:
; 270.	}
	POP	HL
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_lock:
; 271.	
; 272.	char ui_show_lock(char islock)
; 273.	{
	PUSH	BC
	PUSH	DE
; 274.	    if(islock == 1)
	LD	B,E
	DEC	B
	JR	NZ,?0046
?0045:
; 275.	    {
; 276.	        SetBackgdColor(Color_BULE1_def);
	LD	C,B
	LD	DE,30014
	CALL	LWRD SetBackgdColor
; 277.	        ClearScreen(NULL);
	LD	DE,0
	CALL	LWRD ClearScreen
; 278.	
; 279.	        ResShowPic(UDLOCK_S,86,80);
	LD	C,80
	PUSH	BC
	LD	C,86
	LD	DE,8
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
?0046:
; 280.	    }
; 281.	    //wait 2s
; 282.	    return ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 283.	}
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 284.	
; 285.	
	RSEG	IDATA0
?0007:
	DEFS	2
	RSEG	CDATA0
	DEFW	0
	END

⌨️ 快捷键说明

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