Die verborgenen Geheimnisse des Handy PalmTop

POWER-MANAGEMENT

Der Handy PT ist gewiß nicht für seinen sparsamen Umgang mit der Energie
bekannt. Tatsächlich verbraucht dieses Gerät derart schnell Batterien,
daß man gut daran tut, auf wiederaufladbare Akkus auszuweichen. Man
sollte deshalb die Möglichkeiten des integrierten
Power-Management-Konzepts kennen und sie dazu nützen, so viel Energie
wie möglich einzusparen: Beispielsweise kann die Batterielebensdauer um
30-40 % erhöht werden, wenn man bereit ist, etwas langsamere
Reaktionszeiten des Rechners in Kauf zu nehmen. Für die meisten
Arbeiten, die sich mit dem integrierten WORKS-System durchführen lassen,
macht es ohnehin kaum einen Unterschied, ob der Prozessor dabei mit 7.15
MHz oder den 4.77 MHz des originalen PC getaktet ist. Ebenso tut man gut
daran, den seriellen Port abzuschalten, wenn er gerade nicht zur
Datenübertragung benötigt wird. Und natürlich sollten Sie die
integrierte Abschaltautomatik so einstellen, daß einerseits die Arbeit
nicht unnötig unterbrochen wird, andererseits der Rechner möglichst
frühzeitig erkennt, daß eine Pause der produktiven Phase eingetreten
ist. Ein Wert von ein bis zwei Minuten hat sich hier bewährt. Insgesamt
läßt sich bei Beachtung dieser Tips die Batterielebensdauer um über 50 %
erhöhen.

Leider sind die meisten Schnittstellen zur Beeinflussung der
entsprechenden Möglichkeiten in den Tiefen des fatalen Racepen-Programms
vergraben, so daß zumindest die Abschaltung der seriellen Schnittstelle
aus Bequemlichkeit meist unterbleibt. Hier lohnt sich ein Blick auf die
Wirkungsweise des integrierten Power-Management-Systems: Das
Energie-Konzept des Handy PT beruht auf einem Zusammenspiel zwischen
spezifischer Hardware und dedizierter Software, die während des
Bootvorgangs aus dem ROM geladen wird: der Copyright-Hinweis auf das
MicroSoft-Power-System ist kaum übersehbar.

Interessanterweise findet sich bei den im ROM vorliegenden Programmen
nirgends eine Datei POWER.EXE, das entsprechende Modul ist demnach im
ROM-BIOS integriert. Außerdem war es (siehe Handbuch) offenbar
ursprünglich vorgesehen, das Power-Management abschaltbar zu machen. Es
ist schade, daß diese Möglichkeit in der deutschen Version weggefallen
ist. Diese Abschaltung könnte etwa dann interessant sein, wenn die
verwendete Awendungs-Software auf das folgende Problem stößt: Bei
längeren Bearbeitungszeiten (z.B. Suchen nach einer Information in einer
umfangreicheren Datei) hängt sich das System scheinbar auf. In
Wirklichkeit ist dem nicht so, lediglich das Power-Management hat falsch
reagiert und den Prozessor lahmgelegt. Sobald irgendeine Taste gedrückt
wird, geht es munter weiter. Hier gibt es eine einfache Lösung: Da es
zwar nicht unter DOS 5.0, wohl aber unter DOS 6.0 ein entsprechendes
Power-Management gibt, liegt es nahe, die entsprechende Datei POWER.EXE
einfach auf den Palmlop zu übertragen.

