ARES sollte vollständig kompatibel zu den Vorgaben im erweiterten ICWS-94 Draft (Version 3.3) sein, jedoch steht eine endgültige Verifikation noch aus.
Der aktuelle Standard wird durch das Programm pmars vorgegeben. ARES beherrscht fast alle Erweiterungen, wie sie in pmars implementiert sind, jedoch kennt er die Instruktion PIN (noch) nicht. Der Assingment-Operator und die Register A bis Z werden ebenfalls nicht unterstützt und es ist auch nicht geplant, diese Option in den ARES-Parser zu integrieren.
Die KoTH-Server verwenden pmars, und das Verhalten dieses Programmes wird von der Core War-Community als Standard betrachtet.
L M FOR i JMP 0 ROF JMP MDer Parser von pmars übersetzt das obige Beispiel zwar, macht aber aus JMP M fälschlicherweise einen JMP 0. (Ein JMP L funktioniert mit beiden Programmen)
FOR n FOR CURLINE ... ROF ROFDer Assembler warnt.
OPC EQU JMP FOR n OPC CURLINE ROF
Wer mit verschiedenen Core War-Simulatoren arbeitet, sollte keine verschachtelten FOR-Schleifen benutzen. Die Verwendung von CURLINE ist ebenfalls problematisch, besonders in Verbindung mit FOR-Schleifen und EQU Statements, die Opcodes ersetzen. EQU Statements sollten mit Vorsicht genossen werden, ganz besonders Multiline-EQU. Ich empfehle, EQU nur für konstante Zahlenwerte (oder natürlich mathematische Ausdrücke) zu verwenden und dabei auf die Verwendung auf CURLINE in diesen EQUs zu verzichten. Sollte auf kompliziertere Konstruktionen nicht verzichtet werden können (z. B. wenn man fremde Warriors übersetzt), dann sollte man die Ausgabe der Assembler genau auf Korrektheit prüfen. Wer seine Programme mit ARES entwickelt und den Verdacht hat, daß die Übersetzung durch pmars andere Ergebnisse liefert, sollte sein Programm vor dem Upload mit ARES ins Load File Format übersetzen lassen.
Solltest du sichergehen wollen, daß ARES die Programme genauso wie pmars übersetzt, kannst du die Option External Assembly
benutzen.
ARES benutzt dann pmars.exe, um den Programmcode übersetzen zu lassen, wodurch die Kompatibilität des Parsers auf 100.0% steigt ;-)
Die Direktiven ;break und ;watch verlieren dadurch allerdings (derzeit noch) ihre Wirksamkeit,
Bluecode
kann natürlich auch nicht übersetzt werden. Derzeit wird ARES mit pmars 0.9.2 ausgeliefert.