;-------------------------------------------------------------------------------------------
;       VsZeNeR'04       9/julio/04     
;Programa: Iluminacion de 8 Led's correlativamente
;Simulador MC68000: IDE68K(vs1.35)    
;
;Entrada:       D0:    Registro encargado iluminar led's
;               D1:    Registro encargado almacenar cosntante de retardo
;               RET:   Constante interna del programa cuya funcion es suministrar el retardo 
;
;Notas:     Subrutina delay: Se le introduce un retardo para que se vea el desplazamiento 
;                            de los led's        
;
;Resumen:   Programa que enciende led's correlativamente                       
;-------------------------------------------------------------------------------------------
        org     $400            ;inicio programa
*****VARIABLES*****************
RET     equ     $FFFFF          ;constante de retardo
*****PROGRAMA******************
main    move.b  #0,D0           ;D0=0
loop    move.b  D0,$E003        ;carga e ilumina el correspondiente led
        BSR     delay           ;salto a subrutina delay
        add.b   #1,D0           ;D0=D0+1
        CMP     #$0,D0          ;żestan todos los led's encendidios?
        BHI     loop            ;no estan todos encendidios ->ve a loop
        BRA     main            ;si estan todos encendidos ->ve a main
*****RETARDO*******************
delay   move.l  #RET,D1         ;cargo constante de retardo en D1
loop1   sub.l   #1,D1           ;D1=D1-1
        TST.l   D1              ;żD1==0?
        BNE     loop1           ;no es igual a cero ->ve a loop1
        rts                     ;si es igual a cero ->fin de subrutina
*******************************
        end     main            ;fin de programa