Magic Disk 64

home to index to html: MD9002-UTILITIES-WINDOW_BASIC.html
             WINDOW BASIC               
            --------------              
Mit den über  70  Befehlen,  die  WINDOW
BASIC liefert, dürfte es in Zukunft kein
Problem mehr für  Sie  sein,  ein  erst-
klassiges Programm für  die  MAGIC  DISK
zu schreiben.                           
Da es sich bei WINDOW BASIC um ein  sehr
umfangreiches Programm  handelt,  fangen
wir gleich mit der  Mammutanleitung  an:
MWINI                                   
Pointer  für  Windowverarbeitung  werden
gesetzt. Nach  dem  Start  der  Basicer-
weiterung ist MWINI für den  Direktmodus
schon  gesetzt.  Trotzdem   muß   dieser
Befehl am Anfang eines jeden WINDOWBASIC
Programms   stehen,   was    aber    die
Effektivität von WINDOW BASIC auf keinen
einschränkt.                            
WIN Nummer,xPos,yPos,xAusbr,yAusbr,rf,sf
Nummer:  Ihnen   stehen   insgesamt   24
Windows  zur  Verfügung,  die  mit  drei
Kennbuchstaben   unterschieden   werden.
A) Normales Window mit Rahmen           
B) Reverses Window (Platte)             
C) Reverses Window mit Rahmen           
Nach dem Kennbuchstaben steht die  Zahl,
die das Window  weiter  charakterisiert.
0)   Window ohne Text mit Rahmen        
1)   Window ohne Text mit Rahmen        
     (Hintergrund wird gespeichert)     
2)   Window mit Text und Rahmen         
3)   Window mit Text und Rahmen         
     (Hintergrund wird gespeichert)     
4-7) Wie 0 bis 3 aber ohne Rahmen       
Beispiele für  "Nummern"  wären  WIN  A1
oder auch WIN B7 ...                    
xPos: Dies ist die Spalte,  in  die  der
Cursor nach dem Öffnen des  Windows  ge-
setzt wird (Wert 1 bis 36).             
yPos: Dies ist die  Zeile,  in  die  der
Cursor gesetzt wird  (Wert  2  bis  24).
xAusbr: Breite des Bereichs  im  Window.
yAusbr: Höhe  des  Bereichs  im  Window.
rf: Rahmenfarbe des Windows (Wert 0-15).
sf: Schattenfarbe  des  Windows  (0-15).
    VORSICHT: Bei Windows ohne Schatten,
    darf auch keine Schattenfarbe einge-
    setzt werden.                       
