Die Suche ergab 46 Treffer

von ein Thüringer
18.02.2025, 21:15
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 61
Zugriffe: 187931

BASICODE in Java

Bei aller Begeisterung für BasiCode muss ich ehrlicherweise einräumen, dass die Programme recht langsam arbeiten. Ein Basic-Interpreter ist natürlich nicht fesselnd schnell — und hier werden zu allem Übel noch (eigentlich vorhandene) Befehle durch GOSUB-Aufrufe ersetzt …

Doch nun fällt dieser Nachteil weg: Michaels in Java geschriebener Interpreter arbeitet wirklich irrsinnig schnell! Anlässlich der Veröffentlichung von Version 0.12 https://github.com/mhaupt/basicode/releases/tag/v0.12 Anfang dieser Woche möchte ich das an zwei Programmen demonstrieren.

https://github.com/robhagemans/basicode ... vlucht.bc3 wurde, wie man den Informationen am Programm-Ende

Code: Alles auswählen

30000 REM RONDVLUCHT V1.0
30010 REM
30020 REM WEERGAVE VAN EEN
30030 REM VOORWERP OF GEBOUW
30040 REM IN PERSPECTIEF.
30050 REM
32000 REM GESCHREVEN DOOR
32010 REM
32020 REM HENK VAN DEELEN
32030 REM
32040 REM (C) HVD OKT 1989
32050 REM
32060 REM TROS-RADIO dd 900321




entnehmen kann, im Herbst 1989 fertiggestellt und im Frühjahr 1990 über den Rundfunk ausgesendet und schließlich auf die "BASICODE-3 Verzamelcassette" Nr. 7 (von insgesamt 9) übernommen.
RONDVLU1.ZIP
das erste "Rundflug"-Programm (in .BAS umbennen)
(8.65 KiB) 7507-mal heruntergeladen
Ein perspektivisch dargestellter Körper kann auf unterschiedlichste Weise gedreht, verschoben und in der Größe verändert werden.

Der Autor arbeitete an dem Programm weiter, doch BasiCode büßte rasant an Popularität ein, es gab keine Rundfunkausstrahlungen mehr, stattdessen kam das Internet auf und Henk konnte seine Fortschritte 1992 auf www.nostalgia8.nl präsentieren.

In der Zwischenzeit kann das Paket nur noch unter http://web.archive.org/web/201701031528 ... c3logo.zip gefunden werden. Als Sahnehäubchen enthält es ein Programm, das die Sprache LOGO simuliert, zumindest die Steuerung der "Schildkröte" zum Zeichnen von Linien. Allerdings muss man sich dafür erst an die niederländischen Befehle gewöhnen... vgl. https://www.robotrontechnik.de/bilder/U ... ld_0g7.png , http://www.robotrontechnik.de/bilder/Up ... ld_4w5.png und http://forum.system-cfg.com/viewtopic.p ... 12#p243712 .


Aus dem Paket, das (für die Joyce) hier bereits hier https://joyce.de/basicode/joyce/bc3logo.htm vorgestellt wurde, greife ich ANIMATIO.BC3
ANIMATION.zip
das Programm und drei Datensätze
(8.46 KiB) 7498-mal heruntergeladen
heraus. Einzelbilder werden hier zusammengestellt und als Film abgespielt. Mit mehrfachem Drücken von “-“ kann das Tempo wenigstens etwas gedrosselt werden (erwähnte ich schon das irrwitzige Tempo des Java-Interpreters :lol: ?), mit “P“ kann angehalten und eine Zwischenphase betrachtet werden und “E“ beendet das Programm. Zur Auswahl gibt es LOGOFL, RONDFL und ANIMAFL.


In einem Artikel von 1985 schätzte ein gewisser Bill Bolton, CP/M-Nutzer aus Australien, ein “… BASICODE was really an idea whose time had yet to come“. Diese Programme bestätigen es, sie waren ihrer Zeit deutlich voraus, sinnvoll nutzen konnte man sie mit damaliger Technik (Größe des Arbeitsspeichers, Geschwindigkeit des Prozessors) noch nicht.

Screenshots der beiden Programme
Screenshots der beiden Programme
ANIMATIE.png (23.07 KiB) 19953 mal betrachtet
von ein Thüringer
27.01.2025, 14:17
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 61
Zugriffe: 187931

BASICODE in Java

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) 7516-mal heruntergeladen
zusammengefasst.

vier Screenshots des Programms
vier Screenshots des Programms
NOTENBAL.png (27.01 KiB) 21530 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 - nach Änderung laut EDIT AHCDEFGahcdefg - (Höhe), danach ggf. ein # oder ein b (dann wird statt C-Dur G-Dur bzw. F-Dur verwendet), 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 Bindebogen.

    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, im Menü 1 oder im Screen mit dem Notenlinien H (bzw. B, siehe EDIT) eingegeben wird.