Dies funktioniert tatsächlich: Obwohl das Handy-System nicht unbedingt
kompatibel ist zu dem DOS 6.0 Power-Management, werden offenbar trotzdem
die richtigen Signale abgesandt. Zumindest werden die folgenden
Kommandos richtig interpretiert: power off schaltet das Power-Management
ab power adv: min stellt den ursprünglichen Zustand wieder her. Die
Ansteuerung der integrierten Hardware-Schnittstelle zum Power-Management
geschieht über die internen Ports EE und EF (hexadezimal, entsprechend
dezimal 238 und 239). Hierbei wurde eine ziemlich raffinierte
Verschlüsselung gewählt, welche die Möglichkeit versehentlicher
Ansteuerung minimieren soll: Der Port EE dient als Schlüssel: Wird
dieser Schlüssel mit der richtigen Kennung angesprochen, so kann über
Port EF die gewünschte Aktion veranlaßt werden, d.h. entweder
Zustandsinformation ausgelesen oder Ænderungswünsche abgesetzt werden.
Zur Erinnerung sei erwähnt, daß es sich eingebürgert hat, hier
Hexadezimalzahlen zu verwenden. Ein Beispiel: Wird die
Schlüsselinformation OE nach Port EE abgesetzt, dann weiß das System,
daß der Zustand der seriellen Schnittstelle verändert werden soll. Dies
geschieht aber nur dann, wenn zusätzlich die richtige Information nach
Port EF abgesandt wird. Im konkreten Fall sind dies die Werte 33
serieller Port wird eingeschaltet 77 serieller Port wird abgeschaltet.
Eigenartigerweise läßt sich der eingestellte Zustand nicht über dieselbe
Kennung abfragen. Dafür gibt es einen eigenen Schlüssel: Sobald der Wert
0C nach Port EE abgesetzt wird, kann Port EF eingelesen werden. Ist in
dem so gelesenen Byte das zweite Bit gesetzt (Zählung von 0 bis 7 !),
dann bedeutet dies, daß die serielle Schnittstelle ansprechbar ist,
sonst nicht. Es ist klar, daß es nicht nur zigtausend verschiedene
Kombinationsmöglichkeiten gibt, entsprechende Werte den beiden Ports
zuzuordnen, die ganze Mimik ist zudem nicht ganz problemlos: Wird etwa
die falsche Information nach Port EF geschrieben, so kann dies schon
dazu führen, daß das System lahmgelegt wird. In diesem Fall empfiehlt
sich ein rascher Griff zum Reset-Knopf.

Offenbar wird die EE/EF-Port-Kombination außer für das Power-Management
zusätzlich für weitere zentrale Systemfunktionen verwendet. Besonders
kritisch hat sich in diesem Zusammenhang der Schlüssel 01 erwiesen, der
u.a. für die Setzung der internen Taktfrequenz verwendet wird (s.u.).
Speziell in diesem Fall wird also vor weiterem Experimentieren
ausdrücklich gewarnt. Eine Zusammenstellung der für die Belange des
Power-Managements wichtigen Byte-Kombinationen finden sich in der
beigefügten Tabelle. Für denjenigen, der selber experimentieren möchte:
die Befehle INP und QUT des integrierten QBASIC-lnterpreters erlauben
eine problemlose Manipulation der Hardware-Ports. Es geht allerdings
auch einfacher: die beigefügten Utilities ermöglichen ein direktes
Ansprechen der verschiedenen Optionen des Power-Managements direkt vom
DOS-Prompt aus, so daß RacePen damit endgültig in der Versenkung
verschwinden kann: SETCPU - setzt bzw. zeigt die Taktfrequenz des
Prozessors, und zwar:

SETCPU HI -Taktfrequenz 7,15 MHz
SETCPU LO -Taktfrequenz 4,77 MHz
SETCPU SW -schaltet jeweils in die andere Taktfrequenz um
SETCPU (o. Param.) - Anzeige der aktuellen Taktfrequenz

SETCOM - setzt bzw. zeigt den Zustand der seriellen Schnittstelle, und
zwar:
SETCOM ON - RS232-Port wird eingeschaltet
SETCOM 0FF - RS232-Port wird abgeschaltet
SETCOM (o. Param.) - Anzeige des aktuellen Zustands

Zur optimalen Energieeinsparung empfiehlt es sich, die serielle
Schnittstelle stets abgeschaltet zu lassen und nur im Fall einer
Datenkommunikation gezielt ein- und anschließend wieder abzuschalten.
Dies geschieht optimal über ein kurzes Batch-Programm. Wenn die
Kommunikation beispielsweise über LapLink abläuft, könnte ein derartiges
Batch-Programm etwa den folgenden Inhalt aufweisen:

