;:open4,4
;:sys36864
	;.opt p4	;betriebsart
	*= 53131	;startadresse
;
; protokoll
; mitschreiben der bildschirmausgabe
; auf dem drucker
; nikolaus heusler, muenchen 5.91
;
; **** initialisierung ****
;
	sei	;irq sperren
	lda #<neuirq	;zeiger auf neue irq-routine
	ldy #>neuirq
	sta 788
	sty 789	;vektor verbiegen
	cli	;irq zulassen
	rts	;und fertig
;
; **** variablen ****
;
flag	brk	;protokoll ein/aus
;
; **** neue irq-routine ****
;
neuirq	lda 653	;steuertastenmuster laden
	cmp #6	;ctrl und cbm testen
	beq schalt	;ja, dann umschalten
normal	jmp $ea31	;sonst normale irq-routine
schalt	cmp 654	;mit letztem muster vergleichen
	beq normal	;gleich, ungueltig
ok	lda flag	;schalter laden
	eor #128	;und invertieren
	sta flag	;umschalten
	bpl normal	;wenn aus, dann normal weiter
	lda #4	;filenummer
	jsr $f291	;close
	lda #4	;filenummer
	tax	;und geraeteadresse
	ldy #0	;sekundaeradresse
	jsr $fe00	;parameter setzen
	jsr $f34a	;open - kanal oeffnen
	lda #<neuprt
	ldy #>neuprt	;zeiger auf neue ausgabe-routine
	sta $326
	sty $327	;gibt neuen bsout-vektor
	bne normal	;und weiter im irq
;
; **** neue bsout-routine ****
;
neuprt	pha	;zeichen retten
	lda $9a	;geraetenummer
	cmp #3	;bildschirm testen
	beq screen	;ja, dann ok
	jmp $f1d5	;sonst wie gehabt
screen	pla
	jsr $e716	;zeichen normal ausgeben
	bit flag	;protokoll an oder aus
	bpl roger	;ausgeschaltet, dann fertig
	sta a+1	;akku merken
	stx x+1	;x merken
	sty y+1	;y merken
	ldx #4	;drucker ansprechen
	jsr $f250	;chkout
	lda a+1	;zeichen holen
	jsr $eddd	;auf iec-bus ausgeben
	jsr $f333	;clrchn
a	lda #0	;selbstmodifikation
x	ldx #0	;selbstmodifikation
y	ldy #0	;selbstmodifikation
roger	clc	;alles ok
	rts	;und fertig
