home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
MM1
/
GRAPHICS
/
ssaver.lzh
/
SRC
/
saver_black.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-11-02
|
1KB
|
70 lines
/* saver_black.c */
/* A screen-saver program for use with SSaver, */
/* by Boisy G. Pitre */
/* This program works on a 256-color screen */
#include <stdio.h>
#include <modes.h>
#include <types.h>
#include "saver.h"
int orgwin, win, twin;
int sigcode = 0; /* storage to keep received signal(s) */
int sighandler(); /* this will use a signal handler function */
extern int errno;
main()
{
int evID; /* event ID */
sigmask(1); /* mask signals */
intercept(sighandler); /* install signal handler */
if ((evID = _ev_link(EV_NAME)) == -1)
exit(1);
DWSet(STDOUT, 3, 0, 0, 40, 26, 0, 0, 0);
/* get the original window device number */
if (_gs_currscr(STDOUT,&orgwin) == -1)
exit(0);
CurOff(STDOUT);
BColor(STDOUT, 0);
_gs_wdev(STDOUT, &win); /* get our window device number */
_ss_select(STDOUT, win); /* now select it! */
sigmask(0); /* unmask signals */
_ev_set(evID, 0, 0x8000); /* wake up everybody */
/* we unlink from the event since we are through with it */
_ev_unlink(evID);
while(!sigcode)
sleep(0);
}
sighandler(signal)
int signal;
{
switch (signal) {
case SLEEP_SIG:
case WAKE_SIG:
break;
case QUIT_SIG:
default:
sigcode = signal;
if (_gs_currscr(STDOUT,&twin) == -1)
exit(0);
if (twin == win) {
_ss_select(STDOUT, orgwin);
}
}
}