Hello, Guest the thread was called546 times and contains 7 replays

last post from mrsid at the

Zeit messen bei REU-Transfer

  • Hallo,


    wenn ich in Assembler irgendwelchen Code ausführe oder Sachen hin- und her kopiere,
    dann kann man ja mittels inc $d020 und dec $d020 gut sehen, wieviel Zeit das benötigt hat.
    Was mich interessieren würde ist, ob man das auch beim Transfer zur oder von der REU so machen kann.
    Oder gelten da andere Regeln wegen dem DMA?

  • Da die REU ja die 6510 lahmlegt und die Kontrolle über den Bus an sich reisst (Da wird sie zwar weiter vom Vic wegen Bildaufbau unterbrochen) kommen deine Inc/DEC ja immer erst nach dem kompletten Transfer zum Tragen. Wenn das dein Ziel ist: Ja das klappt. Wenn Du aber eine Verlaufskontrolle während des Kopierens willst, bzw. Taktzyklen auszählen, dann leider nein.

    GREETINGS PROFESSOR FALKEN
    A STRANGE GAME.
    THE ONLY WINNING MOVE IS NOT TO PLAY.
    HOW ABOUT A NICE GAME OF CHESS?

  • Das ist so nicht möglich, da ja wie gesagt der VIC die REU normalerweise weiter unterbrechen kann.
    Hier kann dir aber Mathematik weiterhelfen: Du hast mit der REU den Systemtakt zum Kopieren, also ca 985 KByte/s.
    Pro Frame kannst Du also 985/50 = 19,2 Kbyte transferieren. Hier geht noch das ab was der VIC benötigt, aber ich schätze mal 16KB/s sind durchaus realistisch.

    GREETINGS PROFESSOR FALKEN
    A STRANGE GAME.
    THE ONLY WINNING MOVE IS NOT TO PLAY.
    HOW ABOUT A NICE GAME OF CHESS?

  • Quote

    aber ich schätze mal 16KB/s sind durchaus realistisch

    Meinst du 16KB/Frame?
    Das würde dann ja reichen. Hab mir nämlich mal so überlegt, ob man 8-Wege-Scrolling mit der REU gut machen könnte.
    Also, ob das funktionieren würde, pro Frame ein Hardscroll durchzuführen. Müsste dann ja eigentlich zu machen sein...

  • Je nach Screenmode und Sprite-Aktivierung geht unterschiedlich viel Zeit verloren:


    Je Badline 43 Takte
    Je Sprite und Zeile (n+1)*3 Takte mit n=1-8 Sprites. Bei 0 Sprites ist dieser Wert auch 0 (nicht 3). Er reduziert sich um 3 Takte, wenn es sich um eine Badline handelt, da dann die ersten drei "idle"-Takte nicht anfallen, sondern die Sprite-Fetches direkt nach den Badline-Fetches gemacht werden.


    Im Grundsatz sind also genug Zyklen frei, um per REU ein Hires-Bild mit allen Farbinformationen in nur einem Frame zu übertragen. Es kann sein, dass man das ein wenig schachteln muss, damit das Kopieren auf jeden Fall vor der Darstellung durch den VIC passiert.


    Jens
    (der sich gerade nicht so sicher ist, ob bestimmte Sprite-Fetches nicht auch in VIC-Zyklen ohne CPU-Bremse gemacht werden können..)