Basic-Erweiterungen

Game-Basic

Mit dieser Befehlserweiterung lassen sich mit wenig Aufwand sehr effektvolle Spiele schreiben. Es wird dabei der Umgang mit Sprites und Sonderzeichen und die Bildschirmverwaltung (Scrolling) unterstützt.

Da ich einen Großteil meiner eigenen Programme in Basic schreibe und mir dabei die nicht sehr komfortable »POKE«erei auf die Nerven geht, habe ich nun eine Basic-Erweiterung geschrieben die, wie ich meine, diese Vorgänge um Einiges erleichtert.

Eingabe des Programms
1) Das Programm »Game-Basic-C000« mit dem MSE-V 1.0 eingeben (siehe Listing 1) und speichern.
2) Programm mit »SYS 49152« starten. Das Programm kopiert sich nun selbständig an den Basic-Start ab $0800.
3) Das Programm nun mit SAVE ”GAME-BASIC”,8 (oder bei Kassette: ,1)speichern.

Das Game-Basic kann nun ganz normal geladen und mit »RUN« gestartet werden.

Die Speicherbelegung

Alle wichtigen Adressen (Bildschirm, Farbspeicher, Sprites, SID, Timer etc.) bleiben unverändert. Der Bereich $0800-$OFFF ist für 32 Sprites reserviert, die dort abgelegt werden. Die Erweiterungselbstliegtim Bereich $1000-$17B0. Der Bereich $17B1-$1FFF bleibtfrei und kann füreigene Maschinenprogramme genutzt werden. Ab der Adresse $2000 bis $27FF liegt ein frei definierbarer Zeichensatz. Ab $2800 beginnt der Basic-Speicher(!). Dieser dehnt sich wie gewohnt bis zur Adresse $9FFF. Das RAM im Bereich $A000-$CFFF und von $E000-$FFFF bleibtfrei und kann für eigene Zwecke verwendet werden.

Die Befehle

Der Befehl »RESET« bewirkt einen Neustart der Basic-Erweiterung, wobei ein vorhandenes Basic-Programm nicht gelöscht wird.

Da es gerade bei Basic-Erweiterungen leicht vorkommen kann, daß man einzelne Befehle vergißt und nicht immer eine Anleitung zur Hand hat, habe ich den Befehl HELP mit eingebaut. Er listet alle zusätzlichen Kommandos auf.

Auf HiRes-Befehle habe ich grundsätzlich verzichtet, da meine Erweiterung ja hauptsächlich für die Verwendung im Spiele-Bereich vorgesehen ist. Normalerweise ist es nicht üblich, ein Spielprogramm in HiRes-Grafik zu erstellen (außer Loderunner und ein paar anderen), sondern mit Hilfe von Sonderzeichen. Außerdem wäre das Programm dann um einiges länger. (Es genügen schon zwei KByte, wenn man sie abtippen muß.)

Alle reinen Basic-Programme laufen natürlich auch mit der Erweiterung. Will man die Erweiterung trotzdem abschalten, ohne den Computer ausschalten zu müssen, so kann man das mittels des Befehls »BASIC« tun. Die Erweiterung kann dann mit SYS 4096 wieder aktiviert werden, falls sie nicht aus irgendeinem Grund überschrieben wurde.

Wer hat sich nicht auch schon über das lästige POKE 53281,xx:POKE 53280,xx:POKE 646,xx… geärgert? Mit dem Befehl »COLOR« lassen sich Bild-, Rahmen- und Zeichenfarbe ganz einfach einstellen. Zum Beispiel blauer Rahmen, weißer Hintergrund und grüne Schrift: COLOR6,1,5

Steuerzeichen entfallen

Damit wären wir auch schon bei den Befehlen, die den Bildschirm betreffen. Der Befehl »SCROFF« schaltet den Bildschirm aus; zum Beispiel während vom Programm ein Bild aufgebaut wird. Mit »SCRON« wird er wieder eingeschaltet. Die komplizierte »POKE«-erei im VIC hat nun ein Ende.

Mit »PAINT« wird der Farbspeicher für den Bildschirm mit der angegebenen Farbe gefüllt. Ein beschriebener Bildschirm kann natürlichauch nachträglich umgefärbt werden. Man kann damit ganz hübsche Effekte erzielen.

»REVERS« invertiert den Bildschirminhalt.

