HYPRA-SOFT-BASIC V1.0›Dieses Programm stellt Ihnen kurz›die neuen Befehle des Hypra-Soft-›Basics vor. Dieses neue Basic ist›ein modifiziertes Atari-Basic.›Das heit fr den Benutzer, da›die Geschwindigkeit original die›des Atari-Basic ist und das alle›alten bekannten Befehle auch hier›noch gltig sind.›Hypra-Soft-Basic hat rund 60 neue›Befehle/Funktionen, die einen›schnelleren Programmflu und ein›Speicherplatz optimiertes›Programmieren ermglichen.›*›HYPRA-SOFT-BASIC V1.0›Es wurde insbesondere darauf›geachtet, da Befehle die im›stndigen Umgang mit dem Basic›notwendig sind, endlich eingefhrt›wurden. Dies sind z.B. die Disk-›Befehle, die Player/Missile-Befehle›und die Speicherbefehle zum Ver-›schieben und Fllen von Speicher-›bereichen. ›Dazu kommen dann noch zahlreiche›Luxuxsbefehle wie der Multicolor-›modus in GR.0›*›HYPRA-SOFT-BASIC V1.0›Da Sie nun mit einem›Befehl ausfhren knnen, was frher›nur durch aufwendige Routinen›mglich war, knnen viele Programme›schneller ablaufen und belegen›weniger Speicherplatz.›Die Benutzung von HS-BASIC kostet›Sie zwar ganze 8 Kilobytes, die das›Hypra-Soft-Basic mehr belegt als›das Atari-Basic, doch ist das›HS-Basic dafr in einigen Bereichen›leistungsstrker als selbst das›Turbo-Basic-XL oder das BASIC-XL.›*›HYPRA-SOFT-BASIC V1.0›Es folgt nun eine kurze›Beschreibung der neuen Befehle.››Damit die Anwendung klarer wird,›sehen Sie sich bitte auch die›DEMO-Programme an.›*›INFO›Der Befehl INFO zeigt an welche›Speicherbereiche vom BASIC wie›belegt sind. Der User mu diese›Bereiche meiden, wenn er eigene›Datenmengen im Speicher ablegen›will.››Syntax:›INFO›*›VAR›VAR listet die aktuelle Variablen-›tabelle aus. Es werden bei Zahlen-›variablen der Inhalt, bei Strings›die tatschliche und die maximale›Lnge und bei Arrays die›Dimensionierung mit angegeben.››Syntax:›VAR›*›Diskettenbefehle›DIR›LOCK›UNLOCK›ERASE›RENAME››Mit diesen Befehlen knnen die›gngigsten DOS-Befehle nun direkt›angesprochen werden.››Syntax:›DIR "D:FILENAME.EXT"›DIR FILE$›*›HELP›Der Befehl HELP listet alle neuen›Befehle und Funktionen des Hypra-›Soft-Basics auf, die das alte›Atari-Basic nicht kannte.››Syntax:›HELP›*›BOOT›Der Befehel BOOT lst einen›Kaltstart aus, nachdem die Rck-›frage positiv beantwortet wurde.›Bei der Cartridge oder ROM-Version›des Hypra-Soft-Basic bleibt diese›im Speicher erhalten.››Syntax:›BOOT›*›BREAK›Mit diesem Befehl lt sich die›BREAK-Taste an und ausschalten.›Hinter dem Befehl wird als›Parameter ein boolescher Ausdruck›gefordert. Ist dieser wahr=1, so›ist die Taste an;›ist er falsch=0, so ist die Taste›aus.››Syntax:›BREAK 1 - BREAK 12=12 = an›BREAK 0 - BREAK 2=3 = aus›*›HANDLER›Der Befehl Handler listet alle›aktiven Handler wie z.B. Editor,›Keybord, Screen oder DOS auf.›Zum jeweiligen Identifikations-›zeichen (D: E: S: K:) wird noch›der Anfang der zugehrigen Treiber›tabelle angegeben.››Syntax:›HANDLER›*›IOCB›Der Befehl IOCB zeigt an welcher›IO-Kanal von welchem Gert belegt›ist, und fr welche Datenrichtung›er geffnet wurde.››Syntax:›IOCB›*›UHR›Der Befehl UHR bewirkt, da bei›Rechnern, die mit einem 16K-Bibomon›ausgerstet sind, oberhalb des›Bildschirms die Uhrzeile ein- und›ausgeblendet werden kann.››Syntax:›UHR 1 =an›UHR 0 =aus›*›SYSTEM›Der Befehl SYSTEM gibt wichtige›Adress-Vektoren des Betriebsystems›an. Der User kann hier sehen, ob›und wie Interrupts eingesetzt›werden, wo die Display-List liegt›und einiges mehr.››Syntax:›SYSTEM›*›BGET / BPUT›Mit diesen Befehlen kann ein Daten-›block geladen oder gespeichert›werden. Dazu mu einer Variablen›die Anfangsadresse der Daten und›einer anderen die Lnge des Blocks›zugewiesen werden.›Achtung es knnen nur Varaiblen,›nicht aber Zahlen eingesetzt›werden.››Syntax:›BGET #1,AD,LN›BPUT #1,AD,LN›*›MOVE+ / MOVE-›Mit diesen Befehlen kann ich einen›Datenblock im Speicher verschieben.›Bei MOVE+ wird mit dem ersten Byte›begonnen und mit dem letzten Byte›aufgehrt. Bei MOVE- ist dies genau›andersherum. Der erste Parameter›gibt die Quell Adresse, der zweite›die Ziel-Adresse und der dritte die›Lnge des Blocks an.››Syntax:›MOVE+ Quell,Ziel,Len›MOVE- Quell,Ziel,Len›*›STORE›Mit dem Befehl STORE kann ein›bestimmter Speicherbereich mit›einem Wert gefllt werden. Der›erste Parameter ist hier die Start-›adresse, der zweite die Lnge und›der dritte das Fll-Byte.››Syntax:›STORE Start,Len,Byte›*›DPOKE›Viele Vektoren enthalten 16-Bit›Adressen. Um nun einen solchen›Vektor zu ndern muten bislang›Low und Highbyte der neuen Adresse›ermittelt werden und getrennt in›die jeweiligen Adressen geschrieben›werden. Der DPOKE Befehl erledigt›dies alles selbst.››Syntax:›DPOKE AD,BYTE 0<= BYTE <= 65535›*›SCREEN›Mit dem Befehl SCREEN kann der›Bildschirm aus- und wieder ein-›geschaltet werden. Ist der Bild-›schirm aus, so ist der Rechner bis›zu 30% schneller.››Syntax:›SCREEN 0 =aus›SCREEN 1 =an›*›BIB›Besitzer eines 16K-Bibomon knnen›mithilfe dieses Befehls in den›Monitor springen. Wenn Sie den›Monitor dann mit dem Befehl Q ver-›lassen, knnen Sie sogar ein unter-›brochenes Basic-Programm›fortsetzen.››Syntax:›BIB›*›SHELTER›Der Befehl SHELTER speichert ein›BASIC-Programm in der Art und Weise›ab, da es nur noch mit RUN"D:*.*"›geladen und gestartet werden kann.›Solche Programme knnen dann nicht›mehr gelistet oder verndert›werden.››Syntax:›SHELTER"D:FILENAME.BAS"›*›CLS›CLS steht fr CLear Screen. Dieser›Befehl lscht in Gr.0 den Bild-›schirm und in den anderen Grafik-›stufen das Textfenster.››Syntax:›CLS›*›DO / OD›Mit DO und OD knnen Sie eine neue›Schleife einrichten.›Stt das Basic auf den Befehl OD,›so beginnt das Programm wieder bei›dem letzten DO. OD ohne vorheriges›DO lst eine Fehlermeldung aus.›Diese Schleife kann nur mit EXIT›verlassen werden.››Syntax:›DO:... ... ... :OD›*›EXIT›Mit EXIT kann eine DO-OD Schleife›verlassen werden. Nach EXIT mu›die Zeilennummer stehen, an der das›Programm fortgefhrt werden soll.››Syntax:›EXIT Zeile›*›REPEAT - UNTIL›Die Befehle oder Zeilen, die›zwischen REPEAT und UNTIL stehen,›werden solange wiederholt, bis der›boolesche Ausdruck hinter UNTIL›wahr also 1 ist.›Bsp.:›REPEAT:?A:A=A+1:UNTIL A=11››Syntax:›REPEAT:.... .... ....:UNTIL bool›*›REN›REN steht fr Renumber. Mit diesem›Befehl knnen die Zeilennummern›neu durchnummeriert werden.›Der erste Parameter gibt die erste›Zeile des "neuen" Programms an.›Der zweite Parameter ist der›Abstand zwischen den Zeilen.››Syntax:›REN Anfang,Abstand›*›BASIC 0›Hypra-Soft-Basic und ATARI-Basic›sind bis auf einen Unterschied›kompatibel. Damit ein Hypra-Soft›Basic Programm, in dem keiner der›neuen Befehle benutzt wurde auch›in ATARI-BASIC luft, mu vor dem›Abspeichern BASIC 0 eingegeben›werden. Aus den Zuordnungen wie›A=10 wird dann Let A=10. Wird ein›solches Programm dann vom ATARI›Basic geladen sieht alles wieder›normal aus und funktioniert›richtig.›*›BASIC 1›Hat man ein normales Atari-Basic›Programm geladen, so luft dies›natrlich einwandfrei auch in HS-›Basic. Listet man aber ein solches›Programm, so sieht man bei Wert-›zuordnungen anstelle von A=10›Let A=10. Der Befehl BASIC 1 macht›daraus dann die normale Form A=10.›*›Player-Missile Grafik›Es folgen nun einige Befehle, die›Ihnen das Arbeiten mit PM-Grafik›erheblich vereinfachen.›Die meisten Befehle funktionieren›aber nur dann, wenn ganz zu Beginn›der Befehl PMGRAPHICS 1 oder 2›ausgefhrt wurde, da dieser Befehl›neben der Initialisierung der›PM-Grafik auch den Speicherbereich›der PM-Grafik festlegt.›Die Player haben die Nummern 0›bis 3; Missiles die von 4 bis 7.›*›PMGRAPHICS›Mit PMGRAPHICS wird die PM-Grafik›ein und ausgeschaltet.›PMGR.0 schaltet die PM-Grafik aus.›PMGR.1 schaltet die zweizeilige,›Auflsung ein.›PMGR.2 aktiviert die einzeilige,›feinere Auflsung.››Syntax:›PMGRAPHICS modus›*›PMCLR›Der verlangte Parameter ist die›Playernummer. Ist er zwischen›0 und 3 so wird der entsprechende›Player gelscht. Ist er grer als›3 so wird der gesamte Missile-›Speicher gelscht.››Syntax:›PMCLR nr›*›PMCOLOR›Der Befehl PMCOLOR legt die Farbe›von Player und Missiles fest. Ein›Paar wie Player 0 und Missile 0›etc. hat dabei immer die gleiche›Farbe. Der erste Parameter ist die›Player/Missile Nummer, dann folgt›die Farbe 0-15 und die Helligkeit›ebenfalls im Bereich von 0-15.››Syntax:›PMCOLOR nr,col,lum›*›PMWIDTH›Mit PMWIDTH wird die Breite eines›Players/Missile festgelegt.›0 ist einfach, 1 ist doppelt und›2 ist vierfach.››Syntax:›PMWIDTH nr,breite›*›PMPOS›Mit PMPOS kann die horizontale›Position der Objekte festgelgt›werden.››Syntax:›PMPOS nr,x›*›PMDOWN / PMUP›Mit diesen Befehlen kann ein›Player/Missile um eine bestimmte›'Strecke' nach oben oder unten›bewegt werden. Der erste Parameter›ist wie immer die Player Nummer,›der zweite gibt an um wieviele›Bytes das Objekt nach oben›verschoben werden soll.››Syntax:›PMUP nr,anz nach oben›PMDOWN nr,anz nach unten›*›MULTICOL›Dieser Befehl funktioniert nur in›Gr.0. Er aktiviert eine ganze Reihe›von Interrupts (24 DLIs und 1 VBI).›Es kann nun fr jede einzelne Gr.0›Zeile eine eigene Hintergrundfarbe›definiert werden. Dies geschieht›ber den Befehl LINECOL.›››Syntax:›MULTICOL 0 aus›MULTICOL 1 an›*›LINECOL›Ist MULTICOL aktiv, so kann nun›fr jede Zeile eine eigene Hinter-›grundfarbe gewhlt werden.›Der erste Parameter gibt dabei die›Zeile (0 bis 23), der zweite die›Farbe (0 bis 15) und der dritte die›Helligkeit (0 bis 15) an.››Syntax:›LINECOL zeile,col,lum›*›KLICK›Mit diesem Befehl lt sich bei den›XL/XE-Gerten der Tastaturklick›an- und abschalten.››Syntax:›KLICK 0 aus›KLICK 1 an›*›FUNKTIONEN››Es folgen nun die zustzlichen›Funktionen.›*›DPEEK›Dies ist das Gegenstck zu dem›Befehl DPOKE. Mit dieser Funktion›kann ein 16 bit Adress-Vektor›direkt ausgelesen werden, ohne erst›High und Low-Byte getrennt zu›ermitteln und umzurechnen.››Syntax:›A=DPEEK(adr)›*›ERR / ERL›Mit diesen Funktionen lt sich die›Fehlernummer und die Zeilennummer›nach einem Error ermitteln.›ERR = Fehler - ERL = Zeile››Syntax:›A=ERR(0)›A=ERL(0)›*›HSTICK›Mit HSTICK lt sich der›horizontale Bewegungsanteil des›Joysticks ermitteln.›links, links-oben, links-unten = -1›keine horizontale Bewegung = 0›rechts, rechts-oben, r.-unten = 1››Syntax:›A=HSTICK(0):B=HSTICK(1)›*›VSTICK›Mit VSTICK lt sich der›vertikale Bewegungsanteil des›Joysticks ermitteln.›hoch, l.-hoch, r-hoch = -1›keine vertikale Bewegung = 0›runter, l-runter, r-runter = 1››Syntax:›A=VSTICK(0):B=VSTICK(1)›*›PMADR›Wurde mit PMGRAPHICS die PM-Grafik›aktiviert, so lt sich mit›PMADR(nr) die Startadresse eines›des Players/Missiles mit der Nummer›nr ermitteln.›Player haben die Nummern 0-3;›Missiles die von 4 bis 7.››Syntax:›AD=PMADR(0):AD1=PMADR(1):....›*›PM›Mit PM(0) lt sich ermitteln,›ob und welche PM-Auflsung aktiv›ist.›0 PM=aus›1 PM grob (zweizeilig)›2 PM fein (einzeilig)››Syntax:›A=PM(0)›*›RAND›RAND(zahl) erzeugt eine Zufallszahl›zwischen 0 und zahl.››Syntax:›A=RAND(16)›*›WSL›Die Funktion WSL kann nur 0 und 1›werden. Der Parameter von WSL mu›zwischen 0 und 1 liegen. Dieser›Parameter gibt die Wahrscheinlich-›keit an mit der WSL 1 wird.›Bei WSL(0.25) liegt diese bei 0.25,›oder besser gesagt bei 1 zu 3.›Die Funktion kann nun 0 oder 1›werden, aber es ist hier 3 mal so›wahrscheinlich, da sie 0 wird.›WSL(0) ist immer 0 und WSL(1) ist›immer 1.››Syntax:›A=WSL(zahl) 0<=zahl<=1›*›HYPRA-SOFT-BASIC V1.0›Dies ist erst einmal alles.›Mehr Informationen entnehmen Sie›bitte dem zugehrigen Artikel im›Compy-Shop-Magazin August '89.››Ihr Uwe Rder›*›*›