Hallo Doc,
zu Deinem Artikel in Mag 155:
leider bin ich schon bei dem BASIC Programm ausgestiegen. Und das schon in der 4. Zeile ...
Wieso wird da schon was berechnet ohne vorher definiert worden zu sein? An der Stelle hat die Variable "fehler" doch noch gar keinen Wert?
Von daher kann ich auch nicht erkennen, ob das Beispiel berücksichtigt, daß entgegen zum 1. Quadranten des Koordinatensystems beim Atari Bildschirm die Y-Position nach oben nicht steigt sondern fällt.
Und dann leider wieder MADS. Was macht so eine IF-Abfrage in MADS? Wird sowas wie
#if .byte dx=00
"übersetzt" in
LABEL1 .BYTE DX
LDA LABEL
BEQ ....
????????????
Und dann dieses "bcs @+ ; verzweigt zum nächsten @"
Geht das nach Programmzeilen? Oder nach Bytes die hinterher als Objektcode vorleigen? Da stelle ich mir vor, daß es oft schwer zu sehen ist, welches von zwei ATs das nächste ist, oder nicht?
Beispiel:
@ lda 1
dex
dex
bpl @+
inx
inx
@ lda 2
Springt das nun zu "lda 1" oder zu "lda 2"?
Oder steht hier "nächste" nicht im Sinn von "nahe" sondern "folgende"?
Sorry, bei mir mußt Du leider sehr viel niedrigere Hürden ansetzen, sonst schaffe ich die Sprünge nicht
Fröhliche Weihnachten
Erhard
Zu Dr. Iratas Artikel in Magazin #155
Moderator: Rockford
- pps
- Beiträge: 577
- Registriert: 18.06.2021 23:05
- Has thanked: 127 times
- Been thanked: 233 times
- Kontaktdaten:
Peters Artikel die 2.
@+ springt direkt zum nächsten folgenden @, analog springt @- zum direkt davor liegenden @. Sehr kompliziert wird das bei @+2 zu lesen. Daher nutze ich da auch in der Regel nur die einfachen Sprünge in dieser Art.
Diese .if Anweisungen finde ich eher schräg, da nutze ich lieber direkt Assembler mnemonics dafür. Bei macros mag das letztlich sinnvoll sein.
Diese .if Anweisungen finde ich eher schräg, da nutze ich lieber direkt Assembler mnemonics dafür. Bei macros mag das letztlich sinnvoll sein.
-
- Beiträge: 86
- Registriert: 20.09.2021 20:59
- Has thanked: 8 times
- Been thanked: 42 times
- Kontaktdaten:
Re: Ray Casting
Das ist hier off-topic. Bitte eigenen Thread zum Thema Plot-Drawto in Assembler bzw. MADS-Syntax eröffnen, dann schreibe ich auch etwas dazu.
Edit: Plot-Drawto-Thread gibt es schon, siehe hier:
viewtopic.php?f=7&t=1779
Wikipedia hat auch was dazu:
https://de.wikipedia.org/wiki/Bresenham ... mentierung
Edit: Plot-Drawto-Thread gibt es schon, siehe hier:
viewtopic.php?f=7&t=1779
Wikipedia hat auch was dazu:
https://de.wikipedia.org/wiki/Bresenham ... mentierung
Zuletzt geändert von Dietrich am 23.12.2023 11:59, insgesamt 1-mal geändert.
- Dr. Irata
- Beiträge: 970
- Registriert: 24.08.2021 14:40
- Has thanked: 122 times
- Been thanked: 289 times
- Kontaktdaten:
Re: Ray Casting
Guten Morgen in die Runde!
Ich arbeite gerne mit den @ Sprunganweisungen, halte es aber wie pps ähnlich, wenn es komplizierter wird.
Übrigens ist das alles ja reiner Assembler-Code und hat nicht mit Basic zu tun.
Die #if - Anweisungen nehme ich in MADS recht gerne, da sie ein wenig an Basic erinnert und ein wenig wie "Hochsprache" ist.
Warum das nicht nutzen, wenn es der Assembler hergibt. Dabei habe ich festgestellt, daß die einfachen #if .byte .... #endif Anweisungen keinen Zeit-/oder Codenachteil bedeuten. Etwas anders sieht es bei komplexen #if. Anweisungen aus, die mit Mads auch möglich sind. (#if .byte var=#1 .or .byte var2=#2 .and .byte var3=#3 .....) - das nutze ich manchmal auch beim coden, weil es einfach und eingängig ist, wenn es dann aber zeitkritisch wird, bereinige ich dann später den Code (wenn alles gut läuft) mit entsprechenden reinen Assemblerbefehlen.
Frohe Fest allen
Peter
P.s.: Ich bin gerade an einem anderen Projekt dran, der Raycaster macht aber nur eine kleine kreative Pause!
Ich arbeite gerne mit den @ Sprunganweisungen, halte es aber wie pps ähnlich, wenn es komplizierter wird.
Übrigens ist das alles ja reiner Assembler-Code und hat nicht mit Basic zu tun.
Die #if - Anweisungen nehme ich in MADS recht gerne, da sie ein wenig an Basic erinnert und ein wenig wie "Hochsprache" ist.
Warum das nicht nutzen, wenn es der Assembler hergibt. Dabei habe ich festgestellt, daß die einfachen #if .byte .... #endif Anweisungen keinen Zeit-/oder Codenachteil bedeuten. Etwas anders sieht es bei komplexen #if. Anweisungen aus, die mit Mads auch möglich sind. (#if .byte var=#1 .or .byte var2=#2 .and .byte var3=#3 .....) - das nutze ich manchmal auch beim coden, weil es einfach und eingängig ist, wenn es dann aber zeitkritisch wird, bereinige ich dann später den Code (wenn alles gut läuft) mit entsprechenden reinen Assemblerbefehlen.
Frohe Fest allen
Peter
P.s.: Ich bin gerade an einem anderen Projekt dran, der Raycaster macht aber nur eine kleine kreative Pause!
- pps
- Beiträge: 577
- Registriert: 18.06.2021 23:05
- Has thanked: 127 times
- Been thanked: 233 times
- Kontaktdaten:
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast