Hallo liebe Besitzer eines Scisys/Saitek-Bretts mit OSA-Schnittstelle,

die beiden Programme OSA2UCI und OSA-Board sind Motoren (Engines) für das bekannte und beliebte Programm "Arena".
Man kann die OSA-Boards nun entweder als Motor einbinden (OSA2UCI) und gegen andere Motoren automatisch spielen lassen
oder selbst am Brett (OSA-Board) gegen eine andere Engine von Arena antreten.

OSA-Book, OSA-Save und OSA-Load laufen nicht mit Arena und dienen zum Laden von eigenen Eröffnungsbüchern in den Speicher des Boards
bzw. zum Speichern und Laden von Spielen.

Die Arena-Programme in ein Unterverzeichnis (z.B. OSA) der Arena-Engines kopieren und in der Motorenverwaltung von Arena einbinden.
Die Programme nutzen automatisch die COM1: Schnittstelle des PCs, ein Schnittstellenkabel (mit Elektronik) vom OSA-Brett zum PC wird benötigt.

Eine andere Schnittstelle kann als Programmparameter in der Verwaltung eingegeben werden, auch die Baud-Rate läßt sich ändern.
Eine kurze Anleitung gibt es, wenn die Programme im Konsolen-Fenster mit /? oder /h gestartet werden.

Optionale Parameter: COM-Port Baudrate (durch Leerzeichen getrennt).
Syntax: COMx:	Zahl
Baudrate ist immer 2ter Parameter, kann weggelassen werden (dann 1200).

z.B. (auch für OSA-Board)
OSA2UCI COM2: 9600
OSA2UCI COM3:

Spielstufen und andere Einstellungen können vorher am Board einstellt werden. Vor Programmstart die richtige Baud-Rate am Board wählen (wenn nicht 1200=Default). Ich empfehle die Standardbaudrate zu belassen, höhere COM-Geschwindigkeit wirkt sich bei den Rechenzeiten praktisch nicht aus.

Man kann OSA2UCI auch 2 mal als Motor einbinden und jedem andere COMs zuweisen. Dann können 2 Bretter gegeneinander spielen, natürlich kann das Brett/Modul auch gegen jede andere Arena-Engine spielen. Das Brett ist bei OSA2UCI immer deaktiviert, alles geschieht am PC.

Im Motoren-Fehlersuche-Fenster von Arena kann man die Kommunikation verfolgen. Dort kann auch manuell folgende Zusatzkommandos eingeben:
board - Gibt die aktuelle Brett-Stellung im Saitek-Format aus.
setlevel [level] - Wie beim Saitek selbst definiert, setzt einen Spiellevel oder gibt den aktuellen zurück (z.B. setlevel a3).
Tip: Es ist komfortabel verschiedene Konfigurationen des Programms mit vorgegebenene Spielstufen (setlevel als Initstring in der Motorenverwaltung) anzulegen.

---------------------------

OSA-Board wird genauso als Motor in Arena eingebunden, aber der Saitek rechnet hier nicht selber: der Motor bist DU!

Das Brett ist eingeschaltet und man führt einen Zug aus, dieser wird als "Rechenergebnis" an Arena gesendet.
Dann kommt ein Zug von einer anderen Engine, das Programm ist also dazu da, um mit dem Saitek-Brett gegen beliebige Arena-Engines zu spielen, ohne die Züge am Bildschirm eingeben zu müssen.

Der Saitek kann hier nicht selber rechnen! Hat man zwei, kann man aber den Anderen mit OSA2UCI als Gegner einbinden.

Wird OSA-Board als Schwarz eingebunden, so wird als Default von oben gespielt. Um das Brett zu drehen kann das Kommando "flip" als Initstring in der Motorenverwaltung genutzt werden.

Bedienung OSA-Board:
Nach Start von Areana (z.B. Demo von 2 Engines) steht das Board auf Empfang (wenn nicht schwarz, dann kommt erst der Gegnerzug).
Nach Ausführung eines Zuges erscheint er sofort in Arena und die andere Engine beginnt zu rechnen.

Nach dem Bildschirmzug des Gegners dauert es etwas und dann leuchtet das Quellfeld der Gegenerfigur (LED Zeile/Spalte).
Nach Anheben der Figur leuchtet das Zielfeld auf. Also so, als wenn man gegen den Saitek selbst spielt...

