Hi Nomis,
Carry- /HalfCarry-Flag und dann den entsprechenden Ausgang setzen/löschen.
Das kann man innerhalb von 2 oder 3 Taktzyklen machen. (SBIS,SBIC,SBI,CBI)
das einizge was dann noch arbeitet ist ein Zähler für die Pixel und Zeilen.
Oder man arbeitet mit Tabellen und den Index-Registern. Dann hat man
mit dem Postincrement den Zähler gratis dabei. Die Tabellenwerte werden
dann in ein Register geladen und auf einem Pin rausgeschoben.
Mit Farbe würde ich evtl 2Bit pro Farbe benutzen ...
2Bit ROT
2Bit GRÜN
2Bit BLAU
2Bit Sync/Schwarz/Weiß
Damit hat man ein 8Bit-Register voll, 64 Farben zur Verfügung und kommt
noch halbwegs mit dem Timing klar.
... und jetzt mach ich Feierabend. Ist schon spät ...
Gruß
Dino
in Assembler könnte man das mit Reaktionen auf die Statusflags machen.@Dino: Auf IF Abfragen wird man zwar nicht ganz verzichten können, aber man kann sich damit sicher irgendwie auf den Anfang einer Zeile beschränken. Ich denke dabei daran den Ablauf jeweils der Zeilen, welche gleich aussehen, nur einmal auszuprogrammieren und am Anfang einer Zeile nur die entsprechende Zeilenroutine aufzurufen.
Carry- /HalfCarry-Flag und dann den entsprechenden Ausgang setzen/löschen.
Das kann man innerhalb von 2 oder 3 Taktzyklen machen. (SBIS,SBIC,SBI,CBI)
das einizge was dann noch arbeitet ist ein Zähler für die Pixel und Zeilen.
Oder man arbeitet mit Tabellen und den Index-Registern. Dann hat man
mit dem Postincrement den Zähler gratis dabei. Die Tabellenwerte werden
dann in ein Register geladen und auf einem Pin rausgeschoben.
Mit Farbe würde ich evtl 2Bit pro Farbe benutzen ...
2Bit ROT
2Bit GRÜN
2Bit BLAU
2Bit Sync/Schwarz/Weiß
Damit hat man ein 8Bit-Register voll, 64 Farben zur Verfügung und kommt
noch halbwegs mit dem Timing klar.
... und jetzt mach ich Feierabend. Ist schon spät ...
Gruß
Dino