Magic Disk 64

home to index to text: MD9102-UTILITIES-PEGASUS-BASIC_ANLEITUNG_TEIL_2.txt
     Pegasus-Basic Anleitung Teil 2     
     

PLOT ( modus), x, y(, x, y) - setzt einen Punkt im Modus# modus an Koordinate x, y.

PLOT (modus),x1,y1 TO x2,y2 (TO x3,y3..)

- zeichnet eine Linie im Modus # modus von x1, y1 nach x2, y2( nach x3, y3) .
PLOT TO x, y - zieht eine Linie vom zuletzt gezeichneten Punkt nach x, y.
HLINE ( modus), x1 TO x2, y - zeichnet eine horizontale Linie von Spalte x1 nach Spalte x2 in Zeile y.
VLINE ( modus), x, y1 TO Y1 - zeichnet eine vertikale Linie in Spalte x von Zeile y1 nach Zeile y2 .

FRAME (modus), x1, y1, x2, y2           

- zeichnet ein Rechteck mit den gegenüberliegenden Eckpunkten x1, y1 und x2, y2 .
BOX ( modus), x1, y1, x2, y2 - zeichnet ein ausgefülltes Rechteck mit den gegenüberliegenden Eckpunkten x1, y1 und x2, y2 .
CIRCLE ( modus), x, y, r - zeichnet einen Kreis mit dem Mittelpunkt bei x, y und Radius r (2-255) .
FILL x, y - füllt eine Fläche um x, y.
HARDCOPY - gibt eine Hardcopy des Grafikbildschirms auf einem Drucker (#4) aus.
MOVE int - bewegt den Grafikcursor um # int Schritte.
MOVE TO x, y - bewegt den Grafikcursor nach x, y.
TURN winkel - dreht den Grafikcursor um # winkel Grad.
TURN TO winkel - dreht den Grafikcursor auf # winkel Grad.
PENUP - der Grafikcursor wird nur bewegt.
PENDOWN - der Grafikcursor zeichnet bei jeder Bewegung.
GSIZE gx, gy(, ax, ay) - legt die Buchstabengröße für GPRINT in xund y-Richtung fest (1-8)( und bestimmt den Abstand der Buchstaben (0-255) zueinander) .
GPRINT ( modus), x, y, str$ - gibt den Text str$ im Modus # modus ab Koordinate x, y aus. Als Steuerzeichen werden anerkannt:
RVS ON/ RVS OFF Darstellung CTRL+1-8& CBM+1-8 Schriftfarbe CTRL+ f, dann Farbtaste Hintergrund CTRL+ h x-Schreibrichtung CTRL+ v y-Schreibrichtung REPEAT. . . UNTIL bedingung - die zwischen REPEAT und UNTIL angegebenen Befehle werden solange ausgeführt, bis die Bedingung wahr wird.
WHILE bedingung. . . WEND - solange die Bedingung wahr ist, werden die Befehle zwischen WHILE und WEND ausgeführt. Diese Schleifenkonstruktion kann, genau wie REPEAT. . .
UNTIL, auch mehrere Zeilen umfassen.
Der Unterschied zur REPEAT-Schleife besteht darin, daß die Bedingung zu Beginn der WHILE-Schleife getestet wird und nicht, wie bei REPEAT. . UNTIL, am Ende. So kann es passieren, daß die WHILE-Schleife kein einziges Mal ausgeführt wird.
IF bedingung THEN befehle1 : ELSE befehle2 - ist die Bedingung wahr, so werden Befehle1 ausgeführt. Wenn nicht kommen die Befehle2 an die Reihe.

IF bedingung GOTO zeile1:ELSE zeile2    

- ist die Bedingung wahr, so wird in Zeile1 gesprungen, sonst in Zeile2 .

LIST    zeilennr/label                  
RUN     zeilennr/label                  
GOTO    zeilennr/label                  
GOSUB   zeilennr/label                  
RESTORE zeilennr/label                  

- diese fünf Befehle haben erweiterte Eigenschaften. Statt einer Zeilennummer kann nun ein Label, d. h. ein symbolischer Name benutzt werden.
Erlaubte Zeichen für den Labelnamen sind die Buchstaben A-Z, die Ziffern 0-9 und der Punkt. Ein Label steht direkt nach der Zeilennummer und beginnt grundsätzlich mit einem Buchstaben.

  BEISPIELPROGRAMM:                     
  100 GOSUB AUSGABE                     
  110 END                               
  200 AUSGABE:PRINT"TEST"               
  210 RETURN                            

Beginnt ein Label mit einem Befehlswort ( z. B. : TOrtengrafik), so muß das Label mit dem Kennwort " LABEL" markiert werden:

  BEISPIELPROGRAMM:                     
  100 GOSUB TORTENGRAFIK                
  110 END                               
  200 LABEL TORTENGRAFIK                
  210 PRINT "TORTEN SCHMECKEN GUT!"     
  220 RETURN                            

Natürlich sind auch berechnete Sprünge möglich: GOTO 1000+10* A Dabei ist folgendes zu beachten: Ein Befehl der Form GOSUB Z oder RESTORE I*100+60000 wird primär als Sprung auf das Label " Z" bzw." I" interpretiert.
Um Mißverständnissen aus dem Wege zu gehen, müssen Sie vor das " Z" nun einen Punkt setzen: GOSUB . Z Label werden normalerweise vom Anfang des Programms her gesucht. Schreibt man vor dem Labelnamen allerdings das Zeichen "<", so beginnt die Suche erst ab der aktuellen Zeile. Das kann Zeit sparen, setzt jedoch voraus, daß der Sprung nach vorne, d. h. auf höhere Zeilen erfolgt.
RADIAN - schaltet alle Winkelangaben bei trigonometrischen Berechnungen auf das Bogenmaß.
DEGREE - alle Winkelangaben erfolgen in Grad.
SWAP var1, var2 - vertauscht die Variablen var1 und var2 miteinander. Beide müssen vom gleichen Variablentyp sein. Dieser Befehl entspricht der allgemein verwendeten Ersatzform: Q= VAR1 : VAR1= VAR2 : VAR2= Q DOKE adr, int - speichert die Zahl # int im Format LO-/ Hibyte an Adresse # adr/ adr+1 .
DELAY int - hält das Programm für # int/50 s an.
CLS ( zeile) - löscht den gesamten Textbildschirm ( löscht Zeile # zeile) .
CLS zeile1, zeile2(, spalte1, spalte2) - löscht den Textbildschirm im Bereich der Zeilen zeile1 bis zeile2( innerhalb der Spalten spalte1 bis spalte2) .
COLOUR farbregister, farbe(, farbregister, farbe) - legt die Farben (1-16) für ein bestimmtes Register fest:

1 : Schriftfarbe                        
2 : Rahmenfareb                         
3 : Hintergrundfarbe                    
4 : MC-Farbe 1                          
5 : MC-Farbe 2                          
6 : MC-Farbe 3                          
7 : Sprite-MC 1                         
8 : Sprite-MC 2                         
9 : Punktfarbe 1                        
10: Punktfarbe 2                        
11: Punktfarbe 3                        

MULTI ON/ OFF - schaltet den Multicolourmodus an/ aus.
CHAR zeile, spalte(, farbe)(, text) - setzt den Cursor auf Position ( zeile, spalte), bestimmt die Schriftfarbe und gibt einen Text text aus.
CHARSET nr - kopiert den Originalzeichensatz # nr (1/2) in den Zeichensatzspeicher.

DEFINE CHAR bsc(, MULTI)                

- bestimmt den Bildschirmcode ( bsc,0-255) des zu definierenden Zeichens.
Ist der Zusatz MULTI angegeben, so wird ein Multicolourzeichen definiert.

DEFINE SPRITE block(, MULTI)            

- legt den zu ändernden Spriteblock (1-16) fest. MULTI bewirkt die Definition eines MC-Sprites.
CODE str$ - Dieser Befehl zeigt sich für die Festlegung des Aussehens eines Zeichens oder Sprites verantwortlich.
Die Definition eines neuen Zeichens besteht aus acht CODE-Befehlen ( entsprechend der Höhe eines Zeichens auf dem Bildschirm) . Für ein Sprite sind 21 CODE-Befehle notwendig.
Die Länge des Definitionsstrings beträgt 8 bzw.24 Zeichen, bei einer MULTI-Definition halbiert sie sich auf4 bzw.12 Zeichen. Im Definitionstring sind erlaubt:

  NORMALMODUS " ", "." Punkt löschen    
              "+", "*" punkt setzen     
  MULTI-MODUS " ", "." Punkt löschen    
              "a", "1" Punkt setzen: MC1
              "b", "2" Punkt setzen: MC2
              "c", "3" Punkt setzen: MC3
SPRITE nr,block,farbe,xexp,yexp,pri,mult

- legt die Parameter eines Sprites fest.
# Nr ist die Nummer des Sprites (1-8),# block der Block in dem es definiert ist (1-16) und # farbe die Spritefarbe.
# Xexp,# yexp,# prior und # multi (0= aus 1= an) legen die xund y-Vergrößerung, Priorität ( vor oder hinter den Zeichen) und den Multicolourmodus (1= MULTI) fest.
Innerhalb des Befehls können Parameter ohne weiteres weggelassen werden, so legt SPRITE 1,3,7 fest, daß Sprite#1 in Block 3 definiert ist und die Farbe 7( blau) hat. Alle anderen Parameter werden nicht verändert.
Ähnlich bestimmt SPRITE 7,,,1,1 nur die Vergrößerung in xund y-Richtung.
SPRON nr(, nr) - schaltet das Sprite # nr an.

SPRON nr1 TO nr2(, nr1 TO nr2)          

- schaltet die Sprites # nr1 bis # nr2 an.
SPROFF nr(, nr) - schaltet das Sprite # nr wieder aus.

SPROFF nr1 TO nr2(, nr1 TO nr2)         

- schaltet die Sprites # nr1-# nr2 aus.
SETSPRITE nr, x, y - setzt das Sprite # nr auf die Koordinate x, y ( x=0-511, y=0-255) .

DIE NEUEN FUNKTIONEN:                   
var = DEG(num)                          
wandelt #num von Bogenmaß in Grad um.   
var = RAD(num)                          
wandelt #num von Grad in Bogenmaß um.   

var = FRAC( num) Nachkommateil der Zahl # num.
var = MOD( num1, num2) Ganzzahliger Rest der Division num1/ num2 var = ROUND( num) rundet # num auf ein ganzzahliges Ergebnis.
var = ROUND( num, anz) rundet # num auf # anz Nachkommastellen.
var = DEC( str$) wandelt die hexadezimale Zahl str$ ins Dezimalsystem um.
var = BIN( str$) wandelt die Binärzahl str$ ins Dezimalsystem um.
var = DEEK( adr) entspricht PEEK( adr)+256* PEEK( adr+1) .
var = INSTR( str1$, str2$(, pos)) prüft, ob str2$ in str1$( suchend ab Position # pos) enthalten ist.
var = JOY( port) liest den Joystickport # port.

      1                                 
            Ist der Feuerknopf gedrückt,
    8 | 2   so erhöhen sich die Werte um
      |     128.                        
  7 --0-- 3                             
      |                                 
    6 | 4                               
      5                                 
var = POT(nr)                           
Wert des Analogeingangs #nr (1-4).      

var = SCREEN ( zeile, spalte) Bildschirmcode des Zeichens bei Position # zeile,# spalte.
var = TEST ( x, y) prüft, ob in der Grafik ein Punkt gesetzt ist.
var = USING format$ ; var. . .
erzeugt einen String, in dem die angegebenen Variablen formatiert werden. Hierbei gelten die folgenden Vereinbarungen:
# ist eine Ziffer ### .## ist eine Zahl mit 3 Vorkommaund 2 Nachkommastellen.

!      ist das erste Zeichen eines      
       Strings.                         
/   /  sind (Anzahl Spaces +2) Zeichen  
       eines Strings.                   
&      ist der komplette String.        
<zchn  Zeichen zchn wird direkt über-   
       nommen.                          

Steht vor einem # ein +, so wird das Vorzeichen immer angegeben.
BEISPIELE:

?USING "###.###";π       => "  3.1415"  
?USING "###.###";-π      => "  3.1415-" 
?USING "/     /";"COMMODORE" => "COMMO" 
var$ = DS$                              
Fehlerstatus des aktuellen Laufwerks.   

var$= Hex$( int) wandelt # int in eine Hex-Zahl um.
var$= BIN$( int) wndelt # int in eine Binärzahl um.
var$= SPACE$( int) erzeugt einen String mit # int Leerzeichen.
var$= UCASE$( str$) wandelt alle Kleinbuchstaben in str$ in Großbuchstaben um.
var$= STRING$( asc, anz) erzeugt einen String aus # anz Zeichen mit dem ASCII-Wert # asc.
var$= STRING$( str$, anz) erzeugt einen String, der anzmal str$ enthält.
var$= INPUT$( anz) liest # anz Zeichen von der Tastatur.
var$= INPUT$(# filenr) liest solange Zeichen aus dem File # filenr, bis ein CR gelesen wird.
Entspricht INPUT# filenr, var$ kann jedoch auch Trennzeichen ( Komma, Semikolon) lesen.
var$= INPUT(# filenr, anz) liest # anz Zeichen aus dem File # filenr.
var$= TIME$ liefert die Uhrzeit ( entspricht nicht TI$) .

var = SPRITEX(nr)                       
var = SPRITEY(nr)                       
X- bzw. y-Koordinate von Sprite #nr.    
BEISPIEL FÜR EINE ERWEITERUNG:          

Ein Beispiel für die Erweiterbarkeit von PBasic mit neuen Befehlen und Funktionen ist das Programm " WINDOW. O" . Es stellt Befehle für die Programmierung von Fenstern zur Verfügung. Sie laden und starten es mit BRUN " WINDOW. O" .
Dabei bindet sich diese Erweiterung über die bereits erwähnten Vektoren bei $0334 und $0336 in PBasic ein.
Bitte laden Sie nun den dritten Teil der Pegasus-Basic Anleitung.

Valid HTML 4.0 Transitional Valid CSS!