Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z1013:erweiterungen:vollgrafik [2012/11/10 08:57] – angelegt volkerpz1013:erweiterungen:vollgrafik [2012/11/12 06:24] (aktuell) – [KRT-Grafik (Kleinstrechnertipps)] volkerp
Zeile 5: Zeile 5:
 ===== Spectrum-Grafik (practic) ===== ===== Spectrum-Grafik (practic) =====
  
-In [[z1013:literatur:practic-88-2-1]] wird eine Schwarz-Weiß-Vollgrafik von Andrea und Ulf Kindermann mit einer Auflösung von 256*192 Bildpunkten beschrieben. Der Aufbau des Grafikspeichers ist kompatibel zum Sinclair Spectrum.+In [[z1013:literatur:practic-88-2-1]] wird eine Schwarz-Weiß-Vollgrafik von Andrea und Ulf Kindermann mit einer Auflösung von 256*192 Bildpunkten beschrieben. Der Aufbau des Grafikspeichers ist kompatibel zum ZX Spectrum. 
 + 
 +Die Schaltung ist als separate Grafikkarte entworfen. Bis auf den Austausch einer Lötbrücke gegen einen Schalter sind auf der Grundplatine keine Eingriffe notwendig. Allerdings sind dafür auch 32 Schaltkreise notwendig! 
 + 
 +{{:z1013:literatur:practic-88-24.jpg?200|Bild 1}} 
 +{{:z1013:literatur:practic-88-26.jpg?200|Bild 2}}
  
 ===== KRT-Grafik (Kleinstrechnertipps) ===== ===== KRT-Grafik (Kleinstrechnertipps) =====
Zeile 12: 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, die eine Leiterplattenvorlage und erste Software und im zweiten Artikel einen Zusatz für das [[z1013:software:hc-basic|HCBASIC+]] beschreiben, mit dem vom BASIC aus komfortabel die Grafik genutzt werden kann.
 +
   * 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, der Grafik-Block-Nr. und des zu bearbeitenden Bits. Mit selbstmodifizierendem Code genügt eine Routine zum Setzen und Löschen von Punkten. Dabei wird die Kodierung der Bitbefehle SET b,(HL) bzw. RES b,(HL) geschickt ausgenutzt:
 +
 +<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: call gr_on
 +gpoint1: ld a, h ; Spalte
 + and 7 ; Spalte MOD 8
 + rlca
 + rlca
 + rlca ; * 8 f. Befehlsberechnung
 + ld b, a ; 
 +gpoint2: ld a, 0BEh ; Bitbefehl wird gepatcht
 + ; 0BEh RES 7, (HL) Bit löschen,
 + ; 0FEh SET 7, (HL) Bit setzen
 + ; SET b,(HL)     CB C6+8*b
 + ; RES b,(HL)     CB 86+8*b
 + sub b ; Bit einrechnen (7-Bit)
 + ld (gpoint4+1), a ; Befehl patchen
 +;
 + 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 ; und hier deshalb wieder 1x Länge Bildzeile abziehen
 + ld de, 20h ; Länge Bildzeile
 +gpoint3: add hl, de ; 20h * (Zeile DIV 8)
 + djnz gpoint3
 + add hl, bc ; B=0; C=Spalte DIV 8
 +gpoint4: set 0, (hl) ; Befehl Set/Res und Bit-Nr. wird gepatcht
 + ret
 +</file>
 ===== PZG/HRG von Tino Sander ===== ===== PZG/HRG von Tino Sander =====
  
  • z1013/erweiterungen/vollgrafik.1352537864.txt.gz
  • Zuletzt geändert: 2012/11/10 08:57
  • von volkerp