Thema: Info: Codeanalyse
Einzelnen Beitrag anzeigen
  #22  
Alt 20.11.2023, 17:43
Moonshine Moonshine ist offline
Super System III
 
Registriert seit: 25.07.2010
Land:
Beiträge: 14
Abgegebene Danke: 25
Erhielt 19 Danke für 11 Beiträge
Aktivitäten Langlebigkeit
3/20 15/20
Heute Beiträge
0/3 sssssss14
Beitrag AW: Codeanalyse

 Zitat von Hans21 Beitrag anzeigen
Hallo Hannes,

Nachher wird aber noch geprüft ob z.B. das CB16-Modul installiert ist. Wenn das der Fall ist, wird 0x200b ins RAM nach 0x00b8 (LSB) und 0x00ba (MSB) überschrieben, also so eine Art "pointer" auf das zu verwendende Eröffnungsbuch. Mittlerweile vermute ich auch, dass eine 0x88-Brettdarstellung verwendet wird.

Hans
Hallo Hans,

gut zu wissen, mit dem CB16 Modul. Das hat der ARB Sargon 4.0 nicht. Aber laut Rominhalt dürfte es genauso aufgebaut sein wie das Buch des Sensory 9 bzw. Sargon 4.0.
Sieh' Dir mal die ersten Bytes im Buch des Sensory 9 an:
$F45D: $c0 $0e $c0 $01 $98 $c0 $0b
Da sieht man die erste Variante 1. d4 Sf3, 2. c4 g6
Also, wofür die Bytes mit dem Inhalt "C0" sind, weiß ich noch nicht. Die anderen Bytes stehen nun für 1.d4 = $0e, Sf3 = $01, 2. c4 = $98 (Bit 7 ausblenden = $18) und g6 = $0b. Nehmen wir nun den Zug 2. c4 her. In der Zugliste ist das nun der 24. Zug. Am Anfang stehen immer die Schlagzüge, dann eine evtl. Rochade, gefolgt von den Figurenzügen. Begonnen wird bei 1 zu zählen. Schlagzüge gibt es keine, Rochade auch nicht. Es gibt 5 Springerzüge, 5 Läuferzüge, 2 Damenzüge und ein Königszug. Das sind nun 13 Züge. Es kommen nun die Bauernzüge. In dieser Stellung wäre $0e nun h3, $0f wäre h4 usw. bis $18 = c4!
Jetzt macht der Zuggenerator aber nicht die Züge in einer "vernünftigen" Reihenfolge, sondern er beginnt vom Zentrum her die Felder zu durchlaufen und schaut ob da eine Figur hinziehen kann. Diese abstruse Reihenfolge ist wahrscheinlich das, was Darkstar in seinem Eingangspost gemeint hat. Mir erschließt sich da auch noch keine sinnvolle Reihenfolge bei der Zuggenerierung. Es kann aber auch sein, dass die Züge doch in einer logischen Reihenfolge erzeugt werden und die Liste später dann "sortiert" wird. Nach welchen Kriterien auch immer. Das weiß ich noch nicht.
Ich habe die Programme Sargon 2.5/3.0/3.5 früher mal in einem Simulator laufen lassen und mir zwischendurch den Speicherinhalt angesehen. Da findet man dann eine Zugliste die logisch erzeugt wurde. Beim Sargon 4.0 finde ich keine Zugliste, oder sehe sie nur nicht :-).

Lg
Hannes
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu Moonshine für den nützlichen Beitrag:
kamoj (21.11.2023), Mychess (20.11.2023)