;*****************************************************
;*  mehrmaliges Form-Feed unterdr}cken
;*****************************************************
;
; Der Merker ist am Anfang nicht gesetzt.
; Beim ersten FormFeed wird der 0CH-Merker gesetzt und das 
; FormFeed wird gedruckt. Der 0CH-Merker bleibt so lange 
; gesetzt, bis ein druckbares Zeichen (>20H) kommt oder
; bis ein weiteres FormFeed kommt. Wird ein 0FFH erkannt, 
; so wird der 0FFH-Merker gesetzt. Der 0FFH-Merker bleibt so
; lange gestzt, bis er durch ein FormFeed gel|scht wird
; (nicht durch ein druckbares Zeichen). Ist ein Merker gesetzt
; und ein FormFeed soll gedruckt werden, so wird der Merker
; gel|scht und das FormFeed wird unterdr}ckt.
;
;
	aseg
	org	02F8H		; Adresse der FF-Routine im WordStar
				; siehe SPACE FOR USER-ADDED SUBROUTINES
				; ( MORPAT )

FF:	cpi	0FFH
	jnz	ff10		; kein Spezialmerker?
	sta	merker		; Spezialmerker setzen ...
	ret			; ... und sonst nichts.
ff10:	mov	e,a
	lda	merker
	mov	c,a		; C = Merker
	ora	a
	jnz	ffges		; Merker ist gesetzt?
	; Merker ist nicht gesetzt
	mov	a,e
	cpi	0CH
	jnz	ffdru		; kein Formfeed drucken?
	sta	merker		; Merker setzten
ffdru:	; Zeichen in E drucken
	mvi	c,5
	call	0005H		; }ber CP/M-Lister drucken
	ora	a
	ret

ffges:	; Merker war (ist) gesetzt
	mov	a,e
	cpi	0CH
	jnz	ffg20		; kein FormFeed?
	; : Merker gesetzt + FormFeed => unterdr}cken
ffloe:	; Merker l|schen
	xra	a
	sta	merker		; Merker l|schen
	ret

ffg20:	; : Merker gesetzt + kein FormFeed
	inr	c
	jz	ffdru		; FF-Merker bleibt gesetzt
	cpi	' '
	cnc	ffloe		; druckbares Zeichen? => Merker l|schen
	jmp	ffdru

merker:	db	0

	end
