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

📄 ui_main.s01

📁 5807收音机模块用于炬力平台
💻 S01
📖 第 1 页 / 共 2 页
字号:
	CALL	LWRD ?0121
; 211.	    if(ui_auto_update) UpdateScreen(&region_d2);
	JR	Z,?0016
?0015:
	LD	DE,region_d2
	CALL	LWRD UpdateScreen
?0016:
; 212.	}
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0120:
	CALL	LWRD SetTextPos
	LD	C,255
	LD	HL,0
	RET
?0121:
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD PutS
	LD	A,(ui_auto_update)
	OR	A
	RET
ui_show_d:
; 213.	
; 214.	void ui_show_d(const char *string, BYTE part)
; 215.	{
	PUSH	BC
	PUSH	DE
; 216.	    if(part == 0) SetTextPos(POSITION_D, 0);
	XOR	A
	OR	C
	JR	Z,?0076
?0017:
?0018:
; 217.	    else SetTextPos(POSITION_D, 8);
	LD	C,8
?0076:
	LD	E,50
	CALL	LWRD ?0120
?0019:
; 218.	
; 219.	    PutS(string, -1);
	ADD	HL,SP
	CALL	LWRD ?0121
; 220.	    if(ui_auto_update) UpdateScreen(&region_d);
	JR	Z,?0021
?0020:
	LD	DE,region_d
	CALL	LWRD UpdateScreen
?0021:
; 221.	}
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_cd:
; 222.	
; 223.	void ui_show_cd(const char *string, BYTE part)
; 224.	{
	PUSH	BC
	PUSH	DE
; 225.	    if(part == 0) SetTextPos(POSITION_C, 0);
	XOR	A
	OR	C
	JR	Z,?0078
?0022:
?0023:
; 226.	    else SetTextPos(POSITION_C, 8);
	LD	C,8
?0078:
	LD	E,38
	CALL	LWRD ?0120
?0024:
; 227.	
; 228.	    PutS(string, -1);
	ADD	HL,SP
	CALL	LWRD ?0121
; 229.	    if(ui_auto_update) UpdateScreen(&region_cd);
	JR	Z,?0026
?0025:
	LD	DE,region_cd
	CALL	LWRD UpdateScreen
?0026:
; 230.	}
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_d_pic:
; 231.	
; 232.	void ui_show_d_pic(WORD id)
; 233.	{
	PUSH	BC
	PUSH	DE
; 234.	    main_ResShowPic(id, POSITION_D, 0);
	LD	C,0
	PUSH	BC
	LD	C,50
	JP	LWRD ?0115
; 235.	}
ui_show_e:
; 236.	
; 237.	//id =0, clear the icon
; 238.	void ui_show_e(WORD id)
; 239.	{
	PUSH	BC
	PUSH	IX
; 240.	    if(id == 0)
	LD	A,E
	OR	D
	JR	NZ,?0028
?0027:
; 241.	    {
; 242.	        ClearScreen(&region_e);
	LD	DE,region_e
	CALL	LWRD ClearScreen
; 243.	        if(ui_auto_update) UpdateScreen(&region_e);
	LD	A,(ui_auto_update)
	OR	A
	JR	Z,?0031
?0029:
	LD	DE,region_e
	CALL	LWRD UpdateScreen
?0030:
	JR	?0031
?0028:
; 244.	    }
; 245.	    else main_ResShowPic(id, POSITION_E, 0);
	LD	C,0
	PUSH	BC
	LD	C,67
	CALL	LWRD ?0119
	POP	AF
?0031:
; 246.	}
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_f:
; 247.	
; 248.	void ui_show_f(const char *string, BYTE part)
; 249.	{
	PUSH	BC
	PUSH	DE
; 250.	    if(part == 0) SetTextPos(POSITION_F, 0);
	XOR	A
	OR	C
	JR	Z,?0080
?0032:
?0033:
; 251.	    else SetTextPos(POSITION_F, 8);
	LD	C,8
?0080:
	LD	E,85
	CALL	LWRD ?0120
?0034:
; 252.	
; 253.	    PutS(string, -1);
	ADD	HL,SP
	CALL	LWRD ?0121
; 254.	    if(ui_auto_update) UpdateScreen(&region_f);
	JR	Z,?0036
?0035:
	LD	DE,region_f
	CALL	LWRD UpdateScreen
?0036:
; 255.	}
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_ef:
; 256.	
; 257.	void  ui_show_ef(const char *string, BYTE part)
; 258.	{
	PUSH	BC
	PUSH	DE
; 259.	    if(part == 0) SetTextPos(POSITION_E, 0);
	XOR	A
	OR	C
	JR	Z,?0082
?0037:
?0038:
; 260.	    else SetTextPos(POSITION_E, 8);
	LD	C,8
?0082:
	LD	E,67
	CALL	LWRD ?0120
?0039:
; 261.	
; 262.	    PutS(string, -1);
	ADD	HL,SP
	CALL	LWRD ?0121
; 263.	    if(ui_auto_update) UpdateScreen(&region_ef);
	JR	Z,?0041
?0040:
	LD	DE,region_ef
	CALL	LWRD UpdateScreen
?0041:
; 264.	}
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_g:
; 265.	
; 266.	void ui_show_g(const char *string)
; 267.	{
	PUSH	BC
	PUSH	DE
; 268.	    //show stuff
; 269.	    SetTextPos(POSITION_G, 16);
	LD	C,16
	LD	E,0
	CALL	LWRD ?0120
; 270.	    PutS(string, -1);
	ADD	HL,SP
	CALL	LWRD ?0121
; 271.	
; 272.	    if(ui_auto_update) UpdateScreen(&region_g);
	JR	Z,?0043
?0042:
	LD	DE,region_g
	CALL	LWRD UpdateScreen
?0043:
; 273.	}
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_batt:
; 274.	/* event r: reset
; 275.	 * event l: battery empty
; 276.	 * event h: battery full
; 277.	 * event n: nmi, auto standby
; 278.	 * event r1: stop recording point, file < 32M
; 279.	 * event r2: stop recording point, file > 32M
; 280.	 *
; 281.	 * 16level 256level
; 282.	 * value     value      voltage        碱性电池    镍氢电池    锂电池 
; 283.	 * 0         08         0.90        r
; 284.	 * 1                    0.94
; 285.	 * 2                    0.98        n        r
; 286.	 * 3                    1.02        
; 287.	 * 4         0e         1.06        l,r1        n
; 288.	 * 5         10         1.10        r2        l,r1
; 289.	 * 6         11         1.14                r2
; 290.	 * 7         13         1.18
; 291.	 * 8         15         1.22
; 292.	 * 9         16         1.26
; 293.	 * 10        18         1.30                        n
; 294.	 * 11        1a         1.34                        l,r1
; 295.	 * 12        1b         1.38        h        h        r2
; 296.	 * 13                   1.42
; 297.	 * 14                   1.46
; 298.	 * 15        20         1.50                        h
; 299.	 */
; 300.	/*
; 301.	*   Battery Monitor is 0.7v to 2.2v, 256 level.
; 302.	*   One level is 5.86mv
; 303.	*/ 
; 304.	//0~15, -1 表示正在充电
; 305.	void ui_show_batt(int value, char batt_type)
; 306.	{
	PUSH	IX
	PUSH	BC
	PUSH	DE
	POP	IX
; 307.	    static int cur_value=0;    //当前电量值
; 308.	if(g_comval.BatteryType == BATT_TYPE_LITHIUM)
	LD	A,(g_comval+15)
	DEC	A
	DEC	A
	JR	NZ,?0046
?0045:
; 309.	{    
; 310.	    if((input8(0x8b) & 0x01) !=0)
	IN	A,(139)
	BIT	0,A
	JR	Z,?0048
?0047:
; 311.	    {
; 312.	           cur_value++;
	LD	HL,(?0044)
	INC	HL
	LD	(?0044),HL
; 313.	           if(cur_value > 8) cur_value = 0;
	LD	C,L
	LD	B,H
	LD	HL,8
	OR	128
	SBC	HL,BC
	JP	PO,?0098
	XOR	H
?0098:
	JP	P,?0070
?0049:
	JR	?0109
?0050:
?0048:
; 314.	    }
; 315.	    else if((input8(0x8e)&0x80) != 0)  //DC 5V 的检测
	IN	A,(142)
	BIT	7,A
	JR	NZ,?0107
?0052:
; 316.	    {
; 317.	            cur_value = 8;   
; 318.	    }
; 319.	    else
?0053:
; 320.	    {
; 321.	            if(value < 0x13) cur_value = 0;    //batt empty
	LD	BC,32787
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	C,?0109
?0055:
?0056:
; 322.	            else if(value >0x17)
	PUSH	IX
	POP	BC
	LD	HL,23
	OR	128
	SBC	HL,BC
	JP	PO,?0099
	XOR	H
?0099:
	JP	M,?0107
?0058:
; 323.	            {
; 324.	                 cur_value = 8;
; 325.	            }
; 326.	            else 
?0059:
; 327.	            {
; 328.	                    cur_value = (value - 0x13)*2 ;    //  
	LD	HL,65517
	ADD	HL,BC
	ADD	HL,HL
	JR	?0105
?0060:
?0057:
?0054:
?0051:
; 329.	            }   
; 330.	    }
; 331.	}
; 332.	else
?0046:
; 333.	{     
; 334.	    if(input8(0x8e)&0x80)    
	IN	A,(142)
	BIT	7,A
	JR	NZ,?0107
?0062:
; 335.	    {
; 336.	        cur_value = 8;
; 337.	    } 
; 338.	    else
?0063:
; 339.	    {
; 340.	        {   
; 341.	            if(value < 0x10) cur_value = 0;    //batt empty
	LD	BC,32784
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0066
?0065:
?0109:
	LD	HL,0
	JR	?0105
?0066:
; 342.	            else if(value > 0x1b ) cur_value = 8;    //batt full
	PUSH	IX
	POP	BC
	LD	HL,27
	OR	128
	SBC	HL,BC
	JP	PO,?0100
	XOR	H
?0100:
	JP	P,?0069
?0068:
?0107:
	LD	HL,8
?0105:
	LD	(?0044),HL
	JR	?0070
?0069:
; 343.	            else cur_value = (value-0x10)*7/11;      
	LD	HL,65520
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	DE,7
	CALL	LWRD ?S_MUL_L02
	LD	BC,11
	CALL	LWRD ?SS_DIV_L02
	LD	(?0044),DE
?0070:
?0067:
?0064:
?0061:
; 344.	        }
; 345.	    }
; 346.	}    
; 347.	       main_ResShowPic(batt_id[cur_value], POSITION_BATT, 0);      
	LD	C,0
	PUSH	BC
	LD	C,114
	LD	HL,(?0044)
	ADD	HL,HL
	LD	DE,batt_id
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?0119
	POP	AF
; 348.	}
	POP	HL
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_lock:
; 349.	
; 350.	char ui_show_lock(char islock)
; 351.	{
	PUSH	BC
	PUSH	DE
; 352.	    if(islock == 1)
	LD	B,E
	DEC	B
	JR	NZ,?0072
?0071:
; 353.	    {
; 354.	        main_ResShowPic(LOCK,0,0);
	LD	C,B
	PUSH	BC
	LD	DE,209
	CALL	LWRD ?0119
	POP	AF
?0072:
; 355.	        //if(!ui_auto_update) UpdateScreen(NULL);
; 356.	    }
; 357.	//    else ResShowLogo(0);
; 358.	    //wait 2s
; 359.	    return ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 360.	}
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 361.	
; 362.	
	RSEG	IDATA0
?0044:
	DEFS	2
	RSEG	CDATA0
	DEFW	0
	RSEG	COM_MAIN_D
region_c:
	DEFB	'&'
	DEFB	0
	DEFB	11
	DEFB	16
region_d2:
	DEFB	','
	DEFB	0
	DEFB	23
	DEFB	16
region_d:
	DEFB	'2'
	DEFB	0
	DEFB	17
	DEFB	16
region_cd:
	DEFB	'&'
	DEFB	0
	DEFB	29
	DEFB	16
region_e:
	DEFB	'C'
	DEFB	0
	DEFB	16
	DEFB	16
region_f:
	DEFB	'U'
	DEFB	0
	DEFB	29
	DEFB	16
region_ef:
	DEFB	'C'
	DEFB	0
	DEFB	'/'
	DEFB	16
region_g:
	DEFB	0
	DEFB	16
	DEFB	128
	DEFB	16
batt_id:
	DEFW	13
	DEFW	14
	DEFW	15
	DEFW	16
	DEFW	17
	DEFW	18
	DEFW	19
	DEFW	20
	DEFW	21
	END

⌨️ 快捷键说明

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