PPPWart 1.02

 2000, Herbert zur Nedden


Thanksware: Schick mir eine Mail, wenn es luft...


Zweck:
------

Netzwerkkarten fr RISC OS-Rechner sind unangenehm teuer. Mit diesem
Programm kann man von einem Windows-Rechner aus via Nullmodemkabel eine
serielle Netzwerkverbindung aufbauen - mittels PPP und dem Acorn
Internetstack. PPPWart ist ein als Kommandozeilenprogramm realisiert
und kann damit in Obey-Dateien aufgerufen werden. Natrlich wird ein
einfaches Wimp-Frontend mitgeliefert.


Lizenz:
-------

Thanksware, d.h. jeder, der es nutzt, ist aufgefordert, mir eine
Dankesemail an mailto:BinDabei@HQ.gag.de zu senden. Fragen/Anregungen
usw. bitte an mailto:HzN@HQ.gag.de.

Das PPPWart-Paket darf nur unverndert und vollstndig weitergegeben
werden.


Voraussetzungen:
----------------

Acorn TCP/IP-Stack samt PPP-Modul und Acorns Resolver-Modul (u.a. auf
der Acorn User 200-CD zu finden).  Blocktreiber (Applikation
!SerialDev) und Modul Serial Buffer von David Pilling.

Natrlich braucht man noch das Nullmodemkabel. Hier sollte ein handels-
bliches geeignet sein, wobei es Sinn machen kann, es nachzumessen, da
nicht auszuschlieen ist, da es solche mit unvollstndiger Verdrahtung
gibt.

 RxD 2 -------------- 3 TxD
 TxD 3 -------------- 2 TxD

                  +-- 1 DCD
 DTR 4 -----------+-- 6 DSR
 DSR 6 --+----------- 4 DTR
 DCD 1 --+

 GND 5 -------------- 5 GND

 RTS 7 -------------- 8 CTS
 CTS 8 -------------- 7 RTS

  RI 9                9 RI

Diese Darstellung ist sicherlich recht befremdlich ... daher ist noch
eine Drawdatei mit einer etwas augenfreundlicheren Darstellung anbei.


Front- und Backend:
-------------------

Dieses Paket besteht aus zwei Teilen: Dem Backend PPPWart, welches die
Arbeit tut und dem Frontend !PPPWart, welches auf The Menu basiert. Mit
letzterem kann man verschiedene Sternchenkommandos absetzen und somit
auch PPPWart aufrufen.


Aufruf des Backends:
--------------------

PPPWart selbst wird mit zwei Parametern aufgerufen: Den Optionen und
der Parameterdatei.

Optionen:
L Mitloggen der Aktivitten auf dem Bildschirm. Da dies durch einfache
  Ausgabe erfolgt, landen die Informationen je nach Aufruf im Task-
  fenster bzw. Commandfenster.
D Hiermit wird die Verbindung getrennt. Wird keine Parameterdatei mit
  angegeben, so wird die Parameterdatei verwendet, mit der PPPWart
  zuletzt aufgerufen wurde (sofern nicht zwischenzeitlich gebootet wurde
  und die Systemvariable, in der dieser Dateiname gesichert wird,
  gelscht ist).
Q Dient zum Abfragen des Status der PPP-Verbindung; es wird die Ausgabe
  des Sternchenkommandos *PPPLog ausgewertet.

Parameterdatei: In dieser Datei stehen zeilenweise die fr den
Verbindungsaufbau erforderlichen Informationen
(Zeilen, die mit einem Semikolon beginnen, sind Kommentare):

Blocktreibername              (z.B. InternalPC fr die interne
                               Schnittstelle bei Verwendung eines
                               Standard-PC-Kabels)
Port des Blocktreibers        (beim internen ist dies immer die Null: 0)
Baudrate                      (z.B. 152000)
Modemwhlkommando             (Das ist der Befehl samt Telefonnummer, auf
                               die PPPWart mit "CONNECT" reagiert und das
                               PPP startet)
