BASICODE in Java

Software-Entwicklung, Compiler, Interpreter, ...
Benutzeravatar
ein Thüringer
Beiträge: 45
Registriert: 29.08.2021, 11:04

BASICODE in Java

Beitrag von ein Thüringer »

Kurz vor Jahresende veröffentlichte Michael eine neue Version seines BasiCode-Interpreters in Java: https://github.com/mhaupt/basicode/releases/tag/v0.11 . Eines der Programme, die nun auch laufen, ist "Notenbalk", ein Programm, das wir auf der Diskette zum Klubtreffen 2020 haben. Mich begeistert es, weil es (bis auf Drucken und die Nutzung von acht Farben) alle Features der aktuellsten Version von BasiCode ausnutzt: die hochauflösende Grafik, das Nachladen von Daten und das Abspielen von Musik. Beim online-Browser von Rob Hagemans finden wir das Programm auch https://robhagemans.github.io/basicode/ ... enbalk.bc3 , die drei Beispielsdatensätze liegen aber nicht mit unter dem Reiter Programme, sondern können hier heruntergeladen werden: https://github.com/robhagemans/basicode ... omboot.dat https://github.com/robhagemans/basicode ... erkens.dat https://github.com/robhagemans/basicode ... Moskou.dat , ich habe sie hier
MUZDATA.zip
drei Beispielsdatensätze zum Programm
(945 Bytes) 23-mal heruntergeladen
zusammengefasst.

vier Screenshots des Programms
vier Screenshots des Programms
NOTENBAL.png (27.01 KiB) 1357 mal betrachtet
Für die damalige Zeit ist es ein recht aufwendiges Projekt, erstaunlich, dass es auf den unterschiedlichsten Computern funktioniert. Im Java-Bascoder wollte es zunächst zwar nicht laufen - doch mit einiger Knobelei fanden wir das verursachende Problem heraus. Zu den für BasiCode zulässigen Befehlen (die also nicht durch ein GOSUB zeilennummer ersetzt werden müssen) zählt VAL(stringausdruck), also das Umwandeln einer Zeichenkette in eine Zahl. Beinhaltet die Zeichenkette nur Vorzeichen, Dezimalpunkt und Ziffern, gibt es keine Schwierigkeiten. Sind jedoch auch Buchstaben enthalten, reagieren die Interpreter unterschiedlich. Manche reagieren mit einer Errormeldung, andere wandeln wenigstens die Zeichen vor dem ersten Buchstaben um bzw. erzeugen den Wert 0, wenn schon an erster Stelle ein Buchstabe steht. In Zeile 5020 des Programms stand bisher IF NO$(N)="" THEN 5040. Ändern wir es so ab, wie rechts unten im Bild zu sehen ist, läuft es auch im Java-Bascoder.

Sind jemandem bei irgendwelchen Programmen andere Inkompatibilitäten untergekommen? Michael freut sich über solche Hinweise, sie helfen ihm, den Interpreter weiter zu perfektionieren.

Hier noch die nötigsten Bedienhinweise für nicht-Niederländer ;-) :

Im Titel-Screen (links oben) zweimal * drücken, nach dem ersten Mal werden vier leere Notenlinien gezeichnet, nach dem zweiten sehen wir das Menü (rechts unten). Hier wählen wir den Punkt 7 und geben den Namen (z.B. MUZDAT1) ein. Dann werden wieder die Notenlinien gezeichnet und die Noten usw. eingezeichnet. Mit S kann nun die Musik abgespielt werden, mit * wird ins Menü zurückgekehrt.
  • Übersetzung der Anleitung

    An den Anfang kannst du als Kennzeichnung ein # oder b schreiben und mit / und zwei Ziffern eine Taktangabe.

    Gib die Noten wie folgt ein: erst einen der Buchstaben ABCDEFGabcdefg (Höhe), danach ggf. ein # oder ein b, danach die Länge mit EINER Ziffer 1 2 4 8 oder 6 für eine 1/1, 1/2, 1/4, 1/8 oder 1/16 Note.

    Danach kann noch ein Punkt (Vergrößerung der Notenlänge um die Hälfte) oder ein M (= Taktstrich) eingegeben werden, sonst gib ein Leerzeichen ein. Ein + macht einen Binde-bogen.

    Der CURSOR geht von allein an die nächste Position. Der Cursor kann auch mit den Cursortasten bewegt werden.

    Eine PAUSE wird mit einem R und einer Ziffer 1 2 4 8 6 gesetzt. Das M setzt einen Taktstrich.

    Das S lässt die Musik spielen und das T frischt die Zeichnung auf.

    Die Lautstärke der Musik kannst du mit V und einer Ziffer von 1 bis 7 ändern, sie gilt für alle danach eingegebenen Noten.

    MIT EINEM * ERHÄLTST DU DAS MENÜ MIT DEN ANWEISUNGEN FÜR DAS SPEICHERN UND LADEN DER MUSIK NACH ODER VON KASSETTE ODER DISKETTE.

    Mit W kannst du eine Note löschen, die du mit dem Cursor auswählst.

    Mit I kannst du Platz schaffen, um eine Note einzufügen und mit U kannst du eine Note löschen und alles, was danach in der Zeile steht, nach links aufrücken. So kannst du nachträglich die Musik noch bequem ändern.

Es können auch eigene Musikstücke eingegeben und auch gespeichert werden - hierfür gibt es mehrere Seiten Hinweise, wenn ganz am Anfang J oder im Menü 1 eingegeben wird.

Viel Spaß damit!
Antworten