Besonderheiten (liegt am Board, habe ich keinen Einfluss drauf):
Bei der Rochade leuchtet erst der Turm oder König. Nimmt man ihn hoch, so leuchtet die andere Figur (König oder Turm).
Auch sie wird angehoben und beide werden auf die Zielfelder gesetzt.
Bei Schlagzügen leuchtet zunächst das Quellfeld der Figur, nach Anheben leutet das Zielfeld NICHT.
Man weiß nun, daß es sich um einen Schlagzug handelt und muß erst (blind) die zu schlagende Figur entfernen (i.d.R. selbsterklärend/logisch).
Ist diese entfernt, so leutet das Zielfeld auf und man setzt die schlagende Figur ab.
OK-Züge/Felder leuchten Orange, bei Fehlern leuten die LEDs rot und man kann den Zug korrigieren.

Alle Fehlerfälle werden noch nicht behandelt und es kann bei falschen Eingaben zu Fehlzügen kommen.

---------------------------

OSA-Book wird wie die anderen Programme aufgerufen, aber es muß ein Dateiname als Parameter an erster Stelle mitgegeben werden, die anderen Parameter sind optional.
z.B. OSA-Book meinbuch.txt COM2: 9600

Die Laufzeit kann mehrere Minuten betragen, da jeder Zug einzeln gesendet wird und die Boards eine Mindestpause von 750 ms zwischen den Zügen benötigen.
Achtung: Alle im Brett vorhandenen Eröffnungen oder Spielstände werden gelöscht und überschrieben.
Wegen der Ladezeiten empfiehlt sich eine Batterie im Board, sonst gehen alle Daten nach Netztrennung verloren.
Es können bis zu 383 Eröffnungslinien gespeichert werden, die Anzahl aller Einzelzüge darf 4000 nicht übersteigen.
Das Laden von OSA-Book.txt (Beispiel mit vollen 383 Linien) dauert ca. 45 Min. auf einem Leo mit Analyst-Modul (ohne Modul ist es schneller).

In der im Programmaufruf genannten Datei befinden sich die Eröffnungslinien. Es handelt sich um eine einfache ASCII-Datei (z.B. mit Notepad unter Windows erstellt).
Pro Zeile wird eine Eröffnungsline eingetragen, Format: e2e4 e7e5 g1f3 b8c6 usw.
Leerzeichen zwischen den Zügen sind optional, auch Leerzeilen sind erlaubt, ebenso Kommentarzeilen.
Alle Zeilen, die nicht mit einem gültigen Zug-Buchstaben (a-h) anfangen, werden als Kommentar behandelt und ignoriert.
Einige Beispiel-Bücher liegen bei.
Als letzte Zeile kann man "delete" eintragen, dann werden alle nachfolgenden, ungenutzen Speicherbänke im Board gelöscht.
Das ist sinnvoll, wenn man den Speicher mit Batterie oder Dauerstrom puffert und die dort möglicherweise vorhandenen Eröffnungslinien
nicht mehr benötigt.

---------------------------

OSA-Save und OSA-Load werden wie OSA-Book aufgerufen.
OSA-Save speichert das aktuelle Spiel im Board in eine PGN-Datei, vorhandene Dateien mit gleichem Dateinamen werden überschrieben!
Es handelt sich um ein modifiziertes PGN, was von OSA-Load wieder gelesen werden kann. Natürlich wird die PGN-Datei auch von Arena akzeptiert,
bei anderen PGN-Programmen könnte es aber zu Problemen kommen.
OSA-Load liest eine OSA-konforme PGN-Datei ein und man kann die Partie im Analysemodus (Newgame, Analysis, +) nachspielen
oder fortsetzen, wenn sie noch nicht zu ende ist.

---------------------------

osa.ini
Alle Programe unterstützen nun eine osa.ini Datei im Programmverzeichnis.
Dort können Parameter wie COM-Port und Baudrate eingestellt werden, sie brauchen dann nicht mehr in der Kommandozeile mitgegeben werden.
Kommandozeilenparameter haben aber höhere Priorität, werden also genommen und überschreiben osa.ini Einstellungen.
Eine Beispeidatei liegt bei (demo_osa.ini), bei Bedarf in osa.ini umbenennen. Die auch beiliegende osa.ini hat nur die Default-Einstellungen.

Werden OSA-Book, OSA-Save oder OSA-Load ohne Parameter aufgerufen, so erscheint ein Datei-Fenster zur Auswahl der zu ladenden oder zu speichernden Datei.
Die weiteren Parameter werden aus der osa.ini gelesen.


Es handelt sich bei den Programmen um Beta-Versionen, Fehler können also vorkommen und ich bitte um Rückmeldung.
Auch Wünsche nehme ich gern entgegen: achim@pietig.com

Gruß
Achim