Eigene IP-Adresse             (Die IP-Adresse, die das PPP-Interface des
                               eigenen Rechners erhalten soll).
Entfernte IP-Adresse          (Die IP-Adresse, die das PPP-Interface des
                               sich einwhlenden Rechners erhalten soll).
Parameter fr *PPPConnect     (nheres s.u.)
CLI-Kommando, das bei Verbindungsaufbau zu rufen ist
CLI-Kommando, das bei Verbindungsabbau zu rufen ist
CLI-Kommando fr den Fehlerfall (z.B. *Error)

Beispiel-Parameterdatei:
InternalPC
0
152000
ATDT123
10.10.11.01
10.10.11.04
idle-disconnect 0 noipdefault defaultroute crtscts modem mru 1524
<PPPWart$Dir>.Start
<PPPWart$Dir>.Stop
*Error


Windows-Konfiguration:
----------------------

Auf dem Windows-PC ist erst einmal ein Modem vom Typ "Standardmodem
33600 bps" o.. zu konfigurieren und dessen Baudrate auf 115200 zu
setzen (bzw. auf den Wert, der in der o.g. Parameterdatei steht).

Als weiteres ist ein DF-Netzwerk anzulegen, welches das eben ein-
gerichtete Modem verwendet und als Telefonummer die hinter dem
"ATDT" in der Parameterdatei genannte anwhlt.

In den Eigenschaften dieser DF-Verbindung sind dann folgende
Parameter zu sezten:
- Servertyp PPP: Internet, Windows NT Server, Windows 98 o..
- Erweiterte Optionen: alle aus
- Zulssige Netzwerkprotokolle: nur TCP/IP
- TCP/IP-Einstellungen:
  - Vom Server zugewiesene IP-Adresse
  - Vom Server zugewiesene Namenserveradressen
  - IP-Header Komprimierung an
  - Standard-Gateway im Remotenetzwerk verwenden je nach
    Wunsch/Bedarf...
- Benutzer und Kennwort fr die Einwahl werden in !PPPWart.User
  hinterlegt (nheres siehe das Beispiel weiter unten).


Ablauf:
-------

Soll eine Verbindung aufgebaut werden, so geht PPPWart wie folgt vor:
0. Merken der angegebenen Parameterdatei in der Systemvariablen
   PPPWart$File.
1. Initialisieren der Blocktreiber anhand der drei ersten Parameter aus
   der Parameterdatei (Blocktreiber, Port, Baudrate)
2. Warten, was so ankommt

3. Nun wird die DF-Verbindung von Windows aus gestartet.

4. PPPWart beantwortet die AT-Kommandos, die es erhlt i.a. mit "OK".

5. Kommt die Einwahl via ATDTnnnn so, wie in der Parameterdatei angegeben,
   dann antwortet PPPWart mit "CONNECT" und
6. Aufruf des Sternchenkommandos *PPPConnect mit zum einen den
   Schnittstellen-Parametern (Blocktreiber, Port, Baudrate), den
   Parametern fr den *PPPConnect lt. Parameterdatei sowie der eigenen
   und der entfernten IP-Adresse.
7. Prfen, ob der Verbindungsaufbau geklappt hat durch Beobachten der
   Ausgabe von *PPPLog (diese Prfung soll auch mit dem SWI PPP_Status
   mglich sein, aber dessen Dokumentation ist nicht erhltlich).
8. Starten des Kommandos fr den Verbindungsaufbau lt. Parameterdatei.

Hat es an irgendeiner dieser Stellen einen Fehler gegeben, so wird ggf.
die Verbindung getrennt und das Kommando fr den Fehlerfall mit einer
Fehlermeldung aufgerufen.

Soll die Verbindung getrennt werden, so geht PPPWart wie folgt vor:
0. Falls keine Parameterdatei angegeben wurde, auslesen der
   Systemvariablen PPPWart$File.
1. Prfen, ob eine PPP-Verbindung steht (durch Auswertung der Ausgabe
   von *PPPLog).