Wird ein Window mit  Text  geöffnet,  so
ist  hinter  der  Rahmenfarbe  noch  ein
Komma,  ein  Anführungszeichen  und  der
entsprechende Text anzuhängen. Der  Text
wird hierbei optimiert,  d.h.  wenn  ein
Wort über den Rand des  Windows  hinaus-
geht, wird es in die nächste  Zeile  ge-
setzt. Wollen Sie vor dem Erreichen  des
rechten  Randes  in  die  nächste  Zeile
springen, so benutzen  Sie  "Pfeil  nach
links" (<). Achten Sie aber darauf,  daß
zwischen dem  letzten  Zeichen  und  "<"
eine Leerstelle vorhanden ist.          
Sollte Ihr Window so definiert sein, daß
es den Bildschirm  verlassen  würde,  so
wird eine Fehlermeldung ausgegeben. Dies
geschieht auch, wenn Ihr Wort oder  Satz
das Window an Länge überragt.           
Falls bei einem  Direktwindow  der  Text
nicht  in  eine  Basiczeile  passt,   so
können Sie in  der  nächsten  Basiczeile
weiterschreiben.  Sie  geben   lediglich
eine höhere Zeilennummer  an  und  fügen
ein  "REM+"  an.   Direkt   anschließend
müssen Sie den Text in Anführungszeichen
eingeben.  Von  diesen   "REM+"   Zeilen
können Sie so viele  benutzen,  wie  Sie
möchten. Werden  zu  viele  Windows  mit
dieser Zwischenspeicherung geöffnet,  so
wird eine Fehlermeldung ausgegeben.     
Noch etwas: Bei den Windows B und C  mit
direkter  Texteingabe  sollten  Sie   am
besten  ein  CTRL/RVS  ON   setzen,   da
ansonsten  das  Window  einen  seltsamen
Eindruck auf den Betrachter macht.      
WCLOSE:    Das    zuletzt     geöffnete,
zwischengespeicherte Window wird  wieder
geschlossen.                            
FLASH   "TEXT":   Ein   Text,   der   in
Anführungszeichen  hinter   dem   Befehl
steht, wird  ab  der  aktuellen  Cursor-
position auf  den  Bildschirm  geflasht.
TYPE Speed "TEXT": Ein Text wird ab  der
aktuellen Cursorposition auf  den  Bild-
schirm  getippt.  Die   Variable   SPEED
stellt die Geschwindigkeit dar und  kann
einen  Wert  von  1  bis  255  annehmen.
DIR:  Das  Directory  wird   ausgegeben.
COM "Befehl": Dieser  Punkt  gibt  einen
Diskettenbefehl   aus.   Zum   Beispiel:
COM"S:NAME"; das Programm Name wird  von
der Diskette gelöscht.                  
ACH xPos, yPos, xAusbr, yAusbr          
Diesen Befehl benutzen Sie  zur  Auswahl
von  Menüpunkten.  Haben  Sie  also  ein
Window geöffnet und CHOOSE (ACH=ACHOOSE)
gesetzt, so können Sie mit  den  Cursor-
tasten oder dem Joystick einen Menüpunkt
anklicken. Mit den  Variablen xPos  etc.
wird wie bei WIN verfahren.             
Die  Zahl  des  angewählten  Menüpunktes
wird  in  der  Variable  PO  (=POSITION)
gespeichert und kann mit PRINT PO ausge-
geben werden. Es bietet  sich  auch  an,
ein ON  PO  GOTO  (GOSUB)  zu  benutzen.
DLOAD "NAME", adr                       
Ein  Programm  wird  an  eine  in  "adr"
vorgegebene Adresse geladen, wobei  alle
BASICPOINTER erhalten bleiben. Auch hier
wird wieder eine Variable definiert: OK.
Wenn ein Programm vollständig  und  ohne
Fehler  geladen  wurde,  so  ist   OK=1.
Sollte der Rechner  das  Programm  nicht
finden, oder sollte es sogar  fehlerhaft
sein, so ist OK=0.                      
DSAVE "NAME", anf, end (,neuan)         
Der Speicherbereich "anf" bis "end",  in
dem  z.B.  ein  Maschinenspracheprogramm
liegen   kann,   wird    auf    Diskette
gespeichert.  Achten  Sie   aber   bitte
darauf,  "end"  als  "end+1"   anzugeben
(end=8000; end+1=8001).                 
Wenn  das  Programm  beim   Absolutladen
(,8,1) an  eine  andere  Speicheradresse
geladen werden soll, so  kann  die  neue
Adresse in "neuan"  stehen.  Auf  diesem
Wege lassen sich z.B.  Autostartroutinen
ohne  die  Benutzung  des   Diskmonitors
schreiben.                              
LOCK Nummer                             
Dieser Befehl  dient  zum  Verschlüsseln
bzw.  Schützen   eines   Basicprogramms.
Nummer  Funktion                        
  1     Die Resetfunktion wird außer    
        Kraft gesetzt.                  
  2     Bei einer Fehlermeldung bzw. bei
        Ausgabe von READY stürzt der    
        Rechner ab.                     
  3     Bei Eingabe von LIST versinkt   
        Ihr Rechner in Tiefschlaf und   
        ist nur durch Aus- und wieder   
        Einschalten wiederzubeleben.    
  4     RUNSTOP/RESTORE wird ausge-     
        schalten.                       
  5     Der Rechner stürzt bei Eingabe  
        von SAVE ab.                    
