ZeroPage Pro

Ultimate Guided W65C02S Disassembler

Page content

Projekt 0333/0010 - ZeroPage Pro - Ultimate Guided W65C02S Disassembler

Eines meiner jüngsten Projekte hat mit der aktuellen Version 0.51c bezüglich Stabilität und Funktionsumfang einen Stand erreicht, mit dem jetzt produktiv gearbeitet werden kann.

Während andere 6502 Disassembler oft spezielle Erweiterungen und Funktionen für einst populäre Homecomputer (C64, Apple II, etc.) mitbringen, lag bei der Entwicklung von ZeroPage Pro der Fokus primär auf alten Schachcomputern.

ZeroPage Pro ist ein sogenannter geführter Disassembler. Das bedeutet, dass dem Disassembler über diverse “Guidefiles” zusätzliche Informationen über den Code, die Hardware, etc. zugespielt werden können.

Dies hat mehrere Vorteile. Der Disassambler bekommt Informationen, die er sich durch die automatische Analyse des Binaercodes nicht herleiten kann. Durch den Einsatz für Guidefiles profitiert man durch ausschließliche Pflege der Guidefiles von zukünftigen Weiterentwicklungen des Disassemblers. Außerdem besteht die Möglichkeit gemeinschaftlich an versionierten und verteilten Guidefiles zu arbeiten, um das Wissen um den Binaercode zu bündeln, die Arbeit zu verteilen und das Ergebnis zu verbessern.

ZeroPage Pro ist natürlich auch in der Lage allgemeine 65c02 Programme zu disassemblieren. Es wurden allerdings einige Erweiterungen speziell für alte Schachcomputer integriert, die dafür sorgen, dass dem Quelltext spezielle Informationen hinzugefügt und ggf. Daten speziell interpretiert werden können.

Ein kleiner (nicht vollständiger) Auszug der bisher integrierten Features:

  • statische Codeanalyse
  • spekulative Codeanalyse
  • Splitted Jumptable Unterstützung (mit Index Skipping)
  • statisches Reference Counting (über 6 Labeltypen)
  • Labeltyp-, Code- und Datenstatistik
  • automatische, iterative Lokale-Label Erkennung
  • konfigurierbare Daten Byte / Address / Vektor Generierung / Darstellung
  • I/O Symbol Mapping (Hardwareansteuerung)
  • Codegenerierungsstatistik (Opcodeauswertung)
  • Charset Erweiterungen (LED4DIG7, LCD4DIG7, PETSCII, ASCII)
  • automatische Nicht-Code Erkennung (für Datenbereiche, indirekte Sprünge)
  • Multipass Startadressen Optimierer (für Code/Datentrennung)
  • Ladeadressenberechnung (EPROM Unterstützung)
  • voll konfigurierbare Ausgabe
  • Analyseausgabe mit allen Informationen
  • direkt assemblierfähige Turbo Assembler kompatible Ausgabe
  • automatische, überschreibbare Code-Kommentierung
  • Guidefiles für (Address Constants, Manual Labels, Value Constants, Start Addresses, Split Jump Tables, Hi/Lo Labels)
  • HTML Ausgabe (noch WIP)

Derzeit ist ZeroPage Pro ein Windows Konsolenprogram, welches direkt auf die Daten losgelassen werden muss. Der ursprüngliche Plan war allerdings, dass es in einem speziellen Editor eingebettet ist, der die Funktionen direkt in der Analyseansicht bereitstellt, so dass eine externe Bearbeitung der Guidefiles entfallen kann.

Da der aktuelle Workflow allerdings extrem gut funktioniert, ist noch nicht klar, ob ich die zusätzliche Zeit investieren werde.

Anbei noch ein Screenshot …

Stay tuned ...
Carsten

ZeroPagePro_Small.jpg