
; Listing6g.s	Schrijven (over een beeld) met Transparant-effect.
;		Linker muisknop om vooruit te gaan, rechter om achteruit
;		te gaan. Beide om te stoppen.
;		Deze listing bevat een deel van listing5l.s

	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:
	cmpi.b	#$ff,$dff006	; Zijn we op lijn 255?
	bne.s	mouse		

Wacht:
	cmpi.b	#$ff,$dff006	; Zijn we op lijn 255?
	beq.s	Wacht		

	btst	#2,$dff016	; Als de rechtermuisknop is gedrukt,
	bne.s	NietBeneden	; ga naar NietBeneden 

	bsr.w	GaBeneden	; Anders ga naar GaBeneden

NietBeneden::
	btst	#6,$bfe001	; Linker muisknop gedrukt?
	beq.s	ScrollOmhoog	; Zo ja, scroll omhoog
	bra.s	mouse		; Niet? Herhaal de cyclus dan nog eens.

ScrollOmhoog:
	bsr.w	GaOmhoog	 ; Laat het beeld omhoog scrollen

	btst	#2,$dff016	; Right mouse button pressed?
	bne.s	mouse

	move.l	OldCop(PC),$dff080	; COP1LC - Pointer naar de 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

;	Deze routine beweeg het beeld naar boven en beneden, als we de
; 	BitplanePointers in de Copperlist veranderen. Zie listing5l.s.

GaBeneden:
	LEA	BPLPOINTERS2,A1 
	move.w	2(a1),d0	
	swap	d0		
	move.w	6(a1),d0	
	
	sub.l	#40,d0		
				
	bra.s	Einde

GaOmhoog:
	LEA	BPLPOINTERS2,A1 
	move.w	2(a1),d0	
	swap	d0		
	move.w	6(a1),d0	
	
	add.l	#40,d0		

Einde:			 
	move.w	d0,6(a1) 
	swap	d0	 
	move.w	d0,2(a1) 
	rts

	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,$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.
	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

Sorry, hier is niet veel uit te leggen. We hebben 'gewoon' listing5l.s en
listing6f.s gecombineerd...