setcom on
LL3
setcom off

Die Utility SETOFF dient zur Steuerung der automatischen Abschaltung:

SETOFF - setzt den TimeOut-Wert für die automatische Abschaltung, und zwar
SETOFF 1 bis SETOFF 5 - TimeOut-Wert wird auf die entsprechende Anzahl
(1 bis 5) Minuten gesetzt.

Zusätzlich zu dieser in RacePen identisch vorhandenen Möglichkeit sind
hier weitere Optionen verfügbar:

SETOFF 6 - TimeOut-Wert 10 Minuten
SETOFF 7 - TimeOut-Wert 8 Sekunden (dies ist die kürzestmögliche Zeit!)
SETOFF 8 - TimeOut-Wert 16 Sekunden
SETOFF 9 - TimeOut-Wert 32 Sekunden (etwa eine halbe Minute)
SETOFF 0 - Hierdurch wird die TimeOut-Option vollständig abgeschaltet

Leider wurde bislang noch keine Möglichkeit gefunden, den gesetzten
TimeOut-Wert anschließend über die Ports EE/EF abzufragen (auf die bei
RacePen verwendete Methode, eigene Merk-Speicher mitzuführen, wurde
ausdrücklich verzichtet). Deshalb wird beim Aufruf von SETOFF ohne
Parameter nur die Syntax und die (hier etwas komplizierte) Zuordnung der
einzelnen Parameter ausgegeben.

Übrigens: der TimeOut-Wert wird beim Power-Management-System als
Vielfaches von 8 Sekunden vorgegeben. Deshalb sind die entsprechenden
Angaben in RacePen auf Basis einer "Minute" aus 64 Sekunden definiert,
was zu zunehmend größeren Zeitfehlern führt. Die hier beschriebene
Utility versucht, den Minutenwert so genau wie möglich zu erreichen (was
natürlich nur bei geradzahligen Minutenwerten exakt realisierbar ist).
Die Zusatzoption 7 (= 8 Sekunden) dient dabei in erster Linie zu
Testzwecken, die Option 9 (= 32 Sekunden) dagegen ist zur optimalen
Energieeinsparung eine interessante Alternative.

Als zusätzliches Schmankerl, wenn auch zunächst vielleicht nur von
akademischem Interesse, wird ein letztes Utility beigefügt:

BYE - schaltet den Handy PT ohne weiter Vorwarnung ab

Dieses Hilfsprogramm hat exakt dieselbe Funktion wie der Druck auf die
ON/OFF-Taste, läßt sich aber beispielsweise im Zusammenhang mit einem
Batchprogramm zur Steuerung automatisch ablaufender Vorgänge (etwa
Telekommunikation) softwaregesteuert einsetzen. Abschließend sei jeder
ermuntert, der sich auf dem interessanten Gebiet der
EE/EF-Schnittstellen versuchen möchte. Ich bin überzeugt, daß hier noch
viele nützliche Anwendungsmöglichkeiten zu entschlüsseln sind.

Port EE/EF-kombinationen zur Steuerung des Power-Managements
PortEE PortEF PortEF Funktion Ausgabe Eingabe Ausgabe
==========================================================================
01 xx -- Abfrage bzw. Setzung der CPU-Taktfrequenz: xx Bit 5 gesetzt:
7.15 MHz Bit 5 gelöscht: 4.77 MHz
==========================================================================
0C xx -- Abfrage der seriellen Schnittstelle: Bit 2 gesetzt: RS232-Port
eingeschaltet Bit 2 gelöscht: RS232-Port abgeschaltet
===========================================================================
0E -- xx Setzen der seriellen Schnittstelle: 33 Einschaltung des
RS232-Ports 77 Abschaltung des RS232-Ports
===========================================================================
12 -- xx Setzen des TimeOut-Werts in 8 sec-Einheiten (beliebige
Zeitspannen zwischen 8 sec und ca. 1/2 Std möglich) 3A -- xx
Systemabschaltung: 0F Sofortige Abschaltung des gesamten Systems 51
System geht einen Wartezustand (?)
============================================================================


