![]() |
Saitek Simultano - eine Rechenaufgabe
Hallo,
beim Bearbeiten des Wikis und Lesen im Forum stößt man ja zwangsweise auf lustige Informationen Hier mal Angaben aus dem Wiki: Saitek Simultano Prozessor 65C02 ROM 64 KByte RAM 8 KByte Eröffnungsbibliothek 100.000 Halbzüge Wer findet die Fehler? Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
64000 ByteRom und 100000 Eröffnungspositionen hört sich fantastsisch an... ;)
Beste Grüße Jürgen |
AW: Saitek Simultano - eine Rechenaufgabe
Ossi Weiner sprach hier vor vielen Jahren schon von der "Wundersamen Zugvermehrung"!
Und mir persönlich kamen die Angaben zur Bibliotheksgröße der Schachcomputer schon immer irgendwie zu groß vor denn in der Praxis spielten die Geräte einfach viel weniger Eröffnungen aktiv als angegeben und ich fragte mich wo stecken nur die Zigtausend Eröffnungszüge? Nur Beweisen konnte man als Laie schwerlich etwas, aber das ist jetzt dank Carsten vorbei! Grüße Otto |
AW: Saitek Simultano - eine Rechenaufgabe
Hallo Carsten,
Zitieren:
Wir hatten das Thema ja schon per PN besprochen. Wenn du gegenteilige, verifizierbare Fakten liefern kannst, z.B. deine ausgelesenen Bibliotheken, dann sollten aber genau diese offiziellen Werbeaussagen trotzdem im Wiki erhalten bleiben. Allerdings z.B. mit dem Zusatz "lt. Werbeprospekt" versehen, um die Diskrepanz zwischen Fiktion und Wahrheit aufzuzeigen. Gruß Micha |
AW: Saitek Simultano - eine Rechenaufgabe
Ich habe mit den Hersteller-Angaben kein Problem. Denn in irgendeiner Weise (höhere Zahl durch Mehrfachzählung) muss es sich ja niederschlagen, ob ein Gerät innerhalb der Bibliothek Zugumstellungen erkennt oder nicht.
Gruß Wolfgang |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Nehmen wir mal die folgenden Varianten her: e2-e4 e7-e5 Sg1-f3 Sg8-f6 e2-e4 e7-e5 Sg1-f3 Sb8-c6 Nach meiner Zählweise liegen hier 5 Züge Umfang vor. Die Hersteller hätten seinerzeit aber behauptet, es seien 8. Wenn man nun Varianten hat, die sich erst bei deutlich tieferen Zügen unterscheiden, dann kann man mit der "kreativen" Zählweise nahezu jeden angeblichen Umfang erreichen. |
AW: Saitek Simultano - eine Rechenaufgabe
Hallo Rasmus,
Zitieren:
Da aber scheinbar niemand erkennt, worauf ich eigentlich mit dem Post hinaus wollte, werde ich mal zwei Fragen formulieren und bitte mal um möglichst viele Antworten :) Der 65C02 hat einen Adressraum von 64 KByte (65536 Bytes). Das ROM ist lt. Angabe 64 KBytes groß. 1. Frage: wo liegt dann der 8 KByte RAM Bereich? Ihr seit Programmierer und sollt eine Eröffungsbibliothek erstellen, die nur die beiden folgenden Varianten enthällt:
Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Eine denkbare Aufteilung wäre etwa, das RAM nach unten zu legen, dann den Code, und z.B. die letzten 8K des Adreßraumes switchbar über den ROM-Teil mit dem Eröffnungsbuch zu legen. Das wäre dann im Zugriff zwar langsam, wäre aber nur zum Lookup nötig und würde die eigentliche Suche nicht ausbremsen. Zitieren:
Allerdings ist mein Format nicht besonders speichersparend, weil beim Cortex-M4 mehr als genug ROM vorhanden ist. Für 22283 unterschiedliche Züge in 12563 unterschiedlichen Positionen mit 256 Cache-Indices werden 108425 Bytes benötigt. Die "rohe" Anzahl der Züge liegt übrigens bei 128258, also vor der Bereinigung um Zugumstellungen. Bei der Skalierung ergeben sich damit 4.87 Bytes pro einzigartigem Zug, bzw. 0.86 Bytes pro Zug in "kreativer" Zählweise. Wenn ich die Positionen statt mit einer CRC-32 und einer CRC-8 nur mit CRC-16 und CRC-8 machen würde, wären das 2 Bytes pro Position weniger, was 25k sparen würde, und ohne Cache-Indices (1k weniger), dann wären es 3.7 bzw. 0.64 Bytes pro Zug. Mit letzterem wäre man bei 100.000 Zügen vor Zugumstellung dann bei 64k, das ist die richtige Größenordnung. Nimmt man nun noch an, daß das Verhältnis aus Roh-Zählweise zu bereinigter Zählweise beim Simultano deutlich höher ist, weil das Buch auf Tiefe und nicht wie bei mir auf Breite zielt, dann wären auch 32k Buch durchaus machbar. |
AW: Saitek Simultano - eine Rechenaufgabe
Hi Rasmus,
Zitieren:
Wer kommt mit weniger aus? Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Noch weniger Speicher wäre natürlich 8 Bytes: e2-e4 (2 Bytes) Sg8-f6 (2 Bytes) h2-h3 (2 Bytes) e7-e5 (2 Bytes) Da man 64 Felder hat, brauchen Start- und Zielfeld 6 bit, wodurch man eines der Bits reservieren kann, um anzuzeigen, ob der Zug aktiv gespielt werden soll oder nicht. Dann sind aber keine Zugumstellungen mehr möglich, aber das war ja offenbar auch nicht in der Frage enthalten. |
AW: Saitek Simultano - eine Rechenaufgabe
Hallo Rasmus,
Zitieren:
Zitieren:
Zitieren:
Zitieren:
So, jetzt noch einen Versuch und dann sind wir glaube ich am Ziel Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Das ergäbe 5 Byte: e4 (1 Byte) Sg8-f6 (2 Bytes) h3 (1 Byte) e5 (1 Byte) Der Nachteil ist, daß man mit dem System erhebliche Teile des Buches durchparsen muß, um die Zugumstellungen zu erwischen. |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Ok, bei Sg8-f6 kann man natürlich denselben Trick machen, weil es nur einen Springer gibt, der nach f6 gehen kann. Das spart dann das fünfte Byte.
|
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Zwei Varianten Erste: e2-e4,Sg8-f6,d2-d4,Sf6xe4,Lf1-c4 (soll aktiv gespielt werden) Zweite: d2-d4,Sg8-f6,c2-c4,e7-e6,Sb1-c3 (soll nicht aktiv gespielt werden. MMV bräuchte dafür 10 Bytes. Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Das Rom hingegen dürfte teilweise parallel liegen. Dazu wird Bankswitching verwendet, d.h. der Speicher ist in einzelne Bänke unterteilt und diese werden wechselnd in den Adressraum der CPU eingeblendet. Bei der Eröffnungsbibliothek kann z.B. die Bewertungsfunktion ausgeblendet werden - es wird entweder der Zug aus dem Buch gespielt ODER mit der normalen Suche ermittelt. Zitieren:
Es gibt auch andere, kompaktere Möglichkeiten, aber die brauchen mehr RAM und das war meist knapper als ROM. |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Stay tuned ... Carsten 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. |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
|
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
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). 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. Wenn das mit dem Saitek nichts mehr zu tun hat, dann gerne in einem eigenen Strang. Ich finde das Thema nämlich interessant. |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
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. |
AW: Saitek Simultano - eine Rechenaufgabe
Hallo Solwac,
Zitieren:
Zitieren:
Selbst wenn ... dann wäre die Stellung halt nicht aufgenommen worden Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Für Eröffnungsbliotheken siehe nächsten Beitrag. |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
Zitieren:
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. |
AW: Saitek Simultano - eine Rechenaufgabe
Hallo Solwac,
Zitieren:
Stay tuned ... Carsten |
AW: Saitek Simultano - eine Rechenaufgabe
Zitieren:
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. |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr. |
Powered by vBulletin (Deutsch)
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
©Schachcomputer.info