Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/28/02 10:41
Read: times


 
#31540 - RE: [C51] is bug in keil c51 7.01 ?
the src file and compiler direcive can found in last post

 
	RSEG  ?PR?serial?SERIAL_S1
	USING	2
serial:
	PUSH 	ACC
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	USING	2
	MOV  	PSW,#010H
			; SOURCE LINE # 47
; 	register char buf;
; 	if (RI0 != 0){
			; SOURCE LINE # 49
	JB   	RI0,$ + 5H
	AJMP 	?C0006
;   		RI0 = 0;
			; SOURCE LINE # 50
	CLR  	RI0
; 		buf = SBUF0 ;
			; SOURCE LINE # 51
;---- Variable 'buf?141' assigned to Register 'R6' ----
	MOV  	R6,SBUF0
; 		//STX CHK : if error reset serial buffer
; 		//if (newpack) return; //if last pack no read exit //DEBUG!
; 		if (buf == STX){//REALLY RECIVE OF stx RESET PACK
			; SOURCE LINE # 54
	MOV  	A,R6
	XRL  	A,#02H
	JNZ  	?C0007
; 			outchar(ACK); //echo
			; SOURCE LINE # 55
	MOV  	R7,#06H
	LCALL	_outchar
; 			PACK_PN = 0;
			; SOURCE LINE # 56
	MOV  	PACK_PN,A
; 			PACK_DN = 0; 
			; SOURCE LINE # 57
	MOV  	PACK_DN,A
; 			PackData[0] = 0;
			; SOURCE LINE # 58
	MOV  	R0,#LOW (PackData)
	MOVX 	@R0,A
; 			CMD_LOC[0] = &PackData;
			; SOURCE LINE # 59
	MOV  	R0,#LOW (CMD_LOC)
	MOV  	A,#LOW (PackData)
	MOVX 	@R0,A
; 			DataPointer = &PackData;
			; SOURCE LINE # 60
	MOV  	DataPointer,#0FEH
	MOV  	DataPointer+01H,#HIGH (PackData)
	MOV  	DataPointer+02H,A
; 			PackState =	1; //inpack = 1;
			; SOURCE LINE # 61
	MOV  	PackState,#01H
; 			//reset SendPack
; 			InSPack  = 0;  			
			; SOURCE LINE # 63
; 			StartSPack = 0;
			; SOURCE LINE # 64
	AJMP 	?C0028
; 			//
; 			return;
; 		}
			; SOURCE LINE # 67
?C0007:
; 		if (inpack){
			; SOURCE LINE # 68
	JNB  	inpack,?C0009
; 			if (buf == ETX){
			; SOURCE LINE # 69
	CJNE 	R6,#03H,?C0010
; 				outchar(NAK);
			; SOURCE LINE # 70
	MOV  	R7,#015H
	LCALL	_outchar
; 				PackState = 0x0A;
			; SOURCE LINE # 71
	MOV  	PackState,#0AH
	AJMP 	?C0008
; 				//isr_send_signal (SerialCMD);  RTX51;
; 				return;									
; 			}
			; SOURCE LINE # 74
?C0010:
; 			if (buf == ESC) {
			; SOURCE LINE # 75
	CJNE 	R6,#01BH,?C0011
; 				outchar(ESC);
			; SOURCE LINE # 76
	MOV  	R7,#01BH
	LCALL	_outchar
; 				PackState = 0;
			; SOURCE LINE # 77
	MOV  	PackState,#00H
	AJMP 	?C0008
; 				return;												
; 			}
			; SOURCE LINE # 79
?C0011:
; 			outchar(buf);
			; SOURCE LINE # 80
	MOV  	R7,AR6
	LCALL	_outchar
; 			if (buf == 0) CMD_LOC[++PACK_PN] = DataPointer;
			; SOURCE LINE # 81
	MOV  	A,R6
	JNZ  	?C0012
	INC  	PACK_PN
	MOV  	A,#LOW (CMD_LOC)
	ADD  	A,PACK_PN
	MOV  	R0,A
	MOV  	A,DataPointer+02H
	MOVX 	@R0,A
?C0012:
; 			//PackData[PACK_DN] = DataPointer; not req. see next line !
; 			*DataPointer = buf;
			; SOURCE LINE # 83
	MOV  	R3,DataPointer
	MOV  	R2,DataPointer+01H
	MOV  	R1,DataPointer+02H
	MOV  	A,R6
	LCALL	?C?CSTPTR
; 			DataPointer++;
			; SOURCE LINE # 84
	MOV  	A,#01H
	ADD  	A,DataPointer+02H
	MOV  	DataPointer+02H,A
	CLR  	A
	ADDC 	A,DataPointer+01H
	MOV  	DataPointer+01H,A
; 			PACK_DN++;	
			; SOURCE LINE # 85
	INC  	PACK_DN
	SJMP 	?C0008
; 			return;
; 		}//end inpack
			; SOURCE LINE # 87
?C0009:
; 		if (!StartSPack && !InSPack) return; //realy in send pack
			; SOURCE LINE # 88
	JB   	StartSPack,?C0013
	JNB  	InSPack,?C0008
?C0013:
; 		if (StartSPack){
			; SOURCE LINE # 89
	JNB  	StartSPack,?C0014
; 			if (buf == ACK) {
			; SOURCE LINE # 90
	MOV  	A,R6
	XRL  	A,#06H
	JNZ  	?serial?ERSP
; 				StartSPack = 0;
			; SOURCE LINE # 91
	CLR  	StartSPack
;  				InSPack = 1;	
			; SOURCE LINE # 92
	SETB 	InSPack
; 			}
			; SOURCE LINE # 93
	SJMP 	?C0018
; 			else goto ERSP;
			; SOURCE LINE # 94
; 		}
			; SOURCE LINE # 95
?C0014:
; 		else if (buf != *(SDPointer -1)) goto ERSP; //cheack good echo
			; SOURCE LINE # 96
	MOV  	R3,SDPointer
	MOV  	R2,SDPointer+01H
	MOV  	R1,SDPointer+02H
	MOV  	DPTR,#0FFFFH
	LCALL	?C?CLDOPTR
	XRL  	A,R6
	JNZ  	?serial?ERSP
?C0018:
; 		if (buf == NAK){
			; SOURCE LINE # 97
	CJNE 	R6,#015H,?C0020
; 			InSPack = 0;
			; SOURCE LINE # 98
	CLR  	InSPack
	SJMP 	?C0008
; 			return; //end of good send;
; 		}
			; SOURCE LINE # 100
?C0020:
; 		if (!*SDPointer){
			; SOURCE LINE # 101
	MOV  	R3,SDPointer
	MOV  	R2,SDPointer+01H
	MOV  	R1,SDPointer+02H
	LCALL	?C?CLDPTR
	MOV  	R6,A
	JNZ  	?C0021
; 			outchar(ETX);
			; SOURCE LINE # 102
	MOV  	R7,#03H
	LCALL	_outchar
	SJMP 	?C0008
; 			return;	
; 		}
			; SOURCE LINE # 104
?C0021:
; 		outchar(*SDPointer);
			; SOURCE LINE # 105
	MOV  	R7,AR6
	LCALL	_outchar
; 		SDPointer++;
			; SOURCE LINE # 106
	MOV  	A,#01H
	ADD  	A,SDPointer+02H
	MOV  	SDPointer+02H,A
	CLR  	A
	ADDC 	A,SDPointer+01H
	MOV  	SDPointer+01H,A
	SJMP 	?C0008
; 		return;
; 	//--------------- send ERROR Routine
; ERSP:
			; SOURCE LINE # 109
?serial?ERSP:
; 	outchar(ESC);
			; SOURCE LINE # 110
	MOV  	R7,#01BH
	LCALL	_outchar
; 	InSPack  = 0;  			
			; SOURCE LINE # 111
?C0028:
	CLR  	InSPack
; 	StartSPack = 0;		 
			; SOURCE LINE # 112
	CLR  	StartSPack
	SJMP 	?C0008
;  	return;		
; 	//------------------ti
; 	}
			; SOURCE LINE # 115
?C0006:
; 	if (TI0 != 0){
			; SOURCE LINE # 116
	JNB  	TI0,?C0008
; 		TI0 = 0 ;
			; SOURCE LINE # 117
	CLR  	TI0
; 		TI_E = 0;					
			; SOURCE LINE # 118
	CLR  	TI_E
; 	}
			; SOURCE LINE # 119
; }
			; SOURCE LINE # 120
?C0008:
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	ACC
	RETI 	
; END OF serial



List of 16 messages in thread
TopicAuthorDate
[C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ? -zbi            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ? -zbi            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ? -zbi            01/01/70 00:00      
RE: Please re-post the code!            01/01/70 00:00      
RE: parentheses, braces, brackets            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] is bug in keil c51 - jon            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      
RE: [C51] No bug!            01/01/70 00:00      
RE: [C51] No bug!            01/01/70 00:00      
RE: [C51] is bug in keil c51 7.01 ?            01/01/70 00:00      

Back to Subject List