;:open4,4
;:sys36864
	*= $c000 	; startadresse des programmes
	;.opt oo,p4	;   programm erzeugen
;
; programm 'longscreen'
; (c) nikolaus heusler
;     nh-030788-1732h-arr
;
; achtung - nach dem start kann die
; unterste bildschirmzeile nicht
; mehr verwendet werden !
;
; labeldeklarationen
;
irqvec	=788 	; irqvector
oldirq	=$ea31 	; dessen alter inhalt
vic	=$d000 	; videochip
col1	=vic+32 	; rahmenfarbe
col2	=vic+33 	; hintergrundfarbe
raster	=vic+18 	; nummer der zeile fuer raster-irq
irqsel	=vic+25 	; vic-irq-flag
irqflg	=vic+26 	; irq maskenregister
null	=16383 	; letztes byte der vic-bank
mode	=vic+17 	; 24 oder 25 zeilen
cia	=56333 	; cia-irq-steuerung
;
; start maschinenprogramm
;
	sei 	; irq sperren
	lda #<neuirq
	ldy #>neuirq 	; zeiger auf neue irq-adresse
	sta irqvec
	sty irqvec+1 	; vektor setzen
	lda #0
	sta null 	; rahmenbereich loeschen (geheimnis !)
	lda #51
	sta raster 	; erster raster-irq bei zeile 51
	lda #127
	sta cia 	; timer abschalten
	lda #1
	sta irqflg 	; raster-irq einschalten
	cli
	rts 	; fertig
;
; neue irq-routine
;
neuirq	lda #1
	sta irqsel 	; raster-irq bestaetigen
	lda raster
	cmp #51 	;" war es zeile 51 ?"
	beq ja 	; wenn ja
	lda #23
	sta mode 	; auf 24 zeilen schalten
	lda #51
	sta raster 	; naechster raster-irq bei zeile 51
	jmp oldirq 	; weiter im systemirq
ja	lda #24
	sta mode 	; wieder auf 25 zeilen schalten
	lda #250
	sta raster 	; naechster raster-irq bei zeile 250
	jmp oldirq 	; weiter im systemirq
