Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Die ganze Welt der Schachcomputer / World of chess computers (https://www.schachcomputer.info/forum/forumdisplay.php?f=2)
-   -   Frage: Saitek Simultano - eine Rechenaufgabe (https://www.schachcomputer.info/forum/showthread.php?t=5560)

DarkStar 13.11.2017 18:35

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Solwac,

Zitieren:

Zitat von Solwac (Beitrag 70381)
Was ist für Dich die kompakteste Lösung?
Ich kenne die Speicherung der Zugnummer durch einen Zuggenerator, der das Feld abscannt und deshalb immer dieselbe Reihenfolge liefert (bei Figurenlisten schon nicht mehr gegeben bzw. es braucht eine für das normale Spiel nicht hilfreiche Sortierung).

Das ist schon die richtige Lösung. Figurenlisten beeinflussen das nicht. Auch ist eine Sortierung nicht störend. Das ist schon alles deterministisch.

Zitieren:

Zitat von Solwac (Beitrag 70381)
Die Zugnummer kann aber 128 überschreiten, d.h. es sind keine Bits mehr übrig für die Markierung von Variantenenden oder aktiv/passiv bekannte Züge.

Das hat Rasmus ja schon korrekt beantwortet. Wir reden hier über Eröffungsbibliotheken. Da kann ich mir Zuglisten mit mehr als 128 Zügen in einer Stellung nicht vorstellen. Oder hast du ein Beispiel?
Selbst wenn ... dann wäre die Stellung halt nicht aufgenommen worden

Stay tuned ...
Carsten

Solwac 14.11.2017 08:43

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von Rasmus (Beitrag 70384)
Bei den 8-bittern wurde ja oft auch die Zahl der Halbzüge mit einem uint8_t dargestellt, obwohl Schachpartien durchaus mehr als 128 Züge haben können. Solche Näherungen waren für damalige Geräte aber akzeptabel.

Ich kenne da zwei Variablen: Eine für die letzten bis zu 256 Halbzüge (mehr kann dann nicht zurück genommen werden) und eine für die Zugnummer um die in einer Zugliste richtig anzuzeigen. Letzteres bedeutet natürlich, dass zwar bis zu 512 Halbzüge korrekt gezählt werden, dennoch aber (wegen des begrenzten Speichers) nur eingeschränkt Züge zurück genommen werden können.

Für Eröffnungsbliotheken siehe nächsten Beitrag.

Solwac 14.11.2017 08:51

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70386)
Das ist schon die richtige Lösung. Figurenlisten beeinflussen das nicht. Auch ist eine Sortierung nicht störend. Das ist schon alles deterministisch.

Ne, bei Figurenlisten ist die Sortierung nötig, selbst wenn sie bei der normalen Suche aus Geschwindigkeitsgründen nicht verwendet wird. ;)

Zitieren:

Zitat von DarkStar (Beitrag 70386)
Das hat Rasmus ja schon korrekt beantwortet. Wir reden hier über Eröffungsbibliotheken. Da kann ich mir Zuglisten mit mehr als 128 Zügen in einer Stellung nicht vorstellen. Oder hast du ein Beispiel?
Selbst wenn ... dann wäre die Stellung halt nicht aufgenommen worden

OK, letzteres wäre eine Idee. Dann hätte man zumindest ein Bit für ein Flag (Variantenende). Eine solche Bibliothek hätte dann zwar keine Unterscheidung zwischen aktiv und passiven Zügen, wäre aber ultrakompakt.

Etwas mehr Information könnte man mit einem Byte pro Zug und einem Byte pro Variante unterbringen. Bei Varianten mit einem Zug Länge braucht es dann zwei Byte, bei einer Variante von fünf Zügen dann aber nur sechs Byte, d.h. 1,2 Byte pro Zug.

Je mehr ich drüber nachdenke, desto mehr Ideen kommen mir. Ich habe aber zu wenige Schachcomputer um die realisierte Umsetzung abzuschätzen.

DarkStar 14.11.2017 19:07

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Solwac,

Zitieren:

Zitat von Solwac (Beitrag 70396)
Ne, bei Figurenlisten ist die Sortierung nötig, selbst wenn sie bei der normalen Suche aus Geschwindigkeitsgründen nicht verwendet wird. ;)

Das mag sein, es spielt nur für eine kompakte Eröffungsbibliothek keine Rolle. Auch mit Sortierung und Figurenlisten würde man nicht mehr als 1 Byte pro Zug brauchen (inklusive Variantenende und NAS (nicht aktiv spielbar) Kennung).

Stay tuned ...
Carsten

Rasmus 14.11.2017 19:35

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70398)
Auch mit Sortierung und Figurenlisten würde man nicht mehr als 1 Byte pro Zug brauchen (inklusive Variantenende und NAS (nicht aktiv spielbar) Kennung).

