; ----- graphics.library -----
scrollraster=	-396
setapen=	-342
text= 		-60
setfont= 	-66
closefont=	-78
move= 		-240
draw=		-246
initbitmap= 	-390
initrastport= 	-198
clearscreen=	-48
; ----- exec.library     -----
allocabs=	-204
openlibrary= 	-408
closelibrary= 	-414
forbid= 	-132
permit= 	-138
; ----- diskfont.library -----
openfont= 	-30
execbase= 	$04
movem.l 	d0-d7/a0-a6,-(a7)
; ---- open graphics.library ----
move.l		execbase,a6
lea		gfxname,a1
jsr		openlibrary(a6)
move.l		d0,gfxbase
jsr		forbid(a6)		; Forby multitasking.
move.w		#$0020,$dff096		; Stop sprite DMA.
move.l		gfxbase,a0		; Sette inn copperlisten. 
add.l		#$32,a0
move.w		#$0080,$dff096		; Copper DMA  av.	
move.l		(a0),oldcopper	
move.l		#newcopper,(a0)
move.w		#$8080,$dff096		; Copper DMA  paa.
;  **  INITIALISERINGEN  AV  BITMAPSTRUKTUREN
move.l		gfxbase,a6		
lea		bitmap,a0		; Bitmap'en
move.l		#$02,d0			; Ant. bitplanes
move.l		#352,d1			; Bredde
move.l		#200,d2			; H0yde	
jsr		initbitmap(a6)
move.l		#$50000,plane1
move.l		#$52260,plane1+4
lea		rastport,a1
jsr		initrastport(a6)
move.l		#bitmap,r_bitmap
lea		rastport,a1		
jsr		clearscreen(a6)		; Slette skjermen
lea		rastport,a1		; Sette tegnefarge fra
move.l		#$01,d0			; fargeregister 01.
jsr		setapen(a6)		; Setter Pen A
move.w		#$4000,$dff09a		; Setter inn ny  irq
move.l		$6c,oldirq
move.l		#newirq,$6c
move.w		#$c000,$dff09a
wait:
btst		#6,$bfe001		; Venstre musetast trykket ??
bne.s		wait
move.w		#$4000,$dff09a		; Tilbake til gammel  irq.
move.l		oldirq,$6c
move.w		#$c000,$dff09a
move.l		execbase,a6
move.l		gfxbase,a1		; Lukke  graphic.lib.
jsr		closelibrary(a6)
move.l		gfxbase,a0		; Bruke gammel copperliste. 
add.l		#$32,a0
move.w		#$0080,$dff096		; Copper DMA  av.
move.l		oldcopper,(a0)
move.w		#$8080,$dff096		; Copper DMA  paa.
move.l		execbase,a6		
jsr		permit(a6)		; Tillater multitasking.
move.w		#$8020,$dff096		; Slaar paa sprite DMA.
movem.l		(a7)+,d0-d7/a0-a6
error:
rts
newirq:
movem.l		d0-d7/a0-a6,-(sp)
move.l		gfxbase,a6		; scrolling
lea		rastport,a1		;RastPort
move.l		#2,d0			; dX. Pixels ad gangen. X-retn.

move.l		#0,d1
move.l		#0,d2			; min X
move.l		#10,d3			; min Y
move.l		#351,d4			; max X
move.l		#50,d5			; max Y
jsr		scrollraster(a6)	; Kaller scroll-rutine.
sub.b		#$01,rows		; schon 1 zeichen gescrollt
bne.L		continue1		;  ALT  1  TEGN   SCROLLET
move.b		#5,rows
move.l		gfxbase,a6
lea		rastport,a1
move.l		#$02,d0
jsr		setapen(a6)
lea		rastport,a1
move.l		#320,d0
move.l		#20,d1
bsr		text1
runde:
bsr		scroll
addq.w		#2,miny
cmp.w		#29,miny
bne		runde
move.w		#15,miny
add.l		#$01,c_ptr
cmp.l		#ende,c_ptr
bne.s		continue1
move.l		#scrollmsg,c_ptr
continue1:
movem.l		(sp)+,d0-d7/a0-a6
dc.w		$4ef9
oldirq:
dc.l	0
text1:
jsr		move(a6)		; Hente neste tegn fra
lea		rastport,a1		; scrolltexten.
move.l		c_ptr,a0
move.l		#1,d0
jsr		text(a6)
rts
newcopper:
dc.w $0180,$0003,$0182,$000f
dc.w $0184,$000f,$0186,$02b2
dc.w $008e,$2c81,$0090,$f4c1
dc.w $0092,$0038,$0094,$00d0
dc.w $0108,$0004,$010a,$0004
dc.w $0102,$0000,$0104,$0000
dc.w $0100,$2200,$00e0,$0005
dc.w $00e2,$0000,$00e4,$0005
dc.w $00e6,$2260,$ffff,$fffe
even
scroll:
lea	rastport,a1
clr.l	d0
move.l	#-1,d1
move.l	#320,d2
clr.l	d3
move.w	miny,d3
move.l	#350,d4
move.l	#35,d5
jsr	scrollraster(a6)
rts	
scrollmsg:
dc.b	" HEI ANTIMON!               DENNE RUTINEN FORDOBLER TEKSTEN"
dc.b	" I Y-RETNING.       ENKELT HVA?         DEN ER BYGGET UT I "
dc.b	"FRA EN STANDARD HQC-SCROLL.    DU VET VEL HVORDAN MAN BRUKER"
dc.b	" SCROLLRASTER?     MED DEN KAN DU SCROLLE ALT SOM ER INNEN"
dc.b	"FOR EN RAMME (minX, minY, maxX, maxY) ET GITT ANTALL PIXELS."
dc.b	"          DU KAN SCROLLE ALLE VEIER, OG DU KAN OGSÅ LAGE FLE"
dc.b	"RE SLIKE RAMMER.    F.EKS. TO VERTIKALE OG TO HORISONTALE.  "
dc.b	"       .....OCTON.               "
ende:
even
dc.w	0
gfxbase:
dc.l 	0
bitmap:
blk.w 	4,0
plane1:
blk.l 	10,0
rastport:	; Gitt verdien 0. Dvs. current window ???	
blk.l 	1,0
r_bitmap:
blk.l 	26,0
oldcopper:
dc.l 	0
gfxname:
dc.b 	"graphics.library",0
rows:
dc.b	2
even
c_ptr:
dc.l	scrollmsg
ptr1:
dc.l	24
ptr2:
dc.l	696
yretn:	dc.b	0
even
miny:	dc.w	15
yliste:	dc.b	0,0,1,1,2,3,5,-3,-2,-1,-1,0,0,10
