;AGA ColourList
;--------------
;Displays an AGA colourlist (24bit colour lines).  To do this we use a
;raster command specially reserved for colourlists (COL24LIST).
;Colourlists enable you to have many more colours than would normally be
;allowed -- even though only 1 bitplane is active,  we have 256 colours
;on screen.  Now lets see a PC do that :-)
;
;To exit the demo, press the left mouse button.

	opt	o+,c+

	INCLUDE	"exec/exec_lib.i"
	INCLUDE	"games/games.i"
	INCLUDE	"games/games_lib.i"

CALL	MACRO
	jsr	_LVO\1(a6)
	ENDM

	SECTION	"AGA_ColourList",CODE

;===========================================================================;
;                             INITIALISE DEMO
;===========================================================================;

Start:	MOVEM.L	A0-A6/D1-D7,-(SP)
	move.l	($4).w,a6
	lea	GMS_Name(pc),a1
	moveq	#$00,d0
	CALL	OpenLibrary
	move.l	d0,GMS_Base
	beq.s	.Error_GMS

	move.l	GMS_Base(pc),a6	;Set task to user priority.
	sub.l	a0,a0
	CALL	SetUserPrefs

	lea	Screen(pc),a0	;Initialise our screen structure.
	CALL	Add_Screen
	tst.l	d0
	bne.s	.Error_Screen

	CALL	Show_Screen

	CALL	Wait_LMB

.ReturnToDOS
	move.l	GMS_Base(pc),a6
	lea	Screen(pc),a0
	CALL	Delete_Screen	;Give back screen memory etc.
.Error_Screen
	move.l	GMS_Base(pc),a1
	move.l	($4).w,a6
	CALL	CloseLibrary
.Error_GMS
	MOVEM.L	(SP)+,A0-A6/D1-D7
	moveq	#$00,d0
	rts

;===========================================================================;
;                                  DATA
;===========================================================================;

GMS_Name:
	dc.b	"games.library",0
	even
GMS_Base:
	dc.l	0

AMT_PLANES =	1

Screen:	dc.l	GSV1,0	;Structure version.
	dc.l	0,0,0	;Screen_Mem1/2/3
	dc.l	0	;Screen link.
	dc.l	0	;Address of screen palette
	dc.l	.RasterList	;Address of rasterlist
	dc.l	0	;Amt of colours in screen palette.
	dc.w	320,256	;Screen Width and Height.
	dc.w	320/8,256	;Picture Width/8 and Height.
	dc.w	AMT_PLANES	;Amt_Planes
	dc.w	0,0	;X/Y screen offset.
	dc.w	0,0	;X/Y picture offset.
	dc.l	BLKBDR	;Special attributes.
	dc.w	LORES|COL24BIT	;Screen mode.
	dc.b	INTERLEAVED	;Screen type
	dc.b	0	;Reserved
	even

.RasterList:
	COL24LIST 000,1,00,Colours	;Line, Skip, Colnum, ColourList.
	RASTEND

Colours:
	dc.l	$010000,$020000,$030000,$040000
	dc.l	$050000,$060000,$070000,$080000
	dc.l	$090000,$0a0000,$0b0000,$0c0000
	dc.l	$0d0000,$0e0000,$0f0000,$100000
	dc.l	$110000,$120000,$130000,$140000
	dc.l	$150000,$160000,$170000,$180000
	dc.l	$190000,$1a0000,$1b0000,$1c0000
	dc.l	$1d0000,$1e0000,$1f0000,$200000
	dc.l	$210000,$220000,$230000,$240000
	dc.l	$250000,$260000,$270000,$280000
	dc.l	$290000,$2a0000,$2b0000,$2c0000
	dc.l	$2d0000,$2e0000,$2f0000,$300000
	dc.l	$310000,$320000,$330000,$340000
	dc.l	$350000,$360000,$370000,$380000
	dc.l	$390000,$3a0000,$3b0000,$3c0000
	dc.l	$3d0000,$3e0000,$3f0000,$400000
	dc.l	$410000,$420000,$430000,$440000
	dc.l	$450000,$460000,$470000,$480000
	dc.l	$490000,$4a0000,$4b0000,$4c0000
	dc.l	$4d0000,$4e0000,$4f0000,$500000
	dc.l	$510000,$520000,$530000,$540000
	dc.l	$550000,$560000,$570000,$580000
	dc.l	$590000,$5a0000,$5b0000,$5c0000
	dc.l	$5d0000,$5e0000,$5f0000,$600000
	dc.l	$610000,$620000,$630000,$640000
	dc.l	$650000,$660000,$670000,$680000
	dc.l	$690000,$6a0000,$6b0000,$6c0000
	dc.l	$6d0000,$6e0000,$6f0000,$700000
	dc.l	$710000,$720000,$730000,$740000
	dc.l	$750000,$760000,$770000,$780000
	dc.l	$790000,$7a0000,$7b0000,$7c0000
	dc.l	$7d0000,$7e0000,$7f0000,$800000
	dc.l	$810000,$820000,$830000,$840000
	dc.l	$850000,$860000,$870000,$880000
	dc.l	$890000,$8a0000,$8b0000,$8c0000
	dc.l	$8d0000,$8e0000,$8f0000,$900000
	dc.l	$910000,$920000,$930000,$940000
	dc.l	$950000,$960000,$970000,$980000
	dc.l	$990000,$9a0000,$9b0000,$9c0000
	dc.l	$9d0000,$9e0000,$9f0000,$a00000
	dc.l	$a10000,$a20000,$a30000,$a40000
	dc.l	$a50000,$a60000,$a70000,$a80000
	dc.l	$a90000,$aa0000,$ab0000,$ac0000
	dc.l	$ad0000,$ae0000,$af0000,$b00000
	dc.l	$b10000,$b20000,$b30000,$b40000
	dc.l	$b50000,$b60000,$b70000,$b80000
	dc.l	$b90000,$ba0000,$bb0000,$bc0000
	dc.l	$bd0000,$be0000,$bf0000,$c00000
	dc.l	$c10000,$c20000,$c30000,$c40000
	dc.l	$c50000,$c60000,$c70000,$c80000
	dc.l	$c90000,$ca0000,$cb0000,$cc0000
	dc.l	$cd0000,$ce0000,$cf0000,$d00000
	dc.l	$d10000,$d20000,$d30000,$d40000
	dc.l	$d50000,$d60000,$d70000,$d80000
	dc.l	$d90000,$da0000,$db0000,$dc0000
	dc.l	$dd0000,$de0000,$df0000,$e00000
	dc.l	$e10000,$e20000,$e30000,$e40000
	dc.l	$e50000,$e60000,$e70000,$e80000
	dc.l	$e90000,$ea0000,$eb0000,$ec0000
	dc.l	$ed0000,$ee0000,$ef0000,$f00000
	dc.l	$f10000,$f20000,$f30000,$f40000
	dc.l	$f50000,$f60000,$f70000,$f80000
	dc.l	$f90000,$fa0000,$fb0000,$fc0000
	dc.l	$fd0000,$fe0000,$ff0000
	dc.l	-1

