---------------------------------------------------------------------
    HAND - Das Beispiel-Programm zum c't-Projekt "Vituality now!"
---------------------------------------------------------------------

Inhalt
------

1. Hand
2. Programmbeschreibung
3. Tastaturkommandos
4. Die Quelltexte
5. Fr Software-Entwickler
6. Diese Dateien gehren dazu
7. Mailbox-Support
8. Wer liefert was?
9. Wie geht es weiter...


1. Hand
-------

Das c't-Projekt "Virtuality now!" beschreibt das PowerGlove-Interface
"Polgi", das die Anbindung des preiswerten Datenhandschuhs Nintendo 
PowerGlove an die serielle Schnittstelle (V.24 oder RS-232) Ihres 
Rechners erlaubt (siehe Artikelreihe [1][2]). Der Datenhandschuh 
PowerGlove ist ein 3D-Eingabegert. Er liefert Informationen ber 
seine Position im Raum (X, Y, Z), seine Rotation um die Z-Achse, die 
Krmmung von vier Fingern und der Zustand der PowerGlove-Tastatur.

Zur Visualisierung dieser Daten wurde ein Beispielprogramm "Hand"
geschrieben: Neben der spielerischen Anwendung zeigt Hand die Funktion
der beispielhaften Ein-/Ausgabe-Routinen.


2. Programmbeschreibung
-----------------------

Hand ist die einfache Simulation eines Ballspiels. Der Ball kann mit 
der Hand (Finger geschlossen) gefangen und bewegt werden. 
Die geffnete Hand kann als "Schlger" benutzt werden. Eine Art
virtuelles Squash.

| hnlich der ersten Begegnung mit Maus oder Trackball ist zur   |
| Benutzung des PowerGloves als Eingabegert etwas bung ntig.  |
| Geben Sie also nicht gleich auf, wenn Sie den Ball nicht immer |
| sofort erwischen. Trainieren Sie im virtuellen Squash-Center!  |


3. Tastaturkommandos
--------------------

Mit der Tastatur auf dem PowerGlove lassen sich einige Parameter
des virtuellen Squash-Centers steuern:

      Taste   Bedeutung
------------+-------------------------------------------------
    [Start]   Ball in die Hand positionieren (der Ball wird 
              festgehalten, wenn die Finger geschlossen sind).
        [1]   Ausreier ausfiltern   an.
        [2]     "          "         aus (Voreinstellung).
        [3]   Einfache Spielvariante an  (Voreinstellung).
        [4]     "          "         aus.
        [5]   Sichtpunkt-Z verkleinern.
        [6]   Sichtpunkt-Z vergrern.
Pfeiltasten   Sichtpunkt X/Y verschieben.
        [9]   Rotation der Hand um Y.
        [A]   Abbruch des Programms.
        [B]   Rcksetzen aller Parameter.


4. Die Quelltexte
-----------------

Der Quellcode aller ntigen Module in "C" gehrt zum Projekt. 
Zunchst liegen Anpassungen an Rechner mit den Betriebsystemen TOS
(ATARI) und DOS (IBM-Clones) vor. Als Compiler wird Pure-C, Turbo-C
oder Borland-C bentigt. Die Grafikausgabe benutzt die Borland-
Bibliothek BGI. Eine Anpassung an X11 unter UN*X ist in Vorbereitung.

Die einzelnen Module der Pogli-Beispielapplikation bauen wie folgt 
aufeinander auf (notwendige Header-Dateien in Klammern):

      +---------------------+
      | aux_io.c (aux_io.h) |
      +-----------+---------+
                  |
                  v
  +-----------------------------+    +-------------------------+
  | pg_io.c (pg_io.h, aux_io.h) |    | deglitch.c (deglitch.h) |
  +---------------+-------------+    +----------+--------------+
                  |                             |
                  v                             v
                +----------------------------------+
                | bgi_hand.c (pg_io.h, deglitch.h) |
                +----------------------------------+

Modul       Beschreibung
----------+--------------------------------------------------------
aux_io      Alle Routinen, die der Ein-/Ausgabe mit der seriellen
            Schnittstelle des Wirtsrechners dienen. Hier mssen
            die Anpassungen fr verschiedene Rechner gemacht werden
            (TOS, DOS usw.).
pg_io       Dieses Modul stellt Routinen zur Kommunikation zwischen
            Pogli und Wirtsrechner zur Verfgung. Hier sollte nur
            gendert werden, wenn sich etwas am Mikrocontroller-
            Programm von Polgi ndert. Pg_io.c enthlt alle Routinen,
            die Software-Entwickler bentigen, um Pogli-untersttzende
            Applikationen zu schreiben (s.u.).
deglitch    Die Routinen zur "Beruhigung" der PowerGlove-Daten sind
            dem Software-Paket Render386 entnommen. Nicht ndern!
bgi_hand    Das Beispielprogramm. Ausgabe z.Zt. ber die Borland 
            BGI-Lib.

Hand ist ein in sehr kurzer Zeit erstelltes Programm, das nur
ansatzweise zeigt, was mit dem PowerGlove und Pogli mglich ist.


5. Fr Software-Entwickler
--------------------------

Die IO-Routinen zur Auswertung von Pogli wurden bereits in der c't-Artikel-
Reihe beschrieben. Inzwischen haben sich z.T. die Rckgabewerte gendert
(siehe Quelldateien). Neu hinzugekommen sind (wegen fehlender DOS-Routinen
zum Auslesen der seriellen Schnittstelle) die Funktionen pg_auxinit() und
pg_auxexit(). Die DOS-Version von pg_auxinit() installiert eine Interrupt-
Routine. Deshalb mu vor beenden des Programms unbedingt pg_auxexit() auf-
gerufen werden (z.B. ber atexit(), wie in bgi_hand.c).

