X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsupport%2Fconsoleio.cpp;h=29a7ce9a837f61ce6b13087cc19d32625f839f75;hp=bc6df45616097ad93b83514dff67dec8e4750006;hb=f7ee98f7d964ed361068179f0e7ea4475ed1abdf;hpb=12e2c29153a0f55ac23bdeec06b404638672985b diff --git a/libctsupport/consoleio.cpp b/libctsupport/consoleio.cpp index bc6df45..29a7ce9 100644 --- a/libctsupport/consoleio.cpp +++ b/libctsupport/consoleio.cpp @@ -1,8 +1,8 @@ /***************************************************************************** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: consoleio.cpp,v 1.2 2000/06/19 19:04:05 kevin Exp $ +** $Id$ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -24,11 +24,11 @@ /* NAME - * cio_put_c Put a character on screen + * cio_put_c Put a character on screen * * SYNOPSIS * cio_put_c (c) - * char c Character to write + * char c Character to write * * NOTES * Color of character is determined by the global variable, crtv.text_attr. @@ -38,7 +38,7 @@ * and maybe the screen will scroll */ -void +void cio_put_c (int c) { fputc(c, stdout); @@ -47,23 +47,23 @@ cio_put_c (int c) /* NAME - * cio_put_cc Put a char on screen count times + * cio_put_cc Put a char on screen count times * * SYNOPSIS * cio_put_cc (c, count) - * char c Character to write - * int count Number of characters to write + * char c Character to write + * int count Number of characters to write */ -void +void cio_put_cc (int c, int count) { for (int i = 0; i < count; i++) - cio_put_c (c); + cio_put_c (c); } -void +void cio_put_str (const char *str) { fputs (str, stdout); @@ -72,17 +72,17 @@ cio_put_str (const char *str) /* NAME - * kb_getc Get a character from the keyboard + * kb_getc Get a character from the keyboard * * SYNOPSIS * key = kb_getc() * * DESCRIPTION - * 1. This routine returns an EXTENTED ASCII code, - * the extended codes have a low byte of 0 and a distinctive - * high byte, such as 0x2D00 and 0x3200 - * 2. This routine waits until a key has been typed - * 2. The keystroke will not be echoed. + * 1. This routine returns an EXTENTED ASCII code, + * the extended codes have a low byte of 0 and a distinctive + * high byte, such as 0x2D00 and 0x3200 + * 2. This routine waits until a key has been typed + * 2. The keystroke will not be echoed. */ unsigned int cio_kb_getc(void) @@ -90,24 +90,24 @@ unsigned int cio_kb_getc(void) return fgetc(stdin); } -void +void cio_kb_ungetc (unsigned int c) { ungetc(c, stdin); } /* NAME - * kb_gets Get a string from the keyboard + * kb_gets Get a string from the keyboard * * SYNOPSIS * str = kb_gets (str, maxlen) - * char *str Space to store input string - * int maxlen Maximum number of characters to read - * (Not including EOS) + * char *str Space to store input string + * int maxlen Maximum number of characters to read + * (Not including EOS) * NOTES - * Backspace - erases character to the right - * Escape - erases to beginning of line - * Return - ends string (no not cause a linefeed) + * Backspace - erases character to the right + * Escape - erases to beginning of line + * Return - ends string (no not cause a linefeed) */ char * @@ -117,13 +117,13 @@ cio_kb_gets (char *str, int maxlen) } /* NAME - * kb_waitc Wait for a character from the keyboard + * kb_waitc Wait for a character from the keyboard * * SYNOPSIS * key = kb_waitc (astr, estr, beep) - * int key Keystroke entered - * char *astr String of valid ascii characters - * bool beep If TRUE, beep when user hits invalid key + * int key Keystroke entered + * char *astr String of valid ascii characters + * bool beep If TRUE, beep when user hits invalid key * */ @@ -135,12 +135,45 @@ cio_kb_waitc (const char *astr, int beep_on_error) do { c = cio_kb_getc (); if (strchr (astr, c) != NULL) - break; + break; if (beep_on_error) cio_beep(); } while (1); - + return (c); } +/* NAME + * beep sound a beep to user + * + * SYNOPSIS + * beep() + */ + +void cio_beep (void) +{ + cio_tone (2000.0, 0.3); +} + +/* NAME + * tone play a frequency sound for some duration + * + * SYNOPSIS + * tone (freq, length) + * double freq frequency to play in Hertz + * double length duration to play note in seconds + */ + +void +cio_tone (double freq, double length) +{ +#if 1 + fprintf(stdout, "\007"); +#else + cio_spkr_freq (freq); /* Set frequency of tone */ + cio_spkr_on (); /* Turn on speaker */ + pause (length); /* Pause for length seconds */ + cio_spkr_off (); /* Turn off speaker */ +#endif +}