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 -------------------------------------------------------------------------