@

Aus C64-Wiki
Zur Navigation springenZur Suche springen
@
Syntax: @<Definitionszeichenfolge>
Parameter
<Definitionszeichenfolge> bestehend aus Zeichen "A", "B", "C", "D", "." oder Leerzeichen
Einordnung
Typ: Anweisung
Kontext: Sprites oder Zeichensatz
Aufgabe: Markiert den Beginn einer Definitionszeile
Abkürzung: keine
Token: keins
Verwandte Befehle
DESIGN - CMOB - MOBCOL - MOB SET


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort @.

Typ: Anweisung
Syntax: @<Definitionszeichenfolge>

Der Befehl @ ist untrennbar mit dem Befehl DESIGN verbunden. Er legt den Beginn einer Definitionszeile des Bitmusters von entweder einem Sprite (DESIGN 0, 1 oder 5) oder einem Zeichensatzzeichen (DESIGN 2, 3 oder 7) fest, wobei ein ungerader Parameter für die Multicolor-Variante steht, ein gerader für die hochauflösende. Der jeweilige Kontext bestimmt auch, wie viele Definitionszeichen auf das einleitende "@" folgen dürfen (jedes Leerzeichen ist dabei signifikant, außer am Zeilenende, die der Basic-Editor ignoriert). Die folgende Tabelle zeigt den Zusammenhang.

DESIGN 0 DESIGN 1 DESIGN 2 DESIGN 3 DESIGN 5
Multi (TSB)
DESIGN 7
Multi (TSB)
Spalten 24 12 8 4 24 8
Zeilen 21 21 8 8 21 8

Zulässige Definitionszeichen sind: "A", "B", "C" und "D", sowie die beiden Zeichen "." (Punkt) und " " (Leerzeichen), die beide stellvertretend für "A" gesetzt werden können. Andere Definitionszeichen oder eine fehlende Anzahl in einer Zeile bzw. fehlende Zeilen lösen die Fehlermeldung ?BAD CHAR FOR A MOB aus. Überflüssige Zeichen in einer Zeile werden schlicht ignoriert, jedoch führt eine Definitionszeile zuviel zum Fehler ?SYNTAX ERROR. Bei DESIGN-Parameter 5 und 7 (nur TSB) müssen alle Buchstaben doppelt eingegeben werden, da sie Doppelpixel repräsentieren.

Dabei bedeuten diese Zeichen (bei der Sprite-Definition):

Zeichen : bewirkt : Farbe gesetzt mit Befehl
: (Hires-Modus)
: Farbe gesetzt mit Befehl
: (Multicolor-Modus)
"A", "." oder " " : Bit in Hintergrundfarbe
: (Multi-Farbquelle 0)
: COLOUR
: (transparent, $D021, %00)
: COLOUR
: (transparent, $D021, %00)
"B" : Bit in Vordergrundfarbe
: (Multi-Farbquelle 1)
: MOB SET oder MOBCOL
: ($D027..$D02E, %10)
: CMOB ($D025, %01)
"C" : Bit in Multifarbe 1
: (Multi-Farbquelle 2)
: - : MOB SET oder MOBCOL
: ($D027..$D02E, %10)
"D" : Bit in Multifarbe 2
: (Multi-Farbquelle 3)
: - : CMOB ($D026, %11)

Beispiel[Bearbeiten | Quelltext bearbeiten]

Beispiel für DESIGN, MOB SET, MMOB und @:

1700 PROC SPRITE
1710   DESIGN 0, 15*64
1720   @BBBBBBBBBBBB............
1721   @BBBBBBBBBBBB............
1722   @BB........BB............
1723   @BB........BB............
1724   @BB........BB............
1725   @BB........BB............
1726   @BB........BB............
1727   @BB........BB............
1728   @BB........BB............
1729   @BB........BB............
1730   @BBBBBBBBBBBB............
1731   @BBBBBBBBBBBB............
1732   @........................
1733   @........................
1734   @........................
1735   @........................
1736   @........................
1737   @........................
1738   @........................
1739   @........................
1740   @........................
1750   MOB SET 1,15,1,0,0    : REM SPRITE DEFINIEREN
1760   S8=38: Z8=80          : REM SPRITE POSITION
1770   MMOB 1,S8,Z8,S8,Z8,0,0: REM SPRITE ANZEIGEN
1780 END PROC

Definiert ein weißes Kästchen als Hires-Sprite mit einem zwei Pixel dicken Rand, in der Mitte bleiben 8x8 Bit frei. Bild siehe Beispiel zu MMOB.