@

Aus C64-Wiki
Wechseln zu: Navigation, Suche
@
Format: @<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
Verwandte Befehle
DESIGN - CMOB - 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 oder 1) oder einem Zeichensatzzeichen (DESIGN 2 oder 3) 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
Spalten 24 12 8 4
Zeilen 21 21 8 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 eine Fehlermeldung ?BAD CHAR FOR A MOB. Überflüssige Zeichen in einer Zeile werden schlicht ignoriert, jedoch führt eine Definitionszeile zu viel zum Fehler ?SYNTAX ERROR.
Dabei bedeuten diese Zeichen (bei der Sprite-Definition):

Zeichen : bewirkt : gesetzt mit (Hires) : gesetzt mit (Multi)
"A", "." oder " " : Bit in Hintergrundfarbe (Farbquelle 0) : (transparent) : (transparent)
"B" : Bit in Vordergrundfarbe (Farbquelle 1) : MOB SET : CMOB
"C" : Bit in Multifarbe 1 (Farbquelle 2) : MOB SET
"D" : Bit in Multifarbe 2 (Farbquelle 3) : CMOB

[Bearbeiten] Beispiel

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.)