Weiteres entnehmen Sie bitte den Quelltexten und der Artikelreihe [1][2].


6. Diese Dateien gehren dazu
-----------------------------

Hier eine Liste aller zugehrigen Dateien und deren Bedeutung:

hand.txt       Dieser Text.
aux_io.c       s.o.
aux_io.h       Zugehrige Header-Datei.
pg_io.c        s.o.
pg_io.h        Zugehrige Header-Datei.
deglitch.c     s.o.
deglitch.h     Zugehrige Header-Datei.
bgi_hand.c     s.o.
bgi_hand.h     Zugehrige Header-Datei.
dos_hand.prj   Projektdatei fr DOS (Turbo-/Borland-C).
dos_hand.exe   Ausfhrbares Programm (DOS).
egavga.bgi     Grafiktreiber, ntig fr VGA- und EGA-Karten (DOS).
tos_hand.prj   Projektdatei fr TOS (Turbo-/Pure-C).
tos_hand.prg   Ausfhrbares Programm (TOS).


7. Mailbox-Support
------------------

Die aktuellen Versionen der Module sind ber die Mailbox "Maus Berlin" 
(Tel. 030 - 72 70 56, Programmteil "POGLI") verfgbar.
Die eMail-Adresse des Autors im Mausnetz ist "PJ@B".

Weiterhin sind die aktuellen Dateien ber das Public Access Unix System
"Zelator" erhltlich. Diese Mailbox verfgt ber sieben Leitungen:
    030 - 462 60 22  (V.32, PEP)
    030 - 462 61 37  (V.32)
    030 - 462 62 37  (V.32)
    030 - 462 63 41  (V.32bis)
    030 - 462 64 35  (V.32bis)
    030 - 462 65 38  (V.32bis, SLIP)
    030 - 462 86 50  (HST)
Geben Sie nach dem Login als "gast" einfach den Befehl "pogli" ein.
Er fhrt direkt zum Up-/Download-Men mit allen Pogli-Dateien.
Auch hier ist der Autor per eMail erreichbar: "pj@zelator.in-berlin.de".

Verfgbar sind z.Zt. folgende Dateien:
 - Pogli Mikrocontroller-Quellcode mit Binaries.
 - Pogli I/O-Routinen.
 - Pogli Beispiel-Applikation "Hand".
 - 3D-DOS-Bibliothek Render386 (schnelles Cosinus-Shading).
 - NeXT-Bibliothek zur Anbindung des PowerGlove an den DSP.


8. Wer liefert was?
-------------------

Leiterplatte und fertig programmierter Mikrocontroller 87(C)51
werden von eMedia in Hannover angeboten:

Bestell-Nr.   Bezeichnung                       Preis
------------+----------------------------------+----------
    9209158   Pogli Leiterplatte.                DM  24,--
    9210250   Pogli Mikrocontroller 87(C)51      DM  59,--
              mit fertig programmiertem EPROM.

Alle Preise zuzglich DM 6,-- Versandkosten. Lieferung nur gegen
Vorkasse!

eMedia GmbH               Tel: 0511 - 53 72 95 (9-12.30h)
Bissendorfer Str. 8       Fax: 0511 - 53 52 129
Postfach 61061
W-3000 Hannover 61


Von OverScan in Berlin erhalten Sie den Datenhandschuh PowerGlove 
und Pogli fertig aufgebaut:

Bestell-Nr.   Bezeichnung                       Preis
------------+----------------------------------+----------
       7000   Datenhandschuh PowerGlove          DM 159,--
       7001   Pogli, das serielle Interface      DM 240,--
              zum PowerGlove, fertig aufgebaut
              im Gehuse. Incl. Source-Disk.
       7003   Pogli Leiterplatte.                DM  24,--
       7004   Pogli Mirkocontroller 87(C)51      DM  59,--
              mit fertig programmiertem EPROM.
       7005   Pogli Software Tools 1:            DM  10,--
              Gesammelte Quelltexte.
       7008   Programmierservice fr MCU         DM  15,--
              87(C)51 incl. EPROM-Lschen.

Alle Preise zuzglich Versandkosten. Lieferung per Nachnahme
oder gegen Vorkasse.

OverScan GbR              Tel: 030 - 721 94 66
Sntisstr. 166            Fax: 030 - 721 56 92
W-1000 Berlin 48          Mailbox: siehe oben.
                          eMail: pj@zelator.in-berlin.de


9. Wie geht es weiter?
----------------------

Verbesserungsvorschlge und weitere Rechneranpassungen werden gerne 
entgegegenommen.

Erweiterungen sind bei den Autoren bereits in Arbeit: 
 - 3D-Darstellung von "Hand" mittels Rot-Grn-Brille.
 - "Hand" unter Unix (X11).
 - Anpassung von Pogli an Render386-Library (DOS).
 - Sega-Brillen Interface (LC-Shutter).


Berlin, 26.10.92
Patrick Jerchel


[1] Manfred Krauss, Virtuality now!, 
    Rechner-Interface fr den Nintendo PowerGlove, 
    Teil 1, c't 9/92, S. 158
[2] Patrick Jerchel, Virtuality now!, 
    Rechner-Interface fr den Nintendo PowerGlove, 
    Teil 2, c't 10/92, S. 250,
    Teil 3, c't 11/92, S. 274,
    Teil 4, c't 12/92
