Die Suche ergab 35 Treffer

von ein Thüringer
31.12.2023, 20:48
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Paul hat geschrieben: 31.12.2023, 15:20 Die schnelle Spirale dreht aber falsch herum :lol:
CSFRAPFL.png
CSFRAPFL.png (9.24 KiB) 2513 mal betrachtet
Extra für Dich noch einmal andersherum, Paul! :D
hier wirklich 320 x 200 Pixel
hier wirklich 320 x 200 Pixel
SPIRAL.png (64.59 KiB) 2513 mal betrachtet
Aber woher willst Du wissen, welche falsch herum dreht? :roll:

Komm gut ins neue Jahr!
von ein Thüringer
31.12.2023, 15:15
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

ein Thüringer hat geschrieben: 28.12.2023, 19:56(...) zeigt sich, dass das Zeichnen rasend schnell erfolgt.
Hier seht Ihr, dass wirklich Welten dazwischen liegen. Dieser Apfelmännchen-Ausschnitt vom ZX81 (256 x 176 Pixel) benötigte tatsächlich Wochen zum Fertigstellen
CSFRAPFL.png
CSFRAPFL.png (7.65 KiB) 2518 mal betrachtet
und dieser unter Michaels Interpreter (320 x 200 Pixel) keine zehn Sekunden:
320 x 200 Pixel Leinwand, aber nur 312 x 192 Pixel genutzt
320 x 200 Pixel Leinwand, aber nur 312 x 192 Pixel genutzt
SPIRAL.png (30.56 KiB) 2518 mal betrachtet
Ich bin gespannt auf die nächste Version!
von ein Thüringer
29.12.2023, 01:29
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

haupz hat geschrieben: 28.12.2023, 23:29Ich würde mich über detaillierte Fehlerberichte oder einfach über die Namen der nicht funktionierenden Programme samt Schritte zur Reproduktion der Fehler sehr freuen!
Ich war erst mal froh, dass ich es überhaupt zum Laufen bekommen hatte – ohne die schon kompilierte jar-Datei wäre ich komplett außen vor geblieben. 😳

Du sollst auch nicht eine Liste von Programmen vor die Füße geworfen und nur gesagt bekommen, hier bleibt der Bildschirm blau, hier stürzt es gleich ab, hier bleibt es hängen, nun mache mal, sondern ich will auch schon selbst versuchen, eine Ursache zu benennen und das Problem etwas einzugrenzen / zu lokalisieren.
Wie soll das vonstatten gehen? GOSUB 110 setzt nicht nur den Cursor gemäß HO/VE, sondern auch die Textfarben gemäß CC(0)/(1)?
Genau, vgl. 000 in https://www.robotrontechnik.de/html/for ... adid=20758 . Dort ist auch ein Behelf, es im Programm und nicht im Bascoder zu erreichen, aber ersteres wäre schöner. Ich habe es sogar in meiner lokal gespeicherten Version des Hagemans-Bascoders patchen können, obwohl ich die Programmiersprache gar nicht beherrsche – einfach den betreffenden Passus aus der 100er Routine in die 110er kopiert.
von ein Thüringer
28.12.2023, 19:56
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

So, nun habe ich mich auch an diese Java-Sache gewagt. Es gab drei Hürden, bis es klappte, weil es anderen vielleicht ähnlich geht, will ich die mal hier schildern.

Um mir das Starten zu vereinfachen, habe ich eine .BAT-Datei geschrieben, die in dem Verzeichnis steht, das auch die basicode.jar und die BasiCode-Programme enthält. In dieser Batch-Datei ändere ich jeweils den Namen des gewünschten Programms und speichere sie ab. Dieses Verfahren erspart mir die Eingabe des langen Buchstabensalats im CMD-Fenster. In der Datei steht:

C:"\Program files\Java\jdk-21\bin\java" -jar D:\Thomas\Emulatio.nen\BC3CJAVA\basicode.jar -hold D:\Thomas\Emulatio.nen\BC3CJAVA\UNMOEGLI.BAS

Der blaue Text verweist auf das Verzeichnis, in dem das Java Development Kit steht, der magentafarbene auf die fertig kompilierte .JAR-Datei einschließlich ihres Pfads und der grüne Text auf Pfad und Name des gewünschten Programms. Die Bedeutung von -hold hat Michael erklärt: nach Programmende verschwindet das Fenster erst nach einem weiteren Tastendruck.

Wenn die Batch-Datei, die basicode.jar und die Programme im selben Verzeichnis stehen. sollte auch diese Form reichen:

C:"\Program files\Java\jdk-21\bin\java" -jar basicode.jar -hold UNMOEGLI.BAS

Wenn das klappt, kann man ja auch einen Link auf dem Desktop anlegen (der diese Batch-Datei aufruft) – um das ständige Editieren kommt man aber nicht herum. Doch zum Glück ist es nur eine Übergangslösung, bis Michael die Dateiauswahl in sein Projekt integriert hat.

Was waren nun die Hürden?

I) Im Explorer wird C:\Programme... angezeigt. Tatsächlich brauche ich aber den englischen Namen C:\Program files... Sch... Windows

II) Weil im Namen des ersten Ordners ein Leerzeichen enthalten ist, muss der Pfad in Anführungszeichen gesetzt werden.

III) Diese Anführungszeichen dürfen aber nicht den Laufwerksbuchstaben einschließen (also nicht "C:\Program files..."), das war mir fälschlich so gesagt worden.

