Beiträge von Mike im Thema „(M)Ein Template für C64 ASM Files für Anfänger - Bitte kritisieren“

    Hallo, Markie.

    Ich hab' mal etwas schärfer darübergeschaut.

    Im wesentlich hast Du jetzt erstmal alles in einem Source-File zusammengetragen, was Du über den Aufbau eines gängigen Programms mit BASIC-Stub zusammengetragen hast. Als Referenz ist sowas immer brauchbar. :)

    In der Praxis wirst Du aber die Kommentare weitgehend zusammenkürzen müssen. Ich denke hier ist schon der Punkt erreicht, wo es schwierig wird zwischen all der Kommentierung überhaupt noch den eigentlichen Quelltext wieder zu finden.

    Ein Header mit Projekt-Name, dann eine Liste mit Datum Ersterstellung, Datum Änderung (evtl. mehrere), Datum letzte Änderung - jeweils mit Autor und Grund - ist immer eine gute Idee.

    Vor allen Programmteilen, die als Unterroutine angesprungen werden können, ist eine kurze Kommentierung mit Funktion, verwendete Resourcen (Register, etc.) ebenfalls Pflicht.

    Bei der Vergabe von Label-Namen verwende ich seit geraumer Zeit folgendes Schema: der Einsprungsprung einer Unterroutine wird z.B. ".Clear" genannt (je nach Assembler entfällt z.B. der anfängliche Punkt), weitere Ziele *innerhalb* der Unterroutine werden mit angehängtem Underscore und einer zweistelligen Zahl durchgezählt, also ".Clear_00", ".Clear_01" bis ".Clear_99" - die 100 Ziele reichen im Regelfall aus. Das funktioniert auch mit einem Assembler ohne lokale Labels und vermeidet generische Labels mit ".loop" oder ".skip" (<- das kann nämlich eine Menge Ärger machen, wenn man zwei Source-Files kombiniert!)

    zu guter Letzt dann noch das:

    Zitat von Markie
    Code
    ;-----------------------------------------------------------------------
    ;-- Declare my own variables placed by the compiler.
    ;-- This MUST be done at the end of the program, otherwise it seems
    ;-- that you screw up your program / the program pointer or something!
    ;-----------------------------------------------------------------------

    (Zeilen 152 bis 156): das kann ich nicht wirklich nachvollziehen. Es ist ohne weiteres möglich, veränderliche Daten innerhalb eines Programms, also z.B. vor und zwischen Unterroutinen, abzulegen. Da besteht kein Zwang, die ans Ende zu setzen.

    ...

    Evtl. wäre es jetzt an der Stelle sinnvoll, ein kleines prototypisches Programm zu schreiben, welches eben einen BASIC-Stub enthält und das gleiche macht wie das "Up-Up-and-Away" im Bedienungshandbuch. :)


    Edit: noch was. Ein Übersetzer eines Quellcodes mit Maschinenbefehlen und Labels wird für gewöhnlich "(Symbolischer) Assembler" genannt. Für einen *Compiler* muß es sich dann schon um eine höhere Sprache handeln, die da aus dem Quellcode übersetzt wird.