SuperBASIC 64

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Begriffsklärung Der Titel dieses Artikels ist mehrdeutig. Super BASIC (Begriffsklärung).
SuperBASIC 64
Befehlsübersicht von SuperBASIC 64
Entwickler Martin C. Kees
Verleger COMPUTE!
Release 1983
Plattform(en) C64
Genre BASIC-Erweiterung
Steuerung Icon tastatur.png
Medien Icon disk525.png, Icon kassette.png
Sprache(n) Sprache:englisch
Information Als Maschinensprache-Listing erschienen

SuperBASIC 64 ist in der Comuterzeitschrift COMPUTE! im Dezember 1983 erschienen. Die BASIC-Erweiterung wurde vom US-amerikanischen Programmierer Martin C. Kees geschrieben und erweitert das BASIC V2.0 um 37 neue Befehle, damit einfacher mit Sprites, SID-Musik, HiRes-Grafik und den VIC umgegangen werden kann.

Allgemein[Bearbeiten | Quelltext bearbeiten]

Da SuperBASIC im Speicherbereich ab Speicheradresse 49152 ($C000–$CC00) liegt, kann dieser Speicherbereich nicht für andere Maschinenprogramme genutzt werden.

Der BASIC-Befehl STOP kann leider nicht benutzt werden, da das Zeichen [, das die neuen SuperBASIC-Befehle einleitet, als STOP beim Auflisten erkannt wird!

  • Die Tastenkombination RUN/STOP  + RESTORE  oder POKE 1,55 deaktiviert SuperBASIC wieder.
  • Nach dem Laden eines Programms oder nach dem Deaktivieren wird SuperBASIC wieder mit POKE 1,54 aktiviert.

Befehle[Bearbeiten | Quelltext bearbeiten]

BASIC-Erweiterungen[Bearbeiten | Quelltext bearbeiten]

Folgende Standard-BASIC-Befehle wurden etwas erweitert:

RESTORE <variable>
GOTO <variable>
GOSUB <variable>
IF <exp> GOTO <variable>
IF <exp> GOSUB <variable>
ON <exp> GOTO <variable1>,<variable2>...
ON <exp> GOSUB <variable1>,<variable2>...
ASC - Bei einem Leerargument wird nun 0 zurück gegeben.
LIST - Durch Drücken der Taste SHIFT wird das Auflisten angehalten!

Im Allgemeinen können nun Zahlenvariablen als Sprungwerte genutzt werden. Beispiel GOTO ABC (mit ABC=100) springt zur Zeile 100.

Sprite-Befehle[Bearbeiten | Quelltext bearbeiten]

  • [DSPR spr, blk, xexp, yexp, xpos, ypos, multi, sprcolr, mcol0, mcol1 - Initalisiert Sprite 0-7 mit Blocknr., x- und y-Expandierung, x- und y-Position, Multicolormodus, Spritefarbe, sowie Multicolorfarben 0 und 1
  • [MOVE spr, xpos, ypos - Bewegt Sprite 0-7 in x- und y-Richtung, wobei das Umschalten in x-Richtung bei Werten >255 automatisch passiert.
  • [KSPR spr - Schaltet Sprite 0-7 aus.
  • [ESPR spr - Schaltet Sprite 0-7 ein.
  • [BSPP spr, sel - Hintergrund-Sprite-Piriotät festlegen (1: Sprite befindet sich im Vordergrund)

Sound-Befehle[Bearbeiten | Quelltext bearbeiten]

  • [SSND voice, ad, sr, wave, freq, pwidth - Legt die SID-Stimme (1-3) fest, mit der AD,SR-Hüllkurve, Wellenform, Frequenz (0-65535) und Pulseweite (0 – 12228). Muss vor dem ersten Aufruf eines Tons mit dem SID ausgeführt werden.
  • [PLAY 256*wave + voice, freq, pwidth - Spielt einen Ton, verkürzter Befehl von [SSND.

VIC-Kontrolle[Bearbeiten | Quelltext bearbeiten]

  • [BKGD col - Hintergrundfarbe einstellen
  • [BKG4 col10, col11, col12, col13 - Multicolorfarben für HiRes und für den Erweiterten Hintergrundmodus einstellen.
  • [EXTC col - Rahmenfarbe einstellen
  • [FCOL col - Textfarbe einstellen

VIC-Speicherbelegung[Bearbeiten | Quelltext bearbeiten]

  • [BANK sel - Wählt VIC-Bank 0-3 aus (Standard ist 0)
  • [VSIK sel - Aktiviert den 1K Block für den Textbildschirm (0-15)
  • [CB2K sel - Aktiviert den 8K Block für den Zeichensatz (0-7)

Grafik-Befehle[Bearbeiten | Quelltext bearbeiten]

Eine Rasterzeile mit dem Befehl [MXGR erzeugt.
  • [ECGR sel - Ein- oder ausschalten des Erweiterten Hintergrundmodus (mit 1 für ein und 0 für aus)
  • [MCGR sel - Ein- oder ausschalten des Multicolor-Modus
  • [BMGR sel - Ein- oder ausschalten des Bitmap-Modus (HiRes).
  • [MXGR reg, mask, rast1, col1, rast2, col2 <,...> - Zum Unterteilen des Bildschirms in mehreren Hintergrundfarben (feste Rasterzeilen), wobei die darstellbaren Rasterzeilen 51 bis 251 sind;
    Beispiel [MXGR 33,240,152,6,252,1
  • [KMXG - Rasterzeilen wieder ausschalten
  • [CMXV col1, col2 <,...> - Tauschen der Farben im Rasterzeilenmodus
  • [SIZE colset, rowset - Definiert 40 oder 38 Zeichen pro Zeile und 25 oder 24 Zeilen im Textbildschirm (Standard: 0).
  • [XYSC xpos, ypos - verschiebt den sichtbaren Textbereich (0-7), um so ein Soft-Scrolling zu simulieren.
  • [DLCS set, address - Kopiert die Zeichensätze normal und Groß-Kleinschrift bzw. beide in den RAM zur Bearbeitung um (0, 1, 2).
  • [FBMS byte - Aktueller HiRes-Bildschirm wird mit einem Zeichen (0-255) gefüllt.
  • [FSCR byte - Aktueller Text-Bildschirm wird mit einem Zeichen (0-255) gefüllt.
  • [PLOT x,y - Zeichnet einen Pixel an x- und y- Position (Bereich: 0-319, 0-199)
  • [FLIP x,y - Invertiert einen Pixel an x- und y- Position
  • [CLPX x,y - Löscht einen Pixel an x- und y- Position
  • [MCPL x,y,sel - Zeichnet einen Multicolor-Pixel an x- und y- Position (Bereich: 0-159, 0-199) mit der Multicolor-Farbauswahl (0-3)
  • [DRAW xl, yl, x2, y2 - Zeichnet eine Linie von Startpixel x1,y1 bis Endpixel x2,y2
  • HRCS addresse - Speichert die Startadresse für die Textausgabe in HiRes-Modus
  • [CHAR zeichen, x, y - Zeichnet ein Zeichen auf den HiRes-Bildschirm an Position x,y
  • [CHRX zeichen, x, y - Löscht ein Zeichen auf den HiRes-Bildschirm an Position x,y
  • [CODE string$ - Speichert ein Zeichen in einer Zeichenkettenvariable (string$) als Zeichen-POKE-Wert ab.
  • [LOOK addresse, variable - ähnelt PEEK(Adresse); der ausgelesene Wert wird in der angegebene Variable abgespeichert
  • [STUF addresse, byte - ähnelt POKE Adresse,Wert
  • [HRAM <SuperBASIC mnemonic> <parameters> - Sinnvolle Nutzung bei Benutzung der Bank 3 mit den SuperBASIC-Befehlen PLOT, FLIP, CLPX, MCPL, DRAW, CHAR, CHRX, sowie LOOK und STUF;
    Beispiel: [HRAMDRAW 1,0,100,100
  • [CATA - Auflistung aller neuen SuperBASIC-Befehle.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Einfacher PET-Emulator
[1]
1 REM ** SIMPEL PET-EMULATOR **
2 BASIC AB 1024 - 32767; SCREEN AB 32768
3 [FSCR 0: [VS1K 0: [BANK 2 : PRINTCHR$(147)
4 POKE44,4: POKE 45,3: POKE 46,4: POKE 55,0: POKE 56,128
5 NEW

Weblinks[Bearbeiten | Quelltext bearbeiten]


Quellen

  1. Idee aus COMPUTE! Ausgabe 12/1983, S.214 Sprache:englisch