Auch die lästigen Steuerzeichen entfallen mit der Erweiterung bis auf RVSON und RVSOFF. (Aber auch die kann man durch POKE 199,1 beziehungsweise POKE 199,0 umgehen.) Der Bildschirm wird nicht mehr mit PRINTCHR$(147),sondern einfach mit »CLS« gelöscht.

Mit dem Befehl »CLEAR« kann man sogar einzelne Zeilen beziehungsweise Zeilenblöcke löschen. Zum Beispiel »CLEAR 12,24« löscht den Bildschirm ab der 13. Zeile (die erste Zeile ist Zeile 0).

Das Editieren von Programmen wird mit meiner Erweiterung fast nicht unterstützt, da die Aufgabe der Expansion ja darin liegen soll, Spielprogramme in Basic schneller ablaufen zu lassen. Mit dem Befehl »TAB« kann man zumindest die Übersicht in einem Listing etwas erhöhen. Es wird jeder Befehl in eine eigene Zeile geschrieben, was, die Übersicht betreffend, auch nicht zu verachten ist. Bevor man dann eine Zeile wieder ändern will, muß unbedingt durch einen erneuten >TAB«-Befehl diese Darstellung wieder abgeschaltet werden.

Die Befehle INC und DEC, also Inkrement (Erhöhen) und Dekrement (Erniedrigen) sind eine Abwandlung des POKE-Befehls. Es wird nicht wie bei POKE eine Zahl in eine Adresse geschrieben, sondern eine in einer Adresse vorhandene Zahl um den angegebenen Wert erhöht beziehungsweise erniedrigt.

Sollte ein Programm für eine Sekunde anhalten, mußte man bisher eine umständliche Zeitschleife verwenden (FOR T = 1 TO 1000: NEXT). Diese wird nun durch den Befehl PAUSE ersetzt. 1 Sekunde Wartezeit = PAUSE 500.

Zeichensatz verändern

Jedes professionelle Spiel kommt nicht ohne Sonderzeichen aus. Daher war es von vornherein klar, daß meine Erweiterung Befehle zur Erstellung eines eigenen Zeichensatzes enthalten sollte. Dabei ist die Darstellungsweise in Form von DATA-Zeichen die übersichtlichste. Ich habe dazu den Befehl »CODE« gewählt (siehe Beispiel »0« im folgenden Text).

In meiner Erweiterung gibt es den Befehl COPY: Er kopiert den Zeichensatz ins RAM, wo er dann mittels CREATE und CODE verändert werden kann. Mit CREATE wird das zu verändernde Zeichen festgelegt. Wir wollen zum Beispiel aus dem 0 einen Umlaut Ö machen. So schreiben wir folgendes: CREATE 1,15.

Die 1 bewirkt, daß wir ein Zeichen (0 wäre für Sprites) verändern und die 15 ist der POKE-Code für den Buchstaben 0. Der Befehl CODE bestimmt nun das Bitmuster für das mit CREATE ausgewählte Zeichen. Unser Ö würde nun im Programm so aussehen:

10 CREATE 1,15 oder 10 CREATE 1,15
20 CODE .11..11.      20 CODE .11..11.
30 CODE ........      30 CODE ..1111..
40 CODE ..1111..      40 CODE ........
50 CODE .11..11.      50 FORI=1TO4
60 CODE .11..11.      60 CODE .11..11.
70 CODE .11..11.      70 NEXT I
80 CODE .11..11.      80 CODE ..1111..
90 CODE ..1111..

Es würde auch schon folgendes genügen, da die restlichen Bitmuster mit dem 0 übereinstimmen:

10 CREATE 1,15
20 CODE .11..11.
30 CODE ........
40 CODE ..1111..

Der Zeichensatz kann natürlich auch durch die altbewährte POKE-Methode verändert werden, da er jetzt »mitten« im RAM-Bereich liegt (ab $2000 dez. 8192).

Auch der Multicolor-Modus wird in meiner Erweiterung sowohl für Zeichen als auch für Sprites voll unterstützt:

Aktiviert wird dieser mit dem Befehl MULTI 1 beziehungsweise ausgeschaltet mit MULTI 0. Die Multicolor-Zusatzfarben (zwei an der Zahl) bestimmt man ebenfalls mit MULTI.

»MULTI 2, 5, 2, 6, 7« bedeutet zum Beispiel, daß ab jetzt Zeichen in den Farben Grün (5) und Rot (2), Sprites in den Farben Blau (6) und Gelb (7) dargestellt werden. MULTI 2,… bedeutet: Multicolor-Modus mit den folgenden Farben einschalten. Bei den Bitmustern ändern sichjetztallerdings die Codes: 1 = Zusatzfarbe 1,2 == Zusatzfarbe 2, 3 = normale Zusatzfarbe, . = leer

