Hello, Guest the thread was called693 times and contains 3 replays

last post from Hexworx at the

Berechnung mit ti funktioniert nicht

  • Hallo ihr Experten!
    Ich möchte eine relativ elegante Warteschleife OHNE Pokes und Peeks für ein kleines Programm schreiben.
    Ich habe mal eine Testroutine geschrieben, welche aber leider nicht funktioniert. Kann mir jemand den Fehler benennen? Ich seh' scheinbar den Wald vor Bäumen nicht... :S

    Wie geschrieben, das ist ein Testprogramm und die Bildschirmausgabe dient hier nur zur Kontrolle.
    Ergänzung:
    In Zeile 91 je$=ti$:printje$;" ";sz;"" befinden sich in den zweiten Anführungszeichen zwei mal Taste <runter> (kleines inverses q).
    In Zeile 200 PRINT" startzeit:";je$ ist das erste Zeichen nach dem Anführungszeichen ebenfalls ein einmal Cursor <runter>.
    In Zeile 110 print" ZEIT:";TI ist das erste Zeichen nach dem Semikolon ein einmal Cursor <hoch> (großes inverses Q).


    Im Zeittest.d64 (wie speichert man mit VICE nochmal einzelne *.prg?) ist das Programm komplett.


    Zeittest.d64


    Vielen Dank im vorraus
    ajunra

  • Wobei bei dem Vergleich TI>SZ, wie so oft, das Problem besteht, wenn TI$ vorher z. B. auf 23:59:59 steht (TI=5183940), das Programm nie zum Abbruch kommt.


    Ansonsten hier noch was zum lesen:


    Warten mit WAIT


    WART-SEKUNDEN mit TI


    Kommt halt auch drauf an, ob man TI$ sonst noch in Benutzung hat oder einfach verändern kann und ob während der Warteschleife noch etwas anderes passieren soll. Wenn nicht, und wenn es nicht 100%ig genau sein muss, finde ich das mit dem WAIT immer noch am einfachsten: TI$="000000" : WAIT 161,1 (= ~4,27 sek.).


    Eine andere Möglichkeit ist mir eben noch eingefallen:


    Code
    1. 10 da=300 : t=ti
    2. 20 on -(ti<t+da) goto 20

    Solange die Bedingung "ti<t+da" wahr ist (und somit -1 ergibt), bleibt er in der Zeile 20 stehen. Hier ist aber auch das TI$-Problem wie oben.