Hola a ver si me dan una mano con este código sencillo que lo saque de el libro de un colombiano llamado Juan Carlos, el ejemplo hace parpadear un led a intervalos de 1 segundo. El fin de esto es el uso del TIMER y de INTERRUPCIONES, y es que no me queda claro bien una parte del final del código, si pudieran colgar un comentario sería de gran ayuda.
Dento del él señale las lineas donde me pierdo. El código funciona bien.
$ include 'jl3regs.inc'
flash equ $ece0
reset equ $fffe
timer equ $fff2
ram equ $0080
copd equ 0
led equ 7
org ram
bandera rmb 1
org rom
inicio:
bset copd, config1
mov #%00000000, portb
mov #%10000000, ddrb
salto:
bclr led, portb
bsr retardo
bset led, portb
bsr retardo
bra salto
retardo bclr led, bandera
config_tim
mov #$36, tsc
mov #$3d, tmodh
mov #$09, tmodl
mov #$46, tsc
cli
espera:
brset led, bandera, fin
bra espera
fin rts
tim pshh ;¿qué hace esto??, guarda el H en el stack, ¿pero que había en H??
bset led, bandera ;???
fin_int bclr 7, tsc ;??
pulh ;???
rti
org reset ; estas cuatro instrucciones tampoco las entiendo, ¿de qué manera están relacionadas con " reset equ $fffe y timer equ $fff2 "?
dw inicio ;??
org timer ;¿¿
dw tim ;¿¿