From d88831a6d96ccfc61a40c61c336e0b0b03ff09be Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 20 Feb 1994 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1994-02-20 --- carrera/trap.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/carrera/trap.c b/carrera/trap.c index 92fa6225cd26ed201c380e8870cded4291b7885d..57fb0fd5df3910c97da4e7fd6479fefcb0724e0a 100644 --- a/carrera/trap.c +++ b/carrera/trap.c @@ -289,6 +289,7 @@ intr(Ureg *ur) { static uchar devint; ulong cause = ur->cause; + ulong isr; m->intr++; cause &= INTR7|INTR6|INTR5|INTR4|INTR3|INTR2|INTR1|INTR0; @@ -317,11 +318,18 @@ intr(Ureg *ur) cause &= ~INTR3; } if(cause & INTR2) { - iprint("R4030 Interrupt\n"); - iprint(" ISR #%lux\n", IO(ulong, R4030Isr)); - iprint(" ET #%lux\n", IO(ulong, R4030Et)); - iprint(" RFA #%lux\n", IO(ulong, R4030Rfa)); - iprint(" MFA #%lux\n", IO(ulong, R4030Mfa)); + isr = IO(ulong, R4030Isr); + if(isr & (1<<5)) { + audiointr(); + isr &= ~(1<<5); + } + if(isr) { + iprint("R4030 Interrupt\n"); + iprint(" ISR #%lux\n", IO(ulong, R4030Isr)); + iprint(" ET #%lux\n", IO(ulong, R4030Et)); + iprint(" RFA #%lux\n", IO(ulong, R4030Rfa)); + iprint(" MFA #%lux\n", IO(ulong, R4030Mfa)); + } cause &= ~INTR2; } if(cause & INTR4) {