⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basal_reader_de.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 3 页
字号:
?0103:
; 259.	                ReadLengthOneTime = ReadFileLength;
	LD	L,(IX-22)
	LD	H,(IX-21)
	PUSH	HL
	POP	IY
?0104:
; 260.	            ReadFileLength -= ReadLengthOneTime;
	LD	L,C
	LD	H,B
	ADD	HL,SP
	PUSH	IY
	POP	DE
	CALL	LWRD ?L_SUBASG_L03
; 261.	
; 262.	            str = read_buff(ViewFileStructPoint, ReadFileLength, ReadLengthOneTime );
	PUSH	IY
	PUSH	BC
	PUSH	DE
	CALL	LWRD ?0191
	POP	AF
	POP	AF
	POP	AF
	LD	(IX-14),L
	LD	(IX-13),H
; 263.	            p = str + ReadLengthOneTime - 1;
	PUSH	HL
	LD	HL,65535
	PUSH	IY
	POP	BC
	ADD	HL,BC
	LD	C,L
	LD	B,H
	POP	HL
	ADD	HL,BC
	LD	(IX-12),L
	LD	(IX-11),H
?0101:
?0106:
; 264.	        }
; 265.	
; 266.	        while( ReadLengthOneTime )
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JR	Z,?0105
?0107:
; 267.	        {
; 268.	            CLEAR_WATCHDOG();   //清WATCH DOG
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 269.	            // 过滤 0x0d & 0x0a
; 270.	            chr = *p --;
	LD	L,(IX-12)
	LD	H,(IX-11)
	DEC	HL
	LD	(IX-12),L
	LD	(IX-11),H
	INC	HL
	LD	A,(HL)
; 271.	            ReadLengthOneTime --;
; 272.	            if( chr!=0x0d && chr!=0x0a )
	CP	13
	DEC	IY
	JR	Z,?0101
	CP	10
	JR	Z,?0101
?0111:
?0110:
?0108:
; 273.	            {
; 274.	                ByteCount += 1;
	INC	(IX-16)
	JR	NZ,?0182
	INC	(IX-15)
?0182:
; 275.	                ReturnFlag = FALSE;  // 0x0D, 0x0A 标志
	LD	(IX-6),0
; 276.	                break;
?0109:
?0105:
?0113:
; 277.	            }
; 278.	        }
; 279.	
; 280.	        while( ReadLengthOneTime )
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JR	Z,?0112
?0114:
; 281.	        {
; 282.	            CLEAR_WATCHDOG();   //清WATCH DOG
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 283.	            chr = *p --;
	LD	L,(IX-12)
	LD	H,(IX-11)
	DEC	HL
	LD	(IX-12),L
	LD	(IX-11),H
	INC	HL
	LD	A,(HL)
; 284.	            ReadLengthOneTime --;
; 285.	            if( chr==0x0d || chr==0x0a )
	CP	13
	DEC	IY
	JR	Z,?0117
	CP	10
	JR	NZ,?0116
?0117:
?0118:
?0115:
; 286.	            {
; 287.	                ReturnFlag = TRUE;   // 0x0D, 0x0A 标志
	LD	(IX-6),1
; 288.	                break;
	JR	?0112
?0116:
; 289.	            }
; 290.	            ByteCount ++;
	INC	(IX-16)
	JR	NZ,?0105
	INC	(IX-15)
	JR	?0105
?0112:
; 291.	        }
; 292.	        if((ByteCount >= SCR_COL*SCR_ROW) && ReturnFlag )
	LD	BC,140
	LD	L,(IX-16)
	LD	H,(IX-15)
	AND	A
	SBC	HL,BC
	JP	C,?0098
	XOR	A
	OR	(IX-6)
	JP	Z,?0098
?0122:
?0121:
?0119:
; 293.	        {
; 294.	            ReadFileLength += ReadLengthOneTime + 1;
	LD	L,B
	LD	H,B
	ADD	HL,SP
	PUSH	IY
	POP	DE
	INC	DE
	LD	C,B
	CALL	LWRD ?L_ADDASG_L03
; 295.	            break;
?0120:
?0097:
; 296.	        }
; 297.	    }
; 298.	
; 299.	    // 计算向前翻页的字符数
; 300.	    memset( lBakSeek, 0, sizeof(lBakSeek) );
	LD	BC,32
	LD	DE,lBakSeek
	LD	L,B
	CALL	LWRD ?MEMSET_L11
; 301.	    lBakSeek[ 0 ] = ReadFileLength;
	LD	C,(IX-20)
	LD	B,(IX-19)
	LD	L,(IX-22)
	LD	H,(IX-21)
	LD	(lBakSeek),HL
	LD	(lBakSeek+2),BC
; 302.	    if(ReadFileLength==0)
	LD	A,L
	OR	H
	OR	C
	OR	B
	JR	NZ,?0124