EDIT 14. Februar ‘25:. Mich hat ziemlich irritiert, dass das (weil niederländische) Programm “B“ verwendet, wo wir “H“ gewohnt sind. Abhilfe schaffen diese paar Zeilen:

Code: Alles auswählen

 1180 IF IN=66 THEN GOSUB 8120:IN=84
 1205 IF IN=72 THEN IN=66:IN$=CHR$(ASC(IN$)-6)
 8590 PRINT"DIT KOMT WEER ALS JE EEN B TIKT"
 8600 GOSUB 210:IF IN=66 THEN 8120
Sie vertauschen die Verwendung von B (jetzt Beschreibung) und H (vorher Hilfe).

EDIT 18. Februar '25: Nachdem ich die Benennung der Noten “eingedeutscht“ hatte, habe ich nun alle Bildschirmausgaben auf Deutsch umgestellt. Hier ist die sonst funktional gleiche Version:
NOTENB_D.ZIP
das Programm mit deutscher Bedienung (in .BAS umbennen)
(16.25 KiB) 7496-mal heruntergeladen

EDIT 17. März '25: Hier https://joyce.de/basicode/diesunddas/notenblatt.htm gibt es das Programm mit einem weiteren Extra: wenn das gewünschte Stück zu hohe Töne enthält, notiert man es eine Oktave tiefer und spielt es über die neue Funktion Korrektur höher ab. Dann stimmt zwar die Optik nicht, aber man erreicht auch Töne über dem g. Ebenso kann über die neue Funktion das Abspieltempo verändert werden.

Viel Spaß damit!
von ein Thüringer
21.10.2024, 17:21
Forum: Programmierung
Thema: Raytracing
Antworten: 10
Zugriffe: 65500

Re: Raytracing v3.0

Durch Variieren der x-Position der Kamera in Schritten der Größe 0.2 habe ich eine Serie
serie.png
(84.18 KiB) Noch nie heruntergeladen
von Bildern errechnen lassen. Man kann nun zwei davon nebeneinander 1) stellen (oder wie hier viewtopic.php?p=1015#p1015 erwähnt übereinander) und kann dann mit dem Schielblick die Szene plastisch sehen. Tipp: das Smartphone quer halten und das Bild auf Screenbreite ziehen ergibt ein annehmbares Resultat.

Danke an Bernd für dieses schöne Stück Software!


paar.png
paar.png (107.7 KiB) 27849 mal betrachtet
3dKugeln.zip
(481.86 KiB) 2532-mal heruntergeladen
1) links ein Bild von weiter links aus der Serie, rechts eins mehr oder weniger weiter rechts davon, am besten das unmittelbar benachbarte, sonst könnte das Betrachten zu anstrengend werden
von ein Thüringer
07.10.2024, 16:27
Forum: Programmierung
Thema: Raytracing
Antworten: 10
Zugriffe: 65500

Re: Raytracing

Fabelhaft, Bernd! Ich werde es heute abend probieren, im Moment bin ich AFK.

Ich freue mich auch schon auf Version 3.0 (ich habe ein Faible für die Stereoskopie).
von ein Thüringer
28.09.2024, 12:58
Forum: Programmierung
Thema: Raytracing
Antworten: 10
Zugriffe: 65500

Raytracing

In der Theorie stimmt es auf jeden Fall. Ein Halbbild hätten wir schon, wenn Bernd noch ein zweites mit leicht veränderter Sicht kreieren würde, könnte das klappen.

Bei nebeneinander ist der Nachteil, dass die Breite auf 65 mm beschränkt bleibt (Abstand der Pupillen), aber inzwischen haben findige Köpfe das KMQ-Verfahren entwickelt, da werden die Halbbilder übereinander angeordnet und können dann auch deutlich breiter sein. https://www.perspektrum.de/i/kmq-verfahren
von ein Thüringer
25.09.2024, 22:28
Forum: Programmierung
Thema: Raytracing
Antworten: 10
Zugriffe: 65500

Raytracing

Als einen möglichen Weg hat Bernd ins Auge gefasst, das Programm noch um eine Abspeicherung als PBM zu erweitern. Ich habe hier mal (auf anderen Wegen) jeweils eine normale und eine invertierte Version der Grafik für die Joyce und für Windows erzeugt. Die invertierte Joyce-Version sollte dann auf dem Drucker mit dunklen Schatten ankommen. Die beiden Joyce-Versionen können mit dem aktuellen PBMREAD-Programm betrachtet werden (die Windows-Versionen mit den Vorgängern, die die Windows-Bilder noch in der Höhe stauchen).

RAYTR.zip
(18.62 KiB) 8405-mal heruntergeladen
von ein Thüringer
25.09.2024, 11:01
Forum: Programmierung
Thema: Raytracing
Antworten: 10
Zugriffe: 65500

Raytracing