Nun lief es endlich und gleich das erste Programm klappte auch:
OTHELLOC.png
OTHELLOC.png (16.81 KiB) 2071 mal betrachtet
Schon hier zeigt sich, dass das Zeichnen rasend schnell erfolgt. Wenn der Auswahl-Punkt über die möglichen Felder geführt wird, ertönt jeweils ein kurzer Ton - und nur das Abspielen dieses Tons verzögert den Programmablauf. Als ich "STEINE.BAS" (ein Tetris im Text-Modus) aufrief, war Spielen absolut nicht möglich. Deswegen arbeitet Michael an einer optionalen Verzögerungsmöglichkeit.

Nicht alle Programme liefen, hier werden wir Stück für Stück die Ursachen ergründen.
TESTBILD.png
TESTBILD.png (33.95 KiB) 2071 mal betrachtet
Ein weiteres Programm, das gleich lief:
UNMOEGLI.png
UNMOEGLI.png (18.37 KiB) 2071 mal betrachtet
Mein nächster Wunsch an Michael wäre die Möglichkeit, die Buchstabenfarbe beim Ausführen von GOSUB 110 (der Positionierung des Textcursors) zu wechseln, dann könnte das Zauberwürfelprogramm angenehmer als mit Buchstaben gespielt werden.
KUBUSCOL.png
KUBUSCOL.png (31.18 KiB) 2071 mal betrachtet
Das geht zwar über die Forderungen von BasiCode hinaus - aber es ist praktisch und viele Bascoder können es, obwohl es nicht gefordert ist.
von ein Thüringer
28.12.2023, 00:34
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Danke, Michael, Kurt und Paul! Der korrigierte Bascoder wurde schon von Werner in die Homepage eingepflegt.
Bascoder.jpg
Bascoder.jpg (61.93 KiB) 2089 mal betrachtet
Er überraschte mich auch mit dieser kleinen Animation:
XMAS2021.mp4.zip
".zip" entfernen
(245.79 KiB) 172-mal heruntergeladen
Danke auch an ihn!
von ein Thüringer
26.12.2023, 21:44
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Sehr gut, Paul!

Aber in 1 kann ja das RANDOMIZE dann entfallen, das GOTO 20 ist ja Pflicht in jedem Programm und einmal reicht. Ich überschlafe es, teste es morgen auch und erstelle den (bzw. übernehme Deinen) abgeänderten Bascoder.

Ein kleiner Änderungswunsch für Dein Programm: es läuft ungebremst in das GOTO 950 hinein. Laut Vereinbarungen
IMG_20231226_220355_edit_2224672023946465.jpg
aus dem niederländischen BC3-Buch
(764.07 KiB) Noch nie heruntergeladen
wird mit dem Rückführen in den computereigenen Basic-Betrieb aber auch der Bildschirm gelöscht (das wird Michael bestimmt noch hineinarbeiten), der Baum ist also eigentlich augenblicklich wieder fort. Wenn Du vor das GOTO 950 noch ein GOSUB 210 setzt, passiert das erst nach beliebigem Tastendruck.
von ein Thüringer
26.12.2023, 10:54
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Hat es auch schon jemand anders auf der Joyce ausprobiert? Bei Werner erschienen die Kugeln immer an den selben Stellen. Bei mir auch, wie ich feststellen musste.

Abhilfe schuf diese kleine Änderung:

Code: Alles auswählen

 (...)
1090 GOSUB 210:IF IN<>69 THEN GOSUB 600:GOTO 1015
1999 GOSUB 100:GOTO 950
Hier wird auf Tastendruck der Bildschirm gelöscht und der Baum wird neu gezeichnet, sofern nicht "e" oder "E" gedrückt wurde.

Als saubere Lösung müsste aber eine Änderung nicht im Programm, sondern im Bascoder erfolgen.

Hier

Code: Alles auswählen

 1 RANDOMIZE (60*PEEK(64503!)+PEEK(64504!)) (...) 
werden die Speicherzellen der Systemuhr ausgelesen, um als Grundlage für die Zufallszahlenerzeugung verwendet zu werden. Diese Speicheradressen stimmen offenbar nicht.

EDIT: Die vorher genannten Adressen sind offenbar falsch. Unter Basic sind die Stunden, Minuten und Sekunden auf &HFBF6, &HFBF7 und &HFBF8 gespeichert. Sie werden allerdings nicht durch RUN zurückgesetzt, sondern durch GOTO 20 – dort ist ein CLEAR dabei.

Hat jemand eine Idee?
von ein Thüringer
25.12.2023, 16:57
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Schön gemacht, gefällt mir, Paul!

Vor allem, wie die Kugeln bei jedem Durchlauf woanders hängen:
Screenshot_20231227_052418.jpg
Screenshot_20231227_052418.jpg (177.78 KiB) 1591 mal betrachtet
von ein Thüringer
23.12.2023, 16:12
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)

Sowohl REM als auch PRINT I wird ausgeführt und wenig später muss laut Reglement (der Wikipedia-Artikel ist auch sehr ausführlich und hilfreich) der Sprung zu Zeile 1010 erfolgen.

"Meine" Seite ist Bestandteil unserer Klub-Homepage und Werner kümmert sich dankenswerterweise schon mindestens zwanzig Jahre darum.
von ein Thüringer
23.12.2023, 15:28
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 57
Zugriffe: 12110

Re: BASICODE in Java

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.