Anleitung zum Programm !cfgserial
---------------------------------

Das Programm !cfgserial konfiguriert den seriellen Port eines Acorn-Rechners
automatisch. Es beschrngt sich dabei auf die Einstellung der reinen
Schnittstellenparameter, wie Geschwindigkeit und Handshaking Protokoll.
Natrlich sind die Mglichkeiten des Programms nicht unbegrenzt. Aus
historischen Grnden gibt es kein Protokoll, mit dem sich definitiv erkennen
lt, was fr ein Gert mit welcher Geschwindigkeit gerade angeschlossen
ist. Im Laufe der Zeit haben sich jedoch gerade bei Modems eine Reihe von
Quasi-Standards herauskristallisiert.

!cfgserial ist in BBC-BASIC V geschrieben, damit der Code vom Benutzer
ergnzt werden kann, wenn er einmal ein Gert hat, was nicht von !cfgserial
erkannt wird.

Prinzipiell lassen sich nur alle Mglichkeiten der Schnittstellenbelegung
automatisch durchtesten, wobei der Rechner jedesmal nach einer Antwort auf
dem seriellen Port suchen mu. Dies kann sehr lange dauern, da die
Geschwindigkeiten der angeschlossenen Gerte z.T. sehr begrenzt sind. Um
dies zu vermeiden, merkt sich der Rechner jedesmal die zuletzt gefundene
Konfiguration und probiert sie beim Programmaufruf als erstes aus. Findet
die erwartete Antwort, ist die Einstellung noch in Ordnung und das Pro-
gramm bricht ab.

ACHTUNG: Sind die Steuersequenzen in !cfgserial nicht eindeutig genug
gewhlt, um eine eindeutige Antwort zu erzeugen, so kann es passieren, da
die Mglichkeiten hnlicher Gerte (z.B. Modems mit hherer Baudzahl) nicht
eindeutig erkannt werden, weil die alten Werte ja noch funktionieren. In
diesem Fall ist das Gert auszuschalten und !cfgserial erneut zu starten.
Der Test luft dann ins Leere.

Wird das erwartete Ergebniss nicht gefunden, so wird in die Konfiguration
geschaltet. Zuerst erscheint dabei eine Abfrage fr den Benutzer, ob die
Konfiguration nun auch wirk- lich automatisch durchgefhrt werden soll. Es
kann dabei die Nummer eines Gertes angegeben werden, bei dem mit dem Testen
begonnen werden soll. ACHTUNG: Gerte mit einer kleineren Nummer werden
nicht durchprobiert! Das eigene Gert mu fr die Konfiguration nicht
zwangs- lufig in der Liste stehen, bei den angegebenen Gerten handelt es
sich meist um Muster, die einen groen Bereich abdecken. Will man ganz
sicher gehen, mu man mit dem ersten Gert beginnen und in einer Stunde mal
wieder nach dem rechten sehen.

Die ermittelten Ergebnisse legt !cfgserial brigens in der Datei "config" im
<cfgserial$Dir>- Verzeichniss ab. Es handelt sich dabei um eine
Commando-Datei, die mit shift-doppel-click in jedem Texteditor begutachtet
werden kann.

Das Programm luft brigens im Multitasking-Betrieb. Ein Fenster wird erst
geffnet, wenn die aktuelle Konfiguration nicht mehr stimmt. Da die
Ansteuerung des seriellen Ports beim Acorn nicht einfach ist, und man
stndig auf die Pufferverwaltung des Betriebssystems zurckgreifen mu, kann
es zwischen verschiedenen Programmen, die alle ihr eigenes Port-Handling
besitzen,  zu gewaltigen Problemen kommen. !cfgserial benutzt nur die
RiscOs-Routinen zum Abfragen, ob noch Zeichen in den Puffer sind. Ansonsten
luft alles ber die Datei "serial:".

Kleine Schwchen
----------------
!!!!!! WARNUNG !!!!!!
Einige Modems, wie z.B. Fury 19.2 von Dr. Neuhaus etc. halten ihre
Programmierung netterweise in EEPROMs. Was einerseits den Vorteil bietet,
jederzeit ein Software Upgrade der Firmware durchfhren zu knnen, hat
andererseits den fatalen Nachteil, da der Inhalt der EEPROMs durch eine
zufllige unkontrollierte Sequenz zerstrt werden kann. Das Modem luft dann
nicht mehr. Im schlimmsten Fall wird sogar die Download-Routine massakriert
und das Gert ist reif fr den Service ... Acorn-Besitzer ohne PC-Karte
drften sowieso ein kleines Problem mit solchen Downloads haben, die z.T.
leider zwingend notwendig sind, da z.B. oben genanntes Gert sich in einer
frhen Version nicht mit einem Fury 14.4 aus gleichem Hause betreiben
lies...