KONFIGURATIONS-DATEIEN

Wohl die meisten Anwender mußten schon schmerzlich erkennen, daß der
Handy PalmTop die wichtigsten Konfigurationsdateien CONFIG.SYS und
AUTOEXEC.BAT unveränderbar im ROM mitbringt. Benutzerspezifische
Eingriffe scheinen deshalb hier nicht möglich zu sein. Tatsächlich ist
dem nicht so: Wie bereits im letzten Artikel gezeigt wurde, läßt sich
beim Boot-Vorgang eine eigene AUTOEXEC-Datei angeben, die automatisch
zwischengeschoben wird und so den Aufruf des leidigen RacePen-Programms
umgeht.

Leider wird dadurch das Problem nur unvollständig gelöst, da fast alle
interessanten Device-Module - insbesondere der wichtige STACKER-Modul
zur Online-Datenkompression - auf Installation im CONFIG.SYS bestehen.

Genauere Untersuchung förderte nun eine wichtige, aufregende Tatsache
zutage, die ebenso einfach wie genial ist und - vermutlich nur aus
diesem Grund - (wie so vieles) im Handbuch nirgends erwähnt ist: Während
des Boot-Vorgangs ist tatsächlich vorgesehen, daß eine zweite
benutzerspezifische CONFIG.SYS ausgeführt wird und zwar - wie in der
nachfolgenden Aufstellung gezeigt - zeitlich nachder eingebauten
CONFIG-Datei, aber immerhin noch vor der internen AUTOEXEC-Datei. Dabei
ist lediglich erforderlich, daß die eigene CONFIG.SYS (unter diesem
Namen!) im Stammverzeichnis der RAMDisk E: abgelegt wird (Disk A: ist in
diesem Fall - aus welchen Gründen auch immer - nicht zulässig!).
Insgesamt ergibt sich so die Abarbeitungsreihenfolge beim Bootvorgang
des Handy PT: 1. CONFIG.SYS (Disk C:\ - ROM-intern, unveränderlich) Hier
werden die wichtigen Treiber für die PCMCIA-Steckplätze A: und B: sowie
für die RAM Disk E: geladen. 2. CONFIG.SYS (Disk E:\ - optional) Mit
Hilfe dieser zweiten CONF IG-Datei ist es endlich möglich, Treiber für
zusätzliche Devices, insbesondere für das STACKER-Paket zu laden! 3.
AUTOEXEC.BAT (Disk C:\ - ROM-intern, unveränderlich) Laden des
Tastaturtreibers und (tatsächlich!) der Tastatur-Utility DOSKEY.
Anschließend wird geprüft, ob eine benutzerseitige AUTOEXEC-Datei
vorliegt. Nur dann, wenn dies nicht der Fall ist, wird RacePen
ausgeführt. 4. AUTOEXEC.BAT (Disk A:\ oder E:\ - optional) Wird hier
eine eigene AUTOEXEC-Datei abgelegt, so kann RacePen umgangen und das
System nach eigenen Vorstellungen konfiguriert werden. Wer nun bei der
Vorstellung erschauert, eine (oder gar beide) der für den
vorschriftsmäßigen Boot-Vorgang erforderlichen Dateien einer potentiell
labilen RAM-Disk anvertrauen zu müssen, hat völlig recht: Auch beim
Handy kann es vorkommen, daß unbotmäßige Software die Daten auf der RAM
Disk E: ins Nirwana schießt. Natürlich läßt sich das System deswegen
trotzdem noch hochfahren, aber jede benutzerspezifische Konfiguration
ist damit erst einmal futsch. Trotzdem sollten Sie sich dadurch nicht
davon abhalten lassen, beide Einschubkarten A: und B: über eine
entsprechende zwischengeschobene CONFIG-Datei zu stackern. Zur
Sicherheit empfiehlt es sich jedoch, die beschriebene Vorgehensweise
einzuhalten, um so das System maximal auszureizen und trotzdem das
Risiko eines Datenverlusts so klein wie möglich zu halten.