Irrsinnig, was Bernd da wieder auf der Joyce möglich gemacht hat! Ich habe es auf dem Treffen auf einer realen Joyce gesehen, natürlich läuft es dort recht langsam, brauchte wohl anderthalb Stunden. Gut, dass wir die CPM-Box und dort die F11-Taste haben!


unten: Bildröhre, oben: Papier
unten: Bildröhre, oben: Papier
Raytr.png (61.3 KiB) 37632 mal betrachtet

Den fertigen Screen druckten wir in Nothfelden auch gleich aus, dabei werden bekanntermaßen, in dem Fall leider, die Helligkeitswerte vertauscht. Es gab den Vorschlag (von Olli?), weißes Farbband auf schwarzem Papier zu nutzen ;) , aber wie wir Bernd kennen, wird es nicht bei Version 1.0 bleiben und er wird auch dieses Problem lösen.
von ein Thüringer
23.09.2024, 11:12
Forum: Verschiedenes
Thema: JOYCE Klubtreffen 2024 in Wolfhagen
Antworten: 1
Zugriffe: 44383

JOYCE Klubtreffen 2024 in Wolfhagen

Das sehr gelungene Klubtreffen 2024 liegt hinter uns und hier

WHNF2024.txt
in ZIP umbenennen
(902.86 KiB) 6333-mal heruntergeladen

ist wieder eine Schnappschusssammlung für unsere Joyce, zu betrachten mit Bernds Programm PBMREAD 3.4

viewtopic.php?p=641#p641 .
pbmread -diashow

Zeigt eine Diashow aller PBM-Dateien des aktuellen Laufwerks an.
Werners Werbung steigerte die Teilnehmerzahl
Werners Werbung steigerte die Teilnehmerzahl
WERBUNG.PNG (32.25 KiB) 44383 mal betrachtet

Als kleine Zugabe sind auch Bilder aus Helmarshausen 2024 und Wittenberg 2023 + 2024 dabei.


Viel Spaß damit!
von ein Thüringer
09.09.2024, 20:47
Forum: Spiele
Thema: ein einfaches Schachspiel
Antworten: 0
Zugriffe: 49363

ein einfaches Schachspiel

Auf unserer Homepage gibt es jetzt ein Schachspiel in ASCII - Grafik. https://joyce.de/basicode/joyce/schach.htm Es ist mehr auf Angriff als auf Verteidigung ausgerichtet, daher hat man gute Chancen, einen Sieg zu erreichen.

Viel Spaß damit!
eingedeutschte Version auf der JOYCE
eingedeutschte Version auf der JOYCE
schachmatt_kl.jpg (37.8 KiB) 49218 mal betrachtet
EDIT: Es lässt sich (natürlich) auch im Hagemans-online-Browser https://robhagemans.github.io/basicode/ spielen, dort läuft es flott und kann auch noch schneller eingestellt werden.

Das Programm liegt hier: https://robhagemans.github.io/basicode/ ... CHAKEN.BAS (oder man sucht es selbst unter dem Reiter "Programs"). Es stammt ursprünglich aus diesem. https://archive.org/details/mit-basic-r ... mmodore-64 Buch von 1984 und wurde 1990 von P. J. van der Mespel an BasiCode angepasst, damit auch für andere Computer als den Commodore VC20 und 64 zugänglich gemacht. In dem Buch werden alle Teilfunktionen ausführlich erläutert und es werden Anregungen zur Erweiterung gegeben.

Um die Optik etwas angenehmer zu gestalten, kann in den Settings der Zeichensatz des coco eingestellt werden, dann sind die Kleinbuchstaben invertierte Großbuchstaben. Nun noch auf den Reiter "Listing" gehen und Zeile 1170 wie folgt abändern:

Code: Alles auswählen

F$="kkdttlsbb BBSLTTDKK"


Nun haben wir deutsche Abkürzungen für die Spielfiguren und die Kleinbuchstaben (sprich Großbuchstaben auf weißem Hintergrund) landen unten, oben stehen die Buchstaben auf schwarzem Hintergrund - so kann man die Figuren gut unterscheiden.

Durch Klick auf den Screen startet das Spiel, die Eingaben erfolgen über die virtuelle Tastatur unter dem Reiter "Keyboard".

hier <P>ferd statt <S>pringer
hier <P>ferd statt <S>pringer
Schachmatt.jpg (84.69 KiB) 49218 mal betrachtet
von ein Thüringer
07.07.2024, 09:43
Forum: Programmierung
Thema: BASICODE in Java
Antworten: 61
Zugriffe: 187931

BASICODE in Java

Michael arbeitet noch an ein paar Baustellen, aber die raumfüllenden Kurven aus dem Thread "Grafik - Kurven" lassen sich schon auf den Bildschirm bringen, hier als Beispiel die Peano-Kurve von "Hojoe" aus dem Robotrontechnik-Forum:

Peano.png
Peano.png (10.82 KiB) 28840 mal betrachtet
Ein besonderer Vorteil der Java-Lösung ist das irrwitzige Tempo!