BASICODE in Java
Re: BASICODE in Java
Ja, "das" BASIC gibt es nicht. Und wenn man Kontrolle über Grammatik und Parser hat, kann man sich solche Extravaganzen auch mal erlauben. Wie auch mehrere NEXT-Statements zum selben FOR.
Re: BASICODE in Java
So, wir sind live und öffentlich, mit allen Bugs.
Bitteschön: https://github.com/mhaupt/basicode
Und noch ein wenig Text: https://blog.haupz.de/basicode.html
Bug Reports, Vorschläge, Pull Requests etc. gern per GitHub. Oder hier.
Bitteschön: https://github.com/mhaupt/basicode
Und noch ein wenig Text: https://blog.haupz.de/basicode.html
Bug Reports, Vorschläge, Pull Requests etc. gern per GitHub. Oder hier.
Re: BASICODE in Java
Dem ist halt so. Außerdem, die Diskusion der noch vorhandenen Bugs im Projekt motiviert mehr wie der Kampf im stillen Kämmerlein.So, wir sind live und öffentlich, mit allen Bugs.
Re: BASICODE in Java
... bisher hat sich noch niemand über irgendwas beschwert. Also doch keine Bugs.
Ich bin einfach mal so frei und füge auf GitHub (unter "Issues") einige Dinge hinzu, die bisher so aufgelaufen sind.
Ich bin einfach mal so frei und füge auf GitHub (unter "Issues") einige Dinge hinzu, die bisher so aufgelaufen sind.
Re: BASICODE in Java
Ich möchte diesen Vorschlag nochmal aufgreifen - Paul, hast du eventuell Verweise auf Schriftarten für diese Maschinen?Paul hat geschrieben: ↑26.11.2023, 21:06 Wäre es möglich die wichtigen Parameter wie Farben, Zeilenbreite, Zeilenanzahl, Font usw. wählbar zu machen?
Eventuell unter einem Namen speicherbar?
So könnte ich Spectrum Font und Farben wählen oder Atari ST, PCW oder was mir gerade gefällt.
Das muss ja nicht mitgeliefert werden sondern der User selber raus suchen oder vorgefertigte ini Dateien veröffentlichen.
Re: BASICODE in Java
Damit das Programm auch von Laien leichter zu bedienen ist, wäre eine Menüzeile mit mind. einem File / Open sehr wünschenswert um die BasiCode-Datei in einer File Selection Box auszuwählen. Dann müsste man nicht mit der Kommandozeile herumhantieren, sondern könnte die JAR-Datei einfach per Doppelklick starten (ein installiertes Java 21 vorausgesetzt).
Derzeit muss man eine Shell bemühen (z.B. Windows cmd) und etwa
eintippen. Natürlich kann man den <Pfad zu Java 21> weglassen, wenn die Umgebungsvariablen korrekt gesetzt sind. Ebenso kann man <Pfad zur BasiCode-Datei> weglassen, wenn man sich bereits in dem Verzeichnis befindet, in dem sich die Datei basicode.jar befindet. Sollte dort auch <Dateiname>.bas zu finden sein, dann kann man <Pfad zur BasiCode-Datei> auch noch weglassen. Der kürzeste Aufruf sieht dann wohl so aus:
Ich habe mal eine erste Version von basicode.jar zum Ausprobieren angehängt:
Derzeit muss man eine Shell bemühen (z.B. Windows cmd) und etwa
Code: Alles auswählen
<Pfad zu Java 21>\java -jar <Pfad zu basicode.jar>\basicode.jar <Pfad zur BasiCode-Datei>\<Dateiname>.bas
Code: Alles auswählen
java -jar basicode.jar <Dateiname>.bas
Re: BASICODE in Java
Richtig; siehe hier.
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.
Re: BASICODE in Java
Woher hast du denn sinclair.ttf? Ich würde gern mal gucken, ob diese Schriften, ähnlich wie die CPC-Schrift, die im Moment verwendet wird, auch frei lizenziert sind. Dann kann ich eine Sammlung von vordefinierten Geräten gleich mitliefern.
Eigene Geräte zu definieren, wird damit natürlich auch möglich sein.
Re: BASICODE in Java
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
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
kurt@refracta9:$