;: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 ; 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