BASICODE in Java

Software-Entwicklung, Compiler, Interpreter, ...
Paul
Beiträge: 146
Registriert: 17.09.2017, 22:27
Wohnort: Germanys west end

Re: BASICODE in Java

Beitrag von Paul »

Danke Thomas, ich habe mir inzwischen von deiner Seite auch den Kurs herunter geladen.
Seltsam finde ich bei Basicode.jar das Verhalten wenn Zeile 20 überschrieben wird.
20 REM
zum Beispiel bewirkt gar nichts :shock:
20 PRINT I dagegen schon :?
Benutzeravatar
ein Thüringer
Beiträge: 44
Registriert: 29.08.2021, 11:04

Re: BASICODE in Java

Beitrag von ein Thüringer »

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.
Paul
Beiträge: 146
Registriert: 17.09.2017, 22:27
Wohnort: Germanys west end

Re: BASICODE in Java

Beitrag von Paul »

ein Thüringer hat geschrieben: 23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)
Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätte :D
wnb
Beiträge: 66
Registriert: 06.03.2015, 12:16
Wohnort: Werner aus Wolfhagen

Re: BASICODE in Java

Beitrag von wnb »

.
> "Meine" Seite ist Bestandteil unserer Klub-Homepage und Werner kümmert
.. sich dankenswerterweise schon mindestens zwanzig Jahre darum.


Das ist schon Deine Seite, Thomas ... Ehre, wem Ehre gebührt ...
Du füllst Sie mit Inhalt und Leben ... ich mache nur das bisschen HTML.

Wünsche Euch allen auf diesem Wege ein besinnliches Weihnachtsfest
und im nächsten Jahr weiterhin viel Freude mit unserem tollen Hobby !!!

VG Werner

-
haupz
Beiträge: 22
Registriert: 13.02.2015, 16:05

Re: BASICODE in Java

Beitrag von haupz »

Paul hat geschrieben: 23.12.2023, 14:31 Dort sind auch jeweils die Lizenzen dabei.
...
Heute habe ich auch endlich ein aktuelles Java installiert und ein paar Basicodes ausprobiert.
Danke für die Links, und Glückwunsch zum Ausprobieren!
haupz
Beiträge: 22
Registriert: 13.02.2015, 16:05

Re: BASICODE in Java

Beitrag von haupz »

Paul hat geschrieben: 23.12.2023, 16:29
ein Thüringer hat geschrieben: 23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)
Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätte :D
... ich bekenne mich schuldig. ;)

Dieses Beispiel (aus der Frühzeit der Implementierung) ist "reines BASIC", kein BASICODE. So lang man nicht irgendwelche der BASICODE-Subroutinen (GOTO 20/950, GOSUB irgendwas <1000) verwendet, ist dieses BASICODE einfach nur ein minimalistisches BASIC. Deswegen funktioniert scroll.bas "einfach so": es ist kein den BASICODE-Konventionen entsprechendes Programm, sondern wie gesagt "reines BASIC".

Ganz einfach gesagt: wenn man irgendwelche Codezeilen mit Zeilennummern <1000 produziert, ist man "selbst schuld", wenn irgendwas holpert, andererseits ist man aber auch auf der sicheren Seite, solang man keinerlei BASICODE-Subroutinen benutzt.

Die BASICODE-Subroutinen sind in dieser Variante allesamt nicht in BASIC implementiert, sondern in Java (siehe Subroutines.java). Es gibt überhaupt keinen Code mit Zeilennummern <1000.
haupz
Beiträge: 22
Registriert: 13.02.2015, 16:05

Re: BASICODE in Java

Beitrag von haupz »

Paul hat geschrieben: 23.12.2023, 15:22 Am Ende fehlt dann das mandatorische GOTO 950
Diese Implementierung terminiert unter drei Bedingungen:
1. ein GOTO 950 wird ausgeführt
2. ein END wird ausgeführt
3. nach der letzten Zeile kommen keine mehr

Wenn ein Programm also einfach linear durchläuft, und die letzte Zeile ausgeführt wurde, ist Schluss. Was auch sonst? :)
Paul
Beiträge: 146
Registriert: 17.09.2017, 22:27
Wohnort: Germanys west end

Re: BASICODE in Java

Beitrag von Paul »

Tree.jpg
(107.64 KiB) Noch nie heruntergeladen

Code: Alles auswählen

1000 GOTO 20: REM Scrollp.bas
1010 DIM CC(2): CC(0) = 4 : CC(1) = 0: GOSUB 600
1015 VE = 0: HO = 0.5: CC(0)=6: SR$="*":GOSUB 650
1020 FOR PA = 1 TO 20
1025 IF PA > 16 THEN GOTO 1062
1030 FOR PB = 0 TO (PA / 2)
1031 VE = (PA/26) : HO = ((16 + PB)/32) : CC(0)=4 
1034 GOSUB 260:REM RND ergebnis in RV
1035 IF RV < 0.9 THEN GOTO 1041
1036 SR$ = "O" : GOSUB 650
1037 GOTO 1042
1041 SR$ = "#" : GOSUB 650
1042 VE = (PA/26) : HO = ((16 - PB)/32) 
1043 GOSUB 260: IF RV < 0.9 THEN GOTO 1050
1045 SR$ = "O" : GOSUB 650
1046 GOTO 1060
1050 SR$ = "#" : GOSUB 650
1060 NEXT PB
1061 GOTO 1070
1062 VE = (PA/26) : HO = (15/32) : SR$="####": GOSUB 650
1070 NEXT PA
1080 VE = (21/26) : HO = (8/26) : CC(0)=7: SR$="Frohe Weihnachten": GOSUB 650
1999 GOTO 950
Benutzeravatar
ein Thüringer
Beiträge: 44
Registriert: 29.08.2021, 11:04

Re: BASICODE in Java

Beitrag von ein Thüringer »

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) 10382 mal betrachtet
Zuletzt geändert von ein Thüringer am 27.12.2023, 05:25, insgesamt 3-mal geändert.
wnb
Beiträge: 66
Registriert: 06.03.2015, 12:16
Wohnort: Werner aus Wolfhagen

Re: BASICODE in Java

Beitrag von wnb »

.
Prima ... Weihnachten auch auf dem JOYCE ... Merci Paul !
.
.Bild
.
.
Antworten