📄 bookmark.lst
字号:
\ 0338 7E LD A,(HL)
\ 0339 FEA1 CP 161
\ 033B 2019 JR NZ,?0037
\ 033D ?0044:
237 tt+=2;
\ 033D 210200 LD HL,2
\ 0340 39 ADD HL,SP
\ 0341 7E LD A,(HL)
\ 0342 C602 ADD A,2
\ 0344 77 LD (HL),A
\ 0345 23 INC HL
\ 0346 7E LD A,(HL)
\ 0347 CE00 ADC A,0
\ 0349 77 LD (HL),A
238 else
\ 034A 18CC JR ?0038
\ 034C ?0045:
239 break;
\ 034C ?0046:
240 }
241 else
\ 034C ?0043:
242 tt++;
\ 034C DD34EC INC (IX-20)
\ 034F 20C7 JR NZ,?0038
\ 0351 DD34ED INC (IX-19)
\ 0354 ?0047:
\ 0354 18C2 JR ?0038
\ 0356 ?0037:
243 }
244 ///////////////////////
245 if ( 0xFFFFFFFF == bkmarks[0].offset ) // 加入的第一个书签
\ 0356 ED4B0500 LD BC,(bkmarks+2)
\ 035A 2A0300 LD HL,(bkmarks)
\ 035D 7D LD A,L
\ 035E A4 AND H
\ 035F A1 AND C
\ 0360 A0 AND B
\ 0361 3C INC A
\ 0362 2024 JR NZ,?0049
\ 0364 ?0048:
246 {
247 bkmarks[0].offset = CurFileLen;
\ 0364 DD4EF0 LD C,(IX-16)
\ 0367 DD46F1 LD B,(IX-15)
\ 036A DD6EEE LD L,(IX-18)
\ 036D DD66EF LD H,(IX-17)
\ 0370 220300 LD (bkmarks),HL
\ 0373 ED430500 LD (bkmarks+2),BC
248 memcpy( bkmarks[0].title, tt, MAX_TITLE_LEN);
\ 0377 010C00 LD BC,12
\ 037A 110700 LD DE,bkmarks+4
\ 037D DD6EEC LD L,(IX-20)
\ 0380 DD66ED LD H,(IX-19)
\ 0383 EDB0 LDIR
249 }
250 else // 已经有书签
\ 0385 C3EA04 JP LWRD ?0050
\ 0388 ?0049:
251 {
252 // Cauz there is only 16 items in the file, we simply
253 // search from the beginning to decide where to insert
254 i = 0;
\ 0388 AF XOR A
\ 0389 DD77EA LD (IX-22),A
\ 038C DD77EB LD (IX-21),A
\ 038F ?0052:
255 while ( i < MAX_BKMARK_NUM )
\ 038F 011080 LD BC,32784
\ 0392 DD6EEA LD L,(IX-22)
\ 0395 DD66EB LD H,(IX-21)
\ 0398 78 LD A,B
\ 0399 AC XOR H
\ 039A 67 LD H,A
\ 039B ED42 SBC HL,BC
\ 039D 3064 JR NC,?0051
\ 039F ?0053:
256 {
257 if( bkmarks[i].offset > CurFileLen ) //已到链表尾或在链表之前插入
\ 039F DD6EEA LD L,(IX-22)
\ 03A2 DD66EB LD H,(IX-21)
\ 03A5 29 ADD HL,HL
\ 03A6 29 ADD HL,HL
\ 03A7 29 ADD HL,HL
\ 03A8 29 ADD HL,HL
\ 03A9 010300 LD BC,bkmarks
\ 03AC 09 ADD HL,BC
\ 03AD 4E LD C,(HL)
\ 03AE 23 INC HL
\ 03AF 46 LD B,(HL)
\ 03B0 23 INC HL
\ 03B1 5E LD E,(HL)
\ 03B2 23 INC HL
\ 03B3 56 LD D,(HL)
\ 03B4 D5 PUSH DE
\ 03B5 C5 PUSH BC
\ 03B6 A7 AND A
\ 03B7 DD6EEE LD L,(IX-18)
\ 03BA DD66EF LD H,(IX-17)
\ 03BD C1 POP BC
\ 03BE ED42 SBC HL,BC
\ 03C0 DD6EF0 LD L,(IX-16)
\ 03C3 DD66F1 LD H,(IX-15)
\ 03C6 C1 POP BC
\ 03C7 ED42 SBC HL,BC
\ 03C9 3838 JR C,?0051
\ 03CB ?0054:
258 break;
\ 03CB ?0055:
259 else if ( bkmarks[i].offset == CurFileLen )
\ 03CB DD6EEA LD L,(IX-22)
\ 03CE DD66EB LD H,(IX-21)
\ 03D1 29 ADD HL,HL
\ 03D2 29 ADD HL,HL
\ 03D3 29 ADD HL,HL
\ 03D4 29 ADD HL,HL
\ 03D5 010300 LD BC,bkmarks
\ 03D8 09 ADD HL,BC
\ 03D9 4E LD C,(HL)
\ 03DA 23 INC HL
\ 03DB 46 LD B,(HL)
\ 03DC 23 INC HL
\ 03DD 5E LD E,(HL)
\ 03DE 23 INC HL
\ 03DF 56 LD D,(HL)
\ 03E0 69 LD L,C
\ 03E1 60 LD H,B
\ 03E2 DD4EEE LD C,(IX-18)
\ 03E5 DD46EF LD B,(IX-17)
\ 03E8 A7 AND A
\ 03E9 ED42 SBC HL,BC
\ 03EB 200C JR NZ,?0057
\ 03ED EB EX DE,HL
\ 03EE DD4EF0 LD C,(IX-16)
\ 03F1 DD46F1 LD B,(IX-15)
\ 03F4 ED42 SBC HL,BC
\ 03F6 CAD104 JP Z,?0092
\ 03F9 ?0056:
260 return 0; // already there, keep it
\ 03F9 ?0057:
261
262 i++;
\ 03F9 DD34EA INC (IX-22)
\ 03FC 2091 JR NZ,?0052
\ 03FE DD34EB INC (IX-21)
\ 0401 188C JR ?0052
\ 0403 ?0051:
263 }
264 /* now we get the point to insert */
265 if ( 0xFFFFFFFF == bkmarks[i].offset ) // 已经到链表尾
\ 0403 DD6EEA LD L,(IX-22)
\ 0406 DD66EB LD H,(IX-21)
\ 0409 29 ADD HL,HL
\ 040A 29 ADD HL,HL
\ 040B 29 ADD HL,HL
\ 040C 29 ADD HL,HL
\ 040D 010300 LD BC,bkmarks
\ 0410 09 ADD HL,BC
\ 0411 7E LD A,(HL)
\ 0412 23 INC HL
\ 0413 A6 AND (HL)
\ 0414 23 INC HL
\ 0415 A6 AND (HL)
\ 0416 23 INC HL
\ 0417 A6 AND (HL)
\ 0418 3C INC A
\ 0419 200C JR NZ,?0059
\ 041B ?0058:
266 {
267 /* 加到链表末 */
268 bkmarks[i].offset = CurFileLen;
\ 041B DD6EEA LD L,(IX-22)
\ 041E DD66EB LD H,(IX-21)
\ 0421 29 ADD HL,HL
\ 0422 29 ADD HL,HL
\ 0423 29 ADD HL,HL
\ 0424 29 ADD HL,HL
\ 0425 187B JR ?0093
269 memcpy( bkmarks[i].title, tt, MAX_TITLE_LEN );
270 return 0;
271 }
\ 0427 ?0059:
272 else if ( bkmarks[MAX_BKMARK_NUM-1].offset == 0xFFFFFFFF )
\ 0427 21F300 LD HL,bkmarks+240
\ 042A 7E LD A,(HL)
\ 042B 23 INC HL
\ 042C A6 AND (HL)
\ 042D 23 INC HL
\ 042E A6 AND (HL)
\ 042F 23 INC HL
\ 0430 A6 AND (HL)
\ 0431 3C INC A
\ 0432 C2D504 JP NZ,?0061
\ 0435 ?0060:
273 {
274 /* 在链表中间插入 */
275 /* [1],[2],...[*],[*+1],[*+2],.... */
276 /* | | */
277 /* prev cur */
278 /* [*],[×],[*+1] */
279 /* | */
280 /* pre,cur */
281 int j;
282 for ( j = MAX_BKMARK_NUM-1; j > i; j-- )
\ 0435 FD210F00 LD IY,15
\ 0439 ?0063:
\ 0439 FDE5 PUSH IY
\ 043B C1 POP BC
\ 043C DD6EEA LD L,(IX-22)
\ 043F DD66EB LD H,(IX-21)
\ 0442 F680 OR 128
\ 0444 ED42 SBC HL,BC
\ 0446 E24A04 JP PO,?0089
\ 0449 AC XOR H
\ 044A ?0089:
\ 044A F29504 JP P,?0062
\ 044D ?0064:
283 {
284 bkmarks[j].offset = bkmarks[j-1].offset; //链表后移
\ 044D FDE5 PUSH IY
\ 044F E1 POP HL
\ 0450 29 ADD HL,HL
\ 0451 29 ADD HL,HL
\ 0452 29 ADD HL,HL
\ 0453 29 ADD HL,HL
\ 0454 01F3FF LD BC,bkmarks-16
\ 0457 09 ADD HL,BC
\ 0458 5E LD E,(HL)
\ 0459 23 INC HL
\ 045A 56 LD D,(HL)
\ 045B 23 INC HL
\ 045C 4E LD C,(HL)
\ 045D 23 INC HL
\ 045E 46 LD B,(HL)
\ 045F EB EX DE,HL
\ 0460 E5 PUSH HL
\ 0461 FDE5 PUSH IY
\ 0463 E1 POP HL
\ 0464 29 ADD HL,HL
\ 0465 29 ADD HL,HL
\ 0466 29 ADD HL,HL
\ 0467 29 ADD HL,HL
\ 0468 110300 LD DE,bkmarks
\ 046B 19 ADD HL,DE
\ 046C D1 POP DE
\ 046D 73 LD (HL),E
\ 046E 23 INC HL
\ 046F 72 LD (HL),D
\ 0470 23 INC HL
\ 0471 71 LD (HL),C
\ 0472 23 INC HL
\ 0473 70 LD (HL),B
285 memcpy( bkmarks[j].title, bkmarks[j-1].title, MAX_TITLE_LEN );
\ 0474 FDE5 PUSH IY
\ 0476 E1 POP HL
\ 0477 29 ADD HL,HL
\ 0478 29 ADD HL,HL
\ 0479 29 ADD HL,HL
\ 047A 29 ADD HL,HL
\ 047B EB EX DE,HL
\ 047C 210700 LD HL,bkmarks+4
\ 047F 19 ADD HL,DE
\ 0480 EB EX DE,HL
\ 0481 FDE5 PUSH IY
\ 0483 E1 POP HL
\ 0484 29 ADD HL,HL
\ 0485 29 ADD HL,HL
\ 0486 29 ADD HL,HL
\ 0487 29 ADD HL,HL
\ 0488 01F7FF LD BC,bkmarks-12
\ 048B 09 ADD HL,BC
\ 048C 010C00 LD BC,12
\ 048F EDB0 LDIR
\ 0491 FD2B DEC IY
\ 0493 18A4 JR ?0063
\ 0495 ?0062:
286 }
287 bkmarks[i].offset = CurFileLen;
\ 0495 DD6EEA LD L,(IX-22)
\ 0498 DD66EB LD H,(IX-21)
\ 049B 29 ADD HL,HL
\ 049C 29 ADD HL,HL
\ 049D 29 ADD HL,HL
\ 049E 29 ADD HL,HL
\ 049F 010300 LD BC,bkmarks
\ 04A2 ?0093:
\ 04A2 09 ADD HL,BC
\ 04A3 DD4EF0 LD C,(IX-16)
\ 04A6 DD46F1 LD B,(IX-15)
\ 04A9 DD5EEE LD E,(IX-18)
\ 04AC 73 LD (HL),E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -