📄 basal_reader_de.lst
字号:
\ 0262 2E0A LD L,10
\ 0264 DD4EFC LD C,(IX-4)
\ 0267 DD46FD LD B,(IX-3)
\ 026A 09 ADD HL,BC
\ 026B AF XOR A
\ 026C 77 LD (HL),A
\ 026D 23 INC HL
\ 026E 77 LD (HL),A
\ 026F 23 INC HL
\ 0270 77 LD (HL),A
\ 0271 23 INC HL
\ 0272 77 LD (HL),A
\ 0273 ?0038:
131 }
132
133 if( !DealMode )
\ 0273 AF XOR A
\ 0274 DDB6FE OR (IX-2)
\ 0277 2005 JR NZ,?0040
\ 0279 ?0039:
134 ClearScreen(NULL);
\ 0279 5F LD E,A
\ 027A 57 LD D,A
\ 027B CD0000 CALL LWRD ClearScreen
\ 027E ?0040:
135
136
137
138 ReReadFlag = TRUE; // 读入数据
139 ReadFileLength = ViewFileStructPoint->CurrentSeek;
\ 027E 210A00 LD HL,10
\ 0281 DD4EFC LD C,(IX-4)
\ 0284 DD46FD LD B,(IX-3)
\ 0287 09 ADD HL,BC
\ 0288 5E LD E,(HL)
\ 0289 23 INC HL
\ 028A 56 LD D,(HL)
\ 028B 23 INC HL
\ 028C 4E LD C,(HL)
\ 028D 23 INC HL
\ 028E 46 LD B,(HL)
\ 028F EB EX DE,HL
\ 0290 DD75F8 LD (IX-8),L
\ 0293 DD74F9 LD (IX-7),H
\ 0296 DD71FA LD (IX-6),C
\ 0299 DD70FB LD (IX-5),B
140 RowHeadPosition = 0;
141 for( row=0; row<SCR_ROW; )
\ 029C DD36EF01 LD (IX-17),1
\ 02A0 FD210000 LD IY,0
\ 02A4 DD36ED00 LD (IX-19),0
\ 02A8 ?0042:
\ 02A8 DD7EED LD A,(IX-19)
\ 02AB FE07 CP 7
\ 02AD D27204 JP NC,?0041
\ 02B0 ?0043:
142 {
143 if( ReReadFlag )
\ 02B0 AF XOR A
\ 02B1 DDB6EF OR (IX-17)
\ 02B4 CA4003 JP Z,?0054
\ 02B7 ?0044:
144 {
145 ReReadFlag = FALSE;
146 ReadFileLength += RowHeadPosition; // 已读长度 + 显示长度
\ 02B7 210C00 LD HL,12
\ 02BA 39 ADD HL,SP
\ 02BB FDE5 PUSH IY
\ 02BD D1 POP DE
\ 02BE 010000 LD BC,0
\ 02C1 CD0000 CALL LWRD ?L_ADDASG_L03
147 LeftFileLength -= RowHeadPosition; // 剩余长度 - 显示长度
\ 02C4 210800 LD HL,8
\ 02C7 39 ADD HL,SP
\ 02C8 FDE5 PUSH IY
\ 02CA D1 POP DE
\ 02CB 010000 LD BC,0
\ 02CE CD0000 CALL LWRD ?L_SUBASG_L03
148 RowHeadPosition = 0;
149
150 if( LeftFileLength == 0 )
\ 02D1 DD36EF00 LD (IX-17),0
\ 02D5 FD210000 LD IY,0
\ 02D9 7B LD A,E
\ 02DA B2 OR D
\ 02DB B1 OR C
\ 02DC B0 OR B
\ 02DD CA7204 JP Z,?0041
\ 02E0 ?0046:
151 break; // 读文件结束
\ 02E0 ?0047:
152 if( LeftFileLength > BUFF_ONE_ROW *2)
\ 02E0 DD6EF6 LD L,(IX-10)
\ 02E3 DD66F7 LD H,(IX-9)
\ 02E6 E5 PUSH HL
\ 02E7 DD6EF4 LD L,(IX-12)
\ 02EA DD66F5 LD H,(IX-11)
\ 02ED E5 PUSH HL
\ 02EE 010000 LD BC,0
\ 02F1 212800 LD HL,40
\ 02F4 CD0000 CALL LWRD ?SL_CMP_L03
\ 02F7 3008 JR NC,?0049
\ 02F9 ?0048:
153 ReadLengthOneTime = BUFF_ONE_ROW*2;
\ 02F9 DD75F2 LD (IX-14),L
\ 02FC DD70F3 LD (IX-13),B
154 else
\ 02FF 180C JR ?0050
\ 0301 ?0049:
155 ReadLengthOneTime = LeftFileLength;
\ 0301 DD6EF4 LD L,(IX-12)
\ 0304 DD66F5 LD H,(IX-11)
\ 0307 DD75F2 LD (IX-14),L
\ 030A DD74F3 LD (IX-13),H
\ 030D ?0050:
156
157 str = read_buff(ViewFileStructPoint, ReadFileLength, ReadLengthOneTime );
\ 030D DD66F3 LD H,(IX-13)
\ 0310 E5 PUSH HL
\ 0311 DD6EFA LD L,(IX-6)
\ 0314 DD66FB LD H,(IX-5)
\ 0317 E5 PUSH HL
\ 0318 DD6EF8 LD L,(IX-8)
\ 031B DD66F9 LD H,(IX-7)
\ 031E E5 PUSH HL
\ 031F CDD504 CALL LWRD ?0191
\ 0322 F1 POP AF
\ 0323 F1 POP AF
\ 0324 F1 POP AF
\ 0325 DD75F0 LD (IX-16),L
\ 0328 DD74F1 LD (IX-15),H
158 if( str == NULL )
\ 032B 7D LD A,L
\ 032C B4 OR H
\ 032D 2004 JR NZ,?0052
\ 032F ?0051:
159 return 0;
\ 032F 68 LD L,B
\ 0330 C3D204 JP LWRD ?0092
\ 0333 ?0052:
160
161 if(row==0) //取当前屏第一行的数据作为书签的标题
\ 0333 AF XOR A
\ 0334 DDB6ED OR (IX-19)
\ 0337 2007 JR NZ,?0054
\ 0339 ?0053:
162 {
163 memcpy(fileName,str,sizeof(fileName)); //fileName--当前建立书签时的标题
\ 0339 0E32 LD C,50
\ 033B 110000 LD DE,fileName
\ 033E EDB0 LDIR
\ 0340 ?0054:
\ 0340 ?0045:
\ 0340 ?0056:
164 }
165 }
166
167 for( ; RowHeadPosition<ReadLengthOneTime; RowHeadPosition++ )
\ 0340 DD4EF2 LD C,(IX-14)
\ 0343 DD46F3 LD B,(IX-13)
\ 0346 FDE5 PUSH IY
\ 0348 E1 POP HL
\ 0349 A7 AND A
\ 034A ED42 SBC HL,BC
\ 034C 3022 JR NC,?0055
\ 034E ?0057:
168 {
169 CLEAR_WATCHDOG(); //清WATCH DOG
\ 034E DB4E IN A,(78)
\ 0350 CBDF SET 3,A
\ 0352 D34E OUT (78),A
170 // 过滤 0x0d & 0x0a
171 if( str[RowHeadPosition]!=0x0d && str[RowHeadPosition]!=0x0a )
\ 0354 FDE5 PUSH IY
\ 0356 E1 POP HL
\ 0357 DD4EF0 LD C,(IX-16)
\ 035A DD46F1 LD B,(IX-15)
\ 035D 09 ADD HL,BC
\ 035E 7E LD A,(HL)
\ 035F FE0D CP 13
\ 0361 2809 JR Z,?0060
\ 0363 FDE5 PUSH IY
\ 0365 E1 POP HL
\ 0366 09 ADD HL,BC
\ 0367 7E LD A,(HL)
\ 0368 FE0A CP 10
\ 036A 2004 JR NZ,?0055
\ 036C ?0062:
\ 036C ?0061:
\ 036C ?0059:
172 break;
\ 036C ?0060:
\ 036C FD23 INC IY
\ 036E 18D0 JR ?0054
\ 0370 ?0055:
173 }
174
175 if( (RowHeadPosition==ReadLengthOneTime) || ((RowHeadPosition+SCR_COL>=ReadLengthOneTime) && (ReadLengthOneTime!=LeftFileLength)) )
\ 0370 DD6EF2 LD L,(IX-14)
\ 0373 DD66F3 LD H,(IX-13)
\ 0376 FDE5 PUSH IY
\ 0378 C1 POP BC
\ 0379 A7 AND A
\ 037A ED42 SBC HL,BC
\ 037C 2829 JR Z,?0181
\ 037E 211400 LD HL,20
\ 0381 09 ADD HL,BC
\ 0382 DD4EF2 LD C,(IX-14)
\ 0385 DD46F3 LD B,(IX-13)
\ 0388 A7 AND A
\ 0389 ED42 SBC HL,BC
\ 038B 3821 JR C,?0064
\ 038D 69 LD L,C
\ 038E 60 LD H,B
\ 038F 110000 LD DE,0
\ 0392 DD4EF4 LD C,(IX-12)
\ 0395 DD46F5 LD B,(IX-11)
\ 0398 ED42 SBC HL,BC
\ 039A 200B JR NZ,?0181
\ 039C EB EX DE,HL
\ 039D DD4EF6 LD C,(IX-10)
\ 03A0 DD46F7 LD B,(IX-9)
\ 03A3 ED42 SBC HL,BC
\ 03A5 2807 JR Z,?0064
\ 03A7 ?0181:
\ 03A7 ?0068:
\ 03A7 ?0067:
\ 03A7 ?0065:
\ 03A7 ?0066:
\ 03A7 ?0063:
176 {
177 ReReadFlag = TRUE; // 需要重新读入数据(第一种情况是一次读取的数据已经显示完毕;
\ 03A7 DD36EF01 LD (IX-17),1
178 //第二种情况是一次读取的剩余数据不足显示一行)
179 }
180 else
\ 03AB C3A802 JP LWRD ?0042
\ 03AE ?0064:
181 {
182 // 计算显示一行的字数(包括汉字或英文字)
183 for( col=CountWords=0; (col<SCR_COL)&&(RowHeadPosition+col<ReadLengthOneTime); CountWords++ )
\ 03AE DD36EE00 LD (IX-18),0
\ 03B2 DD36EC00 LD (IX-20),0
\ 03B6 ?0071:
\ 03B6 DD7EEC LD A,(IX-20)
\ 03B9 FE14 CP 20
\ 03BB 3065 JR NC,?0070
\ 03BD 4F LD C,A
\ 03BE 0600 LD B,0
\ 03C0 FDE5 PUSH IY
\ 03C2 E1 POP HL
\ 03C3 09 ADD HL,BC
\ 03C4 DD4EF2 LD C,(IX-14)
\ 03C7 DD46F3 LD B,(IX-13)
\ 03CA A7 AND A
\ 03CB ED42 SBC HL,BC
\ 03CD 3053 JR NC,?0070
\ 03CF ?0074:
\ 03CF ?0073:
\ 03CF ?0072:
184 {
185 if( str[ RowHeadPosition+col ]==0x0d || str[ RowHeadPosition+col ]==0x0a ) //换行
\ 03CF 4F LD C,A
\ 03D0 0600 LD B,0
\ 03D2 FDE5 PUSH IY
\ 03D4 E1 POP HL
\ 03D5 09 ADD HL,BC
\ 03D6 DD4EF0 LD C,(IX-16)
\ 03D9 DD46F1 LD B,(IX-15)
\ 03DC 09 ADD HL,BC
\ 03DD 7E LD A,(HL)
\ 03DE FE0D CP 13
\ 03E0 2840 JR Z,?0070
\ 03E2 DD4EEC LD C,(IX-20)
\ 03E5 0600 LD B,0
\ 03E7 FDE5 PUSH IY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -