Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z1013:erweiterungen:vollgrafik [2012/11/10 16:24] – [Spectrum-Grafik (practic)] volkerp | z1013:erweiterungen:vollgrafik [2012/11/12 06:24] (aktuell) – [KRT-Grafik (Kleinstrechnertipps)] volkerp | ||
---|---|---|---|
Zeile 17: | Zeile 17: | ||
Basis ist ein 8K-SRAM. | Basis ist ein 8K-SRAM. | ||
- | |||
- | In der Folge erscheinen 2 zusätzliche Beiträge im Funkamateur: | ||
* Kleinstrechnertipps 11, S. 38-39 | * Kleinstrechnertipps 11, S. 38-39 | ||
+ | |||
+ | In der Folge erscheinen 2 zusätzliche Beiträge im Funkamateur, | ||
+ | |||
* fa-91-7, S.384ff. A. KÖHLER: Punkt für Punkt - Vollgrafikroutinen für den Z1013 | * fa-91-7, S.384ff. A. KÖHLER: Punkt für Punkt - Vollgrafikroutinen für den Z1013 | ||
* fa-92-8, S.561ff. V. Göritz: KC-BASIC+ mit Vollgrafik | * fa-92-8, S.561ff. V. Göritz: KC-BASIC+ mit Vollgrafik | ||
+ | **Clever gelöst**: Berechnen der Position im Bildspeicher, | ||
+ | |||
+ | <file z80> | ||
+ | ; | ||
+ | ; Punkt setzen | ||
+ | ; in: L = X (Zeile), H = Y (Spalte) | ||
+ | ; | ||
+ | |||
+ | ; Adr := 0EC00h + 20h * (Zeile DIV 8) + Spalte DIV 8 | ||
+ | ; Bit := 7-(Spalte MOD 8), Block := Zeile MOD 8 | ||
+ | ; Punkt (0,0) ist links oben | ||
+ | |||
+ | gpoint: | ||
+ | gpoint1: | ||
+ | and 7 ; Spalte MOD 8 | ||
+ | rlca | ||
+ | rlca | ||
+ | rlca ; * 8 f. Befehlsberechnung | ||
+ | ld b, a ; | ||
+ | gpoint2: | ||
+ | ; 0BEh RES 7, (HL) Bit löschen, | ||
+ | ; 0FEh SET 7, (HL) Bit setzen | ||
+ | ; SET b, | ||
+ | ; RES b, | ||
+ | sub b ; Bit einrechnen (7-Bit) | ||
+ | ld (gpoint4+1), | ||
+ | ; | ||
+ | srl h ; Spalte DIV 8 | ||
+ | srl h | ||
+ | srl h | ||
+ | ld c, h ; merken | ||
+ | ; | ||
+ | ld a, l ; Zeile | ||
+ | and 7 ; Block := Zeile MOD 8 | ||
+ | out (8), a | ||
+ | ; | ||
+ | srl l ; Zeile | ||
+ | srl l | ||
+ | srl l ; Zeile DIV 8 | ||
+ | ld b, l | ||
+ | inc b ; um 1 erhöhen, damit bei 0. Zeile keine 256 | ||
+ | ; Schleifendurchläufe | ||
+ | ld hl, 0EC00h-20h ; | ||
+ | ld de, 20h ; Länge Bildzeile | ||
+ | gpoint3: | ||
+ | djnz gpoint3 | ||
+ | add hl, bc ; B=0; C=Spalte DIV 8 | ||
+ | gpoint4: | ||
+ | ret | ||
+ | </ | ||
===== PZG/HRG von Tino Sander ===== | ===== PZG/HRG von Tino Sander ===== | ||