
; Listing4a.s	Universele routine om bitplanes 'aan te Pointen'.

	SECTION LES4,CODE

Begin:
	MOVE.L	#PIC,d0		; In d0 komt het adres van onze PIC.
				; d.w.z. waar het eerste bitplane staat.

	LEA	BPLPOINTERS,A1	; in a1 komt het adres van de Bitplane
				; pointer van de Copperlist
	MOVEQ	#2,D1		; Aantal Bitplanes -1 (hier zij het er 3)
				; voor de DBRA - Cyclus
POINTBP:
	move.w	d0,6(a1)   ; kopieërt het Laagwaardige Word van het Adres
			   ; van de Plane in het correcte Word van de
			   ; Copperlist
	swap	d0	   ; Verwisselt het 2e Word van d0 (B.v.:1234 >3412)
			   ; Het hoogwaardige Word komt op de plaats van het 
			   ; Laagwaardige Word, daardoor kunnen we Move.W
			   ; gebruiken!
	move.w  d0,2(a1)   ; kopieërt het hoogwaardige Word van het Adres
			   ; van de Plane in het correcte Word van de
			   ; Copperlist
	swap	d0	   ; verwisselt het 2e Word van d0 (B.v.:3412 >1234)
			   ; Dit herstelt dus het adres.
	ADD.L	#40*256,d0 ; We tellen 10240 bij D0 op, zodat we het tweede
			   ; Bitplane 'aan wijzen' (Dit bevindt zich na het
			   ; eerste). We tellen dus de lengte van 1 Bitplane
			   ; erbij op. In de volgende doorgangen wijzen we 
			   ; naar het derde, vierde enz..

	addq.w  #8,a1		; a1 bevat nu het adres van de volgende
				; Bplpointers in de Copperlist, die we
				; moeten hebben.
	dbra	d1,POINTBP	; Herhaal D1 Maal POINTBP
				; (D1=Num. of Bitplanes)


	rts		    ; EINDE!!



COPPERLIST:
;	....	; hier zetten we de nodige registers in.

; 	We laten de Bitplanes direct Aanwijzen als we het register $dff0e0
;	en volgende deirect in de copperlist geven, gevolgd van de Adressen
;	van de Bitplanes. Deze worden door de Routine POINTBP erin gezet.

BPLPOINTERS:
	dc.w $e0,$0000,$e2,$0000	;eerste Bitplane - BPL0PT
	dc.w $e4,$0000,$e6,$0000	;tweede Bitplane - BPL1PT
	dc.w $e8,$0000,$ea,$0000	;derde  Bitplane - BPL2PT
;	....
	dc.w	$FFFF,$FFFE	; Einde van de Copperlist



PIC:
	incbin  "amiga.320*256*3"	; hier laden we het plaatje in RAW
					; Formaat, dat met KEFCON 
					; geconverteerd is. Het bestaat uit
					; drie bitplanes achter elkaar.

	end