📄 basal_reader_de.lst
字号:
\ 053F 210A00 LD HL,10
\ 0542 09 ADD HL,BC
\ 0543 5E LD E,(HL)
\ 0544 23 INC HL
\ 0545 56 LD D,(HL)
\ 0546 23 INC HL
\ 0547 4E LD C,(HL)
\ 0548 23 INC HL
\ 0549 46 LD B,(HL)
\ 054A EB EX DE,HL
\ 054B DD75EA LD (IX-22),L
\ 054E DD74EB LD (IX-21),H
\ 0551 DD71EC LD (IX-20),C
\ 0554 DD70ED LD (IX-19),B
\ 0557 DD36FA00 LD (IX-6),0
\ 055B AF XOR A
\ 055C DD77F0 LD (IX-16),A
\ 055F DD77F1 LD (IX-15),A
\ 0562 FD210000 LD IY,0
\ 0566 ?0098:
252 while( ReadFileLength != 0 )
\ 0566 DD7EEA LD A,(IX-22)
\ 0569 DDB6EB OR (IX-21)
\ 056C DDB6EC OR (IX-20)
\ 056F DDB6ED OR (IX-19)
\ 0572 CA5706 JP Z,?0097
\ 0575 ?0099:
253 {
254 if( ReadLengthOneTime == 0 )
\ 0575 FDE5 PUSH IY
\ 0577 E1 POP HL
\ 0578 7D LD A,L
\ 0579 B4 OR H
\ 057A 2052 JR NZ,?0101
\ 057C ?0100:
255 {
256 if( ReadFileLength > BUFF_ONE_ROW *2)
\ 057C DD6EEC LD L,(IX-20)
\ 057F DD66ED LD H,(IX-19)
\ 0582 E5 PUSH HL
\ 0583 DD6EEA LD L,(IX-22)
\ 0586 DD66EB LD H,(IX-21)
\ 0589 E5 PUSH HL
\ 058A 4F LD C,A
\ 058B 47 LD B,A
\ 058C 212800 LD HL,40
\ 058F CD0000 CALL LWRD ?SL_CMP_L03
\ 0592 3006 JR NC,?0103
\ 0594 ?0102:
257 ReadLengthOneTime = BUFF_ONE_ROW*2;
\ 0594 FD212800 LD IY,40
258 else
\ 0598 1809 JR ?0104
\ 059A ?0103:
259 ReadLengthOneTime = ReadFileLength;
\ 059A DD6EEA LD L,(IX-22)
\ 059D DD66EB LD H,(IX-21)
\ 05A0 E5 PUSH HL
\ 05A1 FDE1 POP IY
\ 05A3 ?0104:
260 ReadFileLength -= ReadLengthOneTime;
\ 05A3 69 LD L,C
\ 05A4 60 LD H,B
\ 05A5 39 ADD HL,SP
\ 05A6 FDE5 PUSH IY
\ 05A8 D1 POP DE
\ 05A9 CD0000 CALL LWRD ?L_SUBASG_L03
261
262 str = read_buff(ViewFileStructPoint, ReadFileLength, ReadLengthOneTime );
\ 05AC FDE5 PUSH IY
\ 05AE C5 PUSH BC
\ 05AF D5 PUSH DE
\ 05B0 CDD504 CALL LWRD ?0191
\ 05B3 F1 POP AF
\ 05B4 F1 POP AF
\ 05B5 F1 POP AF
\ 05B6 DD75F2 LD (IX-14),L
\ 05B9 DD74F3 LD (IX-13),H
263 p = str + ReadLengthOneTime - 1;
\ 05BC E5 PUSH HL
\ 05BD 21FFFF LD HL,65535
\ 05C0 FDE5 PUSH IY
\ 05C2 C1 POP BC
\ 05C3 09 ADD HL,BC
\ 05C4 4D LD C,L
\ 05C5 44 LD B,H
\ 05C6 E1 POP HL
\ 05C7 09 ADD HL,BC
\ 05C8 DD75F4 LD (IX-12),L
\ 05CB DD74F5 LD (IX-11),H
\ 05CE ?0101:
\ 05CE ?0106:
264 }
265
266 while( ReadLengthOneTime )
\ 05CE FDE5 PUSH IY
\ 05D0 E1 POP HL
\ 05D1 7D LD A,L
\ 05D2 B4 OR H
\ 05D3 282B JR Z,?0105
\ 05D5 ?0107:
267 {
268 CLEAR_WATCHDOG(); //清WATCH DOG
\ 05D5 DB4E IN A,(78)
\ 05D7 CBDF SET 3,A
\ 05D9 D34E OUT (78),A
269 // 过滤 0x0d & 0x0a
270 chr = *p --;
\ 05DB DD6EF4 LD L,(IX-12)
\ 05DE DD66F5 LD H,(IX-11)
\ 05E1 2B DEC HL
\ 05E2 DD75F4 LD (IX-12),L
\ 05E5 DD74F5 LD (IX-11),H
\ 05E8 23 INC HL
\ 05E9 7E LD A,(HL)
271 ReadLengthOneTime --;
272 if( chr!=0x0d && chr!=0x0a )
\ 05EA FE0D CP 13
\ 05EC FD2B DEC IY
\ 05EE 28DE JR Z,?0101
\ 05F0 FE0A CP 10
\ 05F2 28DA JR Z,?0101
\ 05F4 ?0111:
\ 05F4 ?0110:
\ 05F4 ?0108:
273 {
274 ByteCount += 1;
\ 05F4 DD34F0 INC (IX-16)
\ 05F7 2003 JR NZ,?0182
\ 05F9 DD34F1 INC (IX-15)
\ 05FC ?0182:
275 ReturnFlag = FALSE; // 0x0D, 0x0A 标志
\ 05FC DD36FA00 LD (IX-6),0
276 break;
\ 0600 ?0109:
\ 0600 ?0105:
\ 0600 ?0113:
277 }
278 }
279
280 while( ReadLengthOneTime )
\ 0600 FDE5 PUSH IY
\ 0602 E1 POP HL
\ 0603 7D LD A,L
\ 0604 B4 OR H
\ 0605 282F JR Z,?0112
\ 0607 ?0114:
281 {
282 CLEAR_WATCHDOG(); //清WATCH DOG
\ 0607 DB4E IN A,(78)
\ 0609 CBDF SET 3,A
\ 060B D34E OUT (78),A
283 chr = *p --;
\ 060D DD6EF4 LD L,(IX-12)
\ 0610 DD66F5 LD H,(IX-11)
\ 0613 2B DEC HL
\ 0614 DD75F4 LD (IX-12),L
\ 0617 DD74F5 LD (IX-11),H
\ 061A 23 INC HL
\ 061B 7E LD A,(HL)
284 ReadLengthOneTime --;
285 if( chr==0x0d || chr==0x0a )
\ 061C FE0D CP 13
\ 061E FD2B DEC IY
\ 0620 2804 JR Z,?0117
\ 0622 FE0A CP 10
\ 0624 2006 JR NZ,?0116
\ 0626 ?0117:
\ 0626 ?0118:
\ 0626 ?0115:
286 {
287 ReturnFlag = TRUE; // 0x0D, 0x0A 标志
\ 0626 DD36FA01 LD (IX-6),1
288 break;
\ 062A 180A JR ?0112
\ 062C ?0116:
289 }
290 ByteCount ++;
\ 062C DD34F0 INC (IX-16)
\ 062F 20CF JR NZ,?0105
\ 0631 DD34F1 INC (IX-15)
\ 0634 18CA JR ?0105
\ 0636 ?0112:
291 }
292 if((ByteCount >= SCR_COL*SCR_ROW) && ReturnFlag )
\ 0636 018C00 LD BC,140
\ 0639 DD6EF0 LD L,(IX-16)
\ 063C DD66F1 LD H,(IX-15)
\ 063F A7 AND A
\ 0640 ED42 SBC HL,BC
\ 0642 DA6605 JP C,?0098
\ 0645 AF XOR A
\ 0646 DDB6FA OR (IX-6)
\ 0649 CA6605 JP Z,?0098
\ 064C ?0122:
\ 064C ?0121:
\ 064C ?0119:
293 {
294 ReadFileLength += ReadLengthOneTime + 1;
\ 064C 68 LD L,B
\ 064D 60 LD H,B
\ 064E 39 ADD HL,SP
\ 064F FDE5 PUSH IY
\ 0651 D1 POP DE
\ 0652 13 INC DE
\ 0653 48 LD C,B
\ 0654 CD0000 CALL LWRD ?L_ADDASG_L03
295 break;
\ 0657 ?0120:
\ 0657 ?0097:
296 }
297 }
298
299 // 计算向前翻页的字符数
300 memset( lBakSeek, 0, sizeof(lBakSeek) );
\ 0657 012000 LD BC,32
\ 065A 110000 LD DE,lBakSeek
\ 065D 68 LD L,B
\ 065E CD0000 CALL LWRD ?MEMSET_L11
301 lBakSeek[ 0 ] = ReadFileLength;
\ 0661 DD4EEC LD C,(IX-20)
\ 0664 DD46ED LD B,(IX-19)
\ 0667 DD6EEA LD L,(IX-22)
\ 066A DD66EB LD H,(IX-21)
\ 066D 220000 LD (lBakSeek),HL
\ 0670 ED430200 LD (lBakSeek+2),BC
302 if(ReadFileLength==0)
\ 0674 7D LD A,L
\ 0675 B4 OR H
\ 0676 B1 OR C
\ 0677 B0 OR B
\ 0678 2004 JR NZ,?0124
\ 067A ?0123:
303 {
304 FileHeadFlag=1;
\ 067A DD36FB01 LD (IX-5),1
\ 067E ?0124:
305 }
306 RowHeadPosition = 0;
307 ReReadFlag = TRUE; // 读数据标志
308 ByteCount = ViewFileStructPoint->CurrentSeek - ReadFileLength;
\ 067E E5 PUSH HL
\ 067F 210A00 LD HL,10
\ 0682 DD5EFC LD E,(IX-4)
\ 0685 DD56FD LD D,(IX-3)
\ 0688 19 ADD HL,DE
\ 0689 4E LD C,(HL)
\ 068A 23 INC HL
\ 068B 66 LD H,(HL)
\ 068C 69 LD L,C
\ 068D C1 POP BC
\ 068E A7 AND A
\ 068F ED42 SBC HL,BC
\ 0691 DD75F0 LD (IX-16),L
\ 0694 DD74F1 LD (IX-15),H
309 for( row=0; ; )
\ 0697 AF XOR A
\ 0698 DD77EE LD (IX-18),A
\ 069B DD77EF LD (IX-17),A
\ 069E DD36F901 LD (IX-7),1
\ 06A2 DD77F8 LD (IX-8),A
\ 06A5 ?0126:
310 {
311 if( ReReadFlag )
\ 06A5 AF XOR A
\ 06A6 DDB6F9 OR (IX-7)
\ 06A9 286E JR Z,?0135
\ 06AB ?0127:
312 {
313 ReReadFlag = FALSE; // 读数据标志
314 ReadFileLength += RowHeadPosition; // 已读长度 + 显示长度
\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -