📄 basal_reader_de.lst
字号:
\ 03E9 E1 POP HL
\ 03EA 09 ADD HL,BC
\ 03EB DD4EF0 LD C,(IX-16)
\ 03EE DD46F1 LD B,(IX-15)
\ 03F1 09 ADD HL,BC
\ 03F2 7E LD A,(HL)
\ 03F3 FE0A CP 10
\ 03F5 282B JR Z,?0070
\ 03F7 ?0078:
\ 03F7 ?0079:
\ 03F7 ?0076:
186 break;
\ 03F7 ?0077:
187
188 if( str[ RowHeadPosition+col ]<0x80 )
\ 03F7 DD4EEC LD C,(IX-20)
\ 03FA 0600 LD B,0
\ 03FC FDE5 PUSH IY
\ 03FE E1 POP HL
\ 03FF 09 ADD HL,BC
\ 0400 DD4EF0 LD C,(IX-16)
\ 0403 DD46F1 LD B,(IX-15)
\ 0406 09 ADD HL,BC
\ 0407 7E LD A,(HL)
\ 0408 FE80 CP 128
\ 040A 3005 JR NC,?0081
\ 040C ?0080:
189 col += 1;
\ 040C DD34EC INC (IX-20)
\ 040F 180C JR ?0085
\ 0411 ?0081:
190 else if( col<SCR_COL-1 )
\ 0411 DD7EEC LD A,(IX-20)
\ 0414 FE13 CP 19
\ 0416 300A JR NC,?0070
\ 0418 ?0083:
191 col += 2;
\ 0418 C602 ADD A,2
\ 041A DD77EC LD (IX-20),A
192 else
\ 041D ?0084:
193 break;
\ 041D ?0085:
\ 041D ?0082:
\ 041D DD34EE INC (IX-18)
\ 0420 1894 JR ?0071
\ 0422 ?0070:
194 }
195
196 if( !DealMode )
\ 0422 AF XOR A
\ 0423 DDB6FE OR (IX-2)
\ 0426 203D JR NZ,?0087
\ 0428 ?0086:
197 { // 显示
198 if( !CheckLangID( ViewFileStructPoint->langid ) )
\ 0428 211200 LD HL,18
\ 042B DD4EFC LD C,(IX-4)
\ 042E DD46FD LD B,(IX-3)
\ 0431 09 ADD HL,BC
\ 0432 5E LD E,(HL)
\ 0433 3E00 LD A,BYTE3 CheckLangID
\ 0435 212400 LD HL,LWRD CheckLangID
\ 0438 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 043B 2C INC L
\ 043C 2D DEC L
\ 043D 2006 JR NZ,?0089
\ 043F ?0088:
199 CountWords = col;
\ 043F DD46EC LD B,(IX-20)
\ 0442 DD70EE LD (IX-18),B
\ 0445 ?0089:
200 ///-SetTextPos(POSITION_TXT_START_POSX, (SCR_ROW-row)*16-9);
201 SetTextPos(POSITION_TXT_START_POSX, row*16+8);
\ 0445 DD7EED LD A,(IX-19)
\ 0448 87 ADD A,A
\ 0449 87 ADD A,A
\ 044A 87 ADD A,A
\ 044B 87 ADD A,A
\ 044C C608 ADD A,8
\ 044E 4F LD C,A
\ 044F 1E06 LD E,6
\ 0451 CD0000 CALL LWRD SetTextPos
202 PutS( &str[RowHeadPosition], CountWords );
\ 0454 DD4EEE LD C,(IX-18)
\ 0457 FDE5 PUSH IY
\ 0459 E1 POP HL
\ 045A DD5EF0 LD E,(IX-16)
\ 045D DD56F1 LD D,(IX-15)
\ 0460 19 ADD HL,DE
\ 0461 EB EX DE,HL
\ 0462 CD0000 CALL LWRD PutS
\ 0465 ?0087:
203 }
204 RowHeadPosition += col;
\ 0465 DD4EEC LD C,(IX-20)
\ 0468 0600 LD B,0
\ 046A FD09 ADD IY,BC
205 row ++;
\ 046C DD34ED INC (IX-19)
\ 046F ?0069:
\ 046F C3A802 JP LWRD ?0042
\ 0472 ?0041:
206 }
207 }
208
209
210 if(DealMode != 2)
\ 0472 DD46FE LD B,(IX-2)
\ 0475 05 DEC B
\ 0476 05 DEC B
\ 0477 2856 JR Z,?0091
\ 0479 ?0090:
211 {
212 ViewFileStructPoint->PrevSeek = ViewFileStructPoint->CurrentSeek; //保留有效屏的位置
\ 0479 210A00 LD HL,10
\ 047C DD4EFC LD C,(IX-4)
\ 047F DD46FD LD B,(IX-3)
\ 0482 09 ADD HL,BC
\ 0483 4E LD C,(HL)
\ 0484 23 INC HL
\ 0485 46 LD B,(HL)
\ 0486 23 INC HL
\ 0487 5E LD E,(HL)
\ 0488 23 INC HL
\ 0489 56 LD D,(HL)
\ 048A C5 PUSH BC
\ 048B 210600 LD HL,6
\ 048E DD4EFC LD C,(IX-4)
\ 0491 DD46FD LD B,(IX-3)
\ 0494 09 ADD HL,BC
\ 0495 C1 POP BC
\ 0496 D5 PUSH DE
\ 0497 71 LD (HL),C
\ 0498 50 LD D,B
\ 0499 C1 POP BC
\ 049A 23 INC HL
\ 049B 72 LD (HL),D
\ 049C 23 INC HL
\ 049D 71 LD (HL),C
\ 049E 23 INC HL
\ 049F 70 LD (HL),B
213 ViewFileStructPoint->CurrentSeek = ReadFileLength + RowHeadPosition; // 计算下一页的起始地址
\ 04A0 210A00 LD HL,10
\ 04A3 DD4EFC LD C,(IX-4)
\ 04A6 DD46FD LD B,(IX-3)
\ 04A9 09 ADD HL,BC
\ 04AA E5 PUSH HL
\ 04AB FDE5 PUSH IY
\ 04AD D1 POP DE
\ 04AE 010000 LD BC,0
\ 04B1 C5 PUSH BC
\ 04B2 D5 PUSH DE
\ 04B3 DD6EF8 LD L,(IX-8)
\ 04B6 DD66F9 LD H,(IX-7)
\ 04B9 C1 POP BC
\ 04BA 09 ADD HL,BC
\ 04BB EB EX DE,HL
\ 04BC DD6EFA LD L,(IX-6)
\ 04BF DD66FB LD H,(IX-5)
\ 04C2 C1 POP BC
\ 04C3 ED4A ADC HL,BC
\ 04C5 4D LD C,L
\ 04C6 44 LD B,H
\ 04C7 E1 POP HL
\ 04C8 73 LD (HL),E
\ 04C9 23 INC HL
\ 04CA 72 LD (HL),D
\ 04CB 23 INC HL
\ 04CC 71 LD (HL),C
\ 04CD 23 INC HL
\ 04CE 70 LD (HL),B
\ 04CF ?0091:
214 }
215
216 return row;
\ 04CF DD6EED LD L,(IX-19)
217
218 }
\ 04D2 ?0092:
\ 04D2 C3E700 JP LWRD ?0015
\ 04D5 ?0191:
\ 04D5 DD5EFC LD E,(IX-4)
\ 04D8 DD56FD LD D,(IX-3)
\ 04DB 3E00 LD A,BYTE3 read_buff
\ 04DD 21F000 LD HL,LWRD read_buff
\ 04E0 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 04E3 view_page_up:
219
220 //////////////////////////////////////////////////
221 //向前翻阅
222 byte view_page_up(STRUCT_VIEW_FILE *ViewFileStructPoint , int BackGroundID)
223 {
\ 04E3 FDE5 PUSH IY
\ 04E5 DDE5 PUSH IX
\ 04E7 DD210000 LD IX,0
\ 04EB DD39 ADD IX,SP
\ 04ED C5 PUSH BC
\ 04EE D5 PUSH DE
\ 04EF 21EEFF LD HL,65518
\ 04F2 39 ADD HL,SP
\ 04F3 F9 LD SP,HL
224 //long lBakSeek[SCR_ROW+1];
225 long ReadFileLength; // 已读取的文件长度
226 uint ReadLengthOneTime; //读取一次数据的长度
227 uint RowHeadPosition; //行首地址(在一次所读数据中的位置)
228 uint ByteCount; //字符数累加
229 BOOL ReturnFlag; //换行标志
230 BOOL ReReadFlag; //重读标志
231 char FileHeadFlag=0;
232 byte row, col; //显示的行列号
233 byte chr;
234
235 byte *str, *p;
236 //SetBackgdColor(Color_BLACK_def);
237 ClearScreen(NULL);
\ 04F4 110000 LD DE,0
\ 04F7 CD0000 CALL LWRD ClearScreen
238
239 if( ViewFileStructPoint->PrevSeek != 0 )
\ 04FA DD36FB00 LD (IX-5),0
\ 04FE 210600 LD HL,6
\ 0501 DD5EFC LD E,(IX-4)
\ 0504 DD56FD LD D,(IX-3)
\ 0507 19 ADD HL,DE
\ 0508 7E LD A,(HL)
\ 0509 23 INC HL
\ 050A B6 OR (HL)
\ 050B 23 INC HL
\ 050C B6 OR (HL)
\ 050D 23 INC HL
\ 050E B6 OR (HL)
\ 050F 281A JR Z,?0094
\ 0511 ?0093:
240 {
241 ToPrevScreenPosition(ViewFileStructPoint);
\ 0511 3E00 LD A,BYTE3 ToPrevScreenPosition
\ 0513 210000 LD HL,LWRD ToPrevScreenPosition
\ 0516 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
242 ViewFileStructPoint->PrevSeek = 0;
\ 0519 210600 LD HL,6
\ 051C DD4EFC LD C,(IX-4)
\ 051F DD46FD LD B,(IX-3)
\ 0522 09 ADD HL,BC
\ 0523 AF XOR A
\ 0524 77 LD (HL),A
\ 0525 23 INC HL
\ 0526 77 LD (HL),A
\ 0527 23 INC HL
\ 0528 77 LD (HL),A
\ 0529 23 INC HL
\ 052A 77 LD (HL),A
\ 052B ?0094:
243 }
244 if( 0 == ViewFileStructPoint->CurrentSeek )
\ 052B 210A00 LD HL,10
\ 052E DD4EFC LD C,(IX-4)
\ 0531 DD46FD LD B,(IX-3)
\ 0534 09 ADD HL,BC
\ 0535 7E LD A,(HL)
\ 0536 23 INC HL
\ 0537 B6 OR (HL)
\ 0538 23 INC HL
\ 0539 B6 OR (HL)
\ 053A 23 INC HL
\ 053B B6 OR (HL)
\ 053C CA1407 JP Z,?0186
\ 053F ?0095:
245 return 0; // 不能向前翻页
\ 053F ?0096:
246
247 // 计算向前翻页最接近的偏移(ReadFileLength)
248 ReturnFlag = FALSE; // 0x0D, 0x0A 标志
249 ByteCount = 0;
250 ReadLengthOneTime = 0 ;
251 ReadFileLength = ViewFileStructPoint->CurrentSeek;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -