BASICODE in Java
Re: BASICODE in Java
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
20 PRINT I dagegen schon
Seltsam finde ich bei Basicode.jar das Verhalten wenn Zeile 20 überschrieben wird.
20 REM
zum Beispiel bewirkt gar nichts
20 PRINT I dagegen schon
- ein Thüringer
- Beiträge: 44
- Registriert: 29.08.2021, 11:04
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.
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.
Re: BASICODE in Java
Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätteein Thüringer hat geschrieben: ↑23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000.
Re: BASICODE in Java
.
> "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
-
> "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
-
Re: BASICODE in Java
... ich bekenne mich schuldig.Paul hat geschrieben: ↑23.12.2023, 16:29Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätteein Thüringer hat geschrieben: ↑23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000.
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.
Re: BASICODE in Java
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?
Re: BASICODE in Java
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
- ein Thüringer
- Beiträge: 44
- Registriert: 29.08.2021, 11:04
Re: BASICODE in Java
Schön gemacht, gefällt mir, Paul!
Vor allem, wie die Kugeln bei jedem Durchlauf woanders hängen:
Vor allem, wie die Kugeln bei jedem Durchlauf woanders hängen:
Zuletzt geändert von ein Thüringer am 27.12.2023, 05:25, insgesamt 3-mal geändert.
Re: BASICODE in Java
.
Prima ... Weihnachten auch auf dem JOYCE ... Merci Paul !
.
.
.
.
Prima ... Weihnachten auch auf dem JOYCE ... Merci Paul !
.
.
.
.