Seite 3 von 6
Re: BASICODE in Java
Verfasst: 22.12.2023, 18:34
von haupz
kurt hat geschrieben: ↑22.12.2023, 17:37
Da will man sich mal dran versuchen und dann das ! Geahnt hatte ich sowas schon...:
Code: Alles auswählen
kurt@refracta9:$ java -jar basicode.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: de/haupz/basicode/Main has been compiled by a
more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes
class file versions up to 52.0
...
Nikolaus war ja schon. Das Ostern per Easteregg dieses mal so früh kommt überascht doch etwas... Ich bin ohnehin gerade am experimentieren, vielleicht läßt sich da was drehen, ausprobiert hätte ich's schon noch gern.
Es sieht so aus, als wäre bei dir ein JDK 8 installiert ("this version of the Java Runtime only recognizes class file versions up to 52.0"); bitte installiere doch mal
JDK 21. Und wenn du schon JDK 21 installiert hast, musst du mal bei den Pfaden gucken, ob die auch auf die richtige Java-Version zeigen.
Re: BASICODE in Java
Verfasst: 22.12.2023, 18:41
von kurt
Es sieht so aus, als wäre bei dir ein JDK 8 installiert
Auf meinem Arbeits-Rechner ja, da läuft Debian 9.
Zweiter Versuch. Diesmal mit der aktuellen Debian 12.2:
Code: Alles auswählen
kurt@refracta9:$ java -jar basicode.jar hello-graphics.bas
Fehler: Beim Laden der Klasse de.haupz.basicode.Main ist ein LinkageError aufgetreten
java.lang.UnsupportedClassVersionError: de/haupz/basicode/Main has been compiled
by a more recent version of the Java Runtime (class file version 65.0), this version of the
Java Runtime only recognizes class file versions up to 61.0
kurt@refracta9:$
kurt@refracta9:$ java -version
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Debian-1deb12u1)
OpenJDK Server VM (build 17.0.9+9-Debian-1deb12u1, mixed mode, sharing)
kurt@refracta9:$
Noch aktueller kann ich nicht (ich breche nur ungern aus dem zur Distribution angebotenen Paketen aus, ich habe da so meine leidigen Erfahrungen mit). Deshalb, Frage: ist es möglich die Anforderungen an die Java Runtime-Version etwas abzusenken ? Am besten auf das von Debian 9, aber damit bin ich vermutlich etwas zu dreist
Auf das Niveau von Debian 12 wäre schon super.
Re: BASICODE in Java
Verfasst: 22.12.2023, 18:59
von haupz
kurt hat geschrieben: ↑22.12.2023, 18:41
Noch aktueller kann ich nicht (ich breche nur ungern aus dem zur Distribution angebotenen Paketen aus, ich habe da so meine leidigen Erfahrungen mit). Deshalb, Frage: ist es möglich die Anforderungen an die Java Runtime-Version etwas abzusenken ? Am besten auf das von Debian 9, aber damit bin ich vermutlich etwas zu dreist
Auf das Niveau von Debian 12 wäre schon super.
Damit schösse ich mir selbst ins Knie ...
Ich sehe da drei Möglichkeiten:
Zum Einen kannst du wirklich einfach ein JDK 21 runterladen und installieren - das ist unter Linux einfach ein Verzeichnis, ohne dass irgendwelche zusätzlichen Bibliotheken installiert werden müssen. (Meiner Erinnerung nach.)
Zum Anderen ist es mit einem Werkzeug wie
SDKMAN recht ungefährlich, mehrere JDKs nebeneinander installiert zu haben. Da könntest du dann zwischen unterschiedlichen JDKs elegant hin- und herschalten.
Zum Dritten kannst du auch Maven installieren (da du Debian nutzt: apt install maven) und mal gucken, ob das Projekt mit JDK 17 baubar ist. Ich bin mir gerade nicht sicher, ob ich nicht hie und da ein paar Neuerungen aus JDK 21 benutzt habe.
Zusammenfassend würde ich ehrlich gesagt zu 1 oder 2 tendieren.
Re: BASICODE in Java
Verfasst: 22.12.2023, 19:01
von haupz
haupz hat geschrieben: ↑22.12.2023, 16:33
Danke; ein executable JAR hat das Projekt bereits vorher generiert, allerdings war es etwas versteckt.
Nun ist das direkt im Basisverzeichnis, wird bei jedem Build auch dort angelegt, und wird auch gleich mit ausgeliefert, so dass man gleich nach dem Klonen loslegen kann.
Das macht mich allerdings nicht ganz glücklich, weil nun basicode.jar versioniert ist. Das ist etwas zu viel Ballast. Ich würde das noch
auf einen dedizierten Download-Link umstellen.
Nun gibt es eine saubere
Release-Seite, die auch auf der
Projekt-Startseite aus rechts am Rand gut zu finden ist.
Re: BASICODE in Java
Verfasst: 23.12.2023, 00:28
von kurt
Zusammenfassend würde ich ehrlich gesagt zu 1 oder 2 tendieren.
Es gibt doch für die ewig gestrigen wie mich (die unverdrossen ein 32-bit System benutzen) bei diesem Problem eine Lösung
Dank Dr. Google konnte ich eine 32-bit Java-21 Version für Debian auftreiben:
URL:
https://bell-sw.com/pages/downloads/#jdk-21-lts
Dort findet sich auch eine 32-bit Version für Windows
Mit ein wenig gefrickel für ein shell-Script ist dann der Drops gelutscht:
Code: Alles auswählen
#!/bin/bash
#
# Name: bjava
# Bezug: Aufruf der Bellsoft-Java Version 21
/usr/lib/jvm/bellsoft-java21-i586/bin/java $1 $2 $3 $4 $5
Und es geht doch !
Re: BASICODE in Java
Verfasst: 23.12.2023, 11:32
von haupz
kurt hat geschrieben: ↑23.12.2023, 00:28
Und es geht doch !
Ha! Eppure si muove! Glückwunsch!
Das mit den 32 bit war mir nicht bewusst; aber gut zu wissen, dass es noch Java-Versionen dafür gibt.
Re: BASICODE in Java
Verfasst: 23.12.2023, 14:31
von Paul
https://fontstruct.com/fontstructions/download/1398629
ZX 80 Font (
http://creativecommons.org/licenses/by/3.0/)
https://www.dafont.com/zx81.font
ZX81 und Spectrum
http://www.mattheweagles.co.uk/computing_contents.htm
ZX81 free
Dort sind auch jeweils die Lizenzen dabei.
Woher meine alte sinclair.ttf kommt weiß ich nicht mehr.
Heute habe ich auch endlich ein aktuelles Java installiert und ein paar Basicodes ausprobiert.
Liebe Grüße
Paul
Re: BASICODE in Java
Verfasst: 23.12.2023, 15:07
von Paul
Ich fände es eine praktische Sache wenn es eine Übersicht der möglichen (sowie nicht implementierten) Befehle gäbe.
Dabei würde ich erwarten das es eine Endlosschleife ist.
Ich habe ja keine Ahnung was im Basicode dahinter steckt
.
Nach Zeile 20 erwarte ich irgendwann wieder bei Zeile 1000 anzukommen bzw. ein Gosub 20
Ich habe Thomas Vortrag gehört, aber sicher nicht alles behalten.
Re: BASICODE in Java
Verfasst: 23.12.2023, 15:22
von Paul
Nachdem ich gelesen habe was in Zeile 20 passiert und das nach 1010 gesprungen wird wundert mich das scroll.bas funktioniert.
Code: Alles auswählen
10 FOR I=1 TO 30
20 PRINT I
30 NEXT I
40 PRINT "Done."
Es fehlt die vorgeschrieben Zeile 1000 nebst GOTO 20.
Dann wird Zeile 20 ja anscheinend überschrieben. Ob das darf bin ich mir nicht sicher.
Am Ende fehlt dann das mandatorische GOTO 950
So sollte es aussehen:
Code: Alles auswählen
1000 GOTO 20: REM Scrollp.bas
1010 FOR I=1 TO 30
1020 PRINT I
1030 NEXT I
1040 PRINT "Done."
1050 GOTO 950
Re: BASICODE in Java
Verfasst: 23.12.2023, 15:28
von ein Thüringer
Hallo Paul,
steht alles im Manual (lag der Klubzeitung #102 bei) und dieses auf
https://www.8bit-wiki.de/fileadmin/8bit ... -V-1-6.pdf wie auch unter
https://joyce.de/basicode/download/Man_BC3C.pdf .
Die zulässigen Befehle stehen im Textkasten auf Seite 7 (Obacht: LOG ist der natürliche und nicht der dekadische Logarithmus – LN ist ein verbotener Variablenname) und eine Auswahl zu vermeidender Befehle im Textkasten auf Seite 9.
Mit GOTO 20 hat es seine Richtigkeit, von dort (der Initialisierung) kehrt es mit GOTO 1010 zurück; GOTO 1000 ganz am Anfang und GOTO 950 (anstatt END oder STOP) sind weitere Ausnahmen – sonst gibt es nur GOSUBs.