SuperBASIC 64
SuperBASIC 64 | |
---|---|
Entwickler | Martin C. Kees |
Verleger | COMPUTE! |
Release | 1983 |
Plattform(en) | C64 |
Genre | BASIC-Erweiterung |
Steuerung | |
Medien | , |
Sprache(n) | |
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]
[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,y2HRCS 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
- ähneltPEEK(Adresse)
; der ausgelesene Wert wird in der angegebene Variable abgespeichert[STUF addresse, byte
- ähneltPOKE 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]
- "SuperBASIC 64"; COMPUTE!, Ausgabe 12/1983, S.198
- "SuperBASIC 64"; COMPUTE!, Ausgabe 12/1983, S.198 ff. (PDF bei archive.org)
- CSDb
Quellen
- ↑ Idee aus COMPUTE! Ausgabe 12/1983, S.214