
; Listing6f.s		Schrijven OVER een Plaatje


	SECTION	CIPenCOP,CODE

Begin:
	move.l	4.w,a6		; Execbase in a6
	jsr	-$78(a6)	; Disable - stopt Multitasking
	lea	GfxName(PC),a1	
	jsr	-$198(a6)	; OpenLibrary
	move.l	d0,GfxBase	
	move.l	d0,a6
	move.l	$26(a6),OldCop	

;	POINTEN naar onze Bitplanes

	MOVE.L	#PIC,d0		

	LEA	BPLPOINTERS,A1	
				
	MOVEQ	#2,D1		
				
POINTBP:
	move.w	d0,6(a1)	
	swap	d0		
	move.w	d0,2(a1)	
	swap	d0		
	ADD.L	#40*256,d0	
	addq.w	#8,a1		
	dbra	d1,POINTBP	

;	POINTEN Naar ons andere bitplane

	MOVE.L	#BITPLANE,d0	
	LEA	BPLPOINTERS2,A1 
	move.w	d0,6(a1)	
	swap	d0		
	move.w	d0,2(a1)	

	move.l	#COPPERLIST,$dff080	; COP1LC - Pointer naar onze Cop
	move.w	d0,$dff088		; COPJMP1 - Starten 'm
	move.w	#0,$dff1fc		; FMODE - Deactiveert AGA
	move.w	#$c00,$dff106		; BPLCON3 - Deactiveert AGA

	bsr.w	print		

mouse:
	btst	#6,$bfe001	
	bne.s	mouse		

	move.l	OldCop(PC),$dff080	; COP1LC - Pointer naar Originele
					; Copperlist
	move.w	d0,$dff088		; COPJMP1 - Start 'm

	move.l	4.w,a6
	jsr	-$7e(a6)	; Enable - Multitasking aan
	move.l	GfxBase(PC),a1	
				
	jsr	-$19e(a6)	; Closelibrary 
	rts

; DATA

GfxName:
	dc.b	"graphics.library",0,0	
GfxBase:	
	dc.l	0
OldCop:		 
	dc.l	0

;	Routine, die 8x8 grote letters print.

PRINT:
	LEA	TEXT(PC),A0	
	LEA	BITPLANE,A3	
	MOVEQ	#26-1,D3	
PRINTREGEL:
	MOVEQ	#40-1,D0	

PRINTCHAR2:			
	MOVEQ	#0,D2		
	MOVE.B	(A0)+,D2	
	SUB.B	#$20,D2		
				
	MULU.W	#8,D2		
				
	MOVE.L	D2,A2
	ADD.L	#FONT,A2	
				
	MOVE.B	(A2)+,(A3)	; Teken lijn 1 van de letter
	MOVE.B	(A2)+,40(A3)	; Teken lijn 2 van de letter
	MOVE.B	(A2)+,40*2(A3)	; Teken lijn 3 van de letter
	MOVE.B	(A2)+,40*3(A3)	; Teken lijn 4 van de letter
	MOVE.B	(A2)+,40*4(A3)	; Teken lijn 5 van de letter
	MOVE.B	(A2)+,40*5(A3)	; Teken lijn 6 van de letter
	MOVE.B	(A2)+,40*6(A3)	; Teken lijn 7 van de letter
	MOVE.B	(A2)+,40*7(A3)	; Teken lijn 8 van de letter

	ADDQ.w	#1,A3		

	DBRA	D0,PRINTCHAR2	
 
	ADD.W	#40*7,A3	; "Return"

	DBRA	D3,PRINTREGEL	; We printen D3 regels
	RTS


TEXT:

             ;            1111111111222222222233333333334
             ;   1234567890123456789012345678901234567890

	dc.b	'                                        ' ; 1
	dc.b	'                TWEEDE REGEL            ' ; 2
	dc.b	'     /\  /                              ' ; 3
	dc.b	'    /  \/                               ' ; 4
	dc.b	'                                        ' ; 5
	dc.b	'        Zesde ReGeL!!                   ' ; 6
	dc.b	'                                        ' ; 7
	dc.b	'                                        ' ; 8
	dc.b	'Digital Mozart tm (C) (R) inc. b.v. (??)' ; 9
	dc.b	'                                        ' ; 10
	dc.b	'   1234567890 !@#$%^&*()_+|\=-[]{}      ' ; 11
	dc.b	'                                        ' ; 12
	dc.b	' -=-    Ik denk,dus ik leef...      -=- ' ; 13
	dc.b	' ## zei eens iemand, maar hij beviel ## ' ; 14
	dc.b	' ///de striptekenaar niet,en werd   \\\ ' ; 15
	dc.b	'           dus uitgegegumd....          ' ; 16
	dc.b	'                                        ' ; 17
	dc.b	'  Loading...(??)                        ' ; 18
	dc.b	'                                        ' ; 19
	dc.b	'  Wat zal ik eens typen???              ' ; 20
	dc.b	'                                        ' ; 21
	dc.b	'  Heeft u een idee??                    ' ; 22
	dc.b	'                                        ' ; 23
	dc.b	'  Ik niet...                            ' ; 24
	dc.b	'                                        ' ; 25
	dc.b	'            ...                         ' ; 26


	EVEN

	SECTION GRAPHIC,DATA_C

