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 + -
显示快捷键?