📄 bookmark.lst
字号:
\ 00BA 34 INC (HL)
\ 00BB 18D7 JR ?0007
\ 00BD ?0006:
106 }
107 b[4] = 0;
\ 00BD DD360400 LD (IX+4),0
108
109 return b;
\ 00C1 DDE5 PUSH IX
\ 00C3 E1 POP HL
110 }
\ 00C4 F1 POP AF
\ 00C5 DDE1 POP IX
\ 00C7 C1 POP BC
\ 00C8 C9 RET
\ 00C9 str2hex:
111
112 static UInt32
113 str2hex(char *b)
114 {
\ 00C9 DDE5 PUSH IX
\ 00CB F5 PUSH AF
\ 00CC F5 PUSH AF
\ 00CD F5 PUSH AF
\ 00CE D5 PUSH DE
\ 00CF DDE1 POP IX
115 UInt32 ret=0;
116 byte i = 0;
\ 00D1 210200 LD HL,2
\ 00D4 39 ADD HL,SP
\ 00D5 AF XOR A
\ 00D6 77 LD (HL),A
\ 00D7 23 INC HL
\ 00D8 77 LD (HL),A
\ 00D9 23 INC HL
\ 00DA 77 LD (HL),A
\ 00DB 23 INC HL
\ 00DC 77 LD (HL),A
\ 00DD 6F LD L,A
\ 00DE 67 LD H,A
\ 00DF 39 ADD HL,SP
\ 00E0 77 LD (HL),A
\ 00E1 ?0011:
117
118 for ( ; i < 4; i++ )
\ 00E1 7E LD A,(HL)
\ 00E2 FE04 CP 4
\ 00E4 210200 LD HL,2
\ 00E7 3020 JR NC,?0010
\ 00E9 ?0012:
119 ret = ret | ((UInt32)b[i]& 0x000000FF) << 8*i ;
\ 00E9 39 ADD HL,SP
\ 00EA E5 PUSH HL
\ 00EB 87 ADD A,A
\ 00EC 87 ADD A,A
\ 00ED 87 ADD A,A
\ 00EE 2B DEC HL
\ 00EF 2B DEC HL
\ 00F0 4E LD C,(HL)
\ 00F1 0600 LD B,0
\ 00F3 DDE5 PUSH IX
\ 00F5 E1 POP HL
\ 00F6 09 ADD HL,BC
\ 00F7 6E LD L,(HL)
\ 00F8 48 LD C,B
\ 00F9 61 LD H,C
\ 00FA CD0000 CALL LWRD ?L_LSH_L03
\ 00FD EB EX DE,HL
\ 00FE E1 POP HL
\ 00FF CD0000 CALL LWRD ?L_ORASG_L03
\ 0102 210000 LD HL,0
\ 0105 39 ADD HL,SP
\ 0106 34 INC (HL)
\ 0107 18D8 JR ?0011
\ 0109 ?0010:
120
121 return ret;
\ 0109 39 ADD HL,SP
\ 010A 5E LD E,(HL)
\ 010B 23 INC HL
\ 010C 56 LD D,(HL)
\ 010D 23 INC HL
\ 010E 4E LD C,(HL)
\ 010F 23 INC HL
\ 0110 46 LD B,(HL)
\ 0111 EB EX DE,HL
122 }
\ 0112 F1 POP AF
\ 0113 F1 POP AF
\ 0114 F1 POP AF
\ 0115 DDE1 POP IX
\ 0117 C9 RET
\ 0118 gen_bkfilename:
123
124 static bool
125 gen_bkfilename(char *str)
126 {
\ 0118 D5 PUSH DE
127 /* char *t = str;
128 t = strrchr(t,'.');
129 strcpy(t,".bmk");
130 */
131 return 0;
\ 0119 AF XOR A
132 }
\ 011A E1 POP HL
\ 011B C9 RET
\ 011C split_node:
133
134 static void
135 split_node( char* str,int i)
136 {
\ 011C FDE5 PUSH IY
\ 011E DDE5 PUSH IX
\ 0120 D5 PUSH DE
\ 0121 DDE1 POP IX
\ 0123 C5 PUSH BC
\ 0124 FDE1 POP IY
137 bkmarks[i].offset = str2hex(str);
\ 0126 69 LD L,C
\ 0127 60 LD H,B
\ 0128 29 ADD HL,HL
\ 0129 29 ADD HL,HL
\ 012A 29 ADD HL,HL
\ 012B 29 ADD HL,HL
\ 012C 010300 LD BC,bkmarks
\ 012F 09 ADD HL,BC
\ 0130 E5 PUSH HL
\ 0131 CDC900 CALL LWRD str2hex
\ 0134 EB EX DE,HL
\ 0135 E1 POP HL
\ 0136 73 LD (HL),E
\ 0137 23 INC HL
\ 0138 72 LD (HL),D
\ 0139 23 INC HL
\ 013A 71 LD (HL),C
\ 013B 23 INC HL
\ 013C 70 LD (HL),B
138 memcpy( bkmarks[i].title, &str[4],sizeof(bkmarks[i].title) );
\ 013D FDE5 PUSH IY
\ 013F E1 POP HL
\ 0140 29 ADD HL,HL
\ 0141 29 ADD HL,HL
\ 0142 29 ADD HL,HL
\ 0143 29 ADD HL,HL
\ 0144 EB EX DE,HL
\ 0145 210700 LD HL,bkmarks+4
\ 0148 19 ADD HL,DE
\ 0149 EB EX DE,HL
\ 014A 210400 LD HL,4
\ 014D DDE5 PUSH IX
\ 014F C1 POP BC
\ 0150 09 ADD HL,BC
\ 0151 010C00 LD BC,12
\ 0154 EDB0 LDIR
139 }
\ 0156 DDE1 POP IX
\ 0158 FDE1 POP IY
\ 015A C9 RET
\ 015B init_bookmark:
140
141 /**
142 * Description: init_bookmark初始化书签功能
143 *
144 * @return(s) : 0-success;1-failure
145 */
146 bool init_bookmark()
147 {
\ 015B C5 PUSH BC
\ 015C D5 PUSH DE
\ 015D DDE5 PUSH IX
\ 015F 21F4FF LD HL,65524
\ 0162 39 ADD HL,SP
\ 0163 F9 LD SP,HL
148 int i;
149 char bkfile[FILENMAELEN];
150 char *a = bkfile;
\ 0164 E5 PUSH HL
\ 0165 DDE1 POP IX
151 initBuf();
\ 0167 3E00 LD A,BYTE3 initBuf
\ 0169 21B005 LD HL,LWRD initBuf
\ 016C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
152 for ( i = 0; i < MAX_BKMARK_NUM; i++ )
\ 016F 110000 LD DE,0
\ 0172 ?0015:
\ 0172 011080 LD BC,32784
\ 0175 6B LD L,E
\ 0176 62 LD H,D
\ 0177 78 LD A,B
\ 0178 AC XOR H
\ 0179 67 LD H,A
\ 017A ED42 SBC HL,BC
\ 017C 3016 JR NC,?0014
\ 017E ?0016:
153 { // FILL out
154 bkmarks[i].offset = 0xFFFFFFFF;
\ 017E 6B LD L,E
\ 017F 62 LD H,D
\ 0180 29 ADD HL,HL
\ 0181 29 ADD HL,HL
\ 0182 29 ADD HL,HL
\ 0183 29 ADD HL,HL
\ 0184 010300 LD BC,bkmarks
\ 0187 09 ADD HL,BC
\ 0188 06FF LD B,255
\ 018A 70 LD (HL),B
\ 018B 23 INC HL
\ 018C 70 LD (HL),B
\ 018D 23 INC HL
\ 018E 70 LD (HL),B
\ 018F 23 INC HL
\ 0190 70 LD (HL),B
\ 0191 13 INC DE
\ 0192 18DE JR ?0015
\ 0194 ?0014:
155 }
156 memcpy(bkfile, g_reader_vars.location.filename,8);
\ 0194 010800 LD BC,8
\ 0197 68 LD L,B
\ 0198 60 LD H,B
\ 0199 39 ADD HL,SP
\ 019A EB EX DE,HL
\ 019B 212000 LD HL,g_reader_vars+32
\ 019E EDB0 LDIR
157 if ( NULL != a )
\ 01A0 DDE5 PUSH IX
\ 01A2 E1 POP HL
\ 01A3 7D LD A,L
\ 01A4 B4 OR H
\ 01A5 2876 JR Z,?0019
\ 01A7 ?0018:
158 {
159 strcpy(&bkfile[8],"BMK");
\ 01A7 110000 LD DE,?0020
\ 01AA 69 LD L,C
\ 01AB 60 LD H,B
\ 01AC 39 ADD HL,SP
\ 01AD 0E08 LD C,8
\ 01AF 09 ADD HL,BC
\ 01B0 CD0000 CALL LWRD ?STRCPY_L11
160 bkfile[11]=0;
\ 01B3 210B00 LD HL,11
\ 01B6 39 ADD HL,SP
\ 01B7 70 LD (HL),B
161 g_bookmark_handle = FS_FOpen(bkfile,FS_OPEN_NORMAL);
\ 01B8 48 LD C,B
\ 01B9 69 LD L,C
\ 01BA 60 LD H,B
\ 01BB 39 ADD HL,SP
\ 01BC EB EX DE,HL
\ 01BD CD0000 CALL LWRD FS_FOpen
\ 01C0 220100 LD (g_bookmark_handle),HL
162 if( NULL == g_bookmark_handle )
\ 01C3 7D LD A,L
\ 01C4 B4 OR H
\ 01C5 2025 JR NZ,?0022
\ 01C7 ?0021:
163 { // 书签文件不存在,创建书签文件
164 g_bookmark_handle = FS_FCreate(bkfile);
\ 01C7 6F LD L,A
\ 01C8 67 LD H,A
\ 01C9 39 ADD HL,SP
\ 01CA EB EX DE,HL
\ 01CB CD0000 CALL LWRD FS_FCreate
\ 01CE 220100 LD (g_bookmark_handle),HL
165 if( NULL == g_bookmark_handle )
\ 01D1 7D LD A,L
\ 01D2 B4 OR H
\ 01D3 2044 JR NZ,?0025
\ 01D5 ?0023:
166 {// 错误处理
167 // FIXME: please change to create error
168 ui_err_msg(EBOKMSG5,EBOKMSG5,g_comval.langid);
\ 01D5 ED4B0C00 LD BC,(g_comval+12)
\ 01D9 47 LD B,A
\ 01DA C5 PUSH BC
\ 01DB 01AD01 LD BC,429
\ 01DE 11AD01 LD DE,429
\ 01E1 3E00 LD A,BYTE3 ui_err_msg
\ 01E3 210000 LD HL,LWRD ui_err_msg
\ 01E6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01E9 F1 POP AF
169 return 1;
\ 01EA 1831 JR ?0019
170 }
\ 01EC ?0024:
171 return 0;
172 }
\ 01EC ?0022:
173 else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -