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 11.11.2017 21:36

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

RetroComp 11.11.2017 21:47

AW: Saitek Simultano - eine Rechenaufgabe
 
64000 ByteRom und 100000 Eröffnungspositionen hört sich fantastsisch an... ;)

Beste Grüße
Jürgen

MaximinusThrax 12.11.2017 00:54

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

Chessguru 12.11.2017 11:39

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Carsten,

Zitieren:

Zitat von DarkStar (Beitrag 70349)
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?

das Problem an der Sache, diese Angaben waren offizielle Herstellerangaben.

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

Wolfgang2 12.11.2017 11:56

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

Rasmus 12.11.2017 13:14

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70349)
ROM 64 KByte
Eröffnungsbibliothek 100.000 Halbzüge

Kreative Zählweise, das war damals üblich.

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.

DarkStar 12.11.2017 13:39

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Rasmus,

Zitieren:

Zitat von Rasmus (Beitrag 70357)
Kreative Zählweise, das war damals üblich.

Ja, das ist schon klar und das hatten wir ja schon öfter mal diskutiert.

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:
  • Variante 1: e2-e4 Sg8-f6 (die Züge sollen aktiv gespielt werden)
  • Variante 2: h2-h3 e7-e5 (h2-h3 soll nicht aktiv gespielt werden)
2. Frage: wieviel Speicherplatz würdet ihr dafür benötigen?

Stay tuned ...
Carsten

Rasmus 12.11.2017 14:47

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70359)
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?

Das könnte man mit bank switching machen. Der Commodore 128 muß das ähnlich gelöst haben, um mit dem 6502 128k RAM adressieren zu können.

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:

2. Frage: wieviel Speicherplatz würdet ihr dafür benötigen?
Wenn ich die Cache-Indices weglasse, 25 Bytes. 4 davon für die Länge des Eröffnungsbuches, was man beim 6502 aber auch mit einem uint16_t machen könnte, dann wären es noch 23 Bytes.

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.

DarkStar 12.11.2017 15:11

AW: Saitek Simultano - eine Rechenaufgabe
 
Hi Rasmus,

Zitieren:

Zitat von Rasmus (Beitrag 70360)
Wenn ich die Cache-Indices weglasse, 25 Bytes. 4 davon für die Länge des Eröffnungsbuches, was man beim 6502 aber auch mit einem uint16_t machen könnte, dann wären es noch 23 Bytes.

Die Frage war natürlich für 6502 Architektur gedacht. Da sind 25/23 Bytes aber sehr viel.

Wer kommt mit weniger aus?

Stay tuned ...
Carsten

Rasmus 12.11.2017 15:39

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70362)
Die Frage war natürlich für 6502 Architektur gedacht. Da sind 25/23 Bytes aber sehr viel.

Ich denke, die Frage ist nicht sinnvoll gestellt, weil bei so einem kleinen Buch mit nur 1 aktivem Zug pro Position das Meiste für den strukturellen Overhead draufgeht, den man für die Ausweitung auf ein richtiges Eröffnungsbuch bräuchte. Meine Kalkulation mit 3.7 Bytes pro realem Zug käme hier auf 15 Bytes.

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:53 Uhr.

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