COPPERLIST:
	; Sprites uit...
	dc.w	$120,$0000,$122,$0000,$124,$0000,$126,$0000,$128,$0000 
	dc.w	$12a,$0000,$12c,$0000,$12e,$0000,$130,$0000,$132,$0000
	dc.w	$134,$0000,$136,$0000,$138,$0000,$13a,$0000,$13c,$0000
	dc.w	$13e,$0000

	dc.w	$8E,$2c81	; DiwStrt (Registers met Normaalwaarden)
	dc.w	$90,$2cc1	; DiwStop
	dc.w	$92,$0038	; DdfStart
	dc.w	$94,$00d0	; DdfStop
	dc.w	$102,0		; BplCon1
	dc.w	$104,0		; BplCon2
	dc.w	$108,0		; Bpl1Mod
	dc.w	$10a,0		; Bpl2Mod
	
		    ; 5432109876543210
	dc.w	$100,%0100001000000000  ; Bit 14 - 4 Bitplanes, 16 Kleuren
					; Hires

BPLPOINTERS:
	dc.w $e0,$0000,$e2,$0000	;1e Bitplane
	dc.w $e4,$0000,$e6,$0000	;2e Bitplane
	dc.w $e8,$0000,$ea,$0000	;3e Bitplane
BPLPOINTERS2: 
	dc.w $ec,$0000,$ee,$0000	;4e Bitplane
 
	dc.w	$180,$000	; Color0 ; Kleuren v.h. plaatje, een tikkie
	dc.w	$182,$354	; Color1 ; donkerder
	dc.w	$184,$678	; Color2
	dc.w	$186,$567	; Color3
	dc.w	$188,$455	; Color4
	dc.w	$18a,$121	; Color5
	dc.w	$18c,$455	; Color6
	dc.w	$18e,$233	; Color7

	dc.w	$190,$d6e	; Color8  ; De kleuren van de letters
	dc.w	$192,$d6e	; Color9  ; Bij het overlappen zou men
	dc.w	$194,$d6e	; Color10 ; telkens een andere kleur krijgen
	dc.w	$196,$d6e	; Color11 ; maar we geven ze allemaal een 
	dc.w	$198,$d6e	; Color12 ; zelfde waarde, zodat het altijd
	dc.w	$19a,$d6e	; Color13 ; dezelfde kleur is.
	dc.w	$19c,$d6e	; Color14
	dc.w	$19e,$d6e	; Color15

	dc.w	$FFFF,$FFFE	; Einde van de Copperlist

;	Het FONT...

FONT:
;	incbin	"metal.fnt"
;	incbin	"normal.fnt"
	incbin	"nice.fnt"

PIC:
	incbin	"amiga.320*256*3"	; Plaatje in RAW

	SECTION MIJNPLANE,BSS_C

BITPLANE:
	ds.b	40*256	; 1 Bitplane LOWRES 320x256

	end

In dit voorbeeld hebben we Bitplane 4 toegevoegd, en schrijven we daarop de
text. Met dit vierde bitplane gaan we van 8 naar 16 kleuren over. Om de text
in de juiste kleur te houden,moeten we alle 8 extra kleuren dezelfde waarde
geven. Ze zijn dus allemaal dezelfde kleur.
Als de 'nieuwe' 8 kleuren hetzelfde zijn als de eerste 8, alleen iets 
lichter, dan kunt u een soort transparant-effect bereiken.
Probeer de laatste 8 kleuren maar eens te vervangen door de volgende 8:

	dc.w	$190,$454	; color8  ; De 8 kleuren van de text
	dc.w	$192,$7a8	; color9  ; In dit geval maken we 8 
	dc.w	$194,$eef	; color10 ; verschillende kleuren om de 8
	dc.w	$196,$cde	; color11 ; overlappings-mogelijkheden die 
	dc.w	$198,$aab	; color12 ; zich voor kunnen doen elk een
	dc.w	$19a,$786	; color13 ; eigen kleur te geven, echter 
	dc.w	$19c,$9aa	; color14 ; alleen iets lichter: Het 
	dc.w	$19e,$789	; color15 ; resultaat: Een soort transparant
					  ; effect.