Frage zu Schattenregistern


Frage zu Schattenregistern

von Chris » Mi 29. Apr 2015, 08:09
Hi,

ich lese mich gerade ein wenig in die Interna des XL ein. Soweit ich das verstanden habe, werden die Werte in den Schattenregistern bei jedem VBlank vom OS in die echten Hardware-Register kopiert. Wie geht ihr damit um? Schreibt ihr Sachen die für die Dauer eures Programms bleiben sollen in diese Schattenregister und ändern dann per DLI Werte wie Grafikstufe und Farben, oder schaltet ihr das OS aus und programmiert ausschließlich mit den Hardware-Registern? Kann man das OS überhaupt abschalten?

Gruß Chris

Re: Frage zu Schattenregistern

von tfhh » Mi 29. Apr 2015, 08:48
Moin Chris,

Chris hat geschrieben:ich lese mich gerade ein wenig in die Interna des XL ein. Soweit ich das verstanden habe, werden die Werte in den Schattenregistern bei jedem VBlank vom OS in die echten Hardware-Register kopiert. Wie geht ihr damit um? Schreibt ihr Sachen die für die Dauer eures Programms bleiben sollen in diese Schattenregister und ändern dann per DLI Werte wie Grafikstufe und Farben, oder schaltet ihr das OS aus und programmiert ausschließlich mit den Hardware-Registern? Kann man das OS überhaupt abschalten?

Viele Fragen und viel nötiges Background-Wissen auf Einmal :D

Also zuerst, falls noch nicht geschehen: Ziehe Dir hier aus der Download-Rubrik die ABBUC Neuauflage des Sybex Profibuchs. Das ist essentiell.

Ja, die Schattenregister werden bei jedem VBI in die eigentlichen HW-Register übertragen. Dadurch flimmert es z.B. auch nicht. Der VBI läßt sich abschalten. Allerdings funktionieren dann diverse andere Dinge (z.B. Tastaturabfrage) auch nicht.

Wenn Du vorhast, mit DLIs zu arbeiten etc., kommst Du um Assemblerprogrammierung nicht herum. Dann gibt es aber auch einfache Wege, die HW Register so zu beschreiben, daß es nicht zu Flickereffekten kommt - alles dazu findest Du im Profibuch im Bereich HW Register & ANTIC.

Gruß, Jürgen

Re: Frage zu Schattenregistern

von Chris » Mi 29. Apr 2015, 09:25
Danke für den Tipp. Ich will in Assembler programmieren und habe damit ein wenig Erfahrung aus Amiga-Zeiten, da war es allerdings ein 68000er mit Registern ohne Ende :D

Re: Frage zu Schattenregistern

von 8bitjunkie » Mi 29. Apr 2015, 12:38
Ja, und Zahlen endeten nicht so plötzlich bei 255 :mrgreen:

Re: Frage zu Schattenregistern

von Chris » Mi 29. Apr 2015, 17:55
Hehe, nee da ging mehr und beim Shiften konnten man die Anzahl Bits angeben und es gab auch mul und div und movem um alle Register auf den Stack zu packen.

Re: Frage zu Schattenregistern

von Jac » Sa 2. Mai 2015, 09:19
Im normlen Betrieb gibt es keine Grund den VBI oder das OS abzuschalten.
Und normalerweise reicht es aus das Programm mit dem VBI zu synchronisieren und die Schattenregister zu verwenden.

main:

lda $14
wait:
cmp $14
beq wait

jmp main

Um Register während des Bildschirmaufbaus zu ändern muss man direkt die Hardware Register verwenden.
Genau wie beim Amiga eigentlich auch. Nur dass Du der Copper da das macht, was die CPU auf dem Atari mit VBI & DLI macht.

Re: Frage zu Schattenregistern

von Chris » Sa 2. Mai 2015, 10:12
Vielen Dank, dann werde ich also die Sachen die eh fest bleiben mit Schattenregistern machen.

Re: Frage zu Schattenregistern

von atarixle » Fr 8. Mai 2015, 19:36
Noch schnell angemerkt:

Die Grafikstufe wird nicht mittels DLI umgeschaltet (außer zwischen den ANTIC-Stufen 9 bis 11).

Die Umschaltung erledigt die Display-List. Dadurch sind solche Spielchen auch locker in BASIC möglich.