--- src/vc.c.orig Sat Jan 25 00:06:23 1997 +++ src/vc.c Fri Apr 11 08:26:07 1997 @@ -266,12 +266,23 @@ { struct vt_mode vtm; +#if defined(__FreeBSD__) + signal(SIGUSR1, SIG_IGN); + signal(SIGUSR2, SIG_IGN); +#else /* linux */ signal(SIGUSR1, SIG_DFL); signal(SIGUSR2, SIG_DFL); +#endif vtm.mode = VT_AUTO; vtm.waitv = 0; +#if defined(__FreeBSD__) + vtm.relsig = SIGUSR1; + vtm.acqsig = SIGUSR2; + vtm.frsig = SIGUSR1; +#else /* linux */ vtm.relsig = 0; vtm.acqsig = 0; +#endif ioctl(0, VT_SETMODE, &vtm); #if defined(__FreeBSD__) ioctl(0, VT_RELDISP, 1); @@ -297,6 +308,9 @@ vtm.waitv = 0; vtm.relsig = SIGUSR1; vtm.acqsig = SIGUSR2; +#if defined(__FreeBSD__) + vtm.frsig = SIGUSR1; +#endif ioctl(0, VT_SETMODE, &vtm); vInfo.graph_mode(); if (useHardScroll) @@ -830,21 +830,31 @@ static int ConfigBeep(const char *confstr) { - beepCount = atoi(confstr) * 10000; #if defined(linux) + beepCount = atoi(confstr) * 10000; if (beepCount > 0) ioperm(COUNTER_ADDR, 1, TRUE); #endif +#if defined(__FreeBSD__) + beepCount = atoi(confstr) * 10; +#endif return SUCCESS; } +#define BELL_PITCH 800 + void Beep(void) { - if (!con.active || beepCount <= 0) return; #if defined(linux) + if (!con.active || beepCount <= 0) return; PortOutb(PortInb(COUNTER_ADDR)|3, COUNTER_ADDR); usleep(beepCount); PortOutb(PortInb(COUNTER_ADDR)&0xFC, COUNTER_ADDR); +#endif +#if defined(__FreeBSD__) + if(beepCount <= 0) return; + ioctl(fileno(stdout), KDMKTONE, (BELL_PITCH & 0xffff) | + ((beepCount & 0xffff) << 16)); #endif }