ui_licensinf.s01
来自「MP3 整个 SDK」· S01 代码 · 共 1,182 行 · 第 1/2 页
S01
1,182 行
; 289. itoa_4(infbuf->RemainPlayCnt, tmpbuf);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+1)
LD D,(IY+2)
JR ?0098
; 290. SetTextPos(80, 70);
; 291. delstartzero(tmpbuf);
; 292. PutS(tmpbuf, -1);
; 293. //if (lan_id == LAN_ID_ENGLISH)
; 294. //{
; 295. // SetTextPos()
; 296. //}
; 297. ResShowMultiString(TTIMES, lan_id, 124, 70);
; 298. return TRUE;
; 299. }
?0047:
; 300.
; 301. case OriginalPlayCntDisp_def:
; 302. if ((infbuf->switchflag & on_PLAYCNT_def) == 0)
BIT 5,(IY+0)
JP Z,?0068
?0048:
; 303. {
; 304. return FALSE;
; 305. }
?0049:
; 306. else
; 307. {
; 308. char tmpbuf[5];
; 309. //显示标题
; 310. ClearScreen(NULL);
CALL LWRD ?0106
; 311. ResShowMultiString(OPLAYCNT, lan_id, 255, 90);
PUSH BC
LD C,255
PUSH BC
LD C,(IX+12)
LD DE,444
CALL LWRD ?0107
POP AF
POP AF
; 312. itoa_4(infbuf->originalPlayCnt, tmpbuf);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+3)
LD D,(IY+4)
?0098:
CALL LWRD ?0110
; 313. SetTextPos(80, 70);
; 314. delstartzero(tmpbuf);
ADD HL,SP
CALL LWRD ?0111
; 315. PutS(tmpbuf, -1);
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 316. //if (lan_id == LAN_ID_ENGLISH)
; 317. //{
; 318. // SetTextPos()
; 319. //}
; 320. ResShowMultiString(TTIMES, lan_id, 124, 70);
LD C,70
PUSH BC
LD C,124
PUSH BC
LD C,(IX+12)
LD DE,448
CALL LWRD ?0107
POP AF
POP AF
; 321. return TRUE;
JR ?0101
; 322.
; 323. }
?0050:
; 324.
; 325. case BeginDateTimeDisp_def:
; 326. if ((infbuf->switchflag & on_BEGINDAT_def) == 0)
BIT 4,(IY+0)
JP Z,?0068
?0051:
; 327. {
; 328. return FALSE;
; 329. }
?0052:
; 330. else
; 331. {
; 332.
; 333. //显示日期时间
; 334. DateTime_t *pBeginDateTime;
; 335. pBeginDateTime = (DateTime_t *)&infbuf->BeginDate;
LD HL,5
PUSH IY
POP BC
ADD HL,BC
; 336. DisplayDate(BEGINDAT, pBeginDateTime, subcnt, lan_id);
LD C,(IX+12)
PUSH BC
LD C,(IX+10)
PUSH BC
LD C,L
LD B,H
LD DE,440
JR ?0105
; 337.
; 338. //ClearScreen(NULL);
; 339. //ResShowMultiString(BEGINDAT, lan_id, 0, 0);
; 340. //DisplayDate(&infbuf->BeginDate, lan_id, 30, 24);
; 341. return TRUE;
; 342. }
?0053:
; 343.
; 344.
; 345. case ExpDateTimeDisp_def:
; 346. if ((infbuf->switchflag & on_EXPDATE_def) == 0)
BIT 3,(IY+0)
JP Z,?0068
?0054:
; 347. {
; 348. return FALSE;
; 349. }
?0055:
; 350. else
; 351. {
; 352. DateTime_t *pExpDateTime;
; 353. pExpDateTime = (DateTime_t *)&infbuf->ExpDate;
LD HL,12
PUSH IY
POP BC
ADD HL,BC
; 354. DisplayDate(EXPDATE, pExpDateTime, subcnt, lan_id);
LD C,(IX+12)
PUSH BC
LD C,(IX+10)
PUSH BC
LD C,L
LD B,H
LD DE,441
?0105:
LD A,BYTE3 DisplayDate
LD HL,LWRD DisplayDate
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
POP HL
; 355.
; 356. //ClearScreen(NULL);
; 357. //ResShowMultiString(EXPDATE, lan_id, 0, 0);
; 358. //DisplayDate(&infbuf->ExpDate, lan_id, 30, 24);
; 359. return TRUE;
?0101:
JR ?0102
; 360. }
?0056:
; 361.
; 362. case RemainTimeDisp_def:
; 363. if ((infbuf->switchflag & on_REMAINTM_def) == 0)
BIT 2,(IY+0)
JP Z,?0068
?0057:
; 364. {
; 365. return FALSE;
; 366. }
?0058:
; 367. else
; 368. {
; 369. char tmpbuf[5];
; 370. ClearScreen(NULL);
CALL LWRD ?0106
; 371. ResShowMultiString(REMAINTM, lan_id, 255, 90);
PUSH BC
LD C,255
PUSH BC
LD C,(IX+12)
LD DE,442
CALL LWRD ?0107
POP AF
POP AF
; 372. itoa_4(infbuf->RemainTime, tmpbuf);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+19)
LD D,(IY+20)
CALL LWRD ?0110
; 373. SetTextPos(80, 70);
; 374. delstartzero(tmpbuf);
ADD HL,SP
CALL LWRD ?0111
; 375. PutS(tmpbuf, -1);
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 376. ResShowMultiString(HOURS, lan_id, 124, 70);
LD C,70
PUSH BC
LD C,124
PUSH BC
LD C,(IX+12)
LD DE,449
CALL LWRD ?0107
POP AF
POP AF
; 377. return TRUE;
?0102:
JR ?0103
; 378. }
?0059:
; 379.
; 380. case RemainStoreTimeDisp_def:
; 381. if ((infbuf->switchflag & on_REMAINST_def) == 0)
BIT 1,(IY+0)
JR Z,?0068
?0060:
; 382. {
; 383. return FALSE;
; 384. }
?0061:
; 385. else
; 386. {
; 387. char tmpbuf[5];
; 388. ClearScreen(NULL);
CALL LWRD ?0106
; 389. ResShowMultiString(REMAINST, lan_id, 255, 90);
PUSH BC
LD C,255
PUSH BC
LD C,(IX+12)
LD DE,443
CALL LWRD ?0107
POP AF
POP AF
; 390. itoa_4(infbuf->RemainStoreTime, tmpbuf);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+21)
LD D,(IY+22)
CALL LWRD ?0110
; 391. SetTextPos(80, 70);
; 392. delstartzero(tmpbuf);
ADD HL,SP
CALL LWRD ?0111
; 393. PutS(tmpbuf, -1);
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 394. ResShowMultiString(TDAY, lan_id, 124, 70);
LD C,70
PUSH BC
LD C,124
PUSH BC
LD C,(IX+12)
LD DE,447
CALL LWRD ?0107
POP AF
POP AF
; 395. return TRUE;
?0103:
JR ?0067
; 396. }
?0062:
; 397.
; 398. case DealOnClkBckDisp_def:
; 399. if ((infbuf->switchflag & on_DEALCLKBCK_def) == 0)
BIT 0,(IY+0)
JR Z,?0068
?0063:
; 400. {
; 401. return FALSE;
; 402. }
?0064:
; 403. else
; 404. {
; 405. if (infbuf->DealOnClkBck == 0)
LD A,(IY+23)
OR A
JR NZ,?0066
?0065:
; 406. {
; 407. ClearScreen(NULL);
LD E,A
LD D,A
CALL LWRD ClearScreen
; 408. ResShowMultiString(DELCKBCK, lan_id, 255, 80);
LD C,80
PUSH BC
LD C,255
PUSH BC
LD C,(IX+12)
LD DE,445
JR ?0090
; 409. }
; 410. else
?0066:
; 411. {
; 412. ClearScreen(NULL);
LD DE,0
CALL LWRD ClearScreen
; 413. ResShowMultiString(DISCKBCK, lan_id, 255, 80);
LD C,80
PUSH BC
LD C,255
PUSH BC
LD C,(IX+12)
LD DE,446
?0090:
CALL LWRD ?0107
POP AF
POP AF
?0067:
; 414. }
; 415. return TRUE;
LD L,1
; 416. }
JR ?0069
?0068:
; 417.
; 418. default:
; 419. return FALSE;
LD L,0
; 420. }
?0069:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0106:
LD DE,0
CALL LWRD ClearScreen
LD C,90
RET
?0110:
LD A,BYTE3 itoa_4
LD HL,LWRD itoa_4
CALL LWRD ?BANK_CALL_DIRECT_L08
LD C,70
LD E,80
CALL LWRD SetTextPos
LD HL,2
RET
?0111:
EX DE,HL
LD A,BYTE3 delstartzero
LD HL,LWRD delstartzero
CALL LWRD ?BANK_CALL_DIRECT_L08
LD C,255
LD HL,2
RET
?0043:
; 421. }
DisplayDate:
; 422.
; 423. void DisplayDate(int ID, DateTime_t *pDate,char discnt, BYTE string_id)
; 424. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65524
PUSH IY
PUSH BC
POP IY
; 425. char disbuf[11];
; 426.
; 427. /*
; 428. switch(discnt)
; 429. {
; 430. case 0:
; 431. //a+b
; 432. ClearScreen(NULL);
; 433. ResShowMultiString(ID, string_id, 0, 0);
; 434. itoa4(pDate->date.year, &disbuf[0]);
; 435. itoa2(pDate->date.month, &disbuf[5]);
; 436. itoa2(pDate->date.day, &disbuf[8]);
; 437. disbuf[4] = '-';
; 438. disbuf[7] = '-';
; 439. SetTextPos(30, 24);
; 440. PutS(disbuf, -1);
; 441. break;
; 442.
; 443. case 1:
; 444. //b+c
; 445. ClearScreen(NULL);
; 446. itoa4(pDate->date.year, &disbuf[0]);
; 447. itoa2(pDate->date.month, &disbuf[5]);
; 448. itoa2(pDate->date.day, &disbuf[8]);
; 449. disbuf[4] = '-';
; 450. disbuf[7] = '-';
; 451. SetTextPos(30, 0);
; 452. PutS(disbuf, -1);
; 453. itoa2(pDate->time.hour, &disbuf[0]);
; 454. itoa2(pDate->time.minute, &disbuf[3]);
; 455. itoa2(pDate->time.second, &disbuf[6]);
; 456. disbuf[2] = ':';
; 457. disbuf[5] = ':';
; 458. SetTextPos(30, 24);
; 459. PutS(disbuf, -1);
; 460. break;
; 461.
; 462. default:
; 463. break;
; 464. }
; 465. */
; 466. ClearScreen(NULL);
LD DE,0
CALL LWRD ClearScreen
; 467. ResShowMultiString(ID, string_id, 255, 90);
LD E,90
PUSH DE
LD E,255
PUSH DE
LD C,(IX+12)
LD E,(IX+2)
LD D,(IX+3)
CALL LWRD ?0107
POP AF
POP AF
; 468. itoa_4(pDate->date.year, &disbuf[0]);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+0)
LD D,(IY+1)
LD A,BYTE3 itoa_4
LD HL,LWRD itoa_4
CALL LWRD ?BANK_CALL_DIRECT_L08
; 469. itoa_2(pDate->date.month, &disbuf[5]);
LD HL,2
ADD HL,SP
LD BC,5
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+2)
CALL LWRD ?0112
; 470. itoa_2(pDate->date.day, &disbuf[8]);
ADD HL,SP
LD BC,8
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+3)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 471. disbuf[4] = '-';
LD (IX-8),45
; 472. disbuf[7] = '-';
LD (IX-5),45
; 473. SetTextPos(24, 70);
LD C,70
LD E,24
CALL LWRD SetTextPos
; 474. PutS(disbuf, -1);
LD C,255
LD HL,2
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 475.
; 476. itoa_2(pDate->time.hour, &disbuf[0]);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,(IY+4)
CALL LWRD ?0112
; 477. itoa_2(pDate->time.minute, &disbuf[3]);
ADD HL,SP
LD BC,3
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+5)
CALL LWRD ?0112
; 478. itoa_2(pDate->time.second, &disbuf[6]);
ADD HL,SP
LD BC,6
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+6)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 479. disbuf[2] = ':';
LD (IX-10),58
; 480. disbuf[5] = ':';
LD (IX-7),58
; 481. SetTextPos(114, 70);
LD C,70
LD E,114
CALL LWRD SetTextPos
; 482. PutS(disbuf, -1);
LD C,255
LD HL,2
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 483.
; 484.
; 485. }
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0112:
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
LD HL,2
RET
delstartzero:
; 486.
; 487. void delstartzero(char* buf)
; 488. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65534
LD E,(IX+2)
LD L,E
LD D,(IX+3)
LD H,D
; 489. char i;
; 490. if (buf[0]=='\0')
XOR A
OR (HL)
JR Z,?0072
?0070:
; 491. {
; 492. return;
; 493. }
?0071:
; 494.
; 495. for(i=0; buf[i]!='\0'; i++)
LD (IX-2),0
?0073:
LD C,(IX-2)
LD B,0
LD L,E
LD H,D
ADD HL,BC
LD A,(HL)
OR A
JR Z,?0072
?0074:
; 496. {
; 497. if (buf[i]=='0')
LD L,E
LD H,D
ADD HL,BC
LD A,(HL)
CP 48
JR NZ,?0072
?0076:
; 498. {
; 499. if (buf[i+1] == '\0')
LD L,E
LD H,D
ADD HL,BC
INC HL
LD A,(HL)
OR A
JR Z,?0072
?0078:
; 500. {
; 501. return;
; 502. }
?0079:
; 503. buf[i] = ' ';
LD L,E
LD H,D
ADD HL,BC
LD (HL),32
; 504. }
; 505. else
?0077:
; 506. {
; 507. break;
?0080:
INC (IX-2)
; 508. }
; 509. }
; 510. }
JR ?0073
?0072:
?0081:
JP LWRD ?BANK_LEAVE_DIRECT_L08
; 511.
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?