[ltp] [announcement] tpb - program to use the IBM ThinkPad (tm) special key

Rob Mayoff linux-thinkpad@www.bm-soft.com
20 Jun 2002 17:55:11 -0500


+---------- On Jun 20, Markus Braun said:
> Are the bits the same as on my T21?

Yes.  In addition (on my A30p):

byte 0x39: xxxx xxxx
             || ||||
             || |+++--> cycle as Fn-F11 pressed (100, 010, 001)
             || |       when external power is connected;
             || |       may indicate performance mode
             || |
	     ++-+-----> cycle as Fn-F11 pressed (100, 010, 001)
			when external power is not connected;
			may indicate performance mode

			I think I disabled power-saving modes in the
			BIOS setup, so I can't easily test this.  But my
			770Z definitely used Fn-F11 to change the
			performance mode (max performance/max battery
			life).

byte 0x57: xxxx xxxx
           | |   ||
	   | |   |+---> toggle if Fn-F2 (???) pressed
           | |   |
           | |   +----> toggle if Fn-F11 pressed (see byte 0x39)
	   | |
	   | +--------> toggle if Fn-Spacebar (screen zoom?) pressed
	   |
	   +----------> toggle if Fn-F12 (hibernate) pressed

byte 0x58: xxxx xxxx
                  ||
		  |+--> toggle if Fn-F4 (suspend) pressed
                  |
		  +---> toggle if Fn-F12 (hibernate) pressed
			(complement of 0x57 high bit)

			I don't have hibernation set up so I can't check
			the meaning of this.

byte 0x59: xxxx xxxx
             ||
	     ++-------> toggle if Fn-F8 (screen expand) pressed

byte 0x62: xxxx xxxx
           |
           +----------> lid state (0=closed, 1=open)

Here's the script I used to watch changes.  It prints the byte offsets
in hex and prints the byte contents (old and new) in binary:

    #!/bin/bash

    while :; do
	cat /dev/nvram > 2
	cmp -l 1 2 | while read offset old new; do
	    let offset=$offset-1
	    offset=$(printf 0x%02x $offset)
	    old=$(printf %08d $(echo "2o8i$old f" | dc))
	    new=$(printf %08d $(echo "2o8i$new f" | dc))
	    echo $offset $old '->' $new
	done
	mv 2 1
    done



----- The Linux ThinkPad mailing list -----
The linux-thinkpad mailing list home page is at:
http://www.bm-soft.com/~bm/tp_mailing.html