;
; Register definitions
;
.EQU rsreg = R15 ; saving the status during interrupts
.EQU rmp = R16 ; Temporary register outside interrupts
.EQU rimp = R17 ; Temporary register inside interrupts
.EQU rflg = R18 ; Flag register for communication
.EQU bint0 = 0 ; Flag bit for signaling INT0-Service
.EQU btc0 = 1 ; Flag bit for signaling TC0-Overflow
; ...
; ISR-Table
;
.CSEG
.ORG $0000
rjmp main ; Reset vector, executed at start-up
rjmp isr_int0 ; INT0-vector, executed on level changes on the INT0 input line
reti ; unused interrupt
reti ; unused interrupt
rjmp isr_tc0_Overflow ; TC0-Overflow-vector, executed in case of a TC0 overflow
reti ; unused interrupt
reti ; unused interrupt
; ... other int vectors
;
; Interrupt service routines
;
isr_int0: ; INT0-Service Routine
in rsreg,SREG ; safe status
in rimp,PINB ; read port B to temp register
out PORTC,rimp ; write temp register to port C
; ... do other things
sbr rflg,1<