APPLICATIONSPROGRAMMATION ★ SUPRA-BASIC (COMPUTE MIT) ★

Supra-Basic (Compute Mit)Applications Programmation
★ 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 ★ 

Spiel, Utility & Erweiterung erweitert den Schneider Befehlssatz um 32 neue Befehle, hier in alphabetischer Reihenfolge: BANK, BIGOFF, BIGON, BYE, CALM, COPY, CRUNCH, DISPLAY, DOKE, ESY, EX, FAST, FIELD, HELP, HIDE, INV, LFIN, LFOUT, LTURN, NI, NOISE, PEY, PICO, QUAD, RTURN, SHOW, SPRITE, STRETCH, SYM, TRAP, WOWN, WUP. Allgemein: "*SUPRA-BASIC*" wurde für den CPC 464 geschrieben. Die Befehlserweiterung ist so ausgelegt, daß sie auch auf dem CPC 464 mit angeschlossenem Diskettenlaufwerk voll funktionsfähig ist, wobei man bei den Kassettenbefehlen FAST, LFIN und LFOUT natürlich Einschränkungen machen muß : FAST erhöht zwar die Schreibgeschwindigkeit auf 3500 Baud, zur Beschleunigung des Diskettenlaufwerks ist der Befehl jedoch ungeeignet, ebenso wie sich LFIN und LFOUT nur auf Kassettenfiles beziehen.

"*SUPRA-BASIC*" belegt den Speicher von &A000 bis &A520. Da es jedoch möglich ist, Sprites und Pictures zu definieren, kann der Speicherplatz nochmals um 4 KByte verkleinert werden, weil die Picture-DATAs von &9000 bis &97FF und die Sprite-DATAs von &9800 bis & 9FFF abgelegt werden. Es ist also das Kommando MEMORY &8FFF erforderlich, um die DATAs nicht zu überschreiten; arbeitet man jedoch ohne Sprites und Pictures, genügt natürlich MEMORY 8c 9FFF.

Einige Befehle arbeiten mit Variablen. Diese Variablen müssen vorher schon benutzt worden sein, weil sonst bei (Klammeraffe) z $ (als Beispiel) ein "Improper argument” ausgegeben wird.
Fast alle Befehle haben eine festgelegte Anzahl von Operanden, wird hier ein Fehler gemacht, gibt das Programm "*SUPRA-BASIC*" die Fehlmeldung "Operand mistake* aus. Jedem Befehlswort muß der senkrechte Strich ("Shift" -f (Klammeraffee)) vorangestellt werden, sonst erreicht man nur einen Syntax error".

Es emphielt sich, die Befehlserweiterung als binäre Datei abzuspeichern, um schnell darauf zu-rückgreifen zu können. Hierfür muß man eingeben:

POKE &A000,1 : SAVE "SB.BIN", b, &A000, &520

Man kann "*SUPRA-BASIC*" dann mit LOAD "SB.BIN", & A000 schnell wieder laden, z. B. vom Programm aus, wie es ja auch bei MADGOON'S RACE" geschieht. Überhaupt ist dieses Demo-Program in die beste Möglichkeit, die Wirkung der Befehle zu illustrieren. Die Spielidee selbst ist natürlich uralt, sie ist von "FROGGER" übernommen, das Männchen darf auf seinem Weg zum oberen Bildrand Nichts berühren, was sich bewegt. Die Musik kann mit der Leertaste an- und ausgeschaltet werden, wonach das Programm ein wenig schneller abläuft, da die SOUND-Routine doch ein bißchen Zeit in Anspruch nimmt, das Spielgeschehen aber nicht direkt beeinflußt. Das Programm hat eine eigene TOP-TEN Verwaltung, die auf Diskettenbetrieb ausgelegt ist. Die nötige Änderung für die Kassette ist jedoch kein Problem. Man läßt in Zeile 2520 alles bis zur FOR-NEXT Schleife weg und setzt in den Zeilen 1080 und 2500 an die Stelle von "toptenüP nur "!top ten.fil. Beim Abspeichern der neuen TOP-TEN muß die Kassette natürlich wieder an die riehtige Stelle zurückgespult worden sein.

Die Version von "MAGDON'S RACE" auf der beigefügten Kassette ist so nicht lauffahig, da auf dem Band weder die Binärform von ”*SUPRA-BASIC*” noch die TOP-TEN-FILE vorhanden ist. Überspielen Sie das Programm bitte auf Diskette, speichern Sie wie beschrieben "*SUPRA-BASIC*" als Binärdatei ab und SAVEn Sie dann die TOP-TEN wie folgt:

