	PAGE 60
	ENTRY CLWING
	EXT XMING,YMING,XMAXG,YMAXG,MULTAC
	.Z80
	.COMMENT #

CLWING

loescht das momentane Plott-Fenster im Video-RAM.

Einsprung ueber Entry  CLWING

Das Loeschen erfolgt von YMING nach YMAXG und von XMING nach XMAXG, also 
zeilenweise von oben nach unten und von links nach rechts.
Da das zugehoerige Character-Byte im Video-RAM geloescht wird, werden immer 
eine Spalte und eine 2er-Gruppe von Zeilen geloescht.
Im Attribut-Byte wird das Invert-Bit geloescht, das Character-Byte wird auf 0
gesetzt.

Die Byte-Position jeder Zeile im Video-RAM wird wie folgt bestimmt:
x' = XMING
B  = XMAXG-XMING+1			Spaltenzaehler
y' = YMING	y"=[y'/2]
C  = [YMAXG/2]-[YMING/2]+1		Zeilenzaehler
HL = VRAMA + y"*COLS + x'		Attribut-Byte-Pos. im Video RAM
DE = COFFS + HL				Char.-Byte-Pos.
HL = HL+1 usw. bis B=0
y' = y'+2 usw. bis C=0

Die externen Variablen XMING,YMING und XMAXG,YMAXG im Modul PUTG enthalten
die Grenzen des momentanen Plott-Fensters. Sie werden mit der Routine
WINDWG gesetzt.

A.Herrmann	21.02.85
#
LINES	EQU 24		; Zeilen auf Bildschirm
COLS	EQU 80		; Spalten auf Bildschirm
VRAMA	EQU 0E000H	; Video RAM Adresse der Attribute
COFFS	EQU 00800H	; Offset zur Video RAM Adresse der Zeichen
VPORT	EQU 28H		; Video Port Adresse
;
CLWING:	LD A,(XMING)
	LD B,A
	LD A,(XMAXG)
	SUB B
	INC A
	LD B,A		; B = x-Count
	LD A,(YMING)
	SRL A
	LD C,A
	LD A,(YMAXG)
	SRL A
	SUB C
	INC A
	LD C,A		; C = y-Count
;
	LD HL,XMING
	LD E,(HL)	; xmin in E
	LD HL,YMING
	LD D,(HL)	; ymin in D
;
CLWIN1:	PUSH DE		; Rette Anf'koord des Fensters
	PUSH BC		; Rette Anf'stand der Counter
	SRL D		; D = y", E = x'
	LD A,D
	PUSH BC
	LD C,COLS
	CALL MULTAC	; HL = A*C
	POP BC
	LD D,0
	ADD HL,DE
	LD DE,VRAMA
	ADD HL,DE	; 1.Attribut-Byte Adresse nach HL
	PUSH HL
	LD DE,COFFS
	ADD HL,DE	; 1.Char-Byte Adresse nach DE
	POP DE
	EX DE,HL
	XOR A		; Char.Byte=0
;
CLWIN2:	DI		; Spalten Loop
	OUT (VPORT),A
	LD (DE),A	; Schreibe Character Byte
	RES 0,(HL)	; Reset Invert-Bit
	OUT (VPORT),A
	EI
	INC HL
	INC DE
	DJNZ CLWIN2	; Naechste Spalte
	LD A,C
	POP BC
	LD C,A
	POP DE
	INC D
	INC D
	DEC C
	JP NZ,CLWIN1	; Naechste Zeile
	RET		; Exit
;
	END
