asm

"Daniel Young" <Danny-xMhm9eWaPqTpPX/iJGFgnvd9D2ou9A/[email protected]> Thu, 17 Jun 2004 16:38:57 +0200
Newsgroups gmane.comp.hardware.microcontrollers.tini
Message-ID <[email protected]>
Hi all could anyone take a look at this asm code for an ISR and tell me
what I am doing wrong? 
If so, much appreciated!  (code below)

Thank you
Daniel


$include(tini_400.inc)
$include(ds80c400.inc)
$include(tinimacro.inc)
$include(apiequ.inc)

;INIT
init:	
	clr	a			;			
	ret				;
;END INIT

;ISR SETUP
Native_SetupISR:			;	
	clr	a			;
	clr	ea			;	
	clr	EIE.3			;
	setb	EIP.3			;	
	PUSH_DPTR2			;	
	push	dps			; 	
	inc 	dps			;
	mov	dptr, #ISR_Weigand	;
	mov	a, #5Bh			;
	lcall	System_InstallInterrupt	;
	pop	dps			;
	POP_DPTR2			;
	setb	ea			;	
	ret				;
; END SetupISR

;ISR ROUTINE
ISR_Weigand:
	clr	EIE.1			;
	FEEDDOG
	;do read weigand data into TagData somehow
		

	RETI				;
;END ISR

;IO_POLL AWAKEN THREAD
Weigand_Poll:			
	PUSH_DPTR1			;	
	mov	dptr,#ThreadID_Buffer	;
	GETX				;
	mov	R0,a			;
	inc	dptr			;
	GETX				;
	lcall	System_ThreadResume	;
	mov	dptr,#Weigand_Poll	;
	lcall	System_RemovePoll	;
	POP_DPTR1			;
	ret				;
;END POLL ROUTINE

;NATIVE GET WEIGAND TAG DATA
Native_ReadWeigand:			; INPUT == Java Byte Array

	mov	dptr,#ThreadID_Buffer	;
	lcall	System_GetCurrentProcessID;
	PUTX				;
	inc	dptr			;
	lcall	System_GetCurrentThreadID;
	PUTX				;	
	mov	dptr,#Weigand_Poll	;
	lcall	System_RegisterPoll	;			
	setb	EIP.1			;
	setb	EIE.1			;
	clr	a			;	
	lcall	Natlib_LoadJavaByteArray;
	jnz	exit_poll		;
	lcall	System_SaveJavaThreadState;			
	PUSH_DPTR1			;
	PUSH_BANK_0			;
	mov	a, #254			;
	lcall	System_ThreadSleep	;	
	POP_BANK_0			;
	POP_DPTR1			;
	mov	a, #128			;
	PUTX				;
	inc	dptr			;
	mov	a, #128			;
	PUTX				;
	inc	dptr			;	
	mov	a, #128			;
	PUTX				;
	inc	dptr			;	
	mov	a, #128			;
	PUTX				;	
	mov	dptr,#Weigand_Poll	;
	lcall	System_RemovePoll	;		
	
exit_poll:
	lcall	System_RestoreJavaThreadState;	
	clr	a			;
	ret				;
;END NATIVE READ WEIGAND

;DATA STORAGE
TagData:
DB 0,0,0,0

THREADID_BUFFER:
DB 0,0

MyByteArray:
DB 0,0,0



END				


_______________________________________________
TINI mailing list
TINI-6tN4nzCoH/[email protected]
To UNSUBSCRIBE, edit your profile, or see list archives:
http://lists.dalsemi.com/mailman/listinfo/tini