FOR l = 1 TO 10: nam$(1) -"SUPRA-SOFT": pu(1) = 0: day$ (1) - "01.01.1986": NEXT: OPENOUT "topien.fil”: FOR l = 1 TO 10: ? #9, nam$(1): ? #9, pu(1): ? #9, day$(1): NEXT: CLOSEOUT.

Erläuterungen der Befehle:

BANK, wert

Dieser Befehl wählt die angegebene Bildschirmbank (1 oder 3). Ist der übergebene Wen 1, wird Bank 1 gewählt (&4000 - &7FFF), bei allen anderen Werten Bank 3. Will man beide Bildschirminhalte gleichzeitig benutzen (siehe auch COPY und DISPLAY), empfiehlt es sich, anfangs bei jeder Bildschirmbank ein MODE-Kommando zu setzen, um den eventuell verschobenen Offset auf den Ausgangswert zu bringen.

BIGOFF, BIGON

siehe unter SPRITE.

BYE

Nach diesem Kommando ist die Befehlserkennung durch RSX unmöglich, die Maschinenroutinen sind jedoch noch vorhanden (ab &A104).

CALM

Erzeugt eine Pause beim SOUND. Die unterbrochene Melodie kann jedoch mit NOISE lückelos fortgesetzt werden.

COPY

Kopiert den Inhalt von Block 3, also dem Bildschirmspeicher von &C000 - &FFFF, in Block 1 (von &4000 - &7FFF).

CRUNCH

Dieser Befehl ist an sich nur während des Programmierens nützlich. Sobald die Zeileneingabe durch >ENTER< beendet

wird, werden alle überflüssigen Leerzeichen in dieser Zeile entfernt, wenn vorher CHRUNCH eingeben wurde. Das nochmalige Verwenden des Befehls hebt den Effekt wieder auf.

DISPLAY

Das Gegenstück von COPY. Der Inhalt von Block 1 wird in den Block 3 kopiert.

DOKE, adresse, zwei-byte-zahl

Poked Zwei-Byte-Zahlen in den Speicher. Das Lowbyte wird an >adresse<, das Highbyte an >adresse + 1< abgelegt, also gebrauchsfertig für ein MC-Programm.

ESY, reihe von picturenummern

Siehe unter SYM.

EX, status (Klammeraffee) variable 1, (Klammeraffee) variable 2

Vertauscht die beiden Variablen, d. h. deren Inhah. Der Status gibt an, um welchen Variablentyp es sich handelt (2 = INTEGER, 3 = STRING, 5 = REAL).

FAST

Dieser Befehl erhöht die Schreibgeschwindigkeit auf die Kassette auf 3500 Band

FIELD, spalt, zeiile, (Klammeraffee) integervariable

Der ASCII-Code des Zeichens an der übergebenen Cursorposition wird in der Variablen von TYP INTEGER gespeichert. Dieser Befehl gibt dem User also die bisher fehlende Möglichkeit, den Bildschirm abzufragen.

HELP

Ein nützlicher Befehl, wenn der Computer verrückt spielen sollte. HELP bewirkt folgendes: MODE 1: BORDER 1: PAPER 0: PEN 1: CLS, alle INKs werden wieder initialisiert, ebenso die komplette Tastatur. SPEED INK und SPEED KEY werden auf die Anfangswerte gesetzt, jeder Break-Schutz wird aufgehoben, sowie jeder SOUND endgültig abgewürgt. Ein völliges Reset durch CTRL+SHIFT + ESC ist wieder möglich. Programm und Variablen werden von HELP beeinflußt

HIDE

Hat man ein Programm im Speicher, das man nicht zerstören will, möchte aber zwischendurch ein anderes bearbeiten (z. B. ein Spiel), gibt man HIDE ein und lädt das zweite Programm. Ist man damit fertig, braucht man, um an das alte Programm zu kommen, nur SHOW einzugeben. Das eben gespielte Spiel ist verschwunden - das alte Programm ist wieder im Speicher!!!

INV

Vertauscht PAPER und PEN. Die gleiche Wirkung hätte z. B. PRINT CHR$(24).

LFIN, (Kiammeraffee) stringvariable

Der Name des letzten Programmes, das von Kassette geladen wurde, wird in der Stringvariablen gespeichert oder auf den Bildschirm ausgegeben, wenn man nur LFIN einrippt.

LFOUT, (Klammeraffee) stringvariable

Wie LFIN, nur daß der Befehl ich auf das letzte auf Band gesavete Programm bezieht.

LTURN, reihe von Zeilennummern

Die angegebenen Zeilen werden um ein Byte nach links gescrollt.

NI, sekundenzahl

