Hallo, guten Tag. Warum kann man bitte das Array nicht mit Poke füllen im PDS ? Es werden zur Kontrolle nur "0" ausgegeben.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
Danke.
|
Anzeige
|
Array mit Poke füllen geht nicht.Hallo, guten Tag. Warum kann man bitte das Array nicht mit Poke füllen im PDS ? Es werden zur Kontrolle nur "0" ausgegeben.
Danke.
Gast
#6237800
Vermutlich fehlt dem poke die Segmentadresse. Und nun stochert es im Trueben.
Gast
#6237802
was ist das denn für eine beschissene programmiersprache. "poke" (und sein Bruder "peek") ist ein noch üblerer Befehl als "goto" und sollte mit mindestens einmal auf die Hand schlagen bestraft werden.
Gast
#6237805
Systemgewinner schrieb: > was ist das denn für eine beschissene programmiersprache. Also erstens wird eine Frage mit einem Fragezeichen beendet und nicht mit einem Punkt. Zweitens die Frage, wie du auf "beschissen" kommst. Und drittens ist es von Vorteil, wenn man lesen kann. Die Antwort lautet: "PDS Basic"
Beitrag #6237817 wurde von einem Moderator gelöscht.
Wegstaben V. schrieb: > "poke" (und sein Bruder "peek") ist ein noch üblerer Befehl als > "goto" > und sollte mit mindestens einmal auf die Hand schlagen bestraft werden. Erinnert stark an Commodore C64 Basic. Wegstaben V. schrieb: > "poke" (und sein Bruder "peek") ist ein noch üblerer Befehl als "goto" > und sollte mit mindestens einmal auf die Hand schlagen bestraft werden. jeder nutzt zu jeder Zeit das Werkzeug welches er besitzt! Peek & Poke sind nicht verwerflicher als BEGINN & END oder TAB Einrückungen. Auch mit Peek & Poke konnte man tolle ASM Programme schreiben! Beim CBM, beim PC1500 uvam.
Gast
#6237880
Peter B. schrieb: > for z%=0 to 50 > poke ofsia%+z%,z% > next POKE schreibt Bytes, dein Array sind WORDs. Probiere mal: poke ofsia%+z%*2,z%
Gast
#6237893
Joachim B. schrieb: > verwerflicher als BEGINN & END Was sollte denn an BEGIN (nur ein N) und END denn verwerflich sein? Erschließt sich mir nicht wirklich? - Jetzt hab ich's ist für dieses Forum die falsche Programmiersprache.
Gast
#6237983
> BEGIN & END
sind viel zu ausschweifend. Wo doch schon { und } voellig reichen.
Im uebrigen scheint der TO
nur zu definieren. Aber nicht aufzurufen. Aber das mag taeuschen. Soll er gefaelligst selber ins Manual scheun.
Gast
#6238001
PIClig schrieb: >> BEGIN & END > > sind viel zu ausschweifend. Wo doch schon { und } voellig reichen. Glückwunsch! Du hast die Neuigkeit herausgefunden, dass es Unterschiede zwischen verschiedenen Programmiersprachen gibt. PIClig schrieb: > Im uebrigen scheint der TO > > nur zu definieren. Aber nicht aufzurufen. > Aber das mag taeuschen. Das täuscht. Def Seg legt das Segmentregister für die folgenden peek/poke fest. So alter 16bit-Krams ist das
Gast
#6238077
Joachim B. schrieb: > Auch mit Peek & Poke konnte man tolle ASM Programme schreiben! Nicht wirklich. Man konnte allenfalls Poke benutzen, um ein paar Stücke Maschinencode in den Speicher zu befördern. Aber Assemblerprogrammierung ist eigentlich was anderes...
Gast
#6238082
Zeno schrieb: > Jetzt hab ich's ist für dieses Forum die falsche Programmiersprache. Jetzt hast du es erfasst. Ich bin hier auch falsch. Wusste nicht das hier die Elite dazwischen Schreibt bei meinem DOS-Programm , die das Programm für den VW-Diesel entwickelt hat. Wenn ihr POKE/PEEK und GOTO genommen hättet , dann wäre es aufgefallen das hinten falsche Werte raus kommen. Na,dann...
Gast
#6238188
Peter B. schrieb: > Wenn > ihr POKE/PEEK und GOTO genommen hättet Dann wäre der Dieselbetrug bis heute verborgen geblieben, weil bei den Prüfbehörden niemand mehr weiss was das überhaupt ist. Georg
Gast
#6238376
Kannst du in ein einzelnen Integer mit poke schreiben?
Gast
#6239450
Peter B. schrieb: > Ich bin hier auch falsch. Hm... hast du das überhaupt mal probiert? 2⁵ schrieb: > poke ofsia% + z% *2, z% Hallo, guten Tag.
Das funktioniert :
-----------------------
a%=123
segia%=varseg(a%)
ofsia%=varptr(a%)
def seg= segia%
print peek(ofsia%+0)
def seg
-----------------------
Das funktioniert auch nicht mit dem Array.
Das Array muss wohl eine andere Lage haben,
wo jetzt Segment und Offset nicht alleine ausreicht.
-----------------------
> poke ofsia% + z% *2, z%
------------------------
Gast
#6239715
Peter B. schrieb: >
Weleche Sprache ist das?
Gast
#6239735
TR.0LL schrieb: > Weleche Sprache ist das? PDS-Basic Peter B. schrieb: > mit Poke füllen im PDS
Gast
#6239747
Peter B. schrieb: > a%=123 > segia%=varseg(a%) > ofsia%=varptr(a%) > > def seg= segia% > print peek(ofsia%+0) > def seg Jetzt mach mal daraus ein Array mit genau einem Eintrag Und so nebenbei: nutzt doch bitte die as int,long etc. Schreibweise diese % s postfixes sind nicht wirklich sprechend Danke. Dieses funktioniert:
Gast
#6239954
Peter B. schrieb: > Dieses funktioniert: D.h. dein print zeigt 105 und 207? Dann muss poke so auch funktioniere, also gleicher offset,segment nur eben poke Was mir noch nicht klar ist: du meintest PDS basic kann keine bytes, schreibt poke dann auch nur integer oder doch nur bytes, dann musst du ein int > 255 mit zwei pokes schreiben
Gast
#6239987
Du solltest mind Feldwerte 64 und 344 testen sonst merkst du es nicht wenn dein schreiben nur mit bytes funktionier (dein 105 und 207 sind bei in einem byte abbildbar)
Gast
#6239995
https://books.google.de/books?id=dCbPBgAAQBAJ&pg=PA357&lpg=PA357&dq=pds+basic+peek+poke&source=bl&ots=zexyCRAfMZ&sig=ACfU3U1JYaiTaL9zGZMRPN36rKt58aqLpw&hl=de&sa=X&ved=2ahUKEwj4i-6b_4bpAhVKxMQBHYmPAtAQ6AEwAXoECAUQAQ#v=onepage&q=pds%20basic%20peek%20poke&f=false Bitte noch mal genau lesen, da steht was mit EMS, und peek,poke operiert nur auf bytes d.h. werte ueber 255 musst du selbst in einen int mappen
Gast
#6240005
poke x+(2*y)+1, z / 256 poke x+(2*y), z mod 256 so sollte es eigentlich gehen
Gast
#6240175
blub schrieb: > poke x+(2*y)+1, z / 256 > poke x+(2*y), z mod 256 x = array offset aus varptr y = array index
Gast
#6240176
cppbert schrieb: > blub schrieb: >> poke x+(2*y)+1, z / 256 >> poke x+(2*y), z mod 256 > > x = array offset aus varptr > y = array index Und z = integer wert Danke für die Info. Poke und Peek geht nur Byte. Darum habe ich auch nach einem Pokeword/Peekword gesucht und dieses funktioniert in PDS :
Gast
#6240682
geht auch in pure Basic mit >> poke x+(2*y)+1, z / 256 >> poke x+(2*y), z mod 256 Jetzt mal wieder die grosse Frage: Woran hat es denn gelegen wenn jetzt alles geht? Peter B. schrieb: > Warum kann man bitte das Array nicht mit Poke füllen im PDS ? Warum sollte man das überhaupt? Es ist doch viel bequemer, schneller und sicherer, einfach über den Index auf das Array zuzugreifen. Peek und Poke nimmt man nur dann als Krücke, wenn der Speicher einem nicht gehört, z.B. dem OS. Dieses habe ich: DIM array%(32000) umgewandelt in: DIM array(32000) as integer Danke.
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|