?0123:
; 303.	    {
; 304.	     FileHeadFlag=1;
	LD	(IX-5),1
?0124:
; 305.	    }
; 306.	    RowHeadPosition = 0;
; 307.	    ReReadFlag = TRUE;   // 读数据标志
; 308.	    ByteCount = ViewFileStructPoint->CurrentSeek - ReadFileLength;
	PUSH	HL
	LD	HL,10
	LD	E,(IX-4)
	LD	D,(IX-3)
	ADD	HL,DE
	LD	C,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,C
	POP	BC
	AND	A
	SBC	HL,BC
	LD	(IX-16),L
	LD	(IX-15),H
; 309.	    for( row=0; ; )
	XOR	A
	LD	(IX-18),A
	LD	(IX-17),A
	LD	(IX-7),1
	LD	(IX-8),A
?0126:
; 310.	    {
; 311.	        if( ReReadFlag )
	XOR	A
	OR	(IX-7)
	JR	Z,?0135
?0127:
; 312.	        {
; 313.	            ReReadFlag = FALSE;                    // 读数据标志
; 314.	            ReadFileLength += RowHeadPosition;         // 已读长度 + 显示长度
	LD	HL,0
	ADD	HL,SP
	LD	E,(IX-18)
	LD	D,(IX-17)
	LD	BC,0
	CALL	LWRD ?L_ADDASG_L03
; 315.	            ByteCount -= RowHeadPosition;            // 剩余长度 - 显示长度
	LD	HL,6
	ADD	HL,SP
	LD	A,(HL)
	SUB	(IX-18)
	LD	(HL),A
	INC	HL
	LD	A,(HL)
	SBC	A,(IX-17)
	LD	(HL),A
; 316.	            RowHeadPosition = 0;
; 317.	
; 318.	            if( ByteCount == 0 )
	LD	(IX-7),0
	XOR	A
	LD	(IX-18),A
	LD	(IX-17),A
	LD	A,(IX-16)
	OR	(IX-15)
	JP	Z,?0125
?0129:
; 319.	                break;          // 读文件结束
?0130:
; 320.	            if( ByteCount > BUFF_ONE_ROW*2 )    
	LD	C,(IX-16)
	LD	B,(IX-15)
	LD	HL,40
	SBC	HL,BC
	JR	NC,?0132
?0131:
; 321.	                ReadLengthOneTime = BUFF_ONE_ROW*2;
	LD	IY,40
; 322.	            else
	JR	?0133
?0132:
; 323.	                ReadLengthOneTime = ByteCount;
	PUSH	BC
	POP	IY
?0133:
; 324.	
; 325.	            str = read_buff(ViewFileStructPoint, ReadFileLength, ReadLengthOneTime );
	PUSH	IY
	LD	L,(IX-20)
	LD	H,(IX-19)
	PUSH	HL
	LD	L,(IX-22)
	LD	H,(IX-21)
	PUSH	HL
	CALL	LWRD ?0191
	POP	AF
	POP	AF
	POP	AF
	LD	(IX-14),L
	LD	(IX-13),H
; 326.	            if( str == NULL )
	LD	A,L
	OR	H
	JR	NZ,?0135
?0134:
; 327.	                return 0;
?0186:
	LD	L,0
; 328.	        }
	JP	LWRD ?0172
?0135:
?0128:
?0137:
; 329.	
; 330.	        for( ; RowHeadPosition<ReadLengthOneTime; RowHeadPosition++ )    
	PUSH	IY
	POP	BC
	LD	L,(IX-18)
	LD	H,(IX-17)
	AND	A
	SBC	HL,BC
	JR	NC,?0136
?0138:
; 331.	        {
; 332.	            CLEAR_WATCHDOG();   //清WATCH DOG
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 333.	            // 过滤 0x0d & 0x0a
; 334.	            chr = str[ RowHeadPosition ];
	LD	L,(IX-18)
	LD	H,(IX-17)
	LD	C,(IX-14)
	LD	B,(IX-13)
	ADD	HL,BC
	LD	A,(HL)
; 335.	            if( chr!=0x0d && chr!=0x0a )
	CP	13
	JR	Z,?0141
	CP	10
	JR	NZ,?0136
?0143:
?0142:
?0140:
; 336.	                break;
?0141:
	INC	(IX-18)
	JR	NZ,?0135
	INC	(IX-17)
	JR	?0135
?0136:
; 337.	        }
; 338.	
; 339.	        if( (RowHeadPosition==ReadLengthOneTime) || ((RowHeadPosition+SCR_COL>=ReadLengthOneTime)&&(ReadLengthOneTime!=ByteCount)) )
	PUSH	IY
	POP	HL
	LD	C,(IX-18)
	LD	B,(IX-17)
	AND	A
	SBC	HL,BC
	JR	Z,?0149
	LD	HL,20
	ADD	HL,BC
	PUSH	IY
	POP	BC
	AND	A
	SBC	HL,BC
	JR	C,?0145
	LD	L,(IX-16)
	LD	H,(IX-15)
	SBC	HL,BC
	JR	Z,?0145
?0149:
?0148:
?0146:
?0147:
?0144:
; 340.	        {
; 341.	            // 重新读入数据
; 342.	            ReReadFlag = TRUE;   // 读数据标志
	LD	(IX-7),1
; 343.	        }
; 344.	        else
	JP	LWRD ?0126
?0145:
; 345.	        {
; 346.	            // 显示一行
; 347.	            for( col=0; (col<SCR_COL)&&(RowHeadPosition+col<ReadLengthOneTime); )    
	LD	(IX-9),0
?0152:
	LD	A,(IX-9)
	CP	20
	JR	NC,?0151
	LD	C,A
	LD	B,0
	LD	L,(IX-18)
	LD	H,(IX-17)
	ADD	HL,BC
	PUSH	IY
	POP	BC
	AND	A
	SBC	HL,BC
	JR	NC,?0151
?0155:
?0154:
?0153:
; 348.	            {
; 349.	                chr = str[ RowHeadPosition+col ];
	LD	C,A
	LD	B,0
	LD	L,(IX-18)
	LD	H,(IX-17)
	ADD	HL,BC
	LD	C,(IX-14)
	LD	B,(IX-13)
	ADD	HL,BC
	LD	A,(HL)
; 350.	                if( chr==0x0d || chr==0x0a )
	CP	13
	JR	Z,?0151
	CP	10
	JR	Z,?0151
?0158:
?0159:
?0156:
; 351.	                    break;
?0157:
; 352.	
; 353.	                if( chr<0x80 )
	CP	128
	JR	NC,?0161
?0160:
; 354.	                    col += 1;
	INC	(IX-9)
	JR	?0152
?0161:
; 355.	                else if( col<SCR_COL-1 )
	LD	A,(IX-9)
	CP	19
	JR	NC,?0151
?0163:
; 356.	                    col += 2;
	ADD	A,2
	LD	(IX-9),A
; 357.	                else
	JR	?0152
?0164:
; 358.	                    break;
?0165:
?0162:
?0151:
; 359.	            }
; 360.	            RowHeadPosition += col;
	LD	C,(IX-9)
	LD	B,0
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,C
	LD	(HL),A
	INC	HL
	LD	A,(HL)
	ADC	A,B
	LD	(HL),A
; 361.	            lBakSeek[ row%(SCR_ROW+1) ] = ReadFileLength + RowHeadPosition;
	LD	A,(IX-8)
	AND	7
	LD	L,A
	LD	H,B
	ADD	HL,HL
	ADD	HL,HL
	LD	BC,lBakSeek
	ADD	HL,BC
	PUSH	HL
	LD	E,(IX-18)
	LD	D,(IX-17)
	LD	BC,0
	PUSH	BC
	PUSH	DE
	LD	L,(IX-22)
	LD	H,(IX-21)
	POP	BC
	ADD	HL,BC
	EX	DE,HL
	LD	L,(IX-20)
	LD	H,(IX-19)
	POP	BC
	ADC	HL,BC
	LD	C,L
	LD	B,H
	POP	HL
	LD	(HL),E
	INC	HL
	LD	(HL),D
	INC	HL
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 362.	            row ++;
	INC	(IX-8)
?0150:
	JP	LWRD ?0126
?0125:
; 363.	        }
; 364.	    }       
; 365.	//////////////////////////////////////////////////  zxs modified for prev bug    
; 366.	    if(FileHeadFlag)
	OR	(IX-5)
	JR	Z,?0167
