IRQ-BASIC
IRQ-BASIC | |
---|---|
Entwickler | Ralf Kronemeyer, Ralf Wessling |
Verleger | Multisoft |
Release | 1986 |
Lizenz | Vollversion |
Plattform(en) | C64 |
Genre | BASIC-Erweiterung |
Steuerung | |
Medien | |
Sprache(n) | Anleitung |
Information | Preis: 39 DM |
IRQ-BASIC ist eine BASIC-Erweiterung für den Commodore 64, die von Ralf Kronemeyer und Ralf Wessling programmiert wurde. Diese bietet vorwiegend neue BASIC-Befehle zum einfachen Umgang mit der Grafik und Musik, d.h. für die Erstellung, Bearbeitung und Abfrage von HiRes, Sprites, dem Zeichensatz oder von Geräuschen und Computermusik, an. Weiterhin gibt es einen nützlichen OLD- und DIR-Befehl.
Befehle[Bearbeiten | Quelltext bearbeiten]
Toolkitbefehle[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
HELP | Auflistung aller Befehle. |
DIR | Auflistung des Directorys, ohne das Programm im Speicher zu löschen. |
OLD | Ein versehentlich durch NEW gelöschtes Programm kann durch OLD wiederhergestellt werden. |
DEL Z1 DEL Z1- DEL -Z1 DEL Z1-Z2 |
Durch DEL können Zeilen bzw. Zeilenblöcke komfortabel gelöscht werden. |
AUTO Z,ST | Automatische Zeilennummerierung mit Angabe der Schrittweite. (Beenden durch RETURN ) |
PAUSE T | Pause ermöglicht es, den Programmablauf für eine bestimmte Zeit (T = 0...255) zu unterbrechen. |
TIME X,Y,"HHMMSS",F | Die angegebene Uhrzeit wird an der Position X/Y mit der Farbe F angezeigt. Ohne Parameter wird die Uhr nicht mehr angezeigt. |
GOTO X | Beim erweiterten GOTO-Befehl kann die Zeilennummer durch einen Ausdruck oder durch eine Variable ersetzt werden. |
GOSUB X | Beim erweiterten GOSUB-Befehl kann die Zeilennummer durch einen Ausdruck oder durch eine Variable ersetzt werden. |
RESTORE X | Beim erweiterten RESTORE-Befehl kann die Zeilennummer durch einen Ausdruck oder durch eine Variable ersetzt werden. |
BEEP X | Geräusch bei Tastaturanschlag (X=1 ein ; X=0 aus) |
Soundbefehle[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
VOL L | Lautstärke einstellen (0-15) |
WAVE ST, WE$, RI, SY | Stimme (1-3), Wellenform, Ringmodulation (0=aus 1=an), Synchronisation (0=aus 1=an) |
PULS ST, PU | Tastverhältnis einstellen: Stimme (1-3), Pulsweite (0-4095). Nur bei Wellenform Rechteck notwendig. |
ENVELOPE ST,A,D,S,R | Hüllkurvenverlauf (ADSR) einstellen: Stimme (1-3), Attack (0-15), Decay (0-15), Sustain (0-15), Release (0-15) |
FRQ Z,ST | Frequenz des Tones einstellen: Stimme (1-3), Frequenz (0-65535) |
FILTER "00000000",GF,RE FILTER A$,GF,RE |
A$ (Zahlen im String dürfen 0 und 1 sein), Grenzfrequenz (0-65535), Resonanz (0-15) |
PLAY 0 PLAY AR,SP PLAY AR,SP,ZE |
ART des Play (1-3), Geschwindigkeit (0-255), Zeilennummer |
Grafikbefehle und -funktionen[Bearbeiten | Quelltext bearbeiten]
Lowres-Grafik[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
COLOR RA,HI,SF [,FL] | Farbeinstellungen: Rahmenfarbe (0-15), Hintergrundfarbe (0-15), Schriftfarbe/Cursorfarbe (0-15), Flag für Runstop+Restore (0-1) |
PLACE X,Y (,belieb. Ausdruck) | Positioniert den Cursor auf X/Y und gibt optional einen Text/Ausdruck dort aus. |
TEXT X,F (,belieb. Ausdruck) | Gibt einen Text/Ausdruck in der aktuellen Zeile mit angegebener Farbe 4-fach vergrößert aus. |
SWITCH | Zwischen zwei Textbildschirmen umschalten. Mit jedem Aufruf wird immer auf den anderen Textbildschirm umgeschaltet. |
SCROLL RI,SP | Softscrolling in 8 möglichen Richtungen in zwei Geschwindigkeiten:
Richtung (1-12): (1=links, 2=rechts, 4=oben, 5=links/oben, 6=rechts/oben, 8=unten, 9=links/unten, 10=rechts/unten) |
SCREEN X,Y | Um das Scrollen fließend aussehen zu lassen, ist es notwendig den Bildschirm zu verkleinern. X=0: 40 Zeichen/Zeile ; X=1: 38 Zeichen/Zeile Y=0: 25 Zeilen ; Y=1: 24 Zeilen |
Hires-Grafik[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
HIRES PF,HF [,PF2] [,PF3] | Hires-Modus aktivieren: Plotfarbe (0-15), Hintergrundfarbe (0-15), Plotfarbe2 (0-15), Plotfarbe3 (0-15) |
LOWRES | In den Lowres-Grafikmodus wechseln. |
CLEAR [AB] | Löscht den Grafikbildschirm. (Parameter AB (0-24) gibt an, ab welcher Zeile gelöscht werden soll.) |
PLOT X,Y,Z | Einzelnen Grafikpunkt ansteuern.
|
LINE X1,Y1,X2,Y2,Z | Zeichnet eine Linie. X1/Y1 ist die Anfangskoordinate, X2/Y2 die Endkoordinate, Z der Zeichentyp. |
REC X1,Y1,X2,Y2,Z | Zeichnet ein Rechteck. X1/Y1 obere linke Ecke, X2/Y2 untere rechte Ecke, Z der Zeichentyp. |
FILL X,Y,Z | Füllt eine beliebige umschlossene Fläche mit einer Farbe, die durch den Zeichentyp Z angegeben wird. |
TEST (X,Y) | Die Funktion TEST bestimmt, ob ein Punkt an den Koordinaten X/Y gesetzt ist, bzw. welche Farbe er besitzt. Beispiel: A=TEST(10,100)
|
CIRCLE X,Y,X1,Y1,Z [,SP] [,WA] [,WE] | Mit CIRCLE können sie Kreisen, Ellipsen, Vielecke oder Kreisbögen zeichnen.
|
WRITE X,Y,Z,EX,A$ | Text in hochauflösende Grafik schreiben. X/Y sind die Koordinaten. Z ist der Zeichentyp. A$ der Textausdruck.
|
DRAW X,Y,Z,EX,RI,A$ | Mit DRAW können sie beliebige Figuren definieren, die sie dann vergrößern und drehen können. Es funktioniert nach dem Turtle-Prinzip. |
SPLIT Y1,Y2 | Der Split-Befehl erzeugt ein Grafikfenster. Y1 ist der Beginn des Fensters (0-24). Y2 ist das Ende des Fensters (1-25). |
GSAVE "H/NAME" | Speichert die Hires-Grafik (hochauflösende Grafik). |
GSAVE "S/NAME",NR GSAVE "S/NAME",NR1-NR2 |
Speichert einzelnes Sprites (NR: 0-159) oder Spritebereich (NR1: 0-158) bis (NR2: 1-159) |
GSAVE "Z/NAME" | Speichert den Zeichensatz. |
GSAVE "L/NAME" | Speichert die Lowres-Darstellung (Textbildschirm mit Farbinformation). |
GSAVE "M/NAME" | Speichert Musikdaten |
GLOAD | Der GLOAD bezieht sich genau wie der GSAVE-Befehl auf alle Programmierbereiche. |
HARDCOPY A,B,C,D | Codes, um den Drucker auf Grafikmodus einzustellen. |
Sprites[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
DESIGN ZN,TP | DESIGN erstellt im Basic-Programm 21 REM-Zeilen (ZN=Startzeile) mit 24 Punkten (Hires: TP=0) oder 12 Punkten (Multi: TP=1). Hires: "A" = Punkt gesetzt ; "." = Punkt gelöscht. |
CREATE ZN,BN,TP | Spritedaten ab Zeilennummer (ZN) einem Spriteblock (0-159) des Typs (TP) zuweisen. (Hires: TP=0, Multi: TP=1) |
SPRITE NR,BN,F1 [,F2] [,F3] | Spritenummer (0-7) einem Spriteblock (0-159) mit enstrechender Farben zuweisen. |
SET NR SET NR,X,Y |
Sprite NR ausschalten. Sprite NR einschalten und Spriteposition X/Y für Sprite NR festlegen. |
SIZE NR,VX,VY,PR | SIZE setzt die Sprite-Eigenschaften für Sprite NR. VX bzw. VY=1 schaltet die Sprite X- bzw. Y-Vergrößerung ein (0=Normalgröße). PR(0-1) setzt die Spritepriorität. |
TURN BN,FL | TURN dreht den angegebenen Spriteblock BN um 180°. (Hires: FL=0 ; Multi: FL=1) |
SCOPY FL,BN,X,Y | FL=0: Kopiert einen Teil der Grafik mit den Eckkoordinaten X,Y (oben links) in den Spriteblock BN. FL=1: Kopiert den Spriteblock BN in den Grafikbereich X,Y (links oben). |
CHANGE NR CHANGE NR,SP CHANGE NR,SP,BA-BE CHANGE NR,SP,B1,B2 (,B3,.....) |
Sprite NR wird nicht mehr animiert. SP=Animationsgeschwindigkeit von Sprite NR ändern. Erstellt eine Sprite-Animationen für Sprite NR. (NR=Spritenummer, SP=Animationsgeschwindigkeit, BA=Erster zu animierender Spriteblock, BE=Letzter zu animierender Spriteblock. Erstellt eine Sprite-Animationen für Sprite NR. (NR=Spritenummer, SP=Animationsgeschwindigkeit, B1,B2,B3,..... sind die zu animierenden Spriteblöcke. |
MOVE NR,SP,UM,X1,Y1,X2,Y2 MOVE NR,SP,UM,E,X2,Y2 MOVE NR,SP,UM MOVE NR,SP MOVE NR |
Bewegt das Sprite NR von X1/Y1 nach X2/Y2. (UM=0 einfach bzw. UM=1 kontinuierlich hin und her.) Bewegt das Sprite NR nach X2/Y2. Ändert das Umlaufflag UM von Sprite NR. Ändert die Bewegungsgeschwindigkeit SP(0-255) von Sprite NR. Stoppt die Bewegung von Sprite NR. |
Zeichensatzprogrammierung[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
DESIGN ZN,TY | DESIGN erstellt im Basic-Programm 8 REM-Zeilen (ZN=Startzeile) mit 8 Punkten (Hires: TP=2) oder 4 Punkten (Multi: TP=3). Hires: "A" = Punkt gesetzt ; "." = Punkt gelöscht. |
CHAR ZN,PO,TY | Schreibt die Zeichensatzdaten ab Zeile ZN des Zeichens PO (0-255) in den Zeichensatzspeicher. (Hires: TP=0 oder Multi: TP=1). |
MEM | Durch MEM wird der originale Zeichensatz wiederhergestellt. |
MULTI C1,C2,C3 | Durch den Befehl MULTI werden die drei Farben für die Zeichen in Multicolor angegeben. (Multicolor nur wenn Cursorfarbe >7) |
ZCOPY FL,PO,X,Y | FL=0: Kopiert die Teilegrafik X/Y in das Zeichen PO. FL=1: Kopiert das Zeichen PO in die Grafik an die Koordinaten X/Y. |
Weitere IRQ-BASIC Befehle[Bearbeiten | Quelltext bearbeiten]
Befehl | Beschreibung |
CRASH ZE,SS$,SH$ CRASH 0 |
Der CRASH-Befehl ruft ein Unterprogramm auf, wenn zwei Sprites aufeinander stoßen oder ein Sprite mit dem Hintergrund kollidiert, wenn dieses durch die Strings SS$ und SH$ erlaubt wurden. Beispiel: SS$="00000101" = Aufruf, wenn Sprite 0 und 2 kollidieren. Beispiel: SH$="01100111" = Aufruf, wenn Sprite 0,1,2,5 oder 6 auf Hintergrund treffen. CRASH 0 schaltet die Unterprogrammbehandlung wieder ab. |
RETURN C | Beendet ein Unterprogramm, dass durch CRASH aufgerufen wurde. |
BASIRQ ZE,T BASIRQ 0 |
Ein Unterprogramm, dass in der Zeile ZE beginnt, wird in einem Zeitabstand T kontinuierlich aufgerufen. (T=1: 50ms ; T=50: 2500ms) BASIRQ 0 schaltet die Unterprogrammbehandlung wieder ab. |
RETURN B | Beendet ein Unterprogramm, dass durch BASIRQ aufgerufen wurde. |
Speicherverwaltung[Bearbeiten | Quelltext bearbeiten]
Adressbereich | Belegung |
$0000-$033B | Zeropage (RAM-Speicher für Betriebssystem) |
$033B-$03FF | Blockzeiger für den CHANGE-Befehl |
$0400-$07FF | Variablenspeicher für IRQ-Befehle u.ä. |
$0800-$5FFF | Speicher für Anwendungsprogramm |
$6000-$9FFF | Programm IRQ-Basic |
$A000-$BFFF | Platz für Musikdaten; diverse Tabellen für IRQ-Basic |
$C000-$C3FF | Video RAM I |
$C400-$C7FF | Video RAM II |
$C800-$CFFF | Spritedaten für Spriteblöcke 0-31 |
$D000-$DFFF | Zeichensatz |
$E000-$FFFF | Grafik-Speicher bzw. Spriteblöcke 32-159 |
Diskette[Bearbeiten | Quelltext bearbeiten]
Das Inhaltsverzeichnis der Originaldiskette:
0 " irq-basic " 86 2a 66 "irq-basic" prg 0 "................" del 67 "irq-maler",8: prg 17 "z/maler" prg 8 "l/maler" prg 8 "s/maler" prg 1 "s/maler ii" prg 2 "................" del 61 "irq-synthi",8: prg 17 "z/irq-synthi" prg 8 "l/irq-synthi" prg 9 "s/irq-synthi" prg 20 "irq-sounds" seq 1 "irq-koordinaten" seq 2 "irqtoene" seq 1 "s/irq-boxes" prg 0 "................" del 22 "chareditor",8: prg 2 "s/charsprites" prg 8 "l/charmenue" prg 0 "................" del 6 "wuerfel-demo" prg 5 "move&change-demo" prg 6 "timechars" prg 5 "duesenjet" prg 5 "sounddemo" prg 19 "tonband" prg 10 "spritedemo" prg 6 "scroll-demo" prg 17 "z/zeichen i" prg 17 "z/zeichen ii" prg 17 "z/zeichen iii" prg 17 "z/zeichen iv" prg 17 "z/zeichen v" prg 17 "z/zeichen vi" prg 17 "z/zeichen vii" prg 17 "z/zeichen viii" prg 67 "irq-runtime v1." prg 1 "boot" prg 23 blocks free.
Beispiele[Bearbeiten | Quelltext bearbeiten]
Softscrolling
Das folgende Listing zeigt das Programm "scroll-demo.prg" von der Originaldiskette.
Anmerkung: Die Animation ruckelt etwas wegen der geringen Framerate.
5 GOSUB 910 10 REMAAAAAAAA 11 REM...AA... 12 REM...AA... 13 REM...AA... 14 REMAAAAAAAA 15 REMA......A 16 REMA......A 17 REMA......A 18 : 20 CHAR 10,0,0 50 PRINT CHR$(147) 60 TEXT 10,14,"SCROLL" 100 PLACE 0,10,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" 110 PLACE 0,11,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" 120 PLACE 0,12,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" 130 PLACE 0,13,"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" 140 PLACE 0,23,"ICH BIN IN DER ZEILE : 200 GOTO 200 ***" 150 SET 1,100,140 : SET 2,100,140 160 SPRITE 1,0,1 : SPRITE 2,0,7 170 MOVE 1,1,1,0,150,350,150 180 MOVE 2,2,1,350,145,0,145 190 SCROLL 1,1 200 GOTO 200 910 REM..AAAAAAAAAAAA.......... 911 REMAAA.....AA....AA........ 912 REMAAA.....AA.....A........ 913 REMAAAAAAAAAA.....A........ 914 REMAAA.....AA.....A........ 915 REM.AA.....AA.....A.A...... 916 REM..A.....AA...A.AAAAA.A.. 917 REM..AAAAAAAA..AA.AAAAA.A.. 918 REM..AAAAAAAA....AAAAAAAAA. 919 REM.A....AAAAAAA..AAA.....A 920 REMA.AAAA.AAAAAA..AA.AAAA.A 921 REM.AA..AA.AAAAAAAA.AA..AA. 922 REM.A....A.AAAAAAAA.A....A. 923 REM.AA..AA.AAAAAAAA.AA..AA. 924 REM..AAAA............AAAA.. 925 REM........................ 926 REM........................ 927 REM........................ 928 REM........................ 929 REM........................ 930 REM........................ 940 CREATE 910,0,0 950 RETURN
Quellen[Bearbeiten | Quelltext bearbeiten]
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Thema: Programm ´IRQ Basic´ gesucht auf Forum64.de