📄 ui_main.s01
字号:
CALL LWRD ?0121
; 211. if(ui_auto_update) UpdateScreen(®ion_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(®ion_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(®ion_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(®ion_e);
LD DE,region_e
CALL LWRD ClearScreen
; 243. if(ui_auto_update) UpdateScreen(®ion_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(®ion_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(®ion_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(®ion_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 + -