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

    Was haltet Ihr von der Idee eines Template wie dem hier für
    C64 Assembly Source Code (für Anfänger)?
    Bitte kritisieren!!

    Da stimme ich Mike zu: Das sind eigentlich schon zu viele Kommentarzeilen, um noch übersichtlich zu sein.
    Dank Syntax-Highlighting sind heute auch diese Rahmen aus Sternchen überholt - große Kommentarblöcke fallen schon durch ihre Farbe auf, da verschwenden Umrandungen nur Platz auf dem Bildschirm. Aber gut, das sind persönliche Präferenzen.

    C
    ;**  These Symbols need to be resolved in the first compiler pass.    **
    [...]
    ;**  These Symbols are resolved in the second compiler pass.          **

    Andere Assembler sind da evtl. restriktiver, aber ACME macht immer genau so viele Passes wie nötig: Manchmal reicht schon einer (wenn es keine Vorwärtsreferenzen gibt), manchmal sind auch vier oder mehr nötig (wenn man fiese Makro-Magic verwendet o.ä., das ist aber nichts für Anfänger).
    Anstatt diese Sätze jetzt zu "korrigieren", würde ich sie aber einfach weglassen, denn sie sind für die Syntax unerheblich.

    C
    ; SCREEN_CHAR           = 52224

    Im Ernstfall würde das ca. jeder in Hex angeben. ;)

    C
    ;-- Next BASIC line starts at: 2049 + 27 = 2076
    ;-- $2076 = $081C in lo/hi = $1C, $08
    ;-- BASIC line number 10 in lo/hi = $000a = $0a, $00

    Das ist Verschwendung wertvoller Lebenszeit. Der Assembler ist Dein Freund und will Dir helfen, Du musst ihn nur lassen. Statt Basic-Zeilen aus Bytes zusammenzustoppeln und alle Berechnungen selbst zu machen (und in den Kommentaren zu beschreiben), lass das das Werkzeug machen:

    Das passt sich automatisch an längere REM-Texte an.

    C
    !text "*** PROJECT NAME ***"          ; !text translates to PETSCII codes

    Für eine Konvertierung zu PetSCII muss man entweder "!pet" benutzen oder vor "!text" mit "!ct pet" umschalten.

    C
    !byte $00, $00                        ; end of BASIC line
    ;-- NULL, NULL instead of pointer to next BASIC
    ;-- line signifies end of BASIC program:
    !byte $00,                            ; end of BASIC program

    Der Kommentar ist richtig, die Nullen sind aber falsch verteilt (eine nach oben, zwei nach unten).

    C
    ;-- 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!

    Wie Mike bereits schrob: Du kannst Variablen anlegen, wo immer Du willst. Nur anspringen sollte man diese Bereiche natürlich nicht. Wenn da etwas nicht funktiniert hat, hast Du die Werte evtl. in eine Routine gelegt, statt zwischen Routinen.