aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/drivers/generic-isr.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/avr8/drivers/generic-isr.asm')
-rw-r--r--amforth-6.5/avr8/drivers/generic-isr.asm41
1 files changed, 0 insertions, 41 deletions
diff --git a/amforth-6.5/avr8/drivers/generic-isr.asm b/amforth-6.5/avr8/drivers/generic-isr.asm
deleted file mode 100644
index e0aeaed..0000000
--- a/amforth-6.5/avr8/drivers/generic-isr.asm
+++ /dev/null
@@ -1,41 +0,0 @@
-; ISR routines
-.eseg
-intvec: .byte INTVECTORS * CELLSIZE
-.dseg
-intcnt: .byte INTVECTORS
-.cseg
-
-; interrupt routine gets called (again) by rcall! This gives the
-; address of the int-vector on the stack.
-isr:
- st -Y, r0
- in r0, SREG
- st -Y, r0
-.if (pclen==3)
- pop r0 ; some 128+K Flash devices use 3 cells for call/ret
-.endif
- pop r0
- pop r0 ; = intnum * intvectorsize + 1 (address following the rcall)
- dec r0
-.if intvecsize == 1 ;
- lsl r0
-.endif
- mov isrflag, r0
- push zh
- push zl
- ldi zl, low(intcnt)
- ldi zh, high(intcnt)
- lsr r0 ; we use byte addresses in the counter array, not words
- add zl, r0
- adc zh, zeroh
- ld r0, Z
- inc r0
- st Z, r0
- pop zl
- pop zh
-
- ld r0, Y+
- out SREG, r0
- ld r0, Y+
- ret ; returns the interrupt, the rcall stack frame is removed!
- ; no reti here, see words/isr-end.asm