APPLICATIONSAIDE A LA CREATION DE JEUX ★ LASER BASIC ★

Laser Basic (Microstrad)LASER BASIC (CPC Amstrad International)LASER BASIC (Happy Comptuer)Laser Basic (Amstrad Computer User)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

[s=1Das schnelle Schneider-Spiele-Basic

Basic-Erweiterungen für den Schneider-CPC sind zur Zeit zwar der große Renner, Laser Basic fällt aber aus dem Rahmen: Es ist eine umfangreiche Befehlssammlung für die Spiele-Programmierung.

Laser Basic erweitert den Schneider-Basic-Interpreter um Befehle, die ihn zum »Spiele Basic« machen. Wer jetzt gleich die Nase rümpft, sollte trotzdem weiterlesen, denn das Programm selbst ist nicht »verspielt«, sondern eine professionelle Erweiterung, die exakt 200 neue Basic-Befehle umfaßt — immerhin 50 mehr, als das Schneider-Basic insgesamt vorweisen kann. Die Laser Basic-Befehle bieten zum Beispiel Kommandos zur Sprite- und Window-Programmie-rung. Tonerzeugung und zur gleichzeitigen Verarbeitung mehrerer Ba-sic-Programme.

Das Programm-Paket wird wahlweise auf einer Diskette oder zwei Kassetten geliefert. Es besteht aus einer Reihe einzelner Programme: der Basic-Erweiterung »LB« (Laser Basic), dem Demonstrations-Pro-gramm »Demo«, dem Spntegenera-tor »SPTGEN« und dem Sound-Editor »SNDGEN«.

Beginnen wir mit dem wichtigsten Programmteil, der eigentlichen Befehls-Erweiterung. Daß das Laser Basic im Speicher ist. merkt man am schnellsten, wenn man sich mit PRINT HIMEM die obere Speichergrenze ausgeben läßt. Sie liegt jetzt bei 16000! Damit bleiben für eigene Programme weniger als 16 KByte frei. Mit diversen Tricks läßt sich aber zumindest einiges des wertvollen Speicherplatzes zurückgewinnen.

Sprites en masse

Eine bei Spiele-Freaks äußerst beliebte Fähigkeit haben die Hardware-Entwickler den Schneider-Computern nicht von Hause aus mitgegeben: die Sprites. Diese beweglichen Grafikobjekte, die pixelweise auf dem Bildschirm umherwandern, ohne Texte oder Grafiken zu zerstören. waren bisher eine Domäne des Commodore 64. Doch dank des Laser Basic kann der Schneider CPC jetzt sogar 255 Sprites gleichzeitig darstellen. Jedes kann eine andere Größe haben; die Obergrenze liegt bei 255 mal 255 Pixels. Die Beschränkungen sind also nicht mehr in der Leistungsfähigkeit der Soft-und Hardware zu suchen, sondern qanz einfach beim verfügbaren Speicherplatz. Die Sprites kosten übrigens kein Byte des noch übriggebliebenen Basic-Speichers. sondern verwenden einen eigenen RAM-Bereich. Wer also weniger Sprites darstellen möchte, kann HIMEM auch wieder weiter nach oben verschieben. Bei völligem Verzicht auf Sprites gibt Laser Basic sogar rund 28 KByte des Basic-RAMs frei.

Die Basic-Erweiterung unterscheidet bei den RSX-Kommandos, aus denen sie besteht, zwischen Befehlen und eigenen Systemvariablen. Die RSX-Variablen haben nur die Aufgabe, eine Information in eine der intern verwalteten Speichersteilen zu übertragen (vergleichbar etwa mit den Befehlen ZONE, WIDTH oder MOVE im Original-Basic). während Befehle eine Aktion durchführen. Zum Beispiel setzt »|SPN,3« die Nummer des als nächstes zu bearbeitenden Sprites auf 3. während »|PTBL« ein Sprite auf dem Bildschirm anzeigt. Vor den meisten Befehlen muß der Programmierer also eine Anzahl von RSX-Variablen mit Werten versorgen. Dies hat den Vorteil, daß man sich nicht ellenlange Parameterlisten merken muß, sondern die Daten anhand sinnvoller RSX-Namen übergeben kann.

Interessant ist. daß der Speicherplatz für die Sprites dynamisch vergeben wird. Wurden zum Beispiel 30 Sprites definiert, und das Sprite Nummer 25 soll mit DSPR (Delete Sprite) gelöscht werden, verschiebt Laser Basic die Definitionen der Sprites mit den niedrigeren Nummern im RAM automatisch nach oben und schafft somit mehr freien Speicherplatz. Kennzeichen dieser Software-Sprites ist auch, daß sie zweimal im Speicher stehen: einmal als Bitmuster in der Sprite-Tabelle und andererseits auch direkt im Video-RAM.

Sprites lassen sich mit PSPR (Put Sprite) und GSPR (Get Sprite) auf Kassette und Diskette speichern und von dort wieder laden. Mit MSPR mischt Laser Basic sogar einzelne Spritedateien zu den Sprites im Speicher hinzu.

Die Sprites können vor oder hinter der Bildschirmgrafik bewegt werden, ebenso entdeckt das Programm Kollisionen dieser Objekte. Sie lassen sich an ihrer vertikalen oder horizontalen Achse spiegeln oder in ihrer Größe verändern. Auf dem Bildschirm können Sprites in drei Schrittweiten bewegt werden: Punkt für Punkt, byteweise oder jeweils 2 Byte auf einmal.

Besonders leistungsfähig wird die Programmierung von Sprites dadurch. daß man ein »Fenster« eines Sprites festlegen kann. Spezielle Befehle wirken dann nur auf diesen Ausschnitt eines Sprites. So läßt sich aus einem Sprite ein Teil herauslöschen. RSX-Korninaiidos wit; GTBL. GTIF. GWBH etc. erlauben es. den von einem Sprite verdeckten Bildschirm-Ausschnitt auszulesen oder mit der Spritedefimtion zu vertauschen. Auch logische Verknüpfungen des Sprites mit seinem Hintergrund sind als AND, OR und XOR möglich. Selbstverständlich gibt es auch RSX-Befehle. die die Farben eines Sprites oder Sprite-Windows ändern.

Ähnliche Fähigkeiten bietet das Programm auch bei Bildschirm-Fenstern. Wer bisher dachte, das Schneider-Basic beinhalte optimale Befehle zur Window-Programmierung. sollte sich einmal Laser Basic anschauen. Was diese Befehls-Erweiterung hier leistet, kann man nur sensationell nennen: Windows lassen sich in alle Richtungen scrollen; wahlweise wandern heraus-ge-scrollte Grafiken auf der anderen Window-Seite wieder herein (»Wrap-Around«) oder verschwinden ganz vom Bildschirm. Das Scrolling funktioniert praktisch ohne Flackern, da auch das punktweise Verschieben der Fenster möglich ist. Ebenso lassen sich Fenster (wie schon die Sprites) spiegeln, rotieren und ausdehnen. Dabei bieten die Befehle wahlweise eine Synchronisierung mit dem Bildrücklauf. Die Ausführungsgeschwindigkeit läßt dann zwar nach, dafür werden die Bewegungen aber noch ruhiger und flimmern garantiert nicht mehr.

Der Interrupt kommt nicht zu knapp

Die Programmierer von Betriebssystem und Basic-Interpreter des Schneider CPC dachten daran, umfangreiche Interrupt-Steuerungen auch von Basic-Programmen aus zu erlauben. Dennoch sind die Befehle EVERY und AFTER nicht ganz perfekt. Wie im Handbuch erläutert wird, arbeitet der Basic-Interpreter nämlich auch bei einer Interrupt-Anforderung erst den Basic-Befehl des Vordergrund-Programms ab und reagiert danach auf die Aufforderung. Dadurch wird die Abarbeitung von Hintergrund-Programmen nicht in exakten Zeitabständen durchgeführt, was gerade bei so zeitkritischen Dingen wie Spritebe-wegungen zu Bildschirmflackern führen kann. Deshalb haben die Programmierer von Laser Basic einfach neue Interrupt-Befehle geschrieben, die den Anforderungen gerecht werden. Benötigen Basic-Befehle jedoch Parameter, ist es leider nicht möglich, sie mittels Interrupt abzuarbeiten. Die Interrupt-Steuerung ist damit wohl vorwiegend zur automatischen Bewegung von Sprites gedacht.

Sprites mißbraucht

Normalemeise dienen Sprite-Tabellen dem Zweck, die Gestalt der Sprites zu speichern. Laser Basic kann den dadurch reservierten Speicherplatz aber auch für Maschinenprogramme. Daten oder Sound-Routinen verwenden.

Da wir gerade bei den Tönen sind: Sound ist eine weitere Spezialität von Laser Basic. Es gibt nur einen einzigen Musik-Befehl, nämlich PLAY. Dieser ist aber ungeheuer leistungsfähig. denn er bietet eine eigene Programmiersprache für musikalische Effekte. Diese »Sprache« besteht aus 20 Befehlen, die alle durch Bytefolgen repräsentiert werden — Kenner dürften Ähnlichkeiten mit Maschinensprache entdecken. Es ist aber ein sehr mühsames Unterfangen, alle Befehle von Hand in Bytes umzusetzen. Viel einfacher geht es mit dem mitgelieferten Sound-Editor »SNDGEN«. mit dem man einen Quellcode eingeben kann, der dann sozusagen assembliert wird. Wie bei einem richtigen Maschinensprache-Monitor lassen sich Tonsequenzen auch wieder disassemblieren. Melodien werden auf Kassette und Diskette gespeichert, sie können gespielt, editiert und gelöscht werden. Ist eine Melodie fertig, speichert

SNDGEN sie wie eine normale Spri-tedatei. die dann von Laser Basic eingelesen werden kann. Auch die Tonausgabe läßt sich in den Hintergrund schieben, so daß sie quasi parallel zum laufenden Programm abgearbeitet wird. Diese Musiksprache bietet auch zwei Sprungbefehle (RE-RUN und JUMP), mit denen man dem Basic-Interpreter befiehlt, Me lodien zu wiederholen. Die Interrupt-Bearbeitung funktioniert übrigens im Gegensatz zu AFTER. EVERY und ON SQ GOSUB auch bei Tastatureingaben mit INPUT.

Analog zur Musikprogrammierung mit »SNDGEN« vereinfacht Laser-Basic die Definition von Sprites mit dem Hilfsprogramm »SPTGEN« (Sprite-Generator). Er bietet eine Vielzahl von Funktionen; die wichtigste ist der Punkt »Editieren eines Sprites«. Sprites können in allen drei Bildschirm-Modi entworfen werden.

Im »Character Mode« definiert der Benutzer einzelne Grafikzeichen in einem 8 mal 8 Felder großen Raster und überträgt sie dann in das Spritefenster. Änderung der Farben. Eingabe von Zeichen als Zahlencodes. Austauschen von Zeichen zwischen den beiden Fenstern und die Ausgabe der Farbcodes sind nur ein kleiner Teil der zahlreichen Befehle.

Mit der Leer-Taste schaltet man in den Sprite-Modus um, in dem sich das Sprite direkt verändern läßt. Hier bietet der Generator zum Beispiel Befehle zum Füllen von Flächen, Einlesen von Sprites aus dem Speicher (auch mit logischen Verknüpfungen), Rotieren von Bildschirmausschnitten und Invertierung der Farben. Auch Sprite-Ani-mation ist mit »SPTGEN« kein Problem.

Natürlich kann dieser Tatbericht nur auf einen Bruchteil der Befehle von Laser Basic eingehen. Die interessantesten Fähigkeiten, die wir Ihnen vorgestellt haben, machen das Programm zu einem momentan konkurrenzlosen Utility für Spiele-Pro-grammierer.

Es gibt aber auch einige Kritikpunkte. die sich vor allem auf den Komfort auswirken. Die RSX-Namen in Laser Basic zeigen die Vorliebe der Programmierer für kryptische Abkürzungen. Sie haben sich zwar bemüht, die Namensgebung von logischen Überlegungen abhängig zu machen; es ist aber dennoch recht schwierig, immer den gewünschten

Befehl herauszufinden. Weiter ist es recht ärgerlich, daß Fehlermeldungen von Laser Basic keinen Programmabbruch erzwingen, sondern einen »Break-Event« erzeugen. Dadurch lassen sich Fehlermeldungen. die von Laser Basic kommen, nicht mit ON ERROR abfangen, sondern nur mit ON BREAK. Kompliziert wird es dann, zu unterscheiden. ob der Benutzer die ESCAPE-Taste gedrückt hat oder ob im Programm ein Fehler entdeckt wurde.

Die Entwickler von Laser Basic behaupten, daß reine Basic-Programme, die mit dieser Spracher-weiterung geschrieben wurden, fast genauso schnell sind wie entsprechende Maschinenprogramme und belegen dies auch durch ein mitgeliefertes Demo:Programm. Ähnlich vollmundige Äußerungen anderer Programmierer haben sich meist als nicht zutreffend erwiesen. Bei Laser Basic kann man der Herstellerfirma durchaus glauben; schließlich handelt es sich hier um optimierten Maschinencode.

Noch schneller — so versprechen es zumindest die Programmierer — sollen Laser Basic-Programme mit einem speziellen Laser Basic-Com-piler werden. Dieser ist auch für professionelle Spiele-Programmierer interessant, denn er erzeugt einen Maschinencode, der völlig unabhängig von Laser Basic lauffähig ist.

Der Interpreter kostet zirka 79 Mark und bietet zu diesem Preis ganz ausgezeichnete Leistungen für alle, die schnelle Spiele programmieren wollen, ohne auf den Komfort von Basic zu verzichten.

Das Handbuch liegt in einer mitunter etwas umständlichen deutschen Übersetzung vor, aber es enthält zum Glück auch viele Demo-Listings.

Positiv fällt noch auf, daß die Programm-Beispiele weder list-noch kopiergeschützt sind. So ist es ohne weiteres möglich, das Demo-Spiel zu listen und sich die Programmiertricks »direkt an der Quelle« anzusehen. Raubkopieren ist ziemlich zwecklos, denn ohne das rund 130 Seiten dicke Handbuch ist Laser Basic unbrauchbar.

Martin Kotulla/hl ,Happy Computer 6/86

★ PUBLISHERS: Ocean / Ocean IQ
★ YEAR: 1985
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: COMMERCIALE
★ DEVELOPER: Oasis Software ; Jill Lawson(GFX)

★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» Laser  Basic  Compiler  v1.133p    ENGLISHDATE: 2011-02-10
DL: 577
TYPE: ZIP
SiZE: 81Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

» Laser  Basic  v1.0    ENGLISHDATE: 2013-05-15
DL: 545
TYPE: ZIP
SiZE: 62Ko
NOTE: Extended DSK/42 Cyls
.HFE: Χ

Cover/Package:
» Laser  Basic    (Release  TAPE)    ENGLISHDATE: 2018-02-18
DL: 207
TYPE: image
SiZE: 525Ko
NOTE: Scan by Abraxas ; w2242*h1306
 

Media/Support:
» Laser  Basic    (Release  TAPE)    ENGLISHDATE: 2017-12-19
DL: 162
TYPE: image
SiZE: 564Ko
NOTE: Scan by Abraxas ; w2427*h1536
 

Dumps disquettes (version commerciale):
» Laser  Basic    ENGLISHDATE: 2020-01-02
DL: 331
TYPE: ZIP
SiZE: 118Ko
NOTE: Dumped by Dlfrsilver for Loic DANEELS ; CT-RAW/42 Cyls
.HFE: Χ
 
» Laser  Basic    ENGLISHDATE: 2020-02-16
DL: 329
TYPE: ZIP
SiZE: 62Ko
NOTE: Dumped by Dlfrsilver for Loic DANEELS ; Extended DSK/42 Cyls
.HFE: Χ

Manuel d'utilisation & doc:
» Laser  Basic    (Release  DISC-TAPE)    ENGLISHDATE: 2019-01-22
DL: 507
TYPE: PDF
SiZE: 22663Ko
NOTE: 70 pages/PDFlib v1.6

Dump cassette:
» Laser  Basic    ENGLISHDATE: 2007-06-28
DL: 451
TYPE: ZIP
SiZE: 58Ko
NOTE:
.DSK: Χ
.CDT: 4

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Xbasic (CPC Amstrad International)
» Applications » Coding - Mallard Basic
» Applications » Call (Happy Computer)
» Applications » Jetzt geht's rund (CIRCLE Basic-Routine)
» Applications » Compilateur Basic (LMC Software)
» Applications » Basic Compiler (CPC Magazin)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 147 millisecondes et consultée 7524 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.