SHORT DESCRIPTION 
----------------- 
My notebook doesn't warn me (under Linux) when the batteries are
empty, so I wrote "vwacht". While I was debugging the BIOS, I found
some other neat things (inverse video, even in graphics mode etc) so I
wrote "vmode". If you are interested in this, keep on reading.

DISCLAIMER
----------
I take no responsibility whatsoever for any damages caused directly or
as consequence of the use or non-use of the following programs.  They
have worked for me but they may or may not work for you.  These
instructions and programs are provided for purely informational
purposes.  Although I have checked it over, I am also not responsible
for any mistakes in this text nor any direct or consequential damage
caused because of them.  There is no guarantee stated or implied.  USE
AT YOUR OWN RISK.
 
QUESTION
--------
If it works for you, drop me (see the bottom of this file) a note,
with your chip set etc. so that other people with your kind of
computer can use these programs also. If you make some enhancements
(screenblanker-see veridata.h for the values you have to use), mail
them also to me, so I can put them in next release.

NOTE 
---- 
These programs work on the following notebook (it is a
clone, but I don't know of which):

Veridata EL-486S/25e
chip set: Cyrix 486SLC
  BIOS: 
   486SLC Modular BIOS GC-21 Version 3.15.1
   Copyright(c) 1984-91 Award Software Inc.
   486SLC BIOS Version B39V3112(R) (Mar 18,1993) Award Software Inc.
  VGA BIOS:
   VGA Bios Version 3.11
   Copyright(c) Cirrus Logic Inc. 1989-1991
   Copyright(c) 1984-91 Award Software Inc. All Rights Reserved.

The program "vwatch" reads every second the i/o-port (VERIDATA_PORT)
which gives the power status of the notebook. If the batteries reach
level1, it starts to beep once every 4 or 5 seconds, and the Bat. Low
led flashes every second. On level2, it beeps once a second and the
Bat. Low led 'burns' constantly.

The program "vmode" uses the same port to read the other status
options (speed,video mode) and can enable or disable this options
(type vmode -h to see the options).

If you are not sure if this works for your notebook, you can write a
small program (you can use vwatch.c as a skeleton) which does the
following:

	oldstatus=0;
	while (TRUE) {
	  status=inb_p(VERIDATA_PORT);
	  if (status != oldstatus) {
	    printf("^G%x",status);
	    oldstatus=status;
	  }

Since you only read from the port, I assume that it is safe. If it
works for you, then the output should be
	
	ok
	lvl1      # batteries are becoming empty
	ok
	lvl1
	ok
	lvl1
	lvl2      # batteries are almost empty, you better halt

where ok is a hexadecimal digit with the last 2 bits set, lvl1 bit 7
on and bit 8 of and lvl2 clears the last 2 bits.  If you use the
extern power, then bit 6 should be set else cleared.

PS 
-- 
I use the Cyrix patch which enables the cache and it works fine for
me.

-------------------------------------------------------------------------
P. Verhaeghe (pive@ruca.ua.ac.be)
University of Antwerp,RUCA,Department of Mathematics and Computer Science
Groenenborgerlaan 171                                  Tel: +32 3 2180376
B-2020 Antwerpen, Belgium                              Fax: +32 3 2180217
-------------------------------------------------------------------------