2. Steht die PPP-Verbindung, so wird diese per Sterchenkommando
   *PPPDisconnect getrennt.
3. Dann wartet PPPWart fr einen Moment auf das ATH und das ATZ vom
   Windows-Rechner, mit dem dieses das Modem abklemmt.

Soll die Verbindung abgefragt werden, so geht PPPWart wie folgt vor:
0. Falls keine Parameterdatei angegeben wurde, auslesen der
   Systemvariablen PPPWahl$File.
1. Prfen, ob eine PPP-Verbindung steht (durch Auswertung der Ausgabe
   von *PPPLog).
3. Ausgeben der Information.


Das Frontend:
-------------

Da das Frontend !PPPWart auf The Menu (ist brigens auch von mir)
basiert, bitte ich die beigefgte Beschreibung von The Menu bei Bedarf
zu Rate zu ziehen. Hier werde ich nur auf die fr den Einsatz von
PPPWart relevanten Punkte eingehen:

In !PPPWart ist eine Datei namens TheMenu. In dieser stehen die
Steuerdaten fr The Menu:

In der ersten Zeile steht lediglich der Titel fr das Men, welches
beim Aufruf von !PPPWart angezeigt wird. Dieser Titel ist
naheliegenderweise PPPWart.

In der zweiten Zeile steht der Text fr den ersten Meneintrag, ein
Tabulator, ein T, ein weiterer Tabulator und dann das
Sternchenkommando, welches bei Auswahl dieses Meneintrags aufzurufen
ist. In den weiteren Zeilen folgen die weiteren Meneintrge mit
demselben Aufbau.


Beispiel fr Windows-PC
-----------------------

Das folgende Beispiel ist brigens kein Dummy, sondern hat genau so
in meiner Konfiguration funktioniert - lediglich die Parameter fr den
Blocktreiber sind ggf. anzupassen.

Die Parameterdatei fr Windows steht mit dem Namen Windows innerhalb
von !PPPWart (sie kann natrlich auch anderswo stehen) und hat folgenden
Inhalt:

InternalPC
0
115200
ATDT1234567
10.10.11.01
10.10.11.04
idle-disconnect 0 noipdefault defaultroute crtscts modem mru 1524 +ua <PPPWart$Dir>.User
*Echo Online
*Echo Offline
Error


Dann brauchen wir noch eine Datei namens User in !PPPWart. In der ersten
Zeile steht der Username und in der zweiten das Kennwort die der Windows
PC bei der Einwahl verwendet.


Nun knnen wir auch den Inhalt der Datei TheMenu aufbauen; den
Tabulator habe ich hier durch einen Unterstrich gekennzeichnet:

PPPWart
Adele  _T_Run <PPPWart$Dir>.PPPWart DL *
Windows_T_Run <PPPWart$Dir>.PPPWart L <PPPWart$Dir>.Windows
Log    _T_PPPLog

Wie man sieht, ist beim Logoff-Eintrag die Parameterdatei nicht genannt,
damit die zuletzt per PPPWart aufgebaute Verbindung getrennt wird. PPPWart
hat nmlich keine Probleme, auch mehrere verbindungen zu bedienen - es
mssen lediglich entsprechend viele Parameterdateien bereitgestellt werden.


Tips:
-----

Wenn man nun z.B. Samba unter RISC OS startet, kann man von Windows aus
auf Laufwerke vom RISC OS-Rechner zugreifen. Umgekehrt geht es entsprechend
mit z.B. OmniClient.


Historie/History:
-----------------

siehe Datei "!Help"
     

Ich:
---

Last but not least ...

Herbert zur Nedden
Alte Landstrae 21
22962 Siek
Deutschland (alias Germany)
mailto:HzN@HQ.gag.de
http://www.gag.de

Herausgeber der RISC OS-Zeitschrift GAG-News und Leiter der German
Archimedes Group (kurz GAG)

Homepage von PPPWart: http://www.gag.de/software/PPPWart

Homepage von TheMenu: http://www.gag.de/software/TheMenu

