summaryrefslogtreecommitdiffstats
path: root/sys/modules/syscons/rain/rain_saver.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/modules/syscons/rain/rain_saver.c')
-rw-r--r--sys/modules/syscons/rain/rain_saver.c65
1 files changed, 26 insertions, 39 deletions
diff --git a/sys/modules/syscons/rain/rain_saver.c b/sys/modules/syscons/rain/rain_saver.c
index 0ca46c8..0b4b2ee 100644
--- a/sys/modules/syscons/rain/rain_saver.c
+++ b/sys/modules/syscons/rain/rain_saver.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id$
+ * $Id: rain_saver.c,v 1.1 1998/12/31 13:41:40 des Exp $
*/
#include <sys/param.h>
@@ -34,7 +34,6 @@
#include <sys/module.h>
#include <sys/syslog.h>
-#include <machine/md_var.h>
#include <machine/random.h>
#include <saver.h>
@@ -45,11 +44,11 @@ static u_char *vid;
#define SCRH 200
#define MAX 63
-static u_char save_pal[768];
static u_char rain_pal[768];
+static int blanked;
static void
-rain_update(void)
+rain_update(video_adapter_t *adp)
{
int i, t;
@@ -57,28 +56,21 @@ rain_update(void)
for (i = (MAX*3+2); i > 5; i -= 3)
rain_pal[i] = rain_pal[i-3];
rain_pal[5] = t;
- load_palette(cur_console, rain_pal);
+ load_palette(adp, rain_pal);
}
-static void
-rain_saver(int blank)
+static int
+rain_saver(video_adapter_t *adp, int blank)
{
- scr_stat *scp = cur_console;
- static int saved_mode;
int i, j, k, pl;
if (blank) {
/* switch to graphics mode */
- if (scrn_blanked <= 0) {
+ if (blanked <= 0) {
pl = splhigh();
- saved_mode = scp->mode;
- scp->mode = M_VGA_CG320;
- scp->status |= SAVER_RUNNING|GRAPHICS_MODE;
- save_palette(scp, save_pal);
- set_mode(scp);
- load_palette(scp, rain_pal);
- scrn_blanked++;
- vid = (u_char *)Crtat;
+ set_video_mode(adp, M_VGA_CG320, rain_pal, 0);
+ blanked++;
+ vid = (u_char *)adp->va_window;
splx(pl);
bzero(vid, SCRW*SCRH);
for (i = 0; i < SCRW; i += 2)
@@ -89,33 +81,22 @@ rain_saver(int blank)
}
/* update display */
- rain_update();
+ rain_update(adp);
} else {
- /* return to previous video mode */
- if (scrn_blanked > 0) {
- if (saved_mode) {
- pl = splhigh();
- scrn_blanked = 0;
- scp->mode = saved_mode;
- scp->status &= ~(SAVER_RUNNING|GRAPHICS_MODE);
- set_mode(scp);
- load_palette(scp, save_pal);
- saved_mode = 0;
- splx(pl);
- }
- }
+ blanked = 0;
}
+ return 0;
}
static int
-rain_saver_load(void)
+rain_init(video_adapter_t *adp)
{
video_info_t info;
int i;
/* check that the console is capable of running in 320x200x256 */
- if ((*biosvidsw.get_info)(cur_console->adp, M_VGA_CG320, &info)) {
+ if (get_mode_info(adp, M_VGA_CG320, &info)) {
log(LOG_NOTICE, "rain_saver: the console does not support M_VGA_CG320\n");
return ENODEV;
}
@@ -123,14 +104,20 @@ rain_saver_load(void)
/* intialize the palette */
for (i = 3; i < (MAX+1)*3; i += 3)
rain_pal[i+2] = rain_pal[i-1] + 4;
-
- return add_scrn_saver(rain_saver);
+
+ blanked = 0;
+
+ return 0;
}
static int
-rain_saver_unload(void)
+rain_term(video_adapter_t *adp)
{
- return remove_scrn_saver(rain_saver);
+ return 0;
}
-SAVER_MODULE(rain_saver);
+static scrn_saver_t rain_module = {
+ "rain_saver", rain_init, rain_term, rain_saver, NULL,
+};
+
+SAVER_MODULE(rain_saver, rain_module);
OpenPOWER on IntegriCloud