📄 bookmark.lst
字号:
\ 04AD DD56EF LD D,(IX-17)
\ 04B0 23 INC HL
\ 04B1 72 LD (HL),D
\ 04B2 23 INC HL
\ 04B3 71 LD (HL),C
\ 04B4 23 INC HL
\ 04B5 70 LD (HL),B
288 memcpy( bkmarks[i].title, tt, MAX_TITLE_LEN );
\ 04B6 010C00 LD BC,12
\ 04B9 DD6EEA LD L,(IX-22)
\ 04BC DD66EB LD H,(IX-21)
\ 04BF 29 ADD HL,HL
\ 04C0 29 ADD HL,HL
\ 04C1 29 ADD HL,HL
\ 04C2 29 ADD HL,HL
\ 04C3 EB EX DE,HL
\ 04C4 210700 LD HL,bkmarks+4
\ 04C7 19 ADD HL,DE
\ 04C8 EB EX DE,HL
\ 04C9 DD6EEC LD L,(IX-20)
\ 04CC DD66ED LD H,(IX-19)
\ 04CF EDB0 LDIR
289 return 0;
\ 04D1 ?0092:
\ 04D1 2E00 LD L,0
290 }
\ 04D3 1817 JR ?0066
\ 04D5 ?0061:
291 else
292 {
293 /* the bookmarks number reaches MAX_BKMARK_NUM */
294 /* give some warning messages :del some bkmark:*/
295 // FIXME::
296 ui_err_msg(EBOKMSG3,EBOKMSG3,g_comval.langid);
\ 04D5 ED4B0C00 LD BC,(g_comval+12)
\ 04D9 0600 LD B,0
\ 04DB C5 PUSH BC
\ 04DC 01AB01 LD BC,427
\ 04DF 59 LD E,C
\ 04E0 50 LD D,B
\ 04E1 3E00 LD A,BYTE3 ui_err_msg
\ 04E3 210000 LD HL,LWRD ui_err_msg
\ 04E6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04E9 F1 POP AF
297 return 1;
298 }
\ 04EA ?0050:
299 }
300
301 return 1;
\ 04EA 2E01 LD L,1
302 }
\ 04EC ?0066:
\ 04EC DDF9 LD SP,IX
\ 04EE DDE1 POP IX
\ 04F0 FDE1 POP IY
\ 04F2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 04F5 del_bookmark_id:
303
304 bool del_bookmark_id(UInt8 id) //根据ID号来删除书签
305 {
\ 04F5 C5 PUSH BC
\ 04F6 D5 PUSH DE
\ 04F7 F5 PUSH AF
306 byte i = id;
\ 04F8 210000 LD HL,0
\ 04FB 39 ADD HL,SP
\ 04FC E5 PUSH HL
\ 04FD 43 LD B,E
\ 04FE E1 POP HL
\ 04FF 70 LD (HL),B
307
308 if( i >= MAX_BKMARK_NUM )
\ 0500 78 LD A,B
\ 0501 FE10 CP 16
\ 0503 3804 JR C,?0068
\ 0505 ?0067:
309 return 1;
\ 0505 2E01 LD L,1
\ 0507 1861 JR ?0073
\ 0509 ?0068:
\ 0509 ?0070:
310 for ( ; i < MAX_BKMARK_NUM-1; i++ )
\ 0509 210000 LD HL,0
\ 050C 39 ADD HL,SP
\ 050D 7E LD A,(HL)
\ 050E FE0F CP 15
\ 0510 304B JR NC,?0069
\ 0512 ?0071:
311 {
312 bkmarks[i].offset = bkmarks[i+1].offset;
\ 0512 6F LD L,A
\ 0513 2600 LD H,0
\ 0515 29 ADD HL,HL
\ 0516 29 ADD HL,HL
\ 0517 29 ADD HL,HL
\ 0518 29 ADD HL,HL
\ 0519 011300 LD BC,bkmarks+16
\ 051C 09 ADD HL,BC
\ 051D 5E LD E,(HL)
\ 051E 23 INC HL
\ 051F 56 LD D,(HL)
\ 0520 23 INC HL
\ 0521 4E LD C,(HL)
\ 0522 23 INC HL
\ 0523 46 LD B,(HL)
\ 0524 EB EX DE,HL
\ 0525 E5 PUSH HL
\ 0526 6F LD L,A
\ 0527 2600 LD H,0
\ 0529 29 ADD HL,HL
\ 052A 29 ADD HL,HL
\ 052B 29 ADD HL,HL
\ 052C 29 ADD HL,HL
\ 052D 110300 LD DE,bkmarks
\ 0530 19 ADD HL,DE
\ 0531 D1 POP DE
\ 0532 73 LD (HL),E
\ 0533 23 INC HL
\ 0534 72 LD (HL),D
\ 0535 23 INC HL
\ 0536 71 LD (HL),C
\ 0537 23 INC HL
\ 0538 70 LD (HL),B
313 memcpy( bkmarks[i].title, bkmarks[i+1].title, MAX_TITLE_LEN );
\ 0539 010C00 LD BC,12
\ 053C 6F LD L,A
\ 053D 60 LD H,B
\ 053E 29 ADD HL,HL
\ 053F 29 ADD HL,HL
\ 0540 29 ADD HL,HL
\ 0541 29 ADD HL,HL
\ 0542 EB EX DE,HL
\ 0543 210700 LD HL,bkmarks+4
\ 0546 19 ADD HL,DE
\ 0547 EB EX DE,HL
\ 0548 6F LD L,A
\ 0549 60 LD H,B
\ 054A 29 ADD HL,HL
\ 054B 29 ADD HL,HL
\ 054C 29 ADD HL,HL
\ 054D 29 ADD HL,HL
\ 054E 011700 LD BC,bkmarks+20
\ 0551 09 ADD HL,BC
\ 0552 010C00 LD BC,12
\ 0555 EDB0 LDIR
\ 0557 69 LD L,C
\ 0558 60 LD H,B
\ 0559 39 ADD HL,SP
\ 055A 34 INC (HL)
\ 055B 18AC JR ?0068
\ 055D ?0069:
314 }
315
316 bkmarks[MAX_BKMARK_NUM-1].offset = 0xFFFFFFFF;
\ 055D 01FFFF LD BC,65535
\ 0560 ED43F300 LD (bkmarks+240),BC
\ 0564 ED43F500 LD (bkmarks+242),BC
317 return 0;
\ 0568 2E00 LD L,0
318 }
\ 056A ?0073:
\ 056A F1 POP AF
\ 056B F1 POP AF
\ 056C C1 POP BC
\ 056D C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0570 get_num_bookmarks:
319
320 /*
321 * 取书签数
322 */
323 byte get_num_bookmarks()
324 {
\ 0570 C5 PUSH BC
\ 0571 D5 PUSH DE
325 byte i = 0;
\ 0572 1E00 LD E,0
\ 0574 ?0075:
326 while( bkmarks[i].offset != 0xFFFFFFFF && i < MAX_BKMARK_NUM )
\ 0574 6B LD L,E
\ 0575 2600 LD H,0
\ 0577 29 ADD HL,HL
\ 0578 29 ADD HL,HL
\ 0579 29 ADD HL,HL
\ 057A 29 ADD HL,HL
\ 057B 010300 LD BC,bkmarks
\ 057E 09 ADD HL,BC
\ 057F 7E LD A,(HL)
\ 0580 23 INC HL
\ 0581 A6 AND (HL)
\ 0582 23 INC HL
\ 0583 A6 AND (HL)
\ 0584 23 INC HL
\ 0585 A6 AND (HL)
\ 0586 3C INC A
\ 0587 2808 JR Z,?0074
\ 0589 7B LD A,E
\ 058A FE10 CP 16
\ 058C 3003 JR NC,?0074
\ 058E ?0078:
\ 058E ?0077:
\ 058E ?0076:
327 i++;
\ 058E 1C INC E
\ 058F 18E3 JR ?0075
\ 0591 ?0074:
328
329 return i;
\ 0591 6B LD L,E
330 }
\ 0592 D1 POP DE
\ 0593 C1 POP BC
\ 0594 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0597 get_bookmark:
331
332
333 /*
334 * 取书签
335 */
336 bkmark_node
337 get_bookmark(UInt8 id)
338 {
\ 0597 C5 PUSH BC
\ 0598 D5 PUSH DE
339 //ASSERT( id >= MAX_BKMARK_NUM );
340 return bkmarks[id];
\ 0599 69 LD L,C
\ 059A 2600 LD H,0
\ 059C 29 ADD HL,HL
\ 059D 29 ADD HL,HL
\ 059E 29 ADD HL,HL
\ 059F 29 ADD HL,HL
\ 05A0 010300 LD BC,bkmarks
\ 05A3 09 ADD HL,BC
\ 05A4 011000 LD BC,16
\ 05A7 D5 PUSH DE
\ 05A8 EDB0 LDIR
\ 05AA E1 POP HL
341 }
\ 05AB F1 POP AF
\ 05AC F1 POP AF
\ 05AD C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 05B0 initBuf:
342
343 /* 输出书签列表 */
344 /*
345 void list_bookmarks()
346 {
347 //while(
348 }
349 */
350 /*
351 bool gen_pop_list(pop_up_list_t *list,int headid)
352 {
353 list->strid = 0;
354 list->total = 2;
355 list->active = g_reader_vars.playflag;
356 list->string_id = g_comval.langid;
357 list->headid = headid;
358
359 return 0; // always good
360 }
361 */
362 void
363 initBuf(void)
364 {
\ 05B0 C5 PUSH BC
\ 05B1 D5 PUSH DE
365 byte i=0;
\ 05B2 1E00 LD E,0
\ 05B4 ?0080:
366 for(;i<FILESIZE/NODELEN;i++)
\ 05B4 7B LD A,E
\ 05B5 FE20 CP 32
\ 05B7 3037 JR NC,?0079
\ 05B9 ?0081:
367 {
368 buf[i*NODELEN]=0xff;
\ 05B9 6B LD L,E
\ 05BA 2600 LD H,0
\ 05BC 29 ADD HL,HL
\ 05BD 29 ADD HL,HL
\ 05BE 29 ADD HL,HL
\ 05BF 29 ADD HL,HL
\ 05C0 010000 LD BC,buf
\ 05C3 09 ADD HL,BC
\ 05C4 36FF LD (HL),255
369 buf[i*NODELEN+1]=0xff;
\ 05C6 6B LD L,E
\ 05C7 2600 LD H,0
\ 05C9 29
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -