Hello, Guest the thread was called1.6k times and contains 19 replays

last post from sauhund at the

Laaaaange Warteschleife

  • Nabend.


    Was mache ich am besten, wenn ich wirklich lange Wartezeiten in ein Assembler Prg einbauen will?
    Mit Hilfe der Systemuhr vielleicht??? Und falls ja, wie genau...


    Also ich will hier nen langsamen Counter der mit Sprites dargestellt wird schlicht und ergreifend von 9 bis 0 herunterzählen - bei jedem Zahlenwechsel erklingt ein kurzer Piepton, dann soll gewartet werden (mindestens eine Sekunde - eventuell länger) und der nächste Zahlenwechsel kommt.

  • Laß doch einfach die Frames mitzählen.
    Bei 50 (PAL) ist dann genau eine Sekunde vorbei, oder ?(


    Ansonsten kenn ich noch SYS 58592, soll angeblich eine genau 8,5 Sekunden lange Pause verursachen, aber ob das 100% stimmt hab ich noch nie überprüft.

  • Yo Danke!


    Das mit den Frames wusste ich noch gar nicht. Ist das erste mal, daß ich ein längeres Assembler Prog schreibe. Bislang habe ich nur vereinzelte Routinen von Basic aus genutzt und die sollten ja schnell sein. Das wird mir einiges an Platz sparen... ( Ich trau mich gar nicht zu sagen, wie mein erster Versuch geendet ist, so eine lange Warteschleife zu erzeugen :rotwerd: )


    das Jan

  • 1000 LDA #01
    1002 STA FB
    1004 LDX #FF
    1006 LDX #FF
    1008 DEX
    1009 BNE 1008
    100B DEY
    100D BNE 1006
    100F LDA FB
    1011 TAX
    1012 DEX
    1013 TXA
    1014 STA FB
    1016 BNE 1004
    1018 RTS


    Müsste so um die 2 Sekunden sein, kannst Du variieren indem Du bei $1000 den Wert erhöst.


    mfG Hucky


    http://www.emuecke.de

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Bride Of Pinbot + Jack*Bot
    C64, C65, C66, Gammel+Mist...


  • Ähmmm, ist das nicht ein bischen unsinnig 2x hintereinander LDX #FF bei 1004 und 1006. ?( Sollte das bei 1006 nicht LDY #FF heissen. ?(


    Gruesse
    Ferritface


  • wer hat dir eigentlich beigebracht im assemblercode dezimalzahlen zu benutzen? dafür das ich den kauderwelsch fixen musste auf der bp kriegst du bei gelegenheit auch noch nen tritt :)

  • du glaubst garnich was mich das nerven gekostet hat ey....steht da 5326irgendwas, woher soll ich wissen das das $d011 ist ?! :=P so viel rechnen nach so viel bier, das geht *garnicht* :=D

  • Die ganzen Ass-Beispiele in denen Dezimalzahlen vorkommen treiben mich ebenfalls in den Wahnsinn. Hab schon immer nebenher calc.exe aufm PC laufen...


    Ich nehm LDY #$FF lieber bei 1004, sonst gibt dat nämlich ne Endlosschleife.

  • Quote

    Original von sauhund
    wer hat dir eigentlich beigebracht im assemblercode dezimalzahlen zu benutzen? dafür das ich den kauderwelsch fixen musste auf der bp kriegst du bei gelegenheit auch noch nen tritt :)


    Dann dürftest du nie nimmer nie in meinen RPG-Spiel Sourcecode schaun.
    Da sind so manche !BYTE Zeugs in Dezimal.
    Nur im Code ist alles Hexa. *g*

  • was ist denn so verwerflich an dDezimalzahlen...??! Ich benutze eigentlich oft bunt gemischte Zahlensysteme in meinen Sources, soll sich doch der Assembler mit der Umrechnung rumschlagen, dazu ist er schliesslich da ;)
    Binär benutzt man ja schlieslich auch ganz gern mal... eben so, wie es einem gerade am besten läuft... und den Taschenrechner hab ich sowiseo immer neben dran liegen und die wichtigsten Adressen hat man ja eh in Hex undDezimal im Kopf oder?? ($d020 = 53280 usw...), wobei gerade bei Adressen ich auch eher zu Hex tendiere...

  • dezimale adressen benutzen meiner erfahrung nach ausschliesslich leute die sich früher mit softwareabfall wie hypraass rumgeschlagen haben :) und auch an den meissten andren stellen machen in der regel hex- bzw bin zahlen mehr sinn als dezimale.

  • Also ich meine, daß ich so die typischen Basic-Pokes in Dezimal benutze, also die typischen VIC-Register, was aus dem SID, ein bisschen was aus der Zeropage, Tastaturpuffer und sowas halt. Oder auch die Zeichen pro Zeile und Spritepositionen. Für Kernelroutinen und Vektoren, was einem aus Basic eh nichts gebracht hätte, nehme ich auch lieber Hex.

  • also, um z.B. in die 11. Bildschirmzeile zuzugreifen o.ä. findet sich bei mir durchaus mal sowas im source:


    STA $0400+11*40,X


    oder so, das liest sich doch wirklich besser als


    STA $0400+$0B*$28,X


    oder... also so gesehen machen dezimale Angaben schon teilweise Sinn. Übrigens unterstützt jeder ansehnliche Assembler alle Zahlensystem (bin, dez, hex), alles andere würde ICH als Softwareabfall ansehen (HypraASss kenne ich nicht, bin eingefleichter TurboAss'ler).
    Klar: Hex sollte man schon im Schlaf beherrschen und auch ausgiebeig damit arbeiten, vor allem am Anfang. Aber manche Sachen machen dezimal maher Sinn.
    Und ausserdem (Achtung, jetzt wirds "haarspaltig") ist ein


    LDA #1
    um zwei Byte kürzer im Source als ein
    LDA #$01
    ;) ;) ;)


    Also ich finde: Jeder wie er will und wie's gerade passt, dazu gibt es schliesslich Assembler, sonst eben bitte nur noch den Hex-Dump herzeigen, den versteht dann jeder gleich gut :)