From e58ecd7c3d70b3c695adb904c779d754567590e9 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 1 Oct 1991 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1991-10-01 --- pc/devfloppy.c | 2 +- pc/devuart.c | 3 +++ pc/fns.h | 1 + pc/main.c | 13 +++++++++++++ pc/trap.c | 4 ++-- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pc/devfloppy.c b/pc/devfloppy.c index 768e71ccf5b57c3d20cc7ab9a6079054f5a26844..4ba5336e8edb0bc0f90074908f0a4935038970bd 100644 --- a/pc/devfloppy.c +++ b/pc/devfloppy.c @@ -792,7 +792,7 @@ floppyxfer(Drive *dp, int cmd, void *a, long off, long n) fl.cmd[fl.ncmd++] = dp->thead; fl.cmd[fl.ncmd++] = dp->tsec; fl.cmd[fl.ncmd++] = dp->t->bcode; - fl.cmd[fl.ncmd++] = dp->tsec + dp->len/dp->t->bytes - 1; + fl.cmd[fl.ncmd++] = dp->t->sectors; fl.cmd[fl.ncmd++] = dp->t->gpl; fl.cmd[fl.ncmd++] = 0xFF; if(floppycmd() < 0){ diff --git a/pc/devuart.c b/pc/devuart.c index ff3d5f26a104963e9241c7c5613e89940a868ce2..558ea0557851f0654f93c874b1a4cc8ff86b5397 100644 --- a/pc/devuart.c +++ b/pc/devuart.c @@ -295,6 +295,9 @@ uartenable(Uart *up) if(up == &uart[Serial]){ if(serial(0) < 0) print("can't turn on serial port power\n"); + } else { + if(modem(0) < 0) + print("can't turn on modem speaker\n"); } /* diff --git a/pc/fns.h b/pc/fns.h index 174ec34d7171386b873f05ec8e1180830d133de5..fccbd9a03394394a7de94caefd4a477da8b8f2ec 100644 --- a/pc/fns.h +++ b/pc/fns.h @@ -27,6 +27,7 @@ void inss(int, void*, int); void kbdinit(void); void mathinit(void); void mmuinit(void); +int modem(int); void outb(int, int); void outss(int, void*, int); void prhex(ulong); diff --git a/pc/main.c b/pc/main.c index 198c619f5ae5355f987281822f16e592863a7570..2465a51cb8d35dd972d166858b06e0b4bc5be511 100644 --- a/pc/main.c +++ b/pc/main.c @@ -463,6 +463,19 @@ serial(int onoff) return pmuwrbit(1, onoff, 6); } +/* + * power to modem + * onoff == 0 means on + * onoff == 1 means off + */ +int +modem(int onoff) +{ + if(pmuwrbit(1, onoff, 0)<0) + return -1; + return pmuwrbit(1, 1^onoff, 5); +} + void buzz(int f, int d) { diff --git a/pc/trap.c b/pc/trap.c index f735408ff91517fca561a72682b6fdd096d1b67a..d0db2096aa93bd592f4672f665ade225d341d1ff 100644 --- a/pc/trap.c +++ b/pc/trap.c @@ -35,8 +35,8 @@ enum EOI= 0x20, /* non-specific end of interrupt */ }; -int int0mask = 0x00; /* interrupts enabled for first 8259 */ -int int1mask = 0x00; /* interrupts enabled for second 8259 */ +int int0mask = 0xff; /* interrupts enabled for first 8259 */ +int int1mask = 0xff; /* interrupts enabled for second 8259 */ /* * trap/interrupt gates