Im deutschen Handbuch ist er drin.
Da hast Du natürlich Recht aber dieser Befehl ist böse, darf der überhaupt in ein Handbuch?
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von sparhawk am
Im deutschen Handbuch ist er drin.
Da hast Du natürlich Recht aber dieser Befehl ist böse, darf der überhaupt in ein Handbuch?
Im deutschen Handbuch ist er drin.
Da hast Du natürlich Recht aber dieser Befehl ist böse, darf der überhaupt in ein Handbuch?
Der wird ja auch mit einem FSK18-Logo gekennzeichnet! Also nichts für Weicheier!
Der wird ja auch mit einem FSK18-Logo gekennzeichnet! Also nichts für Weicheier!
Der Befehl ist ja gar nicht das Problem, sondern seine Seiteneffekte. Da müsste der ganze Mega FSK 18 bekommen. Man kann solch lustige Dinge tun:
...das schreibt dann eine 23 in Speicherstelle 1000 statt in 50000. Das findet doch kein Mensch, solche Fehler...
Das findet doch kein Mensch, solche Fehler...
Ich bin hier 100% bei dir!
Und auch schon Anfänger können bei so einem simplen Beispiel verzweifeln:
Da kommen die meisten wohl nie drauf, warum es in Zeile 40 einen Fehler gibt und in Zeile 20 nicht.
Also, in welcher Art auch immer, hier sehe ich defintiv Handlungsbedarf, um so was zu vermeiden.
Ich habe das Problem gerade wie gewünscht bei Github gemeldet:
Der wird ja auch mit einem FSK18-Logo gekennzeichnet! Also nichts für Weicheier!
Der Befehl ist ja gar nicht das Problem, sondern seine Seiteneffekte. Da müsste der ganze Mega FSK 18 bekommen. Man kann solch lustige Dinge tun:
...das schreibt dann eine 23 in Speicherstelle 1000 statt in 50000. Das findet doch kein Mensch, solche Fehler...
Darum steht der POKEB Befehl ja auch BEWUSST nicht im englischen Handbuch.
Er war auch nur dafür gedacht:
Someone, I forgot who, proposed to implement a POKE variant, that does not check the range of the parameter to be in 0 -> 255,
But always use the low byte of the argument. So one can write POKEB nnnn,v with v having any value. It's like writing POKE nnnn, v AND 255.
Im nach hinein hat es sich als Fehler rausgestellt die Funktion einzubauen, aber da vielleicht schon jemand den Befehl genutzt hat, ist er undokumentiert dringeblieben.
Ich denke darüber muss man jetzt auch nicht ewig lamentieren.
Oh Mann
ich grübel nun seit einigen Tagen darüber warum das nicht klappt.
Habe mir schon überlegt alle Variabeln mit B zu ersetzten. Gott sei es Gedank, das brauche ich nun nicht mehr machen.
Ihr seit die Besten hier.
He Snoopy
Man könnte vielleicht einen Vermerk im Handbuch machen im Bezug zum POKEB und POKEW und der Variabeln B und W.
Ist zwar nicht Optimal, aber besser als gar nichts.
He Snoopy
Man könnte vielleicht einen Vermerk im Handbuch machen im Bezug zum POKEB und POKEW und der Variabeln B und W.
Ist zwar nicht Optimal, aber besser als gar nichts.
Ja, das ist eine gute Idee, das mache ich sobald ich dazu komme.
Außerdem habe ich das Problem mit POKEW und POKEB auch wie oben geschrieben gemeldet. Ich denke, dass sich in der Hinsicht auch was tun wird.
Darum steht der POKEB Befehl ja auch BEWUSST nicht im englischen Handbuch.
Ja, aber das macht es doch nur noch schlimmer und nicht besser...naja, whatever...ich hoffe, das wird behoben. Wenn nicht...dann eben nicht.
Ich habe das Problem gerade wie gewünscht bei Github gemeldet:
Ich habe das ergänzt um PEEKW...da hast du dasselbe Problem, wenn du mit Arrays wie W() arbeitest.
Ich habe das ergänzt um PEEKB/W...da hast du dasselbe Problem, wenn du mit Arrays W() oder B() arbeitest.
Stimmt, PEEKW gibt's ja auch noch. PEEKB allerdings nicht.
Ich habe das ergänzt um PEEKB/W...da hast du dasselbe Problem, wenn du mit Arrays W() oder B() arbeitest.
Stimmt, PEEKW gibt's ja auch noch. PEEKB allerdings nicht.
Ah, ok...wusste ich nicht (steht ja nicht im Buch)...dann korrigiere ich das noch.
Ich lese hier jetzt nur mit.
Aber wird POKE nicht immer nur in Verbindung mit absoluten Speicheradressen verwendet.
POKE und POKEB sollten doch von der Funktion her identisch sein.
Es wird ein Byte in die Speicheradresse ‚gepoked‘.
Und mit POKEW wird ein Wort (oder zwei Bytes) an zwei aufeinanderfolgende Adressen ‚gepoked‘.
Demnach fehlt im Handbuch nur die Erwähnung des POKEB beim POKE Befehl.
Aber das ich direkt in eine Variable ‚poken‘ kann oder in das Element eines Arrays, ist mit neu bzw. hab ich bisher nicht gewusst. Da würde ich der Variablen oder dem Element eines Arrays doch gleich einen Wert zuweisen. Mal ganz davon ab das die Variable oder das Element eines Arrays nur noch Müll enthält, wenn ich einfach ein Byte reinschreibe. Weil die Variable oder das Element eines Arrays wahrscheinlich eher kein einzelnes Byte ist.
Wenn ich jedoch zuvor mit POINTER die Adresse der Variablen ermittle……
Oder bin ich da jetzt ganz auf dem Holzweg?
Oder bin ich da jetzt ganz auf dem Holzweg?
Du siehst hier vermutlich gerade den Wald vor lauter Bäumen nicht.
POKE A,5 schreibt einfach 5 in die Adresse, deren Wert in A steht.
Also z.B.: A=$0800:POKE A,5 entspricht POKE $0800,5
Natürlich, ich Dussel.
Ach, kein Thema!
Ich hatte erst kürzlich länger als erwartet überlegt, wieso bei einem Beispielprogramm die Schleife nicht funktioniert:
Kommt alles mal vor, selbst man man schon gefühlte Jahrhunderte BASIC programmiert.
Manchmal hat man sowas.
Und am nächsten Tag findet man den Fehler nach 30s.
Ich bin eher in der Automatisierungstechnik Ecke unterwegs.
Siemens Step 7, CoDeSys, (früher auch Step 5).
BASIC hab ich ernsthaft das letzte Mal ende der 80er auf meinem Atari ST programmiert.
Es war GFA BASIC, was mir sehr gut gefallen hat.
Ja ja, lang ist es her.
Ich habe das ergänzt um PEEKB/W...da hast du dasselbe Problem, wenn du mit Arrays W() oder B() arbeitest.
Stimmt, PEEKW gibt's ja auch noch. PEEKB allerdings nicht.
Ah, ok...wusste ich nicht (steht ja nicht im Buch)...dann korrigiere ich das noch.
https://github.com/MEGA65/mega…2#issuecomment-1138851182
ZitatAlles anzeigenIf you want to peek the contents of W(1000), the above syntax is wrong.
All functions require an opening parenthesis '(' after the function name, so you can write
PEEK(arg) or
PEEKW(arg)
but never write the argument directly after the keyword.
so line 50 would be correct:
50 PRINT PEEK(W(1000))
to print the value of the address held in W(1000)
Also PEEKW ist schon mal abgehakt.
Step 5
Damit hatte ich auch mal kurze Zeit was zu tun.
Das muss aber schon mindestens so 750 Jahre her sein.