Der Interpreter wartet die angebene Anzahl von Sekunden, ehe er mit dem Programm weitermacht. Während der Wartezeit (max. 255 Sekunden) ist der Rechner nicht beeinflußbar.

NOISE

Siehe unter CALM.

PEY

Dieses Kommando hält den Interpreter so lange an, bis irgendeine Taste gedrückt wird.

PICO, spalte, zeile, pen, picturenummer

Siche unter SYM.

QUAD, links, rechts, oben, unten, wert

Zeichnet Rechtecke in der übergebenen Farbe (Die Farbtabelle ist im Programm angegeben). Die ersten vier Parameter-werte beziehen sich auf Cursorpostionen, Beispiele: Im Mode 0 ergibt QUAD, 1,20, 1, 2, 240, das die beiden obersten Zeilen mit schwarz gefüllt werden, im Mode 1 ergibt QUAD, 21, 40, 13, 25, 255, daß das Bildschirmviertel rechts unten mit hellrot gefüllt wird.

RTURN, reihe von zeilennummern

Wie LTURN, die Zeilen werden nur nach rechts geschoben.

SHOW

Siehe unter HIDE

SPRITE, spalte, zeile, spritenummer

"*SUPRA-BASIC*" ermöglicht die Handhabung von Sprites, d. i. Multicolorzeichen im Mode 0. Es ist möglich, mit den Befehlen BIGON und BIGOFF zwischen großen und kleinen Sprites zu wählen. Ein kleiner Sprite belegt ein Cursorfeld, ein großer 2x2 Cursorfelder. Die kleinen benötigen 32, die großen demnach viermal so viel, nämlich 128 Farbwerte (d. i. Bytes im Speicher). Der Platz für diese Farbdaten liegt zwischen &9800 und &9FFF, man kann also gleichzeitig bis zu 16 BIGSPRITES (Nummer 0 bis 15) oder maximal 64 (!) kleine Sprites (0-63) verwalten, beides ist natürlich kombinierbar. Beispiel für die Benutzung von SPRITE, BIGON und BIGOFF:

Neben den Befehlsroutinen wird auch ein Beispielsprite in den Speicher gepoked. Meldet sich der CPC nach Programmende mit Ready, bitte MODE 0 eingeben und nach der erneuten Ready-Meldung >ENTER< drücken. Nach der Eingabe von SPRITE, 6,1,0 wird rechts neben dem READY der SPRITE ausgegeben.

Tippt man nun BIGOFF und anschließend |SPRITE, 13, 3, 2, so erscheint anstelle der 0 nun der linke untere Teil des BIGSPRITES. Nach |BIGNON: spritc, 19,24,0 erscheint ganz rechts unten wieder der große Sprite. Bei großen Sprites bezeichnet die übergebene Cursorposition immer den linken Teil des Sprites, bei kleinen direkt das Ausgabe feld.

STRETCH, spalte, zeile, zeichenanzahl

Ab der angegebenen Position wird nach rechts gehend bei der übergebenen Anzahl von Cursorfeldern deren Inhalt auf doppelte Höhe gestreckt. Beispiel: Nach Programmende wie oben MODE 0 und nochmals >ENTER< eingeben, dann |STRETCH, 2, 1, 3 tippen, so werden bei Ready ab dem e (Position 2,1) das e selbst, sowie a und d um den Faktor zwei gestreckt (3 Buchstaben). Es ist auch möglich, Sprites zu strecken! Deutlich wird das, wenn man eingibt |BIGON: |SPRITE, 16,1,0: |STRETCH, 16,2,2. Der untere Teil des Sprites ist nun doppelt so hoch. Einen ganzen Sprite strecken Sie so (z. B.): MODE 0: |SPRITE, 19, 12, 0: |SPRITE, 19, 13, 0: |STRETCH, 19, 12, 2: |STRETCH, 19,14, 2 In den beiden anderen Modi ist der Befehl umständlicher zu handhaben, der Effekt stellt sich natürlich auch ein, hauptsächlich wurden die Befehle ftir die graphischen Tricks allerdings für den MODE 0 konzipiert.

SYM, reihe von ascii-werten, picturennummer

"*SUPRA-BASIC*” erlaubt auch die Verwendung von sog. Pictures, was als Kette von ASCII-Zeichen zu verstehen ist (max. 32 pro Picture). Es können auch Zeichen mit einem ASCII-Code < 32 verwendet werden. Ein Picture wird über SYM definiert, mit PICO ausgegeben und muß mit ESY gelöscht werden, ehe an seiner Stelle ein neues erstellt werden kann. Beispiel: Die folgenden Basic-Ausdrücke:

a$ - CHR$(255) + CHR$(254) + CHR$(8) + CHR$(8) + CHR$(10) + CHR$(253) + CHR$(252): PEN 2: LOCATE 21, 14: PRINT a$

sehen mit Pictures so aus: |SYM, 255, 254, 8, 8, 10, 252, 0: |PKO, 21, 14, 2, 0

Das erzielt den gleichen Effekt! Als Picturenummer wurde hier 0 verwendet, man kann natürlich andere (0 bis 63) verwenden. Die Werte sind im Speicher von &9000 bis &97FF abgelegt. Soll Picture 0 neu definiert werden, muß zuerst ESY, 0 eingegeben werden, um die ursprünglichen Daten völlig zu löschen, bevor man das Picture neu definiert. ESY löscht auch mehrere Pictures, zum Beispiel ESY, 8, 15, 16, 33, 50.

TRAP, wert

Bei TRAP, 0 wird der Transparentmodus aus-, bei TRAP, 1 eingeschaltet.

WOWN, links, rechts, oben, unten, wert

Parameter wie bei QUAD. Das so definierte Textfenster wird nach unten gescrollt, der Paper der neuen Zeile entspricht dem letzten Wert. WOWN ist unabhängig von Basic-Windows!

WVP, links rechts, oben, unten, wert

Wie bei WOWN, nur wird hier auch oben gescrollt.

Anleïrung fur den Spritegenerator

Nach dem Anfangsbild wird der Bildschirm schwarz, ein Rechteck wird gezeichnet, über welchem die Farbanzeige zu sehen ist - um Anfang ein dunkelblaues Rechteck (INK 0). Durch Drücker der Space-Taste kann die INK-Nummer erhöht werden. Wenn man z. B. jetzt drückt, erscheint hellgelb (INK 1), dann helles Blaugrün (INK 2) usw. Nach INK 15 wird wieder bei 0 begonnen. Die Farbe des Rechtecks ist die momentane Zeichenfarbe. Drückt man gleich zu Beginn die COPY-Taste, so wird das Cursorfeld links oben (wo der gelbe Punkt ist) blau. Steuert man den gelben Punkt mit den Cursortasten auf das Feld rechts daneben, drückt dreimal die Leertaste, so daß die Zeichenfarbe auf hellrot wechselt und drückt dann COPY, wird ein rotes Feld gesetzt. Die beiden Punkte dieses BIGSPRTTES wären links oben dann dunkelblau und hellrot Man kann also einen großen oder vier kleine Sprites in diesem Spritegenerator erstellen. Die Farbwahl kann jedoch auch direkt erfolgen.

Um von hellrot wieder auf dunkelblau zu kommen, müßte man über zehnmal die Leertaste drücken. Man kann jedoch den kleinen gelben Punkt mit den Cursorn auf das blaue Feld lenken und "W" drückcn. Dunkelblau als Zeichenfarbe wird dann direkt gewählt, ist der Sprite fertig, drückt man "E", es erscheint das Wort "Calculating". Das Maschinenprogramm berechnet aus den INK-Werten, die mit der Funktion TEST (X,Y) abgefragt und dann in den Speicher gepoked wurden, die 128 codierten Werte in ca. 0,1 Sekunden (die entsprechende Basic-Routine wäre esu 200mal langsamer). Nach der Codierung wird der Sprite gezeigt. Das Programm fragt dann, ob man weitermachen oder die Arbeit beenden will Drückt man WR” für RUN, wird man aufgefordert, dem Sprite einen Namen zu geben, unter dem dieser dann abgesaved wird. Das Programm erstellt vier DATA-Zeilen (Nummer 1 - 4), die als Datei gespeichert und mit dem Befehl MERGE "SPRITENAME.spr" in jedes Programm eingebunden werden können. Jede dieser Zeilen enthält 32 codierte Farbwerte.

Compute Mit

★ PUBLISHER: Compute Mit
★ YEARE: 1986 , 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: COMPUTE MIT 1987
★ AUTHOR: Alexander Stroh / Supra-Soft
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Supra-Basic    (Compute  Mit)    GERMAN    LISTINGDATE: 2021-08-05
DL: 145
TYPE: PDF
SiZE: 4264Ko
NOTE: 6 pages/PDFlib v1.6

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

Lien(s):
» Applications » Compilation: CPC Tools Nr. 10 - Basic-Programmier-hilfen
» Applications » Toolbox 3: Drumkit
» Applications » ERE Hacking Tools 2003
» Applications » Disctool (B.Y. Soft)
» Applications » Epsilon's Tools 1996
» Applications » Comparatif des logiciels de compression sur/pour AMSTRAD CPC
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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 773 millisecondes et consultée 641 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.