S||D schrieb am 20. Oktober 2013 18:48
> Hätte man da überhaupt eine Chance gehabt, ständig die Zeilennummer
> zu überprüfen? Ich meine, wäre man schnell genug gewesen?
Du meinst, wenn man auf einen Rasterzeilen-IRQ verzichten will? Macht
man in der Praxis nicht, aber prinzipiell spräche nichts dagegen, den
ganzen Code mit statischem Timing zu machen, also einmal Busy Waiting
und danach schauen, dass nur schön "zyklenabgezählter" Code läuft; 63
Takte hat man pro Zeile bei PAL. Effekte kann man dann im mittleren
Bereich des Bildschirms machen (wie auch sonst), Musik im Rand. Auch
nicht wirklich anders als mit IRQs. Wobei das alles zusammenfällt,
wenn man z.B. per Druck auf RESTORE einen NMI auslöst ;-).
Außerdem hat Busy Waiting etwas Jitter. Wenn man wirklich taktgenau
sein will, muss man etwas Magie machen => "Stable Raster".
http://www.antimon.org/dl/c64/code/stable.txt
http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt
> Hätte man da überhaupt eine Chance gehabt, ständig die Zeilennummer
> zu überprüfen? Ich meine, wäre man schnell genug gewesen?
Du meinst, wenn man auf einen Rasterzeilen-IRQ verzichten will? Macht
man in der Praxis nicht, aber prinzipiell spräche nichts dagegen, den
ganzen Code mit statischem Timing zu machen, also einmal Busy Waiting
und danach schauen, dass nur schön "zyklenabgezählter" Code läuft; 63
Takte hat man pro Zeile bei PAL. Effekte kann man dann im mittleren
Bereich des Bildschirms machen (wie auch sonst), Musik im Rand. Auch
nicht wirklich anders als mit IRQs. Wobei das alles zusammenfällt,
wenn man z.B. per Druck auf RESTORE einen NMI auslöst ;-).
Außerdem hat Busy Waiting etwas Jitter. Wenn man wirklich taktgenau
sein will, muss man etwas Magie machen => "Stable Raster".
http://www.antimon.org/dl/c64/code/stable.txt
http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt