Vielen die in Assembler programmieren oder selbst einen Assembler/Cross-Assembler geschrieben haben ist dieses Problem bekannt:
ES GIBT KEINEN STANDARD
Zwar gibt es sehr viele schöne Bücher, die sich ausführlich mit der 6502 Programmierung befassen, wie:
MOS Microcomputers Programming Manual "http://archive.6502.org/books/mcs6500_family_programming_manual.pdf"
Rodnay Zaks: Programming the 6502 "https://archive.org/details/Programming_the_6502"
Commodore Sachbuchreihe Band 1: Alles über den Commodore 64
um nur einige zu nennen, aber die Regeln wie 6502 Sourcecode abzufassen ist beschränken sich auf (zu) Weniges:
Die Benennung der Mnemonics, Darstellung von Sedezimalzahlen (auch Hexadezimal genannt) und die Syntax für das Operandenfeld und die Adressierungsarten.
Was komplett fehlt sind Standards für sogenannte Pseudo-Ops. und Features, die oft allerdings erst durch Crossassembler auf leistungsfähiger Hardware möglich wurden.
Dazu einige Beispiele:
Konstantentypen: Binär, Oktal, Dezimal, Hex
Label: Länge, Zeichensatz, Delimiter, Gültigkeitsbereich
Strings: Delimiter, Zeichensatz, Escape-Sequenzen
Daten Pseudo-Ops.: .DATA, .BYTE, .DB, .WORD, .FILL, .BSS, .STRING, .ASCII, uva.
Format für Object-Files, Binaries, Executables, Relocatable Object-Files
Bedingte Assemblierung: #if, #elseif, #else, #endif
MACROS
Optimierungen: Branch-Optimierung, ZeroPage Adressierung
Dies alles ist meines Wissens nie standardisiert worden, sondern jeder Entwickler eines Assemblers (mich eingeschlossen)
hat dies nach eigenem Gutdünken selbst entschieden.
Dies hat leider dazu geführt, dass Assembler Quellttexte nicht portabel sind, sondern entweder mit einem bestimmten
Assembler assembliert werden müssen oder in eine andere Syntax portiert werden müssen.
Hier möchte ich jetzt gern ansetzen und eine Initiative ins Leben rufen die das
"65xx family programming reference manual"
schreibt, aufbauend auf dem MOS Manual und es ergänzt durch alles, was ein Assembler an zusätzlichen Features bietet.
Mitglieder dieser Initiative sollten vorzugsweise Entwickler von Assemblern sein, die ihre Produkte vergleichen,
diskutieren und anpassen. Mir ist durchaus klar, dass jeder Entwickler seine Lösung für die beste hält und sich
schwer tun wird, sein Produkt zu verändern, aber man kann es ja mal versuchen
Falls sich genügend Teilnehmer finden würde ich auch vorschlagen, das ganze auf eine internationale Ebene zu bringen
und Assembler-Entwickler ausfindig zu machen und zur Teilnahme einzuladen. Dann müsste die Kommunikation
natürlich auf Englisch stattfinden.
Doch zunächst einmal möchte ich die Idee hier zur Diskussion stellen und bin auf Eure Stellungnahme gespannt.