GET und Plus/4 was stimmt da nicht?

Es gibt 6 Antworten in diesem Thema, welches 1.070 mal aufgerufen wurde. Der letzte Beitrag (2. April 2009 um 23:18) ist von WTE.

  • Ich hätt' da gern mal ein Problem ...

    Ich bastele gerade an einem BASIC-Programm für den Plus/4. Im Grunde adaptiere ich nur ein altes PET-Programm. Wie auch immer, ich habe Probleme mit dem GET-Befehl. Mein Progrämmchen soll auf PET, CBM, C64, Plus4 und C128 laufen. Bei allen außer dem Plus/4 funktioniert es auch.

    Das Problem steckt in einer simplen GETG$-Abfrage, die der Plus/4 nicht rafft. Erst dachte ich, der Emu (Vice) sei schuld und versuchte es mit Yape. Aber es liegt nicht am Emu.

    Die Frage lautet also, was ist bei GET am Plus/4 anders als bei C64 & Co.? Ich habe so dass Gefühl, als hätte der Plus/4 keinen Tastaturpuffer. Bei GET-Abfragen in einer kurzen Schleife wie

    100 getg$:if g$=""then100

    funktioniert es. Wenn die Schleife länger wird, z.B. durch Abfragen der Variable etc. hakt es total und ob die Tastatureingabe akzeptiert wird ist reiner Zufall.

    Was ist da los?

    Gruß WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hmmm. Da ich auch mal was auf/für den +4 gemalt habe und die Get-Abfrage genutzt habe kann ich aus eigener Erfahrung nur sagen, dass ich keine Probleme hatte. Wenn du den Programmteil veröffentlichen könntest hätte man vielleicht einen Einblick. Die Get-Abfrage war in einer Schleife die eine Uhr Ausgab, bei Druck von "Q" oder so konnte man die Uhr einstellen.

  • Bei folgendem Code

    770 getg$:g=0:ifg$="j"org$="y"thengg$="{rvs} ja ":g=1:goto790
    780 gg$="{rvs}nein":ifg$<>"n"then770
    790 printgg$

    reagiert der Plus/4 seltsam.

    Nur wenn man zufällig den "richtigen" Zeitpunkt erwischt, wird das erwartete Ergebnis angezeigt.
    Wenn man Pech hat, kann man ein halbes Dutzend mal auf der Tastatur herumhämmern.

    Wenn Die Abfragen komplizierter werden, passieren die seltsamsten Dinge (auch falsche Tasten-Rückmeldungen)
    So ein Quatsch passiert auf keiner anderen CBM-Maschine (ich hab's geprüft).

    Ein Tastaturpuffer existiert (habe ich auch geprüft), daran kann es nicht liegen. Was also "löscht" den Puffer oder was passiert da sonst für'n Dreck?

    Gruß WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hi. Ich hab das eben mal eingegeben, funktioniert einwandfrei. Ich hab hier wo ichs probiert habe allerdings nur den VICE 2.x. Aber egal wann und wie ich "y", "j" oder "n" gedrückt habe, es kam immer das richtige Ergebnis und das beim -ersten- drücken der Taste. Bin ich jetzt überfragt :nixwiss: Vielleicht hat ja jemand noch eine Idee?!

    Edit, probier doch mal wie er sich hier verhält:

    769 g=0
    770 getg$
    780 ifg$="j"org$="y"thengg$="[RVSON] ja":g=1:goto790:else ifg$="n"thengg$="[RVSON]nein":goto790
    785 goto770
    790 printgg$

    Die Befehle then und goto musst du abkürzen sonst passt es nicht in Zeile 780 :) -> Also: t[SHIFT]h und g[SHIFT]o

    Funktioniert auch prächtig ;)

    Einmal editiert, zuletzt von schlonkel (25. März 2009 um 08:59)

  • ARGH!!!

    Der Mist passiert nur, wenn zuvor mein Programm lief. Ich hatte auch die Tests mit Programmteilen durchgeführt (nach einem BRK statt RESET).
    Nachdem es jetzt im jungfräulichen Zustand korrekt lief, musste es am Programm liegen. Da kam dann nur eine einzige Stelle in Frage, die die Plus/4-Version von den anderen unterschied (ein POKE, was sonst). Und da hatte ich doch einen Tippfehler drinn! Ja, meist sitzt der FATAL ERROR vor dem Bildschirm.

    Danke für die Hilfe.

    Jetzt funzts. War ja auch eigentlich nicht denkbar, dass sowas rudimentäres wie GET nicht funktioniert. Der eigentliche Gag ist nur, dass das Programm überhaupt funktionierte und nicht einfach ganz abgestürzt ist.

    Gruß WTE

    Hier die "Problemzone" (meine Abfrage auf den Rechnetyp via ROM-Vektor-Byte):
    IST: ifpeek(1177)=63thenpoke1177,62:c=peek(65534):poke1777,63
    SOLL: ifpeek(1177)=63thenpoke1177,62:c=peek(65534):poke1177,63

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Ich kenne mich mit dem +4 nicht so aus, aber ich freue mich natürlich wenn's läuft :)

    :hammer:

  • Ich kenne mich mit dem +4 nicht so aus, aber ich freue mich natürlich wenn's läuft :)


    Yup! Es läuft. Es ist mein Beitrag zur 4k Compo. Das Proggy (Distichon) läuft auf (fast) allen Commodore 8-Bit Systemen, also auch auf dem PluVi! Bitte melde dich an, um diesen Link zu sehen.

    Weitere Infos auch hier: Bitte melde dich an, um diesen Link zu sehen.

    Gruß WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.