Praktisch gesehen kann man auch nur 6 bits für den Zugindex nehmen, denn meiner Erfahrung nach kommt man zu Anfang ohnehin nicht auf 64 Züge in einer Position. Zudem könnte man notfalls auch mit der Zugsortierung frickeln, so daß die relevanten Züge innerhalb der ersten 64 Einträge landen. Dann hat man zwei Bits für Variantenende und NAS.

Im äußersten Notfall, wenn gar nichts mehr geht, könnte man dann beide Bits auf einmal setzen, was offensichtlich regulär nicht vorkommt (dann würde man den Zug ja einfach weglassen) und damit als Escape-Sequenz ein Sonderformat fürs nächste Byte einleiten.

Drahti 14.11.2017 20:12

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70374)
BTW: Das ein Bankswitching gemacht werden kann ist klar. Aber wird das beim Simultano auch gemacht? Ich habe da leichte Zweifel und hätte dazu gerne mehr gewusst.

Hi Carsten,

habe damals(TM) meinen Atari mit 6502 aufgebohrt und ihm eine 128 kByte RAM-Disc spendiert, selbes Prinzip :) Also das sähe man auf der Platine bzw. im Stromlaufplan. Dazu müsste ich mir die Adressbeschaltung und Chip Enable Signale der ROMs und RAMs anschauen... habe aber keinen Simultano zur Verfügung. Wenn jemand die ROMs hat, kann man da auch reinschauen. Bei vielen Kisten sind die 64 k einfach nicht voll belegt, sondern es gibt freie Blöcke. An dieser Stelle wird dann das RAM eingeblendet.

Wie hast Du den Zuggenerator "decodiert"? Aus dem Programmcode oder "empirisch"?! :)

Grüße,
Andreas

DarkStar 14.11.2017 20:21

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Andreas,

Zitieren:

Zitat von Drahti (Beitrag 70400)
habe damals(TM) meinen Atari mit 6502 aufgebohrt und ihm eine 128 kByte RAM-Disc spendiert, selbes Prinzip :)

Hilfe!
Das müsst ihr mir nicht in jedem Beitrag erklären. Das weiß ich schon selber seit Jahrzehnten
Alle 6502 basierten Rechner haben damals mit Bankswitching gearbeitet. Mein Frage war ja nur, ob der Simultano das auch macht und ob es dafür Belege gibt.
Die ROMs geben das (aktuell) nicht eindeutig her ;) Auch, weil man den ganzen Herstellerdaten nicht glauben kann. Ich würde sogar die 8 KB Ram bezweifeln (aber das lässt sich ja einfach überprüfen).

Zitieren:

Zitat von Drahti (Beitrag 70400)
Also das sähe man auf der Platine bzw. im Stromlaufplan.

Und da ich den nicht habe, wollte ich mal fragen ...

Zitieren:

Zitat von Drahti (Beitrag 70400)
Wenn jemand die ROMs hat, kann man da auch reinschauen. Bei vielen Kisten sind die 64 k einfach nicht voll belegt, sondern es gibt freie Blöcke. An dieser Stelle wird dann das RAM eingeblendet.

Der Simultanocode besteht aus viel "Luft"

Zitieren:

Zitat von Drahti (Beitrag 70400)
Wie hast Du den Zuggenerator "decodiert"? Aus dem Programmcode oder "empirisch"?! :)

Was hälst du für wahrscheinlicher? :rolleyes:

Stay tuned ...
Carsten

DarkStar 14.11.2017 20:25

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Rasmus,

Zitieren:

Zitat von Rasmus (Beitrag 70399)
Praktisch gesehen kann man auch nur 6 bits für den Zugindex nehmen, denn meiner Erfahrung nach kommt man zu Anfang ohnehin nicht auf 64 Züge in einer Position.

So wird es zumindest bei MMV und Konsorten gemacht.

Zitieren:

Zitat von Rasmus (Beitrag 70399)
Zudem könnte man notfalls auch mit der Zugsortierung frickeln, so daß die relevanten Züge innerhalb der ersten 64 Einträge landen.

Das sollte ein halbwegs vernünftiger Zuggenerator eh schaffen, auch ohne frickeln

Zitieren:

Zitat von Rasmus (Beitrag 70399)
Im äußersten Notfall, wenn gar nichts mehr geht, könnte man dann beide Bits auf einmal setzen,

In der Praxis und in den Programmen kommt der Notfall nicht vor. Also gibt es dort kein Escapezeichen.

So, dann haben wir das für die Nachwelt jetzt ja auch mal dokumentiert.

Stay tuned ...
Carsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
©Schachcomputer.info