
; Listing6d.s	HIRES EN LOWRES Gelijktijdig op het scherm!


	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+(40*50),d0 ; in d0 komt het Adres van PIC.

	LEA	BPLPOINTERS,A1	; in a1 komt het Adres van de Bitplane-
				; Pointer van de Copperlist
	MOVEQ	#2,D1		; Aantal Bitplanes -1 (hier 3)
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 ONZE 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 
	move.w	d0,$dff088		; COPJMP1 
	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 
	move.w	d0,$dff088		; COPJMP1 

	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 Pixels grote Karakters drukt

PRINT:
	LEA	TEXT(PC),A0	
	LEA	BITPLANE,A3	
	MOVEQ	#15-1,D3	
PRINTREGEL:
	MOVEQ	#80-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)	
	MOVE.B	(A2)+,80(A3)	
	MOVE.B	(A2)+,80*2(A3)	
	MOVE.B	(A2)+,80*3(A3)	
	MOVE.B	(A2)+,80*4(A3)	
	MOVE.B	(A2)+,80*5(A3)	
	MOVE.B	(A2)+,80*6(A3)	
	MOVE.B	(A2)+,80*7(A3)	

	ADDQ.w	#1,A3		
				

	DBRA	D0,PRINTCHAR2	
 
	ADD.W	#80*7,A3	

	DBRA	D3,PRINTREGEL	; D3 Regels
	RTS


TEXT:
       ; Aantal Charakters Per regel: 80, dus 2 van deze regels van 40!

             ;            1111111111222222222233333333334
             ;   1234567890123456789012345678901234567890

	dc.b	'   EERSTE REGEL IN  HIRES 640  PIXEL BRE' ;1a\EERSTE Regel!
	dc.b	'EDTE!  -- -- --  NOG STEEDS EERSTE REGEL' ;1b/
	dc.b	'                TWEEDE REGEL            ' ; 2  \ Tweede..
	dc.b	'OOK NOG TWEEDE REGEL                    ' ;    /
	dc.b	'     /\  /                              ' ; 3
	dc.b	'                                        ' ;
	dc.b	'    /  \/                               ' ; 4
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 5
	dc.b	'                                        ' ;
	dc.b	'        ZESDE REGEL                     ' ; 6
	dc.b	'                       EINDE ZESDE REGEL' ;
	dc.b	'                                        ' ; 7
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 8
	dc.b	'                                        ' ;
	dc.b	'Deze Cursus werd geschreven door Rob Jan' ; 9
	dc.b	'ssen (Digital Mozart) op 5-7-19 - ?-?-96' ;
	dc.b	'                                        ' ; 10
	dc.b	'                                        ' ;
	dc.b	'   1234567890 !@#$%^&*()_+|\=-[]{}      ' ; 11
	dc.b	'         TECHNISCHE ZENDTEST            ' ;
	dc.b	'                                        ' ; 12
	dc.b	'                                        ' ;
	dc.b	'     TO BE OR NOT TO BE, THAT IS THE QUE' ; 13
	dc.b	'STION........                           ' ;
	dc.b	'                                        ' ; 14
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 15
	dc.b	'                                        ' ;
	dc.b	'  Greetz go out to all Amiga-nutters    ' ; 16
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 17
	dc.b	'                                        ' ;
	dc.b	'    on this stinkin' planet we          ' ; 18
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 19
	dc.b	'                                        ' ;
	dc.b	'    live on...                          ' ; 20
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 21
	dc.b	'                                        ' ;
	dc.b	'SEE YA SOON,AND PRAY TO STAY ALIVE...PC!' ; 22
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 23
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 24
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 25
	dc.b	'                                        ' ;
	dc.b	'                                        ' ; 26
	dc.b	'                                        ' ;

	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,%0011001000000000  ; Bit 12 en 13 aan!

BPLPOINTERS:
	dc.w $e0,$0000,$e2,$0000	;1e Bitplane
	dc.w $e4,$0000,$e6,$0000	;2e Btplane
	dc.w $e8,$0000,$ea,$0000	;3e Bitplane
 
	dc.w	$180,$000	; Color0
	dc.w	$182,$475	; Color1
	dc.w	$184,$fff	; Color2
	dc.w	$186,$ccc	; Color3
	dc.w	$188,$999	; Color4
	dc.w	$18a,$232	; Color5
	dc.w	$18c,$777	; Color6
	dc.w	$18e,$444	; Color7

;	Hier worden BPLCON0,KLEUREN,DDFSTART/STOP en de POINTERS NAAR DE
;	BITPLANES opnieuw gedefinieërd.

	dc.w	$c007,$FFFE

	dc.w	$92,$003c	; DdfStart HIRES
	dc.w	$94,$00d4	; DdfStop HIRES

		    ; 5432109876543210
	dc.w	$100,%1001001000000000  ; 1 Bitplane HIRES 640x256

BPLPOINTERS2:
	dc.w $e0,$0000,$e2,$0000	;1e Bitplane

	dc.w	$0180,$000	; Color0 - Achtergrond
	dc.w	$0182,$19a	; Color1 - TextKleur

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

;	HET FONT...

FONT:
;	incbin	"metal.fnt"	; Brede karakters
;	incbin	"normal.fnt"	; Ongeveer hetzekfde als de originele 
				; Kickstart 1.3 Karakters
	incbin	"nice.fnt"	; Smalle Karakters

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

	SECTION MEIPLANE,BSS_C	

BITPLANE:
	ds.b	80*256	; 1 Bitplane HIRES 640x256

	end

Men kan ook 50 maal in een scherm van oplossing veranderen. Gewoon
BPLCON0 opnieuw definieëren, de kleuren en de POINTERS wisselen naar de
Bitplanes, en klaar is kees! Dit kan handig zijn bij spellen e.d. waar
we midden op het scherm 32 of 16 kleuren nodig hebben, terwijl we er onder
aan het scherm maar bijvoorbeeld 8 of misschien wel 4 nodig hebben. Deze
zou men dan ook nog in Hires kunnen weergeven...
Men moet wel onthouden, dat, hoe meer Lijnen we in Hires hebben, hoe 
langsamer het spel / programma wordt. Hoe meer kleuren, hoe langsamer...
Dit komt omdat de processor dan nog maar weinig tijd over heeft voor andere
dingen. Daardoor is het handig maar enkele kleuren in Hires of HAM te
tonen, de rest in LowRes. Men kan zo een goed compromis bereiken tussen
wat het oog wil (tja, dat wil ook wat!) en wat snelheid betreft (we willen
toch ook allemaal flitsend snelle,mooie spellen/programma's?).