Es empfiehlt sich die LOCK-Befehle  erst
bei fertigen Programmen einzubinden,  da
es sonst zu Komplikationen kommen kann. 
UNLOCK Nummer                           
Der Schutz "Nummer" wird  wieder  aufge-
hoben.                                  
BCH fr, fs, ft                          
Dies ist ein weiteres CHOOSE,  denn  bei
diesem  Befehl  erscheint  ein   kleiner
Pfeil in der linken oberen Ecke und  ein
Window in den oberen vier Zeilen, in dem
Sie mit dem Joystick in Port  #2  einige
Menüpunkte       auswählen       können.
Es  stehen  Ihnen  bekannte   Funktionen
wie z.B. Directory oder Disk Command zur
Verfügung. Dabei ist "fr"  die  Rahmen-,
"fs"  die  Schattenfarbe  und  "ft"  die
Farbe des Textes.                       
Dieses CHOOSE können Sie aber  auch  zur
Auswahl  eigener  Menüpunkte   benutzen.
Wenn Sie ein Wort unterhalb  des  oberen
Windows  anklicken,  so  optimiert   der
Computer  dieses  Wort  linksbündig  und
legt die  Zahl  in  PO  ab.  Diese  Zahl
können Sie dann mit "IF PO  =...THEN..."
abfragen (es sind Zahlen von 1  bis  999
möglich). Es ist also egal, ob  Sie  ein
Wort links  oder  rechts  anklicken,  es
erscheint immer derselbe Wert. Soll  ein
Menüpunkt aus mehreren Wörtern bestehen,
so muß zwischen diesen  ein  SHIFT-SPACE
anstatt einem normalen SPACE  eingegeben
werden.                                 
CCH                                     
Dieser Befehl ähnelt BCH, doch  es  wird
nicht die obere  Menüleiste  ausgegeben.
Ferner wird ein angeklicktes Wort  nicht
optimiert, d.h. die Position in  PO  ist
die Originalposition. So können Sie z.B.
einen Spriteeditor etc.  entwerfen, ohne
eine  umständliche  Cursorbewegung  pro-
grammieren  zu  müssen.  Dabei  kann  PO
zwischen 0 und 999 (!) liegen.          
Möglich wäre jetzt z.B. POKE 1024+PO,xx.
Mit dieser  Anweisung  bringen  Sie  ein
Zeichen xx an die  Stelle  des  Cursors.
BPOS fr, fs, ft                         
Die   Variablen   haben   die    gleiche
Bedeutung      wie      unter       BCH.
Wenn  Sie   einmal   erfahren   möchten,
welchen Wert PO nach BCH annehmen  wird,
so  geben  Sie  in  Ihrem  Programm  den
Befehl BPOS ein.  BCH  wird  durch  BPOS
ganz normal  angesprungen,  danach  wird
aber  die  Position  einfach   auf   dem
Bildschirm  ausgegeben, und  das  Basic-
programm unterbrochen.  Nun  kennen  Sie
den PO-Wert  nach  dem  Anklicken  eines
bestimmten Menüpunktes, und  Sie  können
ihn in Ihr Programm einsetzen.          
CPOS                                    
Dies   entspricht   dem   vorhergehenden
Vorgang, nur auf CCH bezogen.           
BSET hf, rf                             
Bei diesem Befehl stehen  "hf"  für  die
Hintergrund- und "rf"  für  die  Rahmen-
farbe. Diese Farben werden  gesetzt  und
für  SEC  (siehe   unten)   gespeichert.
BCOL hf, rf                             
Die Variablen sind  zu  BSET  identisch,
wobei  die   Farben   allerdings   nicht
gespeichert werden.                     
SEC                                     
Nehmen wir einmal an,  Sie  benutzen  in
Ihrem       Programm        individuelle
Farbkombinationen, die Sie  im  weiteren
Ablauf ändern,  um  spezielle  Programm-
teile  hervorzuheben.  Wenn  Sie   jetzt
wieder ins Hauptmenü zurückspringen,  so
müssen Sie wieder  die  lästigen  Farben
setzen. Um dieses Übel zu  umgehen  ver-
wenden Sie den Befehl SEC, denn der ruft
die Farben auf,  die  mit  BSET  gesetzt
wurden.                                 
COL Nummer                              
Alle Zeichen auf dem Bildschirm erhalten
die Farbe "Nummer" (0-15).              
SCOP                                    
Ein Window, das sich über  den  gesamten
Bildschirm erstreckt, wird geöffnet. Die
Hintergrundfarbe wird allerdings konser-
viert,  bevor  der  Bildschirm  gelöscht
wird.                                   
SCCL                                    
Das  zuletzt   geöffnete   Window   wird
geschlossen,   und    die    zwischenge-
speicherte  Hintergrundfarbe   zurückge-
setzt. Gleichzeitig wird  jedes  Zeichen
weiß eingefärbt.                        
RWAIT                                   
Das Programm wartet, bis  entweder  eine
Taste,  oder  der  Feuerknopf   gedrückt
wird.                                   
SETDN #                                 
Dieser Befehl führt  zu  einer  Änderung
der Device-Numer bei allen Window-Basic-
Befehlen, nicht aber dem  normalen  LOAD
oder SAVE. So können Sie mit den Wi-Bas-
Befehlen   gleich   mehrere    Laufwerke
ansteuern.                              
HELP                                    
Alle Befehle dieser  Erweiterung  werden
aufgelistet.                            
MEM                                     
Der   noch   zur   Verfügung    stehende
Speicherplatz  wird   angezeigt,   wobei
zwischen der Programmlänge und dem  noch
freien Speicherplatz unterschieden wird.
FON                                     
Hiermit   werden   die   Funktionstasten
belegt. Diese sind  nur  im  Direktmodus
verwendbar und sind sonst  abgeschaltet.
F1 LIST       F2 PAD                    
F3 RUN        F4 MEM                    
F5 LOAD "     F6 SAVE "                 
F7 DIR        F8 HELP                   
FOFF                                    
Abschalten der  Funktionstastenbelegung.
KEY Nummer "TEXT"                       
Mit  diesem  Befehl  können   Sie   Ihre
Funktionstasten  nach  eigenen  Wünschen
definfieren.  Dabei  muß  die   Variable
"Nummer" ein  Zahlenwert  zwischen  eins
und acht annehmen. Unter  "TEXT"  können
Sie jede Art von Basicbefehl  verwenden.
Außerdem    wurde    eine    Erweiterung
eingebaut, so  daß  Sie,  wenn  Sie  für
einen  Befehl  einen  freien  Bildschirm
benötigen,   einfach   ein   <SHIFT/CLR>
als erste Stelle  bei  "TEXT"  einfügen.
Geben Sie als erstes  einen  Pfeil  nach
links ein, so wird der  Befehl  auf  dem
Bildschirm  ausgegeben  und  der  Cursor
befindet   sich   direkt   hinter    der
Anweisung.  Damit  Ihr   Befehl   direkt
ausgegeben wird, geben Sie  einfach  Ihr
Kommando an,  ohne  irgendeinen  Zusatz.
Diese  Tastenbelegung  können  Sie   mit
DSAVE "name" 43302, 43430    abspeichern
und mit DLOAD "name"  43302  neu  laden.
MKEY                                    
Die Funktionstastenbelegung wird auf dem
Bildschirm ausgegeben.                  
CSAVE                                   
Die   aktuelle    Cursorposition    wird
zwischengespeichert. Sie können jetzt an
einer  anderen   Stelle   Ihr   Programm
editieren  und  mit  CLOAD   zur   alten
Cursorposition zurückkehren.            
DINPUT len, col, n$ (,xPos, yPos)       
Das herkömliche INPUT des c64  läßt  bei
vielen   Programmierern   noch   Wünsche
offen.   "Len"    definiert    bei    WB
(Window-Basic) die Länge der Eingabe und
darf den Wert  80  nicht  überschreiten.
"Col" gibt  die  Farbe  des  Textes  an,
wobei  weder   reverse   Eingaben   noch
Grafikzeichen möglich sind. "N$"  stellt
die  Variable  dar,  unter  welcher  die
Eingabe        gespeichert         wird.
"xPos"   und   "yPos"   definieren   den
Bereich, an  dem  die  Frage  ausgegeben
werden soll. Wenn Sie "xPos" und  "yPos"
nicht angeben, so  verhält  sich  DINPUT
wie ein normales INPUT.                 
Wenn Sie  jetzt  während  einer  Eingabe
<SHIFT/CLR>  drücken,  so   verschwindet
nicht  der   Bildschirm,   sondern   die
Eingabe wird gelöscht,  und  der  Cursor
wird an  das  erste  Eingabefeld  zurück
gesetzt. <SHIFT+PLUS> bzw. <SHIFT+MINUS>
bringt Sie ein  Wort  vor  bzw.  zurück.
RESET                                   
Window-Basic  wird   neu   initalisiert,
Basicprogramme  bleiben  aber   trotzdem
erhalten.                               
DSTAT                                   
Der    Diskstatus    wird    ausgegeben.
OLD                                     
Ein mit  NEW  gelöschtes  Programm  wird
wieder  hergestellt,  vorausgesetzt   es
wurde noch nicht überschrieben.         
RES                                     
Sollten innerhalb  eines  Basicprogramms
die  Zeilenpointer  verbogen  sein,   so
setzt   RES   diese    wieder    zurück.
JMP                                     
Dies ist ein GOTO var,  wobei  var  hier
durch  eine  Variable  dagestellt  wird:
A= 100: GOTO A                          
DEL                                     
Mit  diesem  Befehl  lassen  sich  Teile
eines  Programmes   löschen.   Beispiel:
DEL 100-200;  die  Zeilen  100  bis  200
werden gelöscht.                        
DEC                                     
Es kommt ziemlich oft vor, daß man  eine
JA/NEIN-Abfrage   in    sein    Programm
einbauen  möchte.  Wenn  Sie   nun   DEC
eingeben, so wird ab der  Cursorposition
(YES/NO) ausgegeben.  Sie  können  jetzt
mit  den  Cursortasten  oder   mit   dem
Joystick in Port #2 zwischen YES und  NO
umschalten und das  Zutreffende  wählen.
Danach  werden  zwei  Variablen  (YE,NO)
definiert, die mit IF YE THEN  ...  oder
IF NO THEN ... abgefragt werden  können.
PAD                                     
Hierbei handelt es sich um einen  Notiz-
block, den Sie mit PAD aufrufen  können.
Mit Pfeil nach links gelangen Sie wieder
in das "normale" Basic zurück.          
PSAVE "name"                            
Das mit PAD geschriebene  Dokument  wird
gespeichert.                            
PLOAD "name"                            
Ein zuvor  gespeichertes  Dokument  wird
mit  diesem  Befehl  wieder  eingelesen.
SCR                                     
WB arbeitet mit  zwei  Bildschirmen  und
Farbspeichern, die Sie mit SCR auswählen
können.                                 
SSAVE "name"                            
Der im Moment nicht sichtbare Bildschirm
wird abgespeichert.                     
Valid HTML 4.0 Transitional Valid CSS!