🎞️Flimmerfrei animieren
Bewegen heißt: alte Stelle wiederherstellen, neue Stelle sichern, neu zeichnen – 50-mal pro Sekunde. Entscheidend ist, wanndas passiert, denn der Bildschirm wird währenddessen ständig vom Strahl gelesen.
⏱️Ein Bild auf der Zeitachse
Schieben Sie Start und Dauer des Zeichnens: Überschneidet sich das Zeichnen mit dem Moment, in dem der Strahl die Sprite-Zeilen ausgibt, sieht man ein halb gezeichnetes Sprite.
✅ Das Zeichnen ist fertig, bevor (oder nachdem) der Strahl die Sprite-Zeilen liest – die Figur erscheint immer vollständig.
Vereinfachtes Modell mit den Standardwerten des CRTC (R4 = 38, R6 = 25, R7 = 30): 312 Rasterzeilen × 64 µs = 19 968 µs; die erste Bildzeile folgt (39 − 30) × 8 = 72 Rasterzeilen nach dem Beginn des VSYNC. Der Emulator unten zeichnet den Bildschirm dagegen einmal je Browser-Bild vollständig – Zerreißen ist dort nicht zu sehen, die Zeitachse zeigt, warum es auf echter Hardware passiert.
🏃Das Sprite läuft – im Emulator
Vier Varianten desselben Programms. Das Programm läuft endlos; „Pause“ und „Schritt“ zeigen jederzeit, wo es gerade steht.
bereit
ℹ️ Jede Runde wartet mit CALL &BD19 (MC WAIT FLYBACK) auf den Strahlrücklauf, stellt die alte Stelle wieder her, sichert die neue und zeichnet – ein Byte (2 Pixel) je Bild, also 50 Schritte pro Sekunde.
Quelltext (editierbar)
Assembler-Liste · Klick auf ● = Haltepunkt
0
1
2
3
Rand
Modus 1 · Basis &C000 · Versatz &0000Firmware
Letzte Firmware-Aufrufe
noch keine
Register & Flags
AF
&FFFF
BC
&0000
DE
&0000
HL
&0000
IX
&FFFF
IY
&FFFF
SP
&C000
PC
&0000
S
1
Z
1
Y
1
H
1
X
1
P/V
1
N
1
C
1
AF' &0000
BC' &7F8D
DE' &0000
HL' &0000
I &00
R &00
IM 1
IFF1/2 1/1
Z80-Takte: 0 TCPC-Zeit: 0 µsROMs: unten aus, oben ausRAM-Konfig: &C0
Disassembler ab PC
0000ED FEHLE ▸ RESET ENTRY
0002C9RET
000300NOP
000400NOP
000500NOP
000600NOP
000700NOP
0008ED FEHLE ▸ LOW JUMP
000AC9RET
000BED FEHLE ▸ KL LOW PCHL
Stapel (SP)
C0000000← SP
C0020000
C0040000
C0060000
C0080000
C00A0000
C00C0000
C00E0000
Speicher (Hex)
800000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
801000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
802000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
803000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
804000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
805000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
806000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
807000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
PCSP(HL)(DE)Leseansicht mit aktueller ROM-/Bank-Einblendung
🧠Die Werkzeuge im Überblick
💡 MC WAIT FLYBACK (&BD19)
Firmware-Routine aus dem Machine Pack (SOFT 968): kehrt zurück, sobald der Strahlrücklauf läuft. Bequem, braucht aber die Firmware.
💡 PPI 8255, Port B, Bit 0
LD B,&F5 : IN A,(C) : RRA – Bit 0 von Port B meldet den VSYNC des CRTC. Funktioniert auch bei abgeschalteter Firmware.💡 CRTC-Register 12/13
Register 12 Bits 5–4 wählen den 16-KB-Block des Bildes:
&30 → &C000, &10 → &4000. Register wählen über Port &BCxx, Wert schreiben über &BDxx. Die Firmware bietet dafür SCR SET BASE (&BC08).