Die bunte Version unseres Ö sähe nun so aus:

CODE ..11..11
CODE ..11..11 entspricht grün
CODE .
CODE ..222222
CODE ..22..22
CODE ..22..22 entspricht rot
CODE ..33..33
CODE ..333333 entspricht aktueller Zeichenfarbe

Es ist darauf zu achten, daß die Zahlen der CODEs immer paarweise angegeben werden (Multicolor). Bei der Erstellung von Sprites wird genauso vorgegangen, bis auf folgende Änderungen:
1) »CREATE 0, Spriteblock (32-63)«. Statt dem Zeichensatz wird der gewählte Block angegeben (32-63). Die 0 teilt dem Computer mit, daß ein Sprite und kein Zeichen verändert beziehungsweise erstellt werden soll.
2) Das Bitmuster beim CODE-Befehl hat jetzt 24 Stellen anstatt acht bei Zeichen.

Bildschirmverwaltung

Der Befehl SET ist ein erweiterter PRINT-Befehl. Der Unterschied zum PRINT-Befehl liegt darin, daß die Steuerzeichen entfallen (wie anfangs erwähnt).

Zum Beispiel SET 18,12,1,”TEXT”

Dieser Befehl schreibt das Wort TEXT in die zwölfte Zeile ab der 18. Spalte in weißen Zeichen. Mit dem normalen PRINT-Befehl würde man dazu eine Unmenge Steuerzeichen benötigen; außerdem ist der SET-Befehl schneller.

Der Befehl SCROLL verschiebt beziehungsweise verändert beliebige Bildschirmbereiche. Eine genauere Erklärung möchte ich an dieser Stelle unterlassen, da man die Möglichkeiten durch eigene Versuche am besten sehen kann.

Die restlichen sechs der insgesamt 26 Befehle meiner Erweiterung unterstützen ausschließlich den Umgang mit Sprites. Mit SON wird ein Sprite ein- beziehungsweise mit SOFF wieder ausgeschaltet.

SSET positioniert ein Sprite an eine beliebige Stelle im (oder außerhalb vom) Bildschirm. Das achte Bit im VIC-Register 16 für die Sprite X-Position braucht dabei nicht beachtet zu werden. Mit SPRITE wird ein Sprite definiert. Folgende Parameter werden hier angegeben:

Spritenummer, Block (Aussehen des Sprites — 32-63), Y-Expanded (ja oder nein), X-Expanded üa oder nein), vor oder hinter Bildschirmzeichen, Multicolor (ja oder nein), Grundfarbe.

Ein ganz spezieller Befehl ist SRUN. Mit SRUN kann ein beliebiges Sprite (oder auch mehrere) in eine von acht möglichen Richtungen bewegt werden. Das Programm wird dadurch aber nicht aufgehalten, da die Sprites vom Interrupt gesteuert wer-

den. Dadurch ist es zum Beispiel möglich, daß ein Sprite, während es bewegt wird, seine Gestalt verändern oder sogar das Programm gelistet werden kann. Man kann sich so zum Beispiel ein Sprite in Bewegung ansehen, während man es editiert. Aber auch hier sind natürlich eigenen Versuchen keine Grenzen gesetzt. Der letzte Befehl SSTOP ist der Gegensatz zu SRUN, das heißt er stoppt die mit SRUN gestarteten Sprites. Die Positionen der Sprites können wie bisher mit dem normalen PEEK ausgelesen werden.

Eine Befehlsübersicht gibt Tabelle 1. Das Beispielprogramm (Listing 2) zeigt, wie man innerhalb von Spielen diese neuen Befehle einsetzt. Bitte zur Eingabe von Listing 2 nicht den Checksummer verwenden, da dieser nicht mit Basic-Erweiterungen zusammenarbeitet.

(Ronald Mayer/tr)
PROGRAMM : GAMEBASIC-C000 C000 C816
-----------------------------------
C000 : A9 01 85 2B 85 2D A9 08   69
C008 : 85 2C 85 FF A9 10 85 2E   92
C010 : A9 C0 85 FD A9 30 A2 00   E1
C018 : 85 FC 86 FE A0 00 B1 FC   67
C020 : 91 FE C8 D0 F9 E6 FD E6   19
C028 : FF A5 FF C9 10 90 EF 60   39
C030 : 00 15 08 C1 07 9E 28 32   60
C038 : 30 37 31 29 20 3A 20 A2   0F
C040 : 20 20 20 20 00 00 00 A9   D0
C048 : 08 85 FD A9 10 85 FF A9   48
C050 : 3D A2 00 85 FC 86 FE A0   D0
C058 : 00 B1 FC 91 FE C8 D0 F9   0F
C060 : E6 FD E6 FF A5 FF C9 18   B0
C068 : 90 EF 4C 00 10 20 A0 E5   53
C070 : A9 7C A0 16 20 1E AB A2   29
C078 : 0A CA BD 99 17 9D 00 03   EE
C080 : 8A D0 F6 A9 28 85 2C A9   18
C088 : 00 8D 00 28 60 A6 7A A0   BA
C090 : 04 84 0F BD 00 02 10 07   B0
C098 : C9 FF F0 3E E8 D0 F4 C9   E1
C0A0 : 20 F0 37 85 08 C9 22 F0   F0
C0A8 : 55 24 0F 70 2D C9 3F D0   A1
C0B0 : 04 A9 99 D0 25 C9 30 90   8C
C0B8 : 04 C9 3C 90 1D 84 71 A0   BF
C0C0 : 00 84 0B 88 86 7A CA C8   CF
C0C8 : E8 BD 00 02 38 F9 9E A0   DE
C0D0 : F0 F5 C9 80 D0 2F 05 0B   EE
C0D8 : A4 71 E8 C8 99 FB 01 C9   99
C0E0 : 00 F0 38 38 E9 3A F0 04   AA
C0E8 : C9 49 D0 02 85 0F 38 E9   50
C0F0 : 55 D0 A0 85 08 BD 00 02   F9
C0F8 : F0 E0 C5 08 F0 DC C8 99   17
C100 : FB 01 E8 D0 F0 A6 7A E6   CC
C108 : 0B C8 B9 9D A0 10 FA B9   83
C110 : 9E A0 D0 B5 F0 0F BD 00   68
C118 : 02 10 BD 99 FD 01 C6 7B   BF
C120 : A9 FF 85 7A 60 A0 00 B9   F8
C128 : A8 16 D0 02 C8 E8 BD 00   1A
C130 : 02 38 F9 A8 16 F0 F5 C9   36
C138 : 80 D0 04 05 0B D0 99 A6   AD
C140 : 7A E6 0B C8 B9 A7 16 10   5B
C148 : FA B9 A8 16 D0 E0 F0 C6   71
C150 : A6 D3 E0 06 B0 04 A2 06   9A
C158 : 86 D3 AA 10 03 4C 07 11   45
C160 : C9 3A D0 0D A5 0F 29 01   96
C168 : D0 05 A9 3A 4C 04 11 A9   E9
C170 : 0D 4C F3 A6 10 0F 24 0F   9D
C178 : 30 0B C9 FF F0 07 C9 CC   A8
C180 : B0 06 4C 24 A7 4C F3 A6   C5
C188 : 38 E9 CB AA 84 49 A0 FF   12
C190 : CA F0 08 C8 B9 A8 16 10   47
C198 : FA 30 F5 C8 B9 A8 16 30   DA
C1A0 : 05 20 47 AB D0 F5 4C EF   CA
C1A8 : A6 20 73 00 20 45 11 4C   44
C1B0 : AE A7 C9 CC 90 04 C9 FF   8E
C1B8 : 90 06 20 79 00 4C ED A7   EC
C1C0 : 38 E9 CC 0A AA BD 46 17   41
C1C8 : 48 BD 45 17 48 4C 73 00   D8
C1D0 : 98 48 8A 4A A8 B9 1E 17   77
C1D8 : 4D 10 D0 8D 10 D0 68 A8   8E
C1E0 : 60 B9 27 17 A8 A6 02 B9   05
C1E8 : 10 D0 1D 1E 17 99 10 D0   8C
C1F0 : 60 B9 27 17 A8 A6 02 B9   15
C1F8 : 10 D0 49 FF 1D 1E 17 49   74
C200 : FF 99 10 D0 60 8A 10 03   8B
C208 : 4C 74 A4 C9 1F B0 03 4C   0D
C210 : 3A A4 8A 0A AA BD 32 16   0E
C218 : 85 22 BD 33 16 85 23 4C   37
C220 : 47 A4 20 FD AE 20 9E B7   57
C228 : 60 A0 00 84 02 A2 08 A9   12
C230 : 2E D1 7A D0 05 06 02 4C   21
C238 : FD 11 A9 31 D1 7A D0 07   91
C240 : 06 02 E6 02 4C FD 11 A9   8D
C248 : 32 D1 7A D0 0D 06 02 06   31
C250 : 02 E6 02 20 73 00 CA 4C   45
C258 : FD 11 A9 33 D1 7A D0 11   05
C260 : 06 02 E6 02 06 02 20 73   39
C268 : 00 CA 20 73 00 CA D0 BF   5D
C270 : 60 A2 24 4C 98 11 18 85   31
C278 : 8E A0 00 84 8F 06 8E 90   6B
C280 : 02 E6 8F CA F0 05 06 8F   A1
C288 : 4C 10 12 60 20 9E B7 E0   05
C290 : 09 90 05 A2 1F 4C 98 11   50
C298 : AD 15 D0 1D 1E 17 8D 15   A3
C2A0 : D0 60 20 9E B7 E0 09 B0   84
C2A8 : EA AD 15 D0 49 FF 1D 1E   0D
C2B0 : 17 49 FF 8D 15 D0 60 20   B7
C2B8 : 9E B7 8E 20 D0 20 B5 11   E0
C2C0 : 8E 21 D0 20 B5 11 8E 86   42
C2C8 : 02 60 A9 E8 A2 03 85 FE   D8
C2D0 : 86 FF A0 00 B1 FE 49 80   B7
C2D8 : 91 FE C8 D0 F7 E6 FF A5   36
C2E0 : FF C9 07 90 EF 60 20 9E   57
C2E8 : B7 8A 48 20 B5 11 E8 86   8F
C2F0 : 02 68 AA E4 02 B0 07 20   6F
C2F8 : FF E9 E8 4C 86 12 20 66   F6
C300 : E5 60 20 9E B7 86 D3 20   30
C308 : B5 11 86 D6 20 6C E5 20   FF
C310 : B5 11 8E 86 02 20 FD AE   39
C318 : 4C A4 AA 20 8A AD 20 F7   EB
C320 : B7 AA E8 C8 A9 FF 85 FF   30
C328 : A5 CB C9 3C F0 0A C6 FF   27
C330 : D0 FC 88 D0 EF CA D0 EC   2D
C338 : 60 20 F5 12 20 9E B7 E0   00
C340 : 08 90 05 A2 1F 4C 98 11   FF
C348 : A9 01 86 02 9D 81 17 20   D6
C350 : B5 11 E0 08 90 05 A2 20   C3
C358 : 4C 98 11 8A A6 02 9D 79   6A
C360 : 17 60 78 A9 02 8D 14 03   DD
C368 : A9 13 8D 15 03 58 60 A2   5B
C370 : 00 BD 81 17 F0 41 BD 79   95
C378 : 17 0A A8 8A 0A AA B9 89   00
C380 : 17 F0 1F C9 02 D0 0E BD   6B
C388 : 00 D0 D0 03 20 63 11 DE   A4
C390 : 00 D0 4C 35 13 BD 00 D0   73
C398 : C9 FF D0 03 20 63 11 FE   55
C3A0 : 00 D0 B9 8A 17 F0 0D C9   89
C3A8 : 02 D0 06 DE 01 D0 4C 47   C6
C3B0 : 13 FE 01 D0 8A 4A AA E8   14
C3B8 : E0 08 D0 B5 4C 31 EA 20   C1
C3C0 : 9E B7 E0 08 F0 0D 90 05   37
C3C8 : A2 1F 4C 98 11 A9 00 9D   BA
C3D0 : 81 17 60 A2 00 8A 9D 81   17
C3D8 : 17 E8 E0 08 D0 F8 60 20   33
C3E0 : 9E B7 86 02 A9 00 A2 D8   13
C3E8 : 85 FE 86 FF A0 00 A5 02   32
C3F0 : 91 FE C8 D0 FB E6 FF A6   91
C3F8 : FF E0 DC 90 F3 60 AD 06   B5
C400 : 03 C9 E3 D0 07 A2 07 A0   DE
C408 : 11 4C A3 13 A2 E3 A0 10   76
C410 : 8E 06 03 8C 07 03 60 20   3E
C418 : 53 E4 78 A9 EA A2 31 8D   D4
C420 : 15 03 8E 14 03 58 60 20   92
C428 : 44 E5 A2 00 BD A8 16 F0   63
C430 : 16 85 02 0A 4A 20 D2 FF   BC
C438 : A5 02 10 07 86 09 20 DB   AC
C440 : 13 A6 09 E8 4C BF 13 60   D6
C448 : A5 D3 C9 14 B0 08 A9 14   E6
C450 : 85 D3 20 6C E5 60 20 D7   E6
C458 : AA 60 20 9E B7 E0 08 90   D2
C460 : 05 A2 1F 4C 98 11 86 02   38
C468 : 20 B5 11 8A A6 02 9D F8   DB
C470 : 07 A0 00 84 FF 20 B5 11   52
C478 : A4 FF 8A F0 06 20 74 11   32
C480 : 4C 19 14 20 84 11 E6 FF   CE
C488 : A5 FF C9 04 90 E7 20 B5   54
C490 : 11 8A A6 02 9D 27 D0 60   E7
C498 : 20 9E B7 E0 19 90 05 A2   81
C4A0 : 0E 4C 98 11 8E A8 17 20   E7
C4A8 : B5 11 E0 19 B0 F1 E8 8E   9C
C4B0 : A3 17 20 B5 11 E0 28 B0   B8
C4B8 : E6 E8 8E A5 17 20 B5 11   D6
C4C0 : 8E A6 17 20 B5 11 8E A7   D9
C4C8 : 17 20 B5 11 8E A4 17 AE   47
C4D0 : A8 17 BD F0 EC 85 FC 85   8B
C4D8 : FE AD 88 02 18 7D 2C 17   5C
C4E0 : 85 FD 69 D4 85 FF AD A4   B1
C4E8 : 17 F0 06 20 A3 15 4C 87   20
C4F0 : 14 20 C2 15 E8 EC A3 17   1A
C4F8 : 90 D8 CE A5 17 D0 D0 60   59
C500 : 20 9E B7 E0 08 90 05 A2   D8
C508 : 1F 4C 98 11 8A 0A 85 02   A9
C510 : 20 FD AE 20 EB B7 8A A6   D2
C518 : 02 9D 01 D0 A5 14 A6 02   DD
C520 : 9D 00 D0 A0 04 A5 02 4A   10
C528 : 85 02 A5 15 F0 0C C9 02   55
C530 : 90 05 A2 0E 4C 98 11 4C   14
C538 : 74 11 4C 84 11 20 9E B7   D4
C540 : E0 02 90 05 A2 23 4C 98   8C
C548 : 11 8A 48 20 B5 11 68 D0   DC
C550 : 1C E0 20 90 04 E0 40 90   60
C558 : 05 A2 21 4C 98 11 8A A2   02
C560 : 03 86 8D A2 15 86 8C A2   5B
C568 : 06 20 09 12 60 8A A2 01   EA
C570 : 86 8D A2 08 86 8C A2 03   C4
C578 : 20 09 12 18 A5 8F 69 20   61
C580 : 85 8F 60 A5 8C D0 05 A2   42
C588 : 22 4C 98 11 C6 8C A9 00   90
C590 : 85 8B 20 BC 11 A5 02 A0   02
C598 : 00 91 8E E6 8E D0 02 E6   26
C5A0 : 8F E6 8B A4 8B C4 8D D0   D0
C5A8 : E9 4C 79 00 78 A9 33 85   C2
C5B0 : 01 A9 00 85 FE 85 FC A9   9A
C5B8 : D0 85 FF A9 20 85 FD A0   E7
C5C0 : 00 B1 FE 91 FC C8 D0 F9   D8
C5C8 : E6 FF E6 FD A5 FF C9 D8   5A
C5D0 : 90 EF A9 37 85 01 58 A9   BE
C5D8 : 19 8D 18 D0 A9 FF 8D 91   CC
C5E0 : 02 60 20 9E B7 8A D0 06   0D
C5E8 : A0 C8 8C 16 D0 60 E0 02   6A
C5F0 : B0 05 A0 D8 4C 7D 15 20   AB
C5F8 : B5 11 8E 22 D0 20 B5 11   25
C600 : 8E 23 D0 20 B5 11 8E 25   C0
C608 : D0 20 B5 11 8E 26 D0 60   96
C610 : A0 26 B1 FE 48 B1 FC C8   A7
C618 : 91 FC 68 91 FE 88 88 C0   4B
C620 : FF D0 EF C8 AD A7 17 91   34
C628 : FE AD A6 17 91 FC 60 A0   4D
C630 : 01 B1 FE 48 B1 FC 88 91   1B
C638 : FC 68 91 FE C8 C8 C0 28   D3
C640 : D0 EF 88 AD A7 17 91 FE   57
C648 : AD A6 17 91 FC 60 20 44   1C
C650 : E5 60 20 EB B7 8E F1 15   CD
C658 : A0 00 B1 14 18 69 00 91   D7
C660 : 14 60 20 EB B7 8E 01 16   4A
C668 : A0 00 B1 14 38 E9 00 91   ED
C670 : 14 60 AD 11 D0 09 10 8D   F3
C678 : 11 D0 60 AD 11 D0 29 EF   DB
C680 : 4C 0A 16 49 4C 4C 45 47   4B
C688 : 41 4C 20 53 50 52 49 54   C7
C690 : 45 4E 55 4D 42 45 D2 49   28
C698 : 4C 4C 45 47 41 4C 20 44   C4
C6A0 : 49 52 45 43 54 49 4F CE   37
C6A8 : 50 41 47 45 20 49 53 20   ED
C6B0 : 55 53 45 C4 43 4F 44 45   E3
C6B8 : 20 4E 4F 54 20 44 45 46   24
C6C0 : 49 4E 45 C4 49 4C 4C 45   CD
C6C8 : 47 41 4C 20 4D 4F 44 C5   B3
C6D0 : 43 52 45 41 54 49 4E 47   0D
C6D8 : 20 43 4F 44 C5 16 16 2A   B0
C6E0 : 16 3B 16 47 16 57 16 63   3E
C6E8 : 16 93 0D 9A 20 2A 2A 2A   AF
C6F0 : 47 41 4D 45 42 41 53 49   E2
C6F8 : 43 20 56 31 2E 30 20 20   2C
C700 : 28 43 29 20 31 39 38 35   40
C708 : 20 4D 52 2D 53 4F 46 54   7B
C710 : 2A 2A 2A 0D 00 52 45 53   CA
C718 : 45 D4 53 4F CE 53 4F 46   D7
C720 : C6 43 4F 4C 4F D2 52 45   45
C728 : 56 45 52 D3 43 4C 45 41   5E
C730 : D2 53 45 D4 50 41 55 53   A3
C738 : C5 53 52 55 CE 53 53 54   64
C740 : 4F D0 50 41 49 4E D4 54   37
C748 : 41 C2 42 41 53 49 C3 48   C2
C750 : 45 4C D0 53 50 52 49 54   BF
C758 : C5 53 43 52 4F 4C CC 53   13
C760 : 53 45 D4 43 52 45 41 54   F0
C768 : C5 43 4F 44 C5 43 4F 50   80
C770 : D9 4D 55 4C 54 C9 43 4C   08
C778 : D3 49 4E C3 44 45 C3 53   20
C780 : 43 52 4F CE 53 43 52 4F   D1
C788 : 46 C6 00 01 02 04 08 10   D2
C790 : 20 40 80 FF 07 0D 0C 0B   0F
C798 : 00 00 00 00 00 00 00 00   99
C7A0 : 01 01 01 01 01 01 02 02   A7
C7A8 : 02 02 02 02 02 03 03 03   B7
C7B0 : 03 03 FF 0F 1E 12 34 12   7E
C7B8 : 49 12 5C 12 78 12 94 12   F2
C7C0 : AD 12 CB 12 51 13 71 13   45
C7C8 : 90 13 A9 13 B9 13 EC 13   BD
C7D0 : 2A 14 92 14 CF 14 15 15   48
C7D8 : 3E 15 74 15 E0 15 E4 15   D5
C7E0 : F4 15 04 16 0D 16 00 00   A4
C7E8 : 00 00 00 00 00 00 00 00   E9
C7F0 : 00 00 00 00 00 00 00 02   F5
C7F8 : 01 02 01 00 01 01 00 01   55
C800 : 02 01 02 00 02 02 98 11   B8
C808 : 83 A4 20 10 E3 10 3C 11   B9
C810 : 00 00 00 00 00 4D         9F
Listing 1. Game-Basic. Bitte mit dem MSE (Seite 8) eingeben.
10 REM*********************
20 REM*  GAME-BASIC DEMO  *
30 REM*-------------------*
40 REM* (C) 1985  MR-SOFT *
50 REM*   RONALD  MAYER   *
60 REM*    THENING  24    *
70 REM*  A-4062  THENING  *
80 REM*   A U S T R I A   *
90 REM*********************
95 A$="*  GAME-BASIC DEMOPROGRAMM  ****  @ 1985 BY MR-SOFT RONALD MAYER  ***"
100 COLOR9,15,6:CLS:COPY
110 SET15,11,6,"GAMEBASIC":SET16,13,2,"D E M O"
120 FORI=0TO24:SCROLL0,24,0,32,15,0:SCROLL0,24,0,32,15,1:NEXT:PAUSE500
125 FORI=1TO10:REVERS:PAUSE100:NEXT
126 SCROLL0,10,39,160,9,1
127 SCROLL14,24,39,160,9,0:PAUSE500
128 FORI=1TO40:SCROLL11,13,0,160,12,1:PAUSE40:NEXT
130 FORI=0TO39:SCROLL0,24,0,160,I,0:NEXT
140 FORI=0TO24:SCROLLI,24,1,160,I,1:NEXT:PAINT11
150 CREATE1,160:FORI=1TO8
160 CODE........:PAUSE200:NEXT
161 CREATE1,160:FORI=1TO8
162 CODE11111111:PAUSE200:NEXTI
170 SCROLL0,24,19,160,15,0
180 COLOR9,0,6
190 SCROLL0,24,19,32,0,1
200 CREATE0,32
210 CODE......333333............
220 CODE....3333333333..........
230 CODE..33333333333333........
240 CODE..33333333333333........
250 CODE333333333333333333......
260 CODE33333333..33333333......
270 CODE333333......331111111111
280 CODE333333........1111111111
290 CODE333333........11111111..
300 CODE333333........111111....
310 CODE333333..................
320 CODE333333........222222....
330 CODE333333........22222222..
340 CODE333333........2222222222
350 CODE333333......332222222222
360 CODE33333333..33333333......
370 CODE333333333333333333......
380 CODE..33333333333333........
390 CODE..33333333333333........
400 CODE....3333333333..........
410 CODE......333333............
420 SSTOP8:SOFF8:MULTI2,0,0,10,6:FORI=0TO7:SSETI,40+I,138-I:NEXT
430 FORI=7TO0STEP-1:SPRITEI,32,0,0,1,1,I+1:SONI:PAUSE300:NEXT
440 FORJ=1TO2
450 FORI=0TO7:SRUNI,1:PAUSE80:NEXT
460 FORI=0TO7:SRUNI,5:PAUSE80:NEXT
465 FORI=0TO7:SRUNI,3:PAUSE80:NEXT
466 FORI=0TO7:SRUNI,7:PAUSE80:NEXTI,J
470 FORI=0TO7:SOFFI:SSTOPI:PAUSE100:NEXTI
480 SCROLL5,19,39,45,15,1
490 FORI=0TO7:SSETI,172,139:NEXT
500 SCROLL10,14,39,64,14,1
501 SCROLL0,4,9,32,0,0
502 SCROLL20,24,9,32,0,0
510 SON8:FORI=0TO7:SRUNI,I:NEXT:PAUSE2000
520 CREATE0,32
521 CODE......333333333333......
522 CODE....3333333333333333....
523 CODE....3333333333333333....
524 CODE..333333........333333..
525 CODE..333333........333333..
526 CODE..3333..22222222..3333..:PAUSE500
527 CODE333333..22222222..333333
528 CODE3333..112222222222..3333
529 CODE3333..111122222222..3333
530 CODE3333..111122222222..3333
531 CODE3333..111111222222..3333
532 CODE3333..111111112222..3333
533 CODE3333..111111112222..3333
534 CODE3333..111111111122..3333
535 CODE333333..11111111..333333:PAUSE500
536 CODE..3333..11111111..3333..
537 CODE..333333........333333..
538 CODE..333333........333333..
539 CODE....3333333333333333....
540 CODE....3333333333333333....
541 CODE......333333333333......
550 CREATE1,0
560 CODE..1111..
570 CODE.1....1.
580 CODE1..11..1
590 CODE1.1....1
600 CODE1.1....1
610 CODE1..11..1
620 CODE.1....1.
630 CODE..1111..
640 FORI=1TO2:FORJ=1TO69:PAUSE40
649 B$=MID$(A$,J,1)
650 SCROLL12,12,0,ASC(B$)ANDNOT64,15,0:NEXTJ,I:PAUSE1000
660 FORI=0TO39:SCROLL0,24,0,77+RND(1)*2,9,1:NEXT:PAUSE3000
GOTO126

READY.
Listing 2. Beispielprogramm zu Game-Basic
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →