
; -------------------
; --- Scroll-Line ---
; -------------------

move.l	$04,a6
lea	gfxname,a1
jsr	-408(a6)		; OpenLibrary(Gfx)
move.l	d0,gfxbase		; Adresse Gfx-library speichern

move.l	d0,a0			; Start der Gfx-Library in a0
move.l	50(a0),oldclist		; Adresse der alten CopperListe
move.l	#newclist,50(a0)	; speichern & neue setzen

move.l	gfxbase,a6
lea	bitmap,a0
move.l	#$01,d0
move.l	#336,d1
move.l	#200,d2
jsr	-390(a6)		; InitBitMap

move.l	#$60000,plane1

lea	rastport,a1
jsr	-198(a6)		; InitRastPort

move.l	#bitmap,r_bitmap

lea	rastport,a1
jsr	-48(a6)			; ClearScreen

move.l	#scrollm,zeiger		; Zeiger auf 1. Text-Byte

move.l	$6c,oldirq+2		; alten IRQ retten
move.l	#newirq,$6c		; IRQ verbiegen

wait:
btst	#6,$bfe001		; wait for Mousie Knob
bne.s	wait

move.l	oldirq+2,$6c		; alten IRQ herstellen

move.l	gfxbase,a0		
move.l	oldclist,50(a0)		; alte CopperListe herstellen

move.l	$04,a6
move.l	gfxbase,a1
jsr	-414(a6)		; CloseLibrary(Gfx)

rts				; EOP

newirq:				; Start des neuen IRQ
movem.l	d0-d7/a0-a6,-(sp)	; Register retten

move.l	gfxbase,a6
lea	rastport,a1
move.l	#$01,d0			; 1 Pixel in X-Richtung
move.l	#$00,d1
move.l	#$00,d2
move.l	#190,d3
move.l	#336,d4
move.l	#200,d5
jsr	-396(a6)		; ScrollRaster

sub.b	#$01,rows		; schon 8 Pixel gescrollt ?
bne.s	exit			; nein -> ´raus

move.b	#$08,rows		; 8-Pixel-Pointer wiederherstellen

lea	rastport,a1
move.l	#320,d0
move.l	#198,d1
jsr	-240(a6)		; Move (setzt Gfx-Cursor)

lea	rastport,a1		
move.l	zeiger,a0		; welches Zeichen ?
move.l	#$01,d0			; Länge = 1
jsr	-60(a6)			; Text (an Gfx-Cursor-Position)

addq.l	#$01,zeiger		; Zeiger++
cmp.l	#end,zeiger		; Ende des Scroll-Textes ?
blt.s	exit			; nein -> ´raus

move.l	#scrollm,zeiger		; Scroll-Text von vorne

exit:
movem.l	(sp)+,d0-d7/a0-a6	; Register wiederherstellen

oldirq:
jmp	$00000000		; weiter im System-IRQ
	
;            ^    hier wird die Adresse des alten IRQ´s
;        	  hineingeschrieben !!

newclist:
dc.w	$008e,$2c81,$0090,$f4c1,$0092,$0038,$0094,$00d0
dc.w	$0102,$0000,$0104,$0000,$0108,$0002,$010a,$0002
dc.w	$0100,$1200,$0180,$0000,$0182,$0fff
dc.w	$00e0,$0006,$00e2,$0000
dc.w	$ffff,$fffe

scrollm:
dc.b	"Dies ist der Scroll-Text !   "
end:

even

zeiger:				 ; Zeiger auf das aktuelle Zeichen des
dc.l	0			 ; Scroll-Textes

oldclist:
dc.l	0

gfxbase:			; Adresse der Gfx-Library
dc.l	0

gfxname:		
dc.b	"graphics.library",0	; Name der Gfx-Library

even

bitmap:
blk.w	4,0

plane1:
blk.l	20,0

rastport:			; Adresse des RastPort	
dc.l	0

r_bitmap:
blk.l	30,0

rows:				; Pointer für gescrollte Pixel
dc.b	8

; -- EOP --
