The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
;********************************************************************
;* LED flasher: LED will flash with a X on/off ratio at PD6
;*
;* NOTE: delay depends in the value of X, 1 is fast, 255 is slow
;*
;* No copyright ©1998 RES® * FREEWARE *
;*
;* NOTE: Connect a low current LED with a 1k resistor in serie from 
;*	 Vdd to pin 11 of the MCU. (Or a normal LED with a 330ohm)
;*									   
;* RES® can be reached by email: digitalaudio@mail.com		   
;* or visit the website: http://home.wanadoo.nl/electro1/avr
;*
;* Version           :1.0 					   
;* Date		     :12/26/98
;* Author	     :Rob's ElectroSoft®
;* Target MCU        :AT90S1200-12PI@4MHz					   
;********************************************************************

.include "1200def.inc"

	rjmp	RESET		;reset handle


;* Long delay 

;* Register variables

	.def  T1      = r1
	.def  T2      = r2
	.def  temp    = r19

;* Code
	    
longDelay:      
	clr   T1		;T1 used as delay 2nd count
	clr   T2		;T2 used as delay 3d count
delay_1:    
	dec   T2
	brne  delay_1            
	dec   T1
	brne  delay_1           
	dec   temp		;temp must be preset as 
	brne  delay_1		; delay master count
	ret                     


;* Resets the data direction register D

;* Defines

	.equ  led   = 6		;LED at PD6

;* Code

RESET:
	sbi   DDRD, led		;connect LED to PORTD pin 6
	    

;* Main program

;* This part will let the LED go on and off by X

;* Register variables

	.equ  X   =  10 	;enter delaytime X

flash: 
	sbi   PORTD, led	;LED on
	ldi   temp, X		;X sec delay           
	rcall longDelay             
	cbi   PORTD, led	;LED off            
	ldi   temp, X		;X sec delay
	rcall longDelay
	rjmp  flash		;another run