Was hat dies nun alles mit !cfgserial zu tun? Beim Durchtesten der einzelnen
Codes und Baudraten treten vllig willkrliche Sequenzen auf dem Bus auf.
Ich bernehme ausdrcklich keine Garantie dafr, da keine solche
Killersequenz auftritt und das Modem anschlieend ein Servicefall ist. Auch
fr den Fall, da ein Modem nicht mit 115000 Baud zurecht kommt und mit
starker Geruchsentwicklung regiert, weil ein Hersteller wieder einmal
billige ICs verwendet hat, fhle ich mich ausdrcklich nicht zustndig.

Die Chance, da ihr Gert durch !cfgserial irgendetwas abbekommt, ist jedoch
mehr theoretischer Natur. Ich habe das Programm auch mit lteren Gerten,
darunter einem aus dem Jahre 1974 ohne Probleme getestet.

Einige Gerte (vornehmlich Modems) sind intelligent und stellen sich auf das
Format des Acorn (teilweise) ein. Um auch harte Flle richtig zu
konfigurieren, steht no parity, 2 stopbits aber vor 1 stopbit und paritys.
Leider stellen sich die Modems dann auch auf diesen Eintrag ein, obwohl 1
stopbit 10% mehr Performance und parity mit stopbit eine hhere Sicherheit
bringen wrde. Man kann in solchen Fllen in die Datenformats-Definition
schauen und den besseren Wert hndisch in der Datei <cfgserial$Dir>.config
bei der Variable "cfgserial$dformat" ndern. !cfgserial mu allerdings
nocheinmal gestartet werden, um die nderungen einzuschalten.

Die Sequenz des MAI wird von einem Modem geechot und ein Wechsel von MAI auf
Modem nicht erkannt. Aber wer hat noch ein Terminal aus dem Jahre 1974 ...

Das RTS/CTS-Handshaking ist ein unerschpfliches Thema. Einige Gerte
stellen eine Zeitspanne zur Verfgung in der CTS=RTS wird. Ist diese 0 gibt
es mit !cfgserial keine Probleme, jedes rechnerinterne Handshaking wird
jedoch effizient abgewrgt, da der Rechner dann keine Daten mehr senden
drfte, und evt. eine Blockbesttigung nicht mehr durchkommt. Whlt man die
Zeitspanne zu lange, fllt ein illustres Verhalten von !cfgserial auf:
Der Port wird korrekt konfiguriert, aber das Setzen des Ports wird als
verkehrt erkannt und eine Neukonfiguration eingeleitet...

Es luft nicht
--------------
1. Gert eingeschaltet? --> einschalten und nochmal
2. Kein passendes Schema in der Gertetabelle --> Pech. Handbuch studieren.
   Gertetabelle pflegen
3. Kabel falsch verdrahtet --> Nullmodem zwischenschalten
4. Manche Gerte (vorzugsweise Modems) sind konfigurierbar.
   Es kann sein, da das Gert deshalb vllig andere Steuersequenzen
   erwartet, als in diesem Programm abgelegt sind.
5. "serial:"-kann nicht geffnet werden --> <Ctrl>F12 shut

Historie
--------
V 0.?? - interne Prereleases
V 1.0  - erste offizielle Version
V 1.01 - Leichte Hilfeergnzungen. Ausserdem wurde Baud in bps gendert

Copyright
---------
(c) 1996 by Milius Software Stade

Das Programm ist Public Domain und darf kostenlos kopiert bzw. angewendet
werden.

Der Code darf abgendert bzw. ergnzt werden, sofern die nderungen vermerkt
werden und das Programm seinen Public-Domain Status behlt. Natrlich darf
das Programm auch mit kommerziellen Paketen vertrieben werden, wobei es
grundstzlich erlaubt sein mu, das Programm aus diesem Paket heraus zu
lsen und es alleine weiter zu kopieren.

Die nderungen sollten im Programm dokumentiert werden.

Fr die korrekte Funktion des Programms wird keine Haftung bernommen. Die
Anwendung des Programms erfolgt auf eigene Gefahr.
