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.
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.
Im Ernstfall würde das ca. jeder in Hex angeben. ![]()
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:
; basic header
* = $0801 ; C64 basic start address
!wo line2, 2016 ; line link and line number
!by $9e, $20 ; "sys "
!by '0' + entry % 10000 / 1000 ; digits for SYS argument
!by '0' + entry % 1000 / 100
!by '0' + entry % 100 / 10
!by '0' + entry % 10
!pet $3a, $8f, " saufbox!" ; ":rem " part
!by 0 ; end of line
line2 !wo 0 ; end of basic
entry ; entry point for SYS
Alles anzeigen
Das passt sich automatisch an längere REM-Texte an.
Für eine Konvertierung zu PetSCII muss man entweder "!pet" benutzen oder vor "!text" mit "!ct pet" umschalten.
Der Kommentar ist richtig, die Nullen sind aber falsch verteilt (eine nach oben, zwei nach unten).
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.