
; Listing15a.s		Copper-AGA-Nuance unter Verwendung der 24-Bit-Palette.
; Unten sehen Sie den Unterschied zu 12-Bit.

	SECTION	AGARULEZ,CODE

;	include	"DaWorkBench.s"	; entferne das; vor dem Speichern mit "wo"

*****************************************************************************
	include	"/Sources/startup2.s"	; speichern Copperlist etc.
*****************************************************************************

			;5432109876543210
DMASET	equ	%1000001010000000	; Copper DMA

WaitDisk	equ	30	; 50-150 zur Rettung (je nach Fall)

Start:
	move.w	#DMASET,$96(a5)		; DMACON - aktivieren Copper
	move.l	#Copperlist,$80(a5)	; Zeiger Copperlist
	move.w	d0,$88(a5)			; Start Copperlist
	move.w	#0,$1fc(a5)			; Fmode zurücksetzen, burst normal
	move.w	#$c00,$106(a5)		; BPLCON3 zurücksetzen
	move.w	#$11,$10c(a5)		; BPLCON4 zurücksetzen

Mouse:
	btst	#6,$bfe001
	bne.s	Mouse
	rts

;*****************************************************************************
;*				Copperlist													 *
;*****************************************************************************

	SECTION	GRAPHIC,DATA_C

Copperlist:
	dc.w	$8e,$2c81			; DIWSTRT
	dc.w	$90,$2cc1			; DIWSTOP
	dc.w	$92,$0038			; DDFSTRT
	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
	dc.w	$100,$201			; keine Bitplanes (bit 1 aktiviert jedoch!)

	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$005			; COLOR00 - Nibble hoch
								; (Wir lassen die niedrigen Nibble bei Null...)

	dc.w	$5f07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$010			; COLOR00 - Nibble niedrig

	dc.w	$6007,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$030			; COLOR00 - Nibble niedrig

	dc.w	$6107,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$050			; COLOR00 - Nibble niedrig

	dc.w	$6207,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$070			; COLOR00 - Nibble niedrig

	dc.w	$6307,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$090			; COLOR00 - Nibble niedrig

	dc.w	$6407,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0b0			; COLOR00 - Nibble niedrig

	dc.w	$6507,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0d0			; COLOR00 - Nibble niedrig

	dc.w	$6607,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0f0			; COLOR00 - Nibble niedrig

	dc.w	$6707,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$010			; COLOR00 - Nibble niedrig

	dc.w	$6807,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$030			; COLOR00 - Nibble niedrig

	dc.w	$6907,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$050			; COLOR00 - Nibble niedrig

	dc.w	$6a07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$070			; COLOR00 - Nibble niedrig

	dc.w	$6b07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$090			; COLOR00 - Nibble niedrig

	dc.w	$6c07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0b0			; COLOR00 - Nibble niedrig

	dc.w	$6d07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0d0			; COLOR00 - Nibble niedrig

	dc.w	$6e07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0f0			; COLOR00 - Nibble niedrig

	dc.w	$6f07,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$010			; COLOR00 - Nibble niedrig

	dc.w	$7007,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$030			; COLOR00 - Nibble niedrig

	dc.w	$7107,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$050			; COLOR00 - Nibble niedrig

	dc.w	$7207,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$070			; COLOR00 - Nibble niedrig

	dc.w	$7307,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$090			; COLOR00 - Nibble niedrig

	dc.w	$7407,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0b0			; COLOR00 - Nibble niedrig

	dc.w	$7507,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0d0			; COLOR00 - Nibble niedrig

	dc.w	$7607,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$0f0			; COLOR00 - Nibble niedrig

	dc.w	$7707,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$030			; COLOR00 - Nibble hoch
	dc.w	$106,$e00			; Auswahl Nibble niedrig
	dc.w	$180,$010			; COLOR00 - Nibble niedrig

; Vergleichen wir nun mit der "Standard" Palette ECS/OCS:

	dc.w	$7907,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$000			; COLOR00 - Nibble hoch

	dc.w	$8007,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$010			; COLOR00 - Nibble hoch

	dc.w	$8807,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$020			; COLOR00 - Nibble hoch

	dc.w	$9007,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$030			; COLOR00 - Nibble hoch

	dc.w	$9807,$fffe			; Wait
	dc.w	$106,$c00			; Auswahl Nibble hoch
	dc.w	$180,$005			; COLOR00 - Nibble hoch

	dc.w	$ffff,$fffe			; Ende der Copperlist

	end

Sie bemerken den Unterschied, richtig?? AGA rulez!
Wie Sie bemerken, folgt die Nuance diesem Trend:

  Division durch nibble	  24-Bit Original

	  RGB	rgb				RrGgBb
	$0000,$0000	-> das ist $000000
	$0000,$0010	-> das ist $000100
	$0000,$0030	-> das ist $000300
	$0000,$0050	-> das ist $000500
	$0000,$0070	-> das ist $000700
	$0000,$0090	-> das ist $000900
	$0000,$00B0	-> das ist $000b00
	$0000,$00D0	-> das ist $000d00
	$0000,$00F0	-> das ist $000f00
	$0010,$0010	-> das ist $001100
	$0010,$0030	-> das ist $001300
	$0010,$0050	-> das ist $001500
	$0010,$0070	-> das ist $001700
	$0010,$0090	-> das ist $001900
	$0010,$00B0	-> das ist $001b00
	$0010,$00D0	-> das ist $001d00
	$0010,$00F0	-> das ist $001f00
	$0020,$0010	-> das ist $002100
	$0020,$0030	-> das ist $002300
	$0020,$0050	-> das ist $002500
	$0020,$0070	-> das ist $002700
	$0020,$0090	-> das ist $002900
	$0020,$00B0	-> das ist $002b00
	$0020,$00D0	-> das ist $002d00
	$0020,$00F0	-> das ist $002f00
	$0030,$0010	-> das ist $003100
	...

Das Erstellen eines AGA-Gradienten ist manuell lang, es 
lohnt sich, eine Routine zu erstellen, die das erschafft!

