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,55deaktiviert SuperBASIC wieder. - Nach dem Laden eines Programms oder nach dem Deaktivieren wird SuperBASIC wieder mit
POKE 1,54aktiviert.
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 den Großschrift-Zeichenssatz (0), den Groß-Kleinschrift-Satz (1) oder beide Zeichensätze (2) in den RAM zur Bearbeitung um.[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[Bearbeiten | Quelltext bearbeiten]
- ↑ Idee aus COMPUTE! Ausgabe 12/1983, S.214