?0166:
; 367.	    {
; 368.	     ViewFileStructPoint->CurrentSeek=0;   
	LD	HL,10
	LD	C,(IX-4)
	LD	B,(IX-3)
	ADD	HL,BC
	XOR	A
	LD	(HL),A
	INC	HL
	LD	(HL),A
	INC	HL
	LD	(HL),A
	INC	HL
	LD	(HL),A
; 369.	    }  
; 370.	    else
	JR	?0171
?0167:
; 371.	    { 
; 372.	     if(row>=(SCR_ROW+1))  
	LD	A,(IX-8)
	CP	8
	JR	C,?0170
?0169:
; 373.	     ViewFileStructPoint->CurrentSeek = lBakSeek[ row % (SCR_ROW+1) ];   
	AND	7
	LD	L,A
	LD	H,0
	ADD	HL,HL
	ADD	HL,HL
	LD	BC,lBakSeek
	ADD	HL,BC
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	EX	DE,HL
	PUSH	HL
	LD	HL,10
	LD	E,(IX-4)
	LD	D,(IX-3)
	ADD	HL,DE
	POP	DE
	JR	?0185
; 374.	     else
?0170:
; 375.	     ViewFileStructPoint->CurrentSeek = lBakSeek[0];    
	LD	HL,10
	LD	C,(IX-4)
	LD	B,(IX-3)
	ADD	HL,BC
	LD	BC,(lBakSeek+2)
	LD	DE,(lBakSeek)
?0185:
	LD	(HL),E
	INC	HL
	LD	(HL),D
	INC	HL
	LD	(HL),C
	INC	HL
	LD	(HL),B
?0171:
?0168:
; 376.	    }
; 377.	    ////////////////////////////////////////////////    
; 378.	    return row;
	LD	L,(IX-8)
; 379.	}
?0172:
	JP	LWRD ?0015
	RSEG	UDATA0
lBakSeek:
	DEFS	32
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -